autoproj 1.8.2.b18 → 1.8.2.b19

Sign up to get free protection for your applications and to get access to all the features.
@@ -550,9 +550,6 @@ module Autoproj
550
550
  def self.import_packages(selection)
551
551
  selected_packages = selection.packages.
552
552
  map do |pkg_name|
553
- if Autoproj.manifest.excluded?(pkg_name)
554
- raise
555
- end
556
553
  pkg = Autobuild::Package[pkg_name]
557
554
  if !pkg
558
555
  raise ConfigError.new, "selected package #{pkg_name} does not exist"
@@ -561,7 +558,7 @@ module Autoproj
561
558
  end.to_set
562
559
 
563
560
  # The set of all packages that are currently selected by +selection+
564
- all_enabled_packages = Set.new
561
+ all_processed_packages = Set.new
565
562
  # The reverse dependencies for the package tree. It is discovered as
566
563
  # we go on with the import
567
564
  #
@@ -574,8 +571,8 @@ module Autoproj
574
571
  while !package_queue.empty?
575
572
  pkg = package_queue.shift
576
573
  # Remove packages that have already been processed
577
- next if all_enabled_packages.include?(pkg.name)
578
- all_enabled_packages << pkg.name
574
+ next if all_processed_packages.include?(pkg.name)
575
+ all_processed_packages << pkg.name
579
576
 
580
577
  # If the package has no importer, the source directory must
581
578
  # be there
@@ -598,7 +595,6 @@ module Autoproj
598
595
  mark_exclusion_along_revdeps(pkg.name, reverse_dependencies)
599
596
  # Run a filter now, to have errors as early as possible
600
597
  selection.filter_excluded_and_ignored_packages(Autoproj.manifest)
601
- all_enabled_packages.delete(pkg.name)
602
598
  # Delete this package from the current_packages set
603
599
  true
604
600
  end
@@ -636,10 +632,17 @@ module Autoproj
636
632
  selection.filter_excluded_and_ignored_packages(Autoproj.manifest)
637
633
  end
638
634
 
639
- # We finally resolve optional dependencies at the very end, as the
640
- # list of exclusions may have changed
641
- all_enabled_packages.each do |pkg_name|
642
- Autobuild::Package[pkg_name].resolve_optional_dependencies
635
+ all_enabled_packages = Set.new
636
+ package_queue = selection.packages.dup
637
+ # Run optional dependency resolution until we have a fixed point
638
+ while !package_queue.empty?
639
+ pkg_name = package_queue.shift
640
+ next if all_enabled_packages.include?(pkg_name)
641
+ all_enabled_packages << pkg_name
642
+
643
+ pkg = Autobuild::Package[pkg_name]
644
+ pkg.resolve_optional_dependencies
645
+ package_queue.concat(pkg.dependencies)
643
646
  end
644
647
 
645
648
  if Autoproj.verbose
@@ -1,3 +1,3 @@
1
1
  module Autoproj
2
- VERSION = "1.8.2.b18"
2
+ VERSION = "1.8.2.b19"
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.8.2.b18
4
+ version: 1.8.2.b19
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-10-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: autobuild
16
- requirement: &12848100 !ruby/object:Gem::Requirement
16
+ requirement: &9626160 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.6.0.rc1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *12848100
24
+ version_requirements: *9626160
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: utilrb
27
- requirement: &12847280 !ruby/object:Gem::Requirement
27
+ requirement: &9625580 !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: *12847280
35
+ version_requirements: *9625580
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: highline
38
- requirement: &12846560 !ruby/object:Gem::Requirement
38
+ requirement: &9625020 !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: *12846560
46
+ version_requirements: *9625020
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rdoc
49
- requirement: &12845640 !ruby/object:Gem::Requirement
49
+ requirement: &9624220 !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: *12845640
57
+ version_requirements: *9624220
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: hoe
60
- requirement: &12868200 !ruby/object:Gem::Requirement
60
+ requirement: &9622800 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '3.1'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *12868200
68
+ version_requirements: *9622800
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.