fpm 1.15.0 → 1.15.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.rst +5 -2
- data/lib/fpm/command.rb +4 -4
- data/lib/fpm/package/deb.rb +29 -6
- data/lib/fpm/package/dir.rb +1 -1
- data/lib/fpm/package/puppet.rb +1 -1
- data/lib/fpm/package/pyfpm/get_metadata.py +1 -0
- data/lib/fpm/package/python.rb +3 -1
- data/lib/fpm/util.rb +1 -1
- data/lib/fpm/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2157b42ae94755f7521964dc3f92af2a535ee87506303aca5bb72222b48495b
|
4
|
+
data.tar.gz: 8772b7c1f612dfe8bd698b136418bda8c7b63d9243b1b253832917ad926cab7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9cee7c2885fcf85d75cdc74b2e41399ddce10693fefc3c0b09c49e73b16fcd73140527d646ee5886ef231de7cb202a67f22130d01324d83923195833693f00e2
|
7
|
+
data.tar.gz: 18f5d405ecd21a0309abf1e08219b0b23aa60eb2e8e7e3f00d7c17ea31e5a3e7b4cbf3a9b9e5bbfb467111a4b8ea9424d61a0f0ff81c9179490e54b17cbfde29
|
data/CHANGELOG.rst
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
Release Notes and Change Log
|
2
2
|
============================
|
3
3
|
|
4
|
+
1.15.1 (January 31, 2023)
|
5
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^
|
6
|
+
* Ruby 3.2.0 now supported. This fixes error 'undefined method exists? for File' '(`#1981`_, `#1988`_; Nicholas Hubbard, romulasry)
|
7
|
+
|
4
8
|
1.15.0 (November 13, 2022)
|
5
9
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
6
10
|
* New flag ``--fpm-options-file path/to/file`` which allows you to specify additional fpm flags in an external file of your choosing. (`#1905`_, `#1902`_, `#1827`_; Jordan Sissel, Will Furnell, hjpotter92)
|
@@ -14,7 +18,6 @@ Release Notes and Change Log
|
|
14
18
|
* python: Fix errors in how fpm invoked ``pip``. Previously, fpm would use pip's ``--build`` flag, but this was removed a while ago, and fpm is now aware! (`#1896`_, `#1831`_, `#1893`_, `#1916`_; Jordan Sissel, Svyatogor Chuykov)
|
15
19
|
* pleaserun: Add ``--pleaserun-user`` flag. (`#1912`_; Evgeny Stambulchik)
|
16
20
|
* deb: The default ``--deb-priority`` is now "optional" instead of "extra" (`#1913`_; Chris Novakovic)
|
17
|
-
* https://github.com/jordansissel/fpm/pull/1897 (`#1897`_; Jordan Sissel)
|
18
21
|
* Enable installation of fpm on older versions of ruby. This change removed ``git`` rubygem dependency. (`#1946`_, `#1923`_; Jordan Sissel, Andreas Wirooks, Ruslan Kuprieiev, jamshid, Lorenzo Castellino, Sam Hughes)
|
19
22
|
* Enable operation of fpm on very old versions of ruby (as old as Ruby 1.9.3). This changed removed ``json`` rubygem dependency. (`#1950`_, `#1949`_, `#1741`_, `#1264`_, `#1798`_, `#1800`_, `#1784`_; Jordan Sissel and many others)
|
20
23
|
* Fix bug where subprocesses could hang waiting for input (`#1955`_, `#1519`_, `#1522`_; Nicholas Hubbard, William N. Braswell, Jr.)
|
@@ -22,7 +25,7 @@ Release Notes and Change Log
|
|
22
25
|
* internal: Fix a code typo (`#1948`_; Nicholas Hubbard)
|
23
26
|
* internal tests: Support newer versions of lintian (`#1939`_, `#1907`_; Jordan Sissel)
|
24
27
|
* Improve support for Ruby 3.1.0 and newer that would previously crash with an error mentioning Psych::DisallowedClass (`#1898`_, `#1895`_; Jordan Sissel, Alexandre ZANNI)
|
25
|
-
* Improve support for Ruby 3.1.0 and newer that changed the API for ERB
|
28
|
+
* Improve support for Ruby 3.1.0 and newer that changed the API for ERB (`#1897`_; Jordan Sissel)
|
26
29
|
|
27
30
|
1.14.2 (March 30, 2022)
|
28
31
|
^^^^^^^^^^^^^^^^^^^^^^^
|
data/lib/fpm/command.rb
CHANGED
@@ -298,7 +298,7 @@ class FPM::Command < Clamp::Command
|
|
298
298
|
args << "."
|
299
299
|
end
|
300
300
|
|
301
|
-
if !File.
|
301
|
+
if !File.exist?(workdir)
|
302
302
|
logger.fatal("Given --workdir=#{workdir} is not a path that exists.")
|
303
303
|
raise FPM::Package::InvalidArgument, "The given workdir '#{workdir}' does not exist."
|
304
304
|
end
|
@@ -371,7 +371,7 @@ class FPM::Command < Clamp::Command
|
|
371
371
|
|
372
372
|
# If --inputs was specified, read it as a file.
|
373
373
|
if !inputs.nil?
|
374
|
-
if !File.
|
374
|
+
if !File.exist?(inputs)
|
375
375
|
logger.fatal("File given for --inputs does not exist (#{inputs})")
|
376
376
|
return 1
|
377
377
|
end
|
@@ -386,7 +386,7 @@ class FPM::Command < Clamp::Command
|
|
386
386
|
# If --exclude-file was specified, read it as a file and append to
|
387
387
|
# the exclude pattern list.
|
388
388
|
if !exclude_file.nil?
|
389
|
-
if !File.
|
389
|
+
if !File.exist?(exclude_file)
|
390
390
|
logger.fatal("File given for --exclude-file does not exist (#{exclude_file})")
|
391
391
|
return 1
|
392
392
|
end
|
@@ -451,7 +451,7 @@ class FPM::Command < Clamp::Command
|
|
451
451
|
# Skip scripts not set
|
452
452
|
next if path.nil?
|
453
453
|
|
454
|
-
if !File.
|
454
|
+
if !File.exist?(path)
|
455
455
|
logger.error("No such file (for #{scriptname.to_s}): #{path.inspect}")
|
456
456
|
script_errors << path
|
457
457
|
end
|
data/lib/fpm/package/deb.rb
CHANGED
@@ -43,7 +43,15 @@ class FPM::Package::Deb < FPM::Package
|
|
43
43
|
# epoch - This is a single (generally small) unsigned integer
|
44
44
|
# upstream_version - must contain only alphanumerics 6 and the characters . + - ~
|
45
45
|
# debian_revision - only alphanumerics and the characters + . ~
|
46
|
-
|
46
|
+
VERSION_FIELD_PATTERN = /
|
47
|
+
(?:(?:[0-9]+):)? # The epoch, an unsigned int
|
48
|
+
(?:[A-Za-z0-9+~.-]+) # upstream version, probably should not contain dashes?
|
49
|
+
(?:-[A-Za-z0-9+~.]+)? # debian_revision
|
50
|
+
/x # Version field pattern
|
51
|
+
RELATIONSHIP_FIELD_PATTERN = /^
|
52
|
+
(?<name>[A-z0-9][A-z0-9_.-]+)
|
53
|
+
(?:\s*\((?<relation>[<>=]+)\s(?<version>#{VERSION_FIELD_PATTERN})\))?
|
54
|
+
$/x # Relationship field pattern
|
47
55
|
|
48
56
|
option "--ignore-iteration-in-dependencies", :flag,
|
49
57
|
"For '=' (equal) dependencies, allow iterations on the specified " \
|
@@ -292,6 +300,21 @@ class FPM::Package::Deb < FPM::Package
|
|
292
300
|
return (attributes[:prefix] or "/")
|
293
301
|
end # def prefix
|
294
302
|
|
303
|
+
def version
|
304
|
+
if @version.kind_of?(String)
|
305
|
+
if @version.start_with?("v") && @version.gsub(/^v/, "") =~ /^#{VERSION_FIELD_PATTERN}$/
|
306
|
+
logger.warn("Debian 'Version' field needs to start with a digit. I was provided '#{@version}' which seems like it just has a 'v' prefix to an otherwise-valid Debian version, I'll remove the 'v' for you.")
|
307
|
+
@version = @version.gsub(/^v/, "")
|
308
|
+
end
|
309
|
+
|
310
|
+
if @version !~ /^#{VERSION_FIELD_PATTERN}$/
|
311
|
+
raise FPM::InvalidPackageConfiguration, "The version looks invalid for Debian packages. Debian version field must contain only alphanumerics and . (period), + (plus), - (hyphen) or ~ (tilde). I have '#{@version}' which which isn't valid."
|
312
|
+
end
|
313
|
+
end
|
314
|
+
|
315
|
+
return @version
|
316
|
+
end
|
317
|
+
|
295
318
|
def input(input_path)
|
296
319
|
extract_info(input_path)
|
297
320
|
extract_files(input_path)
|
@@ -568,7 +591,7 @@ class FPM::Package::Deb < FPM::Package
|
|
568
591
|
end # No need to close, GzipWriter#close will close it.
|
569
592
|
end
|
570
593
|
|
571
|
-
if File.
|
594
|
+
if File.exist?(dest_changelog) and not File.exist?(dest_upstream_changelog)
|
572
595
|
# see https://www.debian.org/doc/debian-policy/ch-docs.html#s-changelogs
|
573
596
|
File.rename(dest_changelog, dest_upstream_changelog)
|
574
597
|
end
|
@@ -724,7 +747,7 @@ class FPM::Package::Deb < FPM::Package
|
|
724
747
|
|
725
748
|
if origin == FPM::Package::Deb
|
726
749
|
changelog_path = staging_path("usr/share/doc/#{name}/changelog.Debian.gz")
|
727
|
-
if File.
|
750
|
+
if File.exist?(changelog_path)
|
728
751
|
logger.debug("Found a deb changelog file, using it.", :path => changelog_path)
|
729
752
|
attributes[:deb_changelog] = build_path("deb_changelog")
|
730
753
|
File.open(attributes[:deb_changelog], "w") do |deb_changelog|
|
@@ -738,7 +761,7 @@ class FPM::Package::Deb < FPM::Package
|
|
738
761
|
|
739
762
|
if origin == FPM::Package::Deb
|
740
763
|
changelog_path = staging_path("usr/share/doc/#{name}/changelog.gz")
|
741
|
-
if File.
|
764
|
+
if File.exist?(changelog_path)
|
742
765
|
logger.debug("Found an upstream changelog file, using it.", :path => changelog_path)
|
743
766
|
attributes[:deb_upstream_changelog] = build_path("deb_upstream_changelog")
|
744
767
|
File.open(attributes[:deb_upstream_changelog], "w") do |deb_upstream_changelog|
|
@@ -1015,7 +1038,7 @@ class FPM::Package::Deb < FPM::Package
|
|
1015
1038
|
etcfiles = []
|
1016
1039
|
# Add everything in /etc
|
1017
1040
|
begin
|
1018
|
-
if !attributes[:deb_no_default_config_files?] && File.
|
1041
|
+
if !attributes[:deb_no_default_config_files?] && File.exist?(staging_path("/etc"))
|
1019
1042
|
logger.warn("Debian packaging tools generally labels all files in /etc as config files, " \
|
1020
1043
|
"as mandated by policy, so fpm defaults to this behavior for deb packages. " \
|
1021
1044
|
"You can disable this default behavior with --deb-no-default-config-files flag")
|
@@ -1189,5 +1212,5 @@ class FPM::Package::Deb < FPM::Package
|
|
1189
1212
|
return data_tar_flags
|
1190
1213
|
end # def data_tar_flags
|
1191
1214
|
|
1192
|
-
public(:input, :output, :architecture, :name, :prefix, :converted_from, :to_s, :data_tar_flags)
|
1215
|
+
public(:input, :output, :architecture, :name, :prefix, :version, :converted_from, :to_s, :data_tar_flags)
|
1193
1216
|
end # class FPM::Target::Deb
|
data/lib/fpm/package/dir.rb
CHANGED
@@ -43,7 +43,7 @@ class FPM::Package::Dir < FPM::Package
|
|
43
43
|
# This mapping should work the same way 'rsync -a' does
|
44
44
|
# Meaning 'rsync -a source dest'
|
45
45
|
# and 'source=dest' in fpm work the same as the above rsync
|
46
|
-
if path =~ /.=./ && !File.
|
46
|
+
if path =~ /.=./ && !File.exist?(chdir == '.' ? path : File.join(chdir, path))
|
47
47
|
origin, destination = path.split("=", 2)
|
48
48
|
|
49
49
|
if File.directory?(origin) && origin[-1,1] == "/"
|
data/lib/fpm/package/puppet.rb
CHANGED
@@ -60,7 +60,7 @@ class FPM::Package::Puppet < FPM::Package
|
|
60
60
|
end # case name
|
61
61
|
end # self.scripts.each
|
62
62
|
|
63
|
-
if File.
|
63
|
+
if File.exist?(params[:output])
|
64
64
|
# TODO(sissel): Allow folks to choose output?
|
65
65
|
logger.error("Puppet module directory '#{params[:output]}' already " \
|
66
66
|
"exists. Delete it or choose another output (-p flag)")
|
data/lib/fpm/package/python.rb
CHANGED
@@ -259,7 +259,9 @@ class FPM::Package::Python < FPM::Package
|
|
259
259
|
self.description = metadata["description"]
|
260
260
|
# Sometimes the license field is multiple lines; do best-effort and just
|
261
261
|
# use the first line.
|
262
|
-
|
262
|
+
if metadata["license"]
|
263
|
+
self.license = metadata["license"].split(/[\r\n]+/).first
|
264
|
+
end
|
263
265
|
self.version = metadata["version"]
|
264
266
|
self.url = metadata["url"]
|
265
267
|
|
data/lib/fpm/util.rb
CHANGED
@@ -345,7 +345,7 @@ module FPM::Util
|
|
345
345
|
when 'characterSpecial', 'blockSpecial'
|
346
346
|
raise UnsupportedSpecialFile.new("File is device which fpm doesn't know how to copy (#{File.ftype(src)}): #{src}")
|
347
347
|
when 'directory'
|
348
|
-
FileUtils.mkdir(dst) unless File.
|
348
|
+
FileUtils.mkdir(dst) unless File.exist? dst
|
349
349
|
else
|
350
350
|
# if the file with the same dev and inode has been copied already -
|
351
351
|
# hard link it's copy to `dst`, otherwise make an actual copy
|
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.15.
|
4
|
+
version: 1.15.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordan Sissel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cabin
|
@@ -254,7 +254,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
254
254
|
- !ruby/object:Gem::Version
|
255
255
|
version: '0'
|
256
256
|
requirements: []
|
257
|
-
rubygems_version: 3.
|
257
|
+
rubygems_version: 3.4.1
|
258
258
|
signing_key:
|
259
259
|
specification_version: 4
|
260
260
|
summary: fpm - package building and mangling
|