autoproj 1.8.2.b17 → 1.8.2.b18
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|