dpkg (1.18.25) stretch; urgency=medium
[dpkg] / man / deb-control.man
CommitLineData
1479465f
GJ
1.\" dpkg manual page - deb-control(5)
2.\"
3.\" Copyright © 1995 Raul Miller, Ian Jackson, Ian Murdock
4.\" Copyright © 1999 Ben Collins <bcollins@debian.org>
5.\" Copyright © 2000 Wichert Akkerman <wakkerma@debian.org>
6.\" Copyright © 2007-2011, 2013-2015 Guillem Jover <guillem@debian.org>
7.\" Copyright © 2008-2012 Raphaël Hertzog <hertzog@debian.org>
8.\"
9.\" This is free software; you can redistribute it and/or modify
10.\" it under the terms of the GNU General Public License as published by
11.\" the Free Software Foundation; either version 2 of the License, or
12.\" (at your option) any later version.
13.\"
14.\" This is distributed in the hope that it will be useful,
15.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
16.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17.\" GNU General Public License for more details.
18.\"
19.\" You should have received a copy of the GNU General Public License
20.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
21.
22.TH deb\-control 5 "%RELEASE_DATE%" "%VERSION%" "dpkg suite"
23.nh
24.SH NAME
25deb\-control \- Debian binary packages' master control file format
26.
27.SH SYNOPSIS
28control
29.
30.SH DESCRIPTION
31Each Debian binary package contains the master \fIcontrol\fP file, which
32contains a number of fields.
33Each field begins with a tag, such as
34.B Package
35or
36.B Version
37(case insensitive), followed by a colon, and the body of the field.
38Fields are delimited only by field tags. In other words, field text
39may be multiple lines in length, but the installation tools will
40generally join lines when processing the body of the field (except
41in the case of the
42.B Description
43field, see below).
44.
45.SH FIELDS
46.TP
47.BR Package: " \fIpackage-name\fP (required)"
48The value of this field determines the package name, and is used to
49generate file names by most installation tools.
50.TP
51.BR Version: " \fIversion-string\fP (required)"
52Typically, this is the original package's version number in whatever form
53the program's author uses. It may also include a Debian revision number
54(for non-native packages). The exact format and sorting algorithm
55are described in
56.BR deb\-version (5).
57.TP
58.BR Maintainer: " \fIfullname-email\fP (recommended)"
59Should be in the format “Joe Bloggs <jbloggs@foo.com>”, and is typically
60the person who created the package, as opposed to the author of the
61software that was packaged.
62.TP
63.BR Description: " \fIshort-description\fP (recommended)"
64.TQ
65.BI " " "long-description"
66.br
67The format for the package description is a short brief summary on the
68first line (after the \fBDescription\fP field). The following lines should be
69used as a longer, more detailed description. Each line of the long description
70must be preceded by a space, and blank lines in the long description must
71contain a single ‘\fB.\fP’ following the preceding space.
72.TP
73.BI Section: " section"
74This is a general field that gives the package a category based on the
75software that it installs.
76Some common sections are \fButils\fP, \fBnet\fP, \fBmail\fP, \fBtext\fP,
77\fBx11\fP, etc.
78.TP
79.BI Priority: " priority"
80Sets the importance of this package in relation to the system as a whole.
81Common priorities are \fBrequired\fP, \fBstandard\fP, \fBoptional\fP,
82\fBextra\fP, etc.
83.LP
84The
85.B Section
86and
87.B Priority
88fields usually have a defined set of accepted values based on the specific
89distribution policy.
90.
91.TP
92.BR Installed\-Size: " size"
93The approximate total size of the package's installed files, in KiB units.
94.
95.TP
96.BR Essential: " \fByes\fP|\fBno\fP"
97This field is usually only needed when the answer is \fByes\fP. It denotes
98a package that is required for proper operation of the system. Dpkg
99or any other installation tool will not allow an
100.B Essential
101package to be removed (at least not without using one of the force options).
102.TP
103.BR Build\-Essential: " \fByes\fP|\fBno\fP"
104This field is usually only needed when the answer is \fByes\fP, and is
105commonly injected by the archive software.
106It denotes a package that is required when building other packages.
107.TP
108.BR Architecture: " \fIarch\fP|\fBall\fP (recommended)"
109The architecture specifies which type of hardware this package was compiled
110for.
111Common architectures are \fBamd64\fP, \fBarmel\fP, \fBi386\fP, \fBpowerpc\fP,
112etc.
113Note that the
114.B all
115value is meant for packages that are architecture independent.
116Some examples of this are shell and Perl scripts, and documentation.
117.TP
118.BI Origin: " name"
119The name of the distribution this package is originating from.
120.TP
121.BI Bugs: " url"
122The \fIurl\fP of the bug tracking system for this package. The current
123used format is \fIbts-type\fP\fB://\fP\fIbts-address\fP, like
124\fBdebbugs://bugs.debian.org\fP.
125.TP
126.BI Homepage: " url"
127The upstream project home page \fIurl\fP.
128.TP
129.BI Tag: " tag-list"
130List of tags describing the qualities of the package. The description and
131list of supported tags can be found in the \fBdebtags\fP package.
132.TP
133.BR Multi\-Arch: " \fBno\fP|\fBsame\fP|\fBforeign\fP|\fBallowed\fP"
134This field is used to indicate how this package should behave on a multi-arch
135installations.
136.RS
137.TP
138.B no
139This value is the default when the field is omitted, in which case
140adding the field with an explicit \fBno\fP value is generally not needed.
141.TP
142.B same
143This package is co-installable with itself, but it must not be used to
144satisfy the dependency of any package of a different architecture from
145itself.
146.TP
147.B foreign
148This package is not co-installable with itself, but should be allowed to
149satisfy a non-arch-qualified dependency of a package of a different arch
150from itself (if a dependency has an explicit arch-qualifier then the
151value \fBforeign\fP is ignored).
152.TP
153.B allowed
154This allows reverse-dependencies to indicate in their \fBDepends\fP
155field that they accept this package from a foreign architecture by
156qualifying the package name with \fB:any\fP, but has no effect otherwise.
157.RE
158.TP
159.BR Source: " \fIsource-name\fP [\fB(\fP\fIsource-version\fP\fB)\fP]"
160The name of the source package that this binary package came from, if it is
161different than the name of the package itself.
162If the source version differs from the binary version, then the
163\fIsource-name\fP will be followed by a \fIsource-version\fP in parenthesis.
164This can happen for example on a binary-only non-maintainer upload, or when
165setting a different binary version via «\fBdpkg\-gencontrol \-v\fP».
166.TP
167.BI Subarchitecture: " value"
168.TQ
169.BI Kernel\-Version: " value"
170.TQ
171.BI Installer\-Menu\-Item: " value"
172These fields are used by the debian\-installer and are usually not needed.
173See /usr/share/doc/debian\-installer/devel/modules.txt from the
174.B debian\-installer
175package for more details about them.
176
177.TP
178.BI Depends: " package-list"
179List of packages that are required for this package to provide a
180non-trivial amount of functionality. The package maintenance software
181will not allow a package to be installed if the packages listed in its
182.B Depends
183field aren't installed (at least not without using the force options).
184In an installation, the postinst scripts of packages listed in \fBDepends\fP
185fields are run before those of the packages which depend on them. On the
186opposite, in a removal, the prerm script of a package is run before
187those of the packages listed in its \fBDepends\fP field.
188.TP
189.BI Pre\-Depends: " package-list"
190List of packages that must be installed
191.B and
192configured before this one can be installed. This is usually used in the
193case where this package requires another package for running its preinst
194script.
195.TP
196.BI Recommends: " package-list"
197Lists packages that would be found together with this one in all but
198unusual installations. The package maintenance software will warn the
199user if they install a package without those listed in its
200.B Recommends
201field.
202.TP
203.BI Suggests: " package-list"
204Lists packages that are related to this one and can perhaps enhance
205its usefulness, but without which installing this package is perfectly
206reasonable.
207.LP
208The syntax of
209.BR Depends ,
210.BR Pre\-Depends ,
211.B Recommends
212and
213.B Suggests
214fields is a list of groups of alternative packages. Each group is a list
215of packages separated by vertical bar (or “pipe”) symbols,
216‘\fB|\fP’.
217The groups are separated by commas.
218Commas are to be read as “AND”, and pipes as “OR”, with pipes
219binding more tightly.
220Each package name is optionally followed by an architecture qualifier
221appended after a colon ‘\fB:\fP’, optionally followed by a version
222number specification in parentheses.
223.LP
224An architecture qualifier name can be a real Debian architecture name
225(since dpkg 1.16.5) or \fBany\fP (since dpkg 1.16.2).
226If omitted, the default is the current binary package architecture.
227A real Debian architecture name will match exactly that architecture for
228that package name, \fBany\fP will match any architecture for that package
229name if the package has been marked as \fBMulti\-Arch: allowed\fP.
230.LP
231A version number may start with a ‘\fB>>\fP’, in which case any later
232version will match, and may specify or omit the Debian packaging revision
233(separated by a hyphen).
234Accepted version relationships are ‘\fB>>\fP’ for greater than,
235‘\fB<<\fP’ for less than, ‘\fB>=\fP’ for greater than or
236equal to, ‘\fB<=\fP’ for less than or equal to, and ‘\fB=\fP’
237for equal to.
238.TP
239.BI Breaks: " package-list"
240Lists packages that this one breaks, for example by exposing bugs
241when the named packages rely on this one. The package maintenance
242software will not allow broken packages to be configured; generally
243the resolution is to upgrade the packages named in a
244.B Breaks
245field.
246.TP
247.BI Conflicts: " package-list"
248Lists packages that conflict with this one, for example by containing
249files with the same names. The package maintenance software will not
250allow conflicting packages to be installed at the same time. Two
251conflicting packages should each include a
252.B Conflicts
253line mentioning the other.
254.TP
255.BI Replaces: " package-list"
256List of packages files from which this one replaces. This is used for
257allowing this package to overwrite the files of another package and
258is usually used with the
259.B Conflicts
260field to force removal of the other package, if this one also has the
261same files as the conflicted package.
262.LP
263The syntax of
264.BR Breaks ,
265.B Conflicts
266and
267.B Replaces
268is a list of package names, separated by commas (and optional whitespace).
269In the
270.B Breaks
271and
272.B Conflicts
273fields, the comma should be read as “OR”.
274An optional architecture qualifier can also be appended to the package name
275with the same syntax as above, but the default is \fBany\fP instead of the
276binary package architecture.
277An optional version can also be given with the same syntax as above for the
278.BR Breaks ,
279.B Conflicts
280and
281.B Replaces
282fields.
283.
284.TP
285.BI Provides: " package-list"
286This is a list of virtual packages that this one provides.
287Usually this is used in the case of several packages all providing the
288same service.
289For example, sendmail and exim can serve as a mail server, so they
290provide a common package (“mail\-transport\-agent”) on which
291other packages can depend.
292This will allow sendmail or exim to serve as a valid option to satisfy
293the dependency.
294This prevents the packages that depend on a mail server from having to
295know the package names for all of them, and using ‘\fB|\fP’ to
296separate the list.
297.LP
298The syntax of
299.B Provides
300is a list of package names, separated by commas (and optional whitespace).
301An optional architecture qualifier can also be appended to the package
302name with the same syntax as above.
303If omitted, the default is the current binary package architecture.
304An optional exact (equal to) version can also be given with the same
305syntax as above (honored since dpkg 1.17.11).
306.
307.TP
308.BI Built\-Using: " package-list"
309This field lists extra source packages that were used during the build of this
310binary package. This is an indication to the archive maintenance software that
311these extra source packages must be kept whilst this binary package is
312maintained.
313This field must be a list of source package names with strict ‘\fB=\fP’
314version relationships. Note that the archive maintenance software is likely to
315refuse to accept an upload which declares a
316.B Built\-Using
317relationship which cannot be satisfied within the archive.
318.
319.TP
320.BI Built\-For\-Profiles: " profile-list (obsolete)"
321This field used to specify a whitespace separated list of build profiles that
322this binary packages was built with (since dpkg 1.17.2 until 1.18.18).
323The information previously found in this field can now be found in the
324\fB.buildinfo\fP file, which supersedes it.
325.
326.TP
327.BI Auto\-Built\-Package: " reason-list"
328This field specifies a whitespace separated list of reasons why this package
329was auto-generated.
330Binary packages marked with this field will not appear in the
331\fIdebian/control\fP master source control file.
332The only currently used reason is \fBdebug\-symbols\fP.
333.
334.SH EXAMPLE
335.\" .RS
336.nf
337# Comment
338Package: grep
339Essential: yes
340Priority: required
341Section: base
342Maintainer: Wichert Akkerman <wakkerma@debian.org>
343Architecture: sparc
344Version: 2.4\-1
345Pre\-Depends: libc6 (>= 2.0.105)
346Provides: rgrep
347Conflicts: rgrep
348Description: GNU grep, egrep and fgrep.
349 The GNU family of grep utilities may be the "fastest grep in the west".
350 GNU grep is based on a fast lazy-state deterministic matcher (about
351 twice as fast as stock Unix egrep) hybridized with a Boyer-Moore-Gosper
352 search for a fixed string that eliminates impossible text from being
353 considered by the full regexp matcher without necessarily having to
354 look at every character. The result is typically many times faster
355 than Unix grep or egrep. (Regular expressions containing backreferencing
356 will run more slowly, however).
357.fi
358.\" .RE
359.
360.SH SEE ALSO
361.BR deb (5),
362.BR deb\-version (5),
363.BR debtags (1),
364.BR dpkg (1),
365.BR dpkg\-deb (1).