unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [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 public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).