.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DH_SAMEVERSIONDEP 1" .TH DH_SAMEVERSIONDEP 1 "2013-08-25" "perl v5.14.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" dh_sameversiondep \- generate versioned dependency based on the versioned dependencies of the reference package. .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBdh_sameversiondep\fR [\fIdebhelper\ options\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBdh_sameversiondep\fR 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. \fBdh_sameversiondep\fR scans debian/control for the specially formatted substvar (see \*(L"sameVersionDep substvar \s-1SPECIFICATION\s0\*(R" section below), determines its value and writes it to \&\fIdebian/package.substvars\fR file. .PP The most common use case for \fBdh_sameversiondep\fR tool is to keep your \&\fIliba-dev\fR package dependency on the external \fIlibb-dev\fR package as tight as your \fIliba\fR package depends on the respective external \fIlibb\fR package (see \&\*(L"\s-1EXAMPLE\s0\*(R" section for more information about this use case). .PP \&\fBdh_sameversiondep\fR works as follows: .IP "\(bu" 4 Searches for the \fBsameVersionDep\fR substvar in the Depends, Recommends, Suggests, Enhances and Pre-Depends fields of the requested packages. When one is found, it is parsed and the \fIdependency package\fR name, \fIreference package\fR name and \fIdependency type\fR (either Depends or Recommends etc.) are determined. .IP "\(bu" 4 All dependencies of the requested \fItype\fR are collected for the \fIdependency package\fR based on the \fIdpkg-query \-\-status\fR output. If a multi-arch aware dpkg is detected, this query is architecture-qualified as needed. .IP "\(bu" 4 All dependencies of the requested \fItype\fR are collected for the \fIreference package\fR either from \fIdebian/control\fR (substvars are expanded) or from \&\fIdpkg-query \-\-status\fR output if the package was not found in \&\fIdebian/control\fR. .IP "\(bu" 4 Both collections are intersected leaving only common packages in both collections. .IP "\(bu" 4 Common package list is filtered by leaving only those which come from the same source as \fIdependency package\fR. .IP "\(bu" 4 Whatever packages are left (most likely only one), their names are replaced with \fIdependency package\fR name preserving all versioning information. This result is written to \fIdebian/package.substvars\fR file as a value of the \&\fBsameVersionDep\fR substvar being processed. .PP \&\fBdh_sameversiondep\fR is very strict about errors. If either \fIdependency package\fR or the \fIreference package\fR cannot be found or the resulting dependency set is empty, it will fail with an error. .PP \&\fBdh_sameversiondep\fR \s-1MUST\s0 be run before dh_gencontrol. However, it is recommended to run \fBdh_sameversiondep\fR after dh_shlibdeps. .SH "sameVersionDep substvar SPECIFICATION" .IX Header "sameVersionDep substvar SPECIFICATION" \&\fBsameVersionDep\fR 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 \fIdependency type\fR for that substvar. \&\fBsameVersionDep\fR should be formatted as follows (everything is case sensitive): .PP ${\fBsameVersionDep\fR:\fIdependency\fR[[:\fIreference\fR]\-\fIdependency\ type\fR]} .IP "\fIdependency\fR (mandatory)" 4 .IX Item "dependency (mandatory)" The name of the package which you want to add as a dependency. .IP "\fIreference\fR (optional)" 4 .IX Item "reference (optional)" The name of the package which dependencies are to be intersected with the dependencies of the \fIdependency\fR package. Defaults to the first package in debian/control if ommited. .IP "\fIdependency type\fR (optional)" 4 .IX Item "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 \fIdependency\fR package and \&\fIreference\fR package. .SH "EXAMPLE" .IX Header "EXAMPLE" Assume we have the following in \fIdebian/control\fR: .PP .Vb 2 \& 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} .Ve .PP 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 \&\f(CW\*(C`sameVersionDep:libc\-dev\*(C'\fR will be \fIlibc-dev (>= 0.1)\fR and the value of \&\f(CW\*(C`sameVersionDep:libd\-dev:libb\*(C'\fR will be \fIlibd-dev (>= 0.2)\fR. .PP \&\f(CW\*(C`sameVersionDep:libc\-dev\*(C'\fR could also be written as \&\f(CW\*(C`sameVersionDep:libc\-dev:liba\-Depends\*(C'\fR and \f(CW\*(C`sameVersionDep:libd\-dev:libb\*(C'\fR as \&\f(CW\*(C`sameVersionDep:libd\-dev:libb\-Depends\*(C'\fR but it is not necessary because defaults are sufficient. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdebhelper\fR\|(7) .SH "AUTHOR" .IX Header "AUTHOR" Modestas Vainius