第12章 Tool usages

目次

12.1. debdiff
12.2. dget
12.3. mk-origtargz
12.4. origtargz
12.5. git deborig
12.6. dpkg-source -b
12.7. dpkg-source -x
12.8. debc
12.9. piuparts
12.10. bts

Here are some notable tools around Debian packaging.

[注記]注記

The description in this section is too terse to be useful for most of the prospective maintainers. This is the intentional choice of the author. You are highly encouraged to search and read all the pertinent documents associated with the commands used.

[注記]注記

Examples here use the gz-compression. The xz-compression may be used instead.

You can compare file contents in two source Debian packages with the debdiff command.

$ debdiff old-package.dsc new-package.dsc

You can also compare file lists in two sets of binary Debian packages with the debdiff command.

$ debdiff old-package.changes new-package.changes

これらのコマンドは、ソースパッケージ中でどんな変更をしたのか、バイナリーパッケージの中で意図せず削除したり配置を間違えたりしていないか、そしてバイナリーパッケージの更新時に不用意な変更をしていないかどうか、といった事柄を確認するのに便利です。

Debian now enforces the source-only upload when developing packages. So there may be 2 different *.changes files:

  • package_version-revision_source.changes for the normal source-only upload
  • package_version-revision_arch.changes for the binary upload

You can download the set of files for the Debian source package with the dget command.

$ dget https://www.example.org/path/to/package_version-rev.dsc

You can make the upstream tarball ../foo-newversion.tar.[xg]z accessible from the Debian source tree as ../foo_newversion.orig.tar.[xg]z.

You can fetch the pre-existing orig tarball of a Debian package from various sources, and unpack it with origtargz command.

This is basically for -2, -3, …​ revisions.

If the upstream project is hosted on a Git repository without the official release of tarball, you can generate its orig tarball from the git repository for use by the Debain source package. Please, execute git deborig from the root of the checked-out source tree.

This is basically for -1 revisions.

The dpkg-source -b command packs the upstream source tree into the Debian source package.

It expects a series of patches in the debian/patches/ directory and their application sequence in debian/patches/series.

It is compatible with dquilt (see quilt setup」」) operations and understands the the patch application status from the existance of .pc/applied-patches.

The dpkg-buildpackage command invokes dpkg-source -b.

The dpkg-source -x command extracts source tree and applies the patches in the debian/patches/ directory using the sequence specified in debian/patches/series to the upstream source tree. It also adds .pc/applied-patches. (See 「Patch applied Git repository」」.)

The dpkg-source -x --skip-patches command extracts source tree only. It doesn’t add .pc/applied-patches. (See 「Patch unapplied Git repository」.)

Both extracted source trees are ready for building Debian binary packages with dpkg-buildpackage, dbuild, sbuild, etc..

You should install generated packages with the debc command to test it locally.

$ debc package_version-rev_arch.changes

You should install generated packages with the piuparts command to test it automatically.

$ sudo piuparts package_version-rev_arch.changes
[注記]注記

This is a very slow process with remote APT package repository access.

After uploading the package, you will receive bug reports. It is an important duty of a package maintainer to manage these bugs properly as described in 5.8. Handling bugs」 of the Debian Developer’s Reference.

The bts command is a handy tool to manage bugs on the Debian Bug Tracking System.

$ bts severity 123123 wishlist , tags -1 pending