autobuild 1.0.1 → 1.1

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.
@@ -1,3 +1,15 @@
1
+ == Version 1.1
2
+ * Make the CVS importer discard differences on method and username between the
3
+ current root and the configured root
4
+ * Allow to specify exclusions in the importer package, which are used to
5
+ ignore some changes in the source tree. Useful if some packages are built
6
+ inside the imported source tree
7
+ * added the git importer
8
+ * added the cmake package
9
+ * set the current repository as default global prefix and srcdir
10
+ * misc fixes w.r.t. handling dependencies
11
+ * added Autobuild.post_success_message
12
+
1
13
  == Version 1.0.1
2
14
  * The "test suites are there for something" release
3
15
  * Fixes bugs introduced in the last version
@@ -6,15 +6,18 @@ TODO
6
6
  bin/autobuild
7
7
  lib/autobuild.rb
8
8
  lib/autobuild/config.rb
9
+ lib/autobuild/configurable.rb
9
10
  lib/autobuild/environment.rb
10
11
  lib/autobuild/exceptions.rb
11
12
  lib/autobuild/import/cvs.rb
12
13
  lib/autobuild/import/darcs.rb
14
+ lib/autobuild/import/git.rb
13
15
  lib/autobuild/import/svn.rb
14
16
  lib/autobuild/import/tar.rb
15
17
  lib/autobuild/importer.rb
16
18
  lib/autobuild/package.rb
17
19
  lib/autobuild/packages/autotools.rb
20
+ lib/autobuild/packages/cmake.rb
18
21
  lib/autobuild/packages/genom.rb
19
22
  lib/autobuild/packages/import.rb
20
23
  lib/autobuild/packages/pkgconfig.rb
data/README.txt CHANGED
@@ -1,6 +1,7 @@
1
- Copyright (c) 2006-2007 Sylvain Joyeux <sylvain.joyeux@m4x.org>
2
- http://www.rubyforge.org/projects/autobuild
3
- http://autobuild.rubyforge.org/autobuild
1
+ Copyright (c) 2006-2008 Sylvain Joyeux <sylvain.joyeux@m4x.org>
2
+
3
+ * http://www.rubyforge.org/projects/autobuild
4
+ * http://autobuild.rubyforge.org/autobuild
4
5
 
5
6
  This work is licensed under the GPLv2 license. See License.txt for details
6
7
 
@@ -97,6 +98,22 @@ The only program used during the build and install phases is +make+. Its path ca
97
98
  in the Autobuild.programs hash
98
99
  Autobuild.programs['make'] = 'gnumake'
99
100
 
101
+ === CMake
102
+
103
+ A cmake package is defined with
104
+
105
+ require 'autobuild/packages/cmake'
106
+ Autobuild.cmake :package_name do |pkg|
107
+ <package configuration> ...
108
+ end
109
+
110
+ The only configuration attribute available for CMake package is:
111
+ +builddir+
112
+ the directory in which to configure and build the package. It is relative to
113
+ the package sources. A global value can be defined through Autobuild::CMake.builddir
114
+
115
+ Additionally, the #define(name, value) method allows to define configuration variables.
116
+
100
117
  == Available importers
101
118
  You must set an importer object for each package. The package importer is the +importer+ attribute
102
119
  and is set via <tt>package.importer = my_importer</tt>. An importer +foo+ is defined by the class
@@ -151,8 +168,15 @@ Where +options+ is a hash. See also Autobuild::DarcsImporter and Autobuild.darcs
151
168
  * by default, no options are given to pull. You can add some by giving a +pull+ option
152
169
  darcs url, :pull => ['--my', '--darcs', '--options']
153
170
 
171
+ === Git
172
+ package.importer = git(url[, branch])
173
+
174
+ Imports the given branch (or master if none is given) of the repository at the
175
+ given URL. The branch is imported as the 'autobuild' remote and fetched into
176
+ the master local branch.
177
+
154
178
  = Copyright and license
155
179
  Author:: Sylvain Joyeux <sylvain.joyeux@m4x.org>
156
- Copyright:: Copyright (c) 2005-2006 Sylvain Joyeux
180
+ Copyright:: Copyright (c) 2005-2008 Sylvain Joyeux
157
181
  License:: GPL
158
182
 
data/Rakefile CHANGED
@@ -6,9 +6,9 @@ Hoe.new('autobuild', Autobuild::VERSION) do |p|
6
6
  p.email = "sylvain.joyeux@m4x.org"
7
7
 
8
8
  p.summary = 'Rake-based utility to build and install multiple packages with dependencies'
9
- p.description = p.paragraphs_of('README.txt', 3..5).join("\n\n")
10
- p.url = p.paragraphs_of('README.txt', 0).first.split(/\n/)[1..-1]
11
- p.changes = p.paragraphs_of('Changes.txt', 0..1).join("\n\n")
9
+ p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
10
+ p.url = p.paragraphs_of('README.txt', 1).first.split(/\n/)[1..-1]
11
+ p.changes = p.paragraphs_of('Changes.txt', 0).join("\n\n")
12
12
 
13
13
  p.extra_deps << ['rake', '>= 0.7.0']
14
14
  p.extra_deps << 'rmail'
@@ -1,6 +1,10 @@
1
1
  #! /usr/bin/env ruby
2
2
 
3
- require 'daemons'
3
+ begin
4
+ require 'daemons'
5
+ rescue LoadError
6
+ end
7
+
4
8
  require 'autobuild'
5
9
 
6
10
  include Autobuild
@@ -3,6 +3,6 @@ require 'autobuild/reporting'
3
3
  require 'autobuild/package'
4
4
 
5
5
  module Autobuild
6
- VERSION = "1.0.1" unless defined? Autobuild::VERSION
6
+ VERSION = "1.1" unless defined? Autobuild::VERSION
7
7
  end
8
8
 
@@ -11,14 +11,14 @@ end
11
11
  # (see Autobuild::DEFAULT_OPTIONS) for the default values)
12
12
  # nice:: the nice value at which we should spawn subprocesses
13
13
  # srcdir:: the base source directory. If a package defines a relative srcdir, then
14
- # it is defined relatively to Autobuild.srcdir
14
+ # it is defined relatively to Autobuild.srcdir. Defaults to the current directory.
15
15
  # prefix:: the base install directory. If a package defines a relative prefix, then
16
16
  # it is defined relatively to Autobuild.prefix.
17
17
  # verbose:: if true, displays all subprocesses output
18
18
  # debug:: more verbose than 'verbose': displays Rake's debugging output
19
19
  # do_update:: if we should update the packages
20
20
  # do_build:: if we should build the packages
21
- # daemonize:: if the build should go into daemon mode
21
+ # daemonize:: if the build should go into daemon mode (only if the daemons gem is available)
22
22
  # clean_log:: remove all logs before starting the build
23
23
  # packages:: a list of packages to build specifically
24
24
  # default_packages:: the list of packages to build if Autobuild.packages is empty.
@@ -37,7 +37,7 @@ module Autobuild
37
37
  attr_writer :logdir
38
38
  end
39
39
  DEFAULT_OPTIONS = { :nice => 0,
40
- :srcdir => nil, :prefix => nil, :logdir => nil,
40
+ :srcdir => Dir.pwd, :prefix => Dir.pwd, :logdir => nil,
41
41
  :verbose => false, :debug => false, :do_build => true, :do_update => true,
42
42
  :daemonize => false, :packages => [], :default_packages => [] }
43
43
 
@@ -57,7 +57,7 @@ module Autobuild
57
57
  end
58
58
  attr_reader :post_install_handler
59
59
 
60
- def self.apply_post_install(info)
60
+ def self.apply_post_install(name, info)
61
61
  return unless info
62
62
 
63
63
  case info
@@ -81,6 +81,28 @@ module Autobuild
81
81
  # [:port] the port of the SMTP server, defauts to 22
82
82
  # [:only_errors] mail only on errors. Defaults to false.
83
83
  attr_reader :mail
84
+
85
+ # call-seq:
86
+ # post_success_message => string
87
+ # post_success_message "msg" => "msg"
88
+ # post_success_message { } => block
89
+ #
90
+ # Gets or updates a message to be displayed on success. Can either be
91
+ # a string or a block, in which case the block must return the message
92
+ # string.
93
+ def post_success_message(*args, &block)
94
+ if args.empty? && !block
95
+ if @post_success_message.respond_to?(:to_str)
96
+ @post_success_message.to_str
97
+ elsif @post_success_message
98
+ @post_success_message.call
99
+ end
100
+ elsif block
101
+ @post_success_message = block
102
+ else
103
+ @post_success_message = args.first.to_str
104
+ end
105
+ end
84
106
 
85
107
  # The directory in which logs are saved
86
108
  def logdir; @logdir || "#{prefix}/log" end
@@ -118,7 +140,9 @@ module Autobuild
118
140
  puts opts
119
141
  exit
120
142
  end
121
- opts.on("--[no-]daemon", "go into daemon mode") do |@daemonize| end
143
+ if defined? Daemons
144
+ opts.on("--[no-]daemon", "go into daemon mode") do |@daemonize| end
145
+ end
122
146
  opts.on("--[no-]update", "update already checked-out sources") do |@do_update| end
123
147
  opts.on("--[no-]build", "only prepare packages, do not build them") do |@do_build| end
124
148
 
@@ -0,0 +1,101 @@
1
+ require 'pathname'
2
+ require 'autobuild/timestamps'
3
+ require 'autobuild/environment'
4
+ require 'autobuild/package'
5
+ require 'autobuild/subcommand'
6
+ require 'shellwords'
7
+
8
+ module Autobuild
9
+ # Base class for packages that require a configuration + build step.
10
+ #
11
+ # Child classes must provide a #configurestamp file which represents the
12
+ # last configuration step done. This file is updated by a call to
13
+ # #configure (see below)
14
+ #
15
+ # Three new methods are added, which can be reimplemented in child classes:
16
+ # * +configure+ does configure the package. It is ran after all
17
+ # depended-upon packages are installed.
18
+ # * +build+ is ran after +configure+ if the configure stamp and/or the
19
+ # source files have been updated. The #buildstamp stampfile represents when
20
+ # the last build has been done. The build must be done in the #builddir directory.
21
+ # * +install+ is ran after +build+.
22
+ #
23
+ class Configurable < Package
24
+ class << self
25
+ attr_reader :builddir
26
+ def builddir=(new)
27
+ raise ConfigException, "absolute builddirs are not supported" if (Pathname.new(new).absolute?)
28
+ raise ConfigException, "builddir must be non-nil and non-empty" if (new.nil? || new.empty?)
29
+ @builddir = new
30
+ end
31
+ end
32
+ @builddir = 'build'
33
+
34
+ def builddir=(new)
35
+ raise ConfigException, "absolute builddirs are not supported" if (Pathname.new(new).absolute?)
36
+ raise ConfigException, "builddir must be non-empty" if new.empty?
37
+ @builddir = new
38
+ end
39
+ # Returns the absolute builddir
40
+ def builddir; File.expand_path(@builddir || Configurable.builddir, srcdir) end
41
+
42
+ # Build stamp
43
+ # This returns the name of the file which marks when the package has been
44
+ # successfully built for the last time. The path is absolute
45
+ def buildstamp; "#{builddir}/#{STAMPFILE}" end
46
+
47
+ def initialize(options)
48
+ super
49
+ Autobuild.update_environment(prefix)
50
+ end
51
+
52
+ def depends_on(*packages)
53
+ super
54
+ stamps = packages.collect { |p| Package[p.to_s].installstamp }
55
+ file configurestamp => stamps
56
+ end
57
+
58
+ def ensure_dependencies_installed
59
+ dependencies.each do |pkg|
60
+ Rake::Task[Package[pkg].installstamp].invoke
61
+ end
62
+ end
63
+
64
+ def prepare
65
+ file configurestamp do
66
+ ensure_dependencies_installed
67
+ configure
68
+ end
69
+
70
+ source_tree srcdir do |pkg|
71
+ pkg.exclude << Regexp.new("^#{Regexp.quote(builddir)}")
72
+ end
73
+
74
+ file buildstamp => [ srcdir, configurestamp ] do
75
+ ensure_dependencies_installed
76
+ build
77
+ end
78
+
79
+ file installstamp => buildstamp do
80
+ install
81
+ Autobuild.update_environment(prefix)
82
+ end
83
+ end
84
+
85
+ # Configure the builddir directory before starting make
86
+ def configure
87
+ touch_stamp(configurestamp)
88
+ end
89
+
90
+ # Do the build in builddir
91
+ def build
92
+ end
93
+
94
+ # Install the result in prefix
95
+ def install
96
+ touch_stamp(installstamp)
97
+ end
98
+ end
99
+ end
100
+
101
+
@@ -5,7 +5,7 @@ module Autobuild
5
5
  oldpath = ENV[varname]
6
6
  if oldpath.nil? || oldpath.empty?
7
7
  ENV[varname] = path
8
- else
8
+ elsif ENV[varname] !~ /(^|:)#{Regexp.quote(path)}($|:)/
9
9
  ENV[varname] = "#{path}:#{oldpath}"
10
10
  end
11
11
  end
@@ -16,6 +16,11 @@ module Autobuild
16
16
  def self.update_environment(newprefix)
17
17
  pathvar("#{newprefix}/bin", 'PATH')
18
18
  pathvar("#{newprefix}/lib/pkgconfig", 'PKG_CONFIG_PATH')
19
+ pathvar("#{newprefix}/lib/ruby/1.8", 'RUBYLIB')
20
+
21
+ require 'rbconfig'
22
+ ruby_arch = File.basename(Config::CONFIG['archdir'])
23
+ pathvar("#{newprefix}/lib/ruby/1.8/#{ruby_arch}", 'RUBYLIB')
19
24
  end
20
25
  end
21
26
 
@@ -43,8 +43,15 @@ module Autobuild
43
43
  root = File.open("#{package.srcdir}/CVS/Root") { |io| io.read }.chomp
44
44
  mod = File.open("#{package.srcdir}/CVS/Repository") { |io| io.read }.chomp
45
45
 
46
- if root != @root || mod != @module
47
- raise ConfigException, "checkout in #{package.srcdir} is from #{root}:#{mod}, was expecting #{@root}:#{@module}"
46
+ # Remove any :ext: in front of the root
47
+ root = root.gsub /^:ext:/, ''
48
+ expected_root = @root.gsub /^:ext:/, ''
49
+ # Remove the optional ':' between the host and the path
50
+ root = root.gsub /:/, ''
51
+ expected_root = expected_root.gsub /:/, ''
52
+
53
+ if root != expected_root || mod != @module
54
+ raise ConfigException, "checkout in #{package.srcdir} is from #{root}:#{mod}, was expecting #{expected_root}:#{@module}"
48
55
  end
49
56
  Subprocess.run(package.name, :import, @program, 'up', *@options_up)
50
57
  end
@@ -0,0 +1,57 @@
1
+ require 'fileutils'
2
+ require 'autobuild/subcommand'
3
+ require 'autobuild/importer'
4
+
5
+ module Autobuild
6
+ class Git < Importer
7
+ # Creates an importer which tracks the given repository
8
+ # and branch. +source+ is [repository, branch]
9
+ #
10
+ # This importer uses the 'git' tool to perform the
11
+ # import. It defaults to 'svn' and can be configured by
12
+ # doing
13
+ # Autobuild.programs['git'] = 'my_git_tool'
14
+ def initialize(repository, branch = nil, options = {})
15
+ @repository = repository.to_str
16
+ @branch = branch || 'master'
17
+ super(options)
18
+ end
19
+
20
+ attr_accessor :repository
21
+ attr_accessor :branch
22
+
23
+ def update(package)
24
+ Dir.chdir(package.srcdir) do
25
+ if !File.directory?('.git')
26
+ raise "#{package.srcdir} is not a git repository"
27
+ end
28
+
29
+ Subprocess.run(package.name, :import, Autobuild.tool('git'), 'fetch', repository, "#{branch}:master")
30
+ Subprocess.run(package.name, :import, Autobuild.tool('git'), 'checkout', 'master')
31
+ end
32
+ end
33
+
34
+ def checkout(package)
35
+ base_dir = File.expand_path('..', package.srcdir)
36
+ if !File.directory?(base_dir)
37
+ FileUtils.mkdir_p base_dir
38
+ end
39
+
40
+ Subprocess.run(package.name, :import,
41
+ Autobuild.tool('git'), 'clone', '-o', 'autobuild',
42
+ repository, package.srcdir)
43
+
44
+ Dir.chdir(package.srcdir) do
45
+ Subprocess.run(package.name, :import, Autobuild.tool('git'),
46
+ 'reset', '--hard', "autobuild/#{branch}")
47
+ end
48
+ end
49
+ end
50
+
51
+ # Creates a git importer which gets the source for the given repository and branch
52
+ # URL +source+. The allowed values in +options+ are described in SVN.new.
53
+ def self.git(repository, branch, options = {})
54
+ Git.new(repository, branch, options)
55
+ end
56
+ end
57
+
@@ -67,7 +67,7 @@ module Autobuild
67
67
  # Declare the installation stampfile
68
68
  file installstamp do
69
69
  Dir.chdir(srcdir) do
70
- Autobuild.apply_post_install(@post_install)
70
+ Autobuild.apply_post_install(name, @post_install)
71
71
  end
72
72
  end
73
73
  task "#{name}-build" => installstamp
@@ -126,6 +126,10 @@ module Autobuild
126
126
  p = p.to_s
127
127
  @@provides[p] = self
128
128
  task p => name
129
+ task "#{p}-import" => "#{name}-import"
130
+ task "#{p}-prepare" => "#{name}-prepare"
131
+ task "#{p}-build" => "#{name}-build"
132
+ task "#{p}-install" => "#{name}-install"
129
133
  @provides << p
130
134
  end
131
135
  end
@@ -96,8 +96,7 @@ module Autobuild
96
96
  def depends_on(*packages)
97
97
  super
98
98
  stamps = packages.collect { |p| Package[p.to_s].installstamp }
99
- #file "#{builddir}/config.status" => stamps
100
- file buildstamp => stamps
99
+ file "#{builddir}/config.status" => stamps
101
100
  end
102
101
 
103
102
  def ensure_dependencies_installed
@@ -133,7 +132,9 @@ module Autobuild
133
132
  configure
134
133
  end
135
134
 
136
- source_tree srcdir, /^#{Regexp.quote(builddir)}/
135
+ source_tree srcdir do |pkg|
136
+ pkg.exclude << Regexp.new("^#{Regexp.quote(builddir)}")
137
+ end
137
138
  file buildstamp => [ srcdir, "#{builddir}/config.status" ] do
138
139
  ensure_dependencies_installed
139
140
  build
@@ -0,0 +1,89 @@
1
+ require 'autobuild/configurable'
2
+
3
+ module Autobuild
4
+ def self.cmake(options, &block)
5
+ CMake.new(options, &block)
6
+ end
7
+
8
+ class CMake < Configurable
9
+ class << self
10
+ def builddir; @builddir || Configurable.builddir end
11
+ def builddir=(new)
12
+ raise ConfigException, "absolute builddirs are not supported" if (Pathname.new(new).absolute?)
13
+ raise ConfigException, "builddir must be non-nil and non-empty" if (new.nil? || new.empty?)
14
+ @builddir = new
15
+ end
16
+ end
17
+
18
+ attr_reader :defines
19
+
20
+ def configurestamp; File.join(builddir, "CMakeCache.txt") end
21
+
22
+ def initialize(options)
23
+ @defines = Hash.new
24
+ super
25
+ end
26
+
27
+ def define(name, value)
28
+ @defines[name] = value
29
+ end
30
+
31
+ def prepare
32
+ super
33
+
34
+ all_defines = defines.dup
35
+ all_defines['CMAKE_INSTALL_PREFIX'] = prefix
36
+
37
+ if File.exists?(configurestamp)
38
+ cache = File.read(configurestamp)
39
+ did_change = all_defines.any? do |name, value|
40
+ cache_line = cache.find do |line|
41
+ line =~ /^#{name}:/
42
+ end
43
+ if !cache_line || (cache_line.split("=")[1].chomp != value)
44
+ true
45
+ end
46
+ end
47
+ if did_change
48
+ FileUtils.rm configurestamp
49
+ end
50
+ end
51
+ end
52
+
53
+ # Configure the builddir directory before starting make
54
+ def configure
55
+ if File.exists?(builddir) && !File.directory?(builddir)
56
+ raise ConfigException, "#{builddir} already exists but is not a directory"
57
+ end
58
+
59
+ FileUtils.mkdir_p builddir if !File.directory?(builddir)
60
+ Dir.chdir(builddir) do
61
+ command = [ "cmake", "-DCMAKE_INSTALL_PREFIX=#{prefix}" ]
62
+ defines.each do |name, value|
63
+ command << "-D#{name}=#{value}"
64
+ end
65
+ command << srcdir
66
+
67
+ Subprocess.run(name, 'configure', *command)
68
+ touch_stamp configurestamp
69
+ end
70
+ end
71
+
72
+ # Do the build in builddir
73
+ def build
74
+ Dir.chdir(builddir) do
75
+ Subprocess.run(name, 'build', Autobuild.tool(:make))
76
+ end
77
+ touch_stamp(buildstamp)
78
+ end
79
+
80
+ # Install the result in prefix
81
+ def install
82
+ Dir.chdir(builddir) do
83
+ Subprocess.run(name, 'install', Autobuild.tool(:make), 'install')
84
+ end
85
+ touch_stamp(installstamp)
86
+ end
87
+ end
88
+ end
89
+
@@ -10,9 +10,19 @@ module Autobuild
10
10
  def installstamp
11
11
  "#{srcdir}/#{STAMPFILE}"
12
12
  end
13
- def initialize(target)
13
+
14
+ attr_reader :exclude
15
+
16
+ def initialize(*args)
17
+ @exclude = []
14
18
  super
15
- source_tree srcdir, /^#{Regexp.quote(installstamp)}/
19
+ exclude << Regexp.new("^#{Regexp.quote(installstamp)}")
20
+
21
+ source_tree(srcdir) do |pkg|
22
+ pkg.exclude.concat exclude
23
+ exclude.freeze
24
+ end
25
+
16
26
  file installstamp => srcdir do
17
27
  touch_stamp installstamp
18
28
  end
@@ -65,6 +65,9 @@ module Autobuild
65
65
  end
66
66
  def success
67
67
  puts "Build finished successfully at #{Time.now}"
68
+ if Autobuild.post_success_message
69
+ puts Autobuild.post_success_message
70
+ end
68
71
  end
69
72
  end
70
73
 
@@ -98,7 +101,7 @@ module Autobuild
98
101
 
99
102
  def success
100
103
  unless only_errors
101
- send_mail("success")
104
+ send_mail("success", Autobuild.post_success_message || "")
102
105
  end
103
106
  end
104
107
 
@@ -18,6 +18,9 @@ module Autobuild::Subprocess
18
18
 
19
19
  FileUtils.mkdir_p Autobuild.logdir unless File.directory?(Autobuild.logdir)
20
20
  logname = "#{Autobuild.logdir}/#{target}-#{phase}.log"
21
+ if !File.directory?(File.dirname(logname))
22
+ FileUtils.mkdir_p File.dirname(logname)
23
+ end
21
24
 
22
25
  puts "#{target}: running #{command.join(" ")}\n (output goes to #{logname})"
23
26
 
@@ -32,19 +32,25 @@ module Autobuild
32
32
  end
33
33
  }
34
34
 
35
- puts " #{latest}" if Autobuild.debug
35
+ puts " newest file: #{latest_file} at #{latest}" if Autobuild.debug
36
36
  return latest
37
37
  end
38
38
 
39
39
  class SourceTreeTask < Rake::Task
40
40
  attr_accessor :exclude
41
+ def initialize(*args, &block)
42
+ @exclude = []
43
+ super
44
+ end
45
+
41
46
  def timestamp
42
47
  tree_timestamp(name, %r#(?:^|/)(?:CVS|_darcs|\.svn)$#, *@exclude)
43
48
  end
44
49
  end
45
- def source_tree(path, exclude = [], &block)
46
- task = SourceTreeTask.define_task(path, &block)
47
- task.exclude = exclude
50
+ def source_tree(path, &block)
51
+ task = SourceTreeTask.define_task(path)
52
+ block.call(task)
53
+ task
48
54
  end
49
55
 
50
56
  def get_stamp(stampfile)
metadata CHANGED
@@ -1,33 +1,63 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: autobuild
5
3
  version: !ruby/object:Gem::Version
6
- version: 1.0.1
7
- date: 2007-06-22 00:00:00 +02:00
8
- summary: Rake-based utility to build and install multiple packages with dependencies
9
- require_paths:
10
- - lib
11
- email: sylvain.joyeux@m4x.org
12
- homepage: http://www.rubyforge.org/projects/autobuild
13
- rubyforge_project: autobuild
14
- description: Autobuild config files are Ruby scripts which configure rake to * imports the package from a SCM or (optionnaly) updates it * configures it. This phase can handle code generation, configuration (for instance for autotools-based packages), ... * build * install It takes the dependencies between packages into account in its build process, updates the needed environment variables (+PKG_CONFIG_PATH+, +PATH+, +LD_LIBRARY_PATH+, ...) == WARNING for 0.5 users Old configuration files used with autobuild 0.5 aren't accepted by Autobuild 0.6. Since 0.6, Autobuild uses Ruby for configuration (just like rake does)
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: "1.1"
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Sylvain Joyeux
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-06-26 00:00:00 +02:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.7.0
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: rmail
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: "0"
32
+ version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: daemons
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: "0"
41
+ version:
42
+ - !ruby/object:Gem::Dependency
43
+ name: hoe
44
+ version_requirement:
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 1.5.3
50
+ version:
51
+ description: This work is licensed under the GPLv2 license. See License.txt for details == What's autobuild ? Autobuild imports, configures, builds and installs various kinds of software packages. It can be used in software development to make sure that nothing is broken in the build process of a set of packages, or can be used as an automated installation tool. Autobuild config files are Ruby scripts which configure rake to * imports the package from a SCM or (optionnaly) updates it * configures it. This phase can handle code generation, configuration (for instance for autotools-based packages), ... * build * install It takes the dependencies between packages into account in its build process, updates the needed environment variables (+PKG_CONFIG_PATH+, +PATH+, +LD_LIBRARY_PATH+, ...)
52
+ email: sylvain.joyeux@m4x.org
53
+ executables:
54
+ - autobuild
55
+ extensions: []
56
+
57
+ extra_rdoc_files:
58
+ - Changes.txt
59
+ - Manifest.txt
60
+ - README.txt
31
61
  files:
32
62
  - Changes.txt
33
63
  - Manifest.txt
@@ -37,15 +67,18 @@ files:
37
67
  - bin/autobuild
38
68
  - lib/autobuild.rb
39
69
  - lib/autobuild/config.rb
70
+ - lib/autobuild/configurable.rb
40
71
  - lib/autobuild/environment.rb
41
72
  - lib/autobuild/exceptions.rb
42
73
  - lib/autobuild/import/cvs.rb
43
74
  - lib/autobuild/import/darcs.rb
75
+ - lib/autobuild/import/git.rb
44
76
  - lib/autobuild/import/svn.rb
45
77
  - lib/autobuild/import/tar.rb
46
78
  - lib/autobuild/importer.rb
47
79
  - lib/autobuild/package.rb
48
80
  - lib/autobuild/packages/autotools.rb
81
+ - lib/autobuild/packages/cmake.rb
49
82
  - lib/autobuild/packages/genom.rb
50
83
  - lib/autobuild/packages/import.rb
51
84
  - lib/autobuild/packages/pkgconfig.rb
@@ -62,58 +95,35 @@ files:
62
95
  - test/test_import_tar.rb
63
96
  - test/test_subcommand.rb
64
97
  - test/tools.rb
65
- test_files:
66
- - test/test_import_tar.rb
67
- - test/test_subcommand.rb
68
- - test/test_import_svn.rb
69
- - test/test_import_cvs.rb
98
+ has_rdoc: true
99
+ homepage: "* http://autobuild.rubyforge.org/autobuild"
100
+ post_install_message:
70
101
  rdoc_options:
71
102
  - --main
72
103
  - README.txt
73
- extra_rdoc_files:
74
- - Changes.txt
75
- - Manifest.txt
76
- - README.txt
77
- executables:
78
- - autobuild
79
- extensions: []
80
-
104
+ require_paths:
105
+ - lib
106
+ required_ruby_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: "0"
111
+ version:
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: "0"
117
+ version:
81
118
  requirements: []
82
119
 
83
- dependencies:
84
- - !ruby/object:Gem::Dependency
85
- name: rake
86
- version_requirement:
87
- version_requirements: !ruby/object:Gem::Version::Requirement
88
- requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- version: 0.7.0
92
- version:
93
- - !ruby/object:Gem::Dependency
94
- name: rmail
95
- version_requirement:
96
- version_requirements: !ruby/object:Gem::Version::Requirement
97
- requirements:
98
- - - ">"
99
- - !ruby/object:Gem::Version
100
- version: 0.0.0
101
- version:
102
- - !ruby/object:Gem::Dependency
103
- name: daemons
104
- version_requirement:
105
- version_requirements: !ruby/object:Gem::Version::Requirement
106
- requirements:
107
- - - ">"
108
- - !ruby/object:Gem::Version
109
- version: 0.0.0
110
- version:
111
- - !ruby/object:Gem::Dependency
112
- name: hoe
113
- version_requirement:
114
- version_requirements: !ruby/object:Gem::Version::Requirement
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: 1.2.1
119
- version:
120
+ rubyforge_project: autobuild
121
+ rubygems_version: 1.0.1
122
+ signing_key:
123
+ specification_version: 2
124
+ summary: Rake-based utility to build and install multiple packages with dependencies
125
+ test_files:
126
+ - test/test_import_tar.rb
127
+ - test/test_subcommand.rb
128
+ - test/test_import_svn.rb
129
+ - test/test_import_cvs.rb