Глава 15. debmake options

Содержание

15.1. Shortcut options (-a, -i)
15.2. debmake -b
15.3. debmake -cc
15.4. Snapshot upstream tarball (-d, -t)
15.5. debmake -j
15.6. debmake -k
15.7. debmake -P
15.8. debmake -T
15.9. debmake -x

Here are some additional explantion for debmake options.

Команда debmake предлагает 2 опции для выполнения быстрых действий.

  • -a : открыть tar-архив основной ветки
  • -i : выполнить сценарий для сборки двоичного пакета

Действия из примера, приведённого выше в «Глава 5, Simple packaging», можно выполнить с помощью следующей простой команды.

 $ debmake -a package-1.0.tar.gz -i debuild
[Подсказка]Подсказка

A URL such as «https://www.example.org/DL/package-1.0.tar.gz» may be used for the -a option.

[Подсказка]Подсказка

A URL such as «https://arm.koji.fedoraproject.org/packages/ibus/1.5.7/3.fc21/src/ibus-1.5.7-3.fc21.src.rpm» may be used for the -a option, too.

The debmake command with the -b option provides an intuitive and flexible method to create the initial template debian/control file defining the split of the Debian binary packages with following stanzas:

The debmake command also sets an appropriate set of substvars used in each pertinent dependency stanza.

Ниже приводится цитата соответствующей части страницы руководства debmake.

-b "binarypackage[:type],…​", --binaryspec "binarypackage[:type],…​"

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:

  • bin: C/C++ compiled ELF binary code package (any, foreign) (default, alias: "", i.e., null-string)
  • data: Data (fonts, graphics, …​) package (all, foreign) (alias: da)
  • dev: пакет с библиотекой разработки (any, same) (псевдоним: de)
  • doc: пакет документации (all, foreign) (псевдоним: do)
  • lib: пакет с библиотекой (any, same) (псевдоним: l)
  • perl: пакет со сценарием на языке Perl (all, foreign) (псевдоним: pl)
  • python3: Python (version 3) script package (all, foreign) (alias: py3, python, py)
  • ruby: пакет со сценарием на языке Ruby (all, foreign) (псевдоним: rb)
  • nodejs: Node.js based JavaScript package (all, foreign) (alias: js)
  • script: Shell and other interpretted language script package (all, foreign) (alias: sh)

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:

    • «-b’foo:bin'», or its short form `-b'-'`", or no -b option
  • Generating an executable (python3) binary package python3-foo:

    • «-b’python3-foo:py'», or its short form «-b’python3-foo'»
  • Generating a data package foo:

    • «-b’foo:data'», or its short form «-b'-:data'»
  • Generating a executable binary package foo and a documentation one foo-doc:

    • «-b’foo:bin,foo-doc:doc'», or its short form «-b'-:-doc'»
  • Generating a executable binary package foo, a library package libfoo1, and a library development package libfoo-dev:

    • «-b’foo:bin,libfoo1:lib,libfoo-dev:dev'» or its short form «-b'-,libfoo1,libfoo-dev'»

Если содержимое дерева исходного кода не совпадает с настройками поля тип, то команда debmake выводит предупреждение.

The debmake command with the -cc option can make a summary of the copyright and license for the entire source tree to standard output.

 $ tar -xvzf package-1.0.tar.gz
 $ cd package-1.0
 $ debmake -cc | less

Опция -c позволяет получить более краткий отчёт.

This test building scheme is good for the git repository organized as described in gbp-buildpackage(7) which uses the master, upstream, and pristine-tar branches.

The upstream snapshot from the upstream source tree in the upstream VCS can be made with the -d option if the upstream supports the «make dist» equivalence.

 $ cd /path/to/upstream-vcs
 $ debmake -d -i debuild

С другой стороны, то же самое можно сделать с помощью опции -t в том случае, если с помощью команды tar можно создать tar-архив основной ветки.

 $ cd /path/to/upstream-vcs
 $ debmake -p package -t -i debuild

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.

If the upstream VCS is hosted in the package/ directory instead of the upstream-vcs/ directory, the «-p package» can be skipped.

If the upstream source tree in the VCS contains the debian/* files, the debmake command with either the -d option or the -t option combined with the -i option automates the making of a non-native Debian package from the VCS snapshot while using these debian/* files.

 $ cp -r /path/to/package-0~1403012359/debian/. /path/to/upstream-vcs/debian
 $ dch
   ... update debian/changelog
 $ git add -A .; git commit -m "vcs with debian/*"
 $ debmake -t -p package -i debuild

This non-native Debian binary package building scheme without the real upstream tarball is considered as the quasi-native Debian package. See «Раздел 10.13, «Quasi-native Debian packaging»».

This is an experimental feature.

The generation of a functioning multi-binary package always requires more manual work than that of a functioning single binary package. The test build of the source package is the essential part of it.

Например, создадим пакет из того же архива package-1.0.tar.gz (см. «Глава 5, Simple packaging») с поддержкой набора из нескольких двоичных пакетов.

  • Запустите команду debmake с опцией -j для выполнения тестовой сборки и создания отчёта.

     $ debmake -j -a package-1.0.tar.gz
  • Check the last lines of the package.build-dep.log file to judge build dependencies for Build-Depends. (You do not need to list packages used by debhelper, perl, or fakeroot explicitly in Build-Depends. This technique is useful for the generation of a single binary package, too.)
  • Проверьте содержимое файла пакет.install.log для определения путей установки файлов, чтобы решить, как разделить эти файлы на несколько пакетов.
  • Начните работу над пакетом с помощью команды debmake.

     $ rm -rf package-1.0
     $ tar -xvzf package-1.0.tar.gz
     $ cd package-1.0
     $ debmake -b"package1:type1, ..."
  • Обновите файлы debian/control и debian/двоичныйпакет.install, используя полученную выше информацию.
  • При необходимости обновите другие файлы debian/*.
  • Build the Debian package with the debuild command or its equivalent.

     $ debuild
  • All binary package entries specified in the debian/binarypackage.install file are generated as binarypackage_version-revision_arch.deb.
[Примечание]Примечание

The -j option for the debmake command invokes dpkg-depcheck(1) to run debian/rules under strace(1) to obtain library dependencies. Unfortunately, this is very slow. If you know the library package dependencies from other sources such as the SPEC file in the source, you may just run the "debmake …​" command without the -j option and run the «debian/rules install» command to check the install paths of the generated files.

This is an experimental feature.

При обновлении пакета до нового выпуска основной ветки команда debmake может проверить содержимое существующего файла debian/copyright и сравнить его с информацией об авторских правах и лицензировании для всего обновлённого дерева исходного кода целиком.

 $ cd package-vcs
 $ gbp import-orig --uscan --pristine-tar
 ... update source with the new upstream release
 $ debmake -k | less

The «debmake -k» command parses the debian/copyright file from the top to the bottom and compares the license of all the non-binary files in the current package with the license described in the last matching file pattern entry of the debian/copyright file.

При редактировании автоматически созданного файла debian/copyright убедитесь, что наиболее общие шаблоны файлов помещены в верхней части списка.

[Подсказка]Подсказка

For all new upstream releases, run the «debmake -k» command to ensure that the debian/copyright file is current.

Команда debmake, запущенная с опцией -P, педантично проверяет создаваемые автоматически файлы на предмет наличия текста об автоских правах и лицензировании, даже если они подпадают под действие разрешительной лицензии.

This option affects not only the content of the debian/copyright file generated by normal execution, but also the output by the execution with the -k, -c, -cc, and -ccc options.

The debmake command invoked with the -T option additionally prints verbose tutorial comment lines. The lines marked with ### in the template files are part of the verbose tutorial comment lines.

Количество шаблонных файлов, создаваемых командой debmake зависит от опции -x[01234].

[Примечание]Примечание

Команда debmake не меняет ни один из существующих файлов настройки.