Bug#761219: debian-policy: document versioned Provides
Package: debian-policy
Version: 3.9.5.0
Severity: wishlist
dpkg 1.17.11 and apt 1.0.7 recently implemented support for versioned
provides. From the dpkg changelog:
* Add versioned Provides support:
- Add a new dpkg --assert-versioned-provides command.
- Packages can provide a specific version, “virtual (= 1.0)” which will
be honored, previously it would just be accepted when parsing.
- Non-versioned virtual packages will not satisfy versioned dependencies.
- Versioned virtual packages will satisfy non-versioned dependencies.
This seems useful for at least perl packages [0], where we'd like to
start using them after jessie is released, if possible.
Quoting section 7.5 (Virtual packages - `Provides') of the current policy:
If a relationship field has a version number attached, only real
packages will be considered to see whether the relationship is
satisfied (or the prohibition violated, for a conflict or breakage).
In other words, if a version number is specified, this is a request
to ignore all `Provides' for that package name and consider only
real packages. The package manager will assume that a package
providing that virtual package is not of the "right" version.
A `Provides' field may not contain version numbers, and the version
number of the concrete package which provides a particular virtual
package will not be considered when considering a dependency on or
conflict with the virtual package name.[1]
[...]
[1] It is possible that a future release of `dpkg' may add the
ability to specify a version number for each virtual package
it provides. This feature is not yet present, however, and is
expected to be used only infrequently.
This clearly needs an update. No proposed wording yet, sorry.
[0] perl/perl-modules Provide a dozen or so virtual packages of bundled
modules that also exist as separate packages in the archive with a
newer version. Packages that need at least a specified version of
such a module currently need to do things like
Depends: perl (>=y) | libfoo-bar-perl (>=x)
and the expressions may even need changes with newer perl releases.
See https://lintian.debian.org/tags/versioned-dependency-satisfied-by-perl.html
--
Niko Tyni ntyni@debian.org
Reply to: