1deb-src-control(5)                dpkg suite                deb-src-control(5)
2
3
4

NAME

6       deb-src-control - Debian source packages' master control file format
7

SYNOPSIS

9       debian/control
10

DESCRIPTION

12       Each  Debian  source  package contains the master «control» file, which
13       contains at least 2 paragraphs, separated by a blank line.   The  first
14       paragraph  lists  all  information about the source package in general,
15       while each following paragraph describes exactly  one  binary  package.
16       Each  paragraph  consists  of at least one field. A field starts with a
17       fieldname, such as Package or Section (case insensitive), followed by a
18       colon, the body of the field and a newline.  Multi-line fields are also
19       allowed, but each supplementary line, without a fieldname, should start
20       with  at  least  one  space.  The  content  of the multi-line fields is
21       generally joined to a single line by the tools (except in the  case  of
22       the  Description field, see below). To insert empty lines into a multi-
23       line field, insert a dot after the space.  Lines starting  with  a  ‘#
24       are treated as comments.
25

SOURCE FIELDS

27       Source: source-package-name (required)
28              The  value  of this field is the name of the source package, and
29              should  match  the  name  of   the   source   package   in   the
30              debian/changelog file. A package name must consist only of lower
31              case letters (a-z), digits (0-9), plus (+) and minus (-)  signs,
32              and  periods  (.). Package names must be at least two characters
33              long and must start with an alphanumeric character.
34
35
36       Maintainer: fullname-email (recommended)
37              Should be in the  format  «Joe  Bloggs  <jbloggs@foo.com>»,  and
38              references  the  person  who currently maintains the package, as
39              opposed to the author of the software or the original packager.
40
41
42       Uploaders: fullname-email
43              Lists all the names and email addresses of co-maintainers of the
44              package,  in  the same format as the Maintainer field.  Multiple
45              co-maintainers should be separated by a comma.
46
47
48       Standards-Version: version-string
49              This documents the  most  recent  version  of  the  distribution
50              policy standards this package complies with.
51
52
53       Homepage: url
54              The upstream project home page URL.
55
56
57       Bugs: url
58              The url of the bug tracking system for this package. The current
59              used      format      is      bts-type://bts-address,       like
60              debbugs://bugs.debian.org. This field is usually not needed.
61
62
63       Vcs-Arch: url
64       Vcs-Bzr: url
65       Vcs-Cvs: url
66       Vcs-Darcs: url
67       Vcs-Git: url
68       Vcs-Hg: url
69       Vcs-Mtn: url
70       Vcs-Svn: url
71              The  url  of  the  Version  Control  System  repository  used to
72              maintain  this  package.  Currently  supported  are  Arch,   Bzr
73              (Bazaar),  Cvs,  Darcs,  Git, Hg (Mercurial), Mtn (Monotone) and
74              Svn (Subversion).  Usually  this  field  points  to  the  latest
75              version of the package, such as the main branch or the trunk.
76
77
78       Vcs-Browser: url
79              The  url  of a webinterface to browse the Version Control System
80              repository.
81
82
83       Origin: name
84              The name of the distribution this package is  originating  from.
85              This field is usually not needed.
86
87
88       Section: section
89              This  is a general field that gives the package a category based
90              on the software that it  installs.   Some  common  sections  are
91              utils, net, mail, text, x11, etc.
92
93
94       Priority: priority
95              Sets the importance of this package in relation to the system as
96              a whole.  Common priorities are  required,  standard,  optional,
97              extra, etc.
98
99              The  Section  and  Priority fields usually have a defined set of
100              accepted values based on the specific distribution policy.
101
102
103       Build-Depends: package-list
104              A list of packages that need to be installed and  configured  to
105              be  able  to build from source package.  These dependencies need
106              to be satisfied when building binary architecture  dependent  or
107              independent   packages   and   source   packages.   Including  a
108              dependency in this field does not have the exact same effect  as
109              including it in both Build-Depends-Arch and Build-Depends-Indep,
110              because the dependency also needs to be satisfied when  building
111              the source package.
112
113       Build-Depends-Arch: package-list
114              Same  as  Build-Depends,  but they are only needed when building
115              the architecture dependent packages. The Build-Depends are  also
116              installed  in  this  case.  This  field  is supported since dpkg
117              1.16.4;  in  order  to   build   with   older   dpkg   versions,
118              Build-Depends should be used instead.
119
120
121       Build-Depends-Indep: package-list
122              Same  as  Build-Depends,  but they are only needed when building
123              the architecture independent  packages.  The  Build-Depends  are
124              also installed in this case.
125
126
127       Build-Conflicts: package-list
128              A list of packages that should not be installed when the package
129              is built, for example because  they  interfere  with  the  build
130              system  used.   Including a dependency in this list has the same
131              effect  as  including  it  in  both   Build-Conflicts-Arch   and
132              Build-Conflicts-Indep,  with the additional effect of being used
133              for source-only builds.
134
135
136       Build-Conflicts-Arch: package-list
137              Same as Build-Conflicts, but only when building the architecture
138              dependent  packages.  This field is supported since dpkg 1.16.4;
139              in order to build  with  older  dpkg  versions,  Build-Conflicts
140              should be used instead.
141
142
143       Build-Conflicts-Indep: package-list
144              Same as Build-Conflicts, but only when building the architecture
145              independent packages.
146
147
148       The   syntax   of    the    Build-Depends,    Build-Depends-Arch    and
149       Build-Depends-Indep fields is a list of groups of alternative packages.
150       Each group is a list of packages separated by vertical bar (or  “pipe”)
151       symbols,  ‘|’.   The  groups are separated by commas.  Commas are to be
152       read as “AND”, and pipes as “OR”,  with  pipes  binding  more  tightly.
153       Each  package  name is optionally followed by an architecture qualifier
154       appended after a colon ‘:’, optionally followed  by  a  version  number
155       specification  in  parentheses, an architecture specification in square
156       brackets, and a restriction formula consisting of one or more lists  of
157       profile names in angle brackets.
158
159       The   syntax   of   the   Build-Conflicts,   Build-Conflicts-Arch   and
160       Build-Conflicts-Indep fields  is  a  list  of  comma-separated  package
161       names,  where  the  comma  is read as an “AND”.  Specifying alternative
162       packages using a  “pipe”  is  not  supported.   Each  package  name  is
163       optionally  followed  by a version number specification in parentheses,
164       an architecture specification in square  brackets,  and  a  restriction
165       formula  consisting  of  one  or  more  lists of profile names in angle
166       brackets.
167
168       An architecture qualifier name can be a real Debian  architecture  name
169       (since  dpkg  1.16.5),  any  (since  dpkg 1.16.2) or native (since dpkg
170       1.16.5).  If omitted, the  default  for  Build-Depends  fields  is  the
171       current  host  architecture,  the default for Build-Conflicts fields is
172       any.   A  real  Debian  architecture  name  will  match  exactly   that
173       architecture for that package name, any will match any architecture for
174       that package name if the package is marked  with  Multi-Arch:  allowed,
175       and  native will match the current build architecture if the package is
176       not marked with Multi-Arch: foreign.
177
178       A version number may start with a ‘>>’, in which case any later version
179       will  match,  and  may  specify  or  omit the Debian packaging revision
180       (separated by a hyphen).  Accepted version relationships are  ‘>>’  for
181       greater  than,  ‘<<’  for less than, ‘>=’ for greater than or equal to,
182<=’ for less than or equal to, and ‘=’ for equal to.
183
184       An architecture specification consists  of  one  or  more  architecture
185       names,  separated  by whitespace. Exclamation marks may be prepended to
186       each of the names, meaning “NOT”.
187
188       A restriction formula  consists  of  one  or  more  restriction  lists,
189       separated  by  whitespace.  Each  restriction list is enclosed in angle
190       brackets. Items in  the  restriction  list  are  build  profile  names,
191       separated  by  whitespace and can be prefixed with an exclamation mark,
192       meaning “NOT”.  A restriction formula represents a  disjunctive  normal
193       form expression.
194
195       Note  that  dependencies  on packages in the build-essential set can be
196       omitted and that declaring build conflicts against them is  impossible.
197       A list of these packages is in the build-essential package.
198
199
200

BINARY FIELDS

202       Note  that  the  Priority, Section and Homepage fields can also be in a
203       binary paragraph to override the global value from the source package.
204
205
206       Package: binary-package-name (required)
207              This field is used to name the binary  package  name.  The  same
208              restrictions as to a source package name apply.
209
210
211       Architecture: arch|all|any (required)
212              The  architecture  specifies  on  which  type  of  hardware this
213              package runs. For packages that run on  all  architectures,  use
214              the  any  value. For packages that are architecture independent,
215              such as shell and Perl scripts or  documentation,  use  the  all
216              value.   To   restrict   the   packages  to  a  certain  set  of
217              architectures, specify the architecture names,  separated  by  a
218              space.  It's also possible to put architecture wildcards in that
219              list (see dpkg-architecture(1) for more information about them).
220
221
222       Build-Profiles: restriction-formula
223              This field  specifies  the  conditions  for  which  this  binary
224              package  does or does not build.  To express that condition, the
225              same restriction formula syntax from the Build-Depends field  is
226              used.
227
228              If  a binary package paragraph does not contain this field, then
229              it implicitly means that  it  builds  with  all  build  profiles
230              (including none at all).
231
232              In  other words, if a binary package paragraph is annotated with
233              a non-empty Build-Profiles field, then this  binary  package  is
234              generated  if  and  only  if  the  condition  expressed  by  the
235              conjunctive normal form expression evaluates to true.
236
237
238       Package-Type: deb|udeb
239              This field defines the type of the package.  udeb is  for  size-
240              constrained  packages  used by the debian installer.  deb is the
241              default value, it is assumed if the field is absent.  More types
242              might be added in the future.
243
244
245       Subarchitecture: value
246       Kernel-Version: value
247       Installer-Menu-Item: value
248              These  fields  are  used by the debian-installer and are usually
249              not                         needed.                          See
250              /usr/share/doc/debian-installer/devel/modules.txt    from    the
251              debian-installer package for more details about them.
252
253
254       Essential: yes|no
255       Build-Essential: yes|no
256       Multi-Arch: same|foreign|allowed|no
257       Tag: tag-list
258       Description: short-description (recommended)
259              These fields are described in the deb-control(5) manual page, as
260              they  are  copied  literally  to  the control file of the binary
261              package.
262
263
264       Depends: package-list
265       Pre-Depends: package-list
266       Recommends: package-list
267       Suggests: package-list
268       Breaks: package-list
269       Enhances: package-list
270       Replaces: package-list
271       Conflicts: package-list
272       Provides: package-list
273       Built-Using: package-list
274              These fields declare relationships between  packages.  They  are
275              discussed in the deb-control(5) manpage.
276
277

USER-DEFINED FIELDS

279       It  is  allowed  to  add  additional user-defined fields to the control
280       file. The tools will ignore these fields. If you want the fields to  be
281       copied  over to the output files, such as the binary packages, you need
282       to use a custom naming scheme: the  fields  should  start  with  an  X,
283       followed by zero or more of the letters BCS and a hyphen.
284
285
286       B      The field will appear in the control file in the binary package,
287              see deb-control(5).
288
289       S      The field will appear in the source package  control  file,  see
290              dsc(5).
291
292       C      The field will appear in the upload control (.changes) file, see
293              deb-changes(5).
294
295
296       Note that the X[BCS]- prefixes are stripped when the fields are  copied
297       over  to  the  output  files.  A  field  XC-Approved-By  will appear as
298       Approved-By in the changes file and will not appear in  the  binary  or
299       source package control files.
300
301       Take  into  account  that  these  user-defined fields will be using the
302       global namespace, which might at some point in the future collide  with
303       officially recognized fields. To avoid such potential situation you can
304       prefix those fields with Private-, such as XB-Private-New-Field.
305
306

EXAMPLE

308       # Comment
309       Source: dpkg
310       Section: admin
311       Priority: required
312       Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
313       # this field is copied to the binary and source packages
314       XBS-Upstream-Release-Status: stable
315       Homepage: https://wiki.debian.org/Teams/Dpkg
316       Vcs-Browser: https://git.dpkg.org/cgit/dpkg/dpkg.git
317       Vcs-Git: https://git.dpkg.org/git/dpkg/dpkg.git
318       Standards-Version: 3.7.3
319       Build-Depends: pkg-config, debhelper (>= 4.1.81),
320        libselinux1-dev (>= 1.28-4) [!linux-any]
321
322       Package: dpkg-dev
323       Section: utils
324       Priority: optional
325       Architecture: all
326       # this is a custom field in the binary package
327       XB-Mentoring-Contact: Raphael Hertzog <hertzog@debian.org>
328       Depends: dpkg (>= 1.14.6), perl5, perl-modules, cpio (>= 2.4.2-2),
329        bzip2, lzma, patch (>= 2.2-1), make, binutils, libtimedate-perl
330       Recommends: gcc | c-compiler, build-essential
331       Suggests: gnupg, debian-keyring
332       Conflicts: dpkg-cross (<< 2.0.0), devscripts (<< 2.10.26)
333       Replaces: manpages-pl (<= 20051117-1)
334       Description: Debian package development tools
335        This package provides the development tools (including dpkg-source)
336        required to unpack, build and upload Debian source packages.
337        .
338        Most Debian source packages will require additional tools to build;
339        for example, most packages need make and the C compiler gcc.
340
341
342

SEE ALSO

344       deb-control(5), deb-version(5), dpkg-source(1)
345
346
347
3481.18.25                           2018-06-26                deb-src-control(5)
Impressum