fpm 1.15.0 → 1.15.1
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.
- 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
|