autobuild 1.4.2 → 1.4.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.
- data/Changes.txt +6 -0
- data/lib/autobuild.rb +1 -1
- data/lib/autobuild/environment.rb +22 -4
- data/lib/autobuild/import/git.rb +23 -13
- data/lib/autobuild/package.rb +2 -0
- data/lib/autobuild/packages/genom.rb +4 -3
- metadata +2 -2
data/Changes.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
== Version 1.4.3
|
2
|
+
* minor changes in how the shell environment is managed
|
3
|
+
* update LD_LIBRARY_PATH when applicable
|
4
|
+
* fix parsing of genom 'require' statements (fix from Matthieu Gallien)
|
5
|
+
* fix issues with tracking tags and commits (fix from Matthieu Gallien)
|
6
|
+
|
1
7
|
== Version 1.4.2
|
2
8
|
* call subversion with the --non-interactive option, otherwise the build will
|
3
9
|
block indefinitely. Note that git "questions" are properly passed to the user.
|
data/lib/autobuild.rb
CHANGED
@@ -1,22 +1,35 @@
|
|
1
1
|
module Autobuild
|
2
|
+
@inherited_environment = Hash.new
|
2
3
|
@environment = Hash.new
|
3
4
|
class << self
|
5
|
+
attr_reader :inherited_environment
|
4
6
|
attr_reader :environment
|
5
7
|
end
|
6
8
|
|
9
|
+
def self.env_clear(name)
|
10
|
+
environment[name] = nil
|
11
|
+
inherited_environment[name] = nil
|
12
|
+
end
|
13
|
+
|
7
14
|
# Set a new environment variable
|
8
15
|
def self.env_set(name, *values)
|
9
|
-
|
16
|
+
env_clear(name)
|
10
17
|
env_add(name, *values)
|
11
18
|
end
|
12
19
|
# Adds a new value to an environment variable
|
13
20
|
def self.env_add(name, *values)
|
14
21
|
set = if environment.has_key?(name)
|
15
22
|
environment[name]
|
16
|
-
elsif ENV[name]
|
17
|
-
ENV[name].split(':')
|
18
23
|
end
|
19
24
|
|
25
|
+
if !inherited_environment.has_key?(name)
|
26
|
+
if parent_env = ENV[name]
|
27
|
+
inherited_environment[name] = parent_env.split(':')
|
28
|
+
else
|
29
|
+
inherited_environment[name] = Array.new
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
20
33
|
if !set
|
21
34
|
set = Array.new
|
22
35
|
elsif !set.respond_to?(:to_ary)
|
@@ -25,7 +38,9 @@ module Autobuild
|
|
25
38
|
|
26
39
|
values.concat(set)
|
27
40
|
@environment[name] = values
|
28
|
-
|
41
|
+
|
42
|
+
inherited = inherited_environment[name] || Array.new
|
43
|
+
ENV[name] = (values + inherited).join(":")
|
29
44
|
end
|
30
45
|
|
31
46
|
def self.env_add_path(name, path, *paths)
|
@@ -57,6 +72,9 @@ module Autobuild
|
|
57
72
|
def self.update_environment(newprefix)
|
58
73
|
env_add_path('PATH', "#{newprefix}/bin")
|
59
74
|
env_add_path('PKG_CONFIG_PATH', "#{newprefix}/lib/pkgconfig")
|
75
|
+
if File.directory?("#{newprefix}/lib") && !Dir.glob("#{newprefix}/lib/*.so").empty?
|
76
|
+
env_add_path('LD_LIBRARY_PATH', "#{newprefix}/lib")
|
77
|
+
end
|
60
78
|
|
61
79
|
# Validate the new rubylib path
|
62
80
|
new_rubylib = "#{newprefix}/lib"
|
data/lib/autobuild/import/git.rb
CHANGED
@@ -32,15 +32,16 @@ module Autobuild
|
|
32
32
|
if gitopts[:branch] && branch
|
33
33
|
raise ConfigException, "git branch specified with both the option hash and the explicit parameter"
|
34
34
|
end
|
35
|
-
branch = gitopts[:branch] || branch
|
35
|
+
branch = gitopts[:branch] || branch
|
36
36
|
tag = gitopts[:tag]
|
37
37
|
commit = gitopts[:commit]
|
38
38
|
|
39
|
-
if (branch && commit) || (branch &&
|
39
|
+
if (branch && commit) || (branch && tag) || (tag && commit)
|
40
40
|
raise ConfigException, "you can specify only a branch, tag or commit but not two or three at the same time"
|
41
41
|
end
|
42
|
-
@branch = branch
|
43
|
-
@
|
42
|
+
@branch = branch || 'master'
|
43
|
+
@tag = tag
|
44
|
+
@commit = commit
|
44
45
|
super(common)
|
45
46
|
end
|
46
47
|
|
@@ -48,12 +49,17 @@ module Autobuild
|
|
48
49
|
|
49
50
|
# The branch this importer is tracking
|
50
51
|
#
|
51
|
-
# If set, tag
|
52
|
+
# If set, both commit and tag have to be nil.
|
52
53
|
attr_accessor :branch
|
53
|
-
|
54
|
-
# name.
|
54
|
+
|
55
|
+
# The tag we are pointing to. It is a tag name.
|
56
|
+
#
|
57
|
+
# If set, both branch and commit have to be nil.
|
58
|
+
attr_reader :tag
|
59
|
+
|
60
|
+
# The commit we are pointing to. It is a commit ID.
|
55
61
|
#
|
56
|
-
# If set, branch
|
62
|
+
# If set, both branch and tag have to be nil.
|
57
63
|
attr_reader :commit
|
58
64
|
|
59
65
|
# True if it is allowed to merge remote updates automatically. If false
|
@@ -78,7 +84,11 @@ module Autobuild
|
|
78
84
|
def fetch_remote(package)
|
79
85
|
validate_srcdir(package)
|
80
86
|
Dir.chdir(package.srcdir) do
|
81
|
-
|
87
|
+
if commit # we are checking out a specific commit. We just call git fetch
|
88
|
+
Subprocess.run(package.name, :import, Autobuild.tool('git'), 'fetch', repository)
|
89
|
+
else
|
90
|
+
Subprocess.run(package.name, :import, Autobuild.tool('git'), 'fetch', repository, branch || tag)
|
91
|
+
end
|
82
92
|
if File.readable?( File.join('.git', 'FETCH_HEAD') )
|
83
93
|
fetch_commit = File.readlines( File.join('.git', 'FETCH_HEAD') ).
|
84
94
|
delete_if { |l| l =~ /not-for-merge/ }
|
@@ -174,8 +184,8 @@ module Autobuild
|
|
174
184
|
end
|
175
185
|
|
176
186
|
# If we are tracking a commit/tag, just check it out and return
|
177
|
-
if commit
|
178
|
-
Subprocess.run(package.name, :import, Autobuild.tool('git'), 'checkout', commit)
|
187
|
+
if commit || tag
|
188
|
+
Subprocess.run(package.name, :import, Autobuild.tool('git'), 'checkout', commit || tag)
|
179
189
|
return
|
180
190
|
end
|
181
191
|
|
@@ -211,9 +221,9 @@ module Autobuild
|
|
211
221
|
|
212
222
|
Dir.chdir(package.srcdir) do
|
213
223
|
# If we are tracking a commit/tag, just check it out
|
214
|
-
if commit
|
224
|
+
if commit || tag
|
215
225
|
Subprocess.run(package.name, :import, Autobuild.tool('git'),
|
216
|
-
'checkout', commit)
|
226
|
+
'checkout', commit || tag)
|
217
227
|
return
|
218
228
|
end
|
219
229
|
|
data/lib/autobuild/package.rb
CHANGED
@@ -255,6 +255,7 @@ module Autobuild
|
|
255
255
|
# and installed.
|
256
256
|
def depends_on(*packages)
|
257
257
|
packages.each do |p|
|
258
|
+
raise ConfigException, "#{p.inspect} should be a string" if !p.respond_to? :to_str
|
258
259
|
p = p.to_str
|
259
260
|
next if p == name
|
260
261
|
unless Package[p]
|
@@ -271,6 +272,7 @@ module Autobuild
|
|
271
272
|
# listed in +packages+ are aliases for this package.
|
272
273
|
def provides(*packages)
|
273
274
|
packages.each do |p|
|
275
|
+
raise ConfigException, "#{p.inspect} should be a string" if !p.respond_to? :to_str
|
274
276
|
p = p.to_str
|
275
277
|
next if p == name
|
276
278
|
@@provides[p] = self
|
@@ -46,9 +46,10 @@ module Autobuild
|
|
46
46
|
currentBuffer = nil
|
47
47
|
Open3.popen3("#{cpp} #{cpp_options.join(" ")} #{srcdir}/#{name}.gen") do |cin, out, err|
|
48
48
|
out.each_line do |line|
|
49
|
-
if line =~ /^\s*(codels_)?requires\s
|
50
|
-
currentBuffer =
|
51
|
-
|
49
|
+
if line =~ /^\s*(codels_)?requires\s*:.*$/
|
50
|
+
currentBuffer = ""
|
51
|
+
end
|
52
|
+
if currentBuffer
|
52
53
|
currentBuffer += line
|
53
54
|
if currentBuffer =~ /^\s*(codels_)?requires\s*:\s*(\"?\s*[\w\-=><0-9.\s]+\s*\"?(?:\s*,\s*\"?\s*[\w\-=><0-9.\s]+\s*\"?)*);/
|
54
55
|
# Remove the codels_requires lines if -a is given to genom
|
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.4.
|
4
|
+
version: 1.4.3
|
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: 2009-11-
|
12
|
+
date: 2009-11-26 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|