diff options
Diffstat (limited to 'gnu/packages/virtualization.scm')
-rw-r--r-- | gnu/packages/virtualization.scm | 86 |
1 files changed, 70 insertions, 16 deletions
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 3f6c32f390..9556fbc61e 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -28,6 +28,7 @@ ;;; Copyright © 2022 Ekaitz Zarraga <[email protected]> ;;; Copyright © 2022 Arun Isaac <[email protected]> ;;; Copyright © 2022 Zhu Zihao <[email protected]> +;;; Copyright © 2023 Juliana Sims <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -96,6 +97,7 @@ #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages m4) + #:use-module (gnu packages man) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages nettle) @@ -160,15 +162,14 @@ (define-public qemu (package (name "qemu") - (version "7.2.1") + (version "7.2.4") (source (origin (method url-fetch) (uri (string-append "https://download.qemu.org/qemu-" version ".tar.xz")) (sha256 - (base32 - "0fypm8blv0la17vvlx6h38nhq2rpavflr9i9zsjl6ylxryd6k1cc")) + (base32 "0795l8xsy67fnh4mbdz40jm880iisd7q6d7ly6nfzpac3gjr8zyf")) (patches (search-patches "qemu-build-info-manual.patch" "qemu-disable-aarch64-migration-test.patch" "qemu-fix-agent-paths.patch")) @@ -1127,6 +1128,57 @@ Guix to build virtual machines.") Debian or a derivative using @command{debootstrap}.") (license license:gpl2+))) +(define-public rvvm + (package + (name "rvvm") + (version "0.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/LekKit/RVVM") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1ldabcrmpa044bahpqa6ymwbhhwy69slh77f0m3421sq6j50l06p")))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags + ;; See src/rvjit/rvjit.h for list of architectures. + #~(#$@(if (or (target-x86?) + (target-arm?)) + #~'() + #~(list "-DRVVM_USE_JIT=NO"))) + #:modules `((srfi srfi-26) + (guix build utils) + (guix build cmake-build-system)) + #:phases + #~(modify-phases %standard-phases + ;; Install phase inspired by the Makefile. + (replace 'install + (lambda _ + (let ((src "../source/src/") + (incl (string-append #$output "/include/rvvm/"))) + (install-file "rvvm" (string-append #$output "/bin")) + (for-each + (cut install-file <> (string-append #$output "/lib")) + (find-files "." "\\.(so|a)$")) + (install-file (string-append src "rvvmlib.h") incl) + (for-each + (cut install-file <> (string-append incl "devices")) + (find-files (string-append src "devices") "\\.h$")))))) + #:tests? #f)) ; no tests + (home-page "https://github.com/LekKit/RVVM") + (synopsis "RISC-V virtual machine") + (description + "RVVM is a RISC-V CPU and system software implementation written in C. It +supports the entire RV64GC ISA, and it passes compliance tests for both RV64 and +RV32. OpenSBI, U-Boot, and custom firmwares boot and execute properly. It is +capable of running Linux, FreeBSD, OpenBSD, Haiku, and other OSes. Furthermore, +it emulates a variety of hardware and peripherals.") + (license (list license:gpl3+ license:mpl2.0)))) + (define-public spike (package (name "spike") @@ -1259,23 +1311,25 @@ manage system or application containers.") (define-public lxcfs (package (name "lxcfs") - (version "4.0.11") + (version "5.0.4") (home-page "https://github.com/lxc/lxcfs") - (source (origin - (method git-fetch) - (uri (git-reference (url home-page) - (commit (string-append "lxcfs-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "02cgzh97cgxh9iyf7gkn5ikdc0sfzqfjj6al0hikdf9rbwcscqwd")))) + (source + (origin + (method git-fetch) + (uri (git-reference (url home-page) + (commit (string-append "lxcfs-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15cc7kvnln4qqlv22hprfzmq89jbkx7yra730hap8wkvamn33sxy")))) + (build-system meson-build-system) (arguments - '(#:configure-flags '("--localstatedir=/var"))) + (list + #:configure-flags + #~(list "-Dinit-script=sysvinit"))) ; no ‘none’ option (native-inputs - (list autoconf automake libtool pkg-config)) + (list help2man pkg-config python python-jinja2)) (inputs (list fuse)) - (build-system gnu-build-system) (synopsis "FUSE-based file system for LXC") (description "LXCFS is a small FUSE file system written with the intention of making Linux containers feel more like a virtual machine. @@ -1448,7 +1502,7 @@ pretty simple, REST API.") (inputs (list acl attr - fuse + fuse-2 libxml2 eudev libpciaccess |