rgem2rpm 1.2.0 → 1.3.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/conf/template.spec CHANGED
@@ -1,41 +1,41 @@
1
- %define __os_install_post \
2
- /usr/lib/rpm/brp-compress \
3
- %{!?__debug_package:/usr/lib/rpm/brp-strip %{__strip}} \
4
- /usr/lib/rpm/brp-strip-static-archive %{__strip} \
5
- /usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump} \
6
- %{nil}
7
-
8
- %define distnum %{expand:%%(/usr/lib/rpm/redhat/dist.sh --distnum)}
9
- %define disttype %{expand:%%(/usr/lib/rpm/redhat/dist.sh --disttype)}
10
- %define name <%=name%>
11
- %define version <%=version%>
12
- %define release <%=rpm_release%>.%{disttype}%{distnum}
13
-
14
- Name: %{name}
15
- Version: %{version}
16
- Release: %{release}
17
- License: See <%=homepage%>
18
- Summary: <%=summary%>
19
- Group: <%=rpm_group%>
20
- Source: %{name}-%{version}.tar.gz
21
- Prefix: <%=os_install_dir%>
22
- BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
23
- <%="BuildArch: noarch" if rpm_no_arch%>
24
- <%="Requires: #{requires}" unless requires.nil?%>
25
- %description
26
- <%=description%>
27
-
28
- %prep
29
- %setup -q
30
-
31
- %install
32
- <%=rpm_install%>
33
-
34
- <%="%post\n#{rpm_post}" unless rpm_post.nil?%>
35
-
36
- %postun
37
- rm -rf %{prefix}/gems/%{name}-%{version}
38
-
39
- %files
40
- %defattr(-,<%=os_user%>,<%=os_group%>)
41
- <%=files%>
1
+ %define __os_install_post \
2
+ /usr/lib/rpm/brp-compress \
3
+ %{!?__debug_package:/usr/lib/rpm/brp-strip %{__strip}} \
4
+ /usr/lib/rpm/brp-strip-static-archive %{__strip} \
5
+ /usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump} \
6
+ %{nil}
7
+
8
+ %define distnum %{expand:%%(/usr/lib/rpm/redhat/dist.sh --distnum)}
9
+ %define disttype %{expand:%%(/usr/lib/rpm/redhat/dist.sh --disttype)}
10
+ %define name <%=name%>
11
+ %define version <%=version%>
12
+ %define release <%=rpm_release%>.%{disttype}%{distnum}
13
+
14
+ Name: %{name}
15
+ Version: %{version}
16
+ Release: %{release}
17
+ License: See <%=homepage%>
18
+ Summary: <%=summary%>
19
+ Group: <%=rpm_group%>
20
+ Source: %{name}-%{version}.tar.gz
21
+ Prefix: <%=os_install_dir%>
22
+ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
23
+ <%="BuildArch: noarch" if rpm_no_arch%>
24
+ <%="Requires: #{requires}" unless requires.nil?%>
25
+ %description
26
+ <%=description%>
27
+
28
+ %prep
29
+ %setup -q
30
+
31
+ %install
32
+ <%=rpm_install%>
33
+
34
+ <%="%post\n#{rpm_post}" unless rpm_post.nil?%>
35
+
36
+ %postun
37
+ rm -rf %{prefix}/gems/%{name}-%{version}
38
+
39
+ %files
40
+ %defattr(-,<%=os_user%>,<%=os_group%>)
41
+ <%=files%>
@@ -33,11 +33,11 @@ class RGem2Rpm::Converter < Gem::Installer
33
33
  # load spec
34
34
  self.spec
35
35
  # initialize temp dir
36
- @rpm_tmp_dir = "#{@rpm_top_dir}/tmp/#{@spec.full_name}"
36
+ @rpm_tmp_dir = "#{@rpm_top_dir}/tmp/#{full_name}"
37
37
  # initialize unpack dir
38
- @rpm_unpack_dir = "#{@rpm_tmp_dir}/#{@spec.full_name}"
38
+ @rpm_unpack_dir = "#{@rpm_tmp_dir}/#{full_name}"
39
39
  # initialize gemspec filename
40
- @gemspec_filename = "#{@rpm_tmp_dir}/#{@spec.full_name}.gemspec"
40
+ @gemspec_filename = "#{@rpm_tmp_dir}/#{full_name}.gemspec"
41
41
  # initialize bin dir
42
42
  @bin_dir = "#{@rpm_tmp_dir}/bin"
43
43
  # create rpm build environment
@@ -46,13 +46,19 @@ class RGem2Rpm::Converter < Gem::Installer
46
46
 
47
47
  # return gem name
48
48
  def name
49
- @spec.name
49
+ name = "rubygems-#{@spec.name}"
50
+ name = "#{name}-#{@spec.platform}" unless @spec.platform.nil?
51
+ name
50
52
  end
51
53
 
52
54
  # return gem version
53
55
  def version
54
56
  @spec.version
55
57
  end
58
+
59
+ def full_name
60
+ "#{name}-#{version}"
61
+ end
56
62
 
57
63
  # return rpm release
58
64
  def rpm_release
@@ -162,97 +168,97 @@ class RGem2Rpm::Converter < Gem::Installer
162
168
  end
163
169
 
164
170
  private
165
- ##
166
- # Get list of files generated during build operation
167
- def generate_file_list
168
- # check if gem has native extensions
169
- if @spec.extensions.empty?
170
- # use gemspec file list
171
- @file_list = @spec.files
172
- else
173
- # initialize build files array
174
- build_files = Array.new
175
- # get required path
176
- first_element = @spec.require_paths.first
177
- require_path = if first_element.kind_of? Array then first_element.join("/") else first_element end
178
- # start building make command
179
- Dir.chdir("#{@rpm_tmp_dir}/#{@spec.full_name}/#{require_path}") do |path|
180
- Dir.glob("**/*") do |file|
181
- build_files << "#{require_path}/#{file}" unless File.directory?("#{path}/#{file}")
171
+ ##
172
+ # Get list of files generated during build operation
173
+ def generate_file_list
174
+ # check if gem has native extensions
175
+ if @spec.extensions.empty?
176
+ # use gemspec file list
177
+ @file_list = @spec.files
178
+ else
179
+ # initialize build files array
180
+ build_files = Array.new
181
+ # get required path
182
+ first_element = @spec.require_paths.first
183
+ require_path = if first_element.kind_of? Array then first_element.join("/") else first_element end
184
+ # start building make command
185
+ Dir.chdir("#{@rpm_tmp_dir}/#{full_name}/#{require_path}") do |path|
186
+ Dir.glob("**/*") do |file|
187
+ build_files << "#{require_path}/#{file}" unless File.directory?("#{path}/#{file}")
188
+ end
182
189
  end
190
+ # include build files in the list of files
191
+ @file_list = @spec.files + build_files
192
+ # delete duplicate values
193
+ @file_list.uniq!
183
194
  end
184
- # include build files in the list of files
185
- @file_list = @spec.files + build_files
186
- # delete duplicate values
187
- @file_list.uniq!
188
195
  end
189
- end
190
196
 
191
- ##
192
- # Create install string.
193
- def generate_install
194
- files_str = StringIO.new
195
- install_str = StringIO.new
196
- install_str << "rm -rf %{buildroot}\n"
197
- install_str << "mkdir -p %{buildroot}%{prefix}/bin\n"
198
- install_str << "mkdir -p %{buildroot}%{prefix}/specifications\n"
199
- install_str << "mkdir -p %{buildroot}%{prefix}/gems/%{name}-%{version}\n"
200
- install_str << "install -p -m 644 %{name}-%{version}.gemspec %{buildroot}%{prefix}/specifications"
201
- files_str << "%{prefix}/specifications/%{name}-%{version}.gemspec"
202
- # get files list
203
- @file_list.each { |file|
204
- if File.file? "#{@rpm_unpack_dir}/#{file}"
205
- install_str << "\ninstall -p -D -m 644 %{name}-%{version}/\"#{file}\" %{buildroot}%{prefix}/gems/%{name}-%{version}/\"#{file}\""
206
- files_str << "\n\"%{prefix}/gems/%{name}-%{version}/#{file}\""
207
- elsif File.directory? "#{@rpm_unpack_dir}/#{file}"
208
- install_str << "\nmkdir -p %{buildroot}%{prefix}/gems/%{name}-%{version}/\"#{file}\""
209
- end
210
- }
211
- # get executable file list
212
- @spec.executables.each { |file|
213
- install_str << "\ninstall -p -m 0755 bin/#{file} %{buildroot}%{prefix}/bin"
214
- files_str << "\n%{prefix}/bin/#{file}"
215
- }
216
- @rpm_install = install_str.string
217
- @files = files_str.string
218
- end
197
+ ##
198
+ # Create install string.
199
+ def generate_install
200
+ files_str = StringIO.new
201
+ install_str = StringIO.new
202
+ install_str << "rm -rf %{buildroot}\n"
203
+ install_str << "mkdir -p %{buildroot}%{prefix}/bin\n"
204
+ install_str << "mkdir -p %{buildroot}%{prefix}/specifications\n"
205
+ install_str << "mkdir -p %{buildroot}%{prefix}/gems/%{name}-%{version}\n"
206
+ install_str << "install -p -m 644 %{name}-%{version}.gemspec %{buildroot}%{prefix}/specifications"
207
+ files_str << "%{prefix}/specifications/%{name}-%{version}.gemspec"
208
+ # get files list
209
+ @file_list.each { |file|
210
+ if File.file? "#{@rpm_unpack_dir}/#{file}"
211
+ install_str << "\ninstall -p -D -m 644 %{name}-%{version}/\"#{file}\" %{buildroot}%{prefix}/gems/%{name}-%{version}/\"#{file}\""
212
+ files_str << "\n\"%{prefix}/gems/%{name}-%{version}/#{file}\""
213
+ elsif File.directory? "#{@rpm_unpack_dir}/#{file}"
214
+ install_str << "\nmkdir -p %{buildroot}%{prefix}/gems/%{name}-%{version}/\"#{file}\""
215
+ end
216
+ }
217
+ # get executable file list
218
+ @spec.executables.each { |file|
219
+ install_str << "\ninstall -p -m 0755 bin/#{file} %{buildroot}%{prefix}/bin"
220
+ files_str << "\n%{prefix}/bin/#{file}"
221
+ }
222
+ @rpm_install = install_str.string
223
+ @files = files_str.string
224
+ end
219
225
 
220
- def generate_bin
221
- return if @spec.executables.nil? or @spec.executables.empty?
226
+ def generate_bin
227
+ return if @spec.executables.nil? or @spec.executables.empty?
222
228
 
223
- # If the user has asked for the gem to be installed in a directory that is
224
- # the system gem directory, then use the system bin directory, else create
225
- # (or use) a new bin dir under the gem_home.
226
- bindir = @bin_dir ? @bin_dir : Gem.bindir(@gem_home)
229
+ # If the user has asked for the gem to be installed in a directory that is
230
+ # the system gem directory, then use the system bin directory, else create
231
+ # (or use) a new bin dir under the gem_home.
232
+ bindir = @bin_dir ? @bin_dir : Gem.bindir(@gem_home)
227
233
 
228
- Dir.mkdir bindir unless File.exist? bindir
229
- raise Gem::FilePermissionError.new(bindir) unless File.writable? bindir
234
+ Dir.mkdir bindir unless File.exist? bindir
235
+ raise Gem::FilePermissionError.new(bindir) unless File.writable? bindir
230
236
 
231
- @spec.executables.each do |filename|
232
- filename.untaint
233
- bin_path = File.expand_path "#{@spec.bindir}/#{filename}", @gem_dir
234
- if File.exist?(bin_path)
235
- mode = File.stat(bin_path).mode | 0111
236
- File.chmod mode, bin_path
237
+ @spec.executables.each do |filename|
238
+ filename.untaint
239
+ bin_path = File.expand_path "#{@spec.bindir}/#{filename}", @gem_dir
240
+ if File.exist?(bin_path)
241
+ mode = File.stat(bin_path).mode | 0111
242
+ File.chmod mode, bin_path
243
+ end
244
+ generate_bin_script filename, bindir
237
245
  end
238
- generate_bin_script filename, bindir
239
246
  end
240
- end
241
247
 
242
- def generate_bin_script(filename, bindir)
243
- @rpm_install = "#{@rpm_install}\nsed -i \"1i $(if (ruby -v 1>/dev/null 2>&1); then echo '\#\!/usr/bin/env ruby'; else echo '\#\!/usr/bin/env jruby'; fi;)\" %{buildroot}%{prefix}/bin/#{filename}"
244
- bin_script_path = File.join bindir, formatted_program_filename(filename)
248
+ def generate_bin_script(filename, bindir)
249
+ @rpm_install = "#{@rpm_install}\nsed -i \"1i $(if (ruby -v 1>/dev/null 2>&1); then echo '\#\!/usr/bin/env ruby'; else echo '\#\!/usr/bin/env jruby'; fi;)\" %{buildroot}%{prefix}/bin/#{filename}"
250
+ bin_script_path = File.join bindir, formatted_program_filename(filename)
245
251
 
246
- File.open bin_script_path, 'wb', 0755 do |file|
247
- file.print app_script_text(filename)
252
+ File.open bin_script_path, 'wb', 0755 do |file|
253
+ file.print app_script_text(filename)
254
+ end
248
255
  end
249
- end
250
256
 
251
- ##
252
- # Return the text for an application file.
257
+ ##
258
+ # Return the text for an application file.
253
259
 
254
- def app_script_text(bin_file_name)
255
- <<-TEXT
260
+ def app_script_text(bin_file_name)
261
+ <<-TEXT
256
262
  #
257
263
  # This file was generated by RubyGems.
258
264
  #
@@ -272,52 +278,52 @@ end
272
278
  gem '#{@spec.name}', version
273
279
  load Gem.bin_path('#{@spec.name}', '#{bin_file_name}', version)
274
280
  TEXT
275
- end
281
+ end
276
282
 
277
- def build_clean
278
- # clean each build
279
- @spec.extensions.each do |extension|
280
- Dir.chdir(File.dirname("#{@rpm_tmp_dir}/#{@spec.full_name}/#{extension}")) do |path|
281
- # delete intermediate build files
282
- system "make clean"
283
- # delete makefile
284
- FileUtils.rm_rf("#{path}/Makefile")
283
+ def build_clean
284
+ # clean each build
285
+ @spec.extensions.each do |extension|
286
+ Dir.chdir(File.dirname("#{@rpm_tmp_dir}/#{full_name}/#{extension}")) do |path|
287
+ # delete intermediate build files
288
+ system "make clean"
289
+ # delete makefile
290
+ FileUtils.rm_rf("#{path}/Makefile")
291
+ end
285
292
  end
286
293
  end
287
- end
288
294
 
289
- def create_rpm_env
290
- FileUtils.mkdir_p "#{@rpm_top_dir}/SPECS" unless File.exists?("#{@rpm_top_dir}/SPECS")
291
- FileUtils.mkdir_p "#{@rpm_top_dir}/BUILD" unless File.exists?("#{@rpm_top_dir}/BUILD")
292
- FileUtils.mkdir_p "#{@rpm_top_dir}/RPMS" unless File.exists?("#{@rpm_top_dir}/RPMS")
293
- FileUtils.mkdir_p "#{@rpm_top_dir}/SRPMS" unless File.exists?("#{@rpm_top_dir}/SRPMS")
294
- FileUtils.mkdir_p "#{@rpm_top_dir}/SOURCES" unless File.exists?("#{@rpm_top_dir}/SOURCES")
295
- end
295
+ def create_rpm_env
296
+ FileUtils.mkdir_p "#{@rpm_top_dir}/SPECS" unless File.exists?("#{@rpm_top_dir}/SPECS")
297
+ FileUtils.mkdir_p "#{@rpm_top_dir}/BUILD" unless File.exists?("#{@rpm_top_dir}/BUILD")
298
+ FileUtils.mkdir_p "#{@rpm_top_dir}/RPMS" unless File.exists?("#{@rpm_top_dir}/RPMS")
299
+ FileUtils.mkdir_p "#{@rpm_top_dir}/SRPMS" unless File.exists?("#{@rpm_top_dir}/SRPMS")
300
+ FileUtils.mkdir_p "#{@rpm_top_dir}/SOURCES" unless File.exists?("#{@rpm_top_dir}/SOURCES")
301
+ end
296
302
 
297
- def write_rpm_spec_from_template
298
- template = ERB.new(File.read(@spec_template))
299
- # write rpm spec file file
300
- rpmspec_filename = "#{@rpm_top_dir}/SPECS/#{@spec.name}-#{@spec.version}.spec"
301
- File.open(rpmspec_filename, 'w') {|f|
302
- f.write(template.result(binding))
303
- }
304
- end
303
+ def write_rpm_spec_from_template
304
+ template = ERB.new(File.read(@spec_template))
305
+ # write rpm spec file file
306
+ rpmspec_filename = "#{@rpm_top_dir}/SPECS/#{full_name}.spec"
307
+ File.open(rpmspec_filename, 'w') {|f|
308
+ f.write(template.result(binding))
309
+ }
310
+ end
305
311
 
306
- def create_rpm_source(orig)
307
- # create tar.gz source file
308
- tgz = Zlib::GzipWriter.new(File.open("#{@rpm_top_dir}/SOURCES/#{@spec.name}-#{@spec.version}.tar.gz", 'wb'))
309
- # Warning: tgz will be closed!
310
- FileUtils.cd "#{orig}"
311
- Minitar.pack("#{@spec.name}-#{@spec.version}", tgz)
312
- FileUtils.cd "#{@rpm_top_dir}"
313
- end
312
+ def create_rpm_source(orig)
313
+ # create tar.gz source file
314
+ tgz = Zlib::GzipWriter.new(File.open("#{@rpm_top_dir}/SOURCES/#{full_name}.tar.gz", 'wb'))
315
+ # Warning: tgz will be closed!
316
+ FileUtils.cd "#{orig}"
317
+ Minitar.pack("#{full_name}", tgz)
318
+ FileUtils.cd "#{@rpm_top_dir}"
319
+ end
314
320
 
315
- def rpmbuild
316
- # define rpm build args
317
- options = "-bb --rmspec --rmsource"
318
- define = "--define \"_topdir #{@rpm_top_dir}\" --define \"_tmppath #{@rpm_top_dir}/tmp\""
319
- specfile = "#{@rpm_top_dir}/SPECS/#{@spec.name}-#{@spec.version}.spec"
320
- # create rpm
321
- system "rpmbuild #{options} #{define} #{specfile}"
322
- end
321
+ def rpmbuild
322
+ # define rpm build args
323
+ options = "-bb --rmspec --rmsource"
324
+ define = "--define \"_topdir #{@rpm_top_dir}\" --define \"_tmppath #{@rpm_top_dir}/tmp\""
325
+ specfile = "#{@rpm_top_dir}/SPECS/#{full_name}.spec"
326
+ # create rpm
327
+ system "rpmbuild #{options} #{define} #{specfile}"
328
+ end
323
329
  end
data/rgem2rpm.gemspec CHANGED
@@ -1,9 +1,9 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{rgem2rpm}
3
- s.version = "1.2.0"
3
+ s.version = "1.3.0"
4
4
  s.required_ruby_version = Gem::Requirement.new(">= 1.8.6")
5
5
  s.required_rubygems_version = Gem::Requirement.new(">= 1.4.2") if s.respond_to?(:required_rubygems_version=)
6
- s.date = %q{2011-11-17}
6
+ s.date = %q{2012-01-19}
7
7
  s.authors = ["Joao Peixoto"]
8
8
  s.email = %q{peixoto.joao@gmail.com}
9
9
  s.summary = %q{Convert ruby gems into rpm}
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rgem2rpm
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.2.0
5
+ version: 1.3.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Joao Peixoto
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-11-17 00:00:00 Z
13
+ date: 2012-01-19 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: minitar
@@ -63,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
63
63
  requirements: []
64
64
 
65
65
  rubyforge_project:
66
- rubygems_version: 1.8.11
66
+ rubygems_version: 1.8.15
67
67
  signing_key:
68
68
  specification_version: 3
69
69
  summary: Convert ruby gems into rpm