autobuild 1.5.0 → 1.5.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Changes.txt +10 -0
- data/lib/autobuild.rb +1 -1
- data/lib/autobuild/packages/autotools.rb +12 -8
- data/lib/autobuild/reporting.rb +21 -16
- data/lib/autobuild/subcommand.rb +22 -1
- metadata +2 -2
data/Changes.txt
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
== Version 1.5.1
|
2
|
+
* autotools: must run libtool before the other tools
|
3
|
+
* autotools: properly autodetect need for autoconf (autoconf was always enabled
|
4
|
+
before)
|
5
|
+
* logs: properly log everything that happens in one session. The previous
|
6
|
+
behaviour was to have, in each log file, only the last command that has been
|
7
|
+
run.
|
8
|
+
* logs: only attach relevant logs to report mails. The previous behaviour was to
|
9
|
+
attach all log files that were in <prefix>/log
|
10
|
+
|
1
11
|
== Version 1.5.0
|
2
12
|
* now Ruby1.9 compatibility fixes, can be run with ruby1.9.1 on Debian
|
3
13
|
* properly runs if the ruby interpreter is not called 'ruby', as ruby1.9.1
|
data/lib/autobuild.rb
CHANGED
@@ -138,12 +138,23 @@ module Autobuild
|
|
138
138
|
#
|
139
139
|
# Let the user disable the use of autoconf explicitely by using 'false'.
|
140
140
|
# 'nil' means autodetection
|
141
|
-
|
141
|
+
if using[:autoconf].nil?
|
142
|
+
if File.file?(File.join(srcdir, 'configure.in')) || File.file?(File.join(srcdir, 'configure.ac'))
|
143
|
+
using[:autoconf] = true
|
144
|
+
end
|
145
|
+
end
|
142
146
|
using[:aclocal] = using[:autoconf] if using[:aclocal].nil?
|
143
147
|
if using[:automake].nil?
|
144
148
|
using[:automake] = File.exists?(File.join(srcdir, 'Makefile.am'))
|
145
149
|
end
|
146
150
|
|
151
|
+
if using[:libtool].nil?
|
152
|
+
using[:libtool] = File.exists?(File.join(srcdir, 'ltmain.sh'))
|
153
|
+
end
|
154
|
+
if using[:libtool]
|
155
|
+
Subprocess.run(self, 'configure', Autobuild.tool('libtoolize'), '--copy')
|
156
|
+
end
|
157
|
+
|
147
158
|
[ :aclocal, :autoconf, :autoheader, :automake ].each do |tool|
|
148
159
|
if tool_flag = using[tool]
|
149
160
|
tool_program = if tool_flag.respond_to?(:to_str)
|
@@ -154,13 +165,6 @@ module Autobuild
|
|
154
165
|
Subprocess.run(self, 'configure', tool_program)
|
155
166
|
end
|
156
167
|
end
|
157
|
-
|
158
|
-
if using[:libtool].nil?
|
159
|
-
using[:libtool] = File.exists?(File.join(srcdir, 'ltmain.sh'))
|
160
|
-
end
|
161
|
-
if using[:libtool]
|
162
|
-
Subprocess.run(self, 'configure', Autobuild.tool('libtoolize'), '--copy')
|
163
|
-
end
|
164
168
|
end
|
165
169
|
end
|
166
170
|
end
|
data/lib/autobuild/reporting.rb
CHANGED
@@ -74,12 +74,8 @@ module Autobuild
|
|
74
74
|
end
|
75
75
|
|
76
76
|
## Iterate on all log files
|
77
|
-
def self.each_log
|
78
|
-
|
79
|
-
if File.file?(path) && path =~ /\.log$/
|
80
|
-
yield(path)
|
81
|
-
end
|
82
|
-
end
|
77
|
+
def self.each_log(&block)
|
78
|
+
Autobuild.logfiles.each(&block)
|
83
79
|
end
|
84
80
|
end
|
85
81
|
|
@@ -160,16 +156,25 @@ module Autobuild
|
|
160
156
|
end
|
161
157
|
|
162
158
|
# Send the mails
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
159
|
+
if File.directory?(File.dirname(smtp_hostname))
|
160
|
+
File.open(smtp_hostname, 'w') do |io|
|
161
|
+
io.puts "From: #{from_email}"
|
162
|
+
io.puts "To: #{to_email.join(" ")}"
|
163
|
+
io.write RMail::Serialize.write('', mail)
|
164
|
+
end
|
165
|
+
puts "saved notification email in #{smtp_hostname}"
|
166
|
+
else
|
167
|
+
smtp = Net::SMTP.new(smtp_hostname, smtp_port)
|
168
|
+
smtp.start {
|
169
|
+
to_email.each do |email|
|
170
|
+
mail.header.to = email
|
171
|
+
smtp.send_mail RMail::Serialize.write('', mail), from_email, email
|
172
|
+
end
|
173
|
+
}
|
174
|
+
|
175
|
+
# Notify the sending
|
176
|
+
puts "sent notification mail to #{to_email} with source #{from_email}"
|
177
|
+
end
|
173
178
|
end
|
174
179
|
end
|
175
180
|
end
|
data/lib/autobuild/subcommand.rb
CHANGED
@@ -1,8 +1,26 @@
|
|
1
|
+
require 'set'
|
1
2
|
require 'autobuild/exceptions'
|
2
3
|
require 'autobuild/reporting'
|
3
4
|
require 'fcntl'
|
4
5
|
|
5
6
|
module Autobuild
|
7
|
+
@logfiles = Set.new
|
8
|
+
def self.clear_logfiles
|
9
|
+
@logfiles.clear
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.logfiles
|
13
|
+
@logfiles
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.register_logfile(path)
|
17
|
+
@logfiles << path
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.registered_logfile?(logfile)
|
21
|
+
@logfiles.include?(logfile)
|
22
|
+
end
|
23
|
+
|
6
24
|
@parallel_build_level = nil
|
7
25
|
class << self
|
8
26
|
# Sets the level of parallelism during the build
|
@@ -81,7 +99,7 @@ module Autobuild::Subprocess
|
|
81
99
|
else Autobuild.logdir
|
82
100
|
end
|
83
101
|
|
84
|
-
logname = "#{
|
102
|
+
logname = File.join(logdir, "#{target_name}-#{phase}.log")
|
85
103
|
if !File.directory?(File.dirname(logname))
|
86
104
|
FileUtils.mkdir_p File.dirname(logname)
|
87
105
|
end
|
@@ -94,9 +112,12 @@ module Autobuild::Subprocess
|
|
94
112
|
command.reject! { |o| o =~ /^\<(.+)/ }
|
95
113
|
|
96
114
|
open_flag = if Autobuild.keep_oldlogs then 'a'
|
115
|
+
elsif Autobuild.registered_logfile?(logname) then 'a'
|
97
116
|
else 'w'
|
98
117
|
end
|
99
118
|
|
119
|
+
Autobuild.register_logfile(logname)
|
120
|
+
|
100
121
|
status = File.open(logname, open_flag) do |logfile|
|
101
122
|
if Autobuild.keep_oldlogs
|
102
123
|
logfile.puts
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autobuild
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvain Joyeux
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-02-
|
12
|
+
date: 2010-02-07 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|