Bug#1142354: Acknowledgement (sshd-session built without crypt(), breaking UsePAM=no password auth)

Colin Watson <[email protected]> Sat, 18 Jul 2026 23:30:33 +0100
Newsgroups gmane.linux.debian.devel.ssh
Message-ID <alv-idGfXqXWN75N__40220.7399065205$1784414022$gmane$org@riva.ucam.org>
On Sat, Jul 18, 2026 at 04:38:50PM +0100, Alexander Fisher wrote:
>libc6-dev no longer depends on libcrypt-dev (glibc 2.42-7), so crypt()
>was no longer detected at configure time and sshd-session was built
>without password-crypt support, breaking UsePAM=no logins.

Thanks for the patch.

>diff -Nru openssh-10.4p1/debian/rules openssh-10.4p1/debian/rules
>--- openssh-10.4p1/debian/rules	2026-07-06 18:11:28.000000000 +0000
>+++ openssh-10.4p1/debian/rules	2026-07-18 13:52:55.000000000 +0000
>@@ -122,6 +122,10 @@
> 
> override_dh_auto_configure-arch:
> 	dh_auto_configure -Bdebian/build-deb -- $(confflags)
>+	# configure treats a missing crypt() as non-fatal, so check explicitly;
>+	# without it sshd-session loses password authentication.
>+	grep -q '^#define HAVE_CRYPT 1' debian/build-deb/config.h || \
>+		{ echo >&2 "crypt() not detected; is libcrypt-dev installed?"; exit 1; }
> ifeq ($(filter noudeb,$(DEB_BUILD_PROFILES)),)
> 	dh_auto_configure -Bdebian/build-udeb -- $(confflags_udeb)
> 	# Avoid libnsl linkage. Ugh.

I think this part of your patch is a bit overkill, to be honest, and am 
inclined to leave it out.  We don't normally do this kind of 
double-checking of configure results at build time.  The autopkgtest 
makes sense though, and seems to be good enough to catch regressions in 
this kind of thing in future.

Would you mind if I revised your patch to omit this part?  (No need to 
resend; I can make the adjustments myself.)