autoproj 1.9.3.rc5 → 1.9.3.rc6

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,58 @@
1
+ = Version 1.9.3
2
+ * close #245: wrong local variable name
3
+ * close #218: fix error generated when a metapackage is empty
4
+ * close #239: metapackages are now back to having "hard" dependencies, i.e. the
5
+ build will fail if any of the metapackage's dependencies (or their
6
+ dependencies) cannot be built for any reason. Individual metapackages (e.g. the
7
+ rock metapackage) can be marked as using "weak" dependencies to retain the
8
+ behaviour of "build as much as you can"
9
+ * Ruby 2.0 / RubyGems 2.0 compatibility fix
10
+ * re-add 'default' in the osdep OS names. This allows to fall back to
11
+ os-independent handlers (e.g. 'gem') when not on a known OS
12
+ * fixes for the MacPort OSdep handler
13
+
14
+ = Version 1.9.2
15
+ * quickfix release for issues on systems where the system-wide encoding cannot
16
+ be resolved by libc
17
+ = Version 1.9.1
18
+ * fix issues with bootstrapping and building on MacOS
19
+ * better error messages w.r.t. exclusions
20
+ * don't rescue interrupts even if -k is given
21
+ * fix some corner-cases in the debian osdep handler
22
+ * fix some Ruby autodetection problems
23
+
24
+ = Version 1.9.0
25
+ * fixed bad generation of env.sh. The (very annoying) problem of having
26
+ a partial env.sh file generated should now be fixed for good.
27
+ * much improved progress output for heavily parallel builds
28
+ * autoproj update and aup properly update the configuration if given
29
+ the autoproj/ folder. I.e.,
30
+ autoproj update autoproj/
31
+ is equivalent to autoproj update-config
32
+ * experimental support for Windows
33
+ * experimental support for MacOSX. The osdep system is using MacPorts
34
+ * autoproj now validates that you are using always the same ruby
35
+ version. It avoids potential issues in cases where both ruby 1.9 and
36
+ 1.8 are used on the same system
37
+ * fix some issue with auto-adding packages. Autoproj would always
38
+ auto-add package X if e.g. amake is used, which works fine in most
39
+ but not all cases.
40
+ * host of fixes related to ignore_packages. In general, this should
41
+ really work well now
42
+ * fix Autoproj.set_initial_env. The details of this forgotten feature
43
+ is going to be in a blog post.
44
+ * fixed supurious log/ directory created in new bootstrapped
45
+ installations
46
+ * the osdep: keyword can be used to trigger recursive resolution. I.e.,
47
+ one can do the following to avoid repeating a complete osdep
48
+ definition:
49
+
50
+ nokogiri:
51
+ gem: nokogiri
52
+ osdep: libxslt-dev
53
+ libxslt-dev:
54
+ ubuntu: libxslt-dev
55
+
1
56
  = Version 1.8.5
2
57
  * osdeps: the apt-dpkg was interpreting removed-but-not-purged as installed.
3
58
  Fix.
data/Manifest.txt CHANGED
@@ -7,9 +7,11 @@ bin/amake
7
7
  bin/aup
8
8
  bin/autolocate
9
9
  bin/autoproj
10
+ bin/autoproj-bootstrap
10
11
  bin/autoproj-clean
11
12
  bin/autoproj-create-set
12
13
  bin/autoproj-envsh
14
+ bin/autoproj-inspect
13
15
  bin/autoproj-list
14
16
  bin/autoproj-locate
15
17
  bin/autoproj-query
@@ -0,0 +1,24 @@
1
+ #! /usr/bin/env ruby
2
+ require 'autoproj'
3
+
4
+ Autoproj::CmdLine.report do
5
+ begin
6
+ Autoproj::CmdLine.bootstrap(*ARGV)
7
+
8
+ rescue RuntimeError => e
9
+ STDERR.puts <<-EOTEXT
10
+ #{color('autoproj bootstrap failed', :red, :bold)}
11
+ To retry, first source the #{Autoproj::ENV_FILENAME} script with
12
+ source #{Dir.pwd}/#{Autoproj::ENV_FILENAME}
13
+ and then re-run autoproj bootstrap with
14
+ autoproj bootstrap <vcs_type> <vcs_url> <vcs_options>
15
+
16
+ where
17
+ 'vcs_type' is git, svn, darcs, cvs
18
+ 'vcs_url' is the vcs-specific URL to the repository, and
19
+ 'vcs_options' are optional values that can be given to the chosen VCS
20
+ EOTEXT
21
+
22
+ raise
23
+ end
24
+ end
@@ -0,0 +1,104 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ require 'autoproj'
4
+ require 'autoproj/cmdline'
5
+ Autoproj.silent = true
6
+ Autoproj::CmdLine.initialize_root_directory
7
+ Autoproj::CmdLine.initialize_and_load(ARGV)
8
+
9
+ require 'pp'
10
+ default_packages = Autoproj.manifest.default_packages
11
+ revdeps = Autoproj.manifest.compute_revdeps
12
+
13
+ user_selection = ARGV.map do |arg|
14
+ if File.directory?(arg)
15
+ File.expand_path(arg)
16
+ else arg
17
+ end
18
+ end
19
+ resolved_selection = Autoproj::CmdLine.resolve_user_selection(user_selection, :filter => false)
20
+ packages = resolved_selection.selection.keys
21
+
22
+ def find_selection_path(from, to)
23
+ path = [from]
24
+ if from == to
25
+ return path
26
+ end
27
+
28
+ Autoproj.manifest.resolve_package_set(from).each do |pkg_name|
29
+ Autobuild::Package[pkg_name].dependencies.each do |dep_pkg_name|
30
+ if result = find_selection_path(dep_pkg_name, to)
31
+ return path + result
32
+ end
33
+ end
34
+ end
35
+ nil
36
+ end
37
+
38
+ packages.each do |name|
39
+ result = Autoproj.manifest.resolve_package_name(name, :filter => false)
40
+ packages, osdeps = result.partition { |type, name| type == :package }
41
+ packages = packages.map(&:last)
42
+ osdeps = osdeps.map(&:last)
43
+
44
+ packages.each do |pkg_name|
45
+ puts "source package #{pkg_name}"
46
+ if default_packages.include?(pkg_name)
47
+ selection = default_packages.selection[pkg_name]
48
+ if selection.include?(pkg_name) && selection.size == 1
49
+ puts " is directly selected by the manifest"
50
+ else
51
+ selection = selection.dup
52
+ selection.delete(pkg_name)
53
+ puts " is directly selected by the manifest via #{selection.to_a.join(", ")}"
54
+ end
55
+ else
56
+ puts " is not directly selected by the manifest"
57
+ end
58
+ if Autoproj.manifest.ignored?(pkg_name)
59
+ puts " is ignored"
60
+ end
61
+ if Autoproj.manifest.excluded?(pkg_name)
62
+ puts " is excluded: #{Autoproj.manifest.exclusion_reason(pkg_name)}"
63
+ end
64
+
65
+ all_reverse_dependencies = Set.new
66
+ pkg_revdeps = revdeps[pkg_name].dup.to_a
67
+ while !pkg_revdeps.empty?
68
+ parent_name = pkg_revdeps.shift
69
+ next if all_reverse_dependencies.include?(parent_name)
70
+ all_reverse_dependencies << parent_name
71
+ pkg_revdeps.concat(revdeps[parent_name].to_a)
72
+ end
73
+ if all_reverse_dependencies.empty?
74
+ puts " no reverse dependencies"
75
+ else
76
+ puts " reverse dependencies: #{all_reverse_dependencies.sort.join(", ")}"
77
+ end
78
+
79
+ selections = Set.new
80
+ all_reverse_dependencies = all_reverse_dependencies.to_a.sort
81
+ all_reverse_dependencies.each do |parent_name|
82
+ if default_packages.include?(parent_name)
83
+ selections |= default_packages.selection[parent_name]
84
+ end
85
+ end
86
+
87
+ if !selections.empty?
88
+ puts " selected by way of"
89
+ selections.each do |root_pkg|
90
+ path = find_selection_path(root_pkg, pkg_name)
91
+ puts " #{path.join(">")}"
92
+ end
93
+ end
94
+ puts " directly depends on: #{Autobuild::Package[pkg_name].dependencies.sort.join(", ")}"
95
+ end
96
+
97
+ osdeps.each do |pkg_name|
98
+ puts "the osdep '#{pkg_name}'"
99
+ Autoproj.osdeps.resolve_os_dependencies(pkg_name).each do |manager, packages|
100
+ puts " #{manager.names.first}: #{packages.map { |*subnames| subnames.join(" ") }.join(", ")}"
101
+ end
102
+ end
103
+ end
104
+
@@ -54,6 +54,7 @@ if $LOADED_FEATURES.find { |str| str =~ /bygems/ }
54
54
  RUBY = RbConfig::CONFIG['RUBY_INSTALL_NAME']
55
55
 
56
56
  ENV['GEM_HOME'] = needed_gem_home
57
+ ENV.delete 'GEM_PATH'
57
58
  exec RUBY, __FILE__, *ARGV
58
59
  end
59
60
  end
@@ -523,7 +524,7 @@ fi
523
524
  dep = Gem::Dependency.new(name, version_requirements)
524
525
  available =
525
526
  if gem_fetcher.respond_to?(:find_matching)
526
- gem_fetcher.find_matching(dep).map(&:first)
527
+ gem_fetcher.find_matching(dep, true, true, GemManager.with_prerelease).map(&:first)
527
528
  else # Post RubyGems-2.0
528
529
  type = if GemManager.with_prerelease then :prerelease
529
530
  else :complete
@@ -54,6 +54,7 @@ if $LOADED_FEATURES.find { |str| str =~ /bygems/ }
54
54
  RUBY = RbConfig::CONFIG['RUBY_INSTALL_NAME']
55
55
 
56
56
  ENV['GEM_HOME'] = needed_gem_home
57
+ ENV.delete 'GEM_PATH'
57
58
  exec RUBY, __FILE__, *ARGV
58
59
  end
59
60
  end
@@ -1546,10 +1546,20 @@ where 'mode' is one of:
1546
1546
  # We don't use Autoproj.gem_home there as we might not be in an
1547
1547
  # autoproj directory at all
1548
1548
  gem_home = ENV['AUTOPROJ_GEM_HOME'] || File.join(Dir.pwd, ".gems")
1549
- if ENV['GEM_HOME'] || ENV['GEM_PATH']
1550
- ENV.delete('GEM_HOME')
1549
+ if ENV['GEM_HOME'] && Autoproj.in_autoproj_installation?(ENV['GEM_HOME']) && ENV['GEM_HOME'] != gem_home
1550
+ Autoproj::OSDependencies.define_osdeps_mode_option
1551
+ osdeps = Autoproj::OSDependencies.load_default
1552
+ if osdeps_forced_mode
1553
+ osdeps.osdeps_mode = osdeps_forced_mode
1554
+ end
1555
+ osdeps.osdeps_mode
1556
+
1557
+ Autoproj.message "autoproj: bootstrapping using another installation's autoproj gem"
1558
+ ENV['GEM_HOME'] = gem_home
1551
1559
  ENV.delete('GEM_PATH')
1552
- Autoproj.message "reset the RubyGems environment, restarting bootstrapping from #{Dir.pwd}"
1560
+ Autoproj.message "installing autoproj in #{ENV['GEM_HOME']} and restarting"
1561
+ osdeps.install ['autoproj']
1562
+ Autoproj.message "restarting bootstrapping from #{Dir.pwd}"
1553
1563
 
1554
1564
  require 'rbconfig'
1555
1565
  ruby = RbConfig::CONFIG['RUBY_INSTALL_NAME']
@@ -1854,7 +1854,7 @@ module Autoproj
1854
1854
  result.filter_excluded_and_ignored_packages(self)
1855
1855
  rescue ExcludedSelection => e
1856
1856
  if validate
1857
- raise
1857
+ raise e, "#{e.selection}, which is selected in the layout, cannot be built: #{e.message}", e.backtrace
1858
1858
  end
1859
1859
  end
1860
1860
  result
@@ -406,7 +406,7 @@ fi
406
406
  dep = Gem::Dependency.new(name, version_requirements)
407
407
  available =
408
408
  if gem_fetcher.respond_to?(:find_matching)
409
- gem_fetcher.find_matching(dep).map(&:first)
409
+ gem_fetcher.find_matching(dep, true, true, GemManager.with_prerelease).map(&:first)
410
410
  else # Post RubyGems-2.0
411
411
  type = if GemManager.with_prerelease then :prerelease
412
412
  else :complete
@@ -1,3 +1,3 @@
1
1
  module Autoproj
2
- VERSION = "1.9.3.rc5"
2
+ VERSION = "1.9.3.rc6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autoproj
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.3.rc5
4
+ version: 1.9.3.rc6
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-05 00:00:00.000000000 Z
12
+ date: 2013-04-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: autobuild
16
- requirement: &15028720 !ruby/object:Gem::Requirement
16
+ requirement: &21146660 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.7.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *15028720
24
+ version_requirements: *21146660
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: utilrb
27
- requirement: &15027120 !ruby/object:Gem::Requirement
27
+ requirement: &21145780 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.6.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *15027120
35
+ version_requirements: *21145780
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: highline
38
- requirement: &15025720 !ruby/object:Gem::Requirement
38
+ requirement: &21144920 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.5.0
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *15025720
46
+ version_requirements: *21144920
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rdoc
49
- requirement: &15042520 !ruby/object:Gem::Requirement
49
+ requirement: &21142980 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '3.10'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *15042520
57
+ version_requirements: *21142980
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: hoe
60
- requirement: &15041600 !ruby/object:Gem::Requirement
60
+ requirement: &21142100 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '3.5'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *15041600
68
+ version_requirements: *21142100
69
69
  description: autoproj is a manager for sets of software packages. It allows the user
70
70
  to import and build packages from source, still using the underlying distribution's
71
71
  native package manager for software that is available on it.
@@ -76,9 +76,11 @@ executables:
76
76
  - aup
77
77
  - autolocate
78
78
  - autoproj
79
+ - autoproj-bootstrap
79
80
  - autoproj-clean
80
81
  - autoproj-create-set
81
82
  - autoproj-envsh
83
+ - autoproj-inspect
82
84
  - autoproj-list
83
85
  - autoproj-locate
84
86
  - autoproj-query
@@ -102,9 +104,11 @@ files:
102
104
  - bin/aup
103
105
  - bin/autolocate
104
106
  - bin/autoproj
107
+ - bin/autoproj-bootstrap
105
108
  - bin/autoproj-clean
106
109
  - bin/autoproj-create-set
107
110
  - bin/autoproj-envsh
111
+ - bin/autoproj-inspect
108
112
  - bin/autoproj-list
109
113
  - bin/autoproj-locate
110
114
  - bin/autoproj-query