DH_SAMEVERSIONDEP(1) User Contributed Perl Documentation DH_SAMEVERSIONDEP(1)

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

dh_sameversiondep [debhelper options]

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:

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 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]}

The name of the package which you want to add as a dependency.
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.
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.

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}

Assuming 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.

debhelper(7)

Modestas Vainius <modax@debian.org>

2024-04-01 perl v5.38.2