Source: argon2
Package: libargon2-1-udeb
Version: 0~20190702+dfsg-2
Control: found -1 0~20171227-0.2
Control: found -1 0~20171227-0.3
Control: affects -1 cryptsetup-udeb
Severity: important
Tags: d-i patch bookworm

Hi,

While investigating LUKS2 PBKDF benchmark results in d-i with kibi (d-i
maintainer, X-Debbugs-Cc'ed) in #1028250 we observed that the memory
cost was sometimes set to about 60% of what one gets when doing the same
on the final (post d-i) system.  (See https://bugs.debian.org/1028250#78
for details.)

Further investigation shows that this is because libargon2-1, unlike
libargon2-1-udeb, is built with threading support.  As hinted at in
#1014110, the lack of threading support yields much slower function
calls, causing the benchmark operation to settle on lower memory cost
after hitting the 2s limit.

Building libargon2-1-udeb without threading support was implemented in
https://salsa.debian.org/debian/argon2/-/commit/31225912349933993e49f5007e97630b20465c32
because at the time d-i didn't have functional pthread support.  But
glibc 2.34 removed libpthread as a separate library, so since Bookworm
d-i gets pthread support for free.  Since binary packages already have
‘Depends: libc6 (>= 2.34)’ it makes sense to simply revert the
aforementioned commit.

I feel confident about these changes:

 * For debian/sid, diffoscope(1) tells me the only modification is in
   libargon2-1-udeb (on amd64 no .deb is modified modulo timestamps and
   changelog entries), so this is really a d-i-specific issue.

 * For debian/bookworm, it also fixes (#1014110) since 3122591
   inadvertently removed threading support from argon2.  (That part was
   fixed in sid but not in bookworm.)  Updated LUKS2 PBKDF benchmark
   results in d-i can be found at the end of #1028250.

Bastian: Given that 1/ the package is orphaned, and 2/ the tight
deadline (kibi would like to have the fix in bookworm in the next d-i RC
already, which is scheduled for the end of next week), I would normally
go ahead and push + dupload, but given you appear to be interested in
adopting the package I'll wait a bit before uploading in case you have
any concerns or objections.  (I plan to upload to sid by the end of the
week-end if I don't hear anything, and request a t-p-u upload soon
afterwards.)

Cheers,
-- 
Guilhem.
diffstat for argon2-0~20190702+dfsg argon2-0~20190702+dfsg

 changelog                |   10 ++++++++++
 libargon2-1-udeb.install |    2 ++
 rules                    |   15 ---------------
 3 files changed, 12 insertions(+), 15 deletions(-)

diff -Nru argon2-0~20190702+dfsg/debian/changelog argon2-0~20190702+dfsg/debian/changelog
--- argon2-0~20190702+dfsg/debian/changelog	2023-03-16 00:16:03.000000000 +0100
+++ argon2-0~20190702+dfsg/debian/changelog	2023-04-21 19:48:56.000000000 +0200
@@ -1,3 +1,13 @@
+argon2 (0~20190702+dfsg-3) unstable; urgency=medium
+
+  * QA upload
+  * d/rules: Restore threading support in libargon2-1-udeb (closes: #-1).
+    This is beneficial for cryptsetup-udeb, see #1028250.  Removing threading
+    support in libargon2-1-udeb was done for historical reasons no longer
+    relevant since Debian Bookworm.
+
+ -- Guilhem Moulin <guil...@debian.org>  Fri, 21 Apr 2023 19:48:56 +0200
+
 argon2 (0~20190702+dfsg-2) unstable; urgency=medium
 
   * QA upload
diff -Nru argon2-0~20190702+dfsg/debian/libargon2-1-udeb.install argon2-0~20190702+dfsg/debian/libargon2-1-udeb.install
--- argon2-0~20190702+dfsg/debian/libargon2-1-udeb.install	1970-01-01 01:00:00.000000000 +0100
+++ argon2-0~20190702+dfsg/debian/libargon2-1-udeb.install	2023-04-21 19:48:56.000000000 +0200
@@ -0,0 +1,2 @@
+#!/usr/bin/dh-exec
+libargon2.so.1 => usr/lib/${DEB_HOST_MULTIARCH}/${SONAME}
diff -Nru argon2-0~20190702+dfsg/debian/rules argon2-0~20190702+dfsg/debian/rules
--- argon2-0~20190702+dfsg/debian/rules	2023-03-16 00:14:34.000000000 +0100
+++ argon2-0~20190702+dfsg/debian/rules	2023-04-21 19:48:56.000000000 +0200
@@ -18,25 +18,10 @@
 export DEBPREFIX=0~
 export DEBSUFFIX=+dfsg
 export ARGON2_VERSION=$(subst $(DEBSUFFIX),,$(subst $(DEBPREFIX),,$(DEB_VERSION_UPSTREAM)))
-export UDEBLIB=$(SONAME).udeb
 
 %:
 	dh $@
 
-override_dh_auto_build:
-	dh_auto_build -- NO_THREADS=1 libs
-	mv $(SONAME) $(UDEBLIB)
-	$(MAKE) clean
-	dh_auto_build
-
-override_dh_install:
-	dh_install
-	install -D $(UDEBLIB) debian/$(SOPKG)-udeb/usr/lib/$(DEB_HOST_MULTIARCH)/$(SONAME)
-
-override_dh_auto_clean:
-	dh_auto_clean
-	-rm $(UDEBLIB)
-
 override_dh_auto_test:
 	-$(MAKE) -j1 test
 
diffstat for argon2-0~20171227 argon2-0~20171227

 changelog                |   18 ++++++++++++++++++
 control                  |    1 +
 gbp.conf                 |    2 +-
 libargon2-1-udeb.install |    2 ++
 rules                    |   11 -----------
 5 files changed, 22 insertions(+), 12 deletions(-)

diff -Nru argon2-0~20171227/debian/changelog argon2-0~20171227/debian/changelog
--- argon2-0~20171227/debian/changelog	2022-02-13 10:41:34.000000000 +0100
+++ argon2-0~20171227/debian/changelog	2023-04-21 21:29:33.000000000 +0200
@@ -1,3 +1,21 @@
+argon2 (0~20171227-0.3+deb12u1) bookworm; urgency=medium
+
+  * Non-maintainer upload.
+
+  [ Bastian Germann ]
+  * Add Breaks on cryptsetup-initramfs (see #1032235)
+
+  [ Guilhem Moulin ]
+  * d/gbp.conf: Set 'debian-branch = debian/bookworm'.
+  * d/rules: Restore threading support to libargon2-1-udeb (closes: #-1).
+    This is beneficial for cryptsetup-udeb, see #1028250.  Removing threading
+    support in libargon2-1-udeb was done for historical reasons no longer
+    relevant since Debian Bookworm.  This also restores threading support to
+    argon2 which was inadvertently drooped in 0~20171227-0.1 (closes:
+    #1014110).
+
+ -- Guilhem Moulin <guil...@debian.org>  Fri, 21 Apr 2023 21:29:33 +0200
+
 argon2 (0~20171227-0.3) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nru argon2-0~20171227/debian/control argon2-0~20171227/debian/control
--- argon2-0~20171227/debian/control	2022-02-13 10:41:34.000000000 +0100
+++ argon2-0~20171227/debian/control	2023-04-21 21:29:33.000000000 +0200
@@ -60,6 +60,7 @@
 Architecture: any
 Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}
+Breaks: cryptsetup-initramfs (<<2:2.6.1-2)
 Multi-Arch: same
 Description: memory-hard hashing function - runtime library
  Argon2 is a password-hashing function that can be used to hash passwords
diff -Nru argon2-0~20171227/debian/gbp.conf argon2-0~20171227/debian/gbp.conf
--- argon2-0~20171227/debian/gbp.conf	2022-02-13 10:41:34.000000000 +0100
+++ argon2-0~20171227/debian/gbp.conf	2023-04-21 21:29:33.000000000 +0200
@@ -1,7 +1,7 @@
 [DEFAULT]
 debian-tag = debian/%(version)s
 pristine-tar = True
-debian-branch = debian/sid
+debian-branch = debian/bookworm
 
 [buildpackage]
 upstream-tag = v%(version)s
diff -Nru argon2-0~20171227/debian/libargon2-1-udeb.install argon2-0~20171227/debian/libargon2-1-udeb.install
--- argon2-0~20171227/debian/libargon2-1-udeb.install	1970-01-01 01:00:00.000000000 +0100
+++ argon2-0~20171227/debian/libargon2-1-udeb.install	2023-04-21 21:29:33.000000000 +0200
@@ -0,0 +1,2 @@
+#!/usr/bin/dh-exec
+libargon2.so.1 => usr/lib/${DEB_HOST_MULTIARCH}/${SONAME}
diff -Nru argon2-0~20171227/debian/rules argon2-0~20171227/debian/rules
--- argon2-0~20171227/debian/rules	2022-02-13 10:41:34.000000000 +0100
+++ argon2-0~20171227/debian/rules	2023-04-21 21:29:33.000000000 +0200
@@ -16,26 +16,15 @@
 export SOVER=1
 export DEBPREFIX=0~
 export UPSTREAMVER=$(subst $(DEBPREFIX),,$(DEB_VERSION_UPSTREAM))
-export UDEBLIB=$(SONAME).udeb
 
 %:
 	dh $@
 
-override_dh_auto_build:
-	dh_auto_build -- NO_THREADS=1
-	mv $(SONAME) $(UDEBLIB)
-	dh_auto_build
-
 override_dh_install:
 	dh_install
 	sed -i '/^## /d' debian/${PKG}-dev/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/libargon2.pc
 	sed -i s/@HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/ debian/${PKG}-dev/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/libargon2.pc
 	sed -i s/@UPSTREAM_VER@/$(UPSTREAMVER)/ debian/${PKG}-dev/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/libargon2.pc
-	install -D $(UDEBLIB) debian/$(SOPKG)-udeb/usr/lib/$(DEB_HOST_MULTIARCH)/$(SONAME)
-
-override_dh_auto_clean:
-	dh_auto_clean
-	-rm $(UDEBLIB)
 
 override_dh_auto_test:
 	-$(MAKE) -j1 test

Attachment: signature.asc
Description: PGP signature

Reply via email to