[ruby] Fix installation of binary gems.

Vít Ondruch vondruch at fedoraproject.org
Fri Feb 22 14:25:53 UTC 2013


commit 929678a63d1d43dd7a74b8acc9e47ec1b650625f
Author: Vít Ondruch <vondruch at redhat.com>
Date:   Fri Feb 15 18:06:40 2013 +0100

    Fix installation of binary gems.

 ...fy-global-Specification.dirs-during-insta.patch |   51 +++++++++++-
 rubygems-2.0.0-binary-extensions.patch             |   84 ++++++++++++++++---
 2 files changed, 119 insertions(+), 16 deletions(-)
---
diff --git a/rubygems-2.0.0-Do-not-modify-global-Specification.dirs-during-insta.patch b/rubygems-2.0.0-Do-not-modify-global-Specification.dirs-during-insta.patch
index b082597..c7c4ef7 100644
--- a/rubygems-2.0.0-Do-not-modify-global-Specification.dirs-during-insta.patch
+++ b/rubygems-2.0.0-Do-not-modify-global-Specification.dirs-during-insta.patch
@@ -1,7 +1,7 @@
 From b95b9942361104dc5b7fd08eb4970f893d8c1a54 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
 Date: Wed, 13 Feb 2013 13:12:30 +0100
-Subject: [PATCH 1/2] Remove duplicated check.
+Subject: [PATCH 1/3] Remove duplicated check.
 
 The loaded specifications are rejected already in #gather_dependencies,
 so this condition cannot trigger.
@@ -30,7 +30,7 @@ index d811f62..dffa8df 100644
 From 2fa9087b1986db6c7945c0f997fed2bfff5ce06a Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
 Date: Wed, 13 Feb 2013 15:47:47 +0100
-Subject: [PATCH 2/2] Do not modify global Specification.dirs during
+Subject: [PATCH 2/3] Do not modify global Specification.dirs during
  installation.
 
 While gems are installed into --install-dir just fine even without
@@ -103,3 +103,50 @@ index dffa8df..841f26a 100644
 -- 
 1.8.1.2
 
+
+From d473204ce920702dd87257db49355929f31530d4 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:02:44 +0100
+Subject: [PATCH 3/3] Default to Gem.dir as late as possible.
+
+---
+ lib/rubygems/dependency_installer.rb | 2 +-
+ lib/rubygems/installer.rb            | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/lib/rubygems/dependency_installer.rb b/lib/rubygems/dependency_installer.rb
+index 841f26a..abcfa0f 100644
+--- a/lib/rubygems/dependency_installer.rb
++++ b/lib/rubygems/dependency_installer.rb
+@@ -346,7 +346,7 @@ class Gem::DependencyInstaller
+                                 :force               => @force,
+                                 :format_executable   => @format_executable,
+                                 :ignore_dependencies => @ignore_dependencies,
+-                                :install_dir         => (@install_dir || Gem.dir),
++                                :install_dir         => @install_dir,
+                                 :security_policy     => @security_policy,
+                                 :user_install        => @user_install,
+                                 :wrappers            => @wrappers,
+diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
+index 780a88b..6543130 100644
+--- a/lib/rubygems/installer.rb
++++ b/lib/rubygems/installer.rb
+@@ -535,13 +535,13 @@ class Gem::Installer
+       :bin_dir      => nil,
+       :env_shebang  => false,
+       :force        => false,
+-      :install_dir  => Gem.dir,
+       :only_install_dir => false
+     }.merge options
+ 
+     @env_shebang         = options[:env_shebang]
+     @force               = options[:force]
+-    @gem_home            = options[:install_dir]
++    @install_dir         = options[:install_dir]
++    @gem_home            = options[:install_dir] || Gem.dir
+     @ignore_dependencies = options[:ignore_dependencies]
+     @format_executable   = options[:format_executable]
+     @security_policy     = options[:security_policy]
+-- 
+1.8.1.2
+
diff --git a/rubygems-2.0.0-binary-extensions.patch b/rubygems-2.0.0-binary-extensions.patch
index 43f3599..359b578 100644
--- a/rubygems-2.0.0-binary-extensions.patch
+++ b/rubygems-2.0.0-binary-extensions.patch
@@ -1,7 +1,7 @@
 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/7] Add dedicate extensions folder into $LOAD_PATH.
+Subject: [PATCH 1/9] Add dedicate extensions folder into $LOAD_PATH.
 
 ---
  lib/rubygems/specification.rb | 32 ++++++++++++++++++++++++++++++--
@@ -68,13 +68,13 @@ index cabdf8d..87b14d2 100644
    #
    # Formerly used to indicate this gem was RDoc-capable.
 -- 
-1.8.1
+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/7] Use spec's ext dir for extension installation.
+Subject: [PATCH 2/9] Use spec's ext dir for extension installation.
 
 ---
  lib/rubygems/installer.rb     | 2 +-
@@ -119,13 +119,13 @@ index 87b14d2..492ddbe 100644
  
    ##
 -- 
-1.8.1
+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/7] Simplify the extending of $LOAD_PATH for binary gems.
+Subject: [PATCH 3/9] Simplify the extending of $LOAD_PATH for binary gems.
 
 ---
  lib/rubygems/specification.rb | 11 +++++------
@@ -161,13 +161,13 @@ index 492ddbe..c703827 100644
  
    ##
 -- 
-1.8.1
+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/7] Fix the binary extension search path construction.
+Subject: [PATCH 4/9] Fix the binary extension search path construction.
 
 ---
  lib/rubygems/installer.rb     | 2 +-
@@ -210,13 +210,13 @@ index c703827..fa9ea6e 100644
  
    ##
 -- 
-1.8.1
+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/7] Remove binary extensions during uninstall.
+Subject: [PATCH 5/9] Remove binary extensions during uninstall.
 
 ---
  lib/rubygems/uninstaller.rb | 1 +
@@ -235,13 +235,13 @@ index d672b9d..5c31a0c 100644
      # TODO: should this be moved to spec?... I vote eww (also exists in docmgr)
      old_platform_name = [spec.name,
 -- 
-1.8.1
+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/7] Avoid dependency on customized operating_system.rb.
+Subject: [PATCH 6/9] Avoid dependency on customized operating_system.rb.
 
 ---
  lib/rubygems/defaults.rb      | 11 +++++++++++
@@ -287,13 +287,13 @@ index fa9ea6e..2b10499 100644
  
    ##
 -- 
-1.8.1
+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/7] Fix binary extensions installation when --install-dir is
+Subject: [PATCH 7/9] Fix binary extensions installation when --install-dir is
  specified.
 
 ---
@@ -314,5 +314,61 @@ index f1f2ad7..e1577fc 100644
  
      spec.extensions.each do |extension|
 -- 
-1.8.1
+1.8.1.2
+
+
+From 4d9675cab5decaef3c9f7f91b2f9c9abd2a19cea Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch at redhat.com>
+Date: Fri, 15 Feb 2013 16:24:29 +0100
+Subject: [PATCH 8/9] mkmf does not create folder for binary extensions
+ anymore.
+
+This was dropped in Ruby r37016 for some reasons :/
+---
+ lib/rubygems/ext/builder.rb | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/lib/rubygems/ext/builder.rb b/lib/rubygems/ext/builder.rb
+index d7d953f..812c20c 100644
+--- a/lib/rubygems/ext/builder.rb
++++ b/lib/rubygems/ext/builder.rb
+@@ -21,6 +21,10 @@ class Gem::Ext::Builder
+     mf = mf.gsub(/^RUBYLIBDIR\s*=\s*\$[^$]*/, "RUBYLIBDIR = #{dest_path}")
+     mf = mf.gsub(/\s*\S+\.time$/, "")
+ 
++    # Folder creation was dropped in r37016 for some reasons :/
++    target_prefix = mf[/^target_prefix\s*=\s*(.*)/, 1]
++    FileUtils.mkdir_p File.join(dest_path, target_prefix) rescue nil # in case of perms issues -- lame
++
+     File.open('Makefile', 'wb') {|f| f.print mf}
+ 
+     # try to find make program from Ruby configure arguments first
+-- 
+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 9/9] 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
+@@ -642,7 +642,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
 


More information about the scm-commits mailing list