
私の Debian パッケージで lintian エラーが発生します。
Rhythmbox-plugin-alternative-toolbar: 追加ライセンスファイル usr/lib/rhythmbox/plugins/alternative-toolbar/LICENSE
これは、ソースコードにLICENSEファイルが含まれており、Debianのパッケージング規則によっては、すべてのライセンス情報がパッケージの著作権ファイル内にある必要があるためです。
私はautotools automakeを使ってビルドしています。私のDebian/ルールは次のとおりです。
#!/usr/bin/make -f /usr/share/cdbs/1/rules/autoreconf.mk が含まれます。 /usr/share/cdbs/1/rules/debhelper.mk が含まれます。 /usr/share/cdbs/1/rules/utils.mk が含まれます。 /usr/share/cdbs/1/class/gnome.mk を含む /usr/share/gnome-pkg-tools/1/rules/uploaders.mk が含まれます。 /usr/share/gnome-pkg-tools/1/rules/gnome-version.mk が含まれます。 -include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk DEB_DH_AUTORECONF_ARGS := --注文型./autogen.sh #削除されたすべてのファイルを一覧表示します。 ユニバーサルバイナリインストール後のアーキテクチャ::リストがありません
私の最初の考えは、ライセンスファイルを削除するためにルールにoverride_dh_auto_installステートメントを含めることでしたが、現在のルールの一番下に以下を追加すると、これは無視または機能しないようです。
override_dh_auto_install: 探す。 - 名前「ライセンス」 - 削除済み dh_自動インストール
だから私の質問は - DebianパッケージをビルドするときにLICENSEファイルをどのように削除するのですか?
注 - 一種のオーバーライドを通じて、Lintianエラーを人為的に隠したくありません。ビルドされたパッケージに追加のライセンスファイルが含まれていないことを確認したいと思います。
答え1
この質問は約2年前にも答えがありませんでした。それで、最近見つけた解決方法を投稿します。
ファイルの削除後ろに呼ぶdh_自動インストール:
override_dh_auto_install:
dh_auto_install
find ./debian -type f -name "LICENSE" -delete
あるいは、ファイルが準備された後にパッケージがビルドされる前に呼び出される他のディレクティブをオーバーライドします。最初にオーバーライドして実行した方法は次のとおりです。dh_md5sums指示する:
override_dh_md5sums:
find ./debian/<package_name> -type f -name "LICENSE.txt" -delete
dh_md5sums
他人を圧倒するDH_ディレクティブも機能できます。