[openssh-commits] [openssh] branch master updated: Add interop tests against Dropbear >= 2020.79

git+noreply at mindrot.org git+noreply at mindrot.org
Thu May 21 18:02:02 AEST 2026


This is an automated email from the git hooks/post-receive script.

dtucker pushed a commit to branch master
in repository openssh.

The following commit(s) were added to refs/heads/master by this push:
     new 18b9db789 Add interop tests against Dropbear >= 2020.79
18b9db789 is described below

commit 18b9db789e278c4d6a5ff21093a45683950db3ae
Author: Darren Tucker <dtucker at dtucker.net>
AuthorDate: Tue May 19 18:37:26 2026 +1000

    Add interop tests against Dropbear >= 2020.79
---
 .github/configs             |  5 +++++
 .github/install_dropbear.sh | 35 +++++++++++++++++++++++++++++++++++
 .github/run_test.sh         | 16 ++++++++++++++++
 .github/setup_ci.sh         |  6 ++++++
 .github/workflows/c-cpp.yml |  1 +
 5 files changed, 63 insertions(+)

diff --git a/.github/configs b/.github/configs
index 9ad2439df..a7bb698e2 100755
--- a/.github/configs
+++ b/.github/configs
@@ -185,6 +185,11 @@ case "$config" in
     libressl-*)
 	LIBCRYPTOFLAGS="--with-ssl-dir=/opt/libressl --with-rpath=-Wl,-rpath,"
 	;;
+    dropbear-*)
+	CONFIGFLAGS="--with-dbclient=/usr/local/bin/plink --with-dropbear=/usr/local/sbin/dropbear"
+	# We don't need to rerun the regular tests, just the interop ones.
+	TEST_TARGET=interop-tests
+	;;
     putty-*)
 	CONFIGFLAGS="--with-plink=/usr/local/bin/plink --with-puttygen=/usr/local/bin/puttygen"
 	# We don't need to rerun the regular tests, just the interop ones.
diff --git a/.github/install_dropbear.sh b/.github/install_dropbear.sh
new file mode 100755
index 000000000..ed91c52f7
--- /dev/null
+++ b/.github/install_dropbear.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+#
+# Install specified Dropbear version into /usr/local.
+#
+
+ver="$1"
+
+echo
+echo ---------------------------------------------
+echo Installing dropbear version: ${ver}
+echo ---------------------------------------------
+
+set -e
+
+cd /tmp
+
+if [ ! -d dropbear-clean ]; then
+	git clone https://github.com/mkj/dropbear.git dropbear-clean
+	(cd dropbear-clean && git config --global advice.detachedHead false)
+fi
+
+rm -rf dropbear
+cp -a dropbear-clean dropbear
+cd dropbear
+git checkout "$ver"
+git status
+echo "Building Dropbear version '$ver'"
+(
+	autoreconf 2>&1 &&
+	./configure 2>&1 &&
+	make clean 2>&1 &&
+	make 2>&1 &&
+	sudo make install 2>&1) >/tmp/db-build.log 2>&1 || cat /tmp/db-build.log
+
+echo "Installed dropbear version: '$(/usr/local/bin/dbclient -V 2>&1)'"
diff --git a/.github/run_test.sh b/.github/run_test.sh
index c67d00700..0a7d2656d 100755
--- a/.github/run_test.sh
+++ b/.github/run_test.sh
@@ -45,6 +45,22 @@ if [ "$1" = "putty-versions" ]; then
 	exit 0
 fi
 
+if [ "$1" = "dropbear-versions" ]; then
+	make regress-binaries
+	# Work backward from current version to last version we support.
+	for ver in master $(cd /tmp/dropbear && git tag | grep -E 'DROPBEAR_' | sort -rn); do
+		year=$(echo "$ver" | cut -f2 -d_ | cut -f1 -d.)
+		if [ "$ver" != "master" ] && [ "$year" -lt "2020" ]; then
+			exit 0
+		fi
+		.github/install_dropbear.sh "${ver}"
+		${env} make ${TEST_TARGET} \
+		    SKIP_LTESTS="${SKIP_LTESTS}" LTESTS="${LTESTS}"
+	done
+
+	exit 0
+fi
+
 if [ -z "${LTESTS}" ]; then
     ${env} make ${TEST_TARGET} SKIP_LTESTS="${SKIP_LTESTS}"
 else
diff --git a/.github/setup_ci.sh b/.github/setup_ci.sh
index fca8591a7..4dd35801c 100755
--- a/.github/setup_ci.sh
+++ b/.github/setup_ci.sh
@@ -165,6 +165,9 @@ for TARGET in $TARGETS; do
         INSTALL_AWSLC=1
         PACKAGES="${PACKAGES} cmake ninja-build"
         ;;
+    dropbear-versions)
+	INSTALL_DROPBEAR=master
+	;;
     putty-*)
 	INSTALL_PUTTY=0.83
 	PACKAGES="${PACKAGES} cmake"
@@ -274,6 +277,9 @@ if [ ! -z "${INSTALL_ZLIB}" ]; then
      sudo make install prefix=/opt/zlib)
 fi
 
+if [ ! -z "${INSTALL_DROPBEAR}" ]; then
+	.github/install_dropbear.sh "${INSTALL_DROPBEAR}"
+fi
 if [ ! -z "${INSTALL_PUTTY}" ]; then
 	.github/install_putty.sh "${INSTALL_PUTTY}"
 fi
diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml
index ddfd4343d..df833fd86 100644
--- a/.github/workflows/c-cpp.yml
+++ b/.github/workflows/c-cpp.yml
@@ -112,6 +112,7 @@ jobs:
           - { target: ubuntu-latest, config: openssl-3.5 }  # stable branch
           - { target: ubuntu-latest, config: openssl-3.6 }  # stable branch
           - { target: ubuntu-latest, config: openssl-4.0 }  # stable branch
+          - { target: ubuntu-latest, config: dropbear-versions }
           - { target: ubuntu-latest, config: putty-versions }
           - { target: ubuntu-latest, config: zlib-develop }
           - { target: ubuntu-latest, config: tcmalloc }

-- 
To stop receiving notification emails like this one, please contact
djm at mindrot.org.


More information about the openssh-commits mailing list