1deb-control(5) dpkg suite deb-control(5)
2
3
4
6 deb-control - Debian binary packages' master control file format
7
9 control
10
12 Each Debian binary package contains the master control file, which
13 contains a number of fields. Each field begins with a tag, such as
14 Package or Version (case insensitive), followed by a colon, and the
15 body of the field. Fields are delimited only by field tags. In other
16 words, field text may be multiple lines in length, but the installation
17 tools will generally join lines when processing the body of the field
18 (except in the case of the Description field, see below).
19
21 Package: package-name (required)
22 The value of this field determines the package name, and is used
23 to generate file names by most installation tools.
24
25 Package-Type: deb|udeb|type
26 This field defines the type of the package. udeb is for size-
27 constrained packages used by the debian installer. deb is the
28 default value, it is assumed if the field is absent. More types
29 might be added in the future.
30
31 Version: version-string (required)
32 Typically, this is the original package's version number in
33 whatever form the program's author uses. It may also include a
34 Debian revision number (for non-native packages). The exact
35 format and sorting algorithm are described in deb-version(7).
36
37 Maintainer: fullname-email (recommended)
38 Should be in the format “Joe Bloggs <jbloggs@foo.com>”, and is
39 typically the person who created the package, as opposed to the
40 author of the software that was packaged.
41
42 Description: short-description (recommended)
43 long-description
44 The format for the package description is a short brief summary
45 on the first line (after the Description field). The following
46 lines should be used as a longer, more detailed description.
47 Each line of the long description must be preceded by a space,
48 and blank lines in the long description must contain a single
49 ‘.’ following the preceding space.
50
51 Section: section
52 This is a general field that gives the package a category based
53 on the software that it installs. Some common sections are
54 utils, net, mail, text, x11, etc.
55
56 Priority: priority
57 Sets the importance of this package in relation to the system as
58 a whole. Common priorities are required, standard, optional,
59 extra, etc.
60
61 The Section and Priority fields usually have a defined set of accepted
62 values based on the specific distribution policy.
63
64 Installed-Size: size
65 The approximate total size of the package's installed files, in
66 KiB units.
67
68 Essential: yes|no
69 This field is usually only needed when the answer is yes. It
70 denotes a package that is required for proper operation of the
71 system. Dpkg or any other installation tool will not allow an
72 Essential package to be removed (at least not without using one
73 of the force options).
74
75 Build-Essential: yes|no
76 This field is usually only needed when the answer is yes, and is
77 commonly injected by the archive software. It denotes a package
78 that is required when building other packages.
79
80 Architecture: arch|all (recommended)
81 The architecture specifies which type of hardware this package
82 was compiled for. Common architectures are amd64, armel, i386,
83 powerpc, etc. Note that the all value is meant for packages
84 that are architecture independent. Some examples of this are
85 shell and Perl scripts, and documentation.
86
87 Origin: name
88 The name of the distribution this package is originating from.
89
90 Bugs: url
91 The url of the bug tracking system for this package. The current
92 used format is bts-type://bts-address, like
93 debbugs://bugs.debian.org.
94
95 Homepage: url
96 The upstream project home page url.
97
98 Tag: tag-list
99 List of tags describing the qualities of the package. The
100 description and list of supported tags can be found in the
101 debtags package.
102
103 Multi-Arch: no|same|foreign|allowed
104 This field is used to indicate how this package should behave on
105 a multi-arch installations.
106
107 no This value is the default when the field is omitted, in
108 which case adding the field with an explicit no value is
109 generally not needed.
110
111 same This package is co-installable with itself, but it must
112 not be used to satisfy the dependency of any package of a
113 different architecture from itself.
114
115 foreign
116 This package is not co-installable with itself, but
117 should be allowed to satisfy a non-arch-qualified
118 dependency of a package of a different arch from itself
119 (if a dependency has an explicit arch-qualifier then the
120 value foreign is ignored).
121
122 allowed
123 This allows reverse-dependencies to indicate in their
124 Depends field that they accept this package from a
125 foreign architecture by qualifying the package name with
126 :any, but has no effect otherwise.
127
128 Source: source-name [(source-version)]
129 The name of the source package that this binary package came
130 from, if it is different than the name of the package itself.
131 If the source version differs from the binary version, then the
132 source-name will be followed by a source-version in parenthesis.
133 This can happen for example on a binary-only non-maintainer
134 upload, or when setting a different binary version via
135 «dpkg-gencontrol -v».
136
137 Subarchitecture: value
138 Kernel-Version: value
139 Installer-Menu-Item: value
140 These fields are used by the debian-installer and are usually
141 not needed. See
142 /usr/share/doc/debian-installer/devel/modules.txt from the
143 debian-installer package for more details about them.
144
145
146 Depends: package-list
147 List of packages that are required for this package to provide a
148 non-trivial amount of functionality. The package maintenance
149 software will not allow a package to be installed if the
150 packages listed in its Depends field aren't installed (at least
151 not without using the force options). In an installation, the
152 postinst scripts of packages listed in Depends fields are run
153 before those of the packages which depend on them. On the
154 opposite, in a removal, the prerm script of a package is run
155 before those of the packages listed in its Depends field.
156
157 Pre-Depends: package-list
158 List of packages that must be installed and configured before
159 this one can be installed. This is usually used in the case
160 where this package requires another package for running its
161 preinst script.
162
163 Recommends: package-list
164 Lists packages that would be found together with this one in all
165 but unusual installations. The package maintenance software will
166 warn the user if they install a package without those listed in
167 its Recommends field.
168
169 Suggests: package-list
170 Lists packages that are related to this one and can perhaps
171 enhance its usefulness, but without which installing this
172 package is perfectly reasonable.
173
174 The syntax of Depends, Pre-Depends, Recommends and Suggests fields is a
175 list of groups of alternative packages. Each group is a list of
176 packages separated by vertical bar (or “pipe”) symbols, ‘|’. The
177 groups are separated by commas. Commas are to be read as “AND”, and
178 pipes as “OR”, with pipes binding more tightly. Each package name is
179 optionally followed by an architecture qualifier appended after a colon
180 ‘:’, optionally followed by a version number specification in
181 parentheses.
182
183 An architecture qualifier name can be a real Debian architecture name
184 (since dpkg 1.16.5) or any (since dpkg 1.16.2). If omitted, the
185 default is the current binary package architecture. A real Debian
186 architecture name will match exactly that architecture for that package
187 name, any will match any architecture for that package name if the
188 package has been marked as Multi-Arch: allowed.
189
190 A version number may start with a ‘>>’, in which case any later version
191 will match, and may specify or omit the Debian packaging revision
192 (separated by a hyphen). Accepted version relationships are ‘>>’ for
193 greater than, ‘<<’ for less than, ‘>=’ for greater than or equal to,
194 ‘<=’ for less than or equal to, and ‘=’ for equal to.
195
196 Breaks: package-list
197 Lists packages that this one breaks, for example by exposing
198 bugs when the named packages rely on this one. The package
199 maintenance software will not allow broken packages to be
200 configured; generally the resolution is to upgrade the packages
201 named in a Breaks field.
202
203 Conflicts: package-list
204 Lists packages that conflict with this one, for example by
205 containing files with the same names. The package maintenance
206 software will not allow conflicting packages to be installed at
207 the same time. Two conflicting packages should each include a
208 Conflicts line mentioning the other.
209
210 Replaces: package-list
211 List of packages files from which this one replaces. This is
212 used for allowing this package to overwrite the files of another
213 package and is usually used with the Conflicts field to force
214 removal of the other package, if this one also has the same
215 files as the conflicted package.
216
217 The syntax of Breaks, Conflicts and Replaces is a list of package
218 names, separated by commas (and optional whitespace). In the Breaks
219 and Conflicts fields, the comma should be read as “OR”. An optional
220 architecture qualifier can also be appended to the package name with
221 the same syntax as above, but the default is any instead of the binary
222 package architecture. An optional version can also be given with the
223 same syntax as above for the Breaks, Conflicts and Replaces fields.
224
225 Enhances: package-list
226 This is a list of packages that this one enhances. It is
227 similar to Suggests but in the opposite direction.
228
229 Provides: package-list
230 This is a list of virtual packages that this one provides.
231 Usually this is used in the case of several packages all
232 providing the same service. For example, sendmail and exim can
233 serve as a mail server, so they provide a common package
234 (“mail-transport-agent”) on which other packages can depend.
235 This will allow sendmail or exim to serve as a valid option to
236 satisfy the dependency. This prevents the packages that depend
237 on a mail server from having to know the package names for all
238 of them, and using ‘|’ to separate the list.
239
240 The syntax of Provides is a list of package names, separated by commas
241 (and optional whitespace). An optional architecture qualifier can also
242 be appended to the package name with the same syntax as above. If
243 omitted, the default is the current binary package architecture. An
244 optional exact (equal to) version can also be given with the same
245 syntax as above (honored since dpkg 1.17.11).
246
247 Built-Using: package-list
248 This field lists extra source packages that were used during the
249 build of this binary package. This is an indication to the
250 archive maintenance software that these extra source packages
251 must be kept whilst this binary package is maintained. This
252 field must be a list of source package names with strict ‘=’
253 version relationships. Note that the archive maintenance
254 software is likely to refuse to accept an upload which declares
255 a Built-Using relationship which cannot be satisfied within the
256 archive.
257
258 Built-For-Profiles: profile-list (obsolete)
259 This field used to specify a whitespace separated list of build
260 profiles that this binary packages was built with (since dpkg
261 1.17.2 until 1.18.18). The information previously found in this
262 field can now be found in the .buildinfo file, which supersedes
263 it.
264
265 Auto-Built-Package: reason-list
266 This field specifies a whitespace separated list of reasons why
267 this package was auto-generated. Binary packages marked with
268 this field will not appear in the debian/control master source
269 control file. The only currently used reason is debug-symbols.
270
271 Build-Ids: elf-build-id-list
272 This field specifies a whitespace separated list of ELF build-
273 ids. These are unique identifiers for semantically identical ELF
274 objects, for each of these within the package. The format or
275 the way to compute each build-id is not defined by design.
276
278 Package: grep
279 Essential: yes
280 Priority: required
281 Section: base
282 Maintainer: Wichert Akkerman <wakkerma@debian.org>
283 Architecture: sparc
284 Version: 2.4-1
285 Pre-Depends: libc6 (>= 2.0.105)
286 Provides: rgrep
287 Conflicts: rgrep
288 Description: GNU grep, egrep and fgrep.
289 The GNU family of grep utilities may be the "fastest grep in the west".
290 GNU grep is based on a fast lazy-state deterministic matcher (about
291 twice as fast as stock Unix egrep) hybridized with a Boyer-Moore-Gosper
292 search for a fixed string that eliminates impossible text from being
293 considered by the full regexp matcher without necessarily having to
294 look at every character. The result is typically many times faster
295 than Unix grep or egrep. (Regular expressions containing backreferencing
296 will run more slowly, however).
297
299 The Build-Ids field uses a rather generic name out of its original
300 context within an ELF object, which serves a very specific purpose and
301 executable format.
302
304 deb-src-control(5), deb(5), deb-version(7), debtags(1), dpkg(1),
305 dpkg-deb(1).
306
307
308
3091.19.7 2019-06-03 deb-control(5)