- Fedoraは、全パッケージの99%を再現可能にするための変更を Fedora 43 で進めている
- 既存インフラの改善により90%まで達成しており、残りについてはパッケージャーがバグとして認識して解決するよう促す計画
- セキュリティ強化とパッケージ品質の向上を目標とし、独立した検証ツール
rebuilderd の導入も予定している
オープンソースビルドの再現可能性(Reproducible Builds)概要
- オープンソースソフトウェアのセキュリティを強化し、完全性を検証するために、「再現可能ビルド」の重要性が高まっている
- 再現可能ビルドとは、同一のソースコード、ビルド環境、ビルドコマンドによって、誰でも同じ成果物を生成できるビルドのこと
- Debianはこの分野で10年以上先行しており、現在では公式ライブCDも再現可能に作成できる
- Fedoraは再現可能ビルドへの取り組みを最近始めたが、Fedora 43 の開発サイクルで全パッケージの99%を再現可能にする提案を検討している
FedoraとDebianの違い
- Debianはローカルでビルドしたパッケージのアップロードを許可しており、信頼性が低くなる可能性がある
- Fedoraはすべてのパッケージを中央の厳格に管理されたインフラ上でビルドする
- Fedoraは
dist-git というGitリポジトリにソースおよびハッシュ情報を含めており、パッケージ追跡が容易
Fedora独自の再現可能ビルドの定義
- FedoraはDebianとは異なる定義を採用している
- 署名(signature)や一部のメタデータは除外し、RPMファイルの実際のコンテンツ(payload)に焦点を当てる
- その理由は、RPMフォーマットの特性や署名方式、ビルド時刻(BUILDTIME)やビルドホスト(BUILDHOST)といった情報が含まれるため
- openSUSEは BUILDHOST を
reproducible に設定することで対応している
Fedoraの再現可能ビルドに向けた技術的進展
- Fedora 38 から
SOURCE_DATE_EPOCH を利用してファイルの更新時刻を固定する変更を適用している
- Fedora 41 で
add-determinism というRustベースのツールを導入し、ビルド済みファイルのメタデータを標準化した
- Debianは
strip-nondeterminism というPerlライブラリを使用しているが、FedoraはPerl依存を避けるため独自ツールを選択した
- 現時点で約90%のパッケージ再現可能性を達成している
今後の計画
- 残る9%については、パッケージャーが再現不可能な問題をバグと見なして修正するよう促す計画
fedora-repro-build ユーティリティを提供し、ローカルで Koji ビルドの再現可能性をテストできるようにする
rebuilderd という独立検証システムを公開運用する計画で、これはパッケージのメタデータを分析し、再ビルドによって再現可能性を検証する
rebuilderd は diffoscope によって差分レポートを生成できる
パッケージングガイドラインと品質向上
- Fedoraのパッケージングガイドラインは「可能であれば再現可能にビルドされるべき」と更新される予定
- 再現可能ビルドはセキュリティだけでなく、パッケージ品質の向上にも寄与する
- 例: アーキテクチャ非依存パッケージでハードウェア依存性が見つかった場合、それはバグである可能性がある
再現不可能な例外ケース
- Haskellはマルチスレッドビルド時に再現不可能で、修正作業が進行中
- Goはデバッグファイル
.gdb_index が一定しないため再現不可能で、解決策はない
- Linuxカーネルモジュール署名で一時キーが使われており、関連パッチが提案されている
コミュニティからのフィードバック
- Fedoraインフラチームから rebuilderd の配置場所や保守に関する質問が出ている
- rebuilderd を Koji に統合できるかどうかも議論されている
- 独立した検証のために Koji 以外のシステムを使うのが望ましいという意見もある
- 一部では rebuilderd の代わりに Copr を活用する案も提案されている
- 全体としては、既存のFedoraツールとの統合性を高める方向が好まれている
今後の手続き
- FESCo(Fedora Engineering Steering Committee)に提案チケットを提出する予定
- 承認されれば、Fedora 43 のリリース目標である10月までに実行作業を本格化する計画
- エンドユーザーは大きな違いを感じないかもしれないが、サプライチェーンセキュリティの観点で非常に価値のある変更である
7件のコメント
Fedoraチームはいつも素晴らしく、ほとんどの決定が正しい方向へ進化しようとしていると感じます。毎回貢献してくださる皆さんに感謝しながら使っています。
昔はよく使っていた気がするのですが、最近はなぜ忘れられてしまったのでしょうか?
Linuxコミュニティでは今でも Linuxデスクトップ向けとして非常に高い人気があります。
サーバー用途のディストリビューションではないため、Linuxデスクトップが活発ではない韓国ではそれほど知名度が高くないようです。
ああ、最近はヘビーユーザーでなければ、サーバーとデスクトップの両方に使えるUbuntuを選ぶことが多いようですね!
Linuxの話題がなんだかうれしくて、つい一言添えたくなりました……(笑)
Ubuntuはsnap導入以降、デスクトップ界隈では評判がかなり落ちましたし……Unity DEも好みが大きく分かれますし……リリース周期が長すぎて最新ドライバーの対応もあまり良くなくて……
デスクトップLinuxを検討しているなら、本当にFedoraをおすすめします。
Fedoraは素の状態に近いGnomeを使っていますし、Gnomeも最近のアップデートがとても充実していて、本当に満足度が高いです!
ありがとうございます(笑)
Fedoraと聞くと昔の思い出がよみがえりますね
Hacker Newsのコメント