From 3c61d746a7cf36241b6edf4ecf9061b32b70910c Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Wed, 7 Feb 2024 13:45:02 +1100 Subject: [PATCH] Interop test against PuTTY snapshot. --- .github/configs | 3 + .github/setup_ci.sh | 26 +++++++ .github/workflows/c-cpp.yml | 145 +++++++++++++++++++----------------- 3 files changed, 105 insertions(+), 69 deletions(-) diff --git a/.github/configs b/.github/configs index 963e87719912..3563ca633e50 100755 --- a/.github/configs +++ b/.github/configs @@ -164,6 +164,9 @@ case "$config" in libressl-*) LIBCRYPTOFLAGS="--with-ssl-dir=/opt/libressl --with-rpath=-Wl,-rpath," ;; + putty-*) + CONFIGFLAGS="--with-plink=/usr/local/bin/plink --with-puttygen=/usr/local/bin/puttygen" + ;; openssl-*) LIBCRYPTOFLAGS="--with-ssl-dir=/opt/openssl --with-rpath=-Wl,-rpath," # OpenSSL 1.1.1 specifically has a bug in its RNG that breaks reexec diff --git a/.github/setup_ci.sh b/.github/setup_ci.sh index d0ba7b4724e9..f0f2761c7107 100755 --- a/.github/setup_ci.sh +++ b/.github/setup_ci.sh @@ -142,6 +142,10 @@ for TARGET in $TARGETS; do INSTALL_BORINGSSL=1 PACKAGES="${PACKAGES} cmake ninja-build" ;; + putty-*) + INSTALL_PUTTY=$(echo "${TARGET}" | cut -f2 -d-) + PACKAGES="${PACKAGES} cmake" + ;; valgrind*) PACKAGES="$PACKAGES valgrind" ;; @@ -241,3 +245,25 @@ if [ ! -z "${INSTALL_ZLIB}" ]; then cd ${HOME}/zlib && ./configure && make && sudo make install prefix=/opt/zlib) fi + +if [ ! -z "${INSTALL_PUTTY}" ]; then + ver="${INSTALL_PUTTY}" + case "${INSTALL_PUTTY}" in + snapshot) + tarball=putty.tar.gz + (cd /tmp && wget https://tartarus.org/~simon/putty-snapshots/${tarball}) + ;; + *) + tarball=putty-${ver}.tar.gz + (cd /tmp && wget https://the.earth.li/~sgtatham/putty/${ver}/${tarball}) + ;; + esac + (cd ${HOME} && tar xfz /tmp/${tarball} && cd putty-* + if [ -f CMakeLists.txt ]; then + cmake . && cmake --build . && sudo cmake --build . --target install + else + ./configure && make && sudo make install + fi + ) + /usr/local/bin/plink -V +fi diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 8f624d21016c..8a667a1cf451 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -15,79 +15,86 @@ jobs: # First we test all OSes in the default configuration. target: - ubuntu-20.04 - - ubuntu-22.04 - - macos-11 - - macos-12 - - macos-13 - - windows-2019 - - windows-2022 +# - ubuntu-22.04 +# - macos-11 +# - macos-12 +# - macos-13 +# - windows-2019 +# - windows-2022 config: [default] # Then we include any extra configs we want to test for specific VMs. # Valgrind slows things down quite a bit, so start them first. include: - - { target: windows-2019, config: cygwin-release } - - { target: windows-2022, config: cygwin-release } - - { target: ubuntu-20.04, config: valgrind-1 } - - { target: ubuntu-20.04, config: valgrind-2 } - - { target: ubuntu-20.04, config: valgrind-3 } - - { target: ubuntu-20.04, config: valgrind-4 } - - { target: ubuntu-20.04, config: valgrind-5 } - - { target: ubuntu-20.04, config: valgrind-unit } - - { target: ubuntu-20.04, config: c89 } - - { target: ubuntu-20.04, config: clang-6.0 } - - { target: ubuntu-20.04, config: clang-8 } - - { target: ubuntu-20.04, config: clang-9 } - - { target: ubuntu-20.04, config: clang-10 } - - { target: ubuntu-20.04, config: clang-11 } - - { target: ubuntu-20.04, config: clang-12-Werror } - - { target: ubuntu-20.04, config: clang-sanitize-address } - - { target: ubuntu-20.04, config: clang-sanitize-undefined } - - { target: ubuntu-20.04, config: gcc-sanitize-address } - - { target: ubuntu-20.04, config: gcc-sanitize-undefined } - - { target: ubuntu-20.04, config: gcc-7 } - - { target: ubuntu-20.04, config: gcc-8 } - - { target: ubuntu-20.04, config: gcc-10 } - - { target: ubuntu-22.04, config: gcc-11-Werror } - - { target: ubuntu-22.04, config: gcc-12-Werror } - - { target: ubuntu-20.04, config: pam } - - { target: ubuntu-20.04, config: kitchensink } - - { target: ubuntu-22.04, config: hardenedmalloc } - - { target: ubuntu-20.04, config: tcmalloc } - - { target: ubuntu-20.04, config: musl } - - { target: ubuntu-latest, config: boringssl } - - { target: ubuntu-latest, config: libressl-master } - - { target: ubuntu-latest, config: libressl-3.2.6 } - - { target: ubuntu-latest, config: libressl-3.3.6 } - - { target: ubuntu-latest, config: libressl-3.4.3 } - - { target: ubuntu-latest, config: libressl-3.5.3 } - - { target: ubuntu-latest, config: libressl-3.6.1 } - - { target: ubuntu-latest, config: libressl-3.7.2 } - - { target: ubuntu-latest, config: libressl-3.8.2 } - - { target: ubuntu-latest, config: openssl-master } - - { target: ubuntu-latest, config: openssl-noec } - - { target: ubuntu-latest, config: openssl-1.1.1 } - - { target: ubuntu-latest, config: openssl-1.1.1t } - - { target: ubuntu-latest, config: openssl-1.1.1w } - - { target: ubuntu-latest, config: openssl-3.0.0 } - - { target: ubuntu-latest, config: openssl-3.0.12 } - - { target: ubuntu-latest, config: openssl-3.1.0 } - - { target: ubuntu-latest, config: openssl-3.1.4 } - - { target: ubuntu-latest, config: openssl-3.2.0 } - - { target: ubuntu-latest, config: openssl-1.1.1_stable } - - { target: ubuntu-latest, config: openssl-3.0 } # stable branch - - { target: ubuntu-latest, config: openssl-3.2 } # stable branch - - { target: ubuntu-latest, config: zlib-develop } - - { target: ubuntu-22.04, config: pam } - - { target: ubuntu-22.04, config: krb5 } - - { target: ubuntu-22.04, config: heimdal } - - { target: ubuntu-22.04, config: libedit } - - { target: ubuntu-22.04, config: sk } - - { target: ubuntu-22.04, config: selinux } - - { target: ubuntu-22.04, config: kitchensink } - - { target: ubuntu-22.04, config: without-openssl } - - { target: macos-11, config: pam } - - { target: macos-12, config: pam } - - { target: macos-13, config: pam } +# - { target: windows-2019, config: cygwin-release } +# - { target: windows-2022, config: cygwin-release } +# - { target: ubuntu-20.04, config: valgrind-1 } +# - { target: ubuntu-20.04, config: valgrind-2 } +# - { target: ubuntu-20.04, config: valgrind-3 } +# - { target: ubuntu-20.04, config: valgrind-4 } +# - { target: ubuntu-20.04, config: valgrind-5 } +# - { target: ubuntu-20.04, config: valgrind-unit } +# - { target: ubuntu-20.04, config: c89 } +# - { target: ubuntu-20.04, config: clang-6.0 } +# - { target: ubuntu-20.04, config: clang-8 } +# - { target: ubuntu-20.04, config: clang-9 } +# - { target: ubuntu-20.04, config: clang-10 } +# - { target: ubuntu-20.04, config: clang-11 } +# - { target: ubuntu-20.04, config: clang-12-Werror } +# - { target: ubuntu-20.04, config: clang-sanitize-address } +# - { target: ubuntu-20.04, config: clang-sanitize-undefined } +# - { target: ubuntu-20.04, config: gcc-sanitize-address } +# - { target: ubuntu-20.04, config: gcc-sanitize-undefined } +# - { target: ubuntu-20.04, config: gcc-7 } +# - { target: ubuntu-20.04, config: gcc-8 } +# - { target: ubuntu-20.04, config: gcc-10 } +# - { target: ubuntu-22.04, config: gcc-11-Werror } +# - { target: ubuntu-22.04, config: gcc-12-Werror } +# - { target: ubuntu-20.04, config: pam } +# - { target: ubuntu-20.04, config: kitchensink } +# - { target: ubuntu-22.04, config: hardenedmalloc } +# - { target: ubuntu-20.04, config: tcmalloc } +# - { target: ubuntu-20.04, config: musl } +# - { target: ubuntu-latest, config: boringssl } +# - { target: ubuntu-latest, config: libressl-master } +# - { target: ubuntu-latest, config: libressl-3.2.6 } +# - { target: ubuntu-latest, config: libressl-3.3.6 } +# - { target: ubuntu-latest, config: libressl-3.4.3 } +# - { target: ubuntu-latest, config: libressl-3.5.3 } +# - { target: ubuntu-latest, config: libressl-3.6.1 } +# - { target: ubuntu-latest, config: libressl-3.7.2 } +# - { target: ubuntu-latest, config: libressl-3.8.2 } +# - { target: ubuntu-latest, config: openssl-master } +# - { target: ubuntu-latest, config: openssl-noec } +# - { target: ubuntu-latest, config: openssl-1.1.1 } +# - { target: ubuntu-latest, config: openssl-1.1.1t } +# - { target: ubuntu-latest, config: openssl-1.1.1w } +# - { target: ubuntu-latest, config: openssl-3.0.0 } +# - { target: ubuntu-latest, config: openssl-3.0.12 } +# - { target: ubuntu-latest, config: openssl-3.1.0 } +# - { target: ubuntu-latest, config: openssl-3.1.4 } +# - { target: ubuntu-latest, config: openssl-3.2.0 } +# - { target: ubuntu-latest, config: openssl-1.1.1_stable } +# - { target: ubuntu-latest, config: openssl-3.0 } # stable branch +# - { target: ubuntu-latest, config: openssl-3.2 } # stable branch + - { target: ubuntu-latest, config: putty-0.70 } + - { target: ubuntu-latest, config: putty-0.74 } + - { target: ubuntu-latest, config: putty-0.75 } + - { target: ubuntu-latest, config: putty-0.76 } + - { target: ubuntu-latest, config: putty-0.77 } + - { target: ubuntu-latest, config: putty-0.80 } + - { target: ubuntu-latest, config: putty-snapshot } +# - { target: ubuntu-latest, config: zlib-develop } +# - { target: ubuntu-22.04, config: pam } +# - { target: ubuntu-22.04, config: krb5 } +# - { target: ubuntu-22.04, config: heimdal } +# - { target: ubuntu-22.04, config: libedit } +# - { target: ubuntu-22.04, config: sk } +# - { target: ubuntu-22.04, config: selinux } +# - { target: ubuntu-22.04, config: kitchensink } +# - { target: ubuntu-22.04, config: without-openssl } +# - { target: macos-11, config: pam } +# - { target: macos-12, config: pam } +# - { target: macos-13, config: pam } runs-on: ${{ matrix.target }} steps: - name: set cygwin git params