[bug#78165] gnu: /etc/qemu/firmware: Produce only /etc/qemu/firmware instead of /etc/qemu

Message ID 0dbb359fe647517ad0d7cc40de6c4e644e32f004.1746032004.git.rutherther@ditigal.xyz
State New
Headers
Series [bug#78165] gnu: /etc/qemu/firmware: Produce only /etc/qemu/firmware instead of /etc/qemu |

Commit Message

Rutherther April 30, 2025, 4:54 p.m. UTC
  The service unnecessarily populates /etc/qemu with a symlink, so it's not
possible to write files like /etc/qemu/bridge.conf or /etc/qemu/host.conf
anymore. Since etc-service-type uses file-union, it's possible to put files in
subdirectories. This restores the behavior suggested by manual where user can
extend etc-service-type with qemu/host.conf etc.

* gnu/services/virtualization.scm (/etc/qemu/firmware): Extend with
qemu/firmware instead of qemu

Change-Id: I7c1ea790e5abf7ad05dce56b7901ac6eb90208fd
---
 gnu/services/virtualization.scm | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)


base-commit: 8a9f0a618e929289d8d13e9341349ca7fdd06d99
  

Patch

diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index 0836fe7d45..081093eab3 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -577,14 +577,13 @@  (define (libvirt-shepherd-service config)
 
 (define (/etc/qemu/firmware config)
   (let ((firmwares (libvirt-configuration-firmwares config)))
-    `(("qemu"
+    `(("qemu/firmware"
        ,(computed-file
          "etc-qemu-firmware"
          (with-imported-modules '((guix build union))
            #~(begin
                (use-modules (guix build union) (srfi srfi-26))
-               (mkdir #$output)
-               (union-build (string-append #$output "/firmware")
+               (union-build #$output
                             (map (cut string-append <> "/share/qemu/firmware")
                                  (list #$@firmwares))))))))))