From 1a5e354d6ba66930e14b22baec44c034709c3bcb Mon Sep 17 00:00:00 2001 From: JEAN-FRANCOIS GUILLAUME Date: Wed, 6 Jul 2022 12:22:23 +0200 Subject: [PATCH] updating libvirtd and openvswitch to latest version --- glicid/packages/networking.scm | 15 + .../glicid-libvirt-add-install-prefix.patch | 320 ++++++++++++++++++ glicid/packages/virtualization.scm | 26 +- 3 files changed, 356 insertions(+), 5 deletions(-) create mode 100644 glicid/packages/patches/glicid-libvirt-add-install-prefix.patch diff --git a/glicid/packages/networking.scm b/glicid/packages/networking.scm index e9ab9ca..da75436 100644 --- a/glicid/packages/networking.scm +++ b/glicid/packages/networking.scm @@ -62,3 +62,18 @@ ) ) ) + +(define-public openvswitch + (package + (inherit gnu:openvswitch) + (name "openvswitch") + (version "2.17.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.openvswitch.org/releases/openvswitch-" version ".tar.gz")) + (sha256 (base32 "0sada2a9x9x7x6a45l7iklqh29wsbrdvvgpkyz5cpf5d5fs0sbka")) + ) + ) + ) +) diff --git a/glicid/packages/patches/glicid-libvirt-add-install-prefix.patch b/glicid/packages/patches/glicid-libvirt-add-install-prefix.patch new file mode 100644 index 0000000..d978a2b --- /dev/null +++ b/glicid/packages/patches/glicid-libvirt-add-install-prefix.patch @@ -0,0 +1,320 @@ +diff --git a/meson.build b/meson.build +index e03f330f3d..f1139ecf50 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 5b43cdbd6b..e9dff18441 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 0cc277db82..c11c0aa97b 100644 +--- a/src/libxl/meson.build ++++ b/src/libxl/meson.build +@@ -81,12 +81,12 @@ if conf.has('WITH_LIBXL') + virt_install_dirs += [ + confdir / 'libxl', + confdir / 'libxl' / 'autostart', +- localstatedir / 'lib' / 'libvirt' / 'libxl', ++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'libxl', + localstatedir / 'lib' / 'libvirt' / 'libxl' / 'channel', + localstatedir / 'lib' / 'libvirt' / 'libxl' / 'channel' / 'target', + localstatedir / 'lib' / 'libvirt' / 'libxl' / 'dump', + localstatedir / 'lib' / 'libvirt' / 'libxl' / 'save', +- localstatedir / 'log' / 'libvirt' / 'libxl', +- runstatedir / 'libvirt' / 'libxl', ++ install_prefix + localstatedir / 'log' / 'libvirt' / 'libxl', ++ install_prefix + runstatedir / 'libvirt' / 'libxl', + ] + endif +diff --git a/src/locking/meson.build b/src/locking/meson.build +index 72f7780438..abe70d20d5 100644 +--- a/src/locking/meson.build ++++ b/src/locking/meson.build +@@ -238,14 +238,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 99d4a34213..ee1d8445b3 100644 +--- a/src/lxc/meson.build ++++ b/src/lxc/meson.build +@@ -178,8 +178,8 @@ if conf.has('WITH_LXC') + virt_install_dirs += [ + confdir / 'lxc', + confdir / 'lxc' / 'autostart', +- localstatedir / 'lib' / 'libvirt' / 'lxc', +- localstatedir / 'log' / 'libvirt' / 'lxc', +- runstatedir / 'libvirt' / 'lxc', ++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'lxc', ++ install_prefix + localstatedir / 'log' / 'libvirt' / 'lxc', ++ install_prefix + runstatedir / 'libvirt' / 'lxc', + ] + endif +diff --git a/src/meson.build b/src/meson.build +index 88a6f15760..211a391979 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -675,7 +675,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: +@@ -738,7 +738,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) +@@ -867,7 +867,7 @@ if conf.has('WITH_LIBVIRTD') + + install_data( + init_file, +- install_dir: sysconfdir / 'init.d', ++ install_dir: install_prefix + sysconfdir / 'init.d', + install_mode: 'rwxr-xr-x', + rename: [ init['name'] ], + ) +@@ -875,7 +875,7 @@ if conf.has('WITH_LIBVIRTD') + 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 +@@ -902,10 +902,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 b5eff0c3ab..a0f26d624e 100644 +--- a/src/network/meson.build ++++ b/src/network/meson.build +@@ -73,11 +73,11 @@ if conf.has('WITH_NETWORK') + } + + virt_install_dirs += [ +- confdir / 'qemu' / 'networks', +- confdir / 'qemu' / 'networks' / 'autostart', +- localstatedir / 'lib' / 'libvirt' / 'network', +- localstatedir / 'lib' / 'libvirt' / 'dnsmasq', +- runstatedir / 'libvirt' / 'network', ++ install_prefix + confdir / 'qemu' / 'networks', ++ install_prefix + confdir / 'qemu' / 'networks' / 'autostart', ++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'network', ++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'dnsmasq', ++ install_prefix + runstatedir / 'libvirt' / 'network', + ] + + configure_file( +@@ -85,12 +85,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 0d96c54ebe..66c92a1016 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 96952cc52d..3bd829d2a9 100644 +--- a/src/qemu/meson.build ++++ b/src/qemu/meson.build +@@ -199,24 +199,24 @@ if conf.has('WITH_QEMU') + endif + + virt_install_dirs += [ +- confdir / 'qemu', +- confdir / 'qemu' / 'autostart', +- localstatedir / 'cache' / 'libvirt' / 'qemu', +- localstatedir / 'lib' / 'libvirt' / 'qemu', +- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'channel', +- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'channel' / 'target', +- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'checkpoint', +- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'dump', +- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'nvram', +- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'ram', +- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'save', +- localstatedir / 'lib' / 'libvirt' / 'qemu' / 'snapshot', +- localstatedir / 'lib' / 'libvirt' / 'swtpm', +- localstatedir / 'log' / 'libvirt' / 'qemu', +- localstatedir / 'log' / 'swtpm' / 'libvirt' / 'qemu', +- runstatedir / 'libvirt' / 'qemu', +- runstatedir / 'libvirt' / 'qemu' / 'dbus', +- runstatedir / 'libvirt' / 'qemu' / 'slirp', +- runstatedir / 'libvirt' / 'qemu' / 'swtpm', ++ install_prefix + confdir / 'qemu', ++ install_prefix + confdir / 'qemu' / 'autostart', ++ install_prefix + localstatedir / 'cache' / 'libvirt' / 'qemu', ++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu', ++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'channel', ++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'channel' / 'target', ++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'checkpoint', ++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'dump', ++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'nvram', ++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'ram', ++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'save', ++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'qemu' / 'snapshot', ++ install_prefix + localstatedir / 'lib' / 'libvirt' / 'swtpm', ++ install_prefix + localstatedir / 'log' / 'libvirt' / 'qemu', ++ install_prefix + localstatedir / 'log' / 'swtpm' / 'libvirt' / 'qemu', ++ install_prefix + runstatedir / 'libvirt' / 'qemu', ++ install_prefix + runstatedir / 'libvirt' / 'qemu' / 'dbus', ++ install_prefix + runstatedir / 'libvirt' / 'qemu' / 'slirp', ++ install_prefix + runstatedir / 'libvirt' / 'qemu' / 'swtpm', + ] + endif +diff --git a/src/remote/meson.build b/src/remote/meson.build +index eb4f7a0068..b6802eeeda 100644 +--- a/src/remote/meson.build ++++ b/src/remote/meson.build +@@ -235,7 +235,7 @@ if conf.has('WITH_REMOTE') + } + + virt_install_dirs += [ +- localstatedir / 'log' / 'libvirt', ++ install_prefix + localstatedir / 'log' / 'libvirt', + runstatedir / 'libvirt', + runstatedir / 'libvirt' / 'common', + ] +@@ -252,7 +252,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 +@@ -302,7 +302,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 58b4024b85..feefe553f1 100644 +--- a/src/security/apparmor/meson.build ++++ b/src/security/apparmor/meson.build +@@ -20,22 +20,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 bb28a904dc..7787b08366 100644 +--- a/tools/meson.build ++++ b/tools/meson.build +@@ -120,7 +120,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' diff --git a/glicid/packages/virtualization.scm b/glicid/packages/virtualization.scm index 4e4c083..266e2eb 100644 --- a/glicid/packages/virtualization.scm +++ b/glicid/packages/virtualization.scm @@ -2,7 +2,7 @@ #:use-module (guix packages) #:use-module (gnu packages) #:use-module (guix utils) - #:use-module (gnu packages virtualization) + #:use-module ((gnu packages virtualization) #:prefix gnu:) #:use-module (gnu packages storage) #:use-module (guix download) #:use-module (glicid utils) @@ -12,7 +12,7 @@ (define-public qemu-7.0-upstream (package - (inherit qemu) + (inherit gnu:qemu) (name "qemu-upstream") (version "7.0.0") (source (origin @@ -36,7 +36,7 @@ (define-public qemu-minimal-7.0-upstream (package - (inherit qemu-minimal) + (inherit gnu:qemu-minimal) (name "qemu-minimal-upstream") (version "7.0.0") (source (origin @@ -60,11 +60,11 @@ (define local-qemu qemu-7.0-upstream) -(define qemu-latest (latest-version local-qemu qemu)) +(define qemu-latest (latest-version local-qemu gnu:qemu)) (define local-qemu-minimal qemu-minimal-7.0-upstream) -(define qemu-minimal-latest (latest-version local-qemu-minimal qemu-minimal)) +(define qemu-minimal-latest (latest-version local-qemu-minimal gnu:qemu-minimal)) (define-public qemu-with-rbd (package @@ -99,3 +99,19 @@ )) ) ) + +(define-public libvirt + (package + (inherit gnu:libvirt) + (name "libvirt") + (version "8.5.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://libvirt.org/sources/libvirt-" version ".tar.xz")) + (sha256 (base32 "0qnvjy7k4l52bb5xylvhm21blkgbhld0jzilhsdf6gdqw6srj7j0")) + (patches (search-patches "glicid-libvirt-add-install-prefix.patch")) + ) + ) + ) +)