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

Here are the prerequisites you need to understand before getting involved with 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.

Please note that you can’t become an official Debian Developer (DD) overnight, as it requires more than just technical skills. Don’t be discouraged by this. If your work is useful to others, you can still upload your package either as a maintainer through a sponsor or as a Debian Maintainer.

Please note that you don’t need to create new packages to become an official Debian Developer. Contributing to existing packages can also provide a path to becoming an official Debian Developer. There are many packages waiting for good maintainers (see "`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:

  • We are all volunteers.

    • You can’t impose tasks on others.
    • You should be self-motivated to do things.
  • 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 is not a school where you get automatic attention from teachers.

    • You should be able to learn many things independently.
    • Attention from other volunteers is a scarce resource.
  • 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:

Here are some technical reminders to help other maintainers work on your package easily and effectively, maximizing the output of Debian as a whole.

[Nota]Nota

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

[Nota]Nota

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

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.

Before deciding to ask your question in a public forum, please do your part by reading the relevant documentation:

You can find your desired information 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.

Creating a small test package is a good way to learn the details of packaging. Inspecting existing well-maintained packages is the best way to learn how other people make packages.

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

More experienced Debian developers will gladly help you if you ask properly after making the required efforts.

[Cuidado]Cuidado

Debian development is a moving target. Some information found on the web may be outdated, incorrect, or non-applicable. Please use such information 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.

[Dica]Dica

The wnpp-alert command from the devscripts package can check for installed packages that are up for adoption or orphaned.

[Dica]Dica

The how-can-i-help package can show opportunities for contributing to Debian based on packages installed locally.

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.