Bug#795316: jackd2: Suggestion to fix overly-liberal shlibs for libjacknet

2016-10-19 Thread James Cowgill
Control: tags -1 - patch

On Wed, 12 Aug 2015 14:38:38 -0700 Steve Langasek
 wrote:
> Package: jackd2
> Version: 1.9.10+20140719git3eb0ae6a~dfsg-3
> Severity: normal
> Tags: patch
> User: ubuntu-de...@lists.ubuntu.com
> Usertags: origin-ubuntu wily ubuntu-patch
> 
> Dear maintainer,
> 
> I know you've only just fixed the shlibs file to correct jackd2's FTBFS
> failure, but I'd like to recommend a change to the shlibs handling.  As part
> of preparing the g++5 ABI transition in Ubuntu, it came to light that:
> 
>  - libjacknet is a private library, and
>  - its ABI is impacted by the g++5 ABI transition
> 
> So while the current shlibs fix the build failure, in the unlikely event
> that something *did* link against libjacknet (unlikely because it's a
> private library with no headers in the -dev package), that package would
> have a wrong dependency, which would be satisfied by other versions of the
> package with known-incompatible ABI.

As far as I can tell (as I don't deal much with jack), libjacknet is not
a private library. It is used to create network slaves which communicate
with a jack server over the network. The header for it is
/usr/include/jack/net.h.

Also, I don't think it is affected by the g++5 ABI transition because
all the C++ symbols are not part of the ABI - the main API is C (the C++
symbols should probably be hidden).

I think the best solution is to move it into a separate package since
the library is not used much (compared to the main jack client library).
Having said that, it's not too important as I don't think there are any
ABI issues here.

Thanks,
James



signature.asc
Description: OpenPGP digital signature


Bug#795316: jackd2: Suggestion to fix overly-liberal shlibs for libjacknet

2015-08-12 Thread Steve Langasek
Package: jackd2
Version: 1.9.10+20140719git3eb0ae6a~dfsg-3
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu wily ubuntu-patch

Dear maintainer,

I know you've only just fixed the shlibs file to correct jackd2's FTBFS
failure, but I'd like to recommend a change to the shlibs handling.  As part
of preparing the g++5 ABI transition in Ubuntu, it came to light that:

 - libjacknet is a private library, and
 - its ABI is impacted by the g++5 ABI transition

So while the current shlibs fix the build failure, in the unlikely event
that something *did* link against libjacknet (unlikely because it's a
private library with no headers in the -dev package), that package would
have a wrong dependency, which would be satisfied by other versions of the
package with known-incompatible ABI.

The attached patch would generate more correct shlibs for the library in
question.  However, it seems to me that since this is a private library
anyway, a more correct solution might be to install it in the jackd2 binary
package instead of the library runtime package.

Thanks for considering the patch.
-- 
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 Developerhttp://www.debian.org/
slanga...@ubuntu.com vor...@debian.org
=== removed file 'debian/libjack-jackd2-0.shlibs'
--- debian/libjack-jackd2-0.shlibs	2015-07-19 12:37:34 +
+++ debian/libjack-jackd2-0.shlibs	1970-01-01 00:00:00 +
@@ -1,2 +0,0 @@
-libjack 0 libjack-jackd2-0 (= 1.9.5~dfsg-14) | libjack-0.116
-libjacknet 0 libjack-jackd2-0 (= 1.9.5~dfsg-14)

=== added file 'debian/libjack-jackd2-0.shlibs.in'
--- debian/libjack-jackd2-0.shlibs.in	1970-01-01 00:00:00 +
+++ debian/libjack-jackd2-0.shlibs.in	2015-08-12 21:26:02 +
@@ -0,0 +1,2 @@
+libjack 0 libjack-jackd2-0 (= 1.9.5~dfsg-14) | libjack-0.116
+libjacknet 0 libjack-jackd2-0 (= ${DEB_VERSION})

=== modified file 'debian/rules'
--- debian/rules	2014-09-24 21:48:32 +
+++ debian/rules	2015-08-12 21:26:02 +
@@ -67,7 +67,7 @@
 DEB_PHONY_RULES += $(outfiles)
 pre-build:: $(outfiles)
 $(outfiles): update-config debian/stamp-copyright-check
-	sed 's/__ABI__/$(ABI)/' $@.in $@
+	sed 's/__ABI__/$(ABI)/; s/$${DEB_VERSION}/${DEB_VERSION}/g' $@.in $@
 clean::
 	rm -f $(outfiles)