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

    <!--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.

    Type Reviewers
    ACK hebasto, sedited, achow101

    If your review is incorrectly listed, please copy-paste <code>&lt;!--meta-tag:bot-skip--&gt;</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>

  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:
       `--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: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/bash
    

    Inside 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-build
    

    Fedora 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/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:

    $ 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.

  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:

    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 --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:
    ### 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:
       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.

  28. sedited approved
  29. sedited commented at 12:28 PM on March 19, 2026: contributor

    utACK e76e8865818dc5369fd4e31e09c3d3103a6b75f8

    I haven't reproduced the problem, but based on the reports in the discussion this seems like a sane change.

  30. achow101 commented at 11:31 PM on March 19, 2026: member

    ACK e76e8865818dc5369fd4e31e09c3d3103a6b75f8

  31. achow101 merged this on Mar 19, 2026
  32. achow101 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