Sorting the jack build-dependency mess

Adrian Knoth adi at drcomp.erfurt.thur.de
Mon Oct 25 15:20:58 UTC 2010


On Mon, Oct 25, 2010 at 04:33:45PM +0200, Reinhard Tartler wrote:

> > Unless there's really a need to discuss this in detail, I'd simply
> > upload the new version today.
> 
> so you don't care about unversionable build-depends? this means that not
> a single package in the archive can then do
> 
> Build-Depends: libjack-dev (>> $minimun_version)
>
> anymore. given that there is a number of jack using packages I'd be
> rather reluctant to do this step.

Hmm. Have you seen Jonas' comment? I haven't read it carefully in the
first place, but it seems to make sense now that I read it a second
time:

> When versioning is needed, the requirement is either a
> cross-implementation or implementation-specific feature.
>
> For implementation-specific feature the package should build-depend
> versioned on the specific implementation of JACK.
>
> For cross-implementation feature we should have all implementations
> provide that new "tag" whenever they mature enough to contain it. 
>
> 4. Make all jack implementations provide: libjack${tag}-dev.
> This is what was done in the past with libjack0.100.0-dev.
> We need not change anything now, just use a more meaningful tag than ""
> next time we want to bump. 

So we now can depend on libjack-dev provided by both, jackd1 and
jackd2. Once there will be something worth to be versioned, we introduce
something like libjack0.119-dev, i.e. for jack session support.

The more I think about it, I could hardly find a reason why a package
wants a specific jackd version at compile time, given that it cannot
rely on this feature to be present at runtime. (please correct me if you
do have such a case)

The next big thing in the jack camp is clearly jack-session support, and
already today, you cannot compile ardour3 without these headers. So
that's an example when you want to say something like:

Build-Depends: libjack-jackd1-dev (>>0.119) | libjack-jackd2-dev (>>1.9.7)

(jackd1-dep just to make it explicit). Right now, it would read

Build-Depends: libjack-dev

and according to Jonas, we'd then change this to

Build-Depend: libjack0.119-dev


provided by all jack-session enabled implementations by this time.
(which would be jackd1 0.119 or jackd2 1.9.7, tschack, you name it).

The trouble with jackd0.100 was to name the shared library in this way,
but I feel we're safe to use it as feature tags in the dev package.

Don't you think so?


Cheerio

PS & JFTR: I won't upload anything until we have consensus, the whole
jack mess has already been complicated enough and I clearly want to get
this right. ;)

-- 
mail: adi at thur.de  	http://adi.thur.de	PGP/GPG: key via keyserver



More information about the pkg-multimedia-maintainers mailing list