Guia para Maintainers de Debian

Américo Monteiro

Portuguese Translation (2022) 

É dada permissão, livre de custos, a qualquer pessoa que obtenha uma cópia deste software e ficheiros de documentação associados (o "Software"). para lidar com o Software sem restrições, incluindo sem limitação o direito de usar, copiar, modificar, fundir, publicar, distribuir, sub-licenciar, e/ou vender cópias do Software, e de permitir pessoas a quem o Software é mobilado de o fazer, sujeito às seguintes condições:

O aviso de copyright em cima e este aviso de permissão deve ser incluído em todas as cópias ou porções substanciais do Software.

O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE NENHUM TIPO, EXPRESSA OU IMPLICADA, INCLUINDO MAS NÃO LIMITADO ÀS GARANTIAS DE COMERCIALIZAÇÃO, FITNESS PARA UM OBJECTIVO PARTICULAR E NÃO VIOLAÇÃO. EM NENHUMA SITUAÇÃO DEVEM OS AUTORES NEM OS DETENTORES DO COPYRIGHT SEREM ACUSADOS DE NENHUMA QUEIXA, DANOS OU OUTRA RESPONSABILIDADE, SEJA NA ACÇÃO DO CONTRATO, ATO ILÍCITO OU OUTRO, QUE OCORRA, A PARTIR DE OU COM QUALQUER LIGAÇÃO AO SOFTWARE OU DO USO DE OUTRAS NEGOCIAÇÕES NO SOFTWARE.

Este guia foi criado usando os seguintes documentos anteriores como referência:

  • “Making a Debian Package (AKA the Debmake Manual)”, copyright © 1997 Jaldhar Vyas.
  • “The New-Maintainer’s Debian Packaging Howto”, copyright © 1997 Will Lowe.
  • “Debian New Maintainers’ Guide”, copyright © 1998-2002 Josip Rodin, 2005-2017 Osamu Aoki, 2010 Craig Small, e 2010 Raphaël Hertzog.

A versão mais recente deste guia deverá estar disponível:

Resumo

Este “Guia para Maintainers Debian” (2025-02-05) guia tutorial descreve a compilação do pacote Debian para utilizadores Debian normais e futuros desenvolvedores usando o comando debmake.

Este guia foca-se no estilo de empacotamento moderno e vem com muitos exemplos simples.

  • Empacotamento por script de shell POSIX
  • Empacotamento por script de Python3
  • C com Makefile/Autotools/CMake
  • vários pacotes binários com biblioteca partilhada etc.

Este “Guia para Debian Maintainers” pode ser considerado o sucessor do “Debian New Maintainers’ Guide”.


Índice

1. Prefácio
2. Visão geral
3. Pré-requisitos
3.1. Pessoas em redor de Debian
3.2. Como contribuir
3.3. Dinâmicas sociais de Debian
3.4. Lembretes técnicos
3.5. Documentação de Debian
3.6. Recursos de ajuda
3.7. Situação de arquivo
3.8. Abordagens de contribuição
3.9. Contribuidor e maintainer novato
4. Configurações de Ferramenta
4.1. Configuração do Email
4.2. Configuração do mc
4.3. Configuração do git
4.4. Configuração do quilt
4.5. Configuração do devscripts
4.6. Configuração do sbuild
4.7. Configuração chroot persistente
4.8. Configuração do gbp
4.9. Proxy HTTP
4.10. Repositório Debian privado
4.11. Máquinas virtuais
4.12. Rede local com máquinas virtuais
5. Empacotamento simples
5.1. Empacotar o tarball
5.2. O grande panorama
5.3. O que é debmake?
5.4. O que é debuild?
5.5. Passo 1: Obter a fonte do autor
5.6. Passo 2: Gerar ficheiros modelo com o debmake
5.7. Passo 3: Modificação dos ficheiros modelo
5.8. Passo 4: Compilar pacote com debuild
5.9. Passo 3 (alternativos): Modificação da fonte do autor
5.10. Patch por abordagem diff -u
5.11. Patch por abordagem dquilt
5.12. Patch por abordagem dpkg-source --auto-commit
6. Bases para empacotamento
6.1. Fluxo de trabalho de empacotamento
6.2. Pacote debhelper
6.3. Nome e versão do pacote
6.4. Pacote Debian nativo
6.5. Ficheiro debian/rules
6.6. Ficheiro debian/control
6.7. Ficheiro debian/changelog
6.8. Ficheiro debian/copyright
6.9. Ficheiros debian/patches/*
6.10. Ficheiro debian/source/include-binaries
6.11. Ficheiro debian/watch
6.12. Ficheiro debian/upstream/signing-key.asc
6.13. Ficheiro debian/salsa-ci.yml
6.14. Outros ficheiros debian/*
7. Quality of packaging
7.1. Reformat debian/* files with wrap-and-sort
7.2. Validate debian/* files with debputy
8. Sanitização da fonte
8.1. Corrige com Files-Excluded
8.2. Corrigir com debian/rules clean
8.3. Corrigir com extend-diff-ignore
8.4. Corrigir com tar-ignore
8.5. Corrigir com git clean -dfx
9. Mais sobre empacotamento
9.1. Personalização do pacote
9.2. debian/rules personalizado
9.3. Variáveis para debian/rules
9.4. Novo lançamento do autor
9.5. Gerir a lista de patch com dquilt
9.6. Comandos de compilação
9.7. Nota sobre o sbuild
9.8. Casos especiais de compilação
9.9. Enviar orig.tar.gz
9.10. Envios saltados
9.11. Relatórios de bug
10. Empacotamento avançado
10.1. Perspetiva histórica
10.2. Tendências actuais
10.3. Nota sobre sistema de compilação
10.4. Integração contínua
10.5. Bootstrapping
10.6. Endurecimento de compilação
10.7. Compilação reproduzível
10.8. Substvar
10.9. Pacote de biblioteca
10.10. Multiarch
10.11. Divisão de um pacote binário Debian
10.12. Cenário de divisão de pacote e exemplos
10.13. Caminho da biblioteca Multiarch
10.14. Caminho do ficheiro de cabeçalho Multiarch
10.15. Caminho do ficheiro *.pc Multiarch
10.16. Símbolos de biblioteca
10.17. Nome de pacote da biblioteca
10.18. Transição de biblioteca
10.19. binNMU seguro
10.20. Informação de depuração
10.21. Pacote -dbgsym
10.22. debconf
11. Empacotar com git
11.1. Repositório Salsa
11.2. Configuração da conta Salsa
11.3. Serviço CI de Salsa
11.4. Nomes de ramos:
11.5. Repositório Git de patch não-aplicada
11.6. Repositório Git de patch aplicada
11.7. Note sobre gbp
11.8. Nota sobre dgit
11.9. Patch por abordagem gbp-pq
11.10. Gerir a lista de patch com gbp-pq
11.11. gbp import-dscs --debsnap
11.12. Nota sobre fluxo de trabalho dgit-maint-debrebase
11.13. Empacotamento Debian Quasi-native
12. Dicas
12.1. Compilar sob UTF-8
12.2. Conversão UTF-8
12.3. Dicas para Depuração
13. Utilizações de Ferramenta
13.1. debdiff
13.2. dget
13.3. mk-origtargz
13.4. origtargz
13.5. git deborig
13.6. dpkg-source -b
13.7. dpkg-source -x
13.8. debc
13.9. piuparts
13.10. bts
14. Mais Exemplos
14.1. Modelos Cherry-pick
14.2. Nenhum Makefile (shell, CLI)
14.3. Makefile (shell, CLI)
14.4. pyproject.toml (Python3, CLI)
14.5. Makefile (shell, GUI)
14.6. pyproject.toml (Python3, GUI)
14.7. Makefile (pacote singular-binário)
14.8. Makefile.in + configure (pacote singular-binário)
14.9. Autotools (pacote singular-binário)
14.10. CMake (pacote singular-binário)
14.11. Autotools (pacote multi-binário)
14.12. CMake (pacote multi-binário)
14.13. Internacionalização
14.14. Detalhes
15. manual do debmake(1)
15.1. NOME
15.2. RESUMO
15.3. DESCRIÇÃO
15.3.1. argumentos opcionais:
15.4. EXEMPLOS
15.5. PACOTES DE AJUDA
15.6. CAVEAT
15.7. DEBUG
15.8. AUTOR
15.9. LICENÇA
15.10. VEJA TAMBÉM
16. opções do debmake
16.1. Opções de atalho (-a, -i)
16.2. debmake -b
16.3. debmake -cc
16.4. Instantâneo do tarball do autor (-d, -t)
16.5. debmake -j
16.6. debmake -k
16.7. debmake -P
16.8. debmake -T
16.9. debmake -x