From 2dd1e81d3eae8232a2710435c19ea2d2f5d905bf Mon Sep 17 00:00:00 2001 From: Tomas Mozes Date: Mon, 6 Mar 2017 07:43:26 +0100 Subject: app-emulation/vagrant: bump to 1.9.2, drop old Closes: #4135 Package-Manager: Portage-2.3.3, Repoman-2.3.1 --- app-emulation/vagrant/Manifest | 3 +- ...agrant-1.8.4-install-plugins-in-isolation.patch | 114 --------------------- app-emulation/vagrant/files/vagrant-1.8.6 | 46 --------- app-emulation/vagrant/files/vagrant-1.8.7 | 46 --------- app-emulation/vagrant/files/vagrant-1.9.2 | 45 ++++++++ app-emulation/vagrant/vagrant-1.8.6.ebuild | 87 ---------------- app-emulation/vagrant/vagrant-1.8.7.ebuild | 87 ---------------- app-emulation/vagrant/vagrant-1.9.1-r1.ebuild | 2 +- app-emulation/vagrant/vagrant-1.9.2.ebuild | 83 +++++++++++++++ 9 files changed, 130 insertions(+), 383 deletions(-) delete mode 100644 app-emulation/vagrant/files/vagrant-1.8.4-install-plugins-in-isolation.patch delete mode 100644 app-emulation/vagrant/files/vagrant-1.8.6 delete mode 100644 app-emulation/vagrant/files/vagrant-1.8.7 create mode 100644 app-emulation/vagrant/files/vagrant-1.9.2 delete mode 100644 app-emulation/vagrant/vagrant-1.8.6.ebuild delete mode 100644 app-emulation/vagrant/vagrant-1.8.7.ebuild create mode 100644 app-emulation/vagrant/vagrant-1.9.2.ebuild diff --git a/app-emulation/vagrant/Manifest b/app-emulation/vagrant/Manifest index 7172e250aea7..3efc97638818 100644 --- a/app-emulation/vagrant/Manifest +++ b/app-emulation/vagrant/Manifest @@ -1,3 +1,2 @@ -DIST vagrant-1.8.6.tar.gz 1749696 SHA256 de1204c56feeeb327f542e58d39c9dd55fef78a9b753594a3b30e330d72d23e4 SHA512 dba8226b4039a8fa3587254f5d57fb7c967dde993aa87cffd745d7e176d2f78b45830e04711d90e48bca47197b11d1a46e34bf29e5bc0e1d6d78eecb2e636e36 WHIRLPOOL 3c32f00a4b4d773d6f795ad8a088c4a4316d612a8d4504348f2d2790bfc38bf5299a9e730c28b721858a36cff4210b322e8f6225b144e37282689c3beee1971b -DIST vagrant-1.8.7.tar.gz 1756302 SHA256 5371d39679d40d4f6913728dd3d93c103e74c76ecc813710191a2c378b83a1e2 SHA512 b9cffded481b03d676d5815b1d6ba55b56cd5ae8ac7ddbaca19f36880df8cd3fdc9efc240782001619bd3790518e192ba82e8bbde2e4eba12894e78603e6a3b7 WHIRLPOOL 37e4dfe3b4f4681c01887ce75ec035cc8efdf2950b2d04bac0793dd527d65d3f7c991880e7fb402831eb746bb3cb1f84cf7b4529316435b007d6a0cf682f3393 DIST vagrant-1.9.1.tar.gz 1762644 SHA256 ed30e5a277b5614ee83d9417793ed2af870977368c2b0344855694040c4d6449 SHA512 07ea6e2d881806ce61395a30abdaa7b4f7c2c39bb909d6c6e0aa14101945a9a26078ed18ebb8e238d97f05ee060564fb290615ac4868b80ee29b64b88a666452 WHIRLPOOL 16ece1985a78942c75774181c803e42ffe81cd0580314372932af6a3c5084b43f8d3db0d6137eaa3186a9cdbf33e8e9d59f27f95be6ebe2ed5d93a90577e7fb9 +DIST vagrant-1.9.2.tar.gz 1813028 SHA256 53723eec1180ed0e89c1968e06626c6d45e42f6dc25ae9934ca8dfc240a82046 SHA512 26e2a933571b076fae27ea13e0f86529e39ebc3eb7580781d9cfa81bff2383f4dee72b947b3d2cb4f4bd231769f27da27b95e10f43b5207b824cd22b1e2403b6 WHIRLPOOL 9401ba1d21d20cf4a0f1c74775e077d9fad27edfbcb21f96579ff6cf6d7e8ab734cd0832f20ff568f7346633b80dee2fbc897ca34f08bc6868add7d274330d76 diff --git a/app-emulation/vagrant/files/vagrant-1.8.4-install-plugins-in-isolation.patch b/app-emulation/vagrant/files/vagrant-1.8.4-install-plugins-in-isolation.patch deleted file mode 100644 index 76730733eb67..000000000000 --- a/app-emulation/vagrant/files/vagrant-1.8.4-install-plugins-in-isolation.patch +++ /dev/null @@ -1,114 +0,0 @@ ---- bin/vagrant -+++ bin/vagrant -@@ -69,6 +69,11 @@ - 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." ---- lib/vagrant/bundler.rb 2016-06-13 10:21:40.000000000 +0200 -+++ lib/vagrant/bundler.rb 2016-06-23 08:19:22.466039136 +0200 -@@ -65,6 +65,13 @@ - @configfile = tempfile("vagrant-configfile") - @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. -@@ -151,7 +158,7 @@ - - # 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) -@@ -182,11 +189,23 @@ - # 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 = tempfile("vagrant-gemfile") -+ # 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| - sources.each do |source| - next if source == "" -@@ -195,6 +214,19 @@ - - gemfile.puts(%Q[gem "vagrant", "= #{VERSION}"]) - -+ 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"] -@@ -205,10 +237,18 @@ - 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 -+ -+ # 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 - end - -@@ -219,7 +259,7 @@ - # can be a hash of options. See Bundler.definition. - # @return [Array] - 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.6 b/app-emulation/vagrant/files/vagrant-1.8.6 deleted file mode 100644 index d4db0deaefda..000000000000 --- a/app-emulation/vagrant/files/vagrant-1.8.6 +++ /dev/null @@ -1,46 +0,0 @@ -#!/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.6"' )" - -# 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.7 b/app-emulation/vagrant/files/vagrant-1.8.7 deleted file mode 100644 index aa744d5e54b8..000000000000 --- a/app-emulation/vagrant/files/vagrant-1.8.7 +++ /dev/null @@ -1,46 +0,0 @@ -#!/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.7"' )" - -# 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.9.2 b/app-emulation/vagrant/files/vagrant-1.9.2 new file mode 100644 index 000000000000..060bf9e059e3 --- /dev/null +++ b/app-emulation/vagrant/files/vagrant-1.9.2 @@ -0,0 +1,45 @@ +#!/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.9.2"' )" + +# 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" + +# 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_EXECUTABLE}" "$@" diff --git a/app-emulation/vagrant/vagrant-1.8.6.ebuild b/app-emulation/vagrant/vagrant-1.8.6.ebuild deleted file mode 100644 index c8f935476963..000000000000 --- a/app-emulation/vagrant/vagrant-1.8.6.ebuild +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -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" -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.12.5 - >=dev-ruby/childprocess-0.5.0 - >=dev-ruby/erubis-2.7.0 - >=dev-ruby/i18n-0.6.0:* =dev-ruby/listen-3.1.5 - >=dev-ruby/hashicorp-checkpoint-0.1.1 - >=dev-ruby/log4r-1.1.9 =dev-ruby/net-ssh-3.0.1 - >=dev-ruby/net-sftp-2.1 - >=dev-ruby/net-scp-1.1.0 - || ( >=dev-ruby/rest-client-1.6.0:0 dev-ruby/rest-client:2 ) - >=dev-ruby/nokogiri-1.6.7.1 - >=dev-ruby/mime-types-2.6.2:* />=/' \ - -e '/ruby_dep/s/<=/>=/' \ - -e '/nokogiri\|bundler/s/=/>=/' \ - -i ${PN}.gemspec || die - - # remove windows-specific gems - sed -e '/wdm\|winrm/d' \ - -i ${PN}.gemspec || die - - # remove bsd-specific gems - sed -e '/rb-kqueue/d' \ - -i ${PN}.gemspec || die - - # see https://github.com/mitchellh/vagrant/pull/5877 - epatch "${FILESDIR}"/${PN}-1.8.4-install-plugins-in-isolation.patch - - # disable embedded CA certs and use system ones - epatch "${FILESDIR}"/${PN}-1.8.1-disable-embedded-cacert.patch - - # fix rvm issue (bug #474476) - epatch "${FILESDIR}"/${PN}-1.8.1-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 -} diff --git a/app-emulation/vagrant/vagrant-1.8.7.ebuild b/app-emulation/vagrant/vagrant-1.8.7.ebuild deleted file mode 100644 index e13bb3e5e059..000000000000 --- a/app-emulation/vagrant/vagrant-1.8.7.ebuild +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" -USE_RUBY="ruby20 ruby21 ruby22 ruby23" - -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" -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.12.5 - >=dev-ruby/childprocess-0.5.0 - >=dev-ruby/erubis-2.7.0 - >=dev-ruby/i18n-0.6.0:* =dev-ruby/listen-3.1.5 - >=dev-ruby/hashicorp-checkpoint-0.1.1 - >=dev-ruby/log4r-1.1.9 =dev-ruby/net-ssh-3.0.1 - >=dev-ruby/net-sftp-2.1 - >=dev-ruby/net-scp-1.1.0 - || ( >=dev-ruby/rest-client-1.6.0:0 dev-ruby/rest-client:2 ) - >=dev-ruby/nokogiri-1.6.7.1 - >=dev-ruby/mime-types-2.6.2:* />=/' \ - -e '/ruby_dep/s/<=/>=/' \ - -e '/nokogiri\|bundler/s/=/>=/' \ - -i ${PN}.gemspec || die - - # remove windows-specific gems - sed -e '/wdm\|winrm/d' \ - -i ${PN}.gemspec || die - - # remove bsd-specific gems - sed -e '/rb-kqueue/d' \ - -i ${PN}.gemspec || die - - # see https://github.com/mitchellh/vagrant/pull/5877 - epatch "${FILESDIR}"/${PN}-1.8.4-install-plugins-in-isolation.patch - - # disable embedded CA certs and use system ones - epatch "${FILESDIR}"/${PN}-1.8.1-disable-embedded-cacert.patch - - # fix rvm issue (bug #474476) - epatch "${FILESDIR}"/${PN}-1.8.1-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 -} diff --git a/app-emulation/vagrant/vagrant-1.9.1-r1.ebuild b/app-emulation/vagrant/vagrant-1.9.1-r1.ebuild index d8869c49cee3..6e5ff4a2b6c8 100644 --- a/app-emulation/vagrant/vagrant-1.9.1-r1.ebuild +++ b/app-emulation/vagrant/vagrant-1.9.1-r1.ebuild @@ -32,7 +32,7 @@ ruby_add_rdepend " >=dev-ruby/listen-3.1.5 >=dev-ruby/hashicorp-checkpoint-0.1.1 >=dev-ruby/log4r-1.1.9 =dev-ruby/net-ssh-3.0.1 + >=dev-ruby/net-ssh-3.0.1:* >=dev-ruby/net-sftp-2.1 >=dev-ruby/net-scp-1.1.0 || ( >=dev-ruby/rest-client-1.6.0:0 dev-ruby/rest-client:2 ) diff --git a/app-emulation/vagrant/vagrant-1.9.2.ebuild b/app-emulation/vagrant/vagrant-1.9.2.ebuild new file mode 100644 index 000000000000..6e5ff4a2b6c8 --- /dev/null +++ b/app-emulation/vagrant/vagrant-1.9.2.ebuild @@ -0,0 +1,83 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="5" +USE_RUBY="ruby21 ruby22 ruby23" + +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" +IUSE="+virtualbox" + +RDEPEND="${RDEPEND} + app-arch/libarchive + net-misc/curl + virtualbox? ( || ( app-emulation/virtualbox app-emulation/virtualbox-bin ) )" + +ruby_add_rdepend " + >=dev-ruby/childprocess-0.5.0 + >=dev-ruby/erubis-2.7.0 + >=dev-ruby/i18n-0.6.0:* =dev-ruby/listen-3.1.5 + >=dev-ruby/hashicorp-checkpoint-0.1.1 + >=dev-ruby/log4r-1.1.9 =dev-ruby/net-ssh-3.0.1:* + >=dev-ruby/net-sftp-2.1 + >=dev-ruby/net-scp-1.1.0 + || ( >=dev-ruby/rest-client-1.6.0:0 dev-ruby/rest-client:2 ) + >=dev-ruby/nokogiri-1.6.7.1 + >=dev-ruby/mime-types-2.6.2:* =dev-ruby/rake-11.3.0 +" + +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\|net-scp\|rake\|childprocess/s/~>/>=/' \ + -e '/ruby_dep/s/<=/>=/' \ + -e '/nokogiri/s/=/>=/' \ + -i ${PN}.gemspec || die + + # remove windows-specific gems + sed -e '/wdm\|winrm/d' \ + -i ${PN}.gemspec || die + + # remove bsd-specific gems + sed -e '/rb-kqueue/d' \ + -i ${PN}.gemspec || die + + # disable embedded CA certs and use system ones + epatch "${FILESDIR}"/${PN}-1.8.1-disable-embedded-cacert.patch + + # fix rvm issue (bug #474476) + epatch "${FILESDIR}"/${PN}-1.8.1-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 +} -- cgit v1.2.3-65-gdbad