autoproj 1.11.0.rc15 → 1.12.0
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/bin/autoproj_bootstrap +59 -14
- data/lib/autoproj/cmdline.rb +5 -5
- data/lib/autoproj/manifest.rb +69 -30
- data/lib/autoproj/ops/build.rb +1 -0
- data/lib/autoproj/osdeps.rb +59 -14
- data/lib/autoproj/package_selection.rb +1 -15
- data/lib/autoproj/package_set.rb +6 -1
- data/lib/autoproj/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dc64d6f9ced9d44cb201ab31f5dbf2a84bdef777
|
|
4
|
+
data.tar.gz: ea6d4f3c3d2db15a084c9d3348780dddd893d975
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b3b99d765575bc4526854ec74f3571b41181d30267f2b223a3e7e6e3a7f1194680fd0a9d99d86ab7489e20f7030a8373b7984e0dd23178e722dd7a4f2b21b52a
|
|
7
|
+
data.tar.gz: 03740b0613ed3fcbd37b585c86d4c47decf8a8792d7f2898ccea2f79b8e0fcd765b83b2ad0d5669e9bf05339b07fa2da74697172d7b25e1f61fe964059b0940a
|
data/bin/autoproj_bootstrap
CHANGED
|
@@ -1055,13 +1055,34 @@ fi
|
|
|
1055
1055
|
end
|
|
1056
1056
|
end
|
|
1057
1057
|
|
|
1058
|
-
def
|
|
1059
|
-
|
|
1058
|
+
def build_gem_cmdlines(gems)
|
|
1059
|
+
with_version, without_version = gems.partition { |name, v| v }
|
|
1060
|
+
|
|
1061
|
+
cmdlines = []
|
|
1062
|
+
if !without_version.empty?
|
|
1063
|
+
cmdlines << without_version.flatten
|
|
1064
|
+
end
|
|
1065
|
+
with_version.each do |name, v|
|
|
1066
|
+
cmdlines << [name, "-v", v]
|
|
1067
|
+
end
|
|
1068
|
+
cmdlines
|
|
1069
|
+
end
|
|
1070
|
+
|
|
1071
|
+
def pristine(gems)
|
|
1072
|
+
guess_gem_program
|
|
1060
1073
|
base_cmdline = [Autobuild.tool_in_path('ruby'), '-S', Autobuild.tool('gem')]
|
|
1061
|
-
|
|
1062
|
-
'clean'
|
|
1063
|
-
|
|
1064
|
-
|
|
1074
|
+
cmdlines = [
|
|
1075
|
+
[*base_cmdline, 'clean'],
|
|
1076
|
+
]
|
|
1077
|
+
cmdlines += build_gem_cmdlines(gems).map do |line|
|
|
1078
|
+
base_cmdline + ["pristine", "--extensions"] + line
|
|
1079
|
+
end
|
|
1080
|
+
if gems_interaction(gems, cmdlines)
|
|
1081
|
+
Autoproj.message " restoring RubyGems: #{gems.map { |g| g.join(" ") }.sort.join(", ")}"
|
|
1082
|
+
cmdlines.each do |c|
|
|
1083
|
+
Autobuild::Subprocess.run 'autoproj', 'osdeps', *c
|
|
1084
|
+
end
|
|
1085
|
+
end
|
|
1065
1086
|
end
|
|
1066
1087
|
|
|
1067
1088
|
def install(gems)
|
|
@@ -1075,16 +1096,10 @@ fi
|
|
|
1075
1096
|
if GemManager.with_prerelease
|
|
1076
1097
|
base_cmdline << "--prerelease"
|
|
1077
1098
|
end
|
|
1078
|
-
with_version, without_version = gems.partition { |name, v| v }
|
|
1079
1099
|
|
|
1080
|
-
cmdlines =
|
|
1081
|
-
|
|
1082
|
-
cmdlines << (base_cmdline + without_version.flatten)
|
|
1083
|
-
end
|
|
1084
|
-
with_version.each do |name, v|
|
|
1085
|
-
cmdlines << base_cmdline + [name, "-v", v]
|
|
1100
|
+
cmdlines = build_gem_cmdlines(gems).map do |line|
|
|
1101
|
+
base_cmdline + line
|
|
1086
1102
|
end
|
|
1087
|
-
|
|
1088
1103
|
if gems_interaction(gems, cmdlines)
|
|
1089
1104
|
Autoproj.message " installing/updating RubyGems dependencies: #{gems.map { |g| g.join(" ") }.sort.join(", ")}"
|
|
1090
1105
|
|
|
@@ -1373,6 +1388,10 @@ fi
|
|
|
1373
1388
|
OSDependencies.load(file)
|
|
1374
1389
|
end
|
|
1375
1390
|
|
|
1391
|
+
def load_default
|
|
1392
|
+
merge(self.class.load_default)
|
|
1393
|
+
end
|
|
1394
|
+
|
|
1376
1395
|
PACKAGE_HANDLERS = [PackageManagers::AptDpkgManager,
|
|
1377
1396
|
PackageManagers::GemManager,
|
|
1378
1397
|
PackageManagers::EmergeManager,
|
|
@@ -1465,6 +1484,14 @@ fi
|
|
|
1465
1484
|
@filter_uptodate_packages = true
|
|
1466
1485
|
end
|
|
1467
1486
|
|
|
1487
|
+
# Returns the name of all known OS packages
|
|
1488
|
+
#
|
|
1489
|
+
# It includes even the packages for which there are no definitions on
|
|
1490
|
+
# this OS
|
|
1491
|
+
def all_package_names
|
|
1492
|
+
all_definitions.keys
|
|
1493
|
+
end
|
|
1494
|
+
|
|
1468
1495
|
# Returns the full path to the osdeps file from which the package
|
|
1469
1496
|
# definition for +package_name+ has been taken
|
|
1470
1497
|
def source_of(package_name)
|
|
@@ -2298,6 +2325,24 @@ So, what do you want ? (all, none or a comma-separated list of: os gem pip)
|
|
|
2298
2325
|
enabled_handlers
|
|
2299
2326
|
end
|
|
2300
2327
|
|
|
2328
|
+
# Requests that packages that are handled within the autoproj project
|
|
2329
|
+
# (i.e. gems) are restored to pristine condition
|
|
2330
|
+
#
|
|
2331
|
+
# This is usually called as a rebuild step to make sure that all these
|
|
2332
|
+
# packages are updated to whatever required the rebuild
|
|
2333
|
+
def pristine(packages, options = Hash.new)
|
|
2334
|
+
setup_package_handlers(options)
|
|
2335
|
+
packages = resolve_os_dependencies(packages)
|
|
2336
|
+
|
|
2337
|
+
_, other_packages =
|
|
2338
|
+
packages.partition { |handler, list| handler == os_package_handler }
|
|
2339
|
+
other_packages.each do |handler, list|
|
|
2340
|
+
if handler.respond_to?(:pristine)
|
|
2341
|
+
handler.pristine(list)
|
|
2342
|
+
end
|
|
2343
|
+
end
|
|
2344
|
+
end
|
|
2345
|
+
|
|
2301
2346
|
# Requests the installation of the given set of packages
|
|
2302
2347
|
def install(packages, options = Hash.new)
|
|
2303
2348
|
# Remove the set of packages that have already been installed
|
data/lib/autoproj/cmdline.rb
CHANGED
|
@@ -133,11 +133,11 @@ module Autoproj
|
|
|
133
133
|
|
|
134
134
|
# Initialize the Autoproj.osdeps object by loading the default. The
|
|
135
135
|
# rest is loaded later
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
manifest.osdeps.load_default
|
|
137
|
+
manifest.osdeps.silent = !osdeps?
|
|
138
|
+
manifest.osdeps.filter_uptodate_packages = osdeps_filter_uptodate?
|
|
139
139
|
if osdeps_forced_mode
|
|
140
|
-
|
|
140
|
+
manifest.osdeps.osdeps_mode = osdeps_forced_mode
|
|
141
141
|
end
|
|
142
142
|
|
|
143
143
|
# Define the option NOW, as update_os_dependencies? needs to know in
|
|
@@ -146,7 +146,7 @@ module Autoproj
|
|
|
146
146
|
# It might lead to having multiple operating system detections, but
|
|
147
147
|
# that's the best I can do for now.
|
|
148
148
|
Autoproj::OSDependencies.define_osdeps_mode_option
|
|
149
|
-
|
|
149
|
+
manifest.osdeps.osdeps_mode
|
|
150
150
|
|
|
151
151
|
# Do that AFTER we have properly setup Autoproj.osdeps as to avoid
|
|
152
152
|
# unnecessarily redetecting the operating system
|
data/lib/autoproj/manifest.rb
CHANGED
|
@@ -108,12 +108,16 @@ module Autoproj
|
|
|
108
108
|
# The VCS object for the main configuration itself
|
|
109
109
|
attr_reader :vcs
|
|
110
110
|
|
|
111
|
+
# The definition of all OS packages available on this installation
|
|
112
|
+
attr_reader :osdeps
|
|
113
|
+
|
|
111
114
|
def initialize
|
|
112
115
|
@file = nil
|
|
113
116
|
@data = Hash.new
|
|
114
117
|
@packages = Hash.new
|
|
115
118
|
@package_manifests = Hash.new
|
|
116
119
|
@package_sets = []
|
|
120
|
+
@osdeps = OSDependencies.new
|
|
117
121
|
|
|
118
122
|
@automatic_exclusions = Hash.new
|
|
119
123
|
@constants_definitions = Hash.new
|
|
@@ -558,7 +562,7 @@ module Autoproj
|
|
|
558
562
|
options = Kernel.validate_options options, :filter => true
|
|
559
563
|
|
|
560
564
|
explicit_selection = explicitly_selected_package?(name)
|
|
561
|
-
osdeps_availability =
|
|
565
|
+
osdeps_availability = osdeps.availability_of(name)
|
|
562
566
|
available_as_source = Autobuild::Package[name]
|
|
563
567
|
|
|
564
568
|
osdeps_overrides = Autoproj.manifest.osdeps_overrides[name]
|
|
@@ -609,9 +613,9 @@ module Autoproj
|
|
|
609
613
|
return []
|
|
610
614
|
end
|
|
611
615
|
begin
|
|
612
|
-
|
|
616
|
+
osdeps.resolve_os_dependencies([name].to_set)
|
|
613
617
|
rescue Autoproj::ConfigError => e
|
|
614
|
-
if osdeps_availability != Autoproj::OSDependencies::NO_PACKAGE && !
|
|
618
|
+
if osdeps_availability != Autoproj::OSDependencies::NO_PACKAGE && !osdeps.os_package_handler.enabled?
|
|
615
619
|
if !@ignored_os_dependencies.include?(name)
|
|
616
620
|
Autoproj.warn "some package depends on the #{name} osdep: #{e.message}"
|
|
617
621
|
Autoproj.warn "this osdeps dependency is simply ignored as you asked autoproj to not install osdeps packages"
|
|
@@ -647,7 +651,7 @@ module Autoproj
|
|
|
647
651
|
end
|
|
648
652
|
pkg_set.each_package.
|
|
649
653
|
map(&:name).
|
|
650
|
-
find_all { |pkg_name| !
|
|
654
|
+
find_all { |pkg_name| !osdeps || !osdeps.has?(pkg_name) }
|
|
651
655
|
end
|
|
652
656
|
end
|
|
653
657
|
|
|
@@ -747,7 +751,7 @@ module Autoproj
|
|
|
747
751
|
result |= metapackage(pkg_set.name).packages.map(&:name).to_set
|
|
748
752
|
end
|
|
749
753
|
result.to_a.
|
|
750
|
-
find_all { |pkg_name| !
|
|
754
|
+
find_all { |pkg_name| !osdeps.has?(pkg_name) }
|
|
751
755
|
end
|
|
752
756
|
|
|
753
757
|
# Returns true if +name+ is a valid package and is included in the build
|
|
@@ -758,7 +762,7 @@ module Autoproj
|
|
|
758
762
|
# If it is false, the method will simply return false on non-defined
|
|
759
763
|
# packages
|
|
760
764
|
def package_enabled?(name, validate = true)
|
|
761
|
-
if !Autobuild::Package[name] && !
|
|
765
|
+
if !Autobuild::Package[name] && !osdeps.has?(name)
|
|
762
766
|
if validate
|
|
763
767
|
raise ArgumentError, "package #{name} does not exist"
|
|
764
768
|
end
|
|
@@ -928,10 +932,8 @@ module Autoproj
|
|
|
928
932
|
return required_os_packages, package_os_deps
|
|
929
933
|
end
|
|
930
934
|
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
required_os_packages, package_os_deps = list_os_dependencies(packages)
|
|
934
|
-
required_os_packages.delete_if do |pkg|
|
|
935
|
+
def filter_os_dependencies(required_os_packages, package_os_deps)
|
|
936
|
+
required_os_packages.find_all do |pkg|
|
|
935
937
|
if excluded?(pkg)
|
|
936
938
|
raise ConfigError.new, "the osdeps package #{pkg} is excluded from the build in #{file}. It is required by #{package_os_deps[pkg].join(", ")}"
|
|
937
939
|
end
|
|
@@ -939,10 +941,30 @@ module Autoproj
|
|
|
939
941
|
if Autoproj.verbose
|
|
940
942
|
Autoproj.message "ignoring osdeps package #{pkg}"
|
|
941
943
|
end
|
|
942
|
-
|
|
944
|
+
false
|
|
945
|
+
else true
|
|
943
946
|
end
|
|
944
947
|
end
|
|
945
|
-
|
|
948
|
+
end
|
|
949
|
+
|
|
950
|
+
# Restores the OS dependencies required by the given packages to
|
|
951
|
+
# pristine conditions
|
|
952
|
+
#
|
|
953
|
+
# This is usually called as a rebuild step to make sure that all these
|
|
954
|
+
# packages are updated to whatever required the rebuild
|
|
955
|
+
def pristine_os_dependencies(packages)
|
|
956
|
+
required_os_packages, package_os_deps = list_os_dependencies(packages)
|
|
957
|
+
required_os_packages =
|
|
958
|
+
filter_os_dependencies(required_os_packages, package_os_deps)
|
|
959
|
+
osdeps.pristine(required_os_packages)
|
|
960
|
+
end
|
|
961
|
+
|
|
962
|
+
# Installs the OS dependencies that are required by the given packages
|
|
963
|
+
def install_os_dependencies(packages)
|
|
964
|
+
required_os_packages, package_os_deps = list_os_dependencies(packages)
|
|
965
|
+
required_os_packages =
|
|
966
|
+
filter_os_dependencies(required_os_packages, package_os_deps)
|
|
967
|
+
osdeps.install(required_os_packages)
|
|
946
968
|
end
|
|
947
969
|
|
|
948
970
|
# The set of overrides added with #add_osdeps_overrides
|
|
@@ -993,10 +1015,10 @@ module Autoproj
|
|
|
993
1015
|
#
|
|
994
1016
|
# This method converts the first two directories into the third one
|
|
995
1017
|
def expand_package_selection(selection, options = Hash.new)
|
|
996
|
-
options = Kernel.validate_options options, :
|
|
997
|
-
base_dir = Autoproj.root_dir
|
|
1018
|
+
options = Kernel.validate_options options, filter: true
|
|
998
1019
|
|
|
999
1020
|
result = PackageSelection.new
|
|
1021
|
+
|
|
1000
1022
|
# All the packages that are available on this installation
|
|
1001
1023
|
all_layout_packages = self.all_selected_packages
|
|
1002
1024
|
|
|
@@ -1025,25 +1047,36 @@ module Autoproj
|
|
|
1025
1047
|
|
|
1026
1048
|
# Finally, check for package source directories
|
|
1027
1049
|
all_packages = self.all_package_names
|
|
1050
|
+
all_osdeps_packages = osdeps.all_package_names
|
|
1051
|
+
|
|
1028
1052
|
selection.each do |sel|
|
|
1029
1053
|
match_pkg_name = Regexp.new(Regexp.quote(sel))
|
|
1030
|
-
all_packages.
|
|
1054
|
+
matching_packages = all_packages.map do |pkg_name|
|
|
1031
1055
|
pkg = Autobuild::Package[pkg_name]
|
|
1032
|
-
if pkg_name =~ match_pkg_name ||
|
|
1033
|
-
#
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
# and add them if -- at the end of the method -- nothing
|
|
1037
|
-
# has been found for this particular selection
|
|
1038
|
-
if !all_layout_packages.include?(pkg.name)
|
|
1039
|
-
if pkg_name != sel && pkg.srcdir != sel
|
|
1040
|
-
pending_selections[sel] = pkg_name
|
|
1041
|
-
next
|
|
1042
|
-
end
|
|
1043
|
-
end
|
|
1044
|
-
|
|
1045
|
-
result.select(sel, pkg_name)
|
|
1056
|
+
if pkg_name =~ match_pkg_name ||
|
|
1057
|
+
"#{sel}/" =~ Regexp.new("^#{Regexp.quote(pkg.srcdir)}/") ||
|
|
1058
|
+
pkg.srcdir =~ Regexp.new("^#{Regexp.quote(sel)}")
|
|
1059
|
+
[pkg_name, (pkg_name == sel || pkg.srcdir == sel)]
|
|
1046
1060
|
end
|
|
1061
|
+
end.compact
|
|
1062
|
+
matching_osdeps_packages = all_osdeps_packages.find_all do |pkg_name|
|
|
1063
|
+
if pkg_name =~ match_pkg_name
|
|
1064
|
+
[pkg_name, pkg_name == sel]
|
|
1065
|
+
end
|
|
1066
|
+
end.compact
|
|
1067
|
+
|
|
1068
|
+
(matching_packages + matching_osdeps_packages).to_set.each do |pkg_name, exact_match|
|
|
1069
|
+
# Check-out packages that are not in the manifest only
|
|
1070
|
+
# if they are explicitely selected. However, we do store
|
|
1071
|
+
# them as "possible resolutions" for the user selection,
|
|
1072
|
+
# and add them if -- at the end of the method -- nothing
|
|
1073
|
+
# has been found for this particular selection
|
|
1074
|
+
if !all_layout_packages.include?(pkg_name) && !exact_match
|
|
1075
|
+
pending_selections[sel] = pkg_name
|
|
1076
|
+
next
|
|
1077
|
+
end
|
|
1078
|
+
|
|
1079
|
+
result.select(sel, pkg_name)
|
|
1047
1080
|
end
|
|
1048
1081
|
end
|
|
1049
1082
|
|
|
@@ -1137,7 +1170,13 @@ module Autoproj
|
|
|
1137
1170
|
#
|
|
1138
1171
|
# @return [OSDependencies]
|
|
1139
1172
|
# @see load_osdeps_from_package_sets
|
|
1140
|
-
|
|
1173
|
+
def osdeps
|
|
1174
|
+
manifest.osdeps
|
|
1175
|
+
end
|
|
1176
|
+
|
|
1177
|
+
def osdeps=(osdeps)
|
|
1178
|
+
raise ArgumentError, "cannot set the osdeps object explicitely anymore. Use osdeps.clear and osdeps.merge"
|
|
1179
|
+
end
|
|
1141
1180
|
|
|
1142
1181
|
# The configuration file
|
|
1143
1182
|
# @return [Configuration]
|
data/lib/autoproj/ops/build.rb
CHANGED
data/lib/autoproj/osdeps.rb
CHANGED
|
@@ -592,13 +592,34 @@ fi
|
|
|
592
592
|
end
|
|
593
593
|
end
|
|
594
594
|
|
|
595
|
-
def
|
|
596
|
-
|
|
595
|
+
def build_gem_cmdlines(gems)
|
|
596
|
+
with_version, without_version = gems.partition { |name, v| v }
|
|
597
|
+
|
|
598
|
+
cmdlines = []
|
|
599
|
+
if !without_version.empty?
|
|
600
|
+
cmdlines << without_version.flatten
|
|
601
|
+
end
|
|
602
|
+
with_version.each do |name, v|
|
|
603
|
+
cmdlines << [name, "-v", v]
|
|
604
|
+
end
|
|
605
|
+
cmdlines
|
|
606
|
+
end
|
|
607
|
+
|
|
608
|
+
def pristine(gems)
|
|
609
|
+
guess_gem_program
|
|
597
610
|
base_cmdline = [Autobuild.tool_in_path('ruby'), '-S', Autobuild.tool('gem')]
|
|
598
|
-
|
|
599
|
-
'clean'
|
|
600
|
-
|
|
601
|
-
|
|
611
|
+
cmdlines = [
|
|
612
|
+
[*base_cmdline, 'clean'],
|
|
613
|
+
]
|
|
614
|
+
cmdlines += build_gem_cmdlines(gems).map do |line|
|
|
615
|
+
base_cmdline + ["pristine", "--extensions"] + line
|
|
616
|
+
end
|
|
617
|
+
if gems_interaction(gems, cmdlines)
|
|
618
|
+
Autoproj.message " restoring RubyGems: #{gems.map { |g| g.join(" ") }.sort.join(", ")}"
|
|
619
|
+
cmdlines.each do |c|
|
|
620
|
+
Autobuild::Subprocess.run 'autoproj', 'osdeps', *c
|
|
621
|
+
end
|
|
622
|
+
end
|
|
602
623
|
end
|
|
603
624
|
|
|
604
625
|
def install(gems)
|
|
@@ -612,16 +633,10 @@ fi
|
|
|
612
633
|
if GemManager.with_prerelease
|
|
613
634
|
base_cmdline << "--prerelease"
|
|
614
635
|
end
|
|
615
|
-
with_version, without_version = gems.partition { |name, v| v }
|
|
616
636
|
|
|
617
|
-
cmdlines =
|
|
618
|
-
|
|
619
|
-
cmdlines << (base_cmdline + without_version.flatten)
|
|
620
|
-
end
|
|
621
|
-
with_version.each do |name, v|
|
|
622
|
-
cmdlines << base_cmdline + [name, "-v", v]
|
|
637
|
+
cmdlines = build_gem_cmdlines(gems).map do |line|
|
|
638
|
+
base_cmdline + line
|
|
623
639
|
end
|
|
624
|
-
|
|
625
640
|
if gems_interaction(gems, cmdlines)
|
|
626
641
|
Autoproj.message " installing/updating RubyGems dependencies: #{gems.map { |g| g.join(" ") }.sort.join(", ")}"
|
|
627
642
|
|
|
@@ -910,6 +925,10 @@ fi
|
|
|
910
925
|
OSDependencies.load(file)
|
|
911
926
|
end
|
|
912
927
|
|
|
928
|
+
def load_default
|
|
929
|
+
merge(self.class.load_default)
|
|
930
|
+
end
|
|
931
|
+
|
|
913
932
|
PACKAGE_HANDLERS = [PackageManagers::AptDpkgManager,
|
|
914
933
|
PackageManagers::GemManager,
|
|
915
934
|
PackageManagers::EmergeManager,
|
|
@@ -1002,6 +1021,14 @@ fi
|
|
|
1002
1021
|
@filter_uptodate_packages = true
|
|
1003
1022
|
end
|
|
1004
1023
|
|
|
1024
|
+
# Returns the name of all known OS packages
|
|
1025
|
+
#
|
|
1026
|
+
# It includes even the packages for which there are no definitions on
|
|
1027
|
+
# this OS
|
|
1028
|
+
def all_package_names
|
|
1029
|
+
all_definitions.keys
|
|
1030
|
+
end
|
|
1031
|
+
|
|
1005
1032
|
# Returns the full path to the osdeps file from which the package
|
|
1006
1033
|
# definition for +package_name+ has been taken
|
|
1007
1034
|
def source_of(package_name)
|
|
@@ -1835,6 +1862,24 @@ So, what do you want ? (all, none or a comma-separated list of: os gem pip)
|
|
|
1835
1862
|
enabled_handlers
|
|
1836
1863
|
end
|
|
1837
1864
|
|
|
1865
|
+
# Requests that packages that are handled within the autoproj project
|
|
1866
|
+
# (i.e. gems) are restored to pristine condition
|
|
1867
|
+
#
|
|
1868
|
+
# This is usually called as a rebuild step to make sure that all these
|
|
1869
|
+
# packages are updated to whatever required the rebuild
|
|
1870
|
+
def pristine(packages, options = Hash.new)
|
|
1871
|
+
setup_package_handlers(options)
|
|
1872
|
+
packages = resolve_os_dependencies(packages)
|
|
1873
|
+
|
|
1874
|
+
_, other_packages =
|
|
1875
|
+
packages.partition { |handler, list| handler == os_package_handler }
|
|
1876
|
+
other_packages.each do |handler, list|
|
|
1877
|
+
if handler.respond_to?(:pristine)
|
|
1878
|
+
handler.pristine(list)
|
|
1879
|
+
end
|
|
1880
|
+
end
|
|
1881
|
+
end
|
|
1882
|
+
|
|
1838
1883
|
# Requests the installation of the given set of packages
|
|
1839
1884
|
def install(packages, options = Hash.new)
|
|
1840
1885
|
# Remove the set of packages that have already been installed
|
|
@@ -23,13 +23,6 @@ module Autoproj
|
|
|
23
23
|
# set of user-provided strings that caused that package to be
|
|
24
24
|
# selected
|
|
25
25
|
attr_reader :selection
|
|
26
|
-
# The set of osdeps matches, i.e. a mapping from a user-provided string to
|
|
27
|
-
# the set of packages it selected
|
|
28
|
-
attr_reader :osdeps_matches
|
|
29
|
-
# The set of selected osdeps packages, as a hash of the package name
|
|
30
|
-
# to the set of user-provided strings that caused that package to be
|
|
31
|
-
# selected
|
|
32
|
-
attr_reader :osdeps_selection
|
|
33
26
|
# A flag that tells #filter_excluded_and_ignored_packages whether
|
|
34
27
|
# the a given package selection is weak or not.
|
|
35
28
|
#
|
|
@@ -48,8 +41,6 @@ module Autoproj
|
|
|
48
41
|
def initialize
|
|
49
42
|
@selection = Hash.new { |h, k| h[k] = Set.new }
|
|
50
43
|
@matches = Hash.new { |h, k| h[k] = Set.new }
|
|
51
|
-
@osdeps_matches = Hash.new { |h, k| h[k] = Set.new }
|
|
52
|
-
@osdeps_selection = Hash.new { |h, k| h[k] = Set.new }
|
|
53
44
|
@weak_dependencies = Hash.new
|
|
54
45
|
@ignores = Hash.new { |h, k| h[k] = Set.new }
|
|
55
46
|
@exclusions = Hash.new { |h, k| h[k] = Set.new }
|
|
@@ -60,13 +51,8 @@ module Autoproj
|
|
|
60
51
|
selection.keys
|
|
61
52
|
end
|
|
62
53
|
|
|
63
|
-
# The set of packages that have been selected
|
|
64
|
-
def osdeps_packages
|
|
65
|
-
osdeps_selection.keys
|
|
66
|
-
end
|
|
67
|
-
|
|
68
54
|
def include?(pkg_name)
|
|
69
|
-
selection.has_key?(pkg_name)
|
|
55
|
+
selection.has_key?(pkg_name)
|
|
70
56
|
end
|
|
71
57
|
|
|
72
58
|
def empty?
|
data/lib/autoproj/package_set.rb
CHANGED
|
@@ -331,7 +331,12 @@ module Autoproj
|
|
|
331
331
|
def parse_source_definition
|
|
332
332
|
@name = source_definition['name']
|
|
333
333
|
@provides = (source_definition['provides'] || Set.new).to_set
|
|
334
|
-
@imports_vcs = (source_definition['imports'] || Array.new).map do |set_def|
|
|
334
|
+
@imports_vcs = Array(source_definition['imports'] || Array.new).map do |set_def|
|
|
335
|
+
if !set_def.kind_of?(Hash)
|
|
336
|
+
raise ConfigError.new(source_file),
|
|
337
|
+
"in #{source_file}: wrong format for 'imports' section. Expected an array of maps (e.g. - github: my/url)."
|
|
338
|
+
end
|
|
339
|
+
|
|
335
340
|
Autoproj.in_file(source_file) do
|
|
336
341
|
PackageSet.resolve_definition(manifest, set_def)
|
|
337
342
|
end
|
data/lib/autoproj/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: autoproj
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.12.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rock Core Developers
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-11-
|
|
11
|
+
date: 2014-11-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: autobuild
|
|
@@ -216,9 +216,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
216
216
|
version: 1.9.2
|
|
217
217
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
218
|
requirements:
|
|
219
|
-
- - "
|
|
219
|
+
- - ">="
|
|
220
220
|
- !ruby/object:Gem::Version
|
|
221
|
-
version:
|
|
221
|
+
version: '0'
|
|
222
222
|
requirements: []
|
|
223
223
|
rubyforge_project:
|
|
224
224
|
rubygems_version: 2.2.2
|