diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 09:40:31 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 09:40:31 +0000 |
commit | b86570f63e533abcbcb97c2572e0e5732a96307b (patch) | |
tree | cabc83be691530ae685c45a8bc7620ccc0e1ebdf /man/pt/dpkg-buildflags.pod | |
parent | Initial commit. (diff) | |
download | dpkg-b86570f63e533abcbcb97c2572e0e5732a96307b.tar.xz dpkg-b86570f63e533abcbcb97c2572e0e5732a96307b.zip |
Adding upstream version 1.20.13.upstream/1.20.13upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man/pt/dpkg-buildflags.pod')
-rw-r--r-- | man/pt/dpkg-buildflags.pod | 777 |
1 files changed, 777 insertions, 0 deletions
diff --git a/man/pt/dpkg-buildflags.pod b/man/pt/dpkg-buildflags.pod new file mode 100644 index 0000000..aa15de3 --- /dev/null +++ b/man/pt/dpkg-buildflags.pod @@ -0,0 +1,777 @@ + + ***************************************************** + * GENERATED FILE, DO NOT EDIT * + * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION * + ***************************************************** + +This file was generated by po4a(7). Do not store it (in VCS, for example), +but store the PO file used as source file by po4a-translate. + +In fact, consider this as a binary, and the PO file as a regular .c file: +If the PO get lost, keeping this translation up-to-date will be harder. + +=encoding UTF-8 + +=head1 NOME + +dpkg-buildflags - retorna flags de compilação para usar durante a compilação +de pacotes + +=head1 SINOPSE + +B<dpkg-buildflags> [I<option>...] [I<command>] + +=head1 DESCRIÇÃO + +B<dpkg-buildflags> é uma ferramenta para obter flags de compilação para usar +durante a compilação de pacotes Debian. + +As flags predefinidas são definidas pelo fornecedor mas podem ser +estendidas/sobrepostas de várias maneiras: + +=over + +=item 1. + +de todo o sistema com B<%PKGCONFDIR%/buildflags.conf>; + +=item 2. + +para o utilizador actual com B<$XDG_CONFIG_HOME/dpkg/buildflags.conf> onde +B<$XDG_CONFIG_HOME> usa por predefinição B<$HOME/.config>; + +=item 3. + +temporariamente pelo utilizador com variáveis de ambiente (veja a secção +B<AMBIENTE>); + +=item 4. + +dinamicamente pelo maintainer do pacote com variáveis de ambiente definidas +via B<debian/rules> (veja a secção B<AMBIENTE>). + +=back + +Os ficheiros de configuração podem conter quatro tipos de directivas: + +=over + +=item B<SET> I<flag value> + +Sobrescreve a flag chamada I<flag> para ter o valor I<valor>. + +=item B<STRIP> I<flag value> + +Despoja da flag chamada I<flag> todas as flags de compilação listadas em +I<valor>. + +=item B<APPEND> I<flag value> + +Estende a flag chamada I<flag> ao acrescentar as opções dadas em I<valor>. É +usado um espaço a preceder o valor acrescentado se o valor da flag actual +não estiver vazio. + +=item B<PREPEND> I<flag value> + +Estende a flag chamada I<flag> ao precedê-la com as opções dadas em +I<valor>. É acrescentado um espaço ao valor precedido se o valor da flag +actual não estiver vazio. + +=back + +Os ficheiros de configuração podem conter comentários nas linhas que começam +com um cardinal (#). As linhas vazias também são ignoradas. + +=head1 COMANDOS + +=over + +=item B<--dump> + +Escreve na saída standard todas as bandeiras de compilação e os seus +valores. Escreve uma bandeira por linha separada do seu valor por um sinal +de igual ("I<flag>=I<value>"). Esta é a acção predefinida. + +=item B<--list> + +Escreve a lista das flags suportadas pelo fornecedor actual (uma por cada +linha). Veja a secção B<FLAGS SUPORTADAS> para mais informação sobre elas. + +=item B<--status> + +Mostra qualquer informação que possa ser útil para explicar o comportamento +de B<dpkg-buildflags> (desde dpkg 1.16.5): variáveis de ambiente relevantes, +fornecedor actual, estado de todas as bandeiras de funcionalidades. Também +escreve as bandeira de compilação resultantes com as suas origens. + +Isto destina-se a ser corrido a partir de B<debian/rules>, para que os +relatórios de compilação mantenham um rasto claro das bandeiras de +compilação usadas. Isto pode ser útil para diagnosticar problemas +relacionados com elas. + +=item B<--export=>I<format> + +Escreve na saída standard comandos que podem ser usados para exportar todas +as bandeiras de compilação para alguma ferramenta particular. Se o valor +I<format> não for fornecido, é assumido B<sh>. Apenas são incluídas +bandeiras que comecem com um caractere maiúsculo, as outras são assumidas +como não apropriadas para o ambiente. Formatos suportados: + +=over + +=item B<sh> + +Comandos de shell para definir e exportar todas as bandeiras de compilação +no ambiente. Os valores das bandeiras são citados para que o resultado +esteja pronto para avaliação pela shell. + +=item B<cmdline> + +Argumentos a passar para a linha de comandos dos programas de compilação +para se usar todas as bandeiras de compilação (desde dpkg 1.17.0). Os +valores das bandeiras são citados na sintaxe da shell. + +=item B<configure> + +Este é um nome alternativo antigo para B<cmdline>. + +=item B<make> + +Faz as directivas definir e exportar todas as bandeiras de compilação no +ambiente. O resultado pode ser escrito para o fragmento do Makefile e +avaliado usando uma directiva B<include>. + +=back + +=item B<--get> I<flag> + +Escreve o valor da flag na saída standard. Termina com 0 se a flag for +conhecida, caso contrário termina com 1. + +=item B<--origin> I<flag> + +Escreve a origem do valor que é devolvido por B<--get>. Termina com 0 se a +flag for conhecida, caso contrário termina com 1. A origem pode ser um dos +seguintes valores: + +=over + +=item B<vendor> + +é devolvida a flag origina definida pelo fornecedor; + +=item B<system> + +a flag é definida/modifica por uma configuração de todo o sistema; + +=item B<user> + +a flag é definida/modifica por uma configuração específica do utilizador; + +=item B<env> + +a flag é definida/modifica por uma configuração específica do ambiente; + +=back + +=item B<--query> + +Escreve qualquer informação que possa ser útil para explicar o comportamento +do programa: fornecedor actual, variáveis de ambiente relevantes, áreas de +funcionalidades, estada das bandeiras de funcionalidades, e as bandeiras de +compilação com as suas origens (desde dpkg 1.19.0). + +Por exemplo: + + Vendor: Debian + Environment: + DEB_CFLAGS_SET=-O0 -Wall + + Area: qa + Features: + bug=no + canary=no + + Area: reproducible + Features: + timeless=no + + Flag: CFLAGS + Value: -O0 -Wall + Origin: env + + Flag: CPPFLAGS + Value: -D_FORTIFY_SOURCE=2 + Origin: vendor + +=item B<--query-features> I<area> + +Escreve as funcionalidades activadas para uma dada área (desde dpkg +1.16.2). As únicas áreas actualmente reconhecidas em Debian e derivados são +B<future>, B<qa>, B<reproducible>, B<sanitize> e B<hardening>, veja a secção +B<ÁREAS DE CARACTERÍSTICAS> para mais detalhes. Termina com 0 se a área é +conhecida caso contrário termina com 1. + +O resultado está em formato RFC822, com uma secção por característica. Por +exemplo: + + Feature: pie + Enabled: yes + + Feature: stackprotector + Enabled: yes + +=item B<--help> + +Mostra a mensagem de utilização e termina. + +=item B<--version> + +Mostra a versão e termina. + +=back + +=head1 FLAGS SUPORTADAS + +=over + +=item B<CFLAGS> + +Opções para o compilador de C. O valor predefinido regulado pelo fornecedor +inclui B<-g> e o nível de optimização predefinido (geralmente B<-O2>, ou +B<-O0> se a variável de ambiente B<DEB_BUILD_OPTIONS> definir I<noopt>). + +=item B<CPPFLAGS> + +Opções para o pré-processador de C. Valor predefinido: vazio. + +=item B<CXXFLAGS> + +Opções para o compilador de C++. O mesmo que B<CFLAGS>. + +=item B<OBJCFLAGS> + +Opções para o compilador Objective C. O mesmo que B<CFLAGS>. + +=item B<OBJCXXFLAGS> + +Opções para o compilador Objective C++. O mesmo que B<CXXFLAGS>. + +=item B<GCJFLAGS> + +Opções para o compilador de Java do GNU (gcj). Um subconjunto de B<CFLAGS>. + +=item B<DFLAGS> + +Opções para o compilador D (ldc ou gdc). Desde dpkg 1.20.6. + +=item B<FFLAGS> + +Opções para o compilador Fortran 77. Um subconjunto de B<CFLAGS>. + +=item B<FCFLAGS> + +Opções para o compilador Fortran 9x. O mesmo que B<FFLAGS>. + +=item B<LDFLAGS> + +Opções passadas ao compilador quando faz link a executáveis ou objetos +partilhados (se o vinculador (linker) for chamado directamente, então B<-Wl> +e B<,> têm de ser cortados destas opções). Valor predefinido: empty. + +=back + +Podem ser adicionadas novas bandeiras no futuro se a necessidade surgir (por +exemplo para suportar outras linguagens). + +=head1 ÁREAS DE CARACTERÍSTICAS + +Cada funcionalidade de área pode ser activada ou desactivada no valor da +área das variáveis de ambiente B<DEB_BUILD_OPTIONS> e +B<DEB_BUILD_MAINT_OPTIONS> com o modificador ‘B<+>’ e ‘B<->’. Por exemplo, +par activar a funcionalidade "pie" de B<hardening> e desactivar a +funcionalidade “fortify” você pode fazer isto em B<debian/rules>: + + export DEB_BUILD_MAINT_OPTIONS=hardening=+pie,-fortify + +A funcionalidade especial B<all> (válida em qualquer área) pode ser usada +para activar ou desactivar todas as funcionalidades de área ao mesmo +tempo. Assim desactivar tudo na área B<hardening> e activar apenas apenas +“format” e “fortify” pode ser obtido com: + + export DEB_BUILD_MAINT_OPTIONS=hardening=-all,+format,+fortify + +=head2 future + +Várias opções de tempo de compilação (detalhado em baixo) podem ser usadas +para activar funcionalidades que deveria estar activadas por predefinição, +mas não podem estar por razões de compatibilidade com versões anteriores. + +=over + +=item B<lfs> + +Esta definição (desactivada por predefinição) activa Suporte Ficheiros +Longos em arquitecturas de 32-bit onde o seu ABI não inclui LFS (Large File +Support) por predefinição, ao adicionar B<-D_LARGEFILE_SOURCE +-D_FILE_OFFSET_BITS=64> a B<CPPFLAGS>. + +=back + +=head2 qa + +Várias opções de tempo de compilação (detalhado em baixo) podem ser usadas +para ajudar a detectar no código fonte ou no sistema de compilação. + +=over + +=item B<bug> + +Esta definição (desactivada por predefinição) adiciona qualquer opção de +aviso de detecção de fiabilidade problemática no código fonte. Os avisos são +fatais. As únicas bandeiras presentemente suportadas são B<CFLAGS> e +B<CXXFLAGS> com bandeiras definidas para B<-Werror=array-bounds>, +B<-Werror=clobbered>, B<-Werror=implicit-function-declaration> e +B<-Werror=volatile-register-var>. + +=item B<canary> + +Esta definição (desactivada por predefinição) adiciona opções canary +fantoches às bandeiras de compilação, para que os relatórios de compilação +possam ser verificados em como as bandeiras de compilação de propagam e para +permitir encontrar qualquer omissão de definições normais de bandeiras de +compilação. As únicas bandeiras actualmente suportadas são B<CPPFLAGS>, +B<CFLAGS>, B<OBJCFLAGS>, B<CXXFLAGS> e B<OBJCXXFLAGS> com bandeiras +definidas para B<-D__DEB_CANARY_>I<flag>_I<random-id>B<__>, e B<LDFLAGS> +definida para B<-Wl,-z,deb-canary->I<random-id>. + +=back + +=head2 sanitize + +Várias opções de tempo de compilação (detalhado em baixo) podem ser usadas +para ajudar a higienizar um binário resultante contra corrupções de memória, +fugas de memória, utilização após livre, segmentação de dados e bugs de +comportamento indefinido. B<Nota>: estas opções B<não> devem ser usadas +para compilações de produção pois elas podem reduzir a confiança na +conformidade do código, reduzir a segurança ou mesmo a funcionalidade. + +=over + +=item B<address> + +Esta definição (desactivada por predefinição) adiciona B<-fsanitize=address> +a B<LDFLAGS> e B<-fsanitize=address -fno-omit-frame-pointer> a B<CFLAGS> e +B<CXXFLAGS>. + +=item B<thread> + +Esta definição (desactivada por predefinição) adiciona B<-fsanitize=thread> +a B<CFLAGS>, B<CXXFLAGS> e B<LDFLAGS>. + +=item B<leak> + +Esta definição (desactivada por predefinição) adiciona B<-fsanitize=leak> a +B<LDFLAGS>. fica automaticamente desactivada se as funcionalidades +B<address> ou B<thread> estiverem activas, pois elas já implicam isto. + +=item B<undefined> + +Esta definição (desactivada por predefinição) adiciona +B<-fsanitize=undefined> a B<CFLAGS>, B<CXXFLAGS> e B<LDFLAGS>. + +=back + +=head2 endurecimento + +Várias opções de tempo de compilação (detalhado em baixo) podem ser usadas +para ajudar a endurecer um binário resultante contra ataques de corrupção de +memória, ou disponibilizar mensagens de aviso adicionais durante a +compilação. Excepto como notado em baixo, estas estão activadas por +predefinição para as arquitecturas que as suportam. + +=over + +=item B<format> + +Esta definição (activada por predefinição) adiciona B<-Wformat +-Werror=format-security> a B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS> e +B<OBJCXXFLAGS>. Isto irá avisar sobre uso de strings de formato impróprias, +e irá falhar quando funções de formato forem usadas em modo que representem +possíveis problemas de segurança. Presentemente, isto avisa sobre chamadas a +funções B<printf> e B<scanf> onde a string de formato não é uma string +literal e não existem argumentos de formato, como em B<printf(foo);> em vez +de B<printf("%s", foo);> Isto pode ser um buraco de segurança se a string de +formato vier de uma entrada não confiável e conter ‘%n’. + +=item B<fortify> + +Esta definição (activada por predefinição) adiciona B<-D_FORTIFY_SOURCE=2> a +B<CPPFLAGS>. Durante a geração de código o compilador sabe muita informação +sobre tamanhos de buffer (onde possível), e tenta substituir chamadas de +função buffer de comprimento ilimitadas e inseguras por umas limitadas em +comprimento. Isto é especialmente útil para código antigo, +desnecessariamente complicado. Adicionalmente, as strings de formato em +memória gravável que contêm ‘%n’ são bloqueadas. Se uma aplicação depender +de tal string de formato, isso terá que ser contornado. + +Note que para esta opção ter algum efeito, a fonte tem de também ser +compilada com B<-O1> ou superior. Se a variável de ambiente +B<DEB_BUILD_OPTIONS> conter I<noopt>, então o suporte a B<fortify> será +desactivado, devido a novos avisos serem emitidos pelo glibc 2.16 e +posterior. + +=item B<stackprotector> + +Esta definição (activada por predefinição se stackprotectorstrong não +estiver em uso) adiciona B<-fstack-protector --param=ssp-buffer-size=4> a +B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> +e B<FCFLAGS>. Isto adiciona verificações de segurança contra sobreposições +de empilhamento. Isto renderiza muitos potenciais ataques de injeções de +código em situações de abortar. No melhor caso, isto transforma +vulnerabilidades de injeção de código em negação de serviço ou em +não-problemas (dependendo da aplicação). + +Esta funcionalidade requer ligação (link) a glibc (ou outro fornecedor de +B<__stack_chk_fail>), portanto precisa de ser desactivada quando se compila +com B<-nostdlib> ou B<-ffreestanding> ou semelhante. + +=item B<stackprotectorstrong> + +Esta definição (activada por predefinição) adiciona +B<-fstack-protector-strong> a B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, +B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> e B<FCFLAGS>. Esta á uma variante +mais forte de B<stackprotector>, mas sem penalidades de performance +significativas. + +Desactivar B<stackprotector> irá também desactivar esta definição. + +Esta funcionalidade tem os mesmos requerimentos que B<stackprotector>, e +adicionalmente também requer gcc 4.9 e posterior. + +=item B<relro> + +Esta definição (activada por predefinição) adiciona B<-Wl,-z,relro> a +B<LDFLAGS>. Durante o carregamento do programa, várias secções de memória +ELF precisam de ser escritas pelo vinculador. Isto sinaliza ao carregador +para tornar estas secções só-leitura antes de entregar o controlo ao +programa. Mais notavelmente isto previne ataques de sobrescrita GOT. Se esta +opção for desactivada, B<bindnow> irá ficar também desactivado. + +=item B<bindnow> + +Esta definição (desactivada por predefinição) adiciona B<-Wl,-z,now> a +B<LDFLAGS>. Durante o carregamento do programa, todos os símbolos dinâmicos +são resolvidos, permitindo que todo o PLT seja marcado só-leitura (devido ao +B<relro> em cima). A opção pode ser activada se B<relro> não for activado. + +=item B<pie> + +Esta definição (sem uma predefinição global desde dpkg 1.18.23, pois é agora +activa por predefinição pelo gcc nas arquitecturas Debian amd64, arm64, +armel, armhf, hurd-i386, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, +mips64el, powerpc, ppc64, ppc64el, riscv64, s390x, sparc e sparc64) adiciona +as opções requeridas para activar ou desactivar PIE via ficheiros de +especificações do gcc, Se necessário, dependendo de se o gcc injeta nessa +arquitectura as bandeiras por ele próprio ou não. Quando a definição está +activa e o gcc injeta as bandeiras, não adiciona nada. Quando a definição +está activa e o gcc não injeta as bandeiras, adiciona B<-fPIE> (via +I<%PKGDATADIR%/pie-compiler.specs>) to B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, +B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> e B<FCFLAGS>, e B<-fPIE -pie> (via +I<%PKGDATADIR%/pie-link.specs>) a B<LDFLAGS>. Quando a definição está +desactivada e o gcc injeta as bandeiras, adiciona B<-fno-PIE> (via +I<%PKGDATADIR%/no-pie-compile.specs>) a B<CFLAGS>, B<CXXFLAGS>, +B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> e B<FCFLAGS>, e +B<-fno-PIE -no-pie> (via I<%PKGDATADIR%/no-pie-link.specs>) a B<LDFLAGS>. + +Position Independent Executable é necessário para tirar vantagem de Address +Space Layout Randomization, suportado por algumas versões de +kernel. Enquanto ASLR já pode ser aplicada para áreas de dados na stack e +heap (brk e mmap), as áreas de código têm de ser compiladas como +independente-de-posição. As bibliotecas partilhadas já fazem isto +(B<-fPIC>), assim elas ganham ASLR automaticamente, mas as regiões de texto +binários precisam de ser compiladas com PIE para ganhar ASLR. Quando isto +acontece, os ataques ROP (Return Oriented Programming) são mais difíceis +pois não são localizações estáticas para ressaltar durante um ataque de +corrupção de memória. + +PIE não é compatível com B<-fPIC>, assim em geral é preciso cuidado qo +compilar objectos partilhados. Mas porque as bandeiras PIE emitidas são +injetadas via ficheiros specs de gcc, deverá ser sempre seguro defini-las +incondicionalmente independentemente do tipo de objecto a ser compilado ou +ligado em link. + +Bibliotecas estáticas pode ser usadas por programas ou outras bibliotecas +partilhadas. Dependendo das bandeiras usadas para compilar todos os objectos +dentro de uma biblioteca estática, estas bibliotecas serão utilizáveis por +conjuntos diferentes de objectos: + +=over + +=item none + +Não pode ser vinculado a um programa PIE, não é uma biblioteca partilhada. + +=item B<-fPIE> + +Pode ser vinculado a qualquer programa, mas não a uma biblioteca partilhada +(recomendado). + +=item B<-fPIC> + +Pode ser vinculado a qualquer programa e biblioteca partilhada. + +=back + +Se existir a necessidade de definir estas bandeiras manualmente, fazendo +bypass à injeção de spec gcc, há varias coisas a ter em conta. Passar +incondicionalmente e explicitamente B<-fPIE>, B<-fpie> ou B<-pie> a um +sistema de compilação usando libtool é seguro pois estas bandeiras irão ser +despojadas quando se compila bibliotecas partilhadas. Caso contrário em +projetos que compilam ambos programas e bibliotecas partilhadas você pode +precisar de certificar que quando compila as bibliotecas partilhadas, +B<-fPIC> seja sempre passado em último (para que sobreponha qualquer B<-PIE> +anterior) às bandeiras de compilação tais como B<CFLAGS>, e B<-shared> é +passado em último (para que sobreponha qualquer B<-pie> anterior) para ligar +em link bandeiras tais como B<LDFLAGS>. B<Nota:> Isto não deve ser +necessário com a maquinaria de specs gcc predefinida. + +Adicionalmente, como PIE é implementado via registo geral, algumas +arquitecturas com falta de registo (mas não incluindo mais a i386 desde as +optimizações implementadas no gcc E<gt>= 5) podem ver perdas de performance +até aos 15% em grandes cargas de aplicações de segmentos de texto pesados; a +maioria das cargas vêm menos de 1%. Arquitecturas com registos mais gerais +(ex. amd64) não vêm mais alto que uma penalidade de pior caso. + +=back + +=head2 reproducible + +As opções de tempo de compilação detalhadas em baixo podem ser usadas para +ajudar a melhorar a reprodutibilidade de compilação ou fornecer mensagens de +aviso adicionais durante a compilação. Excepto como notado em baixo, estas +estão activadas por predefinição para as arquitecturas que as suportam. + +=over + +=item B<timeless> + +Esta definição (activada por predefinição) adiciona B<-Wdate-time> a +B<CPPFLAGS>. Isto irá causar avisos quando as macros B<__TIME__>, +B<__DATE__> e B<__TIMESTAMP__> são usadas. + +=item B<fixfilepath> + +Esta definição (activada por predefinição) adiciona +B<-ffile-prefix-map=>I<BUILDPATH>B<=.> a B<CFLAGS>, B<CXXFLAGS>, +B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> e B<FCFLAGS> quando +B<BUILDPATH> está definido para o directório de nível de topo do pacote a +ser compilado. Isto tem o efeito de remover o caminho de compilação de +qualquer ficheiro gerado. + +Se ambas B<fixdebugpath> e B<fixfilepath> forem definidas, esta opção toma +precedência, porque é um superconjunto do anterior. + +=item B<fixdebugpath> + +Esta definição (activada por predefinição) adiciona +B<-fdebug-prefix-map=>I<BUILDPATH>B<=.> a B<CFLAGS>, B<CXXFLAGS>, +B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> e B<FCFLAGS> quando +B<BUILDPATH> está definido para o directório de nível de topo do pacote a +ser compilado. Isto tem o efeito de remover o caminho de compilação de +qualquer símbolo de depuração ficheiro gerado. + +=back + +=head1 AMBIENTE + +Existem 2 conjuntos de variáveis de ambiente a fazer as mesmas operações, O +primeiro (DEB_I<flag>_I<op>) nunca deve ser usada dentro de +B<debian/rules>. Destina-se a qualquer utilizador que queria recompilar o +pacote fonte com bandeiras de compilação diferentes. O segundo conjunto +(DEB_I<flag>_MAINT_I<op>) só deve ser usado em B<debian/rules> pelos +maintainers de pacotes para alterar as bandeiras de compilação resultantes. + +=over + +=item B<DEB_>I<flag>B<_SET> + +=item B<DEB_>I<flag>B<_MAINT_SET> + +Esta variável pode ser usada para forçar o valor retornado para a <flag> +fornecida. + +=item B<DEB_>I<flag>B<_STRIP> + +=item B<DEB_>I<flag>B<_MAINT_STRIP> + +Esta variável pode ser usada para disponibilizar uma lista separada por +espaços das opções que irão ser despojadas do conjunto de flags retornado +para a I<flag> fornecida. + +=item B<DEB_>I<flag>B<_APPEND> + +=item B<DEB_>I<flag>B<_MAINT_APPEND> + +Esta variável pode ser usada para acrescentar opções suplementares ao valor +retornado para a I<flag> fornecida. + +=item B<DEB_>I<flag>B<_PREPEND> + +=item B<DEB_>I<flag>B<_MAINT_PREPEND> + +Esta variável pode ser usada para adicionar opções suplementares ao inicio +do valor retornado para a I<flag> fornecida. + +=item B<DEB_BUILD_OPTIONS> + +=item B<DEB_BUILD_MAINT_OPTIONS> + +Estas variáveis podem ser usadas por um utilizador ou maintainer para +desactivar/activar várias funcionalidades de área que afectam bandeiras de +compilação. A variável B<DEB_BUILD_MAINT_OPTIONS> sobrepõe qualquer +definição nas áreas de funcionalidade de B<DEB_BUILD_OPTIONS>. Veja a secção +B<ÁREAS DE CARACTERÍSTICAS> para detalhes. + +=item B<DEB_VENDOR> + +Esta definição define o fornecedor actual. Se não definida, irá descobrir o +fornecedor actual ao ler B<%PKGCONFDIR%/origins/default>. + +=item B<DEB_BUILD_PATH> + +Esta variável define o caminho de compilação (desde dpkg 1.18.8) a usar em +funcionalidades como B<fixdebugpath> para que possam ser controladas pelo +chamador. Esta variável é actualmente específica de Debian e derivados. + +=item B<DPKG_COLORS> + +Define o modo de cor (desde dpkg 1.18.5). Os valores actualmente aceites +são: B<auto> (predefinido), B<always> e B<never>. + +=item B<DPKG_NLS> + +Se definida, será usada para decidir se deve activar o Suporte a Linguagem +Nativa. Também como conhecido como suporte de internacionalização (ou i18n) +(desde dpkg 1.19.0). Os valores aceites são B<0> e B<1> (predefinição). + +=back + +=head1 FICHEIROS + +=head2 Ficheiros de configuração + +=over + +=item B<%PKGCONFDIR%/buildflags.conf> + +Ficheiro de configuração geral do sistema. + +=item B<$XDG_CONFIG_HOME/dpkg/buildflags.conf> ou + +=item B<$HOME/.config/dpkg/buildflags.conf> + +Ficheiro de configuração do utilizador. + +=back + +=head2 Suporte a empacotamento + +=over + +=item B<%PKGDATADIR%/buildflags.mk> + +trecho do Makefile que irá carregar (e opcionalmente exportar) todas as +bandeiras suportadas pelo B<dpkg-buildflags> em variáveis (desde dpkg +1.16.1). + +=back + +=head1 EXEMPLOS + +Para passar flags de compilação a um comando de compilação dentro de um +Makefile: + +=over + + $(MAKE) $(shell dpkg-buildflags --export=cmdline) + + ./configure $(shell dpkg-buildflags --export=cmdline) + +=back + +Para definir bandeiras de compilação num script de shell ou num fragmento de +shell, por ser usado o B<eval> para interpretar o resultado e para exportar +as bandeiras no ambiente: + +=over + + eval "$(dpkg-buildflags --export=sh)" && make + +=back + +ou para definir os parâmetros posicionais a passar a um comando: + +=over + + eval "set -- $(dpkg-buildflags --export=cmdline)" + for dir in a b c; do (cd $dir && ./configure "$@" && make); done + +=back + +=head2 Utilização em debian/rules + +Você deve chamar B<dpkg-buildflags> ou incluir B<buildflags.mk> do ficheiro +B<debian/rules> para obter as bandeiras de compilação necessárias para +passar ao sistema de compilação. Note que versões antigas do +B<dpkg-buildpackage> (antes do dpkg 1.16.1) exportavam estas bandeiras +automaticamente. No entanto, você não deve confiar nisto, pois isto quebra a +invocação manual de B<debian/rules>. + +Para pacotes com sistemas de compilação tipo autoconf, você pode passar as +opções relevantes ao configure ou B<make>(1) directamente, como mostrado em +cima. + +Para outros sistemas de compilação, ou quando precisa de um controle mais +afinado acerca de quais bandeiras são passadas para onde, você pode usar +B<--get>. Ou você pode incluir B<buildflags.mk> em vez disto, o que toma +conta de chamar B<dpkg-buildflags> e guardar as bandeiras de compilação em +variáveis do make. + +Se você quiser exportar todas as bandeiras de compilação para o ambiente +(onde elas pode ser colhidas pelo seu sistema de compilação): + +=over + + DPKG_EXPORT_BUILDFLAGS = 1 + include %PKGDATADIR%/buildflags.mk + +=back + +Para algum controle extra sobre o que é exportado, você pode exportar +manualmente as variáveis (pois nenhuma é exportada por predefinição). + +=over + + include %PKGDATADIR%/buildflags.mk + export CPPFLAGS CFLAGS LDFLAGS + +=back + +E claro que você pode passar as bandeiras aos comandos manualmente: + +=over + + include %PKGDATADIR%/buildflags.mk + build-arch: + $(CC) -o hello hello.c $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) + +=back + + +=head1 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>. |