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.scm614
1 files changed, 490 insertions, 124 deletions
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 0b9a07d271..16caf9b978 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -15,7 +15,7 @@
;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020, 2021, 2022 Marius Bakke <marius@gnu.org>
-;;; Copyright © 2020-2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020-2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2021, 2022 Pierre Langlois <pierre.langlois@gmx.com>
@@ -24,19 +24,19 @@
;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
-;;; Copyright © 2022, 2024 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2022, 2024, 2025 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2022, 2023 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2023 Juliana Sims <juli@incana.org>
;;; Copyright © 2023 Ahmad Draidi <a.r.draidi@redscript.org>
;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
-;;; Copyright © 2023, 2024 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2023-2025 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2024 Raven Hallsby <karl@hallsby.com>
;;; Copyright © 2024 jgart <jgart@dismail.de>
-;;; Copyright © 2024 Ashish SHUKLA <ashish.is@lostca.se>
+;;; Copyright © 2024, 2025 Ashish SHUKLA <ashish.is@lostca.se>
;;; Copyright © 2024 Jakob Kirsch <jakob.kirsch@web.de>
;;; Copyright © 2024, 2025 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
@@ -82,7 +82,6 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages containers)
#:use-module (gnu packages cpio)
- #:use-module (gnu packages crates-io)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages crypto)
#:use-module (gnu packages cryptsetup)
@@ -94,6 +93,7 @@
#:use-module (gnu packages dns)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
+ #:use-module (gnu packages engineering)
#:use-module (gnu packages figlet)
#:use-module (gnu packages file)
#:use-module (gnu packages firmware)
@@ -117,6 +117,7 @@
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages guile)
#:use-module (gnu packages java)
#:use-module (gnu packages haskell)
#:use-module (gnu packages haskell-apps)
@@ -197,19 +198,20 @@
(define-public qemu
(package
(name "qemu")
- (version "9.1.3")
+ ;; Do not forget to update the various firmware used by QEMU, and sync the
+ ;; configuration options used by the seabios-qemu package with those
+ ;; provided by QEMU.
+ (version "10.1.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.qemu.org/qemu-"
version ".tar.xz"))
(sha256
- (base32 "12dc3fpv6c6qvw89amjjbb6dgc2f1c1alfgn2nab7a8kxnh7f2j8"))
+ (base32 "0ldyh3qia7zwv0xq6f67cp567i6ma1hb11gsqaz3x9qcnm4p6lg0"))
(patches (search-patches "qemu-build-info-manual.patch"
- "qemu-disable-bios-tables-test.patch"
- "qemu-disable-migration-test.patch"
"qemu-fix-agent-paths.patch"
- "qemu-glibc-2.41.patch"))
+ "qemu-fix-test-virtio-version.patch"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -303,11 +305,11 @@
(allowed-differences
;; Ignore minor differences (addresses etc) in the firmware
;; data tables compared to what the test suite expects.
- '("tests/data/acpi/pc/SSDT.dimmpxm"
- "tests/data/acpi/pc/DSDT.dimmpxm"
- "tests/data/acpi/pc/ERST.acpierst"
- "tests/data/acpi/q35/ERST.acpierst"
- "tests/data/acpi/q35/DSDT.cxl"))
+ '("tests/data/acpi/x86/pc/SSDT.dimmpxm"
+ "tests/data/acpi/x86/pc/DSDT.dimmpxm"
+ "tests/data/acpi/x86/pc/ERST.acpierst"
+ "tests/data/acpi/x86/q35/ERST.acpierst"
+ "tests/data/acpi/x86/q35/DSDT.cxl"))
(allowed-differences-whitelist
(open-file "tests/qtest/bios-tables-test-allowed-diff.h"
"a")))
@@ -463,6 +465,16 @@
(lambda args
(with-directory-excursion "../user-static"
(apply (assoc-ref %standard-phases 'build) args))))
+ (add-after 'install 'install-plugins
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((plugin-dir (string-append
+ (assoc-ref outputs "out")
+ "/lib/qemu/plugins")))
+ (mkdir-p plugin-dir)
+ (with-directory-excursion "contrib/plugins"
+ (for-each
+ (cut install-file <> plugin-dir)
+ (find-files "." "\\.so$"))))))
(add-after 'install 'install-user-static
(lambda* (#:key outputs #:allow-other-keys)
(let ((static-bin (string-append
@@ -525,6 +537,7 @@ exec smbd $@")))
'())
(list alsa-lib
bash-minimal
+ capstone
dtc
glib
gnutls ;for qcow2 disk encryption
@@ -1047,7 +1060,7 @@ firmware blobs. You can
("automake" ,automake)
;; For the documentation.
- ("python-docutils" ,python-docutils)
+ ("python-docutils" ,python-docutils-0.19)
("sphinx" ,python-sphinx)
("pandoc" ,pandoc)
("dot" ,graphviz)
@@ -1337,7 +1350,7 @@ of one or more RISC-V harts.")
(define-public incus
(package
(name "incus")
- (version "6.14.0")
+ (version "6.15.0")
(source
(origin
(method git-fetch)
@@ -1346,7 +1359,7 @@ of one or more RISC-V harts.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1x0ggs7plc570805x16r5jy7bb9z1qdn0124yi9rv0wwx6l50bd7"))))
+ (base32 "1j6lfx4jw6ngb2d3d48qz8q51w8x1j5vyjyhssppwd83ydkh060y"))))
(build-system go-build-system)
(arguments
(list
@@ -1503,7 +1516,8 @@ using simplestreams index files as the publishing mechanism
version ".tar.xz"))
(sha256
(base32
- "1dn6pzv0gzkxrjvi60cdzdmyxqlcsvinbrbds91xm4v7wbn5g1dd"))))
+ "1dn6pzv0gzkxrjvi60cdzdmyxqlcsvinbrbds91xm4v7wbn5g1dd"))
+ (patches (search-patches "libosinfo-libxml2-fix.patch"))))
(build-system meson-build-system)
(arguments
(list
@@ -1616,14 +1630,14 @@ It started as a side project of LXC but can be used by any run-time.")
(define-public libvirt
(package
(name "libvirt")
- (version "11.0.0")
+ (version "11.5.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://libvirt.org/sources/libvirt-"
version ".tar.xz"))
(sha256
- (base32 "0vl0lgzw3x4fkghhw7nfxk8fxj3bbn9f17y0hg7miba283zpd881"))
+ (base32 "08r4sxchhh639a8h346795971zz615j86v9z9vxf5q9q0pbbjqrb"))
(patches (search-patches "libvirt-add-install-prefix.patch"
"libvirt-respect-modules-path.patch"))))
(build-system meson-build-system)
@@ -1780,14 +1794,14 @@ three libraries:
(define-public python-libvirt
(package
(name "python-libvirt")
- (version "11.0.0")
+ (version "11.5.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://libvirt.org/sources/python/libvirt-python-"
version ".tar.gz"))
(sha256
- (base32 "1y26104zgylz0v9d6xc0bm6m13is94shn9dlhjycaf347jjjbs6f"))))
+ (base32 "08xcnzmahmb72rv9cw8dxwnjmrdgmm5j4bbxpwsnhll9qsgdiak9"))))
(build-system pyproject-build-system)
(inputs
(list libvirt))
@@ -1888,8 +1902,8 @@ virtualization library.")
libosinfo
libvirt
libvirt-glib
+ libxml2
python-minimal
- python-libxml2
python-libvirt
python-pycairo
python-pygobject
@@ -1909,7 +1923,7 @@ domains, their live performance and resource utilization statistics.")
(define-public vmware-open-vm-tools
(package
(name "vmware-open-vm-tools")
- (version "12.3.0")
+ (version "13.0.0")
(source
(origin
(method git-fetch)
@@ -1918,7 +1932,7 @@ domains, their live performance and resource utilization statistics.")
(commit (string-append "stable-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1hbimhady0v1kd45azknl1lgzgldhgdjd7bj540rn3y4cai5cnk1"))))
+ (base32 "19zqfkd4rxajgghjc4czssvqxxw1q6mc6mnp50j7lnqaviwvb5fm"))))
(build-system gnu-build-system)
(arguments
(list
@@ -2257,7 +2271,7 @@ Machine Protocol.")
(define-public looking-glass-client
(package
(name "looking-glass-client")
- (version "B6")
+ (version "B7")
(source (origin
(method url-fetch)
(uri (string-append "https://looking-glass.io/artifact/" version
@@ -2265,7 +2279,7 @@ Machine Protocol.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "15d7wwbzfw28yqbz451b6n33ixy50vv8acyzi8gig1mq5a8gzdib"))))
+ "11crsvy783ig7kzmr2cr68wv9zsjkcbp1akcs28rc6yc1ik0dr89"))))
(build-system cmake-build-system)
(inputs (list bash-minimal
font-dejavu
@@ -2343,43 +2357,67 @@ main monitor/GPU.")
(define-public runc
(package
(name "runc")
- (version "1.1.14")
- ;; XXX: Source contains "vendor", consider to unbundle and pack missing
- ;; packages.
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/opencontainers/runc/releases/"
- "download/v" version "/runc.tar.xz"))
- (file-name (string-append name "-" version ".tar.xz"))
- (sha256
- (base32
- "1nypczyb3fp3cnfdg13grxjhg9361i44zialsdkxcfxb0c9g79jf"))))
+ (version "1.3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/opencontainers/runc")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0midvxwmj4fvhy5mqv616bhlx39j0gd6y890adx7dnz5in506ym1"))
+ (snippet
+ #~(begin
+ (use-modules (guix build utils))
+ (delete-file-recursively "vendor")))))
(build-system go-build-system)
(arguments
- '(#:import-path "github.com/opencontainers/runc"
- #:install-source? #f
- ;; XXX: 20/139 tests fail due to missing /var, cgroups and apparmor in
- ;; the build environment.
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- (replace 'build
+ (list
+ ;; XXX: 20/139 tests fail due to missing /var, cgroups and apparmor in
+ ;; the build environment.
+ #:tests? #f
+ #:install-source? #f
+ #:import-path "github.com/opencontainers/runc"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-source
(lambda* (#:key import-path #:allow-other-keys)
- (with-directory-excursion (string-append "src/" import-path)
- (invoke "make" "all" "man"))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "make" "localunittest"))))
- (replace 'install
- (lambda* (#:key import-path outputs #:allow-other-keys)
- (with-directory-excursion (string-append "src/" import-path)
- (let ((out (assoc-ref outputs "out")))
- (invoke "make" "install" "install-bash" "install-man"
- (string-append "PREFIX=" out)))))))))
+ (substitute* (string-append "src/" import-path "/Makefile")
+ (("/bin/bash") (which "bash")))))
+ (replace 'build
+ (lambda* (#:key import-path #:allow-other-keys)
+ (with-directory-excursion (string-append "src/" import-path)
+ (invoke "make" "all" "man"))))
+ (replace 'install
+ (lambda* (#:key import-path outputs #:allow-other-keys)
+ (with-directory-excursion (string-append "src/" import-path)
+ (invoke "make" "install" "install-bash" "install-man"
+ (string-append "PREFIX=" #$output))))))))
(native-inputs
- (list go-md2man pkg-config))
+ (list go-github-com-checkpoint-restore-go-criu-v6
+ go-github-com-containerd-console
+ go-github-com-coreos-go-systemd-v22
+ go-github-com-cyphar-filepath-securejoin
+ go-github-com-docker-go-units
+ go-github-com-godbus-dbus-v5
+ go-github-com-moby-sys-capability
+ go-github-com-moby-sys-mountinfo
+ go-github-com-moby-sys-user
+ go-github-com-moby-sys-userns
+ go-github-com-mrunalp-fileutils
+ go-github-com-opencontainers-cgroups-0.0.1
+ go-github-com-opencontainers-runtime-spec
+ go-github-com-opencontainers-selinux
+ go-github-com-seccomp-libseccomp-golang
+ go-github-com-sirupsen-logrus
+ go-github-com-urfave-cli
+ go-github-com-vishvananda-netlink
+ go-golang-org-x-net
+ go-golang-org-x-sys
+ go-google-golang-org-protobuf
+ go-md2man
+ pkg-config))
(inputs
(list libseccomp))
(synopsis "Open container initiative runtime")
@@ -2395,44 +2433,58 @@ Open Container Initiative specification.")
(define-public umoci
(package
(name "umoci")
- (version "0.4.7")
- ;; XXX: Source contain vendor, consider to pack all missing dependencies.
+ (version "0.5.1")
(source
(origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/opencontainers/umoci/releases/download/v"
- version "/umoci.tar.xz"))
- (file-name (string-append "umoci-" version ".tar.xz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/opencontainers/umoci")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0fvljj9k4f83wbqzd8nbijz0p1zaq633f8yxyvl5sy3wjf03ffk9"))))
+ (base32 "0446xw8jrxgf2vgi30vlihak6z9srzbkzvm4v47nm0c87fijmigs"))
+ (snippet
+ #~(begin
+ (use-modules (guix build utils))
+ (delete-file-recursively "vendor")))))
(build-system go-build-system)
(arguments
- '(#:import-path "github.com/opencontainers/umoci"
- #:install-source? #f
- #:test-subdirs '(".")
- #:phases
- (modify-phases %standard-phases
- (replace 'unpack
- (lambda* (#:key source import-path #:allow-other-keys)
- ;; Unpack the tarball into 'umoci' instead of "runc-${version}".
- (let ((dest (string-append "src/" import-path)))
- (mkdir-p dest)
- (invoke "tar" "-C" (string-append "src/" import-path)
- "--strip-components=1"
- "-xvf" source))))
- (replace 'build
- (lambda* (#:key import-path #:allow-other-keys)
- (with-directory-excursion (string-append "src/" import-path)
- ;; TODO: build manpages with 'go-md2man'.
- (invoke "make" "SHELL=bash"))))
- (replace 'install
- (lambda* (#:key import-path outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bindir (string-append out "/bin")))
- (install-file (string-append "src/" import-path "/umoci")
- bindir)
- #t))))))
+ (list
+ #:install-source? #f
+ #:import-path "github.com/opencontainers/umoci/cmd/umoci"
+ #:unpack-path "github.com/opencontainers/umoci"
+ #:test-flags
+ ;; Two tests fail with error: unpack config.json: convert spec to
+ ;; rootless: inspecting mount flags of /etc/resolv.conf: no such file or
+ ;; directory
+ #~(list "-skip" (string-append "TestUnpackManifestCustomLayer"
+ "|TestUnpackStartFromDescriptor"))
+ #:test-subdirs #~(list "../../...") ;test the whole libary
+ #:build-flags
+ #~(list (string-append "-ldflags="
+ "-X github.com/opencontainers/umoci.version="
+ #$version))))
+ ;; TODO: build manpages from <doc/man> with 'go-md2man'.
+ (native-inputs
+ (list go-github-com-adalogics-go-fuzz-headers
+ go-github-com-apex-log
+ go-github-com-blang-semver-v4
+ go-github-com-cyphar-filepath-securejoin
+ go-github-com-docker-go-units
+ go-github-com-klauspost-compress
+ go-github-com-klauspost-pgzip
+ go-github-com-moby-sys-user
+ go-github-com-moby-sys-userns
+ go-github-com-mohae-deepcopy
+ go-github-com-opencontainers-go-digest
+ go-github-com-opencontainers-image-spec-1.0.2
+ go-github-com-opencontainers-runtime-spec
+ go-github-com-rootless-containers-proto-go-proto
+ go-github-com-stretchr-testify
+ go-github-com-urfave-cli
+ go-github-com-vbatts-go-mtree
+ go-golang-org-x-sys
+ go-google-golang-org-protobuf))
(home-page "https://umo.ci/")
(synopsis "Tool for modifying Open Container images")
(description
@@ -2443,7 +2495,7 @@ Open Container Initiative (OCI) image layout and its tagged images.")
(define-public skopeo
(package
(name "skopeo")
- (version "1.19.0")
+ (version "1.20.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2452,7 +2504,7 @@ Open Container Initiative (OCI) image layout and its tagged images.")
(file-name (git-file-name name version))
(sha256
(base32
- "1gwp8k9bxkis7qwcy7l2mrclii039fqrslvkb5q4rfhlrzqcqbay"))))
+ "1436w3i0w1x60r43j8kw9iaxjvyi99h5yaxzvxc3z3r5la8ka3mv"))))
(build-system gnu-build-system)
(native-inputs
(list go-1.23
@@ -2573,6 +2625,322 @@ helpers that let you write your own unit and acceptance tests for Vagrant.")
(home-page "https://github.com/hashicorp/vagrant-spec")
(license license:mpl2.0)))
+(define-public vagrant
+ (package
+ (name "vagrant")
+ (version "2.3.7") ;; last release under BSD-3 license
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hashicorp/vagrant")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0c674c5v70skh38lpydz8cdmcp8wgr9h7rn00rxdpgizrzbfxl82"))
+ (patches (search-patches
+ "vagrant-bin-vagrant-silence-warning-about-installer.patch"
+ "vagrant-Support-system-installed-plugins.patch"
+ "vagrant-Use-a-private-temporary-dir.patch"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:tests? #f ; test require ruby-grpc-tools which are not packaged yet
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-gemfile
+ (lambda _
+ (substitute* "Gemfile"
+ ((", git:.*") "\n"))))
+ (add-after 'unpack 'pin-executables
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((bsdtar (search-input-file inputs "/bin/bsdtar"))
+ (curl (search-input-file inputs "/bin/curl"))
+ (dnsmasq (search-input-file inputs "/sbin/dnsmasq"))
+ (grep (search-input-file inputs "/bin/grep"))
+ (modinfo (search-input-file inputs "/bin/modinfo"))
+ (ps (search-input-file inputs "/bin/ps")))
+ ;; bsdtar
+ (for-each
+ (lambda (rbfile)
+ (substitute* rbfile
+ (("\"bsdtar\",") (string-append "\"" bsdtar "\","))))
+ (find-files "lib/vagrant/" "\\.rb$"))
+ ;; curl
+ (substitute* "lib/vagrant/util/downloader.rb"
+ (("\"curl\",") (string-append "\"" curl "\",")))
+ (substitute* "lib/vagrant/util/uploader.rb"
+ (("\"curl\",") (string-append "\"" curl "\",")))
+ (substitute* "plugins/hosts/linux/cap/nfs.rb"
+ ;; grep
+ (("\\| grep #\\{nfs_service")
+ (string-append "| " grep " #{nfs_service"))
+ (("\"grep\",") (string-append "\"" grep "\","))
+ ;; modinfo
+ (("Vagrant::Util::Which.which\\(\"modinfo\"\\)")
+ (string-append "\"" modinfo "\"")))
+ ;; ssh, rsync:
+ ;; Don't pin ssh to allow different clients and to avoid
+ ;; configuration conflicts when running on a foreign distro.
+ ;; (substitute* "lib/vagrant/util/ssh.rb"
+ ;; (("Which.which\\(\"ssh\", original_path: true\\)")
+ ;; (string-append "\"" ssh "\"")))
+ ;; ps
+ (substitute* "lib/vagrant/util/platform.rb"
+ (("\"ps\",") (string-append "\"" ps "\","))))))
+ (add-after 'extract-gemspec 'relax-requirements
+ (lambda _
+ (substitute* "vagrant.gemspec"
+ ;; Relax some version specification.
+ (("s\\.required_ruby_version ") "# s.required_ruby_version ")
+ (("dependency \"rgl\", \"~> 0.5.10\"")
+ "dependency \"rgl\"")
+ (("dependency \"vagrant_cloud\", \"~> 3.0.5\"")
+ "dependency \"vagrant_cloud\"")
+ (("dependency \"rexml\", .*")
+ "dependency \"rexml\"\n")
+ ;; Remove Windows specific dependencies
+ ((".*dependency \"(wdm|winrm(|-elevated|-fs))\".*") "")
+ ;; Remove BSD dependency
+ ((".*dependency \"rb-kqueue\".*") "")
+ ;; Remove cyclic inclusion of gem
+ (("^ gitignore_path = " line)
+ (string-append
+ "all_files.reject! { |file| file.match?(\"vagrant-.*\\.gem\") }\n"
+ line))))))))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GUIX_VAGRANT_PLUGINS_PATH")
+ (files '("share/vagrant-plugins")))))
+ ;; TODO: install bash/zsh completions, man-page, etc.
+ ;; see http://svnweb.mageia.org/packages/cauldron/vagrant/current/SPECS/vagrant.spec
+ (native-inputs (list ruby-fake-ftp ruby-webrick bundler ruby-vagrant-spec))
+ (inputs (list curl dnsmasq grep kmod libarchive openssh procps))
+ (propagated-inputs
+ (list ruby-bcrypt-pbkdf ruby-childprocess ruby-ed25519 ruby-erubi
+ ruby-googleapis-common-protos-types ruby-grpc
+ ruby-hashicorp-checkpoint ruby-i18n ruby-listen ruby-log4r
+ ruby-mime-types ruby-net-ftp ruby-net-ssh ruby-net-sftp
+ ruby-net-scp ruby-ipaddr ruby-rexml ruby-rgl ruby-rubyzip
+ ruby-vagrant-cloud ruby-vagrant-spec))
+ (synopsis "Build and distribute virtualized development environments")
+ (description "Vagrant is the command line utility for managing the
+lifecycle of virtual machines. Isolate dependencies and their configuration
+within a single disposable and consistent environment.
+
+Note: Make sure to have @code{ssh} and @code{rsync} installed — if you use the
+respective Vagrant functions. This package does not link to any specific
+implementation of these to allow different clients and to avoid configuration
+conflicts when running on a `foreign distribution'.")
+ (home-page "https://www.vagrantup.com")
+ ;; CVE-2021-21361 is related to the gradle-vagrant-plugin
+ (properties '((lint-hidden-cve . ("CVE-2021-21361"))))
+ (license license:bsd-3)))
+
+(define-public vagrant-cachier
+ (package
+ (name "vagrant-cachier")
+ (version "1.2.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "vagrant-cachier" version))
+ (sha256
+ (base32
+ "0v11nf2d2y2knwm4zackd5ap8h2927n8rc1q73b6ii4hndv98fh9"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:tests? #f ; neither gem nor source actually has tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'install-plugin.json
+ (lambda _
+ (let* ((plugins.d (string-append
+ #$output "/share/vagrant-plugins/plugins.d"))
+ (plugin.json (string-append
+ plugins.d "/" #$name ".json")))
+ (mkdir-p plugins.d)
+ #$(with-extensions (list guile-json-4)
+ #~(begin
+ (use-modules (json))
+ (call-with-output-file plugin.json
+ (lambda (port)
+ (scm->json
+ '((#$name
+ .
+ (("ruby_version"
+ . #$(package-version (this-package-input "ruby")))
+ ("vagrant_version"
+ . #$(package-version (this-package-input "vagrant")))
+ ("gem_version" . "")
+ ("require" . "")
+ ("installed_gem_version" . #$version)
+ ("sources" . #()))))
+ port)))))))))))
+ (inputs (list ruby vagrant))
+ (synopsis "Share a common package cache among similar VM instances")
+ (description "This package provides a Vagrant plugin that helps you reduce
+the amount of coffee you drink while waiting for boxes to be provisioned by
+sharing a common package cache among similar VM instances. Kinda like
+vagrant-apt_cache or this magical snippet but targeting multiple package
+managers and Linux distros.")
+ (home-page "https://github.com/fgrehm/vagrant-cachier")
+ (license license:expat)))
+
+(define-public vagrant-libvirt
+ (package
+ (name "vagrant-libvirt")
+ (version "0.12.2")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "vagrant-libvirt" version))
+ (sha256
+ (base32
+ "013g6wn24k01lwwkzcb0vvxj959lws8c52bkyqi6b8shnn793j1l"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:tests? #f ; tests involve running vagrant, downloading a box and
+ ; access to libvirt socket
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'install-plugin.json
+ (lambda _
+ (let* ((plugins.d (string-append
+ #$output "/share/vagrant-plugins/plugins.d"))
+ (plugin.json (string-append
+ plugins.d "/" #$name ".json")))
+ (mkdir-p plugins.d)
+ #$(with-extensions (list guile-json-4)
+ #~(begin
+ (use-modules (json))
+ (call-with-output-file plugin.json
+ (lambda (port)
+ (scm->json
+ '((#$name
+ .
+ (("ruby_version"
+ . #$(package-version (this-package-input "ruby")))
+ ("vagrant_version"
+ . #$(package-version (this-package-input "vagrant")))
+ ("gem_version" . "")
+ ("require" . "")
+ ("installed_gem_version" . #$version)
+ ("sources" . #()))))
+ port)))))))))))
+ (inputs (list ruby vagrant))
+ (propagated-inputs (list ruby-diffy
+ ruby-fog-core
+ ruby-fog-libvirt
+ ruby-nokogiri
+ ruby-rexml
+ ruby-xml-simple))
+ (synopsis "Libvirt provider for Vagrant")
+ (description "This is a Vagrant plugin that adds a Libvirt provider to
+Vagrant, allowing Vagrant to control and provision machines via the Libvirt
+toolkit.")
+ (home-page "https://github.com/vagrant-libvirt/vagrant-libvirt")
+ (license license:expat)))
+
+(define-public vagrant-reload
+ (package
+ (name "vagrant-reload")
+ (version "0.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "vagrant-reload" version))
+ (sha256
+ (base32
+ "0smy0px20xgakcyki5hdbk3n63k9c6ychh5pvbannn1p4zjxa0xa"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:tests? #f ; has no tests, testing as described in the Readme requires
+ ; running vagrant, a provider and downloading a box
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-gemfile
+ (lambda _
+ (substitute* "Gemfile"
+ ((", :git.*") "\n"))))
+ (add-after 'install 'install-plugin.json
+ (lambda _
+ (let* ((plugins.d (string-append
+ #$output "/share/vagrant-plugins/plugins.d"))
+ (plugin.json (string-append
+ plugins.d "/" #$name ".json")))
+ (mkdir-p plugins.d)
+ #$(with-extensions (list guile-json-4)
+ #~(begin
+ (use-modules (json))
+ (call-with-output-file plugin.json
+ (lambda (port)
+ (scm->json
+ '((#$name
+ .
+ (("ruby_version"
+ . #$(package-version (this-package-input "ruby")))
+ ("vagrant_version"
+ . #$(package-version (this-package-input "vagrant")))
+ ("gem_version" . "")
+ ("require" . "")
+ ("installed_gem_version" . #$version)
+ ("sources" . #()))))
+ port)))))))))))
+ (inputs (list ruby vagrant))
+ (synopsis "Reload a Vagrant VM as a provisioning step")
+ (description "This Vagrant plugin enables reloading a Vagrant VM as a
+provisioning step.")
+ (home-page "http://www.vagrantup.com")
+ (license license:expat)))
+
+(define-public vagrant-vai
+ (package
+ (name "vagrant-vai")
+ (version "0.9.3")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "vai" version))
+ (sha256
+ (base32
+ "041bi8hk03ybhacqzhw153j3knqhwvxn8aczzq6nikmpklcs4m4a"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:tests? #f ; tests involve running vagrant and downloading a box
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'install-plugin.json
+ (lambda _
+ (let* ((plugins.d (string-append
+ #$output "/share/vagrant-plugins/plugins.d"))
+ (plugin.json (string-append
+ plugins.d "/" #$name ".json")))
+ (mkdir-p plugins.d)
+ #$(with-extensions (list guile-json-4)
+ #~(begin
+ (use-modules (json))
+ (call-with-output-file plugin.json
+ (lambda (port)
+ (scm->json
+ '(("vai" ;; #$name
+ .
+ (("ruby_version"
+ . #$(package-version (this-package-input "ruby")))
+ ("vagrant_version"
+ . #$(package-version (this-package-input "vagrant")))
+ ("gem_version" . "")
+ ("require" . "")
+ ("installed_gem_version" . #$version)
+ ("sources" . #()))))
+ port)))))))))))
+ (inputs (list ruby vagrant))
+ (synopsis "Vagrant provisioning plugin to output an Ansible inventory")
+ (description "This plugin creates an Ansible inventory file containing the
+created virtual machines and the respective ssh-parameters.")
+ (home-page "https://github.com/MatthewMi11er/vai")
+ (license license:expat)))
+
(define-public python-vagrant
(package
(name "python-vagrant")
@@ -2598,7 +2966,7 @@ virtual machines.")
(define-public bubblewrap
(package
(name "bubblewrap")
- (version "0.10.0")
+ (version "0.11.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2607,7 +2975,7 @@ virtual machines.")
(file-name (git-file-name name version))
(sha256
(base32
- "0paahq4y8fmdnipahgymsshi3klmi60lvcqhhg1020z7n1gni0hx"))
+ "1rb7dih12s9liwq2lfjdm1br6jaxkmdwsqjr6zx9wfyy0cnwr07h"))
(patches (search-patches "bubblewrap-fix-locale-in-tests.patch"))))
(build-system meson-build-system)
(arguments
@@ -2668,7 +3036,15 @@ by default and can be made read-only.")
"/bochs-" version ".tar.gz"))
(sha256
(base32
- "1al1fx8dbb0ny7a4wbngnz8pqav0nl6rhakb434jqnpka4mm8vyb"))))
+ "1al1fx8dbb0ny7a4wbngnz8pqav0nl6rhakb434jqnpka4mm8vyb"))
+ (snippet
+ #~(begin
+ (use-modules (guix build utils))
+ ;; This file is non-free.
+ (delete-file "bios/i440fx.bin")
+ ;; make -C bios bios-clean
+ (for-each delete-file
+ (find-files "bios" "^BIOS-bochs-"))))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ;no test suite
@@ -2697,7 +3073,14 @@ by default and can be made read-only.")
"--enable-pnic"
"--enable-e1000"
"--enable-using-libslirp"
- "--with-vncsrv")))
+ "--with-vncsrv")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'make-reproducible
+ (lambda _
+ (substitute* "bios/Makefile.in"
+ (("BUILDDATE.*")
+ "BUILDDATE = `date --utc --date='@0'")))))))
(native-inputs (list pkg-config))
(inputs (list libslirp libx11 libvnc readline wxwidgets))
(home-page "https://bochs.sourceforge.io/")
@@ -2924,33 +3307,12 @@ which is a hypervisor.")
(base32 "1ab6mgrvnd49m0ay9fbfyd02xaf3qvkwhyyavra4a7wpz0brg54h"))))
(build-system cargo-build-system)
(arguments
- (list
- #:install-source? #f
- #:cargo-inputs
- (list rust-futures-0.3
- rust-libc-0.2
- rust-tokio-1
- rust-netlink-packet-core-0.7
- rust-netlink-packet-route-0.18
- rust-netlink-proto-0.11
- rust-rtnetlink-0.14
- rust-async-stream-0.3
- rust-os-info-3
- rust-pnet-datalink-0.35 ; any version
- rust-pnet-base-0.35 ; any version
- rust-ipnetwork-0.20 ; any version
- rust-log-0.4
- rust-env-logger-0.10
- rust-clap-4
- rust-xenstore-rs-0.6
- ;; Unix-specific dependencies
- rust-uname-0.1
- rust-syslog-6
- rust-sysctl-0.5)))
+ (list #:install-source? #f))
(native-inputs
(list pkg-config
xen ; Pull in Xen for libxenstore
clang))
+ (inputs (cargo-inputs 'xen-guest-agent))
(home-page "https://gitlab.com/xen-project/xen-guest-agent")
(synopsis "Provides guest VM information to hosting Xen hypervisor")
(description "The agent gathers some guest information, and writes them to
@@ -3100,8 +3462,12 @@ use with virtualization provisioning tools")
(arguments
(list #:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'fix-dependencies
+ (add-after 'unpack 'fix-marshmallow-and-dependencies
(lambda _
+ ;; From marshmallow: versionchanged:: 3.13.0
+ ;; Replace ``missing`` [..] with ``load_default``.
+ (substitute* "transient/configuration.py"
+ (("missing") "load_default"))
(substitute* "setup.py"
(("(~|=)=") ">=")
(("lark-parser>=[0-9.]*") "lark")))))))