[PATCH 0/4] Update libvirt and friends.

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Pierre Langlois
Owner
unassigned
Submitted by
Pierre Langlois
Severity
normal
P
P
Pierre Langlois wrote on 20 Mar 2021 22:23
(name . Guix-patches)(address . guix-patches@gnu.org)
87o8fdwmdn.fsf@gmx.com
Hello Guix!

This is a patch series that updates libvirt to 7.1.0, now using the
meson build system, and then updates a few dependent packages as well.

Getting libvirt to build and then work properly was quite tedious, given
that we have to build it so that the binaries refer to /etc and /var at
runtime, while we set the prefix to the package output. This was
relatively straight-forward with the old build system, but with meson I
ended up having to patch meson.build so that:

- It allows for localstatedir to not be relative to the prefix. And
prevent it from trying to create empty directories in /var during
installation.

- It allows installing configurations, in /gnu/...-libvirt-7.1.0/etc/,
but still refer to the system /etc at runtime. An alternative would
be to not do any of the installation steps for /etc files, but doing
that was more intrusive a change to the build system, and having
those configurations installed could be useful examples, or referred
to be services.

Other than that, the rest is pretty straight-forward. I've tested this
using the libvirt service and virt-manager, making sure I could still
boot a VM. It's all working fine for me, although my use-case is quite
simple, just the defaults:

Toggle snippet (7 lines)
(services (cons*
(service libvirt-service-type
(libvirt-configuration
(unix-sock-group "libvirt")))
...))

Let me know what you think and if that's good enough to apply! The
definition is a bit more hacky than I'd like, so any ideas to improve it
would be great.

Thanks,
Pierre

Pierre Langlois (4):
gnu: libvirt: Update to 7.1.0.
gnu: python-libvirt: Update to 7.1.0.
gnu: libvirt-glib: Update to 4.0.0.
gnu: virt-manager: Update to 3.2.0.

gnu/local.mk | 2 +-
.../libvirt-create-machine-cgroup.patch | 48 --------
.../libvirt-do-not-create-var-dirs.patch | 30 +++++
gnu/packages/virtualization.scm | 106 ++++++++----------
4 files changed, 76 insertions(+), 110 deletions(-)
delete mode 100644 gnu/packages/patches/libvirt-create-machine-cgroup.patch
create mode 100644 gnu/packages/patches/libvirt-do-not-create-var-dirs.patch

--
2.31.0
-----BEGIN PGP SIGNATURE-----

iQFMBAEBCgA2FiEEctU9gYy29KFyWDdMqPyeRH9PfVQFAmBWZ7QYHHBpZXJyZS5s
YW5nbG9pc0BnbXguY29tAAoJEKj8nkR/T31Ut4MH/08J4vdIow+miAgtwDvFG1Ox
Tk+EeoL/MgaOF5xOQoW3c555n044HbIcT2c8jhusJHuvTHm2wfeu++UWgaJ569U9
QdEuVzrqYloVqVSC20XP+DG/ySqIjWc6irPAQl7GvPAUjoP7XMi/qHZuaBlCYg74
ec71exsPUNMnaW1atL6JB53peE7DB5Uz6EE6nGsIMww6NUMpMXtAYmX2Lzr751G/
BIM+lxCXJiDxmZ/otPEdpje9DJxfFpnZjH8/zSiIVJ+V/ZZH4KNuk2JbNhkiF4Qb
2B7bs5e0NuqLDfp3LekBfcZiWDIZTg/oCo8HUELg6o2N/r9RnfPWsf1y++SLCIU=
=ZqbC
-----END PGP SIGNATURE-----

P
P
Pierre Langlois wrote on 20 Mar 2021 22:31
[PATCH 2/4] gnu: python-libvirt: Update to 7.1.0.
(address . 47285@debbugs.gnu.org)(name . Pierre Langlois)(address . pierre.langlois@gmx.com)
20210320213125.11295-2-pierre.langlois@gmx.com
* gnu/packages/virtualization.scm (python-libvirt): Update to 7.1.0.
---
gnu/packages/virtualization.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (21 lines)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 86a95b77f1..399cfb544a 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -1191,14 +1191,14 @@ three libraries:
(define-public python-libvirt
(package
(name "python-libvirt")
- (version "5.8.0")
+ (version "7.1.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://libvirt.org/sources/python/libvirt-python-"
version ".tar.gz"))
(sha256
- (base32 "0kyz3lx49d8p75mvbzinxc1zgs8g7adn77y9bm15b8b4ad9zl5s6"))))
+ (base32 "0dq0qn0xx5hflaq5apj5pm79ba0wcl3w0j9klx8bg73z80gd7bzs"))))
(build-system python-build-system)
(arguments
`(#:phases
--
2.31.0
P
P
Pierre Langlois wrote on 20 Mar 2021 22:31
[PATCH 1/4] gnu: libvirt: Update to 7.1.0.
(address . 47285@debbugs.gnu.org)(name . Pierre Langlois)(address . pierre.langlois@gmx.com)
20210320213125.11295-1-pierre.langlois@gmx.com
* gnu/packages/virtualization.scm (libvirt): Update to 7.1.0.
[source]: Remove libvirt-create-machine-cgroup.patch, add
libvirt-do-not-create-var-dirs.patch.
[build-system]: Switch to meson-build-system.
[arguments]: Use meson-0.55. Adapt #:configure-flags for meson, there is no
need for --docdir anymore. Remove fix-BOURNE_SHELL-definition phase. Add
fix-sysconfdir-and-localstatedir phase. Adapt disable-broken-tests to meson.
[native-inputs]: Add python-docutils and rpcsvc-proto.
* gnu/packages/patches/libvirt-create-machine-cgroup.patch: Delete.
* gnu/packages/patches/libvirt-do-not-create-var-dirs.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Add new patch, remove the other.
---
gnu/local.mk | 2 +-
.../libvirt-create-machine-cgroup.patch | 48 ------------
.../libvirt-do-not-create-var-dirs.patch | 30 +++++++
gnu/packages/virtualization.scm | 78 ++++++++-----------
4 files changed, 64 insertions(+), 94 deletions(-)
delete mode 100644 gnu/packages/patches/libvirt-create-machine-cgroup.patch
create mode 100644 gnu/packages/patches/libvirt-do-not-create-var-dirs.patch

Toggle diff (47 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 3d4147a879..cd755f5d67 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1257,7 +1257,7 @@ dist_patch_DATA = \
%D%/packages/patches/kdbusaddons-kinit-file-name.patch \
%D%/packages/patches/libffi-3.3-powerpc-fixes.patch \
%D%/packages/patches/libffi-float128-powerpc64le.patch \
- %D%/packages/patches/libvirt-create-machine-cgroup.patch \
+ %D%/packages/patches/libvirt-do-not-create-var-dirs.patch \
%D%/packages/patches/libziparchive-add-includes.patch \
%D%/packages/patches/localed-xorg-keyboard.patch \
%D%/packages/patches/kdiagram-Fix-missing-link-libraries.patch \
diff --git a/gnu/packages/patches/libvirt-create-machine-cgroup.patch b/gnu/packages/patches/libvirt-create-machine-cgroup.patch
deleted file mode 100644
index 585ac237e1..0000000000
--- a/gnu/packages/patches/libvirt-create-machine-cgroup.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 9ca0b2955edea162b255b428e493cd8ffac52167 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
- <rosen644835@gmail.com>
-Date: Fri, 1 Nov 2019 17:29:00 +0100
-Subject: [PATCH] vircgroup: Ensure /machine group is associated with its
- parent.
-
-Call first virCgroupNew on the parent group virCgroupNewPartition if
-it is available on before the creation of the child group. This
-ensures that the creation of a first level group on the unified
-architecture, as the check at virCgroupV2ParseControllersFile as the
-parent file is there.
-
-Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1760233
----
- src/util/vircgroup.c | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c
-index b46f20abfd..33c61f2d45 100644
---- a/src/util/vircgroup.c
-+++ b/src/util/vircgroup.c
-@@ -855,9 +855,6 @@ virCgroupNewPartition(const char *path,
- if (virCgroupSetPartitionSuffix(path, &newPath) < 0)
- goto cleanup;
-
-- if (virCgroupNew(-1, newPath, NULL, controllers, group) < 0)
-- goto cleanup;
--
- if (STRNEQ(newPath, "/")) {
- char *tmp;
- parentPath = g_strdup(newPath);
-@@ -868,7 +865,12 @@ virCgroupNewPartition(const char *path,
-
- if (virCgroupNew(-1, parentPath, NULL, controllers, &parent) < 0)
- goto cleanup;
-+ }
-
-+ if (virCgroupNew(-1, newPath, parent, controllers, group) < 0)
-+ goto cleanup;
-+
-+ if (parent) {
- if (virCgroupMakeGroup(parent, *group, create, VIR_CGROUP_NONE) < 0)
- goto cleanup;
- }
---
-2.23.0
-
Toggle diff (153 lines)
diff --git a/gnu/packages/patches/libvirt-do-not-create-var-dirs.patch b/gnu/packages/patches/libvirt-do-not-create-var-dirs.patch
new file mode 100644
index 0000000000..640cb1696d
--- /dev/null
+++ b/gnu/packages/patches/libvirt-do-not-create-var-dirs.patch
@@ -0,0 +1,30 @@
+We define localstatedir as /var, and so we shouldn't be installing empty
+directories there.
+
+diff --git a/src/meson.build b/src/meson.build
+index f13b85b74e..58040f2c5d 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -893,22 +893,6 @@ if conf.has('WITH_DTRACE_PROBES')
+ )
+ endif
+
+-
+-# Install empty directories
+-
+-virt_install_dirs += [
+- localstatedir / 'cache' / 'libvirt',
+- localstatedir / 'lib' / 'libvirt' / 'images',
+- localstatedir / 'lib' / 'libvirt' / 'filesystems',
+- localstatedir / 'lib' / 'libvirt' / 'boot',
+-]
+-
+-meson.add_install_script(
+- meson_python_prog.path(), python3_prog.path(), meson_install_dirs_prog.path(),
+- virt_install_dirs,
+-)
+-
+-
+ # Check driver files
+
+ if host_machine.system() == 'linux'
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index fabac5b984..86a95b77f1 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -18,6 +18,7 @@
;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1065,64 +1066,49 @@ manage system or application containers.")
(define-public libvirt
(package
(name "libvirt")
- (version "5.8.0")
+ (version "7.1.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://libvirt.org/sources/libvirt-"
version ".tar.xz"))
(sha256
- (base32 "0m8cqaqflvys5kaqpvb0qr4k365j09jc5xk6x70yvg8qkcl2hcz2"))
+ (base32 "0v50ckf56h6jd9bmqwp0lh2cmb7qqjmcb6y3mz2i2r15h06ih3w7"))
(patches
- (search-patches "libvirt-create-machine-cgroup.patch"))))
- (build-system gnu-build-system)
+ (search-patches "libvirt-do-not-create-var-dirs.patch"))))
+ (build-system meson-build-system)
(arguments
- `(#:configure-flags
- (list "--with-qemu"
- "--with-qemu-user=nobody"
- "--with-qemu-group=kvm"
- "--with-polkit"
- (string-append "--docdir=" (assoc-ref %outputs "out") "/share/doc/"
- ,name "-" ,version)
- "--sysconfdir=/etc"
- "--localstatedir=/var")
+ `(#:meson ,meson-0.55 ;; libvirt requires meson 0.54 or higher.
+ #:configure-flags
+ (list "-Ddriver_qemu=enabled"
+ "-Dqemu_user=nobody"
+ "-Dqemu_group=kvm"
+ "-Dpolkit=enabled")
#:phases
(modify-phases %standard-phases
- (add-before 'configure 'fix-BOURNE_SHELL-definition
- ;; BOURNE_SHELL is hard-#defined to ‘/bin/sh’, causing test failures.
+ (add-after 'unpack 'fix-sysconfdir-and-localstatedir
(lambda _
- (substitute* "config.h.in"
- (("/bin/sh") (which "sh")))
- #t))
- (add-before 'configure 'patch-libtirpc-file-names
- (lambda* (#:key inputs #:allow-other-keys)
- ;; libvirt uses an m4 macro instead of pkg-config to determine where
- ;; the RPC headers are located. Tell it to look in the right place.
- (substitute* "configure"
- (("/usr/include/tirpc") ;defined in m4/virt-xdr.m4
- (string-append (assoc-ref inputs "libtirpc")
- "/include/tirpc")))
+ (substitute* "meson.build"
+ ;; We set the prefix to be the package output, but we need
+ ;; localstatedir to be /var. Sadly the build system doesn't
+ ;; seem to allow that easily.
+ (("localstatedir = prefix / get_option\\('localstatedir'\\)")
+ "localstatedir = get_option('localstatedir')")
+ ;; On the other hand, we keep sysconfdir using the prefix so
+ ;; that we install configuration files in the package output.
+ ;; However, we need to make sure the C code refers to /etc via
+ ;; SYSCONFDIR, and not the read-only configuration in the
+ ;; package output.
+ (("set_quoted\\('SYSCONFDIR', sysconfdir\\)")
+ "set_quoted('SYSCONFDIR', '/etc')"))
#t))
(add-before 'configure 'disable-broken-tests
(lambda _
- (let ((tests (list "commandtest" ; hangs idly
- "qemuxml2argvtest" ; fails
- "qemuhotplugtest" ; fails
- "virnetsockettest" ; tries to network
- "virshtest"))) ; fails
- (substitute* "tests/Makefile.in"
- (((format #f "(~a)\\$\\(EXEEXT\\)" (string-join tests "|")))
- ""))
- #t)))
- (replace 'install
- ;; Since the sysconfdir and localstatedir should be /etc and /var
- ;; at runtime, we must prevent writing to them at installation
- ;; time.
- (lambda* (#:key make-flags #:allow-other-keys)
- (apply invoke "make" "install"
- "sysconfdir=/tmp/etc"
- "localstatedir=/tmp/var"
- make-flags))))))
+ (substitute* "tests/meson.build"
+ (("\\{ 'name': 'commandtest'.*") "") ; hangs idly
+ (("\\{ 'name': 'qemuxml2argvtest'.*") "") ; fails
+ (("\\{ 'name': 'virnetsockettest'.*") "")) ; tries to network
+ #t)))))
(inputs
`(("libxml2" ,libxml2)
("eudev" ,eudev)
@@ -1149,7 +1135,9 @@ manage system or application containers.")
("perl" ,perl)
("pkg-config" ,pkg-config)
("polkit" ,polkit)
- ("python" ,python-wrapper)))
+ ("python" ,python-wrapper)
+ ("python-docutils" ,python-docutils) ;for rst2html
+ ("rpcsvc-proto" ,rpcsvc-proto))) ;for 'rpcgen'
(home-page "https://libvirt.org")
(synopsis "Simple API for virtualization")
(description "Libvirt is a C toolkit to interact with the virtualization
--
2.31.0
P
P
Pierre Langlois wrote on 20 Mar 2021 22:31
[PATCH 3/4] gnu: libvirt-glib: Update to 4.0.0.
(address . 47285@debbugs.gnu.org)(name . Pierre Langlois)(address . pierre.langlois@gmx.com)
20210320213125.11295-3-pierre.langlois@gmx.com
* gnu/packages/virtualization.scm (libvirt-glib): Update to 4.0.0.
[build-system]: Switch to meson-build-system.
---
gnu/packages/virtualization.scm | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 399cfb544a..97ca1fa0c8 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -1149,15 +1149,15 @@ to integrate other virtualization mechanisms if needed.")
(define-public libvirt-glib
(package
(name "libvirt-glib")
- (version "3.0.0")
+ (version "4.0.0")
(source (origin
(method url-fetch)
(uri (string-append "ftp://libvirt.org/libvirt/glib/"
- "libvirt-glib-" version ".tar.gz"))
+ "libvirt-glib-" version ".tar.xz"))
(sha256
(base32
- "1zpbv4ninc57c9rw4zmmkvvqn7154iv1qfr20kyxn8xplalqrzvz"))))
- (build-system gnu-build-system)
+ "1gdcvqz88qkp402zra9csc6391f2xki1270x683n6ixakl3gf8w4"))))
+ (build-system meson-build-system)
(inputs
`(("openssl" ,openssl)
("cyrus-sasl" ,cyrus-sasl)
--
2.31.0
P
P
Pierre Langlois wrote on 20 Mar 2021 22:31
[PATCH 4/4] gnu: virt-manager: Update to 3.2.0.
(address . 47285@debbugs.gnu.org)(name . Pierre Langlois)(address . pierre.langlois@gmx.com)
20210320213125.11295-4-pierre.langlois@gmx.com
* gnu/packages/virtualization.scm (virt-manager): Update to 3.2.0.
[arguments]: Remove #:test-target. Remove fix-qemu-img-reference phase.
Adapt check phase to use pytest, although they still do not run.
[native-inputs]: Add python-docutils. Suggest adding python-pytest to enable
tests.
---
gnu/packages/virtualization.scm | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)

Toggle diff (63 lines)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 97ca1fa0c8..1df559aa5a 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -1230,7 +1230,7 @@ virtualization library.")
(define-public virt-manager
(package
(name "virt-manager")
- (version "2.2.1")
+ (version "3.2.0")
(source (origin
(method url-fetch)
(uri (string-append "https://virt-manager.org/download/sources"
@@ -1238,11 +1238,10 @@ virtualization library.")
version ".tar.gz"))
(sha256
(base32
- "06ws0agxlip6p6n3n43knsnjyd91gqhh2dadgc33wl9lx1k8vn6g"))))
+ "11kvpzcmyir91qz0dsnk7748jbb4wr8mrc744w117qc91pcy6vrb"))))
(build-system python-build-system)
(arguments
`(#:use-setuptools? #f ; uses custom distutils 'install' command
- #:test-target "test_ui"
#:tests? #f ; TODO The tests currently fail
; RuntimeError: Loop condition wasn't
; met
@@ -1260,12 +1259,6 @@ virtualization library.")
(substitute* "virtinst/buildconfig.py"
(("/usr") (assoc-ref outputs "out")))
#t))
- (add-after 'unpack 'fix-qemu-img-reference
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "virtconv/formats.py"
- (("/usr(/bin/qemu-img)" _ suffix)
- (string-append (assoc-ref inputs "qemu") suffix)))
- #t))
(add-after 'unpack 'fix-default-uri
(lambda* (#:key inputs #:allow-other-keys)
;; Xen is not available for now - so only patch qemu.
@@ -1296,11 +1289,12 @@ virtualization library.")
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "HOME" "/tmp")
+ (setenv "XDG_CACHE_HOME" "/tmp")
(system "Xvfb :1 &")
(setenv "DISPLAY" ":1")
;; Dogtail requires that Assistive Technology support be enabled
(setenv "GTK_MODULES" "gail:atk-bridge")
- (invoke "dbus-run-session" "--" "python" "setup.py" "test_ui"))
+ (invoke "dbus-run-session" "--" "pytest" "--uitests"))
#t))
(add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
@@ -1330,7 +1324,9 @@ virtualization library.")
("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
("perl" ,perl) ; pod2man
("intltool" ,intltool)
+ ("rst2man" ,python-docutils)
;; The following are required for running the tests
+ ;; ("python-pytest" ,python-pytest)
;; ("python-dogtail" ,python-dogtail)
;; ("xvfb" ,xorg-server-for-tests)
;; ("dbus" ,dbus)
--
2.31.0
P
P
Pierre Langlois wrote on 20 Mar 2021 22:32
Re: [PATCH 0/4] Update libvirt and friends.
(name . Guix-patches)(address . guix-patches@gnu.org)
87im5lwlxj.fsf@gmx.com
Pierre Langlois writes:

Toggle quote (27 lines)
> Hello Guix!
>
> This is a patch series that updates libvirt to 7.1.0, now using the
> meson build system, and then updates a few dependent packages as well.
>
> Getting libvirt to build and then work properly was quite tedious, given
> that we have to build it so that the binaries refer to /etc and /var at
> runtime, while we set the prefix to the package output. This was
> relatively straight-forward with the old build system, but with meson I
> ended up having to patch meson.build so that:
>
> - It allows for localstatedir to not be relative to the prefix. And
> prevent it from trying to create empty directories in /var during
> installation.
>
> - It allows installing configurations, in /gnu/...-libvirt-7.1.0/etc/,
> but still refer to the system /etc at runtime. An alternative would
> be to not do any of the installation steps for /etc files, but doing
> that was more intrusive a change to the build system, and having
> those configurations installed could be useful examples, or referred
> to be services.
>
> Other than that, the rest is pretty straight-forward. I've tested this
> using the libvirt service and virt-manager, making sure I could still
> boot a VM. It's all working fine for me, although my use-case is quite
> simple, just the defaults:

Just after sending this, I realized we actually had a system test for
the libvirt service, that works too :-).
-----BEGIN PGP SIGNATURE-----

iQFMBAEBCgA2FiEEctU9gYy29KFyWDdMqPyeRH9PfVQFAmBWafgYHHBpZXJyZS5s
YW5nbG9pc0BnbXguY29tAAoJEKj8nkR/T31UGYkH/25kDtiVI8Q7fZSDm6ovzm78
mgIjEEW4dgV/9L/X77n+yPOwopYfZxPMmx9fCHU7Xn1jTEhBZGOCe+3yq6i9M+JQ
ytAEl4KFuPZGl+9roUZ3J0d0CUsNYDN0OkTDMR9h3Tg5GgPrsMrKSKfKcjbfbBvw
3lE8FDDh7iVxCC9AfI9PmzK6EWiSNe6/sdL8WCiGnfT40+8I+DTyBlVV4QOr5N7s
86utp6PNHKj6ps/lPpir3maYUpQFUsz+0EjzMVtsHipRpNXbbrec8je2bFR2iCV1
EW3mHsyozMiHCu5gL7POZW2ZW9J/w9lZkz9Z6Udrk/jCPIZkdpuZa8i0AMgxZsE=
=UpAD
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 31 Mar 2021 15:28
Re: bug#47285: [PATCH 0/4] Update libvirt and friends.
(name . Pierre Langlois)(address . pierre.langlois@gmx.com)(address . 47285-done@debbugs.gnu.org)
87czvfa1vf.fsf@gnu.org
Hi Pierre,

Pierre Langlois <pierre.langlois@gmx.com> skribis:

Toggle quote (35 lines)
> This is a patch series that updates libvirt to 7.1.0, now using the
> meson build system, and then updates a few dependent packages as well.
>
> Getting libvirt to build and then work properly was quite tedious, given
> that we have to build it so that the binaries refer to /etc and /var at
> runtime, while we set the prefix to the package output. This was
> relatively straight-forward with the old build system, but with meson I
> ended up having to patch meson.build so that:
>
> - It allows for localstatedir to not be relative to the prefix. And
> prevent it from trying to create empty directories in /var during
> installation.
>
> - It allows installing configurations, in /gnu/...-libvirt-7.1.0/etc/,
> but still refer to the system /etc at runtime. An alternative would
> be to not do any of the installation steps for /etc files, but doing
> that was more intrusive a change to the build system, and having
> those configurations installed could be useful examples, or referred
> to be services.
>
> Other than that, the rest is pretty straight-forward. I've tested this
> using the libvirt service and virt-manager, making sure I could still
> boot a VM. It's all working fine for me, although my use-case is quite
> simple, just the defaults:
>
> (services (cons*
> (service libvirt-service-type
> (libvirt-configuration
> (unix-sock-group "libvirt")))
> ...))
>
> Let me know what you think and if that's good enough to apply! The
> definition is a bit more hacky than I'd like, so any ideas to improve it
> would be great.

AFAICS it all works like a charm, including the system test :-), so I
went ahead and applied the whole series.

Thank you!

Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 47285@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 47285
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch