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: