autobuild 1.10.0.b4 → 1.10.0.rc1
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.
- checksums.yaml +4 -4
- data/.gitattributes +1 -0
- data/.gitignore +5 -0
- data/.travis.yml +5 -0
- data/Changes.txt +8 -0
- data/Gemfile +3 -0
- data/README.md +54 -0
- data/Rakefile +7 -22
- data/autobuild.gemspec +30 -0
- data/lib/autobuild/environment.rb +27 -4
- data/lib/autobuild/import/archive.rb +5 -9
- data/lib/autobuild/import/git.rb +6 -8
- data/lib/autobuild/importer.rb +67 -0
- data/lib/autobuild/reporting.rb +7 -5
- data/lib/autobuild/test.rb +2 -14
- data/lib/autobuild/version.rb +1 -1
- data/manifest.xml +21 -0
- metadata +67 -48
- data/.gemtest +0 -0
- data/README.txt +0 -181
- data/TODO +0 -9
- data/test/data/cvsroot.tar +0 -0
- data/test/data/gitrepo-with-extra-commit-and-tag.tar +0 -0
- data/test/data/gitrepo.tar +0 -0
- data/test/data/svnroot.tar +0 -0
- data/test/data/tarimport.tar.gz +0 -0
- data/test/import/test_cvs.rb +0 -51
- data/test/import/test_git.rb +0 -446
- data/test/import/test_svn.rb +0 -144
- data/test/import/test_tar.rb +0 -95
- data/test/suite.rb +0 -7
- data/test/test_config.rb +0 -79
- data/test/test_environment.rb +0 -88
- data/test/test_reporting.rb +0 -43
- data/test/test_subcommand.rb +0 -38
data/lib/autobuild/version.rb
CHANGED
data/manifest.xml
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
<package>
|
2
|
+
<description brief="package-level import and build automation">
|
3
|
+
Autobuild is an abstraction layer that provides a package-oriented build
|
4
|
+
system (instead of file-oriented). It assumes that the dirty file-level
|
5
|
+
details are handled by another common build tools such as CMake, but
|
6
|
+
handles building (in parallel) many such packages.
|
7
|
+
|
8
|
+
It also provides the API to import and update packages using common version
|
9
|
+
control systems (git, svn, ...)
|
10
|
+
</description>
|
11
|
+
<maintainer>Sylvain Joyeux/sylvain.joyeux@m4x.org</maintainer>
|
12
|
+
<license>LGPLv3 or later</license>
|
13
|
+
<url>http://rock-robotics.org</url>
|
14
|
+
|
15
|
+
<depend package="tty" />
|
16
|
+
<depend package="pastel" />
|
17
|
+
<depend package="tty" />
|
18
|
+
<depend package="utilrb" />
|
19
|
+
<test_depend package="minitest" />
|
20
|
+
<test_depend package="flexmock" />
|
21
|
+
</package>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autobuild
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.10.0.
|
4
|
+
version: 1.10.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvain Joyeux
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -30,89 +30,122 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '2.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: '2.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: tty
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: 0.2.1
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
54
|
+
version: 0.2.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: pastel
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
61
|
+
version: 0.5.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
68
|
+
version: 0.5.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: flexmock
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 2.0.0
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 2.0.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: minitest
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '5.0'
|
87
90
|
- - "~>"
|
88
91
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
92
|
+
version: '5.0'
|
90
93
|
type: :development
|
91
94
|
prerelease: false
|
92
95
|
version_requirements: !ruby/object:Gem::Requirement
|
93
96
|
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '5.0'
|
94
100
|
- - "~>"
|
95
101
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
102
|
+
version: '5.0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: fakefs
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: simplecov
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
97
131
|
description: Collection of classes to handle build systems (CMake, autotools, ...)
|
98
132
|
and import mechanisms (tarballs, CVS, SVN, git, ...). It also offers a Rake integration
|
99
133
|
to import and build such software packages. It is the backbone of the autoproj (http://rock-robotics.org/autoproj)
|
100
134
|
integrated software project management tool.
|
101
|
-
email:
|
102
|
-
executables:
|
103
|
-
- autobuild
|
135
|
+
email: sylvain.joyeux@m4x.org
|
136
|
+
executables: []
|
104
137
|
extensions: []
|
105
|
-
extra_rdoc_files:
|
106
|
-
- Changes.txt
|
107
|
-
- Manifest.txt
|
108
|
-
- README.txt
|
138
|
+
extra_rdoc_files: []
|
109
139
|
files:
|
110
|
-
- ".
|
140
|
+
- ".gitattributes"
|
141
|
+
- ".gitignore"
|
142
|
+
- ".travis.yml"
|
111
143
|
- Changes.txt
|
144
|
+
- Gemfile
|
112
145
|
- Manifest.txt
|
113
|
-
- README.
|
146
|
+
- README.md
|
114
147
|
- Rakefile
|
115
|
-
-
|
148
|
+
- autobuild.gemspec
|
116
149
|
- bin/autobuild
|
117
150
|
- lib/autobuild.rb
|
118
151
|
- lib/autobuild/build_logfile.rb
|
@@ -149,36 +182,21 @@ files:
|
|
149
182
|
- lib/autobuild/tools.rb
|
150
183
|
- lib/autobuild/utility.rb
|
151
184
|
- lib/autobuild/version.rb
|
185
|
+
- manifest.xml
|
152
186
|
- samples/openrobots.autobuild
|
153
|
-
-
|
154
|
-
- test/data/gitrepo-with-extra-commit-and-tag.tar
|
155
|
-
- test/data/gitrepo.tar
|
156
|
-
- test/data/svnroot.tar
|
157
|
-
- test/data/tarimport.tar.gz
|
158
|
-
- test/import/test_cvs.rb
|
159
|
-
- test/import/test_git.rb
|
160
|
-
- test/import/test_svn.rb
|
161
|
-
- test/import/test_tar.rb
|
162
|
-
- test/suite.rb
|
163
|
-
- test/test_config.rb
|
164
|
-
- test/test_environment.rb
|
165
|
-
- test/test_reporting.rb
|
166
|
-
- test/test_subcommand.rb
|
167
|
-
homepage: http://rock-robotics.org/stable/documentation/autoproj
|
187
|
+
homepage: http://rock-robotics.org
|
168
188
|
licenses:
|
169
189
|
- BSD
|
170
190
|
metadata: {}
|
171
191
|
post_install_message:
|
172
|
-
rdoc_options:
|
173
|
-
- "--main"
|
174
|
-
- README.txt
|
192
|
+
rdoc_options: []
|
175
193
|
require_paths:
|
176
194
|
- lib
|
177
195
|
required_ruby_version: !ruby/object:Gem::Requirement
|
178
196
|
requirements:
|
179
197
|
- - ">="
|
180
198
|
- !ruby/object:Gem::Version
|
181
|
-
version: 1.9.
|
199
|
+
version: 1.9.3
|
182
200
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
183
201
|
requirements:
|
184
202
|
- - ">"
|
@@ -186,8 +204,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
204
|
version: 1.3.1
|
187
205
|
requirements: []
|
188
206
|
rubyforge_project:
|
189
|
-
rubygems_version: 2.2.
|
207
|
+
rubygems_version: 2.2.3
|
190
208
|
signing_key:
|
191
209
|
specification_version: 4
|
192
210
|
summary: Library to handle build systems and import mechanisms
|
193
211
|
test_files: []
|
212
|
+
has_rdoc:
|
data/.gemtest
DELETED
File without changes
|
data/README.txt
DELETED
@@ -1,181 +0,0 @@
|
|
1
|
-
Copyright (c) 2006-2013 Sylvain Joyeux <sylvain.joyeux@m4x.org> and contributors
|
2
|
-
|
3
|
-
* http://rock-robotics.org
|
4
|
-
|
5
|
-
This work is licensed under the BSD license. See License.txt for details
|
6
|
-
|
7
|
-
== What's autobuild ?
|
8
|
-
Autobuild imports, configures, builds and installs various kinds of software packages.
|
9
|
-
It can be used in software development to make sure that nothing is broken in the
|
10
|
-
build process of a set of packages, or can be used as an automated installation tool.
|
11
|
-
|
12
|
-
Autobuild config files are Ruby scripts which configure rake to
|
13
|
-
* imports the package from a SCM or (optionnaly) updates it
|
14
|
-
* configures it. This phase can handle code generation, configuration (for
|
15
|
-
instance for autotools-based packages), ...
|
16
|
-
* build
|
17
|
-
* install
|
18
|
-
|
19
|
-
It takes the dependencies between packages into account in its build process,
|
20
|
-
updates the needed environment variables (+PKG_CONFIG_PATH+, +PATH+,
|
21
|
-
+LD_LIBRARY_PATH+, ...)
|
22
|
-
|
23
|
-
|
24
|
-
== WARNING for 0.5 users
|
25
|
-
Old configuration files used with autobuild 0.5 aren't accepted by Autobuild
|
26
|
-
0.6. Since 0.6, Autobuild uses Ruby for configuration (just like rake does)
|
27
|
-
|
28
|
-
== Available packages
|
29
|
-
=== Common usage
|
30
|
-
All package objects define the following attributes
|
31
|
-
*importer*:: the importer object (see "Available importers" below)
|
32
|
-
*srcdir*:: where the package sources are located. If it is a relative
|
33
|
-
path, it is relative to the value of Autobuild.srcdir. The default is to
|
34
|
-
use the package name.
|
35
|
-
*prefix*:: the directory where the package should be installed. If it is a relative
|
36
|
-
path, it is relative to the value of Autobuild.prefix. The default is to
|
37
|
-
use the package name.
|
38
|
-
|
39
|
-
Each package method (Autobuild.import, Autobuild.autotools, ...) takes either a package
|
40
|
-
name for first argument, or a <tt>name => dependency_array</tt> hash, and take a block which
|
41
|
-
can be used to configure the package. For instance
|
42
|
-
Autobuild.import :my_package do |pkg|
|
43
|
-
pkg.srcdir = 'my_package_dir'
|
44
|
-
end
|
45
|
-
|
46
|
-
Autobuild.import :my_package => [:depends, :depends_also] do |pkg|
|
47
|
-
end
|
48
|
-
|
49
|
-
=== Source only
|
50
|
-
package = Autobuild.import(dependencies) do |pkg|
|
51
|
-
<package configuration>
|
52
|
-
end
|
53
|
-
|
54
|
-
Use +import+ if you need the package sources but don't need to build it. You just need
|
55
|
-
to set +importer+ and +srcdir+. +prefix+ is ignored.
|
56
|
-
|
57
|
-
=== Autotools
|
58
|
-
package = Autobuild.autotools(name, dependencies) do |pkg|
|
59
|
-
<package configuration>
|
60
|
-
end
|
61
|
-
|
62
|
-
Use this to build GNU autotools-based packages. This handles autoconf-only packages as
|
63
|
-
well as those using automake
|
64
|
-
|
65
|
-
Options to give the +configure+ script are given in the +configureflags+ array
|
66
|
-
pkg.configureflags = ['--with-blah', 'FOO=bar' ]
|
67
|
-
|
68
|
-
If you want the files produced during the build to be separated from the source files, set the +builddir+ attribute.
|
69
|
-
For now, it has to be a relative path, relative to the source directory.
|
70
|
-
pkg.builddir = 'build'
|
71
|
-
|
72
|
-
The generation of the configure script uses four programs: +autoheader+, +autoconf+, +aclocal+,
|
73
|
-
+automake+. The default program path can be overriden in the Autotools.programs hash. For
|
74
|
-
instance, to be sure that <tt>automake-1.9</tt> is used <bb>for all packages</bb>, you set
|
75
|
-
|
76
|
-
Autotools.programs['automake'] = 'automake-1.9'
|
77
|
-
|
78
|
-
Autobuild tries to detect what tools it should run, but you can override. Autodetection works
|
79
|
-
as follows:
|
80
|
-
* if a script named +autogen+ or +autogen.sh+ exists in the package source directory, it is run
|
81
|
-
and the other tools are not. The name of this kind of script can be set by calling Autotools#use
|
82
|
-
pkg.use :autogen => 'my_autogen_script'
|
83
|
-
* +autoheader+ is never used by default
|
84
|
-
* +autoconf+ is used if there is <tt>configure.ac</tt> or <tt>configure.in</tt> in the source dir
|
85
|
-
* +aclocal+ is used if +autoconf+ is enabled (either explicitely or by autodetection)
|
86
|
-
* +automake+ is used if there is a <tt>Makefile.am</tt> file in the source dir
|
87
|
-
* you can force to enable or disable any of these steps by calling Autotools#use. Set it to +true+
|
88
|
-
to force its usage, +false+ to disable it or to a string to force the usage of a particular program
|
89
|
-
pkg.use :autogen => false
|
90
|
-
pkg.use :automake => false
|
91
|
-
pkg.use :autoheader => true
|
92
|
-
pkg.use :autoconf => 'my_autoconf_program'
|
93
|
-
|
94
|
-
The 'autogen' option cannot be set to +true+.
|
95
|
-
|
96
|
-
The only program used during the build and install phases is +make+. Its path can be overriden
|
97
|
-
in the Autobuild.programs hash
|
98
|
-
Autobuild.programs['make'] = 'gnumake'
|
99
|
-
|
100
|
-
=== CMake
|
101
|
-
|
102
|
-
A cmake package is defined with
|
103
|
-
|
104
|
-
require 'autobuild/packages/cmake'
|
105
|
-
Autobuild.cmake :package_name do |pkg|
|
106
|
-
<package configuration> ...
|
107
|
-
end
|
108
|
-
|
109
|
-
The only configuration attribute available for CMake package is:
|
110
|
-
+builddir+
|
111
|
-
the directory in which to configure and build the package. It is relative to
|
112
|
-
the package sources. A global value can be defined through Autobuild::CMake.builddir
|
113
|
-
|
114
|
-
Additionally, the #define(name, value) method allows to define configuration variables.
|
115
|
-
|
116
|
-
== Available importers
|
117
|
-
You must set an importer object for each package. The package importer is the +importer+ attribute
|
118
|
-
and is set via <tt>package.importer = my_importer</tt>. An importer +foo+ is defined by the class
|
119
|
-
Autobuild::FooImporter and defines a Autobuild.foo method which creates a new importer object.
|
120
|
-
Importer classes files are in <tt>lib/autobuild/import/</tt>
|
121
|
-
|
122
|
-
=== Tar
|
123
|
-
package.importer = tar(uri[, options])
|
124
|
-
|
125
|
-
Downloads a tarfile at +uri+ and saves it into a local cache directory.
|
126
|
-
The cache directory can be set in the +options+ hash
|
127
|
-
package.importer = tar(uri, :cachedir = '/tmp')
|
128
|
-
|
129
|
-
It is "#{Autobuild.prefix}/cache" by default. The known URI schemes are file://
|
130
|
-
for local files and http:// or ftp:// for remote files. There is currently no
|
131
|
-
way to set passive mode on FTP, since the standard open-uri library does not
|
132
|
-
allow that.
|
133
|
-
|
134
|
-
=== CVS
|
135
|
-
package.importer = cvs(cvsroot, module[, options])
|
136
|
-
|
137
|
-
Where +options+ is an option hash. See also Autobuild::CVSImporter and Autobuild.cvs
|
138
|
-
|
139
|
-
* the default CVS command is +cvs+. It can be changed by
|
140
|
-
Autobuild.programs['cvs'] = 'my_cvs_command'
|
141
|
-
* the default checkout option is <tt>-P</tt>. You can change that by giving a +cvsco+ option
|
142
|
-
cvs cvsroot, module, :cvsco => ['--my', '--cvs', '--options']
|
143
|
-
* the default update option is <tt>-dP</tt>. You can change that by giving a +cvsup+ option
|
144
|
-
cvs cvsroot, module, :cvsup => ['--my', '--cvs', '--options']
|
145
|
-
|
146
|
-
=== Subversion
|
147
|
-
package.importer = svn(url[, options])
|
148
|
-
|
149
|
-
Where +options+ is an option hash. See also Autobuild::SVNImporter and Autobuild.svn
|
150
|
-
|
151
|
-
* the default Subversion command is +svn+. It can be changed by
|
152
|
-
Autobuild.programs['svn'] = 'my_svn_command'
|
153
|
-
* by default, no options are given to checkout. You add some by giving a +svnco+ option
|
154
|
-
svn url, :svnco => ['--my', '--svn', '--options']
|
155
|
-
* by default, no options are given to update. You can add some by giving a +svnup+ option
|
156
|
-
svn url, :svnup => ['--my', '--svn', '--options']
|
157
|
-
|
158
|
-
=== Darcs
|
159
|
-
package.importer = darcs(url[, options])
|
160
|
-
|
161
|
-
Where +options+ is a hash. See also Autobuild::DarcsImporter and Autobuild.darcs
|
162
|
-
|
163
|
-
* the default Darcs command is +darcs+. It can be changed by
|
164
|
-
Autobuild.programs['darcs'] = 'my_svn_command'
|
165
|
-
* by default, no options are given to get. You add some by giving a +get+ option
|
166
|
-
darcs url, :get => ['--my', '--darcs', '--options']
|
167
|
-
* by default, no options are given to pull. You can add some by giving a +pull+ option
|
168
|
-
darcs url, :pull => ['--my', '--darcs', '--options']
|
169
|
-
|
170
|
-
=== Git
|
171
|
-
package.importer = git(url[, branch])
|
172
|
-
|
173
|
-
Imports the given branch (or master if none is given) of the repository at the
|
174
|
-
given URL. The branch is imported as the 'autobuild' remote and fetched into
|
175
|
-
the master local branch.
|
176
|
-
|
177
|
-
= Copyright and license
|
178
|
-
Author:: Sylvain Joyeux <sylvain.joyeux@m4x.org>
|
179
|
-
Copyright:: Copyright (c) 2005-2008 Sylvain Joyeux
|
180
|
-
License:: GPL
|
181
|
-
|
data/TODO
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
TODO list for Autobuild
|
2
|
-
* create HTML log pages
|
3
|
-
* use Logger to be able to remove all non-error output
|
4
|
-
add a disable_packages attribute to Autobuild to disable the build of specific
|
5
|
-
packages. This would allow to use autobuild in scripts where the list of packages
|
6
|
-
is asked to the user
|
7
|
-
* add an --interactive option, which could ask to disable/enable packages before doing
|
8
|
-
the build
|
9
|
-
|
data/test/data/cvsroot.tar
DELETED
Binary file
|
Binary file
|
data/test/data/gitrepo.tar
DELETED
Binary file
|
data/test/data/svnroot.tar
DELETED
Binary file
|
data/test/data/tarimport.tar.gz
DELETED
Binary file
|