fpm 1.11.0 → 1.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.rst +94 -5
- data/CONTRIBUTORS +1 -0
- data/LICENSE +1 -1
- data/lib/fpm/command.rb +90 -0
- data/lib/fpm/package/apk.rb +1 -1
- data/lib/fpm/package/cpan.rb +2 -1
- data/lib/fpm/package/deb.rb +157 -31
- data/lib/fpm/package/dir.rb +3 -3
- data/lib/fpm/package/empty.rb +13 -1
- data/lib/fpm/package/freebsd.rb +13 -20
- data/lib/fpm/package/gem.rb +50 -14
- data/lib/fpm/package/osxpkg.rb +6 -1
- data/lib/fpm/package/pacman.rb +22 -10
- data/lib/fpm/package/pleaserun.rb +1 -0
- data/lib/fpm/package/pyfpm/get_metadata.py +5 -0
- data/lib/fpm/package/python.rb +54 -7
- data/lib/fpm/package/rpm.rb +54 -15
- data/lib/fpm/package/sh.rb +1 -1
- data/lib/fpm/package/tar.rb +1 -1
- data/lib/fpm/package/virtualenv.rb +2 -0
- data/lib/fpm/package/zip.rb +1 -1
- data/lib/fpm/package.rb +5 -4
- data/lib/fpm/util/tar_writer.rb +1 -1
- data/lib/fpm/util.rb +59 -46
- data/lib/fpm/version.rb +1 -1
- data/templates/deb/changelog.erb +1 -1
- data/templates/deb/deb.changes.erb +1 -1
- data/templates/deb/postinst_upgrade.sh.erb +30 -8
- data/templates/deb/postrm_upgrade.sh.erb +5 -0
- data/templates/deb/preinst_upgrade.sh.erb +5 -0
- data/templates/deb/prerm_upgrade.sh.erb +12 -4
- data/templates/deb.erb +1 -1
- data/templates/rpm.erb +5 -5
- data/templates/sh.erb +6 -1
- metadata +29 -77
data/lib/fpm/util.rb
CHANGED
@@ -1,21 +1,8 @@
|
|
1
1
|
require "fpm/namespace"
|
2
|
-
require "childprocess"
|
3
|
-
require "ffi"
|
4
2
|
require "fileutils"
|
5
3
|
|
6
4
|
# Some utility functions
|
7
5
|
module FPM::Util
|
8
|
-
extend FFI::Library
|
9
|
-
ffi_lib FFI::Library::LIBC
|
10
|
-
|
11
|
-
# mknod is __xmknod in glibc a wrapper around mknod to handle
|
12
|
-
# various stat struct formats. See bits/stat.h in glibc source
|
13
|
-
begin
|
14
|
-
attach_function :mknod, :mknod, [:string, :uint, :ulong], :int
|
15
|
-
rescue FFI::NotFoundError
|
16
|
-
# glibc/io/xmknod.c int __xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
|
17
|
-
attach_function :xmknod, :__xmknod, [:int, :string, :uint, :pointer], :int
|
18
|
-
end
|
19
6
|
|
20
7
|
# Raised if safesystem cannot find the program to run.
|
21
8
|
class ExecutableNotFound < StandardError; end
|
@@ -23,6 +10,12 @@ module FPM::Util
|
|
23
10
|
# Raised if a safesystem program exits nonzero
|
24
11
|
class ProcessFailed < StandardError; end
|
25
12
|
|
13
|
+
# Raised when a named pipe cannot be copied due to missing functions in fpm and ruby.
|
14
|
+
class NamedPipeCannotBeCopied < StandardError; end
|
15
|
+
|
16
|
+
# Raised when an attempting to copy a special file such as a block device.
|
17
|
+
class UnsupportedSpecialFile < StandardError; end
|
18
|
+
|
26
19
|
# Is the given program in the system's PATH?
|
27
20
|
def program_in_path?(program)
|
28
21
|
# return false if path is not set
|
@@ -146,42 +139,37 @@ module FPM::Util
|
|
146
139
|
|
147
140
|
stdout_r, stdout_w = IO.pipe
|
148
141
|
stderr_r, stderr_w = IO.pipe
|
142
|
+
stdin_r, stdin_w = IO.pipe
|
149
143
|
|
150
|
-
|
151
|
-
process.environment.merge!(env)
|
152
|
-
|
153
|
-
process.io.stdout = stdout_w
|
154
|
-
process.io.stderr = stderr_w
|
155
|
-
|
156
|
-
if block_given? and opts[:stdin]
|
157
|
-
process.duplex = true
|
158
|
-
end
|
159
|
-
|
160
|
-
process.start
|
144
|
+
pid = Process.spawn(env, *args2, :out => stdout_w, :err => stderr_w, :in => stdin_r)
|
161
145
|
|
162
146
|
stdout_w.close; stderr_w.close
|
163
|
-
logger.debug("Process is running", :pid =>
|
147
|
+
logger.debug("Process is running", :pid => pid)
|
164
148
|
if block_given?
|
165
149
|
args3 = []
|
166
150
|
args3.push(process) if opts[:process]
|
167
|
-
args3.push(
|
151
|
+
args3.push(stdin_w) if opts[:stdin]
|
168
152
|
args3.push(stdout_r) if opts[:stdout]
|
169
153
|
args3.push(stderr_r) if opts[:stderr]
|
170
154
|
|
171
155
|
yield(*args3)
|
172
156
|
|
173
|
-
|
157
|
+
stdin_w.close if opts[:stdin] and not stdin_w.closed?
|
174
158
|
stdout_r.close unless stdout_r.closed?
|
175
159
|
stderr_r.close unless stderr_r.closed?
|
176
160
|
else
|
161
|
+
# If no block given (not interactive) we should close stdin_w because we
|
162
|
+
# won't be able to give input which may cause a hang.
|
163
|
+
stdin_w.close
|
177
164
|
# Log both stdout and stderr as 'info' because nobody uses stderr for
|
178
165
|
# actually reporting errors and as a result 'stderr' is a misnomer.
|
179
166
|
logger.pipe(stdout_r => :info, stderr_r => :info)
|
180
167
|
end
|
181
168
|
|
182
|
-
|
169
|
+
Process.waitpid(pid)
|
170
|
+
status = $?
|
183
171
|
|
184
|
-
return
|
172
|
+
return status.exitstatus
|
185
173
|
end # def execmd
|
186
174
|
|
187
175
|
# Run a command safely in a way that gets reports useful errors.
|
@@ -316,19 +304,6 @@ module FPM::Util
|
|
316
304
|
return @@tar_cmd_deterministic
|
317
305
|
end
|
318
306
|
|
319
|
-
# wrapper around mknod ffi calls
|
320
|
-
def mknod_w(path, mode, dev)
|
321
|
-
rc = -1
|
322
|
-
case %x{uname -s}.chomp
|
323
|
-
when 'Linux'
|
324
|
-
# bits/stat.h #define _MKNOD_VER_LINUX 0
|
325
|
-
rc = xmknod(0, path, mode, FFI::MemoryPointer.new(dev))
|
326
|
-
else
|
327
|
-
rc = mknod(path, mode, dev)
|
328
|
-
end
|
329
|
-
rc
|
330
|
-
end
|
331
|
-
|
332
307
|
def copy_metadata(source, destination)
|
333
308
|
source_stat = File::lstat(source)
|
334
309
|
dest_stat = File::lstat(destination)
|
@@ -354,10 +329,21 @@ module FPM::Util
|
|
354
329
|
|
355
330
|
def copy_entry(src, dst, preserve=false, remove_destination=false)
|
356
331
|
case File.ftype(src)
|
357
|
-
when 'fifo'
|
358
|
-
|
359
|
-
|
360
|
-
|
332
|
+
when 'fifo'
|
333
|
+
if File.respond_to?(:mkfifo)
|
334
|
+
File.mkfifo(dst)
|
335
|
+
elsif program_exists?("mkfifo")
|
336
|
+
safesystem("mkfifo", dst)
|
337
|
+
else
|
338
|
+
raise NamedPipeCannotBeCopied("Unable to copy. Cannot find program 'mkfifo' and Ruby is missing the 'File.mkfifo' method: #{src}")
|
339
|
+
end
|
340
|
+
when 'socket'
|
341
|
+
require "socket"
|
342
|
+
# In 2019, Ruby's FileUtils added this as a way to "copy" a unix socket.
|
343
|
+
# Reference: https://github.com/ruby/fileutils/pull/36/files
|
344
|
+
UNIXServer.new(dst).close()
|
345
|
+
when 'characterSpecial', 'blockSpecial'
|
346
|
+
raise UnsupportedSpecialFile.new("File is device which fpm doesn't know how to copy (#{File.ftype(src)}): #{src}")
|
361
347
|
when 'directory'
|
362
348
|
FileUtils.mkdir(dst) unless File.exists? dst
|
363
349
|
else
|
@@ -423,6 +409,33 @@ module FPM::Util
|
|
423
409
|
def logger
|
424
410
|
@logger ||= Cabin::Channel.get
|
425
411
|
end # def logger
|
412
|
+
|
413
|
+
def erbnew(template_code)
|
414
|
+
# In Ruby 2.6(?), Ruby changed how ERB::new is invoked.
|
415
|
+
# First, it added keyword args like `ERB.new(..., trim_mode: "-")`
|
416
|
+
# Later, it deprecated then removed the safe_level feature.
|
417
|
+
# As of Ruby 3.1, warnings are printed at runtime when ERB.new is called with the old syntax.
|
418
|
+
# Ruby 2.5 and older does not support the ERB.new keyword args.
|
419
|
+
#
|
420
|
+
# My tests showed:
|
421
|
+
# * Ruby 2.3.0 through 3.0 work correctly with the old syntax.
|
422
|
+
# * Ruby 3.1.0 and newer (at time of writing, Ruby 3.2) require the new syntax
|
423
|
+
# Therefore, in order to support the most versions of ruby, we need to do a version check
|
424
|
+
# to invoke ERB.new correctly and without printed warnings.
|
425
|
+
# References: https://github.com/jordansissel/fpm/issues/1894
|
426
|
+
# Honestly, I'm not sure if Gem::Version is correct to use in this situation, but it works.
|
427
|
+
|
428
|
+
# on older versions of Ruby, RUBY_VERSION is a frozen string, and
|
429
|
+
# Gem::Version.new calls String#strip! which throws an exception.
|
430
|
+
# so we have to call String#dup to get an unfrozen copy.
|
431
|
+
if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new("3.1.0")
|
432
|
+
# Ruby 3.0.x and older
|
433
|
+
return ERB.new(template_code, nil, "-")
|
434
|
+
else
|
435
|
+
# Ruby 3.1.0 and newer
|
436
|
+
return ERB.new(template_code, trim_mode: "-")
|
437
|
+
end
|
438
|
+
end
|
426
439
|
end # module FPM::Util
|
427
440
|
|
428
441
|
require 'fpm/util/tar_writer'
|
data/lib/fpm/version.rb
CHANGED
data/templates/deb/changelog.erb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
<%= name %> (<%= "#{epoch}:" if epoch %><%= version %><%= "-" + iteration.to_s if iteration %>)
|
1
|
+
<%= name %> (<%= "#{epoch}:" if epoch %><%= version %><%= "-" + iteration.to_s if iteration %>) <%= distribution %>; urgency=medium
|
2
2
|
|
3
3
|
* Package created with FPM.
|
4
4
|
|
@@ -14,7 +14,7 @@ Description: <%= firstline %>
|
|
14
14
|
<%= remainder.collect { |l| l =~ /^ *$/ ? " ." : " #{l}" }.join("\n") %>
|
15
15
|
<% end -%>
|
16
16
|
Changes:
|
17
|
-
<%= name %> (<%= "#{epoch}:" if epoch %><%= version %><%= "-" + iteration.to_s if iteration %>)
|
17
|
+
<%= name %> (<%= "#{epoch}:" if epoch %><%= version %><%= "-" + iteration.to_s if iteration %>) <%= distribution %>; urgency=medium
|
18
18
|
* Package created with FPM.
|
19
19
|
Checksums-Sha1:
|
20
20
|
<% changes_files.each do |file| -%>
|
@@ -1,4 +1,9 @@
|
|
1
1
|
#!/bin/sh
|
2
|
+
|
3
|
+
<% if attributes[:deb_maintainerscripts_force_errorchecks?] -%>
|
4
|
+
set -e
|
5
|
+
<% end -%>
|
6
|
+
|
2
7
|
after_upgrade() {
|
3
8
|
<%# Making sure that at least one command is in the function -%>
|
4
9
|
<%# avoids a lot of potential errors, including the case that -%>
|
@@ -8,18 +13,27 @@ after_upgrade() {
|
|
8
13
|
<%= script(:after_upgrade) %>
|
9
14
|
<% end -%>
|
10
15
|
|
11
|
-
|
16
|
+
<%# if any systemd services specified, loop through and start them -%>
|
17
|
+
<% if attributes[:deb_systemd].any? -%>
|
12
18
|
systemctl --system daemon-reload >/dev/null || true
|
13
|
-
|
19
|
+
debsystemctl=$(command -v deb-systemd-invoke || echo systemctl)
|
20
|
+
<% attributes[:deb_systemd].each do |service| -%>
|
21
|
+
if ! systemctl is-enabled <%= service %> >/dev/null
|
14
22
|
then
|
15
|
-
|
16
|
-
|
23
|
+
: # Ensure this if-clause is not empty. If it were empty, and we had an 'else', then it is an error in shell syntax
|
24
|
+
<% if attributes[:deb_systemd_enable?]-%>
|
25
|
+
systemctl enable <%= service %> >/dev/null || true
|
26
|
+
<% end -%>
|
27
|
+
<% if attributes[:deb_systemd_auto_start?]-%>
|
28
|
+
$debsystemctl start <%= service %> >/dev/null || true
|
29
|
+
<% end -%>
|
17
30
|
<% if attributes[:deb_systemd_restart_after_upgrade?] -%>
|
18
31
|
else
|
19
|
-
|
32
|
+
$debsystemctl restart <%= service %> >/dev/null || true
|
20
33
|
<% end -%>
|
21
34
|
fi
|
22
35
|
<% end -%>
|
36
|
+
<% end -%>
|
23
37
|
}
|
24
38
|
|
25
39
|
after_install() {
|
@@ -31,10 +45,18 @@ after_install() {
|
|
31
45
|
<%= script(:after_install) %>
|
32
46
|
<% end -%>
|
33
47
|
|
34
|
-
|
48
|
+
<%# if any systemd services specified, loop through and start them -%>
|
49
|
+
<% if attributes[:deb_systemd].any? -%>
|
35
50
|
systemctl --system daemon-reload >/dev/null || true
|
36
|
-
|
37
|
-
|
51
|
+
debsystemctl=$(command -v deb-systemd-invoke || echo systemctl)
|
52
|
+
<% attributes[:deb_systemd].each do |service| -%>
|
53
|
+
<% if attributes[:deb_systemd_enable?]-%>
|
54
|
+
systemctl enable <%= service %> >/dev/null || true
|
55
|
+
<% end -%>
|
56
|
+
<% if attributes[:deb_systemd_auto_start?]-%>
|
57
|
+
$debsystemctl start <%= service %> >/dev/null || true
|
58
|
+
<% end -%>
|
59
|
+
<% end -%>
|
38
60
|
<% end -%>
|
39
61
|
}
|
40
62
|
|
@@ -1,4 +1,9 @@
|
|
1
1
|
#!/bin/sh
|
2
|
+
|
3
|
+
<% if attributes[:deb_maintainerscripts_force_errorchecks?] -%>
|
4
|
+
set -e
|
5
|
+
<% end -%>
|
6
|
+
|
2
7
|
before_remove() {
|
3
8
|
<%# Making sure that at least one command is in the function -%>
|
4
9
|
<%# avoids a lot of potential errors, including the case that -%>
|
@@ -8,10 +13,13 @@ before_remove() {
|
|
8
13
|
<%= script(:before_remove) %>
|
9
14
|
<% end -%>
|
10
15
|
|
11
|
-
<%#
|
12
|
-
<% if attributes[:deb_systemd] -%>
|
13
|
-
|
14
|
-
|
16
|
+
<%# Stop and remove any systemd services that were installed-%>
|
17
|
+
<% if attributes[:deb_systemd].any? -%>
|
18
|
+
debsystemctl=$(command -v deb-systemd-invoke || echo systemctl)
|
19
|
+
<% attributes[:deb_systemd].each do |service| -%>
|
20
|
+
$debsystemctl stop <%= service %> >/dev/null || true
|
21
|
+
systemctl disable <%= service %> >/dev/null || true
|
22
|
+
<% end -%>
|
15
23
|
systemctl --system daemon-reload >/dev/null || true
|
16
24
|
<% end -%>
|
17
25
|
}
|
data/templates/deb.erb
CHANGED
@@ -25,7 +25,7 @@ Build-Depends: <%= attributes[:deb_build_depends].collect { |d| fix_dependency(d
|
|
25
25
|
<% if !provides.empty? -%>
|
26
26
|
<%# Turn each provides from 'foo = 123' to simply 'foo' because Debian :\ -%>
|
27
27
|
<%# http://www.debian.org/doc/debian-policy/ch-relationships.html -%>
|
28
|
-
Provides: <%= provides.
|
28
|
+
Provides: <%= provides.join ", " %>
|
29
29
|
<% end -%>
|
30
30
|
<% if !replaces.empty? -%>
|
31
31
|
Replaces: <%= replaces.collect { |d| fix_dependency(d) }.flatten.join(", ") %>
|
data/templates/rpm.erb
CHANGED
@@ -126,7 +126,7 @@ Obsoletes: <%= repl %>
|
|
126
126
|
-%>
|
127
127
|
<% if script?(:before_upgrade) or script?(:after_upgrade) -%>
|
128
128
|
<% if script?(:before_upgrade) or script?(:before_install) -%>
|
129
|
-
%pre
|
129
|
+
%pre <% if attributes[:rpm_macro_expansion?] -%><%= " -e " %> <% end %>
|
130
130
|
upgrade() {
|
131
131
|
<%# Making sure that at least one command is in the function -%>
|
132
132
|
<%# avoids a lot of potential errors, including the case that -%>
|
@@ -156,7 +156,7 @@ then
|
|
156
156
|
fi
|
157
157
|
<% end -%>
|
158
158
|
<% if script?(:after_upgrade) or script?(:after_install) -%>
|
159
|
-
%post
|
159
|
+
%post <% if attributes[:rpm_macro_expansion?] -%><%= " -e " %> <% end %>
|
160
160
|
upgrade() {
|
161
161
|
<%# Making sure that at least one command is in the function -%>
|
162
162
|
<%# avoids a lot of potential errors, including the case that -%>
|
@@ -186,7 +186,7 @@ then
|
|
186
186
|
fi
|
187
187
|
<% end -%>
|
188
188
|
<% if script?(:before_remove) -%>
|
189
|
-
%preun
|
189
|
+
%preun <% if attributes[:rpm_macro_expansion?] -%><%= " -e " %> <% end %>
|
190
190
|
if [ "${1}" -eq 0 ]
|
191
191
|
then
|
192
192
|
<%# Making sure that at least one command is in the function -%>
|
@@ -197,7 +197,7 @@ then
|
|
197
197
|
fi
|
198
198
|
<% end -%>
|
199
199
|
<% if script?(:after_remove) -%>
|
200
|
-
%postun
|
200
|
+
%postun <% if attributes[:rpm_macro_expansion?] -%><%= " -e " %> <% end %>
|
201
201
|
if [ "${1}" -eq 0 ]
|
202
202
|
then
|
203
203
|
<%# Making sure that at least one command is in the function -%>
|
@@ -219,7 +219,7 @@ fi
|
|
219
219
|
-%>
|
220
220
|
<% scriptmap.each do |name, rpmname| -%>
|
221
221
|
<% if script?(name) -%>
|
222
|
-
%<%= rpmname %>
|
222
|
+
%<%= rpmname -%> <%= ' -e' if attributes[:rpm_macro_expansion?] %>
|
223
223
|
<%= script(name) %>
|
224
224
|
<% end -%>
|
225
225
|
<% end -%>
|
data/templates/sh.erb
CHANGED
@@ -268,7 +268,12 @@ function clean_out_old_releases(){
|
|
268
268
|
function print_package_metadata(){
|
269
269
|
local metadata_line=$(grep -a -n -m1 '__METADATA__$' $0 | sed 's/:.*//')
|
270
270
|
local archive_line=$(grep -a -n -m1 '__ARCHIVE__$' $0 | sed 's/:.*//')
|
271
|
-
|
271
|
+
|
272
|
+
# This used to be a sed call but it was taking _forever_ and this method is super fast
|
273
|
+
local start_at=$((metadata_line + 1))
|
274
|
+
local take_num=$((archive_line - start_at))
|
275
|
+
|
276
|
+
head -n${start_at} $0 | tail -n${take_num}
|
272
277
|
}
|
273
278
|
|
274
279
|
function print_usage(){
|
metadata
CHANGED
@@ -1,35 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordan Sissel
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-11-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: json
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 1.7.7
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '2.0'
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
requirements:
|
27
|
-
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 1.7.7
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '2.0'
|
33
13
|
- !ruby/object:Gem::Dependency
|
34
14
|
name: cabin
|
35
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -64,14 +44,14 @@ dependencies:
|
|
64
44
|
requirements:
|
65
45
|
- - "~>"
|
66
46
|
- !ruby/object:Gem::Version
|
67
|
-
version: 0.0.
|
47
|
+
version: 0.0.11
|
68
48
|
type: :runtime
|
69
49
|
prerelease: false
|
70
50
|
version_requirements: !ruby/object:Gem::Requirement
|
71
51
|
requirements:
|
72
52
|
- - "~>"
|
73
53
|
- !ruby/object:Gem::Version
|
74
|
-
version: 0.0.
|
54
|
+
version: 0.0.11
|
75
55
|
- !ruby/object:Gem::Dependency
|
76
56
|
name: clamp
|
77
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -87,21 +67,21 @@ dependencies:
|
|
87
67
|
- !ruby/object:Gem::Version
|
88
68
|
version: 1.0.0
|
89
69
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
70
|
+
name: pleaserun
|
91
71
|
requirement: !ruby/object:Gem::Requirement
|
92
72
|
requirements:
|
93
|
-
- -
|
73
|
+
- - "~>"
|
94
74
|
- !ruby/object:Gem::Version
|
95
|
-
version: 0.
|
75
|
+
version: 0.0.29
|
96
76
|
type: :runtime
|
97
77
|
prerelease: false
|
98
78
|
version_requirements: !ruby/object:Gem::Requirement
|
99
79
|
requirements:
|
100
|
-
- -
|
80
|
+
- - "~>"
|
101
81
|
- !ruby/object:Gem::Version
|
102
|
-
version: 0.
|
82
|
+
version: 0.0.29
|
103
83
|
- !ruby/object:Gem::Dependency
|
104
|
-
name:
|
84
|
+
name: stud
|
105
85
|
requirement: !ruby/object:Gem::Requirement
|
106
86
|
requirements:
|
107
87
|
- - ">="
|
@@ -115,49 +95,7 @@ dependencies:
|
|
115
95
|
- !ruby/object:Gem::Version
|
116
96
|
version: '0'
|
117
97
|
- !ruby/object:Gem::Dependency
|
118
|
-
name:
|
119
|
-
requirement: !ruby/object:Gem::Requirement
|
120
|
-
requirements:
|
121
|
-
- - "~>"
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: '10'
|
124
|
-
type: :development
|
125
|
-
prerelease: false
|
126
|
-
version_requirements: !ruby/object:Gem::Requirement
|
127
|
-
requirements:
|
128
|
-
- - "~>"
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: '10'
|
131
|
-
- !ruby/object:Gem::Dependency
|
132
|
-
name: ruby-xz
|
133
|
-
requirement: !ruby/object:Gem::Requirement
|
134
|
-
requirements:
|
135
|
-
- - "~>"
|
136
|
-
- !ruby/object:Gem::Version
|
137
|
-
version: 0.2.3
|
138
|
-
type: :runtime
|
139
|
-
prerelease: false
|
140
|
-
version_requirements: !ruby/object:Gem::Requirement
|
141
|
-
requirements:
|
142
|
-
- - "~>"
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: 0.2.3
|
145
|
-
- !ruby/object:Gem::Dependency
|
146
|
-
name: pleaserun
|
147
|
-
requirement: !ruby/object:Gem::Requirement
|
148
|
-
requirements:
|
149
|
-
- - "~>"
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version: 0.0.29
|
152
|
-
type: :runtime
|
153
|
-
prerelease: false
|
154
|
-
version_requirements: !ruby/object:Gem::Requirement
|
155
|
-
requirements:
|
156
|
-
- - "~>"
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
version: 0.0.29
|
159
|
-
- !ruby/object:Gem::Dependency
|
160
|
-
name: stud
|
98
|
+
name: rexml
|
161
99
|
requirement: !ruby/object:Gem::Requirement
|
162
100
|
requirements:
|
163
101
|
- - ">="
|
@@ -212,6 +150,20 @@ dependencies:
|
|
212
150
|
- - ">="
|
213
151
|
- !ruby/object:Gem::Version
|
214
152
|
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rake
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
215
167
|
description: Convert directories, rpms, python eggs, rubygems, and more to rpms, debs,
|
216
168
|
solaris packages and more. Win at package management without wasting pointless hours
|
217
169
|
debugging bad rpm specs!
|
@@ -286,7 +238,7 @@ homepage: https://github.com/jordansissel/fpm
|
|
286
238
|
licenses:
|
287
239
|
- MIT-like
|
288
240
|
metadata: {}
|
289
|
-
post_install_message:
|
241
|
+
post_install_message:
|
290
242
|
rdoc_options: []
|
291
243
|
require_paths:
|
292
244
|
- lib
|
@@ -302,8 +254,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
302
254
|
- !ruby/object:Gem::Version
|
303
255
|
version: '0'
|
304
256
|
requirements: []
|
305
|
-
rubygems_version: 3.
|
306
|
-
signing_key:
|
257
|
+
rubygems_version: 3.3.20
|
258
|
+
signing_key:
|
307
259
|
specification_version: 4
|
308
260
|
summary: fpm - package building and mangling
|
309
261
|
test_files: []
|