Compare commits

...
Sign in to create a new pull request.

26 commits

Author SHA1 Message Date
Vít Ondruch
dd512fa319 Relax rubygem(rubyzip) dependency
This is in preparation for getting rubyzip 3.0+ into Fedora.
2025-12-22 12:51:10 +01:00
Fedora Release Engineering
098ed181ad Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 19:56:03 +00:00
Jarek Prokop
28f6e257f9 Fix default URL used for pulling boxes.
The default URL to pull vagrant boxes changed.
Fixing it allows the boxes to be pulled again.

Resolves: rhbz#2337302
2025-01-16 14:16:03 +01:00
Fedora Release Engineering
5f0fa4cc2b Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 08:31:17 +00:00
Software Management Team
7dc964d601 Eliminate use of obsolete %patchN syntax (#2283636) 2024-05-30 12:47:07 +02:00
Vít Ondruch
2a16199df0 Drop superfluous rest-client dependency.
The dependency was dropped in Vagrant 2.2.11 already:

3ec8d44cf9
https://github.com/hashicorp/vagrant/pull/11916
2024-02-07 11:18:33 +01:00
Fedora Release Engineering
beac2b546a Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 07:25:23 +00:00
Fedora Release Engineering
1965e286b6 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 17:22:23 +00:00
Zdenek Zambersky
3d99b8052b Added missing dependency on rexml and mime-types 2023-06-21 18:09:37 +02:00
Zdenek Zambersky
da2ecf8f8b Updated net-ssh version 2023-05-09 19:44:45 +02:00
Jarek Prokop
8185bb5452 Rebase to 2.3.4
Remove test adjustments.
Fixes mentioning GH#{11606,12362,12363} are present.

Remove test adjustments for Ruby 2.7 compatibility.
There is a much newer Ruby available in Fedora.

Newer childprocess is present in Fedora for
some time now. We can stop grepping for failures.

Remove test adjustment for fake_ftp 0.3.0 compatibility.
Not required anymore.

Remove obsolete for vagrant-atomic that was retired in F26.

Remove the net-ssh patch.
It is not present anymore in the new version.
And we are going to have net-ssh >= 7.
2023-05-09 19:44:45 +02:00
Pavel Valena
9132acfcfc Upgrade to Vagrant 2.3.0
also upgrade vagrant-spec to newest commit.
2023-05-09 14:30:38 +02:00
Pavel Valena
5f94d1453b Prevent trailing space character on user agent
https://github.com/hashicorp/vagrant/pull/12925/
Resolves: rhbz#2177215
2023-03-16 18:06:40 +01:00
Fedora Release Engineering
b9bccaf626 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 06:03:56 +00:00
Jarek Prokop
fb5d878e41 Enable rubygem-ed25519 requires.
The gem is available in Fedora.
Group the bcrypt_pbkdf with ed25519
as the ed25519 implementation depends on that gem.

Resolves: rhbz#1962869
2023-01-09 10:21:08 +01:00
Mamoru TASAKA
4e823ef39d add spec file change 2023-01-06 21:40:18 +09:00
Mamoru TASAKA
d063027935 Replace regex match patch with the one by the upstream 2023-01-06 21:38:47 +09:00
Mamoru TASAKA
43092b81b6 Backport upstream fix for ruby3.2 File.exists? removal
Apply proposal fix for ruby3.2 Object#=~ removal
2022-12-26 16:49:25 +09:00
Fedora Release Engineering
e781282c4e Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 11:38:12 +00:00
Pavel Valena
61abdd7802 Add missing dependency on bin/ps
Without it:

______________________________________________________

$ vagrant up
Bringing machine 'default' up with 'libvirt' provider...
The executable 'ps' Vagrant is trying to run was not
found in the PATH variable. This is an error. Please verify
this software is installed and on the path.
______________________________________________________
2022-03-11 01:56:09 +01:00
Jarek Prokop
c0bb4d585a Relax required Ruby version.
Otherwise RubyGems throws confusing error when trying to run vagrant.

Relevant RubyGems issue: https://github.com/rubygems/rubygems/issues/4338
2022-03-03 11:18:51 +01:00
Jarek Prokop
f8a97e75f0 Fix FTBFS for ruby 3.1 due to new rspec-mocks.
BuildRequires for rubygem-rake is needed because rspec dropped the
dependency on the gem in new release.
2022-03-03 11:18:51 +01:00
Fedora Release Engineering
7a08ef5729 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 03:44:53 +00:00
Vít Ondruch
ee96fbd1ba Relax net-ssh dependency.
This will ease update of `rubygem(net-ssh)` in Fedora and therefore
also update to the next version of Vagrant.

Applied: 577ea8bd22
2021-11-30 17:01:08 +01:00
Pavel Valena
c79d075bd6 Add zsh autocompletion. 2021-11-30 17:01:08 +01:00
Philipp Trulson
05d7a608b7 Upgrade to Vagrant 2.2.19
Resolves: rhbz#1980195
2021-11-30 16:31:19 +01:00
15 changed files with 580 additions and 1736 deletions

View file

@ -1,2 +1,2 @@
SHA512 (v2.2.16.tar.gz) = cb1edf0d614e9dda252b0a99571febc05f3dc497825852167d0e80e2a59821fb52ddb91b8085646c7bdeaf6ece642c0889d1a6cb4fdcc37b9f789f86fd8c0ee9
SHA512 (vagrant-spec-9057cd6e0ac299688da608d459deac66bfad8880.tar.gz) = 7846e910cd4b9a036d1edb22d4ead7f9180ebed60a58c10c26044879b9b5d0adab9cfe645625d9d7f2f399707c5044a36eb06fb0f9dc4e32df66910398dab65c
SHA512 (v2.3.4.tar.gz) = 0d47e57c3c190743b4d0484ba1e48e3aad73ced3b356f0a4e54b66649eab2bd5d3fc57a06c62b4cc7d6c8e4617ef18a283c03d01553cc575c0884e464a27b501
SHA512 (vagrant-spec-a88825f4cb254b703d0f9235667223f02ad5c600.tar.gz) = 50e4e2c9e69ccb0309876d204d8d66f606188e1d11853071a74819fe75126ed65fa3d02a31bdf2f8e29679a81d12fa2daed806eba034532c8150fe53d749fb84

View file

@ -1,185 +0,0 @@
From e4859e2486a3ac031a79ae62ef17bd8cbdbb86e2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio@crisal.io>
Date: Sun, 4 Apr 2021 22:46:45 +0200
Subject: [PATCH] Fix shell provisioner with ruby 3.0
I recently updated to Fedora 34 (which uses ruby 3.0), and `vagrant up` errors out like this:
```
/usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/ui.rb:230:in `say': wrong number of arguments (given 4, expected 2..3) (ArgumentError)
from (eval):3:in `detail'
from (eval):9:in `detail'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/plugins/provisioners/shell/provisioner.rb:79:in `handle_comm'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/plugins/provisioners/shell/provisioner.rb:127:in `block (3 levels) in provision_ssh'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/plugins/communicators/ssh/communicator.rb:254:in `block (2 levels) in execute'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/plugins/communicators/ssh/communicator.rb:617:in `block (3 levels) in shell_execute'
from /usr/share/gems/gems/net-ssh-6.1.0/lib/net/ssh/connection/channel.rb:598:in `do_extended_data'
from /usr/share/gems/gems/net-ssh-6.1.0/lib/net/ssh/connection/session.rb:673:in `channel_extended_data'
from /usr/share/gems/gems/net-ssh-6.1.0/lib/net/ssh/connection/session.rb:548:in `dispatch_incoming_packets'
from /usr/share/gems/gems/net-ssh-6.1.0/lib/net/ssh/connection/session.rb:248:in `ev_preprocess'
from /usr/share/gems/gems/net-ssh-6.1.0/lib/net/ssh/connection/event_loop.rb:100:in `each'
from /usr/share/gems/gems/net-ssh-6.1.0/lib/net/ssh/connection/event_loop.rb:100:in `ev_preprocess'
from /usr/share/gems/gems/net-ssh-6.1.0/lib/net/ssh/connection/event_loop.rb:28:in `process'
from /usr/share/gems/gems/net-ssh-6.1.0/lib/net/ssh/connection/session.rb:227:in `process'
from /usr/share/gems/gems/net-ssh-6.1.0/lib/net/ssh/connection/session.rb:180:in `block in loop'
from /usr/share/gems/gems/net-ssh-6.1.0/lib/net/ssh/connection/session.rb:180:in `loop'
from /usr/share/gems/gems/net-ssh-6.1.0/lib/net/ssh/connection/session.rb:180:in `loop'
from /usr/share/gems/gems/net-ssh-6.1.0/lib/net/ssh/connection/channel.rb:272:in `wait'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/plugins/communicators/ssh/communicator.rb:702:in `shell_execute'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/plugins/communicators/ssh/communicator.rb:247:in `block in execute'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/plugins/communicators/ssh/communicator.rb:391:in `connect'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/plugins/communicators/ssh/communicator.rb:240:in `execute'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/plugins/provisioners/shell/provisioner.rb:122:in `block (2 levels) in provision_ssh'
from <internal:kernel>:90:in `tap'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/plugins/provisioners/shell/provisioner.rb:96:in `block in provision_ssh'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/plugins/provisioners/shell/provisioner.rb:329:in `with_script_file'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/plugins/provisioners/shell/provisioner.rb:94:in `provision_ssh'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/plugins/provisioners/shell/provisioner.rb:33:in `provision'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/builtin/provision.rb:138:in `run_provisioner'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/warden.rb:127:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/warden.rb:48:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/builder.rb:149:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/runner.rb:89:in `block in run'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/util/busy.rb:19:in `busy'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/runner.rb:89:in `run'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/environment.rb:525:in `hook'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/builtin/provision.rb:126:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/builtin/provision.rb:126:in `block in call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/builtin/provision.rb:103:in `each'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/builtin/provision.rb:103:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/warden.rb:48:in `call'
from /usr/share/vagrant/gems/gems/vagrant-libvirt-0.1.2/lib/vagrant-libvirt/action/create_domain.rb:363:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/warden.rb:48:in `call'
from /usr/share/vagrant/gems/gems/vagrant-libvirt-0.1.2/lib/vagrant-libvirt/action/create_domain_volume.rb:89:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/warden.rb:48:in `call'
from /usr/share/vagrant/gems/gems/vagrant-libvirt-0.1.2/lib/vagrant-libvirt/action/handle_box_image.rb:124:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/warden.rb:48:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/builtin/handle_box.rb:56:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/warden.rb:48:in `call'
from /usr/share/vagrant/gems/gems/vagrant-libvirt-0.1.2/lib/vagrant-libvirt/action/handle_storage_pool.rb:57:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/warden.rb:48:in `call'
from /usr/share/vagrant/gems/gems/vagrant-libvirt-0.1.2/lib/vagrant-libvirt/action/set_name_of_domain.rb:32:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/warden.rb:48:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/warden.rb:48:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/builder.rb:149:in `call'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/runner.rb:89:in `block in run'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/util/busy.rb:19:in `busy'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/runner.rb:89:in `run'
from /usr/share/vagrant/gems/gems/vagrant-2.2.9/lib/vagrant/action/builtin/call.rb:53:in `call'
```
I'm not a ruby expert but I believe it's related to [this breaking change](https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/). This change fixes it for me.
---
plugins/provisioners/shell/provisioner.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/provisioners/shell/provisioner.rb b/plugins/provisioners/shell/provisioner.rb
index 08c8cf739d3..e95f176f28b 100644
--- a/plugins/provisioners/shell/provisioner.rb
+++ b/plugins/provisioners/shell/provisioner.rb
@@ -78,7 +78,7 @@ def handle_comm(type, data)
options = {}
options[:color] = color if !config.keep_color
- @machine.ui.detail(data.chomp, options)
+ @machine.ui.detail(data.chomp, **options)
end
end
From c145867fdd4fb2767f73534057a7bdb9cad3468e Mon Sep 17 00:00:00 2001
From: Pavel Valena <pvalena@redhat.com>
Date: Fri, 7 May 2021 01:52:27 +0200
Subject: [PATCH] Fix compatibility with Ruby 3.0
Currently it fails with Ruby 3.0:
```
1) VagrantPlugins::Kernel_V2::VagrantConfigDisk#add_provider_config normalizes
provider config
Failure/Error: subject.add_provider_config(test_provider_config)
ArgumentError:
wrong number of arguments (given 1, expected 0)
# ./plugins/kernel_v2/config/disk.rb:88:in `add_provider_config'
# ./test/unit/plugins/kernel_v2/config/disk_test.rb:122:in `block (3 levels)
in <top (required)>'
# /usr/share/gems/gems/webmock-3.12.1/lib/webmock/rspec.rb:37:in `block (2
levels) in <top (required)>'
```
---
test/unit/plugins/kernel_v2/config/disk_test.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/unit/plugins/kernel_v2/config/disk_test.rb b/test/unit/plugins/kernel_v2/config/disk_test.rb
index b05d4f105fb..05e91ced6ed 100644
--- a/test/unit/plugins/kernel_v2/config/disk_test.rb
+++ b/test/unit/plugins/kernel_v2/config/disk_test.rb
@@ -119,7 +119,7 @@ def assert_valid
describe "#add_provider_config" do
it "normalizes provider config" do
test_provider_config = {provider__something: "special" }
- subject.add_provider_config(test_provider_config)
+ subject.add_provider_config(**test_provider_config)
expect(subject.provider_config).to eq( { provider: {something: "special" }} )
end
end
From bda7c07c02fafb2a3817982d827fc12d71daa817 Mon Sep 17 00:00:00 2001
From: Pavel Valena <pvalena@redhat.com>
Date: Fri, 7 May 2021 01:49:31 +0200
Subject: [PATCH] Remove unsused &block in add_provider_config.
Also AFAIK this is not valid with Ruby 3.0.
---
plugins/kernel_v2/config/disk.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/kernel_v2/config/disk.rb b/plugins/kernel_v2/config/disk.rb
index 0062d8d354b..bd16941ff3c 100644
--- a/plugins/kernel_v2/config/disk.rb
+++ b/plugins/kernel_v2/config/disk.rb
@@ -85,7 +85,7 @@ def initialize(type)
# Duplicates will be overriden
#
# @param [Hash] options
- def add_provider_config(**options, &block)
+ def add_provider_config(**options)
current = {}
options.each do |k,v|
opts = k.to_s.split("__")
From 3ec791d1687903f6d7a7d837b27633559f791230 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jaime=20Caama=C3=B1o=20Ruiz?= <jcaamano@suse.com>
Date: Wed, 12 May 2021 17:01:34 +0200
Subject: [PATCH] Additional ruby 3.0 keyword argument fixes
---
lib/vagrant/plugin/v2/trigger.rb | 2 +-
plugins/provisioners/container/client.rb | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/vagrant/plugin/v2/trigger.rb b/lib/vagrant/plugin/v2/trigger.rb
index 99d6ac05325..731b5854733 100644
--- a/lib/vagrant/plugin/v2/trigger.rb
+++ b/lib/vagrant/plugin/v2/trigger.rb
@@ -271,7 +271,7 @@ def run(config, on_error, exit_codes)
options[:color] = :red if !config.keep_color
end
- @ui.detail(data, options)
+ @ui.detail(data, **options)
end
if !exit_codes.include?(result.exit_code)
raise Errors::TriggersBadExitCodes,
diff --git a/plugins/provisioners/container/client.rb b/plugins/provisioners/container/client.rb
index 72a2d86ab44..db3e2c0ac94 100644
--- a/plugins/provisioners/container/client.rb
+++ b/plugins/provisioners/container/client.rb
@@ -195,7 +195,7 @@ def handle_comm(type, data)
options = {}
#options[:color] = color if !config.keep_color
- @machine.ui.info(data.chomp, options)
+ @machine.ui.info(data.chomp, **options)
end
end
end

View file

@ -1,52 +0,0 @@
From 60214f4f66ef4fb864aa535c6dccfe5a8b197de8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
Date: Tue, 26 Feb 2019 12:17:44 +0100
Subject: [PATCH] Fix fake_ftp 0.3.x compatibility.
fake_ftp introduced support direcotry support, which changes the
behavior:
https://github.com/livinginthepast/fake_ftp/pull/42
---
test/unit/plugins/pushes/ftp/adapter_test.rb | 4 ++--
test/unit/plugins/pushes/ftp/push_test.rb | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/unit/plugins/pushes/ftp/adapter_test.rb b/test/unit/plugins/pushes/ftp/adapter_test.rb
index 93888f840..a92cc7422 100644
--- a/test/unit/plugins/pushes/ftp/adapter_test.rb
+++ b/test/unit/plugins/pushes/ftp/adapter_test.rb
@@ -77,7 +77,7 @@ describe VagrantPlugins::FTPPush::FTPAdapter do
ftp.upload("#{@dir}/file", "/file")
end
- expect(server.files).to include("file")
+ expect(server.files).to include("/file")
end
it "uploads in passive mode" do
@@ -86,7 +86,7 @@ describe VagrantPlugins::FTPPush::FTPAdapter do
ftp.upload("#{@dir}/file", "/file")
end
- expect(server.file("file")).to be_passive
+ expect(server.file("/file")).to be_passive
end
end
end
diff --git a/test/unit/plugins/pushes/ftp/push_test.rb b/test/unit/plugins/pushes/ftp/push_test.rb
index 83509fb7d..49c08da6f 100644
--- a/test/unit/plugins/pushes/ftp/push_test.rb
+++ b/test/unit/plugins/pushes/ftp/push_test.rb
@@ -71,7 +71,7 @@ describe VagrantPlugins::FTPPush::Push do
it "pushes the files to the server" do
subject.push
- expect(server.files).to eq(%w(Gemfile data.txt))
+ expect(server.files).to eq(%w(/var/www/site/Gemfile /var/www/site/data.txt))
end
it "raises informative exception when too many files to process" do
--
2.20.1

View file

@ -0,0 +1,38 @@
From 2fe4056a7dcf96dd894875b02032a988777e05d4 Mon Sep 17 00:00:00 2001
From: Chris Roberts <croberts@hashicorp.com>
Date: Mon, 14 Nov 2022 10:11:00 -0800
Subject: [PATCH] Fix test using `File.exists?` to use non-deprecated name
---
test/unit/vagrant/util/install_cli_autocomplete_test.rb | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/unit/vagrant/util/install_cli_autocomplete_test.rb b/test/unit/vagrant/util/install_cli_autocomplete_test.rb
index a62c065ddce..330b8b44805 100644
--- a/test/unit/vagrant/util/install_cli_autocomplete_test.rb
+++ b/test/unit/vagrant/util/install_cli_autocomplete_test.rb
@@ -12,7 +12,7 @@
describe "#shell_installed" do
it "should return path to config file if exists" do
- allow(File).to receive(:exists?).with(target_file).and_return(true)
+ allow(File).to receive(:exist?).with(target_file).and_return(true)
expect(subject.shell_installed(home)).to eq(target_file)
end
@@ -36,7 +36,7 @@
describe "#install" do
it "installs autocomplete" do
- allow(File).to receive(:exists?).with(target_file).and_return(true)
+ allow(File).to receive(:exist?).with(target_file).and_return(true)
allow(File).to receive(:foreach).with(target_file).and_yield("nothing")
expect(File).to receive(:open).with(target_file, "a")
subject.install(home)
@@ -67,4 +67,4 @@
expect{ subject.install(["oops"]) }.to raise_error(ArgumentError)
end
end
-end
\ No newline at end of file
+end

View file

@ -1,13 +0,0 @@
diff --git a/vagrant.gemspec b/vagrant.gemspec
index 1643681..7b87b63 100644
--- a/vagrant.gemspec
+++ b/vagrant.gemspec
@@ -12,7 +12,6 @@ Gem::Specification.new do |s|
s.summary = "Build and distribute virtualized development environments."
s.description = "Vagrant is a tool for building and distributing virtualized development environments."
- s.required_ruby_version = "~> 2.5", "< 2.8"
s.required_rubygems_version = ">= 1.3.6"
s.add_dependency "bcrypt_pbkdf", "~> 1.1"

View file

@ -0,0 +1,21 @@
From c7ef689d86294bcdb8ae5d31ddabcba416e3382d Mon Sep 17 00:00:00 2001
From: Chris Roberts <croberts@hashicorp.com>
Date: Wed, 28 Sep 2022 13:51:54 -0700
Subject: [PATCH] Prevent trailing space character on user agent
---
lib/vagrant/util/downloader.rb | 2 +-
diff --git a/lib/vagrant/util/downloader.rb b/lib/vagrant/util/downloader.rb
index eee9744e74f..a7daf9684b7 100644
--- a/lib/vagrant/util/downloader.rb
+++ b/lib/vagrant/util/downloader.rb
@@ -21,7 +21,7 @@ class Downloader
# are properly tracked.
#
# Vagrant/1.7.4 (+https://www.vagrantup.com; ruby2.1.0)
- USER_AGENT = "Vagrant/#{VERSION} (+https://www.vagrantup.com; #{RUBY_ENGINE}#{RUBY_VERSION}) #{ENV['VAGRANT_USER_AGENT_PROVISIONAL_STRING']}".freeze
+ USER_AGENT = "Vagrant/#{VERSION} (+https://www.vagrantup.com; #{RUBY_ENGINE}#{RUBY_VERSION}) #{ENV['VAGRANT_USER_AGENT_PROVISIONAL_STRING']}".strip.freeze
# Hosts that do not require notification on redirect
SILENCED_HOSTS = [

View file

@ -0,0 +1,41 @@
From aa62e1be219a129efe09464981bd3ae1f7b31282 Mon Sep 17 00:00:00 2001
From: Jarek Prokop <jprokop@redhat.com>
Date: Tue, 9 May 2023 19:41:28 +0200
Subject: [PATCH] Disable loading of direct_conversions file.
plugins/commands/serve/util/direct_conversions.rb file contains
logic for Protobuf related code. It needs related google/protobuf
dependencies, therefore it is better to remove the file and
prevent loading it until we have google/protobuf components available
in Fedora.
---
plugins/commands/serve/command.rb | 2 +-
plugins/commands/serve/util.rb | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/commands/serve/command.rb b/plugins/commands/serve/command.rb
index 9948f28bd..65d74f5d2 100644
--- a/plugins/commands/serve/command.rb
+++ b/plugins/commands/serve/command.rb
@@ -138,4 +138,4 @@ module VagrantPlugins
end
# Load in our conversions down here so all the autoload stuff is in place
-require Vagrant.source_root.join("plugins/commands/serve/util/direct_conversions.rb").to_s
+#require Vagrant.source_root.join("plugins/commands/serve/util/direct_conversions.rb").to_s
diff --git a/plugins/commands/serve/util.rb b/plugins/commands/serve/util.rb
index a8f963df7..930d023a6 100644
--- a/plugins/commands/serve/util.rb
+++ b/plugins/commands/serve/util.rb
@@ -4,7 +4,7 @@ module VagrantPlugins
autoload :Cacher, Vagrant.source_root.join("plugins/commands/serve/util/cacher").to_s
autoload :ClientSetup, Vagrant.source_root.join("plugins/commands/serve/util/client_setup").to_s
autoload :Connector, Vagrant.source_root.join("plugins/commands/serve/util/connector").to_s
- autoload :DirectConversion, Vagrant.source_root.join("plugins/commands/serve/util/direct_conversions").to_s
+ # autoload :DirectConversion, Vagrant.source_root.join("plugins/commands/serve/util/direct_conversions").to_s
autoload :ExceptionTransformer, Vagrant.source_root.join("plugins/commands/serve/util/exception_transformer").to_s
autoload :FuncSpec, Vagrant.source_root.join("plugins/commands/serve/util/func_spec").to_s
autoload :HasBroker, Vagrant.source_root.join("plugins/commands/serve/util/has_broker").to_s
--
2.40.1

View file

@ -0,0 +1,23 @@
From 7661eba89a5786a1b0826dbb2f45f8827d9a5103 Mon Sep 17 00:00:00 2001
From: sophia <scastellarin95@gmail.com>
Date: Tue, 3 Jan 2023 12:23:37 -0800
Subject: [PATCH] Environment home dir is also not accessible if EROFS error
occurs
---
lib/vagrant/environment.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/vagrant/environment.rb b/lib/vagrant/environment.rb
index de99cbf3ba5..8b2531182ca 100644
--- a/lib/vagrant/environment.rb
+++ b/lib/vagrant/environment.rb
@@ -846,7 +846,7 @@ def setup_home_path
begin
@logger.info("Creating: #{dir}")
FileUtils.mkdir_p(dir)
- rescue Errno::EACCES
+ rescue Errno::EACCES, Errno::EROFS
raise Errors::HomeDirectoryNotAccessible, home_path: @home_path.to_s
end
end

View file

@ -0,0 +1,22 @@
From 27440fdd8cebf57882e3672376d409b139cc1e86 Mon Sep 17 00:00:00 2001
From: Jarek Prokop <jprokop@redhat.com>
Date: Thu, 16 Jan 2025 13:36:05 +0100
Subject: [PATCH] Fix the default vagrant URL for pulling boxes.
---
lib/vagrant/shared_helpers.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/vagrant/shared_helpers.rb b/lib/vagrant/shared_helpers.rb
index b07c89a48..3c57cad6d 100644
--- a/lib/vagrant/shared_helpers.rb
+++ b/lib/vagrant/shared_helpers.rb
@@ -10,7 +10,7 @@ module Vagrant
# of Vagrant that may require remote access.
#
# @return [String]
- DEFAULT_SERVER_URL = "https://vagrantcloud.com".freeze
+ DEFAULT_SERVER_URL = "https://vagrantcloud.com/api/v2/vagrant".freeze
# Max number of seconds to wait for joining an active thread.
#

View file

@ -0,0 +1,39 @@
From 9743c857481556838ee417a0033efdee3fb0c7fc Mon Sep 17 00:00:00 2001
From: sophia <scastellarin95@gmail.com>
Date: Tue, 3 Jan 2023 13:20:14 -0800
Subject: [PATCH] Only check for arguments matching test string if the argument
is a string
This issue surfaced in the tests after updating to Ruby 3.2.0 where
the =~ operator has been removed.
ref: https://github.com/ruby/ruby/blob/cca54c8b1b71072bb07850c9d3f20b261d3b312c/NEWS.md?plain=1#L498
---
test/unit/plugins/provisioners/ansible/provisioner_test.rb | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/unit/plugins/provisioners/ansible/provisioner_test.rb b/test/unit/plugins/provisioners/ansible/provisioner_test.rb
index f5828f14340..fdf9aa67eaa 100644
--- a/test/unit/plugins/provisioners/ansible/provisioner_test.rb
+++ b/test/unit/plugins/provisioners/ansible/provisioner_test.rb
@@ -91,7 +91,7 @@ def self.it_should_set_arguments_and_environment_variables(
expect(args[1]).to eq("--connection=ssh")
expect(args[2]).to eq("--timeout=30")
- inventory_count = args.count { |x| x =~ /^--inventory-file=.+$/ }
+ inventory_count = args.count { |x| x.match(/^--inventory-file=.+$/) if x.is_a?(String) }
expect(inventory_count).to be > 0
expect(args[args.length-2]).to eq("playbook.yml")
@@ -100,9 +100,9 @@ def self.it_should_set_arguments_and_environment_variables(
it "sets --limit argument" do
expect(Vagrant::Util::Subprocess).to receive(:execute).with('ansible-playbook', any_args) { |*args|
- all_limits = args.select { |x| x =~ /^(--limit=|-l)/ }
+ all_limits = args.select { |x| x.match(/^(--limit=|-l)/) if x.is_a?(String) }
if config.raw_arguments
- raw_limits = config.raw_arguments.select { |x| x =~ /^(--limit=|-l)/ }
+ raw_limits = config.raw_arguments.select { |x| x.match(/^(--limit=|-l)/) if x.is_a?(String) }
expect(all_limits.length - raw_limits.length).to eq(1)
expect(all_limits.last).to eq(raw_limits.last)
else

View file

@ -0,0 +1,70 @@
diff '--color=auto' -Naur /var/lib/mock/fedora-rawhide-x86_64/root/builddir/build/BUILDROOT/vagrant-2.3.4-1.fc39.x86_64/usr/share/vagrant/gems/gems/vagrant-2.3.4/lib/vagrant.rb /var/lib/mock/vagrant-rebase/root/builddir/build/BUILDROOT/vagrant-2.3.4-1.fc39.x86_64/usr/share/vagrant/gems/gems/vagrant-2.3.4/lib/vagrant.rb
--- /var/lib/mock/fedora-rawhide-x86_64/root/builddir/build/BUILDROOT/vagrant-2.3.4-1.fc39.x86_64/usr/share/vagrant/gems/gems/vagrant-2.3.4/lib/vagrant.rb 2023-02-16 13:41:49.267357857 +0100
+++ /var/lib/mock/vagrant-rebase/root/builddir/build/BUILDROOT/vagrant-2.3.4-1.fc39.x86_64/usr/share/vagrant/gems/gems/vagrant-2.3.4/lib/vagrant.rb 2023-03-17 16:47:49.956035219 +0100
@@ -46,19 +46,19 @@
require "vagrant/plugin/manager"
# Update the load path so our protos can be located
-$LOAD_PATH << Vagrant.source_root.join("lib/vagrant/protobufs").to_s
-$LOAD_PATH << Vagrant.source_root.join("lib/vagrant/protobufs/proto").to_s
-$LOAD_PATH << Vagrant.source_root.join("lib/vagrant/protobufs/proto/vagrant_plugin_sdk").to_s
+# $LOAD_PATH << Vagrant.source_root.join("lib/vagrant/protobufs").to_s
+# $LOAD_PATH << Vagrant.source_root.join("lib/vagrant/protobufs/proto").to_s
+# $LOAD_PATH << Vagrant.source_root.join("lib/vagrant/protobufs/proto/vagrant_plugin_sdk").to_s
# Load our protos so they are available
-require 'vagrant/protobufs/proto/vagrant_server/server_pb'
-require 'vagrant/protobufs/proto/vagrant_server/server_services_pb'
-require 'vagrant/protobufs/proto/ruby_vagrant/ruby-server_pb'
-require 'vagrant/protobufs/proto/ruby_vagrant/ruby-server_services_pb'
-require 'vagrant/protobufs/proto/vagrant_plugin_sdk/plugin_pb'
-require 'vagrant/protobufs/proto/vagrant_plugin_sdk/plugin_services_pb'
-require 'vagrant/protobufs/proto/plugin/grpc_broker_pb'
-require 'vagrant/protobufs/proto/plugin/grpc_broker_services_pb'
+# require 'vagrant/protobufs/proto/vagrant_server/server_pb'
+# require 'vagrant/protobufs/proto/vagrant_server/server_services_pb'
+# require 'vagrant/protobufs/proto/ruby_vagrant/ruby-server_pb'
+# require 'vagrant/protobufs/proto/ruby_vagrant/ruby-server_services_pb'
+# require 'vagrant/protobufs/proto/vagrant_plugin_sdk/plugin_pb'
+# require 'vagrant/protobufs/proto/vagrant_plugin_sdk/plugin_services_pb'
+# require 'vagrant/protobufs/proto/plugin/grpc_broker_pb'
+# require 'vagrant/protobufs/proto/plugin/grpc_broker_services_pb'
# Enable logging if it is requested. We do this before
# anything else so that we can setup the output before
diff '--color=auto' -Naur /var/lib/mock/fedora-rawhide-x86_64/root/builddir/build/BUILDROOT/vagrant-2.3.4-1.fc39.x86_64/usr/share/vagrant/gems/gems/vagrant-2.3.4/plugins/commands/serve/command.rb /var/lib/mock/vagrant-rebase/root/builddir/build/BUILDROOT/vagrant-2.3.4-1.fc39.x86_64/usr/share/vagrant/gems/gems/vagrant-2.3.4/plugins/commands/serve/command.rb
--- /var/lib/mock/fedora-rawhide-x86_64/root/builddir/build/BUILDROOT/vagrant-2.3.4-1.fc39.x86_64/usr/share/vagrant/gems/gems/vagrant-2.3.4/plugins/commands/serve/command.rb 2023-02-16 13:41:49.358357676 +0100
+++ /var/lib/mock/vagrant-rebase/root/builddir/build/BUILDROOT/vagrant-2.3.4-1.fc39.x86_64/usr/share/vagrant/gems/gems/vagrant-2.3.4/plugins/commands/serve/command.rb 2023-03-17 16:57:02.859959067 +0100
@@ -3,9 +3,9 @@
module VagrantPlugins
module CommandServe
# Simple constant aliases to reduce namespace typing
- SDK = Hashicorp::Vagrant::Sdk
- SRV = Hashicorp::Vagrant
- Empty = ::Google::Protobuf::Empty
+ # SDK = Hashicorp::Vagrant::Sdk
+ # SRV = Hashicorp::Vagrant
+ Empty = []
autoload :Broker, Vagrant.source_root.join("plugins/commands/serve/broker").to_s
autoload :Client, Vagrant.source_root.join("plugins/commands/serve/client").to_s
diff '--color=auto' -Naur /var/lib/mock/fedora-rawhide-x86_64/root/builddir/build/BUILDROOT/vagrant-2.3.4-1.fc39.x86_64/usr/share/vagrant/gems/gems/vagrant-2.3.4/plugins/kernel_v2/config/vm.rb /var/lib/mock/vagrant-rebase/root/builddir/build/BUILDROOT/vagrant-2.3.4-1.fc39.x86_64/usr/share/vagrant/gems/gems/vagrant-2.3.4/plugins/kernel_v2/config/vm.rb
--- /var/lib/mock/fedora-rawhide-x86_64/root/builddir/build/BUILDROOT/vagrant-2.3.4-1.fc39.x86_64/usr/share/vagrant/gems/gems/vagrant-2.3.4/plugins/kernel_v2/config/vm.rb 2023-02-16 13:41:49.475357444 +0100
+++ /var/lib/mock/vagrant-rebase/root/builddir/build/BUILDROOT/vagrant-2.3.4-1.fc39.x86_64/usr/share/vagrant/gems/gems/vagrant-2.3.4/plugins/kernel_v2/config/vm.rb 2023-03-17 16:48:26.940189713 +0100
@@ -11,11 +11,11 @@
require "vagrant/util/map_command_options"
require "vagrant/util/map_command_options"
-$LOAD_PATH << Vagrant.source_root.join("lib/vagrant/protobufs/proto").to_s
-
-require "vagrant/protobufs/proto/protostructure_pb"
-require "vagrant/protobufs/proto/vagrant_plugin_sdk/plugin_pb"
-require "vagrant/protobufs/proto/vagrant_plugin_sdk/plugin_services_pb"
+# $LOAD_PATH << Vagrant.source_root.join("lib/vagrant/protobufs/proto").to_s
+#
+# require "vagrant/protobufs/proto/protostructure_pb"
+# require "vagrant/protobufs/proto/vagrant_plugin_sdk/plugin_pb"
+# require "vagrant/protobufs/proto/vagrant_plugin_sdk/plugin_services_pb"
# Include mappers
require Vagrant.source_root.join("plugins/commands/serve/command").to_s

View file

@ -0,0 +1,110 @@
From 6f9f88e05557d40570a3885b6d3d3a6a24c06090 Mon Sep 17 00:00:00 2001
From: Nicolas St-Laurent <stlaurent.nicolas@gmail.com>
Date: Thu, 22 Sep 2022 08:54:46 -0400
Subject: [PATCH] Replace deprecated File.exists? with File.exist?.
---
lib/vagrant/util/install_cli_autocomplete.rb | 2 +-
plugins/hosts/gentoo/host.rb | 2 +-
plugins/hosts/slackware/host.rb | 2 +-
plugins/provisioners/ansible/provisioner/host.rb | 2 +-
plugins/provisioners/chef/config/chef_zero.rb | 2 +-
test/unit/plugins/provisioners/ansible/provisioner_test.rb | 6 +++---
6 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/lib/vagrant/util/install_cli_autocomplete.rb b/lib/vagrant/util/install_cli_autocomplete.rb
index 9aaf61a1de2..119749e0f08 100644
--- a/lib/vagrant/util/install_cli_autocomplete.rb
+++ b/lib/vagrant/util/install_cli_autocomplete.rb
@@ -29,7 +29,7 @@ def shell_installed(home)
@logger.info("Searching for config in home #{home}")
@config_paths.each do |path|
config_file = File.join(home, path)
- if File.exists?(config_file)
+ if File.exist?(config_file)
@logger.info("Found config file #{config_file}")
return config_file
end
diff --git a/plugins/hosts/gentoo/host.rb b/plugins/hosts/gentoo/host.rb
index ac7e019d045..6d8b88a6a35 100644
--- a/plugins/hosts/gentoo/host.rb
+++ b/plugins/hosts/gentoo/host.rb
@@ -4,7 +4,7 @@ module VagrantPlugins
module HostGentoo
class Host < Vagrant.plugin("2", :host)
def detect?(env)
- File.exists?("/etc/gentoo-release")
+ File.exist?("/etc/gentoo-release")
end
end
end
diff --git a/plugins/hosts/slackware/host.rb b/plugins/hosts/slackware/host.rb
index ec3503ac02e..bea7cab7476 100644
--- a/plugins/hosts/slackware/host.rb
+++ b/plugins/hosts/slackware/host.rb
@@ -4,7 +4,7 @@ module VagrantPlugins
module HostSlackware
class Host < Vagrant.plugin("2", :host)
def detect?(env)
- return File.exists?("/etc/slackware-version") ||
+ return File.exist?("/etc/slackware-version") ||
!Dir.glob("/usr/lib/setup/Plamo-*").empty?
end
end
diff --git a/plugins/provisioners/ansible/provisioner/host.rb b/plugins/provisioners/ansible/provisioner/host.rb
index 3e594b83c11..f2a57133c79 100644
--- a/plugins/provisioners/ansible/provisioner/host.rb
+++ b/plugins/provisioners/ansible/provisioner/host.rb
@@ -185,7 +185,7 @@ def ship_generated_inventory(inventory_content)
inventory_file = Pathname.new(File.join(inventory_path, 'vagrant_ansible_inventory'))
@@lock.synchronize do
- if !File.exists?(inventory_file) or inventory_content != File.read(inventory_file)
+ if !File.exist?(inventory_file) or inventory_content != File.read(inventory_file)
begin
# ansible dir inventory will ignore files starting with '.'
inventory_tmpfile = Tempfile.new('.vagrant_ansible_inventory', inventory_path)
diff --git a/plugins/provisioners/chef/config/chef_zero.rb b/plugins/provisioners/chef/config/chef_zero.rb
index c19485f882e..84ed08cf5b2 100644
--- a/plugins/provisioners/chef/config/chef_zero.rb
+++ b/plugins/provisioners/chef/config/chef_zero.rb
@@ -81,7 +81,7 @@ def validate(machine)
errors << I18n.t("vagrant.config.chef.nodes_path_empty")
else
missing_paths = Array.new
- nodes_path.each { |dir| missing_paths << dir[1] if !File.exists? dir[1] }
+ nodes_path.each { |dir| missing_paths << dir[1] if !File.exist? dir[1] }
# If it exists at least one path on disk it's ok for Chef provisioning
if missing_paths.size == nodes_path.size
errors << I18n.t("vagrant.config.chef.nodes_path_missing", path: missing_paths.to_s)
diff --git a/test/unit/plugins/provisioners/ansible/provisioner_test.rb b/test/unit/plugins/provisioners/ansible/provisioner_test.rb
index 180f26869bb..f5828f14340 100644
--- a/test/unit/plugins/provisioners/ansible/provisioner_test.rb
+++ b/test/unit/plugins/provisioners/ansible/provisioner_test.rb
@@ -181,7 +181,7 @@ def self.it_should_create_and_use_generated_inventory(with_user = true)
it "generates an inventory with all active machines" do
expect(Vagrant::Util::Subprocess).to receive(:execute).with('ansible-playbook', any_args) { |*args|
expect(config.inventory_path).to be_nil
- expect(File.exists?(generated_inventory_file)).to be(true)
+ expect(File.exist?(generated_inventory_file)).to be(true)
inventory_content = File.read(generated_inventory_file)
_ssh = config.compatibility_mode == VagrantPlugins::Ansible::COMPATIBILITY_MODE_V2_0 ? "" : "_ssh"
if with_user
@@ -697,7 +697,7 @@ def ensure_that_config_is_valid
it "generates an inventory with winrm connection settings" do
expect(Vagrant::Util::Subprocess).to receive(:execute).with('ansible-playbook', any_args) { |*args|
expect(config.inventory_path).to be_nil
- expect(File.exists?(generated_inventory_file)).to be(true)
+ expect(File.exist?(generated_inventory_file)).to be(true)
inventory_content = File.read(generated_inventory_file)
expect(inventory_content).to include("machine1 ansible_connection=winrm ansible_ssh_host=127.0.0.1 ansible_ssh_port=55986 ansible_ssh_user='winner' ansible_ssh_pass='winword'\n")
@@ -731,7 +731,7 @@ def ensure_that_config_is_valid
expect(Vagrant::Util::Subprocess).to receive(:execute).with('ansible-playbook', any_args) { |*args|
expect(args).to include("--inventory-file=#{existing_file}")
expect(args).not_to include("--inventory-file=#{generated_inventory_file}")
- expect(File.exists?(generated_inventory_file)).to be(false)
+ expect(File.exist?(generated_inventory_file)).to be(false)
}.and_return(default_execute_result)
end

View file

@ -0,0 +1,41 @@
From 9743c857481556838ee417a0033efdee3fb0c7fc Mon Sep 17 00:00:00 2001
From: sophia <scastellarin95@gmail.com>
Date: Tue, 3 Jan 2023 13:20:14 -0800
Subject: [PATCH 4/5] Only check for arguments matching test string if the
argument is a string
This issue surfaced in the tests after updating to Ruby 3.2.0 where
the =~ operator has been removed.
ref: https://github.com/ruby/ruby/blob/cca54c8b1b71072bb07850c9d3f20b261d3b312c/NEWS.md?plain=1#L498
---
test/unit/plugins/provisioners/ansible/provisioner_test.rb | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/unit/plugins/provisioners/ansible/provisioner_test.rb b/test/unit/plugins/provisioners/ansible/provisioner_test.rb
index f5828f14340..fdf9aa67eaa 100644
--- a/test/unit/plugins/provisioners/ansible/provisioner_test.rb
+++ b/test/unit/plugins/provisioners/ansible/provisioner_test.rb
@@ -91,7 +91,7 @@ def self.it_should_set_arguments_and_environment_variables(
expect(args[1]).to eq("--connection=ssh")
expect(args[2]).to eq("--timeout=30")
- inventory_count = args.count { |x| x =~ /^--inventory-file=.+$/ }
+ inventory_count = args.count { |x| x.match(/^--inventory-file=.+$/) if x.is_a?(String) }
expect(inventory_count).to be > 0
expect(args[args.length-2]).to eq("playbook.yml")
@@ -100,9 +100,9 @@ def self.it_should_set_arguments_and_environment_variables(
it "sets --limit argument" do
expect(Vagrant::Util::Subprocess).to receive(:execute).with('ansible-playbook', any_args) { |*args|
- all_limits = args.select { |x| x =~ /^(--limit=|-l)/ }
+ all_limits = args.select { |x| x.match(/^(--limit=|-l)/) if x.is_a?(String) }
if config.raw_arguments
- raw_limits = config.raw_arguments.select { |x| x =~ /^(--limit=|-l)/ }
+ raw_limits = config.raw_arguments.select { |x| x.match(/^(--limit=|-l)/) if x.is_a?(String) }
expect(all_limits.length - raw_limits.length).to eq(1)
expect(all_limits.last).to eq(raw_limits.last)
else

View file

@ -1,13 +1,13 @@
%global bashcompletion_dir %(pkg-config --variable=completionsdir bash-completion 2> /dev/null || :)
%global vagrant_spec_commit 9057cd6e0ac299688da608d459deac66bfad8880
%global vagrant_spec_commit a88825f4cb254b703d0f9235667223f02ad5c600
%bcond_without help2man
%bcond_with ed25519
%bcond_without ed25519
Name: vagrant
Version: 2.2.16
Release: 2%{?dist}
Version: 2.3.4
Release: 9%{?dist}
Summary: Build and distribute virtualized development environments
License: MIT
URL: http://vagrantup.com
@ -16,28 +16,34 @@ Source0: https://github.com/hashicorp/%{name}/archive/refs/tags/v%{version}.tar.
Source1: binstub
# The library has no official release yet. But since it is just test
# dependency, it should be fine to include the source right here.
# wget https://github.com/mitchellh/vagrant-spec/archive/9057cd6e0ac299688da608d459deac66bfad8880/vagrant-spec-9057cd6e0ac299688da608d459deac66bfad8880.tar.gz
Source2: https://github.com/vagrant/%{name}-spec/archive/%{vagrant_spec_commit}/%{name}-spec-%{vagrant_spec_commit}.tar.gz
# wget https://github.com/hashicorp/vagrant-spec/archive/03d88fe2467716b072951c2b55d78223130851a6/vagrant-spec-03d88fe2467716b072951c2b55d78223130851a6.tar.gz
Source2: https://github.com/hashicorp/%{name}-spec/archive/%{vagrant_spec_commit}/%{name}-spec-%{vagrant_spec_commit}.tar.gz
# Monkey-patching needed for Vagrant to work until the respective patches
# for RubyGems and Bundler are in place
Source4: macros.vagrant
# Fix fake_ftp 0.3.x compatibility.
# https://github.com/hashicorp/vagrant/issues/10646
Patch0: vagrant-2.2.3-Fix-fake_ftp-0.3.x-compatibility.patch
# Do not load runtime dependencies in %%check if vagrant is not loaded
# https://github.com/hashicorp/vagrant/pull/10945
Patch1: vagrant-2.2.9-do-not-load-dependencies.patch
# Relax Ruby version restriction (use patch to make sure we don't regress
# if upstream fixes this.
# https://bugzilla.redhat.com/show_bug.cgi?id=1915671
Patch5: vagrant-2.2.9-Relax-Ruby-dependency-restriction.patch
# Fix shell provisioner compatibility with ruby 3.0
# https://github.com/hashicorp/vagrant/pull/12273
# https://github.com/hashicorp/vagrant/pull/12353
# https://github.com/hashicorp/vagrant/pull/12352
# https://github.com/jcaamano/vagrant/commit/3ec791d1687903f6d7a7d837b27633559f791230
Patch6: vagrant-2.2.16-fix-compatibility-with-ruby-3.0.patch
# Remove GRPC dependencies for Fedora. It seems that it will serve
# for communication with upcoming Golang backend, however
# it is only in tech-preview now and grpc is not simple to package.
# Let's remove it for now and revisit in the future.
Patch2: vagrant-2.3.4-remove_grpc.patch
# Ruby 3.2 compatibility for tests.
# Commits are cherry-picked instead of a whole PR as it also edits .github
# files that we do not care about.
# https://github.com/hashicorp/vagrant/pull/13043
Patch3: vagrant-2.3.4-Environment-home-dir-is-also-not-accessible-if-EROFS-error-occurs.patch
Patch4: vagrant-2.3.4-Only-check-for-arguments-matching-test-string.patch
# Disable loading of direc_conversions.rb in other files.
# The file is removed as it requires protobuf components not yet
# packaged in Fedora.
Patch5: vagrant-2.3.4-Disable-loading-of-direct_conversions-file.patch
# Default URL for pulling boxes seems to have changed.
# This fix allows vagrant to pull boxes again.
# See: https://bugzilla.redhat.com/show_bug.cgi?id=2337302
Patch6: vagrant-2.3.4-Fix-the-default-vagrant-URL-for-pulling-boxes.patch
# The load directive is supported since RPM 4.12, i.e. F21+. The build process
# fails on older Fedoras.
@ -54,23 +60,28 @@ Requires: (rubygem(i18n) >= 1.8 with rubygem(i18n) < 2.0)
Requires: rubygem(json)
Requires: (rubygem(listen) >= 3.2 with rubygem(listen) < 4)
Requires: rubygem(log4r) >= 1.1.9
Requires: (rubygem(net-ssh) >= 5.2.0 with rubygem(net-ssh) < 7)
Requires: (rubygem(net-ssh) >= 5.2.0 with rubygem(net-ssh) < 8)
Requires: rubygem(net-scp) >= 1.2.0
Requires: rubygem(net-sftp) >= 2.1
Requires: rubygem(rest-client) >= 1.6.0
Requires: rubygem(rubyzip) >= 1.1.7
Requires: rubygem(net-ftp)
Requires: rubygem(rexml)
Requires: rubygem(mime-types)
Requires: bsdtar
Requires: curl
Requires: %{_bindir}/ps
Recommends: vagrant(vagrant-libvirt)
Recommends: rubygem(bcrypt_pbkdf)
Recommends: (podman-docker if podman)
%if %{with ed25519}
Requires: rubygem(ed25519)
Requires: rubygem(bcrypt_pbkdf)
BuildRequires: rubygem(ed25519)
BuildRequires: rubygem(bcrypt_pbkdf)
%else
Recommends: rubygem(ed25519)
Recommends: rubygem(bcrypt_pbkdf)
%endif
BuildRequires: bsdtar
@ -88,12 +99,15 @@ BuildRequires: rubygem(erubi)
BuildRequires: rubygem(rspec)
BuildRequires: rubygem(rspec-its)
BuildRequires: rubygem(net-sftp)
BuildRequires: rubygem(rest-client)
BuildRequires: rubygem(rubyzip)
BuildRequires: rubygem(thor)
BuildRequires: rubygem(webmock)
BuildRequires: rubygem(webrick)
BuildRequires: rubygem(fake_ftp)
BuildRequires: rubygem(rake)
BuildRequires: rubygem(net-ftp)
BuildRequires: rubygem(rexml)
BuildRequires: rubygem(mime-types)
BuildRequires: pkgconfig(bash-completion)
%if %{with help2man}
BuildRequires: help2man
@ -101,11 +115,6 @@ BuildRequires: help2man
BuildRequires: %{_bindir}/ssh
BuildArch: noarch
# vagrant-atomic was retired in F26, since it was merged into Vagrant.
# https://github.com/projectatomic/vagrant-atomic/issues/5
# https://github.com/mitchellh/vagrant/pull/5847
Obsoletes: vagrant-atomic <= 0.1.0-4
# Since Vagrant itself is installed on the same place as its plugins
# the vagrant_plugin macros can be reused in the spec file, but the plugin
# name must be specified.
@ -126,10 +135,6 @@ Documentation for %{name}.
%prep
%setup -q -b2
%patch0 -p1
%patch5 -p1
%patch6 -p1
# TODO: package vagrant_cloud, as it is not in Fedora yet
%gemspec_remove_dep -s %{name}.gemspec -g vagrant_cloud
@ -139,13 +144,22 @@ rm -rf ./plugins/commands/cloud/
sed -i '/^\s*I18n\..*$/ s/^/#/g' plugins/commands/login/plugin.rb
sed -i '/^\s*command(:login) do$/,/\s*end$/ s/^/#/g' plugins/commands/login/plugin.rb
# We have newer versions in Fedora
%gemspec_remove_dep -s %{name}.gemspec -g net-scp '~> 1.2.0'
%gemspec_add_dep -s %{name}.gemspec -g net-scp '>= 1.2.0'
# Expand required Ruby compatibility, otherwise RubyGems throws exceptions.
# Relevant rhbz: https://bugzilla.redhat.com/show_bug.cgi?id=2053476#c0
# Relevant RubyGems issue: https://github.com/rubygems/rubygems/issues/4338
sed -i -e '/required_ruby_version/ s/, "< 3.2"//' %{name}.gemspec
# We have older version in Fedora
%gemspec_remove_dep -s %{name}.gemspec -g net-sftp '~> 3.0'
%gemspec_remove_dep -s %{name}.gemspec -g net-sftp '~> 4.0'
%gemspec_add_dep -s %{name}.gemspec -g net-sftp '>= 2.1.2'
%gemspec_remove_dep -s %{name}.gemspec -g net-scp '~> 4.0'
%gemspec_add_dep -s %{name}.gemspec -g net-scp '>= 1.2.0'
# We have newer version in Fedora
%gemspec_remove_dep -s %{name}.gemspec -g listen
%gemspec_add_dep -s %{name}.gemspec -g listen '>= 3.5.1'
%gemspec_remove_dep -s %{name}.gemspec -g rubyzip '~> 2.0'
%gemspec_add_dep -s %{name}.gemspec -g rubyzip '>= 2.0.0'
# Remove Windows specific dependencies
%gemspec_remove_dep -s %{name}.gemspec -g wdm
@ -160,25 +174,50 @@ sed -i '/^\s*command(:login) do$/,/\s*end$/ s/^/#/g' plugins/commands/login/plug
%gemspec_remove_dep -s %{name}.gemspec -g childprocess
%gemspec_add_dep -s %{name}.gemspec -g childprocess '>= 1.0.1'
# Remove optional dependencies
%gemspec_remove_dep -s %{name}.gemspec -g bcrypt_pbkdf
# Relax net-ssh dependency. We have newer net-ssh in Fedora
%gemspec_remove_dep -s %{name}.gemspec -g net-ssh
%gemspec_add_dep -s %{name}.gemspec -g net-ssh ['>= 5.2.0', '< 8']
# Remove "optional" dependencies
# This seems like prelude for the in-development golang backend.
# Nothing runtime critical.
%gemspec_remove_dep -s %{name}.gemspec -g googleapis-common-protos-types
%gemspec_remove_dep -s %{name}.gemspec -g grpc
%gemspec_remove_dep -s %{name}.gemspec -g rgl
# Load missing dependency Vagrant::Util::MapCommandOptions
# https://github.com/hashicorp/vagrant/pull/11609
sed -i '/^\s*require..vagrant.util.experimental.\s*$/ a\require "vagrant/util/map_command_options"' \
plugins/kernel_v2/config/vm.rb
# Apply net-ssh patches apply regardless of net-ssh version
sed -i 's/^if Net::SSH::Version::STRING.*$/if true/' \
lib/vagrant/patches/net-ssh.rb
%if %{without ed25519}
# Remove optional dependencies
%gemspec_remove_dep -s %{name}.gemspec -g bcrypt_pbkdf
%gemspec_remove_dep -s %{name}.gemspec -g ed25519
# Disable patch for ed25519
sed -i '/^ require .net\/ssh\/authentication\/ed25519.$/,/^ end$/ s/^/#/' \
lib/vagrant/patches/net-ssh.rb
%else
%gemspec_remove_dep -s %{name}.gemspec -g ed25519
%gemspec_add_dep -s %{name}.gemspec -g ed25519 ['>= 1.2.4', '< 1.4']
%endif
# Let's get rid of protobuf related components
%patch 2 -p16
%gemspec_remove_file -s %{name}.gemspec Dir.glob('lib/vagrant/protobufs/**/*.*')
# This file contains monkey patching and compatibility for Protobuf serialization.
# We do not need that as we skip protobuf related parts completely.
%gemspec_remove_file -s %{name}.gemspec "plugins/commands/serve/util/direct_conversions.rb"
rm -rf plugins/commands/serve/util/direct_conversions.rb
# Patch out related requires in code.
%patch 5 -p1
%patch 3 -p1
%patch 6 -p1
%build
gem build %{name}.gemspec
@ -207,6 +246,9 @@ install -D -m 0644 %{buildroot}%{vagrant_plugin_instdir}/contrib/bash/completion
%{buildroot}%{bashcompletion_dir}/%{name}
sed -i '/#!\// d' %{buildroot}%{bashcompletion_dir}/%{name}
install -D -m 0644 %{buildroot}%{vagrant_plugin_instdir}/contrib/zsh/_%{name} \
%{buildroot}%{_datadir}/zsh/site-functions/_%{name}
# Install Vagrant macros
mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d/
@ -240,6 +282,8 @@ help2man -N -s1 -o %{buildroot}%{_mandir}/man1/%{name}.1 \
%check
# Do not load dependencies from gemspec
cat %{PATCH1} | patch -p1
# Ruby 3.2 compatibility fix
cat %{PATCH4} | patch -p1
sed -i '/^\s*context "when vagrant specification is not found" do$/,/^ end$/ s/^/#/' \
test/unit/vagrant/bundler_test.rb
@ -278,45 +322,26 @@ mv test/unit/vagrant/util/env_test.rb{,.disable}
# in favor of vagrant_cloud
rm -r test/unit/plugins/commands/cloud/
# fake_ftp 0.3.0 compatibility.
# https://github.com/livinginthepast/fake_ftp/pull/56
sed -i '/^\s*it "adds from FTP URL" do$/ a skip' test/unit/vagrant/action/builtin/box_add_test.rb
# Disable test that requires network
sed -i '/^ it "generates a network name and configuration" do$/,/^ end/ s/^/#/' \
test/unit/plugins/providers/docker/action/prepare_networks_test.rb
# There are some Ruby 2.7 incompatibilities which might be fixed by:
# https://github.com/hashicorp/vagrant/pull/11459
# but workarond the offending test case for now.
sed -i "/describe '#create' do/,/^ end$/ s/^/#/" \
test/unit/plugins/providers/docker/driver_compose_test.rb
sed -i "/it 'removes the container' do/a\ skip 'Ruby 2.7 incompatibility'" \
test/unit/plugins/providers/docker/driver_compose_test.rb
# Remove failing BSD-host tests, as we don't care about those.
rm -rf test/unit/plugins/hosts/bsd
# Disable broken test for installing docker on host
# https://github.com/hashicorp/vagrant/issues/11606
sed -i '/^\s*it "installs docker if not present" do$/ a\ skip "GH#11606"' \
test/unit/plugins/provisioners/docker/installer_test.rb
# Disable tests failing on class variable access from toplevel
# > Failure/Error: @@logger = nil
# https://github.com/hashicorp/vagrant/issues/12362
mv test/unit/plugins/synced_folders/unix_mount_helpers_test.rb{,.disable}
# Disable currently broken powershell tests, due to:
# https://github.com/hashicorp/vagrant/commit/5967a23fa097e89726d335dcf781ae43cb256bc1#
# https://github.com/hashicorp/vagrant/issues/12363
mv test/unit/vagrant/util/powershell_test.rb{,.disable}
# Export the OS as an environment variable that Vagrant can access, so the
# test suite is executed with same host it will be run (also avoids docker
# installer_test issue).
export VAGRANT_DETECTED_OS="$(uname -s 2>/dev/null)"
# Disable tests concerning protobuf
mv ./test/unit/plugins/commands/serve/service/guest_service_test.rb{,.disabled}
mv ./test/unit/plugins/commands/serve/service/host_service_test.rb{,.disabled}
mv ./test/unit/plugins/commands/serve/util/exception_transformer_test.rb{,.disabled}
mv ./test/unit/plugins/commands/serve/mappers_test.rb{,.disabled}
sed -i -e '/ it "uses a directory within the home directory by default" do/a\
skip "Requires protobuf"' ./test/unit/vagrant/environment_test.rb
# Put gem load path on top of the load path, so they are loaded earlier then
# their StdLib symlinks.
%{!?buildtime_libdir:%global buildtime_libdir $(ruby -rrbconfig -e 'puts RbConfig::CONFIG["libdir"]')}
@ -339,37 +364,6 @@ export RUBYOPT
rake -f tasks/test.rake test:unit \
| tee error.log
# Additional failures (3)
# > Cannot proxy frozen objects, rspec-mocks relies on proxies for method...
# https://github.com/hashicorp/vagrant/issues/12365
#
# Temporarily disable (3) tests failing on older childprocess
# 4) Vagrant::Util::Subprocess#running? should return false when subprocess has completed
# Failure/Error: expect(sp.running?).to be(false)
# expected false
# got true
# # ./test/unit/vagrant/util/subprocess_test.rb:123:in `block (4 levels) in <top (required)>'
# # ./test/unit/vagrant/util/subprocess_test.rb:120:in `each'
# # ./test/unit/vagrant/util/subprocess_test.rb:120:in `block (3 levels) in <top (required)>'
# # /usr/share/gems/gems/webmock-3.11.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'
# 5) Vagrant::Util::Subprocess#stop when subprocess has already completed should return false
# Failure/Error: expect(sp.stop).to be(false)
# expected false
# got true
# # ./test/unit/vagrant/util/subprocess_test.rb:152:in `block (5 levels) in <top (required)>'
# # ./test/unit/vagrant/util/subprocess_test.rb:149:in `each'
# # ./test/unit/vagrant/util/subprocess_test.rb:149:in `block (4 levels) in <top (required)>'
# # /usr/share/gems/gems/webmock-3.11.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'
# 6) Vagrant::Util::Subprocess#stop when subprocess is running should stop the process
# Failure/Error: expect(sp.running?).to be(false)
# expected false
# got true
# # ./test/unit/vagrant/util/subprocess_test.rb:172:in `block (5 levels) in <top (required)>'
# # ./test/unit/vagrant/util/subprocess_test.rb:168:in `each'
# # ./test/unit/vagrant/util/subprocess_test.rb:168:in `block (4 levels) in <top (required)>'
# # /usr/share/gems/gems/webmock-3.11.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'
grep ', 6 failures, ' error.log || exit 1
%if %{with help2man}
# Check `--help` output, using which man page is created
export GEM_PATH="%{gem_dir}:%{buildroot}/usr/share/vagrant/gems"
@ -446,6 +440,16 @@ end
%dir %{dirname:%{vagrant_plugin_instdir}}
%dir %{dirname:%{vagrant_plugin_spec}}
%exclude %{vagrant_plugin_instdir}/Makefile
%exclude %{vagrant_plugin_instdir}/Dockerfile
%exclude %{vagrant_plugin_instdir}/flake*
%exclude %{vagrant_plugin_instdir}/go.{mod,sum}
%exclude %{vagrant_plugin_instdir}/gen.go
%exclude %{vagrant_plugin_instdir}/binstubs/vagrant
%exclude %{vagrant_plugin_instdir}/nix/*.nix
%exclude %{vagrant_plugin_instdir}/shell.nix
%exclude %{vagrant_plugin_instdir}/vagrant-config.hcl
%{_bindir}/%{name}
%dir %{vagrant_plugin_instdir}
%license %{vagrant_plugin_instdir}/LICENSE
@ -457,6 +461,7 @@ end
# TODO: Make more use of contribs.
%{vagrant_plugin_instdir}/contrib
%exclude %{vagrant_plugin_instdir}/contrib/bash
%exclude %{vagrant_plugin_instdir}/contrib/zsh/_%{name}
# This is not the original .gemspec.
%exclude %{vagrant_plugin_instdir}/vagrant.gemspec
%{vagrant_plugin_instdir}/keys
@ -474,6 +479,9 @@ end
%dir %{dirname:%{bashcompletion_dir}}
%dir %{bashcompletion_dir}
%{bashcompletion_dir}/%{name}
# By "owning" the site-functions dir, we don't need to Require zsh
%dir %{_datadir}/zsh
%{_datadir}/zsh/site-functions/_%{name}
%{_rpmconfigdir}/macros.d/macros.%{name}
%if %{with help2man}
%{_mandir}/man1/%{name}.1*
@ -488,6 +496,71 @@ end
%{vagrant_plugin_instdir}/vagrant-spec.config.example.rb
%changelog
* Mon Dec 22 2025 Vít Ondruch <vondruch@redhat.com> - 2.3.4-9
- Relax `rubygem(rubyzip)` dependency
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Thu Jan 16 2025 Jarek Prokop <jprokop@redhat.com> - 2.3.4-7
- Fix default URL used for pulling boxes.
Resolves: rhbz#2337302
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Wed Feb 07 2024 Vít Ondruch <vondruch@redhat.com> - 2.3.4-5
- Drop superfluous rest-client dependency.
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Jun 21 2023 Zdenek Zambersky <zzambers@redhat.com> - 2.3.4-2
- Added missing dependency on rexml and mime-types
* Tue May 09 2023 Jarek Prokop <jprokop@redhat.com> - 2.3.4-1
- Upgrade to Vagrant 2.3.4.
* Thu Mar 16 2023 Pavel Valena <pvalena@redhat.com> - 2.2.19-10
- Handle URL properly
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Mon Jan 09 2023 Jarek Prokop <jprokop@redhat.com> - 2.2.19-8
- Enable rubygem-ed25519 requires.
Resolves: rhbz#1962869
* Fri Jan 6 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.2.19-7
- Replace regex match patch with the one by the upstream
* Mon Dec 26 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.2.19-6
- Backport upstream fix for ruby3.2 File.exists? removal
- Apply proposal fix for ruby3.2 Object#=~ removal
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Mar 11 2022 Pavel Valena <pvalena@redhat.com> - 2.2.19-4
- Add missing dependency on bin/ps
* Mon Feb 21 2022 Jarek Prokop <jprokop@redhat.com> - 2.2.19-3
- Fix FTBFS due to new rspec-mocks.
- Relax required ruby version.
Resolves: rhbz#2053476
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Nov 15 2021 Pavel Valena <pvalena@redhat.com> - 2.2.19-1
- Upgrade Vagrant to 2.2.19.
Resolves: rhbz#1980195
- Add zsh autocompletion.
- Relax net-ssh dependency once more.
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild