author | April Chin <april.chin@oracle.com> |
Fri, 03 Oct 2014 08:23:05 -0700 | |
branch | s11u2-sru |
changeset 3362 | 6660993f1e66 |
permissions | -rw-r--r-- |
3362
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
1 |
# Add a vendor_dir for gems at vendor_ruby/gems/<ruby lib version>, to the end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
2 |
# of GEM PATHS, so gem will search the vendor directory for gems. |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
3 |
# We can use this directory to install Solaris Ruby modules |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
4 |
# that we want to package as gems. |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
5 |
# |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
6 |
# This is a subset of changes made to Rubygems 2.4.0 |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
7 |
# to fix rubygems issue #943 site_ruby/vendor_ruby equivalent for rubygems |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
8 |
# https://github.com/rubygems/rubygems/issues/943 |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
9 |
# We do not add the --vendor option to the gem command, |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
10 |
# nor do we change the default gem installation directory. |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
11 |
|
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
12 |
diff -rupN ruby-1.9.3-p484-orig/lib/rubygems/defaults.rb ruby-1.9.3-p484/lib/rubygems/defaults.rb |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
13 |
--- ruby-1.9.3-p484-orig/lib/rubygems/defaults.rb 2012-04-19 15:43:16.000000000 -0700 |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
14 |
+++ ruby-1.9.3-p484/lib/rubygems/defaults.rb 2014-08-05 10:40:08.041798000 -0700 |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
15 |
@@ -61,11 +61,11 @@ module Gem |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
16 |
# Default gem load path |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
17 |
|
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
18 |
def self.default_path |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
19 |
- if File.exist? Gem.user_home then |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
20 |
- [user_dir, default_dir] |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
21 |
- else |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
22 |
- [default_dir] |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
23 |
- end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
24 |
+ path = [] |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
25 |
+ path << user_dir if user_home && File.exist?(user_home) |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
26 |
+ path << default_dir |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
27 |
+ path << vendor_dir if File.directory? vendor_dir |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
28 |
+ path |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
29 |
end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
30 |
|
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
31 |
## |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
32 |
@@ -121,4 +121,13 @@ module Gem |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
33 |
'ruby' |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
34 |
end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
35 |
end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
36 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
37 |
+ ## |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
38 |
+ # Directory where vendor gems are installed. |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
39 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
40 |
+ def self.vendor_dir # :nodoc: |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
41 |
+ File.join RbConfig::CONFIG['vendordir'], 'gems', |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
42 |
+ RbConfig::CONFIG['ruby_version'] |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
43 |
+ end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
44 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
45 |
end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
46 |
diff -rupN ruby-1.9.3-p484-orig/test/rubygems/test_gem.rb ruby-1.9.3-p484/test/rubygems/test_gem.rb |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
47 |
--- ruby-1.9.3-p484-orig/test/rubygems/test_gem.rb 2012-04-19 15:43:16.000000000 -0700 |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
48 |
+++ ruby-1.9.3-p484/test/rubygems/test_gem.rb 2014-08-05 14:04:49.794776000 -0700 |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
49 |
@@ -604,6 +604,45 @@ class TestGem < Gem::TestCase |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
50 |
Gem::ConfigMap[:ruby_install_name] = orig_RUBY_INSTALL_NAME |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
51 |
end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
52 |
|
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
53 |
+ def test_default_path |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
54 |
+ orig_vendordir = RbConfig::CONFIG['vendordir'] |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
55 |
+ RbConfig::CONFIG['vendordir'] = File.join @tempdir, 'vendor' |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
56 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
57 |
+ FileUtils.rm_rf Gem.user_home |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
58 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
59 |
+ expected = [Gem.default_dir] |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
60 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
61 |
+ assert_equal expected, Gem.default_path |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
62 |
+ ensure |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
63 |
+ RbConfig::CONFIG['vendordir'] = orig_vendordir |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
64 |
+ end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
65 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
66 |
+ def test_default_path_user_home |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
67 |
+ orig_vendordir = RbConfig::CONFIG['vendordir'] |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
68 |
+ RbConfig::CONFIG['vendordir'] = File.join @tempdir, 'vendor' |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
69 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
70 |
+ expected = [Gem.user_dir, Gem.default_dir] |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
71 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
72 |
+ assert_equal expected, Gem.default_path |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
73 |
+ ensure |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
74 |
+ RbConfig::CONFIG['vendordir'] = orig_vendordir |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
75 |
+ end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
76 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
77 |
+ def test_default_path_vendor_dir |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
78 |
+ orig_vendordir = RbConfig::CONFIG['vendordir'] |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
79 |
+ RbConfig::CONFIG['vendordir'] = File.join @tempdir, 'vendor' |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
80 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
81 |
+ FileUtils.mkdir_p Gem.vendor_dir |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
82 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
83 |
+ FileUtils.rm_rf Gem.user_home |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
84 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
85 |
+ expected = [Gem.default_dir, Gem.vendor_dir] |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
86 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
87 |
+ assert_equal expected, Gem.default_path |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
88 |
+ ensure |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
89 |
+ RbConfig::CONFIG['vendordir'] = orig_vendordir |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
90 |
+ end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
91 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
92 |
def test_self_default_sources |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
93 |
assert_equal %w[http://rubygems.org/], Gem.default_sources |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
94 |
end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
95 |
@@ -1062,6 +1101,14 @@ class TestGem < Gem::TestCase |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
96 |
end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
97 |
end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
98 |
|
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
99 |
+ def test_self_vendor_dir |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
100 |
+ expected = |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
101 |
+ File.join RbConfig::CONFIG['vendordir'], 'gems', |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
102 |
+ RbConfig::CONFIG['ruby_version'] |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
103 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
104 |
+ assert_equal expected, Gem.vendor_dir |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
105 |
+ end |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
106 |
+ |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
107 |
def test_load_plugins |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
108 |
plugin_path = File.join "lib", "rubygems_plugin.rb" |
6660993f1e66
19324816 Fix rubygems to use a vendor_ruby path for gems in Solaris packages
April Chin <april.chin@oracle.com>
parents:
diff
changeset
|
109 |