Chapter 3. Pré-requisitos

Table of Contents

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, porque isso precisa de mais do que habilidade técnica. Por favor não fique desencorajado por isto. Se for útil para outros, você pode à mesma enviar o seu pacote seja como um maintainer através dum sponsor ou como um Debian Maintainer.

Please note that you do not need to create any new packages to become an official Debian Developer. Contributing to the existing packages can provide a path to becoming an official Debian Developer too. There are many packages waiting for good maintainers (see "`Section 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 aos outros o que fazer.
    • Você deve ser motivado a fazer as coisas por si próprio.
  • 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 é a sua escola onde você obtêm atenção automática dos professores.

    • Você deve ser capaz de aprender muitas coisas por si próprio.
    • A atenção de outros voluntários é um recurso muito 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 acomodar outros maintainers a trabalhar no seu pacote facilmente e efectivamente para maximizar o resultado de Debian como um todo.

[Note]Note

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

It is unwise to run your base system under the unstable suite even for the development system.

[Note]Note

Advanced package development activities such as testing of full Desktop systems, network daemons, and system installer packages, should use unstable suite running under the virtualization.

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

All these documents are published to https://www.debian.org using the unstable suite versions of corresponding Debian packages. If you wish to have local accesses to all these documents from your base system, please consider to use techniques such as apt-pinning and 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:

[Tip]Tip

When reading these, you may consider using the debmake command in place of the dh_make command.

Antes de decidir perguntar a sua questão em algum lugar público, por favor faça a sua parte do esforço, isto é, leia a documentação fina:

Your desired information can be found effectively by using a well-formed search string such as keyword site:lists.debian.org to limit the search domain of the web search engine.

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:

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

[Caution]Caution

Debian development is a moving target. Some information found on the web may be outdated, incorrect, and non-applicable. Please use them carefully.

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.

[Tip]Tip

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

[Tip]Tip

O pacote how-can-i-help pode mostrar oportunidades para contribuir para Debian 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:

You either need to file an ITP or adopt a package to start working on it. See the 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

    • Basics of text markups (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.