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/ slanga...@ubuntu.com vor...@debian.org
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 <vor...@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 <vor...@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@LIBP11_3 0.4.9 - ERR_load_PKCS11_strings@LIBP11_3 0.4.4 - LIBP11_3@LIBP11_3 0.4.4 - PKCS11_CTX_free@LIBP11_3 0.4.4 - PKCS11_CTX_init_args@LIBP11_3 0.4.4 - PKCS11_CTX_load@LIBP11_3 0.4.4 - PKCS11_CTX_new@LIBP11_3 0.4.4 - PKCS11_CTX_unload@LIBP11_3 0.4.4 - PKCS11_change_pin@LIBP11_3 0.4.4 - PKCS11_ecdsa_method_free@LIBP11_3 0.4.4 - PKCS11_enumerate_certs@LIBP11_3 0.4.4 - PKCS11_enumerate_keys@LIBP11_3 0.4.4 - PKCS11_enumerate_public_keys@LIBP11_3 0.4.4 - PKCS11_enumerate_slots@LIBP11_3 0.4.4 - PKCS11_find_certificate@LIBP11_3 0.4.4 - PKCS11_find_key@LIBP11_3 0.4.4 - PKCS11_find_next_token@LIBP11_3 0.4.9 - PKCS11_find_token@LIBP11_3 0.4.4 - PKCS11_generate_key@LIBP11_3 0.4.4 - PKCS11_generate_random@LIBP11_3 0.4.4 - PKCS11_get_ec_key_method@LIBP11_3 0.4.4 - PKCS11_get_ecdh_method@LIBP11_3 0.4.4 - PKCS11_get_ecdsa_method@LIBP11_3 0.4.4 - PKCS11_get_key_exponent@LIBP11_3 0.4.4 - PKCS11_get_key_modulus@LIBP11_3 0.4.4 - PKCS11_get_key_size@LIBP11_3 0.4.4 - PKCS11_get_key_type@LIBP11_3 0.4.4 - PKCS11_get_private_key@LIBP11_3 0.4.4 - PKCS11_get_public_key@LIBP11_3 0.4.4 - PKCS11_get_rsa_method@LIBP11_3 0.4.4 - PKCS11_get_slotid_from_slot@LIBP11_3 0.4.4 - PKCS11_init_pin@LIBP11_3 0.4.4 - PKCS11_init_token@LIBP11_3 0.4.4 - PKCS11_is_logged_in@LIBP11_3 0.4.4 - PKCS11_login@LIBP11_3 0.4.4 - PKCS11_logout@LIBP11_3 0.4.4 - PKCS11_open_session@LIBP11_3 0.4.4 - PKCS11_pkey_meths@LIBP11_3 0.4.9 - PKCS11_private_decrypt@LIBP11_3 0.4.4 - PKCS11_private_encrypt@LIBP11_3 0.4.4 - PKCS11_release_all_slots@LIBP11_3 0.4.4 - PKCS11_remove_certificate@LIBP11_3 0.4.9 - PKCS11_remove_key@LIBP11_3 0.4.9 - PKCS11_seed_random@LIBP11_3 0.4.4 - PKCS11_set_ui_method@LIBP11_3 0.4.4 - PKCS11_sign@LIBP11_3 0.4.4 - PKCS11_store_certificate@LIBP11_3 0.4.4 - PKCS11_store_private_key@LIBP11_3 0.4.4 - PKCS11_store_public_key@LIBP11_3 0.4.4 - PKCS11_update_slots@LIBP11_3 0.4.12 - PKCS11_verify@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@LIBP11_3 0.4.9 + ERR_load_PKCS11_strings@LIBP11_3 0.4.4 + LIBP11_3@LIBP11_3 0.4.4 + PKCS11_CTX_free@LIBP11_3 0.4.4 + PKCS11_CTX_init_args@LIBP11_3 0.4.4 + PKCS11_CTX_load@LIBP11_3 0.4.4 + PKCS11_CTX_new@LIBP11_3 0.4.4 + PKCS11_CTX_unload@LIBP11_3 0.4.4 + PKCS11_change_pin@LIBP11_3 0.4.4 + PKCS11_ecdsa_method_free@LIBP11_3 0.4.4 + PKCS11_enumerate_certs@LIBP11_3 0.4.4 + PKCS11_enumerate_keys@LIBP11_3 0.4.4 + PKCS11_enumerate_public_keys@LIBP11_3 0.4.4 + PKCS11_enumerate_slots@LIBP11_3 0.4.4 + PKCS11_find_certificate@LIBP11_3 0.4.4 + PKCS11_find_key@LIBP11_3 0.4.4 + PKCS11_find_next_token@LIBP11_3 0.4.9 + PKCS11_find_token@LIBP11_3 0.4.4 + PKCS11_generate_key@LIBP11_3 0.4.4 + PKCS11_generate_random@LIBP11_3 0.4.4 + PKCS11_get_ec_key_method@LIBP11_3 0.4.4 + PKCS11_get_ecdh_method@LIBP11_3 0.4.4 + PKCS11_get_ecdsa_method@LIBP11_3 0.4.4 + PKCS11_get_key_exponent@LIBP11_3 0.4.4 + PKCS11_get_key_modulus@LIBP11_3 0.4.4 + PKCS11_get_key_size@LIBP11_3 0.4.4 + PKCS11_get_key_type@LIBP11_3 0.4.4 + PKCS11_get_private_key@LIBP11_3 0.4.4 + PKCS11_get_public_key@LIBP11_3 0.4.4 + PKCS11_get_rsa_method@LIBP11_3 0.4.4 + PKCS11_get_slotid_from_slot@LIBP11_3 0.4.4 + PKCS11_init_pin@LIBP11_3 0.4.4 + PKCS11_init_token@LIBP11_3 0.4.4 + PKCS11_is_logged_in@LIBP11_3 0.4.4 + PKCS11_login@LIBP11_3 0.4.4 + PKCS11_logout@LIBP11_3 0.4.4 + PKCS11_open_session@LIBP11_3 0.4.4 + PKCS11_pkey_meths@LIBP11_3 0.4.9 + PKCS11_private_decrypt@LIBP11_3 0.4.4 + PKCS11_private_encrypt@LIBP11_3 0.4.4 + PKCS11_release_all_slots@LIBP11_3 0.4.4 + PKCS11_remove_certificate@LIBP11_3 0.4.9 + PKCS11_remove_key@LIBP11_3 0.4.9 + PKCS11_seed_random@LIBP11_3 0.4.4 + PKCS11_set_ui_method@LIBP11_3 0.4.4 + PKCS11_sign@LIBP11_3 0.4.4 + PKCS11_store_certificate@LIBP11_3 0.4.4 + PKCS11_store_private_key@LIBP11_3 0.4.4 + PKCS11_store_public_key@LIBP11_3 0.4.4 + PKCS11_update_slots@LIBP11_3 0.4.12 + PKCS11_verify@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.langa...@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
signature.asc
Description: PGP signature