deb-buildinfo - formato Debian de ficheiro de
informação de compilação
Cada compilação de pacote fonte Debian pode gravar a
informação de compilação num ficheiro de
controle .buildinfo, o qual contem um número de campos em
formato deb822(5).
Cada campo começa com uma etiqueta, tal como Source
ou Binary (insensível a maiúsculas/minúsculas),
seguida de dois pontos, e do corpo do campo (sensível a
maiúsculas/minúsculas a menos que declarado o
contrário). Os campos são delimitados apenas pelas etiquetas
(tags) dos campos. Por outras palavras, o campo de texto pode ter
várias linhas de comprimento, mas as ferramentas de
instalação irão geralmente juntar as linhas quando
processam o corpo do campo (excepto no caso de campos multi-linha
Binary-Only-Changes, Installed-Build-Depends,
Environment, Checksums-Md5, Checksums-Sha1 e
Checksums-Sha256, ver abaixo).
Os dados de controle podem estar inclusos numa assinatura OpenPGP
ASCII Armored, como especificado em RFC4880.
O nome do ficheiro .buildinfo irá depender do tipo
de compilação e será tão específico
quanto necessário mas não mais; o nome irá ser:
- source-name_binary-version_arch.buildinfo
- para uma compilação que inclua any
- source-name_binary-version_all.buildinfo
- caso contrário para uma compilação que inclua
all
- source-name_source-version_source.buildinfo
- caso contrário para uma compilação que inclua
source
- Format:
format-version (necessário)
- O valor deste campo declara a versão de formato do ficheiro. A
sintaxe do valor do campo é um número de versão com
um componente maior ou menor. Alterações
incompatíveis com versões anteriores ao formato irão
colidir com a versão maior, e alterações
compatíveis com versões anteriores (tais como
adições de campos) irão colidir com a versão
menor. A versão de formato actual é 1.0.
- Source:
source-name [(source-version)]
(necessário)
- O nome do pacote fonte. Se a versão fonte diferir da versão
binário, então o source-name será seguido por
um source-version em parênteses. Isto pode acontecer quando
a compilação é para envio de não-maintainer
apenas-binário.
- Binary:
binary-package-list (necessário em contexto)
- Este campo dobrado é uma lista de pacotes binários
compilados separados por espaços. Se a compilação for
de "apenas-fonte", então o campo é omitido (desde
dpkg 1.20.0).
- Architecture:
arch-list (necessário)
- Este campo separado por espaços lista as arquitecturas de todos os
ficheiros actualmente a serem compilados. Arquitecturas comuns são
amd64, armel, i386, etc. Note que o valor all
destina-se a pacotes que são independentes da arquitectura. Se o
pacote fonte for também compilado, está também
presente a entrada especial source. Wildcards de arquitectura nunca
devem estar presentes na lista.
- Version:
string-de-versão (obrigatório)
- Tipicamente, isto é o número de versão do pacote
original seja em que formato o autor do programa usa. Pode também
incluir um número de revisão Debian (para pacotes
não-nativos). O formato exacto e algoritmo de
ordenação estão descritos em
deb-version(7).
- Binary-Only-Changes:
- changelog-entry
- Este campo multi-linha contem o texto concatenado da entrada changelog
para um envio de não-maintainer apenas binário (binNMU) se
esse for o caso. Para tornar isto numa entrada multi-linha válida
as linhas vazias são substituídas com um único ponto
final (‘.’) e todas as linhas são indentadas por um
caractere de espaço. O conteúdo exacto depende do formato do
changelog.
- Checksums-Md5:
(necessário)
- Checksums-Sha1:
(necessário)
- Checksums-Sha256:
(necessário)
- checksum size filename
- Estes campos multi-linha contêm uma lista de ficheiros com um
sumário de verificação e tamanho para cada um deles.
Estes campos têm a mesma sintaxe e diferem apenas no algoritmo de
checksum usado: MD5 para Checksums-Md5, SHA-1 para
Checksums-Sha1 e SHA-256 para Checksums-Sha256.
A primeira linha do campo valor (a parte na mesma linha que
tem o campo nome seguido de dois pontos) é sempre vazia. O
conteúdo do campo é expressado como linhas de
continuação, uma linha por ficheiro. Cada linha consiste
de entradas separadas por espaços que descrevem o ficheiro: o
sumário de verificação (checksum), o tamanho do
ficheiro, e o nome do ficheiro.
Estes campos listam todos os ficheiros que fazem a
compilação.
- Build-Origin:
name
- O nome da distribuição de onde este pacote originou.
- Build-Architecture:
arch (necessário)
- A arquitectura Debian para a instalação dos pacotes que
estão a ser compilados. Arquitecturas comuns são
amd64, armel, i386, etc.
- Build-Date:
build-date
- A data em que o pacote foi compilado. Tem de estar no mesmo formato que a
data duma entrada deb-changelog(5).
- Build-Kernel-Version:
build-kernel-version
- O lançamento e versão (num formato não especificado)
do kernel que corre no sistema de compilação. Este campo
só vai estar presente se o compilador o tiver explicitamente
requerido, para evitar fugir informação possivelmente
sensível.
- Build-Path:
build-path
- O caminho de compilação absoluto, que corresponde à
árvore fonte desempacotada. Este campo apenas vai estar presente se
o fornecedor o permitiu via algum padrão de correspondência
para evitar denunciar informação possivelmente
sensível.
Em Debian e derivados apenas os caminhos de
compilação começados com /build/ irão
emitir este campo.
- Build-Tainted-By:
- taint-reason-list
- Este campo dobrado contem uma lista separada por espaços de
etiquetas de razão não-exaustiva (formadas por caracteres
alfanuméricos e traços) as quais identificam porque a
compilação actual foi contaminada (desde dpkg 1.19.5).
Em Debian e derivados as seguintes etiquetas de razão
podem ser emitidas:
- merged-usr-via-aliased-dirs
- Este sistema tem um /usr fundido via directórios com nomes
alternativos (anteriormente conhecido como
merged-usr-via-symlinks). Isto irá confundir
dpkg-query, dpkg-statoverride, dpkg-trigger,
update-alternatives e qualquer outra ferramenta que use
nomes-de-caminho como chaves para as suas base de dados, pois isto cria
problemas de nomes alternativos no sistema de ficheiros, e complica o
conhecimento do sistema de ficheiros que o dpkg gravou na sua base
de dados. Para sistema de compilação, isso . For build
systems that dificulta a codificação dos nomes de caminhos
para binários ou bibliotecas específicas nos artefactos
resultantes, também pode produzir pacotes que sejam
incompatíveis com sistemas de ficheiros não-usr
fundidos.
- usr-local-has-configs
- O sistema tem ficheiros de configuração sob
/usr/local/etc.
- usr-local-has-includes
- O sistema tem ficheiros cabeçalho sob
/usr/local/include.
- usr-local-has-programs
- O sistema tem programas sob /usr/local/bin ou
/usr/local/sbin.
- usr-local-has-libraries
- O sistema tem bibliotecas, sejam estáticas ou partilhadas sob
/usr/local/lib.
- can-execute-cross-built-programs
- O sistema pode executar programas de compilação cruzada,
seja diretamente ou via algum tipo de emulação.
Desde dpkg 1.21.10.
- Installed-Build-Depends:
(necessário)
- package-list
- A lista de pacotes instalados e configurados que podem afectar o processo
de compilação do pacote.
A lista consiste do nome de cada pacote, opcionalmente tem a
qualificação da arquitectura para outras arquitecturas,
com uma restrição de versão exacta, separados por
vírgulas.
A lista inclui todos os pacotes essenciais, os pacotes
listados em Build-Depends, Build-Depends-Arch, campos de
controle de fonte Build-Depends-Indep, quaisquer
dependências de compilação específicas do
fornecedor, e todas as suas dependências recursivas. Em Debian e
derivados a dependência embutida é
build-essential.
Para as dependências que venham de campos de controle
da fonte, todas as alternativas a dependências e todos os
fornecedores de pacotes virtuais de quais se depende serão
incluídos.
- Environment:
- variable-list
- A lista de variáveis de ambiente que se sabe afectarem o processo
de compilação do pacote, com cada variável de
ambiente seguida por um sinal igual (‘=’) e o valor da
variável citando entre aspas (‘"’), e barras
escapadas (‘\\’).
deb822(5), deb-changes(5), deb-version(7),
dpkg-genbuildinfo(1).
Américo Monteiro
Se encontrar algum erro na tradução deste documento,
por favor comunique para Américo Monteiro
<a_monteiro@gmx.com>.