再現可能に.debパッケージをビルド

再現可能に.debパッケージをビルド

これはから来ていますDebian パッケージにパッチを適用するには?。パッケージをビルドした後、パッケージが正しくビルドされたかどうかはわかりません。私は親ディレクトリでこれを見ることができます -

 ┌─[shirish@debian] - [~/games] - [5870]
└─[$] cat dpkg_1.18.15+nmu1_amd64.changes

Format: 1.8
Date: Mon, 21 Nov 2016 01:04:02 +0530
Source: dpkg
Binary: dpkg libdpkg-dev dpkg-dev libdpkg-perl dselect
Architecture: source amd64 all
Version: 1.18.15+nmu1
Distribution: UNRELEASED
Urgency: medium
Maintainer: Dpkg Developers <[email protected]>
Changed-By: shirish <shirish@debian>
Description:
 dpkg       - Debian package management system
 dpkg-dev   - Debian package development tools
 dselect    - Debian package management front-end
 libdpkg-dev - Debian package management static library
 libdpkg-perl - Dpkg perl modules
Changes:
 dpkg (1.18.15+nmu1) UNRELEASED; urgency=medium
 .
   * Non-maintainer upload.
   * Apply d-m-h fix from #844701
Checksums-Sha1:
 8e50f097f70d621071e1e22384c1d68da7693929 1169 dpkg_1.18.15+nmu1.dsc
 16aa8483b0ce8d9eb1f0daebca6da84578226966 4617028 dpkg_1.18.15+nmu1.tar.xz
 3f3eae9de5bb31e178a4acb32654e68410902bda 1238392 dpkg-dbgsym_1.18.15+nmu1_amd64.deb
 3877d627c7c70bd98f16ee0b71d80c69667a6885 1581332 dpkg-dev_1.18.15+nmu1_all.deb
 b678906567a0c8ba089a5eb109855eba608f60e7 2067816 dpkg_1.18.15+nmu1_amd64.deb
 6130872887cd4eeba0b0cc0d0c7354322709dfe7 280736 dselect-dbgsym_1.18.15+nmu1_amd64.deb
 58eb460ab48e1c802ee7ae439dc0295424ef7742 1270868 dselect_1.18.15+nmu1_amd64.deb
 41e17c39ced6f55b9e72d042255a7a9b647b2e8e 1040980 libdpkg-dev_1.18.15+nmu1_amd64.deb
 a38005cde488603a7ee5de9ce7bc307c79277bb9 1242182 libdpkg-perl_1.18.15+nmu1_all.deb
Checksums-Sha256:
 2c8cf8ab1256814aa7115009a4620da913b27935351872335cd429ae4e7a9c70 1169 dpkg_1.18.15+nmu1.dsc
 47390a1ca4a296852ef3c25c0bdc82217e49738438882a980e8da28dca0d809e 4617028 dpkg_1.18.15+nmu1.tar.xz
 4a47a968b5dd4b1e87c99e5de9e3fd31b610ebb1891989de3a72ef08afb3405b 1238392 dpkg-dbgsym_1.18.15+nmu1_amd64.deb
 a05ae6dcefd5bc9affe355c8dd4106b42f795678fa4de31bc063a9784fc845ab 1581332 dpkg-dev_1.18.15+nmu1_all.deb
 b9682da9975541f385b47cf1148028deea4a48a51156293589b124c6f706d7b7 2067816 dpkg_1.18.15+nmu1_amd64.deb
 d75479bb9005788d96e839ae8b2dde56701993ac6421df1f5aaf79634f008a48 280736 dselect-dbgsym_1.18.15+nmu1_amd64.deb
 8b317f45808d408485c566b9748522d63d556bcec7525dcaa442a9720073dd27 1270868 dselect_1.18.15+nmu1_amd64.deb
 e45e67c3ab034ed3d1bf9f268daba92ee3cc406c3b75ef2bd0354ec79dc30d7f 1040980 libdpkg-dev_1.18.15+nmu1_amd64.deb
 d75ff545c612a7eb5f4563bb3619cd33ea4d4baff6cade9452e94bb1e7b7a412 1242182 libdpkg-perl_1.18.15+nmu1_all.deb
Files:
 faab0ae6b71c8216a634cbef6759d122 1169 admin required dpkg_1.18.15+nmu1.dsc
 69eeaa680e11f291860217a9536e93dc 4617028 admin required dpkg_1.18.15+nmu1.tar.xz
 91961eae15e20a3bf2ad614cf42ee4ab 1238392 debug extra dpkg-dbgsym_1.18.15+nmu1_amd64.deb
 aa361b4cde6020393c75a601c51f54e6 1581332 utils optional dpkg-dev_1.18.15+nmu1_all.deb
 325a9629e03781c027f884a17ada0550 2067816 admin required dpkg_1.18.15+nmu1_amd64.deb
 75dbcd90ada67522d79206b65519865e 280736 debug extra dselect-dbgsym_1.18.15+nmu1_amd64.deb
 e490b38b2b132c26670635628e302941 1270868 admin optional dselect_1.18.15+nmu1_amd64.deb
 0d206c14b1ffd5cb6b09608e9774b3bf 1040980 libdevel optional libdpkg-dev_1.18.15+nmu1_amd64.deb
 e22e289a709d36d2186da60e07b68225 1242182 perl optional libdpkg-perl_1.18.15+nmu1_all.deb

同じディレクトリにビルドツリーも表示されますが、タイムスタンプで判断すると、ビルドツリーは最後のステップでのみ生成されたことに違いありません。

$dpkg-buildpackage -us -uc

提供されたチェックサムは現在標準(同じ意味)でなければなりません。少なくとも私が知っている限り、これは繰り返し可能なビルド。。私は管理者と私が構築したパッケージの整合性を確認できることを願っています。 dpkg-buildpackageのマンページを見て、「reproducible」キーワードを検索してみましたが、見つかりませんでした。

ベストアンサー1

管理者は、提供されたパッチが問題を解決するかどうかを確認するように要求します。パッチで以前に発生したエラーなしでdpkgインストールできる場合は、パッチが問題を解決しました。libconfig-model-perlそれ以外の場合、パッチには実際の問題を正確に見つけるのに役立つより詳細な出力も含まれます。これが必要なすべてです。繰り返し可能なビルドについて心配する必要はありません。

ファイルがあるため、.changesビルドが正常に完了しました。dpkg幅広いテストコレクションが含まれているため、正しく構築されていることを確認できます。

それにもかかわらず、現在再現可能なパッケージを構築するには、次のものが必要です。修正されたツールチェーン、再現可能なビルドは非常に具体的な質問に答えます。まったく同じビルド環境、一部のリファレンスと同じパッケージをビルドできますか? 」。管理者とあなたが同じビルド環境を持つ可能性はありません。

ファイルのチェックサムは.changes再現可能な意味で標準化されていません。 2つの理由で表示されます。

  • アーカイブにアップロードされたパッケージが正しくアップロードされていることを確認してください。
  • アーカイブにアップロードされたパッケージがアップローダが署名したパッケージと一致することを確認してください(これはDebianパッケージの「整合性チェーン」の一部です)。

続々と再建同じソース現在、他のチェックサムが生成されると予想されます。

おすすめ記事