about summary refs log tree commit diff
path: root/pkgs/development/libraries/libvirt
diff options
context:
space:
mode:
authorBernardo Meurer <bernardo@meurer.org>2022-03-11 14:10:20 -0800
committerBernardo Meurer <bernardo@meurer.org>2022-03-12 00:34:41 -0800
commit036ee2b9e186e1353f77ce2f2322763743c1c0c1 (patch)
tree16aa1a541de5608d686dfca36c1838f9e6891647 /pkgs/development/libraries/libvirt
parentdb0756bf8743268fb3cb86864bda803b70d83b2c (diff)
libvirt: 7.10.0 -> 8.1.0
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.nix80
-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, 306 insertions, 375 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
deleted file mode 100644
index 86dd461ea07db..0000000000000
--- a/pkgs/development/libraries/libvirt/0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch
+++ /dev/null
@@ -1,326 +0,0 @@
-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
deleted file mode 100644
index ae97c6455c6b2..0000000000000
--- a/pkgs/development/libraries/libvirt/0002-meson-patch-ch-install-prefix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-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 03d0e17cb4c3e..c12ee9e554ffe 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -36,9 +36,6 @@
 , numactl
 , perlPackages
 , curl
-, libiconv
-, gmp
-, zfs
 , parted
 , bridge-utils
 , dmidecode
@@ -52,34 +49,39 @@
 , cmake
 , bash-completion
 , pkg-config
-, enableXen ? false
-, xen ? null
-, enableIscsi ? false
-, openiscsi
-, enableCeph ? false
-, ceph
-, enableGlusterfs ? false
-, glusterfs
-, Carbon
-, AppKit
+, enableCeph ? false, ceph ? null
+, enableGlusterfs ? false, glusterfs ? null
+, enableIscsi ? false, openiscsi ? null
+, enableXen ? false, xen ? null
+, enableZfs ? true, zfs ? null
+# Darwin
+, gmp
+, libiconv
+, Carbon ? null
+, AppKit ? null
 }:
 
 with lib;
 
+assert enableXen -> stdenv.isLinux && stdenv.isx86_64;
+assert enableCeph -> stdenv.isLinux;
+assert enableGlusterfs -> stdenv.isLinux;
+assert enableZfs -> stdenv.isLinux;
+
 # if you update, also bump <nixpkgs/pkgs/development/python-modules/libvirt/default.nix> and SysVirt in <nixpkgs/pkgs/top-level/perl-packages.nix>
 let
   buildFromTarball = stdenv.isDarwin;
 in
 stdenv.mkDerivation rec {
   pname = "libvirt";
-  version = "7.10.0";
+  version = "8.1.0";
 
   src =
     if buildFromTarball then
       fetchurl
         {
           url = "https://libvirt.org/sources/${pname}-${version}.tar.xz";
-          sha256 = "sha256-yzGAFK8JcyeSjG49cpIuO+AqPmQBJHsqpS2auOC0gPk=";
+          sha256 = "sha256-PGxDvs/+s0o/OXxhYgaqaaiT/4v16CCDk8hOjnU1KTQ=";
         }
     else
       fetchFromGitLab
@@ -87,13 +89,13 @@ stdenv.mkDerivation rec {
           owner = pname;
           repo = pname;
           rev = "v${version}";
-          sha256 = "sha256-bB8LsjZFeJbMmmC0YRPyMag2MBhwagUFC7aB1KhZEkA=";
+          sha256 = "sha256-nk8pBlss+g4EMy+RnAOyz6YlGGvlBvl5aBpcytsK1wY=";
           fetchSubmodules = true;
         };
 
   patches = [
-    ./0001-meson-patch-in-an-install-prefix-for-building-on-nix.patch
-    ./0002-meson-patch-ch-install-prefix.patch
+    ./do-not-use-sysconfig.patch
+    ./qemu-segmentation-fault-in-virtqemud-executing-qemuD.patch
   ];
 
   nativeBuildInputs = [
@@ -136,21 +138,22 @@ stdenv.mkDerivation rec {
     systemd
     libnl
     numad
-    zfs
     libapparmor
     libcap_ng
     numactl
     attr
     parted
     libtirpc
-  ] ++ optionals (enableXen && stdenv.isLinux && stdenv.isx86_64) [
-    xen
-  ] ++ optionals enableIscsi [
-    openiscsi
   ] ++ optionals enableCeph [
     ceph
   ] ++ optionals enableGlusterfs [
     glusterfs
+  ] ++ optionals enableIscsi [
+    openiscsi
+  ] ++ optionals enableXen [
+    xen
+  ] ++ optionals enableZfs [
+    zfs
   ] ++ optionals stdenv.isDarwin [
     libiconv
     gmp
@@ -187,23 +190,15 @@ stdenv.mkDerivation rec {
   mesonFlags =
     let
       opt = option: enable: "-D${option}=${if enable then "enabled" else "disabled"}";
+      enableDrivers = map (name: opt "driver_${name}" true);
     in
     [
-      "--sysconfdir=/var/lib"
-      "-Dinstall_prefix=${placeholder "out"}"
-      "-Dlocalstatedir=/var"
-      "-Drunstatedir=/run"
+      "--localstatedir=${placeholder "out"}/var/"
+      "-Drunstatedir=${placeholder "out"}/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"
@@ -211,9 +206,24 @@ stdenv.mkDerivation rec {
       "-Dstorage_disk=enabled"
       (opt "glusterfs" enableGlusterfs)
       (opt "storage_rbd" enableCeph)
+      (opt "storage_zfs" enableZfs)
     ] ++ optionals stdenv.isDarwin [
       "-Dinit_script=none"
-    ];
+    ] ++ (enableDrivers [
+      "ch"
+      "esx"
+      "interface"
+      "libvirtd"
+      "lxc"
+      "network"
+      "openvz"
+      "qemu"
+      "remote"
+      "secrets"
+      "test"
+      "vbox"
+      "vmware"
+    ] ++ lib.optional enableXen "libxl");
 
   postInstall =
     let
diff --git a/pkgs/development/libraries/libvirt/do-not-use-sysconfig.patch b/pkgs/development/libraries/libvirt/do-not-use-sysconfig.patch
new file mode 100644
index 0000000000000..fae61294584eb
--- /dev/null
+++ b/pkgs/development/libraries/libvirt/do-not-use-sysconfig.patch
@@ -0,0 +1,211 @@
+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
new file mode 100644
index 0000000000000..f37ec7065afda
--- /dev/null
+++ b/pkgs/development/libraries/libvirt/qemu-segmentation-fault-in-virtqemud-executing-qemuD.patch
@@ -0,0 +1,50 @@
+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
+