同じソースの2つの異なるバージョンのバイナリDebianパッケージ

同じソースの2つの異なるバージョンのバイナリDebianパッケージ

私は、上流の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つなど)。-pdpkg-gencontroldh_gencontrol

アーカイブには、これを示すパッケージが1つ以上あります。android-sdk-metaandroid-sdk2つの異なるバージョン(ソースバージョンを使用)とバイナリバージョンを含む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に割り当てられ、ソースパッケージから生成されたすべてのパッケージがまったく同じバージョンを持つように設計されています。

関連情報