autoproj 2.8.8 → 2.9.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/alog +5 -3
- data/lib/autoproj.rb +2 -0
- data/lib/autoproj/cli/base.rb +8 -1
- data/lib/autoproj/cli/build.rb +5 -3
- data/lib/autoproj/cli/locate.rb +5 -1
- data/lib/autoproj/cli/osdeps.rb +1 -0
- data/lib/autoproj/cli/status.rb +13 -4
- data/lib/autoproj/cli/update.rb +9 -5
- data/lib/autoproj/default.osdeps +14 -0
- data/lib/autoproj/manifest.rb +7 -9
- data/lib/autoproj/ops/build.rb +48 -2
- data/lib/autoproj/ops/configuration.rb +18 -0
- data/lib/autoproj/os_package_installer.rb +27 -0
- data/lib/autoproj/os_repository_installer.rb +53 -0
- data/lib/autoproj/os_repository_resolver.rb +137 -0
- data/lib/autoproj/package_managers/apt_dpkg_manager.rb +70 -10
- data/lib/autoproj/package_managers/bundler_manager.rb +9 -2
- data/lib/autoproj/package_managers/debian_version.rb +123 -0
- data/lib/autoproj/package_managers/manager.rb +9 -0
- data/lib/autoproj/package_managers/pip_manager.rb +4 -0
- data/lib/autoproj/package_selection.rb +36 -10
- data/lib/autoproj/package_set.rb +39 -4
- data/lib/autoproj/repository_managers/apt.rb +289 -0
- data/lib/autoproj/repository_managers/manager.rb +26 -0
- data/lib/autoproj/repository_managers/unknown_os_manager.rb +30 -0
- data/lib/autoproj/test.rb +1 -0
- data/lib/autoproj/version.rb +1 -1
- data/lib/autoproj/workspace.rb +21 -7
- metadata +8 -2
@@ -0,0 +1,26 @@
|
|
1
|
+
module Autoproj
|
2
|
+
module RepositoryManagers
|
3
|
+
# Base class for all repository managers. Subclasses must add the
|
4
|
+
# #install(entries) method
|
5
|
+
#
|
6
|
+
# Repository managers must be registered in OS_REPOSITORY_MANAGERS
|
7
|
+
class Manager
|
8
|
+
# @return [Workspace] the workspace
|
9
|
+
attr_reader :ws
|
10
|
+
|
11
|
+
# Create a repository manager
|
12
|
+
#
|
13
|
+
# @param [Workspace] ws the underlying workspace
|
14
|
+
def initialize(ws)
|
15
|
+
@ws = ws
|
16
|
+
end
|
17
|
+
|
18
|
+
def install(definitions)
|
19
|
+
end
|
20
|
+
|
21
|
+
def os_dependencies
|
22
|
+
[]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Autoproj
|
2
|
+
module RepositoryManagers
|
3
|
+
# Dummy repository manager used for unknown OSes. It simply displays a
|
4
|
+
# message to the user when repositories are needed
|
5
|
+
class UnknownOSManager < Manager
|
6
|
+
def initialize(ws)
|
7
|
+
@installed_osrepos = Set.new
|
8
|
+
super(ws)
|
9
|
+
end
|
10
|
+
|
11
|
+
def osrepos_interaction_unknown_os
|
12
|
+
Autoproj.message 'The build process requires some repositories to be added on our operating system', :bold
|
13
|
+
Autoproj.message 'If they are already added, simply ignore this message', :bold
|
14
|
+
Autoproj.message 'Press ENTER to continue ', :bold
|
15
|
+
|
16
|
+
STDIN.readline
|
17
|
+
nil
|
18
|
+
end
|
19
|
+
|
20
|
+
def install(osrepos)
|
21
|
+
super
|
22
|
+
osrepos = osrepos.to_set
|
23
|
+
osrepos -= @installed_osrepos
|
24
|
+
result = osrepos_interaction_unknown_os unless osrepos.empty?
|
25
|
+
@installed_osrepos |= osrepos
|
26
|
+
result
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/autoproj/test.rb
CHANGED
@@ -281,6 +281,7 @@ def ws_create(dir = make_tmpdir)
|
|
281
281
|
dir, os_package_resolver: ws_os_package_resolver,
|
282
282
|
package_managers: ws_package_managers)
|
283
283
|
ws.config.set 'osdeps_mode', 'all'
|
284
|
+
ws.config.set 'apt_dpkg_update', true
|
284
285
|
ws.config.set 'GITHUB', 'http,ssh', true
|
285
286
|
ws.config.set 'GITORIOUS', 'http,ssh', true
|
286
287
|
ws.config.set 'gems_install_path', File.join(dir, 'gems')
|
data/lib/autoproj/version.rb
CHANGED
data/lib/autoproj/workspace.rb
CHANGED
@@ -23,6 +23,8 @@ class Workspace < Ops::Loader
|
|
23
23
|
|
24
24
|
attr_reader :loader
|
25
25
|
|
26
|
+
attr_reader :os_repository_resolver
|
27
|
+
attr_reader :os_repository_installer
|
26
28
|
attr_reader :os_package_resolver
|
27
29
|
attr_reader :os_package_installer
|
28
30
|
|
@@ -51,7 +53,9 @@ class Workspace < Ops::Loader
|
|
51
53
|
|
52
54
|
def initialize(root_dir,
|
53
55
|
os_package_resolver: OSPackageResolver.new,
|
54
|
-
package_managers: OSPackageInstaller::PACKAGE_MANAGERS
|
56
|
+
package_managers: OSPackageInstaller::PACKAGE_MANAGERS,
|
57
|
+
os_repository_resolver: OSRepositoryResolver.new(operating_system: os_package_resolver.operating_system),
|
58
|
+
os_repository_installer: OSRepositoryInstaller.new(self))
|
55
59
|
@root_dir = root_dir
|
56
60
|
@root_path = Pathname.new(root_dir)
|
57
61
|
@ruby_version_keyword = "ruby#{RUBY_VERSION.split('.')[0, 2].join("")}"
|
@@ -62,6 +66,8 @@ def initialize(root_dir,
|
|
62
66
|
env.prepare(root_dir)
|
63
67
|
env.source_before(File.join(dot_autoproj_dir, 'env.sh'))
|
64
68
|
|
69
|
+
@os_repository_resolver = os_repository_resolver
|
70
|
+
@os_repository_installer = os_repository_installer
|
65
71
|
@os_package_resolver = os_package_resolver
|
66
72
|
@manifest = Manifest.new(self, os_package_resolver: os_package_resolver)
|
67
73
|
@config = Configuration.new(config_file_path)
|
@@ -247,6 +253,7 @@ def load_config(reconfigure = false)
|
|
247
253
|
|
248
254
|
os_package_resolver.prefer_indep_over_os_packages = config.prefer_indep_over_os_packages?
|
249
255
|
os_package_resolver.operating_system ||= config.get('operating_system', nil)
|
256
|
+
os_repository_resolver.operating_system ||= config.get('operating_system', nil)
|
250
257
|
end
|
251
258
|
@config
|
252
259
|
end
|
@@ -262,6 +269,7 @@ def autodetect_operating_system(force: false)
|
|
262
269
|
"autodetecting the operating system"
|
263
270
|
names, versions = OSPackageResolver.autodetect_operating_system
|
264
271
|
os_package_resolver.operating_system = [names, versions]
|
272
|
+
os_repository_resolver.operating_system = [names, versions]
|
265
273
|
Autobuild.progress :operating_system_autodetection,
|
266
274
|
"operating system: #{(names - ['default']).join(",")} - #{(versions - ['default']).join(",")}"
|
267
275
|
ensure
|
@@ -287,6 +295,7 @@ def setup_os_package_installer
|
|
287
295
|
os_package_resolver.load_default
|
288
296
|
os_package_installer.define_osdeps_mode_option
|
289
297
|
os_package_installer.osdeps_mode
|
298
|
+
os_package_installer.configure_manager
|
290
299
|
end
|
291
300
|
|
292
301
|
def setup_ruby_version_handling
|
@@ -730,10 +739,13 @@ def full_env
|
|
730
739
|
end
|
731
740
|
|
732
741
|
# Export the workspace's env.sh file
|
742
|
+
#
|
743
|
+
# @return [Boolean] true if the environment has been changed, false otherwise
|
733
744
|
def export_env_sh(package_names = nil, shell_helpers: true)
|
734
745
|
full_env = self.full_env
|
735
|
-
save_cached_env(full_env)
|
746
|
+
changed = save_cached_env(full_env)
|
736
747
|
full_env.export_env_sh(shell_helpers: shell_helpers)
|
748
|
+
changed
|
737
749
|
end
|
738
750
|
|
739
751
|
def save_cached_env(env = self.full_env)
|
@@ -763,11 +775,7 @@ def all_os_packages(import_missing: false, parallel: config.parallel_import_leve
|
|
763
775
|
retry_count: 0)
|
764
776
|
all_os_packages
|
765
777
|
else
|
766
|
-
|
767
|
-
manifest.all_selected_source_packages.each do |source_package|
|
768
|
-
result.merge(source_package.autobuild.os_packages)
|
769
|
-
end
|
770
|
-
result
|
778
|
+
manifest.all_selected_osdep_packages
|
771
779
|
end
|
772
780
|
end
|
773
781
|
|
@@ -775,6 +783,12 @@ def install_os_packages(packages, all: all_os_packages, **options)
|
|
775
783
|
os_package_installer.install(packages, all: all, **options)
|
776
784
|
end
|
777
785
|
|
786
|
+
def install_os_repositories
|
787
|
+
return unless os_package_installer.osdeps_mode.include?('os')
|
788
|
+
|
789
|
+
os_repository_installer.install_os_repositories
|
790
|
+
end
|
791
|
+
|
778
792
|
# Define and register an autobuild package on this workspace
|
779
793
|
#
|
780
794
|
# @param [Symbol] package_type a package-creation method on {Autobuild},
|
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.
|
4
|
+
version: 2.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvain Joyeux
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -366,9 +366,12 @@ files:
|
|
366
366
|
- lib/autoproj/os_package_installer.rb
|
367
367
|
- lib/autoproj/os_package_query.rb
|
368
368
|
- lib/autoproj/os_package_resolver.rb
|
369
|
+
- lib/autoproj/os_repository_installer.rb
|
370
|
+
- lib/autoproj/os_repository_resolver.rb
|
369
371
|
- lib/autoproj/package_definition.rb
|
370
372
|
- lib/autoproj/package_managers/apt_dpkg_manager.rb
|
371
373
|
- lib/autoproj/package_managers/bundler_manager.rb
|
374
|
+
- lib/autoproj/package_managers/debian_version.rb
|
372
375
|
- lib/autoproj/package_managers/emerge_manager.rb
|
373
376
|
- lib/autoproj/package_managers/gem_manager.rb
|
374
377
|
- lib/autoproj/package_managers/homebrew_manager.rb
|
@@ -386,6 +389,9 @@ files:
|
|
386
389
|
- lib/autoproj/package_set.rb
|
387
390
|
- lib/autoproj/query_base.rb
|
388
391
|
- lib/autoproj/reporter.rb
|
392
|
+
- lib/autoproj/repository_managers/apt.rb
|
393
|
+
- lib/autoproj/repository_managers/manager.rb
|
394
|
+
- lib/autoproj/repository_managers/unknown_os_manager.rb
|
389
395
|
- lib/autoproj/shell_completion.rb
|
390
396
|
- lib/autoproj/source_package_query.rb
|
391
397
|
- lib/autoproj/system.rb
|