diff options
Diffstat (limited to 'gnu/packages/virtualization.scm')
-rw-r--r-- | gnu/packages/virtualization.scm | 153 |
1 files changed, 91 insertions, 62 deletions
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 90472b9221..f3396e7c94 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -26,6 +26,7 @@ ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> ;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2022 Ekaitz Zarraga <ekaitz@elenq.tech> +;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -99,8 +100,9 @@ #:use-module (gnu packages ninja) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages package-management) - #:use-module (gnu packages perl) + #:use-module (gnu packages pciutils) #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages polkit) #:use-module (gnu packages protobuf) @@ -545,20 +547,19 @@ firmware blobs. You can (define-public ganeti (package (name "ganeti") - (version "3.0.1") + (version "3.0.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/ganeti/ganeti") (commit (string-append "v" version)))) (sha256 - (base32 "1i7gx0sdx9316fnldbv738s0ihym1370nhc1chk0biandkl8vvq0")) + (base32 "1xw7rm0k411aj0a4hrxz9drn7827bihp6bwizbapfx8k4c3125k4")) (file-name (git-file-name name version)) (patches (search-patches "ganeti-shepherd-support.patch" "ganeti-shepherd-master-failover.patch" - "ganeti-sphinx-compat.patch" - "ganeti-haskell-compat.patch" "ganeti-haskell-pythondir.patch" + "ganeti-pyyaml-compat.patch" "ganeti-disable-version-symlinks.patch")))) (build-system gnu-build-system) (arguments @@ -609,20 +610,6 @@ firmware blobs. You can ,(system->qemu-target (%current-system)))) #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-version-constraints - (lambda _ - ;; Loosen version constraints for compatibility with Stackage 18.10. - (substitute* "cabal/ganeti.template.cabal" - (("(.*base64-bytestring.*) < 1\\.1" _ match) - (string-append match " < 1.2")) - (("(.*QuickCheck.*) < 2\\.14" _ match) - (string-append match " < 2.15"))))) - (add-after 'unpack 'pyparsing-compat - (lambda _ - ;; Adjust for Pyparsing 3.0. Remove for Ganeti 3.0.2+. - (substitute* "lib/qlang.py" - (("operatorPrecedence") - "infixNotation")))) (add-after 'unpack 'create-vcs-version (lambda _ ;; If we are building from a git checkout, we need to create a @@ -714,6 +701,7 @@ firmware blobs. You can (("test/py/ganeti\\.asyncnotifier_unittest\\.py") "") (("test/py/ganeti\\.backend_unittest\\.py") "") (("test/py/ganeti\\.daemon_unittest\\.py") "") + (("test/py/ganeti\\.hypervisor\\.hv_kvm_unittest\\.py") "") (("test/py/ganeti\\.tools\\.ensure_dirs_unittest\\.py") "") (("test/py/ganeti\\.utils\\.io_unittest-runasroot\\.py") "") ;; Disable the bash_completion test, as it requires the full @@ -1032,8 +1020,18 @@ Debian or a derivative using @command{debootstrap}.") (sha256 (base32 "0cik2m0byfp9ppq0hpg3xyrlp5ag1i4dww7a7872mlm36xxqagg0")))) (build-system gnu-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'configure-dtc-path + (lambda* (#:key inputs #:allow-other-keys) + ;; Reference dtc by its absolute store path. + (substitute* "riscv/dts.cc" + (("DTC") + (string-append "\"" (search-input-file inputs "/bin/dtc") "\"")))))))) (inputs - (list dtc)) + (list bash-minimal dtc)) (native-inputs (list python-wrapper)) (home-page "https://github.com/riscv-software-src/riscv-isa-sim") @@ -1045,7 +1043,7 @@ of one or more RISC-V harts.") (define-public libosinfo (package (name "libosinfo") - (version "1.9.0") + (version "1.10.0") (source (origin (method url-fetch) @@ -1053,49 +1051,36 @@ of one or more RISC-V harts.") version ".tar.xz")) (sha256 (base32 - "0nd360c9ampw8hb6xh5g45q858df2r4jj9q88bcl6gzgaj0l3wxl")))) + "0193sdvv9yj3h6wwhj441d2fhccc7fh0m36sl0fv5pl0ql7y0lm2")))) (build-system meson-build-system) (arguments - `(#:configure-flags - (list (string-append "-Dwith-usb-ids-path=" - (assoc-ref %build-inputs "usb.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\";")))))))) - (inputs - `(("libsoup" ,libsoup-minimal-2) - ("libxml2" ,libxml2) - ("libxslt" ,libxslt) - ("osinfo-db" ,osinfo-db))) + (list + #:configure-flags + #~(list (string-append "-Dwith-usb-ids-path=" + (search-input-file %build-inputs + "share/hwdata/usb.ids")) + (string-append "-Dwith-pci-ids-path=" + (search-input-file %build-inputs + "share/hwdata/pci.ids"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-osinfo-path + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (substitute* "osinfo/osinfo_loader.c" + (("path = DATA_DIR.*") + (format #f "path = ~s;" + (search-input-directory (or native-inputs inputs) + "share/osinfo"))))))))) + (inputs (list libsoup-minimal-2 libxml2 libxslt osinfo-db)) (native-inputs - `(("glib" ,glib "bin") ; glib-mkenums, etc. - ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc/stable) - ("vala" ,vala) - ("intltool" ,intltool) - ("pkg-config" ,pkg-config) - ("pci.ids" - ,(origin - (method url-fetch) - (uri "https://github.com/pciutils/pciids/raw/ad02084f0bc143e3c15e31a6152a3dfb1d7a3156/pci.ids") - (sha256 - (base32 - "0kfhpj5rnh24hz2714qhfmxk281vwc2w50sm73ggw5d15af7zfsw")))) - ("usb.ids" - ,(origin - (method url-fetch) - (uri "https://svn.code.sf.net/p/linux-usb/repo/trunk/htdocs/usb.ids?r=2681") - (file-name "usb.ids") - (sha256 - (base32 - "1m6yhvz5k8aqzxgk7xj3jkk8frl1hbv0h3vgj4wbnvnx79qnvz3r")))))) + (list `(,glib "bin") ;glib-mkenums, etc. + gobject-introspection + gtk-doc/stable + `(,hwdata "pci") + `(,hwdata "usb") + vala + intltool + pkg-config)) (home-page "https://libosinfo.org/") (synopsis "Operating system information database") (description "libosinfo is a GObject based library API for managing @@ -2151,7 +2136,12 @@ override CC = " (assoc-ref inputs "cross-gcc") "/bin/i686-linux-gnu-gcc")) (string-append "runtime_library_dirs = ['" (assoc-ref outputs "out") "/lib'],\nlibrary_dirs ="))) - #t)) + + ;; This needs to be quoted: + ;; <https://lists.gnu.org/archive/html/guix-devel/2022-03/msg00113.html>. + (substitute* "xen/arch/x86/xen.lds.S" + ((".note.gnu.build-id") + "\".note.gnu.build-id\"")))) (add-before 'configure 'patch-xen-script-directory (lambda* (#:key outputs #:allow-other-keys) (substitute* '("configure" @@ -2361,3 +2351,42 @@ use with virtualization provisioning tools") "@code{transient} is a wrapper for QEMU allowing the creation of virtual machines with shared folder, ssh, and disk creation support.") (license license:expat))) + +(define-public riscv-pk + (package + (name "riscv-pk") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/riscv-software-src/riscv-pk") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1cc0rz4q3a1zw8756b8yysw8lb5g4xbjajh5lvqbjix41hbdx6xz")))) + (build-system gnu-build-system) + (arguments + (list #:out-of-source? #t + ;; riscv-pk can only be built for riscv64. + #:target "riscv64-linux-gnu" + #:make-flags #~(list (string-append "INSTALLDIR=" #$output)) + ;; Add flags to keep symbols fromhost and tohost. These symbols are + ;; required for the correct functioning of pk. + #:strip-flags #~(list "--strip-unneeded" + "--keep-symbol=fromhost" + "--keep-symbol=tohost" + "--enable-deterministic-archives"))) + (home-page "https://github.com/riscv-software-src/riscv-pk") + (synopsis "RISC-V Proxy Kernel") + (description "The RISC-V Proxy Kernel, @command{pk}, is a lightweight +application execution environment that can host statically-linked RISC-V ELF +binaries. It is designed to support tethered RISC-V implementations with +limited I/O capability and thus handles I/O-related system calls by proxying +them to a host computer. + +This package also contains the Berkeley Boot Loader, @command{bbl}, which is a +supervisor execution environment for tethered RISC-V systems. It is designed +to host the RISC-V Linux port.") + (license license:bsd-3))) |