diff --git a/.github/workflows/build_openssl.sh b/.github/workflows/build_openssl.sh index d2358d1a7f1a..947b828222b2 100755 --- a/.github/workflows/build_openssl.sh +++ b/.github/workflows/build_openssl.sh @@ -9,6 +9,10 @@ shlib_sed() { 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 @@ -20,9 +24,18 @@ if [[ "${TYPE}" == "openssl" ]]; then tar zxf "openssl-${VERSION}.tar.gz" pushd "openssl-${VERSION}" fi + # For OpenSSL 3 we need to call this before config + if [[ "${VERSION}" =~ ^3. ]] || [[ "${VERSION}" =~ ^[0-9a-f]{40}$ ]]; then + shlib_sed_3 + fi + # CONFIG_FLAGS is a global coming from a previous step ./config ${CONFIG_FLAGS} -fPIC --prefix="${OSSL_PATH}" - shlib_sed + + # For OpenSSL 1 we need to call this after config + if [[ "${VERSION}" =~ ^1. ]]; then + shlib_sed + 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..0dcce6503b7f 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: @@ -67,7 +67,7 @@ jobs: ~/.cargo/registry/src/ ~/.cargo/git/db/ src/rust/target/ - key: ${{ runner.os }}-${{ matrix.PYTHON.VERSION }}-${{ steps.setup-python.outputs.python-version }}-cargo-3-${{ hashFiles('**/Cargo.lock') }} + key: ${{ runner.os }}-${{ matrix.PYTHON.VERSION }}-${{ steps.setup-python.outputs.python-version }}-cargo-5-${{ hashFiles('**/Cargo.lock') }} - uses: actions/checkout@v3.2.0 timeout-minutes: 3 @@ -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 }}-4 if: matrix.PYTHON.OPENSSL - name: Build custom OpenSSL/LibreSSL run: .github/workflows/build_openssl.sh