Table of Contents
debmake [-h] [-c | -k] [-n | -a package-version.orig.tar.gz | -d | -t ] [-p package] [-u version] [-r revision] [-z extension] [-b "binarypackage[:type], …]" [-e foo@example.org] [-f "firstname lastname"] [-i "buildtool" | -j] [-l license_file] [-m] [-o file] [-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.
make a native Debian source package without .orig.tar.gz. This makes a Debian source format “3.0 (native)” package.
If you are thinking of packaging a Debian-specific source tree with debian/ in it into a native Debian package, please think otherwise. You can use the “debmake -d -i debuild” or “debmake -t -i debuild” commands to make a Debian non-native package using the Debian source format “3.0 (quilt)” The only difference is that the debian/changelog file must use the non-native version scheme: version-revision. The non-native package is more friendly to downstream distributions.
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.
If the specified argument is the URL (http://
,
https://
, or ftp://
) to the upstream
tarball, the upstream tarball is downloaded from the URL using wget or curl.
run the “make dist” command equivalents first to generate the upstream tarball and use it.
The “debmake -d” command is
designed to run in the package/ directory hosting the
upstream VCS with the build system supporting the “make dist” command equivalents.
(automake
/autoconf
, …)
run the “tar” command to generate the upstream tarball and use it.
The “debmake -t” command is designed to run in the package/ directory hosting the upstream VCS. Unless you provide the upstream version with the -u option or with the debian/changelog file, a snapshot upstream version is generated in the 0\~%y%m%d%H%M format, e.g., 0~1403012359, from the UTC date and time. The generated tarball excludes the debian/ directory found in the upstream VCS. (It also excludes typical VCS directories: .git/, .hg/, .svn/, .CVS/.)
set the binary package specs by a comma separated list of binarypackage:type pairs. Here, binarypackage is the binary package name, and the optional type is chosen from the following type values:
The pair values in the parentheses, such as (any, foreign), are the Architecture and Multi-Arch stanza values set in the debian/control file. In many cases, the debmake command makes good guesses for type from binarypackage. If type is not obvious, type is set to bin.
Here are examples for typical binary package split scenarios where the upstream Debian source package name is foo:
Generating an executable binary package foo:
Generating an executable (python3) binary package python3-foo:
Generating a data package foo:
Generating a executable binary package foo and a documentation one foo-doc:
Generating a executable binary package foo, a library package libfoo1, and a library development package 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.
invoke "buildtool" at the end of execution. buildtool may be “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.
The default is to add COPYING and LICENSE, and license_file needs to list only the additional file names all separated by “,”.
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.
The addon values are listed all separated by “,”, e.g., “-w "python3,autoreconf"”.
For Autotools based packages, autoreconf as addon to run “autoreconf -i -v -f” for every package building is default behavior of the dh(1) command.
For Autotools based packages, if they install Python (version 3) programs, setting python3 as addon to the debmake command argument is needed since this is non-obvious. But for pyproject.toml based Python packages, setting python3 as addon to the debmake command argument is not needed since this is obvious and the debmake command automatically set it to the dh(1) command.
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.
Some configuration template files are generated with the extra .ex suffix to ease their removal. To activate these, rename their file names to the ones without the .ex suffix and edit their contents. Existing configuration files are never overwritten. If you wish to update some of the existing configuration files, please rename them before running the debmake command and manually merge the generated configuration files with the old renamed ones.
For a well behaving source, you can build a good-for-local-use installable single Debian binary package easily with one command. Test install of such a package generated in this way offers a good alternative to the traditional “make install” command installing into the /usr/local directory since the Debian package can be removed cleanly by the “dpkg -P '…'” command. Here are some examples of how to build such test packages. (These should work in most cases. If the -d option does not work, try the -t option instead.)
For a typical C program source tree packaged with 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.
Although debmake is meant to provide template files for the package maintainer to work on, actual packaging activities are often performed without using debmake while referencing only existing similar packages and “Debian Policy Manual”. All template files generated by debmake are required to be modified manually.
There are 2 positive points for debmake:
Please double check copyright with the licensecheck(1) command.
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]*
See the exact definition in “Chapter 5 - Control files and their fields” in the “Debian Policy Manual”.
debmake assumes relatively simple packaging cases. So all programs related to the interpreter are assumed to be “Architecture: all”. This is not always true.
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
logging
para.py
logging
checkdep5.py
check_format_style()
logging
checkdep5.py
split_years_name()
logging
checkdep5.py
parse_lines()
1 logging — content_state scan loop:
begin-loop
checkdep5.py
parse_lines()
2 logging — content_state scan loop: after
regex match
checkdep5.py
parse_lines()
3 logging — content_state scan loop:
end-loop
checkdep5.py
parse_lines()
4 logging — print author/translator section
text
checkdep5.py
check_all_license()
1 logging — input filename for the
copyright scan
checkdep5.py
check_all_license()
2 logging — print license section
text
checkdep5.py
check_all_license()
3 logging — print copyright section
text
checkdep5.py
check_all_license()
4 logging — sort key for
debian/copyright stanza
sed.py
logging
cat.py
logging
kludge.py
logging
(“debmake -k”)
Use this feature as:
$ DEBUG=ipsybmeaflckrwn debmake ...
See README.developer in the source for more.
Copyright © 2014-2024 Osamu Aoki <osamu@debian.org>
The debmake-doc package provides the “Guide for Debian Maintainers” in plain text, HTML and PDF formats under the /usr/share/doc/debmake-doc/ directory.
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.