web-dev-qa-db-ja.com

DEBパッケージにバイナリファイルを含める

主にNode.js JavascriptファイルからDEBパッケージをビルドする必要がありますが、いくつかのバイナリファイルも含める必要があります。それらはdebian/source/include-binaries内にリストされています。そうでない場合、エラーメッセージが表示されます

dpkg-source: error: unrepresentable changes to source

問題のコマンドは次のとおりです。

bzr builddeb -- -us -uc

ファイルinclude-binariesを追加した後、bzr builddeb--us -ucを実行すると、別のエラーが表示されます。

dpkg-source: error: aborting due to unexpected upstream changes, see /tmp/mailadmin_0.0-1.diff.n6m5_6

私はこれを取り除く方法がわかりません。

出力の次の行では、

dpkg-source: info: you can integrate the local changes with dpkg-source --commit

しかし、パッケージのビルドエリアでこのコマンドを実行すると、ソースへの代表できない変更エラーメッセージが再び表示されます。にもかかわらずdebian/source/include-binariesはビルド領域にも存在します。

私はこれから抜け出す方法を逃しています...

ビルドプロセスによって生成されたすべてのファイルを削除しようとしましたが、まだ成功しませんでした。

詳細:

ターゲットディレクトリは/ opt/mailadminです。このディレクトリは珍しいので、ファイルにリストしましたdebian/mailadmin.install(これには1行が含まれています:)

opt/mailadmin opt/

bzr builddebプロセスは、期待どおりにこのファイルを使用します。

プロジェクトは新しいため、アップストリームのtarballはありません。

5
user22611

エラーはバイナリファイルとは関係ありません。それは非常に似ていますが。 (dpkgにこれらの場合のより良いエラーメッセージに関するバグを提出する価値があるかもしれません。)バイナリファイルに関するものであれば、次のようになります。

dpkg-source: error: cannot represent change to package_name-X.Y/debian/some_binary_file.png: binary file contents changed

そして、それでも、古いスタイルバージョン1.0ソースパッケージを使用している場合にのみ発生します。

これは、アップストリームのtarballに関係しています。本当にbzr builddeb -- -us -ucを使用している場合は、bzr builddebにアップストリームのtarballがあるか、それを探すのにエラーが発生していると確信している必要があります。作成したtarballの内容はbzrブランチの内容と一致しないため、「予期しないアップストリームの変更」に関するエラーが発生します。

この場合に対処する最も簡単な方法は、--splitフラグを渡すことです。

bzr builddeb --split -- -us -uc

bzr help builddebから:

  --split               Automatically create an .orig.tar.gz from a full
                        source branch.

これは、単に/debian以外のすべてをtarballに入れて使用します。

2
andrewsomething