gbp buildpackage --git-componentオプションの罠

Tue, May 1, 2018 in debian

poppler-dataパッケージは、一般的なパッケージと違ってupstream tarballが複数ある構成(multiple upstream tarball)なので、git-buildpackageが使えなかったのだけど、git-buildpackage側での実験的なサポートが追加されていたので思い立って作業。

まずはGitリポジトリにリリース済みのパッケージをインポートして、salsaにインポート。

$ gbp import-dscs --debsnap poppler-data
$ git remote add salsa git@salsa.debian.org:debian/poppler-data.git
$ git push salsa --all
$ git push salsa --tags

で、manページを参照して実験的な –git-component オプションの使い方を確認。

$ gbp buildpackage --git-pbuilder  --git-pristine-tar --git-ignore-branch --git-component=ai0 --git-component=from-ghostscript
  • 対象となるtarballはpoppler-data_0.4.9.orig-from-ghostscript.tar.xzとpoppler-data_0.4.9.orig-ai0.tar.gzとしてpristine-tarブランチにコミットされている
  • multiple tarballは orig.tarball-.tar.[g|x]gという形で保持されているので、の部分だけを指定

…というところまでは分かったのだけど、現状ではエラーになる。理由は指定される対象のtarballはtar.gzしか想定していないため…。なんてこった。(追記:正確には、デフォルトで指定されているcompressionオプション=gzip以外を見ない。これを変更するにはgbp.confで指定すればいいのだけど、全てのorig.tarballのcompression指定になってしまうので、multiple upstream tarballでcompressionが混在しているパターンの場合は必ずエラーになってしまう…)

$ gbp buildpackage --git-pbuilder  --git-pristine-tar --git-ignore-branch --git-component=from-ghostscript
(snip)
gbp:error: Error creating poppler-data_0.4.9.orig-from-ghostscript.tar.gz: Pristine-tar couldn't checkout "poppler-data_0.4.9.orig-from-ghostscript.tar.gz": fatal: Path 'poppler-data_0.4.9.orig-from-ghostscript.tar.gz.delta' does not exist in 'refs/heads/pristine-tar'
pristine-tar: git show refs/heads/pristine-tar:poppler-data_0.4.9.orig-from-ghostscript.tar.gz.delta failed

仕方がないので、gbp使わないでリリースしましたよ。えぇ。