fpm 0.1.7 → 0.1.9
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/bin/fpm +3 -1
- data/lib/fpm/builder.rb +2 -2
- data/lib/fpm/source/gem.rb +15 -5
- data/lib/fpm/source/rpm.rb +1 -1
- data/templates/deb.erb +16 -4
- metadata +6 -6
data/bin/fpm
CHANGED
data/lib/fpm/builder.rb
CHANGED
@@ -40,12 +40,12 @@ class FPM::Builder
|
|
40
40
|
@paths = paths
|
41
41
|
@package = package_class_for(settings.package_type).new(@source)
|
42
42
|
# Append dependencies given from settings (-d flag for fpm)
|
43
|
-
@package.dependencies += settings.dependencies
|
43
|
+
@package.dependencies += settings.dependencies if settings.dependencies
|
44
44
|
|
45
45
|
@output = settings.package_path
|
46
46
|
@recurse_dependencies = settings.recurse_dependencies
|
47
47
|
end # def initialize
|
48
|
-
|
48
|
+
|
49
49
|
def tar_path
|
50
50
|
@tar_path ||= "#{builddir}/data.tar"
|
51
51
|
end
|
data/lib/fpm/source/gem.rb
CHANGED
@@ -31,11 +31,16 @@ class FPM::Source::Gem < FPM::Source
|
|
31
31
|
# How to handle prerelease? Some extra magic options?
|
32
32
|
#dep.prerelease = options[:prerelease]
|
33
33
|
|
34
|
-
|
35
|
-
|
34
|
+
if ::Gem::SpecFetcher.fetcher.respond_to?(:fetch_with_errors)
|
35
|
+
specs_and_sources, errors =
|
36
|
+
::Gem::SpecFetcher.fetcher.fetch_with_errors(dep, true, true, false)
|
37
|
+
else
|
38
|
+
specs_and_sources =
|
39
|
+
::Gem::SpecFetcher.fetcher.fetch(dep, true)
|
40
|
+
errors = "???"
|
41
|
+
end
|
36
42
|
spec, source_uri = specs_and_sources.sort_by { |s,| s.version }.last
|
37
43
|
|
38
|
-
|
39
44
|
if spec.nil? then
|
40
45
|
raise "Invalid gem? Name: #{gem_name}, Version: #{version}, Errors: #{errors}"
|
41
46
|
end
|
@@ -67,14 +72,19 @@ class FPM::Source::Gem < FPM::Source
|
|
67
72
|
self[:category] = 'Languages/Development/Ruby'
|
68
73
|
|
69
74
|
self[:dependencies] = spec.runtime_dependencies.map do |dep|
|
70
|
-
|
75
|
+
# rubygems 1.3.5 doesn't have 'Gem::Dependency#requirement'
|
76
|
+
if dep.respond_to?(:requirement)
|
77
|
+
reqs = dep.requirement.to_s.gsub(/,/, '')
|
78
|
+
else
|
79
|
+
reqs = dep.version_requirements
|
80
|
+
end
|
71
81
|
"rubygem-#{dep.name} #{reqs}"
|
72
82
|
end
|
73
83
|
end # ::Gem::Package
|
74
84
|
end # File.open (the gem)
|
75
85
|
end # def get_metadata
|
76
86
|
|
77
|
-
def make_tarball!(tar_path)
|
87
|
+
def make_tarball!(tar_path, builddir)
|
78
88
|
tmpdir = "#{tar_path}.dir"
|
79
89
|
installdir = "#{tmpdir}/#{::Gem::dir}"
|
80
90
|
::FileUtils.mkdir_p(installdir)
|
data/lib/fpm/source/rpm.rb
CHANGED
data/templates/deb.erb
CHANGED
@@ -5,15 +5,27 @@ Maintainer: <%= maintainer or "<unknown>" %>
|
|
5
5
|
<% if dependencies.size > 0 %>
|
6
6
|
<%
|
7
7
|
properdeps = dependencies.collect do |d|
|
8
|
+
# Convert strings 'foo >= bar' to 'foo (>= bar)'
|
8
9
|
if d =~ /\(/
|
9
|
-
|
10
|
+
# nothing
|
10
11
|
else
|
11
|
-
# Convert strings 'foo >= bar' to 'foo (>= bar)'
|
12
12
|
da = d.split(/ +/)
|
13
|
-
"#{da[0]} (#{da[1]} #{da[2]})"
|
13
|
+
d = "#{da[0]} (#{da[1]} #{da[2]})"
|
14
|
+
end
|
15
|
+
|
16
|
+
# Convert gem ~> X.Y.Z to '>= X.Y.Z' and << X.Y+1.0
|
17
|
+
if d =~ /\(~>/
|
18
|
+
name, version = d.gsub(/[()~>]/, "").split(/ +/)[0..1]
|
19
|
+
nextversion = version.split(".").collect { |v| v.to_i }
|
20
|
+
nextversion[1] += 1
|
21
|
+
nextversion[2] = 0
|
22
|
+
nextversion = nextversion.join(".")
|
23
|
+
["#{name} (>= #{version})", "#{name} (<< #{nextversion})"]
|
24
|
+
else
|
25
|
+
d
|
14
26
|
end
|
15
27
|
end
|
16
|
-
%>Depends: <%= properdeps.join(", ") %>
|
28
|
+
%>Depends: <%= properdeps.flatten.join(", ") %>
|
17
29
|
<% end %>
|
18
30
|
Standards-Version: 3.9.1
|
19
31
|
Section: <%= category or "unknown" %>
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 9
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 9
|
10
|
+
version: 0.1.9
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jordan Sissel
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-01-
|
18
|
+
date: 2011-01-20 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -87,7 +87,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
87
87
|
requirements: []
|
88
88
|
|
89
89
|
rubyforge_project:
|
90
|
-
rubygems_version: 1.
|
90
|
+
rubygems_version: 1.4.2
|
91
91
|
signing_key:
|
92
92
|
specification_version: 3
|
93
93
|
summary: fpm - package building and mangling
|