rgem2rpm 1.4.14 → 1.4.15

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 8a39375fa328be4d8ce598ebe6b6e1e0ca9ddf8a685ab7317611a76265f641b2
4
+ data.tar.gz: 8e25f51912fee50c90d30229138dec28508c5c0434ae7b3668c3971c4a415ceb
5
+ SHA512:
6
+ metadata.gz: df931ef985f4866644e7b5d277d719dbc07eaf1415768e433af2000707d74f19288e6ef7bde5b2c52ae5a1b1ffcc787870638358ade0d1b42c47ac6b58e0cfa7
7
+ data.tar.gz: e76507e2e6001bb993832c59a47f7f6b5c0e8c60756dd1577e9b64c87761e4575c40b949a4ccae9d57e5eb7eaf59e94aec20ddba0bcd8e900f5f304df9777f31
@@ -18,10 +18,10 @@ class RGem2Rpm::Converter
18
18
  rpm.create
19
19
  rescue => e
20
20
  # clean temporary files
21
- objects.each { |obj| obj.clean }
21
+ #objects.each { |obj| obj.clean }
22
22
  # write error message
23
- puts e.message
24
- exit
23
+ puts e.message
24
+ exit 1
25
25
  end
26
26
  end
27
27
  end
@@ -7,28 +7,30 @@ require 'rubygems/remote_fetcher'
7
7
  class RGem2Rpm::Gem
8
8
  # define accessors
9
9
  attr_accessor :spec
10
-
10
+
11
11
  def initialize(args)
12
12
  # initialize paramters
13
- @filename = args[:filename]
14
- @platform = args[:platform] || 'ruby'
13
+ @filename = args[:filename]
14
+ @platform = args[:platform] || 'ruby'
15
15
  @installname = args[:rpmname]
16
16
  end
17
-
17
+
18
18
  # install gem to pwd
19
19
  def install
20
20
  # get spec information
21
21
  @spec = compute_spec
22
22
  # define name and platform
23
23
  if @installname
24
- @spec[:installname] = @installname
24
+ @spec[:installname] = @installname
25
25
  else
26
- @spec[:installname] = name_and_platform(@spec[:name])
26
+ @spec[:installname] = name_and_platform(@spec[:name])
27
27
  end
28
28
  # set install dir
29
29
  @installdir = "#{@spec[:installname]}-#{@spec[:version]}"
30
30
  # install gem
31
- Gem::Installer.new(@filename, :env_shebang => true, :ignore_dependencies => true, :install_dir => @installdir, :bin_dir => "#{@installdir}/bin", :wrappers => true).install
31
+ Gem::Installer.new(@filename, :env_shebang => true, :ignore_dependencies => true,
32
+ :install_dir => File.expand_path(@installdir), :bin_dir => File.expand_path("#{@installdir}/bin"),
33
+ :wrappers => true).install
32
34
  # install build files
33
35
  install_build_files
34
36
  # get file list
@@ -36,128 +38,134 @@ class RGem2Rpm::Gem
36
38
  # build tar.gz
37
39
  build_source
38
40
  end
39
-
41
+
40
42
  # clean temporary files
41
43
  def clean
42
44
  return if @installdir.nil?
43
45
  FileUtils.rm_rf @installdir
44
46
  FileUtils.rm_rf "#{@installdir}.tar.gz"
45
47
  end
46
-
48
+
47
49
  private
48
- # get information from specification
49
- def compute_spec
50
- specinfo = {}
51
- metadata = nil
52
50
 
53
- if Gem::VERSION.to_i >= 2
54
- metadata = Gem::Package.new(@filename).spec
55
- else
56
- Gem::Package.open(File.open(@filename)) { |gem| metadata = gem.metadata }
57
- end
51
+ # get information from specification
52
+ def compute_spec
53
+ specinfo = {}
54
+ metadata = nil
58
55
 
59
- # name
60
- specinfo[:name] = metadata.name
61
- # version
62
- specinfo[:version] = metadata.version
63
- # summary
64
- specinfo[:summary] = metadata.summary
65
- # homepage
66
- specinfo[:homepage] = metadata.homepage
67
- # platform
68
- specinfo[:platform] = metadata.platform
69
- # description
70
- specinfo[:description] = metadata.description
71
- # if the gemspec has extensions defined, then this should be a 'native' arch.
72
- specinfo[:architecture] = metadata.extensions.empty? ? 'all' : 'native'
73
- # rubygem required version
74
- specinfo[:rubygem] = metadata.required_rubygems_version
75
- # dependencies
76
- specinfo[:dependencies] = metadata.runtime_dependencies
77
- # extensions
78
- specinfo[:extensions] = metadata.extensions
79
- # executables
80
- specinfo[:executables] = metadata.executables
81
- #Return value
82
- specinfo
56
+ if Gem::VERSION.to_i >= 2
57
+ metadata = Gem::Package.new(@filename).spec
58
+ else
59
+ Gem::Package.open(File.open(@filename)) {|gem| metadata = gem.metadata}
83
60
  end
84
-
85
- # define name and platform
86
- def name_and_platform(gemname)
87
- name = gemname
88
- if gemname =~ /jruby|jar|java/ or @spec[:platform].to_s == 'java'
89
- @platform = 'jruby'
90
- name = "jruby-#{gemname}" unless gemname =~ /jruby/
91
- elsif @platform == 'jruby' and !@spec[:executables].nil? and !@spec[:executables].empty?
92
- name = "jruby-#{gemname}"
93
- end
94
- "rubygem-#{name}"
61
+
62
+ # name
63
+ specinfo[:name] = metadata.name
64
+ # version
65
+ specinfo[:version] = metadata.version
66
+ # summary
67
+ specinfo[:summary] = metadata.summary
68
+ # homepage
69
+ specinfo[:homepage] = metadata.homepage
70
+ # platform
71
+ specinfo[:platform] = metadata.platform
72
+ # description
73
+ specinfo[:description] = metadata.description
74
+ # if the gemspec has extensions defined, then this should be a 'native' arch.
75
+ specinfo[:architecture] = metadata.extensions.empty? ? 'all' : 'native'
76
+ # rubygem required version
77
+ specinfo[:rubygem] = metadata.required_rubygems_version
78
+ # dependencies
79
+ specinfo[:dependencies] = metadata.runtime_dependencies
80
+ # extensions
81
+ specinfo[:extensions] = metadata.extensions
82
+ # executables
83
+ specinfo[:executables] = metadata.executables
84
+ #Return value
85
+ specinfo
86
+ end
87
+
88
+ # define name and platform
89
+ def name_and_platform(gemname)
90
+ name = gemname
91
+ if gemname =~ /jruby|jar|java/ or @spec[:platform].to_s == 'java'
92
+ @platform = 'jruby'
93
+ name = "jruby-#{gemname}" unless gemname =~ /jruby/
94
+ elsif @platform == 'jruby' and !@spec[:executables].nil? and !@spec[:executables].empty?
95
+ name = "jruby-#{gemname}"
95
96
  end
96
-
97
- # return hash with list of files and directories
98
- def files
99
- @spec[:files] = {:directories => [], :files => [], :executables => []}
100
- Dir.chdir(@installdir) do
101
- # create gem directory structure
102
- @spec[:files][:directories] << 'gems'
103
- @spec[:files][:directories] << 'specifications'
104
- @spec[:files][:directories] << 'bin'
105
- # get files and directories
106
- Dir.glob("gems/**/*") do |file|
107
- key = File.directory?(file) ? :directories : (File.executable?(file) || file.end_with?('.sh') ? :executables : :files)
108
- @spec[:files][key] << file
109
- end
110
- # get gem path
111
- Dir.glob("gems/*") do |file|
112
- @spec[:files][:gempath] = file
113
- end
114
- # get specification filename
115
- Dir.glob("specifications/*") do |file|
116
- @spec[:files][:specification] = file
117
- end
118
- # get executable files
119
- Dir.glob("bin/*") do |file|
120
- @spec[:files][:executables] << file
121
- shebang(file)
122
- end
97
+ "rubygem-#{name}"
98
+ end
99
+
100
+ # return hash with list of files and directories
101
+ def files
102
+ @spec[:files] = {:directories => [], :files => [], :executables => [], :extensions => []}
103
+ Dir.chdir(@installdir) do
104
+ # create gem directory structure
105
+ @spec[:files][:directories] << 'gems'
106
+ @spec[:files][:directories] << 'specifications'
107
+ @spec[:files][:directories] << 'bin'
108
+ # get files and directories
109
+ Dir.glob("gems/**/*") do |file|
110
+ key = File.directory?(file) ? :directories : (File.executable?(file) || file.end_with?('.sh') ? :executables : :files)
111
+ @spec[:files][key] << file
112
+ end
113
+ # get gem path
114
+ Dir.glob("gems/*") do |file|
115
+ @spec[:files][:gempath] = file
116
+ end
117
+ # get specification filename
118
+ Dir.glob("specifications/*") do |file|
119
+ @spec[:files][:specification] = file
120
+ end
121
+ # get executable files
122
+ Dir.glob("bin/*") do |file|
123
+ @spec[:files][:executables] << file
124
+ shebang(file)
125
+ end
126
+
127
+ ext_files = Dir.glob("extensions/**/*.so") + Dir.glob("extensions/**/gem.build_complete")
128
+ ext_files.each do |file|
129
+ @spec[:files][:extensions] << file
123
130
  end
124
131
  end
125
-
126
- def shebang(filename)
127
- # alter first line of all executables
128
- file_arr = File.readlines(filename)
129
- file_arr[0] = "#!/usr/bin/env #{@platform}\n"
130
- File.open(filename, 'w') { |f| f.write(file_arr.join) }
131
- end
132
-
133
- def build_source
134
- # create tar.gz
135
- res = system "tar czf #{@installdir}.tar.gz #{@installdir}"
136
- # check errors
137
- raise "Error creating archive #{@installdir}.tar.gz" unless res
138
- # clean temporary files
139
- FileUtils.rm_rf @installdir
140
- end
141
-
142
- def install_build_files
143
- # get current directory
144
- pwd = FileUtils.pwd
145
- # clean build if gem has extensions
146
- @spec[:extensions].each { |extension|
147
- path = File.dirname("#{pwd}/#{@installdir}/gems/#{@filename[0, @filename.size-4]}/#{extension}")
148
- case RUBY_VERSION
149
- when /^1.8/
150
- FileUtils.rm_rf Dir.glob("#{path}/*.o")
151
- FileUtils.rm_rf "#{path}/Makefile"
152
- when /^1.9/
153
- FileUtils.cp_r "#{path}/#{@installdir}", "#{pwd}/"
154
- FileUtils.rm_rf "#{path}/#{@installdir}"
155
- FileUtils.rm_rf Dir.glob("#{path}/*.o")
156
- FileUtils.rm_rf Dir.glob("#{path}/*.so")
157
- FileUtils.rm_rf "#{path}/Makefile"
158
- end
159
- }
160
- # delete directories
161
- Dir["#{@installdir}/*"].each {|name| FileUtils.rm_rf(name) unless name =~ /bin|gems|specifications/ }
162
- end
132
+ end
133
+
134
+ def shebang(filename)
135
+ # alter first line of all executables
136
+ file_arr = File.readlines(filename)
137
+ file_arr[0] = "#!/usr/bin/env #{@platform}\n"
138
+ File.open(filename, 'w') {|f| f.write(file_arr.join)}
139
+ end
140
+
141
+ def build_source
142
+ # create tar.gz
143
+ res = system "tar czf #{@installdir}.tar.gz #{@installdir}"
144
+ # check errors
145
+ raise "Error creating archive #{@installdir}.tar.gz" unless res
146
+ # clean temporary files
147
+ FileUtils.rm_rf @installdir
148
+ end
149
+
150
+ def install_build_files
151
+ # get current directory
152
+ pwd = FileUtils.pwd
153
+ # clean build if gem has extensions
154
+ @spec[:extensions].each {|extension|
155
+ path = File.dirname("#{pwd}/#{@installdir}/gems/#{@filename[0, @filename.size - 4]}/#{extension}")
156
+ case RUBY_VERSION
157
+ when /^1.8/
158
+ FileUtils.rm_rf Dir.glob("#{path}/*.o")
159
+ FileUtils.rm_rf "#{path}/Makefile"
160
+ when /^1.9/
161
+ FileUtils.cp_r "#{path}/#{@installdir}", "#{pwd}/"
162
+ FileUtils.rm_rf "#{path}/#{@installdir}"
163
+ FileUtils.rm_rf Dir.glob("#{path}/*.o")
164
+ FileUtils.rm_rf Dir.glob("#{path}/*.so")
165
+ FileUtils.rm_rf "#{path}/Makefile"
166
+ end
167
+ }
168
+ # delete directories
169
+ Dir["#{@installdir}/*"].each {|name| FileUtils.rm_rf(name) unless name =~ /bin|gems|specifications|extensions/}
170
+ end
163
171
  end
@@ -3,45 +3,45 @@ require 'erb'
3
3
 
4
4
  class RGem2Rpm::Rpm
5
5
  attr_accessor :name, :version, :release, :license, :summary, :group, :packager, :description, :installdir
6
-
6
+
7
7
  def initialize(args)
8
- @template = args[:template] || File.dirname(__FILE__) + '/../../conf/template.spec'
9
- @name = args[:installname]
10
- @rpmname = args[:rpmname] || args[:installname]
11
- @gemname = args[:name]
12
- @version = args[:version]
13
- @release = args[:release] || '1'
14
- @license = "See #{args[:homepage]}"
15
- @summary = args[:summary]
16
- @packager = args[:packager] || 'rgem2rpm'
17
- @group = args[:group] || 'System Environment/Libraries'
18
- @osuser = args[:osuser] || 'root'
19
- @osgroup = args[:osgroup] || 'root'
20
- @description = process_description(args[:description])
21
- @installdir = args[:installdir] || '/usr/share/gems'
22
- @arch = args[:architecture]
23
- @files = args[:files]
24
- @rubygem = args[:rubygem]
8
+ @template = args[:template] || File.dirname(__FILE__) + '/../../conf/template.spec'
9
+ @name = args[:installname]
10
+ @rpmname = args[:rpmname] || args[:installname]
11
+ @gemname = args[:name]
12
+ @version = args[:version]
13
+ @release = args[:release] || '1'
14
+ @license = "See #{args[:homepage]}"
15
+ @summary = args[:summary]
16
+ @packager = args[:packager] || 'rgem2rpm'
17
+ @group = args[:group] || 'System Environment/Libraries'
18
+ @osuser = args[:osuser] || 'root'
19
+ @osgroup = args[:osgroup] || 'root'
20
+ @description = process_description(args[:description])
21
+ @installdir = args[:installdir] || '/usr/share/gems'
22
+ @arch = args[:architecture]
23
+ @files = args[:files]
24
+ @rubygem = args[:rubygem]
25
25
  @dependencies = args[:dependencies]
26
26
  end
27
-
27
+
28
28
  def create
29
29
  # create spec
30
30
  spec
31
31
  # build rpm
32
32
  build
33
33
  end
34
-
34
+
35
35
  def installlist
36
36
  install_str = StringIO.new
37
37
  install_str << "rm -rf %{buildroot}\n"
38
38
  # get directories
39
- @files[:directories].each { |directory|
39
+ @files[:directories].each {|directory|
40
40
  escaped_str = directory.gsub(/%/, '%%')
41
41
  install_str << "install -d \"#{escaped_str}\" %{buildroot}%{prefix}/\"#{escaped_str}\"\n"
42
42
  }
43
43
  # get files
44
- @files[:files].each { |file|
44
+ @files[:files].each {|file|
45
45
  escaped_str = file.gsub(/%/, '%%')
46
46
  install_str << "install -m 644 \"#{escaped_str}\" %{buildroot}%{prefix}/\"#{escaped_str}\"\n"
47
47
  }
@@ -49,42 +49,60 @@ class RGem2Rpm::Rpm
49
49
  escaped_str = @files[:specification].gsub(/%/, '%%')
50
50
  install_str << "install -m 644 \"#{escaped_str}\" %{buildroot}%{prefix}/\"#{escaped_str}\"\n"
51
51
  # get executables
52
- @files[:executables].each { |executable|
52
+ @files[:executables].each {|executable|
53
53
  escaped_str = executable.gsub(/%/, '%%')
54
54
  install_str << "install -m 0755 \"#{escaped_str}\" %{buildroot}%{prefix}/\"#{escaped_str}\"\n"
55
55
  }
56
+
57
+ #Extensions file get build into extensions/<ARCH>-linux/<Ruby Version>/GEM-VERSION/
58
+ # We need to install this into /usr/lib64/gems/ruby/GEM-VERSION/
59
+ # Ex. extensions/x86_64-linux/2.5.0/ffi-1.10.0/gem.build_complete => /usr/lib64/gems/ruby/ffi-1.10.0/gem.build_complete
60
+ @files[:extensions].each {|extensions|
61
+ #remove preceding chars until gem name-version is found (non greedy way)
62
+ # ex. "extensions/x86_64-linux/2.5.0/ffi-1.10.0/gem.build_complete".sub(/.*?(?=ffi-1.10.0)/,"")
63
+ suffix = extensions.sub(/.*?(?=#{@gemname}-#{@version})/, "")
64
+ install_str << "install -D \"#{extensions}\" %{buildroot}%{_libdir}/gems/ruby/\"#{suffix}\"\n"
65
+ }
66
+
56
67
  # return install string
57
68
  install_str.string
58
69
  end
59
-
70
+
60
71
  def filelist
61
72
  files_str = StringIO.new
62
73
  files_str << "%defattr(0644,#{@osuser},#{@osgroup},0755)\n"
63
-
74
+
64
75
  files_str << "%dir %{prefix}\n"
65
- @files[:directories].each { |file|
76
+ @files[:directories].each {|file|
66
77
  escaped_str = file.gsub(/%/, '?')
67
78
  files_str << "%dir \"%{prefix}/#{escaped_str}\"\n"
68
79
  }
69
-
80
+
70
81
  files_str << "%{prefix}/#{@files[:specification]}\n"
71
- @files[:files].each { |file|
82
+ @files[:files].each {|file|
72
83
  escaped_str = file.gsub(/%/, '?')
73
84
  files_str << "\"%{prefix}/#{escaped_str}\"\n"
74
85
  }
75
-
86
+
76
87
  # get executables
77
- @files[:executables].each { |executable|
88
+ @files[:executables].each {|executable|
78
89
  files_str << "%attr(0755,#{@osuser},#{@osgroup}) %{prefix}/#{executable}\n"
79
90
  }
91
+
92
+ @files[:extensions].each {|file|
93
+ suffix = file.sub(/.*?(?=#{@gemname}-#{@version})/, "")
94
+ escaped_str = suffix.gsub(/%/, '?')
95
+ files_str << "\"%{_libdir}/gems/ruby/#{escaped_str}\"\n"
96
+ }
97
+
80
98
  # return file string
81
99
  files_str.string
82
100
  end
83
-
101
+
84
102
  def buildarch
85
103
  @arch == 'all' ? 'noarch' : nil
86
104
  end
87
-
105
+
88
106
  def requires
89
107
  req_str = StringIO.new
90
108
  # set rubygems dependency
@@ -93,11 +111,11 @@ class RGem2Rpm::Rpm
93
111
  req_str << " #{@rubygem}" unless @rubygem == '>= 0'
94
112
  end
95
113
  # set runtime dependencies
96
- @dependencies.each { |d|
97
- d.requirement.requirements.each { |v|
114
+ @dependencies.each {|d|
115
+ d.requirement.requirements.each {|v|
98
116
  req_str << ', ' unless req_str.size == 0
99
117
  req_str << "rubygem(#{d.name})"
100
- req_str << " #{v[0].gsub('~>','>=')} #{v[1].to_s}" unless v[0] =~ /!=/
118
+ req_str << " #{v[0].gsub('~>', '>=')} #{v[1].to_s}" unless v[0] =~ /!=/
101
119
  if v[0] =~ /~>/
102
120
  version = v[1].to_s.strip.split('.')
103
121
  version[version.size - 1] = "0"
@@ -109,87 +127,89 @@ class RGem2Rpm::Rpm
109
127
  # return string with dependencies
110
128
  req_str.string
111
129
  end
112
-
130
+
113
131
  def conflicts
114
132
  conflict_str = StringIO.new
115
133
  # set conflicts
116
- @dependencies.each { |d|
117
- d.requirement.requirements.each { |v|
134
+ @dependencies.each {|d|
135
+ d.requirement.requirements.each {|v|
118
136
  conflict_str << ', ' unless conflict_str.size == 0
119
- conflict_str << "rubygem(#{d.name}) #{v[0].gsub('!=','=')} #{v[1].to_s}" if v[0] =~ /!=/
137
+ conflict_str << "rubygem(#{d.name}) #{v[0].gsub('!=', '=')} #{v[1].to_s}" if v[0] =~ /!=/
120
138
  }
121
139
  }
122
140
  # returns string with conflicts
123
141
  conflict_str.string
124
142
  end
125
-
126
- # return gem provides clause
143
+
144
+ # return gem provides clause
127
145
  def provides
128
146
  prv_str = StringIO.new
129
147
  prv_str << "rubygem(#{@gemname}) = #{@version}"
130
148
  prv_str.string
131
149
  end
132
-
133
- # return changelog information
150
+
151
+ # return changelog information
134
152
  def changelog
135
153
  change_str = StringIO.new
136
- change_str << "* #{Time.now.strftime('%a %b %d %Y')} rgem2rpm <https://github.com/jppeixoto/rgem2rpm> #{@version}-#{@release}\n"
154
+ change_str << "* #{Time.now.strftime('%a %b %d %Y')} rgem2rpm <https://github.com/ptinovacao/rgem2rpm> #{@version}-#{@release}\n"
137
155
  change_str << "- Create rpm package\n"
138
156
  change_str.string
139
157
  end
140
-
141
- # clean temporary files
158
+
159
+ # clean temporary files
142
160
  def clean
143
161
  FileUtils.rm_rf "#{@name}-#{@version}.spec"
144
162
  FileUtils.rm_rf "./rpmtemp"
145
163
  end
146
-
164
+
147
165
  private
148
- def spec
149
- template = ERB.new(File.read(@template))
150
- # write rpm spec file file
151
- File.open("#{@name}-#{@version}.spec", 'w') { |f|
152
- f.write(template.result(binding))
153
- }
154
- end
155
-
156
- def process_description(description)
157
- res = []
158
- str = description
159
- while str != nil
160
- res << "#{str[0,80]}"
161
- str = str[80,str.size]
162
- end
163
- res.join "\n"
164
- end
165
166
 
166
- def build
167
- create_rpm_env
168
- # move to rpmbuild path
169
- FileUtils.mv "#{@name}-#{@version}.spec", "rpmtemp/rpmbuild/SPECS"
170
- # move sources to rpmbuild
171
- FileUtils.mv "#{@name}-#{@version}.tar.gz", "rpmtemp/rpmbuild/SOURCES"
172
- # define rpm build args
173
- options = "-bb --rmspec --rmsource"
174
- define = "--define \"_topdir #{Dir.pwd}/rpmtemp/rpmbuild\" --define \"_tmppath #{Dir.pwd}/rpmtemp/rpmbuild/tmp\""
175
- specfile = "#{Dir.pwd}/rpmtemp/rpmbuild/SPECS/#{@name}-#{@version}.spec"
176
- # create rpm
177
- res = system "rpmbuild #{options} #{define} #{specfile}"
178
- # check errors
179
- raise "Error creating rpm" unless res
180
- # clean temporary files
181
- Dir.glob("rpmtemp/rpmbuild/RPMS/**/*.rpm") do |file|
182
- FileUtils.mv file, "./"
183
- end
184
- clean
167
+ def spec
168
+ template = ERB.new(File.read(@template))
169
+ # write rpm spec file file
170
+ File.open("#{@name}-#{@version}.spec", 'w') {|f|
171
+ f.write(template.result(binding))
172
+ }
173
+ end
174
+
175
+ def process_description(description)
176
+ res = []
177
+ str = description
178
+ while str != nil
179
+ res << "#{str[0, 80]}"
180
+ str = str[80, str.size]
185
181
  end
186
-
187
- def create_rpm_env
188
- FileUtils.mkdir_p "rpmtemp/rpmbuild/SPECS"
189
- FileUtils.mkdir_p "rpmtemp/rpmbuild/BUILD"
190
- FileUtils.mkdir_p "rpmtemp/rpmbuild/RPMS"
191
- FileUtils.mkdir_p "rpmtemp/rpmbuild/SRPMS"
192
- FileUtils.mkdir_p "rpmtemp/rpmbuild/SOURCES"
193
- FileUtils.mkdir_p "rpmtemp/rpmbuild/tmp"
182
+ res.join "\n"
183
+ end
184
+
185
+ def build
186
+ create_rpm_env
187
+ # move to rpmbuild path
188
+ FileUtils.mv "#{@name}-#{@version}.spec", "rpmtemp/rpmbuild/SPECS"
189
+ # move sources to rpmbuild
190
+ FileUtils.mv "#{@name}-#{@version}.tar.gz", "rpmtemp/rpmbuild/SOURCES"
191
+ # define rpm build args
192
+ options = "-bb --rmspec --rmsource"
193
+ define = "--define \"_topdir #{Dir.pwd}/rpmtemp/rpmbuild\" --define \"_tmppath #{Dir.pwd}/rpmtemp/rpmbuild/tmp\""
194
+ specfile = "#{Dir.pwd}/rpmtemp/rpmbuild/SPECS/#{@name}-#{@version}.spec"
195
+ # create rpm
196
+ res = system "rpmbuild #{options} #{define} #{specfile}"
197
+ # check errors
198
+ raise "Error creating rpm" unless res
199
+ # clean temporary files
200
+ Dir.glob("rpmtemp/rpmbuild/RPMS/**/*.rpm") do |file|
201
+ FileUtils.mv file, "./"
194
202
  end
203
+ clean
204
+ end
205
+
206
+ def create_rpm_env
207
+ FileUtils.mkdir_p "rpmtemp/rpmbuild/SPECS"
208
+ FileUtils.mkdir_p "rpmtemp/rpmbuild/BUILD"
209
+ FileUtils.mkdir_p "rpmtemp/rpmbuild/RPMS"
210
+ FileUtils.mkdir_p "rpmtemp/rpmbuild/SRPMS"
211
+ FileUtils.mkdir_p "rpmtemp/rpmbuild/SOURCES"
212
+ FileUtils.mkdir_p "rpmtemp/rpmbuild/tmp"
213
+ end
214
+
195
215
  end
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module RGem2Rpm
3
- VERSION = '1.4.14'
3
+ VERSION = '1.4.15'
4
4
  end
@@ -7,9 +7,10 @@ Gem::Specification.new do |s|
7
7
  s.required_ruby_version = Gem::Requirement.new(">= 1.8.6")
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 1.4.2") if s.respond_to?(:required_rubygems_version=)
9
9
  s.date = Time.now.strftime("%Y-%m-%d")
10
- s.authors = ["Joao Peixoto"]
11
- s.email = %q{peixoto.joao@gmail.com}
10
+ s.authors = ["Sergio Freire", "Nuno Correia", "Joao Peixoto"]
11
+ s.email = %q{sergio-s-freire@ptinovacao.pt}
12
12
  s.summary = %q{Convert ruby gems into rpm}
13
+ s.license = "MIT"
13
14
  s.homepage = %q{https://github.com/ptinovacao/rgem2rpm}
14
15
  s.description = %q{Application that enables conversion of rubygems to rpms.}
15
16
  s.bindir = 'bin'
metadata CHANGED
@@ -1,55 +1,56 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rgem2rpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.14
5
- prerelease:
4
+ version: 1.4.15
6
5
  platform: ruby
7
6
  authors:
7
+ - Sergio Freire
8
+ - Nuno Correia
8
9
  - Joao Peixoto
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2013-10-11 00:00:00.000000000 Z
13
+ date: 2019-01-16 00:00:00.000000000 Z
13
14
  dependencies: []
14
15
  description: Application that enables conversion of rubygems to rpms.
15
- email: peixoto.joao@gmail.com
16
+ email: sergio-s-freire@ptinovacao.pt
16
17
  executables:
17
18
  - rgem2rpm
18
19
  extensions: []
19
20
  extra_rdoc_files: []
20
21
  files:
22
+ - Rakefile
23
+ - bin/rgem2rpm
24
+ - conf/template.spec
25
+ - lib/rgem2rpm.rb
26
+ - lib/rgem2rpm/argumentparse.rb
21
27
  - lib/rgem2rpm/converter.rb
22
28
  - lib/rgem2rpm/gem.rb
23
- - lib/rgem2rpm/argumentparse.rb
24
- - lib/rgem2rpm/version.rb
25
29
  - lib/rgem2rpm/rpm.rb
26
- - lib/rgem2rpm.rb
27
- - bin/rgem2rpm
28
- - conf/template.spec
30
+ - lib/rgem2rpm/version.rb
29
31
  - rgem2rpm.gemspec
30
- - Rakefile
31
32
  homepage: https://github.com/ptinovacao/rgem2rpm
32
- licenses: []
33
+ licenses:
34
+ - MIT
35
+ metadata: {}
33
36
  post_install_message:
34
37
  rdoc_options: []
35
38
  require_paths:
36
39
  - lib
37
40
  required_ruby_version: !ruby/object:Gem::Requirement
38
- none: false
39
41
  requirements:
40
- - - ! '>='
42
+ - - ">="
41
43
  - !ruby/object:Gem::Version
42
44
  version: 1.8.6
43
45
  required_rubygems_version: !ruby/object:Gem::Requirement
44
- none: false
45
46
  requirements:
46
- - - ! '>='
47
+ - - ">="
47
48
  - !ruby/object:Gem::Version
48
49
  version: 1.4.2
49
50
  requirements: []
50
51
  rubyforge_project:
51
- rubygems_version: 1.8.23
52
+ rubygems_version: 2.7.6
52
53
  signing_key:
53
- specification_version: 3
54
+ specification_version: 4
54
55
  summary: Convert ruby gems into rpm
55
56
  test_files: []