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” (2026-02-08) 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. Qualidade de empacotamento
7.1. Reformatar ficheiros debian/* com wrap-and-sort
7.2. Validar ficheiros debian/* com o debputy
8. Check packaging with cme
9. Sanitização da fonte
9.1. Corrige com Files-Excluded
9.2. Corrigir com debian/rules clean
9.3. Corrigir com extend-diff-ignore
9.4. Corrigir com tar-ignore
9.5. Corrigir com git clean -dfx
10. Mais sobre empacotamento
10.1. Personalização do pacote
10.2. debian/rules personalizado
10.3. Variáveis para debian/rules
10.4. Novo lançamento do autor
10.5. Gerir a lista de patch com dquilt
10.6. Comandos de compilação
10.7. Nota sobre o sbuild
10.8. Casos especiais de compilação
10.9. Upload orig.tar.xz
10.10. Envios saltados
10.11. Relatórios de bug
11. Empacotamento avançado
11.1. Perspetiva histórica
11.2. Tendências actuais
11.3. Nota sobre sistema de compilação
11.4. Integração contínua
11.5. Bootstrapping
11.6. Endurecimento de compilação
11.7. Compilação reproduzível
11.8. Substvar
11.9. Pacote de biblioteca
11.10. Multiarch
11.11. Divisão de um pacote binário Debian
11.12. Cenário de divisão de pacote e exemplos
11.13. Caminho da biblioteca Multiarch
11.14. Caminho do ficheiro de cabeçalho Multiarch
11.15. Caminho do ficheiro *.pc Multiarch
11.16. Símbolos de biblioteca
11.17. Nome de pacote da biblioteca
11.18. Transição de biblioteca
11.19. binNMU seguro
11.20. Informação de depuração
11.21. Pacote -dbgsym
11.22. debconf
12. Empacotar com git
12.1. Repositório Salsa
12.2. Configuração da conta Salsa
12.3. Serviço CI de Salsa
12.4. Nomes de ramos:
12.5. Repositório Git de patch não-aplicada
12.6. Patch por abordagem gbp-pq
12.7. Gerir a lista de patch com gbp-pq
12.8. gbp import-dscs --debsnap
12.9. Note sobre gbp
12.10. The Git repository browser
12.11. Git commit history organization
12.12. Empacotamento Debian Quasi-native
12.13. Repositório Git de patch aplicada
12.14. Nota sobre dgit
13. Dicas
13.1. Compilar sob UTF-8
13.2. Conversão UTF-8
13.3. Dicas para Depuração
14. Utilizações de Ferramenta
14.1. debdiff
14.2. dget
14.3. mk-origtargz
14.4. origtargz
14.5. git deborig
14.6. dpkg-source -b
14.7. dpkg-source -x
14.8. debc
14.9. bts
14.10. dpkg-depcheck
15. Mais Exemplos
15.1. Modelos Cherry-pick
15.2. Nenhum Makefile (shell, CLI)
15.3. Makefile (shell, CLI)
15.4. pyproject.toml (Python3, CLI)
15.5. Makefile (shell, GUI)
15.6. pyproject.toml (Python3, GUI)
15.7. Makefile (pacote singular-binário)
15.8. Makefile.in + configure (pacote singular-binário)
15.9. Autotools (pacote singular-binário)
15.10. CMake (pacote singular-binário)
15.11. Autotools (pacote multi-binário)
15.12. CMake (pacote multi-binário)
15.13. Internacionalização
15.14. Detalhes
16. manual do debmake(1)
16.1. NOME
16.2. RESUMO
16.3. DESCRIÇÃO
16.4. Positional arguments
16.5. Options
16.6. EXEMPLOS
16.7. PACOTES DE AJUDA
16.8. ADVERTÊNCIA
16.9. DEBUG
16.10. AUTOR
16.11. LICENÇA
16.12. VEJA TAMBÉM
17. opções do debmake
17.1. Shortcut option (-i)
17.2. debmake -b
17.3. debmake -B
17.4. debmake -x