Aprenda sobre empacotamento

Nota: originalmente obtido de Software Freedom Camp.

Nível 0: Básico sobre processo de lançamento e configuração de um ambiente de desenvolvimento

  1. Como instalar um arquivo .deb via linha de comando

  2. 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)

  3. Gerenciamento de repositórios/sources.list (gerenciando a lista de sites que servem pacotes Deb)

  4. 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)

  5. 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

  6. 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)

  7. 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

  1. apt source/dget/debcheckout,

  2. dpkg-source -x,

  3. dpkg-buildpackage/debuild,

  4. apt build-dep,

  5. 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,

  1. Baixar código-fonte do software a ser empacotado (geralmente lançamentos em tarballs)
  2. Criar um diretório modelo debian (usando ferramentas como debmake, npm2deb ou gem2deb dependendo da linguagem de programação usada)

  3. Construir o arquivo .deb, combinando os dois acima (usando dpkg-buildpackage)

Tutorials para seguir:

  1. Tutorial de empacotamento simples de Abraham Raji

  2. Tutorial de empacotamento simples

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.

1. Tutorial npm2deb

Neste momento, você deverá saber como:

  1. criar pacotes limpos com lintian para módulos simples e
  2. criar pacotes em ambientes limpos como ?sbuild.

  3. Você também deve saber ?importar um arquivo dsc para um repositório git (gbp import-dsc --prisstine-tar) e

  4. 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:

  1. 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.

  2. Atualize pacotes para nova versão upstream]

  3. Usando Quilt no caso de precisar modificar qualquer patch ou criar um patch

  4. 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:

  1. Como enviar e-mails RFS
  2. Usar o Quilt para modificar a fonte upstream, se necessário
  3. 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.

  1. Tutorial avançado para módulos mais complicados]

Neste momento, você deve saber:

  1. Criar patches com quilt
  2. Reempacotar orig.tar e excluir arquivos específicos
  3. Usar as opções pkg-js-tools para construir a partir de arquivos-fonte

  4. 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

  1. Lista de dependências de nós para gitlab

  2. 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:

  1. Como registrar um ITP


CategoryPackaging