autoproj 1.8.2.b17 → 1.8.2.b18
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/bin/autoproj +1 -1
- data/lib/autoproj/cmdline.rb +95 -112
- data/lib/autoproj/manifest.rb +124 -58
- data/lib/autoproj/version.rb +1 -1
- metadata +11 -11
data/bin/autoproj
CHANGED
@@ -150,7 +150,7 @@ EOTEXT
|
|
150
150
|
|
151
151
|
# If in verbose mode, or if we only update sources, list the sources
|
152
152
|
if Autoproj.verbose || Autoproj::CmdLine.display_configuration?
|
153
|
-
Autoproj::CmdLine.display_configuration(manifest, selected_packages)
|
153
|
+
Autoproj::CmdLine.display_configuration(manifest, selected_packages.packages)
|
154
154
|
end
|
155
155
|
|
156
156
|
if Autoproj::CmdLine.bootstrap?
|
data/lib/autoproj/cmdline.rb
CHANGED
@@ -509,7 +509,7 @@ module Autoproj
|
|
509
509
|
send(handler, relative_to_root.to_s)
|
510
510
|
end
|
511
511
|
setup_package_directories(pkg)
|
512
|
-
selected_packages
|
512
|
+
selected_packages.select(sel, pkg.name)
|
513
513
|
break(true)
|
514
514
|
end
|
515
515
|
|
@@ -521,40 +521,38 @@ module Autoproj
|
|
521
521
|
Autoproj.message("autoproj: wrong package selection on command line, cannot find a match for #{nonresolved.to_a.join(", ")}", :red)
|
522
522
|
exit 1
|
523
523
|
elsif Autoproj.verbose
|
524
|
-
Autoproj.message "will install #{selected_packages.to_a.join(", ")}"
|
524
|
+
Autoproj.message "will install #{selected_packages.packages.keys.to_a.sort.join(", ")}"
|
525
525
|
end
|
526
526
|
selected_packages
|
527
527
|
end
|
528
528
|
|
529
|
-
def self.
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
# Verify that its dependencies are there, and add
|
540
|
-
# them to the selected_packages set so that they get
|
541
|
-
# imported as well
|
542
|
-
pkg.dependencies.each do |dep_name|
|
543
|
-
if stack.include?(dep_name)
|
544
|
-
raise ConfigError.new, "circular dependency #{pkg.name} => #{dep_name}"
|
529
|
+
def self.mark_exclusion_along_revdeps(pkg_name, revdeps, chain = [], reason = nil)
|
530
|
+
root = !reason
|
531
|
+
chain.unshift pkg_name
|
532
|
+
if root
|
533
|
+
reason = Autoproj.manifest.exclusion_reason(pkg_name)
|
534
|
+
else
|
535
|
+
if chain.size == 1
|
536
|
+
Autoproj.manifest.add_exclusion(pkg_name, "its dependency #{reason}")
|
537
|
+
else
|
538
|
+
Autoproj.manifest.add_exclusion(pkg_name, "#{reason} (dependency chain: #{chain.join(">")}")
|
545
539
|
end
|
540
|
+
end
|
546
541
|
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
542
|
+
return if !revdeps.has_key?(pkg_name)
|
543
|
+
revdeps[pkg_name].each do |dep_name|
|
544
|
+
if !Autoproj.manifest.excluded?(dep_name)
|
545
|
+
mark_exclusion_along_revdeps(dep_name, revdeps, chain.dup, reason)
|
551
546
|
end
|
552
547
|
end
|
553
548
|
end
|
554
549
|
|
555
|
-
def self.import_packages(
|
556
|
-
selected_packages =
|
550
|
+
def self.import_packages(selection)
|
551
|
+
selected_packages = selection.packages.
|
557
552
|
map do |pkg_name|
|
553
|
+
if Autoproj.manifest.excluded?(pkg_name)
|
554
|
+
raise
|
555
|
+
end
|
558
556
|
pkg = Autobuild::Package[pkg_name]
|
559
557
|
if !pkg
|
560
558
|
raise ConfigError.new, "selected package #{pkg_name} does not exist"
|
@@ -562,107 +560,92 @@ module Autoproj
|
|
562
560
|
pkg
|
563
561
|
end.to_set
|
564
562
|
|
565
|
-
#
|
566
|
-
# automatic dependency discovery possible
|
567
|
-
old_update_flag = Autobuild.do_update
|
568
|
-
begin
|
569
|
-
Autobuild.do_update = false
|
570
|
-
packages = Autobuild::Package.each.
|
571
|
-
find_all { |pkg_name, pkg| File.directory?(pkg.srcdir) }.
|
572
|
-
delete_if { |pkg_name, pkg| Autoproj.manifest.excluded?(pkg_name) || Autoproj.manifest.ignored?(pkg_name) }
|
573
|
-
|
574
|
-
packages.each do |_, pkg|
|
575
|
-
pkg.isolate_errors do
|
576
|
-
pkg.import
|
577
|
-
end
|
578
|
-
end
|
579
|
-
|
580
|
-
ensure
|
581
|
-
Autobuild.do_update = old_update_flag
|
582
|
-
end
|
583
|
-
|
584
|
-
known_available_packages = Set.new
|
563
|
+
# The set of all packages that are currently selected by +selection+
|
585
564
|
all_enabled_packages = Set.new
|
565
|
+
# The reverse dependencies for the package tree. It is discovered as
|
566
|
+
# we go on with the import
|
567
|
+
#
|
568
|
+
# It only contains strong dependencies. Optional dependencies are
|
569
|
+
# not included, as we will use this only to take into account
|
570
|
+
# package exclusion (and that does not affect optional dependencies)
|
571
|
+
reverse_dependencies = Hash.new { |h, k| h[k] = Set.new }
|
586
572
|
|
587
|
-
package_queue = selected_packages.
|
573
|
+
package_queue = selected_packages.to_a.sort_by(&:name)
|
588
574
|
while !package_queue.empty?
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
#
|
604
|
-
#
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
575
|
+
pkg = package_queue.shift
|
576
|
+
# Remove packages that have already been processed
|
577
|
+
next if all_enabled_packages.include?(pkg.name)
|
578
|
+
all_enabled_packages << pkg.name
|
579
|
+
|
580
|
+
# If the package has no importer, the source directory must
|
581
|
+
# be there
|
582
|
+
if !pkg.importer && !File.directory?(pkg.srcdir)
|
583
|
+
raise ConfigError.new, "#{pkg.name} has no VCS, but is not checked out in #{pkg.srcdir}"
|
584
|
+
end
|
585
|
+
|
586
|
+
## COMPLETELY BYPASS RAKE HERE
|
587
|
+
# The reason is that the ordering of import/prepare between
|
588
|
+
# packages is not important BUT the ordering of import vs.
|
589
|
+
# prepare in one package IS important: prepare is the method
|
590
|
+
# that takes into account dependencies.
|
591
|
+
pkg.import
|
592
|
+
Rake::Task["#{pkg.name}-import"].instance_variable_set(:@already_invoked, true)
|
593
|
+
manifest.load_package_manifest(pkg.name)
|
594
|
+
|
595
|
+
# The package setup mechanisms might have added an exclusion
|
596
|
+
# on this package. Handle this.
|
597
|
+
if Autoproj.manifest.excluded?(pkg.name)
|
598
|
+
mark_exclusion_along_revdeps(pkg.name, reverse_dependencies)
|
599
|
+
# Run a filter now, to have errors as early as possible
|
600
|
+
selection.filter_excluded_and_ignored_packages(Autoproj.manifest)
|
601
|
+
all_enabled_packages.delete(pkg.name)
|
602
|
+
# Delete this package from the current_packages set
|
603
|
+
true
|
604
|
+
end
|
605
|
+
|
606
|
+
Autoproj.each_post_import_block(pkg) do |block|
|
607
|
+
block.call(pkg)
|
608
|
+
end
|
609
|
+
|
610
|
+
pkg.prepare
|
611
|
+
Rake::Task["#{pkg.name}-prepare"].instance_variable_set(:@already_invoked, true)
|
612
|
+
|
613
|
+
# Verify that its dependencies are there, and add
|
614
|
+
# them to the selected_packages set so that they get
|
615
|
+
# imported as well
|
616
|
+
new_packages = []
|
617
|
+
pkg.dependencies.each do |dep_name|
|
618
|
+
reverse_dependencies[dep_name] << pkg.name
|
619
|
+
new_packages << Autobuild::Package[dep_name]
|
620
|
+
end
|
621
|
+
pkg_opt_deps, _ = pkg.partition_optional_dependencies
|
622
|
+
pkg_opt_deps.each do |dep_name|
|
623
|
+
new_packages << Autobuild::Package[dep_name]
|
624
|
+
end
|
625
|
+
|
626
|
+
new_packages.delete_if do |pkg|
|
627
|
+
if Autoproj.manifest.excluded?(pkg.name)
|
628
|
+
mark_exclusion_along_revdeps(pkg.name, reverse_dependencies)
|
629
|
+
true
|
610
630
|
end
|
611
|
-
|
612
|
-
## COMPLETELY BYPASS RAKE HERE
|
613
|
-
# The reason is that the ordering of import/prepare between
|
614
|
-
# packages is not important BUT the ordering of import vs.
|
615
|
-
# prepare in one package IS important: prepare is the method
|
616
|
-
# that takes into account dependencies.
|
617
|
-
pkg.import
|
618
|
-
Rake::Task["#{pkg.name}-import"].instance_variable_set(:@already_invoked, true)
|
619
|
-
manifest.load_package_manifest(pkg.name)
|
620
|
-
pkg.resolve_optional_dependencies
|
621
|
-
verify_package_availability(pkg.name)
|
622
631
|
end
|
632
|
+
package_queue.concat(new_packages.sort_by(&:name))
|
623
633
|
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
block.call(pkg)
|
628
|
-
end
|
629
|
-
|
630
|
-
pkg.prepare
|
631
|
-
Rake::Task["#{pkg.name}-prepare"].instance_variable_set(:@already_invoked, true)
|
632
|
-
|
633
|
-
# Verify that its dependencies are there, and add
|
634
|
-
# them to the selected_packages set so that they get
|
635
|
-
# imported as well
|
636
|
-
pkg.dependencies.each do |dep_name|
|
637
|
-
package_queue << Autobuild::Package[dep_name]
|
638
|
-
end
|
639
|
-
end
|
634
|
+
# Verify that everything is still OK with the new
|
635
|
+
# exclusions/ignores
|
636
|
+
selection.filter_excluded_and_ignored_packages(Autoproj.manifest)
|
640
637
|
end
|
641
638
|
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
delete_if { |pkg_name, pkg| all_enabled_packages.include?(pkg_name) || Autoproj.manifest.excluded?(pkg_name) || Autoproj.manifest.ignored?(pkg_name) }
|
647
|
-
|
648
|
-
packages.each do |_, pkg|
|
649
|
-
pkg.isolate_errors do
|
650
|
-
manifest.load_package_manifest(pkg.name)
|
651
|
-
pkg.prepare
|
652
|
-
|
653
|
-
Autoproj.each_post_import_block(pkg) do |block|
|
654
|
-
block.call(pkg)
|
655
|
-
end
|
656
|
-
end
|
657
|
-
end
|
658
|
-
|
659
|
-
ensure
|
660
|
-
Autobuild.do_update = old_update_flag
|
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
|
661
643
|
end
|
662
644
|
|
663
645
|
if Autoproj.verbose
|
664
646
|
Autoproj.message "autoproj: finished importing packages"
|
665
647
|
end
|
648
|
+
|
666
649
|
if Autoproj::CmdLine.list_newest?
|
667
650
|
fields = []
|
668
651
|
Rake::Task.tasks.each do |task|
|
data/lib/autoproj/manifest.rb
CHANGED
@@ -1144,11 +1144,11 @@ module Autoproj
|
|
1144
1144
|
# tells why. Otherwise, returns nil
|
1145
1145
|
#
|
1146
1146
|
# Packages can either be excluded because their name is listed in the
|
1147
|
-
#
|
1147
|
+
# exclude_packages section of the manifest, or because they are
|
1148
1148
|
# disabled on this particular operating system.
|
1149
1149
|
def exclusion_reason(package_name)
|
1150
1150
|
if manifest_exclusions.any? { |l| Regexp.new(l) =~ package_name }
|
1151
|
-
"#{package_name} is listed in the
|
1151
|
+
"#{package_name} is listed in the exclude_packages section of the manifest"
|
1152
1152
|
else
|
1153
1153
|
automatic_exclusions[package_name]
|
1154
1154
|
end
|
@@ -1805,21 +1805,19 @@ module Autoproj
|
|
1805
1805
|
#
|
1806
1806
|
# If recursive is false, yields only the packages at this level.
|
1807
1807
|
# Otherwise, return all packages.
|
1808
|
-
def layout_packages(
|
1808
|
+
def layout_packages(validate)
|
1809
|
+
result = PackageSelection.new
|
1809
1810
|
Autoproj.in_file(self.file) do
|
1810
1811
|
normalized_layout.each_key do |pkg_or_set|
|
1811
|
-
|
1812
|
-
resolve_package_set(pkg_or_set).each do |pkg_name|
|
1813
|
-
if !excluded?(pkg_name) && !ignored?(pkg_name)
|
1814
|
-
result << pkg_name
|
1815
|
-
end
|
1816
|
-
Autobuild::Package[pkg_name].all_dependencies(result)
|
1817
|
-
end
|
1818
|
-
rescue ConfigError
|
1819
|
-
raise if validate
|
1820
|
-
end
|
1812
|
+
result.select(pkg_or_set, resolve_package_set(pkg_or_set))
|
1821
1813
|
end
|
1822
1814
|
end
|
1815
|
+
|
1816
|
+
begin
|
1817
|
+
result.filter_excluded_and_ignored_packages(self)
|
1818
|
+
rescue ConfigError
|
1819
|
+
raise if validate
|
1820
|
+
end
|
1823
1821
|
result
|
1824
1822
|
end
|
1825
1823
|
|
@@ -1898,15 +1896,18 @@ module Autoproj
|
|
1898
1896
|
# Returns the set of packages that should be built if the user does not
|
1899
1897
|
# specify any on the command line
|
1900
1898
|
def default_packages(validate = true)
|
1901
|
-
|
1902
|
-
|
1903
|
-
|
1904
|
-
|
1905
|
-
|
1906
|
-
|
1907
|
-
|
1908
|
-
|
1909
|
-
|
1899
|
+
if layout = data['layout']
|
1900
|
+
return layout_packages(validate)
|
1901
|
+
else
|
1902
|
+
result = PackageSelection.new
|
1903
|
+
# No layout, all packages are selected
|
1904
|
+
names = all_packages
|
1905
|
+
names.delete_if { |pkg_name| excluded?(pkg_name) || ignored?(pkg_name) }
|
1906
|
+
names.each do |pkg_name|
|
1907
|
+
result.select(pkg_name, pkg_name)
|
1908
|
+
end
|
1909
|
+
result
|
1910
|
+
end
|
1910
1911
|
end
|
1911
1912
|
|
1912
1913
|
def normalized_layout(result = Hash.new, layout_level = '/', layout_data = (data['layout'] || Hash.new))
|
@@ -2070,6 +2071,101 @@ module Autoproj
|
|
2070
2071
|
@osdeps_overrides.delete(osdeps_name.to_s)
|
2071
2072
|
end
|
2072
2073
|
|
2074
|
+
# Class holding information about which packages have been selected, and
|
2075
|
+
# why. It is used to decide whether some non-availability of packages
|
2076
|
+
# are errors or simply warnings (i.e. if the user really wants a given
|
2077
|
+
# package, or merely might be adding it by accident)
|
2078
|
+
class PackageSelection
|
2079
|
+
# The set of matches, i.e. a mapping from a user-provided string to
|
2080
|
+
# the set of packages it selected
|
2081
|
+
attr_reader :matches
|
2082
|
+
# The set of selected packages, as a hash of the package name to the
|
2083
|
+
# set of user-provided strings that caused that package to be
|
2084
|
+
# selected
|
2085
|
+
attr_reader :selection
|
2086
|
+
|
2087
|
+
# The set of packages that have been selected
|
2088
|
+
def packages
|
2089
|
+
selection.keys
|
2090
|
+
end
|
2091
|
+
|
2092
|
+
def include?(pkg_name)
|
2093
|
+
selection.has_key?(pkg_name)
|
2094
|
+
end
|
2095
|
+
|
2096
|
+
def initialize
|
2097
|
+
@selection = Hash.new { |h, k| h[k] = Set.new }
|
2098
|
+
@matches = Hash.new { |h, k| h[k] = Set.new }
|
2099
|
+
end
|
2100
|
+
|
2101
|
+
def select(sel, packages)
|
2102
|
+
if !packages.respond_to?(:each)
|
2103
|
+
matches[sel] << packages
|
2104
|
+
selection[packages] << sel
|
2105
|
+
else
|
2106
|
+
matches[sel] |= packages.to_set
|
2107
|
+
packages.each do |pkg_name|
|
2108
|
+
selection[pkg_name] << sel
|
2109
|
+
end
|
2110
|
+
end
|
2111
|
+
end
|
2112
|
+
|
2113
|
+
def initialize_copy(old)
|
2114
|
+
old.selection.each do |pkg_name, set|
|
2115
|
+
@selection[pkg_name] = set.dup
|
2116
|
+
end
|
2117
|
+
old.matches.each do |sel, set|
|
2118
|
+
@matches[sel] = set.dup
|
2119
|
+
end
|
2120
|
+
end
|
2121
|
+
|
2122
|
+
# Remove packages that are explicitely excluded and/or ignored
|
2123
|
+
#
|
2124
|
+
# Raise an error if an explicit selection expands only to an
|
2125
|
+
# excluded package, and display a warning for ignored packages
|
2126
|
+
def filter_excluded_and_ignored_packages(manifest)
|
2127
|
+
matches.each do |sel, expansion|
|
2128
|
+
excluded, other = expansion.partition { |pkg_name| manifest.excluded?(pkg_name) }
|
2129
|
+
ignored, ok = other.partition { |pkg_name| manifest.ignored?(pkg_name) }
|
2130
|
+
|
2131
|
+
if ok.empty? && ignored.empty?
|
2132
|
+
exclusions = excluded.map do |pkg_name|
|
2133
|
+
[pkg_name, manifest.exclusion_reason(pkg_name)]
|
2134
|
+
end
|
2135
|
+
if exclusions.size == 1
|
2136
|
+
reason = exclusions[0][1]
|
2137
|
+
if sel == exclusions[0][0]
|
2138
|
+
raise ConfigError.new, "#{sel} is excluded from the build: #{reason}"
|
2139
|
+
else
|
2140
|
+
raise ConfigError.new, "#{sel} expands to #{exclusions.map(&:first).join(", ")}, which is excluded from the build: #{reason}"
|
2141
|
+
end
|
2142
|
+
else
|
2143
|
+
raise ConfigError.new, "#{sel} expands to #{exclusions.map(&:first).join(", ")}, and all these packages are excluded from the build:\n #{exclusions.map { |name, reason| "#{name}: #{reason}" }.join("\n ")}"
|
2144
|
+
end
|
2145
|
+
elsif !ignored.empty?
|
2146
|
+
ignored.each do |pkg_name|
|
2147
|
+
Autoproj.warn "#{pkg_name} was selected for #{sel}, but is explicitely ignored in the manifest"
|
2148
|
+
end
|
2149
|
+
end
|
2150
|
+
|
2151
|
+
excluded = excluded.to_set
|
2152
|
+
expansion.delete_if do |pkg_name|
|
2153
|
+
excluded.include?(pkg_name)
|
2154
|
+
end
|
2155
|
+
end
|
2156
|
+
|
2157
|
+
selection.keys.sort.each do |pkg_name|
|
2158
|
+
if manifest.excluded?(pkg_name)
|
2159
|
+
Autoproj.warn "#{pkg_name} was selected for #{selection[pkg_name].to_a.sort.join(", ")}, but it is excluded from the build: #{Autoproj.manifest.exclusion_reason(pkg_name)}"
|
2160
|
+
selection.delete(pkg_name)
|
2161
|
+
elsif manifest.ignored?(pkg_name)
|
2162
|
+
Autoproj.warn "#{pkg_name} was selected for #{selection[pkg_name].to_a.sort.join(", ")}, but it is ignored in this build"
|
2163
|
+
selection.delete(pkg_name)
|
2164
|
+
end
|
2165
|
+
end
|
2166
|
+
end
|
2167
|
+
end
|
2168
|
+
|
2073
2169
|
# Package selection can be done in three ways:
|
2074
2170
|
# * as a subdirectory in the layout
|
2075
2171
|
# * as a on-disk directory
|
@@ -2079,14 +2175,10 @@ module Autoproj
|
|
2079
2175
|
def expand_package_selection(selection)
|
2080
2176
|
base_dir = Autoproj.root_dir
|
2081
2177
|
|
2082
|
-
|
2083
|
-
expanded_packages = Set.new
|
2178
|
+
result = PackageSelection.new
|
2084
2179
|
# All the packages that are available on this installation
|
2085
2180
|
all_layout_packages = self.all_selected_packages
|
2086
2181
|
|
2087
|
-
# A selection to packages map that represents the matches found
|
2088
|
-
matches = Hash.new { |h, k| h[k] = Set.new }
|
2089
|
-
|
2090
2182
|
# First, remove packages that are directly referenced by name or by
|
2091
2183
|
# package set names
|
2092
2184
|
selection.each do |sel|
|
@@ -2096,16 +2188,14 @@ module Autoproj
|
|
2096
2188
|
find_all { |pkg_name| pkg_name =~ match_pkg_name }.
|
2097
2189
|
to_set
|
2098
2190
|
if !packages.empty?
|
2099
|
-
|
2100
|
-
expanded_packages |= packages
|
2191
|
+
result.select(sel, packages)
|
2101
2192
|
end
|
2102
2193
|
|
2103
2194
|
each_metapackage do |pkg|
|
2104
2195
|
if pkg.name =~ match_pkg_name
|
2105
2196
|
packages = resolve_package_set(pkg.name).to_set
|
2106
2197
|
packages = (packages & all_layout_packages)
|
2107
|
-
|
2108
|
-
expanded_packages |= packages
|
2198
|
+
result.select(sel, packages)
|
2109
2199
|
end
|
2110
2200
|
end
|
2111
2201
|
end
|
@@ -2125,37 +2215,13 @@ module Autoproj
|
|
2125
2215
|
end
|
2126
2216
|
end
|
2127
2217
|
|
2128
|
-
|
2129
|
-
expanded_packages << pkg_name
|
2130
|
-
end
|
2131
|
-
end
|
2132
|
-
end
|
2133
|
-
|
2134
|
-
# Remove packages that are explicitely excluded and/or ignored
|
2135
|
-
#
|
2136
|
-
# Raise an error if an explicit selection expands only to an
|
2137
|
-
# excluded package, and display a warning for ignored packages
|
2138
|
-
matches.each do |sel, expansion|
|
2139
|
-
next if expansion.empty?
|
2140
|
-
excluded, other = expansion.partition { |pkg_name| excluded?(pkg_name) }
|
2141
|
-
ignored, ok = other.partition { |pkg_name| ignored?(pkg_name) }
|
2142
|
-
|
2143
|
-
if ok.empty? && ignored.empty?
|
2144
|
-
packages = excluded.map do |pkg_name|
|
2145
|
-
[pkg_name, Autoproj.manifest.exclusion_reason(pkg_name)]
|
2146
|
-
end
|
2147
|
-
raise ConfigError.new, "selection #{sel} expands to #{packages.map(&:first).join(", ")} which are excluded from the build:\n #{packages.map { |name, reason| "#{name}: #{reason}" }.join("\n ")}"
|
2148
|
-
elsif !ignored.empty?
|
2149
|
-
ignored.each do |pkg_name|
|
2150
|
-
Autoproj.warn "#{pkg_name} was selected for #{sel}, but is explicitely ignored in the manifest"
|
2218
|
+
result.select(sel, pkg_name)
|
2151
2219
|
end
|
2152
2220
|
end
|
2153
2221
|
end
|
2154
2222
|
|
2155
|
-
|
2156
|
-
|
2157
|
-
end
|
2158
|
-
return expanded_packages.to_set, (selection - matches.keys)
|
2223
|
+
result.filter_excluded_and_ignored_packages(self)
|
2224
|
+
return result, (selection - matches.keys)
|
2159
2225
|
end
|
2160
2226
|
|
2161
2227
|
attr_reader :moved_packages
|
data/lib/autoproj/version.rb
CHANGED
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.
|
4
|
+
version: 1.8.2.b18
|
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: &
|
16
|
+
requirement: &12848100 !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: *
|
24
|
+
version_requirements: *12848100
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: utilrb
|
27
|
-
requirement: &
|
27
|
+
requirement: &12847280 !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: *
|
35
|
+
version_requirements: *12847280
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: highline
|
38
|
-
requirement: &
|
38
|
+
requirement: &12846560 !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: *
|
46
|
+
version_requirements: *12846560
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rdoc
|
49
|
-
requirement: &
|
49
|
+
requirement: &12845640 !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: *
|
57
|
+
version_requirements: *12845640
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: hoe
|
60
|
-
requirement: &
|
60
|
+
requirement: &12868200 !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: *
|
68
|
+
version_requirements: *12868200
|
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.
|