非ローカルパッケージ

非ローカルパッケージ

私はDebianユーザーではありませんが、私が書いたこのカーネルパッチをテストするにはDebian環境が必要でした。 、そして私は欲求不満の終わりがありません...

カスタムカーネルを正常にインストールしましたが、設定オプションを変更する必要があります。実行後、make -j5 deb-pkg次のエラーが発生します。

dpkg-source: warning: executable mode 0755 of 'debian/linux-headers/usr/src/linux-headers-5.8.0+/scripts/stackdelta' will not be represented in diff
dpkg-source: warning: executable mode 0755 of 'debian/linux-headers/usr/src/linux-headers-5.8.0+/scripts/stackusage' will not be represented in diff
dpkg-source: warning: executable mode 0755 of 'debian/linux-headers/usr/src/linux-headers-5.8.0+/scripts/tags.sh' will not be represented in diff
dpkg-source: warning: executable mode 0755 of 'debian/linux-headers/usr/src/linux-headers-5.8.0+/scripts/tools-support-relr.sh' will not be represented in diff
dpkg-source: warning: executable mode 0755 of 'debian/linux-headers/usr/src/linux-headers-5.8.0+/scripts/tracing/draw_functrace.py' will not be represented in diff
dpkg-source: warning: executable mode 0755 of 'debian/linux-headers/usr/src/linux-headers-5.8.0+/scripts/tracing/ftrace-bisect.sh' will not be represented in diff
dpkg-source: warning: executable mode 0755 of 'debian/linux-headers/usr/src/linux-headers-5.8.0+/scripts/ver_linux' will not be represented in diff
dpkg-source: warning: executable mode 0755 of 'debian/linux-headers/usr/src/linux-headers-5.8.0+/scripts/xz_wrap.sh' will not be represented in diff
dpkg-source: error: cannot represent change to debian/linux-headers/usr/src/linux-headers-5.8.0+/tools/objtool/objtool: binary file contents changed
dpkg-source: warning: executable mode 0755 of 'debian/linux-headers/usr/src/linux-headers-5.8.0+/tools/objtool/objtool' will not be represented in diff
dpkg-source: error: cannot represent change to debian/linux-image-dbg/usr/lib/debug/lib/modules/5.8.0+/vmlinux: binary file contents changed
dpkg-source: warning: executable mode 0755 of 'debian/linux-image-dbg/usr/lib/debug/lib/modules/5.8.0+/vmlinux' will not be represented in diff
dpkg-source: error: cannot represent change to debian/linux-image-dbg/usr/share/doc/linux-image-5.8.0+-dbg/changelog.Debian.gz: binary file contents changed
dpkg-source: warning: executable mode 0755 of 'debian/linux-image/DEBIAN/postinst' will not be represented in diff
dpkg-source: warning: executable mode 0755 of 'debian/linux-image/DEBIAN/postrm' will not be represented in diff
dpkg-source: warning: executable mode 0755 of 'debian/linux-image/DEBIAN/preinst' will not be represented in diff
dpkg-source: warning: executable mode 0755 of 'debian/linux-image/DEBIAN/prerm' will not be represented in diff
dpkg-source: error: cannot represent change to debian/linux-image/boot/vmlinuz-5.8.0+: binary file contents changed
dpkg-source: error: cannot represent change to debian/linux-image/lib/modules/5.8.0+/modules.alias.bin: binary file contents changed
dpkg-source: error: cannot represent change to debian/linux-image/lib/modules/5.8.0+/modules.builtin.bin: binary file contents changed
dpkg-source: error: cannot represent change to debian/linux-image/lib/modules/5.8.0+/modules.builtin.modinfo: binary file contents changed
dpkg-source: error: cannot represent change to debian/linux-image/lib/modules/5.8.0+/modules.dep.bin: binary file contents changed
dpkg-source: error: cannot represent change to debian/linux-image/lib/modules/5.8.0+/modules.symbols.bin: binary file contents changed
dpkg-source: error: cannot represent change to debian/linux-image/usr/share/doc/linux-image-5.8.0+/changelog.Debian.gz: binary file contents changed
dpkg-source: error: cannot represent change to debian/linux-libc-dev/usr/share/doc/linux-libc-dev/changelog.Debian.gz: binary file contents changed
dpkg-source: warning: the diff modifies the following upstream files: 
 .clang-format
 .cocciconfig
 .config.old
 .get_maintainer.ignore
 .mailmap
 .version
 CREDITS
 MAINTAINERS
 Module.symvers
 README
 u_f.patch
dpkg-source: info: use the '3.0 (quilt)' format to have separate and documented changes to upstream files, see dpkg-source(1)
dpkg-source: error: unrepresentable changes to source
dpkg-buildpackage: error: dpkg-source -i.git -b . subprocess returned exit status 1
make[1]: *** [scripts/Makefile.package:77: deb-pkg] Error 1
make: *** [Makefile:1520: deb-pkg] Error 2

この問題をどのように解決できますか…?

答え1

本当に、dpkgソース以前にビルドされた一部のファイルは無視されず、次のエラーが表示されます。

make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-custom

これにより、クリーンなレプリケーションの後に一度だけビルドできます。次の問題により、後続のビルドは常に失敗します。デバック

だからBindb-pkgの作成役に立つ次のビルドコマンドは次のとおりです。

make -j `getconf _NPROCESSORS_ONLN` bindeb-pkg LOCALVERSION=-custom

見事に働きました。これでビルドが成功しました。

答え2

この回答の調査中に、非ネイティブパッケージに関するこの質問に答えましたが、linux-signed-amd64ソースパッケージ(おそらくビルド中のパッケージ)がネイティブパッケージであることがわかりました。残念ながら、これは私に非ローカルパッケージ部分的には、しかし、この問題が発生しているすべての人にとってまだ役に立つと思います。

非ローカルパッケージ

通常、この問題が発生する理由は、デフォルト以外のパッケージに追跡されていない変更を適用したためです。これはdebian/source/format次の場合に適用されます3.0 (quilt)。たとえば、

apt source <package>
cd <package>_<version>
# make changes to sources
dpkg-buildpackage

apt source元のアップストリームtarball(+dfsgリリースにない場合は元の作成者のバージョン)をダウンロードして解凍し、Debianパッケージの内容(debian/ディレクトリにあります)を追加します。

dpkg-buildpackage(or)を使用するdebuildときの最初のことは、これを呼び出して、dpkg-sourceパッケージ外のすべてがdebian/元のアップストリームターボールと正確に一致することを確認することです。これにより、Debian の誰も文書化されていない変更を追加しません。

アップストリームコンテンツに対するすべての変更は、パッチとして独立して適用する必要があります。 quiltこの目的に使用されます。確認後、パッチが保存されdebian/patches適用されます。dpkg-sourceこれにより、配布固有のコンテンツが正しく文書化されます。また、パッチ形式にメタコンテンツ(またはヘッダー)用のスペースがあるため、どのパッチがアップストリーム(元の開発者に)に配信されたかを追跡するのに役立ちます。


この問題が発生する可能性があるもう1つの方法は、ビルドがソースコードで発生する場合です(つまり、ビルドアーティファクトがビルドディレクトリに分離されていないか、スクリプトがソースファイルを内部で変更することを意味します)。すべてを元の状態に戻すことができることを願っていますdebuild -T clean。それ以外の場合は手動で行う必要があります。


ネイティブパッケージ

この例では、apt sourceネイティブlinux-signed-amd64_*.tar.xzソースコードパッケージをダウンロードして解凍します。debuildまたはを使用すると、dpkg-buildpackage通常はソースパッケージとすべてのバイナリパッケージを生成します。ソースパッケージはすでに存在するため、debuildこの手順はスキップされますが、ソースパッケージが現在のソースツリーと一致することを確認してください。これがすべて失敗する場所です。持っているソースパッケージを交換するのではなく、エラーが発生するように選択します。ソースパッケージを削除(使用debuild -T clean)すると、この競合が解決されます。

答え3

/ usr / srcにインストールされている.debファイルとディレクトリが原因でエラーが発生したようですmake deb-pkg。そのファイルを削除して問題を解決しましたが、今は正常にコンパイルされているようです。

関連情報