私は、上流のtarball / gitブランチの2つの部分で構成されたパッケージをDebianにするつもりです。
- ユーザー空間バイナリとライブラリ、バージョン1.5.0(
foobard
バイナリパッケージ) - カーネルモジュール、バージョン0.8.5(
foobar-dkms
)
問題はバージョンが異なることです。この場合、1つのソースパッケージから2つの異なるバージョンのバイナリパッケージを構築するための合理的で正しい方法はありますか?
MODULE_VERSION
可能であれば、2つのソースパッケージを作成したり、両方のパッケージを1.5.0にバージョンアップしたりする(モジュールがソースに正しく指定されているにもかかわらず)、よりきれいにしたいです。
答え1
Debian のバイナリパッケージのバージョンは、次の要素によって決まります。dpkg-gencontrol
、最終的にバイナリパッケージに表示される最終制御ファイルを生成します。この-v
オプションはバージョン番号を指定します。デフォルトでは、バージョン番号はからインポートされますが、上書きできますdebian/changelog
。
アーカイブにこれのいくつかの例があります。たとえば、自分自身を参照してください。gcc-mingw-w64
独自(ソース)バージョン番号がありますが、バージョンがデフォルトパッケージgcc-source
(現在)とマージされたバイナリパッケージを生成するパッケージgcc-7-source
)バージョン番号とソースパッケージ番号。したがって、Debian 9では、gcc-mingw-w64
バージョン19.3はバージョン6.3.0-18 + 19.3のバイナリパッケージを作成します。
単一のソースからさまざまなバージョンのさまざまなバイナリパッケージをビルドするには、このオプションをこのオプション(処理するパッケージの指定)と組み合わせて、必要に応じて-v
複数回実行できます(ラッパーの1つなど)。-p
dpkg-gencontrol
dh_gencontrol
アーカイブには、これを示すパッケージが1つ以上あります。android-sdk-meta
android-sdk
2つの異なるバージョン(ソースバージョンを使用)とバイナリバージョンを含む4つの異なるパッケージでバイナリパッケージをビルドします。debian/rules
。
Debian ポリシー制御フィールドの章ソース管理ファイルとバイナリ制御ファイルの違いについての詳細です。
答え2
ピジンの例を見ることができます。単一のソースからlibpurple0、pidgin、pidgin-data、pidgin-dev、pidgin-dbg、finch、finch-dev、libpurple-dev、libpurple-binパッケージを作成します。
ソースのインポート:
http://packages.debian.org/squeeze/pidgin
[pidgin_2.7.3-1+squeeze2.dsc] [pidgin_2.7.3.orig.tar.bz2] [pidgin_2.7.3-1+squeeze2.debian.tar.gz]
ビルドを制御するファイルはdebian / rulesです。詳しくは以下をご覧ください。
http://www.debian.org/doc/debian-policy/ch-source.html
http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.html
答え3
Debian パッケージと Ubuntu パッケージでは、バージョンがファイルdebian/changelog
に割り当てられ、ソースパッケージから生成されたすべてのパッケージがまったく同じバージョンを持つように設計されています。