Aprenda sobre empacotamento
Nota: originalmente obtido de Software Freedom Camp.
Contents
- Aprenda sobre empacotamento
- Nível 0: Básico sobre processo de lançamento e configuração de um ambiente de desenvolvimento
- Nível 1: Aprenda o básico sobre empacotamento
- Nível 2: Atualize pacotes existentes para versões upstream menores ou com correções
- Nível 3: Empacotando módulos mais complicados
- Nível 4: Escolha um módulo não empacotado, porém útil, e faça upload para o repositório
Nível 0: Básico sobre processo de lançamento e configuração de um ambiente de desenvolvimento
Ciclo de vida de um lançamento (a jornada de um pacote desde o primeiro upload até chegar ao(à) usuário(a), incluído em uma versão de suporte)
Gerenciamento de repositórios/sources.list (gerenciando a lista de sites que servem pacotes Deb)
Como instalar pacotes a partir de stable-backports (há algumas etapas extras necessárias para obter novas versões upstream de softwares populares em um sistema estável)
Comando apt-file find para encontrar quais pacotes incluem um arquivo (geralmente para achar um comando ausente ou um arquivo de cabeçalho (header)) - tutorial apt-file
Opções diferentes para configurar um ambiente Debian Sid (espera-se que agora você esteja familiarizado(a) com o ciclo de vida de um lançamento tendo conhecido as etapas anteriores, e que agora saiba que novos pacotes ou novas versões upstream de pacotes existentes são primeiro enviados para Sid ou instável (unstable), para então fazermos o desenvolvimento neste ramo do debian)
Construindo pacotes existentes desde a fonte (instruções de node-pretty-ms são recentes, então o exemplo do fdupes no tutorial pode ser ignorado). Aprender a construir a partir do código-fonte é útil quando você deseja criar um pacote para backports (por exemplo, você deseja reconstruir uma nova versão de um pacote da instável (unstable) ou teste (testing) em seu sistema estável (stable)). Isso também é útil se quiser modificar um pacote existente, por exemplo, para corrigir um bug ou escolher um commit do upstream.
Neste momento, você deve estar familiarizado(a) com os comandos
apt source/dget/debcheckout,
dpkg-source -x,
dpkg-buildpackage/debuild,
apt build-dep,
apt source -b
para reconstruir um pacote Debian existente a partir da fonte.
Nível 1: Aprenda o básico sobre empacotamento
Entenda os conceitos básicos usando debmake/dh_make (obter tarballs-fonte, criar pacotes-fonte, construir pacotes binários, deixar o lintian limpo)
Uma visão geral de alto nível do empacotamento envolve,
- Baixar código-fonte do software a ser empacotado (geralmente lançamentos em tarballs)
Criar um diretório modelo debian (usando ferramentas como debmake, npm2deb ou gem2deb dependendo da linguagem de programação usada)
Construir o arquivo .deb, combinando os dois acima (usando dpkg-buildpackage)
Tutorials para seguir:
Depois de entender os conceitos básicos, use npm2deb para automatizar algumas dessas tarefas, como obter o tarball-fonte, um modelo de diretório debian melhor do que os criados por dh_make/debmake, já que npm2deb conhece mais detalhes para os módulos do nó. Você ainda terá que corrigir os problemas restantes sinalizados pelo lintian.
Neste momento, você deverá saber como:
- criar pacotes limpos com lintian para módulos simples e
criar pacotes em ambientes limpos como ?sbuild.
Você também deve saber ?importar um arquivo dsc para um repositório git (gbp import-dsc --prisstine-tar) e
enviar seu trabalho para um serviço git de hospedagem pública como https://salsa.debian.org (git push -u --all --follow-tags)
Nível 2: Atualize pacotes existentes para versões upstream menores ou com correções
Depois de obter uma imagem clara do empacotamento de um módulo simples, podemos passar para o próximo estágio de atualização de pacotes existentes:
Entenda sobre Sistema de controle de versão semântica e saiba quando um novo lançamento upstream pode ser uma mudança que quebre o software. Preste especial atenção ao software com versões 0.x - não há garantia sobre compatibilidade para atualizações menores.
Usando Quilt no caso de precisar modificar qualquer patch ou criar um patch
Comece a assinar os commits do git e envie sua chave gpg pública para para o ?servidor de chaves OpenPGP.org. (este é o servidor de chaves padrão para gpg e Thunderbird, de modo que as pessoas podem facilmente procurar por chaves usando endereços de e-mail. Você também precisa verificar seu endereço de e-mail após o upload da sua chave pública para que a descoberta por e-mail funcione).
Neste momento, você deve saber:
- Como enviar e-mails RFS
- Usar o Quilt para modificar a fonte upstream, se necessário
- Assinar seus commits git
Uma vez que você se sinta confortável com atualizações simples (digamos que você tenha feito 5-6 atualizações), pergunte a alguém para sugerir atualizações mais desafiadoras, como uma grande atualização.
Nível 3: Empacotando módulos mais complicados
O próximo passo é o empacotamento de módulos mais complicados que envolverão coisas como modificar alguns arquivos upstream, remover alguns arquivos do tarball-fonte, gerar alguns arquivos da fonte, obter o tarball-fonte de um commit git, etc.
Neste momento, você deve saber:
- Criar patches com quilt
- Reempacotar orig.tar e excluir arquivos específicos
Usar as opções pkg-js-tools para construir a partir de arquivos-fonte
- Construir pacotes com fontes typescript
Nível 4: Escolha um módulo não empacotado, porém útil, e faça upload para o repositório
Junte-se a equipes de empacotamento que ache interessantes. Inscreva-se em suas listas de discussão/canais irc e conte sobre como gostaria de ajudar a empacotar, seguindo a documentação oferecida.
Neste momento, você deve saber:
- Como registrar um ITP