Skip to content

Linux x86_64 reproducible builds - #1274

Draft
sneurlax wants to merge 13 commits into
stagingfrom
feat/guix
Draft

sneurlax wants to merge 13 commits into
stagingfrom
feat/guix

Conversation

@sneurlax

@sneurlax sneurlax commented Mar 4, 2026 •

Copy link
Copy Markdown
Member

Experimental Guix orchestration for Linux x86_64. Not ready to merge as working reproducible-build support.

Updated by merging staging d29d84c66049 and preserving the divergent cypherstack history. Staging partially superseded the original implementation: native libraries moved from crypto_plugins submodules/Cargokit to Dart native-assets hooks. The old offline recipe cannot build current staging.

Review fixes implemented:

  • Resolve the source checkout correctly, including Git worktrees; align the SDK version with staging's Flutter 3.47.2.
  • Fail before downloads or container setup when the required legacy workspaces and dependency-template paths are absent. Stale ignored workspaces cannot bypass the guard.
  • Require an independently verified Flutter archive checksum; reject missing/malformed SDK metadata and stale extracted SDK versions during fetch, verification and build setup.
  • Require Cargo's locked inputs and report missing workspaces instead of silently skipping them. Check the required Go cache mount exists.
  • Replace outdated build/reproducibility claims with the concrete remaining port and validation steps in contrib/guix/README.md.

Validation: 6 preflight regression tests pass, including SDK/hash failures and mutation-free rejection of current staging. All 10 shell entry/helper scripts pass syntax checks; diff whitespace checks pass. An independent Sol review verified the guards and tests.

Remaining work: replace legacy workspace/Cargokit assumptions with selected native-assets hooks; vendor every Rust/Go/CMake input; pin Guix channels and all source/toolchain inputs; authenticate extracted caches; produce and compare independent network-isolated builds. No Guix container build, Android support, or reproducible-artifact result is claimed by this update.

@sneurlax

sneurlax commented Mar 4, 2026

Copy link
Copy Markdown
Member Author

Closes #6

IF the supported platforms are enough AND we can't figure out the rest of the platforms. Maybe guix will work in WSL2 for Windows builds and maybe if not guix then nix or something like that can work for macOS and/or iOS (I have doubts about the feasibility for iOS...)

@sneurlax

sneurlax commented Mar 6, 2026

Copy link
Copy Markdown
Member Author

cs_monero linux guix proof of concept pushed to https://github.com/cypherstack/cs_monero/compare/feat/guix ... but guix won't be suitable for macos and ios and there, nix will have to be used

nix is compatible w linux

first I am just seeing if nix can prove reproducibility for cs_monero

if that works then stack wallet may see a feat/nix instead of a feat/guix and this will just be an example

@sneurlax

sneurlax commented Mar 13, 2026 •

Copy link
Copy Markdown
Member Author

got nix working on linux and the rest of the platforms san win but just for flutter, not for stack wallet. TODO

@sneurlax

Copy link
Copy Markdown
Member Author

see progress on https://github.com/cypherstack/stack_wallet/tree/feat/stagex-reproducible-builds ... need to 'just' incorporate monero's new stagex tooling for monero_c->cs_monero, too

@codecov

codecov Bot commented Aug 28, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 13.92%. Comparing base (9ce80be) to head (5268d24).
⚠️ Report is 1 commits behind head on staging.

Additional details and impacted files
@@           Coverage Diff            @@
##           staging    #1274   +/-   ##
========================================
  Coverage    13.92%   13.92%           
========================================
  Files         1139     1139           
  Lines       114707   114707           
========================================
  Hits         15976    15976           
  Misses       98731    98731           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

…20261110/pr-1274

# Conflicts:
#	contrib/guix/guix-attest
#	contrib/guix/guix-build
#	contrib/guix/guix-clean
#	contrib/guix/guix-verify
#	contrib/guix/libexec/build.sh
#	contrib/guix/libexec/prelude.bash
#	contrib/guix/manifest.scm
#	contrib/guix/supplementary/deps/fetch-cargo-deps.sh
#	contrib/guix/supplementary/deps/fetch-pub-deps.sh
#	contrib/guix/supplementary/deps/verify-deps.sh
#	scripts/build_app.sh
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