X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=rpm%2Frvm-ruby.spec;h=456341b7c7b9ae5dacec9511b7989747e34e8914;hb=897610c15191072c516b557ca5b60cd959ac3c3a;hp=648cb53cb5f542a7a7d3ed32899348343f7ee09c;hpb=c23485f3e6d3fc7d02a3bec2180f6809260eeeca;p=rvm-ruby.git diff --git a/rpm/rvm-ruby.spec b/rpm/rvm-ruby.spec index 648cb53..456341b 100644 --- a/rpm/rvm-ruby.spec +++ b/rpm/rvm-ruby.spec @@ -4,11 +4,17 @@ # RVM can not be sourced with default /bin/sh %define _buildshell /bin/bash -Name: rvm-ruby -Summary: Ruby Version Manager -Version: 4 # Commit date will be appended +# PL conventions +%define name rvm-ruby # pick a RVM version from https://github.com/wayneeseguin/rvm/tags -Release: 1.20.10 +%define version 1.20.10 +%define taglevel 7 +%define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}} + +Summary: Ruby Version Manager (including Rubies and Gems) +Name: %{name} +Version: %{version} +Release: %{release} License: ASL 2.0 URL: http://rvm.io/ Group: Applications/System @@ -22,7 +28,8 @@ Requires(pre): shadow-utils # For rvm Requires: bash curl git # Basics for building ruby 1.8/1.9 -Requires: gcc-c++ patch readline readline-devel zlib-devel libyaml-devel libffi-devel openssl-devel autoconf automake libtool bison +# We expect all the building to take place .. at build-time, so let's take this out +#Requires: gcc-c++ patch readline readline-devel zlib-devel libyaml-devel libffi-devel openssl-devel autoconf automake libtool bison # Used by the scripts Requires: sed grep tar gzip bzip2 make file @@ -43,7 +50,7 @@ RVM is activated for all logins by default. To disable remove rm -rf %{buildroot} # Clean the env -for i in `env | grep ^rvm_ | cut -d"=" -f1`; do +for i in $(env | grep ^rvm_ | cut -d"=" -f1); do unset $i; done @@ -54,7 +61,7 @@ export rvm_ignore_rvmrc=1 \ rvm_path="%{buildroot}%{rvm_dir}" \ rvm_man_path="%{buildroot}%{_mandir}" \ HOME=%{buildroot} -\curl -L https://get.rvm.io | bash -s stable --version %{release} +\curl -L https://get.rvm.io | bash -s stable --version %{version} ) # So members of the rvm group can write to it @@ -111,7 +118,9 @@ gemi='gem install --no-ri --no-rdoc' ruby_tag=ruby-1.9.3-p286 rvm install $ruby_tag rvm use $ruby_tag -$gemi bundler +rvm gemset create omf +rvm use $ruby_tag@omf --default +$gemi omf_rc #$gemi whatever_gem_you_need #ruby_tag=ruby-1.8.7-p352 @@ -127,12 +136,12 @@ export br=%{buildroot} # Strip and Fix bad paths in generated files # That is not optimized, but that is not supposed to be done often -for f in `find $br -type f -print0 |xargs -0 file --no-dereference --no-pad |grep ': ELF' |cut -f1 -d:`; do +for f in $(find $br -type f -print0 |xargs -0 file --no-dereference --no-pad |grep ': ELF' |cut -f1 -d:); do strip $f grep "$br" $f || continue - line=`chrpath -l $f` || continue + line=$(chrpath -l $f) || continue echo $line |grep "$br" || continue - chrpath -r `echo $line |cut -f2 -d= |sed "s,$br,,"` $f + chrpath -r $(echo $line |cut -f2 -d= |sed "s,$br,,") $f done # Replace bad paths in text files @@ -146,8 +155,22 @@ slashes=$(printf "%s" "${ch// //}") find $br -type f -print0 | xargs -0 sed -i "s,$br,$slashes,g" # Fix symlinks with bad path -for f in `find $br -type l |grep "$br"`; do - ln -sfn `readlink -f $f |sed "s,$br,,"` $f +# the canonical path of the build root +brc=$(readlink -f $br) +for f in $(find $br -type l); do + # some symlinks are relative, in which case we want to preserve them + # do *not* mention -f here as it would always return an absolute path + dest=$(readlink $f) + # relative symlinks have $dest not starting with a / + first_step=$(echo $dest | cut -d / -f1) + # absolute paths have a void first_step + if [ -z "$first_step" ] ; then + # destination is an absolute path, let's fix it + # call readlink with -f so all symlinmks are solved + # and so we can reliably substitute $brc that is also canonicalized + destc=$(readlink -f $f | sed -e "s,^$brc,,") + ln -sfn $destc $f + fi done find $br -maxdepth 1 -name '.*' -exec rm -rf {} \; @@ -155,6 +178,9 @@ rm $br/usr/share/man/man1/rvm.1.gz %clean rm -rf %{buildroot} +# it appears that, because we build as root, rvm installs stuff in /etc on the build box +# which is not desirable, so let us get rid of that - don't worry if that fails +find /etc -name 'rvm*' | xargs rm || : %pre getent group %{rvm_group} >/dev/null || groupadd -r %{rvm_group} @@ -168,6 +194,9 @@ exit 0 %{_mandir}/man1/* %changelog +* Tue Jun 25 2013 Thierry Parmentelat - rvm-ruby-1.20.10-6 +- add omf-rc in the mix + * Fri May 18 2013 Christoph Dwertmann - 4.xxx - downloads RVM instead of relying on local sources - works with latest RVM and Fedora