同じソースからさまざまなバージョンとディストリビューション用の複数の.debパッケージを構築したいと思います。ソースコードがまったく同じであっても依存関係とディストリビューション名が異なるため、debianフォルダの一部のファイルを共有できません。
したがって、各バージョン/リリースごとに複数の「debian」ディレクトリを作成し、パッケージをビルドするときに検索する場所を指定したいと思います。可能ですか?
ちなみに、私はdebuildコマンドを使って.debパッケージを構築しています。
答え1
他のブランチを使用することも1つのアプローチであり、適切な場合は@mestiaの答えの編集を提案することができます(しかし、それを読んでください...)。
別の方法は、異なるファイルを並べて保存することです。太陽光例えば。
しかし、どちらの方法にも重要な欠点がある。つまり、DebianやUbuntu(または他の派生製品)のパッケージでは機能しません。後でディストリビューションにパッケージをインストールする予定の場合は、同じファイルセットがさまざまなディストリビューションで正しい結果を生成するようにパッケージ化する必要があります。
これの例については、次を参照してください。SolarのDebianパッケージング(全公開:包装は私が作成しました。)
一般的なアイデアは、dpkg-vendor
DebianとUbuntuで異なる依存関係を持つdebian/rules
Solarの場合、展開が何であるかを尋ねることです。
derives_from_ubuntu := $(shell (dpkg-vendor --derives-from Ubuntu && echo "yes") || echo "no")
そして、dh_gencontrol
必要に応じて「substvars」を埋めるためにさらに下書きします。
override_dh_gencontrol:
ifeq ($(derives_from_ubuntu),yes)
dh_gencontrol -- '-Vsolaar:Desktop-Icon-Theme=gnome-icon-theme-full | oxygen-icon-theme-complete' -Vsolaar:Gnome-Icon-Theme=gnome-icon-theme-full
else
dh_gencontrol -- '-Vsolaar:Desktop-Icon-Theme=gnome-icon-theme | oxygen-icon-theme' -Vsolaar:Gnome-Icon-Theme=gnome-icon-theme
endif
これで適切な変数が入力されますdebian/control
。
Package: solaar
Architecture: all
Depends: ${misc:Depends}, ${debconf:Depends}, udev (>= 175), passwd | adduser,
${python:Depends}, python-pyudev (>= 0.13), python-gi (>= 3.2), gir1.2-gtk-3.0 (>= 3.4),
${solaar:Desktop-Icon-Theme}
そして
Package: solaar-gnome3
Architecture: all
Section: gnome
Depends: ${misc:Depends}, solaar (= ${source:Version}),
gir1.2-appindicator3-0.1, gnome-shell (>= 3.4) | unity (>= 5.10),
${solaar:Gnome-Icon-Theme}
テストを使用すると、debian/rules
makefileで実行できるすべての操作を制御できます。つまり、makefileを代替ファイルと組み合わせることができます(たとえば、パッケージビルドでそのファイルを使用する前にそのファイルをリンクするなど)。
答え2
たぶん、git-buildpackage
別のポイントに別のDebianディレクトリを維持することができます。