[packages/ruby/dev-2.0: 2/21] new files
glen
glen at pld-linux.org
Fri Apr 18 02:24:08 CEST 2014
commit c0484a8d38c3f70ce548d30201acd709c182d52d
Author: Elan Ruusamäe <glen at delfi.ee>
Date: Wed Mar 19 15:27:29 2014 +0200
new files
DESTDIR.patch | 73 +++++++
custom-rubygems-location.patch | 84 ++++++++
duplicated-paths.patch | 70 +++++++
empty-ruby-version.patch | 34 ++++
rubygems-2.0.0-binary-extensions.patch | 344 +++++++++++++++++++++++++++++++++
5 files changed, 605 insertions(+)
---
diff --git a/DESTDIR.patch b/DESTDIR.patch
new file mode 100644
index 0000000..93ef17a
--- /dev/null
+++ b/DESTDIR.patch
@@ -0,0 +1,73 @@
+From 28e8a4ad0146fef37b514bde9a27ba5b6f7c34c5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
+Date: Tue, 2 Jul 2013 11:51:50 +0200
+Subject: [PATCH] Revert "mkmf.rb: prefix install_dirs only with DESTDIR"
+
+Fixes issues with DESTDIR.
+https://bugs.ruby-lang.org/issues/8115
+
+This reverts commit 7e1d5045943835ff906850e7b3bc71f985ae5f36.
+---
+ lib/mkmf.rb | 29 ++++++++++++++---------------
+ 1 file changed, 14 insertions(+), 15 deletions(-)
+
+diff --git a/lib/mkmf.rb b/lib/mkmf.rb
+index ee89198..cca487e 100644
+--- a/lib/mkmf.rb
++++ b/lib/mkmf.rb
+@@ -189,21 +189,21 @@ module MakeMakefile
+ ]
+ elsif $configure_args.has_key?('--vendor')
+ dirs = [
+- ['BINDIR', '$(DESTDIR)$(bindir)'],
+- ['RUBYCOMMONDIR', '$(DESTDIR)$(vendordir)$(target_prefix)'],
+- ['RUBYLIBDIR', '$(DESTDIR)$(vendorlibdir)$(target_prefix)'],
+- ['RUBYARCHDIR', '$(DESTDIR)$(vendorarchdir)$(target_prefix)'],
+- ['HDRDIR', '$(DESTDIR)$(rubyhdrdir)/ruby$(target_prefix)'],
+- ['ARCHHDRDIR', '$(DESTDIR)$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
++ ['BINDIR', '$(bindir)'],
++ ['RUBYCOMMONDIR', '$(vendordir)$(target_prefix)'],
++ ['RUBYLIBDIR', '$(vendorlibdir)$(target_prefix)'],
++ ['RUBYARCHDIR', '$(vendorarchdir)$(target_prefix)'],
++ ['HDRDIR', '$(rubyhdrdir)/ruby$(target_prefix)'],
++ ['ARCHHDRDIR', '$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
+ ]
+ else
+ dirs = [
+- ['BINDIR', '$(DESTDIR)$(bindir)'],
+- ['RUBYCOMMONDIR', '$(DESTDIR)$(sitedir)$(target_prefix)'],
+- ['RUBYLIBDIR', '$(DESTDIR)$(sitelibdir)$(target_prefix)'],
+- ['RUBYARCHDIR', '$(DESTDIR)$(sitearchdir)$(target_prefix)'],
+- ['HDRDIR', '$(DESTDIR)$(rubyhdrdir)/ruby$(target_prefix)'],
+- ['ARCHHDRDIR', '$(DESTDIR)$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
++ ['BINDIR', '$(bindir)'],
++ ['RUBYCOMMONDIR', '$(sitedir)$(target_prefix)'],
++ ['RUBYLIBDIR', '$(sitelibdir)$(target_prefix)'],
++ ['RUBYARCHDIR', '$(sitearchdir)$(target_prefix)'],
++ ['HDRDIR', '$(rubyhdrdir)/ruby$(target_prefix)'],
++ ['ARCHHDRDIR', '$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
+ ]
+ end
+ dirs << ['target_prefix', (target_prefix ? "/#{target_prefix}" : "")]
+@@ -1728,7 +1728,6 @@ SRC
+ end
+
+ def with_destdir(dir)
+- return dir unless $extmk
+ dir = dir.sub($dest_prefix_pattern, '')
+ /\A\$[\(\{]/ =~ dir ? dir : "$(DESTDIR)"+dir
+ end
+@@ -1787,8 +1786,8 @@ ECHO = $(ECHO1:0=@echo)
+ #### Start of system configuration section. ####
+ #{"top_srcdir = " + $top_srcdir.sub(%r"\A#{Regexp.quote($topdir)}/", "$(topdir)/") if $extmk}
+ srcdir = #{srcdir.gsub(/\$\((srcdir)\)|\$\{(srcdir)\}/) {mkintpath(CONFIG[$1||$2]).unspace}}
+-topdir = #{mkintpath(topdir = $extmk ? CONFIG["topdir"] : $topdir).unspace}
+-hdrdir = #{(hdrdir = CONFIG["hdrdir"]) == topdir ? "$(topdir)" : mkintpath(hdrdir).unspace}
++topdir = #{mkintpath($extmk ? CONFIG["topdir"] : $topdir).unspace}
++hdrdir = #{mkintpath(CONFIG["hdrdir"]).unspace}
+ arch_hdrdir = #{$arch_hdrdir.quote}
+ PATH_SEPARATOR = #{CONFIG['PATH_SEPARATOR']}
+ VPATH = #{vpath.join(CONFIG['PATH_SEPARATOR'])}
+--
+1.8.2.1
+
diff --git a/custom-rubygems-location.patch b/custom-rubygems-location.patch
new file mode 100644
index 0000000..90ad58d
--- /dev/null
+++ b/custom-rubygems-location.patch
@@ -0,0 +1,84 @@
+From b5e9dc3683cb085aa57e7b12c35a4f21b2cc1482 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
+Date: Fri, 11 Nov 2011 13:14:45 +0100
+Subject: [PATCH] Allow to install RubyGems into custom location, outside of
+ Ruby tree.
+
+---
+ configure.in | 8 ++++++++
+ tool/rbinstall.rb | 9 +++++++++
+ version.c | 4 ++++
+ 3 files changed, 21 insertions(+)
+
+diff --git a/configure.in b/configure.in
+index 1627d12..e064b2b 100644
+--- a/configure.in
++++ b/configure.in
+@@ -3349,6 +3349,13 @@ AC_ARG_WITH(vendorarchdir,
+ [vendorarchdir=$withval],
+ [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby/${ruby_version}'}${multiarch-'${vendorlibdir}/${sitearch}'}])
+
++AC_ARG_WITH(rubygemsdir,
++ AS_HELP_STRING([--with-rubygemsdir=DIR], [custom rubygems directory]),
++ [rubygemsdir=$withval])
++if test "$rubygemsdir" != ""; then
++ AC_DEFINE_UNQUOTED(RUBYGEMS_DIR,"$rubygemsdir" !<verconf>!)
++fi
++
+ unexpand_shvar rubylibprefix exec_prefix libdir RUBY_BASE_NAME
+ unexpand_shvar rubyarchprefix exec_prefix libdir arch RUBY_BASE_NAME archlibdir rubylibprefix
+ unexpand_shvar rubysitearchprefix exec_prefix libdir sitearch arch RUBY_BASE_NAME archlibdir sitearchlibdir rubylibprefix
+@@ -3415,6 +3422,7 @@ AC_SUBST(sitearchdir)dnl
+ AC_SUBST(vendordir)dnl
+ AC_SUBST(vendorlibdir)dnl
+ AC_SUBST(vendorarchdir)dnl
++AC_SUBST(rubygemsdir)dnl
+
+ configure_args=$ac_configure_args
+ AC_SUBST(configure_args)dnl
+diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
+index 92e54c6..c72dfb6 100755
+--- a/tool/rbinstall.rb
++++ b/tool/rbinstall.rb
+@@ -313,6 +313,7 @@ sitelibdir = CONFIG["sitelibdir"]
+ sitearchlibdir = CONFIG["sitearchdir"]
+ vendorlibdir = CONFIG["vendorlibdir"]
+ vendorarchlibdir = CONFIG["vendorarchdir"]
++rubygemsdir = CONFIG["rubygemsdir"]
+ mandir = CONFIG["mandir", true]
+ docdir = CONFIG["docdir", true]
+ configure_args = Shellwords.shellwords(CONFIG["configure_args"])
+@@ -500,7 +501,15 @@ end
+ install?(:local, :comm, :lib) do
+ prepare "library scripts", rubylibdir
+ noinst = %w[README* *.txt *.rdoc *.gemspec]
++ noinst += %w[*ubygems.rb rubygems/ datadir.rb] if rubygemsdir
+ install_recursive(File.join(srcdir, "lib"), rubylibdir, :no_install => noinst, :mode => $data_mode)
++ if rubygemsdir
++ noinst = %w[obsolete.rb]
++ install_recursive(File.join(srcdir, "lib", "rubygems"), File.join(rubygemsdir, "rubygems"), :mode => $data_mode)
++ install_recursive(File.join(srcdir, "lib", "rbconfig"), File.join(rubygemsdir, "rbconfig"), :no_install => noinst, :mode => $data_mode)
++ install(File.join(srcdir, "lib", "ubygems.rb"), File.join(rubygemsdir, "ubygems.rb"), :mode => $data_mode)
++ install(File.join(srcdir, "lib", "rubygems.rb"), File.join(rubygemsdir, "rubygems.rb"), :mode => $data_mode)
++ end
+ end
+
+ install?(:local, :arch, :lib) do
+diff --git a/version.c b/version.c
+index 54c4513..d76100b 100644
+--- a/version.c
++++ b/version.c
+@@ -99,6 +99,10 @@ const char ruby_initial_load_paths[] =
+ #endif
+ #endif
+
++#ifdef RUBYGEMS_DIR
++ RUBYGEMS_DIR "\0"
++#endif
++
+ RUBY_LIB "\0"
+ #ifdef RUBY_THINARCH
+ RUBY_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
+--
+1.8.1.2
+
diff --git a/duplicated-paths.patch b/duplicated-paths.patch
new file mode 100644
index 0000000..58d602d
--- /dev/null
+++ b/duplicated-paths.patch
@@ -0,0 +1,70 @@
+From e943a89efd63dcfb80a0ab8d9a4db37f523f508e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
+Date: Fri, 8 Feb 2013 22:48:41 +0100
+Subject: [PATCH] Prevent duplicated paths when empty version string is
+ configured.
+
+---
+ configure.in | 3 +++
+ version.c | 10 ++++++++++
+ 2 files changed, 13 insertions(+)
+
+diff --git a/configure.in b/configure.in
+index 5850bbf..7604bb8 100644
+--- a/configure.in
++++ b/configure.in
+@@ -3367,6 +3367,9 @@ unexpand_shvar exec_prefix prefix
+ if test ${RUBY_LIB_VERSION_STYLE+set}; then
+ AC_DEFINE_UNQUOTED(RUBY_LIB_VERSION_STYLE, $RUBY_LIB_VERSION_STYLE !<verconf>!)
+ else
++ if test "x${ruby_version}" = 'x'; then
++ AC_DEFINE(RUBY_LIB_VERSION_BLANK, 1)
++ fi
+ AC_DEFINE_UNQUOTED(RUBY_LIB_VERSION, [$RUBY_LIB_VERSION] !<verconf>!)
+ fi
+ AC_DEFINE_UNQUOTED(RUBY_EXEC_PREFIX, ${RUBY_EXEC_PREFIX})
+diff --git a/version.c b/version.c
+index 282960d..54c4513 100644
+--- a/version.c
++++ b/version.c
+@@ -39,9 +39,15 @@
+ #define RUBY_VENDOR_LIB RUBY_LIB_PREFIX"/vendor_ruby"
+ #endif
+
++#ifdef RUBY_LIB_VERSION_BLANK
++#define RUBY_LIB RUBY_LIB_PREFIX
++#define RUBY_SITE_LIB2 RUBY_SITE_LIB
++#define RUBY_VENDOR_LIB2 RUBY_VENDOR_LIB
++#else
+ #define RUBY_LIB RUBY_LIB_PREFIX "/"RUBY_LIB_VERSION
+ #define RUBY_SITE_LIB2 RUBY_SITE_LIB "/"RUBY_LIB_VERSION
+ #define RUBY_VENDOR_LIB2 RUBY_VENDOR_LIB "/"RUBY_LIB_VERSION
++#endif
+ #ifndef RUBY_ARCH_LIB_FOR
+ #define RUBY_ARCH_LIB_FOR(arch) RUBY_LIB "/"arch
+ #endif
+@@ -77,8 +83,10 @@ const char ruby_initial_load_paths[] =
+ RUBY_SITE_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
+ #endif
+ RUBY_SITE_ARCH_LIB_FOR(RUBY_SITEARCH) "\0"
++#ifndef RUBY_LIB_VERSION_BLANK
+ RUBY_SITE_LIB "\0"
+ #endif
++#endif
+
+ #ifndef NO_RUBY_VENDOR_LIB
+ RUBY_VENDOR_LIB2 "\0"
+@@ -86,8 +94,10 @@ const char ruby_initial_load_paths[] =
+ RUBY_VENDOR_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
+ #endif
+ RUBY_VENDOR_ARCH_LIB_FOR(RUBY_SITEARCH) "\0"
++#ifndef RUBY_LIB_VERSION_BLANK
+ RUBY_VENDOR_LIB "\0"
+ #endif
++#endif
+
+ RUBY_LIB "\0"
+ #ifdef RUBY_THINARCH
+--
+1.8.1.2
+
diff --git a/empty-ruby-version.patch b/empty-ruby-version.patch
new file mode 100644
index 0000000..365dc7b
--- /dev/null
+++ b/empty-ruby-version.patch
@@ -0,0 +1,34 @@
+From c9b2eff36728266052ccfff54d3ac0a0624fd0f1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
+Date: Thu, 14 Feb 2013 11:50:41 +0100
+Subject: [PATCH] Use File.join insteado of manual path creation.
+
+This prevents issues, when File.join in #new_default_spec removes
+superfluous slashes while they are kept in expected paths. E.g. the test
+would fail if ruby configuration specifies --with-ruby-version=''.
+---
+ test/rubygems/test_gem_commands_contents_command.rb | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/test/rubygems/test_gem_commands_contents_command.rb b/test/rubygems/test_gem_commands_contents_command.rb
+index 60df53f..35c9631 100644
+--- a/test/rubygems/test_gem_commands_contents_command.rb
++++ b/test/rubygems/test_gem_commands_contents_command.rb
+@@ -140,10 +140,10 @@ lib/foo.rb
+ @cmd.execute
+ end
+
+- expected = %W[
+- #{Gem::ConfigMap[:bindir]}/default_command
+- #{Gem::ConfigMap[:rubylibdir]}/default/gem.rb
+- #{Gem::ConfigMap[:archdir]}/default_gem.so
++ expected = [
++ File.join(Gem::ConfigMap[:bindir], 'default_command'),
++ File.join(Gem::ConfigMap[:rubylibdir], 'default/gem.rb'),
++ File.join(Gem::ConfigMap[:archdir], 'default_gem.so')
+ ].sort.join "\n"
+
+ assert_equal expected, @ui.output.chomp
+--
+1.8.1.2
+
diff --git a/rubygems-2.0.0-binary-extensions.patch b/rubygems-2.0.0-binary-extensions.patch
new file mode 100644
index 0000000..4876d35
--- /dev/null
+++ b/rubygems-2.0.0-binary-extensions.patch
@@ -0,0 +1,344 @@
+From ec90622235ae19b28a327cb50a10e0311e8f3d71 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
+Date: Thu, 3 Nov 2011 16:43:05 +0100
+Subject: [PATCH 1/8] Add dedicate extensions folder into $LOAD_PATH.
+
+---
+ lib/rubygems/specification.rb | 32 ++++++++++++++++++++++++++++++--
+ 1 file changed, 30 insertions(+), 2 deletions(-)
+
+diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
+index cabdf8d..87b14d2 100644
+--- a/lib/rubygems/specification.rb
++++ b/lib/rubygems/specification.rb
+@@ -1256,6 +1256,12 @@ class Gem::Specification
+ File.join full_gem_path, path
+ end
+
++ unless extensions.empty?
++ paths += require_paths.map do |path|
++ File.join ext_dir, path
++ end
++ end
++
+ # gem directories must come after -I and ENV['RUBYLIB']
+ insert_index = Gem.load_path_insert_index
+
+@@ -1374,11 +1380,16 @@ class Gem::Specification
+
+ def contains_requirable_file? file
+ root = full_gem_path
++ ext = ext_dir
+ suffixes = Gem.suffixes
+
+ require_paths.any? do |lib|
+- base = "#{root}/#{lib}/#{file}"
+- suffixes.any? { |suf| File.file? "#{base}#{suf}" }
++ base = ["#{root}/#{lib}/#{file}"]
++ base << "#{ext}/#{lib}/#{file}" unless extensions.empty?
++
++ base.any? do |path|
++ suffixes.any? { |suf| File.file? "#{path}#{suf}" }
++ end
+ end
+ end
+
+@@ -1674,6 +1685,23 @@ class Gem::Specification
+ end
+
+ ##
++ # Returns the full path to this spec's ext directory.
++ # eg: /usr/local/lib/ruby/1.8/exts/mygem-1.0
++
++ def ext_dir
++ @gem_dir ||= File.expand_path File.join(exts_dir, full_name)
++ end
++
++ ##
++ # Returns the full path to the exts directory containing this spec's
++ # gem directory. eg: /usr/local/lib/ruby/1.8/exts
++
++ def exts_dir
++ # TODO: this logic seems terribly broken, but tests fail if just base_dir
++ @exts_dir ||= File.join(loaded_from && base_dir || Gem.dir, "exts")
++ end
++
++ ##
+ # Deprecated and ignored, defaults to true.
+ #
+ # Formerly used to indicate this gem was RDoc-capable.
+--
+1.8.1.2
+
+
+From e42819f32fc5d935f7e7189ec4be8bdab0a2cf3f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
+Date: Wed, 16 Nov 2011 13:26:48 +0100
+Subject: [PATCH 2/8] Use spec's ext dir for extension installation.
+
+---
+ lib/rubygems/installer.rb | 2 +-
+ lib/rubygems/specification.rb | 7 +++----
+ 2 files changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
+index 780a88b..854c177 100644
+--- a/lib/rubygems/installer.rb
++++ b/lib/rubygems/installer.rb
+@@ -646,7 +646,7 @@ TEXT
+ say "This could take a while..."
+ end
+
+- dest_path = File.join gem_dir, spec.require_paths.first
++ dest_path = spec.ext_dir
+ ran_rake = false # only run rake once
+
+ spec.extensions.each do |extension|
+diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
+index 87b14d2..492ddbe 100644
+--- a/lib/rubygems/specification.rb
++++ b/lib/rubygems/specification.rb
+@@ -1689,16 +1689,15 @@ class Gem::Specification
+ # eg: /usr/local/lib/ruby/1.8/exts/mygem-1.0
+
+ def ext_dir
+- @gem_dir ||= File.expand_path File.join(exts_dir, full_name)
++ @ext_dir ||= File.join exts_dir, full_name, require_paths.first
+ end
+
+ ##
+ # Returns the full path to the exts directory containing this spec's
+- # gem directory. eg: /usr/local/lib/ruby/1.8/exts
++ # gem directory. eg: /usr/local/lib/ruby/1.8/gems
+
+ def exts_dir
+- # TODO: this logic seems terribly broken, but tests fail if just base_dir
+- @exts_dir ||= File.join(loaded_from && base_dir || Gem.dir, "exts")
++ @exts_dir ||= gems_dir
+ end
+
+ ##
+--
+1.8.1.2
+
+
+From 0e9dd0655111f7dda805233c79a3771459d9a66a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
+Date: Wed, 16 Nov 2011 14:52:16 +0100
+Subject: [PATCH 3/9] Simplify the extending of $LOAD_PATH for binary gems.
+
+---
+ lib/rubygems/specification.rb | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
+index 492ddbe..c703827 100644
+--- a/lib/rubygems/specification.rb
++++ b/lib/rubygems/specification.rb
+@@ -1256,11 +1256,7 @@ class Gem::Specification
+ File.join full_gem_path, path
+ end
+
+- unless extensions.empty?
+- paths += require_paths.map do |path|
+- File.join ext_dir, path
+- end
+- end
++ paths << ext_dir unless extensions.empty? || paths.include?(ext_dir)
+
+ # gem directories must come after -I and ENV['RUBYLIB']
+ insert_index = Gem.load_path_insert_index
+@@ -1697,7 +1693,10 @@ class Gem::Specification
+ # gem directory. eg: /usr/local/lib/ruby/1.8/gems
+
+ def exts_dir
+- @exts_dir ||= gems_dir
++ @exts_dir ||= begin
++ dirs = Gem.default_dirs.detect {|location, paths| paths[:gem_dir] == base_dir}
++ dirs ? File.join(dirs.last[:ext_dir], 'exts') : gems_dir
++ end
+ end
+
+ ##
+--
+1.8.1.2
+
+
+From 9a8556c609e800d0dbd24af416d613f2e82f323c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
+Date: Fri, 9 Dec 2011 16:31:04 +0100
+Subject: [PATCH 4/8] Fix the binary extension search path construction.
+
+---
+ lib/rubygems/installer.rb | 2 +-
+ lib/rubygems/specification.rb | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
+index 854c177..f1f2ad7 100644
+--- a/lib/rubygems/installer.rb
++++ b/lib/rubygems/installer.rb
+@@ -646,7 +646,7 @@ TEXT
+ say "This could take a while..."
+ end
+
+- dest_path = spec.ext_dir
++ dest_path = File.join spec.ext_dir, spec.require_paths.first
+ ran_rake = false # only run rake once
+
+ spec.extensions.each do |extension|
+diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
+index c703827..fa9ea6e 100644
+--- a/lib/rubygems/specification.rb
++++ b/lib/rubygems/specification.rb
+@@ -1256,7 +1256,7 @@ class Gem::Specification
+ File.join full_gem_path, path
+ end
+
+- paths << ext_dir unless extensions.empty? || paths.include?(ext_dir)
++ paths << File.join(ext_dir, require_paths.first) unless extensions.empty? || (ext_dir == full_gem_path)
+
+ # gem directories must come after -I and ENV['RUBYLIB']
+ insert_index = Gem.load_path_insert_index
+@@ -1685,7 +1685,7 @@ class Gem::Specification
+ # eg: /usr/local/lib/ruby/1.8/exts/mygem-1.0
+
+ def ext_dir
+- @ext_dir ||= File.join exts_dir, full_name, require_paths.first
++ @ext_dir ||= File.join exts_dir, full_name
+ end
+
+ ##
+--
+1.8.1.2
+
+
+From 476c2f90cc6f5f490858f253a9b23eb19d53d2fc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
+Date: Tue, 13 Dec 2011 12:14:54 +0100
+Subject: [PATCH 5/8] Remove binary extensions during uninstall.
+
+---
+ lib/rubygems/uninstaller.rb | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/rubygems/uninstaller.rb b/lib/rubygems/uninstaller.rb
+index d672b9d..5c31a0c 100644
+--- a/lib/rubygems/uninstaller.rb
++++ b/lib/rubygems/uninstaller.rb
+@@ -246,6 +246,7 @@ class Gem::Uninstaller
+ File.writable?(spec.base_dir)
+
+ FileUtils.rm_rf spec.full_gem_path
++ FileUtils.rm_rf spec.ext_dir
+
+ # TODO: should this be moved to spec?... I vote eww (also exists in docmgr)
+ old_platform_name = [spec.name,
+--
+1.8.1.2
+
+
+From 35dc17e86f701fe1be80d98ace79735c535fd570 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
+Date: Tue, 13 Dec 2011 14:27:14 +0100
+Subject: [PATCH 6/8] Avoid dependency on customized operating_system.rb.
+
+---
+ lib/rubygems/defaults.rb | 11 +++++++++++
+ lib/rubygems/specification.rb | 5 +----
+ 2 files changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/lib/rubygems/defaults.rb b/lib/rubygems/defaults.rb
+index ea84e5c..b221954 100644
+--- a/lib/rubygems/defaults.rb
++++ b/lib/rubygems/defaults.rb
+@@ -101,6 +101,17 @@ module Gem
+ end
+
+ ##
++ # Returns binary extensions dir for specified RubyGems base dir or nil
++ # if such directory cannot be determined.
++ #
++ # By default, the binary extensions are located side by side with their
++ # Ruby counterparts, therefore nil is returned
++
++ def self.default_ext_dir_for base_dir
++ nil
++ end
++
++ ##
+ # A wrapper around RUBY_ENGINE const that may not be defined
+
+ def self.ruby_engine
+diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
+index fa9ea6e..2b10499 100644
+--- a/lib/rubygems/specification.rb
++++ b/lib/rubygems/specification.rb
+@@ -1693,10 +1693,7 @@ class Gem::Specification
+ # gem directory. eg: /usr/local/lib/ruby/1.8/gems
+
+ def exts_dir
+- @exts_dir ||= begin
+- dirs = Gem.default_dirs.detect {|location, paths| paths[:gem_dir] == base_dir}
+- dirs ? File.join(dirs.last[:ext_dir], 'exts') : gems_dir
+- end
++ @exts_dir ||= Gem.default_ext_dir_for(base_dir) || gems_dir
+ end
+
+ ##
+--
+1.8.1.2
+
+
+From 0937c0b0a3c2ed08ab5b0875f7f95e24157525c2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
+Date: Thu, 7 Feb 2013 13:07:34 +0100
+Subject: [PATCH 7/8] Fix binary extensions installation when --install-dir is
+ specified.
+
+---
+ lib/rubygems/installer.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
+index f1f2ad7..e1577fc 100644
+--- a/lib/rubygems/installer.rb
++++ b/lib/rubygems/installer.rb
+@@ -646,7 +646,7 @@ TEXT
+ say "This could take a while..."
+ end
+
+- dest_path = File.join spec.ext_dir, spec.require_paths.first
++ dest_path = File.join(options[:install_dir] ? gem_dir : spec.ext_dir, spec.require_paths.first)
+ ran_rake = false # only run rake once
+
+ spec.extensions.each do |extension|
+--
+1.8.1.2
+
+
+From 062a11c59731f5875d5a8821a212c8a41cb84577 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
+Date: Fri, 15 Feb 2013 17:07:07 +0100
+Subject: [PATCH 8/8] Use correct option.
+
+---
+ lib/rubygems/installer.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
+index e1577fc..1492c68 100644
+--- a/lib/rubygems/installer.rb
++++ b/lib/rubygems/installer.rb
+@@ -646,7 +646,7 @@ TEXT
+ say "This could take a while..."
+ end
+
+- dest_path = File.join(options[:install_dir] ? gem_dir : spec.ext_dir, spec.require_paths.first)
++ dest_path = File.join(@install_dir ? gem_dir : spec.ext_dir, spec.require_paths.first)
+ ran_rake = false # only run rake once
+
+ spec.extensions.each do |extension|
+--
+1.8.1.2
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/ruby.git/commitdiff/44b97f26f94a3604b2a6245c5945f5c385a54cb9
More information about the pld-cvs-commit
mailing list