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

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



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


Reply to: