Você provavelmente escolheu o pacote que quer criar. A primeira coisa que você
precisa fazer é conferir se o pacote já não está na distribuição. Se você usa
a distribuição 'stable', talvez seja melhor vc ir na página de busca de pacotes
Debian
. Se você usa a distribuição 'unstable'
atual confira com os seguintes comandos:
dpkg -s program dpkg -l '*program*'
Se o pacote já existe, bem, é só instalar! :-) Se ele estiver órfão -- se seu
mantenedor estiver marcado no "Grupo QA do Debian", você pode
adotá-lo. Consulte a lista de pacotes
órfãos
e a lista de pacotes para
adoção
para verificar se o pacote está realmente disponível.
Se você pode adotar o pacote, pegue o seu código-fonte (com algo como, apt-get source packagename) e analise-o. Este documento infelizmente não inclui informações sobre adoção de pacotes. Felizmente você não deve ter problemas descobrindo como o pacote funciona uma vez que alguém já fez todo o trabalho inicial para você. Mesmo assim continue lendo, muito do que vem a seguir ainda será aplicável para você.
Se o pacote ainda não existe, e você gostaria de vê-lo no Debian, prossiga como seguinte:
lista de pacotes em
desenvolvimento
. Se alguém já está criando-o, entre em contato com
essa pessoa se você achar desejável. Senão - procure outro programa
interessante que ninguém mantém ainda.
Guia Debian de Software
Livre
. Se o programa não concorda com alguma dessas regras, mas
ainda assim pode ser distribuído, ele ainda pode ser incluído nas seções
'contrib' ou 'non-free'. Se você ainda não tem certeza sobre onde ele deve ser
incluído, envie o texto da licença para debian-legal@lists.debian.org
e peça ajuda.
Obviamente tudo isso são medidas de segurança, e têm como intuito evitar usuários zangados com você, se você fez algo errado em algum daemon setuid root... Quando você tiver mais experiência na criação de pacotes, você poderá criar tais pacotes, mas mesmo os desenvolvedores mais experientes consultam a lista debian-mentors quando em dúvida. E as pessoas lá ficarão felizes em poder ajudar.
Para mais ajuda sobre isso, leia a Referência do Desenvolvedor (Developer's Reference).
A primeira coisa a ser feita é encontrar e baixar o pacote original. Eu presudo que você já tem o código-fonte pego na página do autor. Códigos-fonte para software livre em Unix normalmente vêm no formato tar/gzip, com a extensão .tar.gz, e normalmente contém um subdiretório com o nome nome_do_programa-versão e todos os códigos-fonte dele dentro. Se o código-fonte do seu programa vem em outro tipo de arquivamento (como por exemplo um arquivo de extensão ".Z" ou ".zip"), desempacote-o com as ferramentas adequadas ou peça ajuda na lista debian-mentors se você não tem certeza de como desempacota-lo corretamente (dica: execute 'file arquivo.extensão').
Como exemplo, eu usarei um programa chamado 'gentoo', um manipulador de arquivos para o X em GTK+. Note que o programa já está empacotado, e mudou bastante desde a última versão em que este texto foi escrito.
Crie um subdiretório no seu home chamado 'debian' ou 'deb' ou algo que você ache mais apropriado (ex: ~/gentoo/ seria suficiente neste caso). Coloque o arquivo baixado dentro dele, e descompacte-o (com 'tar zxf gentoo-0.9.12.tar.tz'). Certifique-se que não ocorreram erros, mesmo os mais "irrelevantes", pois provavelmente poderão ocorrer erros nos sistemas de outras pessoas, que têm ferramentas de desempacotamento que podem ou não ignorar tais anomalias.
Agora você tem outro subdiretório, chamado 'gentoo-0.9.12'. Mude para esse diretório e leia cuidadosamente a documentação fornecida. Normalmente existem arquivos chamados README*, INSTALL*, *.lsm ou *.html. Você deve encontrar instruções de como compilar e instalar o programa corretamente (provavelmente eles irão assumir que você quer instalar o programa no diretório /usr/local/bin , mas você não fará isso. Mais sobre isso será dito em Instalação em um subdiretório, Seção 3.1).
O processo varia de programa para programa, mas vários programas atuais vem com um script 'configure' que configura o código-fonte de acordo com o seu sistema e garante que seu sistema tem condições de compilar o programa. Após configurar o código-fonte com './configure', os programas são normalmente compilados com 'make'. Alguns deles suportam 'make check', para rodar incluindo auto-testes. A instalação nos devidos diretórios de destino são normalmente feitos com 'make install'.
Agora tente compilar e executar seu programa, para garantir que ele funciona corretamente e não interfere em nada enquanto ele está sendo instalado ou executado.
Normalmente você também pode executar 'make clean' (ou melhor ainda 'make distclean') para limpar o diretório de compilação. Algumas vezes você pode inclusive executar um 'make uninstall' para remover todos os arquivos instalados.
Você deve começar empacotando com um diretório de código-fonte completamente limpo, ou simplesmente com um código-fonte recém descompactado.
Para que o pacote seja criado corretamente, você deve tornar o nome do programa caixa-baixa (se já não for), e deve mover o diretório fonte para <nome_do_pacote>-<versão>.
Se o nome do programa utiliza mais de uma palavra, reduza-o para uma palavra ou abrevie-o. Por exemplo, o programa "Pequeno Editor do John para X" pode ser nomeado "xpedjohn", ou "xeditorjohn" ou qualquer outra coisa que você decidir, desde que o nome tenha um nome razoável, como 20 caracteres.
Verifique também a versão exata do programa (para ser incluída na versão do pacote). Se este software não utiliza versões numeradas tipo X.Y.Z, mas algo como uma data, sinta-se a vontade para utilizar essa data como a versão, sufixada com "0.0." (para o caso de alguem superior na manutenção do programa resolver um dia distribuir uma versão tipo 1.0). Dessa forma, se a distribuição ou imagem do programa é do dia 19/12/1998, você pode utilizar a versão como sendo 0.0.19981219.
Alguns programas nem têm uma versão definida, caso o qual você deve entrar em contado com o mantenedor superior para certificar-se de algum outro eventual sistema de revisão por ele utilizado.
Certifique-se que você está no diretório do código-fonte do programa e execute:
dh_make -e seu.endereço@de.mantenedor -f ../gentoo-0.9.12.tar.gz
Obviamente você deve substituir "seu.endereço@de.mantenedor" com o
seu endereço de e-mail a ser incluído no changelog, outros arquivos e no nome
do arquivo com o nome do seu código-fonte. Veja dh_make(1)
para
maiores informações.
Algumas informações serão mostradas. Vai ser perguntado que tipo de pacote você quer criar. O gentoo é um pacote de um único binário - ele só cria um arquivo binário, e logo um arquivo .db -, logo, vamos selecionar a primeira opção utilizando a tecla 's'. Confira a informação impressa na tela e confirme pressionando <enter>.
Novamente, como novo mantenedor, não é recomendável que você crie pacotes de múltiplos binários ou bibliotecas. Não é muito complicado, mas exige um pouco mais de conhecimento, e assim sendo não será descrito aqui.
Note que você deve executar o dh_make somente uma vez, e que ele não se comportará corretamente se você executá-lo novamente num diretório já "debianizado". Isso também significa que você irá utilizar um método diferente para criar uma nova revisão ou versão do seu pacote no futuro. Leia mais sobre isso em Atualizando o pacote, Capítulo 9
Guia do Novo Mantenedor Debian
version 1.2, 6 April 2002.joy-mg@debian.org
mahdi@dcc.ufmg.br
priscilla@minaslivre.org