debhelper(7)

NOME
debhelper-compat-upgrade-checklist - Actualiza a lista de verificação para níveis de compatibilidade do debhelper suportados.

RESUMO
Este documento é uma lista de verificação de actualização para todos os níveis de compatibilidade do debhelper suportados. Também lista todos os níveis de compatibilidade de debhelper suportados.

O comando dh_assistant compat-upgrade-checklist pode fornecer uma lista de verificação de atualização específica de pacote a partir de compatibilidade 7 e posterior (requer debhelper/13.25 ou posterior). A sua principal limitação é a precisão das suas heurísticas. Por favor reveja a documentação de dh_assistant(1) para detalhes.

Informação sobre como declarar os níveis de compatibilidade está em "NÍVEIS DE COMPATIBILIDADE" in debhelper(7).

Se você está a actualizar a partir de um nível de compatibilidade (agora) obsoleto, então por favor consulte debhelper-obsolete-compat(7).

DESCRIÇÃO

  Actualizar lista de verificação para os níveis de compatibilidade suportados.
Estes são os níveis de compatibilidade disponíveis:

v15 Este nível de compatibilidade ainda está aberto em desenvolvimento; use com cuidado.

    As alterações a partir de v14 são:

    -   O add-on single-binary para dh já não é mais implicitamente activado por pacotes fonte que têm uma única estrofe Package em debian/control. Se o pacote precisar dos atalhos para pacotes binário-singular, tem de explicitamente activar o add-in single-binary.

        Isto pode ser feito via um Build-Depends em dh-sequence-single-binary.

        Qualquer --without single-binary passado ao dh para evitar o aviso em compatibilidade 14 pode agora ser removido para simplificar debian/rules sem que despolete o aviso.

    -   Agora é um erro usar versões sem-pacote dos ficheiros de configuração do debhelper quando existem 2 ou mais pacotes binário listados em debian/control na maioria dos casos. Ficheiros legados devem ser renomeados para debian/pacote.foo (de debian/foo) onde pacote é o primeiro pacote binário listado em debian/control.

        A principal excepção a esta alteração são ficheiros como debian/changelog, debian/NEWS, e debian/copyright, onde o mesmo ficheiro é usado para todos os pacotes por predefinição. Estes casos irão continuar inalterados.

    -   Agora é um erro usar um ficheiro de empacotamento sem o prefixo do pacote para --name mesmo que o pacote fonte apenas produza um pacote binário. Como exemplo, se você adicionar um debian/bar.service com o seguinte trecho em debian/rules:

         override_dh_installsystemd:
            dh_installsystemd -p foo --name bar

        Então você precisa renomear debian/bar.service para debian/foo.bar.service.

v14 Este nível de compatibilidade ainda está aberto em desenvolvimento; use com cuidado.

    As alterações a partir de v13 são:

    -   As ferramentas dh_installmodules e dh_installpam irão agora instalar os seus ficheiros de configuração sob /usr/lib/modprobe.d/pacote e /usr/lib/pam.d/pacote em vez de nos seus diretórios respetivos sob /etc/.

        Por favor considere usar a funcionalidade "rm_conffile" de dh_installdeb(1) para assegurar a remoção apropriada dos ficheiros modprobe e PAM anteriores.

    -   Pacotes que usam o sequenciador dh devem estar conscientes das seguintes alterações:

        -   A ordem e posicionamento mudou para dh_strip_nondeterminism, dh_compress, e dh_fixperm. Anteriormente, estes três comandos eram corridos na ordem listada entre dh_installxfonts e dh_missing.

            O seu novo posicionamento é após dh_missing (arch:all) ou dh_shlibdeps (arch:any) e antes de dh_installdeb. Adicionalmente, a sua nova ordem é dh_fixperms, dh_strip_nondeterminism, e depois dh_compress.

            Esta alteração pode requerer actualizações a add-ons de terceiros que usem ou estes três comandos como ancoras ou para alvos gancho para qualquer destes comandos que fazem suposições acerca da ordem dos comandos.

            Adicionalmente, dh_strip_nondeterminism e dh_compress mais quaisquer comandos adicionados por add-ons de terceiros que usem estes como ancoras não poderão mais confiar na normalização modo/posse pelo dh_fixperms, o que pode expor bugs na forma de modo ou posse incorrecta no pacote binário resultante.

            Por favor relate tais bugs contra a ferramenta relevante. Seja livre de incluir os maintainers do debhelper em CC.

        -   A ferramenta dh_installsysusers está agora incluída na sequência predefinida. Esta ferramenta de ajuda irá processar ficheiros sysusers do systemd.

        -   A ferramenta dh_installalternatives irá agora correr após dh_link em vez de após dh_installinitramfs na sequência predefinida do dh.

        -   O comando dh_dwz foi removido da sequência predefinida. Se ainda for desejado, adicione dh-sequence-dwz a Build-Depends-Arch ou corra-o em execute_before_dh_strip-arch com -a para obter a emulação mais aproximada do comportamento anterior.

            Nota: O comando dh_dwz irá causar muitas diferenças nos símbolos de depuração gerados. Se você usa diffoscope como parte das suas verificações de atualização de compatibilidade, você pode querer usar temporariamente dh_dwz para manter o delta passível de revisão enquanto atualiza e então remover dh_dwz depois disso.

        -   Usar o comando dh_gconf em alvos de sobreposição e hook agora causa um erro. O comando dh_gconf foi um não-operativo durante anos e foi removido no debhelper 13.4.

        -   Uma nova ferramenta chamada dh_computeautosubstvars foi adicionada e agora corre imediatamente antes de dh_gencontrol. Se você injetar comandos antes de dh_gencontrol (seja via alvos de hook adições de terceiros na sequência), então considere move-los para depois do dh_installdeb pois a nova ferramenta geralmente assume que não vão ocorrer mais alterações entre a sua chamada e a chamada ao dh_gencontrol.

            Excepção notável a este assumir se você precisar de ajustar os substvars por <https://lists.debian.org/debian-devel/2024/03/msg00030.html>.

        -   Este item apenas se aplica a pacotes fonte que têm exactamente uma estrofe Package em debian/control.

            O comando dh_auto_install agora usa incondicionalmente --destdir=debian/tmp por predefinição. O caso-especial para pacotes fonte que compilam um único pacote binário é agora movido para o addon single-binary dh. Nota, este add-on é activado por predefinição na compatibilidade 14 mas não em compatibilidade 15 (veja próximo item).

        -   Este item apenas se aplica a pacotes fonte que têm exactamente uma estrofe Package em debian/control.

            O sequenciador dh irá avisar se o addon single-binary for activado implicitamente para avisar os maintainers da pendente alteração na compatibilidade 15 em dh_auto_install. A activação implícita é uma funcionalidade de transição para reduzir as chances de riscos com esta alteração. Em compatibilidade 15, a activação implícita não mais despoleta.

            Maintainers são incentivados a ou activar explicitamente o addon single-binary para preservar o comportamento existente (ex. ao adicionar <dh-sequence-single-binary> a Build-Depends), ou passar explicitamente --destdir a dh_auto_install se usado e depois passar --without single-binary a dh (a última para silenciar o aviso).

            A razão para esta alteração é evitar "surpresas" ao adicionar um segundo pacote binário mais tarde. Anteriormente, o debhelper iria em silêncio alterar o comportamento muitas vezes resultado em pacotes binários vazios a serem enviados para o arquivo por engano. Com o novo comportamento, o addon single-binary irá detectar a discrepância e avisar o maintainer do que está prestes a acontecer.

    -   A ferramenta dh_installsystemduser irá predefinir para activar unidades de utilizador de systemd, arranca-los na instalação, reinicia-los nas actualizações e para-los ao desinstalar o pacote.

    -   A ferramenta dh_gencontrol agora aplica automaticamente relacionamentos substvars aos campos relevantes. Isto significa que muitos substvars como ${misc:Depends} e ${shlibs:Depends} já não precisam de ser mencionados explicitamente no debian/control. Isto aplica-se a qualquer substvar nomeado após um campo que a versão instalada do dpkg considere um campo de relação ou tipo-dependência. Na altura desta escrita, a lista consiste de:

        -   Pré-Dependências

        -   Dependências

        -   Recomendações

        -   Sugestões

        -   Melhorias

        -   Conflitos

        -   Quebras

        -   Substituições

        -   Fornecimentos

        -   Utilização-Built

        -   Utilização-Built-Estático

        Isto significa que Depends: foo, ${misc:Depends} em debian/control pode agora ser reduzido a Depends: foo e Depends: ${misc:Depends}, ${shlibs:Depends} pode ser removido inteiramente como exemplos de como a funcionalidade trabalha.

        Note que outros substvars como ${binary:Version} não são afetados por esta alteração e devem ainda ser usados explicitamente como necessário. Adicionalmente, para pacotes Essential: yes que promovem manualmente ${shlibs:Depends} no campo <Pre-Depends>, dh_shlibdeps irá lidar com isto automaticamente também (veja o próximo item de compatibilidade).

        Veja <https://lists.debian.org/debian-devel/2024/02/msg00230.html> para os detalhes desta sugestão. O sumário em <https://lists.debian.org/debian-devel/2024/03/msg00030.html> também fala de quando os substvars precisam ser afinados. Os casos mais comuns envolvem usar a opção -d de dpkg-shlibdeps possivelmente via dh_shlibdeps.

        Nota: Esta alteração irá causar falso-positivos a partir de um lintian(1) não corrigido. Por favor verifique <https://bugs.debian.org/1067653> para suporte do lintian(1) a esta alteração.

        Finalmente, o debhelper também aplica esta funcionalidade a substvars para os seguintes campos devido a detalhes de implementação:

        -   Comandos

            Veja #638517 <https://bugs.debian.org/638517> para o quê o campo é usado.

    -   A ferramenta dh_shlibdeps agora está predefinida para usar ${shlibs:Pre-Depends} para pacotes que são Essential: yes.

        Nota devido à alteração dh_gencontrol acima, qualquer pacote que use dh_gencontrol não terá de fazer nada para esta migração.

    -   Quando se corre dh_auto_install, os sistemas de compilação fornecidos pelo debhelper irão agora assegurar que todos os caminhos em destdir têm permissões de utilizador mínimas (chmod -R u+rwX) para evitar erros esquisitos de permissão negada durante as compilações.

        Aos sistemas de compilação debhelper fornecidos por terceiros recomenda-se que suportem isto também. Isto pode ser feito ao correr

             $this->ensure_minimal_permissions($destdir) if not compat(13);

        no código Buildsystem do debhelper a partir da sua implementação sub install após o código do autor ter corrido.

        Se você não está a usar dh_auto_install e depara com erros de permissão negada esquisitos, geralmente você pode resolver isto ao correr chmod -R u+rwX DIRECTÓRIO após correr o alvo de instalação a partir do sistema de compilação do autor.

        Por favor tenha o cuidado de verificar se o seu pacote tem alguns casos especiais para permissões onde os ficheiros ou directório por alguma razão não podem ter o "bit escrita por utilizador" definido. Casos conhecidos são ficheiros *.ali e /etc/sudoers.d, o que o dh_fixperms irá corrigir por predefinição.

        O problema com permissões não comuns sempre esteve presente em teoria. No entanto, tem se tornado consideravelmente mais visível com o dh_fixperms a ser corrido mais tarde na sequência a partir da compatibilidade 14 e com o mover para remover por predefinição fakeroot (o que cobria algumas destas situações). Esta alteração destina-se a mitigar o problema.

    -   Os ficheiros de configuração do debhelper estão sujeitos às seguintes alterações:

        -   Agora dispara um aviso para usar versões sem-pacote dos ficheiros de configuração do debhelper quando existem 2 ou mais pacotes binário listados em debian/control na maioria dos casos. Ficheiros legados devem ser renomeados para debian/pacote.foo (de debian/foo) onde pacote é o primeiro pacote binário listado em debian/control.

            A principal excepção a esta alteração são ficheiros como debian/changelog, debian/NEWS, e debian/copyright, onde o mesmo é usado para todos os pacotes por predefinição. Estes casos irão continuar inalterados. A ferramenta debhelper que usa os ficheiros irá disparar avisos durante a utilização.

            Em compatibilidade 15 (ou posterior), isto é mudado para um erro.

            Para a maioria dos pacotes, este item pode ser corrigido ao correr:

                 apt-get satisfy 'debputy (>= 0.1.73~), debhelper (>= 13.26~)'
                 debputy migrate-from-dh --migration-target=dh-package-prefixed-config-files

            A única advertência conhecida são ficheiros de configuração específicos da arquitectura (tais como debian/symbols.amd64 ou debian/install.amd64).

        -   Agora despoleta um aviso usar um ficheiro de empacotamento sem o prefixo do pacote para --name mesmo que o pacote fonte apenas produza um pacote binário. Como exemplo, se você adicionar um debian/bar.service com o seguinte trecho em debian/rules:

             override_dh_installsystemd:
                dh_installsystemd -p foo --name bar

            Então você precisa renomear debian/bar.service para debian/foo.bar.service.

            Em compatibilidade 15 (ou posterior), isto é mudado para um erro.

            Para a maioria dos pacotes, este item pode ser corrigido ao correr:

                 apt-get satisfy 'debputy (>= 0.1.73~), debhelper (>= 13.26~)'
                 debputy migrate-from-dh --migration-target=dh-package-prefixed-config-files

            A única advertência conhecida são ficheiros de configuração específicos da arquitectura. A pilha do debhelper não aceita nenhuns ficheiros de configuração que tenham restrições de arquitectura and --name. No entanto, coisas adicionadas por terceiros pode aceitar.

        -   As regras de procura predefinidas para ferramentas baseadas no Dh_Lib agora assumem que os ficheiros de configuração já não têm nome (--name) nem suportam restrições de arquitectura por redefinição. Se você trabalha com uma ferramenta tipo-debhelper de terceiros e precisa de suporte para qualquer uma destas funcionalidades, por favor preencha um relatório de bug contra a ferramenta pedindo que declare o seu ficheiro de configuração com as opções relevantes na sua chamada pkgfile.

            Note que o próprio debhelper ajustou as suas regras também para a maioria das ferramentas com base em análises de utilização via codesearch.debian.org. Se você está a confiar numa funcionalidade como as restrições de arquitectura para um dado ficheiro de configuração que já não é suportado, por favor preencha um pedido para o caso ou uso e poderá ser restaurada.

    -   Pacotes que usam o sistema de compilação cmake devem estar conscientes das seguintes alterações:

        -   O sistema de compilação cmake agora passa -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON a cmake(1) para evitar alguns problemas de reprodutibilidade.

        -   O sistema de compilação cmake agora define a variável de ambiente ASMFLAGS quando não está definida e ASFLAGS está presente. O nome anterior (ASMFLAGS) é o nome que o cmake espera, enquanto o posterior (ASFLAGS) é o nome que o dpkg-buildpackage(1) usa.

        -   Os sistemas de compilação cmake agora usam cmake --install em vez de make install e na chamada dh_auto_install(1). Qualquer sobreposição de dh_auto_install que passe parâmetros extra ao sistema de compilação do autor deve ser revista.

    -   Pacotes que usam o sistema de compilação meson devem estar conscientes das seguintes alterações:

        -   O sistema de compilação meson agora passa --auto-features=enabled ao meson.

        -   O sistema de compilação meson+ninja agora usa meson install em vez de ninja install na chamada dh_auto_install(1). Qualquer sobreposição de dh_auto_install que passe parâmetros extra ao sistema de compilação do autor deve ser revista.

    -   O ficheiro debian/compat não e mais aceite como fonte para especificar o nível de compatibilidade do debhelper. Ponha o nível de compatibilidade no campo X-DH-Compat da estrofe Source do debian/control.

        Nota para evitar quebrar pacotes que já migraram para compatibilidade 14 imediatamente, enquanto era experimental esta alteração era primeiro forçada quando a compatibilidade 14 se tornava estável.

    -   A ferramenta dh_installtmpfiles agora corre com --remove na remoção do pacote, e --purge na purga do pacote. É requerido systemd v256 para o posterior.

    -   A ferramenta dh_lintian não mais aceita ficheiros de sobreposição específicos de arquitectura para pacotes com Multi-Arch: same em debian/control, pois esta não seriam co-instaláveis. As instâncias afetadas por este erro devem migrar para sobreposições específicas de arquitectura do lintian(1).

v13 Este é o modo de operação recomendado.

    As alterações a partir de v12 são:

    -   O sistema de compilação meson+ninja agora usa meson test em vez de ninja test quando corre a suite de testes. Qualquer sobreposição de dh_auto_test que passe parâmetros extra ao testador original do autor deve ser revista, pois o meson test não é compatível em linha de comandos com o ninja test.

    -   Todas as ferramentas tipo debhelper baseadas na biblioteca debhelper oficial (incluindo dh e as ferramentas oficiais dh_*) não aceitam mais parâmetros abreviados de comandos. Ao mesmo tempo, dh agora optimiza as chamadas a ajudantes redundantes dh_* mesmo quando passa opções longas da linha de comandos.

    -   As ferramentas debhelper relacionadas com ELF (dh_dwz, dh_strip, dh_makeshlibs, dh_shlibdeps) são agora apenas executadas para os pacotes dependentes de arquitectura por predefinição (isto é, estão excluídas de alvos *-indep e são passadas -a por predefinição). Se você precisar delas para alvos *-indep, você pode adicionar um Build-Depends explícito em dh-sequence-elf-tools.

    -   O sistema de compilação de terceiros gradle (do pacote gradle-debian-helper) agora corre a suite de testes disponibilizada pelo autor automaticamente. Para suprimir tal comportamento, sobreponha dh_auto_test.

    -   A ferramenta dh_installman agora aborta se vir definições conflituosas de uma manpage. Isto tipicamente acontece se o sistema de compilação do autor está a instalar uma versão comprimida e o pacote lista uma versão descomprimida da manpage em debian/package.manpages. Muitas vezes a correção mais fácil é remover a manpage de debian/package.manpages (assumindo que ambas as versões são idênticas).

    -   Os ajudantes de dh_auto_* agora reiniciam a variável de ambiente HOME e as variáveis comum XDG_*. Por favor veja a descrição das variáveis de ambiente em "ENVIRONMENT" in debhelper(1) para como lidar com isto.

        Esta funcionalidade mudou entre debhelper 13 e debhelper 13.2.

    -   O comando dh ir+a agora dar erro se estiver presente um alvo de sobreposição ou hook para um comando obsoleto em debian/rules (ex.override_dh_systemd_enable:).

    -   O comando dh_missing irá agora usar por predefinição --fail-missing. Isto pode ser revertido para um aviso não fatal ao passar explicitamente --list-missing como era na compatibilidade 12.

        Se você também não quiser o aviso, por favor omita a chamada ao dh_missing. Se você usar o sequenciador de comandos dh, então pode fazer isto ao inserir um alvo de sobreposição vazio no ficheiro debian/rules do pacote relevante. Como exemplo:

            # Disable dh_missing
            override_dh_missing:

    -   O sequenciador de comandos dh agora corre dh_installtmpfiles na sequência predefinida. O dh_installtmpfiles assume o manusear dos ficheiros de configuração tmpfiles.d. A funcionalidade relacionada em dh_installsystemd está agora desactivada.

        Note que dh_installtmpfiles responde a debian/package.tmpfiles onde dh_installsystemd usou um nome sem o "s" final.

    -   Muitas ferramentas dh_* agora suportam expansão de variáveis limitada via sintaxe ${foo}. Em muitos casos, isto pode ser usado para referenciar caminhos que contêm ou espaços ou valores dpkg-architecture(1). Enquanto isto pode reduzir a necessidade de dh-exec(1) em alguns casos, não é um substituto de dh-exec(1) em geral. Se você precisar de filtrar, renomear, etc... o pacote irá continuar a precisar de dh-exec(1).

        Por favor veja "Substituições em ficheiros de configuração do debhelper" para sintaxe e variáveis de substituição disponíveis. Para os escritores da ferramenta dh_*, a expansão de substituição ocorre como parte das funções filearray e filedoublearray.

    -   O sequenciador de comandos dh irá agora saltar todos os alvos hook e de sobreposição para dh_auto_test, dh_dwz e dh_strip quando DEB_BUILD_OPTIONS listar as opções nocheck / nostrip relevantes.

        Qualquer pacote que se apoie nestes alvos para ser sempre corrido deve, em vez disto, mover a lógica relevante para fora destes alvos. Ex, código de empacotamento não relacionado com testes a partir de override_dh_auto_test deverá ser movido para execute_after_dh_auto_build ou execute_before_dh_auto_install.

    -   O sistema de compilação cmake agora passa -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON ao cmake(1) para acelerar o processo de instalação automática. Se por alguma razão você precisar do comportamento anterior, sobreponha a flag:

            dh_auto_configure -- -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=OFF ...

v12 As alterações a partir de v11 são:

    -   A ferramenta dh_makeshlibs agora gera ficheiros shlibs com dependência de versão por predefinição. Isto significa que -VUpstream-Version (a.k.a. -V) é agora a predefinição.

        Se é pedida uma dependência sem versão no ficheiros shlibs, isto pode ser conseguido ao passar -VNone em substituição. No entanto, por favor veja dh_makeshlibs(1) para a problemática das dependências sem versão.

    -   A opção -s (--same-arch) foi removida. Por favor use -a (--arch) em vez desta.

    -   Invocar dh_clean -k agora causa um erro em vez de um aviso de descontinuação.

    -   A opção --no-restart-on-upgrade em dh_installinit foi removida. Por favor use o novo nome --no-stop-on-upgrade

    -   Existia um bug nas funções doit (e similares) a partir de Debian::Debhelper::Dh_Lib que fazia aparece uma linha de comandos numa circunstância particular. Este bug foi agora removido e irá fazer com que os ajudantes que contavam com esse bug falhem com um erro de "comando não encontrado".

    -   O --list-missing e --fail-missing em dh_install foram removidos. Por favor use dh_missing e as suas opções correspondentes, o qual pode também ver os ficheiros instalados por outros ajudantes.

    -   O ajudante dh_installinit já não instala configuração para o sistema de init upstart. Em vez disso, irá abortar a compilação se encontrar um ficheiro de configuração upstart antigo. O erro está lá para lembrar ao maintainer do pacote para assegurar a remoção apropriada dos ficheiros de configuração empacotados em versões anteriores do pacote (caso existam).

    -   A ferramenta dh_installdeb irá fazer validação básica de alguns comandos dpkg-maintscript-helper(1) e irá terminar em erro se os comandos parecerem ser inválidos.

    -   A ferramenta dh_missing irá agora usar por predefinição --list-missing.

    -   A ferramenta dh_makeshlibs irá agora apenas passar bibliotecas para dpkg-gensymbols(1) se o binário ELF tiver um SONAME (contendo ".so").

    -   A ferramenta dh_compress não mais comprime exemplos (isto é, nada instalado em </usr/share/doc/pacote/examples>.)

    -   A sequência standard em dh agora inclui dh_dwz e dh_installinitramfs por predefinição. Isto tornas as sequências dwz e installinitramfs obsoletas e elas agora irão falhar com um erro. Se desejar saltar estes comandos, por favor insira um alvo de sobreposição vazio para eles em debian/rules (ex. override_dh_dwz:)

    -   Os sistemas de compilação meson e autoconf não mais definem explicitamente a variável --libexecdir e assim apoia-se na predefinição do sistema de compilação - O qual deve ser /usr/libexec (por FHS 3.0, adoptado em Debian Policy 4.1.5).

        Se um determinado pacote original do autor não usar a predefinição correcta, o parâmetro pode muitas vezes ser passado manualmente via dh_auto_configure(1). Por exemplo via seguinte exemplo:

            override_dh_auto_configure:
                dh_auto_configure -- --libexecdir=/usr/libexec

        Note o -- antes do parâmetro --libexecdir.

    -   Retroativamente removido em debhelper/13.5:

        A ferramenta dh_installdeb não iria mais instalar o ficheiro conffiles fornecido pelo responsável pois isso foi considerado desnecessário. No entanto, o remove-on-upgrade do dpkg/1.20 tornou o ficheiro relevante de novo e dh_installdeb agora instala-o nos níveis de compatibilidade 12+.

    -   A ferramenta dh_installsystemd não mais se apoia em dh_installinit para lidar com os serviços do systemd que têm uma alternativa de sysvinit. ambas ferramentas devem agora ser usadas em tais casos para assegurar que o serviço é arrancado correctamente sob ambos sysvinit e systemd.

        Se tiver uma sobreposição para dh_installinit (ex. para chama-lo com --no-start) então irá provavelmente precisar agora também de um para dh_installsystemd.

        Esta alteração faz dh_installinit injectar um misc:Pre-Depends para init-system-helpers (>= 1.54~). Por favor assegure que o pacote lista ${misc:Pre-Depends} no seu campo Pre-Depends antes de actualizar para a compatibilidade 12.

    -   Esta ferramenta de terceiros dh_golang (do pacote dh-golang) agora por predefinição honra a variável DH_GOLANG_EXCLUDES para instalação fonte em pacotes -dev e não apenas durante o processo de compilação. Por favor defina DH_GOLANG_EXCLUDES_ALL para falso para reverter para o comportamento anterior. Veja Debian::Debhelper::Buildsystem::golang(3pm) para detalhes e exemplos

    -   dh_installsystemduser é agora incluído na sequência standard do dh por predefinição.

    -   O sistema de compilação python-distutils foi agora removido. Por favor use o sistema de compilação de terceiros pybuild em substituição.

v11 Este modo está desencorajado.

    A compatibilidade 11 é desencorajada para novos pacotes pois sofre de interação de características entre dh_installinit e dh_installsystemd o que causa com que os serviços não funcionem correctamente em alguns casos. Por favor considere usar modo de compatibilidade 10 ou 12 em vez deste. Mais detalhes sobre este problema estão disponíveis em Debian#887904 e <https://lists.debian.org/debian-release/2019/04/msg01442.html>.

    As alterações a partir de v10 são:

    -   dh_installinit já não instala ficheiros service ou tmpfile, nem gera scripts do maintainer para esses ficheiros, Por favor use o novo ajudante dh_installsystemd

    -   Os ajudantes dh_systemd_enablee dh_systemd_start foram substituídos pelo novo ajudante dh_installsystemd. Pela mesma razão, a sequência do systemd para dh foi também removida. Se você precisar de desactivar a ferramenta de ajuda dh_installsystemd, por favor use um alvo de sobreposição vazio.

        Por favor note que a ferramenta dh_installsystemd tem um comportamento ligeiramente diferente em alguns casos (ex. quando se usa o parâmetro --name).

    -   dh_installdirs já não cria directórios debian/pacote a menos que tal seja explicitamente pedido (ou se tiver de criar um sub-directório nele).

        A grande maioria dos pacotes não serão afectados por esta alteração.

    -   O sistema de compilação makefile agora passa INSTALL="install --strip-program=true" para o make(1). Sistemas de compilação derivativos (ex. configure ou cmake) não são afectados por esta alteração.

    -   O sistema de compilação autoconf agora passa --runstatedir=/run para ./configure.

    -   O sistema de compilação cmake agora passa -DCMAKE_INSTALL_RUNSTATEDIR=/run para cmake(1).

    -   dh_installman irá agora preferir detectar a linguagem a partir do nome de caminho em vez de a extensão.

    -   dh_auto_install irá agora apenas criar o directório de destino que precisa. Anteriormente, iria criar o directório de compilação de pacote para todos os pacotes. Isto não vai afectar pacotes que apenas compilam com comandos debhelper, mas pode expor bugs em comandos não incluídos no debhelper.

    -   Os ajudantes dh_installdocs, dh_installexamples, dh_installinfo, e dh_installman agora dão erro se a sua configuração tiver um padrão que não coincida com nada ou faça referência a um caminho que não exista.

        Excepções conhecidas incluem compilar com o perfil nodoc, onde as ferramentas de cima irão permitir em silêncio correspondências falhadas onde os padrões são usados para especificar documentação.

    -   Os ajudantes dh_installdocs, dh_installexamples, dh_installinfo, e dh_installman agora aceitam o parâmetro --sourcedir com o mesmo significado que dh_install. Mais ainda, eles agora também retornam (em fall back) a debian/tmp como dh_install.

        Nota de migração: Um bug no debhelper 11 até ao 11.1.5 faz com que dh_installinfo ignore incorrectamente --sourcedir.

    -   Os sistemas de compilação perl-makemaker e perl-build já não passam -I. ao perl. Os pacotes que dependem deste comportamento podem muitas vezes usar a variável de ambiente PERL5LIB como substituto. Ex. ao adicionar export PERL5LIB=. no seu ficheiro debian/rules (ou semelhante).

    -   A variável de ambiente PERL_USE_UNSAFE_INC já não é definida pelo dh ou nenhuma das ferramentas dh_auto_*. Ela foi adicionada como um meio de contorno temporário evitar muitos pacotes a falharem a compilação ao mesmo tempo.

        Note que este item irá eventualmente tornar-se obsoleto pois o auto pretende abandonar o suporte para a variável de ambiente PERL_USE_UNSAFE_INC. Quando o perl abandonar o para ala, então esta variável será também removida retroactivamente dos níveis de compatibilidade existentes.

    -   O ajudante dh_makeshlibs irá agora terminar em erro se objdump retornar uma saída não-zero a partir da análise de um determinado ficheiro.

    -   As ferramentas dh_installdocs e dh_installexamples podem agora instalar a maioria da documentação num caminho diferente para cumprir com a recomendação da política Debian §12.3 (desde versão 3.9.7).

        Note que um dado pacote fonte apenas contém um único pacote binário em debian/control ou nenhum dos pacotes são pacotes -doc, então esta alteração não é relevante para esse pacote fonte e você pode saltar a próxima alteração.

        Por predefinição, estas ferramentas irão agora tentar determinar um "pacote principal para a documentação" (chamado um doc-main-package daqui em diante) para cada pacote -doc. Se encontrarem o tal doc-main-package, irão agora instalar a documentação em /usr/share/doc/doc-main-package no pacote doc fornecido. Isto é, o caminho pode mudar mas a documentação será na mesma enviada no pacote -doc.

        A opção --doc-main-package (ou, desde debhelper/13.28, o campo X-Doc-Main-Package) pode ser usada quando a auto-detecção é insuficiente ou para reiniciar o caminho para o seu valor anterior se existir razão para divergir da recomendação da política Debian.

        Alguma documentação não será afectada por esta alteração. Estas excepções incluem o ficheiro copyright, ficheiros changelog, README.Debian, etc. Estes ficheiros serão na mesma instalados no caminho /usr/share/doc/pacote.

    -   As ferramentas dh_strip e dh_shlibdeps já não usam mais padrões de nomes de ficheiros para determinar quais ficheiros processar. Em vez disso, elas abrem o ficheiro e procuram um cabeçalho ELF para determinar se um dado ficheiro é um objecto partilhado ou um executável ELF.

        Esta alteração fazer com que as ferramentas processem mais ficheiros que anteriormente.

v10 As alterações a partir de v9 são:

    -   dh_installinit não irá mais instalar um ficheiro chamado debian/pacote como um script de iniciação (init).

    -   O dh_installdocs irá dar erro se detectar links criados com --link-doc entre pacotes de arquitectura "all" e não-"all" porque isso faz quebrar binNMUs.

    -   O dh_installdeb já não instala um ficheiro debian/pacote.shlibs disponibilizado pelo maintainer. Em vez disso, isto agora é feito pelo dh_makeshlibs.

    -   O dh_installwm recusa-se a criar um pacote quebrado se não encontrar nenhuma página de manual (necessário para registo para a alternativa do x-window-manager).

    -   Debhelper irá predefinir para --parallel em todos os sistemas de compilação que suportam compilação paralela. Isto pode ser desactivado usando --no-parallel ou passando --max-parallel com o valor de 1.

    -   O comando dh não irá aceitar nenhum dos parâmetros de "controle de sequência manua" descontinuados (--before, --after, etc.). Por favor utilize alvos de sobreposição em vez destes.

        Retroactively applied to earlier compat levels: dh já não aceita nenhum destes desde o debhelper/12.4.

    -   O comando dh não irá mais usar ficheiros log para seguir quais comandos foram executados. O comando dh ainda mantêm o seguimento se já correu a sequência de "compilação" e salta-a se já o fez.

        Os principais efeitos disto são:

        -   Com isto, é agora mais fácil de depurar as sequências install ou/e binary porque agora podem ser trivialmente re-executadas (sem ter que fazer um ciclo de "limpar e recompilar" completo.

        -   O principal embargo é que dh_* agora apenas mantêm acompanhamento do que aconteceu num alvo de sobreposição singular. Quanto todas as chamadas a um dado comando dh_cmd acontecem no mesmo alvo de sobreposição tudo irá funcionar como dantes.

            Exemplo de onde pode falhar:

              override_dh_foo:
                dh_foo -pmy-pkg

              override_dh_bar:
                dh_bar
                dh_foo --remaining

            Neste caso, a chamada a dh_foo --remaining irá também incluir my-pkg, desde que dh_foo -pmy-pkg tenha corrido num alvo de sobreposição separado. Este problema não está imitado a --remaining, mas também inclui -a, -i, etc.

    -   O comando dh_installdeb agora faz "escape de shell" às linhas no ficheiro de configuração de maintscript. Esta foi a intenção original mas não trabalhava correctamente e os pacotes começaram a confiar no "escapar de shell" incompleto (ex. ao mencionar nomes de ficheiros).

    -   O comando dh_installinit agora usa por predefinição --restart-after-upgrade. Para pacotes que precisam do comportamento anterior, por favor use --no-restart-after-upgrade.

    -   A sequência autoreconf é agora activada por predefinição. Por favor passe --without autoreconf ao dh se isto não for desejável para um determinado pacote

    -   A sequência systemd é agora activada por predefinição. Por favor passe --without systemd ao dh se isto não for desejável para um determinado pacote.

    -   Retroactively removed dh já não cria o directório de compilação do pacote quando salta a execução de comandos debhelper. Isto não vai afectar pacotes que apenas compilam com comandos debhelper, mas pode expor bugs em comandos não incluídos no debhelper.

        Esta funcionalidade de compatibilidade tinha um bug desde a sua inserção no debhelper/9.20130516 que o fazia falhar ao aplicar em compatibilidade 9 e anteriores. Como não tem havido relatórios de problemas causados por este bug nesses -5 anos, este item foi removido em vez de corrigido.

v9  As alterações a partir de v8 são:

    -   Suporte a multi-arquitectura. Em particular, dh_auto_configure passa directórios de multi-arquitectura ao autoconf em --libdir e --libexecdir.

    -   O dh tem conhecimento das dependências habituais entre alvos em debian/rules. Por isso, o "dh binary" irá correr quaisquer alvos de build, build-arch, build-indep, install, etc que existam no ficheiro de regras. Não há necessidade de definir um alvo binário explícito com dependências explícitas em outros alvos.

    -   dh_strip comprime ficheiros de símbolos de depuração para reduzir o tamanho instalado dos pacotes -dbg.

    -   dh_auto_configure não inclui o nome do pacote fonte em --libexecdir quando usa autoconf.

    -   dh não tem por predefinição a activação de --with=python-support

        (Obsoleto: Pois a ferramenta dh_pysupport foi removida a partir de Debian stretch. Desde o debhelper/10.3, dh já não se activa esta sequência add-on independentemente do nível de compatibilidade)

    -   Todos os programas debhelper dh_auto_* e dh definem variáveis de ambiente listadas por dpkg-buildflags, a menos que elas estejam já definidas.

    -   dh_auto_configure passa as dpkg-buildflags CFLAGS, CPPFLAGS, e LDFLAGS para Makefile.PL e Build.PL de perl.

    -   dh_strip põe símbolos de depuração separados numa localização baseada no seu build-id.

    -   Os ficheiros de configuração executáveis do debhelper são corridos e os seus resultados usados como configuração.

    Este modo está descontinuado.

v8  As alterações a partir de v7 são:

    -   Os comandos irão falhar em vez de emitirem avisos quando lhes são passadas opções desconhecidas.

    -   dh_makeshlibs irá correr dpkg-gensymbols em todas as bibliotecas partilhadas para as quais gera ficheiros shlibs. Portanto o -X pode ser usado para excluir bibliotecas. Também, as bibliotecas em localizações fora do habitual que o dpkg-gensymbols não tenha processado antes serão passadas para ele, uma alteração no comportamento que pode causar que alguns pacotes falhem a compilar.

    -   dh requer que a sequência a correr seja especificada como o primeiro parâmetro, e quaisquer switches que venham depois dela. Isto é, use dh $@ --foo", e não "dh --foo $@

    -   dh_auto_* prefere usar o Module::Build do Perl em preferência de Makefile.PL.

    Este modo está descontinuado.

v7  Este modo está descontinuado.

    Este é o nível de compatibilidade mais baixo suportado.

    Se você está a actualizar a partir de um nível de compatibilidade anterior, por favor reveja debhelper-obsolete-compat(7).

VEJA TAMBÉM

debhelper-obsolete-compat(7)
    A actualizar a partir de um nível de compatibilidade (agora) obsoleto? Este documento a lista de verificação de actualização até ao nível suportado mais recente.

debhelper(7)
    Informação geral acerca da estrutura do debhelper. Este documento também cobre como declarar o seu nível de compatibilidade debhelper escolhido.

AUTORES
Niels Thykier <niels@thykier.net>

Joey Hess

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 ou Equipa Debian de Tradução Portuguesa traduz@debianpt.org.