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

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: