You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
18d9966 ci: make `guix-check` print out the set of hashes compared against (Kittywhiskers Van Gogh)
90f2581 ci: add mirrors to Bordeaux substitution server (Kittywhiskers Van Gogh)
0ae477b ci: add `berlin.guix.gnu.org` to substitute URLs list (Kittywhiskers Van Gogh)
4891135 ci: ensure that Codeberg is used as the `guix` channel (Kittywhiskers Van Gogh)
24b390d merge bitcoin#33073: warn SOURCE_DATE_EPOCH set in guix-codesign (Kittywhiskers Van Gogh)
f976956 merge bitcoin#32678: warn and abort when SOURCE_DATE_EPOCH is set (Kittywhiskers Van Gogh)
2e0b209 merge bitcoin#32439: accomodate migration to codeberg (Kittywhiskers Van Gogh)
a2d0e4a merge bitcoin#32498: remove Carls substitute server from Guix docs (Kittywhiskers Van Gogh)
2e0e44a merge bitcoin#30989: Drop no longer needed PATH modification (Kittywhiskers Van Gogh)
2d2f220 merge bitcoin#26773: FreeBSD build doc updates to reflect removal of install_db4.sh (Kittywhiskers Van Gogh)
12e04f5 merge bitcoin#26834: remove install_db4.sh (Kittywhiskers Van Gogh)
f3f2fd3 doc: update disclaimer in `build-netbsd.md` (Kittywhiskers Van Gogh)
2ca9984 merge bitcoin#24585: mention that BDB is for the legacy wallet in build-osx.md (Kittywhiskers Van Gogh)
080d4b2 docs: remove extra Berkeley DB fragment in `build-osx.md` (Kittywhiskers Van Gogh)
Pull request description:
## Motivation
Annoyances from trying to build rc1 and rc2 using our Guix container ([source](https://github.com/dashpay/dash/blob/f170aed19ec399ea68ddf003a39e22be7c5d6e8e/contrib/containers/guix/Dockerfile)).
## Additional Information
* Guix has migrated their service provider to Codeberg and have published a timeline for sunsetting the existing `git.savannah.gnu.org` channel ([blog](https://guix.gnu.org/en/blog/2025/migrating-to-codeberg/)). This requires updating our scripts and on the upstream side this was achieved with [bitcoin#32439](bitcoin#32439) but requires additional changes on our end as well.
* As we rely on Ubuntu's distribution of Guix and staleness is a known problem (Debian no longer ships Guix with `trixie` and have flagged the `guix` package as subject to removal, [source](https://lwn.net/Articles/1035491/)), we need to set Codeberg as the channel source ourselves.
* `install_db4.sh` was dropped via [bitcoin#26834](bitcoin#26834) as [bitcoin#26833](bitcoin#26833) was backported (see [dash#6735](#6735)) and the script points to the old `git.savannah.gnu.org` for sources.
* Due to our run-in with nondeterminism in rc1, this pull request also includes backports to deal with some other potential sources of nondeterminism. As we're updating sources, a documentation update removing a no longer available substitution source has also been backported.
* Both official Guix substitution servers are located in Europe (i.e. France and Germany), which makes the time and bandwidth intensive fetch that is inherent with a container with no persistence painfully slow for those located quite away from Europe, so, alongside addition of the German substitution server (`berlin.guix.gnu.org`), mirrors have been added to cover North America (US East) and Asia-Pacific (Singapore).
* The mirrors have been sourced from LibrePlanet ([source](https://libreplanet.org/wiki/Group:Guix/Mirrors)) and per their documentation, substitutes from mirrors are signed by the builder they are mirroring, not the mirror itself and as this PR only authorises Guix's official mirrors (see below), tampering risk should be mitigated.
https://github.com/dashpay/dash/blob/1ca2db9402bcf7e7352f4ee722882893d94ed856/contrib/containers/guix/Dockerfile#L55-L57
* Another annoyance, `guix-check` so far used an ad-hoc method of generating checksums that cannot be (trivially) diffed against the attested checksums provided at [`dashpay/guix.sigs`](https://github.com/dashpay/guix.sigs), by leveraging `guix-attest`'s ability to generate checksums even without a signer, we can produce the exact output an attestor would without needing to be one ([source](https://github.com/dashpay/dash/blob/f170aed19ec399ea68ddf003a39e22be7c5d6e8e/contrib/guix/guix-attest#L101-L104)).
## Breaking Changes
None.
## Checklist
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)**
- [x] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_
ACKs for top commit:
UdjinM6:
ACK 18d9966
Tree-SHA512: 9964b957aacd85b7e193c3019656ea70b8987031bb6ed6189c5933b24f47346fff01a4e37ac23314f802a2084e96a91443e309d5b7b83c79940a5d3202134be2
@@ -760,8 +760,8 @@ Please see the following links for more details:
760
760
761
761
- An upstream coreutils bug has been filed: [debbugs#47940](https://debbugs.gnu.org/cgi/bugreport.cgi?bug=47940)
762
762
- A Guix bug detailing the underlying problem has been filed: [guix-issues#47935](https://issues.guix.gnu.org/47935), [guix-issues#49985](https://issues.guix.gnu.org/49985#5)
763
-
- A commit to skip this test in Guix has been merged into the core-updates branch:
0 commit comments