summary refs log tree commit diff
path: root/pkgs/development/libraries/libvirt
diff options
context:
space:
mode:
authorBernardo Meurer <bernardo@meurer.org>2022-03-12 14:24:01 -0800
committerBernardo Meurer <bernardo@meurer.org>2022-03-12 14:24:30 -0800
commit316b6f84c22aa022210b7b317a7df02458c266fc (patch)
tree2c5b600e3866c14dfa5dbc4483fc4059a8f8e78b /pkgs/development/libraries/libvirt
parent968097b5c296d2b0f9abb866660243d9019975ca (diff)
Revert "Merge pull request #163714 from lovesegfault/libvirt-8.1.0"
This reverts commit cdd51022ab68f40f18e1b11c875369d603f7031b, reversing
changes made to 8db28de91911514e9fe2e03b16128322ba322e62.
Diffstat (limited to 'pkgs/development/libraries/libvirt')
-rw-r--r--pkgs/development/libraries/libvirt/0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch326
-rw-r--r--pkgs/development/libraries/libvirt/0002-meson-patch-ch-install-prefix.patch14
-rw-r--r--pkgs/development/libraries/libvirt/default.nix372
-rw-r--r--pkgs/development/libraries/libvirt/do-not-use-sysconfig.patch211
-rw-r--r--pkgs/development/libraries/libvirt/qemu-segmentation-fault-in-virtqemud-executing-qemuD.patch50
5 files changed, 491 insertions, 482 deletions
diff --git a/pkgs/development/libraries/libvirt/0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch b/pkgs/development/libraries/libvirt/0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch
new file mode 100644
index 0000000000000..86dd461ea07db
--- /dev/null
+++ b/pkgs/development/libraries/libvirt/0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch
@@ -0,0 +1,326 @@
+From a896b0be849455edb83a9305dfec9b41447ef3e4 Mon Sep 17 00:00:00 2001
+From: Euan Kemp <euank@euank.com>
+Date: Thu, 14 Jan 2021 00:32:00 -0800
+Subject: [PATCH] meson: patch in an install prefix for building on nix
+
+Used in the nixpkgs version of libvirt so that we can install things in
+the nix store, but read them from the root filesystem.
+---
+ meson.build                       |  9 +++++++++
+ meson_options.txt                 |  2 ++
+ src/libxl/meson.build             |  6 +++---
+ src/locking/meson.build           |  8 ++++----
+ src/lxc/meson.build               |  6 +++---
+ src/meson.build                   | 18 +++++++++---------
+ src/network/meson.build           | 12 ++++++------
+ src/nwfilter/xml/meson.build      |  2 +-
+ src/qemu/meson.build              | 14 +++++++-------
+ src/remote/meson.build            |  6 +++---
+ src/security/apparmor/meson.build |  8 ++++----
+ tools/meson.build                 |  4 ++--
+ 12 files changed, 53 insertions(+), 42 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index b5164f6..33719f1 100644
+--- a/meson.build
++++ b/meson.build
+@@ -39,6 +39,8 @@ if host_machine.system() == 'windows'
+   conf.set('WINVER', '0x0600') # Win Vista / Server 2008
+ endif
+ 
++# patched in for nix
++install_prefix = get_option('install_prefix')
+ 
+ # set various paths
+ 
+@@ -57,6 +59,13 @@ else
+   sysconfdir = prefix / get_option('sysconfdir')
+ endif
+ 
++# nix: don't prefix the localstatedir; some things need to write to it, so it
++# can't be in the nix store, and that's what the prefix is.
++# We'll prefix things ourselves where needed
++localstatedir = get_option('localstatedir')
++# Same for sysconfidr
++sysconfdir = get_option('sysconfdir')
++
+ # if --prefix is /usr, don't use /usr/var for localstatedir or /usr/etc for
+ # sysconfdir as this makes a lot of things break in testing situations
+ if prefix == '/usr'
+diff --git a/meson_options.txt b/meson_options.txt
+index e5d79c2..081cd32 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,3 +1,5 @@
++option('install_prefix', type: 'string', value: '', description: 'prefix for nix store installation')
++
+ option('no_git', type: 'boolean', value: false, description: 'Disable git submodule update')
+ option('packager', type: 'string', value: '', description: 'Extra packager name')
+ option('packager_version', type: 'string', value: '', description: 'Extra packager version')
+diff --git a/src/libxl/meson.build b/src/libxl/meson.build
+index 3bb6cc5..78d7be0 100644
+--- a/src/libxl/meson.build
++++ b/src/libxl/meson.build
+@@ -84,8 +84,8 @@ if conf.has('WITH_LIBXL')
+   }
+ 
+   virt_install_dirs += [
+-    localstatedir / 'lib' / 'libvirt' / 'libxl',
+-    runstatedir / 'libvirt' / 'libxl',
+-    localstatedir / 'log' / 'libvirt' / 'libxl',
++    install_prefix + localstatedir / 'lib' / 'libvirt' / 'libxl',
++    install_prefix + runstatedir / 'libvirt' / 'libxl',
++    install_prefix + localstatedir / 'log' / 'libvirt' / 'libxl',
+   ]
+ endif
+diff --git a/src/locking/meson.build b/src/locking/meson.build
+index 8a28310..9da81cc 100644
+--- a/src/locking/meson.build
++++ b/src/locking/meson.build
+@@ -243,14 +243,14 @@ if conf.has('WITH_LIBVIRTD')
+   }
+ 
+   virt_install_dirs += [
+-    localstatedir / 'lib' / 'libvirt' / 'lockd',
+-    localstatedir / 'lib' / 'libvirt' / 'lockd' / 'files',
+-    runstatedir / 'libvirt' / 'lockd',
++    install_prefix + localstatedir / 'lib' / 'libvirt' / 'lockd',
++    install_prefix + localstatedir / 'lib' / 'libvirt' / 'lockd' / 'files',
++    install_prefix + runstatedir / 'libvirt' / 'lockd',
+   ]
+ 
+   if conf.has('WITH_SANLOCK')
+     virt_install_dirs += [
+-      localstatedir / 'lib' / 'libvirt' / 'sanlock',
++      install_prefix + localstatedir / 'lib' / 'libvirt' / 'sanlock',
+     ]
+   endif
+ endif
+diff --git a/src/lxc/meson.build b/src/lxc/meson.build
+index f8e2a88..96d6687 100644
+--- a/src/lxc/meson.build
++++ b/src/lxc/meson.build
+@@ -182,8 +182,8 @@ if conf.has('WITH_LXC')
+   }
+ 
+   virt_install_dirs += [
+-    localstatedir / 'lib' / 'libvirt' / 'lxc',
+-    runstatedir / 'libvirt' / 'lxc',
+-    localstatedir / 'log' / 'libvirt' / 'lxc',
++    install_prefix + localstatedir / 'lib' / 'libvirt' / 'lxc',
++    install_prefix + runstatedir / 'libvirt' / 'lxc',
++    install_prefix + localstatedir / 'log' / 'libvirt' / 'lxc',
+   ]
+ endif
+diff --git a/src/meson.build b/src/meson.build
+index 7c47821..d33d16a 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -669,7 +669,7 @@ endforeach
+ 
+ virt_conf_files += 'libvirt.conf'
+ 
+-install_data(virt_conf_files, install_dir: confdir)
++install_data(virt_conf_files, install_dir: install_prefix + confdir)
+ install_data(virt_aug_files, install_dir: virt_aug_dir)
+ 
+ # augeas_test_data:
+@@ -729,7 +729,7 @@ foreach data : virt_daemon_confs
+     output: '@0@.conf'.format(data['name']),
+     configuration: daemon_conf,
+     install: true,
+-    install_dir: confdir,
++    install_dir: install_prefix + confdir,
+   )
+ 
+   if data.get('with_ip', false)
+@@ -853,14 +853,14 @@ if conf.has('WITH_LIBVIRTD')
+ 
+       install_data(
+         init_file,
+-        install_dir: sysconfdir / 'init.d',
++        install_dir: install_prefix + sysconfdir / 'init.d',
+         rename: [ init['name'] ],
+       )
+ 
+       if init.has_key('confd')
+         install_data(
+           init['confd'],
+-          install_dir: sysconfdir / 'conf.d',
++          install_dir: install_prefix + sysconfdir / 'conf.d',
+           rename: [ init['name'] ],
+         )
+       endif
+@@ -872,7 +872,7 @@ if init_script != 'none'
+   foreach sysconf : sysconf_files
+     install_data(
+       sysconf['file'],
+-      install_dir: sysconfdir / 'sysconfig',
++      install_dir: install_prefix + sysconfdir / 'sysconfig',
+       rename: [ sysconf['name'] ],
+     )
+   endforeach
+@@ -897,10 +897,10 @@ endif
+ # Install empty directories
+ 
+ virt_install_dirs += [
+-  localstatedir / 'cache' / 'libvirt',
+-  localstatedir / 'lib' / 'libvirt' / 'images',
+-  localstatedir / 'lib' / 'libvirt' / 'filesystems',
+-  localstatedir / 'lib' / 'libvirt' / 'boot',
++  install_prefix + localstatedir / 'cache' / 'libvirt',
++  install_prefix + localstatedir / 'lib' / 'libvirt' / 'images',
++  install_prefix + localstatedir / 'lib' / 'libvirt' / 'filesystems',
++  install_prefix + localstatedir / 'lib' / 'libvirt' / 'boot',
+ ]
+ 
+ meson.add_install_script(
+diff --git a/src/network/meson.build b/src/network/meson.build
+index 3ec598c..b02040b 100644
+--- a/src/network/meson.build
++++ b/src/network/meson.build
+@@ -79,9 +79,9 @@ if conf.has('WITH_NETWORK')
+   }
+ 
+   virt_install_dirs += [
+-    localstatedir / 'lib' / 'libvirt' / 'network',
+-    localstatedir / 'lib' / 'libvirt' / 'dnsmasq',
+-    runstatedir / 'libvirt' / 'network',
++    install_prefix + localstatedir / 'lib' / 'libvirt' / 'network',
++    install_prefix + localstatedir / 'lib' / 'libvirt' / 'dnsmasq',
++    install_prefix + runstatedir / 'libvirt' / 'network',
+   ]
+ 
+   configure_file(
+@@ -89,12 +89,12 @@ if conf.has('WITH_NETWORK')
+     output: '@BASENAME@',
+     copy: true,
+     install: true,
+-    install_dir: confdir / 'qemu' / 'networks',
++    install_dir: install_prefix + confdir / 'qemu' / 'networks',
+   )
+ 
+   meson.add_install_script(
+     meson_python_prog.path(), python3_prog.path(), meson_install_symlink_prog.path(),
+-    confdir / 'qemu' / 'networks' / 'autostart',
++    install_prefix + confdir / 'qemu' / 'networks' / 'autostart',
+     '../default.xml', 'default.xml',
+   )
+ 
+diff --git a/src/nwfilter/xml/meson.build b/src/nwfilter/xml/meson.build
+index 0d96c54..66c92a1 100644
+--- a/src/nwfilter/xml/meson.build
++++ b/src/nwfilter/xml/meson.build
+@@ -25,4 +25,4 @@ nwfilter_xml_files = [
+   'qemu-announce-self.xml',
+ ]
+ 
+-install_data(nwfilter_xml_files, install_dir: sysconfdir / 'libvirt' / 'nwfilter')
++install_data(nwfilter_xml_files, install_dir: install_prefix + sysconfdir / 'libvirt' / 'nwfilter')
+diff --git a/src/qemu/meson.build b/src/qemu/meson.build
+index 90640b0..8802cec 100644
+--- a/src/qemu/meson.build
++++ b/src/qemu/meson.build
+@@ -171,12 +171,12 @@ if conf.has('WITH_QEMU')
+   }
+ 
+   virt_install_dirs += [
+-    localstatedir / 'lib' / 'libvirt' / 'qemu',
+-    runstatedir / 'libvirt' / 'qemu',
+-    localstatedir / 'cache' / 'libvirt' / 'qemu',
+-    localstatedir / 'log' / 'libvirt' / 'qemu',
+-    localstatedir / 'lib' / 'libvirt' / 'swtpm',
+-    runstatedir / 'libvirt' / 'qemu' / 'swtpm',
+-    localstatedir / 'log' / 'swtpm' / 'libvirt' / 'qemu',
++    install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu',
++    install_prefix + runstatedir / 'libvirt' / 'qemu',
++    install_prefix + localstatedir / 'cache' / 'libvirt' / 'qemu',
++    install_prefix + localstatedir / 'log' / 'libvirt' / 'qemu',
++    install_prefix + localstatedir / 'lib' / 'libvirt' / 'swtpm',
++    install_prefix + runstatedir / 'libvirt' / 'qemu' / 'swtpm',
++    install_prefix + localstatedir / 'log' / 'swtpm' / 'libvirt' / 'qemu',
+   ]
+ endif
+diff --git a/src/remote/meson.build b/src/remote/meson.build
+index 9ad2f6a..429a15b 100644
+--- a/src/remote/meson.build
++++ b/src/remote/meson.build
+@@ -245,7 +245,7 @@ if conf.has('WITH_REMOTE')
+     }
+ 
+     virt_install_dirs += [
+-      localstatedir / 'log' / 'libvirt',
++      install_prefix + localstatedir / 'log' / 'libvirt',
+     ]
+ 
+     logrotate_conf = configuration_data()
+@@ -259,7 +259,7 @@ if conf.has('WITH_REMOTE')
+       )
+       install_data(
+         log_file,
+-        install_dir: sysconfdir / 'logrotate.d',
++        install_dir: install_prefix + sysconfdir / 'logrotate.d',
+         rename: [ name ],
+       )
+     endforeach
+@@ -309,7 +309,7 @@ endif
+ if conf.has('WITH_SASL')
+   install_data(
+     'libvirtd.sasl',
+-    install_dir: sysconfdir / 'sasl2',
++    install_dir: install_prefix + sysconfdir / 'sasl2',
+     rename: [ 'libvirt.conf' ],
+   )
+ endif
+diff --git a/src/security/apparmor/meson.build b/src/security/apparmor/meson.build
+index af43780..e2d6c81 100644
+--- a/src/security/apparmor/meson.build
++++ b/src/security/apparmor/meson.build
+@@ -17,22 +17,22 @@ foreach name : apparmor_gen_profiles
+     output: name,
+     configuration: apparmor_gen_profiles_conf,
+     install: true,
+-    install_dir: apparmor_dir,
++    install_dir: install_prefix + apparmor_dir,
+   )
+ endforeach
+ 
+ install_data(
+   [ 'libvirt-qemu', 'libvirt-lxc' ],
+-  install_dir: apparmor_dir / 'abstractions',
++  install_dir: install_prefix + apparmor_dir / 'abstractions',
+ )
+ 
+ install_data(
+   [ 'TEMPLATE.qemu', 'TEMPLATE.lxc' ],
+-  install_dir: apparmor_dir / 'libvirt',
++  install_dir: install_prefix + apparmor_dir / 'libvirt',
+ )
+ 
+ install_data(
+   'usr.lib.libvirt.virt-aa-helper.local',
+-  install_dir: apparmor_dir / 'local',
++  install_dir: install_prefix + apparmor_dir / 'local',
+   rename: 'usr.lib.libvirt.virt-aa-helper',
+ )
+diff --git a/tools/meson.build b/tools/meson.build
+index b8c6802..dacd0ff 100644
+--- a/tools/meson.build
++++ b/tools/meson.build
+@@ -115,7 +115,7 @@ if conf.has('WITH_LOGIN_SHELL')
+     install_rpath: libvirt_rpath,
+   )
+ 
+-  install_data('virt-login-shell.conf', install_dir: sysconfdir / 'libvirt')
++  install_data('virt-login-shell.conf', install_dir: install_prefix + sysconfdir / 'libvirt')
+ endif
+ 
+ if host_machine.system() == 'windows'
+@@ -274,7 +274,7 @@ configure_file(
+ if init_script == 'systemd'
+   install_data(
+     'libvirt-guests.sysconf',
+-    install_dir: sysconfdir / 'sysconfig',
++    install_dir: install_prefix + sysconfdir / 'sysconfig',
+     rename: 'libvirt-guests',
+   )
diff --git a/pkgs/development/libraries/libvirt/0002-meson-patch-ch-install-prefix.patch b/pkgs/development/libraries/libvirt/0002-meson-patch-ch-install-prefix.patch
new file mode 100644
index 0000000000000..ae97c6455c6b2
--- /dev/null
+++ b/pkgs/development/libraries/libvirt/0002-meson-patch-ch-install-prefix.patch
@@ -0,0 +1,14 @@
+diff --git a/src/ch/meson.build b/src/ch/meson.build
+index e34974d56c..4767763c2c 100644
+--- a/src/ch/meson.build
++++ b/src/ch/meson.build
+@@ -68,7 +68,7 @@ if conf.has('WITH_CH')
+   }
+ 
+   virt_install_dirs += [
+-    localstatedir / 'lib' / 'libvirt' / 'ch',
+-    runstatedir / 'libvirt' / 'ch',
++    install_prefix + localstatedir / 'lib' / 'libvirt' / 'ch',
++    install_prefix + runstatedir / 'libvirt' / 'ch',
+   ]
+ endif
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index 7d2bc995da6a6..03d0e17cb4c3e 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -1,119 +1,85 @@
 { lib
+, stdenv
+, fetchurl
+, fetchFromGitLab
+, makeWrapper
 , autoreconfHook
-, bash-completion
-, bridge-utils
-, cmake
+, fetchpatch
 , coreutils
-, curl
-, darwin
-, dbus
-, dnsmasq
-, docutils
-, fetchFromGitLab
-, fetchurl
-, gettext
-, glib
+, libxml2
 , gnutls
+, perl
+, python3
+, attr
+, glib
+, docutils
 , iproute2
+, readline
+, lvm2
+, util-linux
+, systemd
+, libpciaccess
+, gettext
+, libtasn1
 , iptables
 , libgcrypt
+, yajl
+, pmutils
+, libcap_ng
+, libapparmor
+, dnsmasq
+, libnl
 , libpcap
-, libtasn1
-, libxml2
 , libxslt
-, makeWrapper
+, xhtml1
+, numad
+, numactl
+, perlPackages
+, curl
+, libiconv
+, gmp
+, zfs
+, parted
+, bridge-utils
+, dmidecode
+, dbus
+, libtirpc
+, rpcsvc-proto
+, darwin
 , meson
 , ninja
-, perl
-, perlPackages
+, audit
+, cmake
+, bash-completion
 , pkg-config
-, pmutils
-, python3
-, readline
-, rpcsvc-proto
-, stdenv
-, xhtml1
-, yajl
-
-  # Linux
-, acl ? null
-, attr ? null
-, audit ? null
-, dmidecode ? null
-, fuse ? null
-, kmod ? null
-, libapparmor ? null
-, libcap_ng ? null
-, libnl ? null
-, libpciaccess ? null
-, libtirpc ? null
-, lvm2 ? null
-, numactl ? null
-, numad ? null
-, parted ? null
-, systemd ? null
-, util-linux ? null
-
-  # Darwin
-, gmp ? null
-, libiconv ? null
-, Carbon ? null
-, AppKit ? null
-
-  # Options
-, enableCeph ? false
-, ceph ? null
-, enableGlusterfs ? false
-, glusterfs ? null
-, enableIscsi ? false
-, openiscsi ? null
-, libiscsi ? null
 , enableXen ? false
 , xen ? null
-, enableZfs ? stdenv.isLinux
-, zfs ? null
+, enableIscsi ? false
+, openiscsi
+, enableCeph ? false
+, ceph
+, enableGlusterfs ? false
+, glusterfs
+, Carbon
+, AppKit
 }:
 
 with lib;
 
+# if you update, also bump <nixpkgs/pkgs/development/python-modules/libvirt/default.nix> and SysVirt in <nixpkgs/pkgs/top-level/perl-packages.nix>
 let
-  inherit (stdenv) isDarwin isLinux isx86_64;
-  binPath = makeBinPath ([
-    dnsmasq
-  ] ++ optionals isLinux [
-    bridge-utils
-    dmidecode
-    dnsmasq
-    iproute2
-    iptables
-    kmod
-    lvm2
-    numactl
-    numad
-    pmutils
-    systemd
-  ] ++ optionals enableIscsi [
-    libiscsi
-    openiscsi
-  ]);
+  buildFromTarball = stdenv.isDarwin;
 in
-
-assert enableXen -> isLinux && isx86_64;
-assert enableCeph -> isLinux;
-assert enableGlusterfs -> isLinux;
-assert enableZfs -> isLinux;
-
-# if you update, also bump <nixpkgs/pkgs/development/python-modules/libvirt/default.nix> and SysVirt in <nixpkgs/pkgs/top-level/perl-packages.nix>
 stdenv.mkDerivation rec {
   pname = "libvirt";
-  version = "8.1.0";
+  version = "7.10.0";
 
   src =
-    if isDarwin then
+    if buildFromTarball then
       fetchurl
         {
           url = "https://libvirt.org/sources/${pname}-${version}.tar.xz";
-          sha256 = "sha256-PGxDvs/+s0o/OXxhYgaqaaiT/4v16CCDk8hOjnU1KTQ=";
+          sha256 = "sha256-yzGAFK8JcyeSjG49cpIuO+AqPmQBJHsqpS2auOC0gPk=";
         }
     else
       fetchFromGitLab
@@ -121,74 +87,76 @@ stdenv.mkDerivation rec {
           owner = pname;
           repo = pname;
           rev = "v${version}";
-          sha256 = "sha256-nk8pBlss+g4EMy+RnAOyz6YlGGvlBvl5aBpcytsK1wY=";
+          sha256 = "sha256-bB8LsjZFeJbMmmC0YRPyMag2MBhwagUFC7aB1KhZEkA=";
           fetchSubmodules = true;
         };
 
   patches = [
-    ./do-not-use-sysconfig.patch
-    ./qemu-segmentation-fault-in-virtqemud-executing-qemuD.patch
+    ./0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch
+    ./0002-meson-patch-ch-install-prefix.patch
   ];
 
   nativeBuildInputs = [
+    ninja
     meson
-
     cmake
-    docutils
     makeWrapper
-    ninja
     pkg-config
-  ]
-  ++ optional (!isDarwin) rpcsvc-proto
-  # NOTE: needed for rpcgen
-  ++ optional isDarwin darwin.developer_cmds;
+    docutils
+  ] ++ optional (!stdenv.isDarwin) [
+    rpcsvc-proto
+  ] ++ optionals stdenv.isDarwin [
+    darwin.developer_cmds # needed for rpcgen
+  ];
 
   buildInputs = [
     bash-completion
-    curl
-    dbus
-    gettext
-    glib
-    gnutls
-    libgcrypt
-    libpcap
-    libtasn1
+    pkg-config
     libxml2
-    libxslt
+    gnutls
     perl
-    perlPackages.XMLXPath
-    pkg-config
     python3
     readline
-    xhtml1
+    gettext
+    libtasn1
+    libgcrypt
     yajl
-  ] ++ optionals isLinux [
-    acl
-    attr
+    libxslt
+    xhtml1
+    perlPackages.XMLXPath
+    curl
+    libpcap
+    glib
+    dbus
+  ] ++ optionals stdenv.isLinux [
     audit
-    fuse
-    libapparmor
-    libcap_ng
-    libnl
     libpciaccess
-    libtirpc
     lvm2
-    numactl
+    util-linux
+    systemd
+    libnl
     numad
+    zfs
+    libapparmor
+    libcap_ng
+    numactl
+    attr
     parted
-    systemd
-    util-linux
-  ] ++ optionals isDarwin [
-    AppKit
-    Carbon
-    gmp
+    libtirpc
+  ] ++ optionals (enableXen && stdenv.isLinux && stdenv.isx86_64) [
+    xen
+  ] ++ optionals enableIscsi [
+    openiscsi
+  ] ++ optionals enableCeph [
+    ceph
+  ] ++ optionals enableGlusterfs [
+    glusterfs
+  ] ++ optionals stdenv.isDarwin [
     libiconv
-  ]
-  ++ optionals enableCeph [ ceph ]
-  ++ optionals enableGlusterfs [ glusterfs ]
-  ++ optionals enableIscsi [ libiscsi openiscsi ]
-  ++ optionals enableXen [ xen ]
-  ++ optionals enableZfs [ zfs ];
+    gmp
+    Carbon
+    AppKit
+  ];
 
   preConfigure =
     let
@@ -196,118 +164,80 @@ stdenv.mkDerivation rec {
         QEMU_BRIDGE_HELPER = "/run/wrappers/bin/qemu-bridge-helper";
         QEMU_PR_HELPER = "/run/libvirt/nix-helpers/qemu-pr-helper";
       };
-
       patchBuilder = var: value: ''
         sed -i meson.build -e "s|conf.set_quoted('${var}',.*|conf.set_quoted('${var}','${value}')|"
       '';
     in
     ''
-      PATH="${binPath}:$PATH"
+      PATH=${lib.makeBinPath ([ dnsmasq ] ++ optionals stdenv.isLinux [ iproute2 iptables lvm2 systemd numad ] ++ optionals enableIscsi [ openiscsi ])}:$PATH
       # the path to qemu-kvm will be stored in VM's .xml and .save files
       # do not use "''${qemu_kvm}/bin/qemu-kvm" to avoid bound VMs to particular qemu derivations
       substituteInPlace src/lxc/lxc_conf.c \
         --replace 'lxc_path,' '"/run/libvirt/nix-emulators/libvirt_lxc",'
-
       substituteInPlace build-aux/meson.build \
         --replace "gsed" "sed" \
         --replace "gmake" "make" \
         --replace "ggrep" "grep"
-
       patchShebangs .
     ''
     + (lib.concatStringsSep "\n" (lib.mapAttrsToList patchBuilder overrides));
 
-  mesonAutoFeatures = "disabled";
+  mesonAutoFeatures = "auto";
 
   mesonFlags =
     let
-      cfg = option: val: "-D${option}=${val}";
-      feat = option: enable: cfg option (if enable then "enabled" else "disabled");
-      driver = name: feat "driver_${name}";
-      storage = name: feat "storage_${name}";
+      opt = option: enable: "-D${option}=${if enable then "enabled" else "disabled"}";
     in
     [
-      "--localstatedir=${placeholder "out"}/var/"
-      (cfg "init_script" (if isDarwin then "none" else "systemd"))
-
-      (feat "apparmor" isLinux)
-      (feat "attr" isLinux)
-      (feat "audit" isLinux)
-      (feat "bash_completion" true)
-      (feat "blkid" isLinux)
-      (feat "capng" isLinux)
-      (feat "curl" true)
-      (feat "docs" true)
-      (feat "expensive_tests" true)
-      (feat "firewalld" isLinux)
-      (feat "firewalld_zone" isLinux)
-      (feat "fuse" isLinux)
-      (feat "glusterfs" enableGlusterfs)
-      (feat "host_validate" true)
-      (feat "libiscsi" enableIscsi)
-      (feat "libnl" isLinux)
-      (feat "libpcap" true)
-      (feat "libssh2" true)
-      (feat "login_shell" isLinux)
-      (feat "nss" isLinux)
-      (feat "numactl" isLinux)
-      (feat "numad" isLinux)
-      (feat "pciaccess" isLinux)
-      (feat "polkit" true)
-      (feat "readline" true)
-      (feat "secdriver_apparmor" isLinux)
-      (feat "tests" true)
-      (feat "udev" isLinux)
-      (feat "yajl" true)
-
-      (driver "ch" isLinux)
-      (driver "esx" true)
-      (driver "interface" isLinux)
-      (driver "libvirtd" true)
-      (driver "libxl" enableXen)
-      (driver "lxc" isLinux)
-      (driver "network" true)
-      (driver "openvz" isLinux)
-      (driver "qemu" true)
-      (driver "remote" true)
-      (driver "secrets" true)
-      (driver "test" true)
-      (driver "vbox" true)
-      (driver "vmware" true)
-
-      (storage "dir" true)
-      (storage "disk" isLinux)
-      (storage "fs" isLinux)
-      (storage "gluster" enableGlusterfs)
-      (storage "iscsi" enableIscsi)
-      (storage "iscsi_direct" enableIscsi)
-      (storage "lvm" isLinux)
-      (storage "mpath" isLinux)
-      (storage "rbd" enableCeph)
-      (storage "scsi" true)
-      (storage "vstorage" isLinux)
-      (storage "zfs" enableZfs)
+      "--sysconfdir=/var/lib"
+      "-Dinstall_prefix=${placeholder "out"}"
+      "-Dlocalstatedir=/var"
+      "-Drunstatedir=/run"
+      "-Dlibpcap=enabled"
+      "-Ddriver_qemu=enabled"
+      "-Ddriver_vmware=enabled"
+      "-Ddriver_vbox=enabled"
+      "-Ddriver_test=enabled"
+      "-Ddriver_esx=enabled"
+      "-Ddriver_remote=enabled"
+      "-Dpolkit=enabled"
+      (opt "storage_iscsi" enableIscsi)
+    ] ++ optionals stdenv.isLinux [
+      (opt "storage_zfs" (zfs != null))
+      "-Dattr=enabled"
+      "-Dapparmor=enabled"
+      "-Dsecdriver_apparmor=enabled"
+      "-Dnumad=enabled"
+      "-Dstorage_disk=enabled"
+      (opt "glusterfs" enableGlusterfs)
+      (opt "storage_rbd" enableCeph)
+    ] ++ optionals stdenv.isDarwin [
+      "-Dinit_script=none"
     ];
 
-  postInstall = ''
-    substituteInPlace $out/bin/virt-xml-validate \
-      --replace xmllint ${libxml2}/bin/xmllint
-
-    substituteInPlace $out/libexec/libvirt-guests.sh \
-      --replace 'ON_BOOT="start"'       'ON_BOOT=''${ON_BOOT:-start}' \
-      --replace 'ON_SHUTDOWN="suspend"' 'ON_SHUTDOWN=''${ON_SHUTDOWN:-suspend}' \
-      --replace "$out/bin"              '${gettext}/bin' \
-      --replace 'lock/subsys'           'lock' \
-      --replace 'gettext.sh'            'gettext.sh
-    # Added in nixpkgs:
-    gettext() { "${gettext}/bin/gettext" "$@"; }
-    '
-  '' + optionalString isLinux ''
-    substituteInPlace $out/lib/systemd/system/libvirtd.service --replace /bin/kill ${coreutils}/bin/kill
-    rm $out/lib/systemd/system/{virtlockd,virtlogd}.*
-    wrapProgram $out/sbin/libvirtd \
-      --prefix PATH : /run/libvirt/nix-emulators:${binPath}
-  '';
+  postInstall =
+    let
+      binPath = [ iptables iproute2 pmutils numad numactl bridge-utils dmidecode dnsmasq ] ++ optionals enableIscsi [ openiscsi ];
+    in
+    ''
+      substituteInPlace $out/bin/virt-xml-validate \
+        --replace xmllint ${libxml2}/bin/xmllint
+
+      substituteInPlace $out/libexec/libvirt-guests.sh \
+        --replace 'ON_BOOT="start"'       'ON_BOOT=''${ON_BOOT:-start}' \
+        --replace 'ON_SHUTDOWN="suspend"' 'ON_SHUTDOWN=''${ON_SHUTDOWN:-suspend}' \
+        --replace "$out/bin"              '${gettext}/bin' \
+        --replace 'lock/subsys'           'lock' \
+        --replace 'gettext.sh'            'gettext.sh
+      # Added in nixpkgs:
+      gettext() { "${gettext}/bin/gettext" "$@"; }
+      '
+    '' + optionalString stdenv.isLinux ''
+      substituteInPlace $out/lib/systemd/system/libvirtd.service --replace /bin/kill ${coreutils}/bin/kill
+      rm $out/lib/systemd/system/{virtlockd,virtlogd}.*
+      wrapProgram $out/sbin/libvirtd \
+        --prefix PATH : /run/libvirt/nix-emulators:${makeBinPath binPath}
+    '';
 
   meta = {
     homepage = "https://libvirt.org/";
@@ -318,6 +248,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.lgpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ fpletz globin lovesegfault ];
+    maintainers = with maintainers; [ fpletz globin ];
   };
 }
diff --git a/pkgs/development/libraries/libvirt/do-not-use-sysconfig.patch b/pkgs/development/libraries/libvirt/do-not-use-sysconfig.patch
deleted file mode 100644
index fae61294584eb..0000000000000
--- a/pkgs/development/libraries/libvirt/do-not-use-sysconfig.patch
+++ /dev/null
@@ -1,211 +0,0 @@
-From 10d65f10a76c7478c4ec0c65ffeec7f4b18929f9 Mon Sep 17 00:00:00 2001
-Message-Id: <10d65f10a76c7478c4ec0c65ffeec7f4b18929f9.1646212419.git.mprivozn@redhat.com>
-From: Michal Privoznik <mprivozn@redhat.com>
-Date: Wed, 2 Mar 2022 10:01:04 +0100
-Subject: [PATCH] libvirt-8.2.0-do-not-use-sysconfig.patch
-
-Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
----
- src/interface/virtinterfaced.service.in | 1 -
- src/libxl/virtxend.service.in           | 1 -
- src/locking/virtlockd.service.in        | 1 -
- src/logging/virtlogd.service.in         | 3 +--
- src/lxc/virtlxcd.service.in             | 1 -
- src/network/virtnetworkd.service.in     | 1 -
- src/node_device/virtnodedevd.service.in | 1 -
- src/nwfilter/virtnwfilterd.service.in   | 1 -
- src/qemu/virtqemud.service.in           | 1 -
- src/remote/libvirtd.service.in          | 1 -
- src/remote/virtproxyd.service.in        | 1 -
- src/secret/virtsecretd.service.in       | 1 -
- src/storage/virtstoraged.service.in     | 1 -
- src/vbox/virtvboxd.service.in           | 1 -
- tools/libvirt-guests.service.in         | 2 +-
- 15 files changed, 2 insertions(+), 16 deletions(-)
-
-diff --git a/src/interface/virtinterfaced.service.in b/src/interface/virtinterfaced.service.in
-index cb860ff1c4..090b198ac7 100644
---- a/src/interface/virtinterfaced.service.in
-+++ b/src/interface/virtinterfaced.service.in
-@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
- [Service]
- Type=notify
- Environment=VIRTINTERFACED_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/virtinterfaced
- ExecStart=@sbindir@/virtinterfaced $VIRTINTERFACED_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
-diff --git a/src/libxl/virtxend.service.in b/src/libxl/virtxend.service.in
-index 6b083c414f..597f5d1905 100644
---- a/src/libxl/virtxend.service.in
-+++ b/src/libxl/virtxend.service.in
-@@ -19,7 +19,6 @@ ConditionPathExists=/proc/xen/capabilities
- [Service]
- Type=notify
- Environment=VIRTXEND_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/virtxend
- ExecStart=@sbindir@/virtxend $VIRTXEND_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
-diff --git a/src/locking/virtlockd.service.in b/src/locking/virtlockd.service.in
-index 19271d1e7d..87193952cb 100644
---- a/src/locking/virtlockd.service.in
-+++ b/src/locking/virtlockd.service.in
-@@ -8,7 +8,6 @@ Documentation=https://libvirt.org
- 
- [Service]
- Environment=VIRTLOCKD_ARGS=
--EnvironmentFile=-@sysconfdir@/sysconfig/virtlockd
- ExecStart=@sbindir@/virtlockd $VIRTLOCKD_ARGS
- ExecReload=/bin/kill -USR1 $MAINPID
- # Losing the locks is a really bad thing that will
-diff --git a/src/logging/virtlogd.service.in b/src/logging/virtlogd.service.in
-index 8ab5478517..fe5c58b8ed 100644
---- a/src/logging/virtlogd.service.in
-+++ b/src/logging/virtlogd.service.in
-@@ -7,8 +7,7 @@ Documentation=man:virtlogd(8)
- Documentation=https://libvirt.org
- 
- [Service]
--EnvironmentFile=-@sysconfdir@/sysconfig/virtlogd
--ExecStart=@sbindir@/virtlogd $VIRTLOGD_ARGS
-+ExecStart=@sbindir@/virtlogd
- ExecReload=/bin/kill -USR1 $MAINPID
- # Losing the logs is a really bad thing that will
- # cause the machine to be fenced (rebooted), so make
-diff --git a/src/lxc/virtlxcd.service.in b/src/lxc/virtlxcd.service.in
-index 334c34db44..1b9689017e 100644
---- a/src/lxc/virtlxcd.service.in
-+++ b/src/lxc/virtlxcd.service.in
-@@ -19,7 +19,6 @@ Documentation=https://libvirt.org
- [Service]
- Type=notify
- Environment=VIRTLXCD_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/virtlxcd
- ExecStart=@sbindir@/virtlxcd $VIRTLXCD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- KillMode=process
-diff --git a/src/network/virtnetworkd.service.in b/src/network/virtnetworkd.service.in
-index 05ce672b73..ee4cd9bca1 100644
---- a/src/network/virtnetworkd.service.in
-+++ b/src/network/virtnetworkd.service.in
-@@ -17,7 +17,6 @@ Documentation=https://libvirt.org
- [Service]
- Type=notify
- Environment=VIRTNETWORKD_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/virtnetworkd
- ExecStart=@sbindir@/virtnetworkd $VIRTNETWORKD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
-diff --git a/src/node_device/virtnodedevd.service.in b/src/node_device/virtnodedevd.service.in
-index cd9de362fd..7693aa52c4 100644
---- a/src/node_device/virtnodedevd.service.in
-+++ b/src/node_device/virtnodedevd.service.in
-@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
- [Service]
- Type=notify
- Environment=VIRTNODEDEVD_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/virtnodedevd
- ExecStart=@sbindir@/virtnodedevd $VIRTNODEDEVD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
-diff --git a/src/nwfilter/virtnwfilterd.service.in b/src/nwfilter/virtnwfilterd.service.in
-index ab65419e0c..16d8b377b0 100644
---- a/src/nwfilter/virtnwfilterd.service.in
-+++ b/src/nwfilter/virtnwfilterd.service.in
-@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
- [Service]
- Type=notify
- Environment=VIRTNWFILTERD_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/virtnwfilterd
- ExecStart=@sbindir@/virtnwfilterd $VIRTNWFILTERD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
-diff --git a/src/qemu/virtqemud.service.in b/src/qemu/virtqemud.service.in
-index 5ad968ace9..c63147d31f 100644
---- a/src/qemu/virtqemud.service.in
-+++ b/src/qemu/virtqemud.service.in
-@@ -21,7 +21,6 @@ Documentation=https://libvirt.org
- [Service]
- Type=notify
- Environment=VIRTQEMUD_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/virtqemud
- ExecStart=@sbindir@/virtqemud $VIRTQEMUD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- KillMode=process
-diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in
-index 5d4d412fcc..27cfc34b90 100644
---- a/src/remote/libvirtd.service.in
-+++ b/src/remote/libvirtd.service.in
-@@ -29,7 +29,6 @@ Documentation=https://libvirt.org
- [Service]
- Type=notify
- Environment=LIBVIRTD_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/libvirtd
- ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- KillMode=process
-diff --git a/src/remote/virtproxyd.service.in b/src/remote/virtproxyd.service.in
-index f9bb6b84a9..0eddf5ee93 100644
---- a/src/remote/virtproxyd.service.in
-+++ b/src/remote/virtproxyd.service.in
-@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
- [Service]
- Type=notify
- Environment=VIRTPROXYD_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/virtproxyd
- ExecStart=@sbindir@/virtproxyd $VIRTPROXYD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
-diff --git a/src/secret/virtsecretd.service.in b/src/secret/virtsecretd.service.in
-index 6d298c5334..92e54f175f 100644
---- a/src/secret/virtsecretd.service.in
-+++ b/src/secret/virtsecretd.service.in
-@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
- [Service]
- Type=notify
- Environment=VIRTSECRETD_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/virtsecretd
- ExecStart=@sbindir@/virtsecretd $VIRTSECRETD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
-diff --git a/src/storage/virtstoraged.service.in b/src/storage/virtstoraged.service.in
-index eda4d86d37..abe91e3d80 100644
---- a/src/storage/virtstoraged.service.in
-+++ b/src/storage/virtstoraged.service.in
-@@ -16,7 +16,6 @@ Documentation=https://libvirt.org
- [Service]
- Type=notify
- Environment=VIRTSTORAGED_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/virtstoraged
- ExecStart=@sbindir@/virtstoraged $VIRTSTORAGED_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
-diff --git a/src/vbox/virtvboxd.service.in b/src/vbox/virtvboxd.service.in
-index 6f447276e9..54fbd0be4a 100644
---- a/src/vbox/virtvboxd.service.in
-+++ b/src/vbox/virtvboxd.service.in
-@@ -15,7 +15,6 @@ Documentation=https://libvirt.org
- [Service]
- Type=notify
- Environment=VIRTVBOXD_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/virtvboxd
- ExecStart=@sbindir@/virtvboxd $VIRTVBOXD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
-diff --git a/tools/libvirt-guests.service.in b/tools/libvirt-guests.service.in
-index 3cf6476196..5668009ae4 100644
---- a/tools/libvirt-guests.service.in
-+++ b/tools/libvirt-guests.service.in
-@@ -20,7 +20,7 @@ Documentation=man:libvirt-guests(8)
- Documentation=https://libvirt.org
- 
- [Service]
--EnvironmentFile=-@sysconfdir@/sysconfig/libvirt-guests
-+EnvironmentFile=-/etc/libvirt/libvirt-guests.conf
- # Hack just call traditional service until we factor
- # out the code
- ExecStart=@libexecdir@/libvirt-guests.sh start
--- 
-2.34.1
-
diff --git a/pkgs/development/libraries/libvirt/qemu-segmentation-fault-in-virtqemud-executing-qemuD.patch b/pkgs/development/libraries/libvirt/qemu-segmentation-fault-in-virtqemud-executing-qemuD.patch
deleted file mode 100644
index f37ec7065afda..0000000000000
--- a/pkgs/development/libraries/libvirt/qemu-segmentation-fault-in-virtqemud-executing-qemuD.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 823a62ec8aac4fb75e6e281164f3eb56ae47597c Mon Sep 17 00:00:00 2001
-Message-Id: <823a62ec8aac4fb75e6e281164f3eb56ae47597c.1646211032.git.mprivozn@redhat.com>
-From: Boris Fiuczynski <fiuczy@linux.ibm.com>
-Date: Tue, 1 Mar 2022 18:47:59 +0100
-Subject: [PATCH] qemu: segmentation fault in virtqemud executing
- qemuDomainUndefineFlags
-
-Commit 5adfb3472342741c443ac91dee0abb18b5a3d038 causes a segmentation fault.
-
-Stack trace of thread 664419:
- #0  0x000003ff62ec553c in qemuDomainUndefineFlags (dom=0x3ff6c002810, flags=<optimized out>) at ../src/qemu/qemu_driver.c:6618
- #1  0x000003ff876a7e5c in virDomainUndefineFlags (domain=domain@entry=0x3ff6c002810, flags=<optimized out>) at ../src/libvirt-domain.c:6519
- #2  0x000002aa2b64a808 in remoteDispatchDomainUndefineFlags (server=0x2aa2c3d7880, msg=0x2aa2c3d2770, args=<optimized out>, rerr=0x3ff8287b950, client=<optimized out>)
-        at src/remote/remote_daemon_dispatch_stubs.h:13080
- #3  remoteDispatchDomainUndefineFlagsHelper (server=0x2aa2c3d7880, client=<optimized out>, msg=0x2aa2c3d2770, rerr=0x3ff8287b950, args=<optimized out>, ret=0x0)
-        at src/remote/remote_daemon_dispatch_stubs.h:13059
- #4  0x000003ff8758bbf4 in virNetServerProgramDispatchCall (msg=0x2aa2c3d2770, client=0x2aa2c3e3050, server=0x2aa2c3d7880, prog=0x2aa2c3d8010)
-        at ../src/rpc/virnetserverprogram.c:428
- #5  virNetServerProgramDispatch (prog=0x2aa2c3d8010, server=server@entry=0x2aa2c3d7880, client=0x2aa2c3e3050, msg=0x2aa2c3d2770) at ../src/rpc/virnetserverprogram.c:302
- #6  0x000003ff8758c260 in virNetServerProcessMsg (msg=<optimized out>, prog=<optimized out>, client=<optimized out>, srv=0x2aa2c3d7880) at ../src/rpc/virnetserver.c:140
- #7  virNetServerHandleJob (jobOpaque=0x2aa2c3e2d30, opaque=0x2aa2c3d7880) at ../src/rpc/virnetserver.c:160
- #8  0x000003ff874c49aa in virThreadPoolWorker (opaque=<optimized out>) at ../src/util/virthreadpool.c:164
- #9  0x000003ff874c3f62 in virThreadHelper (data=<optimized out>) at ../src/util/virthread.c:256
- #10 0x000003ff86c1cf8c in start_thread () from /lib64/libc.so.6
- #11 0x000003ff86c9650e in thread_start () from /lib64/libc.so.6
-
-Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
-Reviewed-by: Jim Fehlig <jfehlig@suse.com>
-Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
-Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
----
- src/qemu/qemu_driver.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
-index bcd9bdb436..8337eed510 100644
---- a/src/qemu/qemu_driver.c
-+++ b/src/qemu/qemu_driver.c
-@@ -6615,7 +6615,7 @@ qemuDomainUndefineFlags(virDomainPtr dom,
-         }
-     }
- 
--    if (vm->def->os.loader->nvram) {
-+    if (vm->def->os.loader && vm->def->os.loader->nvram) {
-         nvram_path = g_strdup(vm->def->os.loader->nvram);
-     } else if (vm->def->os.firmware == VIR_DOMAIN_OS_DEF_FIRMWARE_EFI) {
-         qemuDomainNVRAMPathFormat(cfg, vm->def, &nvram_path);
--- 
-2.34.1
-