From: yubiuser Date: Mon, 23 Sep 2024 19:27:36 +0000 (+0200) Subject: Add linux and macOS test using OpenSSL3.0 X-Git-Url: https://git.feebdaed.xyz/?a=commitdiff_plain;h=aa7de369a47903de2417e2a8bf5be1f3df2acd10;p=0xmirror%2Fcivetweb.git Add linux and macOS test using OpenSSL3.0 Signed-off-by: yubiuser --- diff --git a/.github/workflows/cibuild.yml b/.github/workflows/cibuild.yml index 9e905e87..815a9d84 100644 --- a/.github/workflows/cibuild.yml +++ b/.github/workflows/cibuild.yml @@ -16,7 +16,6 @@ jobs: - os: ubuntu-latest compiler: clang env: - idx: 1 N: Clang-Linux-Minimal-Debug BUILD_TYPE: Debug ENABLE_SSL_DYNAMIC_LOADING: YES @@ -42,7 +41,6 @@ jobs: - os: ubuntu-latest compiler: clang env: - idx: 3 N: Clang-Linux-Default-Release BUILD_TYPE: Release ENABLE_SSL_DYNAMIC_LOADING: YES @@ -68,7 +66,6 @@ jobs: - os: ubuntu-latest compiler: gcc env: - idx: 5 N: GCC-Linux-Complete-NoLua-Release BUILD_TYPE: Release ENABLE_SSL_DYNAMIC_LOADING: YES @@ -94,7 +91,6 @@ jobs: - os: ubuntu-latest compiler: clang env: - idx: 6 N: CLANG-AnyVersion-Linux-Coverage BUILD_TYPE: Coverage ENABLE_SSL_DYNAMIC_LOADING: YES @@ -120,7 +116,6 @@ jobs: - os: ubuntu-latest compiler: clang env: - idx: 9 N: Clang-Linux-Default-Shared BUILD_TYPE: Debug ENABLE_SSL_DYNAMIC_LOADING: YES @@ -146,7 +141,6 @@ jobs: - os: ubuntu-latest compiler: gcc env: - idx: 15 N: GCCLinuxDefault_RelWithDebInfo BUILD_TYPE: RelWithDebInfo ENABLE_SSL_DYNAMIC_LOADING: YES @@ -171,7 +165,6 @@ jobs: - os: ubuntu-latest compiler: gcc env: - idx: 16 N: GCCLinuxDefault_MinSizeRel BUILD_TYPE: MinSizeRel ENABLE_SSL_DYNAMIC_LOADING: YES @@ -196,7 +189,6 @@ jobs: - os: ubuntu-latest compiler: gcc env: - idx: 17 N: GCCLinuxDefault_None BUILD_TYPE: None ENABLE_SSL_DYNAMIC_LOADING: YES @@ -221,7 +213,6 @@ jobs: - os: ubuntu-latest compiler: gcc env: - idx: 20 N: GCCLinuxDefault_xenial BUILD_TYPE: Release ENABLE_SSL_DYNAMIC_LOADING: YES @@ -246,7 +237,6 @@ jobs: - os: ubuntu-latest compiler: gcc env: - idx: 23 N: GCCLinuxDefault_focal BUILD_TYPE: Release ENABLE_SSL_DYNAMIC_LOADING: YES @@ -267,13 +257,37 @@ jobs: NO_CACHING: NO ALLOW_WARNINGS: YES RUN_UNITTEST: 1 + + - os: ubuntu-latest + compiler: gcc + env: + N: GCCLinuxDefault_OpenSSL_3_0 + BUILD_TYPE: Release + ENABLE_SSL_DYNAMIC_LOADING: YES + OPENSSL_1_0: NO + OPENSSL_1_1: NO + OpenSSL_3_0: YES + ENABLE_CXX: NO + ENABLE_LUA_SHARED: NO + C_STANDARD: auto + CXX_STANDARD: auto + BUILD_SHARED: NO + NO_FILES: NO + ENABLE_SSL: YES + NO_CGI: NO + ENABLE_IPV6: NO + ENABLE_WEBSOCKETS: NO + ENABLE_LUA: NO + ENABLE_DUKTAPE: NO + NO_CACHING: NO + ALLOW_WARNINGS: YES + RUN_UNITTEST: 1 # Disable Lua build, until someone knows how to fix the CMake files # see https://github.com/civetweb/civetweb/issues/543 # - os: ubuntu-lastest # compiler: clang # env: - # idx: 99 # N: Clang-Linux-Complete-WithLua-Debug # BUILD_TYPE: Debug # ENABLE_SSL_DYNAMIC_LOADING: YES @@ -299,7 +313,6 @@ jobs: - os: macos-latest compiler: clang env: - idx: 8 N: Clang-OSX-Complete-NoLua-Release-OpenSSL_1_1_NoDynLoad BUILD_TYPE: Release ENABLE_SSL_DYNAMIC_LOADING: NO @@ -328,8 +341,7 @@ jobs: - os: macos-13 compiler: clang env: - idx: 11 - N: OSX-Package + N: OSX-Package_OpenSSL_1_0 BUILD_TYPE: Release ENABLE_SSL_DYNAMIC_LOADING: YES OPENSSL_1_0: YES @@ -352,6 +364,33 @@ jobs: MACOSX_PACKAGE: 1 RUN_UNITTEST: 1 + - os: macos-latest + compiler: clang + env: + N: OSX-Package_OpenSSL_3_0 + BUILD_TYPE: Release + ENABLE_SSL_DYNAMIC_LOADING: YES + OPENSSL_1_0: NO + OPENSSL_1_1: NO + OPENSSL_3_0: YES + ENABLE_CXX: NO + ENABLE_LUA_SHARED: NO + C_STANDARD: auto + CXX_STANDARD: auto + BUILD_SHARED: NO + NO_FILES: NO + ENABLE_SSL: YES + NO_CGI: NO + ENABLE_IPV6: YES + ENABLE_WEBSOCKETS: YES + ENABLE_SERVER_STATS: NO + ENABLE_LUA: NO + ENABLE_DUKTAPE: NO + NO_CACHING: NO + ALLOW_WARNINGS: YES + MACOSX_PACKAGE: 1 + RUN_UNITTEST: 1 + steps: - name: Checkout code @@ -404,7 +443,25 @@ jobs: echo "${OPENSSL_ROOT_DIR}/bin" >> $GITHUB_PATH echo "ADDITIONAL_CMAKE_ARGS=${ADDITIONAL_CMAKE_ARGS}" >> $GITHUB_ENV echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}" >> $GITHUB_ENV + + - name: Install OpenSSL 3.0 on modern MacOS + # OpenSSL 1.1 is installed by default, so we need to install 3.0 manually + if: startsWith(matrix.os,'macos') && matrix.env.OPENSSL_3_0 == 'YES' + run: | + brew install openssl@3.0 + OPENSSL_ROOT_DIR=$(brew --prefix openssl@3.0) + LDFLAGS=-L${OPENSSL_ROOT_DIR}/lib + CFLAGS=-I${OPENSSL_ROOT_DIR}/include + ADDITIONAL_CMAKE_ARGS="-DCMAKE_SHARED_LINKER_FLAGS=${LDFLAGS} -DMAKE_C_FLAGS=${CFLAGS}" + PKG_CONFIG_PATH=${OPENSSL_ROOT_DIR}/lib/pkgconfig + + echo "LDFLAGS=${LDFLAGS}" >> $GITHUB_ENV + echo "CFLAGS=${CFLAGS}" >> $GITHUB_ENV + echo "${OPENSSL_ROOT_DIR}/bin" >> $GITHUB_PATH + echo "ADDITIONAL_CMAKE_ARGS=${ADDITIONAL_CMAKE_ARGS}" >> $GITHUB_ENV + echo "PKG_CONFIG_PATH=${PKG_CONFIG_PATH}" >> $GITHUB_ENV + - name: Install OpenSSL 1.0 on modern Linux # Needed for recent versions of Linux as they ship with OpenSSL 3.0 by default if: startsWith(matrix.os,'ubuntu') && matrix.env.OPENSSL_1_0 == 'YES' diff --git a/unittest/public_server.c b/unittest/public_server.c index 93641f0d..4983ee8c 100644 --- a/unittest/public_server.c +++ b/unittest/public_server.c @@ -823,7 +823,7 @@ START_TEST(test_mg_server_and_client_tls) * while Ubuntu Xenial, Ubuntu Trusty and Windows test containers at * Travis CI do not. Maybe it is OpenSSL version specific. */ -#if defined(OPENSSL_API_1_1) +#if defined(OPENSSL_API_1_1) || defined(OPENSSL_API_3_0) if (client_conn) { /* Connect succeeds, but the connection is unusable. */ mg_printf(client_conn, "GET / HTTP/1.0\r\n\r\n");