autobuild 1.6.0.rc3 → 1.6.0.rc4
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/lib/autobuild/configurable.rb +3 -3
- data/lib/autobuild/exceptions.rb +14 -2
- data/lib/autobuild/import/cvs.rb +2 -2
- data/lib/autobuild/import/darcs.rb +1 -1
- data/lib/autobuild/import/git.rb +5 -5
- data/lib/autobuild/import/svn.rb +3 -3
- data/lib/autobuild/importer.rb +1 -1
- data/lib/autobuild/package.rb +3 -3
- data/lib/autobuild/packages/autotools.rb +1 -1
- data/lib/autobuild/packages/cmake.rb +1 -1
- data/lib/autobuild/packages/orogen.rb +1 -3
- data/lib/autobuild/subcommand.rb +1 -1
- data/lib/autobuild/version.rb +1 -1
- metadata +4 -4
|
@@ -44,8 +44,8 @@ module Autobuild
|
|
|
44
44
|
@builddir = 'build'
|
|
45
45
|
|
|
46
46
|
def builddir=(new)
|
|
47
|
-
raise ConfigException, "absolute builddirs are not supported" if (Pathname.new(new).absolute?)
|
|
48
|
-
raise ConfigException, "builddir must be non-empty" if new.empty?
|
|
47
|
+
raise ConfigException.new(self), "absolute builddirs are not supported" if (Pathname.new(new).absolute?)
|
|
48
|
+
raise ConfigException.new(self), "builddir must be non-empty" if new.empty?
|
|
49
49
|
@builddir = new
|
|
50
50
|
end
|
|
51
51
|
# Returns the absolute builddir
|
|
@@ -109,7 +109,7 @@ module Autobuild
|
|
|
109
109
|
# Configure the builddir directory before starting make
|
|
110
110
|
def configure
|
|
111
111
|
if File.exists?(builddir) && !File.directory?(builddir)
|
|
112
|
-
raise ConfigException, "#{builddir} already exists but is not a directory"
|
|
112
|
+
raise ConfigException.new(self, 'configure'), "#{builddir} already exists but is not a directory"
|
|
113
113
|
end
|
|
114
114
|
FileUtils.mkdir_p builddir if !File.directory?(builddir)
|
|
115
115
|
|
data/lib/autobuild/exceptions.rb
CHANGED
|
@@ -15,10 +15,22 @@ module Autobuild
|
|
|
15
15
|
|
|
16
16
|
alias :exception_message :to_s
|
|
17
17
|
def to_s
|
|
18
|
+
dir =
|
|
19
|
+
if target.respond_to?(:srcdir)
|
|
20
|
+
"(#{target.srcdir})"
|
|
21
|
+
else
|
|
22
|
+
puts target.inspect
|
|
23
|
+
end
|
|
24
|
+
target_name =
|
|
25
|
+
if target.respond_to?(:name)
|
|
26
|
+
target.name
|
|
27
|
+
else target.to_str
|
|
28
|
+
end
|
|
29
|
+
|
|
18
30
|
if target && phase
|
|
19
|
-
"#{
|
|
31
|
+
"#{target_name}#{dir}: failed in #{phase} phase\n #{super}"
|
|
20
32
|
elsif target
|
|
21
|
-
"#{
|
|
33
|
+
"#{target_name}#{dir}: #{super}"
|
|
22
34
|
else
|
|
23
35
|
super
|
|
24
36
|
end
|
data/lib/autobuild/import/cvs.rb
CHANGED
|
@@ -41,7 +41,7 @@ module Autobuild
|
|
|
41
41
|
def update(package) # :nodoc:
|
|
42
42
|
Dir.chdir(package.srcdir) do
|
|
43
43
|
if !File.exists?("#{package.srcdir}/CVS/Root")
|
|
44
|
-
raise ConfigException, "#{package.srcdir} is not a CVS working copy"
|
|
44
|
+
raise ConfigException.new(package, 'import'), "#{package.srcdir} is not a CVS working copy"
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
root = File.open("#{package.srcdir}/CVS/Root") { |io| io.read }.chomp
|
|
@@ -55,7 +55,7 @@ module Autobuild
|
|
|
55
55
|
expected_root = expected_root.gsub /:/, ''
|
|
56
56
|
|
|
57
57
|
if root != expected_root || mod != @module
|
|
58
|
-
raise ConfigException, "checkout in #{package.srcdir} is from #{root}:#{mod}, was expecting #{expected_root}:#{@module}"
|
|
58
|
+
raise ConfigException.new(package, 'import'), "checkout in #{package.srcdir} is from #{root}:#{mod}, was expecting #{expected_root}:#{@module}"
|
|
59
59
|
end
|
|
60
60
|
Subprocess.run(package, :import, @program, 'up', *@options_up)
|
|
61
61
|
end
|
|
@@ -24,7 +24,7 @@ module Autobuild
|
|
|
24
24
|
|
|
25
25
|
def update(package) # :nodoc:
|
|
26
26
|
if !File.directory?( File.join(package.srcdir, '_darcs') )
|
|
27
|
-
raise ConfigException, "#{package.srcdir} is not a Darcs repository"
|
|
27
|
+
raise ConfigException.new(package, 'import'), "#{package.srcdir} is not a Darcs repository"
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
Subprocess.run(package, :import, @program,
|
data/lib/autobuild/import/git.rb
CHANGED
|
@@ -119,7 +119,7 @@ module Autobuild
|
|
|
119
119
|
# repository
|
|
120
120
|
def validate_srcdir(package)
|
|
121
121
|
if !File.directory?(File.join(package.srcdir, '.git'))
|
|
122
|
-
raise ConfigException, "while importing #{package.name}, #{package.srcdir} is not a git repository"
|
|
122
|
+
raise ConfigException.new(package, 'import'), "while importing #{package.name}, #{package.srcdir} is not a git repository"
|
|
123
123
|
end
|
|
124
124
|
end
|
|
125
125
|
|
|
@@ -288,11 +288,11 @@ module Autobuild
|
|
|
288
288
|
def merge_status(fetch_commit, reference_commit = "HEAD")
|
|
289
289
|
common_commit = `git merge-base #{reference_commit} #{fetch_commit}`.chomp
|
|
290
290
|
if $?.exitstatus != 0
|
|
291
|
-
raise PackageException, "failed to find the merge-base between #{reference_commit} and #{fetch_commit}. Are you sure these commits exist ?"
|
|
291
|
+
raise PackageException.new(package, 'import'), "failed to find the merge-base between #{reference_commit} and #{fetch_commit}. Are you sure these commits exist ?"
|
|
292
292
|
end
|
|
293
293
|
head_commit = `git rev-parse #{reference_commit}`.chomp
|
|
294
294
|
if $?.exitstatus != 0
|
|
295
|
-
raise PackageException, "failed to resolve #{reference_commit}. Are you sure this commit, branch or tag exists ?"
|
|
295
|
+
raise PackageException.new(package, 'import'), "failed to resolve #{reference_commit}. Are you sure this commit, branch or tag exists ?"
|
|
296
296
|
end
|
|
297
297
|
|
|
298
298
|
status = if common_commit != fetch_commit
|
|
@@ -334,7 +334,7 @@ module Autobuild
|
|
|
334
334
|
return
|
|
335
335
|
end
|
|
336
336
|
elsif status_to_head.status != Status::SIMPLE_UPDATE
|
|
337
|
-
raise PackageException, "checking out the specified commit #{target_commit} would be a non-simple operation (i.e. the current state of the repository is not a linear relationship with the specified commit), do it manually"
|
|
337
|
+
raise PackageException.new(package, 'import'), "checking out the specified commit #{target_commit} would be a non-simple operation (i.e. the current state of the repository is not a linear relationship with the specified commit), do it manually"
|
|
338
338
|
end
|
|
339
339
|
|
|
340
340
|
status_to_remote = merge_status(target_commit, fetch_commit)
|
|
@@ -373,7 +373,7 @@ module Autobuild
|
|
|
373
373
|
status = merge_status(fetch_commit)
|
|
374
374
|
if status.needs_update?
|
|
375
375
|
if !merge? && status.status == Status::NEEDS_MERGE
|
|
376
|
-
raise PackageException, "the local branch '#{local_branch}' and the remote branch #{branch} of #{package.name} have diverged, and I therefore refuse to update automatically. Go into #{package.srcdir} and either reset the local branch or merge the remote changes"
|
|
376
|
+
raise PackageException.new(package, 'import'), "the local branch '#{local_branch}' and the remote branch #{branch} of #{package.name} have diverged, and I therefore refuse to update automatically. Go into #{package.srcdir} and either reset the local branch or merge the remote changes"
|
|
377
377
|
end
|
|
378
378
|
Subprocess.run(package, :import, Autobuild.tool('git'), 'merge', fetch_commit)
|
|
379
379
|
end
|
data/lib/autobuild/import/svn.rb
CHANGED
|
@@ -42,15 +42,15 @@ module Autobuild
|
|
|
42
42
|
ENV['LC_ALL'] = old_lang
|
|
43
43
|
unless url = svninfo.grep(/^URL: /).first
|
|
44
44
|
if svninfo.grep(/is not a working copy/).empty?
|
|
45
|
-
raise ConfigException, "#{package.srcdir} is not a Subversion working copy"
|
|
45
|
+
raise ConfigException.new(package, 'import'), "#{package.srcdir} is not a Subversion working copy"
|
|
46
46
|
else
|
|
47
|
-
raise ConfigException, "Bug: cannot get SVN information for #{package.srcdir}"
|
|
47
|
+
raise ConfigException.new(package, 'import'), "Bug: cannot get SVN information for #{package.srcdir}"
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
url.chomp =~ /URL: (.+)/
|
|
51
51
|
source = $1
|
|
52
52
|
if source != @source
|
|
53
|
-
raise ConfigException, "current checkout found at #{package.srcdir} is from #{source}, was expecting #{@source}"
|
|
53
|
+
raise ConfigException.new(package, 'import'), "current checkout found at #{package.srcdir} is from #{source}, was expecting #{@source}"
|
|
54
54
|
end
|
|
55
55
|
Subprocess.run(package, :import, @program, 'up', "--non-interactive", *@options_up)
|
|
56
56
|
}
|
data/lib/autobuild/importer.rb
CHANGED
|
@@ -162,7 +162,7 @@ class Importer
|
|
|
162
162
|
end
|
|
163
163
|
|
|
164
164
|
elsif File.exists?(srcdir)
|
|
165
|
-
raise ConfigException, "#{srcdir} exists but is not a directory"
|
|
165
|
+
raise ConfigException.new(package, 'import'), "#{srcdir} exists but is not a directory"
|
|
166
166
|
else
|
|
167
167
|
perform_checkout(package)
|
|
168
168
|
end
|
data/lib/autobuild/package.rb
CHANGED
|
@@ -454,11 +454,11 @@ module Autobuild
|
|
|
454
454
|
# and installed.
|
|
455
455
|
def depends_on(*packages)
|
|
456
456
|
packages.each do |p|
|
|
457
|
-
raise
|
|
457
|
+
raise ArgumentError, "#{p.inspect} should be a string" if !p.respond_to? :to_str
|
|
458
458
|
p = p.to_str
|
|
459
459
|
next if p == name
|
|
460
460
|
unless pkg = Package[p]
|
|
461
|
-
raise ConfigException.new(
|
|
461
|
+
raise ConfigException.new(self), "package #{p}, listed as a dependency of #{self.name}, is not defined"
|
|
462
462
|
end
|
|
463
463
|
|
|
464
464
|
next if @dependencies.include?(pkg.name)
|
|
@@ -478,7 +478,7 @@ module Autobuild
|
|
|
478
478
|
# listed in +packages+ are aliases for this package.
|
|
479
479
|
def provides(*packages)
|
|
480
480
|
packages.each do |p|
|
|
481
|
-
raise
|
|
481
|
+
raise ArgumentError, "#{p.inspect} should be a string" if !p.respond_to? :to_str
|
|
482
482
|
p = p.to_str
|
|
483
483
|
next if p == name
|
|
484
484
|
next if @provides.include?(name)
|
|
@@ -210,7 +210,7 @@ module Autobuild
|
|
|
210
210
|
elsif confext = %w{.ac .in}.find { |ext| File.exists?("#{conffile}#{ext}") }
|
|
211
211
|
file conffile => "#{conffile}#{confext}"
|
|
212
212
|
else
|
|
213
|
-
raise PackageException.new(
|
|
213
|
+
raise PackageException.new(self, 'prepare'), "neither configure.ac nor configure.in present in #{srcdir}"
|
|
214
214
|
end
|
|
215
215
|
|
|
216
216
|
file conffile do
|
|
@@ -299,7 +299,7 @@ module Autobuild
|
|
|
299
299
|
super do
|
|
300
300
|
in_dir(builddir) do
|
|
301
301
|
if !File.file?(File.join(srcdir, 'CMakeLists.txt'))
|
|
302
|
-
raise ConfigException, "#{srcdir} contains no CMakeLists.txt file"
|
|
302
|
+
raise ConfigException.new(self, 'configure'), "#{srcdir} contains no CMakeLists.txt file"
|
|
303
303
|
end
|
|
304
304
|
|
|
305
305
|
command = [ "cmake", "-DCMAKE_INSTALL_PREFIX=#{prefix}", "-DCMAKE_MODULE_PATH=#{CMake.module_path.join(";")}" ]
|
data/lib/autobuild/subcommand.rb
CHANGED
|
@@ -306,7 +306,7 @@ module Autobuild::Subprocess
|
|
|
306
306
|
end
|
|
307
307
|
|
|
308
308
|
rescue Failed => e
|
|
309
|
-
error = Autobuild::SubcommandFailed.new(
|
|
309
|
+
error = Autobuild::SubcommandFailed.new(target, command.join(" "), logname, e.status)
|
|
310
310
|
error.phase = phase
|
|
311
311
|
raise error, e.message
|
|
312
312
|
end
|
data/lib/autobuild/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: autobuild
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 15424093
|
|
5
5
|
prerelease: 6
|
|
6
6
|
segments:
|
|
7
7
|
- 1
|
|
8
8
|
- 6
|
|
9
9
|
- 0
|
|
10
10
|
- rc
|
|
11
|
-
-
|
|
12
|
-
version: 1.6.0.
|
|
11
|
+
- 4
|
|
12
|
+
version: 1.6.0.rc4
|
|
13
13
|
platform: ruby
|
|
14
14
|
authors:
|
|
15
15
|
- Sylvain Joyeux
|
|
@@ -17,7 +17,7 @@ autorequire:
|
|
|
17
17
|
bindir: bin
|
|
18
18
|
cert_chain: []
|
|
19
19
|
|
|
20
|
-
date: 2012-
|
|
20
|
+
date: 2012-04-11 00:00:00 Z
|
|
21
21
|
dependencies:
|
|
22
22
|
- !ruby/object:Gem::Dependency
|
|
23
23
|
name: rake
|