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
  1. davidgumberg commented at 9:13 pm on May 7, 2025: contributor
    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
  2. DrahtBot commented at 9:13 pm on May 7, 2025: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/32442.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK hebasto

    If your review is incorrectly listed, please copy-paste <!–meta-tag:bot-skip–> into the comment that the bot should ignore.

    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]

    2025-12-12

  3. DrahtBot added the label Docs on May 7, 2025
  4. davidgumberg force-pushed on May 7, 2025
  5. davidgumberg force-pushed on May 7, 2025
  6. 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:
    0   `--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.
  7. in contrib/guix/INSTALL.md:768 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:

    0    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 
    1    2  git config --global merge.conflictstyle zdiff3 
    2    3  guix-daemon --build-users-group=guixbuild &
    3    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

     0# The reason a Dockerfile is needed is to get systemd installed and running in
     1# the container.
     2mkdir -p /tmp/ubuntu-systemd-container && cd /tmp/ubuntu-systemd-container
     3cat > ./Dockerfile << 'EOF'
     4FROM ubuntu:24.04
     5ENV DEBIAN_FRONTEND=noninteractive
     6
     7RUN apt-get update
     8RUN apt-get install -y curl git gpg systemd make uidmap wget xz-utils
     9CMD ["/lib/systemd/systemd"]
    10EOF
    11
    12# I haven't confirmed, but I don't think getting systemd running is as easy
    13# with docker
    14podman build -t ubuntu-systemd .
    15podman run -d --replace --name ubuntu-systemd --systemd=always ubuntu-systemd
    16podman exec -it ubuntu-systemd /bin/bash
    

    Inside the container:

    0git config --global merge.conflictstyle zdiff3
    1
    2# https://guix.gnu.org/manual/en/html_node/Binary-Installation.html#Binary-Installation-1
    3cd /tmp
    4wget -O guix-install.sh https://guix.gnu.org/install.sh
    5chmod +x guix-install.sh
    6yes '' | ./guix-install.sh
    7
    8git clone https://github.com/bitcoin/bitcoin.git --depth 1 && cd bitcoin
    9HOSTS=x86_64-linux-gnu ./contrib/guix/guix-build
    

    Fedora Container

    Running the same commands as above once inside the container:

     0mkdir -p /tmp/fedora-systemd-container && cd /tmp/fedora-systemd-container
     1cat > ./Dockerfile << 'EOF'
     2FROM registry.fedoraproject.org/fedora:43
     3RUN dnf update -y
     4RUN dnf -y install git make systemd wget
     5CMD ["/lib/systemd/systemd"]
     6EOF
     7
     8# I haven't confirmed, but I don't think getting systemd running is as easy
     9# with docker
    10podman build -t fedora-systemd .
    11podman run -d --replace --name fedora-systemd --systemd=always fedora-systemd
    12podman exec -it fedora-systemd /bin/bash
    
  8. davidgumberg force-pushed on May 8, 2025
  9. fanquake commented at 3:14 pm on October 17, 2025: member
  10. fanquake commented at 1:59 pm on December 5, 2025: member
  11. fanquake commented at 10:16 am on December 8, 2025: member
  12. 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:

     0$ sestatus
     1SELinux status:                 enabled
     2SELinuxfs mount:                /sys/fs/selinux
     3SELinux root directory:         /etc/selinux
     4Loaded policy name:             targeted
     5Current mode:                   enforcing
     6Mode from config file:          enforcing
     7Policy MLS status:              enabled
     8Policy deny_unknown status:     allowed
     9Memory protection checking:     actual (secure)
    10Max kernel policy version:      35
    11$ guix describe
    12Generation 27	Dec 05 2025 14:13:44	(current)
    13  guix bd2edc9
    14    repository URL: https://git.guix.gnu.org/guix.git
    15    branch: master
    16    commit: bd2edc9e435402b48fd201b56ab486151512717a
    

    davidgumberg commented at 7:12 pm on December 10, 2025:
    Thanks for testing this, I’ve dropped this commit.
  13. davidgumberg force-pushed on Dec 10, 2025
  14. davidgumberg commented at 7:14 pm on December 10, 2025: contributor
    Pushed to drop the SELinux note since the issue seems to have been resolved upstream.
  15. davidgumberg renamed this:
    doc: Add troubleshooting note about Guix on SELinux systems
    doc: guix: Troubleshooting zdiff3 issue and uninstalling.
    on Dec 10, 2025
  16. in 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:

    0Updating 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:

    0Updating channel 'guix' from Git repository at 'https://codeberg.org/guix/guix.git'...
    1guix 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 --url in /contrib/guix/libexec/prelude.bash
  17. davidgumberg force-pushed on Dec 10, 2025
  18. DrahtBot added the label CI failed on Dec 10, 2025
  19. DrahtBot removed the label CI failed on Dec 10, 2025
  20. guix: doc: Suggest guix-install.sh --uninstall ea1be38677
  21. guix: doc: zdiff3 doesn't work e76e886581
  22. in 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.

  23. davidgumberg force-pushed on Dec 12, 2025
  24. in 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:
    0### zdiff3
    
  25. in 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:
    0   source, or running the Guix [install script][install-script] with the
    
  26. hebasto approved
  27. hebasto commented at 2:04 pm on January 8, 2026: member
    ACK e76e8865818dc5369fd4e31e09c3d3103a6b75f8.

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-01-28 06:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me