Skip to content

Add CI check that rebuilds Ventoy's EFI binaries reproducibly - #3779

Closed
hnws wants to merge 1 commit into
ventoy:masterfrom
hnws:ci/edk2-efi-reproducible
Closed

hnws wants to merge 1 commit into
ventoy:masterfrom
hnws:ci/edk2-efi-reproducible

Conversation

@hnws

@hnws hnws commented Oct 15, 2026

Copy link
Copy Markdown

Rebuild every EFI binary Ventoy compiles itself (Ventoy and VtoyUtil apps, iso9660/udf EfiFs drivers, for x64/ia32/aa64) and fail unless each matches the signed copy in a release byte for byte, apart from the Authenticode signature and the two PE header fields it changes (CheckSum, Certificate Table directory entry).

  • EDK2 builds run in the repo's Dockerfile on a digest-pinned centos:7, with the tree at the original path /home/share/Ventoy/EDKII so the embedded FILE strings match.
  • EfiFs drivers: pbatard/efifs 6e00f7e (ia32/aa64) and 61494b4 (x64), GRUB 4dd4ceec0 with efifs's 0000-GRUB-fixes.patch, plus Ventoy's EDK2/efiffs org->mod changes applied as a diff.
  • Inputs are pinned by SHA-256; the release tarball is checked against the release's sha256.txt.
  • Also reports whether the committed INSTALL/ventoy/*.efi blobs match. The Ventoy/VtoyUtil blobs are currently stale (last updated 1.0.78).

Verified locally against ventoy-1.1.18: all 12 binaries match.

Rebuild every EFI binary Ventoy compiles itself (Ventoy and VtoyUtil
apps, iso9660/udf EfiFs drivers, for x64/ia32/aa64) and fail unless each
matches the signed copy in a release byte for byte, apart from the
Authenticode signature and the two PE header fields it changes
(CheckSum, Certificate Table directory entry).

- EDK2 builds run in the repo's Dockerfile on a digest-pinned centos:7,
  with the tree at the original path /home/share/Ventoy/EDKII so the
  embedded __FILE__ strings match.
- EfiFs drivers: pbatard/efifs 6e00f7e (ia32/aa64) and 61494b4 (x64),
  GRUB 4dd4ceec0 with efifs's 0000-GRUB-fixes.patch, plus Ventoy's
  EDK2/efiffs org->mod changes applied as a diff.
- Inputs are pinned by SHA-256; the release tarball is checked against
  the release's sha256.txt.
- Also reports whether the committed INSTALL/ventoy/*.efi blobs match.
  The Ventoy/VtoyUtil blobs are currently stale (last updated 1.0.78).

Verified locally against ventoy-1.1.18: all 12 binaries match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hnws hnws closed this Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant