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

Bug#761219: debian-policy: document versioned Provides



Hello,

On Fri 07 Jun 2019 at 10:50AM +01, Dominic Hargreaves wrote:

> diff --git a/policy/ch-relationships.rst b/policy/ch-relationships.rst
> index 1d790e8..3b68420 100644
> --- a/policy/ch-relationships.rst
> +++ b/policy/ch-relationships.rst
> @@ -17,15 +17,16 @@ package names, separated by vertical bar (pipe) symbols ``|``. In such a
>  case, that part of the dependency can be satisfied by any one of the
>  alternative packages.  [#]_
>
> -All of the fields except for ``Provides`` may restrict their
> -applicability to particular versions of each named package. This is done
> -in parentheses after each individual package name; the parentheses
> -should contain a relation from the list below followed by a version
> -number, in the format described in :ref:`s-f-Version`.
> +All of the fields may restrict their applicability to particular versions
> +of each named package. This is done in parentheses after each individual
> +package name; the parentheses should contain a relation from the list
> +below followed by a version number, in the format described in
> +:ref:`s-f-Version`.
>
>  The relations allowed are ``<<``, ``<=``, ``=``, ``>=`` and ``>>`` for
>  strictly earlier, earlier or equal, exactly equal, later or equal and
> -strictly later, respectively.  [#]_
> +strictly later, respectively. The exception is the Provides field, for
> +which only ``=`` is allowed.  [#]_
>
>  Whitespace may appear at any point in the version specification subject
>  to the rules in :ref:`s-controlsyntax`, and must appear
> @@ -446,17 +447,43 @@ they can say:
>  and the ``bar-plus`` package will now also satisfy the dependency for
>  the ``foo`` package.
>
> -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.
> -[#]_
> +A ``Provides`` field may contain version numbers, and such a version number
> +will be considered when considering a dependency on or conflict with the
> +virtual package name.  [#]_ For example, given the following packages:
> +
> +::
> +
> +    Package: foo
> +    Depends: bar (>= 1.0)
> +
> +    Package: bar
> +    Version: 0.9
> +
> +    Package: bar-plus
> +    Provides: bar (= 1.0)
> +
> +the ``bar-plus`` package will again satisfy the dependency for
> +the ``foo`` package with the virtual package name.  [#]_ If the ``Provides``
> +field does not specify a version number, it will not satisfy versioned
> +dependencies or violate versioned ``Conflicts`` or ``Breaks``. For example,
> +given the following packages:
> +
> +::
> +
> +    Package: foo
> +    Depends: bar (>= 1.0)
> +
> +    Package: bar
> +    Version: 0.9
> +
> +    Package: bar-plus
> +    Provides: bar (= 1.0)
> +
> +    Package: bar-clone
> +    Provides: bar
> +
> +the ``bar-plus`` package will satisfy the dependency for the ``foo``
> +package, but the ``bar-clone`` package will not.
>
>  To specify which of a set of real packages should be the default to
>  satisfy a particular dependency on a virtual package, list the real
> @@ -670,10 +697,8 @@ dependencies.
>     together and then configured in their dependency order.
>
>  .. [#]
> -   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 functionality was introduced in dpkg 1.17.11 and newer and
> +   full support has been provided in the Debian archive since 2018.
>
>  .. [#]
>     To see why ``Breaks`` is normally needed in addition to ``Replaces``,

Seconded.  Thank you again.

I've made some editorial changes (and fixed the introduction of a
duplicate footnote reference) on branch bug761219-spwhitton of
policy.git, but these do not need seconding.

-- 
Sean Whitton

Attachment: signature.asc
Description: PGP signature


Reply to: