On Sun, Nov 19, 2017 at 11:23:30PM -0500, Antonio Russo wrote: > All upstream testing and development is done with matching library and > utility versions. > I really don't see any advantage to making fine-grained dependencies that > expose Debian > users to unconventional configurations with some possibly non-matching > library versions. > Just my 2 cents.
After a bit more experiments, I tend to agree with you (especially given the huge number of symbols exported by libzpool!). Attached is a patch that simply emulates upstreams "break with every release" (tested with sid and stretch-backport builds). I prefer this approach to hard-coding the exact versions in d/control, as it also works for other packages linking with ZFS libraries using the shlibs mechanism. I think I will start a discussion with upstream regarding their plans for future ABI guarantees and proper exporting and versioning of public library symbols. Switching to proper symbols based versioned dependencies in Debian should be possible without much pain anyway, if and when upstream decides to declare the library interface (somewhat) stable.
>From 66e521fba011d68c53d694c1037d13f2068a0c86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbich...@proxmox.com> Date: Mon, 20 Nov 2017 08:10:00 +0100 Subject: [PATCH] build: add implicit version to dh_makeshlibs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit to mimic upstream's current level of ABI/API stability. this is akin to "every upstream version breaks compatibility". Closes: #880709 Signed-off-by: Fabian Grünbichler <f.gruenbich...@proxmox.com> --- debian/rules | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/debian/rules b/debian/rules index 800df22e0..4a2b3213f 100755 --- a/debian/rules +++ b/debian/rules @@ -120,13 +120,13 @@ override_dh_dkms: dh_dkms -V $(VERSION) override_dh_makeshlibs: - dh_makeshlibs -a + dh_makeshlibs -a -V ifeq ($(BUILD_UDEB), true) - dh_makeshlibs -plibnvpair1linux --add-udeb=libnvpair1-udeb - dh_makeshlibs -plibuutil1linux --add-udeb=libuutil1-udeb - dh_makeshlibs -plibzfs2linux --add-udeb=libzfs2-udeb - dh_makeshlibs -plibzpool2linux --add-udeb=libzpool2-udeb - dh_makeshlibs -pzfsutils-linux --add-udeb=zfsutils-udeb + dh_makeshlibs -V -plibnvpair1linux --add-udeb=libnvpair1-udeb + dh_makeshlibs -V -plibuutil1linux --add-udeb=libuutil1-udeb + dh_makeshlibs -V -plibzfs2linux --add-udeb=libzfs2-udeb + dh_makeshlibs -V -plibzpool2linux --add-udeb=libzpool2-udeb + dh_makeshlibs -V -pzfsutils-linux --add-udeb=zfsutils-udeb endif override_dh_strip: -- 2.14.2