Debian 新メンテナガイド

1

文中では、squeeze のシステムを使っていると想定しています。この文書を lenny のシステム用として読みたいのであれば、少なくともバックポートされた dpkg および debhelper パッケージをインストールする必要があります。

2

dh-make-perldh-make-phpなどのように、同様ではありますが、特定目的に特化したパッケージもわずかにあります。

3

(訳注)日本語版は developers-reference

4

とはいっても、パッケージ化する価値のある新しいプログラムはいつだって存在するでしょう。

5

ファイルの拡張子で足りなければ、file コマンドを使ってアーカイブ形式を判別することができます。

6

このプログラムはすでにパッケージ化されています。現在のバージョンは 0.15.3 で、以下の例にあるバージョン 0.9.12 とは大幅に変更されています。

7

Autotools Tutorial/usr/share/doc/autotools-dev/README.Debian.gz を参照してください。

8

バージョン文字列は、"dpkg --compare-versions ver1 op ver2" として比較できます。dpkg(1) のマニュアルページを参照してください。

9

以下の文章はあなたが Bash をあなたのログインシェルとして使っていると仮定しています。Z シェルのような他のログインシェルを用いている場合 ~/.bashrcと代えてそれに適当な設定ファイルを使って下さい。

10

上流のソースが debian ディレクトリとその中身を提供している場合は、かわりに dh_make コマンドを --addmissing オプションをつけて実行してください。新しい 3.0 (quilt) 形式のソースはとても堅牢なので、こういったパッケージでも壊すことはありません。自分の Debian パッケージ用に、アップストリームで提供されている内容を更新する必要があるかもしれません。

11

ここでの選択肢はわずかです。"s" は "Single binary (単一のバイナリ)"、"i は "Arch-Independent(アーキテクチャ非依存)"、"m" は "Multiple binary (複数のバイナリ)、"l" は "Library (ライブラリ)"、"k" は "Kernel module (カーネルモジュール)"、"n" は "Kernel patch (カーネルパッチ)"、"b" は "cdbs" です。このドキュメントでは、dh コマンドで debhelper パッケージを使うのに重点を置いています。

12

この設定を無効にするには、quiltコマンドを "quilt --quiltrc /dev/null ..." として実行すれば良いです。

13

前に説明したように dh_make を実行していれば、debian/patchesディレクトリはもう存在しているはずです。この操作例では、既存のパッケージを更新している場合に合わせて作成しています。

14

複数バイナリパッケージでは、dh_auto_install コマンドはdebian/tmp を一時ディレクトリとして使いますが、dh_install コマンドは debian/package-1.installdebian/package-2.install ファイルによって、debian/tmp の中身を debian/package-1debian/package-2 一時ディレクトリに分配することで複数バイナリ *.deb パッケージを作成します。

15

これは Makefile ファイルがこうなっているべきである、ということを示すための例にすぎません。Makefile ファイルが ./configure コマンドで作成されているなら、この手の Makefile を修正する正しい方法は、dh_auto_configure コマンドに --prefix=/usr を含むデフォルトのオプションを与えて、./configure コマンドを実行させることです。

16

libncurses パッケージが libcurses.so シンボリックリンクを持っていることを考えると、これが最適な例ではないと著者は思うのですが、よりよい例を思いつきません。提案をもらえるとありがたいです :-)

17

この、少し変わった状況はDebian Policy Manual, Footnotes 48で詳しく説明されている機能です。これは、 debian/rulesファイル内のdhコマンドではなく、dpkg-buildpackageに起因します。同様の状況はauto build system for Ubuntuにも当てはまります。

18

共有VSCを更新する時に、間違ってパッケージがアップロードされないように、UNRELEASEDなどの無効なディストリビューションの値を設定する人もいます。

19

このターゲットは例えば、完全な(再)構築, 第 6.1 節などで、"dpkg-buildpackage"が使用します。

20

このターゲットは例えば、Autobuilder, 第 6.2 節などで、"dpkg-buildpackage -B"が使用します。

21

このターゲットは、 "dpkg-buildpackage -A"が使用します。

22

これは新しいdebhelper V7の機能です。このデザインコンセプトはNot Your Grandpa's DebhelperDebconf9でdebhelper上流によって提示されました。lennyでは、必須となる明示されたターゲットごとに、もっと複雑なrulesファイルとdh_*スクリプトを量産し、最初にパッケージ化する際に、各状態に凍結していました。新しいdhコマンドは、もっとシンプルで、旧来の制約に縛られません。その上、override_dh_*ターゲットでカスタマイズする利便性は失われていません。詳しくはrules ファイルのカスタマイズ, 第 4.4.3 節を参照してください。これは、debhelperパッケージがもとになっており、cdbsのようにパッケージをビルドするプロセスを複雑化することはありません。

23

target変数で呼び出され、dh_*プログラムが実際に実行するシーケンスは、プログラムを走らせなくても"dh --no-act target" や、"debian/rules -- '--no-act target'"コマンドで確認することができます。

24

python-support がインストールされているという前提で

25

dh_*スクリプトが、実際に何をして、どのようなオプションがあるのかを知りたい場合は、debhelper のマニュアルにある該当ページを参照してください。

26

"dh_auto_build --list"

27

Makefile中の

distcleanrealcleancleanのうち、最初に利用可能なものを実行します。

28

実際には、Makefile中のtestcheckのうち、最初に利用可能なものを実行します。

29

もし、パッケージが /usr/share/perl5/Debian/Debhelper/Sequence/custom_name.pmファイルをインストールする場合、そのカスタマイズの機能を "dh --with custom-name $@"で有効にしなければなりません。

30

dh_pycentralコマンドよりもdh_pysupportコマンドが好まれます。dh_pythonコマンドは使用しないでください。

31

lennyでは、dh_*スクリプトの挙動を変えたい場合、rulesファイル内の該当する行を見つけ出し、調整していました。

32

gentooパッケージはAutotoolsとしても知られているGNU build systemを使用します。詳細はhttp://en.wikipedia.org/wiki/GNU_build_systemを参照してください。

33

引数なしのdh_auto_buildは、Makefileの最初のターゲットを実行します。

34

debian/changelogdebian/NEWS は常に自動でインストールされます。上流のチェンジログファイルは、ファイル名を小文字に変換し、changelogchangeschangelog.txtchanges.txtのいずれかと一致するものを検索します。

35

filesファイルによって、dh_movefiles(1)コマンドが設定され、置換されます。

36

/usr/share/packageディレクトリにドキュメントがあるにも関わらず、

コマンドがinfoページを見つけられない場合は、help2manコマンドで生成されたページを直接編集します。

37

squeeze向けに、大規模なメニュー構造の見直しが行われました。

38

ここでは簡略化するために"{postpre}{instrm}"にBashを使っていますが、maintainer scriptsには、互換性の観点から、可能な限りPOSIX(Bashではない)シェルを使うべきでしょう。

39

ソースの書式を3.0 (quilt) and 3.0 (native)に移行する際の注意点などは、DebSrc3.0 にまとまっています。

40

この新しいフォーマットは、複数の上流のtar玉などもっと多くの圧縮方法をサポートしています。詳細は本稿の範疇を超えるため割愛します。

41

パッチセットをメンテナンスするためのいくつかの方法が提案され、Debianパッケージで使われていますが、quiltが推奨されています。他には、dpatchdbscdbs、などがあります。これらの方法は、大抵debian/patches/*ファイルでパッチを管理しています。

42

スポンサーにパッケージのアップロードを頼む時にも、あなたが加えた変更に対するこのような明確な分離とドキュメントは、スポンサーによるパッケージのレビューを促進させるためにも、非常に重要です。

43

3.0 (quilt)ソースフォーマットで

quiltパッチを当てないようにするには、上記コマンドに--skip-patchesオプションをつけて実行します。または、通常の工程の後に、"quilt pop -a"を実行する方法もあります。

44

実際の autobuilder システムは、本稿の説明よりもかなり複雑なスキームによって実現しています。それらの詳細は、本稿の範囲を超えるため割愛します。

45

pbuilderパッケージとは違い、オートビルダーによって使用されるsbuildパッケージ下でのchroot環境では、最小構成を強制しないので、多くのパッケージがインストールされたままになるかもしれません。

46

pbuilderパッケージはまだ進化の過程なので、実際の構成は、公式ドキュメントで確認して下さい。

47

HOOKDIR="/var/cache/pbuilder/hooks"に設定した場合。フックスクリプトのサンプルは/usr/share/doc/pbuilder/examples ディレクトリににあります。

48

stable パッケージのそのようなアップデートには制限が課せられます。

49

上級者のみなさんのためになるウェブ上で閲覧できる資料です。

50

その場合は、通常だと正しく設定される環境変数は設定されません。アップロード用のパッケージはこの簡易メソッドで生成しないでください。

51

/etc/devscripts.conf~/.devscripts において debuildコマンド, 第 6.4 節 で述べた設定をしている場合には、lintian-i -I --show-overrides オプションを指定する必要はありません。

52

dput パッケージは、より多くのフィーチャーがあり dupload パッケージより人気が出てきています。それは、/etc/dput ファイルをグローバル設定に用い、 ~/.dput.cf ファイルをユーザー毎の設定に用います。更にそれは、そのままUbuntu関連のサービスもサポートします。

53

ftp://ftp.upload.debian.org/pub/UploadQueue/README参照。これに代わる方法として、dput パッケージ中にある dcut コマンドを用いること模できます。

54

もしパッケージ foo が旧 1.0 フォーマットでパッケージされている場合は、新規に展開されたソース中で "zcat /path/to/foo_oldversion.diff.gz|patch -p1" を実行すれば出来ます。

55

もし uscan コマンドが更新されたソースはダウンロードするが uupdate コマンドを実行しない場合には、URLの最後に "debian uupdate" となるように debian/watch ファイルを修正するべきです。

56

もしあなたのスポンサーや他のメンテナが既存のパッケージスタイル更新に異存がある場合には、更新することもまたその議論することも意味がありません。他にするべきより重要なことがあります。

57

cdbs (0.4.74) パッケージ中に、 cdbs以外の選択をした際の dh_make コマンドにより生成される rules ファイルに関する否定的記述があります。心配無用です。それは dh_* コマンドの長いリストを明示的ターゲットとして生成した lenny にのみ当てはまります。

58

splitdiff コマンドを用いると big.diff は多くの小さな増分パッチに分割できます。


Debian 新メンテナガイド

version 1.2.25, 2010-12-21 14:06:56 UTC

Josip Rodin joy-mg@debian.org

翻訳:倉澤 望 nabetaro@debian.or.jp
翻訳:八津尾 雄介 yyatsuo@gmail.com
翻訳:佐々木 洋平 uwabami@gfd-dennou.org
翻訳:倉敷 悟 lurdan@gmail.com
翻訳:青木 修 osamu@debian.org