.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "debhelper 7" .TH debhelper 7 2024-03-27 13.15.3 Debhelper .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NOME .IX Header "NOME" debhelper \- a suite de ferramentas debhelper .SH RESUMO .IX Header "RESUMO" \&\fBdh_\fR\fI*\fR [\fB\-v\fR] [\fB\-a\fR] [\fB\-i\fR] [\fB\-\-no\-act\fR] [\fB\-p\fR\fIpackage\fR] [\fB\-N\fR\fIpackage\fR] [\fB\-P\fR\fItmpdir\fR] .SH DESCRIÇÃO .IX Header "DESCRIÇÃO" Debhelper é usado para ajuda-lo a compilar um pacote Debian. A filosofia por detrás de debhelper é disponibilizar uma colecção de ferramentas pequenas, simples e de fácil compreensão que são usadas em \fIdebian/rules\fR para automatizar vários aspectos comuns da compilação de um pacote. Isto significa menos trabalho para si, o empacotador. Também significa, até certo ponto, que estas ferramentas podem ser alteradas se a política de Debian alterar, e os pacotes que as usam irão precisar apenas de uma recompilação para ficarem em conformidade com a nova política. .PP Um ficheiro \fIdebian/rules\fR típico que usa debhelper irá chamar vários comandos debhelper em sequência, ou usar \fBdh\fR\|(1) para automatizar este processo. Em \fI/usr/share/doc/debhelper/examples/\fR estão exemplos de ficheiros de regras que usam debhelper. .PP Para criar um novo pacote Debian usando o debhelper, você pode copiar um dos ficheiros de regras exemplo e edita-lo à mão. Ou pode tentar o pacote \fBdh-make\fR, o qual contém um comando dh_make que automatiza parcialmente o processo Para uma introdução mais gentil, o pacote Debian \fBmaint-guide\fR contém um tutorial acerca de como fazer o seu primeiro pacote usando o debhelper. .PP Excepto onde a ferramenta explicitamente denota, caso contrário, todas as ferramentas do debhelper assumem que são corridas a partir do directório raiz de um pacote fonte descompactado. Isto é feito para que possam localizar e encontrar ficheiros como \fIdebian/control\fR quando necessário. .SH "COMANDOS DO DEBHELPER" .IX Header "COMANDOS DO DEBHELPER" Aqui está a lista dos comandos debhelper que você pode usar. Veja os seus manuais para documentação adicional. .Sp .RS 4 #LISTA# .RE .SS "Comandos Descontinuados" .IX Subsection "Comandos Descontinuados" Alguns comandos debhelper estão descontinuados e não devem ser usados. .Sp .RS 4 #LISTA_DE_DESCONTINUADOS# .RE .SS "Outros comandos" .IX Subsection "Outros comandos" Se o nome dum programa começa com \fBdh_\fR, e o programa não está nas listas em cima, então não faz parte do pacote debhelper, mas mesmo assim deverá funcionar como os outros programas descritos nesta página. .SH "FICHEIROS DE CONFIGURAÇÃO DO DEBHELPER" .IX Header "FICHEIROS DE CONFIGURAÇÃO DO DEBHELPER" Muitos comandos do debhelper usam ficheiros em \fIdebian/\fR para controlar o que fazem. Para além dos comuns \fIdebian/changelog\fR e \fIdebian/control\fR, que estão em todos os pacotes, e não apenas aqueles que usam debhelper, alguns ficheiros adicionais podem ser usados para configurar o comportamento de comandos debhelper específicos. Estes ficheiros são chamados tipicamente debian/\fIpacote\fR.foo (onde \fIpacote\fR é claro, é substituído pelo nome do pacote no qual se está a actuar). .PP Por exemplo, \fBdh_installdocs\fR usa ficheiros chamados \fIdebian/package.docs\fR para listar os ficheiros de documentação que ira instalar. Veja os manuais individuais dos comandos para detalhes acerca dos nomes e formatos dos ficheiros que usam. Geralmente, estes ficheiros irão listar ficheiros onde se vai actuar, um ficheiro por linha. Alguns programas no debhelper usam pares de ficheiros e destinos ou formatos ligeiramente mais complicados. .PP Note if there is only one binary package listed in \fIdebian/control\fR, then debhelper will use \fIdebian/foo\fR when there's no \fIdebian/package.foo\fR file. In compat levels before compat 15, this fallback also occurs for the first binary package listed in \fIdebian/control\fR when there are multiple binary packages. However, it is often a good idea to keep the \fIpackage.\fR prefix as it is more explicit and also required when upgrading to compat 15. .PP Additionally, there are some special cases where debhelper will always fallback to a prefix-less version. These are cases such as \fIdebian/copyright\fR and \fIdebian/changelog\fR, where the files are generally used and needed for all binary packages. .PP Em alguns casos raros, você pode querer ter versões diferentes destes ficheiros para arquitecturas ou sistemas operativos diferentes. Se existirem ficheiros chamados debian/\fIpacote\fR.foo.\fIARCH\fR ou debian/\fIpacote\fR.foo.\fIOS\fR, onde \fIARCH\fR e \fIOS\fR são o mesmo que o resultado de "\fBdpkg-architecture \-qDEB_HOST_ARCH\fR" / "\fBdpkg-architecture \-qDEB_HOST_ARCH_OS\fR", então eles irão ser usados em preferência de outros ficheiros mais gerais. .PP Maioritariamente, estes ficheiros de configuração são usados para especificar listas de vários tipos de ficheiros. Documentação ou ficheiros exemplo para instalar, ficheiros para mover, e etc. Quando apropriado, em casos como estes, você pode usar caracteres "wildcard" de shell standard (classes de caracteres \fB?\fR e \fB*\fR e \fB[\fR\fI..\fR\fB]\fR) nos ficheiros. Também pode meter comentários neste ficheiros; as linhas começadas com \fB#\fR são ignoradas. .PP A sintaxe destes ficheiros é mantida intencionalmente muito simples para os tornar fáceis de ler, compreender e modificar. .SS "Substituições em ficheiros de configuração do debhelper" .IX Subsection "Substituições em ficheiros de configuração do debhelper" Em nível de compatibilidade 13 e posterior, é possível usar substituições simples em ficheiros de configuração do debhelper para as seguintes ferramentas: .IP \(bu 4 dh_clean .IP \(bu 4 dh_install .IP \(bu 4 dh_installcatalogs .IP \(bu 4 dh_installdeb .IP \(bu 4 dh_installdirs .IP \(bu 4 dh_installdocs .IP \(bu 4 dh_installexamples .IP \(bu 4 dh_installinfo .IP \(bu 4 dh_installman .IP \(bu 4 dh_installwm .IP \(bu 4 dh_link .IP \(bu 4 dh_missing .IP \(bu 4 dh_ucf .PP Todas as variáveis de substituição são do formato \fI${foo}\fR e as chavetas são obrigatórias. Os nomes das variáveis são sensíveis a maiúscula/minúscula e consistem de alfanuméricos (a\-zA\-Z0\-9), hífens (\-), underscores (_), and dois pontos (:). O primeiro caractere tem de ser alfanumérico. .PP Se precisar de um sinal literal de dollar que não despolete uma substituição, você pode ou usar a substituição de \fB${Dollar}\fR ou a sequência \fB${}\fR. .PP As seguintes expansões estão disponíveis: .IP "\fBDEB_HOST_*\fR, \fBDEB_BUILD_*\fR, \fBDEB_TARGET_*\fR" 4 .IX Item "DEB_HOST_*, DEB_BUILD_*, DEB_TARGET_*" Expande para o valor \fBdpkg\-architecture\fR\|(1) relevante (semelhante a \fIdpkg-architecture \-qVARIABLE_HERE\fR). .Sp Em caso de dúvida, a variante \fBDEB_HOST_*\fR é aquela que irá trabalhar para ambas compilações nativas e cruzadas. .Sp Por razões de performance, o debhelper irá tentar resolver esses nomes primeiro a partir do ambiente antes de consultar \fBdpkg\-architecture\fR\|(1). Isto é muito mencionado para plenitude pois não irá ter importância na maioria dos casos. .IP \fBDollar\fR 4 .IX Item "Dollar" Expande para um símbolo literal único \fB$\fR\-symbol. Este símbolo \fInunca\fR irá ser considerado parte de uma variável de substituição. Isso é: .Sp .Vb 4 \& # Triggers an error \& ${NO_SUCH_TOKEN} \& # Expands to the literal value "${NO_SUCH_TOKEN}" \& ${Dollar}{NO_SUCH_TOKEN} .Ve .Sp Esta variável é equivalente à sequência \fB${}\fR e as duas podem ser usadas alternadamente. .IP "\fBNewline\fR, \fBSpace\fR, \fBTab\fR" 4 .IX Item "Newline, Space, Tab" Expande para uma nova linha ASCII única, espaço e tab respetivamente. .Sp Isto pode ser útil se precisar de incluir um caractere literal de "espaço em branco" (ex. espaço) onde caso contrário ele iria ser descartado ou usado como um separador. .IP \fBenv:\fR\f(BINAME\fR 4 .IX Item "env:NAME" Expande para a variável de ambiente \fINAME\fR. A variável de ambiente tem de estar definida (mas pode estar definida para uma string vazia). .PP Note que todas as variáveis têm de expandir para um valor definido. Como exemplo, se o debhelper vir \fI${env:FOO}\fR, então ele irá insistir que a variável de ambiente \fIFOO\fR está definida (pode estar definida para uma string vazia). .PP \fILimites de substituição\fR .IX Subsection "Limites de substituição" .PP Para evitar ciclos infinitos e exaustão de recursos, o debhelper irá parar com um erro se o texto conter muitas variáveis de substituição (50) ou se elas expandirem para lá de um determinado tamanho (4096 caracteres ou 3x o comprimento da entrada original \- qual deles for maior). .PP \fISubstitution limitations: filtering\fR .IX Subsection "Substitution limitations: filtering" .PP The built-in substitution cannot be used to "filter" out content. Attempts to create "comments" or "empty lines" via substitution will result in those variables being considered a token in its own right with the content given. .PP If you want filtering, consider using an executable debhelper config file with \fBdh-exec\fR as interpreter. The \fBdh-exec\fR tool supports several features out of the box. Though keep in mind that \fBdh-exec\fR has its own substitution logic that can feature interact with the one from debhelper. .SS "Ficheiros de configuração do debhelper executáveis." .IX Subsection "Ficheiros de configuração do debhelper executáveis." Se precisar de flexibilidade adicional, muitas das ferramentas debhelper (ex, \fBdh_install\fR\|(1)) suportam executar um ficheiro de configuração como um script. .PP Para usar esta funcionalidade, simplesmente marque o ficheiro de configuração como executável (ex. \fBchmod +x debian/\fR\f(BIpackage\fR\fB.install\fR) e a ferramenta irá tentar executa-lo e usar o resultado do script. Em muitos casos, você pode usar \fBdh\-exec\fR\|(1) como interpretador do ficheiro de configuração para reter a maioria da sintaxe original enquanto obtém a flexibilidade adicional que precisa. .PP Quando usar ficheiros de configuração executáveis do debhelper, por favor tenha em atenção o seguinte: .IP \(bu 4 O ficheiro de configuração executável \fBmust\fR termina com sucesso (isto é, o seu código de retorne deve indicar sucesso). .IP \(bu 4 In compatibility level 13+, the output will be subject to substitutions (see "Substitutions in debhelper config files") where the tool support these. Remember to be careful if your generator \fIalso\fR provides substitutions as this can cause unnecessary confusion. Notably, the commonly used \fBdh-exec\fR tool has its own substitution support. .Sp Otherwise, the output will be used exactly as-is. Notably, debhelper will \fInot\fR expand wildcards or strip comments or strip whitespace in the output it reads. The \fBdh-exec\fR tool has an output filter on by default that will prune these things out. .PP Se precisar que o pacote compile num sistema de ficheiros onde não pode desactivar o bit de executável, então você pode usar \fBdh\-exec\fR\|(1) o o seu script \fBstrip-output\fR. .SH "OPÇÕES DO DEBHELPER PARTILHADAS" .IX Header "OPÇÕES DO DEBHELPER PARTILHADAS" As seguintes opções de linha de comandos são suportadas por todos os programas do debhelper. .IP "\fB\-v\fR, \fB\-\-verbose\fR" 4 .IX Item "-v, --verbose" Modo detalhado: mostra os comandos que modificam o directório de compilação de pacotes. .Sp Note que o modo detalhado pode também gerar resultados de outros comandos "internos" que não afectam diretamente o directório de compilação de pacotes. .IP \fB\-\-no\-act\fR 4 .IX Item "--no-act" Não faz nada na realidade. Se usado com \-v, o resultado é que o comando mostra o que iria fazer. .IP "\fB\-a\fR, \fB\-\-arch\fR" 4 .IX Item "-a, --arch" Actua em pacotes dependentes da arquitectura que devem ser compilados para a arquitectura de compilação \fBDEB_HOST_ARCH\fR. .IP "\fB\-i\fR, \fB\-\-indep\fR" 4 .IX Item "-i, --indep" Actua em todos os pacotes independentes da arquitectura. .IP "\fB\-p\fR\fIpacote\fR, \fB\-\-package=\fR\fIpacote\fR" 4 .IX Item "-ppacote, --package=pacote" Actua no pacote chamado \fIpacote\fR. Esta opção pode ser especifica várias vezes para fazer o debhelper operar num determinado conjunto de pacotes. .IP "\fB\-s\fR, \fB\-\-same\-arch\fR" 4 .IX Item "-s, --same-arch" Alias descontinuado de \fB\-a\fR. .Sp Esta opção foi removida no nível de compatibilidade 12. .IP "\fB\-N\fR\fIpacote\fR, \fB\-\-no\-package=\fR\fIpacote\fR" 4 .IX Item "-Npacote, --no-package=pacote" Não actua no pacote especificado mesmo se uma opção \fB\-a\fR, \fB\-i\fR, ou \fB\-p\fR listarem o pacote como um em que se deverá actuar. .IP \fB\-\-remaining\-packages\fR 4 .IX Item "--remaining-packages" Não actua nos pacotes que já foram actuados antes por este comando do debhelper (isto é, se o comando estiver presente no debhelper log do pacote). Por exemplo, se você precisar de chamar o comando com opções especiais apenas para um par de pacotes binários, passe esta opção para a última chamada do comando para processar o resto dos pacotes com as definições predefinidas. .IP "\fB\-P\fR\fItmpdir\fR, \fB\-\-tmpdir=\fR\fItmpdir\fR" 4 .IX Item "-Ptmpdir, --tmpdir=tmpdir" Usa \fItmpdir\fR para directório de compilação de pacotes. A predefinição é debian/\fIpacote\fR .IP \fB\-\-mainpackage=\fR\fIpacote\fR 4 .IX Item "--mainpackage=pacote" \&\fBDeprecated\fR: This option has no practical use in compat 15 or later as the behaviour it affects is removed in compat 15. .Sp Esta opção pouco usada muda o pacote que o debhelper considera o "pacote principal", isto é, o primeiro listado em \fIdebian/control\fR, e aquele para o qual os ficheiros \fIdebian/foo\fR podem ser usados em vez dos ficheiros \fIdebian/package.foo\fR usuais. .IP \fB\-O=\fR\fIopção\fR|\fIbundle\fR 4 .IX Item "-O=opção|bundle" Isto é usado pelo \fBdh\fR\|(1) quando se passa opções específicas do utilizador a todos os comandos que corre. Se o comando suportar a opção ou opções especificadas, irá fazer efeito. Se o comando não suportar a opção (ou alguma parte do conjunto de opções), será ignorado. .SH "OPÇÕES COMUNS DO DEBHELPER" .IX Header "OPÇÕES COMUNS DO DEBHELPER" As seguintes opções de linha de comandos são suportadas por alguns programas do debhelper. Veja o manual de cada programa para uma explicação completa sobre o que cada opção faz. .IP \fB\-n\fR 4 .IX Item "-n" Não modifique os scripts \fIpostinst\fR, \fIpostrm\fR, etc. .IP "\fB\-X\fR\fIitem\fR, \fB\-\-exclude=\fR\fIitem\fR" 4 .IX Item "-Xitem, --exclude=item" Exclui um item do processamento. Esta opção pode ser usada várias vezes, para excluir mais do que uma coisa. O \fIitem\fR é tipicamente parte de um nome de ficheiro, e qualquer ficheiro que contenha o texto especificado será excluído. .IP "\fB\-A\fR, \fB\-\-all\fR" 4 .IX Item "-A, --all" Faz com que ficheiros ou outros itens que são especificados na linha de comandos tenham efeito em TODOS os pacotes em que se actua, e não apenas o primeiro. .SH "OPÇÕES DO SISTEMA DE COMPILAÇÃO" .IX Header "OPÇÕES DO SISTEMA DE COMPILAÇÃO" As seguintes opções de linha de comandos são suportadas por todos os comandos \fBdh_auto_\fR\fI*\fR do debhelper. Estes programas suportam uma variedade de sistemas de compilação, e normalmente determinam heuristicamente qual usar, e como os usar. Você pode usar estes opções de linha de comandos para sobrepor o comportamento predefinido. Tipicamente estas são passadas ao \fBdh\fR\|(1), o qual passa-as a todos os programas \fBdh_auto_\fR\fI*\fR. .IP "\fB\-S\fR\fIbuildsystem\fR, \fB\-\-buildsystem=\fR\fIbuildsystem\fR" 4 .IX Item "-Sbuildsystem, --buildsystem=buildsystem" Força a utilização do | especificado, em vez de tentar auto-seleccionar um que pode ser aplicável para o pacote. .Sp Passa \fBnone\fR como \fIbuildsystem\fR para desactivar a auto\-selecção. .IP "\fB\-D\fR\fIdirectory\fR, \fB\-\-sourcedir=\fR\fIdirectory\fR, \fB\-\-sourcedirectory=\fR\fIdirectory\fR" 4 .IX Item "-Ddirectory, --sourcedir=directory, --sourcedirectory=directory" Assume que a árvore fonte do pacote original está no \fIdirectório\fR especificado em vez de estar no directório de nível de topo da árvore de pacotes fonte de Debian. .Sp \&\fBAviso\fR: A variante \fB\-\-sourcedir\fR corresponde a uma opção de nome semelhante em \fBdh_install\fR e \fBdh_missing\fR (etc.) por razões históricas. Apesar de terem nomes semelhantes, elas têm objectivos muito distintos e em alguns casos podem causar erros quando esta variante é passada ao \fBdh\fR (quando então passada para todas as ferramentas). .IP "\fB\-B\fR[\fIdirectory\fR], \fB\-\-builddir\fR[\fI=directory\fR], \fB\-\-builddirectory\fR[\fI=directory\fR]" 4 .IX Item "-B[directory], --builddir[=directory], --builddirectory[=directory]" Activa a compilação da fonte e usa o \fIdirectório\fR especificado como o directório de compilação. Se o parâmetro \fIdirectório\fR for omitido, é escolhido o directório de compilação predefinido. .Sp Se esta opção não for especificada, a compilação será feita por predefinição na fonte a menos que o sistema de compilação requeira ou prefira a compilação da árvore de fonte. Em tal caso, será usado o directório de compilação predefinido mesmo se \fB\-\-builddirectory\fR não seja especificado. .Sp Se o sistema de compilação preferir a compilação da árvore fonte mas ainda permitir a compilação da fonte, a última pode ser re-activada ao passar-lhe um caminho para um directório de compilação que é o mesmo que o caminho para o directório fonte. .IP "\fB\-\-parallel\fR, \fB\-\-no\-parallel\fR" 4 .IX Item "--parallel, --no-parallel" Controla se devem ser usadas compilações paralelas se o sistema de compilação o suportar. O número de trabalhos paralelos é controlado pela variável de ambiente \fBDEB_BUILD_OPTIONS\fR ("Debian Policy, secção 4.9.1") durante a compilação. Também pode servir como um limite específico do sistema de compilação. .Sp Se nenhuma destas opções for especificada, presentemente o debhelper usa por predefinição \fB\-\-parallel\fR em modo compatibilidade 10 (ou posterior) e \fB\-\-no\-parallel\fR em caso contrário. .Sp Como uma optimização, o \fBdh\fR irá tentar evitar passar estas opções aos sub-processos, se estas forem desnecessárias e as únicas opções a passar. De notar que isto acontece quando \fBDEB_BUILD_OPTIONS\fR não tem um parâmetro \fIparallel\fR (ou o seu valor é 1). .IP \fB\-\-max\-parallel=\fR\fImáximo\fR 4 .IX Item "--max-parallel=máximo" Esta opção implica \fB\-\-parallel\fR e permite mais limitação ao número de trabalhos que podem ser usados numa compilação paralela. Se a compilação do pacote é conhecida por apenas funcionar em certos níveis de concorrência, você pode definir isto para o nível máximo que é sabido funcionar, ou que deseje suportar. .Sp De notar que, definir o máximo para 1 é efectivamente o mesmo que usar \fB\-\-no\-parallel\fR. .IP \fB\-\-reload\-all\-buildenv\-variables\fR 4 .IX Item "--reload-all-buildenv-variables" Por predefinição, o \fBdh\fR\|(1) irá computar várias variáveis de ambiente (ex. ao usar \fBdpkg\-buildflags\fR\|(1)) e guarda-los em cache para evitar que todas as ferramentas \fBdh_auto_*\fR os recompute. .Sp Quando se passa esta opção, a ferramenta \fBdh_auto_*\fR concreta irá ignorar a cache de \fBdh\fR\|(1) e re-despoletar uma recompilação destas variáveis. Isto é útil nos casos muito raros onde o pacote precisa de fazer múltiplas compilações mas com diferentes opções \fB...FLAGS\fR. Um exemplo concreto seria precisar de alterar o parâmetro \fB\-O\fR em \fBCFLAGS\fR na segunda compilação: .Sp .Vb 1 \& export DEB_CFLAGS_MAINT_APPEND=\-O3 \& \& %: \& dh $@ \& \& override_dh_auto_configure: \& dh_auto_configure \-Bbuild\-deb ... \& DEB_CFLAGS_MAINT_APPEND=\-Os dh_auto_configure \e \& \-\-reload\-all\-buildenv\-variables \-Bbuild\-udeb ... .Ve .Sp Sem \fB\-\-reload\-all\-buildenv\-variables\fR na segunda chamada ao \fBdh_auto_configure\fR\|(1), a alteração em \fBDEB_CFLAGS_MAINT_APPEND\fR seria ignorada pois \fBdh_auto_configure\fR\|(1) iria usar o valor em cache de definido por \fBdh\fR\|(1). .Sp Esta opção está apenas disponível com \fBdebhelper (>= 12.7~)\fR quando o pacote usar nível de compatibilidade 9 ou posterior. .IP "\fB\-\-list\fR, \fB\-l\fR" 4 .IX Item "--list, -l" Lista todos os sistemas de compilação suportados pelo debhelper neste sistema. A lista inclui ambos sistemas de compilação predefinidos e de terceiros (marcados como tal). Também mostra qual o sistema de compilação será seleccionado automaticamente, ou qual está especificado manualmente com a opção \fB\-\-buildsystem\fR. .SH "NÍVEIS DE COMPATIBILIDADE" .IX Header "NÍVEIS DE COMPATIBILIDADE" De tempos a tempos, precisam de ser feitas grandes alterações no debhelper que não compatíveis com as versões anteriores, para o manter limpo e bem construído quando as necessidades alteram e o seu autor ganha mais experiência. Para prevenir que tais grandes alterações danifiquem os pacotes existentes, foi introduzido o conceito de níveis de compatibilidade no debhelper. Você deve dizer ao debhelper qual o nível de compatibilidade que ele deve usar, e ele modifica o seu comportamento de várias maneiras. .PP No debhelper actual, você pode especificar o nível de compatibilidade em \fIdebian/control\fR ao adicionar um Build-Depends no pacote debhelper-compat. Por exemplo, para usar modo v13, assegure que \fIdebian/control\fR tem: .PP .Vb 1 \& Build\-Depends: debhelper\-compat (= 13) .Ve .PP Isto também serve como uma dependência de compilação de versão apropriada numa versão suficiente do pacote debhelper, assim você não precisa de especificar uma dependência de compilação de versão separada no pacote debhelper a menos que precise de um lançamento pontual específico do debhelper (tal como para a introdução de uma nova funcionalidade ou correcção de bug dentro de um nível de compatibilidade). .PP Note that debhelper does not provide debhelper-compat for experimental or beta compatibility levels; packages experimenting with those compatibility levels should put the compat level in the \fBX\-DH-Compat\fR field of the source stanza of the \fIdebian/control\fR file (or, if only for selected commands, the \fBDH_COMPAT\fR environment variable). .PP Historically, debhelper required specifying the compatibility level in the file \fIdebian/compat\fR, and debhelper up to version 14 supports this for backward compatibility. To use this method, the \fIdebian/compat\fR file should contain the compatibility level as a single number, and no other content. If you specify the compatibility level by this method, your package will also need a versioned build dependency on a version of the debhelper package equal to (or greater than) the compatibility level your package uses. So, if you specify compatibility level 13 in \fIdebian/compat\fR, ensure \fIdebian/control\fR has: .PP .Vb 1 \& Build\-Depends: debhelper (>= 13~) .Ve .PP Note that you must use exactly one method for specifying the default debhelper compat level of the package. Whenever possible, the debhelper-compat build-dependency is recommended. .PP Se necessário, a variável de ambiente \fBDH_COMPAT\fR pode ser usada para sobrepor o nível de compatibilidade para um dado comando. Esta funcionalidade é maioritariamente útil seja para actualizar temporariamente alguns comandos para um novo nível de compatibilidade ou manter alguns comandos num nível de compatibilidade inferior. Esta funcionalidade é melhor ser usada com moderação pois introduz efectivamente casos-especiais no ficheiro \fIdebian/rules\fR que podem ser surpreendentes para maintainers ou revisores (ou, a longo prazo, para si). .PP A menos que seja indicado o contrário, toda a documentação do debhelper assume que você está a usar o nível de compatibilidade mais recente, e na maioria dos casos não indica se o comportamento é diferente num nível de compatibilidade anterior, portanto se não está a usar o nível de compatibilidade mais recente, você é aconselhado a procurar em baixo por notas acerca do que é diferente nos níveis de compatibilidade anteriores. .SS "Níveis de compatibilidade suportados" .IX Subsection "Níveis de compatibilidade suportados" A lista dos níveis de compatibilidade suportados e a lista de verificação de actualizações relacionadas foi movida para \fBdebhelper\-compat\-upgrade\-checklist\fR\|(7). .SH NOTAS .IX Header "NOTAS" .SS "Suporte a pacotes de múltiplos binários" .IX Subsection "Suporte a pacotes de múltiplos binários" Se o seu pacote fonte gerar mais do que um pacote binário, os programas do debhelper, por predefinição, irão actuar em todos os pacotes binários quando correm. No caso do seu pacote fonte gerar um pacote dependente de arquitectura, e outro pacote independente da arquitectura, este não é o comportamento correcto, porque você precisa de gerar os pacotes dependentes de arquitectura no alvo \fIdebian/rules\fR binary-arch, e os pacotes independentes de arquitectura no alvo \fIdebian/rules\fR binary-indep. .PP Para facilitar isto, e também para lhe dar mais controle sobre em quais pacotes os programas debhelper actuam, todos os programas debhelper aceitam os parâmetros \fB\-a\fR, \fB\-i\fR, \fB\-p\fR, e \fB\-s\fR. Estes parâmetros são cumulativos. Se nenhum for usado, os programas debhelper por predefinição actuam em todos os pacotes listados no ficheiro de controle, com as excepções em baixo. .PP Primeiro, qualquer pacote cujo campo \fBArchitecture\fR em \fBdebian/control\fR não corresponda à arquitectura \fBDEB_HOST_ARCH\fR será excluído ("Debian Policy, secção 5.6.8"). .PP Também, alguns pacotes adicionais podem ser excluídos com base no conteúdo da variável de ambiente \fBDEB_BUILD_PROFILES\fR e nos campos \fBBuild-Profiles\fR nas estrofes de pacotes binários em \fBdebian/control\fR, de acordo com a política proposta em . .PP \fIInteracção entre selecções de pacotes e Build-Profiles\fR .IX Subsection "Interacção entre selecções de pacotes e Build-Profiles" .PP Build-Profiles afectam quais pacotes são incluídos nos mecanismos de selecção de pacotes do debhelper. Geralmente, as selecções de pacotes são descritas a partir do pressuposto que todos os pacotes estão activados. Esta secção descreve como as selecções reagem quando um pacote é desactivado devido a Build-Profiles activos (ou a falta de Build-Profiles activos). .IP "\-a/\-\-arch, \-i/\-\-indep OU nenhuma opção de selecção (uma chamada ""dh_X"" crua)" 4 .IX Item "-a/--arch, -i/--indep OU nenhuma opção de selecção (uma chamada ""dh_X"" crua)" O pacote desactivado por Build-Profiles é excluído em silêncio da selecção. .Sp Note que vai receber um aviso se \fItodos\fR os pacotes relacionados com estas selecções estiverem desactivados. Nesse caso, geralmente não faz nenhum sentido sequer fazer a compilação. .IP "\-N \fIpackage\fR / \-\-no\-package \fIpackage\fR" 4 .IX Item "-N package / --no-package package" A opção é aceite e efectivamente não faz nada. .IP "\-p \fIpackage\fR / \-\-package \fIpackage\fR" 4 .IX Item "-p package / --package package" A opção é aceite, mas o debhelper não irá actuar no pacote. .PP Note que não importa se um pacote está activado ou desactivado por predefinição. .SS "Geração automática de scripts de instalação Debian" .IX Subsection "Geração automática de scripts de instalação Debian" Alguns comandos do debhelper irão gerar automaticamente partes de scripts de maintainer Debian. Se desejar que estas coisas geradas automaticamente sejam incluídas nos sues scripts de maintainer Debian existentes, então você precisa adicionar \fB#DEBHELPER#\fR aos seus scripts, no local onde o código deverá ser adicionado. \fB#DEBHELPER#\fR será substituído por qualquer código auto-gerado quando você correr o \fBdh_installdeb\fR. .PP Se não existir nenhum script e o debhelper precisar de adicionar algo a ele, então o debhelper irá criar o script completo. .PP Todos os comandos debhelper que geram código automaticamente deste modo permitem que o seja desactivado pelo parâmetro \-n (ver em cima). .PP Note que o código inserido será código shell, portanto você não pode usa-lo directamente num script de Perl. Se desejar embebe-lo num script Perl, aqui está um modo de o fazer (note que Eu certifico-me que \f(CW$1\fR, \f(CW$2\fR, etc são definidos com o comando "set"): .PP .Vb 12 \& my $temp="set \-e\enset \-\- @ARGV\en" . << \*(AqEOF\*(Aq; \& #DEBHELPER# \& EOF \& if (system($temp)) { \& my $exit_code = ($? >> 8) & 0xff; \& my $signal = $? & 0x7f; \& if ($exit_code) { \& die("The debhelper script failed with error code: ${exit_code}"); \& } else { \& die("The debhelper script was killed by signal: ${signal}"); \& } \& } .Ve .SS "Geração automática de dependências variadas." .IX Subsection "Geração automática de dependências variadas." Alguns programas debhelper podem fazer com que o pacote gerado precise de depender de alguns outros pacotes. Por exemplo, se você usar o \fBdh_installdebconf\fR\|(1), o seu pacote irá geralmente depender do debconf. Ou se você usar \fBdh_installxfonts\fR\|(1), o seu pacote irá geralmente depender de uma versão particular do xutils. Acompanhar estas dependências variadas pode ser aborrecido pois elas dependem de como o debhelper faz as coisas, então o debhelper oferece um modo de automatizar isto. .PP Todos os comandos deste tipo, além de documentar quais dependências podem ser necessárias nos seus manuais, irão gerar automaticamente um substvar chamado \fB${misc:Depends}\fR. Se você colocar esse token no seu ficheiro \fIdebian/control\fR, será expandido às dependências que o debhelper descobre que você precisa. .PP Isto é inteiramente independente do standard \fB${shlibs:Depends}\fR gerado pelo \fBdh_makeshlibs\fR\|(1), e do \fB${perl:Depends}\fR gerado pelo \fBdh_perl\fR\|(1). Você pode escolher usar qualquer um destes, se as escolhas do debhelper não corresponderem à realidade. .SS "Directórios de compilação de pacotes" .IX Subsection "Directórios de compilação de pacotes" Por predefinição, todos os programas do debhelper assumem que o directório temporário usado para montar a árvore de ficheiros num pacote é debian/\fIpacote\fR. .PP Por vezes, você pode querer usar outro directório temporário. Isto é suportado pela bandeira \fB\-P\fR, por exemplo, "\fBdh_installdocs \-Pdebian/tmp\fR", irá usar \fBdebian/tmp\fR como directório temporário. Note que se você usar \fB\-P\fR, os programas debhelper só podem actuar num pacote de cada vez. Por isso se tem um pacote que compila muitos pacotes binários, irá também precisar de usar a bandeira \fB\-p\fR para especificar em qual pacote binário o programa debhelper irá actuar. .SS udebs .IX Subsection "udebs" Debhelper inclui suporte para udebs. Para criar um udeb com o debhelper, adicione "\fBPackage-Type: udeb\fR" à estrofe do pacote em \fIdebian/control\fR. O Debhelper irá tentar criar udebs em conformidade com a política do instalador debian, ao finalizar os ficheiros de pacotes gerados com \fI.udeb\fR, não instalando nenhuma documentação num udeb, saltando os scripts \fIpreinst\fR, \fIpostrm\fR, \fIprerm\fR, e \fIconfig\fR, etc. .SH AMBIENTE .IX Header "AMBIENTE" Esta secção descreve algumas das variáveis de ambiente que influenciam o comportamento do debhelper ou de quem o debhelper interage. .PP É importante notar que estas que estas têm de ser mesmo variáveis de ambiente de modo a afectarem o comportamento do debhelper (e não simplesmente variáveis do \fIMakefile\fR). Para as especificar correctamente em \fIdebian/rules\fR, assegure-se de lhes fazer "\fBexport\fR". Por exemplo, "\fBexport DH_VERBOSE\fR" .IP \fBDH_VERBOSE\fR 4 .IX Item "DH_VERBOSE" Definir para um valor não\-vazio para activar o modo detalhado. Por favor veja a opção \fB\-v\fR / \fB\-\-verbose\fR para detalhes. .IP \fBDH_QUIET\fR 4 .IX Item "DH_QUIET" Definir para um valor não\-vazio para activar o modo silencioso. O Debhelper não irá escrever os comandos a chamar o sistema de compilação do autor nem o dh irá escrever quais sub-comandos são chamados e dependendo do sistema de compilação do autor, poderá também tornar isso mais silencioso. Isto facilita a identificação de mensagens importantes mas torna os resultados inúteis como relatório do buildd. .Sp É ignorado se DH_VERBOSE estiver também definido ou se for passado \fB\-v\fR / \fB\-\-verbose\fR. .IP \fBDH_COMPAT\fR 4 .IX Item "DH_COMPAT" Temporarily specifies what compatibility level debhelper should run at, overriding the default compat level of the source package. .IP \fBDH_NO_ACT\fR 4 .IX Item "DH_NO_ACT" Defina para \fB1\fR para activar o modo no-act. .IP \fBDH_OPTIONS\fR 4 .IX Item "DH_OPTIONS" Todas as ferramentas debhelper irão processar os argumentos de linha de comandos listados nesta variável antes de qualquer opção de comando (como se eles fossem anexados aos argumentos de linha de comandos). Infelizmente, algumas ferramentas disponibilizadas por terceiros podem não suportar esta variável e irão ignorar estes argumentos de linha de comandos. .Sp Quando se usa \fBdh\fR\|(1), podem-se passar opções que irão ser passadas a cada comando do debhelper, o que é geralmente melhor do que usar DH_OPTIONS. .IP \fBDH_ALWAYS_EXCLUDE\fR 4 .IX Item "DH_ALWAYS_EXCLUDE" Se definido, isto adiciona o valor que está definido na variável às opções \fB\-X\fR de todos os comandos que suportam a opção \fB\-X\fR. Ainda mais, o \fBdh_builddeb\fR irá fazer \fBrm \-rf\fR a tudo o que corresponda a esse valor na sua árvore de compilação do pacote. .Sp Isto pode ser útil se você está a fazer uma compilação a partir de uma árvore fonte CVS, que no caso definindo \fBDH_ALWAYS_EXCLUDE=CVS\fR irá prevenir que quaisquer directórios CVS se esgueirem para o pacote que está a compilar. Ou, se um pacote tem um tarball de fonte que (não inteligentemente) inclui directórios CVS, você pode querer exportar \fBDH_ALWAYS_EXCLUDE=CVS\fR em \fIdebian/rules\fR, para o fazer ter efeito onde o seu é compilado. .Sp Várias coisas a excluir podem ser separadas com "dois pontos", como em \fBDH_ALWAYS_EXCLUDE=CVS:.svn\fR .IP \fBDH_EXTRA_ADDONS\fR 4 .IX Item "DH_EXTRA_ADDONS" Se definido, isto adiciona os addons especificados do dh para serem corridos nos lugares apropriados na sequência de comandos. Isto é equivalente a especificar o addon a correr coma bandeira \-\-with no ficheiro debian/rules file. Qualquer chamada \-\-without que especifique um addon nesta variável de ambiente não será executada. .Sp Isto destina-se a ser usado por downstreams ou configurações locais especificas que requeiram a execução dum addon do debhelper durante múltiplas compilações sem terem que aplica patch a um grande número de ficheiros de regras. Se de todo possível, isto deve ser evitado em favor de uma bandeira \-\-with no ficheiro rules. .IP "\fBDH_COLORS\fR, \fBDPKG_COLORS\fR" 4 .IX Item "DH_COLORS, DPKG_COLORS" Estas variáveis podem ser usadas para controlar se os comandos do debhelper devem usar cores nos resultados textuais. Podem ser definidas para "always", "auto" (a predefinição), ou "never". .Sp Note que \fBDPKG_COLOR\fR também afecta um número de ferramentas relacionadas ao dpkg e o debhelper usa-o na suposição que você quer a mesma definição de cor para o dpkg e debhelper. Na hipótese de você querer definição de cor diferente para o debhelper, pode usar \fBDH_COLORS\fR em vez disso ou em adição a \fBDPKG_COLORS\fR. .IP \fBNO_COLOR\fR 4 .IX Item "NO_COLOR" Se não for fornecido um pedido específico para cor (ex. \fBDH_COLORS\fR e \fBDPKG_COLORS\fR estão ambos não\-definidos), a presença desta variável de ambiente faz com que a definição de cor predefinida seja "never". .Sp A variável é definida de acordo com . Neste projecto, as variáveis de ambiente (tais como \fBDH_COLORS\fR) são consideradas um requisito explícito para cor. .IP "\fBCFLAGS\fR, \fBCPPFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBGCJFLAGS\fR, \fBFFLAGS\fR, \fBFCFLAGS\fR, \fBLDFLAGS\fR" 4 .IX Item "CFLAGS, CPPFLAGS, CXXFLAGS, OBJCFLAGS, OBJCXXFLAGS, GCJFLAGS, FFLAGS, FCFLAGS, LDFLAGS" Por predefinição (em qualquer nível de compatibilidade não\-abandonado). o debhelper irá automaticamente definir estas flags ao usar \fBdpkg\-buildflags\fR\|(1), quando não estiverem definidas. Se você precisar de modificar as flags predefinidas, por favor use as funcionalidades de \fBdpkg\-buildflags\fR\|(1) para o fazer (ex. \fBDEB_BUILD_MAINT_OPTIONS=hardening=all\fR ou \fBDEB_CPPFLAGS_MAINT_APPEND=\-DCUSTOM_MACRO=true\fR) em vez de definir a variável concreta directamente. .IP "\fBHOME\fR, \fBXDG_*\fR" 4 .IX Item "HOME, XDG_*" Em compatibilidade 13 e posterior, estas variáveis de ambiente são reiniciadas antes de invocar o sistema de compilação do autor via ajudantes do \fBdh_auto_*\fR. As variáveis \fBHOME\fR (todos os ajudantes \fBdh_auto_*\fR) e \fBXDG_RUNTIME_DIR\fR (apenas \fBdh_auto_test\fR) irão ser definidas para um directório gravável. Todas as restantes variáveis e \fBXDG_RUNTIME_DIR\fR (excepto para durante \fBdh_auto_test\fR) irão ser limpas. .Sp O directório \fBHOME\fR será criado como um directório vazio mas ele será reutilizado entre chamadas a \fBdh_auto_*\fR. Qualquer conteúdo irá persistir até ser explicitamente apagado ou \fBdh_clean\fR. .IP \fBDEB_BUILD_OPTIONS\fR 4 .IX Item "DEB_BUILD_OPTIONS" Por favor veja "Bandeiras suportadas em DEB_BUILD_OPTIONS" para esta variável de ambiente. .Sp Por favor note que esta variável \fInão\fR deve ser alterada por maintainers de pacote dentro de \fIdebian/rules\fR para mudar o comportamento do debhelper. Em vez disso, onde o maintainer do pacote precisar destas funcionalidades, eles devem procurar desactivar a funcionalidade relevante directamente (ex. ao sobrepor as ferramentas concretas). .IP \fBDEB_BUILD_MAINT_OPTIONS\fR 4 .IX Item "DEB_BUILD_MAINT_OPTIONS" Esta é uma variável de ambiente especifica do dpkg (veja por ex. \fBdpkg\-buildflags\fR\|(1)). A suite de ferramentas do debhelper ignora-a em silêncio. .Sp Está documentada aqui porque tem um nome semelhante a \fBDEB_BUILD_OPTIONS\fR, o que faz com que algumas pessoas assumam em erro que o debhelper também vai reagir a esta variável. .SS "Bandeiras suportadas em DEB_BUILD_OPTIONS" .IX Subsection "Bandeiras suportadas em DEB_BUILD_OPTIONS" A suite de ferramentas debhelper reage às seguintes bandeiras em \fBDEB_BUILD_OPTIONS\fR. .IP \fBdherroron=obsolete\-compat\-levels\fR 4 .IX Item "dherroron=obsolete-compat-levels" \&\fIEste é um valor específico do debhelper.\fR .Sp Quando \fBdherroron\fR está presente e definida para \fBobsolete-compat-levels\fR, então as ferramentas debhelper irão promover para erros os avisos de descontinuidade de níveis de compatibilidade antigos e prestes a serem removidos. .Sp Isto é útil para verificação automática de confiança de código em níveis de compatibilidade descontinuados que estão agendados para remoção. .Sp Esta opção destina-se a objectivos de teste; não compilações produtivas. .IP \fBnostrip\fR 4 .IX Item "nostrip" \&\fIEste valor irá mudar o conteúdo dos debs a serem compilados. Os pacotes .deb compilados quando isto está definido são por isto não reproduzíveis bit-a-bit com uma compilação regular nas generalidade dos casos.\fR .Sp Este valor irá fazer com que as ferramentas oficiais debhelper saltem acções e ajudantes que ou removem, desanexam ou duplicam símbolos em binários ELF. .Sp Este valor afecta \fBdh_dwz\fR\|(1) e \fBdh_strip\fR\|(1). .IP \fBnocheck\fR 4 .IX Item "nocheck" Este valor irá fazer com que os sistemas de compilação oficiais debhelper saltem execuções de suites de testes do autor original. .Sp Os maintainers de pacotes que procurem evitar correr os testes do autor \fBnão\fR devem confiar nisto. Em vez disto, eles podem adicionar um alvo de sobreposição vazio para saltar o \fBdh_auto_test\fR. .Sp Este valor afecta \fBdh_auto_test\fR\|(1). .IP \fBnodoc\fR 4 .IX Item "nodoc" \&\fIEste valor irá mudar o conteúdo dos debs a serem compilados. Os pacotes .deb compilados quando isto está definido são por isto não reproduzíveis bit-a-bit com uma compilação regular nas generalidade dos casos.\fR .Sp Este valor irá fazer com que várias ferramentas debhelper saltem a instalação de documentação tal como os manuais ou documentação fornecida pelo autor original. Adicionalmente, as ferramentas irão também ignorar se a documentação declarada está "em falta" assumindo que a documentação não foi compilada. .Sp Este valor afecta ferramentas do \fItipo\fR \fBdh_installdocs\fR\|(1), que \fIsabem\fR que estão a trabalhar com documentação. .IP \fBnotrimdch\fR 4 .IX Item "notrimdch" \&\fIEste valor irá mudar o conteúdo dos debs a serem compilados. Os pacotes .deb compilados quando isto está definido são por isto não reproduzíveis bit-a-bit com uma compilação regular nas generalidade dos casos.\fR .Sp Este valor irá fazer o \fBdh_installchangelogs\fR\|(1) actuar como se tivesse passado a opção \fB\-\-no\-trim\fR, forçando\-o a renunciar a remoção de entradas antigas dos registos de alterações. .IP "\fBnoautodbgsym\fR, \fBnoddebs\fR" 4 .IX Item "noautodbgsym, noddebs" \&\fIO nome oficial é noautodbgsym. A variante noddebs é aceite por razões históricas.\fR .Sp Este valor faz com que o debhelper salte a geração de pacotes de símbolos de depuração gerados automaticamente. .Sp Este valor afecta \fBdh_strip\fR\|(1). .IP \fBparallel=N\fR 4 .IX Item "parallel=N" Este valor habilita o debhelper a usar até \fBN\fR linhas de processos (sujeitos a parâmetros como \fB\-\-no\-parallel\fR e \fB\-\-max\-parallel=M\fR). Nem todas as ferramentas debhelper trabalham com tarefas paralelas e podem ignorar o pedido em silêncio. .Sp Este valor afecta muitas ferramentas debhelper. Mais notoriamente \fBdh_auto_*\fR, a qual irá tentar correr o sistema de compilação subjacente do autor com esse número de linhas de execução. .IP \fBterse\fR 4 .IX Item "terse" Este valor irá fazer com que os sistemas de compilação oficiais debhelper configurem as compilações do autor para serem concisas (isto é, reduzir os detalhes dos seus resultados). Isto está sujeito a que os sistemas de compilação do autor e do debhelper suportem tais funcionalidades. .Sp Este valor afecta a maioria das ferramentas \fBdh_auto_*\fR diretamente. Para comandos fornecidos pelo pacote debhelper, também faz com que as ferramentas actuem como se a variável de ambiente \fBDH_QUIET\fR estiver não\-vazia. .PP Bandeiras desconhecidas são ignoradas em silêncio. .PP Note que ferramentas de terceiros estilo-debhelper ou sistemas de compilação fornecidos por terceiros podem não reagir às bandeiras em cima. Isto tende a depender dos detalhes de implementação da ferramenta. .SH "VEJA TAMBÉM" .IX Header "VEJA TAMBÉM" .IP \fBdebhelper\-compat\-upgrade\-checklist\fR\|(7) 4 .IX Item "debhelper-compat-upgrade-checklist" Lista de níveis de compatibilidade suportados e uma lista de verificação de actualização para cada um deles. .IP \fI/usr/share/doc/debhelper/examples/\fR 4 .IX Item "/usr/share/doc/debhelper/examples/" Um conjunto de ficheiros \fIdebian/rules\fR exemplo que usam debhelper. .IP 4 .IX Item "" Sítio web do debhelper. .SH AUTOR .IX Header "AUTOR" Joey Hess .SH TRADUÇÃO .IX Header "TRADUÇÃO" Américo Monteiro .PP Se encontrar algum erro na tradução deste documento, por favor comunique para Américo Monteiro \fIa_monteiro@gmx.com\fR ou Equipa Debian de Tradução Portuguesa \fItraduz@debianpt.org\fR.