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

Reply via email to