autobuild 1.0.1 → 1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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