autoproj 1.6.1.b1 → 1.6.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +3 -2
- data/doc/guide/src/autoproj_bootstrap +44 -31
- data/lib/autoproj/cmdline.rb +8 -4
- data/lib/autoproj/osdeps.rb +5 -5
- data/lib/autoproj/version.rb +1 -1
- metadata +7 -10
data/History.txt
CHANGED
@@ -2,8 +2,9 @@
|
|
2
2
|
* fix a limitation of giving directories on the command line. Before, only
|
3
3
|
packages that were explicitely listed in the layout would be selected. Now,
|
4
4
|
all packages are looked for -- even
|
5
|
-
* fix Fedora and other flavors of Linux being (wrongly) detected as
|
6
|
-
|
5
|
+
* fix Fedora and other flavors of Linux being (wrongly) detected as supported
|
6
|
+
OSes
|
7
|
+
* fix answering 'wait' at bootstrap time. This was rejected later on.
|
7
8
|
|
8
9
|
= Version 1.6.0
|
9
10
|
* starting this version, autoproj becomes the official build system for the
|
@@ -191,6 +191,15 @@ module Autoproj
|
|
191
191
|
end
|
192
192
|
end
|
193
193
|
|
194
|
+
# Returns true if it is possible to install packages for the operating
|
195
|
+
# system on which we are installed
|
196
|
+
def self.supported_operating_system?
|
197
|
+
osdef = operating_system
|
198
|
+
return false if !osdef
|
199
|
+
|
200
|
+
OS_PACKAGE_INSTALL.has_key?(osdef[0])
|
201
|
+
end
|
202
|
+
|
194
203
|
# Autodetects the operating system name and version
|
195
204
|
#
|
196
205
|
# +osname+ is the operating system name, all in lowercase (e.g. ubuntu,
|
@@ -266,10 +275,10 @@ module Autoproj
|
|
266
275
|
EOSCRIPT
|
267
276
|
|
268
277
|
OS_PACKAGE_INSTALL = {
|
269
|
-
'debian' =>
|
270
|
-
'ubuntu' =>
|
271
|
-
'gentoo' =>
|
272
|
-
'arch' =>
|
278
|
+
'debian' => "export DEBIAN_FRONTEND=noninteractive; apt-get install -y '%s'",
|
279
|
+
'ubuntu' => "export DEBIAN_FRONTEND=noninteractive; apt-get install -y '%s'",
|
280
|
+
'gentoo' => "emerge --noreplace '%s'",
|
281
|
+
'arch' => "pacman -Sy --noconfirm '%s'"
|
273
282
|
}
|
274
283
|
|
275
284
|
NO_PACKAGE = 0
|
@@ -396,7 +405,7 @@ module Autoproj
|
|
396
405
|
|
397
406
|
"#! /bin/bash\n" +
|
398
407
|
GAIN_ROOT_ACCESS + "\n" +
|
399
|
-
(OS_PACKAGE_INSTALL[os_name] % [os_packages.join(" ")]) +
|
408
|
+
(OS_PACKAGE_INSTALL[os_name] % [os_packages.join("' '")]) +
|
400
409
|
"\n" + shell_snippets.join("\n")
|
401
410
|
end
|
402
411
|
|
@@ -533,14 +542,14 @@ module Autoproj
|
|
533
542
|
|
534
543
|
# Requests the installation of the given set of packages
|
535
544
|
def install(packages, package_osdeps = Hash.new)
|
536
|
-
|
545
|
+
handled_os = OSDependencies.supported_operating_system?
|
537
546
|
osdeps, gems = partition_packages(packages, package_osdeps)
|
538
547
|
gems = filter_uptodate_gems(gems)
|
539
548
|
if osdeps.empty? && gems.empty?
|
540
549
|
return
|
541
550
|
end
|
542
551
|
|
543
|
-
if automatic_osdeps_mode == AUTOMATIC && !
|
552
|
+
if automatic_osdeps_mode == AUTOMATIC && !handled_os && !osdeps.empty?
|
544
553
|
puts
|
545
554
|
puts Autoproj.color("==============================", :bold)
|
546
555
|
puts Autoproj.color("The packages that will be built require some other software to be installed", :bold)
|
@@ -566,7 +575,7 @@ module Autoproj
|
|
566
575
|
end
|
567
576
|
|
568
577
|
if automatic_osdeps_mode == ASK
|
569
|
-
if !
|
578
|
+
if !handled_os
|
570
579
|
if gems.empty?
|
571
580
|
# Nothing we can do, but the users required "ASK".
|
572
581
|
# So, at least, let him press enter
|
@@ -618,7 +627,7 @@ module Autoproj
|
|
618
627
|
|
619
628
|
did_something = false
|
620
629
|
|
621
|
-
if
|
630
|
+
if handled_os && !osdeps.empty?
|
622
631
|
shell_script = generate_os_script(osdeps)
|
623
632
|
if Autoproj.verbose
|
624
633
|
Autoproj.progress "Installing non-ruby OS dependencies with"
|
@@ -756,12 +765,11 @@ EODEFS
|
|
756
765
|
if ENV['AUTOPROJ_AUTOMATIC_OSDEPS']
|
757
766
|
automatic_osdeps = ENV['AUTOPROJ_AUTOMATIC_OSDEPS']
|
758
767
|
else
|
759
|
-
|
760
|
-
if !operating_system
|
768
|
+
if !Autoproj::OSDependencies.supported_operating_system?
|
761
769
|
puts <<-EOT
|
762
770
|
|
763
771
|
autoproj is usually able to handle the installation of operating system packages
|
764
|
-
himself. However, it does not
|
772
|
+
himself. However, it does not handle your operating system (yet), and will
|
765
773
|
therefore have to let you install the packages yourself.
|
766
774
|
|
767
775
|
It can still install the RubyGems packages that are required by the built
|
@@ -807,12 +815,14 @@ else
|
|
807
815
|
automatic_osdeps = true
|
808
816
|
elsif answer == "no"
|
809
817
|
automatic_osdeps = false
|
818
|
+
elsif answer == 'wait'
|
819
|
+
automatic_osdeps = :wait
|
810
820
|
elsif answer == 'ask'
|
811
821
|
automatic_osdeps = :ask
|
812
822
|
elsif answer == 'yes'
|
813
823
|
automatic_osdeps = true
|
814
824
|
else
|
815
|
-
print "invalid answer. Please answer with 'yes', 'no' or 'ask' "
|
825
|
+
print "invalid answer. Please answer with 'yes', 'no', 'wait' or 'ask' "
|
816
826
|
STDOUT.flush
|
817
827
|
end
|
818
828
|
end
|
@@ -853,20 +863,6 @@ rescue Autoproj::ConfigError => e
|
|
853
863
|
exit(1)
|
854
864
|
end
|
855
865
|
|
856
|
-
# If the user specifies "dev" on the command line, install the prerelease
|
857
|
-
# version of autoproj
|
858
|
-
if ARGV.first == "dev"
|
859
|
-
Autoproj::OSDependencies.gem_with_prerelease = true
|
860
|
-
ARGV.shift
|
861
|
-
end
|
862
|
-
begin
|
863
|
-
osdeps_management.install('autoproj')
|
864
|
-
rescue Autoproj::ConfigError => e
|
865
|
-
STDERR.puts "failed: #{e.message}"
|
866
|
-
exit(1)
|
867
|
-
end
|
868
|
-
Autoproj::OSDependencies.gem_with_prerelease = false
|
869
|
-
|
870
866
|
File.open('env.sh', 'w') do |io|
|
871
867
|
io.write <<-EOSHELL
|
872
868
|
export RUBYOPT=-rubygems
|
@@ -875,9 +871,26 @@ export PATH=$GEM_HOME/bin:$PATH
|
|
875
871
|
EOSHELL
|
876
872
|
end
|
877
873
|
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
874
|
+
# If the user specifies "dev" on the command line, install the prerelease
|
875
|
+
# version of autoproj. If it is "localdev", expect him to install autoproj and
|
876
|
+
# run autoproj bootstrap manually.
|
877
|
+
if ARGV.first != "localdev"
|
878
|
+
if ARGV.first == "dev"
|
879
|
+
Autoproj::OSDependencies.gem_with_prerelease = true
|
880
|
+
ARGV.shift
|
881
|
+
end
|
882
|
+
begin
|
883
|
+
osdeps_management.install(['autoproj'])
|
884
|
+
rescue Autoproj::ConfigError => e
|
885
|
+
STDERR.puts "failed: #{e.message}"
|
886
|
+
exit(1)
|
887
|
+
end
|
888
|
+
Autoproj::OSDependencies.gem_with_prerelease = false
|
889
|
+
|
890
|
+
ENV['AUTOPROJ_AUTOMATIC_OSDEPS'] = automatic_osdeps.to_s
|
891
|
+
if !system('autoproj', 'bootstrap', *ARGV)
|
892
|
+
STDERR.puts "ERROR: failed to run autoproj bootstrap #{ARGV.join(", ")}"
|
893
|
+
exit 1
|
894
|
+
end
|
882
895
|
end
|
883
896
|
|
data/lib/autoproj/cmdline.rb
CHANGED
@@ -588,10 +588,14 @@ where 'mode' is one of:
|
|
588
588
|
end
|
589
589
|
opts.on("--os", "displays the operating system as detected by autoproj") do
|
590
590
|
os = OSDependencies.operating_system
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
puts "
|
591
|
+
if !os
|
592
|
+
puts "no information about that OS"
|
593
|
+
else
|
594
|
+
puts "name: #{os[0]}"
|
595
|
+
puts "version:"
|
596
|
+
os[1].each do |version_name|
|
597
|
+
puts " #{version_name}"
|
598
|
+
end
|
595
599
|
end
|
596
600
|
exit 0
|
597
601
|
end
|
data/lib/autoproj/osdeps.rb
CHANGED
@@ -189,10 +189,10 @@ module Autoproj
|
|
189
189
|
EOSCRIPT
|
190
190
|
|
191
191
|
OS_PACKAGE_INSTALL = {
|
192
|
-
'debian' =>
|
193
|
-
'ubuntu' =>
|
194
|
-
'gentoo' =>
|
195
|
-
'arch' =>
|
192
|
+
'debian' => "export DEBIAN_FRONTEND=noninteractive; apt-get install -y '%s'",
|
193
|
+
'ubuntu' => "export DEBIAN_FRONTEND=noninteractive; apt-get install -y '%s'",
|
194
|
+
'gentoo' => "emerge --noreplace '%s'",
|
195
|
+
'arch' => "pacman -Sy --noconfirm '%s'"
|
196
196
|
}
|
197
197
|
|
198
198
|
NO_PACKAGE = 0
|
@@ -319,7 +319,7 @@ module Autoproj
|
|
319
319
|
|
320
320
|
"#! /bin/bash\n" +
|
321
321
|
GAIN_ROOT_ACCESS + "\n" +
|
322
|
-
(OS_PACKAGE_INSTALL[os_name] % [os_packages.join(" ")]) +
|
322
|
+
(OS_PACKAGE_INSTALL[os_name] % [os_packages.join("' '")]) +
|
323
323
|
"\n" + shell_snippets.join("\n")
|
324
324
|
end
|
325
325
|
|
data/lib/autoproj/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autoproj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 13
|
5
|
+
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 6
|
9
9
|
- 1
|
10
|
-
|
11
|
-
version: 1.6.1.b1
|
10
|
+
version: 1.6.1
|
12
11
|
platform: ruby
|
13
12
|
authors:
|
14
13
|
- Sylvain Joyeux
|
@@ -274,14 +273,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
274
273
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
275
274
|
none: false
|
276
275
|
requirements:
|
277
|
-
- - "
|
276
|
+
- - ">="
|
278
277
|
- !ruby/object:Gem::Version
|
279
|
-
hash:
|
278
|
+
hash: 3
|
280
279
|
segments:
|
281
|
-
-
|
282
|
-
|
283
|
-
- 1
|
284
|
-
version: 1.3.1
|
280
|
+
- 0
|
281
|
+
version: "0"
|
285
282
|
requirements: []
|
286
283
|
|
287
284
|
rubyforge_project: autobuild
|