X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=rpm%2Frvm-ruby.spec;h=dc6b8af32b8fa854779d7a7e327cecc81a3aca1d;hb=658ce693ca1cceb9413de98465c113bf2ffa427d;hp=68c3e0247da61ab8ffef40e9e529db159ebd0fa2;hpb=0efbf69fec5e29ccf7cd974e216d0c1704f545d8;p=rvm-ruby.git diff --git a/rpm/rvm-ruby.spec b/rpm/rvm-ruby.spec index 68c3e02..dc6b8af 100644 --- a/rpm/rvm-ruby.spec +++ b/rpm/rvm-ruby.spec @@ -7,25 +7,23 @@ Name: rvm-ruby Summary: Ruby Version Manager Version: 3 # Version will be appended the commit date -Release: 1.el6_CS +Release: 1.20.9 License: ASL 2.0 URL: http://rvm.beginrescueend.com/ Group: Applications/System - -Source: %{name}-%{version}.tar - +#Source: %{name}-%{version}.tar #BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n) BuildRequires: bash curl git BuildRequires: gcc-c++ patch chrpath readline readline-devel zlib-devel libyaml-devel libffi-devel openssl-devel -BuildRequires: sed grep tar gzip bzip2 make file +BuildRequires: sed grep tar gzip bzip2 make file ruby 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 +#Requires: gcc-c++ patch readline readline-devel zlib-devel libyaml-devel libffi-devel openssl-devel # Used by the scripts Requires: sed grep tar gzip bzip2 make file @@ -42,21 +40,6 @@ ensure correct permissions for the shared RVM content. RVM is activated for all logins by default. To disable remove %{_sysconfdir}/profile.d/rvm.sh and source rvm from each users shell. -Rubies in this package: -ruby-1.9.3-p0 - bundler - bluepill - whenever - -ruby-1.9.2-p290 - bundler - bluepill - whenever - - -%prep -%setup -q - %build %install @@ -67,13 +50,16 @@ for i in `env | grep ^rvm_ | cut -d"=" -f1`; do unset $i; done +( # Install everything into one directory -rvm_ignore_rvmrc=1 \ +export rvm_ignore_rvmrc=1 \ rvm_user_install_flag=0 \ rvm_path="%{buildroot}%{rvm_dir}" \ - rvm_bin_path="%{buildroot}%{_bindir}" \ rvm_man_path="%{buildroot}%{_mandir}" \ - ./install + HOME=%{buildroot} +\curl -L https://get.rvm.io | bash -s stable --version %{release} + #./install +) # So members of the rvm group can write to it find %{buildroot}%{rvm_dir} -exec chmod ug+w {} \; @@ -114,7 +100,7 @@ END_OF_RVMSH chmod 755 %{buildroot}%{_sysconfdir}/profile.d/rvm.sh -mv %{buildroot}%{_bindir}/rake %{buildroot}%{_bindir}/rvm-rake +#mv %{buildroot}%{_bindir}/rake %{buildroot}%{_bindir}/rvm-rake # At this point, install of RVM is finished @@ -125,24 +111,15 @@ mv %{buildroot}%{_bindir}/rake %{buildroot}%{_bindir}/rvm-rake export rvm_ignore_rvmrc=1 export rvm_user_install_flag=0 export rvm_path="%{buildroot}%{rvm_dir}" -export rvm_bin_path="%{buildroot}%{_bindir}" export rvm_man_path="%{buildroot}%{_mandir}" source ${rvm_path}/scripts/rvm gemi='gem install --no-ri --no-rdoc' -ruby_tag=ruby-1.9.3-p0 -rvm install $ruby_tag -rvm use $ruby_tag -$gemi bundler -$gemi whenever -$gemi bluepill - -ruby_tag=ruby-1.9.2-p290 +#touch $rvm_path/RELEASE +ruby_tag=ruby-1.9.3-p286 rvm install $ruby_tag rvm use $ruby_tag -$gemi bundler -$gemi whenever -$gemi bluepill +#$gemi bundler #ruby_tag=ruby-1.8.7-p352 #rvm install $ruby_tag @@ -153,6 +130,8 @@ export br=%{buildroot} # Remove sources rm -rf $br/usr/lib/rvm/src +# Remove logs +rm -rf $br/usr/lib/rvm/log/* # Strip binaries #find $br -type f -print0 |xargs -0 file --no-dereference --no-pad |grep 'not stripped' |cut -f1 -d: |xargs -r strip @@ -171,6 +150,17 @@ done find $br -type f \( -name \*.log -o -name \*.la \) -print0 |xargs -0 -r sed -i "s,$br,,g" find $br -type f -print0 |xargs -0 file --no-dereference --no-pad |grep ': .* text' |cut -f1 -d: |xargs -r sed -i "s,$br,,g" +# some Ruby code to replace library paths in binary files +# should work with Ruby 1.9 and 1.8 +! read -d '' fixpath <<"EOF" +if String.method_defined?(:encode) + $_.encode!("UTF-8", "UTF-8", :invalid => :replace) +end +$_.gsub!(/#{ENV["br"]}(.*?)\0/) do |s| + $1 + ( "\0" * ENV["br"].size ) + "\0" +end +EOF + # Strip object files in ar archives from bad path strings for f in `find $br -type f -name \*.a`; do td=`mktemp -d` @@ -182,11 +172,7 @@ for f in `find $br -type f -name \*.a`; do grep "$br" $g || continue # Replace the bad path with the good one, padded by nulls - ruby -p -i -e ' - $_.gsub!(/#{ENV["br"]}(.*?)\0/) do |s| - $1 + ( "\0" * ENV["br"].size ) + "\0" - end - ' $g + ruby -p -i -e "$fixpath" $g done ar r $f * @@ -199,18 +185,16 @@ for f in `find $br/usr/lib/rvm/rubies -type f -print0 |xargs -0 file --no-derefe grep "$br" $f || continue # Replace the bad path with the good one, padded by nulls - ruby -p -i -e ' - $_.gsub!(/#{ENV["br"]}(.*?)\0/) do |s| - $1 + ( "\0" * ENV["br"].size ) + "\0" - end - ' $f + ruby -p -i -e "$fixpath" $f done # Fix symlinks with bad path for f in `find $br -type l |grep "$br"`; do - ln -sf `readlink -f $f |sed "s,$br,,"` $f + ln -sfn `readlink -f $f |sed "s,$br,,"` $f done +find $br -maxdepth 1 -name '.*' -exec rm -rf {} \; +rm $br/usr/share/man/man1/rvm.1.gz %clean rm -rf %{buildroot} @@ -224,7 +208,6 @@ exit 0 %config(noreplace) /etc/rvmrc %config(noreplace) /etc/profile.d/rvm.sh %attr(-,root,%{rvm_group}) %{rvm_dir} -%{_bindir} %{_mandir}/man1/* %changelog