Índice
debmake [-h] [-c | -k] [-n | -a pacote-versão.orig.tar.gz | -d | -t ] [-p pacote] [-u versão] [-r revisão] [-z extensão] [-b "pacotebinário[:type], …]" [-e foo@example.org] [-f "primeironome últimonome"] [-i "ferramentacompilação" | -j] [-l ficheiro_licença] [-m] [-o ficheiro] [-q] [-s] [-v] [-w "addon, …"] [-x [01234]] [-y] [-L] [-P] [-T]
debmake ajuda a compilar um pacote Debian a partir da fonte do autor. Normalmente, isto faz-se como se segue:
Certifique-se de proteger os argumentos das opções -b, -f, -l, e -w de interferências da shell citando-os de modo apropriado.
sonda a fonte para texto copyright+licença e termina.
compara o ficheiro debian/copyright com a fonte e termina.
O ficheiro debian/copyright tem de ser organizado para listar os padrões de ficheiro genéricos antes das excepções específicas.
cria um pacote fonte Debian nativo sem o .orig.tar.gz. Isto cria um pacote fonte Debian de formato “3.0 (native)”.
Se você está a pensar em empacotar uma árvore fonte específica Debian com debian/ nela em um pacote nativo Debian, por favor pense o contrário. Você pode usar os comandos “debmake -d -i debuild” ou “debmake -t -i debuild” para criar um pacote Debian não-nativo usando o formato fonte Debian “3.0 (quilt)”. A única diferença é que agora o ficheiro debian/changelog tem de usar o esquema de versão não-nativo: versão-revisão. O pacote não-nativo é mais amigável às distribuições baseadas nesta.
use o tarball fonte do autor diretamente. (-p, -u, -z: sobreposto)
O tarball do autor pode ser especificado como pacote_versão.orig.tar.gz e tar.gz. Para outros casos, pode ser tar.bz2, ou tar.xz.
Se o nome do tarball de autor especificado conter letras maiúsculas, o nome do pacote Debian é gerado ao converte-las para letras minúsculas.
Se o argumento especificado for o URL (http://
,
https://
, ou ftp://
) para o tarball do
autor, este é descarregado do URL usando wget ou curl.
corra primeiro o comando equivalente a “make dist” para gerar o tarball de autor e use-o.
O comando “debmake -d”
destina-se a correr no directório package/ que hospeda
o VCS do autor com o sistema de compilação a suportar equivalentes ao
comando “make dist”.
(automake
/autoconf
, …)
corra o comando “tar” para gerar o tarball de autor e use-o.
O comando “debmake -t” destina-se a correr no directório package/ que hospeda o VCS do autor. A menos que você forneça a versão do autor com a opção -u option ou com o ficheiro debian/changelog, é grado um instantâneo da versão do autor no formato 0\~%y%m%d%H%M, ex., 0~1403012359, a partir da hora e data UTC. O tarball gerado exclui o directório debian/ encontrado no VCS do autor. (Também exclui directórios típicos do VCS: .git/, .hg/, .svn/, .CVS/.)
define as especificações do pacote binário por uma lista separada por vírgulas de pares pacotebinário:tipo. Aqui, pacote-binário é o nome do pacote binário, e o tipo opcional é escolhido a partir dos seguintes valores de tipo:
O par de valores dentro de parênteses, tais como (any, foreign), são os valores de estrofe Arquitectura e Multi-Arch definidos no ficheiro debian/control. Em muitos casos, o comando debmake consegue adivinhar bem o tipo de pacotebinário. Se tipo não for óbvio, tipo é definido para bin.
Aqui estão exemplos para cenários típicos de divisão de pacote binário onde o nome do pacote fonte Debian do autor é foo:
Gerando um pacote binário executável foo:
Gerando um pacote binário executável (python3) python3-foo:
Gerando um pacote de dados foo:
Gerando um pacote binário executável foo e um de documentação foo-doc:
Gerando um pacote binário executável foo, um pacote biblioteca libfoo1, e um pacote de desenvolvimento de biblioteca libfoo-dev:
Se o conteúdo da árvore fonte não corresponder à definição para tipo, o comando debmake avisa-o.
define o endereço de e-mail.
A predefinição é obtida a partir do valor da variável de ambiente $DEBEMAIL.
define o nome completo
A predefinição é obtida a partir do valor da variável de ambiente $DEBFULLNAME.
invoca "buildtool" no final da execução. buildtool pode ser “dpkg-buildpackage”, “debuild”, “sbuild”, etc.
A predefinição é não executar nenhum programa.
Definir esta opção define automaticamente a opção --local.
corre dpkg-depcheck para julgar dependências de compilação e identificar caminhos de ficheiros. Os ficheiros de relatório estão no directório pai.
adiciona texto de licença formatado ao final do ficheiro debian/copyright mantendo resultados da sondagem da licença.
A predefinição é adicionar COPYING e LICENSE, e license_file precisa de listar apenas os nomes de ficheiros adicionais todos separados por “,”.
lê parâmetros opcionais de ficheiro. (Isto não é para usar todos os dias.)
O conteúdo de ficheiro é fonte como o código Python no final de para.py. Por exemplo, a descrição do pacote pode ser especificada pelo seguinte ficheiro.
para['desc'] = 'program short description' para['desc_long'] = '''\ program long description which you wish to include. . Empty line is space + . You keep going on ... '''
adiciona argumentos extra à opção --with do comando dh(1) como addon em debian/rules.
Os valores addon são listados todos separados por “,”, ex., “-w "python3,autoreconf””.
Para pacotes baseados em Autotools, autoreconf como addon para correr “autoreconf -i -v -f” para cada pacote compilado é o comportamento predefinido do comando dh(1).
Para pacotes baseados em Autotools, se eles instalarem programas Python (versão 3), definir python3 como addon para o argumento de comando debmake é necessário pois isto não é óbvio. Mas para pacotes baseados em Python pyproject.toml, definir python3 como addon para o argumento de comando debmake não é necessário pois isto é óbvio e o comando debmake define-o automaticamente para o comando dh(1).
gera ficheiros de configuração como modelos. (Por favor note debian/changelog, debian/control, debian/copyright, e debian/rules são os ficheiros de configuração mínimos para compilar pacote binário Debian.)
O número n determina quais modelos de configuração são gerados.
Alguns ficheiros modelo de configuração são gerados com um sufixo extra .ex para facilitar a sua remoção. Para activar isto, renome os seus nomes de ficheiro para aqueles sem o sufixo .ex e edite os seus conteúdos. Os ficheiros de configuração nunca são sobrescritos. Se desejar actualizar alguns dos ficheiros de configuração existentes, or favor renome-os antes de correr o comando debmake e junte manualmente os ficheiros de configuração gerados com os antigos que foram renomeados.
Para uma fonte bem comportada, você pode compilar um pacote binário Debian singular instalável e bom-para-uso-local facilmente com um comando. A instalação de teste de tal pacote gerado deste modo oferece uma boa alternativa ao comando tradicional “make install” que instala no directório /usr/local pois o pacote Debian pode ser removido completamente pelo comando “dpkg -P '…'”. Aqui estão alguns exemplos de como compilar tais pacotes de teste. (Estes devem funcionar na maioria dos casos. Se a opção -d não funcionar, então tente a opção -t.)
Para uma árvore fonte de programa C típico empacotada com autoconf/automake:
Para uma árvore fonte de módulo Python (versão 3) típica:
Para um módulo Python (version 3) típico no arquivo pacote-versão.tar.gz:
Para um módulo Perl típico no arquivo pacote-versão.tar.gz:
O empacotamento pode requerer a instalação de alguns pacotes de ajuda especial adicional.
Apesar do debmake destinar-se a fornecer ficheiros modelo para o maintainer do pacote trabalhar, as atividades actuais de empacotamento são muitas vezes executadas sem se usar o debmake enquanto se referenciam apenas pacotes existentes semelhantes e o “Manual de Política Debian”. É requerido que todos os ficheiros modelo gerados pelo debmake sejam modificados manualmente.
Existem 2 pontos positivos para o debmake:
Por favor volte a verificar o copyright com o comando licensecheck(1).
Existem algumas limitações para quais caracteres podem ser usados como parte do pacote Debian. A limitação mais notável é a proibição de letras maiúsculas no nome do pacote. Aqui está um sumário como um conjunto de expressões regulares:
[-+.a-z0-9]{2,}
[-+.a-z0-9]{2,}
[0-9][-+.:~a-z0-9A-Z]*
[0-9][+.~a-z0-9A-Z]*
Veja a definição exacta em “Capítulo 5 - Ficheiros de controle e seus campos” no “Manual de Política Debian”.
O debmake assume casos de empacotamento relativamente simples. Assim todos programas relacionados com o interpretador são assumidos como sendo “Architecture: all”. Isto nem sempre é verdade.
Por favor reporte bugs ao pacote debmake usando o comando reportbug.
O caractere definido na variável de ambiente $DEBUG determina o nível de resultados no relatório.
main.py
para.py
checkdep5.py
check_format_style()
checkdep5.py
split_years_name()
checkdep5.py
parse_lines()
registo 1 — ciclo de sondagem content_state
: começar ciclo
checkdep5.py
parse_lines()
registo 2 — ciclo de sondagem
content_state: após correspondência de expressão regular
checkdep5.py
parse_lines()
registo 3 — ciclo de sondagem
content_state: terminar ciclo
checkdep5.py
parse_lines()
registo 4 — escreve texto da secção
autor/tradutor
checkdep5.py
check_all_license()
registo 1 — insere nome de ficheiro
para a sondagem do copyright
checkdep5.py
check_all_license()
registo 2 l — escreve texto da secção
de licença
checkdep5.py
check_all_license()
registo 3 — escreve texto da secção
copyright
checkdep5.py
check_all_license()
registo 4 — ordena chave para a
estrofe debian/copyright
sed.py
cat.py
kludge.py
(“debmake
-k”)
Use esta funcionalidade como:
$ DEBUG=ipsybmeaflckrwn debmake ...
Veja README.developer na fonte para mais.
Copyright © 2014-2024 Osamu Aoki <osamu@debian.org>
O pacote debmake-doc fornece o “Guia para Maintainers Debian” em formato de texto simples, HTML e PDF sob o directório /usr/share/doc/debmake-doc/.
Veja também dpkg-source(1), deb-control(5), debhelper(7), dh(1), dpkg-buildpackage(1), debuild(1), quilt(1), dpkg-depcheck(1), sbuild(1), gbp-buildpackage(1), and gbp-pq(1) manpages.