Skip to content

Commit

Permalink
app-emulation/vagrant: version bump to 1.8.1
Browse files Browse the repository at this point in the history
Package-Manager: portage-2.2.26
  • Loading branch information
hydrapolic committed Jan 18, 2016
1 parent bee9ab8 commit ffce965
Show file tree
Hide file tree
Showing 10 changed files with 295 additions and 100 deletions.
2 changes: 1 addition & 1 deletion app-emulation/vagrant/Manifest
Original file line number Diff line number Diff line change
@@ -1 +1 @@
DIST vagrant-1.4.3.tar.gz 2391973 SHA256 09ccc0d87999a3c133b9ef52a5cff58402745ee64af6080b2a5d304eb06c9c58 SHA512 93fd1cfa263004cadbf670fac4dc318db9719d2a86afe188857cbc97c1317e6ef2387be498ef9278ca95cdda6bd41400426e3bf52448eb59c31877c9fd0624e4 WHIRLPOOL e581e8488e0b1e75bcdd75f4572b89f9c23338e422d3acb57b1d5d513d9357ec0b061371d926ad0bb1087bf890e70422d4e3527dfd518329ba910f42f0733673
DIST vagrant-1.8.1.tar.gz 2873082 SHA256 12cfa43eb82399d3dd1c3fd24691797fa30187fc142474580c72e5c9f83b9dfd SHA512 efbb74e26b4678075b1cbcc1a8e0bdef929f8c7de186dec1931a5cd52f944a046992491681573283c6cab7e48bf25fce86b0da96df17063d2398b69401fa0f08 WHIRLPOOL 237cbec487f820f00c8bd5b57c44c2f2ffd3b716988f64265124c52e3fe1ef696f93a5e61004ee7c57531bfb1765c47d56c53b61880c761ddf5efc5b6545c261
12 changes: 0 additions & 12 deletions app-emulation/vagrant/files/vagrant-1.2.1-no-warning.patch

This file was deleted.

12 changes: 0 additions & 12 deletions app-emulation/vagrant/files/vagrant-1.2.2-rvm.patch

This file was deleted.

46 changes: 46 additions & 0 deletions app-emulation/vagrant/files/vagrant-1.8.1
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/usr/bin/env bash
#
# This is a wrapper to properly execute Vagrant within the embedded
# Vagrant installation directory. This sets up proper environmental variables
# so that everything loads and compiles to proper directories.

VAGRANT_DIR="$( ruby -e 'print Gem::default_path[-1] + "/gems/vagrant-1.8.1"' )"

# Export GEM_HOME based on VAGRANT_HOME
#
# This needs to be set because Bundler includes gem paths
# from RubyGems' Gem.paths.
if [ -z $VAGRANT_HOME ]; then
VAGRANT_HOME=$(eval echo "~/.vagrant.d")
fi
export GEM_HOME="$VAGRANT_HOME/gems"

# SSL certs
export SSL_CERT_FILE="/etc/ssl/certs/ca-certificates.crt"

# Export an environmental variable to say we're in a Vagrant
# installer created environment.
export VAGRANT_INSTALLER_ENV=1

# This is currently used only in Vagrant::Plugin::Manager.system_plugins_file
# to locate plugins configuration file.
export VAGRANT_INSTALLER_EMBEDDED_DIR="/var/lib/vagrant"
export VAGRANT_INSTALLER_VERSION="2"

# Determine the OS that we're on, which is used in some later checks.
# It is very important we do this _before_ setting the PATH below
# because uname dependencies can conflict on some platforms.
OS=$(uname -s 2>/dev/null)

# Export the OS as an environmental variable that Vagrant can access
# so that it can behave better.
export VAGRANT_DETECTED_OS="${OS}"

VAGRANT_EXECUTABLE="${VAGRANT_DIR}/bin/vagrant"
VAGRANT_LAUNCHER="${VAGRANT_DIR}/lib/vagrant/pre-rubygems.rb"

# Export the VAGRANT_EXECUTABLE so that pre-rubygems can optimize a bit
export VAGRANT_EXECUTABLE

# Call the actual Vagrant bin with our arguments
exec ruby "${VAGRANT_LAUNCHER}" "$@"
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
diff --git a/lib/vagrant/util/downloader.rb b/lib/vagrant/util/downloader.rb
index 8756fc3..7fb2be8 100644
--- a/lib/vagrant/util/downloader.rb
+++ b/lib/vagrant/util/downloader.rb
@@ -215,8 +215,9 @@ module Vagrant
# If we're in Vagrant, then we use the packaged CA bundle
if Vagrant.in_installer?
subprocess_options[:env] ||= {}
- subprocess_options[:env]["CURL_CA_BUNDLE"] =
- File.expand_path("cacert.pem", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"])
+ # Use system certificates.
+ # subprocess_options[:env]["CURL_CA_BUNDLE"] =
+ # File.expand_path("cacert.pem", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"])
end

return [options, subprocess_options]

Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
diff --git a/bin/vagrant b/bin/vagrant
index fce68c8..781fc63 100755
--- a/bin/vagrant
+++ b/bin/vagrant
@@ -69,6 +69,11 @@ end
require "bundler"
begin
$vagrant_bundler_runtime = Bundler.setup(:default, :plugins)
+# Invalidate the cached Gemfile.lock if necessary and try again
+rescue Bundler::GemNotFound
+ FileUtils.rm File.expand_path("~/.vagrant.d/Gemfile") if File.exists? File.expand_path("~/.vagrant.d/Gemfile")
+ FileUtils.rm File.expand_path("~/.vagrant.d/Gemfile.lock") if File.exists? File.expand_path("~/.vagrant.d/Gemfile.lock")
+ $vagrant_bundler_runtime = Bundler.setup(:default, :plugins)
rescue Bundler::GemNotFound
$stderr.puts "Bundler, the underlying system used to manage Vagrant plugins,"
$stderr.puts "is reporting that a plugin or its dependency can't be found."
diff --git a/lib/vagrant/bundler.rb b/lib/vagrant/bundler.rb
index ea8c056..0543963 100644
--- a/lib/vagrant/bundler.rb
+++ b/lib/vagrant/bundler.rb
@@ -63,6 +63,13 @@ module Vagrant
@configfile = File.open(Tempfile.new("vagrant").path + "1", "w+")
@configfile.close

+ # Ensure the path to user's Gemfile exists
+ gemfile = Vagrant.user_data_path.join("Gemfile")
+ unless File.exists? gemfile
+ FileUtils.mkdir_p(File.dirname(gemfile))
+ File.open(gemfile, 'w') {}
+ end
+
# Build up the Gemfile for our Bundler context. We make sure to
# lock Vagrant to our current Vagrant version. In addition to that,
# we add all our plugin dependencies.
@@ -141,7 +148,7 @@ module Vagrant

# Clean removes any unused gems.
def clean(plugins)
- gemfile = build_gemfile(plugins)
+ gemfile = build_gemfile(plugins, false, true)
lockfile = "#{gemfile.path}.lock"
definition = ::Bundler::Definition.build(gemfile, lockfile, nil)
root = File.dirname(gemfile.path)
@@ -172,11 +179,24 @@ module Vagrant
# Builds a valid Gemfile for use with Bundler given the list of
# plugins.
#
+ # @param [Hash|Bool] update Hash of gems to update or true for all
+ # @param [Bool] invalidate Invalidate Gemfile.lock
# @return [Tempfile]
- def build_gemfile(plugins)
+ def build_gemfile(plugins, update = false, invalidate = false)
sources = plugins.values.map { |p| p["sources"] }.flatten.compact.uniq

- f = File.open(Tempfile.new("vagrant").path + "2", "w+")
+ # Determine what gems to update
+ if update.is_a? Hash
+ update_gems = update[:gems]
+ elsif update === true
+ update_gems = plugins.map{ |p| p[0] }
+ else
+ update_gems = []
+ end
+
+ gemfile = Vagrant.user_data_path.join("Gemfile")
+ f = File.open(gemfile, "w+")
+
f.tap do |gemfile|
if !sources.include?("http://rubygems.org")
gemfile.puts(%Q[source "https://rubygems.org"])
@@ -190,6 +210,19 @@ module Vagrant

gemfile.puts(%Q[gemspec :path => "#{File.expand_path '../../..', __FILE__}"])

+ locked_gems = []
+
+ # Use Gemfile.lock to lock the gem versions
+ if ENV["VAGRANT_INTERNAL_BUNDLERIZED"] && File.exist?("#{gemfile.path}.lock") && !invalidate
+ lockfile = ::Bundler::LockfileParser.new(::Bundler.read_file("#{gemfile.path}.lock"))
+ lockfile.specs.each do |s|
+ if s.name != 'vagrant' && !(update_gems.include? s.name)
+ gemfile.puts(%Q[gem "#{s.name}", "#{s.version.to_s}"])
+ end
+ end
+ locked_gems = lockfile.specs.map(&:name) - update_gems
+ end
+
gemfile.puts("group :plugins do")
plugins.each do |name, plugin|
version = plugin["gem_version"]
@@ -199,13 +232,19 @@ module Vagrant
if plugin["require"] && plugin["require"] != ""
opts[:require] = plugin["require"]
end
-
- gemfile.puts(%Q[gem "#{name}", #{version.inspect}, #{opts.inspect}])
+ gemfile.puts(%Q[gem "#{name}", #{version.inspect}, #{opts.inspect}]) unless locked_gems.include? name
end
gemfile.puts("end")
-
gemfile.close
end
+
+ # Create Gemfile.lock if missing and re-generate Gemfile
+ if !File.exist?("#{f.path}.lock") && File.exist?(f.path)
+ lockfile = "#{f.path}.lock"
+ ENV['BUNDLE_GEMFILE'] = f.path
+ definition = ::Bundler::Definition.build(f.path, lockfile, false)
+ end
+ f
end

# This installs a set of plugins and optionally updates those gems.
@@ -215,7 +254,7 @@ module Vagrant
# can be a hash of options. See Bundler.definition.
# @return [Array<Gem::Specification>]
def internal_install(plugins, update, **extra)
- gemfile = build_gemfile(plugins)
+ gemfile = build_gemfile(plugins, update)
lockfile = "#{gemfile.path}.lock"
definition = ::Bundler::Definition.build(gemfile, lockfile, update)
root = File.dirname(gemfile.path)
11 changes: 11 additions & 0 deletions app-emulation/vagrant/files/vagrant-1.8.1-rvm.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- vagrant-1.8.1/bin/vagrant
+++ vagrant-1.8.1/bin/vagrant
@@ -5,6 +5,8 @@
# initializing which have historically resulted in stack traces.
Signal.trap("INT") { abort }

+ENV.delete('GEM_PATH')
+
# Split arguments by "--" if its there, we'll recombine them later
argv = ARGV.dup
argv_extra = []
20 changes: 14 additions & 6 deletions app-emulation/vagrant/metadata.xml
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer>
<email>[email protected]</email>
</maintainer>
<upstream>
<remote-id type="github">mitchellh/vagrant</remote-id>
</upstream>
<herd>proxy-maintainers</herd>
<maintainer>
<email>[email protected]</email>
<name>Tomas Mozes</name>
<description>Proxy maintainer</description>
</maintainer>
<use>
<flag name='virtualbox'>
Use VirtualBox provider.
</flag>
</use>
<upstream>
<remote-id type="github">mitchellh/vagrant</remote-id>
</upstream>
</pkgmetadata>
69 changes: 0 additions & 69 deletions app-emulation/vagrant/vagrant-1.4.3-r2.ebuild

This file was deleted.

Loading

0 comments on commit ffce965

Please sign in to comment.