autoproj 1.7.4 → 1.7.5
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/History.txt +12 -0
- data/Manifest.txt +0 -1
- data/bin/autoproj_bootstrap +15 -3
- data/lib/autoproj/autobuild.rb +38 -7
- data/lib/autoproj/cmdline.rb +11 -4
- data/lib/autoproj/manifest.rb +24 -2
- data/lib/autoproj/osdeps.rb +15 -3
- data/lib/autoproj/version.rb +1 -1
- data/shell/autoproj_bash +7 -0
- data/shell/autoproj_zsh +8 -0
- metadata +4 -6
- data/bin/amake +0 -9
data/History.txt
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
= Version 1.7.5
|
|
2
|
+
* quickfix release
|
|
3
|
+
* fix osdeps_mode issue on bootstrapping
|
|
4
|
+
* ignore osdeps-related errors in modes
|
|
5
|
+
where the osdeps should not be managed
|
|
6
|
+
by autoproj at all.
|
|
7
|
+
* fix expansion of array elements in source.yml
|
|
8
|
+
* finally got a way to have amake work. The
|
|
9
|
+
RubyGem packaging had replaced the executable
|
|
10
|
+
by a RubyGem wrapper, assuming it was a ruby
|
|
11
|
+
file (but it was a shell script)
|
|
12
|
+
|
|
1
13
|
= Version 1.7.4
|
|
2
14
|
* add amake to the gem (forgot it in 1.7.3)
|
|
3
15
|
* fix some corner-cases in osdeps handling
|
data/Manifest.txt
CHANGED
data/bin/autoproj_bootstrap
CHANGED
|
@@ -644,14 +644,18 @@ fi
|
|
|
644
644
|
gems.delete_if do |name, version|
|
|
645
645
|
version_requirements = Gem::Requirement.new(version || '>= 0')
|
|
646
646
|
installed = Gem.source_index.find_name(name, version_requirements)
|
|
647
|
-
if
|
|
647
|
+
if !installed.empty? && Autobuild.do_update
|
|
648
648
|
# Look if we can update the package ...
|
|
649
649
|
dep = Gem::Dependency.new(name, version_requirements)
|
|
650
|
-
available = gem_fetcher.find_matching(dep,
|
|
650
|
+
available = gem_fetcher.find_matching(dep, true, true, OSDependencies.gem_with_prerelease)
|
|
651
651
|
installed_version = installed.map(&:version).max
|
|
652
652
|
available_version = available.map { |(name, v), source| v }.max
|
|
653
653
|
if !available_version
|
|
654
|
-
|
|
654
|
+
if version
|
|
655
|
+
raise ConfigError.new, "cannot find any gem with the name '#{name}' and version #{version}"
|
|
656
|
+
else
|
|
657
|
+
raise ConfigError.new, "cannot find any gem with the name '#{name}'"
|
|
658
|
+
end
|
|
655
659
|
end
|
|
656
660
|
needs_update = (available_version > installed_version)
|
|
657
661
|
!needs_update
|
|
@@ -833,6 +837,14 @@ with the corresponding option (--all, --ruby, --os or --none).
|
|
|
833
837
|
nil
|
|
834
838
|
end
|
|
835
839
|
|
|
840
|
+
def installs_os_packages?
|
|
841
|
+
osdeps_mode == HANDLE_ALL || osdeps_mode == HANDLE_OS
|
|
842
|
+
end
|
|
843
|
+
|
|
844
|
+
def installs_ruby_packages?
|
|
845
|
+
osdeps_mode == HANDLE_ALL || osdeps_mode == HANDLE_RUBY
|
|
846
|
+
end
|
|
847
|
+
|
|
836
848
|
def osdeps_interaction(osdeps, os_packages, shell_script, silent)
|
|
837
849
|
if !OSDependencies.supported_operating_system?
|
|
838
850
|
if silent
|
data/lib/autoproj/autobuild.rb
CHANGED
|
@@ -100,6 +100,13 @@ module Autobuild
|
|
|
100
100
|
return
|
|
101
101
|
end
|
|
102
102
|
|
|
103
|
+
@os_packages ||= Set.new
|
|
104
|
+
@ignored_os_dependencies ||= Set.new
|
|
105
|
+
|
|
106
|
+
if @os_packages.include?(name) || @ignored_os_dependencies.include?(name)
|
|
107
|
+
return
|
|
108
|
+
end
|
|
109
|
+
|
|
103
110
|
explicit_selection = Autoproj.manifest.explicitly_selected_package?(name)
|
|
104
111
|
osdeps_availability = Autoproj.osdeps.availability_of(name)
|
|
105
112
|
available_as_source = Autobuild::Package[name]
|
|
@@ -107,7 +114,6 @@ module Autobuild
|
|
|
107
114
|
# Prefer OS packages to source packages
|
|
108
115
|
if !explicit_selection
|
|
109
116
|
if osdeps_availability == Autoproj::OSDependencies::AVAILABLE
|
|
110
|
-
@os_packages ||= Set.new
|
|
111
117
|
@os_packages << name
|
|
112
118
|
return
|
|
113
119
|
end
|
|
@@ -118,16 +124,27 @@ module Autobuild
|
|
|
118
124
|
# an external package. However, if it is also available as a
|
|
119
125
|
# source package, prompt the user
|
|
120
126
|
if !available_as_source || explicit_osdeps_selection(name)
|
|
121
|
-
@os_packages ||= Set.new
|
|
122
127
|
@os_packages << name
|
|
123
128
|
return
|
|
124
129
|
end
|
|
125
130
|
end
|
|
126
131
|
|
|
132
|
+
|
|
127
133
|
if !available_as_source
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
134
|
+
begin
|
|
135
|
+
# Call osdeps to get a proper error message
|
|
136
|
+
osdeps, gems = Autoproj.osdeps.partition_packages([name].to_set, name => [self.name])
|
|
137
|
+
Autoproj.osdeps.resolve_os_dependencies(osdeps)
|
|
138
|
+
rescue ConfigError => e
|
|
139
|
+
if osdeps_availability != Autoproj::OSDependencies::NO_PACKAGE && !Autoproj.osdeps.installs_os_packages?
|
|
140
|
+
Autoproj.warn "in #{File.join(srcdir, 'manifest.xml')}: #{e.message}"
|
|
141
|
+
Autoproj.warn "this osdeps dependency is simply ignored as you asked autoproj to not install osdeps packages"
|
|
142
|
+
@ignored_os_dependencies << name
|
|
143
|
+
# We are not asked to install OS packages, just ignore
|
|
144
|
+
return
|
|
145
|
+
end
|
|
146
|
+
raise
|
|
147
|
+
end
|
|
131
148
|
# Should never reach further than that
|
|
132
149
|
end
|
|
133
150
|
end
|
|
@@ -210,7 +227,7 @@ module Autoproj
|
|
|
210
227
|
|
|
211
228
|
def self.define(package_type, spec, &block)
|
|
212
229
|
package = Autobuild.send(package_type, spec)
|
|
213
|
-
Autoproj.manifest.register_package
|
|
230
|
+
Autoproj.manifest.register_package(package, block, *current_file)
|
|
214
231
|
package
|
|
215
232
|
end
|
|
216
233
|
|
|
@@ -274,6 +291,19 @@ def ignore(*paths)
|
|
|
274
291
|
end
|
|
275
292
|
end
|
|
276
293
|
|
|
294
|
+
# Adds a new setup block to an existing package
|
|
295
|
+
def setup_package(package_name, &block)
|
|
296
|
+
if !block
|
|
297
|
+
raise ConfigError.new, "you must give a block to #setup_package"
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
package_definition = Autoproj.manifest.package(package_name)
|
|
301
|
+
if !package_definition
|
|
302
|
+
raise ConfigError.new, "#{package_name} is not a known package"
|
|
303
|
+
end
|
|
304
|
+
package_definition.add_setup_block(block)
|
|
305
|
+
end
|
|
306
|
+
|
|
277
307
|
# Common setup for packages
|
|
278
308
|
def package_common(package_type, spec, &block) # :nodoc:
|
|
279
309
|
package_name = Autoproj.package_name_from_options(spec)
|
|
@@ -282,6 +312,7 @@ def package_common(package_type, spec, &block) # :nodoc:
|
|
|
282
312
|
current_file = Autoproj.current_file[1]
|
|
283
313
|
old_file = Autoproj.manifest.definition_file(package_name)
|
|
284
314
|
Autoproj.warn "#{package_name} from #{current_file} is overriden by the definition in #{old_file}"
|
|
315
|
+
|
|
285
316
|
return
|
|
286
317
|
end
|
|
287
318
|
|
|
@@ -391,7 +422,7 @@ module Autoproj::RubyPackage
|
|
|
391
422
|
end
|
|
392
423
|
|
|
393
424
|
# The Rake task that is used to set up the package. Defaults to "default".
|
|
394
|
-
# Set to nil to disable
|
|
425
|
+
# Set to nil to disable setup altogether
|
|
395
426
|
attr_accessor :rake_setup_task
|
|
396
427
|
# The Rake task that is used to generate documentation. Defaults to "doc".
|
|
397
428
|
# Set to nil to disable documentation generation
|
data/lib/autoproj/cmdline.rb
CHANGED
|
@@ -109,13 +109,20 @@ module Autoproj
|
|
|
109
109
|
if osdeps_forced_mode
|
|
110
110
|
Autoproj.osdeps.osdeps_mode = osdeps_forced_mode
|
|
111
111
|
end
|
|
112
|
+
|
|
113
|
+
# Define the option NOW, as update_os_dependencies? needs to know in
|
|
114
|
+
# what mode we are.
|
|
115
|
+
#
|
|
116
|
+
# It might lead to having multiple operating system detections, but
|
|
117
|
+
# that's the best I can do for now.
|
|
118
|
+
Autoproj::OSDependencies.define_osdeps_mode_option
|
|
119
|
+
Autoproj.osdeps.osdeps_mode
|
|
120
|
+
|
|
112
121
|
# Do that AFTER we have properly setup Autoproj.osdeps as to avoid
|
|
113
122
|
# unnecessarily redetecting the operating system
|
|
114
123
|
if update_os_dependencies? || osdeps?
|
|
115
124
|
Autoproj.reset_option('operating_system')
|
|
116
125
|
end
|
|
117
|
-
Autoproj::OSDependencies.define_osdeps_mode_option
|
|
118
|
-
Autoproj.osdeps.osdeps_mode
|
|
119
126
|
end
|
|
120
127
|
|
|
121
128
|
def self.update_myself
|
|
@@ -287,8 +294,8 @@ module Autoproj
|
|
|
287
294
|
# Now call the blocks that the user defined in the autobuild files. We do it
|
|
288
295
|
# now so that the various package directories are properly setup
|
|
289
296
|
manifest.packages.each_value do |pkg|
|
|
290
|
-
|
|
291
|
-
|
|
297
|
+
pkg.user_blocks.each do |blk|
|
|
298
|
+
blk[pkg.autobuild]
|
|
292
299
|
end
|
|
293
300
|
end
|
|
294
301
|
|
data/lib/autoproj/manifest.rb
CHANGED
|
@@ -208,6 +208,8 @@ module Autoproj
|
|
|
208
208
|
value[name] = expand(definition, definitions)
|
|
209
209
|
end
|
|
210
210
|
value
|
|
211
|
+
elsif value.respond_to?(:to_ary)
|
|
212
|
+
value.map { |val| expand(val, definitions) }
|
|
211
213
|
else
|
|
212
214
|
value = single_expansion(value, definitions)
|
|
213
215
|
if contains_expansion?(value)
|
|
@@ -688,7 +690,23 @@ module Autoproj
|
|
|
688
690
|
# DEPRECATED. For backward-compatibility only.
|
|
689
691
|
LocalSource = LocalPackageSet
|
|
690
692
|
|
|
691
|
-
|
|
693
|
+
# Class used to store information about a package definition
|
|
694
|
+
class PackageDefinition
|
|
695
|
+
attr_reader :autobuild
|
|
696
|
+
attr_reader :user_blocks
|
|
697
|
+
attr_reader :package_set
|
|
698
|
+
attr_reader :file
|
|
699
|
+
|
|
700
|
+
def initialize(autobuild, package_set, file)
|
|
701
|
+
@autobuild, @package_set, @file =
|
|
702
|
+
autobuild, package_set, file
|
|
703
|
+
@user_blocks = []
|
|
704
|
+
end
|
|
705
|
+
|
|
706
|
+
def add_setup_block(block)
|
|
707
|
+
user_blocks << block
|
|
708
|
+
end
|
|
709
|
+
end
|
|
692
710
|
|
|
693
711
|
# The Manifest class represents the information included in the main
|
|
694
712
|
# manifest file, and allows to manipulate it
|
|
@@ -1027,7 +1045,11 @@ module Autoproj
|
|
|
1027
1045
|
|
|
1028
1046
|
# Register a new package
|
|
1029
1047
|
def register_package(package, block, source, file)
|
|
1030
|
-
|
|
1048
|
+
pkg = PackageDefinition.new(package, source, file)
|
|
1049
|
+
if block
|
|
1050
|
+
pkg.add_setup_block(block)
|
|
1051
|
+
end
|
|
1052
|
+
@packages[package.name] = pkg
|
|
1031
1053
|
end
|
|
1032
1054
|
|
|
1033
1055
|
def definition_source(package_name)
|
data/lib/autoproj/osdeps.rb
CHANGED
|
@@ -545,14 +545,18 @@ fi
|
|
|
545
545
|
gems.delete_if do |name, version|
|
|
546
546
|
version_requirements = Gem::Requirement.new(version || '>= 0')
|
|
547
547
|
installed = Gem.source_index.find_name(name, version_requirements)
|
|
548
|
-
if
|
|
548
|
+
if !installed.empty? && Autobuild.do_update
|
|
549
549
|
# Look if we can update the package ...
|
|
550
550
|
dep = Gem::Dependency.new(name, version_requirements)
|
|
551
|
-
available = gem_fetcher.find_matching(dep,
|
|
551
|
+
available = gem_fetcher.find_matching(dep, true, true, OSDependencies.gem_with_prerelease)
|
|
552
552
|
installed_version = installed.map(&:version).max
|
|
553
553
|
available_version = available.map { |(name, v), source| v }.max
|
|
554
554
|
if !available_version
|
|
555
|
-
|
|
555
|
+
if version
|
|
556
|
+
raise ConfigError.new, "cannot find any gem with the name '#{name}' and version #{version}"
|
|
557
|
+
else
|
|
558
|
+
raise ConfigError.new, "cannot find any gem with the name '#{name}'"
|
|
559
|
+
end
|
|
556
560
|
end
|
|
557
561
|
needs_update = (available_version > installed_version)
|
|
558
562
|
!needs_update
|
|
@@ -734,6 +738,14 @@ with the corresponding option (--all, --ruby, --os or --none).
|
|
|
734
738
|
nil
|
|
735
739
|
end
|
|
736
740
|
|
|
741
|
+
def installs_os_packages?
|
|
742
|
+
osdeps_mode == HANDLE_ALL || osdeps_mode == HANDLE_OS
|
|
743
|
+
end
|
|
744
|
+
|
|
745
|
+
def installs_ruby_packages?
|
|
746
|
+
osdeps_mode == HANDLE_ALL || osdeps_mode == HANDLE_RUBY
|
|
747
|
+
end
|
|
748
|
+
|
|
737
749
|
def osdeps_interaction(osdeps, os_packages, shell_script, silent)
|
|
738
750
|
if !OSDependencies.supported_operating_system?
|
|
739
751
|
if silent
|
data/lib/autoproj/version.rb
CHANGED
data/shell/autoproj_bash
CHANGED
data/shell/autoproj_zsh
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: autoproj
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 1
|
|
5
5
|
prerelease: false
|
|
6
6
|
segments:
|
|
7
7
|
- 1
|
|
8
8
|
- 7
|
|
9
|
-
-
|
|
10
|
-
version: 1.7.
|
|
9
|
+
- 5
|
|
10
|
+
version: 1.7.5
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Sylvain Joyeux
|
|
@@ -15,7 +15,7 @@ autorequire:
|
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
17
|
|
|
18
|
-
date: 2011-02-
|
|
18
|
+
date: 2011-02-02 00:00:00 +01:00
|
|
19
19
|
default_executable:
|
|
20
20
|
dependencies:
|
|
21
21
|
- !ruby/object:Gem::Dependency
|
|
@@ -174,7 +174,6 @@ description: |-
|
|
|
174
174
|
email:
|
|
175
175
|
- sylvain.joyeux@dfki.de
|
|
176
176
|
executables:
|
|
177
|
-
- amake
|
|
178
177
|
- autolocate
|
|
179
178
|
- autoproj
|
|
180
179
|
- autoproj_bootstrap
|
|
@@ -191,7 +190,6 @@ files:
|
|
|
191
190
|
- Manifest.txt
|
|
192
191
|
- README.txt
|
|
193
192
|
- Rakefile
|
|
194
|
-
- bin/amake
|
|
195
193
|
- bin/autolocate
|
|
196
194
|
- bin/autoproj
|
|
197
195
|
- bin/autoproj_bootstrap
|