Skip to content
Snippets Groups Projects
  • Maxim Cournoyer's avatar
    77c2f4e2
    services/qemu-binfmt: Use the F flag and the static output of QEMU. · 77c2f4e2
    Maxim Cournoyer authored
    Fixes <https://issues.guix.gnu.org/36117>.
    
    Before this change, the 'binfmt_misc' entries registered for QEMU would not be
    usable in container contexts outside of guix-daemon (without manually bind
    mounting file names).
    
    For example:
    
    $ docker run --rm arm32v7/debian true
    standard_init_linux.go:207: exec user process caused "no such file or directory"
    
    After this change, any container can make use of the QEMU binfmt_misc
    registrations, as their corresponding QEMU static binaries are fully
    pre-loaded by the kernel.
    
    * gnu/services/virtualization.scm (<qemu-platform>): Define using
    'define-record-type*'.
    [flags]: New field, which defaults to "F" (fix binary).
    (%i386, %i486, %alpha, %arm, %armeb, %sparc, %sparc32plus, %ppc, %ppc64)
    (%ppc64le, %m68k, %mips, %mipsel, %mipsn32, %mipsn32el, %mips64, %mips64el)
    (%riscv32, %riscv64, %sh4, %sh4eb, %s390x, %aarch64, %hppa): Adjust.
    (qemu-binfmt-guix-chroot): Remove variable.
    (qemu-binfmt-service-type): Remove the qemu-binfmt-guix-chroot extension.
    * gnu/services/qemu-binfmt (qemu-platform->binfmt):  Use the static output of
    QEMU.
    * doc/contributing.texi (Submitting Patches): Update doc.
    * doc/guix.texi (Virtualization Services): Update doc.
    services/qemu-binfmt: Use the F flag and the static output of QEMU.
    Maxim Cournoyer authored
    Fixes <https://issues.guix.gnu.org/36117>.
    
    Before this change, the 'binfmt_misc' entries registered for QEMU would not be
    usable in container contexts outside of guix-daemon (without manually bind
    mounting file names).
    
    For example:
    
    $ docker run --rm arm32v7/debian true
    standard_init_linux.go:207: exec user process caused "no such file or directory"
    
    After this change, any container can make use of the QEMU binfmt_misc
    registrations, as their corresponding QEMU static binaries are fully
    pre-loaded by the kernel.
    
    * gnu/services/virtualization.scm (<qemu-platform>): Define using
    'define-record-type*'.
    [flags]: New field, which defaults to "F" (fix binary).
    (%i386, %i486, %alpha, %arm, %armeb, %sparc, %sparc32plus, %ppc, %ppc64)
    (%ppc64le, %m68k, %mips, %mipsel, %mipsn32, %mipsn32el, %mips64, %mips64el)
    (%riscv32, %riscv64, %sh4, %sh4eb, %s390x, %aarch64, %hppa): Adjust.
    (qemu-binfmt-guix-chroot): Remove variable.
    (qemu-binfmt-service-type): Remove the qemu-binfmt-guix-chroot extension.
    * gnu/services/qemu-binfmt (qemu-platform->binfmt):  Use the static output of
    QEMU.
    * doc/contributing.texi (Submitting Patches): Update doc.
    * doc/guix.texi (Virtualization Services): Update doc.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.