From 2fe4e4ef869e0f0255cf2e24cf392bc228625b32 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Elan=20Ruusam=C3=A4e?= Date: Wed, 17 Dec 2014 16:12:38 +0200 Subject: [PATCH] add vagrant wrapper to setup gem env properly --- vagrant.sh | 41 +++++++++++++++++++++++++++++++++++++++++ vagrant.spec | 8 ++++---- 2 files changed, 45 insertions(+), 4 deletions(-) create mode 100755 vagrant.sh diff --git a/vagrant.sh b/vagrant.sh new file mode 100755 index 0000000..839de53 --- /dev/null +++ b/vagrant.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# +# This is a wrapper to properly execute Vagrant so that it sees system gems and +# merges with it's own gems. +# +# This sets up proper environmental variables so that everything loads and +# compiles to proper directories. + +# Set the path to the Ruby executable +RUBY_EXECUTABLE="/usr/bin/ruby" + +GEM_PATH=$($RUBY_EXECUTABLE -r rubygems -e 'puts Gem.respond_to?(:default_dirs) ? Gem.default_dirs[:system][:gem_dir] : Gem.path.first') +export GEM_PATH + +# Export gem paths so it can find vagrant own gem +export GEM_HOME="${GEM_PATH}" + +# Export an enviromental variable to say we're in a Vagrant +# installer created environment. +export VAGRANT_INSTALLER_ENV=1 + +# Unset any RUBYOPT and RUBYLIB, we don't want these bleeding into our +# runtime. +unset RUBYOPT +unset RUBYLIB + +# Find the Vagrant executable +for needle in "${GEM_PATH}/gems/vagrant-"*; do + if [ -f "${needle}/lib/vagrant/pre-rubygems.rb" ]; then + VAGRANT_GEM_PATH="${needle}" + fi +done + +VAGRANT_EXECUTABLE="${VAGRANT_GEM_PATH}/bin/vagrant" +VAGRANT_LAUNCHER="${VAGRANT_GEM_PATH}/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_EXECUTABLE}" "${VAGRANT_LAUNCHER}" "$@" diff --git a/vagrant.spec b/vagrant.spec index a86c65e..70b1938 100644 --- a/vagrant.spec +++ b/vagrant.spec @@ -4,12 +4,12 @@ Summary: Provisioning and deployment of virtual instances Name: vagrant Version: 1.7.1 # NOTE: test that it actually works before doing rel "1" -Release: 0.3 +Release: 0.7 License: MIT Group: Applications/Emulators Source0: https://github.com/mitchellh/vagrant/archive/v%{version}/%{name}-%{version}.tar.gz # Source0-md5: 6bfb1440145f943e7b683ac99d06adec -#Source100: runtime-broken +Source1: %{name}.sh Patch0: source_root.patch Patch1: rubygems.patch Patch2: no-warning.patch @@ -114,7 +114,7 @@ Ruby documentation for %{gem_name} %prep %setup -q -%patch0 -p1 +#%patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 @@ -139,7 +139,7 @@ rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT{%{ruby_gemdir}/gems/%{name}-%{version},%{ruby_specdir},%{_bindir}} cp -a lib bin keys plugins templates $RPM_BUILD_ROOT%{ruby_gemdir}/gems/%{name}-%{version} cp -p %{name}-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir} -ln -s %{ruby_gemdir}/gems/%{name}-%{version}/bin/%{name} $RPM_BUILD_ROOT%{_bindir} +install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/%{name} install -d $RPM_BUILD_ROOT%{bash_compdir} cp -p contrib/bash/completion.sh $RPM_BUILD_ROOT%{bash_compdir}/%{name} -- 2.44.0