[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Jack Audio Connection Kit transition

Maintainers: unless you’re jackbeat or gst-plugins-bad0.10, you need not
upload for this, though build-depending on libjack-dev in your next
upload would be nice.


Hello, Felipe. I finally found some time to look at your message. I’ve
moved -release to CC (thanks for the Bcc!), since it’s on-topic there.

> Fellow developers and release team (bcc'ed),

> The Debian Multimedia Maintainers would like to drop the  versioned jack
> library and development packages (that is, libjack0.100.0-{0,dev}). They were
> introduced a long time ago (along with the appropriately renamed library) due 
> to perceived instability in the jack library's ABI. For a while now, this is 
> no longer necessary, and upstream has catalogued Debian packages of jack 
> broken because of that. The debian packages no longer change the soname of the 
> library (starting with lenny), and the versioned packages are just dummy ones. 
> We want to drop them now. The first thing to be done is to switch the 
> build-dependency from libjack0.100.0-dev to libjack-dev. After all packages 
> have been changed and uploaded, we can upload a jack without those 
> transitional packages (unless I overlooked something and we need the RT ack 
> first?).

> Just to be clear: there is ABI/SONAME transition here. Packages that still 
> depend on libjack0.100.0-0 use the symlink provided by that package[1]. A 
> mere "sed -i -e 's/libjack0.100.0/libjack/g' debian/control" should be all 
> that people need to do.

I assume you mean “there is NOT ABI/SONAME transition here”, heh. So,
here are my comments on the matter:

  * plan for libjack0.100.0-dev: you can make a j-a-c-k upload to
    unstable dropping this development package immediately, provided
    that you add a “Provides: libjack0.100.0-dev” line to the
    libjack-dev package.

    You will have to file two bugs at RC severity against jackbeat and
    gst-plugins-bad0.10; these are the only packages that have a
    *versioned* build-dependency on libjack0.100.0-dev, as far as I can

    I’ve also checked, and there is no pacakge with versioned
    dependencies on libjack0.100.0-dev.

  * plan for libjack0.100.0-0: there are 11 source packages left with
    dependencies on this old library. No sourceful uploads are needed
    for this: once you’ve gotten back to me that the plan is good, I
    will provide you with a list of packages and schedule Bin-NMUs; then
    you can do some work of checking if they built successfully
    everywhere, filing bugs, etc. Once all of them have been rebuilt
    (which will make them depend on libjack0), please check with us that
    they’ve migrated to testing, and at that point libjack0.100.0-0 can
    be dropped.

Sounds good?

> [1] This actually surprised me. Could someone explain to me why are there 
> SONAMEs when they are not actually used? 

> % ldd /usr/bin/creox | grep jack
>         libjack-0.100.0.so.0 => /usr/lib/libjack-0.100.0.so.0 
> (0x00007f943206f000)
> % ls -l /usr/lib/libjack-0.100.0.so.0
> lrwxrwxrwx 1 root root 12 2009-03-18 19:03 /usr/lib/libjack-0.100.0.so.0 -> 
> libjack.so.0
> % objdump -p /usr/lib/libjack-0.100.0.so.0 | grep SONAME
>   SONAME      libjack.so.0

The SONAME that is recorded in the binary (do `objdump -p /usr/bin/creox |
grep NEEDED`, rather than ldd) is used to find the file. Once the file
is loaded, AFAIK nor the linker nor the application care what the
actuall SONAME of the loaded library is.


- Are you sure we're good?
- Always.
        -- Rory and Lorelai

Reply to: