;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages assembly)
#:use-module (gnu packages attr)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages backup)
#:use-module (gnu packages bison)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages golang)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
+ #:use-module (gnu packages libbsd)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages selinux)
#:use-module (gnu packages sdl)
+ #:use-module (gnu packages sphinx)
#:use-module (gnu packages spice)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
+ #:use-module (guix build-system meson)
#:use-module (guix build-system python)
+ #:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
(define-public qemu
(package
(name "qemu")
- (version "4.1.1")
+ (version "4.2.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qemu.org/qemu-"
version ".tar.xz"))
+ (patches (search-patches "qemu-CVE-2020-1711.patch"
+ "qemu-CVE-2020-7039.patch"
+ "qemu-CVE-2020-7211.patch"
+ "qemu-fix-documentation-build-failure.patch"))
(sha256
(base32
- "1lm1jndfpc5sydwrxyiz5sms414zkcg9jdl0zx318qbjsayxnvzd"))))
+ "1w38hzlw7xp05gcq1nhga7hxvndxy6dfcnzi7q2il8ff110isj6k"))))
(build-system gnu-build-system)
(arguments
- '(;; Running tests in parallel can occasionally lead to failures, like:
+ `(;; Running tests in parallel can occasionally lead to failures, like:
;; boot_sector_test: assertion failed (signature == SIGNATURE): (0x00000000 == 0x0000dead)
#:parallel-tests? #f
#:configure-flags (list "--enable-usb-redir" "--enable-opengl"
+ "--enable-docs"
(string-append "--smbd="
(assoc-ref %outputs "out")
"/libexec/samba-wrapper")
"--audio-drv-list=alsa,pa,sdl")
;; Make build and test output verbose to facilitate investigation upon failure.
#:make-flags '("V=1")
+ #:modules ((srfi srfi-1)
+ (ice-9 match)
+ ,@%gnu-build-system-modules)
#:phases
(modify-phases %standard-phases
+ (add-after 'set-paths 'hide-glibc
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Work around https://issues.guix.info/issue/36882. We need to
+ ;; remove glibc from C_INCLUDE_PATH so that the one hardcoded in GCC,
+ ;; at the bottom of GCC include search-path is used.
+ (let* ((filters '("libc"))
+ (input-directories
+ (filter-map (lambda (input)
+ (match input
+ ((name . dir)
+ (and (not (member name filters))
+ dir))))
+ inputs)))
+ (set-path-environment-variable "C_INCLUDE_PATH"
+ '("include")
+ input-directories)
+ #t)))
(replace 'configure
(lambda* (#:key inputs outputs (configure-flags '())
#:allow-other-keys)
("spice" ,spice)
("usbredir" ,usbredir)
("util-linux" ,util-linux)
- ;; ("vde2" ,vde2)
+ ("vde2" ,vde2)
("virglrenderer" ,virglrenderer)
("zlib" ,zlib)))
(native-inputs `(("gettext" ,gettext-minimal)
("bison" ,bison)
("pkg-config" ,pkg-config)
("python-wrapper" ,python-wrapper)
+ ("python-sphinx" ,python-sphinx)
("texinfo" ,texinfo)))
(home-page "https://www.qemu.org")
(synopsis "Machine emulator and virtualizer")
'("gettext")))
(inputs (fold alist-delete (package-inputs qemu)
'("libusb" "mesa" "sdl2" "spice" "virglrenderer" "gtk+"
- "usbredir" "libdrm" "libepoxy" "pulseaudio")))))
+ "usbredir" "libdrm" "libepoxy" "pulseaudio" "vde2")))))
;; The GRUB test suite fails with later versions of Qemu, so we
;; keep it at 2.10 for now. See
(search-patches "qemu-glibc-2.27.patch"))))
;; qemu-minimal-2.10 needs Python 2. Remove below once no longer necessary.
(native-inputs `(("python-2" ,python-2)
- ,@(fold alist-delete (package-native-inputs qemu)
- '("python-wrapper"))))
+ ,@(fold alist-delete (package-native-inputs qemu-minimal)
+ '("python-wrapper" "python-sphinx"))))
(inputs
- (fold alist-delete (package-inputs qemu)
+ (fold alist-delete (package-inputs qemu-minimal)
;; Disable seccomp support, because it's not required for the GRUB
;; test suite, and because it fails with libseccomp 2.4.2 and later.
'("libseccomp"))))))
(define-public libosinfo
(package
(name "libosinfo")
- (version "1.5.0")
+ (version "1.7.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://releases.pagure.org/libosinfo/libosinfo-"
- version ".tar.gz"))
+ version ".tar.xz"))
(sha256
(base32
- "12b0xj9fz9q91d1pz9xm6aqap5k1ip0m9m3qvqmwjy1lk1kjasdz"))))
- (build-system gnu-build-system)
+ "1s97sv24bybggjx6hgqba2qdqz3ivfpd4cmkh4zm5y59sim109mv"))))
+ (build-system meson-build-system)
(arguments
`(#:configure-flags
- (list (string-append "--with-usb-ids-path="
+ (list (string-append "-Dwith-usb-ids-path="
(assoc-ref %build-inputs "usb.ids"))
- (string-append "--with-pci-ids-path="
- (assoc-ref %build-inputs "pci.ids")))))
+ (string-append "-Dwith-pci-ids-path="
+ (assoc-ref %build-inputs "pci.ids")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-osinfo-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "osinfo/osinfo_loader.c"
+ (("path = DATA_DIR.*")
+ (string-append "path = \"" (assoc-ref inputs "osinfo-db")
+ "/share/osinfo\";")))
+ #t)))))
(inputs
`(("libsoup" ,libsoup)
("libxml2" ,libxml2)
("libxslt" ,libxslt)
- ("gobject-introspection" ,gobject-introspection)))
+ ("osinfo-db" ,osinfo-db)))
(native-inputs
`(("glib" ,glib "bin") ; glib-mkenums, etc.
+ ("gobject-introspection" ,gobject-introspection)
("gtk-doc" ,gtk-doc)
("vala" ,vala)
("intltool" ,intltool)
(add-before 'configure 'disable-broken-tests
(lambda _
(let ((tests (list "commandtest" ; hangs idly
- "qemuxml2argvtest" ; fails
- "qemuhotplugtest" ; fails
+ "qemuxml2argvtest" ; fails
+ "qemuhotplugtest" ; fails
"virnetsockettest" ; tries to network
"virshtest"))) ; fails
(substitute* "tests/Makefile.in"
("libpcap" ,libpcap)
("libnl" ,libnl)
("libtirpc" ,libtirpc) ;for <rpc/rpc.h>
- ("libuuid" ,util-linux)
+ ("libuuid" ,util-linux "lib")
("lvm2" ,lvm2) ;for libdevmapper
("curl" ,curl)
("openssl" ,openssl)
(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)))
+ (("/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)
("libvirt-glib" ,libvirt-glib)
("libosinfo" ,libosinfo)
("vte" ,vte)
- ("gobject-introspection" ,gobject-introspection)
("python-libvirt" ,python-libvirt)
("python-requests" ,python-requests)
("python-ipaddress" ,python-ipaddress)
`(("qemu" ,qemu)))
(native-inputs
`(("glib" ,glib "bin") ; glib-compile-schemas
+ ("gobject-introspection" ,gobject-introspection)
("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
("perl" ,perl) ; pod2man
("intltool" ,intltool)))
(define-public criu
(package
(name "criu")
- (version "3.11")
+ (version "3.13")
(source (origin
(method url-fetch)
(uri (string-append "http://download.openvz.org/criu/criu-"
version ".tar.bz2"))
(sha256
(base32
- "03nimyn3wy5mlw30gq7bvlzvvprqjv8f25240yj5arzlld8mhsw8"))))
+ "1yn9ix9lqvqvjrs3a3g6g1wqfniyf9n7giy0mr3jvijmrcm7y0pa"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
#:make-flags
(list (string-append "PREFIX=" (assoc-ref %outputs "out"))
(string-append "LIBDIR=" (assoc-ref %outputs "out")
- "/lib"))
+ "/lib")
+ (string-append "ASCIIDOC=" (assoc-ref %build-inputs "asciidoc")
+ "/bin/asciidoc")
+ (string-append "XMLTO=" (assoc-ref %build-inputs "xmlto")
+ "/bin/xmlto"))
#:phases
(modify-phases %standard-phases
(replace 'configure
;; which define some of the same constants.
(assoc-ref inputs "kernel-headers")
"/include"))
- ;; Prevent xmlto from failing the install phase.
+ #t))
+ (add-after 'configure 'fix-documentation
+ (lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "Documentation/Makefile"
- (("XMLTO.*:=.*")
- (string-append "XMLTO:="
- (assoc-ref inputs "xmlto")
- "/bin/xmlto"
- " --skip-validation "
- " -x "
- (assoc-ref inputs "docbook-xsl")
- "/xml/xsl/docbook-xsl-"
- ,(package-version docbook-xsl)
- "/manpages/docbook.xsl"))
- (("\\$\\(XMLTO\\);")
- (string-append (assoc-ref inputs "xmlto")
- "/bin/xmlto;")))
+ (("-m custom.xsl")
+ (string-append
+ "-m custom.xsl --skip-validation -x "
+ (assoc-ref inputs "docbook-xsl") "/xml/xsl/"
+ ,(package-name docbook-xsl) "-"
+ ,(package-version docbook-xsl)
+ "/manpages/docbook.xsl")))
#t))
(add-after 'unpack 'hardcode-variables
(lambda* (#:key inputs #:allow-other-keys)
("libaio" ,libaio)
("libcap" ,libcap)
("libnet" ,libnet)
- ("libnl" ,libnl)))
+ ("libnl" ,libnl)
+ ("libbsd" ,libbsd)))
(native-inputs
`(("pkg-config" ,pkg-config)
("perl" ,perl)
(lambda* (#:key outputs #:allow-other-keys)
(chdir "client")
#t))
+ (add-after 'chdir-to-client 'add-missing-include
+ (lambda _
+ ;; Mimic upstream commit b9797529893, required since the
+ ;; update to Mesa 19.2.
+ (substitute* "renderers/egl/shader.h"
+ (("#include <stdbool\\.h>")
+ "#include <stdbool.h>\n#include <stddef.h>"))
+ #t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(install-file "looking-glass-client"
(string-append (assoc-ref outputs "out")
"/bin"))
- #t))
- )))
+ #t)))))
(home-page "https://looking-glass.hostfission.com")
(synopsis "KVM Frame Relay (KVMFR) implementation")
(description "Looking Glass allows the use of a KVM (Kernel-based Virtual
(define-public umoci
(package
(name "umoci")
- (version "0.4.4")
+ (version "0.4.5")
(source (origin
(method url-fetch)
(uri (string-append
(file-name (string-append "umoci-" version ".tar.xz"))
(sha256
(base32
- "1wchmha5k2f370jfijmx9fqp0cp99zfa9ajmfbq3j24qc8p5k8lk"))))
+ "0x1yyvpllz6fyy9xip6f7b6c94v984n3faf8p50fr9y4ygkgi15a"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/openSUSE/umoci"
(define-public bochs
(package
(name "bochs")
- (version "2.6.9")
+ (version "2.6.11")
(source
(origin
(method url-fetch)
(uri (string-append "https://sourceforge.net/projects/bochs/files/bochs/"
version "/bochs-" version ".tar.gz"))
(sha256
- (base32
- "1379cq4cnfprhw8mgh60i0q9j8fz8d7n3d5fnn2g9fdiv5znfnzf"))))
+ (base32 "0ql8q6y1k356li1g9gbvl21448mlxphxxi6kjb2b3pxvzd0pp2b3"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f)) ; No tests exist
+ `(#:tests? #f)) ; no tests exist
(inputs
`(("libxrandr" ,libxrandr)))
(home-page "http://bochs.sourceforge.net/")
("pixman" ,pixman)
("qemu" ,qemu-minimal)
("seabios" ,seabios)
- ("util-linux" ,util-linux) ; uuid
+ ("util-linux" ,util-linux "lib") ; uuid
; TODO: ocaml-findlib, ocaml-nox.
("xz" ,xz) ; for liblzma
("zlib" ,zlib)))
;; TODO: Some files are licensed differently. List those.
(license license:gpl2)
(supported-systems '("i686-linux" "x86_64-linux" "armhf-linux"))))
+
+(define-public osinfo-db-tools
+ (package
+ (name "osinfo-db-tools")
+ (version "1.7.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://releases.pagure.org/libosinfo/osinfo-db-tools-"
+ version ".tar.xz"))
+
+ (sha256
+ (base32
+ "08x8mrafphyll0d35xdc143rip3ahrz6bmzhc85nwhq7yk2vxpab"))))
+ (build-system meson-build-system)
+ (inputs
+ `(("libsoup" ,libsoup)
+ ("libxml2" ,libxml2)
+ ("libxslt" ,libxslt)
+ ("json-glib" ,json-glib)
+ ("libarchive" ,libarchive)))
+ (native-inputs
+ `(("perl" ,perl)
+ ("gobject-introspection" ,gobject-introspection)
+ ("gettext" ,gettext-minimal)
+ ("pkg-config" ,pkg-config)
+ ;; Tests
+ ("python" ,python)
+ ("pytest" ,python-pytest)
+ ("requests" ,python-requests)))
+ (home-page "https://gitlab.com/libosinfo/osinfo-db-tools")
+ (synopsis "Tools for managing the osinfo database")
+ (description "This package contains a set of tools to assist
+administrators and developers in managing the database.")
+ (license license:lgpl2.0+)))
+
+(define-public osinfo-db
+ (package
+ (name "osinfo-db")
+ (version "20200203")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://releases.pagure.org/libosinfo/osinfo-db-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "1zjq1dhlci00j17dij7s3l30hybzmaykpk5b6bd5xbllp745njn5"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (osinfo-dir (string-append out "/share/osinfo"))
+ (source (assoc-ref %build-inputs "source"))
+ (osinfo-db-import
+ (string-append (assoc-ref %build-inputs "osinfo-db-tools")
+ "/bin/osinfo-db-import")))
+ (mkdir-p osinfo-dir)
+ (invoke osinfo-db-import "--dir" osinfo-dir source)
+ #t))))
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("osinfo-db-tools" ,osinfo-db-tools)))
+ (home-page "https://gitlab.com/libosinfo/osinfo-db")
+ (synopsis "Database of information about operating systems")
+ (description "Osinfo-db provides the database files for use with the
+libosinfo library. It provides information about guest operating systems for
+use with virtualization provisioning tools")
+ (license license:lgpl2.0+)))