autoproj 1.12.6 → 1.13.0.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.
- checksums.yaml +4 -4
- data/Manifest.txt +14 -0
- data/Rakefile +1 -1
- data/bin/autoproj +4 -0
- data/bin/autoproj-bootstrap +16 -0
- data/bin/autoproj-commit +10 -0
- data/bin/autoproj-list +4 -3
- data/bin/autoproj-log +5 -0
- data/bin/autoproj-reset +13 -0
- data/bin/autoproj-show +3 -1
- data/bin/autoproj-snapshot +18 -29
- data/bin/autoproj-tag +13 -0
- data/bin/autoproj-test +15 -20
- data/bin/autoproj-versions +20 -0
- data/bin/autoproj_bootstrap +149 -28
- data/bin/autoproj_bootstrap.in +1 -2
- data/lib/autoproj.rb +2 -0
- data/lib/autoproj/autobuild.rb +41 -17
- data/lib/autoproj/cli.rb +7 -0
- data/lib/autoproj/cli/reset.rb +79 -0
- data/lib/autoproj/cli/snapshot.rb +63 -0
- data/lib/autoproj/cli/tag.rb +82 -0
- data/lib/autoproj/cli/test.rb +90 -0
- data/lib/autoproj/cli/versions.rb +94 -0
- data/lib/autoproj/cmdline.rb +127 -140
- data/lib/autoproj/configuration.rb +95 -0
- data/lib/autoproj/default.osdeps +3 -0
- data/lib/autoproj/gitorious.rb +25 -37
- data/lib/autoproj/manifest.rb +46 -9
- data/lib/autoproj/ops/cache.rb +1 -1
- data/lib/autoproj/ops/configuration.rb +7 -8
- data/lib/autoproj/ops/snapshot.rb +258 -0
- data/lib/autoproj/ops/tools.rb +36 -3
- data/lib/autoproj/osdeps.rb +28 -16
- data/lib/autoproj/package_definition.rb +13 -0
- data/lib/autoproj/package_manifest.rb +35 -32
- data/lib/autoproj/package_set.rb +74 -17
- data/lib/autoproj/system.rb +23 -10
- data/lib/autoproj/test.rb +60 -0
- data/lib/autoproj/version.rb +1 -1
- data/test/ops/test_configuration.rb +20 -0
- metadata +39 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d52be654ffd25aae59ee4d7142a32c3e87f7e97
|
4
|
+
data.tar.gz: 8e4668a6aa871d7a2e73784a731193aa176ef8f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab7081988a90fbd4bcf8b12b0b349c25d8b84119165ce8acaacaf509b60245208ce51d5961e42925797180540af8d38ff171dc99ec9acd09e761039c67f97c45
|
7
|
+
data.tar.gz: c6704587e1cc8aa66dc197d87377edd3a0b5c28ade8bf2521c8184974fa961652b93362831edfca37871aabc4760dadc21adb52a39d190332be317670946ef1c
|
data/Manifest.txt
CHANGED
@@ -10,16 +10,21 @@ bin/autoproj
|
|
10
10
|
bin/autoproj-bootstrap
|
11
11
|
bin/autoproj-cache
|
12
12
|
bin/autoproj-clean
|
13
|
+
bin/autoproj-commit
|
13
14
|
bin/autoproj-create-set
|
14
15
|
bin/autoproj-doc
|
15
16
|
bin/autoproj-envsh
|
16
17
|
bin/autoproj-list
|
17
18
|
bin/autoproj-locate
|
19
|
+
bin/autoproj-log
|
18
20
|
bin/autoproj-query
|
21
|
+
bin/autoproj-reset
|
19
22
|
bin/autoproj-show
|
20
23
|
bin/autoproj-snapshot
|
21
24
|
bin/autoproj-switch-config
|
25
|
+
bin/autoproj-tag
|
22
26
|
bin/autoproj-test
|
27
|
+
bin/autoproj-versions
|
23
28
|
bin/autoproj_bootstrap
|
24
29
|
bin/autoproj_bootstrap.in
|
25
30
|
bin/autoproj_stress_test
|
@@ -27,6 +32,12 @@ lib/autoproj.rb
|
|
27
32
|
lib/autoproj/autobuild.rb
|
28
33
|
lib/autoproj/base.rb
|
29
34
|
lib/autoproj/build_option.rb
|
35
|
+
lib/autoproj/cli.rb
|
36
|
+
lib/autoproj/cli/reset.rb
|
37
|
+
lib/autoproj/cli/snapshot.rb
|
38
|
+
lib/autoproj/cli/tag.rb
|
39
|
+
lib/autoproj/cli/test.rb
|
40
|
+
lib/autoproj/cli/versions.rb
|
30
41
|
lib/autoproj/cmdline.rb
|
31
42
|
lib/autoproj/configuration.rb
|
32
43
|
lib/autoproj/default.osdeps
|
@@ -40,6 +51,7 @@ lib/autoproj/ops/cache.rb
|
|
40
51
|
lib/autoproj/ops/configuration.rb
|
41
52
|
lib/autoproj/ops/loader.rb
|
42
53
|
lib/autoproj/ops/main_config_switcher.rb
|
54
|
+
lib/autoproj/ops/snapshot.rb
|
43
55
|
lib/autoproj/ops/tools.rb
|
44
56
|
lib/autoproj/options.rb
|
45
57
|
lib/autoproj/osdeps.rb
|
@@ -51,6 +63,7 @@ lib/autoproj/query.rb
|
|
51
63
|
lib/autoproj/system.rb
|
52
64
|
lib/autoproj/templates/create-set/packages.autobuild
|
53
65
|
lib/autoproj/templates/create-set/source.yml
|
66
|
+
lib/autoproj/test.rb
|
54
67
|
lib/autoproj/variable_expansion.rb
|
55
68
|
lib/autoproj/vcs_definition.rb
|
56
69
|
lib/autoproj/version.rb
|
@@ -74,6 +87,7 @@ test/data/os_release.with_quoted_and_unquoted_fields
|
|
74
87
|
test/data/test_manifest/autoproj/local_set/local.autobuild
|
75
88
|
test/data/test_manifest/autoproj/local_set/source.yml
|
76
89
|
test/data/test_manifest/autoproj/manifest
|
90
|
+
test/ops/test_configuration.rb
|
77
91
|
test/package_managers/apt-dpkg-status
|
78
92
|
test/package_managers/apt-dpkg-status.installed-last
|
79
93
|
test/package_managers/apt-dpkg-status.noninstalled-last
|
data/Rakefile
CHANGED
data/bin/autoproj
CHANGED
data/bin/autoproj-bootstrap
CHANGED
@@ -7,6 +7,22 @@ if File.exists?(File.join(root_dir, 'autoproj', "manifest"))
|
|
7
7
|
raise ConfigError.new, "this installation is already bootstrapped. Remove the autoproj directory if it is not the case"
|
8
8
|
end
|
9
9
|
|
10
|
+
Ops::Tools.load_autoprojrc
|
11
|
+
|
12
|
+
# Check if the .autoprojrc changed the PATH and therefore which autoproj script
|
13
|
+
# should be executed ... and restart if it did
|
14
|
+
autoproj_path = Autobuild.find_in_path('autoproj')
|
15
|
+
if $0 != autoproj_path
|
16
|
+
puts "your .autoprojrc file changed PATH in a way that requires the restart of autoproj"
|
17
|
+
|
18
|
+
if ENV['AUTOPROJ_RESTARTING']
|
19
|
+
puts "infinite loop detected, will not restart this time"
|
20
|
+
else
|
21
|
+
require 'rbconfig'
|
22
|
+
exec(Autoproj.config.ruby_executable, autoproj_path, *Autoproj::CmdLine.argv)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
10
26
|
Autoproj::CmdLine.report do
|
11
27
|
switcher = Autoproj::Ops::MainConfigSwitcher.new(root_dir)
|
12
28
|
begin
|
data/bin/autoproj-commit
ADDED
data/bin/autoproj-list
CHANGED
@@ -20,7 +20,7 @@ end
|
|
20
20
|
all_packages = Hash.new
|
21
21
|
package_sets = manifest.each_package_set.to_a
|
22
22
|
package_sets.each do |pkg_set|
|
23
|
-
pkg_set.
|
23
|
+
pkg_set.each_package do |pkg|
|
24
24
|
all_packages[pkg.name] = [pkg, pkg_set.name]
|
25
25
|
end
|
26
26
|
end
|
@@ -36,8 +36,9 @@ Autoproj.message
|
|
36
36
|
Autoproj.message("autoproj: package sets", :bold)
|
37
37
|
package_sets.sort_by(&:name).each do |pkg_set|
|
38
38
|
next if pkg_set.empty?
|
39
|
-
if pkg_set.imported_from
|
40
|
-
|
39
|
+
if !pkg_set.imported_from.empty?
|
40
|
+
imported_from = pkg_set.imported_from.map(&:name).sort
|
41
|
+
Autoproj.message " #{pkg_set.name} (imported by #{imported_from.join(", ")})"
|
41
42
|
else
|
42
43
|
Autoproj.message " #{pkg_set.name} (listed in manifest)"
|
43
44
|
end
|
data/bin/autoproj-log
ADDED
data/bin/autoproj-reset
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require 'autoproj/cli/reset'
|
3
|
+
|
4
|
+
Autoproj::CmdLine.report(silent: true) do
|
5
|
+
Autoproj.silent do
|
6
|
+
Autoproj::CmdLine.initialize_root_directory
|
7
|
+
Autoproj::CmdLine.initialize_and_load([])
|
8
|
+
end
|
9
|
+
|
10
|
+
cli = Autoproj::CLI::Reset.new(Autoproj.manifest)
|
11
|
+
ref_name, options = cli.parse_options(ARGV)
|
12
|
+
cli.run(ref_name, options)
|
13
|
+
end
|
data/bin/autoproj-show
CHANGED
@@ -80,7 +80,9 @@ packages.each do |name|
|
|
80
80
|
vcs = Autoproj.manifest.importer_definition_for(pkg_name)
|
81
81
|
|
82
82
|
fragments = []
|
83
|
-
if vcs
|
83
|
+
if !vcs
|
84
|
+
fragments << ["has no VCS definition", []]
|
85
|
+
elsif vcs.raw
|
84
86
|
first = true
|
85
87
|
fragments << [nil, vcs_to_array(vcs)]
|
86
88
|
vcs.raw.each do |pkg_set, vcs_info|
|
data/bin/autoproj-snapshot
CHANGED
@@ -1,38 +1,27 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
|
+
require 'autoproj/cli/snapshot'
|
2
3
|
|
3
|
-
|
4
|
-
require 'autoproj/cmdline'
|
5
|
-
|
6
|
-
current_dir = Dir.pwd
|
7
|
-
remaining_args = Autoproj.silent do
|
8
|
-
Autoproj::CmdLine.initialize_root_directory
|
9
|
-
Autoproj::CmdLine.initialize_and_load(ARGV)
|
10
|
-
end
|
11
|
-
|
12
|
-
snapshot_dir = File.expand_path(remaining_args.shift, current_dir)
|
13
|
-
if !snapshot_dir
|
14
|
-
raise ConfigError.new, "target directory missing\nusage: autoproj snapshot target_dir"
|
15
|
-
end
|
16
|
-
|
17
|
-
user_selection = remaining_args.map do |arg|
|
4
|
+
args = ARGV.map do |arg|
|
18
5
|
if File.directory?(arg)
|
19
6
|
File.expand_path(arg)
|
20
7
|
else arg
|
21
8
|
end
|
22
9
|
end
|
23
|
-
|
24
|
-
Autoproj::CmdLine.report do
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
# This calls #prepare, which is required to run build_packages
|
29
|
-
packages = Autoproj::CmdLine.import_packages(resolved_selection)
|
30
|
-
# Remove non-existing packages
|
31
|
-
packages.each do |pkg|
|
32
|
-
if !File.directory?(manifest.package(pkg).autobuild.srcdir)
|
33
|
-
raise ConfigError, "cannot snapshot #{pkg.name} as it is not checked out"
|
34
|
-
end
|
10
|
+
|
11
|
+
Autoproj::CmdLine.report(silent: true) do
|
12
|
+
Autoproj.silent do
|
13
|
+
Autoproj::CmdLine.initialize_root_directory
|
14
|
+
Autoproj::CmdLine.initialize_and_load([])
|
35
15
|
end
|
36
|
-
Autoproj::CmdLine.snapshot(Autoproj.manifest, snapshot_dir, packages)
|
37
|
-
end
|
38
16
|
|
17
|
+
cli = Autoproj::CLI::Snapshot.new(Autoproj.manifest)
|
18
|
+
args, options = cli.parse_options(args)
|
19
|
+
if args.empty?
|
20
|
+
Autoproj.error "missing target directory on the command line"
|
21
|
+
exit 1
|
22
|
+
elsif args.size > 1
|
23
|
+
Autoproj.error "expected only one argument on the command line specifying the target directory"
|
24
|
+
exit 1
|
25
|
+
end
|
26
|
+
cli.run(args.first, options)
|
27
|
+
end
|
data/bin/autoproj-tag
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require 'autoproj/cli/tag'
|
3
|
+
|
4
|
+
Autoproj::CmdLine.report(silent: true) do
|
5
|
+
Autoproj.silent do
|
6
|
+
Autoproj::CmdLine.initialize_root_directory
|
7
|
+
Autoproj::CmdLine.initialize_and_load([])
|
8
|
+
end
|
9
|
+
|
10
|
+
cli = Autoproj::CLI::Tag.new(Autoproj.manifest)
|
11
|
+
tag_name, options = cli.parse_options(ARGV)
|
12
|
+
cli.run(tag_name, options)
|
13
|
+
end
|
data/bin/autoproj-test
CHANGED
@@ -1,36 +1,31 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'autoproj'
|
4
|
-
require 'autoproj/
|
4
|
+
require 'autoproj/cli/test'
|
5
5
|
|
6
|
-
|
7
|
-
Autoproj::CmdLine.initialize_root_directory
|
8
|
-
Autoproj::CmdLine.initialize_and_load(ARGV)
|
9
|
-
end
|
10
|
-
|
11
|
-
user_selection = user_selection.map do |arg|
|
6
|
+
argv = ARGV.map do |arg|
|
12
7
|
if File.directory?(arg)
|
13
8
|
File.expand_path(arg)
|
14
9
|
else arg
|
15
10
|
end
|
16
11
|
end
|
17
12
|
|
13
|
+
Autoproj.silent do
|
14
|
+
Autoproj::CmdLine.initialize_root_directory
|
15
|
+
Autoproj::CmdLine.initialize_and_load([])
|
16
|
+
end
|
17
|
+
|
18
18
|
Autobuild.pass_test_errors = true
|
19
19
|
Autobuild.ignore_errors = true
|
20
20
|
|
21
|
-
Autoproj::CmdLine.report do
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
21
|
+
Autoproj::CmdLine.report(silent: true) do
|
22
|
+
cli = Autoproj::CLI::Test.new(Autoproj.manifest)
|
23
|
+
mode, user_selection, options = cli.parse_options(argv)
|
24
|
+
|
25
|
+
if mode == 'run'
|
26
|
+
cli.run(user_selection, options)
|
27
|
+
elsif mode == 'list'
|
28
|
+
cli.list(user_selection, options)
|
29
29
|
end
|
30
|
-
resolved_selection.filter_excluded_and_ignored_packages(Autoproj.manifest)
|
31
|
-
# This calls #prepare, which is required to run build_packages
|
32
|
-
packages = Autoproj::CmdLine.import_packages(resolved_selection)
|
33
|
-
packages.each { |pkg| Autobuild::Package[pkg].disable_phases('import', 'prepare', 'install') }
|
34
|
-
Autobuild.apply(packages, "autoproj-test", ['test'])
|
35
30
|
end
|
36
31
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require 'autoproj/cli/versions'
|
3
|
+
|
4
|
+
args = ARGV.map do |arg|
|
5
|
+
if File.directory?(arg)
|
6
|
+
File.expand_path(arg)
|
7
|
+
else arg
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
Autoproj::CmdLine.report(silent: true) do
|
12
|
+
Autoproj.silent do
|
13
|
+
Autoproj::CmdLine.initialize_root_directory
|
14
|
+
Autoproj::CmdLine.initialize_and_load([])
|
15
|
+
end
|
16
|
+
|
17
|
+
cli = Autoproj::CLI::Versions.new(Autoproj.manifest)
|
18
|
+
user_selection, options = cli.parse_options(args)
|
19
|
+
cli.run(user_selection, options)
|
20
|
+
end
|
data/bin/autoproj_bootstrap
CHANGED
@@ -444,13 +444,108 @@ module Autoproj
|
|
444
444
|
end
|
445
445
|
end
|
446
446
|
|
447
|
+
# Returns true if packages and prefixes should be auto-generated, based
|
448
|
+
# on the SHA of the package names. This is meant to be used for build
|
449
|
+
# services that want to check that dependencies are properly set
|
450
|
+
#
|
451
|
+
# The default is false (disabled)
|
452
|
+
#
|
453
|
+
# @return [Boolean]
|
447
454
|
def randomize_layout?
|
448
455
|
get('randomize_layout', false)
|
449
456
|
end
|
450
457
|
|
458
|
+
# Sets whether the layout should be randomized
|
459
|
+
#
|
460
|
+
# @return [Boolean]
|
461
|
+
# @see randomize_layout?
|
451
462
|
def randomize_layout=(value)
|
452
463
|
set('randomize_layout', value, true)
|
453
464
|
end
|
465
|
+
|
466
|
+
DEFAULT_UTILITY_SETUP = Hash[
|
467
|
+
'doc' => true,
|
468
|
+
'test' => false]
|
469
|
+
|
470
|
+
# The configuration key that should be used to store the utility
|
471
|
+
# enable/disable information
|
472
|
+
#
|
473
|
+
# @param [String] the utility name
|
474
|
+
# @return [String] the config key
|
475
|
+
def utility_key(utility)
|
476
|
+
"autoproj_#{utility}_utility"
|
477
|
+
end
|
478
|
+
|
479
|
+
# Returns whether a given utility is enabled for the package
|
480
|
+
#
|
481
|
+
# If there is no specific configuration for the package, uses the global
|
482
|
+
# default set with utility_enable_all or utility_disable_all. If none of
|
483
|
+
# these methods has been called, uses the default in
|
484
|
+
# {DEFAULT_UTILITY_SETUP}
|
485
|
+
#
|
486
|
+
# @param [String] utility the utility name (e.g. 'doc' or 'test')
|
487
|
+
# @param [String] package the package name
|
488
|
+
# @return [Boolean] true if the utility should be enabled for the
|
489
|
+
# requested package and false otherwise
|
490
|
+
def utility_enabled_for?(utility, package)
|
491
|
+
utility_config = get(utility_key(utility), Hash.new)
|
492
|
+
if utility_config.has_key?(package)
|
493
|
+
utility_config[package]
|
494
|
+
else get("#{utility_key(utility)}_default", DEFAULT_UTILITY_SETUP[utility])
|
495
|
+
end
|
496
|
+
end
|
497
|
+
|
498
|
+
# Enables a utility for all packages
|
499
|
+
#
|
500
|
+
# This both sets the default value for all packages and resets all
|
501
|
+
# package-specific values set with {utility_enable_for} and
|
502
|
+
# {utility_disable_for}
|
503
|
+
#
|
504
|
+
# @param [String] utility the utility name (e.g. 'doc' or 'test')
|
505
|
+
# @return [void]
|
506
|
+
def utility_enable_all(utility)
|
507
|
+
reset(utility_key(utility))
|
508
|
+
set("#{utility_key(utility)}_default", true)
|
509
|
+
end
|
510
|
+
|
511
|
+
# Enables a utility for a specific package
|
512
|
+
#
|
513
|
+
# Note that if the default for this utility is to be enabled, this is
|
514
|
+
# essentially a no-op.
|
515
|
+
#
|
516
|
+
# @param [String] utility the utility name (e.g. 'doc' or 'test')
|
517
|
+
# @param [String] package the package name
|
518
|
+
# @return [void]
|
519
|
+
def utility_enable_for(utility, package)
|
520
|
+
utility_config = get(utility_key(utility), Hash.new)
|
521
|
+
set(utility_key(utility), utility_config.merge(package => true))
|
522
|
+
end
|
523
|
+
|
524
|
+
# Disables a utility for all packages
|
525
|
+
#
|
526
|
+
# This both sets the default value for all packages and resets all
|
527
|
+
# package-specific values set with {utility_enable_for} and
|
528
|
+
# {utility_disable_for}
|
529
|
+
#
|
530
|
+
# @param [String] utility the utility name (e.g. 'doc' or 'test')
|
531
|
+
# @return [void]
|
532
|
+
def utility_disable_all(utility)
|
533
|
+
reset(utility_key(utility))
|
534
|
+
set("#{utility_key(utility)}_default", false)
|
535
|
+
end
|
536
|
+
|
537
|
+
# Disables a utility for a specific package
|
538
|
+
#
|
539
|
+
# Note that if the default for this utility is to be disabled, this is
|
540
|
+
# essentially a no-op.
|
541
|
+
#
|
542
|
+
# @param [String] utility the utility name (e.g. 'doc' or 'test')
|
543
|
+
# @param [String] package the package name
|
544
|
+
# @return [void]
|
545
|
+
def utility_disable_for(utility, package)
|
546
|
+
utility_config = get(utility_key(utility), Hash.new)
|
547
|
+
set(utility_key(utility), utility_config.merge(package => false))
|
548
|
+
end
|
454
549
|
end
|
455
550
|
end
|
456
551
|
|
@@ -832,6 +927,17 @@ fi
|
|
832
927
|
"zypper -n install '%s'")
|
833
928
|
end
|
834
929
|
|
930
|
+
def filter_uptodate_packages(packages)
|
931
|
+
result = `LANG=C rpm -q --whatprovides '#{packages.join("' '")}'`
|
932
|
+
has_all_pkgs = $?.success?
|
933
|
+
|
934
|
+
if !has_all_pkgs
|
935
|
+
return packages # let zypper filter, we need root now anyways
|
936
|
+
else
|
937
|
+
return []
|
938
|
+
end
|
939
|
+
end
|
940
|
+
|
835
941
|
def install(packages)
|
836
942
|
patterns, packages = packages.partition { |pkg| pkg =~ /^@/ }
|
837
943
|
patterns = patterns.map { |str| str[1..-1] }
|
@@ -864,21 +970,21 @@ fi
|
|
864
970
|
result = `LANG=C rpm -q --queryformat "%{NAME}\n" '#{packages.join("' '")}'`
|
865
971
|
|
866
972
|
installed_packages = []
|
867
|
-
|
973
|
+
new_packages = []
|
868
974
|
result.split("\n").each_with_index do |line, index|
|
869
|
-
|
975
|
+
line = line.strip
|
870
976
|
if line =~ /package (.*) is not installed/
|
871
|
-
|
872
|
-
|
873
|
-
|
874
|
-
|
977
|
+
package_name = $1
|
978
|
+
if !packages.include?(package_name) # something is wrong, fallback to installing everything
|
979
|
+
return packages
|
980
|
+
end
|
875
981
|
new_packages << package_name
|
876
|
-
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
982
|
+
else
|
983
|
+
package_name = line.strip
|
984
|
+
if !packages.include?(package_name) # something is wrong, fallback to installing everything
|
985
|
+
return packages
|
986
|
+
end
|
987
|
+
installed_packages << package_name
|
882
988
|
end
|
883
989
|
end
|
884
990
|
new_packages
|
@@ -996,13 +1102,13 @@ fi
|
|
996
1102
|
Autoproj.manifest.each_reused_autoproj_installation do |p|
|
997
1103
|
p_gems = File.join(p, '.gems')
|
998
1104
|
if File.directory?(p_gems)
|
999
|
-
Autobuild.
|
1000
|
-
Autobuild.
|
1105
|
+
Autobuild.env_push_path 'GEM_PATH', p_gems
|
1106
|
+
Autobuild.env_push_path 'PATH', File.join(p_gems, 'bin')
|
1001
1107
|
end
|
1002
1108
|
end
|
1003
|
-
Autobuild.
|
1109
|
+
Autobuild.env_push_path 'GEM_PATH', gem_home
|
1004
1110
|
Autobuild.env_set 'GEM_HOME', gem_home
|
1005
|
-
Autobuild.
|
1111
|
+
Autobuild.env_push_path 'PATH', "#{gem_home}/bin"
|
1006
1112
|
|
1007
1113
|
# Now, reset the directories in our own RubyGems instance
|
1008
1114
|
Gem.paths = ENV
|
@@ -1012,6 +1118,7 @@ fi
|
|
1012
1118
|
if cache = cache_dir
|
1013
1119
|
gem_cache_dir = File.join(gem_home, 'cache')
|
1014
1120
|
if !File.symlink?(gem_cache_dir) || File.readlink(gem_cache_dir) != cache
|
1121
|
+
FileUtils.mkdir_p gem_home
|
1015
1122
|
FileUtils.rm_rf gem_cache_dir
|
1016
1123
|
Autoproj.create_symlink(cache, gem_cache_dir)
|
1017
1124
|
end
|
@@ -2563,23 +2670,26 @@ module Autoproj
|
|
2563
2670
|
return @root_dir
|
2564
2671
|
end
|
2565
2672
|
|
2566
|
-
|
2567
|
-
|
2568
|
-
|
2673
|
+
path = Pathname.pwd
|
2674
|
+
while !path.root?
|
2675
|
+
if (path + "autoproj" + 'manifest').file?
|
2676
|
+
break
|
2569
2677
|
end
|
2570
|
-
|
2571
|
-
while root_dir_rx !~ dir && !File.directory?(File.join(dir, "autoproj"))
|
2572
|
-
dir = File.dirname(dir)
|
2678
|
+
path = path.parent
|
2573
2679
|
end
|
2574
|
-
|
2680
|
+
|
2681
|
+
if path.root?
|
2575
2682
|
raise UserError, "not in a Autoproj installation"
|
2576
2683
|
end
|
2577
2684
|
|
2578
|
-
|
2685
|
+
result = path.to_s
|
2686
|
+
# I don't know if this is still useful or not ... but it does not hurt
|
2687
|
+
#
|
2688
|
+
# Preventing backslashed in path, that might be confusing on some path compares
|
2579
2689
|
if Autobuild.windows?
|
2580
|
-
|
2690
|
+
result = result.gsub(/\\/,'/')
|
2581
2691
|
end
|
2582
|
-
|
2692
|
+
result
|
2583
2693
|
end
|
2584
2694
|
|
2585
2695
|
# Returns the configuration directory for this autoproj installation.
|
@@ -2590,6 +2700,16 @@ module Autoproj
|
|
2590
2700
|
File.join(root_dir, "autoproj")
|
2591
2701
|
end
|
2592
2702
|
|
2703
|
+
OVERRIDES_DIR = "overrides.d"
|
2704
|
+
|
2705
|
+
# Returns the directory containing overrides files
|
2706
|
+
#
|
2707
|
+
# If the current directory is not in an autoproj installation,
|
2708
|
+
# raises UserError.
|
2709
|
+
def self.overrides_dir
|
2710
|
+
File.join(config_dir, OVERRIDES_DIR)
|
2711
|
+
end
|
2712
|
+
|
2593
2713
|
# @deprecated use Autobuild.find_in_path instead
|
2594
2714
|
#
|
2595
2715
|
# Warning: the autobuild method returns nil (instead of raising) if the
|
@@ -2945,6 +3065,8 @@ pip:
|
|
2945
3065
|
arch: python2-pip
|
2946
3066
|
opensuse: python-pip
|
2947
3067
|
fedora: python-pip
|
3068
|
+
sudo:
|
3069
|
+
default: sudo
|
2948
3070
|
|
2949
3071
|
EODEFS
|
2950
3072
|
|
@@ -2976,7 +3098,7 @@ rescue Autoproj::ConfigError => e
|
|
2976
3098
|
end
|
2977
3099
|
|
2978
3100
|
# Now try to find out the name of the gem binary
|
2979
|
-
PACKAGES = []
|
3101
|
+
PACKAGES = ['build-essential', 'sudo']
|
2980
3102
|
|
2981
3103
|
STDERR.puts "autoproj: installing autoproj and its dependencies (this can take a long time)"
|
2982
3104
|
# First install the dependencies of autoproj, as we don't want them to be
|
@@ -3009,7 +3131,6 @@ if ARGV.first != "localdev"
|
|
3009
3131
|
ARGV.shift
|
3010
3132
|
end
|
3011
3133
|
begin
|
3012
|
-
osdeps_management.install(['build-essential'])
|
3013
3134
|
osdeps_management.install(['autobuild'])
|
3014
3135
|
osdeps_management.install(['autoproj'])
|
3015
3136
|
rescue Autoproj::ConfigError => e
|