* [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules
@ 2023-08-07 18:24 Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 01/32] gnu: Add ruby-excon Hartmut Goebel
` (31 more replies)
0 siblings, 32 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:24 UTC (permalink / raw)
To: 65131
This series add Vagrant, a utility for managing the lifecycle of virtual
machines, and some (non-) trivial plugins for it, as well as the required
packages.
This series contains some plugins (esp. vagrant-libvirt) to test whether
vagrant's plugins-mechanism actually works in Guix. (And indeed, quite some
adjustments had to be made to vagrant make this work.)
Using this setup I was able to
- install plugins (per-user=global and per-project=local)
- show list of system plugins
- search for boxes (vargant cloud search)
- download a box (done by vagrant up)
- list downloaded boxes (vagrant box list)
- start a virtual machine using libvirt (vagrant up)
- added an unidirectional synced folders using rsync
- added a bidirectional synced folders using 9p virtfs
- copy data into the machine using "vagrant scp"
- reload, stop and destroy the box
Not working for me:
- synced folders using virtiofs: 'requires shared memory — this might be
caused by my local setup or missing stuff in Vagrantfile
Here is the code I used for testing:
...8<----
./pre-inst-env guix shell \
-C openssh coreutils rsync \
--network --share=/tmp --expose=/var/run/libvirt \
vagrant vagrant-vai vagrant-cachier vagrant-reload vagrant-libvirt nss-certs
the in the shell:
export SSL_CERT_DIR=$GUIX_ENVIRONMENT/etc/ssl/certs
export VAGRANT_DEFAULT_PROVIDER=libvirt
mkdir -p /tmp/vagrant-test/xxx/
cd /tmp/vagrant-test/
HOME=$PWD
cd xxx
cat > Vagrantfile <<EOF
Vagrant.configure("2") do |config|
config.vm.box = "generic/alpine317" # reasonable small
config.vm.synced_folder "a", "/vagrant/rsynced", type: "rsync"
#config.vm.synced_folder "b", "/vagrant/9p", type: "9p"
#config.vm.synced_folder "c", "/vagrant/virtio", type: "virtio"
# for testing vagrant-vai
config.vm.provision :vai do |ansible|
ansible.inventory_dir = 'ansible/inventory'
end
end
EOF
rm -rf {a,b,c}
mkdir {a,b,c}
# test plugin management
vagrant plugin list
vagrant plugin install vagrant-scp
vagrant plugin install --local vagrant-timezone
vagrant plugin list --local
plugin uninstall vagrant-timezone --local
vagrant plugin list --local
# test download of box and starting machine
touch a/file-from-A.txt
vagrant up
# test plugin vagrant-scp
vagrant scp Vagrantfile default:xxx.txt
vagrant ssh -c 'ls'
# test file-sync - you need to enable different options in the Vagrantfile
# to test them an. then run 'vagrant reload'
touch a/file-from-A.txt
vagrant reload # to trigger rsync
touch b/file-from-B.txt c/file-from-C.txt
vagrant ssh -c 'touch /vagrant/9p/file-from-9p.txt'
vagrant ssh -c 'touch /vagrant/rsynced/file-from-rsynced.txt'
vagrant ssh -c 'touch /vagrant/virtio/file-from-virtio.txt'
vagrant ssh -c 'ls -F /vagrant/*/'
ls {a,b,c}
vagrant destroy -f
...8<----
Hartmut Goebel (32):
gnu: Add ruby-excon.
gnu: Add ruby-ipaddr.
gnu: Add ruby-net-ftp.
gnu: Add ruby-fake-ftp.
gnu: Add ruby-net-sftp.
gnu: Add ruby-net-telnet.
gnu: Add ruby-pairing-heap.
gnu: Add ruby-stringio.
gnu: Add ruby-stream.
gnu: Add ruby-rgl.
gnu: Add ruby-sfl.
gnu: Add ruby-specinfra.
gnu: Add ruby-serverspec.
gnu: Add ruby-time.
gnu: Add ruby-google-protobuf.
gnu: Add ruby-googleapis-common-protos-types.
gnu: Add ruby-grpc.
gnu: Add ruby-vagrant-cloud.
gnu: Add ruby-vagrant-spec.
gnu: Add ruby-vagrant-spec-helper-basic.
gnu: Add ruby-hashicorp-checkpoint.
gnu: ruby-childprocess: Update to 4.1.0.
gnu: Add vagrant.
gnu: Add vagrant-vai.
gnu: Add vagrant-cachier.
gnu: Add vagrant-reload.
gnu: Add ruby-libvirt.
gnu: Add ruby-fog-core.
gnu: Add ruby-fog-json.
gnu: Add ruby-fog-xml.
gnu: Add ruby-fog-libvirt.
gnu: Add vagrant-libvirt.
gnu/local.mk | 3 +
...ant-Support-system-installed-plugins.patch | 172 +++++
.../vagrant-Use-a-private-temporary-dir.patch | 119 ++++
...rant-silence-warning-about-installer.patch | 24 +
gnu/packages/ruby.scm | 621 +++++++++++++++++-
gnu/packages/virtualization.scm | 363 ++++++++++
6 files changed, 1296 insertions(+), 6 deletions(-)
create mode 100644 gnu/packages/patches/vagrant-Support-system-installed-plugins.patch
create mode 100644 gnu/packages/patches/vagrant-Use-a-private-temporary-dir.patch
create mode 100644 gnu/packages/patches/vagrant-bin-vagrant-silence-warning-about-installer.patch
base-commit: 39fbc041f92489ec30075a85937c8a38723752dc
--
2.30.9
^ permalink raw reply [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 01/32] gnu: Add ruby-excon.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 02/32] gnu: Add ruby-ipaddr Hartmut Goebel
` (30 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-excon): New variable.
---
gnu/packages/ruby.scm | 48 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index e0dca646ac..e3bb5bf5ed 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -34,6 +34,7 @@
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2023 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -13774,6 +13775,53 @@ GFM dialect to HTML.")
parser for writing http servers, clients and proxies.")
(license license:expat)))
+(define-public ruby-excon
+ (package
+ (name "ruby-excon")
+ (version "0.100.0")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/excon/excon")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "158p9z0jk6042ambqdc68qh5n5j58c2w19hc32aa1d045l45pagh"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'replace-git-ls-files
+ (lambda _
+ (substitute* "excon.gemspec"
+ (("`git ls-files -- data/. lib/.`")
+ "`find data lib -type f`"))))
+ (add-before 'check 'disable-server-spec-checks
+ (lambda _ ;; TODO: Remove this if ruby-unicorn is available.
+ ;; Some of the tests in this file require ruby-unicorn, which is
+ ;; not yet packaged for guix and would pull in a lot of other
+ ;; dependencies.
+ (delete-file "spec/excon/test/server_spec.rb"))))))
+ (native-inputs
+ (list
+ ruby-activesupport
+ ruby-eventmachine
+ ruby-json
+ ruby-open4
+ ruby-puma
+ ruby-rspec
+ ruby-shindo
+ ruby-sinatra
+ ruby-webrick))
+ (synopsis "Usable, fast, simple Ruby HTTP 1.1")
+ (description "Excon was designed to be simple, fast and performant. It
+works great as a general HTTP(s) client and is particularly well suited to
+usage in API clients.")
+ (home-page "https://github.com/excon/excon")
+ (license license:expat)))
+
(define-public ruby-em-websocket
(package
(name "ruby-em-websocket")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 02/32] gnu: Add ruby-ipaddr.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 01/32] gnu: Add ruby-excon Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 03/32] gnu: Add ruby-net-ftp Hartmut Goebel
` (29 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-ipaddr): New variable.
---
gnu/packages/ruby.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index e3bb5bf5ed..a0c21c09af 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4408,6 +4408,26 @@ help tests uncover more bugs.")
(home-page "https://github.com/jordansissel/ruby-flores")
(license license:asl2.0)))
+(define-public ruby-ipaddr
+ (package
+ (name "ruby-ipaddr")
+ (version "1.2.5")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/ruby/ipaddr")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0mv2i92nvm53lrnd5v4bl1xvsghqzssqlqr5jmwl7c492wvmny02"))))
+ (build-system ruby-build-system)
+ (synopsis "Manipulate IP addresses")
+ (description "This package provides a set of methods to manipulate an IP
+address. Both IPv4 and IPv6 are supported.")
+ (home-page "https://github.com/ruby/ipaddr")
+ (license license:bsd-2)))
+
(define-public ruby-net-http-persistent
(package
(name "ruby-net-http-persistent")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 03/32] gnu: Add ruby-net-ftp.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 01/32] gnu: Add ruby-excon Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 02/32] gnu: Add ruby-ipaddr Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 04/32] gnu: Add ruby-fake-ftp Hartmut Goebel
` (28 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-net-ftp): New variable.
---
gnu/packages/ruby.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index a0c21c09af..eef586776b 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4428,6 +4428,29 @@ address. Both IPv4 and IPv6 are supported.")
(home-page "https://github.com/ruby/ipaddr")
(license license:bsd-2)))
+(define-public ruby-net-ftp
+ (package
+ (name "ruby-net-ftp")
+ (version "0.2.0")
+ (source (origin
+ (method git-fetch) ;for tests
+ (uri (git-reference
+ (url "https://github.com/ruby/net-ftp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "13yb6zalbcizsg592xqlck9xmzqb05pavsfh6ixqlilv4vv7d5ch"))))
+ (build-system ruby-build-system)
+ (propagated-inputs (list ruby-net-protocol ruby-time))
+ (synopsis "File Transfer Protocol client library")
+ (description "This class implements the File Transfer Protocol. If you
+have used a command-line FTP program, and are familiar with the commands, you
+will be able to use this class easily. Some extra features are included to
+take advantage of Ruby's style and strengths.")
+ (home-page "https://github.com/ruby/net-ftp")
+ (license license:bsd-2)))
+
(define-public ruby-net-http-persistent
(package
(name "ruby-net-http-persistent")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 04/32] gnu: Add ruby-fake-ftp.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (2 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 03/32] gnu: Add ruby-net-ftp Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 05/32] gnu: Add ruby-net-sftp Hartmut Goebel
` (27 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-fake-ftp): New variable.
---
gnu/packages/ruby.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index eef586776b..bc61ab81b9 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4428,6 +4428,27 @@ address. Both IPv4 and IPv6 are supported.")
(home-page "https://github.com/ruby/ipaddr")
(license license:bsd-2)))
+(define-public ruby-fake-ftp
+ (package
+ (name "ruby-fake-ftp")
+ (version "0.3.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "fake_ftp" version))
+ (sha256
+ (base32
+ "1zl9q9m4x7lz9890g0h1qqj7hcxnwzpjfnfbxadjblps7b5054q4"))))
+ (build-system ruby-build-system)
+ (native-inputs (list ruby-rspec ruby-rubocop ruby-simplecov))
+ (arguments
+ '(#:test-target "spec"))
+ (synopsis "Fake FTP server for use with ruby tests")
+ (description "This package allows you to test FTP implementations in ruby.
+It is a minimal single-client FTP server that can be bound to any arbitrary
+port on localhost.")
+ (home-page "https://rubygems.org/gems/fake_ftp")
+ (license license:expat)))
+
(define-public ruby-net-ftp
(package
(name "ruby-net-ftp")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 05/32] gnu: Add ruby-net-sftp.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (3 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 04/32] gnu: Add ruby-fake-ftp Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 06/32] gnu: Add ruby-net-telnet Hartmut Goebel
` (26 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-net-sftp): New variable.
---
gnu/packages/ruby.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index bc61ab81b9..0e9a805973 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -5545,6 +5545,27 @@ client protocol.")
(home-page "https://github.com/net-ssh/net-scp")
(license license:expat)))
+(define-public ruby-net-sftp
+ (package
+ (name "ruby-net-sftp")
+ (version "4.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "net-sftp" version))
+ (sha256
+ (base32
+ "0r33aa2d61hv1psm0l0mm6ik3ycsnq8symv7h84kpyf2b7493fv5"))))
+ (build-system ruby-build-system)
+ (propagated-inputs (list ruby-net-ssh))
+ (synopsis "Pure Ruby implementation of the SFTP client protocol")
+ (description
+ "@code{Net::SFTP} is a pure Ruby implementation of the SFTP
+protocol (specifically, versions 1 through 6 of the SFTP protocol). Note that
+this is the “Secure File Transfer Protocol”, typically run over an SSH
+connection, and has nothing to do with the FTP protocol.")
+ (home-page "https://github.com/net-ssh/net-sftp")
+ (license license:expat)))
+
(define-public ruby-minima
(package
(name "ruby-minima")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 06/32] gnu: Add ruby-net-telnet.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (4 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 05/32] gnu: Add ruby-net-sftp Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 07/32] gnu: Add ruby-pairing-heap Hartmut Goebel
` (25 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-net-telnet): New variable.
---
gnu/packages/ruby.scm | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 0e9a805973..e80b1dbaf2 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4449,6 +4449,22 @@ port on localhost.")
(home-page "https://rubygems.org/gems/fake_ftp")
(license license:expat)))
+(define-public ruby-net-telnet
+ (package
+ (name "ruby-net-telnet")
+ (version "0.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "net-telnet" version))
+ (sha256
+ (base32
+ "16nkxc79nqm7fd6w1fba4kb98vpgwnyfnlwxarpdcgywz300fc15"))))
+ (build-system ruby-build-system)
+ (synopsis "Telnet client functionality")
+ (description "This package provides telnet client functionality.")
+ (home-page "https://github.com/ruby/net-telnet")
+ (license license:bsd-2)))
+
(define-public ruby-net-ftp
(package
(name "ruby-net-ftp")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 07/32] gnu: Add ruby-pairing-heap.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (5 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 06/32] gnu: Add ruby-net-telnet Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 08/32] gnu: Add ruby-stringio Hartmut Goebel
` (24 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-pairing-heap): New variable.
---
gnu/packages/ruby.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index e80b1dbaf2..6988cb40a2 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -12012,6 +12012,32 @@ dependency, @code{pg}.")
(home-page "https://github.com/QueueClassic/queue_classic")
(license license:expat)))
+(define-public ruby-pairing-heap
+ (package
+ (name "ruby-pairing-heap")
+ (version "3.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "pairing_heap" version))
+ (sha256
+ (base32
+ "15c97yvzkfhy7glsdza48sswidjyjphdx62yjapbrs5fzf0089id"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "Rakefile"
+ (("require \"standard/rake\"") "")
+ ((":\"standard:fix\",") "")))))))
+ (synopsis "Priority queue in pure Ruby")
+ (description "This package provides a performant priority queue in pure
+ruby with support for changing priority using pairing heap data structure")
+ (home-page "https://github.com/mhib/pairing_heap")
+ (license license:expat)))
+
(define-public ruby-ae
(package
(name "ruby-ae")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 08/32] gnu: Add ruby-stringio.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (6 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 07/32] gnu: Add ruby-pairing-heap Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 09/32] gnu: Add ruby-stream Hartmut Goebel
` (23 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-stringio): New variable.
---
gnu/packages/ruby.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 6988cb40a2..96a68f9698 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -14896,6 +14896,26 @@ can be used to build formatters, linters, language servers, and more.")
(home-page "https://github.com/ruby-syntax-tree/syntax_tree")
(license license:expat)))
+(define-public ruby-stringio
+ (package
+ (name "ruby-stringio")
+ (version "3.0.7")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ruby/stringio")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1050l496p3p5gm177va4cxh09aprcsdpvimc5jsv6im1adx285pz"))))
+ (build-system ruby-build-system)
+ (native-inputs (list ruby-rake-compiler))
+ (synopsis "Pseudo `IO` class from and to `String`")
+ (description "Pseudo `IO` class from and to `String`.")
+ (home-page "https://github.com/ruby/stringio")
+ (license license:bsd-2)))
+
(define sorbet-version "0.5.10610.20230106174520-1fa668010")
(define sorbet-monorepo
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 09/32] gnu: Add ruby-stream.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (7 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 08/32] gnu: Add ruby-stringio Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 10/32] gnu: Add ruby-rgl Hartmut Goebel
` (22 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-stream): New variable.
---
gnu/packages/ruby.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 96a68f9698..85e75c7908 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -14916,6 +14916,29 @@ can be used to build formatters, linters, language servers, and more.")
(home-page "https://github.com/ruby/stringio")
(license license:bsd-2)))
+(define-public ruby-stream
+ (package
+ (name "ruby-stream")
+ (version "0.5.5")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "stream" version))
+ (sha256
+ (base32
+ "016m9v81vpj14d8g5ins91zc4pzl7vf5f1gxl7jhfsfy601k7cv2"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'remove-version-constraints
+ (lambda _
+ (delete-file "Gemfile.lock"))))))
+ (native-inputs (list bundler ruby-stringio ruby-webrick ruby-yard))
+ (synopsis "Interface for external iterators")
+ (description "Module Stream defines an interface for external iterators.")
+ (home-page "https://github.com/monora/stream")
+ (license license:bsd-2)))
+
(define sorbet-version "0.5.10610.20230106174520-1fa668010")
(define sorbet-monorepo
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 10/32] gnu: Add ruby-rgl.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (8 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 09/32] gnu: Add ruby-stream Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 11/32] gnu: Add ruby-sfl Hartmut Goebel
` (21 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-rgl): New variable.
---
gnu/packages/ruby.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 85e75c7908..870fb13ed9 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -66,6 +66,7 @@
#:use-module (gnu packages rails)
#:use-module (gnu packages readline)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages graphviz)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages java)
#:use-module (gnu packages libffi)
@@ -3383,6 +3384,39 @@ identical to that of Hash.")
(home-page "http://rbtree.rubyforge.org/")
(license license:expat)))
+(define-public ruby-rgl
+ (package
+ (name "ruby-rgl")
+ (version "0.6.6")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rgl" version))
+ (sha256
+ (base32
+ "0dji1k9knrf8cxm5psd3pgd9i8f7cfq182jwjpi1pwxw15axf496"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'remove-unnecessary-dependencies
+ (lambda _
+ (substitute* "Gemfile"
+ ;; Caring about coverage is a not a packager's task but a
+ ;; developer's
+ ;;(("gem \"simplecov\"") "")
+ ;; CodeClimate is an online service, and is unnecessary for
+ ;; running the tests
+ (("gem \"codeclimate-test-reporter\", .*") "\n")))))))
+ (native-inputs (list ruby-test-unit ruby-simplecov ruby-yard graphviz-minimal))
+ (propagated-inputs (list ruby-pairing-heap ruby-rexml ruby-stream))
+ (synopsis "Framework for graph data structures and algorithms")
+ (description "RGL is a framework for graph data structures and algorithms.
+The design of the library is much influenced by the Boost Graph Library (BGL)
+which is written in C++.")
+ (home-page "https://github.com/monora/rgl")
+ (license license:bsd-2)))
+
(define-public ruby-hkdf
(package
(name "ruby-hkdf")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 11/32] gnu: Add ruby-sfl.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (9 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 10/32] gnu: Add ruby-rgl Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 12/32] gnu: Add ruby-specinfra Hartmut Goebel
` (20 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-sfl): New variable.
---
gnu/packages/ruby.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 870fb13ed9..0c39d2d118 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -12944,6 +12944,26 @@ manifest file.")
(home-page "https://github.com/mvz/rake-manifest")
(license license:expat)))
+(define-public ruby-sfl
+ (package
+ (name "ruby-sfl")
+ (version "2.3")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "sfl" version))
+ (sha256
+ (base32
+ "1qm4hvhq9pszi9zs1cl9qgwx1n4wxq0af0hq9sbf6qihqd8rwwwr"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:tests? #f ;; some tests fail, gem is a dummy for ruby >= 1.9 anyway
+ #:test-target "spec"))
+ (synopsis "Spawn for Ruby 1.8")
+ (description "This pure ruby library provides @code{spawn()} which is
+almost perfectly compatible with ruby 1.9's.")
+ (home-page "https://github.com/ujihisa/spawn-for-legacy")
+ (license license:bsd-2)))
+
(define-public ruby-childprocess
(package
(name "ruby-childprocess")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 12/32] gnu: Add ruby-specinfra.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (10 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 11/32] gnu: Add ruby-sfl Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 13/32] gnu: Add ruby-serverspec Hartmut Goebel
` (19 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-specinfra): New variable.
---
gnu/packages/ruby.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 0c39d2d118..aad6bfe2a3 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1192,6 +1192,35 @@ the @env{RSPEC_DEBUG} environment variable to @samp{true} then invoke the
(home-page "https://github.com/ko1/rspec-debug")
(license license:expat)))
+(define-public ruby-specinfra
+ (package
+ (name "ruby-specinfra")
+ (version "2.86.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "specinfra" version))
+ (sha256
+ (base32
+ "0il390jb1nc2agkfwl3j42zzw403q785bzfg3vvq1nh3dws0clxr"))))
+ (build-system ruby-build-system)
+ (propagated-inputs (list ruby-net-scp ruby-net-ssh ruby-net-telnet
+ ruby-sfl))
+ (arguments
+ (list
+ #:test-target "spec"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'extract-gemspec 'relax-dependencies
+ (lambda _
+ (substitute* "specinfra.gemspec"
+ (("%q<net-telnet>.freeze, \\[.*\\]")
+ "%q<net-telnet>.freeze, [\">= 0\"]")))))))
+ (synopsis "Common layer for serverspec and itamae")
+ (description "This Gem provides a common layer for serverspec and
+itamae.")
+ (home-page "https://github.com/mizzy/specinfra")
+ (license license:expat)))
+
;; Bundler is yet another source of circular dependencies, so we must disable
;; its test suite as well.
(define-public bundler
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 13/32] gnu: Add ruby-serverspec.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (11 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 12/32] gnu: Add ruby-specinfra Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 14/32] gnu: Add ruby-time Hartmut Goebel
` (18 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-serverspec): New variable.
---
gnu/packages/ruby.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index aad6bfe2a3..98993f6f01 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1221,6 +1221,36 @@ itamae.")
(home-page "https://github.com/mizzy/specinfra")
(license license:expat)))
+(define-public ruby-serverspec
+ (package
+ (name "ruby-serverspec")
+ (version "2.42.2")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "serverspec" version))
+ (sha256
+ (base32
+ "0kqx84yspy75z517wf32mz2hr4bqmq33y46zik57rn7bq2pj39xx"))))
+ (build-system ruby-build-system)
+ (propagated-inputs (list ruby-multi-json ruby-rspec ruby-rspec-its
+ ruby-specinfra))
+ (arguments
+ (list #:test-target "spec"))
+ (synopsis
+ "RSpec tests for servers configured by Puppet, Chef, Itamae, etc")
+ (description
+ "With Serverspec, you can write RSpec tests for checking your servers are
+configured correctly.
+
+Serverspec tests your servers’ actual state by executing command locally, via
+SSH, via WinRM, via Docker API and so on. So you don’t need to install any
+agent softwares on your servers and can use any configuration management
+tools, Puppet, Ansible, CFEngine, Itamae and so on.
+
+But the true aim of Serverspec is to help refactoring infrastructure code.")
+ (home-page "https://serverspec.org/")
+ (license license:expat)))
+
;; Bundler is yet another source of circular dependencies, so we must disable
;; its test suite as well.
(define-public bundler
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 14/32] gnu: Add ruby-time.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (12 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 13/32] gnu: Add ruby-serverspec Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 15/32] gnu: Add ruby-google-protobuf Hartmut Goebel
` (17 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-time): New variable.
---
gnu/packages/ruby.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 98993f6f01..c4ebaa2aaa 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -719,6 +719,29 @@ includes the @code{Comparable} module for handling dates.")
(home-page "https://github.com/ruby/date")
(license license:bsd-2)))
+(define-public ruby-time
+ (package
+ (name "ruby-time")
+ (version "0.2.2")
+ (source (origin
+ (method git-fetch) ; for tests
+ (uri (git-reference
+ (url "https://github.com/ruby/time")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1ij1vfa5vlphnv2giji71nbsj07yfghyvw4vhmsizxm8nmlqasl6"))))
+ (build-system ruby-build-system)
+ (propagated-inputs (list ruby-date))
+ (synopsis
+ "Extends the Time class with methods for parsing and conversion")
+ (description
+ "When this gem is @code{require}d, it extends the Time class with with
+additional methods for parsing and converting Times.")
+ (home-page "https://github.com/ruby/time")
+ (license license:bsd-2)))
+
(define-public ruby-diff-lcs
(package
(name "ruby-diff-lcs")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 15/32] gnu: Add ruby-google-protobuf.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (13 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 14/32] gnu: Add ruby-time Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 16/32] gnu: Add ruby-googleapis-common-protos-types Hartmut Goebel
` (16 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-google-protobuf): New variable.
---
gnu/packages/ruby.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index c4ebaa2aaa..80cc35b45d 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -17696,6 +17696,32 @@ has not yet been packaged for Guix.")
(license license:bsd-2)
(properties `((upstream-name . "anystyle-cli")))))
+(define-public ruby-google-protobuf
+ (package
+ (name "ruby-google-protobuf")
+ (version "3.23.4")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "google-protobuf" version))
+ (sha256
+ (base32
+ "1dq5lgkxhagqr8zjrwr10zi8rldbg2vhis2m5q86v5q9415ylfgj"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:tests? #f)) ;; has no tests
+ (synopsis "Protocol Buffers are Google's data interchange format")
+ (description "This library contains the Ruby extension that implements
+Protocol Buffers functionality in Ruby.
+
+The Ruby extension makes use of generated Ruby code that defines message and
+enum types in a Ruby DSL. You may write definitions in this DSL directly, but
+we recommend using protoc's Ruby generation support with @code{.proto} files.
+The build process in this directory only installs the extension; you need to
+install @code{protoc} (in package ruby-grpc-tools) as well to have Ruby code
+generation functionality.")
+ (home-page "https://protobuf.dev")
+ (license license:bsd-3)))
+
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 16/32] gnu: Add ruby-googleapis-common-protos-types.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (14 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 15/32] gnu: Add ruby-google-protobuf Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 17/32] gnu: Add ruby-grpc Hartmut Goebel
` (15 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-googleapis-common-protos-types): New variable.
---
gnu/packages/ruby.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 80cc35b45d..62499bf775 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -17722,6 +17722,25 @@ generation functionality.")
(home-page "https://protobuf.dev")
(license license:bsd-3)))
+(define-public ruby-googleapis-common-protos-types
+ (package
+ (name "ruby-googleapis-common-protos-types")
+ (version "1.7.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "googleapis-common-protos-types" version))
+ (sha256
+ (base32
+ "0gsiz0xpnv5fjpwihz06kf0y09rdkcv2bqjxm2bigayz8rdnxq8r"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:tests? #f)) ;; has no tests
+ (propagated-inputs (list ruby-google-protobuf))
+ (synopsis "Common protocol buffer types used by Google APIs")
+ (description "Common protocol buffer types used by Google APIs")
+ (home-page "https://github.com/googleapis/common-protos-ruby")
+ (license license:asl2.0)))
+
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 17/32] gnu: Add ruby-grpc.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (15 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 16/32] gnu: Add ruby-googleapis-common-protos-types Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 18/32] gnu: Add ruby-vagrant-cloud Hartmut Goebel
` (14 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-grpc): New variable.
---
gnu/packages/ruby.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 62499bf775..9927f96560 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -17741,6 +17741,29 @@ generation functionality.")
(home-page "https://github.com/googleapis/common-protos-ruby")
(license license:asl2.0)))
+(define-public ruby-grpc
+ (package
+ (name "ruby-grpc")
+ (version "1.56.2")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "grpc" version))
+ (sha256
+ (base32
+ "1ndyis4hyq5wyypvy5j2pxaax73k9xd9cdsc5hyvpk3vbnn26rdb"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:tests? #f)) ;; has no tests
+ ;; TODO remove third-party sources (zlib, upb, utf8-range, re2, c-ares,
+ ;; boringssl-with-bazel, address_sorting, abseil-cpp), see Makefile
+ (propagated-inputs (list ruby-googleapis-common-protos-types
+ ruby-google-protobuf))
+ (synopsis "GRPC system in Ruby")
+ (description "GRPC is a high performance, open-source universal RPC
+framework. This package provides a ruby interface for it.")
+ (home-page "https://github.com/grpc/grpc/tree/master/src/ruby")
+ (license license:asl2.0)))
+
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 18/32] gnu: Add ruby-vagrant-cloud.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (16 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 17/32] gnu: Add ruby-grpc Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 19/32] gnu: Add ruby-vagrant-spec Hartmut Goebel
` (13 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-vagrant-cloud): New variable.
---
gnu/packages/ruby.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 9927f96560..0bcf61d15b 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -9589,6 +9589,30 @@ follows Ruby conventions and requires little knowledge of REST.")
(home-page "https://github.com/octokit/octokit.rb")
(license license:expat)))
+(define-public ruby-vagrant-cloud
+ (package
+ (name "ruby-vagrant-cloud")
+ (version "3.0.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hashicorp/vagrant_cloud")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "09mczlczvnsw19zwv4bm3hv4jp71gx5l00mmj2l1gmpbxmi5nyfg"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:test-target "spec"))
+ (native-inputs (list ruby-rspec ruby-webmock))
+ (propagated-inputs (list ruby-excon ruby-log4r ruby-rexml))
+ (synopsis "Vagrant Cloud API library")
+ (description "This library provides the functionality to create, modify,
+and delete boxes, versions, and providers on HashiCorp's Vagrant Cloud.")
+ (home-page "https://github.com/hashicorp/vagrant_cloud")
+ (license license:asl2.0)))
+
(define-public ruby-pry-byebug
(package
(name "ruby-pry-byebug")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 19/32] gnu: Add ruby-vagrant-spec.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (17 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 18/32] gnu: Add ruby-vagrant-cloud Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 20/32] gnu: Add ruby-vagrant-spec-helper-basic Hartmut Goebel
` (12 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/virtualization.scm (ruby-vagrant-spec): New variable.
---
gnu/packages/virtualization.scm | 37 +++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 9556fbc61e..cfba1f0898 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -29,6 +29,7 @@
;;; 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 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -119,6 +120,7 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages ruby)
#:use-module (gnu packages rsync)
#:use-module (gnu packages selinux)
#:use-module (gnu packages sdl)
@@ -138,6 +140,7 @@
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
+ #:use-module (guix build-system ruby)
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -2164,6 +2167,40 @@ the image.
@end enumerate")
(license license:asl2.0)))
+(define-public ruby-vagrant-spec
+ (package
+ (name "ruby-vagrant-spec")
+ (version "0.0.6")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "vagrant_spec" version))
+ (sha256
+ (base32
+ "1bkzz3mj7kzsv6k0ii8w31cgkpiqw3wvmvv2c6rknsavqqnagb4g"))))
+ (build-system ruby-build-system)
+ ;; (native-inputs (list ruby-rubocop ruby-vagrant-spec-helper-basic))
+ (propagated-inputs (list ruby-coveralls ruby-serverspec ruby-dep))
+ (arguments
+ (list
+ #:tests? #f ;; tests require vagrant
+ ;; target 'test' includes 'cops' and running some ansible-playbook
+ #:test-target "unit"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "Rakefile"
+ (("Bundler::GemHelper") "require 'bundler'\nBundler::GemHelper"))))
+ (add-before 'check 'prepare-check
+ (lambda _
+ (setenv "HOME" "/tmp"))))))
+ (synopsis "Specification and tests for Vagrant")
+ (description "@code{vagrant-spec} is a both a specification of how Vagrant
+and its various components should behave as well as a library of testing
+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 python-vagrant
(package
(name "python-vagrant")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 20/32] gnu: Add ruby-vagrant-spec-helper-basic.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (18 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 19/32] gnu: Add ruby-vagrant-spec Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 21/32] gnu: Add ruby-hashicorp-checkpoint Hartmut Goebel
` (11 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/virtualization.scm (ruby-vagrant-spec-helper-basic): New variable.
---
gnu/packages/virtualization.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index cfba1f0898..68beeb88d3 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -2167,6 +2167,25 @@ the image.
@end enumerate")
(license license:asl2.0)))
+(define-public ruby-vagrant-spec-helper-basic
+ (package
+ (name "ruby-vagrant-spec-helper-basic")
+ (version "0.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "vagrant-spec-helper-basic" version))
+ (sha256
+ (base32
+ "1qhxxc07dhrma1s1x2g9sma7xxgwzs20s6v5pv9jrpz6bl4b527n"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:tests? #f)) ;; has not tests
+ (synopsis "Helper for vagrant-spec")
+ (description "This package is an internal helper for vagrant-spec. Don't
+use it.")
+ (home-page "https://github.com/hashicorp/vagrant-spec")
+ (license license:mpl2.0)))
+
(define-public ruby-vagrant-spec
(package
(name "ruby-vagrant-spec")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 21/32] gnu: Add ruby-hashicorp-checkpoint.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (19 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 20/32] gnu: Add ruby-vagrant-spec-helper-basic Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 22/32] gnu: ruby-childprocess: Update to 4.1.0 Hartmut Goebel
` (10 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-hashicorp-checkpoint): New variable.
---
gnu/packages/ruby.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 0bcf61d15b..0ee9d447a1 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -9589,6 +9589,26 @@ follows Ruby conventions and requires little knowledge of REST.")
(home-page "https://github.com/octokit/octokit.rb")
(license license:expat)))
+(define-public ruby-hashicorp-checkpoint
+ (package
+ (name "ruby-hashicorp-checkpoint")
+ (version "0.1.5")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "hashicorp-checkpoint" version))
+ (sha256
+ (base32
+ "1z6mwzvd7p2wqhmk07dwrhvm0ncgqm7pxn0pr2k025rwsspp9bsd"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list #:tests? #f)) ;; no need to test, useless outside HashiCorp anyway
+ (synopsis "Internal HashiCorp service to check version information")
+ (description "This package is probably useless outside of internal
+HashiCorp use. It is open source for disclosure and because HashiCorp's open
+source projects must be able to link to it.")
+ (home-page "https://github.com/hashicorp/ruby-checkpoint")
+ (license license:mpl2.0)))
+
(define-public ruby-vagrant-cloud
(package
(name "ruby-vagrant-cloud")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 22/32] gnu: ruby-childprocess: Update to 4.1.0.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (20 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 21/32] gnu: Add ruby-hashicorp-checkpoint Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 23/32] gnu: Add vagrant Hartmut Goebel
` (9 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
This change include code for making more tests pass. Anyhow, one is still
failing for unclear reason, thus tests are still disabled.
* gnu/packages/ruby.scm (ruby-childprocess): Update to 4.1.0.
[arguments]{test-target}: New argument. {phases}: New argument
[propagated-inputs]: Remove ruby-ffi.
[native-inputs]: Remove bundler; add ruby-coveralls.
---
gnu/packages/ruby.scm | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 0ee9d447a1..5204f42895 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -13093,21 +13093,26 @@ almost perfectly compatible with ruby 1.9's.")
(define-public ruby-childprocess
(package
(name "ruby-childprocess")
- (version "3.0.0")
+ (version "4.1.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "childprocess" version))
(sha256
(base32
- "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5"))))
+ "1lvcp8bsd35g57f7wz4jigcw2sryzzwrpcgjwwf3chmjrjcww5in"))))
(build-system ruby-build-system)
(arguments
- `(#:tests? #f))
+ `(#:tests? #f ;; one failing test, even with fixes below
+ #:test-target "spec"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "spec/spec_helper.rb"
+ (("#!/bin/sh\\\\n") (string-append "#!" (which "sh") "\\n"))))))))
(native-inputs
- (list bundler ruby-rspec))
- (propagated-inputs
- (list ruby-ffi))
+ (list ruby-coveralls ruby-rspec))
(synopsis "Control external programs running in the background, in Ruby")
(description "@code{childprocess} provides a gem to control external
programs running in the background, in Ruby.")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 23/32] gnu: Add vagrant.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (21 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 22/32] gnu: ruby-childprocess: Update to 4.1.0 Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 24/32] gnu: Add vagrant-vai Hartmut Goebel
` (8 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/virtualization.scm (vagrant): New variable.
* gnu/packages/patches/vagrant-Support-system-installed-plugins.patch,
gnu/packages/patches/vagrant-Use-a-private-temporary-dir.patch
gnu/packages/patches/vagrant-bin-vagrant-silence-warning-about-installer.patch:
New files.
* gnu/local.mk(dist_patch_DATA): Add them
---
gnu/local.mk | 3 +
...ant-Support-system-installed-plugins.patch | 172 ++++++++++++++++++
.../vagrant-Use-a-private-temporary-dir.patch | 119 ++++++++++++
...rant-silence-warning-about-installer.patch | 24 +++
gnu/packages/virtualization.scm | 104 +++++++++++
5 files changed, 422 insertions(+)
create mode 100644 gnu/packages/patches/vagrant-Support-system-installed-plugins.patch
create mode 100644 gnu/packages/patches/vagrant-Use-a-private-temporary-dir.patch
create mode 100644 gnu/packages/patches/vagrant-bin-vagrant-silence-warning-about-installer.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 6dcacd3d6e..cecef27827 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2067,6 +2067,9 @@ dist_patch_DATA = \
%D%/packages/patches/unzip-32bit-zipbomb-fix.patch \
%D%/packages/patches/ustr-fix-build-with-gcc-5.patch \
%D%/packages/patches/util-linux-tests.patch \
+ %D%/packages/patches/vagrant-bin-vagrant-silence-warning-about-installer.patch \
+ %D%/packages/patches/vagrant-Support-system-installed-plugins.patch \
+ %D%/packages/patches/vagrant-Use-a-private-temporary-dir.patch \
%D%/packages/patches/vboot-utils-fix-format-load-address.patch \
%D%/packages/patches/vboot-utils-fix-tests-show-contents.patch \
%D%/packages/patches/vboot-utils-skip-test-workbuf.patch \
diff --git a/gnu/packages/patches/vagrant-Support-system-installed-plugins.patch b/gnu/packages/patches/vagrant-Support-system-installed-plugins.patch
new file mode 100644
index 0000000000..3d57993921
--- /dev/null
+++ b/gnu/packages/patches/vagrant-Support-system-installed-plugins.patch
@@ -0,0 +1,172 @@
+From: Hartmut Goebel <h.goebel@crazy-compilers.com>
+Date: Mon, 07 Aug 2023 18:09:09 +0200
+Subject: Support system-installed plugins
+
+Plugins must be installed as regular Ruby libraries, and they must
+contain share/vagrant-plugins/plugins.d/$PLUGINNAME.json with the
+following content:
+
+{
+ "${PLUGINNAME}": {
+ "ruby_version":"$(ruby -e 'puts RUBY_VERSION')",
+ "vagrant_version":"$(cat /usr/share/vagrant/version.txt)",
+ "gem_version":"",
+ "require":"",
+ "sources":[]
+ }
+}
+
+This patch was based on the respective patch from Debian, anyhow heavily
+adjusted to Guix and to support GUIX_VAGRANT_PLUGINS_PATH.
+
+Orignal-Author: Antonio Terceiro <terceiro@debian.org>
+Co-authored-by: Antonio Terceiro <terceiro@debian.org>
+---
+ bin/vagrant | 15 +++++++++++++++
+ lib/vagrant/bundler.rb | 2 +-
+ lib/vagrant/plugin/manager.rb | 4 ++--
+ lib/vagrant/plugin/state_file.rb | 30 ++++++++++++++++++++++++++++--
+ lib/vagrant/shared_helpers.rb | 8 ++++++++
+ 5 files changed, 54 insertions(+), 5 deletions(-)
+
+diff --git a/bin/vagrant b/bin/vagrant
+index d3f4ea6..cc00efa 100755
+--- a/bin/vagrant
++++ b/bin/vagrant
+@@ -86,6 +86,21 @@ $stderr.sync = true
+ # so we can provide correct resolutions later
+ builtin_specs = []
+
++# Add the gem paths of vagrant plugins to the Gem search path
++# TODO: find a better way to add paths to the Gem search path
++gempath = []
++if ENV['GEM_PATH']
++ gempath.append(ENV['GEM_PATH'])
++end
++ENV['GUIX_VAGRANT_PLUGINS_PATH'].split(File::PATH_SEPARATOR).each do |pluginsdir|
++ gemdir = File.absolute_path(File.join(pluginsdir, "../../lib/ruby/vendor_ruby"))
++ gempath.append(gemdir)
++end
++ENV['GEM_PATH'] = gempath.join(':')
++gemdir = nil
++gempath = nil
++Gem.clear_paths() # make GEM_PATH be reevaluated
++
+ vagrant_spec = Gem::Specification.find_all_by_name("vagrant").detect do |spec|
+ spec.version == Gem::Version.new(Vagrant::VERSION)
+ end
+diff --git a/lib/vagrant/bundler.rb b/lib/vagrant/bundler.rb
+index 46ef69f..27979b9 100644
+--- a/lib/vagrant/bundler.rb
++++ b/lib/vagrant/bundler.rb
+@@ -665,7 +665,7 @@ module Vagrant
+ spec_dir = Gem::Specification.default_specifications_dir
+ end
+ directories = [spec_dir]
+- if Vagrant.in_bundler?
++ if Vagrant.in_bundler? || Vagrant.in_guix_package?
+ Gem::Specification.find_all{true}.each do |spec|
+ list[spec.full_name] = spec
+ end
+diff --git a/lib/vagrant/plugin/manager.rb b/lib/vagrant/plugin/manager.rb
+index b73f07f..94cd609 100644
+--- a/lib/vagrant/plugin/manager.rb
++++ b/lib/vagrant/plugin/manager.rb
+@@ -18,7 +18,7 @@ module Vagrant
+
+ # Returns the path to the [StateFile] for system plugins.
+ def self.system_plugins_file
+- dir = Vagrant.installer_embedded_dir
++ dir = nil
+ return nil if !dir
+ Pathname.new(dir).join("plugins.json")
+ end
+@@ -38,7 +38,7 @@ module Vagrant
+
+ system_path = self.class.system_plugins_file
+ @system_file = nil
+- @system_file = StateFile.new(system_path) if system_path && system_path.file?
++ @system_file = StateFile.new(system_path, true) #if system_path && system_path.file?
+
+ @local_file = nil
+ @globalized = @localized = false
+diff --git a/lib/vagrant/plugin/state_file.rb b/lib/vagrant/plugin/state_file.rb
+index c6872d4..b927fd8 100644
+--- a/lib/vagrant/plugin/state_file.rb
++++ b/lib/vagrant/plugin/state_file.rb
+@@ -11,11 +11,17 @@ module Vagrant
+ # @return [Pathname] path to file
+ attr_reader :path
+
+- def initialize(path)
++ def initialize(path, system = false)
+ @path = path
++ @system = system
+
+ @data = {}
+- if @path.exist?
++ if system
++ if ENV.has_key?('GUIX_VAGRANT_PLUGINS_PATH')
++ @data["installed"] = {}
++ load_system_plugins
++ end
++ elsif @path.exist?
+ begin
+ @data = JSON.parse(@path.read)
+ rescue JSON::ParserError => e
+@@ -30,6 +36,22 @@ module Vagrant
+ @data["installed"] ||= {}
+ end
+
++ def load_system_plugins
++ ENV['GUIX_VAGRANT_PLUGINS_PATH'].split(File::PATH_SEPARATOR).each do |pluginsdir|
++ extra_plugins = Dir.glob(File.join(pluginsdir, 'plugins.d', '*.json'))
++ extra_plugins.each do |filename|
++ json = File.read(filename)
++ begin
++ plugin_data = JSON.parse(json)
++ @data["installed"].merge!(plugin_data)
++ rescue JSON::ParserError => e
++ raise Vagrant::Errors::PluginStateFileParseError,
++ path: filename, message: e.message
++ end
++ end
++ end
++ end
++
+ # Add a plugin that is installed to the state file.
+ #
+ # @param [String] name The name of the plugin
+@@ -107,6 +129,10 @@ module Vagrant
+ f.close
+ FileUtils.mv(f.path, @path)
+ end
++ rescue Errno::EACCES
++ # Ignore permission denied against system-installed plugins; regular
++ # users are not supposed to write there.
++ raise unless @system
+ end
+
+ protected
+diff --git a/lib/vagrant/shared_helpers.rb b/lib/vagrant/shared_helpers.rb
+index 7b0b87c..eb9a21e 100644
+--- a/lib/vagrant/shared_helpers.rb
++++ b/lib/vagrant/shared_helpers.rb
+@@ -43,6 +43,14 @@ module Vagrant
+ !defined?(::Bundler).nil?
+ end
+
++ # This returns a true/false if we are running from a Guix package
++ #
++ # @return [Boolean]
++ def self.in_guix_package?
++ # FIXME write a proper check if this ever goes upstream
++ true
++ end
++
+ # Returns the path to the embedded directory of the Vagrant installer,
+ # if there is one (if we're running in an installer).
+ #
+--
+2.30.9
+
diff --git a/gnu/packages/patches/vagrant-Use-a-private-temporary-dir.patch b/gnu/packages/patches/vagrant-Use-a-private-temporary-dir.patch
new file mode 100644
index 0000000000..8d0012e888
--- /dev/null
+++ b/gnu/packages/patches/vagrant-Use-a-private-temporary-dir.patch
@@ -0,0 +1,119 @@
+From: Antonio Terceiro <terceiro@debian.org>
+Date: Wed, 22 Oct 2014 09:40:14 -0200
+Subject: Use a private temporary directory that is cleanup up on exit
+
+This avoids vagrant from cluttering $TMPDIR with dozens of even hundreds
+of temporary files (~4 per vagrant invocation).
+---
+ lib/vagrant/box.rb | 3 ++-
+ lib/vagrant/util.rb | 1 +
+ lib/vagrant/util/caps.rb | 2 +-
+ lib/vagrant/util/platform.rb | 2 +-
+ lib/vagrant/util/tempfile.rb | 39 +++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 44 insertions(+), 3 deletions(-)
+ create mode 100644 lib/vagrant/util/tempfile.rb
+
+diff --git a/lib/vagrant/box.rb b/lib/vagrant/box.rb
+index 90dc69d..4ee79b9 100644
+--- a/lib/vagrant/box.rb
++++ b/lib/vagrant/box.rb
+@@ -9,6 +9,7 @@ require "vagrant/util/downloader"
+ require "vagrant/util/platform"
+ require "vagrant/util/safe_chdir"
+ require "vagrant/util/subprocess"
++require "vagrant/util/tempfile"
+
+ module Vagrant
+ # Represents a "box," which is a package Vagrant environment that is used
+@@ -142,7 +143,7 @@ module Vagrant
+ # @param [Hash] download_options Options to pass to the downloader.
+ # @return [BoxMetadata]
+ def load_metadata(download_options={})
+- tf = Tempfile.new("vagrant-load-metadata")
++ tf = Util::Tempfile.new("vagrant-load-metadata")
+ tf.close
+
+ url = @metadata_url
+diff --git a/lib/vagrant/util.rb b/lib/vagrant/util.rb
+index 4b3e0ff..36eb671 100644
+--- a/lib/vagrant/util.rb
++++ b/lib/vagrant/util.rb
+@@ -53,6 +53,7 @@ module Vagrant
+ autoload :SilenceWarnings, 'vagrant/util/silence_warnings'
+ autoload :SSH, 'vagrant/util/ssh'
+ autoload :StackedProcRunner, 'vagrant/util/stacked_proc_runner'
++ autoload :Tempfile, 'vagrant/util/tempfile'
+ autoload :StringBlockEditor, 'vagrant/util/string_block_editor'
+ autoload :Subprocess, 'vagrant/util/subprocess'
+ autoload :TemplateRenderer, 'vagrant/util/template_renderer'
+diff --git a/lib/vagrant/util/caps.rb b/lib/vagrant/util/caps.rb
+index 310add3..55afc49 100644
+--- a/lib/vagrant/util/caps.rb
++++ b/lib/vagrant/util/caps.rb
+@@ -28,7 +28,7 @@ module Vagrant
+
+ def ensure_output_iso(file_destination)
+ if file_destination.nil?
+- tmpfile = Tempfile.new(["vagrant", ".iso"])
++ tmpfile = Util::Tempfile.new(["vagrant", ".iso"])
+ file_destination = Pathname.new(tmpfile.path)
+ tmpfile.close
+ tmpfile.unlink
+diff --git a/lib/vagrant/util/platform.rb b/lib/vagrant/util/platform.rb
+index c8658e1..0421c70 100644
+--- a/lib/vagrant/util/platform.rb
++++ b/lib/vagrant/util/platform.rb
+@@ -356,7 +356,7 @@ module Vagrant
+
+ if wsl?
+ # Mark our filesystem with a temporary file having an unique name.
+- marker = Tempfile.new(Time.now.to_i.to_s)
++ marker = Util::Tempfile.new(Time.now.to_i.to_s)
+ logger = Log4r::Logger.new("vagrant::util::platform::wsl")
+
+ # Check for lxrun installation first
+diff --git a/lib/vagrant/util/tempfile.rb b/lib/vagrant/util/tempfile.rb
+new file mode 100644
+index 0000000..0cbbb53
+--- /dev/null
++++ b/lib/vagrant/util/tempfile.rb
+@@ -0,0 +1,39 @@
++require 'fileutils'
++require 'tmpdir'
++
++module Vagrant
++ module Util
++ class Tempfile < ::Tempfile
++
++ def initialize(basename)
++ super(basename, private_tmpdir)
++ end
++
++ def private_tmpdir
++ self.class.private_tmpdir
++ end
++
++ def self.private_tmpdir
++ @private_tmpdir ||=
++ begin
++ user = Etc.getpwuid.name
++ pid = Process.pid
++ tmpdir = File.join(Dir.tmpdir, "vagrant-#{user}-#{pid}")
++ FileUtils.mkdir_p(tmpdir)
++ FileUtils.chmod(0700, tmpdir)
++ tmpdir
++ end
++ end
++
++ def self.mktmpdir(prefix_suffix)
++ Dir.mktmpdir(prefix_suffix, private_tmpdir)
++ end
++
++
++ end
++ end
++end
++
++at_exit do
++ FileUtils.rm_rf(Vagrant::Util::Tempfile.private_tmpdir)
++end
diff --git a/gnu/packages/patches/vagrant-bin-vagrant-silence-warning-about-installer.patch b/gnu/packages/patches/vagrant-bin-vagrant-silence-warning-about-installer.patch
new file mode 100644
index 0000000000..4d4fed273c
--- /dev/null
+++ b/gnu/packages/patches/vagrant-bin-vagrant-silence-warning-about-installer.patch
@@ -0,0 +1,24 @@
+From: Antonio Terceiro <terceiro@debian.org>
+Date: Sat, 11 Oct 2014 16:54:58 -0300
+Subject: bin/vagrant: silence warning about installer
+
+---
+ bin/vagrant | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/bin/vagrant b/bin/vagrant
+index 7ca30b3..d3f4ea6 100755
+--- a/bin/vagrant
++++ b/bin/vagrant
+@@ -221,11 +221,6 @@ begin
+ end
+ end
+
+- if !Vagrant.in_installer? && !Vagrant.very_quiet?
+- # If we're not in the installer, warn.
+- env.ui.warn(I18n.t("vagrant.general.not_in_installer") + "\n", prefix: false)
+- end
+-
+ # Acceptable experimental flag values include:
+ #
+ # Unset - Disables experimental features
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 68beeb88d3..d0b51a960d 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -2220,6 +2220,110 @@ 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")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hashicorp/vagrant")
+ (commit "1f904866b568d9980daef4401c08b92cb3d1cda4")))
+ (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"))
+ (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.
+ (("dependency \"rgl\", \"~> 0.5.10\"")
+ "dependency \"rgl\"")
+ ;; 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 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")
+ (license license:bsd-3)))
+
(define-public python-vagrant
(package
(name "python-vagrant")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 24/32] gnu: Add vagrant-vai.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (22 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 23/32] gnu: Add vagrant Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 25/32] gnu: Add vagrant-cachier Hartmut Goebel
` (7 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/virtualization.scm (vagrant-vai): New variable.
---
gnu/packages/virtualization.scm | 48 +++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index d0b51a960d..d37844904c 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -87,6 +87,7 @@
#:use-module (gnu packages golang)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages guile)
#:use-module (gnu packages haskell)
#:use-module (gnu packages haskell-apps)
#:use-module (gnu packages haskell-check)
@@ -2324,6 +2325,53 @@ conflicts when running on a `foreign distribution'.")
(home-page "https://www.vagrantup.com")
(license license:bsd-3)))
+(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")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 25/32] gnu: Add vagrant-cachier.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (23 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 24/32] gnu: Add vagrant-vai Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 26/32] gnu: Add vagrant-reload Hartmut Goebel
` (6 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/virtualization.scm (vagrant-cachier): New variable.
---
gnu/packages/virtualization.scm | 50 +++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index d37844904c..c3d5bef58b 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -2325,6 +2325,56 @@ conflicts when running on a `foreign distribution'.")
(home-page "https://www.vagrantup.com")
(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-vai
(package
(name "vagrant-vai")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 26/32] gnu: Add vagrant-reload.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (24 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 25/32] gnu: Add vagrant-cachier Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 27/32] gnu: Add ruby-libvirt Hartmut Goebel
` (5 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/virtualization.scm (vagrant-reload): New variable.
---
gnu/packages/virtualization.scm | 52 +++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index c3d5bef58b..0742db7cc2 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -2375,6 +2375,58 @@ managers and Linux distros.")
(home-page "https://github.com/fgrehm/vagrant-cachier")
(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")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 27/32] gnu: Add ruby-libvirt.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (25 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 26/32] gnu: Add vagrant-reload Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 28/32] gnu: Add ruby-fog-core Hartmut Goebel
` (4 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-libvirt): New variable.
---
gnu/packages/ruby.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 5204f42895..c1aff21e51 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -79,6 +79,7 @@
#:use-module (gnu packages networking)
#:use-module (gnu packages node)
#:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
@@ -9633,6 +9634,28 @@ and delete boxes, versions, and providers on HashiCorp's Vagrant Cloud.")
(home-page "https://github.com/hashicorp/vagrant_cloud")
(license license:asl2.0)))
+(define-public ruby-libvirt
+ (package
+ (name "ruby-libvirt")
+ (version "0.8.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "ruby-libvirt" version))
+ (sha256
+ (base32
+ "0rnmbfhdz270fky0cm8w1i73gkrnlf3s1hdkm5yxjkdbvapwvjsd"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:tests? #f)) ; tests require access to libvirt socket
+ (native-inputs (list pkg-config))
+ (inputs (list libvirt))
+ (synopsis "Ruby bindings for libvirt")
+ (description "This package provides Ruby language binding for libvirt's
+native C API.")
+ (home-page "https://ruby.libvirt.org/")
+ (license license:lgpl2.1+)))
+
(define-public ruby-pry-byebug
(package
(name "ruby-pry-byebug")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 28/32] gnu: Add ruby-fog-core.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (26 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 27/32] gnu: Add ruby-libvirt Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 29/32] gnu: Add ruby-fog-json Hartmut Goebel
` (3 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-fog-core): New variable.
---
gnu/packages/ruby.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index c1aff21e51..fb45a52c9e 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -9656,6 +9656,36 @@ native C API.")
(home-page "https://ruby.libvirt.org/")
(license license:lgpl2.1+)))
+(define-public ruby-fog-core
+ (package
+ (name "ruby-fog-core")
+ (version "2.3.0")
+ (source (origin
+ (method git-fetch) ; for tests
+ (uri (git-reference
+ (url "https://github.com/fog/fog-core")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1s355ldv5wv0zv2irnraj4z70jgrhhk8ypgxr2wig3mr77px5b8g"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'set-home
+ (lambda _
+ (setenv "HOME" "/tmp"))))))
+ (native-inputs (list ruby-minitest-stub-const))
+ (propagated-inputs (list ruby-builder ruby-excon ruby-formatador
+ ruby-mime-types))
+ (synopsis "Shared classes and tests for fog providers and services")
+ (description "@code{fog} is a Ruby cloud services library. This package
+provides shared classes and tests for @code{fog} providers and services.")
+ (home-page "https://github.com/fog/fog-core")
+ (license license:expat)))
+
(define-public ruby-pry-byebug
(package
(name "ruby-pry-byebug")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 29/32] gnu: Add ruby-fog-json.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (27 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 28/32] gnu: Add ruby-fog-core Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 30/32] gnu: Add ruby-fog-xml Hartmut Goebel
` (2 subsequent siblings)
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-fog-json): New variable.
---
gnu/packages/ruby.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index fb45a52c9e..50f066e17c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -9686,6 +9686,29 @@ provides shared classes and tests for @code{fog} providers and services.")
(home-page "https://github.com/fog/fog-core")
(license license:expat)))
+(define-public ruby-fog-json
+ (package
+ (name "ruby-fog-json")
+ (version "1.2.0")
+ (source (origin
+ (method git-fetch) ; for tests
+ (uri (git-reference
+ (url "https://github.com/fog/fog-json")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0f4hbmhy22b1gbkzd3pnj5xvljp6bl7inc2y4fxh29nrmcn4pgb0"))))
+ (build-system ruby-build-system)
+ (native-inputs (list ruby-minitest))
+ (propagated-inputs (list ruby-fog-core ruby-multi-json))
+ (synopsis "JSON parsing tools used by @code{fog} providers")
+ (description "This package containse the JSON parsing tools shared between
+a number of providers in the @code{fog} gem. @code{fog} is a Ruby cloud
+services library.")
+ (home-page "https://github.com/fog/fog-json")
+ (license license:expat)))
+
(define-public ruby-pry-byebug
(package
(name "ruby-pry-byebug")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 30/32] gnu: Add ruby-fog-xml.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (28 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 29/32] gnu: Add ruby-fog-json Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 31/32] gnu: Add ruby-fog-libvirt Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 32/32] gnu: Add vagrant-libvirt Hartmut Goebel
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-fog-xml): New variable.
---
gnu/packages/ruby.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 50f066e17c..e243f7b81a 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -9709,6 +9709,41 @@ services library.")
(home-page "https://github.com/fog/fog-json")
(license license:expat)))
+(define-public ruby-fog-xml
+ (package
+ (name "ruby-fog-xml")
+ (version "0.1.4")
+ (source (origin
+ (method git-fetch) ; for tests
+ (uri (git-reference
+ (url "https://github.com/fog/fog-xml")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0d0n201qzcjxis5wb26bi3s7yfhlmqkwsl6lb9w4szq3b8l1xbwn"))))
+ (build-system ruby-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Run tests via bundler so rake picks up the minitest gem from
+ ;; native-inputs, not the one installed otherwise. This is required
+ ;; since turn@0.9.7 needs minitest@4 and can not be upgraded to
+ ;; minitest@5.
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "bundle" "exec" "rake")))))))
+ (native-inputs (list ruby-minitest-4 ruby-turn ruby-pry ruby-coveralls))
+ (propagated-inputs (list ruby-fog-core ruby-nokogiri))
+ (synopsis "XML parsing tools used by @code{fog} providers")
+ (description "This package containse the XML parsing tools shared between
+a number of providers in the @code{fog} gem. @code{fog} is a Ruby cloud
+services library.")
+ (home-page "https://github.com/fog/fog-xml")
+ (license license:expat)))
+
(define-public ruby-pry-byebug
(package
(name "ruby-pry-byebug")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 31/32] gnu: Add ruby-fog-libvirt.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (29 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 30/32] gnu: Add ruby-fog-xml Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 32/32] gnu: Add vagrant-libvirt Hartmut Goebel
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/ruby.scm (ruby-fog-libvirt): New variable.
---
gnu/packages/ruby.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index e243f7b81a..3876e91a48 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -89,6 +89,7 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages version-control)
+ #:use-module (gnu packages virtualization)
#:use-module (gnu packages web-browsers)
#:use-module (gnu packages serialization)
#:use-module (guix packages)
@@ -9744,6 +9745,32 @@ services library.")
(home-page "https://github.com/fog/fog-xml")
(license license:expat)))
+(define-public ruby-fog-libvirt
+ (package
+ (name "ruby-fog-libvirt")
+ (version "0.11.0")
+ (source (origin
+ (method git-fetch) ; for tests
+ (uri (git-reference
+ (url "https://github.com/fog/fog-libvirt")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "18q83xvv0cr6bsqp73h27xsdiq4b33dzygkilqxzzk76yf1s8965"))))
+ (build-system ruby-build-system)
+ (native-inputs (list ruby-minitest-stub-const ruby-mocha ruby-net-ssh
+ ruby-netrc ruby-octokit ruby-pry ruby-rubocop
+ ruby-shindo ruby-simplecov ruby-yard ))
+ (propagated-inputs (list ruby-fog-core ruby-fog-json ruby-fog-xml
+ ruby-json ruby-libvirt))
+ (synopsis "Ruby libvirt provider, either standalone or as a module for
+@code{fog}")
+ (description "This library can be used as a module for @code{fog} or as
+standalone libvirt provider. @code{fog} is a Ruby cloud services library.")
+ (home-page "https://github.com/fog/fog-libvirt")
+ (license license:expat)))
+
(define-public ruby-pry-byebug
(package
(name "ruby-pry-byebug")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [bug#65131] [PATCH 32/32] gnu: Add vagrant-libvirt.
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
` (30 preceding siblings ...)
2023-08-07 18:26 ` [bug#65131] [PATCH 31/32] gnu: Add ruby-fog-libvirt Hartmut Goebel
@ 2023-08-07 18:26 ` Hartmut Goebel
31 siblings, 0 replies; 33+ messages in thread
From: Hartmut Goebel @ 2023-08-07 18:26 UTC (permalink / raw)
To: 65131
* gnu/packages/virtualization.scm (vagrant-libvirt): New variable.
---
gnu/packages/virtualization.scm | 53 +++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 0742db7cc2..40f19502e7 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -2375,6 +2375,59 @@ 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 "@code{libvirt} provider for Vagrant")
+ (description "This plugin provides a @code{libvirt} provider for Vagrant.")
+ (home-page "https://github.com/vagrant-libvirt/vagrant-libvirt")
+ (license license:expat)))
+
(define-public vagrant-reload
(package
(name "vagrant-reload")
--
2.30.9
^ permalink raw reply related [flat|nested] 33+ messages in thread
end of thread, other threads:[~2023-08-07 18:34 UTC | newest]
Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-07 18:24 [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 01/32] gnu: Add ruby-excon Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 02/32] gnu: Add ruby-ipaddr Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 03/32] gnu: Add ruby-net-ftp Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 04/32] gnu: Add ruby-fake-ftp Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 05/32] gnu: Add ruby-net-sftp Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 06/32] gnu: Add ruby-net-telnet Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 07/32] gnu: Add ruby-pairing-heap Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 08/32] gnu: Add ruby-stringio Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 09/32] gnu: Add ruby-stream Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 10/32] gnu: Add ruby-rgl Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 11/32] gnu: Add ruby-sfl Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 12/32] gnu: Add ruby-specinfra Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 13/32] gnu: Add ruby-serverspec Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 14/32] gnu: Add ruby-time Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 15/32] gnu: Add ruby-google-protobuf Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 16/32] gnu: Add ruby-googleapis-common-protos-types Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 17/32] gnu: Add ruby-grpc Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 18/32] gnu: Add ruby-vagrant-cloud Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 19/32] gnu: Add ruby-vagrant-spec Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 20/32] gnu: Add ruby-vagrant-spec-helper-basic Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 21/32] gnu: Add ruby-hashicorp-checkpoint Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 22/32] gnu: ruby-childprocess: Update to 4.1.0 Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 23/32] gnu: Add vagrant Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 24/32] gnu: Add vagrant-vai Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 25/32] gnu: Add vagrant-cachier Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 26/32] gnu: Add vagrant-reload Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 27/32] gnu: Add ruby-libvirt Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 28/32] gnu: Add ruby-fog-core Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 29/32] gnu: Add ruby-fog-json Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 30/32] gnu: Add ruby-fog-xml Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 31/32] gnu: Add ruby-fog-libvirt Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 32/32] gnu: Add vagrant-libvirt Hartmut Goebel
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.