summaryrefslogtreecommitdiff
path: root/gnu/packages/virtualization.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/virtualization.scm')
-rw-r--r--gnu/packages/virtualization.scm129
1 files changed, 62 insertions, 67 deletions
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index d29b5f4978..9008ba0560 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017, 2018. 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
@@ -174,7 +174,7 @@
`(#:tests? ,(or (%current-target-system)
(not (string=? "i686-linux" (%current-system))))
#:configure-flags
- (let ((gcc (string-append (assoc-ref %build-inputs "gcc") "/bin/gcc"))
+ (let ((gcc (search-input-file %build-inputs "/bin/gcc"))
(out (assoc-ref %outputs "out")))
(list (string-append "--cc=" gcc)
;; Some architectures insist on using HOST_CC.
@@ -250,7 +250,7 @@
;; Configure, build and install QEMU user-emulation static binaries.
(add-after 'configure 'configure-user-static
(lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((gcc (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
+ (let* ((gcc (search-input-file inputs "/bin/gcc"))
(static (assoc-ref outputs "static"))
;; This is the common set of configure flags; it is
;; duplicated here to isolate this phase from manipulations
@@ -336,8 +336,7 @@ exec smbd $@")))
("perl" ,perl)
("flex" ,flex)
("bison" ,bison)
- ;; Using meson 0.57.1 enables reproducible QEMU builds.
- ("meson" ,meson-next)
+ ("meson" ,meson)
("ninja" ,ninja)
("pkg-config" ,pkg-config)
("python-wrapper" ,python-wrapper)
@@ -346,7 +345,7 @@ exec smbd $@")))
("texinfo" ,texinfo)
;; The following static libraries are required to build
;; the static output of QEMU.
- ("glib-static" ,glib-static)
+ ("glib:static" ,glib "static")
("pcre:static" ,pcre "static")
("zlib:static" ,zlib "static")))
(home-page "https://www.qemu.org")
@@ -522,8 +521,7 @@ firmware blobs. You can
"ganeti-sphinx-compat.patch"
"ganeti-haskell-compat.patch"
"ganeti-haskell-pythondir.patch"
- "ganeti-disable-version-symlinks.patch"
- "ganeti-preserve-PYTHONPATH.patch"))))
+ "ganeti-disable-version-symlinks.patch"))))
(build-system gnu-build-system)
(arguments
`(#:imported-modules (,@%gnu-build-system-modules
@@ -531,7 +529,7 @@ firmware blobs. You can
(guix build python-build-system))
#:modules (,@%gnu-build-system-modules
((guix build haskell-build-system) #:prefix haskell:)
- ((guix build python-build-system) #:select (python-version))
+ ((guix build python-build-system) #:select (site-packages))
(srfi srfi-1)
(srfi srfi-26)
(ice-9 match)
@@ -631,7 +629,8 @@ firmware blobs. You can
;; .sphinx-build-real executable name created by the Sphinx wrapper.
(substitute* "configure"
(("\\$SPHINX --version 2>&1")
- "$SPHINX --version 2>&1 | sed 's/.sphinx-build-real/sphinx-build/g'"))))
+ "$SPHINX --version 2>&1 \
+| sed 's/.sphinx-build-real/sphinx-build/g'"))))
;; The build system invokes Cabal and GHC, which do not work with
;; GHC_PACKAGE_PATH: <https://github.com/haskell/cabal/issues/3728>.
@@ -678,34 +677,16 @@ firmware blobs. You can
"")
;; This test requires networking.
(("test/py/import-export_unittest\\.bash")
- ""))
-
- ;; Many of the Makefile targets reset PYTHONPATH before running
- ;; the Python interpreter, which does not work very well for us.
- (substitute* "Makefile"
- (("PYTHONPATH=")
- (string-append "PYTHONPATH=" (getenv "PYTHONPATH") ":")))))
+ ""))))
(add-after 'build 'build-bash-completions
(lambda _
- (let ((orig-pythonpath (getenv "PYTHONPATH")))
- (setenv "PYTHONPATH" (string-append ".:" orig-pythonpath))
- (invoke "./autotools/build-bash-completion")
- (setenv "PYTHONPATH" orig-pythonpath))))
+ (setenv "PYTHONPATH" ".")
+ (invoke "./autotools/build-bash-completion")
+ (unsetenv "PYTHONPATH")))
(add-before 'check 'pre-check
(lambda* (#:key inputs #:allow-other-keys)
;; Set TZDIR so that time zones are found.
- (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata")
- "/share/zoneinfo"))
-
- ;; This test checks whether PYTHONPATH is untouched, and extends
- ;; it to include test directories if so. Add an else branch for
- ;; our modified PYTHONPATH, in order to prevent a confusing test
- ;; failure where expired certificates are not cleaned because
- ;; check-cert-expired is silently crashing.
- (substitute* "test/py/ganeti-cleaner_unittest.bash"
- (("then export PYTHONPATH=(.*)" all testpath)
- (string-append all "else export PYTHONPATH="
- (getenv "PYTHONPATH") ":" testpath "\n")))
+ (setenv "TZDIR" (search-input-directory inputs "share/zoneinfo"))
(substitute* "test/py/ganeti.utils.process_unittest.py"
;; This test attempts to run an executable with
@@ -758,19 +739,16 @@ firmware blobs. You can
((commands ... prog)
(cons (basename prog) progs))))
(loop (read-line port) progs)))))))))))
- ;; Wrap all executables with PYTHONPATH. We can't borrow the phase
- ;; from python-build-system because we also need to wrap the scripts
- ;; in $out/lib/ganeti such as "node-daemon-setup".
+ ;; Wrap all executables with GUIX_PYTHONPATH. We can't borrow
+ ;; the phase from python-build-system because we also need to wrap
+ ;; the scripts in $out/lib/ganeti such as "node-daemon-setup".
(add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(sbin (string-append out "/sbin"))
(lib (string-append out "/lib"))
- (python (assoc-ref inputs "python"))
- (major+minor (python-version python))
- (PYTHONPATH (string-append lib "/python" major+minor
- "/site-packages:"
- (getenv "PYTHONPATH"))))
+ (PYTHONPATH (string-append (site-packages inputs outputs)
+ ":" (getenv "GUIX_PYTHONPATH"))))
(define (shell-script? file)
(call-with-ascii-input-file file
(lambda (port)
@@ -791,7 +769,8 @@ firmware blobs. You can
(for-each (lambda (file)
(wrap-program file
- `("PYTHONPATH" ":" prefix (,PYTHONPATH))))
+ `("GUIX_PYTHONPATH" ":" prefix
+ (,PYTHONPATH))))
(append-map (cut find-files <> wrap?)
(list (string-append lib "/ganeti")
sbin)))))))))
@@ -1003,7 +982,7 @@ Debian or a derivative using @command{debootstrap}.")
(define-public libosinfo
(package
(name "libosinfo")
- (version "1.7.1")
+ (version "1.9.0")
(source
(origin
(method url-fetch)
@@ -1011,7 +990,7 @@ Debian or a derivative using @command{debootstrap}.")
version ".tar.xz"))
(sha256
(base32
- "1s97sv24bybggjx6hgqba2qdqz3ivfpd4cmkh4zm5y59sim109mv"))))
+ "0nd360c9ampw8hb6xh5g45q858df2r4jj9q88bcl6gzgaj0l3wxl"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
@@ -1026,13 +1005,12 @@ Debian or a derivative using @command{debootstrap}.")
(substitute* "osinfo/osinfo_loader.c"
(("path = DATA_DIR.*")
(string-append "path = \"" (assoc-ref inputs "osinfo-db")
- "/share/osinfo\";")))
- #t)))))
+ "/share/osinfo\";"))))))))
(inputs
- `(("libsoup" ,libsoup)
+ `(("libsoup" ,libsoup-minimal-2)
("libxml2" ,libxml2)
("libxslt" ,libxslt)
- ("osinfo-db" ,osinfo-db)))
+ ("osinfo-db" ,osinfo-db-next)))
(native-inputs
`(("glib" ,glib "bin") ; glib-mkenums, etc.
("gobject-introspection" ,gobject-introspection)
@@ -1257,14 +1235,14 @@ pretty simple, REST API.")
(define-public libvirt
(package
(name "libvirt")
- (version "7.6.0")
+ (version "7.9.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://libvirt.org/sources/libvirt-"
version ".tar.xz"))
(sha256
- (base32 "0hb1fq0yx41n36c3n1a54b5p37n0m7abs917d76v7aqas03735lg"))
+ (base32 "131fyxb05rrcr9ih4mhhjyw3cgsxh5l12vj4y109q9vlynsz5742"))
(patches (search-patches "libvirt-add-install-prefix.patch"))))
(build-system meson-build-system)
(arguments
@@ -1285,7 +1263,6 @@ pretty simple, REST API.")
(string-append "-Dinstall_prefix=" (assoc-ref %outputs "out"))
"--sysconfdir=/etc"
"--localstatedir=/var")
- #:meson ,meson-0.55
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'skip-directory-confusion
@@ -1359,6 +1336,8 @@ to integrate other virtualization mechanisms if needed.")
(base32
"1gdcvqz88qkp402zra9csc6391f2xki1270x683n6ixakl3gf8w4"))))
(build-system meson-build-system)
+ (arguments
+ `(#:meson ,meson-0.59)) ;KeyError: 'install_dir' with meson 0.60
(inputs
`(("openssl" ,openssl)
("cyrus-sasl" ,cyrus-sasl)
@@ -1392,14 +1371,14 @@ three libraries:
(define-public python-libvirt
(package
(name "python-libvirt")
- (version "7.3.0")
+ (version "7.9.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://libvirt.org/sources/python/libvirt-python-"
version ".tar.gz"))
(sha256
- (base32 "15pn8610ybf03xff3vbz3apz2ph42k2kh6k19r020l9nvc6jcv37"))))
+ (base32 "0nakisj2ady5a41k4zc95k0kp749f4ppmxgr91b1h1dzbzxcydc5"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -1462,8 +1441,8 @@ virtualization library.")
(lambda* (#:key inputs #:allow-other-keys)
;; Xen is not available for now - so only patch qemu.
(substitute* "virtManager/createconn.py"
- (("/usr(/bin/qemu-system)" _ suffix)
- (string-append (assoc-ref inputs "qemu") suffix)))
+ (("/usr(/bin/qemu-system-[a-zA-Z0-9_-]+)" _ suffix)
+ (search-input-file inputs suffix)))
#t))
(add-before 'wrap 'wrap-with-GI_TYPELIB_PATH
(lambda* (#:key inputs outputs #:allow-other-keys)
@@ -1497,7 +1476,7 @@ virtualization library.")
#t))
(add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
- (add-after 'install 'glib-or-gtk-wrap
+ (add-after 'wrap 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
(inputs
`(("dconf" ,dconf)
@@ -1562,11 +1541,13 @@ domains, their live performance and resource utilization statistics.")
(list (string-append "PREFIX=" (assoc-ref %outputs "out"))
(string-append "LIBDIR=" (assoc-ref %outputs "out")
"/lib")
- (string-append "ASCIIDOC=" (assoc-ref %build-inputs "asciidoc")
- "/bin/asciidoc")
+ (string-append "ASCIIDOC="
+ (search-input-file %build-inputs
+ "/bin/asciidoc"))
(string-append "PYTHON=python3")
- (string-append "XMLTO=" (assoc-ref %build-inputs "xmlto")
- "/bin/xmlto"))
+ (string-append "XMLTO="
+ (search-input-file %build-input
+ "/bin/xmlto")))
#:phases
(modify-phases %standard-phases
(delete 'configure) ; no configure script
@@ -1591,8 +1572,9 @@ domains, their live performance and resource utilization statistics.")
;; /usr/include/..., which obviously does not exist.
(let* ((file "google/protobuf/descriptor.proto")
(target (string-append "images/" file))
- (source (string-append (assoc-ref inputs "protobuf")
- "/include/" file)))
+ (source (search-input-file
+ inputs
+ (string-append "include/" file))))
(delete-file target)
(symlink source target))))
(add-after 'install 'wrap
@@ -1603,9 +1585,9 @@ domains, their live performance and resource utilization statistics.")
,(version-major+minor
(package-version python))
"/site-packages"))
- (path (getenv "PYTHONPATH")))
+ (path (getenv "GUIX_PYTHONPATH")))
(wrap-program (string-append out "/bin/crit")
- `("PYTHONPATH" ":" prefix (,site ,path))))))
+ `("GUIX_PYTHONPATH" ":" prefix (,site ,path))))))
(add-after 'install 'delete-static-libraries
;; Not building/installing these at all doesn't seem to be supported.
(lambda* (#:key outputs #:allow-other-keys)
@@ -2213,7 +2195,7 @@ which is a hypervisor.")
(define-public osinfo-db-tools
(package
(name "osinfo-db-tools")
- (version "1.8.0")
+ (version "1.9.0")
(source (origin
(method url-fetch)
(uri (string-append "https://releases.pagure.org/libosinfo/osinfo-db-tools-"
@@ -2221,10 +2203,10 @@ which is a hypervisor.")
(sha256
(base32
- "038q3gzdbkfkhpicj0755mw1q4gbvn57pslpw8n2dp3lds9im0g9"))))
+ "1h23a8nzdxjyvw44dwh903563n3b1z5skx8g0b1p1v5cif3iqpr5"))))
(build-system meson-build-system)
(inputs
- `(("libsoup" ,libsoup)
+ `(("libsoup" ,libsoup-minimal-2)
("libxml2" ,libxml2)
("libxslt" ,libxslt)
("json-glib" ,json-glib)
@@ -2279,6 +2261,19 @@ libosinfo library. It provides information about guest operating systems for
use with virtualization provisioning tools")
(license license:lgpl2.0+)))
+;; XXX: Support for guix-1.3 has been added upstream but no release were
+;; created. Remove it when a new osinfo-db release is out.
+(define-public osinfo-db-next
+ (package
+ (inherit osinfo-db)
+ (version "20211127")
+ (source (origin
+ (method url-fetch)
+ (uri "https://othacehe.org/work/osinfo-db-20211127.tar.xz")
+ (sha256
+ (base32
+ "0kvgdsvpm51a6vqs4k6zmdbc5vvj8mnsgm4pa7h79d9gg244gb3s"))))))
+
(define-public python-transient
(package
(name "python-transient")