第16章 debmake options

# 第16章 debmake options

Here are some additional explanations for debmake options.

## 16.1. Shortcut option (-i)

The debmake command offers a shortcut option.

- -i : execute script to build the binary package

The example in the above 「5章Simple packaging」 can be done simply as follows.

    [base_dir] $ debmake package-1.0.tar.xz -i debuild

| ヒント
A URL such as 「https://www.example.org/DL/package-1.0.tar.xz」 for a tarball, 「https://github.com/username/package.git」 for a git repository, or 「/path/to/source_dir」 for a local source tree may be used as an argument.

## 16.2. debmake -b

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

- Package:
- Architecture: (e.g. amd64)
- Multi-Arch: (see 「「マルチアーチ」」)
- Depends:
- Pre-Depends:

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

Let’s quote the pertinent part from the debmake manpage here.

-b, --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: Library development package (any, same) (alias: de)
  - doc: Documentation package (all, foreign) (alias: do)
  - lib: Library package (any, same) (alias: l)
  - perl: Perl script package (all, foreign) (alias: pl)
  - python3: Python (version 3) script package (all, foreign) (alias: py3, python, py)
  - ruby: Ruby script package (all, foreign) (alias: rb)
  - nodejs: Node.js based JavaScript package (all, foreign) (alias: js)
  - script: Shell and other interpreted 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'」

  If the source tree contents do not match settings for type, the debmake command warns you.

## 16.3. debmake -B

The debmake command invoked with the -B option can generate template files with .ex suffix. This is handy if you want to see auto-generated template files to the existing ones.

## 16.4. debmake -x

The amount of template files generated by the debmake command depends on the -x[01234] option.

- See 「「Cherry-pick templates」」 for cherry-picking of the template files.

| 注記
None of the existing configuration files are modified by the debmake command.

第15章 debmake(1) manpage |  |