autoproj 2.0.2 → 2.0.3
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/lib/autoproj/autobuild_extensions/package.rb +1 -1
- data/lib/autoproj/default.osdeps +3 -0
- data/lib/autoproj/exceptions.rb +3 -2
- data/lib/autoproj/manifest.rb +12 -6
- data/lib/autoproj/ops/configuration.rb +3 -3
- data/lib/autoproj/ops/install.rb +2 -2
- data/lib/autoproj/package_managers/bundler_manager.rb +2 -2
- data/lib/autoproj/package_managers/homebrew_manager.rb +17 -12
- data/lib/autoproj/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 225ebf408df3b402e49ba4fb88968d99ca7516d4
|
|
4
|
+
data.tar.gz: 5e6c520db390621a7fc4f5b9a6ac772d9b08e459
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: be6bdb315d178d9980fa5f769fc044ba2dfdc1a9cfd605e3a184142f8d7a6132777778ecf75e3f33bcf0c4184139e8dac3a4aafdf5668efd9903d94be4488ee5
|
|
7
|
+
data.tar.gz: 89e2b7a9ada6aff9be121e91c087f6d476f94a78dd022bbb2bdb8a59dfc866bf1bafa463ce8df47b47404a0a654a38b5e42bf53b98e1aa1bc446e138a31d9b21
|
|
@@ -130,7 +130,7 @@ def optional_dependency(name)
|
|
|
130
130
|
|
|
131
131
|
def partition_package(pkg_name)
|
|
132
132
|
pkg_autobuild, pkg_osdeps = [], []
|
|
133
|
-
ws.manifest.resolve_package_name(pkg_name).each do |type, dep_name|
|
|
133
|
+
ws.manifest.resolve_package_name(pkg_name, include_unavailable: true).each do |type, dep_name|
|
|
134
134
|
if type == :osdeps
|
|
135
135
|
pkg_osdeps << dep_name
|
|
136
136
|
elsif type == :package
|
data/lib/autoproj/default.osdeps
CHANGED
|
@@ -86,6 +86,9 @@ ruby22:
|
|
|
86
86
|
ruby23:
|
|
87
87
|
default: ignore # we assume that if the user has a ruby 2.3 runtime, it is usable
|
|
88
88
|
|
|
89
|
+
ruby24:
|
|
90
|
+
default: ignore # we assume that if the user has a ruby 2.3 runtime, it is usable
|
|
91
|
+
|
|
89
92
|
build-essential:
|
|
90
93
|
debian,ubuntu: build-essential
|
|
91
94
|
gentoo: ignore
|
data/lib/autoproj/exceptions.rb
CHANGED
|
@@ -29,8 +29,9 @@ def initialize(original_errors, source_packages: [], osdep_packages: [])
|
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
# Exception raised when trying to resolve a package name and it failed
|
|
32
|
-
class PackageNotFound < ConfigError
|
|
33
|
-
|
|
32
|
+
class PackageNotFound < ConfigError; end
|
|
33
|
+
|
|
34
|
+
class PackageUnavailable < PackageNotFound; end
|
|
34
35
|
|
|
35
36
|
class UnregisteredPackage < ArgumentError
|
|
36
37
|
end
|
data/lib/autoproj/manifest.rb
CHANGED
|
@@ -661,7 +661,7 @@ def main_package_set
|
|
|
661
661
|
# defined by {#os_package_resolver}), and there has been no source
|
|
662
662
|
# fallback defined with {#add_osdeps_overrides}. If true, it will
|
|
663
663
|
# return such a package as an osdep.
|
|
664
|
-
def resolve_package_name(name)
|
|
664
|
+
def resolve_package_name(name, include_unavailable: false)
|
|
665
665
|
if pkg_set = find_metapackage(name)
|
|
666
666
|
pkg_names = pkg_set.each_package.map(&:name)
|
|
667
667
|
else
|
|
@@ -672,8 +672,14 @@ def resolve_package_name(name)
|
|
|
672
672
|
pkg_names.each do |pkg|
|
|
673
673
|
begin
|
|
674
674
|
result.concat(resolve_single_package_name(pkg))
|
|
675
|
+
rescue PackageUnavailable => e
|
|
676
|
+
if include_unavailable
|
|
677
|
+
result.concat([[:osdeps, pkg]])
|
|
678
|
+
else
|
|
679
|
+
raise e, "cannot resolve #{pkg}: #{e}", e.backtrace
|
|
680
|
+
end
|
|
675
681
|
rescue PackageNotFound => e
|
|
676
|
-
raise
|
|
682
|
+
raise e, "cannot resolve #{pkg}: #{e}", e.backtrace
|
|
677
683
|
end
|
|
678
684
|
end
|
|
679
685
|
result
|
|
@@ -696,7 +702,7 @@ def resolve_single_package_name(name)
|
|
|
696
702
|
begin
|
|
697
703
|
resolve_package_name_as_source_package(name)
|
|
698
704
|
rescue PackageNotFound
|
|
699
|
-
raise
|
|
705
|
+
raise osdep_error, "#{osdep_error} and it cannot be resolved as a source package"
|
|
700
706
|
end
|
|
701
707
|
end
|
|
702
708
|
|
|
@@ -754,11 +760,11 @@ def resolve_package_name_as_osdep(name)
|
|
|
754
760
|
elsif osdeps_available || accept_unavailable_osdeps?
|
|
755
761
|
return [[:osdeps, name]]
|
|
756
762
|
elsif osdeps_availability == OSPackageResolver::WRONG_OS
|
|
757
|
-
raise
|
|
763
|
+
raise PackageUnavailable, "#{name} is an osdep, but it is not available for this operating system (#{os_package_resolver.operating_system})"
|
|
758
764
|
elsif osdeps_availability == OSPackageResolver::UNKNOWN_OS
|
|
759
|
-
raise
|
|
765
|
+
raise PackageUnavailable, "#{name} is an osdep, but the local operating system is unavailable"
|
|
760
766
|
elsif osdeps_availability == OSPackageResolver::NONEXISTENT
|
|
761
|
-
raise
|
|
767
|
+
raise PackageUnavailable, "#{name} is an osdep, but it is explicitely marked as 'nonexistent' for this operating system (#{os_package_resolver.operating_system})"
|
|
762
768
|
end
|
|
763
769
|
end
|
|
764
770
|
|
|
@@ -554,11 +554,11 @@ def mark_unavailable_osdeps_as_excluded
|
|
|
554
554
|
|
|
555
555
|
case os_package_resolver.availability_of(osdep_name)
|
|
556
556
|
when OSPackageResolver::UNKNOWN_OS
|
|
557
|
-
manifest.exclude_package(osdep_name, "
|
|
557
|
+
manifest.exclude_package(osdep_name, "the current operating system is unknown to autoproj")
|
|
558
558
|
when OSPackageResolver::WRONG_OS
|
|
559
|
-
manifest.exclude_package(osdep_name, "
|
|
559
|
+
manifest.exclude_package(osdep_name, "#{osdep_name} is defined, but not for this operating system")
|
|
560
560
|
when OSPackageResolver::NONEXISTENT
|
|
561
|
-
manifest.exclude_package(osdep_name, "
|
|
561
|
+
manifest.exclude_package(osdep_name, "#{osdep_name} is marked as unavailable for this operating system")
|
|
562
562
|
end
|
|
563
563
|
end
|
|
564
564
|
end
|
data/lib/autoproj/ops/install.rb
CHANGED
|
@@ -180,10 +180,10 @@ def self.guess_gem_program
|
|
|
180
180
|
# @param [String] autoproj_version a constraint on the autoproj version
|
|
181
181
|
# that should be used
|
|
182
182
|
# @return [String]
|
|
183
|
-
def default_gemfile_contents(autoproj_version = ">= 2.0.0
|
|
183
|
+
def default_gemfile_contents(autoproj_version = ">= 2.0.0")
|
|
184
184
|
["source \"#{gem_source}\"",
|
|
185
185
|
"gem \"autoproj\", \"#{autoproj_version}\"",
|
|
186
|
-
"gem \"utilrb\", \">= 3.0.
|
|
186
|
+
"gem \"utilrb\", \">= 3.0.1\""].join("\n")
|
|
187
187
|
end
|
|
188
188
|
|
|
189
189
|
# Parse the provided command line options and returns the non-options
|
|
@@ -254,6 +254,7 @@ def merge_gemfiles(*path, unlock: [])
|
|
|
254
254
|
end
|
|
255
255
|
contents << "source '#{g.to_s}'"
|
|
256
256
|
end
|
|
257
|
+
valid_keys = %w{group groups git path glob name branch ref tag require submodules platform platforms type source install_if}
|
|
257
258
|
dependencies.each do |group_name, by_platform|
|
|
258
259
|
contents << "group :#{group_name} do"
|
|
259
260
|
by_platform.each do |platform_name, deps|
|
|
@@ -265,8 +266,7 @@ def merge_gemfiles(*path, unlock: [])
|
|
|
265
266
|
deps.each do |d|
|
|
266
267
|
if d.source
|
|
267
268
|
options = d.source.options.dup
|
|
268
|
-
options.
|
|
269
|
-
options.delete 'uri'
|
|
269
|
+
options.delete_if { |k, _| !valid_keys.include?(k) }
|
|
270
270
|
options = options.map { |k, v| "#{k}: \"#{v}\"" }
|
|
271
271
|
end
|
|
272
272
|
contents << [" #{platform_indent}gem \"#{d.name}\", \"#{d.requirement}\"", *options].join(", ")
|
|
@@ -14,18 +14,23 @@ def filter_uptodate_packages(packages)
|
|
|
14
14
|
# TODO there might be duplicates in packages which should be fixed
|
|
15
15
|
# somewhere else
|
|
16
16
|
packages = packages.uniq
|
|
17
|
-
|
|
18
|
-
result =
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
17
|
+
command_line = "brew info --json=v1 #{packages.join(' ')}"
|
|
18
|
+
result = Bundler.with_clean_env do
|
|
19
|
+
(Autobuild::Subprocess.run 'autoproj', 'osdeps', command_line).first
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
begin
|
|
23
|
+
JSON.parse(result)
|
|
24
|
+
rescue JSON::ParserError
|
|
25
|
+
if result && !result.empty?
|
|
26
|
+
Autoproj.warn "Error while parsing result of brew info --json=v1"
|
|
27
|
+
else
|
|
28
|
+
# one of the packages is unknown fallback to install all
|
|
29
|
+
# packaes which will complain about it
|
|
30
|
+
end
|
|
31
|
+
return packages
|
|
32
|
+
end
|
|
33
|
+
|
|
29
34
|
# fall back if something else went wrong
|
|
30
35
|
if packages.size != result.size
|
|
31
36
|
Autoproj.warn "brew info returns less or more packages when requested. Falling back to install all packages"
|
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: 2.0.
|
|
4
|
+
version: 2.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sylvain Joyeux
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-01-
|
|
11
|
+
date: 2017-01-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|