FAQ empacotamento Debian

De Eriberto Wiki
Ir para navegação Ir para pesquisar


Este FAQ é um complemento para a página Algumas coisas sobre Debian..., disponível em http://debianet.com.br.

Dúvidas iniciais

Preciso ser programador para empacotar no Debian?

Em resumo, NÃO!

Você precisa conhecer Debian, um pouquinho de shell script (bem básico), além de saber compilar e instalar programas. No fim, você disponibilizará executáveis prontos para usuários finais, dentro de um arquivo .deb, que é um arquivo compactado com 'ar'. Como experiência, você pode executar um '$ ar -x pacote.deb' para ver o seu conteúdo.

Programar ajuda a sanar determinados problemas e fazer melhorias além do básico. No entanto, não ser programador não impede ninguém de ser empacotador. Várias pessoas que mantêm pacotes no Debian não são programadores.

Onde posso aprender a empacotar?

A documentação oficial é o Guia dos Novos Mantenedores, disponível em https://www.debian.org/devel (em HTML). Ele também está disponível em outros formatos e idiomas aqui.

Para quem fala português, há videoaulas disponíveis em http://debianet.com.br.

Outra possibilidade interessante é de inscrever-se na lista Debian Mentors, destinada a retirar dúvidas de quem empacota ou está começando e acompanhá-la.

Ajuda on-line

Para onde envio o meu pacote quando estiver pronto?

  • Inicialmente, crie uma conta no site http://mentors.debian.org.
  • Você também vai precisar de uma chave GPG RSA de 4096 bits. Para isso siga as instruções existentes em https://wiki.debian.org/Keysigning. Siga os passos 1 a 7 COM ATENÇÃO.
  • Envie o seu pacote para o mentors, usando o comando dput mentors. Instruções aqui.
  • A seguir, busque por um sponsor. O sponsor é um Debian Developer (Desenvolvedor Debian, ou DD) que fará o upload do seu pacote para o Debian. Você poderá encontrar um no mundo (mais sponsors disponíveis) ou no Brasil. Veja como:
    • No mundo: crie um bug para o pacote virtual sponsorship-requests. Siga fielmente as instruções que estão aqui. Note que o próprio site mentors criará um template para você usar para o seu RFS (Request For Sponsor). Basta entrar na página que mostra o pacote do qual foi feito upload e procurar por View RFS template.
    • No Brasil: inscreva-se na lista Debian Devel Portuguese. A seguir, envie um email solicitando que alguém revise o seu pacote, dizendo o nome, o que ele faz e o endereço no mentors.

Obs: todos os DDs estão cadastrados aqui.

Onde posso obter ajuda, retirar dúvidas sobre empacotamento?

Há várias opções para você poder retirar as suas dúvidas on-line.

  • Lista Debian Mentors: esta é uma lista internacional, destinada especificamente à retirada de dúvidas sobre empacotamento.
  • Canal #debian-mentors no IRC irc.debian.org, porta 9999 (com SSL) ou 7000 (sem SSL, também podendo ser 6667). Este é um canal IRC análogo à lista Debian Mentors.
  • Lista Debian Devel Portuguese, para quem quiser suporte em português.
  • Também há o canal #debian-devel-br, no mesmo IRC citado anteriormente.

Há condições mínimas que que eu solicite um sponsor?

Sim. Um sponsor trabalha de forma voluntária, dedicando o seu tempo, sem receber nada por isso. Então:

  • Não envie pacotes mal feitos ou cheios de mensagens de lintian que podem ser sanadas. O seu pacote será sumariamente ignorado.
  • Não envie várias mensagens seguidas pedindo um sponsor. Por se tratar de um trabalho voluntário, você deve esperar pela disponibilidade de alguém. Você poderá enviar uma nova mensagem depois de muito tempo (um mês é uma boa medida). Mas, normalmente, os pedidos são atendidos rapidamente.
  • Seja sempre cordial com quem está dedicando tempo para lhe ajudar.
  • Se for o caso, antes de enviar um pacote, retire todas as suas dúvidas nos canais destinados a isso. Veja o item Onde posso obter ajuda, retirar dúvidas?

Progresso do empacotamento

Como o meu pacote e o meu nome serão mostrados no Debian?

Depois que um DD fizer o upload para você, o pacote com o seu nome poderá ser visto em http://packages.qa.debian.org. Após o seu primeiro upload, o seu nome será registrado aqui. O seu último upload sempre aparecerá aqui.

Quando você adotar um pacote, será criada uma página específica para você, cujo endereço será https://qa.debian.org/developer.php?login=<seu email>. Clique aqui para ver a minha página como exemplo.

Enviei um pacote para o Debian. Eu sou DM? Como ser DD?

Não, você não é um DM (Debian Maintainer).

Quem mantém pacotes no Debian é um mantenedor de pacotes ou empacotador. Existe uma classe, um pouco acima, que exige um pouco mais de experiência, chamada Debian Maintainer (DM). Para se tornar um DM, você precisará realizar alguns procedimentos básicos. Após algum tempo, você poderá fazer algumas provas de certificação, dentro do Debian, e se tornar um Debian Developer (DD).

Para entender tudo isso, assista a essa palestra, com 50 minutos de duração.

O meu pacote é inédito no Debian e foi para a NEW. Quanto tempo ficará lá?

A fila NEW é destinada a pacotes que estão nas seguintes situações:

  • Entrando pela primeira vez no Debian. O pacote irá para essa fila mesmo tendo passado pelas mãos de um DD para upload.
  • Retornando ao Debian depois de terem sido excluídos por qualquer motivo. Por curiosidade, aqui há uma lista de pacotes a serem removidos em breve.
  • O pacote já estava no Debian mas, em virtude de um novo empacotamento (revisão Debian), ele agora gera um binário (.deb) a mais ou com nome diferente (um .deb foi renomeado).

Um pacote pode ficar de alguns minutos a 3 meses na NEW. O time FTP-Master não segue a ordem da fila. Como exemplo, considere que um deles chegue cansado do trabalho de noite mas tem como hobby analisar e aceitar pacotes. Só que o cansaço é tão grande quanto a vontade. Então, nesse caso, se for um analista que goste muito de Python, ele vai olhar pacotes que usem Python. É assim que funciona. O trabalho deles também é voluntário e é por isso que não seguem uma ordem. Assim sendo, pode ser que um determinado pacote seu pacote fique lá na fila 3 meses e um que você tenha enviado depois fique apenas 2 dias.

Ainda, se o pacote tem ploblema, ele não ficará na fila. Ele será rejeitado. Se ele não foi aprovado e nem rejeitado, é porque ainda não foi analisado.

Técnica de empacotamento

Quais modalidades de empacotamento estão disponíveis?

Há várias. Citando as mais comuns:

  • Manutenção de pacotes: ocorre quando você introduz um pacote novo no Debian ou adota um que esteja órfão. Nesse caso o pacote passa a ser seu e você vira um mantenedor de pacote (que é diferente de Debian Maintainer ou DM).
  • Trabalho de QA: é feito sobre pacotes que estão órfãos (sem um mantenedor, atualmente). O objetivo é ajudar o pacote a evoluir, mesmo que ele não tenha um dono.
  • NMU (Non-maintainer upload): trabalho feito sobre um pacote que tem um mantenedor que não está tendo tempo de cuidar do mesmo. Admite apenas alterações para sanar problemas críticos.
  • Trabalho em times: nessa modalidade, você pode integrar um dos times de empacotamento no Debian e realizar trabalhos dentro do mesmo, com a supervisão e a ajuda de pessoas experientes no assunto.

Por onde começar a empacotar?

Para quem é iniciante, o ideal é começar por trabalhos de QA. Esse tipo de atividade não exige muito conhecimento e permite que sejam feitos apenas os ajustes que a pessoa conheça e domine. Com o tempo, cada um terá a habilidade de sanar todos os problemas e de passar para outras modalidades, como a de manutenção de pacotes.

Quais são os problemas mais comuns encontrados nos empacotamentos?

São vários. Os mais comuns para mim, quando atuando como sponsor são:

  • Não registrar no arquivo debian/changelog todas as alterações feitas em um pacote.
  • Não verificar com profundidade e paciência os dados de direitos autorais a serem inscritos no arquivo debian/copyright.

Esses são os problemas que mais ocorrem, dentre vários.

Como eu evito repetir problemas ou esquecer de algo em um pacote?

Simples! Crie um checklist!

Cada trabalho realizado em pacotes é um momento de aprendizado. Os seus sponsors, certamente, irão ensinar muito sobre empacotamento. Assim, a cada novo aprendizado, acresça itens no seu checklist básico.