DeveloperWiki:再現可能ビルド
再現可能ビルドのミーティングと作業中のドキュメントのリストです。
貢献
Arch Linux は現在 100% 再現可能になるように作業しています。厳密な再現可能ビルドの定義とその利益は プロジェクトのウェブサイト を参照してください。
Arch のユーザーは、継続的再現環境 を見ることで再現可能ビルドの問題に対して貢献することができます。以下に整理したような様々な問題があります。
- FTBS (ソースからのビルドに失敗): ビルドの失敗を手元で再現して、クリーンな chroot 内でビルド (extra-x86_64-build や multilib-build) できない場合はバグレポートを作成する。
- ソースのダウンロードの失敗、問題 (makepkg -o -d) を再現して Arch バグトラッカーにバグレポートを作成する。
- 再現に失敗する。手元で reprotest を使ってパッケージを再現できます。全てのバリエーションが使用可能ではないことに注意してください。シンプルな時間に関連するテストには:
reprotest --variations '+time' 'sudo extra-x86_64-build' '*.pkg.tar.xz'
パッケージが再現可能ではないことにはいくつかの理由がありますが、掘り下げる前にアップストリームのリポジトリか、Debian の再現ステータスを確認してください。
- テストの実行に失敗、それらの失敗はテスト環境に大きく依存しています。ほとんどの場合 LANG=C にすることで、Arch は LANG=C.UTF-8 をサポートしていません
継続的再現環境で実行されているコードに興味があれば、始めのビルドコードは salsa から始まります。
やることリスト
- Arch Linux Archive のクリーンアップスクリプト
- Arch Linux 再現可能スクリプト
- インストールしたパッケージを手元で再現するスクリプト
- 再現可能ビルドの問題を解決する
- ビルドを再現する方法のドキュメント
Arch の再現可能ビルドのアップデート 2018/12/09
rb-general メーリングリストに投稿されました。
2018/01/10 のミーティングのアジェンダ
- Python での UTF-8 の問題。
- LANG=$lang-UTF-8 にしないことによる、たくさんの再現可能ビルドの問題があります。PKGBUILD で明示的に LANG をセットする必要があります。
- この例を参照してください。 https://tests.reproducible-builds.org/archlinux/community/python-cssselect2/build1.log
- Package disorderfs
- 今のところそこまで重要ではありませんが、私のやることリストに追加しました。再現可能スクリプトとの組み合わせで後で使われるかもしれません。
- Pacman リリース
- 新しいリリースを作成するように Pacman チームをどのように説得するか、また何か待たなければいけない妨害はありますか?
- 再現可能ビルドスクリプトの進捗
- スクリプトが厳密に何をしなければいけないかを議論し、RFC?を作成して機能を説明する。
- FIXME: 遭遇した問題を追加する。
- Arch Linux Archive: BUILDINFO ファイルで言及されたパッケージを削除しない
- 現在アーカイブから古いパッケージを削除するスクリプトはありません、古いパッケージをどのくらい保持したいか明確ではありません。
- 記憶が正しければ Sangy がこの問題に取り組んでいました、状態はどうなっていますか? 概念実証スクリプト
- このスクリプトが何をするべきなのかのドキュメントを書く。(仕様)
- 終了させられたビルド
- これを誰かが調査する必要がありますが、どのように手元で再現しますか?ヒント?
- SSL 検証の問題
- SSL 証明書が有効なとき、先にビルドしたパッケージの手元での再現からどのように SSL 問題を回避しますか? HG と SVN はまだ修正されていません。
- 公開やる事リストを作成する
- 再現可能ビルドの作業する人をより増やす必要があります。どのように彼らをガイドするか、どこで進捗と注意が必要な問題を管理するか。