Capítulo 3. Pré-requisitos

Índice

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

Aqui estão os pre-requisitos que você precisa compreender antes de se envolver com Debian.

Existem vários tipos de pessoas a interagir em redor de Debian com diferentes papeis:

  • autor upstream: a pessoa que fez o programa original.
  • upstream maintainer: a pessoa que actualmente mantém o programa.
  • maintainer: a pessoa que faz o pacote Debian do programa.
  • sponsor: uma pessoa que ajuda os maintainers a enviar pacotes para o arquivo de pacotes oficial de Debian (após verificar o seu conteúdo).
  • mentor: uma pessoa que ajuda maintainers novatos com empacotamento e etc.
  • Debian Developer (DD): um membro do projeto Debian com totais direitos de envio para o arquivo de pacotes Debian oficial.
  • Debian Maintainer (DM): uma pessoa com direitos de envio limitados para o arquivo de pacotes Debian oficial.

Por favor note que você não pode tornar-se um Debian Developer (DD) oficial da noite pró dia, pois isso requer mais do que habilidades técnicas. Não fique desencorajado por isto. Se o seu trabalho for útil para outros, você pode à mesma enviar o seu pacote seja como um maintainer através dum sponsor ou como um Debian Maintainer.

Por favor note que você não precisa de criar um pacote novo para se tornar num Debian Developer oficial. Contribuir para os pacotes existentes também pode fornecer um caminho para se tornar num Debian Developer oficial. Existem muitos pacotes à espera de bons maintainers (veja "`Secção 3.8, “Abordagens de contribuição””`").

Por favor consulte o seguinte para aprender a como contribuir para Debian:

Por favor compreenda as dinâmicas sociais de Debian para se preparar para interagir com Debian:

  • Somos todos voluntários.

    • Você não pode impor tarefas aos outros.
    • Você deve ser auto-motivado a fazer as coisas.
  • Cooperação amigável é a força motriz.

    • O seu contributo não deve sobre-esforçar os outros.
    • O seu contributo só tem valor quando os outros o apreciam.
  • Debian não uma escola onde você obtêm atenção automática dos professores.

    • Você deve ser capaz de aprender muitas coisas independentemente.
    • A atenção de outros voluntários é um recurso escasso.
  • Debian está em melhoria constante.

    • Espera-se que você crie pacotes de alta qualidade.
    • Você deve adaptar-se à mudança.

Como nós nos focamos apenas nos aspectos técnicos do empacotamento no resto deste guia, por favor consulte o seguinte para compreender as dinâmicas sociais de Debian:

Aqui estão alguns lembretes técnicos para ajudar outros maintainers a trabalhar no seu pacote facilmente e efectivamente, maximizando o resultado de Debian como um todo.

[Nota]Nota

A depuração do software tende em consumir mais tempo que escrever o software inicial funcional.

Não é inteligente correr o seu sistema base sob a suite unstable mesmo para objectivos de desenvolvimento.

[Nota]Nota

Atividades avançadas de desenvolvimento de pacotes tais como testes de sistemas Desktop completos, daemons de rede, e pacotes de instalador de sistemas, devem usar a suite unstable a correr sob virtualização.

Por favor prepare-se para ler a parte pertinente da documentação Debian mais recente para gerar pacotes Debian perfeitos.

Todos estes documentos são publicados em https://www.debian.org usando as versões da suite unstable dos pacotes Debian correspondentes. Se você deseja ter acesso local a todos estes documentos a partir do seu sistema base, por favor considere usar técnicas como apt-pinning e chroot.

Se este guia contradizer a documentação Debian oficial, a documentação Debian oficial está correta. Por favor envie um relatório de bug sobre o pacote debmake-doc usando o comando reportbug.

Aqui estão documentos tutorial alternativos, que pode ler juntamente com este guia:

[Dica]Dica

Ao ler estes tutoriais, pode considerar usar o comando debmake em vez do comando dh_make.

Antes de decidir perguntar a sua questão num lugar público, por favor faça a sua parte ao ler a documentação relevante:

Você pode encontrar a sua desejada informação ao usar uma string de busca bem-formada como "keyword site:lists.debian.org" para limitar o domínio da busca do motor de busca web.

Criar um pequeno pacote de teste é uma boa maneira de aprender detalhes do empacotamento. Inspecionar pacotes bem mantidos existentes é a melhor maneira de aprender como as outras pessoas criam pacotes.

Se ainda tiver questões sobre empacotamento, você pode pergunta-las interactivamente:

Desenvolvedores Debian mais experientes irão ajuda-lo, se perguntar de modo apropriado após fazer os esforços requeridos.

[Cuidado]Cuidado

O desenvolvimento Debian é um alvo em movimento. Alguma informação encontrada na web pode estar desatualizada, incorreta, ou não ser aplicável. Por favor use tal informação com cuidado.

Por favor perceba a situação do arquivo Debian.

  • Debian já tem pacotes para a maioria dos tipos de programas.
  • O número de pacotes já existentes no arquivo Debian é várias dezenas de vezes maior que os maintainers activos.
  • Infelizmente, a alguns pacotes falta-lhes um nível apropriado de atenção por parte do maintainer.

Assim, contributos a pacotes que já existem no arquivo são muito mais apreciados (e mais prováveis de receber patrocínios para o envio) pelos outros maintainers.

[Dica]Dica

O comando wnpp-alert do pacote devscripts pode procurar por pacotes instalados que estão para ser adotados ou órfãos.

[Dica]Dica

O pacote how-can-i-help pode mostrar oportunidades para contribuir para Debian com base em pacotes instalados localmente.

Aqui está o código pseudo-Python para as suas abordagens de contribuição a Debian com um programa:

if exist_in_debian(program):
  if is_team_maintained(program):
    join_team(program)
  if is_orphaned(program): # maintainer: Debian QA Group
    adopt_it(program)
  elif is_RFA(program): # Request for Adoption
    adopt_it(program)
  else:
    if need_help(program):
      contact_maintainer(program)
      triaging_bugs(program)
      preparing_QA_or_NMU_uploads(program)
    else:
      leave_it(program)
else: # new packages
  if not is_good_program(program):
    give_up_packaging(program)
  elif not is_distributable(program):
    give_up_packaging(program)
  else: # worth packaging
    if is_ITPed_by_others(program):
      if need_help(program):
        contact_ITPer_for_collaboration(program)
      else:
        leave_it_to_ITPer(program)
    else: # really new
      if is_applicable_team(program):
        join_team(program)
      if is_DFSG(program) and is_DFSG(dependency(program)):
        file_ITP(program, area="main") # This is Debian
      elif is_DFSG(program):
        file_ITP(program, area="contrib") # This is not Debian
      else: # non-DFSG
        file_ITP(program, area="non-free") # This is not Debian
      package_it_and_close_ITP(program)

Aqui:

Você ou precisa de preencher um ITP ou adotar um pacote para começar a trabalhar nele. Veja Debian Developer’s Reference:

O contribuidor e maintainer novato pode se questionar sobre o que aprender para começar o seu contributo a Debian. Aqui estão as minhas sugestões dependendo do seu objectivo.

  • Empacotamento

    • Bases de shell POSIX e make.
    • Algum conhecimento rudimentar de Perl e Python.
  • Tradução

    • Bases sobre como o sistema de tradução baseada em PO funciona.
  • Documentação

    • Bases sobre marcações de texto (XML, ReST, Wiki, …​).

O contribuidor e maintainer novato pode questionar onde começar a sua contribuição para Debian. Aqui estão algumas sugestões que dependem das suas habilidades:

Esta atividades devem dar-lhe boa exposição às outras pessoas de Debian para estabilizar a sua credibilidade.

O maintainer novato deve evitar empacotar programas com exposição alta de segurança:

  • programa setuid ou setgid
  • programa daemon
  • programa instalado nos directórios /sbin/ ou /usr/sbin/

Quando você ganhar mais experiência em empacotamento, você vai ser capaz de empacotar tais programas.



[4] A grande maioria de maintainers Debian usa git sobre outros sistemas VCS como os hg, bzr, etc.

[5] Isto não é um requerimento absoluto. O autor hostil por tornar-se num grande consumo de recursos para todos nós. O autor amigável pode ser consultado para resolver quaisquer problemas com o programa.