diff --git a/.github/workflows/bind9.yml b/.github/workflows/bind9.yml index eb3d80c2..f793232b 100644 --- a/.github/workflows/bind9.yml +++ b/.github/workflows/bind9.yml @@ -72,15 +72,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/build-wolfprovider.yml b/.github/workflows/build-wolfprovider.yml index 234f5ba6..b4059e8c 100644 --- a/.github/workflows/build-wolfprovider.yml +++ b/.github/workflows/build-wolfprovider.yml @@ -52,6 +52,7 @@ jobs: equivs \ expect \ xxd \ + bc \ libdistro-info-perl - name: Checkout wolfProvider @@ -71,31 +72,20 @@ jobs: git remote add upstream https://github.com/wolfSSL/wolfProvider.git || true git fetch upstream --tags --no-recurse-submodules - # Build wolfSSL packages and install - # Note we do not use the cache currently. This is a future optimization. - # TODO: roll this step into utils-wolfssl.sh - - name: Build wolfSSL packages and install - run: | + - name: Install wolfSSL + run: | $GITHUB_WORKSPACE/debian/install-wolfssl.sh --tag ${{ inputs.wolfssl_ref }} ${{ env.WOLFSSL_PACKAGES_PATH }} - - name: Build wolfProvider + - name: Install OpenSSL run: | - WOLFSSL_TAG=${{ inputs.wolfssl_ref }} OPENSSL_TAG=${{ inputs.openssl_ref }} \ - yes "Y" | $GITHUB_WORKSPACE/scripts/build-wolfprovider.sh --debian \ - ${{ inputs.replace_default && '--replace-default' || '' }} + $GITHUB_WORKSPACE/debian/install-openssl.sh ${{ inputs.replace_default && '--replace-default' || '' }} ${{ env.OPENSSL_PACKAGES_PATH }} - - name: Setup packages directory + - name: Install wolfProvider run: | - mkdir -p ${{ env.OPENSSL_PACKAGES_PATH }} - cp $GITHUB_WORKSPACE/../openssl*.deb ${{ env.OPENSSL_PACKAGES_PATH }} - cp $GITHUB_WORKSPACE/../libssl*.deb ${{ env.OPENSSL_PACKAGES_PATH }} - - mkdir -p ${{ env.WOLFPROV_PACKAGES_PATH }} - cp $GITHUB_WORKSPACE/../libwolfprov*.deb ${{ env.WOLFPROV_PACKAGES_PATH }} - cp $GITHUB_WORKSPACE/../libwolfprov*.dsc ${{ env.WOLFPROV_PACKAGES_PATH }} - cp $GITHUB_WORKSPACE/../libwolfprov*.tar.gz ${{ env.WOLFPROV_PACKAGES_PATH }} + $GITHUB_WORKSPACE/debian/install-wolfprov.sh ${{ env.WOLFPROV_PACKAGES_PATH }} - printf "Listing packages directory:\n" + - name: List packages directories + run: | ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} ls -la ${{ env.WOLFSSL_PACKAGES_PATH }} ls -la ${{ env.OPENSSL_PACKAGES_PATH }} diff --git a/.github/workflows/cjose.yml b/.github/workflows/cjose.yml index c3f1d01b..f376b279 100644 --- a/.github/workflows/cjose.yml +++ b/.github/workflows/cjose.yml @@ -3,7 +3,7 @@ name: cjose Tests # START OF COMMON SECTION on: push: - branches: [ 'master', 'main', 'release/**' ] + branches: ['*'] #[ 'master', 'main', 'release/**' ] pull_request: branches: [ '*' ] @@ -79,15 +79,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/curl.yml b/.github/workflows/curl.yml index 677bab46..ee554ecc 100644 --- a/.github/workflows/curl.yml +++ b/.github/workflows/curl.yml @@ -71,15 +71,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/debian-package.yml b/.github/workflows/debian-package.yml index b32a7959..b34ebe0f 100644 --- a/.github/workflows/debian-package.yml +++ b/.github/workflows/debian-package.yml @@ -69,13 +69,13 @@ jobs: ls -la ${{ env.WOLFSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb apt-get update && \ apt install --reinstall -y openssl libssl3 - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed @@ -223,10 +223,10 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb @@ -254,7 +254,7 @@ jobs: - name: Install libwolfprov package run: | - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb echo "Installed packages after wolfprov:" diff --git a/.github/workflows/git-ssh-dr.yml b/.github/workflows/git-ssh-dr.yml index ddbcda05..0fbfa686 100644 --- a/.github/workflows/git-ssh-dr.yml +++ b/.github/workflows/git-ssh-dr.yml @@ -71,15 +71,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/grpc.yml b/.github/workflows/grpc.yml index 19f38c12..94efafc3 100644 --- a/.github/workflows/grpc.yml +++ b/.github/workflows/grpc.yml @@ -78,15 +78,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/hostap.yml b/.github/workflows/hostap.yml index a3982366..a500b618 100644 --- a/.github/workflows/hostap.yml +++ b/.github/workflows/hostap.yml @@ -73,15 +73,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Show OpenSSL version diff --git a/.github/workflows/iperf.yml b/.github/workflows/iperf.yml index 58e26d0f..d7ac3a0d 100644 --- a/.github/workflows/iperf.yml +++ b/.github/workflows/iperf.yml @@ -71,15 +71,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/ipmitool.yml b/.github/workflows/ipmitool.yml index 43adaebe..28ed2ae1 100644 --- a/.github/workflows/ipmitool.yml +++ b/.github/workflows/ipmitool.yml @@ -71,15 +71,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/krb5.yml b/.github/workflows/krb5.yml index e5e9b6ed..a44f5ba7 100644 --- a/.github/workflows/krb5.yml +++ b/.github/workflows/krb5.yml @@ -71,15 +71,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/libcryptsetup.yml b/.github/workflows/libcryptsetup.yml index 4ff27c54..f2e2306e 100644 --- a/.github/workflows/libcryptsetup.yml +++ b/.github/workflows/libcryptsetup.yml @@ -73,15 +73,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/libeac3.yml b/.github/workflows/libeac3.yml index 7e2a64ad..0a05c288 100644 --- a/.github/workflows/libeac3.yml +++ b/.github/workflows/libeac3.yml @@ -73,15 +73,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/libfido2.yml b/.github/workflows/libfido2.yml index af4dc5a4..a617a120 100644 --- a/.github/workflows/libfido2.yml +++ b/.github/workflows/libfido2.yml @@ -66,15 +66,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/libhashkit2.yml b/.github/workflows/libhashkit2.yml index a3b17975..25dd637c 100644 --- a/.github/workflows/libhashkit2.yml +++ b/.github/workflows/libhashkit2.yml @@ -71,15 +71,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/libnice.yml b/.github/workflows/libnice.yml index 06e47012..6cbcd9d6 100644 --- a/.github/workflows/libnice.yml +++ b/.github/workflows/libnice.yml @@ -70,15 +70,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/liboauth2.yml b/.github/workflows/liboauth2.yml index 77e94286..a0cd5a89 100644 --- a/.github/workflows/liboauth2.yml +++ b/.github/workflows/liboauth2.yml @@ -70,15 +70,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/libssh2.yml b/.github/workflows/libssh2.yml index cee0ffa1..4131af8a 100644 --- a/.github/workflows/libssh2.yml +++ b/.github/workflows/libssh2.yml @@ -70,15 +70,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/libwebsockets.yml b/.github/workflows/libwebsockets.yml index 0a8c9b73..f406a869 100644 --- a/.github/workflows/libwebsockets.yml +++ b/.github/workflows/libwebsockets.yml @@ -72,15 +72,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Install libwebsockets dependencies diff --git a/.github/workflows/net-snmp.yml b/.github/workflows/net-snmp.yml index b9c84436..ab616b44 100644 --- a/.github/workflows/net-snmp.yml +++ b/.github/workflows/net-snmp.yml @@ -72,15 +72,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/nginx.yml b/.github/workflows/nginx.yml index d8437b62..c519cd6e 100644 --- a/.github/workflows/nginx.yml +++ b/.github/workflows/nginx.yml @@ -71,15 +71,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/openldap.yml b/.github/workflows/openldap.yml index fb83e3ff..b26d09ad 100644 --- a/.github/workflows/openldap.yml +++ b/.github/workflows/openldap.yml @@ -72,15 +72,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/opensc.yml b/.github/workflows/opensc.yml index 10fc6be8..d9f972fa 100644 --- a/.github/workflows/opensc.yml +++ b/.github/workflows/opensc.yml @@ -71,15 +71,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/openssh.yml b/.github/workflows/openssh.yml index 1aad0ea4..227ed679 100644 --- a/.github/workflows/openssh.yml +++ b/.github/workflows/openssh.yml @@ -81,15 +81,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/openvpn.yml b/.github/workflows/openvpn.yml index fe8b143e..ce6f3286 100644 --- a/.github/workflows/openvpn.yml +++ b/.github/workflows/openvpn.yml @@ -74,15 +74,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/pam-pkcs11.yml b/.github/workflows/pam-pkcs11.yml index 999fa2ce..5b5ee64c 100644 --- a/.github/workflows/pam-pkcs11.yml +++ b/.github/workflows/pam-pkcs11.yml @@ -81,15 +81,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/ppp.yml b/.github/workflows/ppp.yml index 4eb31233..c4436f2a 100644 --- a/.github/workflows/ppp.yml +++ b/.github/workflows/ppp.yml @@ -73,15 +73,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Install dependencies diff --git a/.github/workflows/python3-ntp.yml b/.github/workflows/python3-ntp.yml index d34eb283..92c84d0f 100644 --- a/.github/workflows/python3-ntp.yml +++ b/.github/workflows/python3-ntp.yml @@ -71,15 +71,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/qt5network5.yml b/.github/workflows/qt5network5.yml index e042d2f8..2e04d4d2 100644 --- a/.github/workflows/qt5network5.yml +++ b/.github/workflows/qt5network5.yml @@ -67,15 +67,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/rsync.yml b/.github/workflows/rsync.yml index 4cd26f4b..7a5ef352 100644 --- a/.github/workflows/rsync.yml +++ b/.github/workflows/rsync.yml @@ -67,15 +67,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/socat.yml b/.github/workflows/socat.yml index 7a4c34ff..12372220 100644 --- a/.github/workflows/socat.yml +++ b/.github/workflows/socat.yml @@ -69,15 +69,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/sscep.yml b/.github/workflows/sscep.yml index b9523028..9bb954e2 100644 --- a/.github/workflows/sscep.yml +++ b/.github/workflows/sscep.yml @@ -71,15 +71,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/stunnel.yml b/.github/workflows/stunnel.yml index 38d77482..9fb2a3b1 100644 --- a/.github/workflows/stunnel.yml +++ b/.github/workflows/stunnel.yml @@ -71,15 +71,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/systemd.yml b/.github/workflows/systemd.yml index 542b6d06..a359484b 100644 --- a/.github/workflows/systemd.yml +++ b/.github/workflows/systemd.yml @@ -71,15 +71,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/tcpdump.yml b/.github/workflows/tcpdump.yml index a4e90d3a..8bc455af 100644 --- a/.github/workflows/tcpdump.yml +++ b/.github/workflows/tcpdump.yml @@ -67,15 +67,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/tnftp.yml b/.github/workflows/tnftp.yml index 6590d9f5..461753e3 100644 --- a/.github/workflows/tnftp.yml +++ b/.github/workflows/tnftp.yml @@ -71,15 +71,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/tpm2-tools.yml b/.github/workflows/tpm2-tools.yml index d713052f..aef95e1e 100644 --- a/.github/workflows/tpm2-tools.yml +++ b/.github/workflows/tpm2-tools.yml @@ -72,15 +72,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/x11vnc.yml b/.github/workflows/x11vnc.yml index 0e15759d..8d0098fc 100644 --- a/.github/workflows/x11vnc.yml +++ b/.github/workflows/x11vnc.yml @@ -71,15 +71,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/.github/workflows/xmlsec.yml b/.github/workflows/xmlsec.yml index 39cd5d50..18741b36 100644 --- a/.github/workflows/xmlsec.yml +++ b/.github/workflows/xmlsec.yml @@ -72,15 +72,15 @@ jobs: ls -la ${{ env.OPENSSL_PACKAGES_PATH }} ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb - apt install --reinstall -y \ + apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb - name: Verify wolfProvider is properly installed diff --git a/scripts/debian-changelog-update.sh b/debian/changelog-update.sh similarity index 100% rename from scripts/debian-changelog-update.sh rename to debian/changelog-update.sh diff --git a/debian/control b/debian/control index a923f182..83262682 100644 --- a/debian/control +++ b/debian/control @@ -38,33 +38,3 @@ XB-Variant: ${variant} Description: Development files for wolfProvider β€” ${variant:desc} This package contains the headers and development files for applications using wolfProvider. - -Package: openssl -Architecture: any -Section: utils -Multi-Arch: foreign -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Secure Sockets Layer toolkit - command line interface (wolfProvider build) - This package contains the OpenSSL command line utility. - -Package: libssl3 -Architecture: any -Multi-Arch: same -Depends: libssl3 (= ${binary:Version}), ${misc:Depends} -Breaks: libssl3 (<< 3.0.0) -Replaces: libssl3 -Recommends: openssl -Description: OpenSSL shared libraries (wolfProvider build) - This package contains the OpenSSL shared libraries built - for use with wolfProvider. - -Package: libssl-dev -Architecture: any -Section: libdevel -Multi-Arch: same -Depends: libssl3 (= ${binary:Version}), ${misc:Depends} -Breaks: libssl-dev (<< 3.0.0) -Replaces: libssl-dev -Description: OpenSSL development files (wolfProvider build) - This package contains headers, pkg-config files and linker symlinks - for the OpenSSL version built for wolfProvider. diff --git a/debian/install-openssl.sh b/debian/install-openssl.sh new file mode 100755 index 00000000..fcaa3830 --- /dev/null +++ b/debian/install-openssl.sh @@ -0,0 +1,201 @@ +#!/bin/bash +# +# Copyright (C) 2006-2025 wolfSSL Inc. +# +# This file is part of wolfProvider. +# +# wolfProvider is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# wolfProvider is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with wolfProvider. If not, see . + +# Script to install openSSL packages for Debian +# Clones from Debian repository and builds from source + +set -e + +REPO_ROOT=${GITHUB_WORKSPACE:-$(git rev-parse --show-toplevel)} + +openssl_clone() { + local debian_version=${1:-bookworm} + + printf "\tDownloading OpenSSL from Debian for $debian_version\n" + # Check if "deb-src" is in the sources.list, which allows us to + # grab the source from Debian. + if [ -f /etc/apt/sources.list ] && grep -q "deb-src" /etc/apt/sources.list; then + printf "\tDebian sources.list already contains deb-src\n" + else + printf "\tAdding deb-src to sources.list\n" + echo "deb-src http://deb.debian.org/debian ${debian_version} main" >> /etc/apt/sources.list + echo "deb-src http://deb.debian.org/debian-security ${debian_version}-security main" >> /etc/apt/sources.list + echo "deb-src http://deb.debian.org/debian ${debian_version}-updates main" >> /etc/apt/sources.list + fi + + apt update + apt-get source -t ${debian_version} openssl + + openssl_dir=$(ls -td openssl-* | head -n 1) + printf "OpenSSL source directory: $openssl_dir\n" + cd $openssl_dir +} + +openssl_patch_version() { + local replace_default=${1:-0} + printf "\tPatching OpenSSL version" + # Patch the OpenSSL version with our BUILD_METADATA + if [ "$replace_default" = "1" ]; then + sed -i 's/BUILD_METADATA=.*/BUILD_METADATA=wolfProvider-replace-default/g' VERSION.dat + else + sed -i 's/BUILD_METADATA=.*/BUILD_METADATA=wolfProvider/g' VERSION.dat + fi + # Patch the OpenSSL RELEASE_DATE field with the current date in the format DD MMM YYYY + sed -i "s/RELEASE_DATE=.*/RELEASE_DATE=$(date '+%d %b %Y')/g" VERSION.dat +} + +openssl_is_patched() { + # Return 0 if patched, 1 if not + local file="crypto/provider_predefined.c" + + # File must exist to be patched + [[ -f "$file" ]] || return 1 + + # Any time we see libwolfprov, we're patched + if grep -q 'libwolfprov' -- "$file"; then + return 0 + fi + + # Not patched + return 1 +} + +openssl_patch() { + local replace_default=${1:-0} + + if openssl_is_patched; then + printf "\tOpenSSL already patched\n" + elif [ "$replace_default" = "1" ]; then + printf "\tApplying OpenSSL default provider patch ... " + + # Apply the patch + patch -p1 < ${REPO_ROOT}/patches/openssl3-replace-default.patch + if [ $? != 0 ]; then + printf "ERROR.\n" + printf "\n\nPatch application failed.\n" + exit 1 + fi + fi + # Patch the OpenSSL version with our metadata + openssl_patch_version $replace_default + + DEBFULLNAME="${DEBFULLNAME:-WolfSSL Developer}" DEBEMAIL="${DEBEMAIL:-support@wolfssl.com}" dch -l +wolfprov "Adjust VERSION.dat for custom build" + DEBIAN_FRONTEND=noninteractive EDITOR=true dpkg-source --commit . adjust-version-dat +} + +openssl_build() { + DEB_BUILD_OPTIONS="parallel=$(nproc) nocheck" dpkg-buildpackage -us -uc +} + +openssl_install() { + # Install all packages in the parent directory + for file in ../*.deb; do + if [ -f "$file" ]; then + packages+=("$file") + fi + done + + if [ ${#packages[@]} -eq 0 ]; then + echo "No packages found in parent directory" + exit 1 + fi + + printf "Installing packages:\n" + printf "\t%s\n" "${packages[@]}" + dpkg -i --force-overwrite ${packages[@]} +} + +main() { + local replace_default=0 + local no_install=0 + local work_dir= + local output_dir= + + # Parse command line arguments + while [[ $# -gt 0 ]]; do + case "$1" in + --replace-default) + replace_default=1 + shift + ;; + --no-install) + no_install=1 + shift + ;; + -h|--help) + echo "Usage: $0 [options]" + echo " --replace-default Apply patch to replace default provider" + echo " --no-install Build only, do not install packages" + echo " -h, --help Show this help message" + echo "Arguments:" + echo " output-directory Directory to to store built packages (default: mktemp -d)" + exit 0 + ;; + --) + shift + break + ;; + *) + if [ -z "$output_dir" ]; then + output_dir=$1 + else + echo "Too many arguments" >&2 + echo "Use --help for usage information" >&2 + exit 1 + fi + shift + ;; + esac + done + + if [ $replace_default -eq 0 ] && [ $no_install -eq 0 ]; then + printf "Using standard OpenSSL build\n" + apt install -y --reinstall --allow-downgrades --allow-change-held-packages \ + openssl libssl3 libssl-dev + exit 0 + fi + + work_dir=$(mktemp -d) + printf "Working directory: $work_dir\n" + pushd $work_dir 2>&1 > /dev/null + + openssl_clone + openssl_patch $replace_default + openssl_build + + if [ $no_install -eq 0 ]; then + openssl_install + fi + + if [ -n "$output_dir" ]; then + if [ ! -d "$output_dir" ]; then + printf "Creating output directory: $output_dir\n" + mkdir -p "$output_dir" + fi + cp ../openssl*.deb $output_dir + cp ../libssl*.deb $output_dir + else + printf "No output directory specified, packages stored in $work_dir\n" + fi + + printf "Done.\n" +} + +# Run main function with all arguments +main "$@" diff --git a/debian/install-wolfprov.sh b/debian/install-wolfprov.sh new file mode 100755 index 00000000..99eef274 --- /dev/null +++ b/debian/install-wolfprov.sh @@ -0,0 +1,217 @@ +#!/bin/bash +# +# Copyright (C) 2006-2025 wolfSSL Inc. +# +# This file is part of wolfProvider. +# +# wolfProvider is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# wolfProvider is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with wolfProvider. If not, see . +set -euo pipefail + +PKG_NAME="libwolfprov" +REPO_ROOT=${GITHUB_WORKSPACE:-$(git rev-parse --show-toplevel)} + +wolfprov_build() { + local WOLFSSL_ISFIPS=${1:-0} + local WOLFPROV_DEBUG=${2:-0} + + printf "Running wolfprov_build with WOLFSSL_ISFIPS=$WOLFSSL_ISFIPS and WOLFPROV_DEBUG=$WOLFPROV_DEBUG\n" + + export WOLFSSL_ISFIPS + export WOLFPROV_DEBUG + + # Step 1: Determine the repo root + REPO_ROOT=${GITHUB_WORKSPACE:-$(git rev-parse --show-toplevel)} + cd "$REPO_ROOT" + + # Step 2: Determine version from debian/changelog (no tag checks) + if [[ ! -f debian/changelog ]]; then + echo "❌ Error: debian/changelog not found." + echo "πŸ‘‰ Run scripts/debian-changelog-update.sh to create/update the changelog first." + exit 1 + fi + + VERSION=$(dpkg-parsechangelog --show-field Version) + UPSTREAM_VERSION="${VERSION%%-*}" + current_commit=$(git rev-parse HEAD) + echo "πŸ“Œ Using version from changelog: $VERSION (upstream: $UPSTREAM_VERSION)" + + TARBALL="${PKG_NAME}_${UPSTREAM_VERSION}.orig.tar.gz" + TARBALL_PREFIX="${PKG_NAME}-${UPSTREAM_VERSION}" + + # Step 5: Warn if not on master + current_branch=$(git rev-parse --abbrev-ref HEAD) + if [[ "$current_branch" != "master" ]]; then + echo "⚠️ Warning: On branch '$current_branch', not 'master'" + fi + + # Step 6: Check for uncommitted changes + if ! git diff --quiet || ! git diff --cached --quiet; then + echo "⚠️ Error: Uncommitted changes in working tree:" + git status --short + exit 1 + fi + + # Step 7: Clean untracked files + echo "🧹 Cleaning untracked files..." + $REPO_ROOT/scripts/build-wolfprovider.sh --distclean + git clean -fdx + + # Step 8: Changelog updates handled by scripts/debian-changelog-update.sh + + # Step 9: Create tarball + if [[ -f "../$TARBALL" ]]; then + echo "πŸ—‘οΈ Removing existing tarball: $TARBALL" + rm -f "../$TARBALL" + fi + echo "πŸ“¦ Creating tarball $TARBALL from commit $current_commit..." + git archive --format=tar.gz --prefix="${TARBALL_PREFIX}/" \ + -o "../$TARBALL" "$current_commit" + + # Step 9.1: Set up ccache if installed + # Optional ccache + if command -v ccache >/dev/null 2>&1; then + export CC="ccache gcc" + export CXX="ccache g++" + else + export CC="gcc" + export CXX="g++" + fi + + # Optional tuning (safe if unset) + : "${CCACHE_DIR:=}" + : "${CCACHE_BASEDIR:=}" + : "${CCACHE_NOHASHDIR:=}" + : "${CCACHE_SLOPPINESS:=}" + CCACHE_COMPILERCHECK=${CCACHE_COMPILERCHECK:-content} + + # Step 10: Build package with optional ccache (if installed) + echo "βš™οΈ Building package..." + WOLFSSL_ISFIPS=${WOLFSSL_ISFIPS:-0} + dpkg-buildpackage -us -uc \ + -eWOLFSSL_ISFIPS \ + -eCC -eCXX \ + -eCCACHE_DIR -eCCACHE_BASEDIR -eCCACHE_NOHASHDIR -eCCACHE_COMPILERCHECK + + echo "βœ… Build completed for version $VERSION" +} + +wolfprov_install() { + # Install all packages in the parent directory + for file in ../*.deb; do + if [ -f "$file" ]; then + packages+=("$file") + fi + done + + if [ ${#packages[@]} -eq 0 ]; then + echo "No packages found in parent directory" + exit 1 + fi + + printf "Installing packages:\n" + printf "\t%s\n" "${packages[@]}" + dpkg -i --force-overwrite ${packages[@]} +} + +# Main execution +main() { + local debug_mode=0 + local fips_mode=0 + local no_install=0 + local output_dir= + + # Parse command line arguments + while [[ $# -gt 0 ]]; do + case $1 in + -h|--help) + echo "Usage: $0 [options] [working-directory]" + echo " Installs wolfSSL from git repository by cloning, configuring, and building .deb packages" + echo "" + echo "Options:" + echo " -t, --tag TAG Clone and build specific tag or branch (default: master)" + echo " -d, --debug Enable debug build mode (adds --enable-debug)" + echo " -f, --fips Enable FIPS build mode (adds --enable-fips)" + echo " -n, --no-install Build only, do not install packages" + echo " -h, --help Show this help message" + echo "" + echo "Arguments:" + echo " output-directory Directory to use for build (default: temporary directory)" + exit 0 + ;; + -d|--debug) + debug_mode=1 + shift + ;; + -f|--fips) + fips_mode=1 + shift + ;; + -n|--no-install) + no_install=1 + shift + ;; + *) + if [ -z "$output_dir" ]; then + output_dir="$1" + else + echo "Too many arguments" >&2 + echo "Use --help for usage information" >&2 + exit 1 + fi + shift + ;; + esac + done + + # Check for any existing packages in the parent directory. + # These would conflict with the install. + existing_packages=() + for file in $output_dir/libwolfprov*.deb; do + if [ -f "$file" ]; then + existing_packages+=("$file") + fi + done + if [ ${#existing_packages[@]} -gt 0 ]; then + echo "Error: libwolfprov*.deb already exists in output directory, please remove them first" + echo "Existing packages: ${existing_packages[@]}" + exit 1 + fi + + work_dir=$(mktemp -d) + printf "Working directory: $work_dir\n" + pushd $work_dir 2>&1 > /dev/null + cp -r $REPO_ROOT . + cd $(basename $REPO_ROOT) + + wolfprov_build $fips_mode $debug_mode + if [ $no_install -eq 0 ]; then + wolfprov_install + fi + + if [ -n "$output_dir" ]; then + if [ ! -d "$output_dir" ]; then + printf "Creating output directory: $output_dir\n" + mkdir -p "$output_dir" + fi + cp ../*.* $output_dir + else + printf "No output directory specified, packages stored in $work_dir\n" + fi + + printf "Done.\n" +} + +# Run main function with all arguments +main "$@" + diff --git a/debian/install-wolfssl.sh b/debian/install-wolfssl.sh index 16e39d4e..5c45bfde 100755 --- a/debian/install-wolfssl.sh +++ b/debian/install-wolfssl.sh @@ -1,4 +1,21 @@ #!/bin/bash +# +# Copyright (C) 2006-2025 wolfSSL Inc. +# +# This file is part of wolfProvider. +# +# wolfProvider is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# wolfProvider is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with wolfProvider. If not, see . # Script to install wolfSSL packages for Debian # Clones from git repository and builds from source @@ -22,6 +39,7 @@ install_wolfssl_from_git() { local git_tag="$2" local debug_mode="$3" local reinstall_mode="$4" + local no_install="$5" local main_branch="master" # If no working directory specified, create one using mktemp @@ -181,13 +199,15 @@ AC_CONFIG_FILES([debian/rules],[chmod +x debian/rules])' configure.ac echo "Building Debian packages..." make deb - # Install the generated packages - echo "Installing generated .deb packages..." - if [ "$reinstall_mode" = "true" ]; then - echo "Reinstall mode: forcing package reinstallation..." - dpkg -i --force-overwrite --force-confnew ../*.deb - else - dpkg -i ../*.deb + if [ "$no_install" = "false" ]; then + # Install the generated packages + echo "Installing generated .deb packages..." + if [ "$reinstall_mode" = "true" ]; then + echo "Reinstall mode: forcing package reinstallation..." + dpkg -i --force-overwrite --force-confnew ../*.deb + else + dpkg -i ../*.deb + fi fi echo "WolfSSL installation from git completed successfully" @@ -199,6 +219,7 @@ main() { local git_tag="" local debug_mode="false" local reinstall_mode="false" + local no_install="false" # Parse command line arguments while [[ $# -gt 0 ]]; do @@ -211,7 +232,8 @@ main() { echo " -t, --tag TAG Clone and build specific tag or branch (default: master)" echo " -d, --debug Enable debug build mode (adds --enable-debug)" echo " -r, --reinstall Force reinstall even if packages are already installed" - echo " -h, --help Show this help message" + echo " -n, --no-install Build only, do not install packages" + echo " -h, --help Show this help message" echo "" echo "Arguments:" echo " working-directory Directory to use for build (default: temporary directory)" @@ -238,6 +260,10 @@ main() { reinstall_mode="true" shift ;; + -n|--no-install) + no_install="true" + shift + ;; -*) echo "Unknown option: $1" >&2 echo "Use --help for usage information" >&2 @@ -274,7 +300,7 @@ main() { echo "Building wolfSSL master branch" fi - install_wolfssl_from_git "$work_dir" "$git_tag" "$debug_mode" "$reinstall_mode" + install_wolfssl_from_git "$work_dir" "$git_tag" "$debug_mode" "$reinstall_mode" "$no_install" echo "WolfSSL installation completed successfully" } diff --git a/debian/libwolfprov.postinst b/debian/libwolfprov.postinst index c9218fd4..0f2f2fa2 100755 --- a/debian/libwolfprov.postinst +++ b/debian/libwolfprov.postinst @@ -11,7 +11,7 @@ CONF_FILES=$(find /usr /lib /etc -name openssl.cnf 2>/dev/null) REPLACE_DEFAULT=0 if command -v openssl >/dev/null 2>&1; then OPENSSL_VERSION=$(openssl version) - if echo "$OPENSSL_VERSION" | grep -q "wolfProvider"; then + if echo "$OPENSSL_VERSION" | grep -q "replace-default"; then REPLACE_DEFAULT=1 fi fi diff --git a/debian/rules b/debian/rules index 2f22f071..a5ab2d25 100755 --- a/debian/rules +++ b/debian/rules @@ -6,14 +6,11 @@ # Multiarch triplet DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) # Destination directory for installation -DESTDIR=debian/tmp +DESTDIR=$(CURDIR)/debian/tmp # Grab the base version from debian/changelog BASEVER := $(shell dpkg-parsechangelog -SVersion) -# Get OpenSSL version from the build (this will be set after build) -OPENSSL_VERSION ?= 3.5.0 - # Check if FIPS build is requested WOLFSSL_ISFIPS?=0 # Variant-specific metadata @@ -42,107 +39,47 @@ ifeq ($(WOLFPROV_DEBUG),1) endif override_dh_auto_configure: - # None, handled below + ./autogen.sh +ifneq ($(WOLFPROV_DEBUG),0) + ./configure --enable-debug +else + ./configure +endif override_dh_auto_build: - # Always build OpenSSL with wolfProvider as the default provider even - # if we choose not to use it. - WOLFPROV_BUILD_DEBIAN=1 WOLFPROV_DEBUG=$(WOLFPROV_DEBUG) ./scripts/build-wolfprovider.sh --replace-default $(FIPS_FLAG) + $(MAKE) override_dh_auto_install: - # Detect OpenSSL library directory (lib or lib64) - $(eval OPENSSL_LIB_DIR := $(shell if test -d ./openssl-install/lib; then echo lib; elif test -d ./openssl-install/lib64; then echo lib64; else echo "ERROR: Neither ./openssl-install/lib nor ./openssl-install/lib64 found"; exit 1; fi)) - - # Install OpenSSL binary for openssl package - install -d $(DESTDIR)/usr/bin - install -m755 ./openssl-install/bin/openssl \ - $(DESTDIR)/usr/bin/ - - # Install OpenSSL shared libraries for libssl3 package - install -d $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH) - install -m755 ./openssl-install/$(OPENSSL_LIB_DIR)/libssl.so.3 \ - ./openssl-install/$(OPENSSL_LIB_DIR)/libcrypto.so.3 \ - $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/ - - # Install OpenSSL headers and dev files for libssl-dev package - # Copy directly to the destination directory - install -d $(DESTDIR)/usr/include/openssl - cp -a $(CURDIR)/openssl-install/include/openssl/. $(DESTDIR)/usr/include/openssl - - # Install wolfProvider library install -d $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/ossl-modules install -m755 ./.libs/libwolfprov.so.0.0.0 \ $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/ossl-modules/ - # Install wolfProvider headers install -d $(DESTDIR)/usr/include/wolfprovider install -m644 ./include/wolfprovider/*.h \ $(DESTDIR)/usr/include/wolfprovider/ + # $(MAKE) DESTDIR=$(DESTDIR) install + # Install provider config file install -d $(DESTDIR)/etc/ssl/openssl.cnf.d install -m644 ./$(PROVIDER_CONF) \ $(DESTDIR)/etc/ssl/openssl.cnf.d/wolfprovider.conf - # Install openssl.cnf directly into /etc/ssl - install -d $(DESTDIR)/etc/ssl - install -m 0644 ./openssl-source/apps/openssl.cnf \ - $(DESTDIR)/etc/ssl/openssl.cnf - - # Install pkg-config files for libssl-dev - install -d $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig - install -m644 ./openssl-install/$(OPENSSL_LIB_DIR)/pkgconfig/*.pc \ - $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/ - # Normalize .pc to system paths - sed -i -e 's|^prefix=.*|prefix=/usr|' \ - -e 's|^exec_prefix=.*|exec_prefix=${prefix}|' \ - -e 's|^libdir=.*|libdir=/usr/lib/$(DEB_HOST_MULTIARCH)|' \ - -e 's|^includedir=.*|includedir=/usr/include|' \ - -e 's|^enginesdir=.*|enginesdir=/usr/lib/$(DEB_HOST_MULTIARCH)/engines-3|' \ - -e 's|^modulesdir=.*|modulesdir=/usr/lib/$(DEB_HOST_MULTIARCH)/ossl-modules|' \ - $(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/*.pc - override_dh_makeshlibs: - # Create shlibs only for real SONAME’d libs; skip provider modules under ossl-modules/ - dh_makeshlibs -V -p libssl3 - # do NOT run on libwolfprov (plugin-only, no SONAME) + # libwolfprov is a provider module (no SONAME); skip shlibs + : override_dh_gencontrol: - # Generate control for wolfProvider packages + # Only set variables for wolfProvider packages dh_gencontrol -- \ -v$(VERSION) \ -Vvariant=$(VARIANT) \ -Vvariant:desc="$(VARIANT_DESC)" \ -Vvariant:provides="$(VARIANT_PROVIDES)" - # Detect OpenSSL library directory (lib or lib64) - $(eval OPENSSL_LIB_DIR := $(shell if test -d ./openssl-install/lib; then echo lib; elif test -d ./openssl-install/lib64; then echo lib64; else echo "ERROR: Neither ./openssl-install/lib nor ./openssl-install/lib64 found"; exit 1; fi)) - - # Extract OpenSSL version from the current build - $(eval OPENSSL_VERSION := $(shell LD_LIBRARY_PATH=./openssl-install/$(OPENSSL_LIB_DIR):./wolfprovider-install/lib ./openssl-install/bin/openssl version | cut -d' ' -f2)) - - # Generate control for OpenSSL packages with OpenSSL version - dh_gencontrol -popenssl -- \ - -v$(OPENSSL_VERSION)-1 \ - -Vopenssl:Version=$(OPENSSL_VERSION) - dh_gencontrol -plibssl3 -- \ - -v$(OPENSSL_VERSION)-1 \ - -Vopenssl:Version=$(OPENSSL_VERSION) - dh_gencontrol -plibssl-dev -- \ - -v$(OPENSSL_VERSION)-1 \ - -Vopenssl:Version=$(OPENSSL_VERSION) - override_dh_auto_clean: dh_auto_clean rm -rf test/standalone/tests/.libs - ./scripts/build-wolfprovider.sh --clean --distclean override_dh_auto_test: - @echo "Skipping dh_auto_test (tests already run during build phase)" - -override_dh_install: - dh_install - -# Fail the build if anything in debian/tmp (or elsewhere) wasn’t picked up -override_dh_missing: - dh_missing --fail-missing + $(MAKE) test diff --git a/scripts/build-debian.sh b/scripts/build-debian.sh deleted file mode 100755 index 72b93051..00000000 --- a/scripts/build-debian.sh +++ /dev/null @@ -1,100 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2006-2024 wolfSSL Inc. -# -# This file is part of wolfProvider. -# -# wolfProvider is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# wolfProvider is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with wolfProvider. If not, see . -set -euo pipefail - -PKG_NAME="libwolfprov" - -WOLFSSL_ISFIPS=${WOLFSSL_ISFIPS:-0} -WOLFPROV_DEBUG=${WOLFPROV_DEBUG:-0} - -printf "Running build-debian.sh with WOLFSSL_ISFIPS=$WOLFSSL_ISFIPS and WOLFPROV_DEBUG=$WOLFPROV_DEBUG\n" - -# Step 1: Determine the repo root -REPO_ROOT=${GITHUB_WORKSPACE:-$(git rev-parse --show-toplevel)} -cd "$REPO_ROOT" - -# Step 2: Determine version from debian/changelog (no tag checks) -if [[ ! -f debian/changelog ]]; then - echo "❌ Error: debian/changelog not found." - echo "πŸ‘‰ Run scripts/debian-changelog-update.sh to create/update the changelog first." - exit 1 -fi - -VERSION=$(dpkg-parsechangelog --show-field Version) -UPSTREAM_VERSION="${VERSION%%-*}" -current_commit=$(git rev-parse HEAD) -echo "πŸ“Œ Using version from changelog: $VERSION (upstream: $UPSTREAM_VERSION)" - -TARBALL="${PKG_NAME}_${UPSTREAM_VERSION}.orig.tar.gz" -TARBALL_PREFIX="${PKG_NAME}-${UPSTREAM_VERSION}" - -# Step 5: Warn if not on master -current_branch=$(git rev-parse --abbrev-ref HEAD) -if [[ "$current_branch" != "master" ]]; then - echo "⚠️ Warning: On branch '$current_branch', not 'master'" -fi - -# Step 6: Check for uncommitted changes -if ! git diff --quiet || ! git diff --cached --quiet; then - echo "⚠️ Error: Uncommitted changes in working tree:" - git status --short - exit 1 -fi - -# Step 7: Clean untracked files -echo "🧹 Cleaning untracked files..." -git clean -fdx - -# Step 8: Changelog updates handled by scripts/debian-changelog-update.sh - -# Step 9: Create tarball -if [[ -f "../$TARBALL" ]]; then - echo "πŸ—‘οΈ Removing existing tarball: $TARBALL" - rm -f "../$TARBALL" -fi -echo "πŸ“¦ Creating tarball $TARBALL from commit $current_commit..." -git archive --format=tar.gz --prefix="${TARBALL_PREFIX}/" \ - -o "../$TARBALL" "$current_commit" - -# Step 9.1: Set up ccache if installed -# Optional ccache -if command -v ccache >/dev/null 2>&1; then - export CC="ccache gcc" - export CXX="ccache g++" -else - export CC="gcc" - export CXX="g++" -fi - -# Optional tuning (safe if unset) -: "${CCACHE_DIR:=}" -: "${CCACHE_BASEDIR:=}" -: "${CCACHE_NOHASHDIR:=}" -: "${CCACHE_SLOPPINESS:=}" -CCACHE_COMPILERCHECK=${CCACHE_COMPILERCHECK:-content} - -# Step 10: Build package with optional ccache (if installed) -echo "βš™οΈ Building package..." -WOLFSSL_ISFIPS=${WOLFSSL_ISFIPS:-0} -dpkg-buildpackage -us -uc \ - -eWOLFSSL_ISFIPS \ - -eCC -eCXX \ - -eCCACHE_DIR -eCCACHE_BASEDIR -eCCACHE_NOHASHDIR -eCCACHE_COMPILERCHECK - -echo "βœ… Build completed for version $VERSION" diff --git a/scripts/build-wolfprovider.sh b/scripts/build-wolfprovider.sh index 4000371d..1f1c8f3c 100755 --- a/scripts/build-wolfprovider.sh +++ b/scripts/build-wolfprovider.sh @@ -146,9 +146,29 @@ if [ -n "$WOLFPROV_LOG_FILE" ] && [ -z "$WOLFPROV_DEBUG" ]; then fi if [ -n "$build_debian" ]; then + set -e + echo "Building Debian package..." - WOLFSSL_ISFIPS=${WOLFSSL_ISFIPS:-0} WOLFPROV_DEBUG=${WOLFPROV_DEBUG:-0} ./scripts/build-debian.sh - exit $? + WOLFSSL_OPTS= + WOLFPROV_OPTS= + OPENSSL_OPTS= + + if [ "$WOLFPROV_DEBUG" = "1" ]; then + WOLFSSL_OPTS="--debug" + WOLFPROV_OPTS="--debug" + fi + if [ -n "$WOLFSSL_ISFIPS" ]; then + WOLFSSL_OPTS+=" --fips" + WOLFPROV_OPTS+=" --fips" + fi + + # Must install wolfSSL locally since it is needed to build wolfProvider + debian/install-wolfssl.sh $WOLFSSL_OPTS -r .. + # Always build replace-default mode for openssl. Use the standard one from apt. + debian/install-openssl.sh $OPENSSL_OPTS --replace-default .. + debian/install-wolfprov.sh $WOLFPROV_OPTS --no-install + + exit 0 fi if [ -n "$args" ]; then diff --git a/scripts/utils-openssl.sh b/scripts/utils-openssl.sh index 4aea1637..918df3f9 100755 --- a/scripts/utils-openssl.sh +++ b/scripts/utils-openssl.sh @@ -65,38 +65,15 @@ clone_openssl() { if [ ! -d ${OPENSSL_SOURCE_DIR} ]; then printf "\tOpenSSL source directory not found: ${OPENSSL_SOURCE_DIR}\n" - # If building for Debian, build from Debian baseline - if [ $WOLFPROV_BUILD_DEBIAN -eq 1 ]; then - printf "\tDownloading OpenSSL from Debian ... \n" - # Check if "deb-src" is in the sources.list, which allows us to - # grab the source from Debian. - if [ -f /etc/apt/sources.list ] && grep -q "deb-src" /etc/apt/sources.list; then - printf "\tDebian sources.list already contains deb-src\n" - else - printf "\tAdding deb-src to sources.list\n" - echo "deb-src http://deb.debian.org/debian bookworm main" >> /etc/apt/sources.list - echo "deb-src http://deb.debian.org/debian-security bookworm-security main" >> /etc/apt/sources.list - echo "deb-src http://deb.debian.org/debian bookworm-updates main" >> /etc/apt/sources.list - fi - - pushd $(mktemp -d) 2>&1 > /dev/null - apt update >>$LOG_FILE 2>&1 - apt-get source -t bookworm openssl >>$LOG_FILE 2>&1 - RET=$? - # Move the source to the correct directory - mv openssl-* ${OPENSSL_SOURCE_DIR} - popd 2>&1 > /dev/null - else - CLONE_TAG=${USE_CUR_TAG:+${OPENSSL_TAG_CUR}} - CLONE_TAG=${CLONE_TAG:-${OPENSSL_TAG}} - - DEPTH_ARG=${WOLFPROV_DEBUG:+""} - DEPTH_ARG=${DEPTH_ARG:---depth=1} - - printf "\tClone OpenSSL ${CLONE_TAG} from ${OPENSSL_GIT_URL} ... " - git clone ${DEPTH_ARG} -b ${CLONE_TAG} ${OPENSSL_GIT_URL} ${OPENSSL_SOURCE_DIR} >>$LOG_FILE 2>&1 - RET=$? - fi + CLONE_TAG=${USE_CUR_TAG:+${OPENSSL_TAG_CUR}} + CLONE_TAG=${CLONE_TAG:-${OPENSSL_TAG}} + + DEPTH_ARG=${WOLFPROV_DEBUG:+""} + DEPTH_ARG=${DEPTH_ARG:---depth=1} + + printf "\tClone OpenSSL ${CLONE_TAG} from ${OPENSSL_GIT_URL} ... " + git clone ${DEPTH_ARG} -b ${CLONE_TAG} ${OPENSSL_GIT_URL} ${OPENSSL_SOURCE_DIR} >>$LOG_FILE 2>&1 + RET=$? if [ $RET != 0 ]; then printf "ERROR.\n" @@ -137,35 +114,8 @@ is_openssl_patched() { return 1 } -check_openssl_replace_default_mismatch() { - local openssl_is_patched=0 - - # Check if the source was patched for --replace-default - if is_openssl_patched; then - openssl_is_patched=1 - printf "INFO: OpenSSL source modified - wolfProvider integrated as default provider (non-stock build).\n" - fi - - # Check for mismatch - if [ "$WOLFPROV_REPLACE_DEFAULT" = "1" ] && [ "$openssl_is_patched" = "0" ]; then - printf "ERROR: --replace-default build mode mismatch!\n" - printf "Existing OpenSSL was built WITHOUT --replace-default patch\n" - printf "Current request: --replace-default build\n\n" - printf "Fix: ./scripts/build-wolfprovider.sh --distclean\n" - printf "Then rebuild with desired configuration.\n" - exit 1 - elif [ "$WOLFPROV_REPLACE_DEFAULT" != "1" ] && [ "$openssl_is_patched" = "1" ]; then - printf "ERROR: Standard build mode mismatch!\n" - printf "Existing OpenSSL was built WITH --replace-default patch\n" - printf "Current request: standard build\n\n" - printf "Fix: ./scripts/build-wolfprovider.sh --distclean\n" - printf "Then rebuild with desired configuration.\n" - exit 1 - fi -} - patch_openssl_version() { - # Patch the OpenSSL version (wolfProvider/openssl-source/VERSION.dat) + # Patch the OpenSSL version (wolfProvider/openssl-source/VERSION.dat) # with our BUILD_METADATA, depending on the FIPS flag. Either "wolfProvider" or "wolfProvider-fips". if [ ${WOLFSSL_ISFIPS:-0} -eq 1 ]; then sed -i 's/BUILD_METADATA=.*/BUILD_METADATA=wolfProvider-fips/g' ${OPENSSL_SOURCE_DIR}/VERSION.dat @@ -220,77 +170,31 @@ patch_openssl() { fi } -install_openssl_deb() { - printf "\nInstalling OpenSSL ${OPENSSL_TAG} for Debian packaging ...\n" - clone_openssl - patch_openssl - check_openssl_replace_default_mismatch - - pushd ${OPENSSL_SOURCE_DIR} &> /dev/null - - if [ -d ${OPENSSL_INSTALL_DIR} ]; then - printf "\tOpenSSL install directory already exists: ${OPENSSL_INSTALL_DIR}\n" - printf "\tRemoving existing install directory...\n" - rm -rf ${OPENSSL_INSTALL_DIR} - fi - - # Build configure command - CONFIG_CMD="./config shared" - - # Determine the install paths for Debian Bookworm - DEB_HOST_MULTIARCH=$(dpkg-architecture -qDEB_HOST_MULTIARCH) - CONFIG_CMD+=" --prefix=/usr --openssldir=/usr/lib/ssl --libdir=lib/${DEB_HOST_MULTIARCH} " - - if [ "$WOLFPROV_DEBUG" = "1" ]; then - CONFIG_CMD+=" enable-trace --debug" - fi +check_openssl_replace_default_mismatch() { + local openssl_is_patched=0 - if [ "$WOLFPROV_REPLACE_DEFAULT" = "1" ]; then - CONFIG_CMD+=" no-external-tests no-tests" + # Check if the source was patched for --replace-default + if is_openssl_patched; then + openssl_is_patched=1 + printf "INFO: OpenSSL source modified - wolfProvider integrated as default provider (non-stock build).\n" fi - printf "\tConfigure OpenSSL ${OPENSSL_TAG} ... " - $CONFIG_CMD >>$LOG_FILE 2>&1 - RET=$? - if [ $RET != 0 ]; then - printf "ERROR.\n" - rm -rf ${OPENSSL_INSTALL_DIR} - do_cleanup - exit 1 - fi - printf "Done.\n" - - printf "\tBuild OpenSSL ${OPENSSL_TAG} ... " - make -j$NUMCPU >>$LOG_FILE 2>&1 - if [ $? != 0 ]; then - printf "ERROR.\n" - rm -rf ${OPENSSL_INSTALL_DIR} - do_cleanup + # Check for mismatch + if [ "$WOLFPROV_REPLACE_DEFAULT" = "1" ] && [ "$openssl_is_patched" = "0" ]; then + printf "ERROR: --replace-default build mode mismatch!\n" + printf "Existing OpenSSL was built WITHOUT --replace-default patch\n" + printf "Current request: --replace-default build\n\n" + printf "Fix: ./scripts/build-wolfprovider.sh --distclean\n" + printf "Then rebuild with desired configuration.\n" exit 1 - fi - printf "Done.\n" - - printf "\tInstalling OpenSSL ${OPENSSL_TAG} ... " - make -j$NUMCPU install DESTDIR=${OPENSSL_INSTALL_DIR} >>$LOG_FILE 2>&1 - if [ $? != 0 ]; then - printf "ERROR.\n" - rm -rf ${OPENSSL_INSTALL_DIR} - do_cleanup + elif [ "$WOLFPROV_REPLACE_DEFAULT" != "1" ] && [ "$openssl_is_patched" = "1" ]; then + printf "ERROR: Standard build mode mismatch!\n" + printf "Existing OpenSSL was built WITH --replace-default patch\n" + printf "Current request: standard build\n\n" + printf "Fix: ./scripts/build-wolfprovider.sh --distclean\n" + printf "Then rebuild with desired configuration.\n" exit 1 fi - printf "Done.\n" - - # We use a different install path for Debian, which places the outputs in $OPENSSL_INSTALL_DIR/usr/lib/${DEB_HOST_MULTIARCH} - # rather than $OPENSSL_INSTALL_DIR. So manually copy the outputs to the correct path. - printf "\tCopying outputs to ${OPENSSL_INSTALL_DIR} for OpenSSL ${OPENSSL_TAG} ... " - mkdir -p $OPENSSL_INSTALL_DIR/lib - cp -r $OPENSSL_INSTALL_DIR/usr/lib/${DEB_HOST_MULTIARCH}/* $OPENSSL_INSTALL_DIR/lib - cp -r $OPENSSL_INSTALL_DIR/usr/bin $OPENSSL_INSTALL_DIR/bin - cp -r $OPENSSL_INSTALL_DIR/usr/include $OPENSSL_INSTALL_DIR/include - cp -r $OPENSSL_INSTALL_DIR/usr/lib/pkgconfig $OPENSSL_INSTALL_DIR/lib/pkgconfig - printf "Done.\n" - - popd &> /dev/null } install_openssl() { @@ -351,7 +255,11 @@ init_openssl() { WOLFPROV_BUILD_DEBIAN=${WOLFPROV_BUILD_DEBIAN:-0} if [ $WOLFPROV_BUILD_DEBIAN -eq 1 ]; then - install_openssl_deb + OPENSSL_OPTS= + if [ "$WOLFPROV_REPLACE_DEFAULT" = "1" ]; then + OPENSSL_OPTS+=" --replace-default" + fi + $SCRIPT_DIR/debian/install-openssl.sh $OPENSSL_OPTS --output-dir ${REPO_DIR}/.. else install_openssl fi diff --git a/scripts/utils-wolfprovider.sh b/scripts/utils-wolfprovider.sh index 9923a094..1d669640 100644 --- a/scripts/utils-wolfprovider.sh +++ b/scripts/utils-wolfprovider.sh @@ -25,18 +25,24 @@ source ${SCRIPT_DIR}/utils-general.sh WOLFPROV_SOURCE_DIR=${SCRIPT_DIR}/.. WOLFPROV_INSTALL_DIR=${SCRIPT_DIR}/../wolfprov-install -LIBDEFAULT_INSTALL_DIR=${WOLFPROV_INSTALL_DIR} -LIBDEFAULT_STUB_INSTALL_DIR=${SCRIPT_DIR}/../libdefault-stub-install WOLFPROV_WITH_WOLFSSL=--with-wolfssl=${WOLFSSL_INSTALL_DIR} +WOLFPROV_WITH_OPENSSL=--with-openssl=${OPENSSL_INSTALL_DIR} # Check if using system wolfSSL installation -if command -v dpkg >/dev/null 2>&1; then +if [ ! -d "$WOLFSSL_INSTALL_DIR" ] && command -v dpkg >/dev/null 2>&1; then if dpkg -l | grep -q "^ii.*libwolfssl[[:space:]]" && dpkg -l | grep -q "^ii.*libwolfssl-dev[[:space:]]"; then WOLFPROV_WITH_WOLFSSL= fi fi -WOLFPROV_CONFIG_OPTS=${WOLFPROV_CONFIG_OPTS:-"--with-openssl=${OPENSSL_INSTALL_DIR} ${WOLFPROV_WITH_WOLFSSL} --prefix=${WOLFPROV_INSTALL_DIR}"} +# Check if using system openssl installation +if [ ! -d "$OPENSSL_INSTALL_DIR" ] && command -v dpkg >/dev/null 2>&1; then + if dpkg -l | grep -q "^ii.*libssl[[:space:]]" && dpkg -l | grep -q "^ii.*libssl-dev[[:space:]]"; then + WOLFPROV_WITH_OPENSSL= + fi +fi + +WOLFPROV_CONFIG_OPTS=${WOLFPROV_CONFIG_OPTS:-"${WOLFPROV_WITH_OPENSSL} ${WOLFPROV_WITH_WOLFSSL} --prefix=${WOLFPROV_INSTALL_DIR}"} WOLFPROV_CONFIG_CFLAGS=${WOLFPROV_CONFIG_CFLAGS:-''} if [ "${WOLFPROV_QUICKTEST}" = "1" ]; then diff --git a/scripts/verify-install.sh b/scripts/verify-install.sh index b5623d47..c54c24de 100755 --- a/scripts/verify-install.sh +++ b/scripts/verify-install.sh @@ -131,61 +131,33 @@ verify_provider_loaded() { verify_openssl_version() { local replace_default="$1" - local fips="$2" # When replace-default is 0, expect something like this: # $openssl version # OpenSSL 3.0.17 1 Jul 2025 (Library: OpenSSL 3.0.17 1 Jul 2025 - # When replace-default is 1 and fips is 0, expect something like this: - # $ openssl version - # OpenSSL 3.5.2+wolfProvider-nonfips 03 Oct 2025 (Library: OpenSSL 3.5.2+wolfProvider-nonfips 03 Oct 2025) - log_info "Verifying OpenSSL version..." local version_output - version_output=$(openssl version -a 2>&1) + version_output=$(openssl version 2>&1) echo "OpenSSL version information:" echo "$version_output" if [ $replace_default -eq 0 ]; then - # Verify that wolfProv (case-insensitive) is in the version output - if echo "$version_output" | grep -qi "wolfProv"; then - handle_error "wolfProv is in the version output" + # Verify that "wolf" is not in the version output + # We should be using a stock OpenSSL build, not ours + if echo "$version_output" | grep "OpenSSL 3" | grep -qi "wolf"; then + handle_error "OpenSSL version appears to be patched" else - log_success "wolfProv is not in the version output" + log_success "OpenSSL version is not patched" fi else - # Verify that wolfProvider (case-insensitive) is in the version output - # for both the OpenSSL version and the Library version - # Check for both "# OpenSSL 3.x.y+wolfProvider" and "Library: OpenSSL 3.x.y+wolfProvider" separately - if echo "$version_output" | grep -qiE "OpenSSL 3\.[0-9]+\.[0-9]+\+wolfProvider"; then - log_success "OpenSSL version is correct" - else - handle_error "OpenSSL version is incorrect for replace default" - fi - - if echo "$version_output" | grep -qiE "Library: OpenSSL 3\.[0-9]+\.[0-9]+\+wolfProvider"; then - log_success "libssl3 version is correct" - else - handle_error "libssl3 version is incorrect for replace default" - fi - - if [ $fips -eq 0 ]; then - # For non-FIPS, expect "wolfProvider-nonfips" in the version output - # For FIPS, expect "wolfProvider-fips" in the version output - if echo "$version_output" | grep -qi "wolfProvider-nonfips"; then - log_success "wolfProvider-nonfips is in the version output" - else - handle_error "wolfProvider-nonfips is not in the version output" - fi + # Verify that wolfProv (case-insensitive) is in the version output + if echo "$version_output" | grep "OpenSSL 3" | grep -qi "wolf"; then + log_success "wolfProv is not in the version output" else - if echo "$version_output" | grep -qi "wolfProvider-fips"; then - log_success "wolfProvider-fips is in the version output" - else - handle_error "wolfProvider-fips is not in the version output" - fi + handle_error "wolfProv is in the version output" fi fi }