Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
ea1be38
guix: doc: Suggest guix-install.sh --uninstall
davidgumberg May 7, 2025
e76e886
guix: doc: zdiff3 doesn't work
davidgumberg May 7, 2025
d2716e9
policy: update `AreInputsStandard` to return error string
ismaelsadeeq Nov 23, 2023
248c175
test: ensure `ValidateInputsStandardness` optionally returns debug st…
ismaelsadeeq Oct 13, 2025
d8f4e7c
doc: add release notes
ismaelsadeeq Oct 14, 2025
ddf2a06
Fix compatibility with `-debuglogfile` command-line option
hebasto Mar 10, 2026
fa2670b
refactor: Enable -Wswitch in exhaustive switch
Feb 26, 2026
fa4ec13
build: Enable -Wcovered-switch-default
Feb 28, 2026
0f323e1
guix: add --no-same-owner to TAR_OPTIONS
fanquake Feb 4, 2026
31eb46f
guix: update to c5eee3336cc1d10a3cc1c97fde2809c3451624d3
fanquake Sep 1, 2024
dc0ddab
guix: drop CMake workaround
fanquake Jan 14, 2026
2bf97e8
guix: switch to upstream osslsigncode package
fanquake Feb 10, 2026
a7524f5
guix: switch to upstream python-lief package
fanquake Feb 10, 2026
feea2a8
ci: use LIEF 0.17.5 in lint job
fanquake Feb 10, 2026
2276426
guix: switch to upstream python-oscrypto package
fanquake Feb 11, 2026
ab9a98b
guix: combine gcc-libgcc-patches with base-gcc
fanquake Feb 12, 2026
978023f
guix: use latest glibc 2.31
fanquake Feb 18, 2026
3293e9a
guix: document when GCC SSA gen patch can be removed
fanquake Mar 16, 2026
fa71c6e
ci: Avoid intermittent Windows generate download failures
Mar 19, 2026
658e68f
scripted-diff: Rename `WAIT_TIMEOUT` to `TEST_WAIT_TIMEOUT`
hebasto Mar 19, 2026
3ca3e51
Merge bitcoin/bitcoin#34684: refactor: Enable -Wswitch in exhaustive …
achow101 Mar 19, 2026
bc1c540
Merge bitcoin/bitcoin#29060: Policy: Report debug message why inputs …
achow101 Mar 19, 2026
14053d8
Merge bitcoin/bitcoin#34550: guix: update time-machine to c5eee3336cc…
achow101 Mar 19, 2026
93e8bcc
Merge bitcoin/bitcoin#32442: doc: guix: Troubleshooting zdiff3 issue …
achow101 Mar 19, 2026
d58e0ad
Merge bitcoin/bitcoin#33215: Fix compatibility with `-debuglogfile` c…
achow101 Mar 19, 2026
d14293c
Merge bitcoin/bitcoin#34859: ci: Retry on intermittent Windows genera…
fanquake Mar 20, 2026
b425a81
Merge bitcoin/bitcoin#34868: scripted-diff: Rename `WAIT_TIMEOUT` to …
fanquake Mar 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .github/ci-windows.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import shlex
import subprocess
import sys
import time
from pathlib import Path

sys.path.append(str(Path(__file__).resolve().parent.parent / "test"))
Expand Down Expand Up @@ -73,7 +74,12 @@ def generate(ci_type):
"--preset",
"vs2026",
] + GENERATE_OPTIONS[ci_type]
run(command)
if run(command, check=False).returncode != 0:
print("=== ⚠️ ===")
print("Generate failure! Network issue? Retry once ...")
time.sleep(12)
print("=== ⚠️ ===")
run(command)


def build(_ci_type):
Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@ else()
try_append_cxx_flags("-Wall" TARGET warn_interface SKIP_LINK)
try_append_cxx_flags("-Wextra" TARGET warn_interface SKIP_LINK)
try_append_cxx_flags("-Wgnu" TARGET warn_interface SKIP_LINK)
try_append_cxx_flags("-Wcovered-switch-default" TARGET warn_interface SKIP_LINK)
# Some compilers will ignore -Wformat-security without -Wformat, so just combine the two here.
try_append_cxx_flags("-Wformat -Wformat-security" TARGET warn_interface SKIP_LINK)
try_append_cxx_flags("-Wvla" TARGET warn_interface SKIP_LINK)
Expand Down
2 changes: 1 addition & 1 deletion ci/lint/01_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ command -v python3
python3 --version

${CI_RETRY_EXE} pip3 install \
lief==0.16.6 \
lief==0.17.5 \
mypy==1.19.1 \
pyzmq==27.1.0 \
ruff==0.15.5
Expand Down
3 changes: 3 additions & 0 deletions cmake/leveldb.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,9 @@ else()
try_append_cxx_flags("-Wconditional-uninitialized" TARGET nowarn_leveldb_interface SKIP_LINK
IF_CHECK_PASSED "-Wno-conditional-uninitialized"
)
try_append_cxx_flags("-Wcovered-switch-default" TARGET nowarn_leveldb_interface SKIP_LINK
IF_CHECK_PASSED "-Wno-covered-switch-default"
)
endif()

target_link_libraries(leveldb PRIVATE
Expand Down
19 changes: 18 additions & 1 deletion contrib/guix/INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -761,6 +761,21 @@ Please see the following links for more details:
- A commit to skip this test is included since Guix 1.4.0:
[codeberg/guix@6ba1058](https://codeberg.org/guix/guix/commit/6ba1058df0c4ce5611c2367531ae5c3cdc729ab4)

## zdiff3

[Currently](https://issues.guix.gnu.org/72942) `guix` builds may fail if the
global git config has `merge.conflictstyle` set to `zdiff3` as follows:

```
Updating channel 'guix' from Git repository at 'https://codeberg.org/guix/guix.git'...
guix time-machine: error: Git error: unknown style 'zdiff3' given for 'merge.conflictstyle'
```

This can be fixed by setting `merge.conflictstyle` to `diff3`:

```bash
git config --global merge.conflictstyle diff3
```

[install-script]: #options-1-and-2-using-the-official-shell-installer-script-or-binary-tarball
[install-bin-tarball]: #options-1-and-2-using-the-official-shell-installer-script-or-binary-tarball
Expand All @@ -782,7 +797,9 @@ an irreversible way, you may want to completely purge Guix from your system and
start over.

1. Uninstall Guix itself according to the way you installed it (e.g. `sudo apt
purge guix` for Ubuntu packaging, `sudo make uninstall` for a build from source).
purge guix` for Ubuntu packaging, `sudo make uninstall` for a build from
source, or running the GUIX [install script][install-script] with the
`--uninstall` [flag](https://guix.gnu.org/manual/devel/en/guix.html#index-uninstalling-Guix)).
2. Remove all build users and groups

You may check for relevant users and groups using:
Expand Down
3 changes: 3 additions & 0 deletions contrib/guix/guix-build
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,8 @@ EOF
# Running in an isolated container minimizes build-time differences
# between machines and improves reproducibility
#
# --writable-root make the root filesystem writable
#
# --pure unset existing environment variables
#
# Same rationale as --container
Expand Down Expand Up @@ -441,6 +443,7 @@ EOF
# shellcheck disable=SC2086,SC2031
time-machine shell --manifest="${PWD}/contrib/guix/manifest.scm" \
--container \
--writable-root \
--pure \
--no-cwd \
--share="$PWD"=/bitcoin \
Expand Down
3 changes: 3 additions & 0 deletions contrib/guix/guix-codesign
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,8 @@ EOF
# Running in an isolated container minimizes build-time differences
# between machines and improves reproducibility
#
# --writable-root make the root filesystem writable
#
# --pure unset existing environment variables
#
# Same rationale as --container
Expand Down Expand Up @@ -341,6 +343,7 @@ EOF
# shellcheck disable=SC2086,SC2031
time-machine shell --manifest="${PWD}/contrib/guix/manifest.scm" \
--container \
--writable-root \
--pure \
--no-cwd \
--share="$PWD"=/bitcoin \
Expand Down
6 changes: 1 addition & 5 deletions contrib/guix/libexec/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export LC_ALL=C
set -e -o pipefail

# Environment variables for determinism
export TAR_OPTIONS="--owner=0 --group=0 --numeric-owner --mtime='@${SOURCE_DATE_EPOCH}' --sort=name"
export TAR_OPTIONS="--no-same-owner --owner=0 --group=0 --numeric-owner --mtime='@${SOURCE_DATE_EPOCH}' --sort=name"
export TZ=UTC

# Although Guix _does_ set umask when building its own packages (in our case,
Expand Down Expand Up @@ -272,10 +272,6 @@ mkdir -p "$DISTSRC"
# Install built Bitcoin Core to $INSTALLPATH
case "$HOST" in
*darwin*)
# This workaround can be dropped for CMake >= 3.27.
# See the upstream commit 689616785f76acd844fd448c51c5b2a0711aafa2.
find build -name 'cmake_install.cmake' -exec sed -i 's| -u -r | |g' {} +

cmake --install build --strip --prefix "${INSTALLPATH}" ${V:+--verbose}
;;
*)
Expand Down
2 changes: 1 addition & 1 deletion contrib/guix/libexec/prelude.bash
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ fi
time-machine() {
# shellcheck disable=SC2086
guix time-machine --url=https://codeberg.org/guix/guix.git \
--commit=5cb84f2013c5b1e48a7d0e617032266f1e6059e2 \
--commit=c5eee3336cc1d10a3cc1c97fde2809c3451624d3 \
--cores="$JOBS" \
--keep-failed \
--fallback \
Expand Down
Loading
Loading