rgem2rpm 1.4.7 → 1.4.8

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/lib/rgem2rpm/gem.rb CHANGED
@@ -76,7 +76,7 @@ class RGem2Rpm::Gem
76
76
  # define name and platform
77
77
  def name_and_platform(gemname)
78
78
  name = gemname
79
- if gemname =~ /jruby|jars|java/ or @spec[:platform].to_s == 'java'
79
+ if gemname =~ /jruby|jar|java/ or @spec[:platform].to_s == 'java'
80
80
  @platform = 'jruby'
81
81
  name = "jruby-#{gemname}" unless gemname =~ /jruby/
82
82
  elsif @platform == 'jruby' and !@spec[:executables].nil? and !@spec[:executables].empty?
data/lib/rgem2rpm/rpm.rb CHANGED
@@ -1,193 +1,193 @@
1
- require 'erb'
2
-
3
- class RGem2Rpm::Rpm
4
- attr_accessor :name, :version, :release, :license, :summary, :group, :packager, :description, :installdir
5
-
6
- def initialize(args)
7
- @template = args[:template] || File.dirname(__FILE__) + '/../../conf/template.spec'
8
- @name = args[:installname]
9
- @gemname = args[:name]
10
- @version = args[:version]
11
- @release = args[:release] || '1'
12
- @license = "See #{args[:homepage]}"
13
- @summary = args[:summary]
14
- @packager = args[:packager] || 'EXGEMS'
15
- @group = args[:group] || 'ptin/ext-generic'
16
- @osuser = args[:osuser] || 'root'
17
- @osgroup = args[:osgroup] || 'root'
18
- @description = process_description(args[:description])
19
- @installdir = args[:installdir] || '/opt/ruby'
20
- @arch = args[:architecture]
21
- @files = args[:files]
22
- @rubygem = args[:rubygem]
23
- @dependencies = args[:dependencies]
24
- end
25
-
26
- def create
27
- # create spec
28
- spec
29
- # build rpm
30
- build
31
- end
32
-
33
- def installlist
34
- install_str = StringIO.new
35
- install_str << "rm -rf %{buildroot}\n"
36
- # get directories
37
- @files[:directories].each { |directory|
38
- escaped_str = directory.gsub(/%/, '%%')
39
- install_str << "install -d \"#{escaped_str}\" %{buildroot}%{prefix}/\"#{escaped_str}\"\n"
40
- }
41
- # get files
42
- @files[:files].each { |file|
43
- escaped_str = file.gsub(/%/, '%%')
44
- install_str << "install -m 644 \"#{escaped_str}\" %{buildroot}%{prefix}/\"#{escaped_str}\"\n"
45
- }
46
- # get specification
47
- escaped_str = @files[:specification].gsub(/%/, '%%')
48
- install_str << "install -m 644 \"#{escaped_str}\" %{buildroot}%{prefix}/\"#{escaped_str}\"\n"
49
- # get executables
50
- @files[:executables].each { |executable|
51
- escaped_str = executable.gsub(/%/, '%%')
52
- install_str << "install -m 0755 \"#{escaped_str}\" %{buildroot}%{prefix}/\"#{escaped_str}\"\n"
53
- }
54
- # return install string
55
- install_str.string
56
- end
57
-
58
- def filelist
59
- files_str = StringIO.new
60
- files_str << "%defattr(0644,#{@osuser},#{@osgroup},0755)\n"
61
-
62
- files_str << "%dir %{prefix}\n"
63
- @files[:directories].each { |file|
64
- escaped_str = file.gsub(/%/, '?')
65
- files_str << "%dir \"%{prefix}/#{escaped_str}\"\n"
66
- }
67
-
68
- files_str << "%{prefix}/#{@files[:specification]}\n"
69
- @files[:files].each { |file|
70
- escaped_str = file.gsub(/%/, '?')
71
- files_str << "\"%{prefix}/#{escaped_str}\"\n"
72
- }
73
-
74
- # get executables
75
- @files[:executables].each { |executable|
76
- files_str << "%attr(0755,#{@osuser},#{@osgroup}) %{prefix}/#{executable}\n"
77
- }
78
- # return file string
79
- files_str.string
80
- end
81
-
82
- def buildarch
83
- @arch == 'all' ? 'noarch' : nil
84
- end
85
-
86
- def requires
87
- req_str = StringIO.new
88
- # set rubygems dependency
89
- unless @rubygem.nil?
90
- req_str << "rubygems"
91
- req_str << " #{@rubygem}" unless @rubygem == '>= 0'
92
- end
93
- # set runtime dependencies
94
- @dependencies.each { |d|
95
- d.requirement.requirements.each { |v|
96
- req_str << ', ' unless req_str.size == 0
97
- req_str << "rubygem(#{d.name})"
98
- req_str << " #{v[0].gsub('~>','>=')} #{v[1].to_s}" unless v[0] =~ /!=/
99
- if v[0] =~ /~>/
100
- version = v[1].to_s.strip.split('.')
101
- version[version.size - 1] = "0"
102
- version[version.size - 2] = (version[version.size - 2].to_i + 1).to_s
103
- req_str << ", rubygem(#{d.name}) < #{version.join('.')}"
104
- end
105
- }
106
- }
107
- # return string with dependencies
108
- req_str.string
109
- end
110
-
111
- def conflicts
112
- conflict_str = StringIO.new
113
- # set conflicts
114
- @dependencies.each { |d|
115
- d.requirement.requirements.each { |v|
116
- conflict_str << ', ' unless conflict_str.size == 0
117
- conflict_str << "rubygem(#{d.name}) #{v[0].gsub('!=','=')} #{v[1].to_s}" if v[0] =~ /!=/
118
- }
119
- }
120
- # returns string with conflicts
121
- conflict_str.string
122
- end
123
-
124
- # return gem provides clause
125
- def provides
126
- prv_str = StringIO.new
127
- prv_str << "rubygem(#{@gemname}) = #{@version}"
128
- prv_str.string
129
- end
130
-
131
- # return changelog information
132
- def changelog
133
- change_str = StringIO.new
134
- change_str << "* #{Time.now.strftime('%a %b %d %Y')} rgem2rpm <https://github.com/jppeixoto/rgem2rpm> #{@version}-#{@release}\n"
135
- change_str << "- Create rpm package\n"
136
- change_str.string
137
- end
138
-
139
- # clean temporary files
140
- def clean
141
- FileUtils.rm_rf "#{@name}-#{@version}.spec"
142
- FileUtils.rm_rf "./rpmtemp"
143
- end
144
-
145
- private
146
- def spec
147
- template = ERB.new(File.read(@template))
148
- # write rpm spec file file
149
- File.open("#{@name}-#{@version}.spec", 'w') { |f|
150
- f.write(template.result(binding))
151
- }
152
- end
153
-
154
- def process_description(description)
155
- res = []
156
- str = description
157
- while str != nil
158
- res << "#{str[0,80]}"
159
- str = str[80,str.size]
160
- end
161
- res.join "\n"
162
- end
163
-
164
- def build
165
- create_rpm_env
166
- # move to rpmbuild path
167
- FileUtils.mv "#{@name}-#{@version}.spec", "rpmtemp/rpmbuild/SPECS"
168
- # move sources to rpmbuild
169
- FileUtils.mv "#{@name}-#{@version}.tar.gz", "rpmtemp/rpmbuild/SOURCES"
170
- # define rpm build args
171
- options = "-bb --rmspec --rmsource"
172
- define = "--define \"_topdir #{Dir.pwd}/rpmtemp/rpmbuild\" --define \"_tmppath #{Dir.pwd}/rpmtemp/rpmbuild/tmp\""
173
- specfile = "#{Dir.pwd}/rpmtemp/rpmbuild/SPECS/#{@name}-#{@version}.spec"
174
- # create rpm
175
- res = system "rpmbuild #{options} #{define} #{specfile}"
176
- # check errors
177
- raise "Error creating rpm" unless res
178
- # clean temporary files
179
- Dir.glob("rpmtemp/rpmbuild/RPMS/**/*.rpm") do |file|
180
- FileUtils.mv file, "./"
181
- end
182
- clean
183
- end
184
-
185
- def create_rpm_env
186
- FileUtils.mkdir_p "rpmtemp/rpmbuild/SPECS"
187
- FileUtils.mkdir_p "rpmtemp/rpmbuild/BUILD"
188
- FileUtils.mkdir_p "rpmtemp/rpmbuild/RPMS"
189
- FileUtils.mkdir_p "rpmtemp/rpmbuild/SRPMS"
190
- FileUtils.mkdir_p "rpmtemp/rpmbuild/SOURCES"
191
- FileUtils.mkdir_p "rpmtemp/rpmbuild/tmp"
192
- end
193
- end
1
+ require 'erb'
2
+
3
+ class RGem2Rpm::Rpm
4
+ attr_accessor :name, :version, :release, :license, :summary, :group, :packager, :description, :installdir
5
+
6
+ def initialize(args)
7
+ @template = args[:template] || File.dirname(__FILE__) + '/../../conf/template.spec'
8
+ @name = args[:installname]
9
+ @gemname = args[:name]
10
+ @version = args[:version]
11
+ @release = args[:release] || '1'
12
+ @license = "See #{args[:homepage]}"
13
+ @summary = args[:summary]
14
+ @packager = args[:packager] || 'rgem2rpm'
15
+ @group = args[:group] || 'System Environment/Libraries'
16
+ @osuser = args[:osuser] || 'root'
17
+ @osgroup = args[:osgroup] || 'root'
18
+ @description = process_description(args[:description])
19
+ @installdir = args[:installdir] || '/usr/share/gems'
20
+ @arch = args[:architecture]
21
+ @files = args[:files]
22
+ @rubygem = args[:rubygem]
23
+ @dependencies = args[:dependencies]
24
+ end
25
+
26
+ def create
27
+ # create spec
28
+ spec
29
+ # build rpm
30
+ build
31
+ end
32
+
33
+ def installlist
34
+ install_str = StringIO.new
35
+ install_str << "rm -rf %{buildroot}\n"
36
+ # get directories
37
+ @files[:directories].each { |directory|
38
+ escaped_str = directory.gsub(/%/, '%%')
39
+ install_str << "install -d \"#{escaped_str}\" %{buildroot}%{prefix}/\"#{escaped_str}\"\n"
40
+ }
41
+ # get files
42
+ @files[:files].each { |file|
43
+ escaped_str = file.gsub(/%/, '%%')
44
+ install_str << "install -m 644 \"#{escaped_str}\" %{buildroot}%{prefix}/\"#{escaped_str}\"\n"
45
+ }
46
+ # get specification
47
+ escaped_str = @files[:specification].gsub(/%/, '%%')
48
+ install_str << "install -m 644 \"#{escaped_str}\" %{buildroot}%{prefix}/\"#{escaped_str}\"\n"
49
+ # get executables
50
+ @files[:executables].each { |executable|
51
+ escaped_str = executable.gsub(/%/, '%%')
52
+ install_str << "install -m 0755 \"#{escaped_str}\" %{buildroot}%{prefix}/\"#{escaped_str}\"\n"
53
+ }
54
+ # return install string
55
+ install_str.string
56
+ end
57
+
58
+ def filelist
59
+ files_str = StringIO.new
60
+ files_str << "%defattr(0644,#{@osuser},#{@osgroup},0755)\n"
61
+
62
+ files_str << "%dir %{prefix}\n"
63
+ @files[:directories].each { |file|
64
+ escaped_str = file.gsub(/%/, '?')
65
+ files_str << "%dir \"%{prefix}/#{escaped_str}\"\n"
66
+ }
67
+
68
+ files_str << "%{prefix}/#{@files[:specification]}\n"
69
+ @files[:files].each { |file|
70
+ escaped_str = file.gsub(/%/, '?')
71
+ files_str << "\"%{prefix}/#{escaped_str}\"\n"
72
+ }
73
+
74
+ # get executables
75
+ @files[:executables].each { |executable|
76
+ files_str << "%attr(0755,#{@osuser},#{@osgroup}) %{prefix}/#{executable}\n"
77
+ }
78
+ # return file string
79
+ files_str.string
80
+ end
81
+
82
+ def buildarch
83
+ @arch == 'all' ? 'noarch' : nil
84
+ end
85
+
86
+ def requires
87
+ req_str = StringIO.new
88
+ # set rubygems dependency
89
+ unless @rubygem.nil?
90
+ req_str << "rubygems"
91
+ req_str << " #{@rubygem}" unless @rubygem == '>= 0'
92
+ end
93
+ # set runtime dependencies
94
+ @dependencies.each { |d|
95
+ d.requirement.requirements.each { |v|
96
+ req_str << ', ' unless req_str.size == 0
97
+ req_str << "rubygem(#{d.name})"
98
+ req_str << " #{v[0].gsub('~>','>=')} #{v[1].to_s}" unless v[0] =~ /!=/
99
+ if v[0] =~ /~>/
100
+ version = v[1].to_s.strip.split('.')
101
+ version[version.size - 1] = "0"
102
+ version[version.size - 2] = (version[version.size - 2].to_i + 1).to_s
103
+ req_str << ", rubygem(#{d.name}) < #{version.join('.')}"
104
+ end
105
+ }
106
+ }
107
+ # return string with dependencies
108
+ req_str.string
109
+ end
110
+
111
+ def conflicts
112
+ conflict_str = StringIO.new
113
+ # set conflicts
114
+ @dependencies.each { |d|
115
+ d.requirement.requirements.each { |v|
116
+ conflict_str << ', ' unless conflict_str.size == 0
117
+ conflict_str << "rubygem(#{d.name}) #{v[0].gsub('!=','=')} #{v[1].to_s}" if v[0] =~ /!=/
118
+ }
119
+ }
120
+ # returns string with conflicts
121
+ conflict_str.string
122
+ end
123
+
124
+ # return gem provides clause
125
+ def provides
126
+ prv_str = StringIO.new
127
+ prv_str << "rubygem(#{@gemname}) = #{@version}"
128
+ prv_str.string
129
+ end
130
+
131
+ # return changelog information
132
+ def changelog
133
+ change_str = StringIO.new
134
+ change_str << "* #{Time.now.strftime('%a %b %d %Y')} rgem2rpm <https://github.com/jppeixoto/rgem2rpm> #{@version}-#{@release}\n"
135
+ change_str << "- Create rpm package\n"
136
+ change_str.string
137
+ end
138
+
139
+ # clean temporary files
140
+ def clean
141
+ FileUtils.rm_rf "#{@name}-#{@version}.spec"
142
+ FileUtils.rm_rf "./rpmtemp"
143
+ end
144
+
145
+ private
146
+ def spec
147
+ template = ERB.new(File.read(@template))
148
+ # write rpm spec file file
149
+ File.open("#{@name}-#{@version}.spec", 'w') { |f|
150
+ f.write(template.result(binding))
151
+ }
152
+ end
153
+
154
+ def process_description(description)
155
+ res = []
156
+ str = description
157
+ while str != nil
158
+ res << "#{str[0,80]}"
159
+ str = str[80,str.size]
160
+ end
161
+ res.join "\n"
162
+ end
163
+
164
+ def build
165
+ create_rpm_env
166
+ # move to rpmbuild path
167
+ FileUtils.mv "#{@name}-#{@version}.spec", "rpmtemp/rpmbuild/SPECS"
168
+ # move sources to rpmbuild
169
+ FileUtils.mv "#{@name}-#{@version}.tar.gz", "rpmtemp/rpmbuild/SOURCES"
170
+ # define rpm build args
171
+ options = "-bb --rmspec --rmsource"
172
+ define = "--define \"_topdir #{Dir.pwd}/rpmtemp/rpmbuild\" --define \"_tmppath #{Dir.pwd}/rpmtemp/rpmbuild/tmp\""
173
+ specfile = "#{Dir.pwd}/rpmtemp/rpmbuild/SPECS/#{@name}-#{@version}.spec"
174
+ # create rpm
175
+ res = system "rpmbuild #{options} #{define} #{specfile}"
176
+ # check errors
177
+ raise "Error creating rpm" unless res
178
+ # clean temporary files
179
+ Dir.glob("rpmtemp/rpmbuild/RPMS/**/*.rpm") do |file|
180
+ FileUtils.mv file, "./"
181
+ end
182
+ clean
183
+ end
184
+
185
+ def create_rpm_env
186
+ FileUtils.mkdir_p "rpmtemp/rpmbuild/SPECS"
187
+ FileUtils.mkdir_p "rpmtemp/rpmbuild/BUILD"
188
+ FileUtils.mkdir_p "rpmtemp/rpmbuild/RPMS"
189
+ FileUtils.mkdir_p "rpmtemp/rpmbuild/SRPMS"
190
+ FileUtils.mkdir_p "rpmtemp/rpmbuild/SOURCES"
191
+ FileUtils.mkdir_p "rpmtemp/rpmbuild/tmp"
192
+ end
193
+ end
@@ -1,3 +1,3 @@
1
1
  module RGem2Rpm
2
- VERSION = '1.4.7'
2
+ VERSION = '1.4.8'
3
3
  end
metadata CHANGED
@@ -1,63 +1,55 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rgem2rpm
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 1.4.7
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.8
5
+ prerelease:
6
6
  platform: ruby
7
- authors:
8
- - Joao Peixoto
9
- autorequire:
7
+ authors:
8
+ - Joao Peixoto
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2012-11-16 00:00:00 Z
12
+ date: 2012-12-13 00:00:00.000000000 Z
14
13
  dependencies: []
15
-
16
14
  description: Application that enables conversion of rubygems to rpms.
17
15
  email: peixoto.joao@gmail.com
18
- executables:
19
- - rgem2rpm
16
+ executables:
17
+ - rgem2rpm
20
18
  extensions: []
21
-
22
19
  extra_rdoc_files: []
23
-
24
- files:
25
- - Rakefile
26
- - bin/rgem2rpm
27
- - rgem2rpm.gemspec
28
- - lib/rgem2rpm.rb
29
- - lib/rgem2rpm/argumentparse.rb
30
- - lib/rgem2rpm/converter.rb
31
- - lib/rgem2rpm/gem.rb
32
- - lib/rgem2rpm/rpm.rb
33
- - lib/rgem2rpm/version.rb
34
- - conf/template.spec
20
+ files:
21
+ - Rakefile
22
+ - bin/rgem2rpm
23
+ - rgem2rpm.gemspec
24
+ - lib/rgem2rpm.rb
25
+ - lib/rgem2rpm/argumentparse.rb
26
+ - lib/rgem2rpm/converter.rb
27
+ - lib/rgem2rpm/gem.rb
28
+ - lib/rgem2rpm/rpm.rb
29
+ - lib/rgem2rpm/version.rb
30
+ - conf/template.spec
35
31
  homepage: https://github.com/jppeixoto/rgem2rpm
36
32
  licenses: []
37
-
38
- post_install_message:
33
+ post_install_message:
39
34
  rdoc_options: []
40
-
41
- require_paths:
42
- - lib
43
- required_ruby_version: !ruby/object:Gem::Requirement
35
+ require_paths:
36
+ - lib
37
+ required_ruby_version: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: 1.8.6
44
42
  none: false
45
- requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: 1.8.6
49
- required_rubygems_version: !ruby/object:Gem::Requirement
43
+ required_rubygems_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.4.2
50
48
  none: false
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: 1.4.2
55
49
  requirements: []
56
-
57
- rubyforge_project:
50
+ rubyforge_project:
58
51
  rubygems_version: 1.8.24
59
- signing_key:
52
+ signing_key:
60
53
  specification_version: 3
61
54
  summary: Convert ruby gems into rpm
62
55
  test_files: []
63
-