Add a note about guix issues with git merge.conflictstyle being set to zdiff3, and add information about how to uninstall for users of guix-install.sh
doc: guix: Troubleshooting zdiff3 issue and uninstalling. #32442
pull davidgumberg wants to merge 2 commits into bitcoin:master from davidgumberg:5-7-25-guix-doc changing 1 files +18 −1-
davidgumberg commented at 9:13 PM on May 7, 2025: contributor
-
DrahtBot commented at 9:13 PM on May 7, 2025: contributor
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
<!--006a51241073e994b41acfe9ec718e94-->
Code Coverage & Benchmarks
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/32442.
<!--021abf342d371248e50ceaed478a90ca-->
Reviews
See the guideline for information on the review process.
If your review is incorrectly listed, please copy-paste <code><!--meta-tag:bot-skip--></code> into the comment that the bot should ignore.
<!--5faf32d7da4f0f540f40219e4f7537a3-->
LLM Linter (✨ experimental)
Possible typos and grammar issues:
- purge guix
->sudo apt purge guix` [closing backtick appears without an opening; the package-remove command should be enclosed in backticks for clarity]
<sup>2025-12-12</sup>
- purge guix
- DrahtBot added the label Docs on May 7, 2025
- davidgumberg force-pushed on May 7, 2025
- davidgumberg force-pushed on May 7, 2025
-
in contrib/guix/INSTALL.md:838 in 726dd9ccc5 outdated
832 | @@ -784,7 +833,9 @@ an irreversible way, you may want to completely purge Guix from your system and 833 | start over. 834 | 835 | 1. Uninstall Guix itself according to the way you installed it (e.g. `sudo apt 836 | - purge guix` for Ubuntu packaging, `sudo make uninstall` for a build from source). 837 | + purge guix` for Ubuntu packaging, `sudo make uninstall` for a build from 838 | + source), or running the GUIX [install script][install-script] with the 839 | + `--unininstall` [flag](https://guix.gnu.org/manual/devel/en/guix.html#index-uninstalling-Guix).
fanquake commented at 10:12 AM on May 8, 2025:`--uninstall` [flag](https://guix.gnu.org/manual/devel/en/guix.html#index-uninstalling-Guix).
davidgumberg commented at 6:03 PM on May 8, 2025:Fixed, thanks.
in contrib/guix/INSTALL.md:801 in 726dd9ccc5 outdated
795 | @@ -763,6 +796,22 @@ Please see the following links for more details: 796 | - A commit to skip this test in Guix has been merged into the core-updates branch: 797 | [savannah/guix@6ba1058](https://git.savannah.gnu.org/cgit/guix.git/commit/?id=6ba1058df0c4ce5611c2367531ae5c3cdc729ab4) 798 | 799 | +## zdiff3 800 | + 801 | +[Currently](https://issues.guix.gnu.org/72942) `guix` builds may fail if the
fanquake commented at 10:12 AM on May 8, 2025:This is an interesting bug
laanwj commented at 1:27 PM on May 8, 2025:Would it be possible to work around this in the build script somehow?
i guess not, i mean except by changing a global git setting there, which would be awful behavior...
maflcko commented at 9:48 AM on May 14, 2025:Are there steps to reproduce on a fresh install? I tried Ubuntu 24.04, but it seems to pass:
1 export DEBIAN_FRONTEND=noninteractive && apt update && apt install git vim htop guix bash curl make -y && groupadd --system guixbuild && for i in `seq -w 1 10`; do useradd -g guixbuild -G guixbuild -d /var/empty -s `which nologin` -c "Guix build user $i" --system guixbuilder$i; done 2 git config --global merge.conflictstyle zdiff3 3 guix-daemon --build-users-group=guixbuild & 4 guix time-machine --url=https://git.savannah.gnu.org/git/guix.git --commit=53396a22afc04536ddf75d8f82ad2eafa5082725 -- install hello
davidgumberg commented at 7:09 PM on December 10, 2025:You can reproduce this issue as follows with
podman:Ubuntu container
# The reason a Dockerfile is needed is to get systemd installed and running in # the container. mkdir -p /tmp/ubuntu-systemd-container && cd /tmp/ubuntu-systemd-container cat > ./Dockerfile << 'EOF' FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update RUN apt-get install -y curl git gpg systemd make uidmap wget xz-utils CMD ["/lib/systemd/systemd"] EOF # I haven't confirmed, but I don't think getting systemd running is as easy # with docker podman build -t ubuntu-systemd . podman run -d --replace --name ubuntu-systemd --systemd=always ubuntu-systemd podman exec -it ubuntu-systemd /bin/bashInside the container:
git config --global merge.conflictstyle zdiff3 # https://guix.gnu.org/manual/en/html_node/Binary-Installation.html#Binary-Installation-1 cd /tmp wget -O guix-install.sh https://guix.gnu.org/install.sh chmod +x guix-install.sh yes '' | ./guix-install.sh git clone https://github.com/bitcoin/bitcoin.git --depth 1 && cd bitcoin HOSTS=x86_64-linux-gnu ./contrib/guix/guix-buildFedora Container
Running the same commands as above once inside the container:
mkdir -p /tmp/fedora-systemd-container && cd /tmp/fedora-systemd-container cat > ./Dockerfile << 'EOF' FROM registry.fedoraproject.org/fedora:43 RUN dnf update -y RUN dnf -y install git make systemd wget CMD ["/lib/systemd/systemd"] EOF # I haven't confirmed, but I don't think getting systemd running is as easy # with docker podman build -t fedora-systemd . podman run -d --replace --name fedora-systemd --systemd=always fedora-systemd podman exec -it fedora-systemd /bin/bashdavidgumberg force-pushed on May 8, 2025fanquake commented at 3:14 PM on October 17, 2025: memberRelated upstream issue: https://codeberg.org/guix/guix/issues/3576
fanquake commented at 1:59 PM on December 5, 2025: memberA commit has landed upstream: https://codeberg.org/guix/guix/commit/bd2edc9e435402b48fd201b56ab486151512717a.
fanquake commented at 10:16 AM on December 8, 2025: memberProbably also related: https://codeberg.org/guix/guix/pulls/4737
in contrib/guix/INSTALL.md:635 in 2de60ed140
630 | +easiest solution is to set `SELinux` to permissive for guix-daemon: 631 | + 632 | +```bash 633 | +# as root 634 | +semanage permissive -a guix_daemon.guix_daemon_t 635 | +```
hebasto commented at 1:56 PM on December 8, 2025:I believe this is no longer necessary.
On my Fedora 43 installation with the working Guix:
$ sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Memory protection checking: actual (secure) Max kernel policy version: 35 $ guix describe Generation 27 Dec 05 2025 14:13:44 (current) guix bd2edc9 repository URL: https://git.guix.gnu.org/guix.git branch: master commit: bd2edc9e435402b48fd201b56ab486151512717a
davidgumberg commented at 7:12 PM on December 10, 2025:Thanks for testing this, I've dropped this commit.
davidgumberg force-pushed on Dec 10, 2025davidgumberg commented at 7:14 PM on December 10, 2025: contributorPushed to drop the SELinux note since the issue seems to have been resolved upstream.
davidgumberg renamed this:doc: Add troubleshooting note about Guix on SELinux systems
doc: guix: Troubleshooting zdiff3 issue and uninstalling.
on Dec 10, 2025in contrib/guix/INSTALL.md:772 in cb4c677ef5
769 | + 770 | +[Currently](https://issues.guix.gnu.org/72942) `guix` builds may fail if the 771 | +global git config has `merge.conflictstyle` set to `zdiff3` as follows: 772 | + 773 | +``` 774 | +Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
hebasto commented at 7:35 PM on December 10, 2025:The default URL of the repository has been updated recently:
Updating channel 'guix' from Git repository at 'https://git.guix.gnu.org/guix.git'...
davidgumberg commented at 7:56 PM on December 10, 2025:I'm not sure which is the "canonical" one, but git.guix.gnu.org redirects to codeberg and that is what I actually see in the error message:
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'
davidgumberg commented at 8:04 PM on December 10, 2025:Thanks for catching this, I've updated the error message to what is actually printed. I think fixing the rest of the savannah->codeberg links could be done in a follow-up that also changes the
guix time-machine --urlin/contrib/guix/libexec/prelude.bashdavidgumberg force-pushed on Dec 10, 2025DrahtBot added the label CI failed on Dec 10, 2025DrahtBot removed the label CI failed on Dec 10, 2025guix: doc: Suggest guix-install.sh --uninstall ea1be38677guix: doc: zdiff3 doesn't work e76e886581in contrib/guix/INSTALL.md:803 in 15ebdb4044
798 | @@ -782,7 +799,9 @@ an irreversible way, you may want to completely purge Guix from your system and 799 | start over. 800 | 801 | 1. Uninstall Guix itself according to the way you installed it (e.g. `sudo apt 802 | - purge guix` for Ubuntu packaging, `sudo make uninstall` for a build from source). 803 | + purge guix` for Ubuntu packaging, `sudo make uninstall` for a build from 804 | + source), or running the GUIX [install script][install-script] with the
maflcko commented at 8:25 AM on December 11, 2025:running -> run [The sentence starts with an imperative ("Uninstall Guix itself...") and needs a parallel imperative verb; "or running" is a fragment — "or run" makes the coordination grammatical.]
davidgumberg commented at 4:53 PM on December 12, 2025:The mistake I made was that
or running...should be inside of the parentheses. The items in the parentheses don't "need" to be parallel with "Uninstall" even if you respect the parallel structure device as a rule (which it isn't.)I moved the guix install script instructions inside the parentheses.
davidgumberg force-pushed on Dec 12, 2025in contrib/guix/INSTALL.md:766 in e76e886581
759 | @@ -758,13 +760,28 @@ Please see the following links for more details: 760 | 761 | - An upstream coreutils bug has been filed: [debbugs#47940](https://debbugs.gnu.org/cgi/bugreport.cgi?bug=47940) 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 is included since Guix 1.4.0: 764 | -[codeberg/guix@6ba1058](https://codeberg.org/guix/guix/commit/6ba1058df0c4ce5611c2367531ae5c3cdc729ab4) 765 | +- A commit to skip this test in Guix has been merged into the core-updates branch: 766 | +[savannah/guix@6ba1058](https://git.savannah.gnu.org/cgit/guix.git/commit/?id=6ba1058df0c4ce5611c2367531ae5c3cdc729ab4) 767 | 768 | +## zdiff3
hebasto commented at 2:04 PM on January 8, 2026:### zdiff3in contrib/guix/INSTALL.md:803 in e76e886581
798 | @@ -782,7 +799,9 @@ an irreversible way, you may want to completely purge Guix from your system and 799 | start over. 800 | 801 | 1. Uninstall Guix itself according to the way you installed it (e.g. `sudo apt 802 | - purge guix` for Ubuntu packaging, `sudo make uninstall` for a build from source). 803 | + purge guix` for Ubuntu packaging, `sudo make uninstall` for a build from 804 | + source, or running the GUIX [install script][install-script] with the
hebasto commented at 2:04 PM on January 8, 2026:source, or running the Guix [install script][install-script] with thehebasto approvedhebasto commented at 2:04 PM on January 8, 2026: memberACK e76e8865818dc5369fd4e31e09c3d3103a6b75f8.
sedited approvedsedited commented at 12:28 PM on March 19, 2026: contributorutACK e76e8865818dc5369fd4e31e09c3d3103a6b75f8
I haven't reproduced the problem, but based on the reports in the discussion this seems like a sane change.
achow101 commented at 11:31 PM on March 19, 2026: memberACK e76e8865818dc5369fd4e31e09c3d3103a6b75f8
achow101 merged this on Mar 19, 2026achow101 closed this on Mar 19, 2026
github-metadata-mirror
This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-14 18:12 UTC
This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me