autoproj 1.5.3 → 1.5.4
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/History.txt +3 -0
- data/Rakefile +13 -0
- data/doc/guide/src/autoproj_bootstrap +105 -88
- data/lib/autoproj/autobuild.rb +13 -2
- data/lib/autoproj/manifest.rb +3 -1
- data/lib/autoproj/version.rb +1 -1
- metadata +3 -3
data/History.txt
CHANGED
data/Rakefile
CHANGED
@@ -39,6 +39,19 @@ begin
|
|
39
39
|
task 'bootstrap' do
|
40
40
|
osdeps_code = File.read(File.join(Dir.pwd, 'lib', 'autoproj', 'osdeps.rb'))
|
41
41
|
osdeps_defaults = File.read(File.join(Dir.pwd, 'lib', 'autoproj', 'default.osdeps'))
|
42
|
+
# Filter rubygems dependencies from the OSdeps default. They will be
|
43
|
+
# installed at first build
|
44
|
+
osdeps = YAML.load(osdeps_defaults)
|
45
|
+
osdeps.delete_if do |name, content|
|
46
|
+
if content.respond_to?(:delete)
|
47
|
+
content.delete('gem')
|
48
|
+
content.empty?
|
49
|
+
else
|
50
|
+
content == 'gem'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
osdeps_defaults = YAML.dump(osdeps)
|
54
|
+
|
42
55
|
bootstrap_code = File.read(File.join(Dir.pwd, 'bin', 'autoproj_bootstrap.in')).
|
43
56
|
gsub('OSDEPS_CODE', osdeps_code).
|
44
57
|
gsub('OSDEPS_DEFAULTS', osdeps_defaults)
|
@@ -98,7 +98,16 @@ module Autoproj
|
|
98
98
|
|
99
99
|
AUTOPROJ_OSDEPS = File.join(File.expand_path(File.dirname(__FILE__)), 'default.osdeps')
|
100
100
|
def self.load_default
|
101
|
-
@default_osdeps
|
101
|
+
if @default_osdeps
|
102
|
+
@default_osdeps
|
103
|
+
else
|
104
|
+
file = ENV['AUTOPROJ_DEFAULT_OSDEPS'] || AUTOPROJ_OSDEPS
|
105
|
+
if !File.file?(file)
|
106
|
+
STDERR.puts "WARN: #{file} (from AUTOPROJ_DEFAULT_OSDEPS) is not a file, falling back to #{AUTOPROJ_OSDEPS}"
|
107
|
+
file = AUTOPROJ_OSDEPS
|
108
|
+
end
|
109
|
+
@default_osdeps = OSDependencies.load(file)
|
110
|
+
end
|
102
111
|
end
|
103
112
|
|
104
113
|
attr_reader :definitions
|
@@ -195,14 +204,18 @@ module Autoproj
|
|
195
204
|
'arch' => 'pacman -Sy --noconfirm %s'
|
196
205
|
}
|
197
206
|
|
198
|
-
|
207
|
+
# Resolves the given OS dependencies into the actual packages that need
|
208
|
+
# to be installed on this particular OS.
|
209
|
+
#
|
210
|
+
# Raises ConfigError if some packages can't be found
|
211
|
+
def resolve_os_dependencies(dependencies)
|
199
212
|
os_name, os_version = operating_system
|
200
213
|
if !OS_PACKAGE_INSTALL.has_key?(os_name)
|
201
214
|
raise ConfigError, "I don't know how to install packages on #{os_name}"
|
202
215
|
end
|
203
216
|
|
204
|
-
shell_snippets = ""
|
205
217
|
os_packages = []
|
218
|
+
shell_snippets = []
|
206
219
|
dependencies.each do |name|
|
207
220
|
dep_def = definitions[name]
|
208
221
|
if !dep_def
|
@@ -221,6 +234,7 @@ module Autoproj
|
|
221
234
|
end
|
222
235
|
|
223
236
|
data = os_entry.last
|
237
|
+
|
224
238
|
# This package does not need to be installed on this operating system (example: build tools on Gentoo)
|
225
239
|
next if !data || data == "ignore"
|
226
240
|
|
@@ -244,20 +258,29 @@ module Autoproj
|
|
244
258
|
elsif data.to_str =~ /\w+/
|
245
259
|
os_packages << data.to_str
|
246
260
|
else
|
247
|
-
shell_snippets <<
|
261
|
+
shell_snippets << data.to_str
|
248
262
|
end
|
249
263
|
end
|
250
264
|
|
265
|
+
return os_packages, shell_snippets
|
266
|
+
end
|
267
|
+
|
268
|
+
|
269
|
+
def generate_os_script(dependencies)
|
270
|
+
os_name, os_version = operating_system
|
271
|
+
os_packages, shell_snippets = resolve_os_dependencies(dependencies)
|
272
|
+
|
251
273
|
"#! /bin/bash\n" +
|
252
274
|
GAIN_ROOT_ACCESS + "\n" +
|
253
275
|
(OS_PACKAGE_INSTALL[os_name] % [os_packages.join(" ")]) +
|
254
|
-
"\n" + shell_snippets
|
276
|
+
"\n" + shell_snippets.join("\n")
|
255
277
|
end
|
256
278
|
|
257
279
|
# Returns true if there is an operating-system package with that name,
|
258
280
|
# and false otherwise
|
259
281
|
def has?(name)
|
260
|
-
partition_packages([name].to_set)
|
282
|
+
osdeps, gemdeps = partition_packages([name].to_set)
|
283
|
+
resolve_os_dependencies(osdeps)
|
261
284
|
true
|
262
285
|
rescue ConfigError
|
263
286
|
false
|
@@ -398,92 +421,86 @@ end
|
|
398
421
|
|
399
422
|
|
400
423
|
DEFS = <<EODEFS
|
401
|
-
|
424
|
+
---
|
402
425
|
none: ignore
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
- dev-lang/ruby:1.9
|
433
|
-
arch:
|
434
|
-
- ruby
|
435
|
-
|
426
|
+
ruby18:
|
427
|
+
debian,ubuntu:
|
428
|
+
- ruby1.8-dev
|
429
|
+
- ruby1.8
|
430
|
+
- rubygems1.8
|
431
|
+
- ri1.8
|
432
|
+
- libopenssl-ruby1.8
|
433
|
+
gentoo:
|
434
|
+
- dev-lang/ruby:1.8
|
435
|
+
ruby19:
|
436
|
+
debian:
|
437
|
+
squeeze,sid:
|
438
|
+
- ruby1.9.1
|
439
|
+
- ruby1.9.1-dev
|
440
|
+
- rubygems1.9.1
|
441
|
+
stable:
|
442
|
+
- ruby1.9.1
|
443
|
+
- ruby1.9.1-dev
|
444
|
+
- rubygems1.9.1
|
445
|
+
ubuntu:
|
446
|
+
- ruby1.9.1
|
447
|
+
- ruby1.9.1-dev
|
448
|
+
- rubygems1.9.1
|
449
|
+
- ri1.9.1
|
450
|
+
- libopenssl-ruby1.9.1
|
451
|
+
gentoo:
|
452
|
+
- dev-lang/ruby:1.9
|
453
|
+
arch:
|
454
|
+
- ruby
|
436
455
|
rdoc: gem
|
437
|
-
|
438
|
-
build-essential
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
libxml2
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
libxslt
|
449
|
-
debian,ubuntu: libxslt1-dev
|
450
|
-
gentoo: dev-libs/libxslt
|
451
|
-
arch: libxslt
|
452
|
-
|
456
|
+
build-essential:
|
457
|
+
debian,ubuntu: build-essential
|
458
|
+
gentoo:
|
459
|
+
arch:
|
460
|
+
libxml2:
|
461
|
+
debian,ubuntu: libxml2-dev
|
462
|
+
gentoo: dev-libs/libxml2
|
463
|
+
arch: libxml2
|
464
|
+
libxslt:
|
465
|
+
debian,ubuntu: libxslt1-dev
|
466
|
+
gentoo: dev-libs/libxslt
|
467
|
+
arch: libxslt
|
453
468
|
autobuild: gem
|
454
469
|
autoproj: gem
|
455
|
-
|
456
|
-
|
457
|
-
git
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
cmake
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
lsb_release:
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
470
|
+
git:
|
471
|
+
debian,ubuntu: git-core
|
472
|
+
gentoo: dev-vcs/git
|
473
|
+
arch: git
|
474
|
+
svn:
|
475
|
+
debian,ubuntu: subversion
|
476
|
+
gentoo: dev-util/subversion
|
477
|
+
arch: subversion
|
478
|
+
cmake:
|
479
|
+
debian,ubuntu: cmake
|
480
|
+
gentoo: dev-util/cmake
|
481
|
+
arch: cmake
|
482
|
+
autotools:
|
483
|
+
debian,ubuntu:
|
484
|
+
- automake1.9
|
485
|
+
- autoconf
|
486
|
+
gentoo:
|
487
|
+
- sys-devel/automake:1.9
|
488
|
+
- sys-devel/autoconf
|
489
|
+
arch: automake autoconf
|
490
|
+
lsb_release:
|
491
|
+
debian,ubuntu: lsb-release
|
492
|
+
gentoo: sys-apps/lsb-release
|
493
|
+
arch:
|
494
|
+
archive:
|
495
|
+
debian,ubuntu:
|
496
|
+
- tar
|
497
|
+
- unzip
|
498
|
+
gentoo:
|
499
|
+
- app-arch/tar
|
500
|
+
- app-arch/unzip
|
501
|
+
arch:
|
502
|
+
- tar
|
503
|
+
- unzip
|
487
504
|
|
488
505
|
EODEFS
|
489
506
|
|
data/lib/autoproj/autobuild.rb
CHANGED
@@ -11,11 +11,22 @@ module Autobuild
|
|
11
11
|
|
12
12
|
alias __depends_on__ depends_on
|
13
13
|
def depends_on(name)
|
14
|
-
|
14
|
+
explicit_selection = Autoproj.manifest.explicitly_selected_package?(name)
|
15
|
+
if Autoproj.osdeps.has?(name) && !explicit_selection
|
15
16
|
@os_packages ||= Set.new
|
16
17
|
@os_packages << name
|
17
18
|
else
|
18
|
-
|
19
|
+
begin
|
20
|
+
__depends_on__(name)
|
21
|
+
rescue Exception => e
|
22
|
+
if explicit_selection
|
23
|
+
raise e
|
24
|
+
else
|
25
|
+
# Re-call osdeps to get a proper error message
|
26
|
+
osdeps, gems = Autoproj.osdeps.partition_packages([name].to_set)
|
27
|
+
Autoproj.osdeps.resolve_os_dependencies(osdeps)
|
28
|
+
end
|
29
|
+
end
|
19
30
|
end
|
20
31
|
end
|
21
32
|
|
data/lib/autoproj/manifest.rb
CHANGED
@@ -1018,7 +1018,9 @@ module Autoproj
|
|
1018
1018
|
begin
|
1019
1019
|
package.depends_on name
|
1020
1020
|
rescue Autobuild::ConfigException => e
|
1021
|
-
raise ConfigError, "manifest of #{package.name} from #{source.name} lists '#{name}' as dependency,
|
1021
|
+
raise ConfigError, "manifest #{manifest_path} of #{package.name} from #{source.name} lists '#{name}' as dependency, which is listed in the layout but has no autobuild definition"
|
1022
|
+
rescue ConfigError => e
|
1023
|
+
raise ConfigError, "manifest #{manifest_path} of #{package.name} from #{source.name} lists '#{name}' as dependency, but it is neither a normal package nor an osdeps package. osdeps reports: #{e.message}"
|
1022
1024
|
end
|
1023
1025
|
end
|
1024
1026
|
end
|
data/lib/autoproj/version.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 5
|
8
|
-
-
|
9
|
-
version: 1.5.
|
8
|
+
- 4
|
9
|
+
version: 1.5.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Sylvain Joyeux
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-06-
|
17
|
+
date: 2010-06-15 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|