Provided by: debhelper_11.1.6ubuntu2_all bug

名前

       debhelper - debhelper 関連ツール群

書式

       dh_* [-v] [-a] [-i] [--no-act] [-ppackage] [-Npackage] [-Ptmpdir]

説明

       debhelper は、Debian パッケージのビルドを容易にするために使われます。debhelper の根底にあ
       る考えは「パッケージビルド時の各種の共通的な作業を自動化するために debian/rules で用いられ
       ている、小さく単純で、容易に理解可能なツールをまとめて提供すること」です。つまり、あな
       た=パッケージを作成する人の負担を減らします。さらに、Debian ポリシーが変わった場合にはこ
       のツール群を多少変更さえすれば、debhelper を使っているパッケージが新しいポリシーに適合する
       のに必要になるのは、再ビルドだけになります。

       debhelper を利用している典型的な debian/rules ファイルは、複数の debhelper コマンドを順番
       に呼び出しているか、dh(1) を使って一連の処理を自動化しています。debhelper を使った rules
       ファイルの例は /usr/share/doc/debhelper/examples/ にあります。

       debhelper を使って Debian パッケージを作成するには、サンプルの rules ファイルのどれかをコ
       ピーして手で修正するだけです。あるいは dh-make パッケージを利用してみてください。このパッ
       ケージには部分的に作業を自動化してくれる dh_make コマンドが含まれています。よりやさしい案
       内については、maint-guide-ja パッケージに debhelper を使って初めてパッケージを作る人向けの
       チュートリアルが含まれています。

       Except where tool explicitly denotes otherwise, all of the debhelper tools assumes that
       they run from root directory of an unpacked source package.  This is so they can locate
       find debian/control and debian/compat when needed.

DEBHELPER コマンド

       以下が利用可能な debhelper コマンドの一覧です。詳細は、各コマンド付属の man ページを参照し
       てください。

       dh_auto_build(1)
           自動的にパッケージをビルドする

       dh_auto_clean(1)
           ビルド後、自動的にビルドディレクトリを消去する

       dh_auto_configure(1)
           パッケージビルド前に自動的に configure を行う

       dh_auto_install(1)
           make install や類似コマンドを自動的に実行する

       dh_auto_test(1)
           パッケージのテストスイートを自動的に実行する

       dh_bugfiles(1)
           カスタマイズされたバグレポート用ファイルをインストールする

       dh_builddeb(1)
           Debianバイナリパッケージのビルドを行う

       dh_clean(1)
           パッケージビルドディレクトリを消去する

       dh_compress(1)
           ビルドディレクトリでファイル圧縮とシンボリックリンクの修正を行う

       dh_fixperms(1)
           パッケージビルドディレクトリ内のファイル権限を修正する

       dh_gconf(1)
           GConf デフォルトファイルをインストールし、スキーマに登録する

       dh_gencontrol(1)
           control ファイルを生成し、インストールする

       dh_icons(1)
           Freedesktop 規格のアイコンキャッシュを更新する

       dh_install(1)
           パッケージビルドディレクトリにファイルをインストールする

       dh_installcatalogs(1)
           SGML カタログファイルをインストール・登録する

       dh_installchangelogs(1)
           ビルドディレクトリに changelog をインストールする

       dh_installcron(1)
           cron スクリプトを etc/cron.* へインストールする

       dh_installdeb(1)
           DEBIAN ディレクトリにファイルをインストールする

       dh_installdebconf(1)
           ビルドディレクトリの debconf が使うファイルをインストールする

       dh_installdirs(1)
           パッケージビルドディレクトリ以下にサブディレクトリを作成する

       dh_installemacsen(1)
           Emacsのアドオンパッケージを登録する

       dh_installifupdown(1)
           if-up と if-down フックをインストールします

       dh_installinfo(1)
           info ファイルをインストールする

       dh_installlogcheck(1)
           etc/logcheck/ に logcheck 用ルールファイルをインストールする

       dh_installlogrotate(1)
           logrotate用設定ファイルをインストールする

       dh_installmenu(1)
           ビルドディレクトリへ Debian メニューファイルをインストールする

       dh_installmime(1)
           mime ファイルをビルドディレクトリへインストールする

       dh_installmodules(1)
           カーネルモジュールを登録する

       dh_installpam(1)
           pam サポートファイルをインストールする

       dh_installppp(1)
           ppp 用の ip-up, ip-down ファイルをインストールする

       dh_installudev(1)
           udev 用ルールファイルをインストールする

       dh_installwm(1)
           ウィンドウマネージャを登録する

       dh_installxfonts(1)
           X 用フォント群の登録を行う

       dh_link(1)
           パッケージビルドディレクトリ内でシンボリックリンクを作成する

       dh_lintian(1)
           ビルドディレクトリに lintian への override ファイルをインストールする

       dh_listpackages(1)
           debhelper が処理するバイナリパッケージの一覧を列挙する

       dh_makeshlibs(1)
           自動的に shlibs ファイルを作成し、dpkg-gensymbols を呼び出す

       dh_md5sums(1)
           DEBIAN/md5sums ファイルを生成する

       dh_movefiles(1)
           debian/tmp からサブパッケージへファイルを移動する

       dh_perl(1)
           Perlへの依存関係を検討し、MakeMaker 実行後に生成したものを消去する

       dh_prep(1)
           バイナリパッケージビルドの事前準備として諸々の消去を行う

       dh_shlibdeps(1)
           共有ライブラリの依存関係を計算する

       dh_strip(1)
           実行ファイル、共有ファイル、静的ライブラリのデバッグ情報を削る

       dh_testdir(1)
           Debian パッケージをビルドする前にディレクトリの状態を検証する

       dh_usrlocal(1)
           usr/local ディレクトリをメンテナスクリプトへ移行する

   廃止されたコマンド一覧
       廃止されており、使うべきでない debhelper コマンド一覧

       dh_installmanpages(1)
           古いスタイルの man ページのインストール用プログラム (廃止)

   他のコマンド
       プログラムの名前が dh_ で始まり、先のリストにないものは、debhelper パッケージ付属のプログ
       ラムではありません。しかし、このような名前を持つコマンドは、このページに記述されている他の
       プログラムのように動作するべきです。

DEBHELPER 設定ファイル

       debhelper のコマンドの多くは、どのように動作するかについて debian/ ディレクトリ以下にある
       ファイルを用います。共通の debian/changelogdebian/control はすべてのパッケージに存在し
       ていますが、これに加えて特定の debhelper コマンドの動作を制御できる追加ファイルがありま
       す。これらのファイルは、大抵 debian/package.foo というファイル名です (もちろん、package は
       処理しようとしているパッケージ名に変えてください)。

       例えば、dh_installdocs では、インストールするドキュメントの一覧を得るのに
       debian/package.docs という名前のファイルを利用します。各コマンドが使うファイルの名前と
       フォーマットについては、詳細はコマンドの man ページを参照してください。大抵、これらのファ
       イルでは1行ごとに処理するファイルを1つずつ列挙します。いくつかの debhelper プログラムで
       は、ファイルと宛先の組み合わせや、もう少々複雑なフォーマットなどを使います。

       debian/control に記載されている最初の (あるいは唯一の) バイナリパッケージは、debhelper は
       debian/package.foo ファイルが無い場合には debian/foo ファイルを利用します。

       稀ではありますが、これらのファイルを、異なるアーキテクチャ/異なる OS 用にそれぞれ用意した
       い場合があります。ファイル名が debian/package.foo.ARCH や、debian/package.foo.OS のものが
       存在すると、"dpkg-architecture -qDEB_HOST_ARCH" / "dpkg-architecture -qDEB_HOST_ARCH_OS"
       でそれぞれ指定した ARCHOS を含むものが、通常のファイルよりも優先的に使われます。

       多くの場合、これらの設定ファイルは、いろいろな種類のファイルを列挙して指定するのに使われま
       す。例えばインストールすべきドキュメントやサンプルファイルであったり、移動すべきファイル
       だったり等となります。シェルのワイルドカード文字列 (?, * 及び [..] 文字クラス) をファイル
       に含める事ができ、状況次第ではこちらが望ましい事もあります。また、行頭がB <#> で始まる行は
       無視される事を利用して、コメントを記載できます。

       これらファイルの文法は、読解・修正しやすいよう、意図的にシンプルにしてあります。もし、さら
       に強力で複雑な事をしたければ、これらのファイルに実行権限を付与し、状況にあった出力をするプ
       ログラムを作成してください。ただし、この場合の出力結果では、後の処理でワイルドカードは展開
       されず、コメントも取り除かれない事に気をつけてください。

DEBHELPER 間で共有されるオプション

       以下のコマンドラインオプションは、全ての debhelper プログラムでサポートされています。

       -v, --verbose
           冗長出力モード。パッケージビルドディレクトリを変更するようなコマンドを全て表示します。

       --no-act
           実際の処理を行いません。-v オプションと併用すると、コマンドがどのような処理を行うかが
           出力されます。

       -a, --arch
           アーキテクチャ依存パッケージを、DEB_HOST_ARCH アーテキクチャ向けにビルドするように動作
           します。

       -i, --indep
           全てのアーキテクチャ非依存パッケージに対して処理を行います。

       -ppackage, --package=package
           package で指定されたパッケージに対して処理を行います。複数のパッケージを debhelper に
           処理させる際には、繰り返し列挙して指定してください。

       -s, --same-arch
           廃止された -a のエイリアスです。

           This option is removed in compat 12.

       -Npackage, --no-package=package
           -a, -i, -p オプションで処理すべきパッケージとして対象としていても、指定されているパッ
           ケージについては処理を行わないようにします。

       --remaining-packages
           この debhelper コマンドにより、すでに処理済のパッケージについては処理をしないようにし
           ます (つまり、debhelper のログにコマンドの記録があるものは処理しない)。例えば、いくつ
           かのバイナリパッケージだけに対して特別なオプション付きでコマンドを呼び出し、残りのパッ
           ケージに対しては本オプションをつけてコマンドを呼び出し、デフォルト設定による処理を行う
           という事ができます。

       --ignore=file
           特定のファイルを無視します。debian/ 以下に実際には debhelper コマンドが実行しては困る
           ような debhelper 設定ファイルがあるような時に利用できます。ただ、debian/compat,
           debian/control, debian/changelog は無視する事ができません。これは動作の都合上、これら
           のファイルを無視するわけにはいかないからです。

           例えば、開発元 (upstream) が debian/init を提供しているが dh_installinit でインストー
           ルして欲しくは無い場合、--ignore=debian/init を使うことになります。

       -Ptmpdir, --tmpdir=tmpdir
           tmpdir をパッケージビルドディレクトリとして利用します。デフォルトでは debian/package
           ディレクトリが使われます。

       --mainpackage=package
           このあまり使われないオプションは、debhelper コマンドが "main package" とみなすパッケー
           ジ、つまり、debian/control の最初に記載されたパッケージを変更するものです。これによ
           り、通常の debian/package.foo ファイルではなく debian/foo ファイルが使われるようになり
           ます。

       -O=option|bundle
           これは、実行するすべてのコマンドへユーザー指定のオプションを渡す際に dh(1) が利用しま
           す。コマンドが指定のオプションをサポートしている、あるいは内蔵している場合は、オプショ
           ンは効果を発揮します。コマンドが指定されたオプションをサポートしていない場合 (あるい
           は、内蔵しているオプションにない場合)、オプションは無視されます。

DEBHELPER の共通オプション

       以下のコマンドラインオプションが、debhelper プログラムのうち複数でサポートされています。「
       オプションが何を意味するか」という完全な説明は、各コマンドの man ページを参照してくださ
       い。

       -n  postinst, postrm 等のスクリプトに変更を加えません。

       -Xitem, --exclude=item
           item を処理対象から除外します。複数の item を除外するためにこのオプションを複数指定し
           て使う。ことができます。通常、\fIitem\fR はファイル名の一部で、指定されたテキストが含
           まれるファイルはすべて除外されます。

       -A, --all
           コマンドラインで指定したファイル、あるいは他の item について、最初のパッケージだけでな
           く全パッケージに対して処理を行います。

ビルドシステム用オプション

       以下のコマンドラインオプションが、すべての dh_auto_* の debhelper プログラムによってサポー
       トされています。これらのプログラム群は様々なビルドシステムをサポートしており、通常の場合は
       推定によって、どのビルドシステムがどのように使われるかを決定します。これらのコマンドライン
       オプションを使って、デフォルトの動作を override することが可能です。大抵の場合は、これらの
       オプションはまず dh(1) に渡され、それからすべての dh_auto_* プログラムへと渡されます。

       -Sbuildsystem, --buildsystem=buildsystem
           パッケージに合わせて自動的に選択されたビルドシステムではなく、buildsystem で指定したビ
           ルドシステムを強制的に使用します。

       -Ddirectory, --sourcedirectory=directory
           オリジナルのソースツリーが、Debian ソースパッケージツリーの最上位のディレクトリではな
           く、directory で指定した場所にあると仮定します。

       -B[directory], --builddirectory=[directory]
           ソースのビルドディレクトリ外にある、指定した directory をビルドディレクトリとしてソー
           スのビルドを有効にします。directory パラメータが省略された場合はデフォルトのビルドディ
           レクトリが利用されます。

           このオプションが指定されない場合は、ビルドシステムがソースツリー外でのビルドを必要とす
           る、あるいはそちらが望ましいと判断されない限り、デフォルトではソースディレクトリ内部で
           ビルドが行われます。その場合、--builddirectory が指定されていなくてもデフォルトのビル
           ドディレクトリが使用されます。

           ビルドシステムが、ソースディレクトリ以外の場所でビルドを選択してしまうけれどもソース
           ディレクトリでのビルドが可能な場合には、ソースディレクトリのパスと同じものとしてビルド
           ディレクトリのパスを指定すれば、ソースディレクトリ内でビルドを行うようにできます。

       --parallel, --no-parallel
           ビルドシステムがサポートしている場合、並列ビルドを有効にするかどうかを管理します。どれ
           だけの数でジョブを並列にするかは、ビルドが行われる際に DEB_BUILD_OPTIONS 環境変数に
           よって決定されます (Debian ポリシーマニュアル、4.9.1章)。ビルドシステム固有の制限に影
           響を受ける場合もあります。

           どちらのオプションも指定されていない場合、debhelper は現在では互換性レベル 10 (以降)
           の場合は --parallel をデフォルトに、そうでない場合は --no-parallel が指定されます。

           これらのオプションが不要である場合、あるいはこのオプションだけが渡された場合には、dh
           はこれらのオプションをサブプロセスに渡すのを最適化のため避けようとします。特に、これは
           DEB_BUILD_OPTIONSparallel パラメーターを持たない (またはこの値が 1 である) 場合に
           起こります。

       --max-parallel=maximum
           このオプションは --parallel とともに利用し、並列ビルドにおける並列数の上限を引き上げま
           す。もしパッケージが、とある並列数まででしかビルドできないことがわかっている場合、この
           オプションを使って最大限の並列数または利用したい並列数を指定できます。

           特に、最大値を 1 に設定するのは --no-parallel を使うのと同じ効果があります。

       --list, -l
           このシステム上で、debhelper がサポートしているビルドシステム一覧を表示します。この一覧
           にはデフォルトのビルドシステム、そしてサードパーティー製 (であると明記されている) ビル
           ドシステムの双方を含みます。また、どれが自動的に選択されたか、あるいは手動で
           --buildsystem オプションにて何が指定されたのかも表示します。

互換性レベル

       時が経ち、後方互換性を崩すような大きな変更を debhelper にする必要がでてきました。これ
       は、変化に対して debhelper の構造を綺麗でうまく設計されたままに保つ必要があること
       と、debhelper の作者がより経験を得てより深く考えるようになったためです。このような大きな変
       更によって既存のパッケージを壊さないようにするため、互換性レベルという考え方が導入されまし
       た。debhelper にどの互換性レベルを使うべきかを指定することで、これに合わせて動作が様々に変
       化します。互換性レベルは debian/compat ファイルで指定され、このファイルは必須となっていま
       す。

       数字を debian/compat に記述して、debhelper にどの互換性レベルを使うかを教えます。例え
       ば、v11 モードを使うには次の様にします:

         % echo 11 > debian/compat

       パッケージは、利用する互換性レベルと同じ (あるいはそれ以上) のバージョンの debhelper プロ
       グラムをビルド依存として設定する必要があります。互換性レベル 11 の場合、debian/control
       ファイルが以下の様になっていることを確認してください:

         Build-Depends: debhelper (>= 11)

       特に指定が無い場合、debhelper のドキュメントは最新の互換性レベルを利用している事を前提とお
       り、多くの場合では以前の互換性レベルではどう動作が異なるかについては言及していません。最新
       の互換性レベルを使っていない場合には、それ以前の互換性レベルとはどう動作が違うのか、以下の
       説明を参照しておく事をおすすめします。

   Supported compatibility levels
       利用可能な互換性レベルは以下の通りです:

       v5  これはサポートされている最低限の互換性レベルです。

           これ以前の互換性レベルからアップグレードしようとしている場
           合、debhelper-obsolete-compat(7) を確認して下さい。

           このモードは廃止されました。

       v6  v5 からの変更点:

           -       メンテナンス用スクリプトの一部を生成するコマンドは、prermpostrm スクリプト
                   用にこれらを逆順に並び替えるようになりました。

           -       dh_installwmx-window-manager.1.gz という slave な man ページへリンクを作る
                   ようになりました。これはパッケージビルドディレクトリ内の usr/share/man/man1
                   ディレクトリに man ページがある場合に行われます。

           -       dh_builddeb は、CVS:.svn:.git のように除外する対象を DH_ALWAYS_EXCLUDE に指定
                   しても該当するファイルを削除していませんでした。本互換性レベルでは削除するよう
                   になっています。

           -       dh_installman は、パッケージビルドディレクトリにすでに存在する man ページを上
                   書きしても良くなりました。これより以前の互換性レベルの元では、このような動作は
                   何の警告もなく拒絶されていました。

           このモードは廃止されました。

       v7  v6 からの変更点:

           -       もし、debian/tmp 以下にあるようなファイルが、カレントディレクトリにない場合
                   (もしくは、--sourcedir で指定したディレクトリにない場合) 、dh_installdebian/tmp を探しにいくようになりました。この振る舞いの変更により、dh_install
                   に特に何か引数を指定しなくても、debian/tmp にインストールしようとする
                   dh_auto_install と協調して動作できるようになりました。

           -       dh_cleandebian/clean を読み、そこに記載されているファイルを消すようになり
                   ました。

           -       dh_clean はビルドディレクトリの最上位の階層にある *-stamp ファイルを消すように
                   なりました。

           -       dh_installchangelogs は、何も指定しなくてもどのファイルが upstream の
                   changelog であるかを推定するようになりました。

           このモードは廃止されました。

       v8  v7 からの変更点:

           -       未定義のオプションを渡そうとすると、警告文を出して処理続行するのではなく、エ
                   ラーにして処理を失敗させるようになりました。

           -       dh_makeshlibs は、shlibs ファイルを作成する為に、dpkg-gensymbols をすべての共
                   有ライブラリに対して実行するようになりました。-X を指定すると実行を除外するラ
                   イブラリを指定できます。また、通常ではない場所にライブラリがある為
                   dh_makeshlibs へ渡す前に dpkg-gensymbols が処理できないような場合、パッケージ
                   のビルドが失敗に終わるようになりました。

           -       dh は最初のパラメータとして、一連の処理の名前を指定し、その次にオプションを記
                   載しなければならなくなりました。つまり、"dh $@ --foo" が正しく、"dh --foo $@"
                   は間違いとなります。

           -       dh_auto_*Makefile.PL ファイルよりも、Perl の Module::Build モジュールを優
                   先して利用するようになりました。

           このモードは廃止されました。

       v9  v8 からの変更点:

           -       multiarch をサポートします。特に dh_auto_configure は autoconfコマンドへ
                   --libdir や --libexecdir に multiarch 用途のディレクトリを渡すようになっていま
                   す。

           -       dh コマンドは debian/rules に記載されているターゲット間の一般的な依存性を考慮
                   します。そのため、"dh binary" は rules ファイルに存在する build, build-arch,
                   build-indep, install 等のターゲットを実行していきます。つまり、他のターゲット
                   に関する依存関係をいちいち細かく明示した binary ターゲットを用意する必要はあり
                   ません。

           -       dh_strip はデバッグシンボルファイルを圧縮し、-dbg パッケージのインストール時に
                   必要とする容量を削減します。

           -       dh_auto_configure は、autoconf を使ったときに、--libexecdir にソースパッケージ
                   名を追加しなくなりました。

           -       dh は --with=python-support オプションを、デフォルトでは無効にするようになりま
                   した。

                   (Obsolete: As the dh_pysupport tool was removed from Debian stretch.  Since
                   debhelper/10.3, dh no longer enables this sequence add-on regardless of compat
                   level)

           -       すべての dh_auto_* debhelper プログラムと dh コマンドは、dpkg-buildflags で指
                   定される環境変数を設定します。すでに該当する環境変数が設定されている場合は設定
                   を行いません。

           -       dh_auto_configure は、dpkg-buildflags によって設定されるCFLAGS、CPPFLAGS,
                   LDFLAGS パラメータを Makefile.PLBuild.PL へ引き渡します。

           -       dh_strip は build-id に基づく場所に、分離したデバッグシンボルを配置します。

           -       実行可能権限を付与した debhelper 用の設定ファイルは、実行され出力が設定として
                   扱われます。

       v10 v9 からの変更点:

           -       dh_installinit は、init スクリプトとして debian/package という名前でファイルを
                   インストールしなくなりました。

           -       dh_installdocs は、アーキテクチャ "all" と 非 "all" のパッケージ間で
                   --link-doc で作られたリンクが binNMU を壊すのを検知してエラーを吐き出すように
                   なります。

           -       dh は、実行している debhelper コマンドをスキップした場合にはパッケージビルド
                   ディレクトリを作成しなくなりました。これは debhelper コマンドのみを使ってビル
                   ドされているパッケージには影響しませんが、debhelper に含まれていないコマンドの
                   バグを暴くかもしれません。

           -       dh_installdebは、メンテナが提供した debian/package.shlibs ファイルをインストー
                   ルしなくなりました。現在これは、dh_makeshlibs によって代わりに行われます。

           -       dh_installwm は、man ページが見つからない場合に壊れたパッケージを作成するのを
                   拒否するようになりました (x-window-manager の alternative 登録に必要)。

           -       debhelper は、並列ビルドをサポートしている全てのビルドシステムで、デフォルトで
                   --parallel を使用します。これは、--no-parallel を使うか --max-parallel へ 1 の
                   値を渡すことで無効にできます。

           -       dh コマンドは、使われなくなった "手動シーケンスコントロール" パラメー
                   ター(--before, --after など)を受け付けなくなります。代わりに override ターゲッ
                   トを使ってください。

           -       dh コマンドはどのコマンドが実行されたのかを追跡するのにログファイルを使わなく
                   なります。dh コマンドは 依然として 既に "build" シーケンスを実行したかどうかを
                   記録し、もし実行されていたらスキップします。

                   これの主な影響:

                   -   これにより、install 及び binary シーケンスを ("clean 及び rebuild" のサイ
                       クルを全て実施する必要が無くなり) 気軽に再実行可能になったため、デバッグが
                       より簡単になっています。

                   -   The main caveat is that dh_* now only keeps track of what happened in a
                       single override target.  When all the calls to a given dh_cmd command
                       happens in the same override target everything will work as before.

                       動かなくなる可能性がある例:

                         override_dh_foo:
                           dh_foo -pmy-pkg

                         override_dh_bar:
                           dh_bar
                           dh_foo --remaining

                       この場合、dh_foo --remaining の呼び出しは、dh_foo -pmy-pkg が分かれている
                       override ターゲット内にあるため、my-pkg 含みます。この問題は --remaining
                       に限らず -a, -i なども含みます。

           -       dh_installdeb コマンドは maintscript 設定ファイル内の行をシェルエスケープする
                   ようになりました。これは元々意図していた動作でしたが正しく動作しておらず、パッ
                   ケージが不完全なシェルエスケープ (例: ファイル名のクォート) に依存するように
                   なっていました。

           -       dh_installinit コマンドは標準で --restart-after-upgrade を利用するようになりま
                   した。以前の動作が必要なパッケージには --no-restart-after-upgrade を利用してく
                   ださい。

           -       autoreconf シーケンスが標準で有効になりました。指定のパッケージでこの動作を望
                   まない場合は、dh--without autoreconf を指定してください。

           -       systemd シーケンスが標準で有効になりました。指定のパッケージでこの動作を望まな
                   い場合は、dh--without systemd を指定してください。

       v11 これが動作推奨モードです。

           v10 からの変更点:

           -       dh_installinit no longer installs service or tmpfile files, nor generates
                   maintainer scripts for those files.  Please use the new dh_installsystemd
                   helper.

           -       The dh_systemd_enable and dh_systemd_start helpers have been replaced by the
                   new dh_installsystemd helper.  For the same reason, the systemd sequence for
                   dh has also been removed.  If you need to disable the dh_installsystemd helper
                   tool, please use an empty override target.

                   Please note that the dh_installsystemd tool has a slightly different behaviour
                   in some cases (e.g. when using the --name parameter).

           -       dh_installdirs no longer creates debian/package directories unless explicitly
                   requested (or it has to create a subdirectory in it).

                   The vast majority of all packages will be unaffected by this change.

           -       The makefile buildsystem now passes INSTALL=install --strip-program=true to
                   make(1).  Derivative buildsystems (e.g. configure or cmake) are unaffected by
                   this change.

           -       The autoconf buildsystem now passes --runstatedir=/run to ./configure.

           -       The cmake buildsystem now passes -DCMAKE_INSTALL_RUNSTATEDIR=/run to cmake(1).

           -       dh_installman will now prefer detecting the language from the path name rather
                   than the extension.

           -       dh_auto_install will now only create the destination directory it needs.
                   Previously, it would create the package build directory for all packages.
                   This will not affect packages that only build with debhelper commands, but it
                   may expose bugs in commands not included in debhelper.

           -       The helpers dh_installdocs, dh_installexamples, dh_installinfo, and
                   dh_installman now error out if their config has a pattern that does not match
                   anything or reference a path that does not exist.

                   Known exceptions include building with the nodoc profile, where the above
                   tools will silently permit failed matches where the patterns are used to
                   specify documentation.

           -       The helpers dh_installdocs, dh_installexamples, dh_installinfo, and
                   dh_installman now accept the parameter --sourcedir with same meaning as
                   dh_install. Furthermore, they now also fall back to debian/tmp like
                   dh_install.

                   Migration note: A bug in debhelper 11 up to 11.1.5 made dh_installinfo
                   incorrectly ignore --sourcedir.

           -       The perl-makemaker and perl-build build systems no longer pass -I.  to perl.
                   Packages that still need this behaviour can emulate it by using the PERL5LIB
                   environment variable.  E.g. by adding export PERL5LIB=.  in their debian/rules
                   file (or similar).

           -       The PERL_USE_UNSAFE_INC environment variable is no longer set by dh or any of
                   the dh_auto_* tools.  It was added as a temporary work around to avoid a lot
                   of packages failing to build at the same time.

                   Note this item will eventually become obsolete as upstream intends to drop
                   support for the PERL_USE_UNSAFE_INC environment variable.  When perl drops
                   support for it, then this variable will be removed retroactively from existing
                   compat levels as well.

           -       The dh_makeshlibs helper will now exit with an error if objdump returns a non-
                   zero exit from analysing a given file.

           -       The dh_installdocs and dh_installexamples tools will now attempt to guess the
                   "main package" for a given documentation package (e.g. pkg-doc will have pkg
                   as main package if the latter exists).  If a main package is found, most of
                   the documentation will be installed into /usr/share/doc/main-pkg by default as
                   recommended by Debian policy §12.3 since version 3.9.7.  Notable exceptions
                   include the copyright file and changelog files.

                   The --doc-main-package option can be used when the auto-detection is
                   insufficient.

           -       The dh_strip and dh_shlibdeps tools no longer uses filename patterns to
                   determine which files to process.  Instead, they open the file and look for an
                   ELF header to determine if a given file is an shared object or an ELF
                   executable.

                   This change may cause the tools to process more files than previously.

       v12 この互換性レベルは未だ開発中の状態です。使う場合は注意して使ってください。

           Changes from v11 are:

           -       The -s (--same-arch) option is removed.  Please use -a (--arch) instead.

           -       dh_clean -k の起動は deprecate 警告ではなくエラーを起こすようになりました。

           -       The --no-restart-on-upgrade option in dh_installinit has been removed.  Please
                   use the new name --no-stop-on-upgrade

           -       There was a bug in the doit (and similar) functions from
                   Debian::Debhelper::Dh_Lib that made them spawn a shell in one particular
                   circumstance.  This bug is now removed and will cause helpers that rely on the
                   bug to fail with a "command not found"-error.

           -       The --list-missing and --fail-missing in dh_install has been removed.  Please
                   use dh_missing and its corresponding options, which can also see the files
                   installed by other helpers.

           -       The dh_installinit helper no longer installs configuration for the upstart
                   init system.  Instead, it will abort the build if it finds an old upstart
                   configuration file.  The error is there to remind the package maintainer to
                   ensure the proper removal of the conffiles shipped in previous versions of the
                   package (if any).

           -       The dh_installdeb tool will do basic validation of some
                   dpkg-maintscript-helper(1) commands and will error out if the commands appear
                   to be invalid.

           -       The dh_missing tool will now default to --list-missing.

           -       The dh_makeshlibs tool will now only pass libraries to dpkg-gensymbols(1) if
                   the ELF binary has a SONAME (containing ".so").

           -       The dh_compress tool no longer compresses examples (i.e. anything installed in
                   </usr/share/doc/package/examples>.)

付記

   複数のバイナリパッケージのサポート
       ソースパッケージが複数のバイナリパッケージを生成する場合、デフォルトでは debhelper は実行
       時にすべてのバイナリパッケージを生成します。この場合ソースパッケージが、アーキテクチャ依存
       パッケージとアーキテクチャ非依存パッケージを同時に生成するとしたら、この振る舞いは正しくあ
       りません。というのも、debian/rules では、アーキテクチャ依存パッケージを生成するなら
       binary-arch ターゲット内で生成する必要があり、アーキテクチャ非依存のパッケージなら
       ば、binary-indep ターゲットで生成する必要がある為です。

       これを容易にする為、どのパッケージが debhelper プログラムによって処理されるかをよりコント
       ロールするのと同様、すべての debhelper プログラムは -a, -i, -p, -s パラメータを解釈できま
       す。これらのパラメータは重複可能です。何も指定しない場合、debhelper プログラムは、以下の例
       外を除いて control ファイルに列挙されたすべてのパッケージに対して処理を行います。

       まず、debian/control 中の Architecture フィールドが DEB_HOST_ARCH アーキテクチャに一致しな
       い全てのパッケージが除外されます ("Debian ポリシー 5.6.8 章")。

       また、<https://wiki.debian.org/BuildProfileSpec> にあるドラフトのポリシーによる
       と、DEB_BUILD_PROFILES 環境変数と debian/control 中のバイナリパッケージ節の Build-Profiles
       フィールドの内容を元に追加でパッケージが除外されます。

       Interaction between package selections and Build-Profiles

       Build-Profiles affect which packages are included in the package selections mechanisms in
       debhelper.  Generally, the package selections are described from the assumption that all
       packages are enabled.  This section describes how the selections react when a package is
       disabled due to the active Build-Profiles (or lack of active Build-Profiles).

       -a/--arch, -i/--indep OR no selection options (a raw "dh_X" call)
           The package disabled by Build-Profiles is silently excluded from the selection.

           Note you will receive a warning if all packages related to these selections are
           disabled.  In that case, it generally does not make sense to do the build in the first
           place.

       -N package / --no-package package
           The option is accepted and effectively does nothing.

       -p package / --package package
           The option is accepted, but debhelper will not act on the package.

       Note that it does not matter whether a package is enabled or disabled by default.

   メンテナスクリプトの自動生成
       debhelper コマンドには、Debian メンテナスクリプトの一部を自動的に生成するものがありま
       す。もし、既存の Debian メンテナスクリプトに自動生成された部分を含むようにしたければ、コー
       ドを追加したい場所に #DEBHELPER# と追記してください。#DEBHELPER#dh_installdeb が実行さ
       れる際に、自動生成されたコードへ置換されます。

       スクリプトがまったく存在しないが debhelper が何かをスクリプトに追加する必要がある場
       合、debhelper はスクリプトを一式生成します。

       -n パラメーターを指定すると、このような debhelper プログラムによるスクリプトの自動生成を行
       わないようにできます (上記参照)。

       挿入されるコードはシェルスクリプトなので、Perl スクリプトには直接埋め込めない事に注意して
       ください。もし何かを Perl スクリプトに埋め込みたい場合、以下に一例を挙げます ($1, $2 等は
       set コマンドにより設定される事に注意):

         my $temp="set -e\nset -- @ARGV\n" . << 'EOF';
         #DEBHELPER#
         EOF
         if (system($temp)) {
            my $exit_code = ($? >> 8) & 0xff;
            my $signal = $? & 0x7f;
            if ($exit_code) {
                die("debhelper スクリプトは失敗しました。エラーコード: ${exit_code}");
            } else {
                die("debhelper スクリプトは以下のシグナルで終了されました: ${signal}");
            }
         }

   様々な依存関係の自動生成
       debhelper は他のパッケージに依存するようなパッケージを作成することがあります。例え
       ば、dh_installdebconf(1) を使うと、ビルドしたパッケージは debconf パッケージにも依存するよ
       うになります。あるいは dh_installxfonts(1) を使うと、特定のバージョンの xutils に依存する
       ことになります。これらの様々な依存関係を追いかけるのは、debhelper がどのような処理を行うか
       によるために面倒なことになりがちです。そのため、debhelper は 自動的に依存関係を解決する機
       能を提供します。

       他のパッケージに依存するようなパッケージを生成する debhelper コマンドは、何に依存するかに
       ついて man ページに記載してある他に、${misc:Depends} と呼ばれる変数を、自動的に生成した依
       存情報と置き換えます。もし debian/control にこの変数を指定すれば、debhelper は必要とする依
       存関係を自動的に展開するようになります。

       この変数は、dh_makeshlibs(1) により生成された標準の ${shlibs:Depends} 変数とはまったく関連
       を持ちません。また、dh_perl(1) により生成された ${perl:Depends} 変数も同様です。debhelper
       コマンドの推測が実状に合わない場合は、これらを使わないようにすることも可能です。

   パッケージビルドディレクトリ
       デフォルトでは、すべての debhelper プログラムはパッケージに含めるファイル群をまとめる一時
       ディレクトリとして debian/package ディレクトリを使用します。

       時折、別の一時ディレクトリを利用したくなる場合があるでしょう。この場合は、-P フラグを利用
       してください。例えば、"dh_installdocs -Pdebian/tmp" では debian/tmp を一時ディレクトリと
       して利用できます。ただし、-P を使うと、debhelper プログラムは一度に 1 つのパッケージの処理
       しかできません。その為、複数のバイナリパッケージを生成するような場合、どのバイナリパッケー
       ジに対して debhelper が作用するかを指定するために -p フラグを併用する必要があります。

   udeb パッケージについて
       debhelper は udeb もサポートしています。debhelper で udeb パッケージを作成するに
       は、"Package-Type: udeb" を debian/control のパッケージ定義に加えてください。debhelper は
       udeb ファイルを debian-installer ポリシーにあわせてビルドします。これは、パッケージの拡張
       子が .udeb となるファイルで、いかなるドキュメントや、preinst, postrm, prerm, config スクリ
       プト等も省いたものです。

環境変数

       以下の環境変数は debhelper の振る舞いに影響を与えることができます。正しく動作するために
       は、(単なる Makefile 変数ではなく) 実際の環境変数である必要があることに注意するのが重要で
       す。これらを正しく debian/rules で指定するには、必ず "export" してください。例えば "export
       DH_VERBOSE" などとします。

       DH_VERBOSE
           1 を指定すると冗長出力モードになります。debhelper は動作する全てのコマンドについて出力
           を行うようになります。また、autoconf のようなビルドシステムについても冗長出力されたビ
           ルドログを有効にします。

       DH_QUIET
           quiet モードを有効にするには 1 を指定して下さい。debhelperは upstream のビルドシステム
           の呼び出しコマンドや、dh がどのサブコマンドが呼び出されたのかも出力しなくな
           り、upstream のビルドシステムによってはさらに静かになります。これは重要なメッセージに
           注目するのが簡単になりますが、buildd のログとしては出力は極めて使い物にならなくなりま
           す。DH_VERBOSE が同時にセットされていると無視されます。

       DH_COMPAT
           この環境変数は、debhelper をどの互換性レベルで実行するかを一時的に指定するものです。こ
           ちらを指定すると debian/compat の値を上書きします。

       DH_NO_ACT
           1 に設定すると、何もしない (no-act) モードになります。

       DH_OPTIONS
           この環境変数に指定したものは、すべての debhelper コマンドの末尾に指定されるようになり
           ます。

           dh(1) を使えば、続いて呼び出される debhelper コマンドに指定したオプションを渡すことが
           できます。大抵の場合、こちらの方が DH_OPTIONS を使うよりも良い方法です。

       DH_ALWAYS_EXCLUDE
           こちらが設定されていると、-X オプションをサポートするすべてのコマンドに対し、-X オプ
           ションの値として環境変数の値を指定します。さらに、dh_builddeb コマンドはビルドツリーの
           元で環境変数の値に基づくパターンにマッチするもの全部を rm -rf するようになります。

           これは CVS ソースツリーからパッケージビルドをする場合に便利な場合があります。例え
           ば、DH_ALWAYS_EXCLUDE=CVS を指定すれば、CVS ディレクトリがビルドの際に検索されるのを防
           ぐことができます。あるいは、ソースの tarball にすでに CVS ディレクトリが (愚かにも) 含
           まれている場合、debian/rulesDH_ALWAYS_EXCLUDE=CVS 環境変数を export すれば、どこで
           パッケージをビルドしようとも効果を発揮するようになります。

           除外したいものを複数指定したい場合は、DH_ALWAYS_EXCLUDE=CVS:.svn のようにコロンで区
           切ってください。

       DH_EXTRA_ADDONS
           If set, this adds the specified dh addons to be run in the appropriate places in the
           sequence of commands. This is equivalent to specifying the addon to run with the
           --with flag in the debian/rules file. Any --without calls specifying an addon in this
           environment variable will not be run.

           This is intended to be used by downstreams or specific local configurations that
           require a debhelper addon to be run during multiple builds without having to patch a
           large number of rules file. If at all possible, this should be avoided in favor of a
           --with flag in the rules file.

参照

       /usr/share/doc/debhelper/examples/
           debhelper を使うときの debian/rules ファイルの例が格納されています。

       <http://joeyh.name/code/debhelper/>
           Debhelper の Web サイトです。

作者

       Joey Hess <joeyh@debian.org>