diff --git a/operating_system.rb b/operating_system.rb index d7d5702..8e742fe 100644 --- a/operating_system.rb +++ b/operating_system.rb @@ -38,6 +38,14 @@ module Gem end private :rpmbuild? + ## + # Get enabled SCLs in order of (most) dependent SCL to base SCL + + def x_scls + @x_scls ||= ENV['X_SCLS'].split(' ').reverse! + end + private :x_scls + ## # Default gems locations allowed on FHS system (/usr, /usr/share). # The locations are derived from directories specified during build @@ -54,7 +62,7 @@ module Gem if ENV['GEM_PATH'] gem_paths = ENV['GEM_PATH'].split(':') - ENV['X_SCLS'].split(' ').each do |scl| + x_scls.each do |scl| next if scl == '@SCL@' regexp = /#{scl}\/root\/usr\/share\/gems/ @@ -64,7 +72,7 @@ module Gem @default_locations["#{scl}_system".to_sym] = "#{prefix}#{scl}/root/usr" @default_locations["#{scl}_local".to_sym] = "#{prefix}#{scl}/root/usr/local" end - end if ENV['X_SCLS'] + end end @default_locations @@ -117,7 +125,7 @@ module Gem def default_dir if opt_build_root? - scl_prefix = ENV['X_SCLS'].split(' ').detect {|c| c != '@SCL@'} + scl_prefix = x_scls.detect {|c| c != '@SCL@'} scl_prefix = scl_prefix ? scl_prefix + '_': nil Gem.default_dirs[:"#{scl_prefix}system"][:gem_dir] @@ -135,7 +143,7 @@ module Gem def default_bindir if opt_build_root? - scl_prefix = ENV['X_SCLS'].split(' ').detect {|c| c != '@SCL@'} + scl_prefix = x_scls.detect {|c| c != '@SCL@'} scl_prefix = scl_prefix ? scl_prefix + '_': nil Gem.default_dirs[:"#{scl_prefix}system"][:bin_dir] @@ -148,7 +156,7 @@ module Gem def default_ext_dir_for base_dir dir = if rpmbuild? - scl_prefix = ENV['X_SCLS'].split(' ').detect {|c| c != '@SCL@' && base_dir =~ /\/#{c}\//} + scl_prefix = x_scls.detect {|c| c != '@SCL@' && base_dir =~ /\/#{c}\//} scl_prefix = scl_prefix ? scl_prefix + '_': nil build_dir = base_dir.chomp Gem.default_dirs[:"#{scl_prefix}system"][:gem_dir] diff --git a/ruby.spec b/ruby.spec index a84a813..c030e04 100644 --- a/ruby.spec +++ b/ruby.spec @@ -23,7 +23,7 @@ %global ruby_archive %{ruby_archive}-%{?milestone}%{?!milestone:%{?revision:r%{revision}}} %endif -%global release 61 +%global release 62 %{!?release_string:%global release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}} # The RubyGems library has to stay out of Ruby directory three, since the @@ -972,6 +972,9 @@ TZ=UTC make check TESTS="-v $DISABLE_TESTS" %{ruby_libdir}/tkextlib %changelog +* Fri Aug 12 2016 Pavel Valena - 2.3.0-62 +- Fix support for dependent^2 SCLs + * Mon Jul 25 2016 Pavel Valena - 2.3.0-61 - Add %%{scl}-runtime to Requires in libs subpackage diff --git a/test_dependent_scls.rb b/test_dependent_scls.rb index 1388f94..30c49ee 100644 --- a/test_dependent_scls.rb +++ b/test_dependent_scls.rb @@ -7,7 +7,7 @@ class TestDependentSCLS < Test::Unit::TestCase def setup # Avoid caching - Gem.class_eval("@default_locations, @default_dirs = nil, nil") + Gem.class_eval("@x_scls, @default_locations, @default_dirs = nil, nil, nil") # TODO: Different bin dir during build ("/builddir/build/BUILD/ruby-2.0.0-p247") @bin_dir = Gem::ConfigMap[:bindir].split(File::SEPARATOR).last