fpm 1.6.2 → 1.6.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELIST +4 -1
- data/lib/fpm.rb +1 -0
- data/lib/fpm/command.rb +12 -12
- data/lib/fpm/package.rb +3 -2
- data/lib/fpm/package/cpan.rb +29 -2
- data/lib/fpm/package/gem.rb +19 -0
- data/lib/fpm/package/pacman.rb +1 -1
- data/lib/fpm/package/rpm.rb +1 -1
- data/lib/fpm/version.rb +1 -1
- metadata +3 -4
- data/lib/fpm/package/pyfpm/__init__.pyc +0 -0
- data/lib/fpm/package/pyfpm/get_metadata.pyc +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ed6597fd964dd4f0e04832217258a80134af1e0
|
4
|
+
data.tar.gz: da1d4aab01fd06e27e71d8d225f99d23ef7f7204
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1722137bd9f0359ca24a390d9be83a1115f9514dbbfef2dae19b14f4f88f673d31241131fa5d998225c6d4b0dea6f1e5ca075b19b5cbc64fbaa3ddbc9b39d4ba
|
7
|
+
data.tar.gz: 9ebd3febbf7c703ff55c91f33bb89adc9074bb8f05c8f2595b552b10497bd1f63289d409bbe3e8aa8f4f53115830d57887d01f1075e486f5696246bad9ea46f0
|
data/CHANGELIST
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
+
1.6.3 (September 15, 2016)
|
2
|
+
- Fix bug in fpm's release that accidentally included a few `.pyc` files (#1191)
|
3
|
+
|
1
4
|
1.6.2 (July 1, 2016)
|
2
5
|
- Reduce `json` dependency version to avoid requiring Ruby 2.0 (#1146, #1147;
|
3
6
|
patch by Matt Hoffman)
|
4
|
-
- pacman: skip automatic
|
7
|
+
- pacman: skip automatic dependencies if --no-auto-depends is given (Leo P)
|
5
8
|
- rpm: Fix bug where --rpm-tag was accidentally ignored (#1134, Michal Mach)
|
6
9
|
- deb: Omit certain fields from control file if (Breaks, Depends, Recommends,
|
7
10
|
etc) if there are no values to put in that field. (#1113, TomyLobo)
|
data/lib/fpm.rb
CHANGED
data/lib/fpm/command.rb
CHANGED
@@ -45,13 +45,13 @@ class FPM::Command < Clamp::Command
|
|
45
45
|
return lines.join("\n")
|
46
46
|
end # def help
|
47
47
|
|
48
|
-
option "-t", "OUTPUT_TYPE",
|
48
|
+
option ["-t", "--output-type"], "OUTPUT_TYPE",
|
49
49
|
"the type of package you want to create (deb, rpm, solaris, etc)",
|
50
50
|
:attribute_name => :output_type
|
51
|
-
option "-s", "INPUT_TYPE",
|
51
|
+
option ["-s", "--input-type"], "INPUT_TYPE",
|
52
52
|
"the package type to use as input (gem, rpm, python, etc)",
|
53
53
|
:attribute_name => :input_type
|
54
|
-
option "-C", "CHDIR",
|
54
|
+
option ["-C", "--chdir"], "CHDIR",
|
55
55
|
"Change directory to here before searching for files",
|
56
56
|
:attribute_name => :chdir
|
57
57
|
option "--prefix", "PREFIX",
|
@@ -256,12 +256,6 @@ class FPM::Command < Clamp::Command
|
|
256
256
|
|
257
257
|
# Execute this command. See Clamp::Command#execute and Clamp's documentation
|
258
258
|
def execute
|
259
|
-
# Short-circuit if someone simply runs `fpm --version`
|
260
|
-
if ARGV == [ "--version" ]
|
261
|
-
puts FPM::VERSION
|
262
|
-
return 0
|
263
|
-
end
|
264
|
-
|
265
259
|
logger.level = :warn
|
266
260
|
logger.level = :info if verbose? # --verbose
|
267
261
|
logger.level = :debug if debug? # --debug
|
@@ -269,7 +263,6 @@ class FPM::Command < Clamp::Command
|
|
269
263
|
logger.level = log_level.to_sym
|
270
264
|
end
|
271
265
|
|
272
|
-
|
273
266
|
if (stray_flags = args.grep(/^-/); stray_flags.any?)
|
274
267
|
logger.warn("All flags should be before the first argument " \
|
275
268
|
"(stray flags found: #{stray_flags}")
|
@@ -514,9 +507,16 @@ class FPM::Command < Clamp::Command
|
|
514
507
|
end
|
515
508
|
end # def execute
|
516
509
|
|
517
|
-
def run(
|
510
|
+
def run(run_args)
|
518
511
|
logger.subscribe(STDOUT)
|
519
512
|
|
513
|
+
# Short circuit for a `fpm --version` or `fpm -v` short invocation that
|
514
|
+
# is the user asking us for the version of fpm.
|
515
|
+
if run_args == [ "-v" ] || run_args == [ "--version" ]
|
516
|
+
puts FPM::VERSION
|
517
|
+
return 0
|
518
|
+
end
|
519
|
+
|
520
520
|
# fpm initialization files, note the order of the following array is
|
521
521
|
# important, try .fpm in users home directory first and then the current
|
522
522
|
# directory
|
@@ -557,7 +557,7 @@ class FPM::Command < Clamp::Command
|
|
557
557
|
|
558
558
|
ARGV.unshift(*flags)
|
559
559
|
ARGV.push(*args)
|
560
|
-
super(
|
560
|
+
super(run_args)
|
561
561
|
rescue FPM::Package::InvalidArgument => e
|
562
562
|
logger.error("Invalid package argument: #{e}")
|
563
563
|
return 1
|
data/lib/fpm/package.rb
CHANGED
@@ -8,6 +8,7 @@ require "socket" # stdlib, for Socket.gethostname
|
|
8
8
|
require "shellwords" # stdlib, for Shellwords.escape
|
9
9
|
require "erb" # stdlib, for template processing
|
10
10
|
require "cabin" # gem "cabin"
|
11
|
+
require "stud/temporary"
|
11
12
|
|
12
13
|
# This class is the parent of all packages.
|
13
14
|
# If you want to implement an FPM package type, you'll inherit from this.
|
@@ -249,7 +250,7 @@ class FPM::Package
|
|
249
250
|
end # def output
|
250
251
|
|
251
252
|
def staging_path(path=nil)
|
252
|
-
@staging_path ||= ::
|
253
|
+
@staging_path ||= Stud::Temporary.directory("package-#{type}-staging")
|
253
254
|
|
254
255
|
if path.nil?
|
255
256
|
return @staging_path
|
@@ -259,7 +260,7 @@ class FPM::Package
|
|
259
260
|
end # def staging_path
|
260
261
|
|
261
262
|
def build_path(path=nil)
|
262
|
-
@build_path ||= ::
|
263
|
+
@build_path ||= Stud::Temporary.directory("package-#{type}-build")
|
263
264
|
|
264
265
|
if path.nil?
|
265
266
|
return @build_path
|
data/lib/fpm/package/cpan.rb
CHANGED
@@ -3,6 +3,7 @@ require "fpm/package"
|
|
3
3
|
require "fpm/util"
|
4
4
|
require "fileutils"
|
5
5
|
require "find"
|
6
|
+
require "pathname"
|
6
7
|
|
7
8
|
class FPM::Package::CPAN < FPM::Package
|
8
9
|
# Flags '--foo' will be accessable as attributes[:npm_foo]
|
@@ -133,8 +134,19 @@ class FPM::Package::CPAN < FPM::Package
|
|
133
134
|
safesystem(attributes[:cpan_cpanm_bin], *cpanm_flags)
|
134
135
|
|
135
136
|
if !attributes[:no_auto_depends?]
|
136
|
-
|
137
|
-
|
137
|
+
found_dependencies = {}
|
138
|
+
if metadata["requires"]
|
139
|
+
found_dependencies.merge!(metadata["requires"])
|
140
|
+
end
|
141
|
+
if metadata["prereqs"]
|
142
|
+
if metadata["prereqs"]["runtime"]
|
143
|
+
if metadata["prereqs"]["runtime"]["requires"]
|
144
|
+
found_dependencies.merge!(metadata["prereqs"]["runtime"]["requires"])
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
unless found_dependencies.empty?
|
149
|
+
found_dependencies.each do |dep_name, version|
|
138
150
|
# Special case for representing perl core as a version.
|
139
151
|
if dep_name == "perl"
|
140
152
|
self.dependencies << "#{dep_name} >= #{version}"
|
@@ -246,6 +258,21 @@ class FPM::Package::CPAN < FPM::Package
|
|
246
258
|
:path => path.gsub(staging_path, ""))
|
247
259
|
File.unlink(path)
|
248
260
|
end
|
261
|
+
|
262
|
+
# Remove useless .packlist files and their empty parent folders
|
263
|
+
# https://github.com/jordansissel/fpm/issues/1179
|
264
|
+
::Dir.glob(File.join(staging_path, glob_prefix, "**/.packlist")).each do |path|
|
265
|
+
logger.debug("Removing useless file.",
|
266
|
+
:path => path.gsub(staging_path, ""))
|
267
|
+
File.unlink(path)
|
268
|
+
Pathname.new(path).parent.ascend do |parent|
|
269
|
+
if ::Dir.entries(parent).sort == ['.', '..'].sort
|
270
|
+
FileUtils.rmdir parent
|
271
|
+
else
|
272
|
+
break
|
273
|
+
end
|
274
|
+
end
|
275
|
+
end
|
249
276
|
end
|
250
277
|
|
251
278
|
|
data/lib/fpm/package/gem.rb
CHANGED
@@ -30,6 +30,9 @@ class FPM::Package::Gem < FPM::Package
|
|
30
30
|
option "--gem", "PATH_TO_GEM",
|
31
31
|
"The path to the 'gem' tool (defaults to 'gem' and searches " \
|
32
32
|
"your $PATH)", :default => "gem"
|
33
|
+
option "--shebang", "SHEBANG",
|
34
|
+
"Replace the shebang in the executables in the bin path with a " \
|
35
|
+
"custom string", :default => nil
|
33
36
|
option "--fix-name", :flag, "Should the target package name be prefixed?",
|
34
37
|
:default => true
|
35
38
|
option "--fix-dependencies", :flag, "Should the package dependencies be " \
|
@@ -196,6 +199,22 @@ class FPM::Package::Gem < FPM::Package
|
|
196
199
|
args << gem_path
|
197
200
|
safesystem(*args)
|
198
201
|
|
202
|
+
# Replace the shebangs in the executables
|
203
|
+
if attributes[:gem_shebang]
|
204
|
+
::Dir.entries(bin_path).each do |file_name|
|
205
|
+
# exclude . and ..
|
206
|
+
next if ['.', '..'].include?(file_name)
|
207
|
+
# exclude everything which is not a file
|
208
|
+
file_path = File.join(bin_path, file_name)
|
209
|
+
next unless File.ftype(file_path) == 'file'
|
210
|
+
# replace shebang in files if there is one
|
211
|
+
file = File.read(file_path)
|
212
|
+
if file.gsub!(/\A#!.*$/, "#!#{attributes[:gem_shebang]}")
|
213
|
+
File.open(file_path, 'w'){|f| f << file}
|
214
|
+
end
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
199
218
|
# Delete bin_path if it's empty, and any empty parents (#612)
|
200
219
|
# Above, we mkdir_p bin_path because rubygems aborts if the parent
|
201
220
|
# directory doesn't exist, for example:
|
data/lib/fpm/package/pacman.rb
CHANGED
@@ -58,7 +58,7 @@ class FPM::Package::Pacman < FPM::Package
|
|
58
58
|
end # def config_files
|
59
59
|
|
60
60
|
def dependencies
|
61
|
-
bogus_regex = /[^\sA-Za-z0-9
|
61
|
+
bogus_regex = /[^\sA-Za-z0-9><=+._@-]/
|
62
62
|
# Actually modifies depencies if they are not right
|
63
63
|
bogus_dependencies = @dependencies.grep bogus_regex
|
64
64
|
if bogus_dependencies.any?
|
data/lib/fpm/package/rpm.rb
CHANGED
@@ -537,7 +537,7 @@ class FPM::Package::RPM < FPM::Package
|
|
537
537
|
|
538
538
|
def summary
|
539
539
|
if !attributes[:rpm_summary]
|
540
|
-
return @description.split("\n").
|
540
|
+
return @description.split("\n").find { |line| !line.strip.empty? } || "_"
|
541
541
|
end
|
542
542
|
|
543
543
|
return attributes[:rpm_summary]
|
data/lib/fpm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordan Sissel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -260,9 +260,7 @@ files:
|
|
260
260
|
- lib/fpm/package/pleaserun.rb
|
261
261
|
- lib/fpm/package/puppet.rb
|
262
262
|
- lib/fpm/package/pyfpm/__init__.py
|
263
|
-
- lib/fpm/package/pyfpm/__init__.pyc
|
264
263
|
- lib/fpm/package/pyfpm/get_metadata.py
|
265
|
-
- lib/fpm/package/pyfpm/get_metadata.pyc
|
266
264
|
- lib/fpm/package/python.rb
|
267
265
|
- lib/fpm/package/rpm.rb
|
268
266
|
- lib/fpm/package/sh.rb
|
@@ -322,3 +320,4 @@ signing_key:
|
|
322
320
|
specification_version: 4
|
323
321
|
summary: fpm - package building and mangling
|
324
322
|
test_files: []
|
323
|
+
has_rdoc:
|
Binary file
|
Binary file
|