[pkg-opensc-maint] Bug#1062563: libp11: NMU diff for 64-bit time_t transition
Steve Langasek
vorlon at debian.org
Sun Feb 25 08:08:18 GMT 2024
Hello,
Some consistency checking on the NMUs to experimental turned up a surprising
result, which is that libp11, on a no-change rebuild against openssl >= 3.1,
due to a buggy upstream check reverts the soname to libp11.so.2 breaking
ABI.
I suggest that your .install file should include the full soname pattern to
avoid such accidental misbuilds in the future. In the meantime, please find
attached an updated patch which takes a big hammer to the upstream check so
that the soname doesn't wrongly change on rebuild.
Thanks,
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer https://www.debian.org/
slangasek at ubuntu.com vorlon at debian.org
-------------- next part --------------
diff -Nru libp11-0.4.12/debian/changelog libp11-0.4.12/debian/changelog
--- libp11-0.4.12/debian/changelog 2023-08-21 12:21:43.000000000 +0000
+++ libp11-0.4.12/debian/changelog 2024-02-25 08:02:51.000000000 +0000
@@ -1,3 +1,17 @@
+libp11 (0.4.12-1.1~exp2) experimental; urgency=medium
+
+ * debian/patches/fix-upstream-soname-madness.patch: set the correct
+ upstream soname for openssl3.
+
+ -- Steve Langasek <vorlon at debian.org> Sun, 25 Feb 2024 08:02:51 +0000
+
+libp11 (0.4.12-1.1~exp1) experimental; urgency=medium
+
+ * Non-maintainer upload.
+ * Rename libraries for 64-bit time_t transition.
+
+ -- Steve Langasek <vorlon at debian.org> Thu, 01 Feb 2024 23:04:59 +0000
+
libp11 (0.4.12-1) unstable; urgency=medium
* Team upload
diff -Nru libp11-0.4.12/debian/control libp11-0.4.12/debian/control
--- libp11-0.4.12/debian/control 2023-08-21 12:21:43.000000000 +0000
+++ libp11-0.4.12/debian/control 2024-02-01 23:04:59.000000000 +0000
@@ -16,7 +16,7 @@
Package: libp11-dev
Architecture: any
-Depends: libp11-3 (= ${binary:Version}),
+Depends: libp11-3t64 (= ${binary:Version}),
libssl-dev,
pkg-config,
${misc:Depends}
@@ -28,14 +28,15 @@
.
This package contains the header files and static libraries.
-Package: libp11-3
+Package: libp11-3t64
+Provides: ${t64:Provides}
Architecture: any
Multi-Arch: same
Section: libs
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends}
-Breaks: libp11-2
-Replaces: libp11-2
+Breaks: libp11-3 (<< ${source:Version}), libp11-2
+Replaces: libp11-3, libp11-2
Description: pkcs#11 convenience library
Libp11 is a library to simplify using smart cards via PKCS#11
modules. It was spun of the OpenSC project but can be used with any
diff -Nru libp11-0.4.12/debian/libp11-3.install libp11-0.4.12/debian/libp11-3.install
--- libp11-0.4.12/debian/libp11-3.install 2023-08-21 12:21:43.000000000 +0000
+++ libp11-0.4.12/debian/libp11-3.install 1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-debian/tmp/usr/lib/*/libp11*.so.*
diff -Nru libp11-0.4.12/debian/libp11-3.symbols libp11-0.4.12/debian/libp11-3.symbols
--- libp11-0.4.12/debian/libp11-3.symbols 2023-08-21 12:21:43.000000000 +0000
+++ libp11-0.4.12/debian/libp11-3.symbols 1970-01-01 00:00:00.000000000 +0000
@@ -1,52 +0,0 @@
-libp11.so.3 libp11-3 #MINVER#
- ERR_get_CKR_code at LIBP11_3 0.4.9
- ERR_load_PKCS11_strings at LIBP11_3 0.4.4
- LIBP11_3 at LIBP11_3 0.4.4
- PKCS11_CTX_free at LIBP11_3 0.4.4
- PKCS11_CTX_init_args at LIBP11_3 0.4.4
- PKCS11_CTX_load at LIBP11_3 0.4.4
- PKCS11_CTX_new at LIBP11_3 0.4.4
- PKCS11_CTX_unload at LIBP11_3 0.4.4
- PKCS11_change_pin at LIBP11_3 0.4.4
- PKCS11_ecdsa_method_free at LIBP11_3 0.4.4
- PKCS11_enumerate_certs at LIBP11_3 0.4.4
- PKCS11_enumerate_keys at LIBP11_3 0.4.4
- PKCS11_enumerate_public_keys at LIBP11_3 0.4.4
- PKCS11_enumerate_slots at LIBP11_3 0.4.4
- PKCS11_find_certificate at LIBP11_3 0.4.4
- PKCS11_find_key at LIBP11_3 0.4.4
- PKCS11_find_next_token at LIBP11_3 0.4.9
- PKCS11_find_token at LIBP11_3 0.4.4
- PKCS11_generate_key at LIBP11_3 0.4.4
- PKCS11_generate_random at LIBP11_3 0.4.4
- PKCS11_get_ec_key_method at LIBP11_3 0.4.4
- PKCS11_get_ecdh_method at LIBP11_3 0.4.4
- PKCS11_get_ecdsa_method at LIBP11_3 0.4.4
- PKCS11_get_key_exponent at LIBP11_3 0.4.4
- PKCS11_get_key_modulus at LIBP11_3 0.4.4
- PKCS11_get_key_size at LIBP11_3 0.4.4
- PKCS11_get_key_type at LIBP11_3 0.4.4
- PKCS11_get_private_key at LIBP11_3 0.4.4
- PKCS11_get_public_key at LIBP11_3 0.4.4
- PKCS11_get_rsa_method at LIBP11_3 0.4.4
- PKCS11_get_slotid_from_slot at LIBP11_3 0.4.4
- PKCS11_init_pin at LIBP11_3 0.4.4
- PKCS11_init_token at LIBP11_3 0.4.4
- PKCS11_is_logged_in at LIBP11_3 0.4.4
- PKCS11_login at LIBP11_3 0.4.4
- PKCS11_logout at LIBP11_3 0.4.4
- PKCS11_open_session at LIBP11_3 0.4.4
- PKCS11_pkey_meths at LIBP11_3 0.4.9
- PKCS11_private_decrypt at LIBP11_3 0.4.4
- PKCS11_private_encrypt at LIBP11_3 0.4.4
- PKCS11_release_all_slots at LIBP11_3 0.4.4
- PKCS11_remove_certificate at LIBP11_3 0.4.9
- PKCS11_remove_key at LIBP11_3 0.4.9
- PKCS11_seed_random at LIBP11_3 0.4.4
- PKCS11_set_ui_method at LIBP11_3 0.4.4
- PKCS11_sign at LIBP11_3 0.4.4
- PKCS11_store_certificate at LIBP11_3 0.4.4
- PKCS11_store_private_key at LIBP11_3 0.4.4
- PKCS11_store_public_key at LIBP11_3 0.4.4
- PKCS11_update_slots at LIBP11_3 0.4.12
- PKCS11_verify at LIBP11_3 0.4.4
diff -Nru libp11-0.4.12/debian/libp11-3t64.install libp11-0.4.12/debian/libp11-3t64.install
--- libp11-0.4.12/debian/libp11-3t64.install 1970-01-01 00:00:00.000000000 +0000
+++ libp11-0.4.12/debian/libp11-3t64.install 2024-02-01 23:04:59.000000000 +0000
@@ -0,0 +1 @@
+debian/tmp/usr/lib/*/libp11*.so.*
diff -Nru libp11-0.4.12/debian/libp11-3t64.lintian-overrides libp11-0.4.12/debian/libp11-3t64.lintian-overrides
--- libp11-0.4.12/debian/libp11-3t64.lintian-overrides 1970-01-01 00:00:00.000000000 +0000
+++ libp11-0.4.12/debian/libp11-3t64.lintian-overrides 2024-02-01 23:04:59.000000000 +0000
@@ -0,0 +1 @@
+libp11-3t64: package-name-doesnt-match-sonames libp11-3
diff -Nru libp11-0.4.12/debian/libp11-3t64.symbols libp11-0.4.12/debian/libp11-3t64.symbols
--- libp11-0.4.12/debian/libp11-3t64.symbols 1970-01-01 00:00:00.000000000 +0000
+++ libp11-0.4.12/debian/libp11-3t64.symbols 2024-02-01 23:04:59.000000000 +0000
@@ -0,0 +1,52 @@
+libp11.so.3 libp11-3t64 #MINVER#
+ ERR_get_CKR_code at LIBP11_3 0.4.9
+ ERR_load_PKCS11_strings at LIBP11_3 0.4.4
+ LIBP11_3 at LIBP11_3 0.4.4
+ PKCS11_CTX_free at LIBP11_3 0.4.4
+ PKCS11_CTX_init_args at LIBP11_3 0.4.4
+ PKCS11_CTX_load at LIBP11_3 0.4.4
+ PKCS11_CTX_new at LIBP11_3 0.4.4
+ PKCS11_CTX_unload at LIBP11_3 0.4.4
+ PKCS11_change_pin at LIBP11_3 0.4.4
+ PKCS11_ecdsa_method_free at LIBP11_3 0.4.4
+ PKCS11_enumerate_certs at LIBP11_3 0.4.4
+ PKCS11_enumerate_keys at LIBP11_3 0.4.4
+ PKCS11_enumerate_public_keys at LIBP11_3 0.4.4
+ PKCS11_enumerate_slots at LIBP11_3 0.4.4
+ PKCS11_find_certificate at LIBP11_3 0.4.4
+ PKCS11_find_key at LIBP11_3 0.4.4
+ PKCS11_find_next_token at LIBP11_3 0.4.9
+ PKCS11_find_token at LIBP11_3 0.4.4
+ PKCS11_generate_key at LIBP11_3 0.4.4
+ PKCS11_generate_random at LIBP11_3 0.4.4
+ PKCS11_get_ec_key_method at LIBP11_3 0.4.4
+ PKCS11_get_ecdh_method at LIBP11_3 0.4.4
+ PKCS11_get_ecdsa_method at LIBP11_3 0.4.4
+ PKCS11_get_key_exponent at LIBP11_3 0.4.4
+ PKCS11_get_key_modulus at LIBP11_3 0.4.4
+ PKCS11_get_key_size at LIBP11_3 0.4.4
+ PKCS11_get_key_type at LIBP11_3 0.4.4
+ PKCS11_get_private_key at LIBP11_3 0.4.4
+ PKCS11_get_public_key at LIBP11_3 0.4.4
+ PKCS11_get_rsa_method at LIBP11_3 0.4.4
+ PKCS11_get_slotid_from_slot at LIBP11_3 0.4.4
+ PKCS11_init_pin at LIBP11_3 0.4.4
+ PKCS11_init_token at LIBP11_3 0.4.4
+ PKCS11_is_logged_in at LIBP11_3 0.4.4
+ PKCS11_login at LIBP11_3 0.4.4
+ PKCS11_logout at LIBP11_3 0.4.4
+ PKCS11_open_session at LIBP11_3 0.4.4
+ PKCS11_pkey_meths at LIBP11_3 0.4.9
+ PKCS11_private_decrypt at LIBP11_3 0.4.4
+ PKCS11_private_encrypt at LIBP11_3 0.4.4
+ PKCS11_release_all_slots at LIBP11_3 0.4.4
+ PKCS11_remove_certificate at LIBP11_3 0.4.9
+ PKCS11_remove_key at LIBP11_3 0.4.9
+ PKCS11_seed_random at LIBP11_3 0.4.4
+ PKCS11_set_ui_method at LIBP11_3 0.4.4
+ PKCS11_sign at LIBP11_3 0.4.4
+ PKCS11_store_certificate at LIBP11_3 0.4.4
+ PKCS11_store_private_key at LIBP11_3 0.4.4
+ PKCS11_store_public_key at LIBP11_3 0.4.4
+ PKCS11_update_slots at LIBP11_3 0.4.12
+ PKCS11_verify at LIBP11_3 0.4.4
diff -Nru libp11-0.4.12/debian/patches/fix-upstream-soname-madness.patch libp11-0.4.12/debian/patches/fix-upstream-soname-madness.patch
--- libp11-0.4.12/debian/patches/fix-upstream-soname-madness.patch 1970-01-01 00:00:00.000000000 +0000
+++ libp11-0.4.12/debian/patches/fix-upstream-soname-madness.patch 2024-02-25 08:02:45.000000000 +0000
@@ -0,0 +1,37 @@
+Description: set the correct upstream soname for openssl3
+ Upstream has some overly-clever code in configure.ac to vary the soname
+ based on which version of openssl it's linking against. However, this
+ openssl detection fails for openssl 3.x x > 0, which we now have in
+ unstable, causing a misbuild with the wrong soname in the package.
+ Just hard-code the soversion 3, which is better than the existing behavior!
+Author: Steve Langasek <steve.langasek at canonical.com>
+Forwarded: no
+Last-Update: 2024-02-25
+
+Index: libp11-0.4.12/configure.ac
+===================================================================
+--- libp11-0.4.12.orig/configure.ac
++++ libp11-0.4.12/configure.ac
+@@ -31,21 +31,7 @@
+
+ # we need to set our soversion based on openssl's soversion to avoid
+ # issues with applications linking to new openssl, old libp11, and vice versa
+-case "`$PKG_CONFIG --modversion --silence-errors libcrypto || \
+- $PKG_CONFIG --modversion openssl`" in
+- 3.0.*) # Predicted engines directory prefix for OpenSSL 3.x
+- LIBP11_LT_OLDEST="3"
+- debian_ssl_prefix="openssl-3.0.0";;
+- 1.1.*) # Predicted engines directory prefix for OpenSSL 1.1.x
+- LIBP11_LT_OLDEST="3"
+- debian_ssl_prefix="openssl-1.1.0";;
+- 1.0.*) # Engines directory prefix for OpenSSL 1.0.x
+- LIBP11_LT_OLDEST="2"
+- debian_ssl_prefix="openssl-1.0.0";;
+- *) # Engines directory prefix for OpenSSL 0.9.x
+- LIBP11_LT_OLDEST="2"
+- debian_ssl_prefix="ssl";;
+-esac
++LIBP11_LT_OLDEST="3"
+
+
+ # LT Version numbers, remember to change them just *before* a release.
diff -Nru libp11-0.4.12/debian/patches/series libp11-0.4.12/debian/patches/series
--- libp11-0.4.12/debian/patches/series 1970-01-01 00:00:00.000000000 +0000
+++ libp11-0.4.12/debian/patches/series 2024-02-25 07:56:10.000000000 +0000
@@ -0,0 +1 @@
+fix-upstream-soname-madness.patch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-opensc-maint/attachments/20240225/b465a105/attachment.sig>
More information about the pkg-opensc-maint
mailing list