summaryrefslogtreecommitdiff
path: root/gnu/packages/virtualization.scm
diff options
context:
space:
mode:
authorPierre Langlois <pierre.langlois@gmx.com>2021-03-20 21:31:22 +0000
committerLudovic Courtès <ludo@gnu.org>2021-03-31 15:36:48 +0200
commit383b02a370252c08eb1d43ac94d659c1d3993a35 (patch)
treedf2419c84e73b0c7b2bfeb5c93061264e34725f7 /gnu/packages/virtualization.scm
parentc536f0b217714917988d2f412999d978c2f2f495 (diff)
downloadguix-patches-383b02a370252c08eb1d43ac94d659c1d3993a35.tar
guix-patches-383b02a370252c08eb1d43ac94d659c1d3993a35.tar.gz
gnu: libvirt: Update to 7.1.0.
* 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. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/virtualization.scm')
-rw-r--r--gnu/packages/virtualization.scm78
1 files changed, 33 insertions, 45 deletions
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index c6929b9f1a..7a34f8db1f 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