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. Condigure o Debian instável (unstable)/Sid usando um contêiner Systemd (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 a partir da fonte. Aprender a construir a partir do código-fonte é útil quando você deseja fazer um backport de um pacote (por exemplo, você quer 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 você quiser modificar um pacote existente, por exemplo, para corrigir um bug ou selecionar um commit do(a) upstream.

Neste momento, você deve estar familiarizado(a) com os comandos

  1. debuild

  2. apt build-dep

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

Passos práticos,

  1. Configure seu nome e endereço de e-mail para serem usados no empacotamento;

  2. A seguir, siga este tutorial para criar um pacote do zero.

Tutorial extra com saídas mais detalhadas: Tutorial de empacotamento simples do Abraham Raji

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. Follow this tutorial to update a package to new upstream version. Make sure you have your SSH key added to your salsa profile.

  3. Você pode usar gbp pq ou Quilt no caso de precisar modificar ou criar um patch. Notas/Dicas: se você já está familiarizado(a) com ramos (branch) git e rebase, gbp pq será mais fácil. O Quilt precisa de treino para você não perder nenhum passo - se você perder uma etapa, pode ser muito difícil recuperar-se de um erro, então é melhor começar de novo se ver muitos erros ao construir o pacote. Um erro muito comum é fazer o commit de alterações upstream diretamente (se você se esqueceu de executar quilt pop -a antes de fazer o commit) e dpkg-buildpackage vai reclamar de arquivos modificados. Sempre execute debclean e quilt pop -a antes de fazer o commit de quaisquer alterações, e certifique-se de que você está fazendo alterações somente dentro do diretório debian (todas as alterações upstream serão salvas como arquivos de patch em debian/patches quando você executar quilt pop -a).

  4. Inicie assinando seus commits git e envie sua chave gpg pública para o servidor de chaves OpenPGP.org (este é o servidor de chaves padrão no gpg e thunderbird, para que as pessoas possam facilmente pesquisar pelas suas chaves usando um endereço de e-mail. Você também precisa verificar seu endereço de e-mail depois de fazer o upload de sua chave pública para que a descoberta com o e-mail funcione).

Neste momento, você deve saber:

  1. Como enviar e-mails RFS
  2. Como usar Quilt para modificar código-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