Guia para Maintainers de Debian

É 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:

Abstract

Este “Guia para Maintainers Debian” (2024-10-01) 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”.


Table of Contents

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. Email setup
4.2. mc setup
4.3. git setup
4.4. quilt setup
4.5. devscripts setup
4.6. sbuild setup
4.7. Persistent chroot setup
4.8. gbp setup
4.9. Proxy HTTP
4.10. Repositório Debian privado
4.11. Máquinas virtuais
4.12. Rede local com máquinas virtuais
5. Simple packaging
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. Step 2: Generate template files with debmake
5.7. Passo 3: Modificação dos ficheiros modelo
5.8. Step 4: Building package with debuild
5.9. Step 3 (alternatives): Modification to the upstream source
5.10. Patch by diff -u approach
5.11. Patch by dquilt approach
5.12. Patch by dpkg-source --auto-commit approach
6. Basics for packaging
6.1. Fluxo de trabalho de empacotamento
6.2. debhelper package
6.3. Nome e versão do pacote
6.4. Pacote Debian nativo
6.5. debian/rules file
6.6. debian/control file
6.7. debian/changelog file
6.8. debian/copyright file
6.9. debian/patches/* files
6.10. debian/source/include-binaries file
6.11. debian/watch file
6.12. debian/upstream/signing-key.asc file
6.13. debian/salsa-ci.yml file
6.14. Other debian/* files
7. Sanitization of the source
7.1. Fix with Files-Excluded
7.2. Fix with debian/rules clean
7.3. Fix with extend-diff-ignore
7.4. Fix with tar-ignore
7.5. Fix with git clean -dfx
8. More on packaging
8.1. Package customization
8.2. Customized debian/rules
8.3. Variables for debian/rules
8.4. Novo lançamento do autor
8.5. Manage patch queue with dquilt
8.6. Build commands
8.7. Note on sbuild
8.8. Special build cases
8.9. Enviar orig.tar.gz
8.10. Envios saltados
8.11. Relatórios de bug
9. Empacotamento avançado
9.1. Historical perspective
9.2. Current trends
9.3. Note on build system
9.4. Integração contínua
9.5. Bootstrapping
9.6. Endurecimento de compilação
9.7. Compilação reproduzível
9.8. Substvar
9.9. Pacote de biblioteca
9.10. Multiarch
9.11. Divisão de um pacote binário Debian
9.12. Cenário de divisão de pacote e exemplos
9.13. Multiarch library path
9.14. Multiarch header file path
9.15. Multiarch *.pc file path
9.16. Símbolos de biblioteca
9.17. Library package name
9.18. Transição de biblioteca
9.19. binNMU seguro
9.20. Informação de depuração
9.21. -dbgsym package
9.22. debconf
10. Packaging with git
10.1. Salsa repository
10.2. Salsa account setup
10.3. Salsa CI service
10.4. Branch names
10.5. Patch unapplied Git repository
10.6. Patch applied Git repository
10.7. Note on gbp
10.8. Note on dgit
10.9. Patch by gbp-pq approach
10.10. Manage patch queue with gbp-pq
10.11. gbp import-dscs --debsnap
10.12. Note on dgit-maint-debrebase workflow
10.13. Quasi-native Debian packaging
11. Dicas
11.1. Compilar sob UTF-8
11.2. Conversão UTF-8
11.3. Hints for Debugging
12. Tool usages
12.1. debdiff
12.2. dget
12.3. mk-origtargz
12.4. origtargz
12.5. git deborig
12.6. dpkg-source -b
12.7. dpkg-source -x
12.8. debc
12.9. piuparts
12.10. bts
13. Mais Exemplos
13.1. Modelos Cherry-pick
13.2. Nenhum Makefile (shell, CLI)
13.3. Makefile (shell, CLI)
13.4. pyproject.toml (Python3, CLI)
13.5. Makefile (shell, GUI)
13.6. pyproject.toml (Python3, GUI)
13.7. Makefile (pacote singular-binário)
13.8. Makefile.in + configure (pacote singular-binário)
13.9. Autotools (pacote singular-binário)
13.10. CMake (pacote singular-binário)
13.11. Autotools (pacote multi-binário)
13.12. CMake (pacote multi-binário)
13.13. Internacionalização
13.14. Detalhes
14. manual do debmake(1)
14.1. NOME
14.2. RESUMO
14.3. DESCRIÇÃO
14.3.1. argumentos opcionais:
14.4. EXEMPLOS
14.5. PACOTES DE AJUDA
14.6. CAVEAT
14.7. DEBUG
14.8. AUTOR
14.9. LICENÇA
14.10. VEJA TAMBÉM
15. debmake options
15.1. Shortcut options (-a, -i)
15.2. debmake -b
15.3. debmake -cc
15.4. Snapshot upstream tarball (-d, -t)
15.5. debmake -j
15.6. debmake -k
15.7. debmake -P
15.8. debmake -T
15.9. debmake -x