Compare commits

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

48 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
Fedora Release Engineering
e282d9ac91 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 20:15:41 +00:00
Pavel Valena
f5db5d840f Fixup .gitignore file. 2021-05-13 00:57:29 +02:00
Pavel Valena
499a8974a9 Temporarily disable 6 tests
due to older childprocess,
and unknown test suite error.
2021-05-13 00:16:04 +02:00
Pavel Valena
01bc73e434 Fix: new RPM compatibility
https://github.com/rpm-software-management/rpm/issues/1669
2021-05-13 00:16:04 +02:00
Pavel Valena
4a3ce0bd38 Update to Vagrant 2.2.16.
Resolves: rhbz#1872307

 - Enhance .spec file.
 - Fix compatibility with Ruby 3.0.
 - Add rexml dependency, as it's no longer a default gem with Ruby 3.0.
 - Apply net-ssh patches apply regardless of net-ssh version.
 - Add bcond_with for ed25519, and also respective (Build)Requires,
   as the dependency is monkey-patched for vagrant use.
2021-05-13 00:16:04 +02:00
Fedora Release Engineering
0da5407f5b - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 22:52:10 +00:00
Vít Ondruch
259be2b46f Do prep steps in %prep section. 2021-01-21 11:22:11 +01:00
Vít Ondruch
27608d84ce Relax Ruby version restriction.
Resolves: rhbz#1915671
2021-01-21 11:21:34 +01:00
Vít Ondruch
577ea8bd22 Relax net-ssh dependency.
This will ease update of `rubygem(net-ssh)` in Fedora and therefore
also update to the next version of Vagrant.
2021-01-21 10:16:52 +01:00
Vít Ondruch
fd25a55913 Fix Ruby 3.0 and rspec-mock 3.10.1 compatibility. 2021-01-21 10:16:16 +01:00
Vít Ondruch
64073e0d9e Use Erubi instead of Erubis. 2020-08-19 12:57:43 +02:00
Fedora Release Engineering
76a5264efc - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 13:30:37 +00:00
Pavel Valena
02af3e5cd7 Move dependency load map_command_options
for creating @box_extra_download_options to config/vm.rb.

This is needed to be able to run vagrant-libvirt test suite,
f.e.. It resolves usecase when `bin/vagrant` executable is not used directly.

https://github.com/hashicorp/vagrant/pull/11609
2020-05-20 19:42:24 +02:00
Pavel Valena
7e8d943eaf Update to Vagrant 2.2.9.
Added support for podman via docker podman-docker wrapper
(https://github.com/hashicorp/vagrant/pull/11356).
2020-05-12 03:02:49 +02:00
Pavel Valena
5cd1a2c4b4 Fixup man page and add --help check.
Resolves: rhbz#1801305
2020-05-12 03:02:09 +02:00
Vít Ondruch
7ab76a36b4 Relax rubygem-net-ssh dependency.
Resolves: rhbz#1805240
2020-04-21 14:23:45 +02:00
Vít Ondruch
b11cae0121 Fix FTBFS due to Ruby 2.7.
Resolves: rhbz#1800230
2020-04-21 14:23:05 +02:00
Fedora Release Engineering
5f8c0aa908 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-31 02:52:50 +00:00
Pavel Valena
33a64aee0a Allow higher listen dependency
to work with newer rubygem-listen.
2019-11-20 21:10:09 +01:00
Pavel Valena
958f0e1daa Upgrade to Vagrant 2.2.6
also fix i18n dependency to allow for v1.7.0.
2019-10-23 01:08:02 +02:00
Pavel Valena
f868ebeebf shadow-utils are no longer used in *pre* and thus not BRequired. 2019-10-15 13:17:51 +02:00
Pavel Valena
0bf64cab56 Move man pages to main package
and also ehnance/simplify help2man bcond_with syntax.
2019-10-15 13:17:47 +02:00
15 changed files with 735 additions and 137 deletions

2
.gitignore vendored
View file

@ -1,2 +1,2 @@
/vagrant-*.tar.gz
/v*.tar.gz
/vagrant-spec-*.tar.gz

View file

@ -1,2 +1,2 @@
SHA512 (vagrant-2.2.5.tar.gz) = dc95e566588987b9199e66ee5f548be573bd62e229d2e4de5447f43f25a1a7129377935ec6dc73cc1f53acc29c08b0a4fabebf1a58310f175cc6d37b856c9272
SHA512 (vagrant-spec-abfc34474d122235d56e4c6b6fb5d3e35bedfa90.tar.gz) = cbb60d661d34b37bc5d414da0b2a31f39e2910c11251e334da5efbd8f010b5bd428bc1ae476fcb9b42ec4e8f8c6265292ba3f8f543625178ecb85aad06e8856f
SHA512 (v2.3.4.tar.gz) = 0d47e57c3c190743b4d0484ba1e48e3aad73ced3b356f0a4e54b66649eab2bd5d3fc57a06c62b4cc7d6c8e4617ef18a283c03d01553cc575c0884e464a27b501
SHA512 (vagrant-spec-a88825f4cb254b703d0f9235667223f02ad5c600.tar.gz) = 50e4e2c9e69ccb0309876d204d8d66f606188e1d11853071a74819fe75126ed65fa3d02a31bdf2f8e29679a81d12fa2daed806eba034532c8150fe53d749fb84

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,27 +0,0 @@
From 38a48ea0dd01532b3ad17e9ed10c15598bc6ce32 Mon Sep 17 00:00:00 2001
From: Pavel Valena <pvalena@redhat.com>
Date: Mon, 1 Jul 2019 17:44:54 +0200
Subject: [PATCH] Do not list / load dependencies if `vagrant` spec is not
loaded
in `vagrant_internal_specs` as this fails, due to `find` returning `nil`.
---
lib/vagrant/bundler.rb | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/vagrant/bundler.rb b/lib/vagrant/bundler.rb
index 7ba48435fa..c0fabdcead 100644
--- a/lib/vagrant/bundler.rb
+++ b/lib/vagrant/bundler.rb
@@ -421,8 +421,9 @@ def generate_vagrant_set
def vagrant_internal_specs
# activate any dependencies up front so we can always
# pin them when resolving
- Gem::Specification.find { |s| s.name == "vagrant" && s.activated? }.
- runtime_dependencies.each { |d| gem d.name, *d.requirement.as_list }
+ if (vs = Gem::Specification.find { |s| s.name == "vagrant" && s.activated? })
+ vs.runtime_dependencies.each { |d| gem d.name, *d.requirement.as_list }
+ end
# discover all the gems we have available
list = {}
directories = [Gem::Specification.default_specifications_dir]

View file

@ -0,0 +1,24 @@
From 068df794f81fb7ec410595d85ca9b4841a6034ec Mon Sep 17 00:00:00 2001
From: Pavel Valena <pvalena@redhat.com>
Date: Thu, 7 May 2020 22:40:54 +0200
Subject: [PATCH] Do not activate gems if gemspec is not found
diff --git a/lib/vagrant/bundler.rb b/lib/vagrant/bundler.rb
index eb2caab..bd9f8a0 100644
--- a/lib/vagrant/bundler.rb
+++ b/lib/vagrant/bundler.rb
@@ -645,12 +645,10 @@ module Vagrant
if !self_spec
@logger.warn("Failed to locate activated vagrant specification. Activating...")
self_spec = Gem::Specification.find { |s| s.name == "vagrant" }
- if !self_spec
- @logger.error("Failed to locate Vagrant RubyGem specification")
- raise Vagrant::Errors::SourceSpecNotFound
- end
+ if self_spec
self_spec.activate
@logger.info("Activated vagrant specification version - #{self_spec.version}")
+ end
end
# discover all the gems we have available
list = {}

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,36 +1,53 @@
%global bashcompletion_dir %(pkg-config --variable=completionsdir bash-completion 2> /dev/null || :)
%global vagrant_spec_commit abfc34474d122235d56e4c6b6fb5d3e35bedfa90
%global vagrant_spec_commit a88825f4cb254b703d0f9235667223f02ad5c600
%bcond_without help2man
%bcond_without ed25519
Name: vagrant
Version: 2.2.5
Release: 1%{?dist}
Version: 2.3.4
Release: 9%{?dist}
Summary: Build and distribute virtualized development environments
License: MIT
URL: http://vagrantup.com
Source0: https://github.com/mitchellh/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz
Source0: https://github.com/hashicorp/%{name}/archive/refs/tags/v%{version}.tar.gz
# Upstream binstub with adjusted paths, the offical way how to run vagrant
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/abfc34474d122235d56e4c6b6fb5d3e35bedfa90/vagrant-spec-abfc34474d122235d56e4c6b6fb5d3e35bedfa90.tar.gz
Source2: https://github.com/mitchellh/%{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 if vagrant is not loaded
# Do not load runtime dependencies in %%check if vagrant is not loaded
# https://github.com/hashicorp/vagrant/pull/10945
Patch1: vagrant-2.2.5-do-not-load-dependencies.patch
Patch1: vagrant-2.2.9-do-not-load-dependencies.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.
%{?load:%{SOURCE4}}
%{load:%{SOURCE4}}
Requires: ruby(release)
Requires: ruby(rubygems) >= 1.3.6
@ -38,24 +55,34 @@ Requires: ruby(rubygems) >= 1.3.6
Requires: ruby
Requires: rubygem(hashicorp-checkpoint) >= 0.1.5
Requires: rubygem(childprocess) >= 0.5.0
Requires: rubygem(erubis) >= 2.7.0
Requires: rubygem(i18n) >= 1.1.0
Requires: rubygem(erubi)
Requires: (rubygem(i18n) >= 1.8 with rubygem(i18n) < 2.0)
Requires: rubygem(json)
Requires: rubygem(listen) >= 3.1.5
Requires: (rubygem(listen) >= 3.2 with rubygem(listen) < 4)
Requires: rubygem(log4r) >= 1.1.9
Requires: rubygem(net-ssh) >= 5.1.0
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: rubygem(ed25519)
Recommends: (podman-docker if podman)
Requires(pre): shadow-utils
%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
BuildRequires: ruby
@ -68,27 +95,26 @@ BuildRequires: rubygem(net-ssh)
BuildRequires: rubygem(net-scp)
BuildRequires: rubygem(i18n)
BuildRequires: rubygem(json)
BuildRequires: rubygem(erubis)
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 ! %{without help2man}
%if %{with help2man}
BuildRequires: help2man
%endif
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.
@ -109,10 +135,6 @@ Documentation for %{name}.
%prep
%setup -q -b2
%patch0 -p1
%patch1 -p1
%build
# TODO: package vagrant_cloud, as it is not in Fedora yet
%gemspec_remove_dep -s %{name}.gemspec -g vagrant_cloud
@ -122,9 +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 childprocess '~> 0.6.0'
%gemspec_add_dep -s %{name}.gemspec -g childprocess '>= 0.5.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 '~> 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
@ -135,19 +170,55 @@ sed -i '/^\s*command(:login) do$/,/\s*end$/ s/^/#/g' plugins/commands/login/plug
# Remove BSD dependency
%gemspec_remove_dep -s %{name}.gemspec -g rb-kqueue
# Do not impose any Ruby version restrictions on Fedora.
%gemspec_remove_dep -s %{name}.gemspec -g ruby_dep
# Allow older childprocess version
%gemspec_remove_dep -s %{name}.gemspec -g childprocess
%gemspec_add_dep -s %{name}.gemspec -g childprocess '>= 1.0.1'
# Allow older rubyzip version
# TODO: remove
# https://src.fedoraproject.org/rpms/rubygem-rubyzip/pull-request/1
%gemspec_remove_dep -s %{name}.gemspec -g rubyzip '~> 1.2.2'
%gemspec_add_dep -s %{name}.gemspec -g rubyzip
# 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
%if %{without ed25519}
# Remove optional dependencies
%gemspec_remove_dep -s %{name}.gemspec -g ed25519
%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
gem install -V --local \
@ -175,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/
@ -194,17 +268,28 @@ install -d -m 755 %{buildroot}%{vagrant_plugin_conf_dir}
touch %{buildroot}%{vagrant_plugin_conf}
ln -s -t %{buildroot}%{vagrant_embedded_dir}/ %{vagrant_plugin_conf}
%if ! %{without help2man}
%if %{with help2man}
# Turn `vagrant --help` into man page.
export GEM_PATH="%{gem_dir}:%{buildroot}/usr/share/vagrant/gems"
# Needed to display help page without a warning.
export VAGRANT_INSTALLER_ENV=1
mkdir -p %{buildroot}%{_mandir}/man1
help2man --no-discard-stderr -N -s1 -o %{buildroot}%{_mandir}/man1/%{name}.1 \
help2man -N -s1 -o %{buildroot}%{_mandir}/man1/%{name}.1 \
%{buildroot}/usr/share/%{name}/gems/gems/%{name}-%{version}/bin/%{name} || \
%{buildroot}/usr/share/%{name}/gems/gems/%{name}-%{version}/bin/%{name}
%endif
%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
sed -i '/^\s*it "should init the bundler instance with plugins" do$/,/^ end$/ s/^/#/' \
test/unit/vagrant/plugin/manager_test.rb
# Adjust the vagrant-spec directory name.
rm -rf ../vagrant-spec
mv ../vagrant-spec{-%{vagrant_spec_commit},}
@ -235,19 +320,57 @@ mv test/unit/vagrant/util/env_test.rb{,.disable}
# vagrant_cloud is not in Fedora yet; login command is deprecated
# in favor of vagrant_cloud
rm -r test/unit/plugins/commands/{cloud,login}/
# 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
rm -r test/unit/plugins/commands/cloud/
# 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
# Rake solves the requires issues for tests
rake -f tasks/test.rake test:unit
# Remove failing BSD-host tests, as we don't care about those.
rm -rf test/unit/plugins/hosts/bsd
# 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"]')}
RUBYOPT="-I"
for module in \
openssl \
psych
do
for dir in \
%{gem_dir}/gems/$module-*/lib \
%{buildtime_libdir}/gems/ruby/$module-*
do
RUBYOPT="$RUBYOPT:$dir"
done
done
export RUBYOPT
# Rake solves the requires issues for tests
rake -f tasks/test.rake test:unit \
| tee error.log
%if %{with help2man}
# Check `--help` output, using which man page is created
export GEM_PATH="%{gem_dir}:%{buildroot}/usr/share/vagrant/gems"
export VAGRANT_INSTALLER_ENV=1
%{buildroot}/usr/share/%{name}/gems/gems/%{name}-%{version}/bin/%{name} --help 2>/dev/null \
| grep -q '^Usage: vagrant '
%endif
%post -p %{_bindir}/ruby
begin
@ -317,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
@ -328,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
@ -345,7 +479,13 @@ 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*
%endif
%files doc
%doc %{vagrant_plugin_instdir}/RELEASE.md
@ -354,11 +494,119 @@ end
%{vagrant_plugin_instdir}/Rakefile
%{vagrant_plugin_instdir}/tasks
%{vagrant_plugin_instdir}/vagrant-spec.config.example.rb
%if ! %{without help2man}
%{_mandir}/man1/%{name}.1*
%endif
%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
* Fri Apr 16 2021 Pavel Valena <pvalena@redhat.com> - 2.2.16-1
- Update to Vagrant 2.2.16.
Resolves: rhbz#1872307
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.9-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jan 20 2021 Vít Ondruch <vondruch@redhat.com> - 2.2.9-5
- Fix Ruby 3.0 and rspec-mock 3.10.1 compatibility.
- Relax net-ssh dependency.
- Relax Ruby version restriction.
Resolves: rhbz#1915671
* Mon Aug 17 2020 Vít Ondruch <vondruch@redhat.com> - 2.2.9-4
- Use Erubi instead of Erubis.
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.9-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed May 20 2020 Pavel Valena <pvalena@redhat.com> - 2.2.9-2
- Move dependency load map_command_options
for creating @box_extra_download_options to config/vm.rb.
https://github.com/hashicorp/vagrant/pull/11609
* Mon May 11 2020 Pavel Valena <pvalena@redhat.com> - 2.2.9-1
- Update to Vagrant 2.2.9.
Resolves: rhbz#1795460
- Added support for podman via docker podman-docker wrapper
(https://github.com/hashicorp/vagrant/pull/11356).
* Tue Apr 21 2020 Vít Ondruch <vondruch@redhat.com> - 2.2.6-4
- Relax rubygem-net-ssh dependency.
Resolves: rhbz#1805240
- Fix FTBFS due to Ruby 2.7.
Resolves: rhbz#1800230
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Oct 15 2019 Pavel Valena <pvalena@redhat.com> - 2.2.6-1
- Upgrade to Vagrant 2.2.6.
- Move man pages to main package
* Wed Aug 14 2019 Pavel Valena <pvalena@redhat.com> - 2.2.5-1
- Update to Vagrant 2.2.5.