Provided by: pkg-kde-tools_0.15.32ubuntu4_amd64 bug

NAME

       dh_sameversiondep - generate versioned dependency based on the versioned dependencies of
       the reference package.

SYNOPSIS

       dh_sameversiondep [debhelper options]

DESCRIPTION

       dh_sameversiondep is a helper tool which is able to generate a dependency that is
       versioned the same way as a dependency (coming from the same source) of another reference
       package.  dh_sameversiondep scans debian/control for the specially formatted substvar (see
       "sameVersionDep substvar SPECIFICATION" section below), determines its value and writes it
       to debian/package.substvars file.

       The most common use case for dh_sameversiondep tool is to keep your liba-dev package
       dependency on the external libb-dev package as tight as your liba package depends on the
       respective external libb package (see "EXAMPLE" section for more information about this
       use case).

       dh_sameversiondep works as follows:

       •   Searches for the sameVersionDep substvar in the Depends, Recommends, Suggests,
           Enhances and Pre-Depends fields of the requested packages. When one is found, it is
           parsed and the dependency package name, reference package name and dependency type
           (either Depends or Recommends etc.) are determined.

       •   All dependencies of the requested type are collected for the dependency package based
           on the dpkg-query --status output. If a multi-arch aware dpkg is detected, this query
           is architecture-qualified as needed.

       •   All dependencies of the requested type are collected for the reference package either
           from debian/control (substvars are expanded) or from dpkg-query --status output if the
           package was not found in debian/control.

       •   Both collections are intersected leaving only common packages in both collections.

       •   Common package list is filtered by leaving only those which come from the same source
           as dependency package.

       •   Whatever packages are left (most likely only one), their names are replaced with
           dependency package name preserving all versioning information. This result is written
           to debian/package.substvars file as a value of the sameVersionDep substvar being
           processed.

       dh_sameversiondep is very strict about errors. If either dependency package or the
       reference package cannot be found or the resulting dependency set is empty, it will fail
       with an error.

       dh_sameversiondep MUST be run before dh_gencontrol. However, it is recommended to run
       dh_sameversiondep after dh_shlibdeps.

sameVersionDep substvar SPECIFICATION

       sameVersionDep substvar can appear in either Depends, Recommends, Suggests, Enhances or
       Pre-Depends field of any binary package. The field, which the substvar appears in, becomes
       the default dependency type for that substvar.  sameVersionDep should be formatted as
       follows (everything is case sensitive):

       ${sameVersionDep:dependency[[:reference]-dependency type]}

       dependency (mandatory)
           The name of the package which you want to add as a dependency.

       reference (optional)
           The name of the package which dependencies are to be intersected with the dependencies
           of the dependency package. Defaults to the first package in debian/control if omitted.

       dependency type (optional)
           Can be either Depends, Recommends, Suggests, Enhances or Pre-Depends. Defaults to the
           name of the field which the substvar was found in. Specifies which type of
           dependencies to consider when analyzing dependency package and reference package.

EXAMPLE

       Assume we have the following in debian/control:

           Package: liba
           Depends: libc (>= 0.1), depa, depb, depc

           Package: libb
           Depends: libd (>= 0.2), depd, depe, depf

           Package: libab-dev
           Depends: ${sameVersionDep:libc-dev}, ${sameVersionDep:libd-dev:libb}

       Assumming that libc and libc-dev (both from the same source), as well as libd and libd-dev
       (both from the same source) are installed, the value of "sameVersionDep:libc-dev" will be
       libc-dev (>= 0.1) and the value of "sameVersionDep:libd-dev:libb" will be libd-dev (>=
       0.2).

       "sameVersionDep:libc-dev" could also be written as "sameVersionDep:libc-dev:liba-Depends"
       and "sameVersionDep:libd-dev:libb" as "sameVersionDep:libd-dev:libb-Depends" but it is not
       necessary because defaults are sufficient.

SEE ALSO

       debhelper(7)

AUTHOR

       Modestas Vainius <modax@debian.org>