diff --git a/.github/workflows/build_openssl.sh b/.github/workflows/build_openssl.sh index d2358d1a7f1a..b1bc28a8e698 100755 --- a/.github/workflows/build_openssl.sh +++ b/.github/workflows/build_openssl.sh @@ -2,13 +2,17 @@ set -e set -x -shlib_sed() { +shlib_sed_111() { # modify the shlib version to a unique one to make sure the dynamic # linker doesn't load the system one. sed -i "s/^SHLIB_MAJOR=.*/SHLIB_MAJOR=100/" Makefile sed -i "s/^SHLIB_MINOR=.*/SHLIB_MINOR=0.0/" Makefile sed -i "s/^SHLIB_VERSION_NUMBER=.*/SHLIB_VERSION_NUMBER=100.0.0/" Makefile } +shlib_sed_3() { + # OpenSSL 3 changes how it does the shlib versioning + sed -i "s/^SHLIB_VERSION=.*/SHLIB_VERSION=100/" VERSION.dat +} if [[ "${TYPE}" == "openssl" ]]; then if [[ "${VERSION}" =~ ^[0-9a-f]{40}$ ]]; then @@ -22,7 +26,11 @@ if [[ "${TYPE}" == "openssl" ]]; then fi # CONFIG_FLAGS is a global coming from a previous step ./config ${CONFIG_FLAGS} -fPIC --prefix="${OSSL_PATH}" - shlib_sed + if [[ "${VERSION}" =~ ^3. ]]; then + shlib_sed_3 + else + shlib_sed_111 + fi make depend make -j"$(nproc)" # avoid installing the docs (for performance) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2312fd6e6796..f20436412e56 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ concurrency: jobs: linux: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest strategy: fail-fast: false matrix: @@ -96,7 +96,7 @@ jobs: path: ${{ github.workspace }}/osslcache # When altering the openssl build process you may need to increment the value on the end of this cache key # so that you can prevent it from fetching the cache and skipping the build step. - key: ${{ matrix.PYTHON.OPENSSL.TYPE }}-${{ matrix.PYTHON.OPENSSL.VERSION }}-${{ env.CONFIG_HASH }}-2 + key: ${{ matrix.PYTHON.OPENSSL.TYPE }}-${{ matrix.PYTHON.OPENSSL.VERSION }}-${{ env.CONFIG_HASH }}-3 if: matrix.PYTHON.OPENSSL - name: Build custom OpenSSL/LibreSSL run: .github/workflows/build_openssl.sh