commit:     ffce965ba1e2096a8807a21be7e59b4955bdca66
Author:     Tomas Mozes <hydrapolic <AT> gmail <DOT> com>
AuthorDate: Mon Jan 18 17:02:31 2016 +0000
Commit:     Ian Delaney <idella4 <AT> gentoo <DOT> org>
CommitDate: Mon Jan 18 17:02:31 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ffce965b

app-emulation/vagrant: version bump to 1.8.1

Package-Manager: portage-2.2.26

 app-emulation/vagrant/Manifest                     |   2 +-
 .../vagrant/files/vagrant-1.2.1-no-warning.patch   |  12 --
 .../vagrant/files/vagrant-1.2.2-rvm.patch          |  12 --
 app-emulation/vagrant/files/vagrant-1.8.1          |  46 ++++++++
 .../vagrant-1.8.1-disable-embedded-cacert.patch    |  17 +++
 ...agrant-1.8.1-install-plugins-in-isolation.patch | 122 +++++++++++++++++++++
 .../vagrant/files/vagrant-1.8.1-rvm.patch          |  11 ++
 app-emulation/vagrant/metadata.xml                 |  20 +++-
 app-emulation/vagrant/vagrant-1.4.3-r2.ebuild      |  69 ------------
 app-emulation/vagrant/vagrant-1.8.1.ebuild         |  84 ++++++++++++++
 10 files changed, 295 insertions(+), 100 deletions(-)

diff --git a/app-emulation/vagrant/Manifest b/app-emulation/vagrant/Manifest
index a495574..24578f1 100644
--- a/app-emulation/vagrant/Manifest
+++ b/app-emulation/vagrant/Manifest
@@ -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

diff --git a/app-emulation/vagrant/files/vagrant-1.2.1-no-warning.patch 
b/app-emulation/vagrant/files/vagrant-1.2.1-no-warning.patch
deleted file mode 100644
index 08d1d35..0000000
--- a/app-emulation/vagrant/files/vagrant-1.2.1-no-warning.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- vagrant-1.2.1/bin/vagrant
-+++ vagrant-1.2.1/bin/vagrant
-@@ -74,9 +74,6 @@
-         warned = true
-       end
-     end
--
--    # If we're not in the installer, warn.
--    env.ui.warn(I18n.t("vagrant.general.not_in_installer")) if !warned
-   end
- 
-   begin

diff --git a/app-emulation/vagrant/files/vagrant-1.2.2-rvm.patch 
b/app-emulation/vagrant/files/vagrant-1.2.2-rvm.patch
deleted file mode 100644
index 99265a2..0000000
--- a/app-emulation/vagrant/files/vagrant-1.2.2-rvm.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- vagrant-1.2.2/bin/vagrant
-+++ vagrant-1.2.2/bin/vagrant
-@@ -5,6 +5,9 @@
- # initializing which have historically resulted in stack traces.
- Signal.trap("INT") { exit 1 }
- 
-+ENV.delete('GEM_HOME')
-+ENV.delete('GEM_PATH')
-+
- require 'log4r'
- require 'vagrant'
- require 'vagrant/cli'

diff --git a/app-emulation/vagrant/files/vagrant-1.8.1 
b/app-emulation/vagrant/files/vagrant-1.8.1
new file mode 100755
index 0000000..760db56
--- /dev/null
+++ b/app-emulation/vagrant/files/vagrant-1.8.1
@@ -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}" "$@"

diff --git 
a/app-emulation/vagrant/files/vagrant-1.8.1-disable-embedded-cacert.patch 
b/app-emulation/vagrant/files/vagrant-1.8.1-disable-embedded-cacert.patch
new file mode 100644
index 0000000..afcb6f7
--- /dev/null
+++ b/app-emulation/vagrant/files/vagrant-1.8.1-disable-embedded-cacert.patch
@@ -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]
+

diff --git 
a/app-emulation/vagrant/files/vagrant-1.8.1-install-plugins-in-isolation.patch 
b/app-emulation/vagrant/files/vagrant-1.8.1-install-plugins-in-isolation.patch
new file mode 100644
index 0000000..c6934ab
--- /dev/null
+++ 
b/app-emulation/vagrant/files/vagrant-1.8.1-install-plugins-in-isolation.patch
@@ -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)

diff --git a/app-emulation/vagrant/files/vagrant-1.8.1-rvm.patch 
b/app-emulation/vagrant/files/vagrant-1.8.1-rvm.patch
new file mode 100644
index 0000000..81d17be
--- /dev/null
+++ b/app-emulation/vagrant/files/vagrant-1.8.1-rvm.patch
@@ -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 = []

diff --git a/app-emulation/vagrant/metadata.xml 
b/app-emulation/vagrant/metadata.xml
index 5125c65..83fc583 100644
--- a/app-emulation/vagrant/metadata.xml
+++ b/app-emulation/vagrant/metadata.xml
@@ -1,10 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
 <pkgmetadata>
-  <maintainer>
-    <email>maintainer-nee...@gentoo.org</email>
-  </maintainer>
-  <upstream>
-    <remote-id type="github">mitchellh/vagrant</remote-id>
-  </upstream>
+       <herd>proxy-maintainers</herd>
+       <maintainer>
+               <email>hydrapo...@gmail.com</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>

diff --git a/app-emulation/vagrant/vagrant-1.4.3-r2.ebuild 
b/app-emulation/vagrant/vagrant-1.4.3-r2.ebuild
deleted file mode 100644
index edac95f..0000000
--- a/app-emulation/vagrant/vagrant-1.4.3-r2.ebuild
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-USE_RUBY="ruby20"
-
-RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
-RUBY_FAKEGEM_GEMSPEC="vagrant.gemspec"
-RUBY_FAKEGEM_EXTRAINSTALL="config keys plugins templates"
-RUBY_FAKEGEM_TASK_DOC=""
-
-inherit ruby-fakegem eutils
-
-DESCRIPTION="A tool for building and distributing virtual machines using 
VirtualBox"
-HOMEPAGE="http://vagrantup.com/";
-SRC_URI="https://github.com/mitchellh/vagrant/archive/v${PV}.tar.gz -> 
${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~x64-macos"
-IUSE="test"
-
-# Missing ebuild for contest
-RESTRICT="test"
-
-RDEPEND="${RDEPEND}
-       app-arch/libarchive
-       net-misc/curl
-       !x64-macos? ( || ( app-emulation/virtualbox 
app-emulation/virtualbox-bin ) )"
-
-ruby_add_rdepend "
-       >=dev-ruby/childprocess-0.3.7
-       >=dev-ruby/erubis-2.7.0
-       dev-ruby/i18n:0.6
-       >=dev-ruby/json-1.5.1
-       >=dev-ruby/log4r-1.1.9
-       >=dev-ruby/net-ssh-2.6.6
-       >=dev-ruby/net-scp-1.1.0
-"
-
-ruby_add_bdepend "
-       dev-ruby/rake
-       test? ( dev-ruby/mocha virtual/ruby-minitest )
-"
-
-all_ruby_prepare() {
-       # remove bundler support
-       sed -i '/[Bb]undler/d' Rakefile || die
-       rm Gemfile || die
-
-       # loosen dependencies
-       sed -e '/childprocess\|erubis\|log4r\|net-scp/s/~>/>=/' \
-               -e '/net-ssh/s:, "< 2.8.0"::' \
-               -i ${PN}.gemspec || die
-
-       epatch "${FILESDIR}"/${PN}-1.2.1-no-warning.patch
-       epatch "${FILESDIR}"/${PN}-1.2.2-rvm.patch
-}
-
-pkg_postinst() {
-       if use x64-macos ; then
-               ewarn
-               ewarn "For Mac OS X prefixes, you must install the virtualbox"
-               ewarn "package specifically for OS X which can be found at:"
-               ewarn "https://www.virtualbox.org/wiki/Downloads";
-               ewarn
-       fi
-}

diff --git a/app-emulation/vagrant/vagrant-1.8.1.ebuild 
b/app-emulation/vagrant/vagrant-1.8.1.ebuild
new file mode 100644
index 0000000..7989b4d
--- /dev/null
+++ b/app-emulation/vagrant/vagrant-1.8.1.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+USE_RUBY="ruby20 ruby21 ruby22"
+
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+RUBY_FAKEGEM_GEMSPEC="vagrant.gemspec"
+RUBY_FAKEGEM_EXTRAINSTALL="keys plugins templates version.txt"
+RUBY_FAKEGEM_TASK_DOC=""
+
+inherit bash-completion-r1 ruby-fakegem eutils
+
+DESCRIPTION="A tool for building and distributing development environments"
+HOMEPAGE="http://vagrantup.com/";
+SRC_URI="https://github.com/mitchellh/vagrant/archive/v${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+virtualbox"
+
+RDEPEND="${RDEPEND}
+       app-arch/libarchive
+       net-misc/curl
+       virtualbox? ( || ( app-emulation/virtualbox 
app-emulation/virtualbox-bin ) )"
+
+ruby_add_rdepend "
+       >=dev-ruby/bundler-1.5.2 <=dev-ruby/bundler-1.10.6
+       >=dev-ruby/childprocess-0.5.0
+       >=dev-ruby/erubis-2.7.0
+       >=dev-ruby/i18n-0.6.0 <dev-ruby/i18n-0.8.0
+       >=dev-ruby/listen-3.0.2
+       >=dev-ruby/hashicorp-checkpoint-0.1.1
+       >=dev-ruby/log4r-1.1.9 <dev-ruby/log4r-1.1.11
+       >=dev-ruby/net-ssh-3.0.1
+       >=dev-ruby/net-sftp-2.1
+       >=dev-ruby/net-scp-1.1.0 <dev-ruby/net-scp-1.2
+       >=dev-ruby/rb-kqueue-0.2.0
+       >=dev-ruby/rest-client-1.6.0 <dev-ruby/rest-client-2.0
+       >=dev-ruby/nokogiri-1.6.3.1
+       >=dev-ruby/mime-types-2.6.2 <dev-ruby/mime-types-3
+"
+
+ruby_add_bdepend "
+    dev-ruby/rake
+"
+
+all_ruby_prepare() {
+    # remove bundler support
+    sed -i '/[Bb]undler/d' Rakefile || die
+    rm Gemfile || die
+
+    # loosen dependencies
+    sed -e '/hashicorp-checkpoint\|listen\|net-ssh/s/~>/>=/' \
+        -e '/nokogiri/s/=/>=/' \
+        -i ${PN}.gemspec || die
+
+    # remove windows-specific gems
+    sed -e '/wdm\|winrm/d' \
+        -i ${PN}.gemspec || die
+
+    # see https://github.com/mitchellh/vagrant/pull/5877
+    epatch "${FILESDIR}"/${P}-install-plugins-in-isolation.patch
+    
+       # disable embedded CA certs and use system ones
+    epatch "${FILESDIR}"/${P}-disable-embedded-cacert.patch
+
+       # fix rvm issue (bug #474476)
+    epatch "${FILESDIR}"/${P}-rvm.patch
+}
+
+all_ruby_install() {
+    newbashcomp contrib/bash/completion.sh ${PN}
+    all_fakegem_install
+
+       # provide executable similar to upstream:
+       # 
https://github.com/mitchellh/vagrant-installers/blob/master/substrate/modules/vagrant_installer/templates/vagrant.erb
+    newbin "${FILESDIR}/${P}" "${PN}"
+
+    # directory for plugins.json
+    dodir /var/lib/vagrant
+}

Reply via email to