fpm 0.4.30 → 0.4.31
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 +7 -0
- data/lib/fpm/package.rb +12 -34
- data/lib/fpm/package/rpm.rb +14 -0
- data/lib/fpm/version.rb +1 -1
- data/templates/rpm.erb +3 -2
- metadata +148 -139
data/CHANGELIST
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
0.4.31 (March 21, 2013)
|
2
|
+
- rpm: new flag --rpm-use-file-permissions which try to create an rpm
|
3
|
+
that has file ownership/modes that exactly mirror how they are on
|
4
|
+
the filesystem at package time. (#377, patch by Paul Rhodes)
|
5
|
+
- general: remove empty directories only when they match the exclude
|
6
|
+
pattern (#323, patch by Pranay Kanwar)
|
7
|
+
|
1
8
|
0.4.30 (March 21, 2013)
|
2
9
|
- Solaris: --solaris-user and --solaris-group flags to specify
|
3
10
|
the owner of files in a package. (#342, patch by Derek Olsen)
|
data/lib/fpm/package.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "fpm/namespace" # local
|
2
2
|
require "fpm/util" # local
|
3
3
|
require "pathname" # stdlib
|
4
|
+
require "find"
|
4
5
|
require "tmpdir" # stdlib
|
5
6
|
require "backports" # gem 'backports'
|
6
7
|
require "socket" # stdlib, for Socket.gethostname
|
@@ -361,43 +362,20 @@ class FPM::Package
|
|
361
362
|
installdir = staging_path
|
362
363
|
end
|
363
364
|
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
365
|
+
Find.find(staging_path) do |path|
|
366
|
+
match_path = path.sub("#{staging_path}/", '')
|
367
|
+
|
368
|
+
attributes[:excludes].each do |wildcard|
|
369
|
+
@logger.debug("Checking path against wildcard", :path => path, :wildcard => wildcard)
|
370
|
+
|
371
|
+
if File.fnmatch(wildcard, match_path)
|
372
|
+
@logger.info("Removing excluded path", :path => path, :matches => wildcard)
|
373
|
+
FileUtils.remove_entry_secure(path)
|
374
|
+
Find.prune
|
371
375
|
break
|
372
376
|
end
|
373
377
|
end
|
374
|
-
end
|
375
|
-
|
376
|
-
attributes[:excludes].each do |wildcard|
|
377
|
-
@logger.debug("Checking for things to exclude", :wildcard => wildcard)
|
378
|
-
files.each do |file|
|
379
|
-
@logger.debug("Checking path against wildcard", :path => file, :wildcard => wildcard)
|
380
|
-
if File.fnmatch(wildcard, file)
|
381
|
-
@logger.info("Removing excluded file", :path => file, :matches => wildcard)
|
382
|
-
exclude_path.call(file)
|
383
|
-
next
|
384
|
-
end
|
385
|
-
|
386
|
-
@logger.debug("Checking if path is a child of an excluded directory",
|
387
|
-
:path => file, :wildcard => wildcard,
|
388
|
-
:directory? => File.directory?(staging_path(wildcard)))
|
389
|
-
if File.directory?(staging_path(wildcard))
|
390
|
-
# issue #248, if the excludes entry is a directory, ignore that
|
391
|
-
# directory and anything inside it.
|
392
|
-
exclude_re = Regexp.new("^#{Regexp.escape(wildcard)}($|/)")
|
393
|
-
if exclude_re.match(file)
|
394
|
-
@logger.info("Removing excluded file which has a parent excluded directory",
|
395
|
-
:path => file, :excluded => wildcard)
|
396
|
-
exclude_path.call(file)
|
397
|
-
end
|
398
|
-
end
|
399
|
-
end
|
400
|
-
end # files.each
|
378
|
+
end
|
401
379
|
end # def exclude
|
402
380
|
|
403
381
|
|
data/lib/fpm/package/rpm.rb
CHANGED
@@ -28,6 +28,9 @@ class FPM::Package::RPM < FPM::Package
|
|
28
28
|
"bzip2" => "w9.bzdio"
|
29
29
|
} unless defined?(COMPRESSION_MAP)
|
30
30
|
|
31
|
+
option "--use-file-permissions", :flag,
|
32
|
+
"Use existing file permissions when defining ownership and modes"
|
33
|
+
|
31
34
|
option "--user", "USER",
|
32
35
|
"Set the user to USER in the %files section.",
|
33
36
|
:default => 'root' do |value|
|
@@ -80,6 +83,17 @@ class FPM::Package::RPM < FPM::Package
|
|
80
83
|
|
81
84
|
private
|
82
85
|
|
86
|
+
def rpm_file_entry(file)
|
87
|
+
return file unless attributes[:rpm_use_file_permissions?]
|
88
|
+
|
89
|
+
stat = File.stat( file.gsub(/\"/, '') )
|
90
|
+
user = Etc.getpwuid(stat.uid).name
|
91
|
+
group = Etc.getgrgid(stat.gid).name
|
92
|
+
mode = stat.mode
|
93
|
+
return sprintf("%%attr(%o, %s, %s) %s\n", mode & 4095 , user, group, file)
|
94
|
+
end
|
95
|
+
|
96
|
+
|
83
97
|
# Handle any architecture naming conversions.
|
84
98
|
# For example, debian calls amd64 what redhat calls x86_64, this
|
85
99
|
# method fixes those types of things.
|
data/lib/fpm/version.rb
CHANGED
data/templates/rpm.erb
CHANGED
@@ -119,11 +119,11 @@ cp <%= source_safe %> <%= target_safe %>
|
|
119
119
|
<% end -%>
|
120
120
|
<% subdirs = [] -%>
|
121
121
|
<% directories.each do |path| -%>
|
122
|
-
%dir <%= File.join(prefix, path) %>
|
122
|
+
%dir <%= rpm_file_entry(File.join(prefix, path)) %>
|
123
123
|
<%# We need to include hidden directories, but exclude . and .. -%>
|
124
124
|
<% ::Dir.glob("#{path}/**/*/", File::FNM_DOTMATCH) do |subdir| -%>
|
125
125
|
<% next if File.basename(subdir) =~ /^\.+$/ -%>
|
126
|
-
%dir <%= File.join(prefix, subdir) %>
|
126
|
+
%dir <%= rpm_file_entry(File.join(prefix, subdir)) %>
|
127
127
|
<% subdirs << subdir -%>
|
128
128
|
<% end -%>
|
129
129
|
<% end -%>
|
@@ -146,6 +146,7 @@ cp <%= source_safe %> <%= target_safe %>
|
|
146
146
|
.collect { |f| f.gsub("*", "[*]") } \
|
147
147
|
.collect { |f| f.gsub("?", "[?]") } \
|
148
148
|
.collect { |f| f.gsub("%", "[%]") } \
|
149
|
+
.map { |f| rpm_file_entry(f) } \
|
149
150
|
.join("\n")
|
150
151
|
#.collect { |f| File.join(prefix, f) } \
|
151
152
|
%>
|
metadata
CHANGED
@@ -1,169 +1,169 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: fpm
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 49
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 4
|
9
|
+
- 31
|
10
|
+
version: 0.4.31
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Jordan Sissel
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2013-03-21 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: json
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: 1.7.7
|
22
|
-
type: :runtime
|
23
22
|
prerelease: false
|
24
|
-
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
24
|
none: false
|
26
|
-
requirements:
|
25
|
+
requirements:
|
27
26
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 5
|
29
|
+
segments:
|
30
|
+
- 1
|
31
|
+
- 7
|
32
|
+
- 7
|
29
33
|
version: 1.7.7
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: cabin
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: 0.6.0
|
38
34
|
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: cabin
|
39
38
|
prerelease: false
|
40
|
-
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 7
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
- 6
|
48
|
+
- 0
|
45
49
|
version: 0.6.0
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: backports
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - '='
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 2.6.2
|
54
50
|
type: :runtime
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: backports
|
55
54
|
prerelease: false
|
56
|
-
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - "="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 19
|
61
|
+
segments:
|
62
|
+
- 2
|
63
|
+
- 6
|
64
|
+
- 2
|
61
65
|
version: 2.6.2
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: arr-pm
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ~>
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 0.0.8
|
70
66
|
type: :runtime
|
67
|
+
version_requirements: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: arr-pm
|
71
70
|
prerelease: false
|
72
|
-
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
72
|
none: false
|
74
|
-
requirements:
|
73
|
+
requirements:
|
75
74
|
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 15
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
- 0
|
80
|
+
- 8
|
77
81
|
version: 0.0.8
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: clamp
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - '='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: 0.3.1
|
86
82
|
type: :runtime
|
83
|
+
version_requirements: *id004
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: clamp
|
87
86
|
prerelease: false
|
88
|
-
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- -
|
92
|
-
- !ruby/object:Gem::Version
|
87
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
88
|
+
none: false
|
89
|
+
requirements:
|
90
|
+
- - "="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
hash: 17
|
93
|
+
segments:
|
94
|
+
- 0
|
95
|
+
- 3
|
96
|
+
- 1
|
93
97
|
version: 0.3.1
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: open4
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
|
-
requirements:
|
99
|
-
- - ! '>='
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0'
|
102
98
|
type: :runtime
|
99
|
+
version_requirements: *id005
|
100
|
+
- !ruby/object:Gem::Dependency
|
101
|
+
name: open4
|
103
102
|
prerelease: false
|
104
|
-
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- -
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
|
110
|
-
|
103
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
hash: 3
|
109
|
+
segments:
|
110
|
+
- 0
|
111
|
+
version: "0"
|
112
|
+
type: :runtime
|
113
|
+
version_requirements: *id006
|
114
|
+
- !ruby/object:Gem::Dependency
|
111
115
|
name: rush
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
|
-
requirements:
|
115
|
-
- - ! '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
116
|
prerelease: false
|
120
|
-
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- -
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
none: false
|
130
|
-
requirements:
|
131
|
-
- - ! '>='
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: '0'
|
117
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
118
|
+
none: false
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
hash: 3
|
123
|
+
segments:
|
124
|
+
- 0
|
125
|
+
version: "0"
|
134
126
|
type: :development
|
127
|
+
version_requirements: *id007
|
128
|
+
- !ruby/object:Gem::Dependency
|
129
|
+
name: rspec
|
135
130
|
prerelease: false
|
136
|
-
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- -
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
none: false
|
146
|
-
requirements:
|
147
|
-
- - ~>
|
148
|
-
- !ruby/object:Gem::Version
|
149
|
-
version: 0.0.5
|
131
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
133
|
+
requirements:
|
134
|
+
- - ">="
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
hash: 3
|
137
|
+
segments:
|
138
|
+
- 0
|
139
|
+
version: "0"
|
150
140
|
type: :development
|
141
|
+
version_requirements: *id008
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: insist
|
151
144
|
prerelease: false
|
152
|
-
|
145
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
153
146
|
none: false
|
154
|
-
requirements:
|
147
|
+
requirements:
|
155
148
|
- - ~>
|
156
|
-
- !ruby/object:Gem::Version
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
hash: 21
|
151
|
+
segments:
|
152
|
+
- 0
|
153
|
+
- 0
|
154
|
+
- 5
|
157
155
|
version: 0.0.5
|
158
|
-
|
159
|
-
|
160
|
-
|
156
|
+
type: :development
|
157
|
+
version_requirements: *id009
|
158
|
+
description: Convert directories, rpms, python eggs, rubygems, and more to rpms, debs, solaris packages and more. Win at package management without wasting pointless hours debugging bad rpm specs!
|
161
159
|
email: jls@semicomplete.com
|
162
|
-
executables:
|
160
|
+
executables:
|
163
161
|
- fpm
|
164
162
|
extensions: []
|
163
|
+
|
165
164
|
extra_rdoc_files: []
|
166
|
-
|
165
|
+
|
166
|
+
files:
|
167
167
|
- lib/fpm.rb
|
168
168
|
- lib/fpm/errors.rb
|
169
169
|
- lib/fpm/namespace.rb
|
@@ -184,8 +184,8 @@ files:
|
|
184
184
|
- lib/fpm/package/gem.rb
|
185
185
|
- lib/fpm/package/rpm.rb
|
186
186
|
- lib/fpm/util.rb
|
187
|
-
- lib/fpm/package.rb
|
188
187
|
- lib/fpm/command.rb
|
188
|
+
- lib/fpm/package.rb
|
189
189
|
- lib/fpm/version.rb
|
190
190
|
- bin/fpm
|
191
191
|
- templates/deb.erb
|
@@ -199,28 +199,37 @@ files:
|
|
199
199
|
- CHANGELIST
|
200
200
|
homepage: https://github.com/jordansissel/fpm
|
201
201
|
licenses: []
|
202
|
+
|
202
203
|
post_install_message:
|
203
204
|
rdoc_options: []
|
204
|
-
|
205
|
+
|
206
|
+
require_paths:
|
205
207
|
- lib
|
206
208
|
- lib
|
207
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
209
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
208
210
|
none: false
|
209
|
-
requirements:
|
210
|
-
- -
|
211
|
-
- !ruby/object:Gem::Version
|
212
|
-
|
213
|
-
|
211
|
+
requirements:
|
212
|
+
- - ">="
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
hash: 3
|
215
|
+
segments:
|
216
|
+
- 0
|
217
|
+
version: "0"
|
218
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
214
219
|
none: false
|
215
|
-
requirements:
|
216
|
-
- -
|
217
|
-
- !ruby/object:Gem::Version
|
218
|
-
|
220
|
+
requirements:
|
221
|
+
- - ">="
|
222
|
+
- !ruby/object:Gem::Version
|
223
|
+
hash: 3
|
224
|
+
segments:
|
225
|
+
- 0
|
226
|
+
version: "0"
|
219
227
|
requirements: []
|
228
|
+
|
220
229
|
rubyforge_project:
|
221
|
-
rubygems_version: 1.8.
|
230
|
+
rubygems_version: 1.8.25
|
222
231
|
signing_key:
|
223
232
|
specification_version: 3
|
224
233
|
summary: fpm - package building and mangling
|
225
234
|
test_files: []
|
226
|
-
|
235
|
+
|