deb-src-control(5) | dpkg suite | deb-src-control(5) |
NOME¶
deb-src-control - Debian source package template control file format
RESUMO¶
debian/control
DESCRIÇÃO¶
Each Debian source package contains the «debian/control» template source control file, and its deb822(5) format is a superset of the control file shipped in Debian binary packages, see deb-control(5).
This file contains at least 2 stanzas, separated by a blank line. The first stanza is called the source package stanza and lists all information about the source package in general, while each following stanzas are called the binary package stanzas and describe exactly one binary package per stanza. Each stanza consists of at least one field. A field starts with a field name, such as Package or Section (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 field name, 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 Description field, see below). To insert empty lines into a multi-line field, insert a dot after the space. Lines starting with a ‘#’ are treated as comments.
CAMPOS DE FONTE¶
- Source: source-package-name (necessário)
- O valor deste campo é o nome do pacote fonte, e deve corresponder ao nome do pacote fonte no ficheiro debian/changelog. O nome de um pacote deve consistir apenas de letras minúsculas (a-z), dígitos (0-9), e dos sinais mais (+) e menos (-) e de pontos (.). Os nomes dos pacotes devem ter pelo menos dois caracteres de comprimento e têm de começar com um caractere alfanumérico minúsculo (a-z0-9).
- Maintainer: fullname-email (recomendado)
- Deverá estar no formato «Joe Bloggs <jbloggs@foo.com>», e refere-se à pessoa que mantém actualmente o pacote, e não o autor do software nem ao empacotador original.
- Uploaders: fullname-email
- Lista todos os nomes e endereços de email de co-maintainers do pacote, no mesmo formato que o campo Maintainer. Vários co-maintainers devem ser separados por uma vírgula.
- Standards-Version: version-string
- Isto documenta a versão mais recente dos standards de política da distribuição com que este pacote está em conformidade.
- Description short-description
- long-description
- O formato da descrição do pacote fonte é um sumário breve e curto na primeira linha (após o campo Description). As linhas seguintes devem ser usadas para uma descrição longa e mais detalhada. Cada linha da descrição longa tem de ser precedida com um espaço, e as linhas em branco na descrição longa têm de conter um único ‘.’ a seguir ao espaço que precede.
- Homepage: url
- O URL da página inicial do projecto do autor original
- Bugs: url
- O url do sistema de acompanhamento de bugs deste pacote. O formato usado actualmente é bts-type://bts-address, como debbugs://bugs.debian.org. Este campo geralmente não é necessário.
- Rules-Requires-Root: no|binary-targets|impl-keywords
- Este campo é usado para indicar se o campo debian/rules requer privilégios de (fake)root para correr alguns dos seus alvos, e se sim quando.
- no
- The binary targets will not require (fake)root at all. This is the default in dpkg-build-api level >= 1.
- binary-targets
- The binary targets must always be run under (fake)root. This value is the default in dpkg-build-api level 0, when the field is omitted; adding the field with an explicit binary-targets, while not strictly needed, marks it as having been analyzed for this requirement.
- impl-keywords
- Isto é uma lista de palavras-chave separadas por espaços que
define quando (fake)root é requerido.
Palavras chave consistem de namespace/cases. A parte namespace não pode conter "/" ou espaços em branco. A parte cases não pode conter espaços em branco. Mais ainda, ambas partes têm de consistir inteiramente de caracteres ASCII de escrita.
Cada ferramenta/pacote irá definir um espaço-nome com o nome dela própria e disponibilizar um número de casos onde (fake)root é necessário. (Veja "Implementação de palavras-chave fornecidas" em rootless-builds.txt).
Quando o campo está definido para uma das impl-keywords, o compilador irá expor uma interface que é usada para correr um comando sob (fake)root. (Veja "Gain Root API" em rootless-builds.txt.)
- Testsuite: name-list
- Testsuite-Triggers: package-list
- These fields are described in the dsc(5) manual page, as they are generated from information inferred from debian/tests/control or copied literally to the source control file.
- Vcs-Arch: url
- Vcs-Bzr: url
- Vcs-Cvs: url
- Vcs-Darcs: url
- Vcs-Git: url
- Vcs-Hg: url
- Vcs-Mtn: url
- Vcs-Svn: url
- O url do repositório do Sistema de Controlo de Versão usando para manter este pacote. Actualmente suportados são Arch, Bzr (Bazaar), Cvs, Darcs, Git, Hg (Mercurial), Mtn (Monotone) e Svn (Subversion). Geralmente esta campo aponta par aa versão mais recente do pacote, tal como o ramal principal ou o "trunk".
- Vcs-Browser: url
- O url da uma interface web para explorar o repositório do Sistema de Controlo de Versão.
- Origin: name
- O nome da distribuição de onde este pacote é originário. Normalmente este campo não é necessário.
- Section: section
- Este é um campo geral que dá ao pacote uma categoria baseada no software que ele instala. Algumas secções comuns são utils, net, mail, text, x11, etc.
- Priority: priority
- Define a importância deste pacote relativamente ao sistema como um
todo. Prioridades comuns são required, standard,
optional, extra, etc.
Os campos Section e Priority têm geralmente um conjunto definido de valores aceites baseados na política específica da distribuição.
- Build-Depends: package-list
- Uma lista de pacotes que precisam de estar instalados e configurados para ser possível compilar a partir do pacote fonte. Estas dependências precisam de estar satisfeitas quando se compila pacotes binários dependentes ou independentes da arquitectura e pacotes fonte. Incluir uma dependência neste campo não tem o mesmo efeito exacto que a incluir em ambos Build-Depends-Arch e Build-Depends-Indep, porque a dependência também precisa de satisfeita quando se compila o pacote fonte.
- Build-Depends-Arch: package-list
- O mesmo que Build-Depends, mas são apenas necessárias quando se compila os pacotes dependentes da arquitectura. Os Build-Depends são também instalados neste caso. Este campo é suportado desde dpkg 1.16.4; de modo a compilar com versões antigas do dpkg, deve ser usado Build-Depends em vez disto.
- Build-Depends-Indep: package-list
- O mesmo que Build-Depends, mas são apenas necessárias quando se compila os pacotes independentes da arquitectura. Os Build-Depends são também instalados neste caso.
- Build-Conflicts: package-list
- Uma lista de pacotes que não devem estar instalados quando o pacote é compilado, por exemplo porque interferem com o sistema de compilação usado. Incluir uma dependência nesta lista tem o mesmo efeito que a incluir em ambos Build-Conflicts-Arch e Build-Conflicts-Indep, com o efeito adicional de ser usada para compilações de apenas-fonte.
- Build-Conflicts-Arch: package-list
- O mesmo que Build-Conflicts, mas apenas quando se compila os pacotes dependentes da arquitectura. Este campo é suportado desde dpkg 1.16.4; de modo a compilar com versões antigas do dpkg, deve ser usado Build-Conflicts em vez disto.
- Build-Conflicts-Indep: package-list
- O mesmo que Build-Conflicts. mas apenas quando se compila os pacotes independentes da arquitectura.
The syntax of the Build-Depends, Build-Depends-Arch and 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, ‘|’. The groups are separated by commas ‘,’, and can end with a trailing comma that will be eliminated when generating the fields for deb-control(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 ‘:’, optionally followed by a version number specification in parentheses ‘(’ and ‘)’, an architecture specification in square brackets ‘[’ and ‘]’, and a restriction formula consisting of one or more lists of profile names in angle brackets ‘<’ and ‘>’.
The syntax of the Build-Conflicts, Build-Conflicts-Arch and 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 deb-control(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.
Um nome qualificador de arquitectura pode ser um nome de arquitectura real Debian (desde dpkg 1.16.5), any (desde dpkg 1.16.2) ou native (desde dpkg 1.16.5). Se omitido, a predefinição para campos Build-Depends é a arquitectura da máquina actual, a predefinição para campos Build-Conflicts é any. Um nome de arquitectura real Debian irá corresponder exactamente essa arquitectura para esse nome de pacote, any irá corresponder a qualquer arquitectura para esse nome de pacote se o pacote estiver marcado com Multi-Arch: allowed, e native irá corresponder à arquitectura de compilação actual se o pacote não estiver marcado com Multi-Arch: foreign.
Um número de versão pode começar com um ‘>>’, nesse caso qualquer versão posterior irá corresponder, e pode especificar ou omitir a revisão de empacotamento Debian (separada por um hífen). Relacionamentos de versão aceites são ‘>>’ para maior que, ‘<<’ para menor que, ‘>=’ para maior ou igual a, ‘<=’ para menor ou igual a, e ‘=’ para igual a.
Uma especificação de arquitectura consiste em um ou mais nomes de arquitectura, separados por espaços em branco. Pode ser adicionado no inicio de cada nome um ponto de exclamação, o que significa "NÃO".
Uma fórmula de restrição consiste em uma ou mais listas de restrições, separadas por espaços em branco. Cada lista de restrição fica dentro de colchetes angulares, os itens na lista de restrição são nomes de perfis de compilação, separados por espaços em branco e pode ser prefixados com um ponto de exclamação, que significa “NÃO”. Uma fórmula de restrição representa uma expressão de forma normal disjuntiva.
Note que as dependências de pacotes no conjunto build-essential podem ser omitidas e que declarar conflitos de compilação contra elas é impossível. Uma lista desses pacotes está no pacote build-essential.
CAMPOS DE BINÁRIOS¶
Note que os campos Priority, Section e Homepage podem também ficar numa estrofe binário para sobrepor o valor global do pacote fonte.
- Package: binary-package-name (necessário)
- Este campo é usado para dar nome ao nome do pacote binário. Aplicam-se as mesmas restrições como para um nome de pacote fonte.
- Package-Type: deb|udeb|type
- Este campo define o tipo de pacote. udeb é para pacotes de tamanho reduzido usados pelo instalador de debian. deb é o valor predefinido, é assumido se o campo estiver ausente. Mais tipos podem ser adicionados no futuro.
- Architecture: arch|all|any (necessário)
- The architecture specifies on which type of hardware this package runs. For packages that run on all architectures, use the any value. For packages that are architecture independent, such as shell and Perl scripts or documentation, use the 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 dpkg-architecture(1) for more information about them).
- Build-Profiles: restriction-formula
- Este campo especifica as condições para quais este pacote
compila ou não compila. Para expressar essas
condições, é usada a mesma sintaxe de fórmula
de restrição que se usa no campo Build-Depends
(incluindo os colchetes angulares).
Se uma estrofe de pacote binário não conter este campo, então significa implicitamente que compila com todos os perfis de compilação (incluindo nenhum deles).
Por outras palavras, se uma estrofe de pacote binário estiver anotado com um campo Build-Profiles não vazio, então este pacote binário é gerado se e apenas se a condição expressa pela expressão de forma normal conjuntiva ser avaliada como verdadeira.
- Protected: yes|no
- Essential: yes|no
- Build-Essential: yes|no
- Multi-Arch: same|foreign|allowed|no
- Tag: tag-list
- Description: short-description (recomendado)
- These fields are described in the deb-control(5) manual page, as they are copied literally to the control file of the binary package.
- Depends: package-list
- Pre-Depends: package-list
- Recommends: package-list
- Suggests: package-list
- Breaks: package-list
- Enhances: package-list
- Replaces: package-list
- Conflicts: package-list
- Provides: package-list
- Built-Using: package-list
- Static-Built-Using: package-list
- These fields declare relationships between packages. They are discussed in the deb-control(5) manual page. When these fields are found in debian/control 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 deb-control(5).
- Subarchitecture: value
- Kernel-Version: value
- Installer-Menu-Item: value
- Estes campos são usados pelo instalador de debian em udebs e geralmente não são necessários. Para mais detalhes acerca deles, veja <https://salsa.debian.org/installer-team/debian-installer/-/raw/master/doc/devel/modules.txt>.
CAMPOS DEFINIDOS PELO UTILIZADOR¶
É permitido adicionar campos adicionais definidos pelo utilizador. As ferramentas irão ignorar estes campos. -Se deseja que os campos sejam copiados os ficheiros resultantes, tal como um pacote binário, você precisa de usar um esquema de nomeação personalizado: os campos devem começar com um X, seguido de zero ou mais das letras SBC e um hífen.
- S
- The field will appear in the source package control file, see dsc(5).
- B
- The field will appear in the control file in the binary package, see deb-control(5).
- C
- The field will appear in the upload control (.changes) file, see deb-changes(5).
Note que os prefixos X[SBC]- são cortados quando so campos são copiados para os ficheiros resultantes. Um campo XC-Approved-By irá aparecer como Approved-By no ficheiro changes e não irá aparecer nos ficheiros de controle de pacote binário ou fonte.
Tenha em conta que estes campos definidos pelo utilizador irão usar o espaço de nomes global, o que poderá em algum ponto no futuro colidir com campos oficialmente reconhecidos. Para evitar tal potencial situação, você pode prefixar esse campos com Private-, tal como XB-Private-New-Field.
EXEMPLO¶
# 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: pkgconf, 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.
VEJA TAMBÉM¶
/usr/share/doc/dpkg/spec/rootless-builds.txt, deb822(5), deb-control(5), deb-version(7), dpkg-source(1)
TRADUÇÃO¶
Américo Monteiro
Se encontrar algum erro na tradução deste documento, por favor comunique para Américo Monteiro <a_monteiro@gmx.com>.
2024-01-19 | 1.22.3 |