]> granicus.if.org Git - libevent/commitdiff
Attempt to add OpenSSL 3 to the Linux build matrix
authorWilliam Marlow <william.marlow@ibm.com>
Sun, 19 Jun 2022 09:45:57 +0000 (10:45 +0100)
committerAzat Khuzhin <azat@libevent.org>
Sun, 10 Jul 2022 07:07:25 +0000 (10:07 +0300)
v2: fix echo messages
v3: fix autotools build (wrong path to pkg config)

.github/workflows/linux.yml

index edf04bf10d67096d5ce3fefce90b64772eef8d1a..0fd8946b2f0c1edfc084d8b6206afc9751cf8af4 100644 (file)
@@ -31,6 +31,7 @@ jobs:
           - NONE
           - NO_SSL
           - DISABLE_OPENSSL
+          - OPENSSL_3
           - DISABLE_THREAD_SUPPORT
           - DISABLE_DEBUG_MODE
           - DISABLE_MM_REPLACEMENT
@@ -59,6 +60,32 @@ jobs:
           sudo apt-get update
           sudo apt-get install -y libmbedtls-dev
 
+          if [ "${{ matrix.EVENT_MATRIX }}" == "OPENSSL_3" ]; then
+            OPENSSL_VERSION=3.0.3
+            JOBS=20
+
+            echo [openssl-${OPENSSL_VERSION}]: Downloading
+            wget "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz"
+
+            echo [openssl-${OPENSSL_VERSION}]: Extracting
+            tar xzf "openssl-${OPENSSL_VERSION}.tar.gz"
+            rm "openssl-${OPENSSL_VERSION}.tar.gz"
+            mv "openssl-${OPENSSL_VERSION}" /tmp/openssl-3
+
+            echo [openssl-${OPENSSL_VERSION}]: Building
+            pushd /tmp/openssl-3
+            ./Configure --prefix=$PWD/install
+            make -j ${JOBS}
+            make install
+            cd install
+            if [ ! -d lib ]; then
+              ln -s lib64 lib
+            fi
+
+            echo [openssl-${OPENSSL_VERSION}]: Installed to $PWD
+            popd
+          fi
+
       - name: Build
         shell: bash
         run: |
@@ -78,6 +105,8 @@ jobs:
             EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON"
           elif [ "${{ matrix.EVENT_MATRIX }}" == "NO_SSL" ]; then
             EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_OPENSSL=ON -DEVENT__DISABLE_MBEDTLS=ON"
+          elif [ "${{ matrix.EVENT_MATRIX }}" == "OPENSSL_3" ]; then
+            EVENT_CMAKE_OPTIONS="-DOPENSSL_ROOT_DIR=/tmp/openssl-3/install -DOPENSSL_USE_STATIC_LIBS=TRUE"
           elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_THREAD_SUPPORT" ]; then
             EVENT_CMAKE_OPTIONS="-DEVENT__DISABLE_THREAD_SUPPORT=ON"
           elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_DEBUG_MODE" ]; then
@@ -155,6 +184,7 @@ jobs:
           - NONE
           - NO_SSL
           - DISABLE_OPENSSL
+          - OPENSSL_3
           - DISABLE_THREAD_SUPPORT
           - DISABLE_DEBUG_MODE
           - DISABLE_MM_REPLACEMENT
@@ -178,6 +208,32 @@ jobs:
           sudo apt-get update
           sudo apt-get install -y libmbedtls-dev
 
+          if [ "${{ matrix.EVENT_MATRIX }}" == "OPENSSL_3" ]; then
+            OPENSSL_VERSION=3.0.3
+            JOBS=20
+
+            echo [openssl-${OPENSSL_VERSION}]: Downloading
+            wget "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz"
+
+            echo [openssl-${OPENSSL_VERSION}]: Extracting
+            tar xzf "openssl-${OPENSSL_VERSION}.tar.gz"
+            rm "openssl-${OPENSSL_VERSION}.tar.gz"
+            mv "openssl-${OPENSSL_VERSION}" /tmp/openssl-3
+
+            echo [openssl-${OPENSSL_VERSION}]: Building
+            pushd /tmp/openssl-3
+            ./Configure --prefix=$PWD/install
+            make -j ${JOBS}
+            make install
+            cd install
+            if [ ! -d lib ]; then
+              ln -s lib64 lib
+            fi
+
+            echo [openssl-${OPENSSL_VERSION}]: Installed to $PWD
+            popd
+          fi
+
       - name: Build
         shell: bash
         run: |
@@ -187,6 +243,9 @@ jobs:
           elif [ "${{ matrix.EVENT_MATRIX }}" == "NO_SSL" ]; then
             EVENT_CONFIGURE_OPTIONS="--disable-openssl --disable-mbedtls"
 
+          elif [ "${{ matrix.EVENT_MATRIX }}" == "OPENSSL_3" ]; then
+            export PKG_CONFIG_PATH=/tmp/openssl-3/install/lib/pkgconfig
+
           elif [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_THREAD_SUPPORT" ]; then
             EVENT_CONFIGURE_OPTIONS="--disable-thread-support"