Subject: bug#61986: Installing qemu-binfmt with support for emulating the host architecture breaks everything

From: "J. Sims" <[email-masked]>
Date: Sun, 05 Mar 2023 18:33:07 +0000

Hey y'all,

I recently setup virtualization on my Guix machine (both libvirt and qemu, for different purposes). While configuring libvirt (via virt-manager), I got a bit confused about how to make things work and also installed qemu-binfmt for x86_64, the host architecture. Upon my next reboot, however, I reached a fully-booted TTY and was unable to do anything else. GDM was not launching, and if I attempted to login to the TTY itself, I was greeted by an error message like the following:

"cannot execute /gnu/store/path-to-something/bin/thing: Too many layers of symlinks"

After some misadventures, I have finally narrowed down that the cause of this issue was having x86_64 in the list of qemu-binfmt-configuration platforms while running on x86_64. I assume that including the host architecture in the list of platforms for qemu-binfmt will do this regardless of architecture, but cannot currently test this.

Here's what I believe to be a minimum reproducible example for x86_64:

```
(operating-system
 ...
 (services (cons*
             (service qemu-binfmt-service-type
                      (qemu-binfmt-configuration
                        (platforms (lookup-qemu-platforms "x86_64"))))
           ...)
 ...)
```

Good luck,
Juli