[8343] in athena10

home help back first fref pref prev next nref lref last post

Re: [RFC] dh_ifexists: support for Depends-If-Exists

daemon@ATHENA.MIT.EDU (Geoffrey Thomas)
Thu Aug 25 15:55:53 2011

Date: Thu, 25 Aug 2011 15:55:43 -0400 (EDT)
From: Geoffrey Thomas <geofft@MIT.EDU>
To: Paul Wise <pabs@debian.org>
cc: debian-derivatives@lists.debian.org, debathena@mit.edu
In-Reply-To: <CAKTje6G2YUuUSTtd9apmH34XRg4jM3Fw=-zWPqc2XwPNr6cBDQ@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1108251525360.9379@kid-icarus.mit.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

On Thu, 25 Aug 2011, Paul Wise wrote:

> I wonder why this wouldn't work:
>
> Depends: libthing4 | libthing5 | libthing6

Hm, that was a poor example, although that wouldn't work if we had 
releases where libthing didn't exist at all, but we still wanted the 
package to be installable.

One example we use in production regards icedtea6-plugin; not all releases 
have (or had, at the time) icedtea, but we definitely wanted it on 
releaases that have it.

We started off with making it a recommendation of our "extra software" 
package, but the system's handling of recommendations isn't robust enough 
to guarantee it gets installed if available. For instance, if apt has seen 
the package before and decided not to install it, it will not re-try to 
automatically install it. (Admittedly, this is not what recommendations 
are intended for.)

So now we have code in debathena-extra-software's rules file to test for 
the package and set substvars:
http://debathena.mit.edu/trac/browser/trunk/debathena/meta/extra-software/debian/rules?rev=25189

dh-ifexists just abstracts that block of code out, so that you have to 
change (almost) nothing in debian/rules and can specify this 
sometimes-dependency in debian/control where it belongs.

> I personally would have just created a package for the software and
> used dh_shlibdeps as per normal.
>
> If that doesn't work and you actually want the libraries as
> dependencies of a metapackage, I would not add a new field but just
> add the right libraries to the ${shlibs:Depends} substvar.

This would software that's maintained outside of our packaging 
infrastructure by various Athena users (anywhere from IT department staff 
members supporting commercial software, to courses with things like 
patched versions of bochs for the OS class, to individual Athena users 
installing software into their home directories). We have a lot of 
investment in this infrastructure and for what it does it works better 
than a centralized repository, but we'd like to make plenty of libraries 
available to people setting up networked software.

But, as you see above, we have use cases other than libraries.

Thanks for your comments!

-- 
Geoffrey Thomas
geofft@mit.edu

home help back first fref pref prev next nref lref last post