rake-tasks 0.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.
@@ -0,0 +1,21 @@
1
+ Copyright (c) 2008 Steve Sloan
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
data/README ADDED
@@ -0,0 +1,29 @@
1
+ = Rake Task Collection
2
+
3
+ This package provides a variety of general-purpose Rake tasks.
4
+
5
+ === Requirements
6
+
7
+ All:
8
+ * Rake[http://rake.rubyforge.org] >= 7.0
9
+
10
+ Rake::AutoToolsRPMTask:
11
+ * ruby-rpm[http://rubyforge.org/projects/ruby-rpm] >= 1.2.3
12
+ * ruby-devel, rpm-devel
13
+
14
+ Rake::ExtensionTask:
15
+ * ruby-devel
16
+
17
+ Rake::RPMTask:
18
+ * ruby-rpm[http://rubyforge.org/projects/ruby-rpm] >= 1.2.3
19
+ * ruby-devel, rpm-devel
20
+
21
+ Rake::SWIGExtensionTask:
22
+ * SWIG[http://www.swig.org] >= 1.3.30
23
+
24
+
25
+ Author:: Steve Sloan (mailto:steve@finagle.org)
26
+ Website:: http://rake-tasks.rubyforge.org
27
+ Rubyforge:: http://rubyforge.org/projects/rake-tasks
28
+ Copyright:: Copyright (c) 2008 Steve Sloan
29
+ License:: MIT
@@ -0,0 +1,51 @@
1
+ require 'rake'
2
+ require 'rake/clean'
3
+ require 'rake/rdoctask'
4
+ require 'rake/gempackagetask'
5
+ require 'rake/contrib/rubyforgepublisher'
6
+
7
+ GEM_VERSION = '0.1'
8
+
9
+ docs = Rake::RDocTask.new :rdoc do |rdoc|
10
+ rdoc.rdoc_dir = 'html'
11
+ rdoc.title = "Rake Task Collection"
12
+ rdoc.options += ['--line-numbers', '--inline-source', '--main', 'README']
13
+ rdoc.rdoc_files.include 'README', 'MIT-LICENSE'
14
+ rdoc.rdoc_files.include 'lib/rake/*task.rb'
15
+ end
16
+
17
+ GEM_FILES = docs.rdoc_files + FileList[
18
+ 'Rakefile',
19
+ ]
20
+
21
+ spec = Gem::Specification.new do |s|
22
+ s.platform = Gem::Platform::RUBY
23
+ s.name = 'rake-tasks'
24
+ s.version = GEM_VERSION
25
+ s.date = Date.today.to_s
26
+ s.authors = ['Steve Sloan <steve@finagle.org>']
27
+ s.summary = 'A collection of general-purpose Rake tasks'
28
+ s.files = GEM_FILES
29
+
30
+ # docs
31
+ s.has_rdoc = true
32
+ s.extra_rdoc_files = docs.rdoc_files.reject { |fn| fn =~ /\.rb$/ }.to_a
33
+ s.rdoc_options = docs.options
34
+
35
+ s.add_dependency 'rake', '>= 0.7.0'
36
+ s.add_dependency 'ruby-rpm', '>= 1.2.3' # for rpmtask, autotoolstask
37
+
38
+ # s.description =
39
+ # s.autorequire = ''
40
+ # s.test_files = Dir["test/test_*.rb"]
41
+ # s.extensions << './extconf.rb'
42
+ # s.require_paths << 'ext'
43
+
44
+ end
45
+ Rake::GemPackageTask.new spec do |pkg|
46
+ pkg.need_zip = pkg.need_tar = false
47
+ end
48
+
49
+ task :default => :gem
50
+
51
+ task :cruise => [:clean, :gem]
@@ -0,0 +1,58 @@
1
+ require 'rake/rpmtask'
2
+
3
+ module Rake
4
+ class AutoToolsRPMTask < RPMTask
5
+
6
+ def initialize( args, &blk )
7
+ super
8
+ end
9
+
10
+ def project_dir
11
+ @project_dir ||= File.dirname @spec_path
12
+ end
13
+
14
+ def define_tasks
15
+ task @name => @prereqs do |t|
16
+ re = %r{#{spec.name}-#{spec.version}.*\.tar\.bz2$}
17
+ src = spec.sources.find { |s| re === s.filename }
18
+ next unless src
19
+
20
+ file File.join( project_dir, src.filename ) do |t|
21
+ path = File.join File.basename( File.dirname(t.name) ), File.basename(t.name)
22
+ puts '', '-' * 80,
23
+ "Creating #{path} ...",
24
+ '-' * 80
25
+
26
+ system( "make -C #{File.dirname(t.name)} dist-bzip2" ) and $?.exitstatus.zero? or raise "Make dist-bzip2 failure"
27
+ end.invoke
28
+ end
29
+
30
+ file @spec_path => [File.join(project_dir, 'configure')]
31
+ CLEAN.include @spec_path
32
+ super
33
+ end
34
+ end
35
+ end
36
+
37
+ # create the configure script from configure.in by running autogen.sh
38
+ rule( %r{(^|/)configure$} => [ proc { |f| File.join File.dirname(f), 'configure.in' },
39
+ proc { |f| File.join File.dirname(f), 'autogen.sh' } ] ) do |r|
40
+ dir = File.dirname r.name
41
+ path = File.join File.basename( File.dirname(r.name) ), File.basename(r.name)
42
+ puts '', '-' * 80,
43
+ "Creating #{path} ...",
44
+ '-' * 80
45
+ system( "cd #{dir} && ./autogen.sh" ) and $?.exitstatus.zero? or raise "Autogen failure"
46
+ end
47
+
48
+ # create the .spec file from .spec.in by running configure
49
+ rule '.spec' => '.spec.in' do |r|
50
+ file( File.join( File.dirname(r.name), 'configure' ) ).invoke
51
+
52
+ dir = File.dirname r.name
53
+ path = File.join File.basename( File.dirname(r.name) ), File.basename(r.name)
54
+ puts '', '-' * 80,
55
+ "Creating #{path} ...",
56
+ '-' * 80
57
+ system( "cd #{dir} && ./configure" ) and $?.exitstatus.zero? or raise "Configure failure"
58
+ end
@@ -0,0 +1,188 @@
1
+ require 'rake'
2
+ require 'rake/clean'
3
+ require 'rake/tasklib'
4
+
5
+ # Rake tasks to build Ruby extensions
6
+
7
+ module Rake
8
+
9
+ # Create a build task that will generate a Ruby extension (e.g. .so) from one or more
10
+ # C (.c) or C++ (.cc, .cpp, .cxx) files, and is intended as a replcaement for mkmf.
11
+ # It determines platform-specific settings (e.g. file extensions, compiler flags, etc.)
12
+ # from rbconfig (note: examples assume *nix file extensions).
13
+ #
14
+ # *Note*: Strings vs Symbols
15
+ # In places where filenames are expected (e.g. lib_name and objs), Strings are used
16
+ # as verbatim filenames, while, Symbols have the platform-dependant extension
17
+ # appended (e.g. '.so' for libraries and '.o' for objects). Also, only Symbols
18
+ # have #dir prepended to them.
19
+ #
20
+ # Example:
21
+ # desc "build sample extension"
22
+ # # build sample.so (from foo.{c,cc,cxx,cpp}, through foo.o)
23
+ # Rake::ExtensionTask.new :sample => :foo do |t|
24
+ # # all extension files under this directory
25
+ # t.dir = 'ext'
26
+ # # link libraries (libbar.so)
27
+ # t.link_libs << 'bar'
28
+ # end
29
+ #
30
+ # Author:: Steve Sloan (mailto:steve@finagle.org)
31
+ # Copyright:: Copyright (c) 2006 Steve Sloan
32
+ # License:: GPL
33
+
34
+ class ExtensionTask < Rake::TaskLib
35
+ # The name of the extension
36
+ attr_accessor :name
37
+
38
+ # The filename of the extension library file (e.g. 'extension.so')
39
+ attr_accessor :lib_name
40
+
41
+ # Object files to build and link into the extension.
42
+ attr_accessor :objs
43
+
44
+ # The directory where the extension files (source, output, and
45
+ # intermediate) are stored.
46
+ attr_accessor :dir
47
+
48
+ # Environment configuration -- i.e. CONFIG from rbconfig, with a few other
49
+ # settings, and converted to lowercase-symbols.
50
+ attr_accessor :env
51
+
52
+ # Additional link libraries
53
+ attr_accessor :link_libs
54
+
55
+ # Same arguments as Rake::define_task
56
+ def initialize( args, &blk )
57
+ @env = @@DefaultEnv.dup
58
+ @name, @objs = resolve_args(args)
59
+ set_defaults
60
+ yield self if block_given?
61
+ define_tasks
62
+ end
63
+
64
+ # Generate default values. This is called from initialize _before_ the
65
+ # yield block.
66
+ #
67
+ # Defaults:
68
+ # - lib_name: name.so
69
+ # - objs: name.o (<- name.{c,cxx,cpp,cc})
70
+ # - dir: .
71
+ # - link_libs: <none>
72
+ def set_defaults
73
+ @lib_name ||= name.to_sym
74
+ @objs = [name.to_sym] unless @objs and @objs.any?
75
+ @dir ||= '.'
76
+ @link_libs ||= []
77
+ end
78
+
79
+ # Defines the library task.
80
+ def define_tasks
81
+ output_objs = @objs.collect { |obj| filepath obj, :objext }
82
+ output_lib = filepath lib_name, :dlext
83
+
84
+ task name => output_lib
85
+
86
+ file output_lib => output_objs do |t|
87
+ sh_cmd :ldshared, :dldflags, :ldflags, {'-L' => :libdirs}, '-o', output_lib, output_objs.join(' '),
88
+ link_libs.collect { |l| "-l#{l}" }.join(' '), :libs, :dldlibs, :librubyarg_shared
89
+ end
90
+
91
+ CLEAN.include output_objs
92
+ CLOBBER.include output_lib
93
+ define_rules
94
+ end
95
+
96
+ # Defines C and C++ source-to-object rules, using the source extensions from env.
97
+ def define_rules
98
+ for ext in env[:c_exts]
99
+ Rake::Task.create_rule '.'+env[:objext] => '.'+ext do |r|
100
+ sh_cmd :cc, :cflags, :cppflags, {'-D' => :defines}, {'-I' => :includedirs}, {'-I' => :topdir},
101
+ '-c', '-o', r.name, r.sources
102
+ end
103
+ end
104
+
105
+ for ext in env[:cpp_exts]
106
+ Rake::Task.create_rule '.'+env[:objext] => '.'+ext do |r|
107
+ sh_cmd :cxx, :cxxflags, :cppflags, {'-D' => :defines}, {'-I' => :includedirs}, {'-I' => :topdir},
108
+ '-o', r.name, '-c', r.sources
109
+ end
110
+ end
111
+ end
112
+
113
+ class << self
114
+ # The default environment for all extensions.
115
+ @@DefaultEnv = {}
116
+ def env
117
+ @@DefaultEnv
118
+ end
119
+ def env=(e)
120
+ @@DefaultEnv = e
121
+ end
122
+
123
+ Config::CONFIG.merge(ENV).each { |k, v| @@DefaultEnv[k.downcase.to_sym] = v }
124
+ @@DefaultEnv = {
125
+ :cxx => 'c++',
126
+ :cxxflags => '',
127
+ :c_exts => ['c'],
128
+ :cpp_exts => ['cc', 'cxx', 'cpp'],
129
+ :includedirs => [],
130
+ :libdirs => [],
131
+ }.update(@@DefaultEnv)
132
+ end
133
+
134
+ protected
135
+
136
+ # Handles convenience filenames:
137
+ # * f (String) => f
138
+ # * f (Symbol) => dir/f.ext
139
+ def filepath( f, ext )
140
+ ext = env[ext] if Symbol === ext
141
+ Symbol === f ? File.join( dir, "#{f}.#{ext}" ) : f
142
+ end
143
+
144
+ # Convenience function for cnstructing command lines for build tools.
145
+ def optify( *opts )
146
+ return optify(*opts.first) if opts.size == 1 and opts.first.kind_of? Array
147
+ opts.collect do |opt|
148
+ case opt
149
+ when String then opt
150
+ when Symbol then optify env[opt]
151
+ when Hash
152
+ opt.collect do |k, v|
153
+ v = env[v] if v.kind_of? Symbol
154
+ if v.kind_of? Array
155
+ optify v.collect { |w| k.to_s + w.to_s }
156
+ elsif v
157
+ k.to_s + v.to_s
158
+ end
159
+ end
160
+ else
161
+ opt.to_s
162
+ end
163
+ end.join(' ').squeeze(' ')
164
+ end
165
+
166
+ def sh_cmd( cmd, *opts )
167
+ sh optify( cmd, *opts )
168
+ end
169
+
170
+ # For some reason, Rake::TaskManager.resolve_args can't be found, so snarf it.
171
+ def resolve_args(args)
172
+ case args
173
+ when Hash
174
+ fail "Too Many Task Names: #{args.keys.join(' ')}" if args.size > 1
175
+ fail "No Task Name Given" if args.size < 1
176
+ task_name = args.keys[0]
177
+ deps = args[task_name]
178
+ deps = [deps] if (String===deps) || (Regexp===deps) || (Proc===deps)
179
+ else
180
+ task_name = args
181
+ deps = []
182
+ end
183
+ [task_name, deps]
184
+ end
185
+
186
+ end
187
+
188
+ end
@@ -0,0 +1,144 @@
1
+ require 'rake/tasklib'
2
+ require 'rake/clean'
3
+
4
+ require 'fileutils'
5
+ require 'rubygems'
6
+ require 'rpm'
7
+
8
+ module RPM
9
+ unless defined? RPMDir
10
+ RPMDir, SRPMDir, SourceDir, BuildDir, BuildNameFmt =
11
+ RPM::expand('%_rpmdir %_srcrpmdir %_sourcedir %_builddir %_build_name_fmt').split
12
+ raise "Unable to find RPM directory" unless RPMDir and ::File.exists? RPMDir
13
+ end
14
+ end
15
+
16
+ # RPM::init_macros *%W{
17
+ # /usr/lib/rpm/macros
18
+ # /usr/lib/rpm/i686-linux/macros
19
+ # /etc/rpm/macros.*
20
+ # /etc/rpm/macros
21
+ # /etc/rpm/i686-linux/macros
22
+ # ~/.rpmmacros
23
+ # }
24
+ # #{ File.join( File.dirname(__FILE__), '../rpmmacros' ) }
25
+
26
+ class RPM::Spec
27
+ attr_reader :name, :path
28
+
29
+ class << RPM::Spec
30
+ alias _spec_open open
31
+ def open( spec_path )
32
+ # need to be in directory of spec file for %{srcdir} to work properly
33
+ Dir.chdir File.dirname(spec_path) do
34
+ spec = _spec_open spec_path
35
+ spec.instance_eval { @path = spec_path }
36
+
37
+ if spec.packages.empty?
38
+ # some specs (i.e. kernel modules) need their sources installed before their specs will properly parse
39
+ raise "Spec file #{spec_path} has no packages" if spec.install_sources.zero?
40
+ spec = _spec_open spec_path
41
+ spec.instance_eval { @path = spec_path }
42
+ end
43
+
44
+ spec
45
+ end
46
+ end
47
+ end
48
+
49
+ def name() @name ||= packages.first.name ; end
50
+ def version() @version ||= packages.first.version.v ; end
51
+ def release() @release ||= packages.first.version.r ; end
52
+
53
+ def install_sources
54
+ self.sources.select do |src|
55
+ src_path = File.join File.dirname(@path), src.filename
56
+ dest_path = File.join RPM::SourceDir, src.filename
57
+ next unless File.exists? src_path
58
+
59
+ file dest_path => src_path do |t|
60
+ puts "#{src_path} -> #{File.dirname dest_path}"
61
+ FileUtils.cp src_path, dest_path
62
+ end.invoke
63
+ true
64
+ end.size
65
+ end
66
+
67
+ def sh_build( flags )
68
+ rpm_opts = "--define='srcdir #{File.dirname @path}'"
69
+ cmd = "rpmbuild #{rpm_opts} -b" + (flags == RPM::BUILD__ALL_PACKAGE ? 'a' : 'b') + " #{@path}"
70
+ system(cmd) ? $?.exitstatus : -1
71
+ end
72
+
73
+ # RPM::Spec.build produces packages with the wrong OS ('gnu-linux' instead of 'linux'),
74
+ # plus other macro weirdness, so use rpmbuild.
75
+ alias build sh_build
76
+
77
+ end
78
+
79
+ class RPM::Package
80
+ def path
81
+ unless @path
82
+ @path = File.join RPM::RPMDir, sprintf( RPM::BuildNameFmt )
83
+
84
+ # kludge to fix incorrect package arch
85
+ @path.sub! 'i686', 'i386' if name != 'kmod-nslink'
86
+ end
87
+ @path
88
+ end
89
+
90
+ def has_sig?
91
+ sprintf( "%{siggpg}" ) != '(none)'
92
+ end
93
+ end
94
+
95
+
96
+ module Rake
97
+ class RPMTask < Rake::TaskLib
98
+
99
+ attr_accessor :name, :spec_path, :build_srpms
100
+
101
+ def initialize( args, &blk )
102
+ @name, @prereqs = args.keys.first, args.values.first
103
+ @spec_path = @prereqs.find { |t| File.extname(t.to_s) == '.spec' }
104
+ @build_srpm = false
105
+
106
+ yield self if block_given?
107
+
108
+ raise "Unable to find spec file for \"#{@name}\"" unless @spec_path
109
+ define_tasks
110
+ end
111
+
112
+ def spec
113
+ unless @spec
114
+ @spec = RPM::Spec.open @spec_path
115
+ raise "Unable to parse #{spec_path}" unless @spec
116
+ end
117
+ @spec
118
+ end
119
+
120
+ def define_tasks
121
+ task @name => @prereqs do |t|
122
+ for rpm in spec.packages
123
+ spec.install_sources
124
+
125
+ file rpm.path => spec.path do |t|
126
+ rpm_names = spec.packages.map { |p| p.name }.join(', ')
127
+ puts '', '-' * 80,
128
+ "Building #{rpm_names} ...",
129
+ '-' * 80
130
+
131
+ flags = @build_srpms ? RPM::BUILD__ALL_PACKAGE : RPM::BUILD__BINARY_PACKAGE
132
+ raise "RPM Build failed" unless spec.build(flags).zero?
133
+ end.invoke
134
+
135
+ # CLOBBER.include pkg.path
136
+ end
137
+ # CLEAN.include File.join( RPM::BuildDir, "#{spec.name}-#{spec.version}" )
138
+
139
+ # CLOBBER.include @spec.sources.map { |s| File.join RPM::SRPMDir, s.filename }
140
+ end
141
+ end
142
+
143
+ end
144
+ end
@@ -0,0 +1,104 @@
1
+ require 'rake'
2
+ require 'rake/extensiontask'
3
+
4
+ module Rake
5
+
6
+ MinSWIGVersion = %w/1 3 30/
7
+
8
+ # Create a build task that will generate a Ruby wrapper extension from
9
+ # SWIG interface definition(s). Requires SWIG[http://www.swig.org] version 1.3.30+.
10
+ #
11
+ # See ExtensionTask for more information.
12
+ #
13
+ # Example (from RDBXML):
14
+ # # dbxml.i -> dbxml_wrap.cc -> dbxml_wrap.o -> dbxml.so
15
+ # Rake::SWIGExtensionTask.new :dbxml do |t|
16
+ # # keep it all under ext/
17
+ # t.dir = 'ext'
18
+ # # dbxml.i includes dbxml_ruby.i so rebuild if it changes
19
+ # t.deps[:dbxml] << :dbxml_ruby
20
+ # # link in dbxml libraries
21
+ # t.link_libs += ['db', 'db_cxx', 'dbxml', 'xquery', 'xerces-c', 'pathan']
22
+ # end
23
+ #
24
+ # Author:: Steve Sloan (mailto:steve@finagle.org)
25
+ # Copyright:: Copyright (c) 2006 Steve Sloan
26
+ # License:: GPL
27
+ class SWIGExtensionTask < ExtensionTask
28
+
29
+ # An Array of interface filenames (Symbol or String) to build and link into
30
+ # the extension.
31
+ attr_accessor :ifaces
32
+
33
+ # A Hash of interface filenames and their dependencies, i.e. files which
34
+ # are not built or linked, but cause the corresponding interface to be
35
+ # rebuild if any of them change.
36
+ attr_accessor :deps
37
+
38
+ # Defaults:
39
+ # - lib_name: name.so
40
+ # - ifaces: name.i
41
+ # - deps: <none>
42
+ # - dir: .
43
+ # - link_libs: <none>
44
+ def set_defaults
45
+ super
46
+ @ifaces ||= [name.to_sym]
47
+ @deps ||= Hash.new []
48
+ @objs = []
49
+ end
50
+
51
+ def define_tasks
52
+ for iface in @ifaces
53
+ deps = @deps[iface]
54
+ iface = filepath(iface, :swigext)
55
+ src = iface.sub(/\.#{env[:swigext]}$/, env[:swig_cppext])
56
+
57
+ deps = [deps] unless deps.kind_of? Enumerable
58
+ if deps and deps.any?
59
+ file src => deps.collect { |dep| filepath(dep, :swigext) } << iface
60
+ end
61
+ CLEAN.include src
62
+ @objs << src.sub(/\.[^.]+$/, '.'+env[:objext])
63
+ end
64
+ super
65
+ end
66
+
67
+ # Add rule for generating C++ wrapper code (_wrap.cc) from SWIG interface definition (.i).
68
+ def define_rules
69
+ verify_swig_version
70
+ super
71
+ Rake::Task.create_rule(
72
+ /#{env[:swig_cppext]}$/ => [proc {|t| t.sub /#{env[:swig_cppext]}$/, '.'+env[:swigext] }]
73
+ ) do |r|
74
+ sh_cmd :swig, :swig_flags, {'-I' => :swig_includedirs}, {'-I' => :includedirs},
75
+ '-o', r.name, r.sources
76
+ end
77
+ end
78
+
79
+ ExtensionTask.env = {
80
+ :swig => 'swig',
81
+ :swigext => 'i',
82
+ :swig_cppext => '_wrap.cc',
83
+ :swig_flags => ['-ruby', '-c++'],
84
+ :swig_includedirs => ['.']
85
+ }.update(ExtensionTask.env)
86
+
87
+ protected
88
+
89
+ # Raise an exception unless we have SWIG version 1.3 or later.
90
+ def verify_swig_version
91
+ @@swig_version ||= IO.popen "#{env[:swig]} -version 2>&1" do |swig|
92
+ banner = swig.readlines.reject { |l| l.strip.empty? }
93
+ banner = banner[0].match(/swig version ([^ ]+)/i)
94
+ banner and banner[1]
95
+ end
96
+
97
+ unless @@swig_version and
98
+ @@swig_version.split('.').zip( MinSWIGVersion ).all? { |a, b| a.to_i >= b }
99
+ raise "Need SWIG version #{MinSWIGVersion.join '.'} or later (have #{@@swig_version || 'none'})"
100
+ end
101
+ end
102
+ end
103
+
104
+ end
metadata ADDED
@@ -0,0 +1,73 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.4
3
+ specification_version: 1
4
+ name: rake-tasks
5
+ version: !ruby/object:Gem::Version
6
+ version: "0.1"
7
+ date: 2008-04-19 00:00:00 -07:00
8
+ summary: A collection of general-purpose Rake tasks
9
+ require_paths:
10
+ - lib
11
+ email:
12
+ homepage:
13
+ rubyforge_project:
14
+ description:
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:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - Steve Sloan <steve@finagle.org>
31
+ files:
32
+ - README
33
+ - MIT-LICENSE
34
+ - lib/rake/extensiontask.rb
35
+ - lib/rake/swigextensiontask.rb
36
+ - lib/rake/autotoolstask.rb
37
+ - lib/rake/rpmtask.rb
38
+ - Rakefile
39
+ test_files: []
40
+
41
+ rdoc_options:
42
+ - --line-numbers
43
+ - --inline-source
44
+ - --main
45
+ - README
46
+ extra_rdoc_files:
47
+ - README
48
+ - MIT-LICENSE
49
+ executables: []
50
+
51
+ extensions: []
52
+
53
+ requirements: []
54
+
55
+ dependencies:
56
+ - !ruby/object:Gem::Dependency
57
+ name: rake
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Version::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 0.7.0
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: ruby-rpm
67
+ version_requirement:
68
+ version_requirements: !ruby/object:Gem::Version::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 1.2.3
73
+ version: