summaryrefslogtreecommitdiffstats
path: root/man/deb-src-control.man
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 00:45:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 00:45:20 +0000
commit9a08cbfcc1ef900a04580f35afe2a4592d7d6030 (patch)
tree004cc7027bca2f2c0bcb5806527c8e0c48df2d6e /man/deb-src-control.man
parentInitial commit. (diff)
downloaddpkg-9a08cbfcc1ef900a04580f35afe2a4592d7d6030.tar.xz
dpkg-9a08cbfcc1ef900a04580f35afe2a4592d7d6030.zip
Adding upstream version 1.19.8.upstream/1.19.8upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man/deb-src-control.man')
-rw-r--r--man/deb-src-control.man487
1 files changed, 487 insertions, 0 deletions
diff --git a/man/deb-src-control.man b/man/deb-src-control.man
new file mode 100644
index 0000000..f1d25fd
--- /dev/null
+++ b/man/deb-src-control.man
@@ -0,0 +1,487 @@
+.\" dpkg manual page - deb-src-control(5)
+.\"
+.\" Copyright © 2010 Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
+.\" Copyright © 2011 Raphaël Hertzog <hertzog@debian.org>
+.\" Copyright © 2011-2015 Guillem Jover <guillem@debian.org>
+.\"
+.\" This is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.
+.TH deb\-src\-control 5 "%RELEASE_DATE%" "%VERSION%" "dpkg suite"
+.nh
+.SH NAME
+deb\-src\-control \- Debian source packages' master control file format
+.
+.SH SYNOPSIS
+debian/control
+.
+.SH DESCRIPTION
+Each Debian source package contains the master «control» file,
+which contains at least 2 paragraphs, separated by a blank line.
+The first paragraph lists
+all information about the source package in general, while each following
+paragraph describes exactly one binary package. Each paragraph consists of at
+least one field. A field starts with a fieldname, such as
+.B Package
+or
+.B Section
+(case insensitive), followed by a colon, the body of the field and a newline.
+Multi-line fields are also allowed, but each supplementary line, without a
+fieldname, should start with at least one space. The content of the multi-line
+fields is generally joined to a single line by the tools (except in the case of
+the
+.B Description
+field, see below). To insert empty lines into a multi-line
+field, insert a dot after the space.
+Lines starting with a ‘\fB#\fP’ are treated as comments.
+.
+.SH SOURCE FIELDS
+.TP
+.BR Source: " \fIsource-package-name\fP (required)"
+The value of this field is the name of the source package, and should
+match the name of the source package in the debian/changelog file. A package
+name must consist only of lowercase letters (a-z), digits (0-9), plus (+) and
+minus (-) signs, and periods (.). Package names must be at least two characters
+long and must start with a lowercase alphanumeric character (a-z0-9).
+
+.TP
+.BR Maintainer: " \fIfullname-email\fP (recommended)"
+Should be in the format «Joe Bloggs <jbloggs@foo.com>», and references the
+person who currently maintains the package, as opposed to the author of the
+software or the original packager.
+
+.TP
+.BI Uploaders: " fullname-email"
+Lists all the names and email addresses of co-maintainers of the package, in
+the same format as the \fBMaintainer\fP field.
+Multiple co-maintainers should be separated by a comma.
+
+.TP
+.BI Standards\-Version: " version-string"
+This documents the most recent version of the distribution policy standards
+this package complies with.
+
+.TP
+.BI Description " \fIshort-description\fP"
+.TQ
+.BI " " "long-description"
+The format for the source package description is a short brief summary on the
+first line (after the \fBDescription\fP field).
+The following lines should be used as a longer, more detailed description.
+Each line of the long description must be preceded by a space, and blank
+lines in the long description must contain a single ‘\fB.\fP’ following
+the preceding space.
+
+.TP
+.BI Homepage: " url"
+The upstream project home page URL.
+
+.TP
+.BI Bugs: " url"
+The \fIurl\fP of the bug tracking system for this package. The current
+used format is \fIbts-type\fP\fB://\fP\fIbts-address\fP, like
+\fBdebbugs://bugs.debian.org\fP. This field is usually not needed.
+
+.TP
+.BR Rules\-Requires\-Root: " \fBno\fP|\fBbinary-targets\fP|\fIimpl-keywords\fP
+This field is used to indicate whether the \fBdebian/rules\fP file requires
+(fake)root privileges to run some of its targets, and if so when.
+.RS
+.TP
+.B no
+The binary targets will not require (fake)root at all.
+.TP
+.B binary\-targets
+The binary targets must always be run under (fake)root.
+This value is the default when the field is omitted; adding the field
+with an explicit \fBbinary\-targets\fP while not strictly needed, marks
+it as having been analyzed for this requirement.
+.TP
+.I impl-keywords
+This is a space-separated list of keywords which define when (fake)root
+is required.
+
+Keywords consist of \fInamespace\fP/\fIcases\fP.
+The \fInamespace\fP part cannot contain "/" or whitespace.
+The \fIcases\fP part cannot contain whitespace.
+Furthermore, both parts must consist entirely of printable ASCII characters.
+
+Each tool/package will define a namespace named after itself and provide
+a number of cases where (fake)root is required.
+(See "Implementation provided keywords" in \fIrootless-builds.txt\fP).
+
+When the field is set to one of the \fIimpl-keywords\fP, the builder will
+expose an interface that is used to run a command under (fake)root.
+(See "Gain Root API" in \fIrootless-builds.txt\fP.)
+.RE
+
+.TP
+.BI Testsuite: " name-list"
+.TQ
+.BI Testsuite\-Triggers: " package-list"
+These fields are described in the
+.BR dsc (5)
+manual page, as they are generated from information inferred from
+\fBdebian/tests/control\fP or copied literally to the source control file.
+
+.TP
+.BI Vcs\-Arch: " url"
+.TQ
+.BI Vcs\-Bzr: " url"
+.TQ
+.BI Vcs\-Cvs: " url"
+.TQ
+.BI Vcs\-Darcs: " url"
+.TQ
+.BI Vcs\-Git: " url"
+.TQ
+.BI Vcs\-Hg: " url"
+.TQ
+.BI Vcs\-Mtn: " url"
+.TQ
+.BI Vcs\-Svn: " url"
+The \fIurl\fP of the Version Control System repository used to maintain this
+package. Currently supported are \fBArch\fP, \fBBzr\fP (Bazaar), \fBCvs\fP,
+\fBDarcs\fP, \fBGit\fP, \fBHg\fP (Mercurial), \fBMtn\fP (Monotone) and
+\fBSvn\fP (Subversion). Usually this field points to the latest version
+of the package, such as the main branch or the trunk.
+
+.TP
+.BI Vcs\-Browser: " url"
+The \fIurl\fP of a webinterface to browse the Version Control System
+repository.
+
+.TP
+.BI Origin: " name"
+The name of the distribution this package is originating from. This field is
+usually not needed.
+
+.TP
+.BI Section: " section"
+This is a general field that gives the package a category based on the
+software that it installs.
+Some common sections are \fButils\fP, \fBnet\fP, \fBmail\fP, \fBtext\fP,
+\fBx11\fP, etc.
+
+.TP
+.BI Priority: " priority"
+Sets the importance of this package in relation to the system as a whole.
+Common priorities are \fBrequired\fP, \fBstandard\fP, \fBoptional\fP,
+\fBextra\fP, etc.
+
+The
+.B Section
+and
+.B Priority
+fields usually have a defined set of accepted values based on the specific
+distribution policy.
+
+.TP
+.BI Build\-Depends: " package-list"
+A list of packages that need to be installed and configured to be able
+to build from source package.
+These dependencies need to be satisfied when building binary architecture
+dependent or independent packages and source packages.
+Including a dependency in this field does not have the exact same effect as
+including it in both \fBBuild\-Depends\-Arch\fP and \fBBuild\-Depends\-Indep\fP,
+because the dependency also needs to be satisfied when building the source
+package.
+.
+.TP
+.BI Build\-Depends\-Arch: " package-list"
+Same as \fBBuild\-Depends\fP, but they are only needed when building the
+architecture dependent packages. The \fBBuild\-Depends\fP are also
+installed in this case. This field is supported since dpkg 1.16.4; in
+order to build with older dpkg versions, \fBBuild\-Depends\fP
+should be used instead.
+
+.TP
+.BI Build\-Depends\-Indep: " package-list"
+Same as \fBBuild\-Depends\fP, but they are only needed when building the
+architecture independent packages. The \fBBuild\-Depends\fP are also
+installed in this case.
+
+.TP
+.BI Build\-Conflicts: " package-list"
+A list of packages that should not be installed when the package is
+built, for example because they interfere with the build system used.
+Including a dependency in this list has the same effect as including
+it in both \fBBuild\-Conflicts\-Arch\fP and
+\fBBuild\-Conflicts\-Indep\fP, with the additional effect of being
+used for source-only builds.
+
+.TP
+.BI Build\-Conflicts\-Arch: " package-list"
+Same as \fBBuild\-Conflicts\fP, but only when building the architecture
+dependent packages. This field is supported since dpkg 1.16.4; in
+order to build with older dpkg versions, \fBBuild\-Conflicts\fP should
+be used instead.
+
+.TP
+.BI Build\-Conflicts\-Indep: " package-list"
+Same as \fBBuild\-Conflicts\fP, but only when building the architecture
+independent packages.
+
+.PP
+The syntax of the
+.BR Build\-Depends ,
+.B Build\-Depends\-Arch
+and
+.B Build\-Depends\-Indep
+fields is a list of groups of alternative packages.
+Each group is a list of packages separated by vertical bar (or “pipe”)
+symbols, ‘\fB|\fP’.
+The groups are separated by commas ‘\fB,\fP’, and can end with a
+trailing comma that will be eliminated when generating the fields
+for \fBdeb\-control\fP(5) (since dpkg 1.10.14).
+Commas are to be read as “AND”, and pipes as “OR”, with pipes
+binding more tightly.
+Each package name is optionally followed by an architecture qualifier
+appended after a colon ‘\fB:\fP’,
+optionally followed by a version number specification in parentheses
+‘\fB(\fP’ and ‘\fB)\fP’, an
+architecture specification in square brackets ‘\fB[\fP’ and ‘\fB]\fP’,
+and a restriction formula
+consisting of one or more lists of profile names in angle brackets
+‘\fB<\fP’ and ‘\fB>\fP’.
+
+The syntax of the
+.BR Build\-Conflicts ,
+.B Build\-Conflicts\-Arch
+and
+.B Build\-Conflicts\-Indep
+fields is a list of comma-separated package names, where the comma is read
+as an “AND”, and where the list can end with a trailing comma that will
+be eliminated when generating the fields for \fBdeb\-control\fP(5)
+(since dpkg 1.10.14).
+Specifying alternative packages using a “pipe” is not supported.
+Each package name is optionally followed by a version number specification in
+parentheses, an architecture specification in square brackets, and a
+restriction formula consisting of one or more lists of profile names in
+angle brackets.
+
+An architecture qualifier name can be a real Debian architecture name
+(since dpkg 1.16.5), \fBany\fP (since dpkg 1.16.2) or \fBnative\fP
+(since dpkg 1.16.5).
+If omitted, the default for \fBBuild\-Depends\fP fields is the current host
+architecture, the default for \fBBuild\-Conflicts\fP fields is \fBany\fP.
+A real Debian architecture name will match exactly that architecture for
+that package name, \fBany\fP will match any architecture for that package
+name if the package is marked with \fBMulti\-Arch: allowed\fP, and
+\fBnative\fP will match the current build architecture if the package
+is not marked with \fBMulti\-Arch: foreign\fP.
+
+A version number may start with a ‘\fB>>\fP’, in which case any
+later version will match, and may specify or omit the Debian packaging
+revision (separated by a hyphen).
+Accepted version relationships are ‘\fB>>\fP’ for greater than,
+‘\fB<<\fP’ for less than, ‘\fB>=\fP’ for greater than or
+equal to, ‘\fB<=\fP’ for less than or equal to, and ‘\fB=\fP’
+for equal to.
+
+An architecture specification consists of one or more architecture names,
+separated by whitespace. Exclamation marks may be prepended to each of the
+names, meaning “NOT”.
+
+A restriction formula consists of one or more restriction lists, separated
+by whitespace. Each restriction list is enclosed in angle brackets. Items
+in the restriction list are build profile names, separated by whitespace
+and can be prefixed with an exclamation mark, meaning “NOT”.
+A restriction formula represents a disjunctive normal form expression.
+
+Note that dependencies on packages in the
+.B build\-essential
+set can be omitted and that declaring build conflicts against them is
+impossible. A list of these packages is in the build\-essential package.
+
+
+.SH BINARY FIELDS
+
+.LP
+Note that the
+.BR Priority ", " Section
+and
+.B Homepage
+fields can also be in a binary paragraph to override the global value from the
+source package.
+
+.TP
+.BR Package: " \fIbinary-package-name\fP (required)"
+This field is used to name the binary package name. The same restrictions as
+to a source package name apply.
+
+.TP
+.BR Package\-Type: " \fBdeb\fP|\fBudeb\fP|\fItype\fP"
+This field defines the type of the package.
+\fBudeb\fP is for size-constrained packages used by the debian installer.
+\fBdeb\fP is the default value, it is assumed if the field is absent.
+More types might be added in the future.
+
+.TP
+.BR Architecture: " \fIarch\fP|\fBall\fP|\fBany\fP (required)"
+The architecture specifies on which type of hardware this package runs. For
+packages that run on all architectures, use the
+.B any
+value. For packages that are architecture independent, such as shell and Perl
+scripts or documentation, use the
+.B all
+value. To restrict the packages to a certain set of architectures, specify the
+architecture names, separated by a space. It's also possible to put
+architecture wildcards in that list (see
+.BR dpkg\-architecture (1)
+for more information about them).
+
+.TP
+.BR Build\-Profiles: " \fIrestriction-formula\fP"
+This field specifies the conditions for which this binary package does or
+does not build.
+To express that condition, the same restriction formula syntax from the
+\fBBuild\-Depends\fP field is used.
+
+If a binary package paragraph does not contain this field, then it implicitly
+means that it builds with all build profiles (including none at all).
+
+In other words, if a binary package paragraph is annotated with a non-empty
+\fBBuild\-Profiles\fP field, then this binary package is generated if and
+only if the condition expressed by the conjunctive normal form expression
+evaluates to true.
+
+.TP
+.BR Essential: " \fByes\fP|\fBno\fP"
+.TQ
+.BR Build\-Essential: " \fByes\fP|\fBno\fP"
+.TQ
+.BR Multi\-Arch: " \fBsame\fP|\fBforeign\fP|\fBallowed\fP|\fBno\fP"
+.TQ
+.BI Tag: " tag-list"
+.TQ
+.BR Description: " \fIshort-description\fP (recommended)"
+These fields are described in the
+.BR deb\-control (5)
+manual page, as they are copied literally to the control file of the binary
+package.
+
+.TP
+.BI Depends: " package-list"
+.TQ
+.BI Pre\-Depends: " package-list"
+.TQ
+.BI Recommends: " package-list"
+.TQ
+.BI Suggests: " package-list"
+.TQ
+.BI Breaks: " package-list"
+.TQ
+.BI Enhances: " package-list"
+.TQ
+.BI Replaces: " package-list"
+.TQ
+.BI Conflicts: " package-list"
+.TQ
+.BI Provides: " package-list"
+.TQ
+.BI Built\-Using: " package-list"
+These fields declare relationships between packages. They are discussed in
+the
+.BR deb\-control (5)
+manpage.
+When these fields are found in \fIdebian/control\fP they can also end with
+a trailing comma (since dpkg 1.10.14), have architecture specifications and
+restriction formulas which will all get reduced when generating the fields
+for \fBdeb\-control\fP(5).
+
+.TP
+.BI Subarchitecture: " value"
+.TQ
+.BI Kernel\-Version: " value"
+.TQ
+.BI Installer\-Menu\-Item: " value"
+These fields are used by the debian\-installer in \fBudeb\fPs and are
+usually not needed.
+See /usr/share/doc/debian\-installer/devel/modules.txt from the
+.B debian\-installer
+package for more details about them.
+
+.SH USER-DEFINED FIELDS
+It is allowed to add additional user-defined fields to the control file. The
+tools will ignore these fields. If you want the fields to be copied over to
+the output files, such as the binary packages, you need to use a custom naming
+scheme: the fields should start with an \fBX\fP, followed by zero or more of
+the letters \fBSBC\fP and a hyphen.
+
+.TP
+.B S
+The field will appear in the source package control file, see \fBdsc\fP(5).
+.TP
+.B B
+The field will appear in the control file in the binary package, see
+\fBdeb\-control\fP(5).
+.TP
+.B C
+The field will appear in the upload control (.changes) file, see
+\fBdeb\-changes\fP(5).
+
+.P
+Note that the \fBX\fP[\fBSBC\fP]\fB\-\fP prefixes are stripped when the
+fields are copied over to the output files. A field \fBXC\-Approved\-By\fP
+will appear as \fBApproved\-By\fP in the changes file and will not appear
+in the binary or source package control files.
+
+Take into account that these user-defined fields will be using the global
+namespace, which might at some point in the future collide with officially
+recognized fields. To avoid such potential situation you can prefix those
+fields with \fBPrivate\-\fP, such as \fBXB\-Private\-New\-Field\fP.
+
+.SH EXAMPLE
+.\" .RS
+.nf
+# Comment
+Source: dpkg
+Section: admin
+Priority: required
+Maintainer: Dpkg Developers <debian\-dpkg@lists.debian.org>
+# this field is copied to the binary and source packages
+XBS\-Upstream\-Release\-Status: stable
+Homepage: https://wiki.debian.org/Teams/Dpkg
+Vcs\-Browser: https://git.dpkg.org/cgit/dpkg/dpkg.git
+Vcs\-Git: https://git.dpkg.org/git/dpkg/dpkg.git
+Standards\-Version: 3.7.3
+Build\-Depends: pkg\-config, debhelper (>= 4.1.81),
+ libselinux1\-dev (>= 1.28\-4) [!linux\-any]
+
+Package: dpkg\-dev
+Section: utils
+Priority: optional
+Architecture: all
+# this is a custom field in the binary package
+XB\-Mentoring\-Contact: Raphael Hertzog <hertzog@debian.org>
+Depends: dpkg (>= 1.14.6), perl5, perl\-modules, cpio (>= 2.4.2\-2),
+ bzip2, lzma, patch (>= 2.2\-1), make, binutils, libtimedate\-perl
+Recommends: gcc | c\-compiler, build\-essential
+Suggests: gnupg, debian\-keyring
+Conflicts: dpkg\-cross (<< 2.0.0), devscripts (<< 2.10.26)
+Replaces: manpages\-pl (<= 20051117\-1)
+Description: Debian package development tools
+ This package provides the development tools (including dpkg\-source)
+ required to unpack, build and upload Debian source packages.
+ .
+ Most Debian source packages will require additional tools to build;
+ for example, most packages need make and the C compiler gcc.
+.fi
+.\" .RE
+
+
+.SH SEE ALSO
+.BR deb\-control (5),
+.BR deb\-version (7),
+.BR dpkg\-source (1)