summaryrefslogtreecommitdiff
path: root/packages/vagrant
diff options
context:
space:
mode:
Diffstat (limited to 'packages/vagrant')
-rw-r--r--packages/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch349
-rw-r--r--packages/vagrant/0004-Support-system-installed-plugins.patch93
-rw-r--r--packages/vagrant/default.nix122
-rw-r--r--packages/vagrant/gemset.nix652
-rw-r--r--packages/vagrant/gemset_libvirt.nix199
-rw-r--r--packages/vagrant/unofficial-installation-nowarn.patch16
-rw-r--r--packages/vagrant/use-system-bundler-version.patch13
-rw-r--r--packages/vagrant/vagrant-libvirt.json.in9
8 files changed, 1453 insertions, 0 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
new file mode 100644
index 0000000..ae0b3f3
--- /dev/null
+++ b/packages/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch
@@ -0,0 +1,349 @@
+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
+
diff --git a/packages/vagrant/0004-Support-system-installed-plugins.patch b/packages/vagrant/0004-Support-system-installed-plugins.patch
new file mode 100644
index 0000000..fa6555c
--- /dev/null
+++ b/packages/vagrant/0004-Support-system-installed-plugins.patch
@@ -0,0 +1,93 @@
+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
diff --git a/packages/vagrant/default.nix b/packages/vagrant/default.nix
new file mode 100644
index 0000000..d8a8777
--- /dev/null
+++ b/packages/vagrant/default.nix
@@ -0,0 +1,122 @@
+{ stdenv, lib, fetchurl, buildRubyGem, bundlerEnv, ruby, libarchive
+, libguestfs, qemu, writeText, withLibvirt ? stdenv.isLinux
+, openssl
+}:
+
+let
+ # NOTE: bumping the version and updating the hash is insufficient;
+ # you must use bundix to generate a new gemset.nix in the Vagrant source.
+ version = "2.4.1";
+ url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
+ hash = "sha256-Gc+jBuP/rl3b8wUE9hoaMSSqmodyGxMKFAmNTqH+v4k=";
+
+ deps = bundlerEnv rec {
+ name = "${pname}-${version}";
+ pname = "vagrant";
+ inherit version;
+
+ inherit ruby;
+ gemfile = writeText "Gemfile" "";
+ lockfile = writeText "Gemfile.lock" "";
+ gemset = lib.recursiveUpdate (import ./gemset.nix) ({
+ vagrant = {
+ source = {
+ type = "url";
+ inherit url hash;
+ };
+ inherit version;
+ };
+ } // lib.optionalAttrs withLibvirt (import ./gemset_libvirt.nix));
+
+ # This replaces the gem symlinks with directories, resolving this
+ # error when running vagrant (I have no idea why):
+ # /nix/store/p4hrycs0zaa9x0gsqylbk577ppnryixr-vagrant-2.2.6/lib/ruby/gems/2.6.0/gems/i18n-1.1.1/lib/i18n/config.rb:6:in `<module:I18n>': uninitialized constant I18n::Config (NameError)
+ postBuild = ''
+ for gem in "$out"/lib/ruby/gems/*/gems/*; do
+ cp -a "$gem/" "$gem.new"
+ rm "$gem"
+ # needed on macOS, otherwise the mv yields permission denied
+ chmod +w "$gem.new"
+ mv "$gem.new" "$gem"
+ done
+ '';
+ };
+
+in buildRubyGem rec {
+ name = "${gemName}-${version}";
+ gemName = "vagrant";
+ inherit version;
+
+ doInstallCheck = true;
+ dontBuild = false;
+ src = fetchurl { inherit url hash; };
+
+ # Some reports indicate that some connection types, particularly
+ # WinRM, suffer from "Digest initialization failed" errors. Adding
+ # openssl as a build input resolves this runtime error.
+ buildInputs = [ openssl ];
+
+ patches = [
+ ./unofficial-installation-nowarn.patch
+ ./use-system-bundler-version.patch
+ ./0004-Support-system-installed-plugins.patch
+ ./0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace lib/vagrant/plugin/manager.rb --subst-var-by \
+ system_plugin_dir "$out/vagrant-plugins"
+ '';
+
+ # PATH additions:
+ # - libarchive: Make `bsdtar` available for extracting downloaded boxes
+ # withLibvirt only:
+ # - libguestfs: Make 'virt-sysprep' available for 'vagrant package'
+ # - qemu: Make 'qemu-img' available for 'vagrant package'
+ postInstall =
+ let
+ pathAdditions = lib.makeSearchPath "bin"
+ (map (x: lib.getBin x) ([
+ libarchive
+ ] ++ lib.optionals withLibvirt [
+ libguestfs
+ qemu
+ ]));
+ in ''
+ wrapProgram "$out/bin/vagrant" \
+ --set GEM_PATH "${deps}/lib/ruby/gems/${ruby.version.libDir}" \
+ --prefix PATH ':' ${pathAdditions} \
+ --set-default VAGRANT_CHECKPOINT_DISABLE 1
+
+ mkdir -p "$out/vagrant-plugins/plugins.d"
+ echo '{}' > "$out/vagrant-plugins/plugins.json"
+
+ # install bash completion
+ mkdir -p $out/share/bash-completion/completions/
+ cp -av contrib/bash/completion.sh $out/share/bash-completion/completions/vagrant
+ # install zsh completion
+ mkdir -p $out/share/zsh/site-functions/
+ cp -av contrib/zsh/_vagrant $out/share/zsh/site-functions/
+ '' +
+ lib.optionalString withLibvirt ''
+ substitute ${./vagrant-libvirt.json.in} $out/vagrant-plugins/plugins.d/vagrant-libvirt.json \
+ --subst-var-by ruby_version ${ruby.version} \
+ --subst-var-by vagrant_version ${version}
+ '';
+
+ installCheckPhase = ''
+ HOME="$(mktemp -d)" $out/bin/vagrant init --output - > /dev/null
+ '';
+
+ passthru = {
+ inherit ruby deps;
+ };
+
+ meta = with lib; {
+ description = "A tool for building complete development environments";
+ homepage = "https://www.vagrantup.com/";
+ license = licenses.bsl11;
+ maintainers = with maintainers; [ tylerjl ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/packages/vagrant/gemset.nix b/packages/vagrant/gemset.nix
new file mode 100644
index 0000000..d69322b
--- /dev/null
+++ b/packages/vagrant/gemset.nix
@@ -0,0 +1,652 @@
+{
+ bcrypt_pbkdf = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ndamfaivnkhc6hy0yqyk2gkwr6f3bz6216lh74hsiiyk3axz445";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ bigdecimal = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00db5v09k1z3539g1zrk7vkjrln9967k08adh6qx33ng97a2gg5w";
+ type = "gem";
+ };
+ version = "3.1.6";
+ };
+ builder = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ childprocess = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lvcp8bsd35g57f7wz4jigcw2sryzzwrpcgjwwf3chmjrjcww5in";
+ type = "gem";
+ };
+ version = "4.1.0";
+ };
+ concurrent-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2";
+ type = "gem";
+ };
+ version = "1.2.3";
+ };
+ date = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "149jknsq999gnhy865n33fkk22s0r447k76x9pmcnnwldfv2q7wp";
+ type = "gem";
+ };
+ version = "3.3.4";
+ };
+ diff-lcs = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1znxccz83m4xgpd239nyqxlifdb7m8rlfayk6s259186nkgj6ci7";
+ type = "gem";
+ };
+ version = "1.5.1";
+ };
+ ed25519 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zb2dr2ihb1qiknn5iaj1ha1w9p7lj9yq5waasndlfadz225ajji";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ erubi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08s75vs9cxlc4r1q2bjg4br8g9wc5lc5x5vl0vv4zq5ivxsdpgi7";
+ type = "gem";
+ };
+ version = "1.12.0";
+ };
+ excon = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kmmwgjzlrnc3nnrdnw1z67c95nbw0hv54a73yj8jw6pcvl9585x";
+ type = "gem";
+ };
+ version = "0.109.0";
+ };
+ fake_ftp = {
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zl9q9m4x7lz9890g0h1qqj7hcxnwzpjfnfbxadjblps7b5054q4";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ ffi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
+ type = "gem";
+ };
+ version = "1.16.3";
+ };
+ google-protobuf = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mnxzcq8kmyfb9bkzqnp019d1hx1vprip3yzdkkha6b3qz5rgg9r";
+ type = "gem";
+ };
+ version = "3.25.3";
+ };
+ googleapis-common-protos-types = {
+ dependencies = ["google-protobuf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zrxnv9s2q39f2nh32x7nbfi8lpwzmmn3ji4adglg8dlfr1xrz16";
+ type = "gem";
+ };
+ version = "1.13.0";
+ };
+ grpc = {
+ dependencies = ["google-protobuf" "googleapis-common-protos-types"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ndyis4hyq5wyypvy5j2pxaax73k9xd9cdsc5hyvpk3vbnn26rdb";
+ type = "gem";
+ };
+ version = "1.56.2";
+ };
+ grpc-tools = {
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pwwsmw402y8f8l3s3v433lx1f3cahzh2bj3i6jhkg1z87z83pqm";
+ type = "gem";
+ };
+ version = "1.62.0";
+ };
+ gssapi = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qdfhj12aq8v0y961v4xv96a1y2z80h3xhvzrs9vsfgf884g6765";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ gyoku = {
+ dependencies = ["builder" "rexml"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kd2q59xpm39hpvmmvyi6g3f1fr05xjbnxwkrdqz4xy7hirqi79q";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ hashicorp-checkpoint = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1z6mwzvd7p2wqhmk07dwrhvm0ncgqm7pxn0pr2k025rwsspp9bsd";
+ type = "gem";
+ };
+ version = "0.1.5";
+ };
+ httpclient = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+ type = "gem";
+ };
+ version = "2.8.3";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
+ type = "gem";
+ };
+ version = "1.14.1";
+ };
+ ipaddr = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0p98v9b6rn5ma04qwvzs0nrg0hmnwpm70s9jshzdsrkqapcw4sh2";
+ type = "gem";
+ };
+ version = "1.2.6";
+ };
+ listen = {
+ dependencies = ["rb-fsevent" "rb-inotify"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rwwsmvq79qwzl6324yc53py02kbrcww35si720490z5w0j497nv";
+ type = "gem";
+ };
+ version = "3.9.0";
+ };
+ little-plugger = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1frilv82dyxnlg8k1jhrvyd73l6k17mxc5vwxx080r4x1p04gwym";
+ type = "gem";
+ };
+ version = "1.1.4";
+ };
+ log4r = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ri90q0frfmigkirqv5ihyrj59xm8pq5zcmf156cbdv4r4l2jicv";
+ type = "gem";
+ };
+ version = "1.1.10";
+ };
+ logging = {
+ dependencies = ["little-plugger" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zflchpx4g8c110gjdcs540bk5a336nq6nmx379rdg56xw0pjd02";
+ type = "gem";
+ };
+ version = "2.3.1";
+ };
+ mime-types = {
+ dependencies = ["mime-types-data"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r64z0m5zrn4k37wabfnv43wa6yivgdfk6cf2rpmmirlz889yaf1";
+ type = "gem";
+ };
+ version = "3.5.2";
+ };
+ mime-types-data = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zpn5brxdf5akh7ij511bkrd30fxd7697shmxxszahqj9m62zvn5";
+ type = "gem";
+ };
+ version = "3.2024.0206";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
+ type = "gem";
+ };
+ version = "1.15.0";
+ };
+ net-ftp = {
+ dependencies = ["net-protocol" "time"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pi67ywf8yvv18vr8kvyb1igdv8nsjafyy9c86fny5wvi10qcwqv";
+ type = "gem";
+ };
+ version = "0.3.4";
+ };
+ net-protocol = {
+ dependencies = ["timeout"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa";
+ type = "gem";
+ };
+ version = "0.2.2";
+ };
+ net-scp = {
+ dependencies = ["net-ssh"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1si2nq9l6jy5n2zw1q59a5gaji7v9vhy8qx08h4fg368906ysbdk";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+ net-sftp = {
+ dependencies = ["net-ssh"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r33aa2d61hv1psm0l0mm6ik3ycsnq8symv7h84kpyf2b7493fv5";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+ net-ssh = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1i01340c4i144vvn3x54lc2rb77ch829qipl1rh6rqwm3yxzml9w";
+ type = "gem";
+ };
+ version = "7.2.1";
+ };
+ nori = {
+ dependencies = ["bigdecimal"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12wfv36jzc0978ij5c56nnfh5k8ax574njawigs98ysmp1x5s2ql";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ pairing_heap = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "059kqpw53cancnp0bp7y1s74y1955riw33w3lqfbnms4b4mdh5zj";
+ type = "gem";
+ };
+ version = "3.1.0";
+ };
+ rake = {
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy";
+ type = "gem";
+ };
+ version = "13.1.0";
+ };
+ rake-compiler = {
+ dependencies = ["rake"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vhdkwblhzp4wp1jh95qiibly2zsnmg3659r6d5xp1mzgd9ghxji";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ rb-fsevent = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zmf31rnpm8553lqwibvv3kkx0v7majm1f341xbxc0bk5sbhp423";
+ type = "gem";
+ };
+ version = "0.11.2";
+ };
+ rb-inotify = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005";
+ type = "gem";
+ };
+ version = "0.10.1";
+ };
+ rb-kqueue = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vpq1dmmlbggfk399s7jq2rrnjp6r8774amfli75bqhjn1sk2bxg";
+ type = "gem";
+ };
+ version = "0.2.8";
+ };
+ rexml = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
+ type = "gem";
+ };
+ version = "3.2.6";
+ };
+ rgl = {
+ dependencies = ["pairing_heap" "rexml" "stream"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jjc2v9hg42bzg6w5yg3azrsdr31qmc6ff93xb5adfjqg337vzz3";
+ type = "gem";
+ };
+ version = "0.5.10";
+ };
+ rspec = {
+ dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14xrp8vq6i9zx37vh0yp4h9m0anx9paw200l1r5ad9fmq559346l";
+ type = "gem";
+ };
+ version = "3.13.0";
+ };
+ rspec-core = {
+ dependencies = ["rspec-support"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0k252n7s80bvjvpskgfm285a3djjjqyjcarlh3aq7a4dx2s94xsm";
+ type = "gem";
+ };
+ version = "3.13.0";
+ };
+ rspec-expectations = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bhhjzwdk96vf3gq3rs7mln80q27fhq82hda3r15byb24b34h7b2";
+ type = "gem";
+ };
+ version = "3.13.0";
+ };
+ rspec-its = {
+ dependencies = ["rspec-core" "rspec-expectations"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zafd70gxly5i0s00nky14sj2n92dnj3xpj83ysl3c2wx0119ad";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ rspec-mocks = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rkzkcfk2x0qjr5fxw6ib4wpjy0hqbziywplnp6pg3bm2l98jnkk";
+ type = "gem";
+ };
+ version = "3.13.0";
+ };
+ rspec-support = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03z7gpqz5xkw9rf53835pa8a9vgj4lic54rnix9vfwmp2m7pv1s8";
+ type = "gem";
+ };
+ version = "3.13.1";
+ };
+ rubyntlm = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0b8hczk8hysv53ncsqzx4q6kma5gy5lqc7s5yx8h64x3vdb18cjv";
+ type = "gem";
+ };
+ version = "0.6.3";
+ };
+ rubyzip = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz";
+ type = "gem";
+ };
+ version = "2.3.2";
+ };
+ stream = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "016m9v81vpj14d8g5ins91zc4pzl7vf5f1gxl7jhfsfy601k7cv2";
+ type = "gem";
+ };
+ version = "0.5.5";
+ };
+ thor = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0d1g37j6sc7fkidf8rqlm3wh9zgyg3g7y8h2x1y34hmil5ywa8c3";
+ type = "gem";
+ };
+ version = "0.18.1";
+ };
+ time = {
+ dependencies = ["date"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0c15v19hyxjcfzaviqlwhgajgyrrlb0pjilza6mkv49bhspy6av6";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ timeout = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg";
+ type = "gem";
+ };
+ version = "0.4.1";
+ };
+ vagrant-spec = {
+ dependencies = ["childprocess" "log4r" "rspec" "thor"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ fetchSubmodules = false;
+ rev = "2a5afa7512753288b4ec1e26ec13bc6479b2fabb";
+ sha256 = "08l0qc7566126pqwn3cr91j5wgd2zqij8sacngr5yfsk2anl8fw0";
+ type = "git";
+ url = "https://github.com/hashicorp/vagrant-spec.git";
+ };
+ version = "0.0.1";
+ };
+ vagrant_cloud = {
+ dependencies = ["excon" "log4r" "rexml"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jhwciki5i8hjbgv2f1p544bi92s9wdsfrjympzslysdzk95djpg";
+ type = "gem";
+ };
+ version = "3.1.1";
+ };
+ wdm = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0x5l2pn4x92734k6i2wcjbn2klmwgkiqaajvxadh35k74dgnyh18";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ webrick = {
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1d4cvgmxhfczxiq5fr534lmizkhigd15bsx5719r5ds7k7ivisc7";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ winrm = {
+ dependencies = ["builder" "erubi" "gssapi" "gyoku" "httpclient" "logging" "nori" "rubyntlm"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nxf6a47d1xf1nvi7rbfbzjyyjhz0iakrnrsr2hj6y24a381sd8i";
+ type = "gem";
+ };
+ version = "2.3.6";
+ };
+ winrm-elevated = {
+ dependencies = ["erubi" "winrm" "winrm-fs"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lmlaii8qapn84wxdg5d82gbailracgk67d0qsnbdnffcg8kswzd";
+ type = "gem";
+ };
+ version = "1.2.3";
+ };
+ winrm-fs = {
+ dependencies = ["erubi" "logging" "rubyzip" "winrm"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gb91k6s1yjqw387x4w1nkpnxblq3pjdqckayl0qvz5n3ygdsb0d";
+ type = "gem";
+ };
+ version = "1.3.5";
+ };
+}
diff --git a/packages/vagrant/gemset_libvirt.nix b/packages/vagrant/gemset_libvirt.nix
new file mode 100644
index 0000000..16b88ff
--- /dev/null
+++ b/packages/vagrant/gemset_libvirt.nix
@@ -0,0 +1,199 @@
+{
+ builder = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ excon = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rv2hq29lx2337214a1p2qy70fi77ch6p0p77nw9h6x84q028qr0";
+ type = "gem";
+ };
+ version = "0.92.3";
+ };
+ fog-core = {
+ dependencies = ["builder" "excon" "formatador" "mime-types"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06m6hxq8vspx9h9bgc2s19m56jzasvl45vblrfv1q5h1qg1k6amw";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ fog-json = {
+ dependencies = ["fog-core" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zj8llzc119zafbmfa4ai3z5s7c4vp9akfs0f9l2piyvcarmlkyx";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ fog-libvirt = {
+ dependencies = ["fog-core" "fog-json" "fog-xml" "json" "ruby-libvirt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "sha256-z0VkRqFk3JU02ULQ+xQbywekzrJgz1YPDul//Ov5ajU=";
+ type = "gem";
+ };
+ version = "0.11.0";
+ };
+ fog-xml = {
+ dependencies = ["fog-core" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vyyb2429xqzys39xyk2r3fal80qqn397aj2kqsjrgg2y6m59i41";
+ type = "gem";
+ };
+ version = "0.1.4";
+ };
+ formatador = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l06bv4avphbdmr1y4g0rqlczr38k6r65b3zghrbj2ynyhm3xqjl";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1z9grvjyfz16ag55hg522d3q4dh07hf391sf9s96npc0vfi85xkz";
+ type = "gem";
+ };
+ version = "2.6.1";
+ };
+ mime-types = {
+ dependencies = ["mime-types-data"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb";
+ type = "gem";
+ };
+ version = "3.4.1";
+ };
+ mime-types-data = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "003gd7mcay800k2q4pb2zn8lwwgci4bhi42v2jvlidm8ksx03i6q";
+ type = "gem";
+ };
+ version = "3.2022.0105";
+ };
+ mini_portile2 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "sha256-RrLSRMxv8BqJv2EnRpDAn9vcpHqErp6sOQOegSMa7nw=";
+ type = "gem";
+ };
+ version = "2.8.2";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
+ type = "gem";
+ };
+ version = "1.15.0";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2" "racc"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "sha256-INyAC4++TE9LWxZOaqOrgqNxvLJ+toXBZpYcNN2KItc=";
+ type = "gem";
+ };
+ version = "1.15.2";
+ };
+ racc = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "sha256-r2QSSDb908AOgwcD1/hz6l3qvekj83AGo59aXg2hY4c=";
+ type = "gem";
+ };
+ version = "1.7.1";
+ };
+ rexml = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
+ type = "gem";
+ };
+ version = "3.2.5";
+ };
+ xml-simple = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "sha256-0hEx5RnIbxpbwrbS1X1G5pmOR/GO0kmyXK2GQz29aV0=";
+ type = "gem";
+ };
+ version = "1.1.9";
+ };
+ diffy = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "sha256-NrQv++UTjdxWGCEHwkrY1rBm7P0odoKfOR46SZPYmuE=";
+ type = "gem";
+ };
+ version = "3.4.2";
+ };
+ ruby-libvirt = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rnmbfhdz270fky0cm8w1i73gkrnlf3s1hdkm5yxjkdbvapwvjsd";
+ type = "gem";
+ };
+ version = "0.8.0";
+ };
+ vagrant-libvirt = {
+ dependencies = ["fog-core" "fog-libvirt" "nokogiri" "rexml" "xml-simple" "diffy"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.pkg.github.com/compromyse"];
+ sha256 = "";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+}
diff --git a/packages/vagrant/unofficial-installation-nowarn.patch b/packages/vagrant/unofficial-installation-nowarn.patch
new file mode 100644
index 0000000..0ea8b51
--- /dev/null
+++ b/packages/vagrant/unofficial-installation-nowarn.patch
@@ -0,0 +1,16 @@
+diff --git a/bin/vagrant b/bin/vagrant
+index 7ca30b391..d3f4ea61a 100755
+--- a/bin/vagrant
++++ b/bin/vagrant
+@@ -221,11 +221,6 @@ begin
+ end
+ end
+
+- if !Vagrant.in_installer? && !Vagrant.very_quiet?
+- # If we're not in the installer, warn.
+- env.ui.warn(I18n.t("vagrant.general.not_in_installer") + "\n", prefix: false)
+- end
+-
+ # Acceptable experimental flag values include:
+ #
+ # Unset - Disables experimental features
diff --git a/packages/vagrant/use-system-bundler-version.patch b/packages/vagrant/use-system-bundler-version.patch
new file mode 100644
index 0000000..8262220
--- /dev/null
+++ b/packages/vagrant/use-system-bundler-version.patch
@@ -0,0 +1,13 @@
+diff --git a/lib/vagrant/bundler.rb b/lib/vagrant/bundler.rb
+index 336ac1e05..1bfd84c0d 100644
+--- a/lib/vagrant/bundler.rb
++++ b/lib/vagrant/bundler.rb
+@@ -470,7 +470,7 @@ module Vagrant
+ source_list = {}
+ system_plugins = plugins.map do |plugin_name, plugin_info|
+ plugin_name if plugin_info["system"]
+- end.compact
++ end.compact << "bundler"
+ installer_set = VagrantSet.new(:both)
+ installer_set.system_plugins = system_plugins
+
diff --git a/packages/vagrant/vagrant-libvirt.json.in b/packages/vagrant/vagrant-libvirt.json.in
new file mode 100644
index 0000000..22060e1
--- /dev/null
+++ b/packages/vagrant/vagrant-libvirt.json.in
@@ -0,0 +1,9 @@
+{
+ "vagrant-libvirt": {
+ "ruby_version":"@ruby_version@",
+ "vagrant_version":"@vagrant_version@",
+ "gem_version":"",
+ "require":"",
+ "sources":[]
+ }
+}