From f8a97e75f066d571afdb2a18ce4fe6ee6f2fbfe3 Mon Sep 17 00:00:00 2001 From: Jarek Prokop Date: Mar 03 2022 10:18:51 +0000 Subject: 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. --- diff --git a/vagrant-2.2.19-fix-3.1-compatibility.patch b/vagrant-2.2.19-fix-3.1-compatibility.patch new file mode 100644 index 0000000..2056f71 --- /dev/null +++ b/vagrant-2.2.19-fix-3.1-compatibility.patch @@ -0,0 +1,72 @@ +From 2b1c25d247aba492e582a01cff8ecdd33d4d165b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= +Date: Mon, 28 Feb 2022 10:46:17 +0100 +Subject: [PATCH 1/2] Stop using the last argument as kwargs in unit tests + +A few unit tests started failing with Ruby 3.0, because they were relying on +keyword arguments being converted into hashes automatically. This behavior was +deprecated in Ruby 2.7 and results in errors in Ruby 3.0 onward. + +For further details: +https://rubyreferences.github.io/rubychanges/3.0.html#keyword-arguments-are-now-fully-separated-from-positional-arguments +--- + test/unit/plugins/commands/package/command_test.rb | 4 ++-- + .../plugins/providers/hyperv/action/read_guest_ip_test.rb | 2 +- + test/unit/vagrant/ui_test.rb | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/test/unit/plugins/commands/package/command_test.rb b/test/unit/plugins/commands/package/command_test.rb +index 7b289bd1e3a..d0f81393bf6 100644 +--- a/test/unit/plugins/commands/package/command_test.rb ++++ b/test/unit/plugins/commands/package/command_test.rb +@@ -64,7 +64,7 @@ + + it "packages default machine inside specified folder" do + expect(package_command).to receive(:package_vm).with( +- a_machine_named('default'), :output => "package-output-folder/default" ++ a_machine_named('default'), { output: "package-output-folder/default" } + ) + package_command.execute + end +@@ -96,7 +96,7 @@ + let(:argv){ ['--base', 'machine-id'] } + + it "packages vm defined within virtualbox" do +- expect(package_command).to receive(:package_base).with(:base => 'machine-id') ++ expect(package_command).to receive(:package_base).with({ base: 'machine-id' }) + package_command.execute + end + +diff --git a/test/unit/plugins/providers/hyperv/action/read_guest_ip_test.rb b/test/unit/plugins/providers/hyperv/action/read_guest_ip_test.rb +index 5642c6271f1..ecce003a602 100644 +--- a/test/unit/plugins/providers/hyperv/action/read_guest_ip_test.rb ++++ b/test/unit/plugins/providers/hyperv/action/read_guest_ip_test.rb +@@ -31,7 +31,7 @@ + end + + it "should set the host information into the env" do +- expect(env).to receive(:[]=).with(:machine_ssh_info, host: "ADDRESS") ++ expect(env).to receive(:[]=).with(:machine_ssh_info, { host: "ADDRESS" }) + expect(driver).to receive(:read_guest_ip).and_return("ip" => "ADDRESS") + subject.call(env) + end +diff --git a/test/unit/vagrant/ui_test.rb b/test/unit/vagrant/ui_test.rb +index e484b81543b..120b1dda2a6 100644 +--- a/test/unit/vagrant/ui_test.rb ++++ b/test/unit/vagrant/ui_test.rb +@@ -379,12 +379,12 @@ + + describe "#machine" do + it "sets the target option" do +- expect(ui).to receive(:machine).with(:foo, target: prefix) ++ expect(ui).to receive(:machine).with(:foo, { target: prefix }) + subject.machine(:foo) + end + + it "preserves existing options" do +- expect(ui).to receive(:machine).with(:foo, :bar, foo: :bar, target: prefix) ++ expect(ui).to receive(:machine).with(:foo, :bar, { foo: :bar, target: prefix }) + subject.machine(:foo, :bar, foo: :bar) + end + end + diff --git a/vagrant.spec b/vagrant.spec index c55507c..d6c9ad7 100644 --- a/vagrant.spec +++ b/vagrant.spec @@ -7,7 +7,7 @@ Name: vagrant Version: 2.2.19 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Build and distribute virtualized development environments License: MIT URL: http://vagrantup.com @@ -28,6 +28,9 @@ 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 +# Fix spec test suite for new rspec-mocks. +# https://github.com/hashicorp/vagrant/pull/12699 +Patch2: vagrant-2.2.19-fix-3.1-compatibility.patch # The load directive is supported since RPM 4.12, i.e. F21+. The build process # fails on older Fedoras. @@ -49,6 +52,7 @@ 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: bsdtar Requires: curl @@ -84,6 +88,8 @@ BuildRequires: rubygem(thor) BuildRequires: rubygem(webmock) BuildRequires: rubygem(webrick) BuildRequires: rubygem(fake_ftp) +BuildRequires: rubygem(rake) +BuildRequires: rubygem(net-ftp) BuildRequires: pkgconfig(bash-completion) %if %{with help2man} BuildRequires: help2man @@ -117,6 +123,7 @@ Documentation for %{name}. %setup -q -b2 %patch0 -p1 +%patch2 -p1 # TODO: package vagrant_cloud, as it is not in Fedora yet %gemspec_remove_dep -s %{name}.gemspec -g vagrant_cloud @@ -487,6 +494,9 @@ end %{vagrant_plugin_instdir}/vagrant-spec.config.example.rb %changelog +* Mon Feb 21 2022 Jarek Prokop - 2.2.19-3 +- Fix FTBFS due to new rspec-mocks. + * Sat Jan 22 2022 Fedora Release Engineering - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild