packaging jack - details on "plan B"

Gabriel M. Beddingfield gabrbedd at gmail.com
Fri Apr 23 19:32:45 UTC 2010


Hi guys,

I'm new to the details of deb packaging... so I may be 
replying to the wrong snippets... but:

>>> Package:   libjack-jackd2-0
>>> Provides:  libjack-0.116.0
>>> Conflicts: libjack0
>>
>> Yes, something like that.
>>
>>
>>>>  4. Release jackd1 to experimental, with libjack0 providing   virtual
>>>> package libjack-0.116.0
>>>>  5. Repackage jackd1 to experimental, with libjack0 providing   virtual
>>>> package libjack0-0.116.0
>>>
>>> what actual changes are involved in this repackaging?
>>
>> This step is not needed for technical reasons but was included for
>> potential political reason: not in the long term emphasize jackd1 as
>> being better than the other implementations.
>
> Then let's make all applications to depend on 'libjack0-0.116.0', which
> refers to the ABI, and provide a package 'jack-defaults', which builds a
> meta-package 'jackd' which depends on the distribution chosen 'default'
> jack implementation.

I don't understand why we're emphasizing the ABI of 
`libjack0-0.116.0'.

According to the Jack devs, a program compiled against Jack 
0.34.0 (released ca. 2001) is still binary-compatible with 
/any/ Jack implementation (whether Jack1, Jack2, tschack, 
etc.)  They have rigorously been maintaining this. 
Therefore, any old program will work without recompile on a 
new libjack0.  Jack 2 (formerly jackdmp) has also rigorously 
maintained binary compatability with Jack 1.[3]

Therefore, the virtual package should be `libjack0', not 
`libjack0-0.116.0'.  See also [1] and [2].

Also, I'm sure you're on top of it, but it's important that 
this:

     $ gcc -o foo `pkg-config --cflags --libs jack` foo.cpp

...does the right thing with:

     $ dpkg-shlibdeps foo

Thanks,
Gabriel

[1] http://trac.jackaudio.org/wiki/SuggestedPackagingApproach
[2] http://subversion.jackaudio.org/jack/tags/RELEASE_0_118_0/README.developers
[3] Going backwards has never been promised, though.  A
     program compiled against 0.118.0 will work with 0.34.0.
     However, the use of weak symbols for new features may
     make this available.





More information about the pkg-multimedia-maintainers mailing list