gem2rpm 0.8.4 → 0.9.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/README +9 -3
- data/bin/gem2rpm +1 -2
- data/lib/gem2rpm.rb +15 -28
- data/lib/gem2rpm/format.rb +19 -0
- data/lib/gem2rpm/package.rb +14 -0
- data/lib/gem2rpm/spec_fetcher.rb +17 -0
- data/templates/default.spec.erb +4 -4
- data/templates/fedora-17-18.spec.erb +1 -1
- data/templates/fedora-19-rawhide.spec.erb +1 -1
- data/templates/fedora.spec.erb +1 -1
- metadata +5 -2
data/README
CHANGED
@@ -55,12 +55,18 @@ gem2rpm over it.
|
|
55
55
|
Template Details
|
56
56
|
================
|
57
57
|
|
58
|
-
The template is a standard erb file; there are
|
59
|
-
|
58
|
+
The template is a standard erb file; there are two main variables available
|
59
|
+
in the template file:
|
60
60
|
|
61
|
-
|
61
|
+
package - The Gem::Package for the gem
|
62
62
|
spec - The Gem::Specification for the gem (the same as format.spec)
|
63
63
|
|
64
|
+
Deprecated:
|
65
|
+
|
66
|
+
format - The Gem::Format for the gem. Please note that this is kept
|
67
|
+
just for compatibility reasons, since RubyGems 2.0 removed
|
68
|
+
this class.
|
69
|
+
|
64
70
|
Conventions
|
65
71
|
===========
|
66
72
|
|
data/bin/gem2rpm
CHANGED
@@ -5,7 +5,6 @@ $:.push(File.expand_path(File.dirname(__FILE__) + "/../lib"))
|
|
5
5
|
|
6
6
|
require 'gem2rpm'
|
7
7
|
require 'optparse'
|
8
|
-
require 'rubygems/format'
|
9
8
|
require 'fileutils'
|
10
9
|
require 'open-uri'
|
11
10
|
require 'uri'
|
@@ -141,7 +140,7 @@ if srpm
|
|
141
140
|
end
|
142
141
|
|
143
142
|
if deps
|
144
|
-
|
143
|
+
Gem2Rpm::Package.new(gemfile).spec.dependencies.each do |dep|
|
145
144
|
Gem2Rpm::Dependency.new(dep).requirement.each do |r|
|
146
145
|
puts "rubygem(#{dep.name}) #{r}"
|
147
146
|
end
|
data/lib/gem2rpm.rb
CHANGED
@@ -1,43 +1,30 @@
|
|
1
1
|
require 'erb'
|
2
2
|
require 'socket'
|
3
|
-
require '
|
3
|
+
require 'gem2rpm/package'
|
4
4
|
require 'gem2rpm/distro'
|
5
|
+
require 'gem2rpm/format'
|
6
|
+
require 'gem2rpm/spec_fetcher'
|
5
7
|
require 'gem2rpm/specification'
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
-
# all this logic should be killed
|
10
|
-
GEM_VERSION = Gem::Version.create(Gem::RubyGemsVersion)
|
11
|
-
HAS_REMOTE_INSTALLER = GEM_VERSION < Gem::Version.create("1.0.0")
|
9
|
+
module Gem2Rpm
|
10
|
+
Gem2Rpm::VERSION = "0.9.0"
|
12
11
|
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
def self.find_download_url(name, version)
|
13
|
+
dep = Gem::Dependency.new(name, "=#{version}")
|
14
|
+
fetcher = Gem2Rpm::SpecFetcher.new(Gem::SpecFetcher.fetcher)
|
15
|
+
dummy, source = fetcher.spec_for_dependency(dep, false).first.first
|
16
16
|
|
17
|
-
|
18
|
-
Gem2Rpm::VERSION = "0.8.4"
|
17
|
+
download_path = source.uri
|
19
18
|
|
20
|
-
|
21
|
-
|
22
|
-
installer = Gem::RemoteInstaller.new
|
23
|
-
dummy, download_path = installer.find_gem_to_install(name, "=#{version}")
|
24
|
-
download_path += "/gems/" if download_path.to_s != ""
|
25
|
-
return download_path
|
26
|
-
end
|
27
|
-
else
|
28
|
-
def self.find_download_url(name, version)
|
29
|
-
dep = Gem::Dependency.new(name, "=#{version}")
|
30
|
-
fetcher = Gem::SpecFetcher.fetcher
|
31
|
-
dummy, download_path = fetcher.find_matching(dep, false, false).first
|
32
|
-
download_path += "gems/" if download_path.to_s != ""
|
33
|
-
return download_path
|
34
|
-
end
|
19
|
+
download_path += "gems/" if download_path.to_s != ""
|
20
|
+
return download_path
|
35
21
|
end
|
36
22
|
|
37
23
|
def Gem2Rpm.convert(fname, template=TEMPLATE, out=$stdout,
|
38
24
|
nongem=true, local=false, doc_subpackage = true)
|
39
|
-
|
40
|
-
|
25
|
+
package = Gem2Rpm::Package.new(fname)
|
26
|
+
format = Gem2Rpm::Format.new(package)
|
27
|
+
spec = Gem2Rpm::Specification.new(package.spec)
|
41
28
|
spec.description ||= spec.summary
|
42
29
|
download_path = ""
|
43
30
|
unless local
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'delegate'
|
2
|
+
|
3
|
+
module Gem2Rpm
|
4
|
+
class Format < SimpleDelegator
|
5
|
+
# Returns the value of attribute gem_path
|
6
|
+
def gem_path
|
7
|
+
super
|
8
|
+
rescue
|
9
|
+
spec.file_name
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns the value of attribute file_entries
|
13
|
+
def file_entries
|
14
|
+
super
|
15
|
+
rescue
|
16
|
+
spec.files
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'delegate'
|
2
|
+
require 'rubygems/package'
|
3
|
+
begin
|
4
|
+
require 'rubygems/format'
|
5
|
+
rescue LoadError
|
6
|
+
end
|
7
|
+
|
8
|
+
module Gem2Rpm
|
9
|
+
class Package < SimpleDelegator
|
10
|
+
def initialize(gem)
|
11
|
+
super(Gem::Package.new(gem)) rescue super(Gem::Format.from_file_by_path(gem))
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'delegate'
|
2
|
+
require 'ostruct'
|
3
|
+
|
4
|
+
module Gem2Rpm
|
5
|
+
class SpecFetcher < SimpleDelegator
|
6
|
+
# Find and fetch specs that match +dependency+.
|
7
|
+
#
|
8
|
+
# If +matching_platform+ is false, gems for all platforms are returned.
|
9
|
+
def spec_for_dependency(dependency, matching_platform=true)
|
10
|
+
super
|
11
|
+
rescue
|
12
|
+
spec, source = find_matching(dependency, true, matching_platform).first
|
13
|
+
source = OpenStruct.new(:uri => source)
|
14
|
+
[[[spec, source]]]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/templates/default.spec.erb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Generated from <%=
|
1
|
+
# Generated from <%= package.spec.file_name %> by gem2rpm -*- rpm-spec -*-
|
2
2
|
%define rbname <%= spec.name %>
|
3
3
|
%define version <%= spec.version %>
|
4
4
|
%define release 1
|
@@ -56,14 +56,14 @@ rmdir %{gembuilddir}/bin
|
|
56
56
|
<% for f in spec.executables -%>
|
57
57
|
%{_bindir}/<%= f %>
|
58
58
|
<% end -%>
|
59
|
-
<%
|
59
|
+
<% package.spec.files.each do |entry, data| -%>
|
60
60
|
<% path = entry['path'] -%>
|
61
61
|
<% doc_prefix = spec.extra_rdoc_files.include?(path) ? "%doc " : "" -%>
|
62
62
|
<%= doc_prefix %>%{gemdir}/gems/<%= spec.name %>-<%= spec.version %>/<%= path %>
|
63
63
|
<% end %>
|
64
64
|
|
65
65
|
%doc %{gemdir}/doc/<%= spec.name %>-<%= spec.version %>
|
66
|
-
%{gemdir}/cache/<%=
|
67
|
-
%{gemdir}/specifications/<%=
|
66
|
+
%{gemdir}/cache/<%= package.spec.file_name %>
|
67
|
+
%{gemdir}/specifications/<%= package.spec.file_name %>spec
|
68
68
|
|
69
69
|
%changelog
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Generated from <%=
|
1
|
+
# Generated from <%= package.spec.file_name %> by gem2rpm -*- rpm-spec -*-
|
2
2
|
%global gem_name <%= spec.name %>
|
3
3
|
<%# TODO: Try to check against spec.required_ruby_version -%>
|
4
4
|
%global rubyabi 1.9.1
|
data/templates/fedora.spec.erb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gem2rpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-04-22 00:00:00.000000000 Z
|
14
14
|
dependencies: []
|
15
15
|
description: ! " Generate source rpms and rpm spec files from a Ruby Gem. \n The
|
16
16
|
spec file tries to follow the gem as closely as possible\n"
|
@@ -27,7 +27,10 @@ files:
|
|
27
27
|
- lib/gem2rpm.rb
|
28
28
|
- lib/gem2rpm/dependency.rb
|
29
29
|
- lib/gem2rpm/distro.rb
|
30
|
+
- lib/gem2rpm/format.rb
|
30
31
|
- lib/gem2rpm/helpers.rb
|
32
|
+
- lib/gem2rpm/package.rb
|
33
|
+
- lib/gem2rpm/spec_fetcher.rb
|
31
34
|
- lib/gem2rpm/specification.rb
|
32
35
|
- templates/default.spec.erb
|
33
36
|
- templates/fedora-17-18.spec.erb
|