fpm 0.4.20 → 0.4.21
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/CHANGELIST +8 -0
- data/lib/fpm/command.rb +11 -0
- data/lib/fpm/package.rb +13 -2
- data/lib/fpm/package/deb.rb +1 -8
- data/lib/fpm/package/gem.rb +8 -7
- data/lib/fpm/package/pyfpm/__init__.pyc +0 -0
- data/lib/fpm/package/pyfpm/get_metadata.pyc +0 -0
- data/lib/fpm/package/rpm.rb +1 -0
- data/templates/deb.erb +3 -1
- data/templates/rpm.erb +3 -0
- metadata +13 -14
data/CHANGELIST
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
0.4.21 (November 8, 2012)
|
2
|
+
- gem: remove restriction on expected gem names (#287)
|
3
|
+
- add --directory flag; lets you mark a directory as being owned by a
|
4
|
+
package. (#260, #245, patch by ajf8)
|
5
|
+
- deb: don't include a version in the Provides field (#280)
|
6
|
+
- gem: if the version is '1.1' make it imply '1.1.0' (#269, patch by
|
7
|
+
Radim Marek)
|
8
|
+
|
1
9
|
0.4.20 (October 5, 2012)
|
2
10
|
- python: only specify --install-{scripts,lib,data} flags to setup.py if
|
3
11
|
they were given on the command line to fpm. Fixes #273.
|
data/lib/fpm/command.rb
CHANGED
@@ -89,6 +89,12 @@ class FPM::Command < Clamp::Command
|
|
89
89
|
@config_files ||= []
|
90
90
|
@config_files << val
|
91
91
|
end # --config-files
|
92
|
+
option "--directories", "DIRECTORIES",
|
93
|
+
"Mark a directory as being owned by the package" \
|
94
|
+
do |val|
|
95
|
+
@directories ||= []
|
96
|
+
@directories << val
|
97
|
+
end # directories
|
92
98
|
option ["-a", "--architecture"], "ARCHITECTURE",
|
93
99
|
"The architecture name. Usually matches 'uname -m'. For automatic values," \
|
94
100
|
" you can use '-a all' or '-a native'. These two strings will be " \
|
@@ -204,6 +210,7 @@ class FPM::Command < Clamp::Command
|
|
204
210
|
@provides = []
|
205
211
|
@dependencies = []
|
206
212
|
@config_files = []
|
213
|
+
@directories = []
|
207
214
|
@excludes = []
|
208
215
|
end # def initialize
|
209
216
|
|
@@ -332,6 +339,7 @@ class FPM::Command < Clamp::Command
|
|
332
339
|
input.provides += provides
|
333
340
|
input.replaces += replaces
|
334
341
|
input.config_files += config_files
|
342
|
+
input.directories += directories
|
335
343
|
|
336
344
|
setscript = proc do |scriptname|
|
337
345
|
# 'self.send(scriptname) == self.before_install == --before-install
|
@@ -390,6 +398,9 @@ class FPM::Command < Clamp::Command
|
|
390
398
|
rescue FPM::InvalidPackageConfiguration => e
|
391
399
|
@logger.error("Invalid package configuration: #{e}")
|
392
400
|
return 1
|
401
|
+
rescue FPM::Package::InvalidArgument => e
|
402
|
+
@logger.error("Invalid package argument: #{e}")
|
403
|
+
return 1
|
393
404
|
ensure
|
394
405
|
input.cleanup unless input.nil?
|
395
406
|
output.cleanup unless output.nil?
|
data/lib/fpm/package.rb
CHANGED
@@ -104,6 +104,8 @@ class FPM::Package
|
|
104
104
|
# Array of configuration files
|
105
105
|
attr_accessor :config_files
|
106
106
|
|
107
|
+
attr_accessor :directories
|
108
|
+
|
107
109
|
# Any other attributes specific to this package.
|
108
110
|
# This is where you'd put rpm, deb, or other specific attributes.
|
109
111
|
attr_accessor :attributes
|
@@ -168,6 +170,7 @@ class FPM::Package
|
|
168
170
|
@dependencies = []
|
169
171
|
@scripts = {}
|
170
172
|
@config_files = []
|
173
|
+
@directories = []
|
171
174
|
|
172
175
|
staging_path
|
173
176
|
build_path
|
@@ -194,7 +197,7 @@ class FPM::Package
|
|
194
197
|
:@architecture, :@attributes, :@category, :@config_files, :@conflicts,
|
195
198
|
:@dependencies, :@description, :@epoch, :@iteration, :@license, :@maintainer,
|
196
199
|
:@name, :@provides, :@replaces, :@scripts, :@url, :@vendor, :@version,
|
197
|
-
:@
|
200
|
+
:@directories, :@staging_path
|
198
201
|
]
|
199
202
|
ivars.each do |ivar|
|
200
203
|
#@logger.debug("Copying ivar", :ivar => ivar, :value => instance_variable_get(ivar),
|
@@ -502,9 +505,17 @@ class FPM::Package
|
|
502
505
|
end
|
503
506
|
end # def output_path
|
504
507
|
|
508
|
+
def provides=(value)
|
509
|
+
if !value.is_a?(Array)
|
510
|
+
@provides = [value]
|
511
|
+
else
|
512
|
+
@provides = value
|
513
|
+
end
|
514
|
+
end
|
515
|
+
|
505
516
|
# General public API
|
506
517
|
public(:type, :initialize, :convert, :input, :output, :to_s, :cleanup, :files,
|
507
|
-
:version, :script)
|
518
|
+
:version, :script, :provides=)
|
508
519
|
|
509
520
|
# Package internal public api
|
510
521
|
public(:cleanup_staging, :cleanup_build, :staging_path, :converted_from,
|
data/lib/fpm/package/deb.rb
CHANGED
@@ -170,6 +170,7 @@ class FPM::Package::Deb < FPM::Package
|
|
170
170
|
self.name = parse.call("Package")
|
171
171
|
self.url = parse.call("Homepage")
|
172
172
|
self.vendor = parse.call("Vendor") || self.vendor
|
173
|
+
self.provides = parse.call("Provides") || self.provides
|
173
174
|
|
174
175
|
# The description field is a special flower, parse it that way.
|
175
176
|
# The description is the first line as a normal Description field, but also continues
|
@@ -286,14 +287,6 @@ class FPM::Package::Deb < FPM::Package
|
|
286
287
|
@logger.log("Created deb package", :path => output_path)
|
287
288
|
end # def output
|
288
289
|
|
289
|
-
def default_output
|
290
|
-
if iteration
|
291
|
-
"#{name}_#{version}-#{iteration}_#{architecture}.#{type}"
|
292
|
-
else
|
293
|
-
"#{name}_#{version}_#{architecture}.#{type}"
|
294
|
-
end
|
295
|
-
end # def default_output
|
296
|
-
|
297
290
|
def converted_from(origin)
|
298
291
|
self.dependencies = self.dependencies.collect do |dep|
|
299
292
|
fix_dependency(dep)
|
data/lib/fpm/package/gem.rb
CHANGED
@@ -51,12 +51,7 @@ class FPM::Package::Gem < FPM::Package
|
|
51
51
|
def download_if_necessary(gem, gem_version)
|
52
52
|
path = gem
|
53
53
|
if !File.exists?(path)
|
54
|
-
|
55
|
-
if path =~ looks_like_name_re
|
56
|
-
path = download(gem, gem_version)
|
57
|
-
else
|
58
|
-
raise FPM::Package::InvalidArgument.new("Gem '#{gem}' doesn't appear to be a valid rubygem file or name?")
|
59
|
-
end
|
54
|
+
path = download(gem, gem_version)
|
60
55
|
end
|
61
56
|
|
62
57
|
@logger.info("Using gem file", :path => path)
|
@@ -112,7 +107,13 @@ class FPM::Package::Gem < FPM::Package
|
|
112
107
|
|
113
108
|
#self.name = [attributes[:gem_package_name_prefix], spec.name].join("-")
|
114
109
|
self.license = (spec.license or "no license listed in #{File.basename(file)}")
|
115
|
-
|
110
|
+
|
111
|
+
# expand spec's version to match RationalVersioningPolicy to prevent cases
|
112
|
+
# where missing 'build' number prevents correct dependency resolution by target
|
113
|
+
# package manager. Ie. for dpkg 1.1 != 1.1.0
|
114
|
+
m = spec.version.to_s.match /^(\d)?.?(\d+)?.?(\d+)?/
|
115
|
+
self.version = m.captures.map {|m| m ? m : 0}.join('.')
|
116
|
+
|
116
117
|
self.vendor = spec.author
|
117
118
|
self.url = spec.homepage
|
118
119
|
self.category = "Languages/Development/Ruby"
|
Binary file
|
Binary file
|
data/lib/fpm/package/rpm.rb
CHANGED
data/templates/deb.erb
CHANGED
@@ -16,7 +16,9 @@ Conflicts: <%= conflicts.join(", ") %>
|
|
16
16
|
#Pre-Depends: <%#= properpredeps.flatten.join(", ") %>
|
17
17
|
<%# end -%>
|
18
18
|
<% if !provides.empty? -%>
|
19
|
-
|
19
|
+
<%# Turn each provides from 'foo = 123' to simply 'foo' because Debian :\ -%>
|
20
|
+
<%# http://www.debian.org/doc/debian-policy/ch-relationships.html %>
|
21
|
+
Provides: <%= provides.first.split(" ").first %>
|
20
22
|
<% end -%>
|
21
23
|
<% if !replaces.empty? -%>
|
22
24
|
Replaces: <%= replaces.join(", ") %>
|
data/templates/rpm.erb
CHANGED
@@ -107,6 +107,9 @@ fi
|
|
107
107
|
<% config_files.each do |path| -%>
|
108
108
|
%config(noreplace) <%= File.join(prefix, path) %>
|
109
109
|
<% end -%>
|
110
|
+
<% directories.each do |path| -%>
|
111
|
+
%dir <%= File.join(prefix, path) %>
|
112
|
+
<% end -%>
|
110
113
|
<%# list only files, not directories? -%>
|
111
114
|
<%=
|
112
115
|
# Reject config files already listed or parent directories, then prefix files
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.21
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -152,28 +152,28 @@ files:
|
|
152
152
|
- lib/fpm/command.rb
|
153
153
|
- lib/fpm/namespace.rb
|
154
154
|
- lib/fpm/package.rb
|
155
|
-
- lib/fpm/errors.rb
|
156
|
-
- lib/fpm/package/gem.rb
|
157
|
-
- lib/fpm/package/dir.rb
|
158
|
-
- lib/fpm/package/pyfpm/__init__.pyc
|
159
155
|
- lib/fpm/package/pyfpm/get_metadata.pyc
|
160
156
|
- lib/fpm/package/pyfpm/get_metadata.py
|
157
|
+
- lib/fpm/package/pyfpm/__init__.pyc
|
161
158
|
- lib/fpm/package/pyfpm/__init__.py
|
162
|
-
- lib/fpm/package/
|
163
|
-
- lib/fpm/package/pear.rb
|
159
|
+
- lib/fpm/package/tar.rb
|
164
160
|
- lib/fpm/package/deb.rb
|
165
|
-
- lib/fpm/package/
|
166
|
-
- lib/fpm/package/rpm.rb
|
161
|
+
- lib/fpm/package/dir.rb
|
167
162
|
- lib/fpm/package/puppet.rb
|
168
|
-
- lib/fpm/package/
|
163
|
+
- lib/fpm/package/gem.rb
|
164
|
+
- lib/fpm/package/python.rb
|
169
165
|
- lib/fpm/package/solaris.rb
|
166
|
+
- lib/fpm/package/rpm.rb
|
167
|
+
- lib/fpm/package/npm.rb
|
168
|
+
- lib/fpm/package/pear.rb
|
169
|
+
- lib/fpm/errors.rb
|
170
170
|
- lib/fpm/util.rb
|
171
171
|
- lib/fpm.rb
|
172
172
|
- bin/fpm-npm
|
173
173
|
- bin/fpm
|
174
|
-
- templates/deb.erb
|
175
|
-
- templates/rpm.erb
|
176
174
|
- templates/solaris.erb
|
175
|
+
- templates/rpm.erb
|
176
|
+
- templates/deb.erb
|
177
177
|
- templates/puppet/package/remove.pp.erb
|
178
178
|
- templates/puppet/package.pp.erb
|
179
179
|
- LICENSE
|
@@ -205,4 +205,3 @@ signing_key:
|
|
205
205
|
specification_version: 3
|
206
206
|
summary: fpm - package building and mangling
|
207
207
|
test_files: []
|
208
|
-
has_rdoc:
|