diff options
Diffstat (limited to 'packages/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch')
| -rw-r--r-- | packages/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch | 349 | 
1 files changed, 0 insertions, 349 deletions
| diff --git a/packages/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch b/packages/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch deleted file mode 100644 index ae0b3f3..0000000 --- a/packages/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch +++ /dev/null @@ -1,349 +0,0 @@ -From dc7156d8951242231cfd9142b3d5628815dc6589 Mon Sep 17 00:00:00 2001 -From: Maximilian Bosch <maximilian@mbosch.me> -Date: Wed, 31 Mar 2021 14:30:01 +0200 -Subject: [PATCH] Revert "Merge pull request #12225 from - chrisroberts/resolution-isolation" - -This reverts commit 8a69d0c4dae035a4b1aa789bc4ec3db69c210df2, reversing -changes made to 5dd0a8c8acc36b654c13a5102e4327eedf1858f2. - ------ - -Rationale: NixOS-specific patch. The changes in here break our current -implementation of declarative plugins (only `vagrant-libvirt` atm). ---- - bin/vagrant                       | 28 +-------------- - lib/vagrant.rb                    |  2 +- - lib/vagrant/bundler.rb            | 17 +++------ - lib/vagrant/errors.rb             | 12 ------- - lib/vagrant/plugin/manager.rb     | 22 ++---------- - templates/locales/en.yml          | 23 ++---------- - test/unit/bin/vagrant_test.rb     |  1 - - test/unit/vagrant/bundler_test.rb | 58 ++++++++++++++----------------- - 8 files changed, 39 insertions(+), 124 deletions(-) - -diff --git a/bin/vagrant b/bin/vagrant -index c019f30ff..ba7e40076 100755 ---- a/bin/vagrant -+++ b/bin/vagrant -@@ -23,9 +23,9 @@ if idx = argv.index("--") -   argv = argv.slice(0, idx) - end -  --require_relative "../lib/vagrant/version" - # Fast path the version of Vagrant - if argv.include?("-v") || argv.include?("--version") -+  require_relative "../lib/vagrant/version" -   puts "Vagrant #{Vagrant::VERSION}" -   exit 0 - end -@@ -82,29 +82,6 @@ end - $stdout.sync = true - $stderr.sync = true -  --# Before we start activate all our dependencies --# so we can provide correct resolutions later --builtin_specs = [] -- --vagrant_spec = Gem::Specification.find_all_by_name("vagrant").detect do |spec| --  spec.version == Gem::Version.new(Vagrant::VERSION) --end -- --dep_activator = proc do |spec| --  spec.runtime_dependencies.each do |dep| --    gem(dep.name, *dep.requirement.as_list) --    dep_spec = Gem::Specification.find_all_by_name(dep.name).detect(&:activated?) --    if dep_spec --      builtin_specs << dep_spec --      dep_activator.call(dep_spec) --    end --  end --end -- --if vagrant_spec --  dep_activator.call(vagrant_spec) --end -- - env = nil - begin -   require 'log4r' -@@ -114,9 +91,6 @@ begin -   require 'vagrant/util/platform' -   require 'vagrant/util/experimental' -  --  # Set our list of builtin specs --  Vagrant::Bundler.instance.builtin_specs = builtin_specs -- -   # Schedule the cleanup of things -   at_exit(&Vagrant::Bundler.instance.method(:deinit)) -  -diff --git a/lib/vagrant.rb b/lib/vagrant.rb -index f790039d3..97e67e3b8 100644 ---- a/lib/vagrant.rb -+++ b/lib/vagrant.rb -@@ -59,7 +59,7 @@ require "vagrant/plugin/manager" - # See https://github.com/rest-client/rest-client/issues/34#issuecomment-290858 - # for more information - class VagrantLogger < Log4r::Logger --  def << msg -+  def << (msg) -     debug(msg.strip) -   end - end -diff --git a/lib/vagrant/bundler.rb b/lib/vagrant/bundler.rb -index eb2caabb0..d75f54362 100644 ---- a/lib/vagrant/bundler.rb -+++ b/lib/vagrant/bundler.rb -@@ -189,11 +189,8 @@ module Vagrant -     attr_reader :env_plugin_gem_path -     # @return [Pathname] Vagrant environment data path -     attr_reader :environment_data_path --    # @return [Array<Gem::Specification>, nil] List of builtin specs --    attr_accessor :builtin_specs -  -     def initialize --      @builtin_specs = [] -       @plugin_gem_path = Vagrant.user_data_path.join("gems", RUBY_VERSION).freeze -       @logger = Log4r::Logger.new("vagrant::bundler") -     end -@@ -290,6 +287,7 @@ module Vagrant -         # Never allow dependencies to be remotely satisfied during init -         request_set.remote = false -  -+        repair_result = nil -         begin -           @logger.debug("resolving solution from available specification set") -           # Resolve the request set to ensure proper activation order -@@ -652,6 +650,7 @@ module Vagrant -         self_spec.activate -         @logger.info("Activated vagrant specification version - #{self_spec.version}") -       end -+      self_spec.runtime_dependencies.each { |d| gem d.name, *d.requirement.as_list } -       # discover all the gems we have available -       list = {} -       if Gem.respond_to?(:default_specifications_dir) -@@ -660,16 +659,10 @@ module Vagrant -         spec_dir = Gem::Specification.default_specifications_dir -       end -       directories = [spec_dir] --      if Vagrant.in_bundler? --        Gem::Specification.find_all{true}.each do |spec| --          list[spec.full_name] = spec --        end --      else --        builtin_specs.each do |spec| --          list[spec.full_name] = spec --        end -+      Gem::Specification.find_all{true}.each do |spec| -+        list[spec.full_name] = spec -       end --      if Vagrant.in_installer? -+      if(!Object.const_defined?(:Bundler)) -         directories += Gem::Specification.dirs.find_all do |path| -           !path.start_with?(Gem.user_dir) -         end -diff --git a/lib/vagrant/errors.rb b/lib/vagrant/errors.rb -index 5cb861c06..782615bc4 100644 ---- a/lib/vagrant/errors.rb -+++ b/lib/vagrant/errors.rb -@@ -636,18 +636,6 @@ module Vagrant -       error_key(:provisioner_winrm_unsupported) -     end -  --    class PluginNeedsDeveloperTools < VagrantError --      error_key(:plugin_needs_developer_tools) --    end -- --    class PluginMissingLibrary < VagrantError --      error_key(:plugin_missing_library) --    end -- --    class PluginMissingRubyDev < VagrantError --      error_key(:plugin_missing_ruby_dev) --    end -- -     class PluginGemNotFound < VagrantError -       error_key(:plugin_gem_not_found) -     end -diff --git a/lib/vagrant/plugin/manager.rb b/lib/vagrant/plugin/manager.rb -index b73f07f9c..9058e68b3 100644 ---- a/lib/vagrant/plugin/manager.rb -+++ b/lib/vagrant/plugin/manager.rb -@@ -179,26 +179,8 @@ module Vagrant -         result -       rescue Gem::GemNotFoundException -         raise Errors::PluginGemNotFound, name: name --      rescue Gem::Exception => err --        @logger.warn("Failed to install plugin: #{err}") --        @logger.debug("#{err.class}: #{err}\n#{err.backtrace.join("\n")}") --        # Try and determine a cause for the failure --        case err.message --        when /install development tools first/ --          raise Errors::PluginNeedsDeveloperTools --        when /library not found in default locations/ --          lib = err.message.match(/(\w+) library not found in default locations/) --          if lib.nil? --            raise Errors::BundlerError, message: err.message --          end --          raise Errors::PluginMissingLibrary, --            library: lib.captures.first, --            name: name --        when /find header files for ruby/ --          raise Errors::PluginMissingRubyDev --        else --          raise Errors::BundlerError, message: err.message --        end -+      rescue Gem::Exception => e -+        raise Errors::BundlerError, message: e.to_s -       end -  -       # Uninstalls the plugin with the given name. -diff --git a/templates/locales/en.yml b/templates/locales/en.yml -index edae9b477..782904f49 100644 ---- a/templates/locales/en.yml -+++ b/templates/locales/en.yml -@@ -794,9 +794,9 @@ en: -         matching this provider. For example, if you're using VirtualBox, -         the clone environment must also be using VirtualBox. -       cloud_init_not_found: |- --        cloud-init is not found. Please ensure that cloud-init is installed and -+        cloud-init is not found. Please ensure that cloud-init is installed and  -         available on path for guest '%{guest_name}'. --      cloud_init_command_failed: |- -+      cloud_init_command_failed: |-  -         cloud init command '%{cmd}' failed on guest '%{guest_name}'. -       command_deprecated: |- -         The command 'vagrant %{name}' has been deprecated and is no longer functional -@@ -1245,30 +1245,6 @@ en: -         following command: -  -           vagrant plugin install --local --      plugin_needs_developer_tools: |- --        Vagrant failed to install the requested plugin because development tools --        are required for installation but are not currently installed on this --        machine. Please install development tools and then try this command --        again. --      plugin_missing_library: |- --        Vagrant failed to install the requested plugin because it depends --        on development files for a library which is not currently installed --        on this system. The following library is required by the '%{name}' --        plugin: -- --          %{library} -- --        If a package manager is used on this system, please install the development --        package for the library. The name of the package will be similar to: -- --          %{library}-dev or %{library}-devel -- --        After the library and development files have been installed, please --        run the command again. --      plugin_missing_ruby_dev: |- --        Vagrant failed to install the requested plugin because the Ruby header --        files could not be found. Install the ruby development package for your --        system and then run this command again. -       powershell_not_found: |- -         Failed to locate the powershell executable on the available PATH. Please -         ensure powershell is installed and available on the local PATH, then -@@ -3015,7 +2998,7 @@ en: -     pushes: -       file: -         no_destination: "File destination must be specified." -- -+     -     autocomplete: -       installed: |- -         Autocomplete installed at paths: -diff --git a/test/unit/bin/vagrant_test.rb b/test/unit/bin/vagrant_test.rb -index dbbd52112..bc11309aa 100644 ---- a/test/unit/bin/vagrant_test.rb -+++ b/test/unit/bin/vagrant_test.rb -@@ -30,7 +30,6 @@ describe "vagrant bin" do -     allow(Kernel).to receive(:exit) -     allow(Vagrant::Environment).to receive(:new).and_return(env) -     allow(Vagrant).to receive(:in_installer?).and_return(true) --    allow(self).to receive(:require_relative) -   end -  -   after { expect(run_vagrant).to eq(exit_code) } -diff --git a/test/unit/vagrant/bundler_test.rb b/test/unit/vagrant/bundler_test.rb -index 69f425c66..00cedc021 100644 ---- a/test/unit/vagrant/bundler_test.rb -+++ b/test/unit/vagrant/bundler_test.rb -@@ -778,46 +778,42 @@ describe Vagrant::Bundler do -       end -     end -  --    context "when bundler is not defined" do --      before { expect(Vagrant).to receive(:in_bundler?).and_return(false) } -+    context "when run time dependencies are defined" do -+      let(:vagrant_dep_specs) { [double("spec", name: "vagrant-dep", requirement: double("spec-req", as_list: []))] } -  --      context "when running inside the installer" do --        before { expect(Vagrant).to receive(:in_installer?).and_return(true) } -+      it "should call #gem to activate the dependencies" do -+        expect(subject).to receive(:gem).with("vagrant-dep", any_args) -+        subject.send(:vagrant_internal_specs) -+      end -+    end -  --        it "should load gem specification directories" do --          expect(Gem::Specification).to receive(:dirs).and_return(spec_dirs) --          subject.send(:vagrant_internal_specs) --        end -+    context "when bundler is not defined" do -+      before { expect(Object).to receive(:const_defined?).with(:Bundler).and_return(false) } -  --        context "when checking paths" do --          let(:spec_dirs) { [double("spec-dir", start_with?: in_user_dir)] } --          let(:in_user_dir) { true } --          let(:user_dir) { double("user-dir") } -+      it "should load gem specification directories" do -+        expect(Gem::Specification).to receive(:dirs).and_return(spec_dirs) -+        subject.send(:vagrant_internal_specs) -+      end -  --          before { allow(Gem).to receive(:user_dir).and_return(user_dir) } -+      context "when checking paths" do -+        let(:spec_dirs) { [double("spec-dir", start_with?: in_user_dir)] } -+        let(:in_user_dir) { true } -+        let(:user_dir) { double("user-dir") } -  --          it "should check if path is within local user directory" do --            expect(spec_dirs.first).to receive(:start_with?).with(user_dir).and_return(false) --            subject.send(:vagrant_internal_specs) --          end -- --          context "when path is not within user directory" do --            let(:in_user_dir) { false } -+        before { allow(Gem).to receive(:user_dir).and_return(user_dir) } -  --            it "should use path when loading specs" do --              expect(Gem::Specification).to receive(:each_spec) { |arg| expect(arg).to include(spec_dirs.first) } --              subject.send(:vagrant_internal_specs) --            end --          end -+        it "should check if path is within local user directory" do -+          expect(spec_dirs.first).to receive(:start_with?).with(user_dir).and_return(false) -+          subject.send(:vagrant_internal_specs) -         end --      end -  --      context "when running outside the installer" do --        before { expect(Vagrant).to receive(:in_installer?).and_return(false) } -+        context "when path is not within user directory" do -+          let(:in_user_dir) { false } -  --        it "should not load gem specification directories" do --          expect(Gem::Specification).not_to receive(:dirs) --          subject.send(:vagrant_internal_specs) -+          it "should use path when loading specs" do -+            expect(Gem::Specification).to receive(:each_spec) { |arg| expect(arg).to include(spec_dirs.first) } -+            subject.send(:vagrant_internal_specs) -+          end -         end -       end -     end ---  -2.29.3 - | 
