From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id ABD3C138334 for ; Sun, 8 Jul 2018 08:56:17 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 9D540E0815; Sun, 8 Jul 2018 08:56:16 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 58040E0815 for ; Sun, 8 Jul 2018 08:56:16 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 58373335C76 for ; Sun, 8 Jul 2018 08:56:14 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 7B725349 for ; Sun, 8 Jul 2018 08:56:11 +0000 (UTC) From: "Georgy Yakovlev" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Georgy Yakovlev" Message-ID: <1531040053.a55d71b7959c1c24b95b90b00ff1c56e72940288.gyakovlev@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/vagrant/files/, app-emulation/vagrant/ X-VCS-Repository: repo/gentoo X-VCS-Files: app-emulation/vagrant/files/vagrant-r1.in app-emulation/vagrant/vagrant-2.1.2-r1.ebuild X-VCS-Directories: app-emulation/vagrant/ app-emulation/vagrant/files/ X-VCS-Committer: gyakovlev X-VCS-Committer-Name: Georgy Yakovlev X-VCS-Revision: a55d71b7959c1c24b95b90b00ff1c56e72940288 X-VCS-Branch: master Date: Sun, 8 Jul 2018 08:56:11 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 8414922b-6167-480c-bdb0-04d95ab744bd X-Archives-Hash: b23689a5e73761664c7b5b896162ebac commit: a55d71b7959c1c24b95b90b00ff1c56e72940288 Author: Georgy Yakovlev gentoo org> AuthorDate: Sun Jul 8 08:11:03 2018 +0000 Commit: Georgy Yakovlev gentoo org> CommitDate: Sun Jul 8 08:54:13 2018 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a55d71b7 app-emulation/vagrant: add ruby25 support Closes: https://github.com/gentoo/gentoo/pull/9117 Package-Manager: Portage-2.3.41, Repoman-2.3.9 app-emulation/vagrant/files/vagrant-r1.in | 61 +++++++++++++++++++++ app-emulation/vagrant/vagrant-2.1.2-r1.ebuild | 79 +++++++++++++++++++++++++++ 2 files changed, 140 insertions(+) diff --git a/app-emulation/vagrant/files/vagrant-r1.in b/app-emulation/vagrant/files/vagrant-r1.in new file mode 100644 index 00000000000..ee5e48c2154 --- /dev/null +++ b/app-emulation/vagrant/files/vagrant-r1.in @@ -0,0 +1,61 @@ +#!/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. + +for r in ruby25 ruby24 ruby23; do + # not all ruby versions are guaranteed to be installed + if ! command -v "${r}" >/dev/null 2>&1; then + continue + fi + + VAGRANT_DIR="$( "${r}" -e 'print Gem::default_path[-1] + "/gems/vagrant-@VAGRANT_VERSION@"' )" + + # Export the VAGRANT_EXECUTABLE so that pre-rubygems can optimize a bit + export VAGRANT_EXECUTABLE="${VAGRANT_DIR}/bin/vagrant" + + if [ -f ${VAGRANT_EXECUTABLE} ] ;then + ruby="${r}" + break + fi +done + +if [ -z ${ruby} ]; then + echo "Error: failed to find any usable ruby" + exit 1 +fi + +# 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="~/.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 + +# Export the OS as an environmental variable that Vagrant can access +# so that it can behave better. +export VAGRANT_DETECTED_OS="$(uname -s 2>/dev/null)" + +# Allow to install plugins even with deps in different slots (Bug #628648) +export VAGRANT_DISABLE_STRICT_DEPENDENCY_ENFORCEMENT=1 + +# Make it work with rvm (Bugs #474476 #628648) +unset GEM_HOME GEM_PATH + +# Call the actual Vagrant bin with our arguments +exec "${ruby}" "${VAGRANT_EXECUTABLE}" "$@" diff --git a/app-emulation/vagrant/vagrant-2.1.2-r1.ebuild b/app-emulation/vagrant/vagrant-2.1.2-r1.ebuild new file mode 100644 index 00000000000..c41ac30accb --- /dev/null +++ b/app-emulation/vagrant/vagrant-2.1.2-r1.ebuild @@ -0,0 +1,79 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" +USE_RUBY="ruby23 ruby24 ruby25" + +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 + +DESCRIPTION="A tool for building and distributing development environments" +HOMEPAGE="https://vagrantup.com/" +SRC_URI="https://github.com/hashicorp/vagrant/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+virtualbox" +RESTRICT="test" + +RDEPEND="${RDEPEND} + app-arch/libarchive + net-misc/curl + virtualbox? ( || ( app-emulation/virtualbox app-emulation/virtualbox-bin ) )" + +ruby_add_rdepend " + >=dev-ruby/childprocess-0.6.0 + >=dev-ruby/erubis-2.7.0 + =dev-ruby/listen-3.1.5 + >=dev-ruby/hashicorp-checkpoint-0.1.5 + >=dev-ruby/log4r-1.1.9 =dev-ruby/net-ssh-4.2.0:* + >=dev-ruby/net-sftp-2.1 + >=dev-ruby/net-scp-1.2.0 + || ( dev-ruby/rest-client:2 >=dev-ruby/rest-client-1.6.0:0 ) + >=dev-ruby/nokogiri-1.7.1 + =dev-ruby/rake-12.0.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/<=/>=/' \ + -i ${PN}.gemspec || die + + # remove windows-specific gems + sed -e '/wdm\|win32-\|winrm/d' \ + -i ${PN}.gemspec || die + + # remove bsd-specific gems + sed -e '/rb-kqueue/d' \ + -i ${PN}.gemspec || die + + sed -e "s/@VAGRANT_VERSION@/${PV}/g" "${FILESDIR}/${PN}-r1.in" > "${PN}" || die +} + +all_ruby_install() { + newbashcomp contrib/bash/completion.sh ${PN} + all_fakegem_install + + # provide executable similar to upstream: + # https://github.com/hashicorp/vagrant-installers/blob/master/substrate/modules/vagrant_installer/templates/vagrant.erb + dobin "${PN}" + + # directory for plugins.json + keepdir /var/lib/vagrant +}