再現性のあるビルド/ステータス

提供: ArchWiki
ナビゲーションに移動 検索に移動

Arch Linux は core および extra パッケージを常に再構築しており、ステータスページ があります。このページには、不良パッケージのステータスと修正が必要なものが含まれています。

問題

全般的

  • ファイル順序の問題と btrfs サイズのバグを解決するには、pacman 5.2 未満でビルドされたすべてのパッケージでリビルドが必要です。ファイルの順序の問題については、影響を受ける extra パッケージがミラーディレクトリで次の 1 つのライナーを実行していることがわかります。
for i in /srv/ftp/extra/os/x86_64/*.pkg.tar.??; do
   bsdtar -tf $i | grep "^\." > pkg-order
   sort pkg-order > sort-order
   if ! diff pkg-order sort-order &>/dev/null; then
     echo $i;
   fi
   rm pkg-order sort-order
done

ファイル順序再構築 FTBFS

accounts-qml-module-0.7-2-x86_64.pkg.tar.xz
archboot-2019.03-1-any.pkg.tar.xz
cmark-0.29.0-1-x86_64.pkg.tar.xz
gtk-sharp-2-2.12.45-2-x86_64.pkg.tar.xz
guile1.8-1.8.8-7-x86_64.pkg.tar.xz
java11-openjfx-11.0.3.u1-1-x86_64.pkg.tar.xz
java11-openjfx-doc-11.0.3.u1-1-x86_64.pkg.tar.xz
java11-openjfx-src-11.0.3.u1-1-x86_64.pkg.tar.xz
java8-openjfx-8.u202-3-x86_64.pkg.tar.xz
java8-openjfx-doc-8.u202-3-x86_64.pkg.tar.xz
java8-openjfx-src-8.u202-3-x86_64.pkg.tar.xz
java-openjfx-13.u14-1-x86_64.pkg.tar.xz
java-openjfx-doc-13.u14-1-x86_64.pkg.tar.xz
java-openjfx-src-13.u14-1-x86_64.pkg.tar.xz
jdk10-openjdk-10.0.2.u13-2-x86_64.pkg.tar.xz
jre10-openjdk-10.0.2.u13-2-x86_64.pkg.tar.xz
jre10-openjdk-headless-10.0.2.u13-2-x86_64.pkg.tar.xz
jsonrpc-glib-3.34.0-1-x86_64.pkg.tar.xz
libva-vdpau-driver-0.7.4-4-x86_64.pkg.tar.xz
liferea-1.12.7-1-x86_64.pkg.tar.xz
linux-atm-2.5.2-6-x86_64.pkg.tar.xz
mono-tools-4.2-2-x86_64.pkg.tar.xz
npapi-sdk-0.27.2-2-any.pkg.tar.xz
nss_ldap-265-7-x86_64.pkg.tar.xz
openjdk10-doc-10.0.2.u13-2-x86_64.pkg.tar.xz
openjdk10-src-10.0.2.u13-2-x86_64.pkg.tar.xz
pam_ldap-186-6-x86_64.pkg.tar.xz
portaudio-1:19.6.0-6-x86_64.pkg.tar.xz
qtav-1.13.0-1-x86_64.pkg.tar.xz

JAR ファイルを含むパッケージ

JAR には各ファイルの変更タイムスタンプが含まれるため、再現できなくなります。ビルドシステムに応じて、これに使用できるさまざまなソリューションがあります。

Ant

現在、再現可能なビルドはサポートされていません。アップストリーム機能リクエスト を参照してください。

Gradle

再現性のあるビルドをサポートする必要があります すぐに使用できます

Maven

固定タイムスタンプに設定できる project.build.outputTimestamp プロパティをサポートします。Maven プラグインの最近のバージョンは、このプロパティを尊重して再現可能なアーティファクトを作成します。 このプロパティはプロジェクトの pom.xml ファイルに設定する必要があります。アップストリームでこれがまだ行われていない場合は、

mvn -Dproject.build.outputTimestamp="$SOURCE_DATE_EPOCH" clean package

プラグインを再現可能なビルドをサポートする最新バージョンに更新するには、プロジェクトの pom.xml にパッチを適用する必要がある場合があります。再現性のあるビルドへの Maven ガイド で、最低限必要なバージョンや追加の必要な構成オプションなどの詳細情報を確認できます。

パッケージの例 (Maven プラグインのバージョン更新用のパッチを含む): junit-system-rules

OpenJDK jar コマンド

組み込みの OpenJDK jar プログラムは、SOURCE_DATE_EPOCH OpenJDK バージョン 15 以降 をサポートします。

strip-nondeterminism

最後の手段として、Debian の [1] を使用すると、JAR を含むさまざまなファイルタイプからファイルタイムスタンプなどの再現不可能なメタデータを削除できます。これは万能薬ではなく (たとえば、ビルドシステムには JAR マニフェストに追加の再現不可能なメタデータが含まれる可能性があり、ストリップ非決定性によりこれらの一部が削除されますが、すべてが削除されるわけではありません)、再現可能なビルドのネイティブサポートがない場合の最後の手段としてのみ使用する必要があります。利用可能:

strip-nondeterminism --timestamp "$SOURCE_DATE_EPOCH"

パッケージ例: pdftk

KDE Kdeveloper プロジェクトファイル

KDE はパッケージアプリテンプレート .tar.bz2 ファイルを作成しますが、再現時に tar ファイルとユーザー ID が異なります。これは再現時のバグである可能性があります。 https://gist.githubusercontent.com/jelly/570313f56ee59be7674ad4cc002232e7/raw/b85536690c48b23ce97650e8db8f0ca18c2dbf1a/gistfile1.txt

The cmake file which generates the issue

Doxygen ドキュメントは、graphviz-2.44.0-2 でビルドされています

graphviz には libpng への依存関係がなかったため、libpng が利用可能になる前にgraphviz がインストールされていたため、dlopen としてマークされていなかったため、ドットで PNG 生成を利用できませんでした。生成ドキュメントとして doxygen に依存し、次の差分を含むすべてのパッケージは再構築が必要です。

│ │ --rw-r--r--   0 root         (0) root         (0)    20234 2020-05-16 12:32:36.000000 usr/share/doc/grantlee/classGrantlee_1_1Parser.html
│ │ --rw-r--r--   0 root         (0) root         (0)      265 2020-05-16 12:32:36.000000 usr/share/doc/grantlee/classGrantlee_1_1Parser__inherit__graph.map
│ │ --rw-r--r--   0 root         (0) root         (0)       32 2020-05-16 12:32:36.000000 usr/share/doc/grantlee/classGrantlee_1_1Parser__inherit__graph.md5
│ │ --rw-r--r--   0 root         (0) root         (0)     3136 2020-05-16 12:32:36.000000 usr/share/doc/grantlee/classGrantlee_1_1Parser__inherit__graph.png
│ │ +-rw-r--r--   0 root         (0) root         (0)    19961 2020-05-16 12:32:36.000000 usr/share/doc/grantlee/classGrantlee_1_1Parser.html
│ │ +-rw-r--r--   0 root         (0) root         (0)      598 2020-05-16 12:32:36.000000 usr/share/doc/grantlee/classGrantlee_1_1Parser__inherit__graph.dot

[core]

パッケージ 問題 解決策/パッチ 譲受人 解決済み
audit FTBFS with linux-headers 5.17+ proposed none No
dmraid FTBFS による -Werror=format-security proposed upstream on 2022-10-06 none No
gcc-ada 一部の .ads ファイル内のファイル時間 none none No
ldns ソースファイル名を含むバイナリはメイクフラグによって異なります proposed upstream none No
libverto /bin/sh = Dash を使用してビルドするときにファイルが見つからない マージ済み ですがリリースされていません (2021-03 の最新リリース 0.3.2) none No
linux 署名付きモジュール none none No
linux-docs 多くの問題 - 注文、リンク, ... none none No
linux-headers /usr/lib/modules/*/build/vmlinux diff[リンク切れ 2021-11-15] none none No
linux-lts linux の場合 none none No
linux-lts-docs linux-docs について none none No
linux-lts-headers linux-headers について none none No
nss shlibsign/usr/lib/lib{freebl3,freeblpriv3,softokn3}.chk のバイナリの違い none none No
perl タイムスタンプ、ビルド時にエンコードされた uname none none No
syslinux FTBFS proposed in issue none No

[extra]

パッケージ 問題 解決策/パッチ 譲受人 解決済み
abiword usr/lib/python2.7/site-packages/gi/overrides/Abi.pyc および .pyo none none No
accounts-qml-module .BUILDINFO サイズの問題 - リビルド中の FTBFS none none No
amdvlk usr/lib/amdvlk64.so には多くの違いがあります none none No
ant .jar ファイルの違い none none No
ant-doc 大量のタイムスタンプ (javadoc)、および .zip ファイルの違い none none No
antlr2AUR usr/share/java/antlr2.jar none none No
apparmor バックアップ配列にファイルを追加するには、並べ替えが必要です。usr/lib/python3.8/site-packages/LibAppArmor/__pycache__/LibAppArmor.cpython-38.pyc none none No
asymptote HTML と情報の日付。PDF ドキュメントの違い (日付?) none none No
autogen マニュアルページのタイムスタンプ、ファイル所有権が異なる sr/share/autogen/libopts-42.1.17.tar.gz、およびバイナリの小さな変更 usr/bin/autogen need export MAN_PAGE_DATE=... and configure --enable-timeout=70 none No
bigloo あちこちにある uname とタイムスタンプ none none No
breezy 3.0.2.3-3 は repro と makechrootpkg の両方で再現可能 tooling issue? none No
brltty usr/share/java/brlapi.jar none none No
check-docs たくさんの texi2html タイムスタンプ none none No
chromaprint usr/bin/fpcalc のバイナリ差分 none none No
clisp IPアドレス; ps ドキュメントのタイムスタンプ、おそらくもっと多く none none No
colord プロファイル ID は usr/share/color/icc/colord/{Crayons,x11-colors}.icc で異なり、バイナリの違いは usr/lib/colord で異なります none none No
conky タイムスタンプ (toluapp から) および uname (少なくとも) none none No
deluge .pyc file, .egg ファイル none none No
doxygen-docs 違いのある多くの PDF none none No
ecl uname、タイムスタンプ、gzip、その他多くのバイナリの違い none none No
eclipse-ecj .jar ファイル none none No
efitools /usr/share/efitools/efi/LockDown.efi バイナリの違いがあります none none No
efl バイナリの違いがたくさんある none none No
efl-docs PDF の相違点 (日付を含む) none none No
emacs usr/bin/emacs のバイナリの違い none none No
extra-cmake-modules /usr/share/doc/ECM/ExtraCMakeModules.qch の小さな順序の違い none none No
firefox firefox ; PGO? bug + patch[リンク切れ 2023-05-20] none No
fontconfig 再現性のある FTBFS。マニュアルページ内のタイムスタンプ none none No
fontforge FontForge と一部のライブラリのバイナリの違い none none No
libakonadi usr/share/kdevappwizard/templates/akonadi{resource,serializer}.tar.bz2 内のファイルのユーザー/グループ名 none none No
libbluray usr/share/java/{libbluray{,-awt}-j2se-1.2.0.jar のファイル属性 (?) の違い none none No
libgee usr/lib/libgee-0.8.so.2.6.1 のバイナリの違い none none No
libgtop /usr/bin/libgtop_server2 の uname none none No
libibus /usr/lib/python2.7/site-packages/gi/overrides/IBus.pyc.pyo には違いがあります none none No
libjpeg-turbo FTBFS は再現中です。makerepropkg - どこでも多くの違いがあります... none none No
liblangtag /usr/share/gir-1.0/LangTag-0.6.gir none none No
libmp4v2 usr/include/mp4v2/project.h および usr/lib/libmp4v2.so.2.0.0 のタイムスタンプ none none No
libquvi libquvi-0.9-0.9.4.so のタイムスタンプ none none No
lirc yaml ファイルのタイムスタンプ、usr/share/lirc/lirc-0.10.1.tar.gz には多くのタイムスタンプの違いがあり、再現すると、makerepropkg では見つからない poll() 検出の問題が発生します。 patch none No
meson .pyc ファイル、またいくつかのテスト .pyc ファイルが欠落しています none none No
r ファイル内の多数のタイムスタンプ、gzip タイムスタンプ、/tmp/ 内にランダムに (?) 生成されたパス、バイナリの違い... none none No
transmission-gtk usr/bin/transmission-gtk の uname、ベンダーの依存関係 (以下を uname -r 含む miniupncpc を使用してビルドします) none none No
zabbix-agent2 /usr/bin/zabbix_agent2 のタイムスタンプ none none No
zeitgeist diff[リンク切れ 2021-11-15] /usr/lib/libzeitgeist-2.0.so.0.0.0 の奇妙なテキストの違い none none No

[multilib]

パッケージ 問題 解決策/パッチ 譲受人 解決済み
lib32-keyutils バイナリにはビルド日が含まれます proposed none No