autobuild 0.6.3 → 0.6.4

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,13 @@
1
+ == Version 0.6.4
2
+
3
+ This is a bugfix release
4
+
5
+ * More checks for working copy sanity: check that the target working copy
6
+ has been created by the right tools before doing anything. Update test
7
+ suite so that these parts of the importers is tested
8
+ * Since we grep 'svn info' output, make sure that its output will be in
9
+ english by setting LC_ALL to C
10
+
1
11
  == Version 0.6.3
2
12
 
3
13
  * CVS and SVN importing plugins check that the current working copy comes from
@@ -1,13 +1,18 @@
1
- bin/autobuild
2
1
  Changes.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ TODO
6
+ bin/autobuild
7
+ lib/autobuild.rb
3
8
  lib/autobuild/config.rb
4
9
  lib/autobuild/environment.rb
5
10
  lib/autobuild/exceptions.rb
6
11
  lib/autobuild/import/cvs.rb
7
12
  lib/autobuild/import/darcs.rb
8
13
  lib/autobuild/import/svn.rb
9
- lib/autobuild/importer.rb
10
14
  lib/autobuild/import/tar.rb
15
+ lib/autobuild/importer.rb
11
16
  lib/autobuild/package.rb
12
17
  lib/autobuild/packages/autotools.rb
13
18
  lib/autobuild/packages/genom.rb
@@ -15,13 +20,9 @@ lib/autobuild/packages/import.rb
15
20
  lib/autobuild/packages/pkgconfig.rb
16
21
  lib/autobuild/packages/ruby.rb
17
22
  lib/autobuild/pkgconfig.rb
18
- lib/autobuild.rb
19
23
  lib/autobuild/reporting.rb
20
24
  lib/autobuild/subcommand.rb
21
25
  lib/autobuild/timestamps.rb
22
- Manifest.txt
23
- Rakefile
24
- README.txt
25
26
  samples/demo.rb
26
27
  test/data/cvsroot.tar
27
28
  test/data/svnroot.tar
@@ -31,4 +32,3 @@ test/test_import_svn.rb
31
32
  test/test_import_tar.rb
32
33
  test/test_subcommand.rb
33
34
  test/tools.rb
34
- TODO
data/README.txt CHANGED
@@ -1,11 +1,10 @@
1
1
  Autobuild
2
2
  http://autobuild.rubyforge.org
3
3
 
4
- = Introduction
4
+ Copyright (c) 2006-2007
5
+ Sylvain Joyeux <sylvain.joyeux@m4x.org>
5
6
 
6
- == WARNING for 0.5 users
7
- Old configuration files used with autobuild 0.5 aren't accepted by Autobuild 0.6. Since 0.6, Autobuild
8
- uses Ruby for configuration (just like rake does)
7
+ This work is licensed under the GPLv2 license. See License.txt for details
9
8
 
10
9
  == What's autobuild ?
11
10
  Autobuild imports, configures, builds and installs various kinds of software packages.
@@ -13,14 +12,20 @@ It can be used in software development to make sure that nothing is broken in th
13
12
  build process of a set of packages, or can be used as an automated installation tool.
14
13
 
15
14
  Autobuild config files are Ruby scripts which configure rake to
16
- * import the package from a SCM or (optionnaly) updates it
17
- * configures it. This phase can handle code generation, configuration (for instance for autotools-based
18
- packages), ...
15
+ * imports the package from a SCM or (optionnaly) updates it
16
+ * configures it. This phase can handle code generation, configuration (for
17
+ instance for autotools-based packages), ...
19
18
  * build
20
19
  * install
21
20
 
22
- It takes the dependencies between packages into account in its build process, updates the needed environment
23
- variables (+PKG_CONFIG_PATH+, +PATH+, +LD_LIBRARY_PATH+, ...)
21
+ It takes the dependencies between packages into account in its build process,
22
+ updates the needed environment variables (+PKG_CONFIG_PATH+, +PATH+,
23
+ +LD_LIBRARY_PATH+, ...)
24
+
25
+
26
+ == WARNING for 0.5 users
27
+ Old configuration files used with autobuild 0.5 aren't accepted by Autobuild
28
+ 0.6. Since 0.6, Autobuild uses Ruby for configuration (just like rake does)
24
29
 
25
30
  == Available packages
26
31
  === Common usage
data/Rakefile CHANGED
@@ -1,16 +1,17 @@
1
1
  require 'hoe'
2
- require './lib/autobuild'
2
+ require 'lib/autobuild'
3
3
 
4
4
  Hoe.new('autobuild', Autobuild::VERSION) do |p|
5
5
  p.author = "Sylvain Joyeux"
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.url = p.paragraphs_of('README.txt', 0).first.split(/\n/)[1..-1]
10
9
  p.description = p.paragraphs_of('README.txt', 3..5).join("\n\n")
11
- p.changes = p.paragraphs_of("Changes.txt", 1).join("\n\n")
12
- p.extra_deps = [['rake', '>= 0.7.0']]
13
- p.extra_deps << ['rmail']
14
- p.extra_deps << ['daemons']
10
+ p.url = p.paragraphs_of('README.txt', 0).first.split(/\n/)[1..-1]
11
+ p.changes = p.paragraphs_of('Changes.txt', 0..2).join("\n\n")
12
+
13
+ p.extra_deps << ['rake', '>= 0.7.0']
14
+ p.extra_deps << 'rmail'
15
+ p.extra_deps << 'daemons'
15
16
  end
16
17
 
@@ -1,7 +1,8 @@
1
- module Autobuild
2
- VERSION = "0.6.3"
3
- end
4
-
5
1
  require 'autobuild/config'
6
2
  require 'autobuild/reporting'
7
3
  require 'autobuild/package'
4
+
5
+ module Autobuild
6
+ VERSION = "0.6.4" unless defined? Autobuild::VERSION
7
+ end
8
+
@@ -25,7 +25,7 @@ module Autobuild
25
25
  def update(package)
26
26
  Dir.chdir(package.srcdir) do
27
27
  if !File.exists?("#{package.srcdir}/CVS/Root")
28
- raise ConfigException, "#{package.srcdir} does not look like a CVS checkout"
28
+ raise ConfigException, "#{package.srcdir} is not a CVS working copy"
29
29
  end
30
30
 
31
31
  root = File.open("#{package.srcdir}/CVS/Root") { |io| io.read }.chomp
@@ -15,6 +15,10 @@ module Autobuild
15
15
  private
16
16
 
17
17
  def update(package)
18
+ if !File.directory?( File.join(package.srcdir, '_darcs') )
19
+ raise ConfigException, "#{package.srcdir} is not a Darcs repository"
20
+ end
21
+
18
22
  Subprocess.run(package.name, :import, @program,
19
23
  'pull', '--all', "--repodir=#{package.srcdir}", '--set-scripts-executable', @source, *@pull)
20
24
  end
@@ -15,8 +15,17 @@ module Autobuild
15
15
 
16
16
  def update(package)
17
17
  Dir.chdir(package.srcdir) {
18
- url = IO.popen("svn info") { |io| io.readlines }.grep(/^URL: /).first.chomp
19
- url =~ /URL: (.+)/
18
+ old_lang, ENV['LC_ALL'] = ENV['LC_ALL'], 'C'
19
+ svninfo = IO.popen("svn info") { |io| io.readlines }
20
+ ENV['LC_ALL'] = old_lang
21
+ unless url = svninfo.grep(/^URL: /).first
22
+ if svninfo.grep(/is not a working copy/).empty?
23
+ raise ConfigException, "#{package.srcdir} is not a Subversion working copy"
24
+ else
25
+ raise ConfigException, "Bug: cannot get SVN information for #{package.srcdir}"
26
+ end
27
+ end
28
+ url.chomp =~ /URL: (.+)/
20
29
  source = $1
21
30
  if source != @source
22
31
  raise ConfigException, "current checkout found at #{package.srcdir} is from #{source}, was expecting #{@source}"
@@ -32,13 +32,27 @@ class TC_CVSImport < Test::Unit::TestCase
32
32
  # Make an update
33
33
  importer.import(pkg_cvs)
34
34
 
35
- # Make an update fail
35
+ # Make an update fail because the repository does not exist anymore
36
36
  FileUtils.rm_rf cvsroot
37
37
  assert_raise(Autobuild::SubcommandFailed) { importer.import pkg_cvs }
38
38
 
39
- # Make a checkout fail
39
+ # Make a checkout fail because the repository does not exist anymore
40
40
  FileUtils.rm_rf pkg_cvs.srcdir
41
41
  assert_raise(Autobuild::SubcommandFailed) { importer.import pkg_cvs }
42
+
43
+ # Recreate the repository, and make a checkout fail because the
44
+ # WC is not a CVS WC
45
+ TestTools.untar('cvsroot.tar')
46
+ FileUtils.mkdir pkg_cvs.srcdir
47
+ assert_raise(Autobuild::ConfigException) { importer.import pkg_cvs }
48
+
49
+ # Create two repositories, and make the update fail because the
50
+ # WC is of the wrong source
51
+ FileUtils.rm_rf pkg_cvs.srcdir
52
+ importer.import(pkg_cvs)
53
+ FileUtils.mv cvsroot, "#{cvsroot}.2"
54
+ importer = Autobuild.cvs("#{cvsroot}.2", 'cvs')
55
+ assert_raise(Autobuild::ConfigException) { importer.import pkg_cvs }
42
56
  end
43
57
  end
44
58
 
@@ -31,13 +31,25 @@ class TC_SVNImport < Test::Unit::TestCase
31
31
  # Make an update
32
32
  importer.import(pkg_svn)
33
33
 
34
- # Make an update fail
34
+ # Make an update fail because the repository does not exist
35
35
  FileUtils.rm_rf svnrepo
36
36
  assert_raise(SubcommandFailed) { importer.import(pkg_svn) }
37
37
 
38
- # Make a checkout fail
38
+ # Make a checkout fail because the repository does not exist
39
39
  FileUtils.rm_rf pkg_svn.srcdir
40
40
  assert_raise(SubcommandFailed) { importer.import(pkg_svn) }
41
+
42
+ # Recreate the repository and try to update a non-svn directory
43
+ TestTools.untar('svnroot.tar')
44
+ FileUtils.mkdir pkg_svn.srcdir
45
+ assert_raise(ConfigException) { importer.import(pkg_svn) }
46
+
47
+ # Try to update a WC which is of a different repository
48
+ FileUtils.rmdir pkg_svn.srcdir
49
+ importer.import(pkg_svn)
50
+ FileUtils.mv svnrepo, "#{svnrepo}.2"
51
+ importer = Autobuild.svn("file://#{svnrepo}.2/svn")
52
+ assert_raise(ConfigException) { importer.import(pkg_svn) }
41
53
  end
42
54
 
43
55
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
2
+ rubygems_version: 0.9.2
3
3
  specification_version: 1
4
4
  name: autobuild
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.6.3
7
- date: 2006-11-22 00:00:00 +01:00
6
+ version: 0.6.4
7
+ date: 2007-02-12 00:00:00 +01:00
8
8
  summary: Rake-based utility to build and install multiple packages with dependencies
9
9
  require_paths:
10
10
  - lib
11
11
  email: sylvain.joyeux@m4x.org
12
12
  homepage: " http://autobuild.rubyforge.org"
13
13
  rubyforge_project: autobuild
14
- description: == 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 * import 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+, ...)
14
+ description: == 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+, ...)
15
15
  autorequire:
16
16
  default_executable:
17
17
  bindir: bin
@@ -29,16 +29,21 @@ post_install_message:
29
29
  authors:
30
30
  - Sylvain Joyeux
31
31
  files:
32
- - bin/autobuild
33
32
  - Changes.txt
33
+ - Manifest.txt
34
+ - README.txt
35
+ - Rakefile
36
+ - TODO
37
+ - bin/autobuild
38
+ - lib/autobuild.rb
34
39
  - lib/autobuild/config.rb
35
40
  - lib/autobuild/environment.rb
36
41
  - lib/autobuild/exceptions.rb
37
42
  - lib/autobuild/import/cvs.rb
38
43
  - lib/autobuild/import/darcs.rb
39
44
  - lib/autobuild/import/svn.rb
40
- - lib/autobuild/importer.rb
41
45
  - lib/autobuild/import/tar.rb
46
+ - lib/autobuild/importer.rb
42
47
  - lib/autobuild/package.rb
43
48
  - lib/autobuild/packages/autotools.rb
44
49
  - lib/autobuild/packages/genom.rb
@@ -46,13 +51,9 @@ files:
46
51
  - lib/autobuild/packages/pkgconfig.rb
47
52
  - lib/autobuild/packages/ruby.rb
48
53
  - lib/autobuild/pkgconfig.rb
49
- - lib/autobuild.rb
50
54
  - lib/autobuild/reporting.rb
51
55
  - lib/autobuild/subcommand.rb
52
56
  - lib/autobuild/timestamps.rb
53
- - Manifest.txt
54
- - Rakefile
55
- - README.txt
56
57
  - samples/demo.rb
57
58
  - test/data/cvsroot.tar
58
59
  - test/data/svnroot.tar
@@ -62,7 +63,6 @@ files:
62
63
  - test/test_import_tar.rb
63
64
  - test/test_subcommand.rb
64
65
  - test/tools.rb
65
- - TODO
66
66
  test_files:
67
67
  - test/test_import_tar.rb
68
68
  - test/test_subcommand.rb
@@ -106,3 +106,12 @@ dependencies:
106
106
  - !ruby/object:Gem::Version
107
107
  version: 0.0.0
108
108
  version:
109
+ - !ruby/object:Gem::Dependency
110
+ name: hoe
111
+ version_requirement:
112
+ version_requirements: !ruby/object:Gem::Version::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 1.1.7
117
+ version: