Hi Lars,

Lars Böckel <listdump@larf.space> skribis:

> 2) Using a modified QEMU with libvirt. A modified QEMU could help
> sometimes. A way to specify which QEMU package to use would be helpful
> to resolve issues with newer qemu versions or patches which are not
> upstream. While in NixOS you could add patches like this
>
>     nixpkgs.config.packageOverrides = pkgs: rec {
>     qemu = pkgs.qemu.overrideAttrs (attrs:{
>       patches = (lib.filter (x: ! (lib.hasSuffix
> "fix-hda-recording.patch" (builtins.toString x)))  attrs.patches) ++ [
> /path/to/qemu.patch    ];
>        }
>     );
>   };
>
> to the QEMU package, i don't think this is possible in GuixSD.

As Gábor suggested, you would do it along these lines:

  (define qemu-patched
    (package
      (inherit qemu)
      …))

  (define custom-libvirt
    (package
      (inherit libvirt)
      (inputs `(("qemu" ,qemu-patched)
                ,@(alist-delete "qemu" (package-inputs libvirt))))))

  (operating-system
    ;; …
    (services (cons (service libvirt-service-type
                             (libvirt-configuration
                               (libvirt custom-libvirt)))
                    %base-services)))


It’s not equivalent to the above Nix snippet because it only affects the
libvirt service, but it addresses this particular need.

HTH,
Ludo’.

Reply via email to