オープンソースのオペレーティングシステムやディストリビューションを構成する数多くのバイナリパッケージ、これらがどのソースコードをもとにビルドされたのかを検証し、ユーザに対してソフトウェアとしての信頼性を提示することは、プロジェクトやディストリビュータにとって重要なプロセスである。だが実際にこの検証作業をスムースに行うことは難しく、仮にひとつひとつのパッケージを手作業でソースコードからリビルドしたとしても、同じソースからコンパイルされているはずなのにパッケージングされたバイナリとは異なっているケースも少なくない。いま使っているプログラムは本当に信頼できるソースコードからビルドされたものと同一なのか ―この検証作業を自動で行うツールを開発すべく、Arch Linux内で独自プロジェクト「Rebuilder」が4月から始まっている。現時点のバージョンは0.3.0で、ライセンスはGPLv3だ。
- Running an independent Arch Linux rebuilder in 4 easy steps
- Rebuilderd -Arch Linux
- Independent verification of binary packages - reproducible builds -GitHub
RebuilderはArch Linux内のパッケージインデックスをトラックするデーモン「rebuilderd」と、パッケージのリビルドに必要なソースコードの名前やURL、メンテナー(オプション)といった情報をJSON形式で表示するワーカー「rebuild worker」で構成される。
実行するための準備は以下の通り。
- インストール
- マシン/ネットワークのセットアップ
- リビルドに必要なパッケージの同期に関する設定(/etc/rebuilderd-sync.conf)
- Ansible Playbookにロール(rebuilderd)を追加
現時点ではRebuilderがサポートするディストリビューションはArch Linuxのみだが、Debianサポートも検討中だという。Arch Linuxは2016年ごろからパッケージのセキュアな再現に積極的に取り組んでおり、その成果は2019年の「Pacman 5.2」のリリースなどで示されてきたが、Rebuilderはそれよりもさらに進化した検証ツールとして機能することが期待されている。