エンドユーザーとして、特定のパッケージが再現可能な方法でビルドされていることを確認するにはどうすればよいですか?

エンドユーザーとして、特定のパッケージが再現可能な方法でビルドされていることを確認するにはどうすればよいですか?

mksh再現可能な方法でパッケージを構築できることを確認したいと思います。頑張っています

apt build-dep mksh
apt source mksh
cd mksh; dpkg-buildpackage -uc -us
cd ..; sha256sum <freshly build dep>

私が今これをするなら

apt download mksh

ダウンロードしたdebのチェックサムをローカルで作成したDebianパッケージと比較すると、チェックサムが異なります(debに署名しなかったと予想)

これらのチェックサムを一致させるにはどうすればよいですか?

答え1

ソースmkshパッケージは再現可能にビルド可能です。.debつまり、ビルド環境を再現できる場合は、特定のパッケージを再生成できることを意味します。この情報は保存されました.buildinfoファイルにDebian スナップショット、与えられたを構築するために使用するために検索することができます.deb

今、.buildinfoDebian リポジトリのバイナリパッケージとともにファイルはリリースされません。、しかし彼らは出版されました存在するbuildinfos.debian.net.buildinfo現在Debian 11バージョンのファイルが含まれています(mksh例えば amd64バージョン)。これにより、mksh特定のバイナリパッケージのビルド環境が何であるかを確認し、それを再現できます。

ここにはもう一つの微妙さがあります。mkshDebian 11の現在のパッケージはbinNMUですが、ソースコードはそうではありません。正確に公開されたパッケージソースと一致します。既存のバイナリパッケージを再現するには、追加のbinNMU changelog例えば changelog.Debian.amd64.gzamd64パッケージ)には同じ内容があります。

mksh (59c-9+b2) sid; urgency=low, binary-only=yes

  * Binary-only non-maintainer upload for amd64; no source changes.
  * Rebuild for outdated Built-Using

 -- amd64 / i386 Build Daemon (x86-ubc-01) <[email protected]>  Thu, 05 Aug 2021 11:52:19 +0000

あなたができる特定のビルド環境を再現すると、生成された.debファイルはまったく同じでなければなりません。 Debian に配布されたバイナリパッケージは自己署名されません。これを説明するメタデータは次のとおりです。

答え2

あなたはできません。基本データが異なるため、計算されたチェックサムも異なります。同じチェックサムを持つ2つの値を見つけるのは難しい問題です。

関連情報