[Tarantool-patches] [PATCH v2 2/7] build: fix static build w/ dockerfile with cmake

Alexander V. Tikhonov avtikhon at tarantool.org
Tue May 26 17:42:33 MSK 2020


Building the image got the issue:

  [  1%] Performing configure step for 'bundled-libcurl-project'
  CMake Warning at CMakeLists.txt:50 (message):
    the curl cmake build system is poorly maintained.  Be aware

  -- curl version=[7.66.0-DEV]
  -- Found c-ares: /tarantool/build/ares/dest/lib/libcares.a
  Found *nroff option: -- -man
  CMake Error at /usr/share/cmake/Modules/FindOpenSSL.cmake:278 (list):
    list GET given empty list
  Call Stack (most recent call first):
    CMakeLists.txt:347 (find_package)

Root cause of the issue that Dockerfile uses globaly
installed openSSL with:

  cmake ... -DOPENSSL_ROOT_DIR=/usr/local ...

Its cmake build file:

  /usr/share/cmake/Modules/FindOpenSSL.cmake

fails on parsing the SSL version:

it has:
       REGEX "^#define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*")

but it should to use:
       REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*")

Closes #5019
---
 Dockerfile.staticbuild | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/Dockerfile.staticbuild b/Dockerfile.staticbuild
index f67f46f5e..01419dcc5 100644
--- a/Dockerfile.staticbuild
+++ b/Dockerfile.staticbuild
@@ -79,6 +79,7 @@ RUN set -x && \
 
 RUN pip install -r /tarantool/test-run/requirements.txt
 
+# cp FindOpenSSL.cmake /usr/share/cmake/Modules/FindOpenSSL.cmake && \
 RUN set -x && \
     cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
          -DENABLE_DIST:BOOL=ON \
@@ -86,6 +87,8 @@ RUN set -x && \
          -DOPENSSL_USE_STATIC_LIBS=ON \
          -DOPENSSL_ROOT_DIR=/usr/local \
          . && \
+    sed 's%#define%#[\\t ]*define%g' -i \
+        /usr/share/cmake/Modules/FindOpenSSL.cmake && \
     make -j && make install
 
 ARG RUN_TESTS
-- 
2.17.1



More information about the Tarantool-patches mailing list