From b86570f63e533abcbcb97c2572e0e5732a96307b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 11:40:31 +0200 Subject: Adding upstream version 1.20.13. Signed-off-by: Daniel Baumann --- man/deb-src-control.pod | 511 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 511 insertions(+) create mode 100644 man/deb-src-control.pod (limited to 'man/deb-src-control.pod') diff --git a/man/deb-src-control.pod b/man/deb-src-control.pod new file mode 100644 index 0000000..996037b --- /dev/null +++ b/man/deb-src-control.pod @@ -0,0 +1,511 @@ +# dpkg manual page - deb-src-control(5) +# +# Copyright © 2010 Oxan van Leeuwen +# Copyright © 2011 Raphaël Hertzog +# Copyright © 2011-2015 Guillem Jover +# +# 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 . + +=encoding utf8 + +=head1 NAME + +deb-src-control - Debian source packages' master control file format + +=head1 SYNOPSIS + +B + +=head1 DESCRIPTION + +Each Debian source package contains the master «B» file, +and its L format is a superset of the B file +shipped in Debian binary packages, see B(5). + +This file 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 +or +B
+(case insensitive), followed by a colon, the body of the field +(case sensitive unless stated otherwise) 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 +field, see below). To insert empty lines into a multi-line +field, insert a dot after the space. +Lines starting with a ‘B<#>’ are treated as comments. + +=head1 SOURCE FIELDS + +=over + +=item B I (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). + +=item B I (recommended) + +Should be in the format «Joe Bloggs Ejbloggs@foo.comE», and references the +person who currently maintains the package, as opposed to the author of the +software or the original packager. + +=item B I + +Lists all the names and email addresses of co-maintainers of the package, in +the same format as the B field. +Multiple co-maintainers should be separated by a comma. + +=item B I + +This documents the most recent version of the distribution policy standards +this package complies with. + +=item B I + +=item B<> I + +The format for the source package description is a short brief summary on the +first line (after the B 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 ‘B<.>’ following +the preceding space. + +=item B I + +The upstream project home page URL. + +=item B I + +The I of the bug tracking system for this package. The current +used format is IB<://>I, like +B. This field is usually not needed. + +=item B B|B|I + +This field is used to indicate whether the B file requires +(fake)root privileges to run some of its targets, and if so when. + +=over + +=item B + +The binary targets will not require (fake)root at all. + +=item B + +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 B while not strictly needed, marks +it as having been analyzed for this requirement. + +=item I + +This is a space-separated list of keywords which define when (fake)root +is required. + +Keywords consist of I/I. +The I part cannot contain "/" or whitespace. +The I 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 I). + +When the field is set to one of the I, the builder will +expose an interface that is used to run a command under (fake)root. +(See "Gain Root API" in I.) + +=back + +=item B I + +=item B I + +These fields are described in the +B(5) +manual page, as they are generated from information inferred from +B or copied literally to the source control file. + +=item B I + +=item B I + +=item B I + +=item B I + +=item B I + +=item B I + +=item B I + +=item B I + +The I of the Version Control System repository used to maintain this +package. Currently supported are B, B (Bazaar), B, +B, B, B (Mercurial), B (Monotone) and +B (Subversion). Usually this field points to the latest version +of the package, such as the main branch or the trunk. + +=item B I + +The I of a webinterface to browse the Version Control System +repository. + +=item B I + +The name of the distribution this package is originating from. This field is +usually not needed. + +=item B I
+ +This is a general field that gives the package a category based on the +software that it installs. +Some common sections are B, B, B, B, +B, etc. + +=item B I + +Sets the importance of this package in relation to the system as a whole. +Common priorities are B, B, B, +B, etc. + +The +B
+and +B +fields usually have a defined set of accepted values based on the specific +distribution policy. + +=item B I + +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 B and B, +because the dependency also needs to be satisfied when building the source +package. + +=item B I + +Same as B, but they are only needed when building the +architecture dependent packages. The B are also +installed in this case. This field is supported since dpkg 1.16.4; in +order to build with older dpkg versions, B +should be used instead. + +=item B I + +Same as B, but they are only needed when building the +architecture independent packages. The B are also +installed in this case. + +=item B I + +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 B and +B, with the additional effect of being +used for source-only builds. + +=item B I + +Same as B, 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, B should +be used instead. + +=item B I + +Same as B, but only when building the architecture +independent packages. + +=back + +The syntax of the +B, +B +and +B +fields is a list of groups of alternative packages. +Each group is a list of packages separated by vertical bar (or “pipe”) +symbols, ‘B<|>’. +The groups are separated by commas ‘B<,>’, and can end with a +trailing comma that will be eliminated when generating the fields +for B(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 ‘B<:>’, +optionally followed by a version number specification in parentheses +‘B<(>’ and ‘B<)>’, an +architecture specification in square brackets ‘B<[>’ and ‘B<]>’, +and a restriction formula +consisting of one or more lists of profile names in angle brackets +‘B>’ and ‘B>’. + +The syntax of the +B, +B +and +B +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 B(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), B (since dpkg 1.16.2) or B +(since dpkg 1.16.5). +If omitted, the default for B fields is the current host +architecture, the default for B fields is B. +A real Debian architecture name will match exactly that architecture for +that package name, B will match any architecture for that package +name if the package is marked with B, and +B will match the current build architecture if the package +is not marked with B. + +A version number may start with a ‘BE>’, 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 ‘BE>’ for greater than, +‘BE>’ for less than, ‘B=>’ for greater than or +equal to, ‘B=>’ for less than or equal to, and ‘B<=>’ +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 +set can be omitted and that declaring build conflicts against them is +impossible. A list of these packages is in the build-essential package. + +=head1 BINARY FIELDS + +Note that the +B, B
+and +B +fields can also be in a binary paragraph to override the global value from the +source package. + +=over + +=item B I (required) + +This field is used to name the binary package name. The same restrictions as +to a source package name apply. + +=item B B|B|I + +This field defines the type of the package. +B is for size-constrained packages used by the debian installer. +B is the default value, it is assumed if the field is absent. +More types might be added in the future. + +=item B I|B|B (required) + +The architecture specifies on which type of hardware this package runs. For +packages that run on all architectures, use the +B +value. For packages that are architecture independent, such as shell and Perl +scripts or documentation, use the +B +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 +B(1) +for more information about them). + +=item B I + +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 +B 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 +B field, then this binary package is generated if and +only if the condition expressed by the conjunctive normal form expression +evaluates to true. + +=item B B|B + +=item B B|B + +=item B B|B + +=item B B|B|B|B + +=item B I + +=item B I (recommended) + +These fields are described in the +B(5) +manual page, as they are copied literally to the control file of the binary +package. + +=item B I + +=item B I + +=item B I + +=item B I + +=item B I + +=item B I + +=item B I + +=item B I + +=item B I + +=item B I + +These fields declare relationships between packages. They are discussed in +the +B(5) +manpage. +When these fields are found in I 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 B(5). + +=item B I + +=item B I + +=item B I + +These fields are used by the debian-installer in Bs and are +usually not needed. +See /usr/share/doc/debian-installer/devel/modules.txt from the +B +package for more details about them. + +=back + +=head1 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 B, followed by zero or more of +the letters B and a hyphen. + +=over + +=item B + +The field will appear in the source package control file, see B(5). + +=item B + +The field will appear in the control file in the binary package, see +B(5). + +=item B + +The field will appear in the upload control (.changes) file, see +B(5). + +=back + +Note that the B[B]B<-> prefixes are stripped when the +fields are copied over to the output files. A field B +will appear as B 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 B, such as B. + +=head1 EXAMPLE + + # Comment + Source: dpkg + Section: admin + Priority: required + Maintainer: Dpkg Developers + # 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 + 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. + +=head1 SEE ALSO + +L, +B(5), +B(7), +B(1) -- cgit v1.2.3