rubygems-update 1.8.25 → 1.8.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +1 -0
- data.tar.gz.sig +2 -0
- data/.autotest +1 -1
- data/CVE-2013-4287.txt +36 -0
- data/History.txt +14 -1
- data/Manifest.txt +2 -0
- data/Rakefile +9 -2
- data/lib/rubygems.rb +1 -1
- data/lib/rubygems/ext/builder.rb +21 -14
- data/lib/rubygems/ext/ext_conf_builder.rb +44 -4
- data/lib/rubygems/installer.rb +5 -3
- data/lib/rubygems/test_case.rb +60 -0
- data/lib/rubygems/version.rb +1 -1
- data/test/rubygems/test_gem_ext_builder.rb +58 -0
- data/test/rubygems/test_gem_ext_configure_builder.rb +4 -4
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +52 -24
- data/test/rubygems/test_gem_indexer.rb +6 -4
- data/test/rubygems/test_gem_installer.rb +40 -0
- metadata +69 -44
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 96e012cc53e235e197d84c2d2a4eea42b89bc4e5
|
|
4
|
+
data.tar.gz: 6963749517681827506e11a24b0e7c1fb75ae347
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 09a61481c125c0740fc699d29b1ee5567bb3ef6e6b7c9622f546d496b09319fcaa12282b7056d1ee961cda99739f2849114b6d81fd550f5786baf842474a0a85
|
|
7
|
+
data.tar.gz: bdb3d9f8e46d4ba2270589f7085e844c59052485a990d557e506e57ad30132e196e05684cfaf3ee0c94bfbc9ca241e927048a9961236677b6d3f94bdefedbd01
|
checksums.yaml.gz.sig
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
M���#��������i1���,T,�-�^�k�Trwj�-
|
data.tar.gz.sig
ADDED
data/.autotest
CHANGED
data/CVE-2013-4287.txt
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
= Algorithmic complexity vulnerability in RubyGems 2.0.7 and older
|
|
2
|
+
|
|
3
|
+
RubyGems validates versions with a regular expression that is vulnerable to
|
|
4
|
+
denial of service due to a backtracking regular expression. For specially
|
|
5
|
+
crafted RubyGems versions attackers can cause denial of service through CPU
|
|
6
|
+
consumption.
|
|
7
|
+
|
|
8
|
+
RubyGems versions 2.0.7 and older, 2.1.0.rc.1 and 2.1.0.rc.2 are vulnerable.
|
|
9
|
+
|
|
10
|
+
Ruby versions 1.9.0 through 2.0.0p247 are vulnerable as they contain embedded
|
|
11
|
+
versions of RubyGems.
|
|
12
|
+
|
|
13
|
+
It does not appear to be possible to exploit this vulnerability by installing a
|
|
14
|
+
gem for RubyGems 1.8.x or 2.0.x. Vulnerable uses of RubyGems API include
|
|
15
|
+
packaging a gem (through `gem build`, Gem::Package or Gem::PackageTask),
|
|
16
|
+
sending user input to Gem::Version.new, Gem::Version.correct? or use of the
|
|
17
|
+
Gem::Version::VERSION_PATTERN or Gem::Version::ANCHORED_VERSION_PATTERN
|
|
18
|
+
constants.
|
|
19
|
+
|
|
20
|
+
Notably, users of bundler that install gems from git are vulnerable if a
|
|
21
|
+
malicious author changes the gemspec to an invalid version.
|
|
22
|
+
|
|
23
|
+
The vulnerability can be fixed by changing the first grouping to an atomic
|
|
24
|
+
grouping in Gem::Version::VERSION_PATTERN in lib/rubygems/version.rb. For
|
|
25
|
+
RubyGems 2.0.x:
|
|
26
|
+
|
|
27
|
+
- VERSION_PATTERN = '[0-9]+(\.[0-9a-zA-Z]+)*(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?' # :nodoc:
|
|
28
|
+
+ VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?' # :nodoc:
|
|
29
|
+
|
|
30
|
+
For RubyGems 1.8.x:
|
|
31
|
+
|
|
32
|
+
- VERSION_PATTERN = '[0-9]+(\.[0-9a-zA-Z]+)*' # :nodoc:
|
|
33
|
+
+ VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*' # :nodoc:
|
|
34
|
+
|
|
35
|
+
This vulnerability was discovered by Damir Sharipov <dammer2k@gmail.com>
|
|
36
|
+
|
data/History.txt
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
# coding: UTF-8
|
|
2
2
|
|
|
3
|
-
=== 1.8.
|
|
3
|
+
=== 1.8.26 / 2013-09-09
|
|
4
|
+
|
|
5
|
+
Security fixes:
|
|
6
|
+
|
|
7
|
+
* RubyGems 2.0.7 and earlier are vulnerable to excessive CPU usage due to a
|
|
8
|
+
backtracking in Gem::Version validation. See CVE-2013-4287 for full details
|
|
9
|
+
including vulnerable APIs. Fixed versions include 2.0.8, 1.8.26 and
|
|
10
|
+
1.8.23.1 (for Ruby 1.9.3). Issue #626 by Damir Sharipov.
|
|
11
|
+
|
|
12
|
+
Bug fixes:
|
|
13
|
+
|
|
14
|
+
* Fixed editing of a Makefile with 8-bit characters. Fixes #181
|
|
15
|
+
|
|
16
|
+
=== 1.8.25 / 2013-01-24
|
|
4
17
|
|
|
5
18
|
* 6 bug fixes:
|
|
6
19
|
|
data/Manifest.txt
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
.autotest
|
|
2
2
|
.document
|
|
3
|
+
CVE-2013-4287.txt
|
|
3
4
|
History.txt
|
|
4
5
|
LICENSE.txt
|
|
5
6
|
MIT.txt
|
|
@@ -164,6 +165,7 @@ test/rubygems/test_gem_dependency.rb
|
|
|
164
165
|
test/rubygems/test_gem_dependency_installer.rb
|
|
165
166
|
test/rubygems/test_gem_dependency_list.rb
|
|
166
167
|
test/rubygems/test_gem_doc_manager.rb
|
|
168
|
+
test/rubygems/test_gem_ext_builder.rb
|
|
167
169
|
test/rubygems/test_gem_ext_configure_builder.rb
|
|
168
170
|
test/rubygems/test_gem_ext_ext_conf_builder.rb
|
|
169
171
|
test/rubygems/test_gem_ext_rake_builder.rb
|
data/Rakefile
CHANGED
|
@@ -26,6 +26,9 @@ hoe = Hoe.spec 'rubygems-update' do
|
|
|
26
26
|
self.email = %w[rubygems-developers@rubyforge.org]
|
|
27
27
|
self.readme_file = 'README.rdoc'
|
|
28
28
|
|
|
29
|
+
license 'Ruby'
|
|
30
|
+
license 'MIT'
|
|
31
|
+
|
|
29
32
|
spec_extras[:required_rubygems_version] = Gem::Requirement.default
|
|
30
33
|
spec_extras[:required_ruby_version] = Gem::Requirement.new '>= 1.8.7'
|
|
31
34
|
spec_extras[:executables] = ['update_rubygems']
|
|
@@ -50,7 +53,9 @@ hoe = Hoe.spec 'rubygems-update' do
|
|
|
50
53
|
extra_dev_deps << ['rcov', '~> 0.9.0']
|
|
51
54
|
extra_dev_deps << ['ZenTest', '~> 4.5']
|
|
52
55
|
|
|
53
|
-
self.extra_rdoc_files = Dir["*.rdoc"]
|
|
56
|
+
self.extra_rdoc_files = Dir["*.rdoc"] + %w[
|
|
57
|
+
CVE-2013-4287.txt
|
|
58
|
+
]
|
|
54
59
|
|
|
55
60
|
spec_extras['rdoc_options'] = proc do |rdoc_options|
|
|
56
61
|
rdoc_options << "--title=RubyGems #{self.version} Documentation"
|
|
@@ -65,6 +70,8 @@ hoe = Hoe.spec 'rubygems-update' do
|
|
|
65
70
|
ENV['RAKE_SUCKS']
|
|
66
71
|
end
|
|
67
72
|
|
|
73
|
+
hoe.test_prelude = 'gem "minitest", "~> 4.0"'
|
|
74
|
+
|
|
68
75
|
task :docs => :rake_sucks
|
|
69
76
|
task :rake_sucks do
|
|
70
77
|
# This exists ENTIRELY because the rake design convention of
|
|
@@ -84,7 +91,7 @@ end
|
|
|
84
91
|
|
|
85
92
|
task :prerelease => [:clobber, :check_manifest, :test]
|
|
86
93
|
|
|
87
|
-
task :postrelease => [:
|
|
94
|
+
task :postrelease => [:upload, :publish_docs]
|
|
88
95
|
|
|
89
96
|
pkg_dir_path = "pkg/rubygems-update-#{hoe.version}"
|
|
90
97
|
task :package do
|
data/lib/rubygems.rb
CHANGED
data/lib/rubygems/ext/builder.rb
CHANGED
|
@@ -4,8 +4,18 @@
|
|
|
4
4
|
# See LICENSE.txt for permissions.
|
|
5
5
|
#++
|
|
6
6
|
|
|
7
|
+
require 'thread'
|
|
8
|
+
|
|
7
9
|
class Gem::Ext::Builder
|
|
8
10
|
|
|
11
|
+
##
|
|
12
|
+
# The builder shells-out to run various commands after changing the
|
|
13
|
+
# directory. This means multiple installations cannot be allowed to build
|
|
14
|
+
# extensions in parallel as they may change each other's directories leading
|
|
15
|
+
# to broken extensions or failed installations.
|
|
16
|
+
|
|
17
|
+
CHDIR_MUTEX = Mutex.new # :nodoc:
|
|
18
|
+
|
|
9
19
|
def self.class_name
|
|
10
20
|
name =~ /Ext::(.*)Builder/
|
|
11
21
|
$1.downcase
|
|
@@ -16,12 +26,6 @@ class Gem::Ext::Builder
|
|
|
16
26
|
raise Gem::InstallError, "Makefile not found:\n\n#{results.join "\n"}"
|
|
17
27
|
end
|
|
18
28
|
|
|
19
|
-
mf = File.read('Makefile')
|
|
20
|
-
mf = mf.gsub(/^RUBYARCHDIR\s*=\s*\$[^$]*/, "RUBYARCHDIR = #{dest_path}")
|
|
21
|
-
mf = mf.gsub(/^RUBYLIBDIR\s*=\s*\$[^$]*/, "RUBYLIBDIR = #{dest_path}")
|
|
22
|
-
|
|
23
|
-
File.open('Makefile', 'wb') {|f| f.print mf}
|
|
24
|
-
|
|
25
29
|
# try to find make program from Ruby configure arguments first
|
|
26
30
|
RbConfig::CONFIG['configure_args'] =~ /with-make-prog\=(\w+)/
|
|
27
31
|
make_program = $1 || ENV['make']
|
|
@@ -29,13 +33,16 @@ class Gem::Ext::Builder
|
|
|
29
33
|
make_program = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make'
|
|
30
34
|
end
|
|
31
35
|
|
|
32
|
-
|
|
33
|
-
cmd = "#{make_program}#{target}"
|
|
34
|
-
results << cmd
|
|
35
|
-
results << `#{cmd} #{redirector}`
|
|
36
|
+
destdir = '"DESTDIR=%s"' % ENV['DESTDIR'] if RUBY_VERSION > '2.0'
|
|
36
37
|
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
['', 'install'].each do |target|
|
|
39
|
+
# Pass DESTDIR via command line to override what's in MAKEFLAGS
|
|
40
|
+
cmd = [
|
|
41
|
+
make_program,
|
|
42
|
+
destdir,
|
|
43
|
+
target
|
|
44
|
+
].join(' ').rstrip
|
|
45
|
+
run(cmd, results, "make #{target}".rstrip)
|
|
39
46
|
end
|
|
40
47
|
end
|
|
41
48
|
|
|
@@ -43,12 +50,12 @@ class Gem::Ext::Builder
|
|
|
43
50
|
'2>&1'
|
|
44
51
|
end
|
|
45
52
|
|
|
46
|
-
def self.run(command, results)
|
|
53
|
+
def self.run(command, results, command_name = nil)
|
|
47
54
|
results << command
|
|
48
55
|
results << `#{command} #{redirector}`
|
|
49
56
|
|
|
50
57
|
unless $?.success? then
|
|
51
|
-
raise Gem::InstallError, "#{class_name} failed:\n\n#{results.join "\n"}"
|
|
58
|
+
raise Gem::InstallError, "#{command_name || class_name} failed:\n\n#{results.join "\n"}"
|
|
52
59
|
end
|
|
53
60
|
end
|
|
54
61
|
|
|
@@ -6,18 +6,58 @@
|
|
|
6
6
|
|
|
7
7
|
require 'rubygems/ext/builder'
|
|
8
8
|
require 'rubygems/command'
|
|
9
|
+
require 'fileutils'
|
|
10
|
+
require 'tempfile'
|
|
9
11
|
|
|
10
12
|
class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder
|
|
13
|
+
FileEntry = FileUtils::Entry_ # :nodoc:
|
|
11
14
|
|
|
12
15
|
def self.build(extension, directory, dest_path, results)
|
|
13
|
-
|
|
14
|
-
cmd << " #{Gem::Command.build_args.join ' '}" unless Gem::Command.build_args.empty?
|
|
16
|
+
tmp_dest = Dir.mktmpdir(".gem.", ".")
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
t = nil
|
|
19
|
+
Tempfile.open %w"siteconf .rb", "." do |siteconf|
|
|
20
|
+
t = siteconf
|
|
21
|
+
siteconf.puts "require 'rbconfig'"
|
|
22
|
+
siteconf.puts "dest_path = #{(tmp_dest || dest_path).dump}"
|
|
23
|
+
%w[sitearchdir sitelibdir].each do |dir|
|
|
24
|
+
siteconf.puts "RbConfig::MAKEFILE_CONFIG['#{dir}'] = dest_path"
|
|
25
|
+
siteconf.puts "RbConfig::CONFIG['#{dir}'] = dest_path"
|
|
26
|
+
end
|
|
17
27
|
|
|
18
|
-
|
|
28
|
+
siteconf.flush
|
|
29
|
+
|
|
30
|
+
rubyopt = ENV["RUBYOPT"]
|
|
31
|
+
destdir = ENV["DESTDIR"]
|
|
32
|
+
|
|
33
|
+
begin
|
|
34
|
+
ENV["RUBYOPT"] = ["-r#{siteconf.path}", rubyopt].compact.join(' ')
|
|
35
|
+
cmd = [Gem.ruby, File.basename(extension), *Gem::Command.build_args].join ' '
|
|
36
|
+
|
|
37
|
+
run cmd, results
|
|
38
|
+
|
|
39
|
+
ENV["DESTDIR"] = nil
|
|
40
|
+
ENV["RUBYOPT"] = rubyopt
|
|
41
|
+
siteconf.unlink
|
|
42
|
+
|
|
43
|
+
make dest_path, results
|
|
44
|
+
|
|
45
|
+
if tmp_dest
|
|
46
|
+
FileEntry.new(tmp_dest).traverse do |ent|
|
|
47
|
+
destent = ent.class.new(dest_path, ent.rel)
|
|
48
|
+
destent.exist? or File.rename(ent.path, destent.path)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
ensure
|
|
52
|
+
ENV["RUBYOPT"] = rubyopt
|
|
53
|
+
ENV["DESTDIR"] = destdir
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
t.unlink if t and t.path
|
|
19
57
|
|
|
20
58
|
results
|
|
59
|
+
ensure
|
|
60
|
+
FileUtils.rm_rf tmp_dest if tmp_dest
|
|
21
61
|
end
|
|
22
62
|
|
|
23
63
|
end
|
data/lib/rubygems/installer.rb
CHANGED
|
@@ -538,10 +538,12 @@ TEXT
|
|
|
538
538
|
|
|
539
539
|
|
|
540
540
|
begin
|
|
541
|
-
|
|
542
|
-
|
|
541
|
+
Gem::Ext::Builder::CHDIR_MUTEX.synchronize do
|
|
542
|
+
Dir.chdir extension_dir do
|
|
543
|
+
results = builder.build(extension, gem_dir, dest_path, results)
|
|
543
544
|
|
|
544
|
-
|
|
545
|
+
say results.join("\n") if Gem.configuration.really_verbose
|
|
546
|
+
end
|
|
545
547
|
end
|
|
546
548
|
rescue
|
|
547
549
|
results = results.join "\n"
|
data/lib/rubygems/test_case.rb
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
at_exit { $SAFE = 1 }
|
|
2
2
|
|
|
3
|
+
gem 'minitest', '~> 4.0'
|
|
4
|
+
|
|
3
5
|
if defined? Gem::QuickLoader
|
|
4
6
|
Gem::QuickLoader.load_full_rubygems_library
|
|
5
7
|
else
|
|
@@ -21,6 +23,7 @@ require 'rubygems/test_utilities'
|
|
|
21
23
|
require 'pp'
|
|
22
24
|
require 'zlib'
|
|
23
25
|
require 'pathname'
|
|
26
|
+
require 'shellwords'
|
|
24
27
|
Gem.load_yaml
|
|
25
28
|
|
|
26
29
|
require 'rubygems/mock_gem_ui'
|
|
@@ -92,6 +95,63 @@ class Gem::TestCase < MiniTest::Unit::TestCase
|
|
|
92
95
|
refute File.exist?(path), msg
|
|
93
96
|
end
|
|
94
97
|
|
|
98
|
+
def scan_make_command_lines(output)
|
|
99
|
+
output.scan(/^#{Regexp.escape make_command}(?:[[:blank:]].*)?$/)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def parse_make_command_line(line)
|
|
103
|
+
command, *args = line.shellsplit
|
|
104
|
+
|
|
105
|
+
targets = []
|
|
106
|
+
macros = {}
|
|
107
|
+
|
|
108
|
+
args.each do |arg|
|
|
109
|
+
case arg
|
|
110
|
+
when /\A(\w+)=/
|
|
111
|
+
macros[$1] = $'
|
|
112
|
+
else
|
|
113
|
+
targets << arg
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
targets << '' if targets.empty?
|
|
118
|
+
|
|
119
|
+
{
|
|
120
|
+
:command => command,
|
|
121
|
+
:targets => targets,
|
|
122
|
+
:macros => macros,
|
|
123
|
+
}
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def assert_contains_make_command(target, output, msg = nil)
|
|
127
|
+
if output.match(/\n/)
|
|
128
|
+
msg = message(msg) {
|
|
129
|
+
'Expected output containing make command "%s": %s' % [
|
|
130
|
+
('%s %s' % [make_command, target]).rstrip,
|
|
131
|
+
output.inspect
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
else
|
|
135
|
+
msg = message(msg) {
|
|
136
|
+
'Expected make command "%s": %s' % [
|
|
137
|
+
('%s %s' % [make_command, target]).rstrip,
|
|
138
|
+
output.inspect
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
assert scan_make_command_lines(output).any? { |line|
|
|
144
|
+
make = parse_make_command_line(line)
|
|
145
|
+
|
|
146
|
+
if make[:targets].include?(target)
|
|
147
|
+
yield make, line if block_given?
|
|
148
|
+
true
|
|
149
|
+
else
|
|
150
|
+
false
|
|
151
|
+
end
|
|
152
|
+
}, msg
|
|
153
|
+
end
|
|
154
|
+
|
|
95
155
|
include Gem::DefaultUserInteraction
|
|
96
156
|
|
|
97
157
|
undef_method :default_test if instance_methods.include? 'default_test' or
|
data/lib/rubygems/version.rb
CHANGED
|
@@ -145,7 +145,7 @@ class Gem::Version
|
|
|
145
145
|
|
|
146
146
|
include Comparable
|
|
147
147
|
|
|
148
|
-
VERSION_PATTERN = '[0-9]+(
|
|
148
|
+
VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*' # :nodoc:
|
|
149
149
|
ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})*\s*\z/ # :nodoc:
|
|
150
150
|
|
|
151
151
|
##
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
require 'rubygems/test_case'
|
|
2
|
+
require 'rubygems/ext'
|
|
3
|
+
|
|
4
|
+
class TestGemExtBuilder < Gem::TestCase
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
super
|
|
8
|
+
|
|
9
|
+
@ext = File.join @tempdir, 'ext'
|
|
10
|
+
@dest_path = File.join @tempdir, 'prefix'
|
|
11
|
+
|
|
12
|
+
FileUtils.mkdir_p @ext
|
|
13
|
+
FileUtils.mkdir_p @dest_path
|
|
14
|
+
|
|
15
|
+
@orig_DESTDIR = ENV['DESTDIR']
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def teardown
|
|
19
|
+
ENV['DESTDIR'] = @orig_DESTDIR
|
|
20
|
+
|
|
21
|
+
super
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def test_class_make
|
|
25
|
+
ENV['DESTDIR'] = 'destination'
|
|
26
|
+
results = []
|
|
27
|
+
|
|
28
|
+
Dir.chdir @ext do
|
|
29
|
+
open 'Makefile', 'w' do |io|
|
|
30
|
+
io.puts <<-MAKEFILE
|
|
31
|
+
all:
|
|
32
|
+
\t@#{Gem.ruby} -e "puts %Q{all: \#{ENV['DESTDIR']}}"
|
|
33
|
+
|
|
34
|
+
install:
|
|
35
|
+
\t@#{Gem.ruby} -e "puts %Q{install: \#{ENV['DESTDIR']}}"
|
|
36
|
+
MAKEFILE
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
Gem::Ext::Builder.make @dest_path, results
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
results = results.join "\n"
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
if RUBY_VERSION > '2.0' then
|
|
46
|
+
assert_match %r%"DESTDIR=#{ENV['DESTDIR']}"$%, results
|
|
47
|
+
assert_match %r%"DESTDIR=#{ENV['DESTDIR']}" install$%, results
|
|
48
|
+
else
|
|
49
|
+
refute_match %r%"DESTDIR=#{ENV['DESTDIR']}"$%, results
|
|
50
|
+
refute_match %r%"DESTDIR=#{ENV['DESTDIR']}" install$%, results
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
assert_match %r%^all: destination$%, results
|
|
54
|
+
assert_match %r%^install: destination$%, results
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
end
|
|
58
|
+
|
|
@@ -30,9 +30,9 @@ class TestGemExtConfigureBuilder < Gem::TestCase
|
|
|
30
30
|
|
|
31
31
|
assert_equal "sh ./configure --prefix=#{@dest_path}", output.shift
|
|
32
32
|
assert_equal "", output.shift
|
|
33
|
-
|
|
33
|
+
assert_contains_make_command '', output.shift
|
|
34
34
|
assert_match(/^ok$/m, output.shift)
|
|
35
|
-
|
|
35
|
+
assert_contains_make_command 'install', output.shift
|
|
36
36
|
assert_match(/^ok$/m, output.shift)
|
|
37
37
|
end
|
|
38
38
|
|
|
@@ -76,8 +76,8 @@ class TestGemExtConfigureBuilder < Gem::TestCase
|
|
|
76
76
|
Gem::Ext::ConfigureBuilder.build nil, nil, @dest_path, output
|
|
77
77
|
end
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
assert_contains_make_command '', output[0]
|
|
80
|
+
assert_contains_make_command 'install', output[2]
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# coding: UTF-8
|
|
2
|
+
|
|
1
3
|
require 'rubygems/test_case'
|
|
2
4
|
require 'rubygems/ext'
|
|
3
5
|
|
|
@@ -25,19 +27,17 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
|
25
27
|
output = []
|
|
26
28
|
|
|
27
29
|
Dir.chdir @ext do
|
|
28
|
-
|
|
30
|
+
result =
|
|
31
|
+
Gem::Ext::ExtConfBuilder.build 'extconf.rb', nil, @dest_path, output
|
|
32
|
+
|
|
33
|
+
assert_same result, output
|
|
29
34
|
end
|
|
30
35
|
|
|
31
36
|
assert_match(/^#{Gem.ruby} extconf.rb/, output[0])
|
|
32
37
|
assert_equal "creating Makefile\n", output[1]
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
assert_equal "nmake install", output[4]
|
|
37
|
-
else
|
|
38
|
-
assert_equal "make", output[2]
|
|
39
|
-
assert_equal "make install", output[4]
|
|
40
|
-
end
|
|
38
|
+
assert_contains_make_command '', output[2]
|
|
39
|
+
assert_contains_make_command 'install', output[4]
|
|
40
|
+
assert_empty Dir.glob(File.join(@ext, 'siteconf*.rb'))
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
def test_class_build_rbconfig_make_prog
|
|
@@ -54,8 +54,8 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
assert_equal "creating Makefile\n", output[1]
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
assert_contains_make_command '', output[2]
|
|
58
|
+
assert_contains_make_command 'install', output[4]
|
|
59
59
|
ensure
|
|
60
60
|
RbConfig::CONFIG['configure_args'] = configure_args
|
|
61
61
|
end
|
|
@@ -78,7 +78,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
assert_equal "creating Makefile\n", output[1]
|
|
81
|
-
|
|
81
|
+
assert_contains_make_command '', output[2]
|
|
82
82
|
ensure
|
|
83
83
|
RbConfig::CONFIG['configure_args'] = configure_args
|
|
84
84
|
ENV['make'] = env_make
|
|
@@ -108,7 +108,43 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
|
108
108
|
#{Gem.ruby} extconf.rb.*
|
|
109
109
|
checking for main\(\) in .*?nonexistent/m, error.message)
|
|
110
110
|
|
|
111
|
-
|
|
111
|
+
assert_equal("#{Gem.ruby} extconf.rb", output[0])
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def test_class_build_unconventional
|
|
115
|
+
if vc_windows? && !nmake_found?
|
|
116
|
+
skip("test_class_build skipped - nmake not found")
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
File.open File.join(@ext, 'extconf.rb'), 'w' do |extconf|
|
|
120
|
+
extconf.puts <<-'EXTCONF'
|
|
121
|
+
include RbConfig
|
|
122
|
+
|
|
123
|
+
ruby_exe = "#{CONFIG['RUBY_INSTALL_NAME']}#{CONFIG['EXEEXT']}"
|
|
124
|
+
ruby = File.join CONFIG['bindir'], ruby_exe
|
|
125
|
+
|
|
126
|
+
open 'Makefile', 'w' do |io|
|
|
127
|
+
io.write <<-Makefile
|
|
128
|
+
all: ruby
|
|
129
|
+
install: ruby
|
|
130
|
+
|
|
131
|
+
ruby:
|
|
132
|
+
\t#{ruby} -e0
|
|
133
|
+
|
|
134
|
+
Makefile
|
|
135
|
+
end
|
|
136
|
+
EXTCONF
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
output = []
|
|
140
|
+
|
|
141
|
+
Dir.chdir @ext do
|
|
142
|
+
Gem::Ext::ExtConfBuilder.build 'extconf.rb', nil, @dest_path, output
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
assert_contains_make_command '', output[2]
|
|
146
|
+
assert_contains_make_command 'install', output[4]
|
|
147
|
+
assert_empty Dir.glob(File.join(@ext, 'siteconf*.rb'))
|
|
112
148
|
end
|
|
113
149
|
|
|
114
150
|
def test_class_make
|
|
@@ -119,6 +155,7 @@ checking for main\(\) in .*?nonexistent/m, error.message)
|
|
|
119
155
|
output = []
|
|
120
156
|
makefile_path = File.join(@ext, 'Makefile')
|
|
121
157
|
File.open makefile_path, 'w' do |makefile|
|
|
158
|
+
makefile.puts "# π"
|
|
122
159
|
makefile.puts "RUBYARCHDIR = $(foo)$(target_prefix)"
|
|
123
160
|
makefile.puts "RUBYLIBDIR = $(bar)$(target_prefix)"
|
|
124
161
|
makefile.puts "all:"
|
|
@@ -129,17 +166,8 @@ checking for main\(\) in .*?nonexistent/m, error.message)
|
|
|
129
166
|
Gem::Ext::ExtConfBuilder.make @ext, output
|
|
130
167
|
end
|
|
131
168
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
edited_makefile = <<-EOF
|
|
136
|
-
RUBYARCHDIR = #{@ext}$(target_prefix)
|
|
137
|
-
RUBYLIBDIR = #{@ext}$(target_prefix)
|
|
138
|
-
all:
|
|
139
|
-
install:
|
|
140
|
-
EOF
|
|
141
|
-
|
|
142
|
-
assert_equal edited_makefile, File.read(makefile_path)
|
|
169
|
+
assert_contains_make_command '', output[0]
|
|
170
|
+
assert_contains_make_command 'install', output[2]
|
|
143
171
|
end
|
|
144
172
|
|
|
145
173
|
def test_class_make_no_Makefile
|
|
@@ -117,6 +117,8 @@ class TestGemIndexer < Gem::TestCase
|
|
|
117
117
|
assert_indexed @tempdir, "latest_specs.#{@marshal_version}"
|
|
118
118
|
assert_indexed @tempdir, "latest_specs.#{@marshal_version}.gz"
|
|
119
119
|
|
|
120
|
+
single_quote = CGI.escapeHTML "'"
|
|
121
|
+
|
|
120
122
|
expected = <<-EOF
|
|
121
123
|
<?xml version=\"1.0\"?>
|
|
122
124
|
<rss version=\"2.0\">
|
|
@@ -227,13 +229,13 @@ class TestGemIndexer < Gem::TestCase
|
|
|
227
229
|
<description>
|
|
228
230
|
<pre>This line is really, really long. So long, in fact, that it is more than
|
|
229
231
|
eighty characters long! The purpose of this line is for testing wrapping
|
|
230
|
-
behavior because sometimes people don
|
|
232
|
+
behavior because sometimes people don#{single_quote}t wrap their text to eighty characters.
|
|
231
233
|
Without the wrapping, the text might not look good in the RSS feed.
|
|
232
234
|
|
|
233
235
|
Also, a list:
|
|
234
|
-
* An entry that
|
|
235
|
-
* an entry that
|
|
236
|
-
That
|
|
236
|
+
* An entry that#{single_quote}s actually kind of sort
|
|
237
|
+
* an entry that#{single_quote}s really long, which will probably get wrapped funny.
|
|
238
|
+
That#{single_quote}s ok, somebody wasn#{single_quote}t thinking straight when they made it more than
|
|
237
239
|
eighty characters.</pre>
|
|
238
240
|
</description>
|
|
239
241
|
<author>example@example.com (Example), example2@example.com (Example2)</author>
|
|
@@ -1031,6 +1031,46 @@ load Gem.bin_path('a', 'executable', version)
|
|
|
1031
1031
|
end
|
|
1032
1032
|
end
|
|
1033
1033
|
|
|
1034
|
+
def test_install_extension_flat
|
|
1035
|
+
skip '1.8 mkmf.rb does not create TOUCH' if RUBY_VERSION < '1.9'
|
|
1036
|
+
@spec.require_paths = ["."]
|
|
1037
|
+
|
|
1038
|
+
@spec.extensions << "extconf.rb"
|
|
1039
|
+
|
|
1040
|
+
write_file File.join(@tempdir, "extconf.rb") do |io|
|
|
1041
|
+
io.write <<-RUBY
|
|
1042
|
+
require "mkmf"
|
|
1043
|
+
|
|
1044
|
+
CONFIG['CC'] = '$(TOUCH) $@ ||'
|
|
1045
|
+
CONFIG['LDSHARED'] = '$(TOUCH) $@ ||'
|
|
1046
|
+
|
|
1047
|
+
create_makefile("#{@spec.name}")
|
|
1048
|
+
RUBY
|
|
1049
|
+
end
|
|
1050
|
+
|
|
1051
|
+
# empty depend file for no auto dependencies
|
|
1052
|
+
@spec.files += %W"depend #{@spec.name}.c".each {|file|
|
|
1053
|
+
write_file File.join(@tempdir, file)
|
|
1054
|
+
}
|
|
1055
|
+
|
|
1056
|
+
so = File.join(@gemhome, 'gems', @spec.full_name, "#{@spec.name}.#{RbConfig::CONFIG["DLEXT"]}")
|
|
1057
|
+
assert !File.exist?(so)
|
|
1058
|
+
use_ui @ui do
|
|
1059
|
+
path = Gem::Builder.new(@spec).build
|
|
1060
|
+
|
|
1061
|
+
@installer = Gem::Installer.new path
|
|
1062
|
+
@installer.install
|
|
1063
|
+
end
|
|
1064
|
+
assert File.exist?(so), so
|
|
1065
|
+
rescue
|
|
1066
|
+
puts '-' * 78
|
|
1067
|
+
puts File.read File.join(@gemhome, 'gems', 'a-2', 'Makefile')
|
|
1068
|
+
puts '-' * 78
|
|
1069
|
+
puts File.read File.join(@gemhome, 'gems', 'a-2', 'gem_make.out')
|
|
1070
|
+
puts '-' * 78
|
|
1071
|
+
raise
|
|
1072
|
+
end
|
|
1073
|
+
|
|
1034
1074
|
def test_installation_satisfies_dependency_eh
|
|
1035
1075
|
util_setup_install
|
|
1036
1076
|
|
metadata
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubygems-update
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.8.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 1.8.26
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Jim Weirich
|
|
@@ -10,45 +9,62 @@ authors:
|
|
|
10
9
|
- Eric Hodel
|
|
11
10
|
autorequire:
|
|
12
11
|
bindir: bin
|
|
13
|
-
cert_chain:
|
|
14
|
-
|
|
12
|
+
cert_chain:
|
|
13
|
+
- |
|
|
14
|
+
-----BEGIN CERTIFICATE-----
|
|
15
|
+
MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMRAwDgYDVQQDDAdkcmJy
|
|
16
|
+
YWluMRgwFgYKCZImiZPyLGQBGRYIc2VnbWVudDcxEzARBgoJkiaJk/IsZAEZFgNu
|
|
17
|
+
ZXQwHhcNMTMwMjI4MDUyMjA4WhcNMTQwMjI4MDUyMjA4WjBBMRAwDgYDVQQDDAdk
|
|
18
|
+
cmJyYWluMRgwFgYKCZImiZPyLGQBGRYIc2VnbWVudDcxEzARBgoJkiaJk/IsZAEZ
|
|
19
|
+
FgNuZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCbbgLrGLGIDE76
|
|
20
|
+
LV/cvxdEzCuYuS3oG9PrSZnuDweySUfdp/so0cDq+j8bqy6OzZSw07gdjwFMSd6J
|
|
21
|
+
U5ddZCVywn5nnAQ+Ui7jMW54CYt5/H6f2US6U0hQOjJR6cpfiymgxGdfyTiVcvTm
|
|
22
|
+
Gj/okWrQl0NjYOYBpDi+9PPmaH2RmLJu0dB/NylsDnW5j6yN1BEI8MfJRR+HRKZY
|
|
23
|
+
mUtgzBwF1V4KIZQ8EuL6I/nHVu07i6IkrpAgxpXUfdJQJi0oZAqXurAV3yTxkFwd
|
|
24
|
+
g62YrrW26mDe+pZBzR6bpLE+PmXCzz7UxUq3AE0gPHbiMXie3EFE0oxnsU3lIduh
|
|
25
|
+
sCANiQ8BAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
|
26
|
+
BBS5k4Z75VSpdM0AclG2UvzFA/VW5DAfBgNVHREEGDAWgRRkcmJyYWluQHNlZ21l
|
|
27
|
+
bnQ3Lm5ldDAfBgNVHRIEGDAWgRRkcmJyYWluQHNlZ21lbnQ3Lm5ldDANBgkqhkiG
|
|
28
|
+
9w0BAQUFAAOCAQEAOflo4Md5aJF//EetzXIGZ2EI5PzKWX/mMpp7cxFyDcVPtTv0
|
|
29
|
+
js/6zWrWSbd60W9Kn4ch3nYiATFKhisgeYotDDz2/pb/x1ivJn4vEvs9kYKVvbF8
|
|
30
|
+
V7MV/O5HDW8Q0pA1SljI6GzcOgejtUMxZCyyyDdbUpyAMdt9UpqTZkZ5z1sicgQk
|
|
31
|
+
5o2XJ+OhceOIUVqVh1r6DNY5tLVaGJabtBmJAYFVznDcHiSFybGKBa5n25Egql1t
|
|
32
|
+
KDyY1VIazVgoC8XvR4h/95/iScPiuglzA+DBG1hip1xScAtw05BrXyUNrc9CEMYU
|
|
33
|
+
wgF94UVoHRp6ywo8I7NP3HcwFQDFNEZPNGXsng==
|
|
34
|
+
-----END CERTIFICATE-----
|
|
35
|
+
date: 2013-09-09 00:00:00.000000000 Z
|
|
15
36
|
dependencies:
|
|
16
37
|
- !ruby/object:Gem::Dependency
|
|
17
38
|
name: minitest
|
|
18
39
|
requirement: !ruby/object:Gem::Requirement
|
|
19
|
-
none: false
|
|
20
40
|
requirements:
|
|
21
41
|
- - ~>
|
|
22
42
|
- !ruby/object:Gem::Version
|
|
23
|
-
version: '
|
|
43
|
+
version: '5.0'
|
|
24
44
|
type: :development
|
|
25
45
|
prerelease: false
|
|
26
46
|
version_requirements: !ruby/object:Gem::Requirement
|
|
27
|
-
none: false
|
|
28
47
|
requirements:
|
|
29
48
|
- - ~>
|
|
30
49
|
- !ruby/object:Gem::Version
|
|
31
|
-
version: '
|
|
50
|
+
version: '5.0'
|
|
32
51
|
- !ruby/object:Gem::Dependency
|
|
33
52
|
name: rdoc
|
|
34
53
|
requirement: !ruby/object:Gem::Requirement
|
|
35
|
-
none: false
|
|
36
54
|
requirements:
|
|
37
55
|
- - ~>
|
|
38
56
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: '
|
|
57
|
+
version: '4.0'
|
|
40
58
|
type: :development
|
|
41
59
|
prerelease: false
|
|
42
60
|
version_requirements: !ruby/object:Gem::Requirement
|
|
43
|
-
none: false
|
|
44
61
|
requirements:
|
|
45
62
|
- - ~>
|
|
46
63
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
64
|
+
version: '4.0'
|
|
48
65
|
- !ruby/object:Gem::Dependency
|
|
49
66
|
name: builder
|
|
50
67
|
requirement: !ruby/object:Gem::Requirement
|
|
51
|
-
none: false
|
|
52
68
|
requirements:
|
|
53
69
|
- - ~>
|
|
54
70
|
- !ruby/object:Gem::Version
|
|
@@ -56,7 +72,6 @@ dependencies:
|
|
|
56
72
|
type: :development
|
|
57
73
|
prerelease: false
|
|
58
74
|
version_requirements: !ruby/object:Gem::Requirement
|
|
59
|
-
none: false
|
|
60
75
|
requirements:
|
|
61
76
|
- - ~>
|
|
62
77
|
- !ruby/object:Gem::Version
|
|
@@ -64,7 +79,6 @@ dependencies:
|
|
|
64
79
|
- !ruby/object:Gem::Dependency
|
|
65
80
|
name: hoe-seattlerb
|
|
66
81
|
requirement: !ruby/object:Gem::Requirement
|
|
67
|
-
none: false
|
|
68
82
|
requirements:
|
|
69
83
|
- - ~>
|
|
70
84
|
- !ruby/object:Gem::Version
|
|
@@ -72,7 +86,6 @@ dependencies:
|
|
|
72
86
|
type: :development
|
|
73
87
|
prerelease: false
|
|
74
88
|
version_requirements: !ruby/object:Gem::Requirement
|
|
75
|
-
none: false
|
|
76
89
|
requirements:
|
|
77
90
|
- - ~>
|
|
78
91
|
- !ruby/object:Gem::Version
|
|
@@ -80,7 +93,6 @@ dependencies:
|
|
|
80
93
|
- !ruby/object:Gem::Dependency
|
|
81
94
|
name: session
|
|
82
95
|
requirement: !ruby/object:Gem::Requirement
|
|
83
|
-
none: false
|
|
84
96
|
requirements:
|
|
85
97
|
- - ~>
|
|
86
98
|
- !ruby/object:Gem::Version
|
|
@@ -88,7 +100,6 @@ dependencies:
|
|
|
88
100
|
type: :development
|
|
89
101
|
prerelease: false
|
|
90
102
|
version_requirements: !ruby/object:Gem::Requirement
|
|
91
|
-
none: false
|
|
92
103
|
requirements:
|
|
93
104
|
- - ~>
|
|
94
105
|
- !ruby/object:Gem::Version
|
|
@@ -96,7 +107,6 @@ dependencies:
|
|
|
96
107
|
- !ruby/object:Gem::Dependency
|
|
97
108
|
name: rcov
|
|
98
109
|
requirement: !ruby/object:Gem::Requirement
|
|
99
|
-
none: false
|
|
100
110
|
requirements:
|
|
101
111
|
- - ~>
|
|
102
112
|
- !ruby/object:Gem::Version
|
|
@@ -104,7 +114,6 @@ dependencies:
|
|
|
104
114
|
type: :development
|
|
105
115
|
prerelease: false
|
|
106
116
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
none: false
|
|
108
117
|
requirements:
|
|
109
118
|
- - ~>
|
|
110
119
|
- !ruby/object:Gem::Version
|
|
@@ -112,7 +121,6 @@ dependencies:
|
|
|
112
121
|
- !ruby/object:Gem::Dependency
|
|
113
122
|
name: ZenTest
|
|
114
123
|
requirement: !ruby/object:Gem::Requirement
|
|
115
|
-
none: false
|
|
116
124
|
requirements:
|
|
117
125
|
- - ~>
|
|
118
126
|
- !ruby/object:Gem::Version
|
|
@@ -120,7 +128,6 @@ dependencies:
|
|
|
120
128
|
type: :development
|
|
121
129
|
prerelease: false
|
|
122
130
|
version_requirements: !ruby/object:Gem::Requirement
|
|
123
|
-
none: false
|
|
124
131
|
requirements:
|
|
125
132
|
- - ~>
|
|
126
133
|
- !ruby/object:Gem::Version
|
|
@@ -128,35 +135,49 @@ dependencies:
|
|
|
128
135
|
- !ruby/object:Gem::Dependency
|
|
129
136
|
name: hoe
|
|
130
137
|
requirement: !ruby/object:Gem::Requirement
|
|
131
|
-
none: false
|
|
132
138
|
requirements:
|
|
133
139
|
- - ~>
|
|
134
140
|
- !ruby/object:Gem::Version
|
|
135
|
-
version: '3.
|
|
141
|
+
version: '3.7'
|
|
136
142
|
type: :development
|
|
137
143
|
prerelease: false
|
|
138
144
|
version_requirements: !ruby/object:Gem::Requirement
|
|
139
|
-
none: false
|
|
140
145
|
requirements:
|
|
141
146
|
- - ~>
|
|
142
147
|
- !ruby/object:Gem::Version
|
|
143
|
-
version: '3.
|
|
144
|
-
description:
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
148
|
+
version: '3.7'
|
|
149
|
+
description: |-
|
|
150
|
+
RubyGems is a package management framework for Ruby.
|
|
151
|
+
|
|
152
|
+
This gem is an update for the RubyGems software. You must have an
|
|
153
|
+
installation of RubyGems before this update can be applied.
|
|
154
|
+
|
|
155
|
+
See Gem for information on RubyGems (or `ri Gem`)
|
|
156
|
+
|
|
157
|
+
To upgrade to the latest RubyGems, run:
|
|
158
|
+
|
|
159
|
+
$ gem update --system # you might need to be an administrator or root
|
|
160
|
+
|
|
161
|
+
See UPGRADING.rdoc for more details and alternative instructions.
|
|
162
|
+
|
|
163
|
+
-----
|
|
164
|
+
|
|
165
|
+
If you don't have RubyGems installed, your can still do it manually:
|
|
166
|
+
|
|
167
|
+
* Download from: https://rubygems.org/pages/download
|
|
168
|
+
* Unpack into a directory and cd there
|
|
169
|
+
* Install with: ruby setup.rb # you may need admin/root privilege
|
|
170
|
+
|
|
171
|
+
For more details and other options, see:
|
|
172
|
+
|
|
173
|
+
ruby setup.rb --help
|
|
154
174
|
email:
|
|
155
175
|
- rubygems-developers@rubyforge.org
|
|
156
176
|
executables:
|
|
157
177
|
- update_rubygems
|
|
158
178
|
extensions: []
|
|
159
179
|
extra_rdoc_files:
|
|
180
|
+
- CVE-2013-4287.txt
|
|
160
181
|
- History.txt
|
|
161
182
|
- LICENSE.txt
|
|
162
183
|
- MIT.txt
|
|
@@ -167,6 +188,7 @@ extra_rdoc_files:
|
|
|
167
188
|
files:
|
|
168
189
|
- .autotest
|
|
169
190
|
- .document
|
|
191
|
+
- CVE-2013-4287.txt
|
|
170
192
|
- History.txt
|
|
171
193
|
- LICENSE.txt
|
|
172
194
|
- MIT.txt
|
|
@@ -331,6 +353,7 @@ files:
|
|
|
331
353
|
- test/rubygems/test_gem_dependency_installer.rb
|
|
332
354
|
- test/rubygems/test_gem_dependency_list.rb
|
|
333
355
|
- test/rubygems/test_gem_doc_manager.rb
|
|
356
|
+
- test/rubygems/test_gem_ext_builder.rb
|
|
334
357
|
- test/rubygems/test_gem_ext_configure_builder.rb
|
|
335
358
|
- test/rubygems/test_gem_ext_ext_conf_builder.rb
|
|
336
359
|
- test/rubygems/test_gem_ext_rake_builder.rb
|
|
@@ -369,31 +392,32 @@ files:
|
|
|
369
392
|
- util/CL2notes
|
|
370
393
|
- .gemtest
|
|
371
394
|
homepage: http://rubygems.org
|
|
372
|
-
licenses:
|
|
395
|
+
licenses:
|
|
396
|
+
- Ruby
|
|
397
|
+
- MIT
|
|
398
|
+
metadata: {}
|
|
373
399
|
post_install_message:
|
|
374
400
|
rdoc_options:
|
|
375
401
|
- --main
|
|
376
402
|
- README.rdoc
|
|
377
|
-
- --title=RubyGems 1.8.
|
|
403
|
+
- --title=RubyGems 1.8.26 Documentation
|
|
378
404
|
require_paths:
|
|
379
405
|
- hide_lib_for_update
|
|
380
406
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
381
|
-
none: false
|
|
382
407
|
requirements:
|
|
383
|
-
- -
|
|
408
|
+
- - '>='
|
|
384
409
|
- !ruby/object:Gem::Version
|
|
385
410
|
version: 1.8.7
|
|
386
411
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
387
|
-
none: false
|
|
388
412
|
requirements:
|
|
389
|
-
- -
|
|
413
|
+
- - '>='
|
|
390
414
|
- !ruby/object:Gem::Version
|
|
391
415
|
version: '0'
|
|
392
416
|
requirements: []
|
|
393
417
|
rubyforge_project: rubygems
|
|
394
|
-
rubygems_version: 1.
|
|
418
|
+
rubygems_version: 2.1.0
|
|
395
419
|
signing_key:
|
|
396
|
-
specification_version:
|
|
420
|
+
specification_version: 4
|
|
397
421
|
summary: RubyGems is a package management framework for Ruby
|
|
398
422
|
test_files:
|
|
399
423
|
- test/rubygems/test_config.rb
|
|
@@ -432,6 +456,7 @@ test_files:
|
|
|
432
456
|
- test/rubygems/test_gem_dependency_installer.rb
|
|
433
457
|
- test/rubygems/test_gem_dependency_list.rb
|
|
434
458
|
- test/rubygems/test_gem_doc_manager.rb
|
|
459
|
+
- test/rubygems/test_gem_ext_builder.rb
|
|
435
460
|
- test/rubygems/test_gem_ext_configure_builder.rb
|
|
436
461
|
- test/rubygems/test_gem_ext_ext_conf_builder.rb
|
|
437
462
|
- test/rubygems/test_gem_ext_rake_builder.rb
|
metadata.gz.sig
ADDED
|
Binary file
|