diff options
Diffstat (limited to '')
| -rw-r--r-- | packages/vagrant/0004-Support-system-installed-plugins.patch | 93 |
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 |
