summaryrefslogtreecommitdiff
path: root/packages/vagrant/0004-Support-system-installed-plugins.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/vagrant/0004-Support-system-installed-plugins.patch')
-rw-r--r--packages/vagrant/0004-Support-system-installed-plugins.patch93
1 files changed, 0 insertions, 93 deletions
diff --git a/packages/vagrant/0004-Support-system-installed-plugins.patch b/packages/vagrant/0004-Support-system-installed-plugins.patch
deleted file mode 100644
index fa6555c..0000000
--- a/packages/vagrant/0004-Support-system-installed-plugins.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From: Antonio Terceiro <terceiro@debian.org>
-Date: Wed, 27 May 2015 09:36:17 -0300
-Subject: Support system-installed plugins
-Source: https://salsa.debian.org/ruby-team/vagrant/-/blob/9d86f222/debian/patches/0004-Support-system-installed-plugins.patch
-
-Plugins must be installed as regular Ruby libraries, and they must
-contain /usr/share/vagrant-plugins/plugins.d/$PLUGINNAME.json with the
-following content:
-
-{
- "${PLUGINNAME}": {
- "ruby_version":"$(ruby -e 'puts RUBY_VERSION')",
- "vagrant_version":"$(cat /usr/share/vagrant/version.txt)",
- "gem_version":"",
- "require":"",
- "sources":[]
- }
-}
----
- lib/vagrant/plugin/manager.rb | 4 ++--
- lib/vagrant/plugin/state_file.rb | 22 +++++++++++++++++++++-
- 2 files changed, 23 insertions(+), 3 deletions(-)
-
-diff --git a/lib/vagrant/plugin/manager.rb b/lib/vagrant/plugin/manager.rb
-index 9058e68..2772131 100644
---- a/lib/vagrant/plugin/manager.rb
-+++ b/lib/vagrant/plugin/manager.rb
-@@ -18,7 +18,7 @@ module Vagrant
-
- # Returns the path to the [StateFile] for system plugins.
- def self.system_plugins_file
-- dir = Vagrant.installer_embedded_dir
-+ dir = '@system_plugin_dir@'
- return nil if !dir
- Pathname.new(dir).join("plugins.json")
- end
-@@ -38,7 +38,7 @@ module Vagrant
-
- system_path = self.class.system_plugins_file
- @system_file = nil
-- @system_file = StateFile.new(system_path) if system_path && system_path.file?
-+ @system_file = StateFile.new(system_path, true) if system_path && system_path.file?
-
- @local_file = nil
- @globalized = @localized = false
-diff --git a/lib/vagrant/plugin/state_file.rb b/lib/vagrant/plugin/state_file.rb
-index c6872d4..935d431 100644
---- a/lib/vagrant/plugin/state_file.rb
-+++ b/lib/vagrant/plugin/state_file.rb
-@@ -11,8 +11,9 @@ module Vagrant
- # @return [Pathname] path to file
- attr_reader :path
-
-- def initialize(path)
-+ def initialize(path, system = false)
- @path = path
-+ @system = system
-
- @data = {}
- if @path.exist?
-@@ -28,6 +29,21 @@ module Vagrant
-
- @data["version"] ||= "1"
- @data["installed"] ||= {}
-+ load_extra_plugins
-+ end
-+
-+ def load_extra_plugins
-+ extra_plugins = Dir.glob(@path.dirname.join('plugins.d', '*.json'))
-+ extra_plugins.each do |filename|
-+ json = File.read(filename)
-+ begin
-+ plugin_data = JSON.parse(json)
-+ @data["installed"].merge!(plugin_data)
-+ rescue JSON::ParserError => e
-+ raise Vagrant::Errors::PluginStateFileParseError,
-+ path: filename, message: e.message
-+ end
-+ end
- end
-
- # Add a plugin that is installed to the state file.
-@@ -107,6 +123,10 @@ module Vagrant
- f.close
- FileUtils.mv(f.path, @path)
- end
-+ rescue Errno::EACCES
-+ # Ignore permission denied against system-installed plugins; regular
-+ # users are not supposed to write there.
-+ raise unless @system
- end
-
- protected