gem2rpm 0.6.0 → 0.7.0

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.
data/AUTHORS CHANGED
@@ -5,8 +5,14 @@ Initiated and maintained by:
5
5
 
6
6
  David Lutterkort lutter@watzmann.net
7
7
 
8
+ Maintained by:
9
+ Vít Ondruch vondruch at gmail dot com
10
+
8
11
  Patches from:
9
12
 
10
13
  Brian Candler B.Candler at pobox dot com
11
14
  Josh Kelley joshkel at gmail dot com
12
15
  Paul Nasrat pauln at truemesh.com
16
+ Chris Ess caess at ithiriel.com
17
+ Matthew Kent mattkent at rubyforge.com
18
+ Michal Fojtík mi at mifo dot sk
data/README CHANGED
@@ -85,4 +85,4 @@ Fedora ruby and rubygem packaging guidelines:
85
85
  http://fedoraproject.org/wiki/Packaging/Ruby
86
86
 
87
87
  Project website
88
- http://rubyforge.org/projects/gem2rpm/
88
+ https://github.com/lutter/gem2rpm/
data/bin/gem2rpm CHANGED
@@ -13,16 +13,17 @@ opts.separator(" Convert ruby Gems to source RPMs and specfiles")
13
13
  opts.separator(" Uses a template to generate the RPM specfile")
14
14
  opts.separator(" from the Gem spec")
15
15
 
16
+ print_template_file = nil
16
17
  template_file = nil
17
18
  output_file = nil
18
19
  local = false
19
20
  srpm = false
20
21
  deps = false
21
22
  nongem = false
23
+ doc_subpackage = true
22
24
 
23
- opts.on("-T", "--default-template", "Print the default template") do |val|
24
- puts Gem2Rpm::TEMPLATE
25
- exit 0
25
+ opts.on("-T", "--current-template", "Print the current template") do |val|
26
+ print_template_file = true
26
27
  end
27
28
  opts.on("-t", "--template TEMPLATE", "Use TEMPLATE for the specfile") do |val|
28
29
  template_file = val
@@ -47,14 +48,10 @@ end
47
48
  opts.on("-n", "--nongem", "Generate a subpackage for non-gem use") do |val|
48
49
  nongem = true
49
50
  end
50
- rest = opts.permute(ARGV)
51
-
52
- if rest.size != 1
53
- $stderr.puts "Missing GEMFILE"
54
- $stderr.puts opts
55
- exit(1)
51
+ opts.on("--no-doc", "Disable document subpackage") do |val|
52
+ doc_subpackage = false
56
53
  end
57
- gemfile = rest[0]
54
+ rest = opts.permute(ARGV)
58
55
 
59
56
  template = nil
60
57
  if template_file.nil?
@@ -70,6 +67,18 @@ else
70
67
  f.close
71
68
  end
72
69
 
70
+ if print_template_file
71
+ puts template
72
+ exit 0
73
+ end
74
+
75
+ if rest.size != 1
76
+ $stderr.puts "Missing GEMFILE"
77
+ $stderr.puts opts
78
+ exit(1)
79
+ end
80
+ gemfile = rest[0]
81
+
73
82
  srpmdir = nil
74
83
  gemname = nil
75
84
  srpmdir = nil
@@ -85,11 +94,11 @@ end
85
94
 
86
95
  # Produce a specfile
87
96
  if output_file.nil?
88
- Gem2Rpm::convert(gemfile, template, $stdout, nongem, local) unless deps
97
+ Gem2Rpm::convert(gemfile, template, $stdout, nongem, local, doc_subpackage) unless deps
89
98
  else
90
99
  begin
91
100
  out = open(output_file, "w")
92
- Gem2Rpm::convert(gemfile, template, out, nongem, local)
101
+ Gem2Rpm::convert(gemfile, template, out, nongem, local, doc_subpackage)
93
102
  ensure
94
103
  out.close()
95
104
  end
@@ -0,0 +1,22 @@
1
+ require 'delegate'
2
+ require 'gem2rpm/helpers'
3
+
4
+ module Gem2Rpm
5
+ class Dependency < SimpleDelegator
6
+ # What does this dependency require?
7
+ def requirement
8
+ r = begin
9
+ super
10
+ rescue
11
+ version_requirements # For RubyGems < 1.3.6
12
+ end
13
+
14
+ Helpers::requirement_versions_to_rpm r
15
+ end
16
+
17
+ # Dependency type. Needs to be explicitly reimplemented.
18
+ def type
19
+ __getobj__.type
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ module Gem2Rpm
2
+ class Distro
3
+ FEDORA = :fedora
4
+ OPENSUSE = :opensuse
5
+ DEFAULT = :default
6
+
7
+ def self.nature
8
+ if !release_files.grep(/fedora/).empty?
9
+ FEDORA
10
+ elsif !release_files.grep(/SuSe/).empty?
11
+ OPENSUSE
12
+ else
13
+ DEFAULT
14
+ end
15
+ end
16
+
17
+ def self.release_files
18
+ @@release_files ||= Dir.glob '/etc/*{_version,-release}*'
19
+ end
20
+ end
21
+ end
22
+
@@ -0,0 +1,31 @@
1
+ module Gem2Rpm
2
+ module Helpers
3
+ # Taken with modification from the word_wrap method in ActionPack.
4
+ # Text::Format does the same thing better.
5
+ def self.word_wrap(text, line_width = 80)
6
+ text.gsub(/\n/, "\n\n").gsub(/(.{1,#{line_width}})(\s+|$)/, "\\1\n").strip
7
+ end
8
+
9
+ # Expands the pesimistic version operator '~>' into equivalent '>=' and
10
+ # '<' pair.
11
+ def self.expand_pessimistic_requirement(requirements)
12
+ requirements.inject([]) do |output, r|
13
+ if r.first == '~>'
14
+ next_version = Gem::Version.create(r.last).bump
15
+ output << ['=>', r.last]
16
+ output << ['<', next_version]
17
+ else
18
+ output << r
19
+ end
20
+ end
21
+ end
22
+
23
+ # Converts Gem::Requirement into array of requirements strings compatible
24
+ # with RPM .spec file.
25
+ def self.requirement_versions_to_rpm(requirement)
26
+ self.expand_pessimistic_requirement(requirement.requirements).map do |op, version|
27
+ version == Gem::Version.new(0) ? "" : "#{op} #{version}"
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,48 @@
1
+ require 'delegate'
2
+ require 'gem2rpm/dependency'
3
+ require 'gem2rpm/helpers'
4
+
5
+ module Gem2Rpm
6
+ class Specification < SimpleDelegator
7
+ # A long description of gem wrapped to 78 characters.
8
+ def description
9
+ Helpers::word_wrap(super.to_s.chomp, 78) + "\n"
10
+ end
11
+
12
+ # A list of Gem::Dependency objects this gem depends on (includes every
13
+ # runtime or development dependency).
14
+ def dependencies
15
+ super.map {|d| Gem2Rpm::Dependency.new d}
16
+ end
17
+
18
+ # List of dependencies that are used for development.
19
+ def development_dependencies
20
+ super.map {|d| Gem2Rpm::Dependency.new d}
21
+ end
22
+
23
+ # List of dependencies that will automatically be activated at runtime.
24
+ def runtime_dependencies
25
+ super.map {|d| Gem2Rpm::Dependency.new d}
26
+ end
27
+
28
+ # The version of Ruby required by the gem. Returns array with
29
+ # empty string if the method is not provided by RubyGems yet.
30
+ def required_ruby_version
31
+ @required_ruby_version ||= begin
32
+ Helpers.requirement_versions_to_rpm(super)
33
+ rescue
34
+ ['']
35
+ end
36
+ end
37
+
38
+ # The RubyGems version required by gem. For RubyGems < 0.9.5 returns only
39
+ # array with empty string. However, this should happen only in rare cases.
40
+ def required_rubygems_version
41
+ @required_rubygems_version ||= begin
42
+ Helpers::requirement_versions_to_rpm(super)
43
+ rescue
44
+ ['']
45
+ end
46
+ end
47
+ end
48
+ end
data/lib/gem2rpm.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'erb'
2
2
  require 'socket'
3
3
  require 'rubygems/format'
4
+ require 'gem2rpm/distro'
5
+ require 'gem2rpm/specification'
4
6
 
5
7
  # Adapt to the differences between rubygems < 1.0.0 and after
6
8
  # Once we can be reasonably certain that everybody has version >= 1.0.0
@@ -12,34 +14,8 @@ if HAS_REMOTE_INSTALLER
12
14
  require 'rubygems/remote_installer'
13
15
  end
14
16
 
15
- # Extend String with a word_wrap method, which we use in the ERB template
16
- # below. Taken with modification from the word_wrap method in ActionPack.
17
- # Text::Format does the smae thing better.
18
- class String
19
- def word_wrap(line_width = 80)
20
- gsub(/\n/, "\n\n").gsub(/(.{1,#{line_width}})(\s+|$)/, "\\1\n").strip
21
- end
22
- end
23
-
24
- module Gem
25
- class Requirement
26
- def rpm_version_transform(version)
27
- if version == "> 0.0.0"
28
- version = ""
29
- end
30
- version
31
- end
32
-
33
- def to_rpm
34
- result = as_list
35
- return result.map { |version| rpm_version_transform(version) }
36
- end
37
-
38
- end
39
- end
40
-
41
17
  module Gem2Rpm
42
- Gem2Rpm::VERSION = "0.6.0"
18
+ Gem2Rpm::VERSION = "0.7.0"
43
19
 
44
20
  if HAS_REMOTE_INSTALLER
45
21
  def self.find_download_url(name, version)
@@ -59,9 +35,9 @@ module Gem2Rpm
59
35
  end
60
36
 
61
37
  def Gem2Rpm.convert(fname, template=TEMPLATE, out=$stdout,
62
- nongem=true, local=false)
38
+ nongem=true, local=false, doc_subpackage = true)
63
39
  format = Gem::Format.from_file_by_path(fname)
64
- spec = format.spec
40
+ spec = Gem2Rpm::Specification.new(format.spec)
65
41
  spec.description ||= spec.summary
66
42
  download_path = ""
67
43
  unless local
@@ -72,7 +48,7 @@ module Gem2Rpm
72
48
  $stderr.puts "#{e.inspect}"
73
49
  end
74
50
  end
75
- template = ERB.new(template, 0, '<>')
51
+ template = ERB.new(template, 0, '-')
76
52
  out.puts template.result(binding)
77
53
  end
78
54
 
@@ -80,107 +56,20 @@ module Gem2Rpm
80
56
  # gem2spec). Taken from RPM macros if present, constructed from system
81
57
  # username and hostname otherwise.
82
58
  def Gem2Rpm.packager()
83
- packager = `rpm --eval '%{packager}'`.chomp
84
- if packager == '' or packager == '%{packager}'
59
+ packager = `rpmdev-packager`.chomp
60
+
61
+ if packager.empty?
62
+ packager = `rpm --eval '%{packager}'`.chomp
63
+ end
64
+
65
+ if packager.empty? or packager == '%{packager}'
85
66
  packager = "#{Etc::getpwnam(Etc::getlogin).gecos} <#{Etc::getlogin}@#{Socket::gethostname}>"
86
67
  end
68
+
87
69
  packager
88
70
  end
89
71
 
90
- TEMPLATE =
91
- %q{# Generated from <%= File::basename(format.gem_path) %> by gem2rpm -*- rpm-spec -*-
92
- %define ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")
93
- %define gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
94
- %define gemname <%= spec.name %>
95
- %define geminstdir %{gemdir}/gems/%{gemname}-%{version}
96
-
97
- Summary: <%= spec.summary.gsub(/\.$/, "") %>
98
- Name: rubygem-%{gemname}
99
- Version: <%= spec.version %>
100
- Release: 1%{?dist}
101
- Group: Development/Languages
102
- License: GPLv2+ or Ruby
103
- URL: <%= spec.homepage %>
104
- Source0: <%= download_path %>%{gemname}-%{version}.gem
105
- BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
106
- Requires: rubygems
107
- <% for d in spec.dependencies %>
108
- <% for req in d.version_requirements.to_rpm %>
109
- Requires: rubygem(<%= d.name %>) <%= req %>
110
- <% end %>
111
- <% end %>
112
- BuildRequires: rubygems
113
- <% if spec.extensions.empty? %>
114
- BuildArch: noarch
115
- <% end %>
116
- Provides: rubygem(%{gemname}) = %{version}
117
-
118
- %description
119
- <%= spec.description.to_s.chomp.word_wrap(78) + "\n" %>
120
-
121
- <% if nongem %>
122
- %package -n ruby-%{gemname}
123
- Summary: <%= spec.summary.gsub(/\.$/, "") %>
124
- Group: Development/Languages
125
- Requires: rubygem(%{gemname}) = %{version}
126
- <% spec.files.select{ |f| spec.require_paths.include?(File::dirname(f)) }.reject { |f| f =~ /\.rb$/ }.collect { |f| File::basename(f) }.each do |p| %>
127
- Provides: ruby(<%= p %>) = %{version}
128
- <% end %>
129
- %description -n ruby-%{gemname}
130
- <%= spec.description.to_s.chomp.word_wrap(78) + "\n" %>
131
- <% end # if nongem %>
132
-
133
- %prep
134
-
135
- %build
136
-
137
- %install
138
- rm -rf %{buildroot}
139
- mkdir -p %{buildroot}%{gemdir}
140
- <% rdoc_opt = spec.has_rdoc ? "--rdoc " : "" %>
141
- gem install --local --install-dir %{buildroot}%{gemdir} \
142
- --force <%= rdoc_opt %>%{SOURCE0}
143
- <% unless spec.executables.empty? %>
144
- mkdir -p %{buildroot}/%{_bindir}
145
- mv %{buildroot}%{gemdir}/bin/* %{buildroot}/%{_bindir}
146
- rmdir %{buildroot}%{gemdir}/bin
147
- find %{buildroot}%{geminstdir}/bin -type f | xargs chmod a+x
148
- <% end %>
149
- <% if nongem %>
150
- mkdir -p %{buildroot}%{ruby_sitelib}
151
- <% spec.files.select{ |f| spec.require_paths.include?(File::dirname(f)) }.each do |p| %>
152
- ln -s %{gemdir}/gems/%{gemname}-%{version}/<%= p %> %{buildroot}%{ruby_sitelib}
153
- <% end %>
154
- <% end # if nongem %>
155
-
156
- %clean
157
- rm -rf %{buildroot}
158
-
159
- %files
160
- %defattr(-, root, root, -)
161
- <% for f in spec.executables %>
162
- %{_bindir}/<%= f %>
163
- <% end %>
164
- %{gemdir}/gems/%{gemname}-%{version}/
165
- <% if spec.has_rdoc %>
166
- %doc %{gemdir}/doc/%{gemname}-%{version}
167
- <% end %>
168
- <% for f in spec.extra_rdoc_files %>
169
- %doc %{geminstdir}/<%= f %>
170
- <% end %>
171
- %{gemdir}/cache/%{gemname}-%{version}.gem
172
- %{gemdir}/specifications/%{gemname}-%{version}.gemspec
173
-
174
- <% if nongem %>
175
- %files -n ruby-%{gemname}
176
- %defattr(-, root, root, -)
177
- %{ruby_sitelib}/*
178
- <% end # if nongem %>
179
-
180
- %changelog
181
- * <%= Time.now.strftime("%a %b %d %Y") %> <%= packager %> - <%= spec.version %>-1
182
- - Initial package
183
- }
72
+ TEMPLATE = File.read File.join(File.dirname(__FILE__), '..', 'templates', "#{Distro.nature.to_s}.spec.erb")
184
73
  end
185
74
 
186
75
  # Local Variables:
@@ -0,0 +1,69 @@
1
+ # Generated from <%= format.gem_path %> by gem2rpm -*- rpm-spec -*-
2
+ %define rbname <%= spec.name %>
3
+ %define version <%= spec.version %>
4
+ %define release 1
5
+
6
+ Summary: <%= spec.summary %>
7
+ Name: ruby-gems-%{rbname}
8
+
9
+ Version: %{version}
10
+ Release: %{release}
11
+ Group: Development/Ruby
12
+ License: Distributable
13
+ URL: <%= spec.homepage %>
14
+ Source0: %{rbname}-%{version}.gem
15
+ # Make sure the spec template is included in the SRPM
16
+ Source1: ruby-gems-%{rbname}.spec.in
17
+ BuildRoot: %{_tmppath}/%{name}-%{version}-root
18
+ Requires: ruby <%= spec.required_ruby_version %>
19
+ Requires: ruby-gems >= <%= Gem::RubyGemsVersion %>
20
+ <% for d in spec.dependencies -%>
21
+ <% for req in d.requirement -%>
22
+ Requires: ruby-gems-<%= d.name %> <%= req %>
23
+ <% end -%>
24
+ <% end -%>
25
+ BuildRequires: ruby <%= spec.required_ruby_version %>
26
+ BuildRequires: ruby-gems >= <%= Gem::RubyGemsVersion %>
27
+ BuildArch: noarch
28
+ Provides: ruby(<%= spec.name.capitalize %>) = %{version}
29
+
30
+ %define gemdir <%= Gem.dir %>
31
+ %define gembuilddir %{buildroot}%{gemdir}
32
+
33
+ %description
34
+ <%= spec.description %>
35
+
36
+ %prep
37
+ %setup -T -c
38
+
39
+ %build
40
+
41
+ %install
42
+ %{__rm} -rf %{buildroot}
43
+ mkdir -p %{gembuilddir}
44
+ gem install --local --install-dir %{gembuilddir} --force %{SOURCE0}
45
+ <% if ! spec.executables.empty? -%>
46
+ mkdir -p %{buildroot}/%{_bindir}
47
+ mv %{gembuilddir}/bin/* %{buildroot}/%{_bindir}
48
+ rmdir %{gembuilddir}/bin
49
+ <% end -%>
50
+
51
+ %clean
52
+ %{__rm} -rf %{buildroot}
53
+
54
+ %files
55
+ %defattr(-, root, root)
56
+ <% for f in spec.executables -%>
57
+ %{_bindir}/<%= f %>
58
+ <% end -%>
59
+ <% format.file_entries.each do |entry, data| -%>
60
+ <% path = entry['path'] -%>
61
+ <% doc_prefix = spec.extra_rdoc_files.include?(path) ? "%doc " : "" -%>
62
+ <%= doc_prefix %>%{gemdir}/gems/<%= spec.name %>-<%= spec.version %>/<%= path %>
63
+ <% end %>
64
+
65
+ %doc %{gemdir}/doc/<%= spec.name %>-<%= spec.version %>
66
+ %{gemdir}/cache/<%= format.gem_path %>
67
+ %{gemdir}/specifications/<%= format.gem_path %>spec
68
+
69
+ %changelog
@@ -0,0 +1,149 @@
1
+ # Generated from <%= File::basename(format.gem_path) %> by gem2rpm -*- rpm-spec -*-
2
+ %global gemname <%= spec.name %>
3
+
4
+ <% if nongem -%>
5
+ %global ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")
6
+ <% end -%>
7
+ %global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
8
+ %global geminstdir %{gemdir}/gems/%{gemname}-%{version}
9
+ %global rubyabi 1.8
10
+
11
+ Summary: <%= spec.summary.gsub(/\.$/, "") %>
12
+ Name: rubygem-%{gemname}
13
+ Version: <%= spec.version %>
14
+ Release: 1%{?dist}
15
+ Group: Development/Languages
16
+ License: <%= spec.licenses.empty? ? "GPLv2+ or Ruby" : spec.licenses.join(" and ") %>
17
+ <% if spec.homepage -%>
18
+ URL: <%= spec.homepage %>
19
+ <% end -%>
20
+ Source0: <%= download_path %>%{gemname}-%{version}.gem
21
+ Requires: ruby(abi) = %{rubyabi}
22
+ <% for req in spec.required_rubygems_version -%>
23
+ Requires: ruby(rubygems) <%= req %>
24
+ <% end -%>
25
+ <%# TODO: Unfortunatelly this do not match with ruby(abi) yet -%>
26
+ <% for req in spec.required_ruby_version -%>
27
+ Requires: ruby <%= req %>
28
+ <% end -%>
29
+ <% for d in spec.runtime_dependencies -%>
30
+ <% for req in d.requirement -%>
31
+ Requires: rubygem(<%= d.name %>) <%= req %>
32
+ <% end -%>
33
+ <% end -%>
34
+ BuildRequires: ruby(abi) = %{rubyabi}
35
+ <% for req in spec.required_rubygems_version -%>
36
+ BuildRequires: ruby(rubygems) <%= req %>
37
+ <% end -%>
38
+ <%# TODO: Unfortunatelly this do not match with ruby(abi) yet -%>
39
+ <% for req in spec.required_ruby_version -%>
40
+ BuildRequires: ruby <%= req %>
41
+ <% end -%>
42
+ <% if spec.extensions.empty? -%>
43
+ BuildArch: noarch
44
+ <% end -%>
45
+ Provides: rubygem(%{gemname}) = %{version}
46
+
47
+ %description
48
+ <%= spec.description %>
49
+
50
+ <% if doc_subpackage -%>
51
+ %package doc
52
+ Summary: Documentation for %{name}
53
+ Group: Documentation
54
+ Requires: %{name} = %{version}-%{release}
55
+ BuildArch: noarch
56
+
57
+ %description doc
58
+ Documentation for %{name}
59
+ <% end # if doc_subpackage -%>
60
+
61
+ <% if nongem -%>
62
+ %package -n ruby-%{gemname}
63
+ Summary: <%= spec.summary.gsub(/\.$/, "") %>
64
+ Group: Development/Languages
65
+ Requires: rubygem(%{gemname}) = %{version}
66
+ <% spec.files.select{ |f| spec.require_paths.include?(File::dirname(f)) }.reject { |f| f =~ /\.rb$/ }.collect { |f| File::basename(f) }.each do |p| -%>
67
+ Provides: ruby(<%= p %>) = %{version}
68
+ <% end -%>
69
+ %description -n ruby-%{gemname}
70
+ <%= spec.description -%>
71
+ <% end # if nongem -%>
72
+
73
+ %prep
74
+ %setup -q -c -T
75
+ mkdir -p .%{gemdir}
76
+ <% unless spec.extensions.empty? -%>
77
+ export CONFIGURE_ARGS="--with-cflags='%{optflags}'"
78
+ <% end -%>
79
+ gem install --local --install-dir .%{gemdir} \
80
+ <% unless spec.executables.nil? or spec.executables.empty? -%>
81
+ --bindir .%{_bindir} \
82
+ <% end -%>
83
+ <% unless spec.extensions.empty? -%>
84
+ -V \
85
+ <% end -%>
86
+ --force %{SOURCE0}
87
+
88
+ %build
89
+
90
+ %install
91
+ mkdir -p %{buildroot}%{gemdir}
92
+ cp -a .%{gemdir}/* \
93
+ %{buildroot}%{gemdir}/
94
+ <% unless spec.executables.nil? or spec.executables.empty? -%>
95
+
96
+ mkdir -p %{buildroot}%{_bindir}
97
+ cp -a .%{_bindir}/* \
98
+ %{buildroot}%{_bindir}/
99
+ <% end -%>
100
+
101
+ <% unless spec.executables.empty? -%>
102
+ find %{buildroot}%{geminstdir}/bin -type f | xargs chmod a+x
103
+ <% end -%>
104
+ <% if nongem -%>
105
+ mkdir -p %{buildroot}%{ruby_sitelib}
106
+ <% spec.files.select{ |f| spec.require_paths.include?(File::dirname(f)) }.each do |p| -%>
107
+ ln -s %{gemdir}/gems/%{gemname}-%{version}/<%= p %> %{buildroot}%{ruby_sitelib}
108
+ <% end -%>
109
+ <% end # if nongem -%>
110
+ <% unless spec.extensions.empty? -%>
111
+ <%# TODO: Is it possible to delete the folder specified by the spec.extensions? -%>
112
+ # Remove the binary extension sources and build leftovers.
113
+ rm -rf %{buildroot}%{geminstdir}/ext
114
+ <% end -%>
115
+
116
+ %files
117
+ %dir %{geminstdir}
118
+ <% unless spec.executables.nil? or spec.executables.empty? -%>
119
+ <% for f in spec.executables -%>
120
+ %{_bindir}/<%= f %>
121
+ <% end -%>
122
+ %{geminstdir}/bin
123
+ <% end -%>
124
+ %{geminstdir}/lib
125
+ <% unless doc_subpackage -%>
126
+ %doc %{gemdir}/doc/%{gemname}-%{version}
127
+ <% for f in spec.extra_rdoc_files -%>
128
+ %doc %{geminstdir}/<%= f %>
129
+ <% end -%>
130
+ <% end -%>
131
+ %{gemdir}/cache/%{gemname}-%{version}.gem
132
+ %{gemdir}/specifications/%{gemname}-%{version}.gemspec
133
+
134
+ <% if doc_subpackage -%>
135
+ %files doc
136
+ %doc %{gemdir}/doc/%{gemname}-%{version}
137
+ <% for f in spec.extra_rdoc_files -%>
138
+ %doc %{geminstdir}/<%= f %>
139
+ <% end -%>
140
+ <% end # if doc_subpackage -%>
141
+
142
+ <% if nongem -%>
143
+ %files -n ruby-%{gemname}
144
+ %{ruby_sitelib}/*
145
+ <% end # if nongem -%>
146
+
147
+ %changelog
148
+ * <%= Time.now.strftime("%a %b %d %Y") %> <%= packager %> - <%= spec.version %>-1
149
+ - Initial package
@@ -0,0 +1,72 @@
1
+ #
2
+ # spec file for package rubygem-<%= spec.name %> (Version <%= spec.version %>)
3
+ #
4
+ # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
5
+ #
6
+ # All modifications and additions to the file contributed by third parties
7
+ # remain the property of their copyright owners, unless otherwise agreed
8
+ # upon. The license for this file, and modifications and additions to the
9
+ # file, is the same license as for the pristine package itself (unless the
10
+ # license for the pristine package is not an Open Source License, in which
11
+ # case the license is the MIT License). An "Open Source License" is a
12
+ # license that conforms to the Open Source Definition (Version 1.9)
13
+ # published by the Open Source Initiative.
14
+
15
+ # Please submit bugfixes or comments via http://bugs.opensuse.org/
16
+ #
17
+
18
+ # norootforbuild
19
+ Name: rubygem-<%= spec.name %>
20
+ Version: <%= spec.version %>
21
+ Release: 0
22
+ %define mod_name <%= spec.name %>
23
+ #
24
+ Group: Development/Languages/Ruby
25
+ License: GPLv2+ or Ruby
26
+ #
27
+ BuildRoot: %{_tmppath}/%{name}-%{version}-build
28
+ BuildRequires: rubygems_with_buildroot_patch
29
+ Requires: rubygems >= <%= Gem::RubyGemsVersion %>
30
+ <%
31
+ # no need to add a requires ruby >= 0 here. will be pulled in via rubygems already
32
+ unless spec.required_ruby_version == ['']
33
+ -%>
34
+ Requires: ruby <%= spec.required_ruby_version %>
35
+ BuildRequires: ruby-devel <%= spec.required_ruby_version %>
36
+ <% end -%>
37
+ <% for d in spec.dependencies -%>
38
+ <% for req in d.requirement -%>
39
+ BuildRequires: rubygem-<%= d.name %> <%= req %>
40
+ Requires: rubygem-<%= d.name %> <%= req %>
41
+ <% end -%>
42
+ <% end -%>
43
+ #
44
+ Url: <%= spec.homepage %>
45
+ Source: %{mod_name}-%{version}.gem
46
+ #
47
+ Summary: <%= spec.summary.gsub(/\.$/, "") %>
48
+ %description
49
+ <%= spec.description %>
50
+
51
+ %prep
52
+ %build
53
+ %install
54
+ %gem_install %{S:0}
55
+ <% unless spec.extensions.empty? %>
56
+ %gem_cleanup
57
+ <% end %>
58
+
59
+ %clean
60
+ %{__rm} -rf %{buildroot}
61
+
62
+ %files
63
+ %defattr(-,root,root,-)
64
+ <% spec.executables.each do |executable| %>
65
+ %{_bindir}/<%= executable %>
66
+ <% end %>
67
+ %{_libdir}/ruby/gems/%{rb_ver}/cache/%{mod_name}-%{version}.gem
68
+ %{_libdir}/ruby/gems/%{rb_ver}/gems/%{mod_name}-%{version}/
69
+ %{_libdir}/ruby/gems/%{rb_ver}/specifications/%{mod_name}-%{version}.gemspec
70
+ %doc %{_libdir}/ruby/gems/%{rb_ver}/doc/%{mod_name}-%{version}/
71
+
72
+ %changelog
metadata CHANGED
@@ -1,19 +1,25 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem2rpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ hash: 3
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 7
9
+ - 0
10
+ version: 0.7.0
5
11
  platform: ruby
6
12
  authors:
7
13
  - David Lutterkort
14
+ - Vit Ondruch
8
15
  autorequire:
9
16
  bindir: bin
10
17
  cert_chain: []
11
18
 
12
- date: 2008-10-06 00:00:00 -07:00
13
- default_executable: gem2rpm
19
+ date: 2011-06-29 00:00:00 Z
14
20
  dependencies: []
15
21
 
16
- description: Generate source rpms and rpm spec files from a Ruby Gem. The spec file tries to follow the gem as closely as possible
22
+ description: " Generate source rpms and rpm spec files from a Ruby Gem. \n The spec file tries to follow the gem as closely as possible\n"
17
23
  email: gem2rpm-devel@rubyforge.org
18
24
  executables:
19
25
  - gem2rpm
@@ -25,36 +31,49 @@ extra_rdoc_files:
25
31
  - LICENSE
26
32
  files:
27
33
  - bin/gem2rpm
34
+ - lib/gem2rpm/distro.rb
35
+ - lib/gem2rpm/specification.rb
36
+ - lib/gem2rpm/helpers.rb
37
+ - lib/gem2rpm/dependency.rb
28
38
  - lib/gem2rpm.rb
39
+ - templates/fedora.spec.erb
40
+ - templates/opensuse.spec.erb
41
+ - templates/default.spec.erb
29
42
  - LICENSE
30
43
  - README
31
- - rubygem-gem2rpm.spec
32
44
  - AUTHORS
33
- has_rdoc: false
34
- homepage: http://rubyforge.org/projects/gem2rpm/
45
+ homepage: https://github.com/lutter/gem2rpm/
46
+ licenses: []
47
+
35
48
  post_install_message:
36
49
  rdoc_options: []
37
50
 
38
51
  require_paths:
39
52
  - lib
40
53
  required_ruby_version: !ruby/object:Gem::Requirement
54
+ none: false
41
55
  requirements:
42
56
  - - ">="
43
57
  - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
44
61
  version: "0"
45
- version:
46
62
  required_rubygems_version: !ruby/object:Gem::Requirement
63
+ none: false
47
64
  requirements:
48
65
  - - ">="
49
66
  - !ruby/object:Gem::Version
67
+ hash: 3
68
+ segments:
69
+ - 0
50
70
  version: "0"
51
- version:
52
71
  requirements: []
53
72
 
54
73
  rubyforge_project:
55
- rubygems_version: 1.2.0
74
+ rubygems_version: 1.7.2
56
75
  signing_key:
57
- specification_version: 2
76
+ specification_version: 3
58
77
  summary: Generate rpm specfiles from gems
59
78
  test_files: []
60
79
 
data/rubygem-gem2rpm.spec DELETED
@@ -1,67 +0,0 @@
1
- # Generated from gem2rpm-0.5.2.gem by gem2rpm -*- rpm-spec -*-
2
- %define ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']")
3
- %define gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
4
- %define gemname gem2rpm
5
- %define geminstdir %{gemdir}/gems/%{gemname}-%{version}
6
-
7
- Summary: Generate rpm specfiles from gems
8
- Name: rubygem-%{gemname}
9
- Version: @VERSION@
10
- Release: 1%{?dist}
11
- Group: Development/Languages
12
- License: GPLv2+ or Ruby
13
- URL: http://rubyforge.org/projects/gem2rpm/
14
- Source0: http://gems.rubyforge.org/gems/%{gemname}-%{version}.gem
15
- BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
16
- Requires: rubygems
17
- BuildRequires: rubygems
18
- BuildArch: noarch
19
- Provides: rubygem(%{gemname}) = %{version}
20
-
21
- %description
22
- Generate source rpms and rpm spec files from a Ruby Gem. The spec file
23
- tries to follow the gem as closely as possible, and be compliant with the
24
- Fedora rubygem packaging guidelines
25
-
26
-
27
- %prep
28
-
29
- %build
30
-
31
- %install
32
- rm -rf %{buildroot}
33
- mkdir -p %{buildroot}%{gemdir}
34
- gem install --local --install-dir %{buildroot}%{gemdir} \
35
- --force %{SOURCE0}
36
- mkdir -p %{buildroot}/%{_bindir}
37
- mv %{buildroot}%{gemdir}/bin/* %{buildroot}/%{_bindir}
38
- rmdir %{buildroot}%{gemdir}/bin
39
- find %{buildroot}%{geminstdir}/bin -type f | xargs chmod a+x
40
-
41
- %clean
42
- rm -rf %{buildroot}
43
-
44
- %files
45
- %defattr(-, root, root, -)
46
- %{_bindir}/gem2rpm
47
- %dir %{geminstdir}
48
- %doc %{geminstdir}/AUTHORS
49
- %{geminstdir}/bin
50
- %{geminstdir}/lib
51
- %doc %{geminstdir}/README
52
- %doc %{geminstdir}/LICENSE
53
- %{geminstdir}/rubygem-gem2rpm.spec
54
- %{gemdir}/cache/%{gemname}-%{version}.gem
55
- %{gemdir}/specifications/%{gemname}-%{version}.gemspec
56
-
57
-
58
- %changelog
59
- * Tue Mar 11 2008 David Lutterkort <dlutter@redhat.com> - @VERSION@-1
60
- - Bring in accordance with Fedora guidelines
61
-
62
- * Thu Jan 3 2008 David Lutterkort <dlutter@redhat.com> - 0.5.2-2
63
- - Own geminstdir
64
- - Fix Source URL
65
-
66
- * Mon Dec 10 2007 David Lutterkort <dlutter@redhat.com> - 0.5.2-1
67
- - Initial package