diff options
author | Bernardo Meurer <bernardo@meurer.org> | 2022-03-11 14:10:20 -0800 |
---|---|---|
committer | Bernardo Meurer <bernardo@meurer.org> | 2022-03-12 00:34:41 -0800 |
commit | 036ee2b9e186e1353f77ce2f2322763743c1c0c1 (patch) | |
tree | 16aa1a541de5608d686dfca36c1838f9e6891647 /pkgs/development/libraries/libvirt | |
parent | db0756bf8743268fb3cb86864bda803b70d83b2c (diff) |
libvirt: 7.10.0 -> 8.1.0
Diffstat (limited to 'pkgs/development/libraries/libvirt')
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 + |