1 ポイント 投稿者 GN⁺ 2025-04-12 | 7件のコメント | WhatsAppで共有
  • 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 という独立検証システムを公開運用する計画で、これはパッケージのメタデータを分析し、再ビルドによって再現可能性を検証する
  • rebuilderddiffoscope によって差分レポートを生成できる

パッケージングガイドラインと品質向上

  • Fedoraのパッケージングガイドラインは「可能であれば再現可能にビルドされるべき」と更新される予定
  • 再現可能ビルドはセキュリティだけでなく、パッケージ品質の向上にも寄与する
    • 例: アーキテクチャ非依存パッケージでハードウェア依存性が見つかった場合、それはバグである可能性がある

再現不可能な例外ケース

  • Haskellはマルチスレッドビルド時に再現不可能で、修正作業が進行中
  • Goはデバッグファイル .gdb_index が一定しないため再現不可能で、解決策はない
  • Linuxカーネルモジュール署名で一時キーが使われており、関連パッチが提案されている

コミュニティからのフィードバック

  • Fedoraインフラチームから rebuilderd の配置場所や保守に関する質問が出ている
  • rebuilderd を Koji に統合できるかどうかも議論されている
  • 独立した検証のために Koji 以外のシステムを使うのが望ましいという意見もある
  • 一部では rebuilderd の代わりに Copr を活用する案も提案されている
  • 全体としては、既存のFedoraツールとの統合性を高める方向が好まれている

今後の手続き

  • FESCo(Fedora Engineering Steering Committee)に提案チケットを提出する予定
  • 承認されれば、Fedora 43 のリリース目標である10月までに実行作業を本格化する計画
  • エンドユーザーは大きな違いを感じないかもしれないが、サプライチェーンセキュリティの観点で非常に価値のある変更である

7件のコメント

 
bbulbum 2025-04-14

Fedoraチームはいつも素晴らしく、ほとんどの決定が正しい方向へ進化しようとしていると感じます。毎回貢献してくださる皆さんに感謝しながら使っています。

 
kandk 2025-04-14

昔はよく使っていた気がするのですが、最近はなぜ忘れられてしまったのでしょうか?

 
bbulbum 2025-04-14

Linuxコミュニティでは今でも Linuxデスクトップ向けとして非常に高い人気があります。
サーバー用途のディストリビューションではないため、Linuxデスクトップが活発ではない韓国ではそれほど知名度が高くないようです。

 
kandk 2025-04-14

ああ、最近はヘビーユーザーでなければ、サーバーとデスクトップの両方に使えるUbuntuを選ぶことが多いようですね!

 
bbulbum 2025-04-14

Linuxの話題がなんだかうれしくて、つい一言添えたくなりました……(笑)
Ubuntuはsnap導入以降、デスクトップ界隈では評判がかなり落ちましたし……Unity DEも好みが大きく分かれますし……リリース周期が長すぎて最新ドライバーの対応もあまり良くなくて……
デスクトップLinuxを検討しているなら、本当にFedoraをおすすめします。
Fedoraは素の状態に近いGnomeを使っていますし、Gnomeも最近のアップデートがとても充実していて、本当に満足度が高いです!

 
kandk 2025-04-14

ありがとうございます(笑)
Fedoraと聞くと昔の思い出がよみがえりますね

 
GN⁺ 2025-04-12
Hacker Newsのコメント
  • 道すがら出会った仲間こそが本当の宝
  • 静的リンクされたバイナリをもっと見たい。たとえば、Python はインストールして作業を始めるまでが悪夢
  • 彼らもこのプロジェクトに参加しているのを見るのはうれしい
  • Haskell パッケージは、複数スレッドでコンパイルすると現時点では再現可能ではない。でも、これは大きな問題ではないと思う。gcc コンパイラはマルチスレッドコンパイルをサポートしていない。C 言語では、並列化は複数の翻訳単位を並列にコンパイルすることから生まれる
  • この進展には驚かされる。尽力したすべての人に賛辞を送りたい
  • 関連ニュースとして、3月には Debian bookworm のライブイメージが完全に再現可能になったという話がある
  • Fedora ユーザーとして、これが実際に自分に何をもたらすのか気になる。クローズドなビルドのためには理解できるが、なぜ必要なのかは気になる
  • 再現可能性はプロファイルガイド最適化と相性が悪い。特に、ネットワーキングや一貫しないその他の IO を含む場合はそう
  • そう! もっと多くのツールが決定論的であってほしい。自分の願い事リストの最上位には Proxmox の設定がある