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

Bug#717076: libjpeg draft resolution



Kurt Roeckx <kurt@roeckx.be> writes:

> My understanding is that the point of virtual packages is so that
> several *can* provide it.  But you're now telling 1 package that it
> can't do that, while you instead could say only one (other) package can
> do it in this case.

That's one use of virtual packages.  However, that's not the primary use
of virtual packages for -dev packages.  As a general rule, we do not want
multiple packages in the archive providing the same -dev package name,
because that leads to nondeterministic builds for any package that
Build-Depends on the virtual -dev package name, and nondeterministic
builds are bad.

Rather, for -dev packages, it's more typical to have a virtual package
with a single provider at any given point.  This is a simpler version of
the mechanism used by, e.g., gcc-defaults or boost-defaults, avoiding
maintaining as separate source package when there's no need to provide
additional supporting files like symlinks.  It allows multiple versions of
the package to be in the archive at the same time but one of them
designated as the "default" version, using the virtual package Provides,
for the purposes of building other packages.  This allows packages that
actually need a specific version to Build-Depend on that specific version,
while moving most of the archive to a new version by moving the Provides
and then scheduling binNMUs.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>


Reply to: