autobuild 1.6.1 → 1.6.2.b1
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.
- data/lib/autobuild/config.rb +1 -1
- data/lib/autobuild/exceptions.rb +0 -2
- data/lib/autobuild/import/archive.rb +3 -3
- data/lib/autobuild/import/git.rb +5 -5
- data/lib/autobuild/importer.rb +77 -44
- data/lib/autobuild/package.rb +18 -8
- data/lib/autobuild/packages/autotools.rb +4 -6
- data/lib/autobuild/packages/cmake.rb +2 -3
- data/lib/autobuild/packages/genom.rb +1 -1
- data/lib/autobuild/packages/orogen.rb +1 -1
- data/lib/autobuild/parallel.rb +0 -21
- data/lib/autobuild/reporting.rb +12 -1
- data/lib/autobuild/subcommand.rb +2 -2
- data/lib/autobuild/timestamps.rb +4 -4
- data/lib/autobuild/version.rb +1 -1
- metadata +58 -88
data/lib/autobuild/config.rb
CHANGED
@@ -242,7 +242,7 @@ module Autobuild
|
|
242
242
|
def self.apply(packages, buildname = "autobuild")
|
243
243
|
if Autobuild.mail[:to]
|
244
244
|
if !Autobuild::HAS_RMAIL
|
245
|
-
|
245
|
+
Autobuild.warn "RMail is not available. Mail notification is disabled"
|
246
246
|
else
|
247
247
|
Reporting << MailReporter.new(Autobuild.mail)
|
248
248
|
end
|
data/lib/autobuild/exceptions.rb
CHANGED
@@ -59,13 +59,13 @@ module Autobuild
|
|
59
59
|
if mtime && size
|
60
60
|
do_update = (size != cached_size || mtime > cached_mtime)
|
61
61
|
elsif mtime
|
62
|
-
|
62
|
+
package.warn "%s: archive size is not available for #{@url}, relying on modification time"
|
63
63
|
do_update = (mtime > cached_mtime)
|
64
64
|
elsif size
|
65
|
-
|
65
|
+
package.warn "%s: archive modification time is not available for #{@url}, relying on size"
|
66
66
|
do_update = (size != cached_size)
|
67
67
|
else
|
68
|
-
|
68
|
+
package.warn "%s: neither the archive size nor its modification time available for #{@url}, will always update"
|
69
69
|
do_update = true
|
70
70
|
end
|
71
71
|
end
|
data/lib/autobuild/import/git.rb
CHANGED
@@ -21,11 +21,11 @@ module Autobuild
|
|
21
21
|
end
|
22
22
|
|
23
23
|
if branch
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
24
|
+
Autobuild.warn "the git importer now expects you to provide the branch as a named option"
|
25
|
+
Autobuild.warn "this form is deprecated:"
|
26
|
+
Autobuild.warn " Autobuild.git 'git://gitorious.org/rock/buildconf.git', 'master'"
|
27
|
+
Autobuild.warn "and should be replaced by"
|
28
|
+
Autobuild.warn " Autobuild.git 'git://gitorious.org/rock/buildconf.git', :branch => 'master'"
|
29
29
|
end
|
30
30
|
|
31
31
|
gitopts, common = Kernel.filter_options options, :push_to => nil, :branch => nil, :tag => nil, :commit => nil
|
data/lib/autobuild/importer.rb
CHANGED
@@ -65,7 +65,26 @@ class Importer
|
|
65
65
|
# [:patches] a list of patch to apply after import
|
66
66
|
#
|
67
67
|
# More options are specific to each importer type.
|
68
|
-
def initialize(options)
|
68
|
+
def initialize(options)
|
69
|
+
@options = options.dup
|
70
|
+
end
|
71
|
+
|
72
|
+
# The number of times update / checkout should be retried before giving up.
|
73
|
+
# The default is 0 (do not retry)
|
74
|
+
#
|
75
|
+
# Set either with #retry_count= or by setting the :retry_count option when
|
76
|
+
# constructing this importer
|
77
|
+
def retry_count
|
78
|
+
@options[:retry_count] || 0
|
79
|
+
end
|
80
|
+
|
81
|
+
# Sets the number of times update / checkout should be retried before giving
|
82
|
+
# up. 0 (the default) disables retrying.
|
83
|
+
#
|
84
|
+
# See also #retry_count
|
85
|
+
def retry_count=(count)
|
86
|
+
@options[:retry_count] = count
|
87
|
+
end
|
69
88
|
|
70
89
|
def patches
|
71
90
|
if @options[:patches].respond_to?(:to_ary)
|
@@ -85,65 +104,79 @@ class Importer
|
|
85
104
|
patch(package, kept_patches)
|
86
105
|
end
|
87
106
|
|
88
|
-
|
89
|
-
update(package)
|
90
|
-
patch(package)
|
91
|
-
end
|
92
|
-
package.updated = true
|
93
|
-
rescue Interrupt
|
94
|
-
raise
|
95
|
-
rescue ::Exception => original_error
|
96
|
-
# If the package is patched, it might be that the update
|
97
|
-
# failed because we needed to unpatch first. Try it out
|
98
|
-
#
|
99
|
-
# This assumes that importing data with conflict will
|
100
|
-
# make the import fail, but not make the patch
|
101
|
-
# un-appliable. Importers that do not follow this rule
|
102
|
-
# will have to unpatch by themselves.
|
103
|
-
cur_patches = currently_applied_patches(package)
|
104
|
-
if cur_patches.empty?
|
105
|
-
return fallback(original_error, package, :import, package)
|
106
|
-
end
|
107
|
-
|
108
|
-
package.message "update failed and some patches are applied, retrying after removing all patches first"
|
109
|
-
begin
|
110
|
-
patch(package, [])
|
111
|
-
|
112
|
-
rescue ::Exception => e
|
113
|
-
# The unpatching failed. The importer probably did
|
114
|
-
# change the files in a way that made the patching
|
115
|
-
# impossible to reverse. Just raise the original
|
116
|
-
# error (which hopefully should be the importer
|
117
|
-
# message that says that there are conflicts)
|
118
|
-
raise original_error
|
119
|
-
end
|
120
|
-
|
107
|
+
retry_count = 0
|
121
108
|
begin
|
122
109
|
package.progress_start "updating %s" do
|
123
110
|
update(package)
|
124
|
-
patch(package)
|
125
111
|
end
|
126
|
-
package.updated = true
|
127
112
|
rescue Interrupt
|
128
113
|
raise
|
129
|
-
rescue ::Exception =>
|
130
|
-
|
114
|
+
rescue ::Exception => original_error
|
115
|
+
# If the package is patched, it might be that the update
|
116
|
+
# failed because we needed to unpatch first. Try it out
|
117
|
+
#
|
118
|
+
# This assumes that importing data with conflict will
|
119
|
+
# make the import fail, but not make the patch
|
120
|
+
# un-appliable. Importers that do not follow this rule
|
121
|
+
# will have to unpatch by themselves.
|
122
|
+
cur_patches = currently_applied_patches(package)
|
123
|
+
if !cur_patches.empty?
|
124
|
+
package.message "update failed and some patches are applied, retrying after removing all patches first"
|
125
|
+
begin
|
126
|
+
patch(package, [])
|
127
|
+
return perform_update(package)
|
128
|
+
rescue Interrupt
|
129
|
+
raise
|
130
|
+
rescue ::Exception
|
131
|
+
raise original_error
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
retry_count += 1
|
136
|
+
if retry_count > self.retry_count
|
137
|
+
raise
|
138
|
+
end
|
139
|
+
package.message "update failed in #{package.srcdir}, retrying (#{retry_count}/#{self.retry_count})"
|
140
|
+
retry
|
131
141
|
end
|
142
|
+
|
143
|
+
patch(package)
|
144
|
+
package.updated = true
|
145
|
+
rescue Interrupt
|
146
|
+
raise
|
147
|
+
rescue Autobuild::Exception => e
|
148
|
+
fallback(e, package, :import, package)
|
132
149
|
end
|
133
150
|
|
134
151
|
def perform_checkout(package)
|
135
152
|
package.progress_start "checking out %s" do
|
136
|
-
|
137
|
-
|
153
|
+
retry_count = 0
|
154
|
+
begin
|
155
|
+
checkout(package)
|
156
|
+
rescue Interrupt
|
157
|
+
raise
|
158
|
+
rescue ::Exception
|
159
|
+
retry_count += 1
|
160
|
+
if retry_count > self.retry_count
|
161
|
+
raise
|
162
|
+
end
|
163
|
+
package.message "checkout of %s failed, deleting the source directory #{package.srcdir} and retrying (#{retry_count}/#{self.retry_count})"
|
164
|
+
FileUtils.rm_rf package.srcdir
|
165
|
+
retry
|
166
|
+
end
|
138
167
|
end
|
168
|
+
|
169
|
+
patch(package)
|
139
170
|
package.updated = true
|
140
|
-
rescue
|
141
|
-
|
142
|
-
fallback(e, package, :import, package)
|
171
|
+
rescue Interrupt
|
172
|
+
raise
|
143
173
|
rescue ::Exception
|
144
174
|
package.message "checkout of %s failed, deleting the source directory #{package.srcdir}"
|
145
175
|
FileUtils.rm_rf package.srcdir
|
146
176
|
raise
|
177
|
+
rescue Autobuild::Exception => e
|
178
|
+
FileUtils.rm_rf package.srcdir
|
179
|
+
fallback(e, package, :import, package)
|
147
180
|
end
|
148
181
|
|
149
182
|
# Performs the import of +package+
|
@@ -155,7 +188,7 @@ class Importer
|
|
155
188
|
perform_update(package)
|
156
189
|
else
|
157
190
|
if Autobuild.verbose
|
158
|
-
|
191
|
+
package.message "%s: not updating"
|
159
192
|
end
|
160
193
|
return
|
161
194
|
end
|
data/lib/autobuild/package.rb
CHANGED
@@ -273,6 +273,18 @@ module Autobuild
|
|
273
273
|
msg
|
274
274
|
end
|
275
275
|
|
276
|
+
# Display a progress message. %s in the string is replaced by the
|
277
|
+
# package name
|
278
|
+
def warn(warning_string)
|
279
|
+
message(" WARN: #{warning_string}", :magenta)
|
280
|
+
end
|
281
|
+
|
282
|
+
# Display a progress message. %s in the string is replaced by the
|
283
|
+
# package name
|
284
|
+
def error(error_string)
|
285
|
+
message(" ERROR: #{error_string}", :red, :bold)
|
286
|
+
end
|
287
|
+
|
276
288
|
# Display a progress message. %s in the string is replaced by the
|
277
289
|
# package name
|
278
290
|
def message(*args)
|
@@ -366,9 +378,7 @@ module Autobuild
|
|
366
378
|
@installed_doc = false
|
367
379
|
catch(:doc_disabled) do
|
368
380
|
begin
|
369
|
-
|
370
|
-
yield if block_given?
|
371
|
-
end
|
381
|
+
yield if block_given?
|
372
382
|
|
373
383
|
unless @installed_doc
|
374
384
|
install_doc
|
@@ -380,11 +390,11 @@ module Autobuild
|
|
380
390
|
if Autobuild.doc_errors
|
381
391
|
raise
|
382
392
|
else
|
383
|
-
|
393
|
+
warn "%s: failed to generate documentation"
|
384
394
|
if e.kind_of?(SubcommandFailed)
|
385
|
-
|
395
|
+
warn "%s: see #{e.logfile} for more details"
|
386
396
|
else
|
387
|
-
|
397
|
+
warn "%s: #{e.message}"
|
388
398
|
end
|
389
399
|
end
|
390
400
|
end
|
@@ -464,7 +474,7 @@ module Autobuild
|
|
464
474
|
next if @dependencies.include?(pkg.name)
|
465
475
|
|
466
476
|
if Autobuild.verbose
|
467
|
-
|
477
|
+
Autobuild.message "#{name} depends on #{pkg.name}"
|
468
478
|
end
|
469
479
|
|
470
480
|
task "#{name}-import" => "#{pkg.name}-import"
|
@@ -486,7 +496,7 @@ module Autobuild
|
|
486
496
|
@@provides[p] = self
|
487
497
|
|
488
498
|
if Autobuild.verbose
|
489
|
-
|
499
|
+
Autobuild.message "#{name} provides #{p}"
|
490
500
|
end
|
491
501
|
|
492
502
|
task p => name
|
@@ -40,12 +40,10 @@ module Autobuild
|
|
40
40
|
def with_doc(target = 'doc')
|
41
41
|
task "#{name}-doc" => configurestamp
|
42
42
|
doc_task do
|
43
|
-
|
44
|
-
|
45
|
-
Subprocess.run(self, 'doc', Autobuild.tool(:make), "-j#{parallel_build_level}", target)
|
46
|
-
end
|
47
|
-
yield if block_given?
|
43
|
+
progress_start "generating documentation for %s" do
|
44
|
+
Subprocess.run(self, 'doc', Autobuild.tool(:make), "-j#{parallel_build_level}", target, :working_directory => builddir)
|
48
45
|
end
|
46
|
+
yield if block_given?
|
49
47
|
end
|
50
48
|
end
|
51
49
|
|
@@ -165,7 +163,7 @@ module Autobuild
|
|
165
163
|
new_opt = testflags.find { |o| !options.include?(o) }
|
166
164
|
if old_opt || new_opt
|
167
165
|
if Autobuild.verbose
|
168
|
-
|
166
|
+
Autobuild.message "forcing reconfiguration of #{name} (#{old_opt} != #{new_opt})"
|
169
167
|
end
|
170
168
|
FileUtils.rm_f configurestamp # to force reconfiguration
|
171
169
|
end
|
@@ -162,7 +162,6 @@ module Autobuild
|
|
162
162
|
|
163
163
|
doxyfile_in = File.join(srcdir, "Doxyfile.in")
|
164
164
|
if !File.file?(doxyfile_in)
|
165
|
-
puts "NO INTERNAL: #{name}"
|
166
165
|
return false
|
167
166
|
end
|
168
167
|
File.readlines(doxyfile_in).each do |line|
|
@@ -272,7 +271,7 @@ module Autobuild
|
|
272
271
|
old_value = cache_line.split("=")[1].chomp if cache_line
|
273
272
|
if !old_value || !equivalent_option_value?(old_value, value)
|
274
273
|
if Autobuild.debug
|
275
|
-
|
274
|
+
message "%s: option '#{name}' changed value: '#{old_value}' => '#{value}'"
|
276
275
|
end
|
277
276
|
if old_value
|
278
277
|
message "%s: changed value of #{name} from #{old_value} to #{value}"
|
@@ -285,7 +284,7 @@ module Autobuild
|
|
285
284
|
end
|
286
285
|
if did_change
|
287
286
|
if Autobuild.debug
|
288
|
-
|
287
|
+
message "%s: CMake configuration changed, forcing a reconfigure"
|
289
288
|
end
|
290
289
|
FileUtils.rm_f cmake_cache
|
291
290
|
end
|
@@ -198,7 +198,7 @@ module Autobuild
|
|
198
198
|
# and if so add it into our dependency list
|
199
199
|
if rtt = Autobuild::Package["pkgconfig/orocos-rtt-#{orocos_target}"]
|
200
200
|
if Autobuild.verbose
|
201
|
-
|
201
|
+
message "orogen: found #{rtt.name} which provides the RTT"
|
202
202
|
end
|
203
203
|
depends_on rtt.name
|
204
204
|
end
|
data/lib/autobuild/parallel.rb
CHANGED
@@ -42,13 +42,9 @@ module Autobuild
|
|
42
42
|
|
43
43
|
def process_finished_task(task, processed, queue)
|
44
44
|
processed << task
|
45
|
-
#puts "finished #{task} (#{task.object_id}), considering dependencies"
|
46
45
|
reverse_dependencies[task].each do |candidate|
|
47
46
|
if candidate.prerequisite_tasks.all? { |t| processed.include?(t) }
|
48
|
-
#puts " adding #{candidate}"
|
49
47
|
queue << candidate
|
50
|
-
else
|
51
|
-
#puts " rejecting #{candidate} (#{candidate.prerequisite_tasks.find_all { |t| !processed.include?(t) }.map(&:name).join(", ")})"
|
52
48
|
end
|
53
49
|
end
|
54
50
|
end
|
@@ -70,7 +66,6 @@ module Autobuild
|
|
70
66
|
|
71
67
|
def discover_dependencies(t)
|
72
68
|
return if tasks.include?(t) # already discovered or being discovered
|
73
|
-
#puts "adding #{t}"
|
74
69
|
tasks << t
|
75
70
|
|
76
71
|
t.prerequisite_tasks.each do |dep_t|
|
@@ -88,12 +83,6 @@ module Autobuild
|
|
88
83
|
discover_dependencies(t)
|
89
84
|
end
|
90
85
|
@roots = tasks.find_all { |t| t.prerequisite_tasks.empty? }.to_set
|
91
|
-
|
92
|
-
#puts "roots:"
|
93
|
-
roots.each do |t|
|
94
|
-
#puts " #{t}"
|
95
|
-
end
|
96
|
-
#puts
|
97
86
|
|
98
87
|
# Build a reverse dependency graph (i.e. a mapping from a task to
|
99
88
|
# the tasks that depend on it)
|
@@ -122,7 +111,6 @@ module Autobuild
|
|
122
111
|
end
|
123
112
|
|
124
113
|
pending_task = queue.pop
|
125
|
-
#puts "#{processed.size} tasks processed so far, #{tasks.size} total"
|
126
114
|
if pending_task.instance_variable_get(:@already_invoked) || !pending_task.needed?
|
127
115
|
process_finished_task(pending_task, processed, queue)
|
128
116
|
next
|
@@ -144,20 +132,11 @@ module Autobuild
|
|
144
132
|
end
|
145
133
|
|
146
134
|
worker = available_workers.pop
|
147
|
-
#puts "queueing #{pending_task}"
|
148
135
|
worker.queue(pending_task)
|
149
136
|
end
|
150
137
|
|
151
138
|
if processed.size != tasks.size
|
152
139
|
with_cycle = tasks.to_set
|
153
|
-
(tasks.to_set - processed).each do |pending_task|
|
154
|
-
pending_task.prerequisite_tasks.each do |t|
|
155
|
-
if !processed.include?(t)
|
156
|
-
#puts "#{pending_task} => #{t}"
|
157
|
-
end
|
158
|
-
end
|
159
|
-
end
|
160
|
-
raise "cycle in task graph"
|
161
140
|
raise "cycle in task graph: #{with_cycle.map(&:name).sort.join(", ")}"
|
162
141
|
end
|
163
142
|
end
|
data/lib/autobuild/reporting.rb
CHANGED
@@ -32,6 +32,17 @@ module Autobuild
|
|
32
32
|
end
|
33
33
|
@progress_messages = Array.new
|
34
34
|
|
35
|
+
# Displays an error message
|
36
|
+
def self.error(message)
|
37
|
+
Autoproj.message(" ERROR: #{message}", :red, :bold)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Displays a warning message
|
41
|
+
def self.warn(message)
|
42
|
+
Autoproj.message(" WARN: #{message}", :magenta)
|
43
|
+
end
|
44
|
+
|
45
|
+
|
35
46
|
def self.progress_start(key, *args)
|
36
47
|
if args.last.kind_of?(Hash)
|
37
48
|
options = Kernel.validate_options args.pop, :done_message => nil
|
@@ -76,7 +87,7 @@ module Autobuild
|
|
76
87
|
found = true
|
77
88
|
end
|
78
89
|
end
|
79
|
-
if found
|
90
|
+
if found && @last_progress_msg
|
80
91
|
puts
|
81
92
|
display_progress
|
82
93
|
end
|
data/lib/autobuild/subcommand.rb
CHANGED
@@ -110,7 +110,7 @@ module Autobuild
|
|
110
110
|
# If the cpuinfo detection fails, inform the user and set it to 1
|
111
111
|
if !@processor_count
|
112
112
|
# Hug... What kind of system is it ?
|
113
|
-
|
113
|
+
Autobuild.message "INFO: cannot autodetect the number of CPUs on this sytem"
|
114
114
|
@processor_count = 1
|
115
115
|
end
|
116
116
|
|
@@ -168,7 +168,7 @@ module Autobuild::Subprocess
|
|
168
168
|
end
|
169
169
|
|
170
170
|
if Autobuild.verbose
|
171
|
-
|
171
|
+
Autobuild.message "#{target_name}: running #{command.join(" ")}\n (output goes to #{logname})"
|
172
172
|
end
|
173
173
|
|
174
174
|
open_flag = if Autobuild.keep_oldlogs then 'a'
|
data/lib/autobuild/timestamps.rb
CHANGED
@@ -32,7 +32,7 @@ module Autobuild
|
|
32
32
|
exclude.each { |rx| raise unless Regexp === rx }
|
33
33
|
exclude << (/#{Regexp.quote(STAMPFILE)}$/)
|
34
34
|
|
35
|
-
|
35
|
+
Autobuild.message "getting tree timestamp for #{path}" if Autobuild.debug
|
36
36
|
latest = Time.at(0)
|
37
37
|
latest_file = ""
|
38
38
|
|
@@ -40,7 +40,7 @@ module Autobuild
|
|
40
40
|
Find.prune if File.basename(p) =~ /^\./
|
41
41
|
exclude.each { |pattern|
|
42
42
|
if p =~ pattern
|
43
|
-
|
43
|
+
Autobuild.message " excluding #{p}" if Autobuild.debug
|
44
44
|
Find.prune
|
45
45
|
end
|
46
46
|
}
|
@@ -53,7 +53,7 @@ module Autobuild
|
|
53
53
|
end
|
54
54
|
}
|
55
55
|
|
56
|
-
|
56
|
+
Autobuild.message " newest file: #{latest_file} at #{latest}" if Autobuild.debug
|
57
57
|
return latest_file, latest
|
58
58
|
end
|
59
59
|
|
@@ -97,7 +97,7 @@ module Autobuild
|
|
97
97
|
end
|
98
98
|
|
99
99
|
def self.touch_stamp(stampfile)
|
100
|
-
|
100
|
+
Autobuild.message "Touching #{stampfile}" if Autobuild.debug
|
101
101
|
dir = File.dirname(stampfile)
|
102
102
|
if File.exists?(dir) && !File.directory?(dir)
|
103
103
|
raise "#{dir} exists and is not a directory"
|
data/lib/autobuild/version.rb
CHANGED
metadata
CHANGED
@@ -1,95 +1,73 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: autobuild
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 6
|
9
|
-
- 1
|
10
|
-
version: 1.6.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.6.2.b1
|
5
|
+
prerelease: 6
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Sylvain Joyeux
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-09-22 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rake
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &17029640 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 3
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
- 7
|
32
|
-
- 0
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 0.7.0
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: utilrb
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: *17029640
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: utilrb
|
27
|
+
requirement: &17029140 !ruby/object:Gem::Requirement
|
40
28
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 29
|
45
|
-
segments:
|
46
|
-
- 1
|
47
|
-
- 3
|
48
|
-
- 3
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
49
32
|
version: 1.3.3
|
50
33
|
type: :runtime
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: rdoc
|
54
34
|
prerelease: false
|
55
|
-
|
35
|
+
version_requirements: *17029140
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rdoc
|
38
|
+
requirement: &17028600 !ruby/object:Gem::Requirement
|
56
39
|
none: false
|
57
|
-
requirements:
|
40
|
+
requirements:
|
58
41
|
- - ~>
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
segments:
|
62
|
-
- 3
|
63
|
-
- 10
|
64
|
-
version: "3.10"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '3.10'
|
65
44
|
type: :development
|
66
|
-
version_requirements: *id003
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: hoe
|
69
45
|
prerelease: false
|
70
|
-
|
46
|
+
version_requirements: *17028600
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: hoe
|
49
|
+
requirement: &17028140 !ruby/object:Gem::Requirement
|
71
50
|
none: false
|
72
|
-
requirements:
|
51
|
+
requirements:
|
73
52
|
- - ~>
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
|
76
|
-
segments:
|
77
|
-
- 3
|
78
|
-
- 0
|
79
|
-
version: "3.0"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.1'
|
80
55
|
type: :development
|
81
|
-
|
82
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *17028140
|
58
|
+
description: Collection of classes to handle build systems (CMake, autotools, ...)
|
59
|
+
and import mechanisms (tarballs, CVS, SVN, git, ...). It also offers a Rake integration
|
60
|
+
to import and build such software packages. It is the backbone of the autoproj (http://rock-robotics.org/autoproj)
|
61
|
+
integrated software project management tool.
|
83
62
|
email: rock-dev@dfki.de
|
84
|
-
executables:
|
63
|
+
executables:
|
85
64
|
- autobuild
|
86
65
|
extensions: []
|
87
|
-
|
88
|
-
extra_rdoc_files:
|
66
|
+
extra_rdoc_files:
|
89
67
|
- Changes.txt
|
90
68
|
- Manifest.txt
|
91
69
|
- README.txt
|
92
|
-
files:
|
70
|
+
files:
|
93
71
|
- Changes.txt
|
94
72
|
- Manifest.txt
|
95
73
|
- README.txt
|
@@ -135,40 +113,32 @@ files:
|
|
135
113
|
- .gemtest
|
136
114
|
homepage: http://rock-robotics.org/stable/documentation/autoproj
|
137
115
|
licenses: []
|
138
|
-
|
139
116
|
post_install_message:
|
140
|
-
rdoc_options:
|
117
|
+
rdoc_options:
|
141
118
|
- --main
|
142
119
|
- README.txt
|
143
|
-
require_paths:
|
120
|
+
require_paths:
|
144
121
|
- lib
|
145
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
122
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
146
123
|
none: false
|
147
|
-
requirements:
|
148
|
-
- -
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
|
151
|
-
|
152
|
-
- 0
|
153
|
-
version: "0"
|
154
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
|
+
requirements:
|
125
|
+
- - ! '>='
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '0'
|
128
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
129
|
none: false
|
156
|
-
requirements:
|
157
|
-
- -
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
|
160
|
-
segments:
|
161
|
-
- 0
|
162
|
-
version: "0"
|
130
|
+
requirements:
|
131
|
+
- - ! '>'
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 1.3.1
|
163
134
|
requirements: []
|
164
|
-
|
165
135
|
rubyforge_project: autobuild
|
166
|
-
rubygems_version: 1.8.
|
136
|
+
rubygems_version: 1.8.11
|
167
137
|
signing_key:
|
168
138
|
specification_version: 3
|
169
139
|
summary: Library to handle build systems and import mechanisms
|
170
|
-
test_files:
|
140
|
+
test_files:
|
141
|
+
- test/test_import_cvs.rb
|
142
|
+
- test/test_subcommand.rb
|
171
143
|
- test/test_import_svn.rb
|
172
144
|
- test/test_import_tar.rb
|
173
|
-
- test/test_subcommand.rb
|
174
|
-
- test/test_import_cvs.rb
|