fpm 1.14.2 → 1.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8d9090d2dd285f34892443936dfd389afe4f566eadc9cc3eb8cdc2103f93f712
4
- data.tar.gz: 44e67a378384be66baddf1c5dfcb1a2ed88f1b512ed84b9bba7c823866e71e31
3
+ metadata.gz: ea647fcf022326ec4218db722e99c134664446ef0f5ce1885a7440acb1bc6a85
4
+ data.tar.gz: 8fa7b284c275629fac6d598211c2c54628c527435afbc835582279c760162786
5
5
  SHA512:
6
- metadata.gz: 68e628235ec80373159575e51ece876047f12fc9a149c03c4652424ad29605059e83483e0d1dcae2e85fba9bbe53989a6489d9b18f23e699afd787401c215264
7
- data.tar.gz: 873f374ccb59dcdd95bf0f586a007a46cc0a4a9d28ebdb616dc829d8b3f8fbf80b9231b0625050d4d1b6e0153ee0df168eaac712c436a6724cd70d7116311b7d
6
+ metadata.gz: a8f4c7e20bc10732d29febc59824562d2da5d1273d6ca96788d0e033b08b9b4dad1fac8281f8030f70a65dd465fbffc194448f13291cc51105172e35370c1800
7
+ data.tar.gz: 4fcd3503b21ec04b1edb28ffca688898799d35f437cf097f4a3938adab78644bd0294bf9a4af327827bea63df04028150ada442727a0a41c005b59911c2d7a42
data/CHANGELOG.rst CHANGED
@@ -1,6 +1,29 @@
1
1
  Release Notes and Change Log
2
2
  ============================
3
3
 
4
+ 1.15.0 (November 13, 2022)
5
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^
6
+ * 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)
7
+ * deb: Periods are now accepted in package names (`#1899`_; C. Cooke)
8
+ * Fix bug where fpm would crash if ``--workdir`` pointed at a path that didn't
9
+ exist. (`#1959`_; Jordan Sissel)
10
+ * osxpkg: this package format now supports the fpm ``--prefix`` flag(`#1909`_, `#1908`_; Jordan Sissel, mcataga)
11
+ * cpan: Fix bug where fpm would fail on certain Perl modules due to their source tarball structure (`#1940`_; Nicholas Hubbard, William N. Braswell, Jr.)
12
+ * cpan: Fix crash on certain CPAN modules where the author field was blank (`#1942`_, `#1937`_, `#1523`_, `#1528`_; Nicholas Hubbard, William N. Braswell, Jr.)
13
+ * deb: The distribution field of the debian changelog and changes files will now use the value set by ``--deb-dist`` (default is "unstable") (`#1934`_; Chabert Loïc)
14
+ * 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
+ * pleaserun: Add ``--pleaserun-user`` flag. (`#1912`_; Evgeny Stambulchik)
16
+ * 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
+ * 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
+ * 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
+ * Fix bug where subprocesses could hang waiting for input (`#1955`_, `#1519`_, `#1522`_; Nicholas Hubbard, William N. Braswell, Jr.)
21
+ * Update Dockerfile to use ubuntu:20.04 (`#1935`_; Gnought)
22
+ * internal: Fix a code typo (`#1948`_; Nicholas Hubbard)
23
+ * internal tests: Support newer versions of lintian (`#1939`_, `#1907`_; Jordan Sissel)
24
+ * 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
26
+
4
27
  1.14.2 (March 30, 2022)
5
28
  ^^^^^^^^^^^^^^^^^^^^^^^
6
29
  * deb: fix bug causing ``--deb-compression none`` to invoke ``tar`` incorrectly (`#1879`_; John Howard)
data/lib/fpm/command.rb CHANGED
@@ -247,6 +247,13 @@ class FPM::Command < Clamp::Command
247
247
  "See https://reproducible-builds.org/specs/source-date-epoch ",
248
248
  :environment_variable => "SOURCE_DATE_EPOCH"
249
249
 
250
+ option "--fpm-options-file", "FPM_OPTIONS_FILE",
251
+ "A file that contains additional fpm options. Any fpm flag format is valid in this file. " \
252
+ "This can be useful on build servers where you want to use a common configuration or " \
253
+ "inject other parameters from a file instead of from a command-line flag.." do |path|
254
+ load_options(path)
255
+ end
256
+
250
257
  parameter "[ARGS] ...",
251
258
  "Inputs to the source package type. For the 'dir' type, this is the files" \
252
259
  " and directories you want to include in the package. For others, like " \
@@ -291,6 +298,15 @@ class FPM::Command < Clamp::Command
291
298
  args << "."
292
299
  end
293
300
 
301
+ if !File.exists?(workdir)
302
+ logger.fatal("Given --workdir=#{workdir} is not a path that exists.")
303
+ raise FPM::Package::InvalidArgument, "The given workdir '#{workdir}' does not exist."
304
+ end
305
+ if !File.directory?(workdir)
306
+ logger.fatal("Given --workdir=#{workdir} must be a directory")
307
+ raise FPM::Package::InvalidArgument, "The given workdir '#{workdir}' must be a directory."
308
+ end
309
+
294
310
  logger.info("Setting workdir", :workdir => workdir)
295
311
  ENV["TMP"] = workdir
296
312
 
@@ -571,12 +587,86 @@ class FPM::Command < Clamp::Command
571
587
 
572
588
  ARGV.unshift(*flags)
573
589
  ARGV.push(*args)
590
+
574
591
  super(run_args)
575
592
  rescue FPM::Package::InvalidArgument => e
576
593
  logger.error("Invalid package argument: #{e}")
577
594
  return 1
578
595
  end # def run
579
596
 
597
+ def load_options(path)
598
+ @loaded_files ||= []
599
+
600
+ if @loaded_files.include?(path)
601
+ #logger.error("Options file was already loaded once. Refusing to load a second time.", :path => path)
602
+ raise FPM::Package::InvalidArgument, "Options file already loaded once. Refusing to load a second time. Maybe a file tries to load itself? Path: #{path}"
603
+ end
604
+
605
+ if !File.exist?(path)
606
+ logger.fatal("Cannot load options from file because the file doesn't exist.", :path => path)
607
+ end
608
+
609
+ if !File.readable?(path)
610
+ logger.fatal("Cannot load options from file because the file isn't readable.", :path => path)
611
+ end
612
+
613
+ @loaded_files << path
614
+
615
+ logger.info("Loading flags from file", :path => path)
616
+
617
+ # Safety check, abort if the file is huge. Arbitrarily chosen limit is 100kb
618
+ stat = File.stat(path)
619
+ max = 100 * 1024
620
+ if stat.size > max
621
+ logger.fatal("Refusing to load options from file because the file seems pretty large.", :path => path, :size => stat.size)
622
+ raise FPM::Package::InvalidArgument, "Options file given to --fpm-options-file is seems too large. For safety, fpm is refusing to load this. Path: #{path} - Size: #{stat.size}, maximum allowed size #{max}."
623
+ end
624
+
625
+ File.read(path).split($/).each do |line|
626
+ logger.info("Processing flags from file", :path => path, :line => line)
627
+ # With apologies for this hack to mdub (Mike Williams, author of Clamp)...
628
+ # The following code will read a file and parse the file
629
+ # as flags as if they were in same argument position as the given --fpm-options-file option.
630
+
631
+ args = Shellwords.split(line)
632
+ while args.any?
633
+ arg = args.shift
634
+
635
+ # Lookup the Clamp option by its --flag-name or short name like -f
636
+ if arg =~ /^-/
637
+ # Single-letter options like -a or -z
638
+ if single_letter = arg.match(/^(-[A-Za-z0-9])(.*)$/)
639
+ option = self.class.find_option(single_letter.match(1))
640
+ arg, remainder = single_letter.match(1), single_letter.match(2)
641
+ if option.flag?
642
+ # Flags aka switches take no arguments, so we push the rest of the 'arg' entry back onto the args list
643
+
644
+ # For combined letter flags, like `-abc`, we want to consume the
645
+ # `-a` and then push `-bc` back to be processed.
646
+ # Only do this if there's more flags, like, not for `-a` but yes for `-abc`
647
+ args.unshift("-" + remainder) unless remainder.empty?
648
+ else
649
+ # Single letter options that take arguments, like `-ohello` same as `-o hello`
650
+
651
+ # For single letter flags with values, like `-ofilename` aka `-o filename`, push the remainder ("filename")
652
+ # back onto the args list so that it is consumed when we extract the flag value.
653
+ args.unshift(remainder) unless remainder.empty?
654
+ end
655
+ elsif arg.match(/^--/)
656
+ # Lookup the flag by its long --flag-name
657
+ option = self.class.find_option(arg)
658
+ end
659
+ end
660
+
661
+ # Extract the flag value, if any, from the remaining args list.
662
+ value = option.extract_value(arg, args)
663
+
664
+ # Process the flag into `self`
665
+ option.of(self).take(value)
666
+ end
667
+ end
668
+ end
669
+
580
670
  # A simple flag validator
581
671
  #
582
672
  # The goal of this class is to ensure the flags and arguments given
@@ -112,6 +112,7 @@ class FPM::Package::CPAN < FPM::Package
112
112
  self.vendor = case metadata["author"]
113
113
  when String; metadata["author"]
114
114
  when Array; metadata["author"].join(", ")
115
+ when NilClass; "No Vendor Or Author Provided"
115
116
  else
116
117
  raise FPM::InvalidPackageConfiguration, "Unexpected CPAN 'author' field type: #{metadata["author"].class}. This is a bug."
117
118
  end if metadata.include?("author")
@@ -304,7 +305,7 @@ class FPM::Package::CPAN < FPM::Package
304
305
  directory = build_path("module")
305
306
  ::Dir.mkdir(directory)
306
307
  args = [ "-C", directory, "-zxf", tarball,
307
- "--strip-components", "1" ]
308
+ %q{--transform=s,[./]*[^/]*/,,} ]
308
309
  safesystem("tar", *args)
309
310
  return directory
310
311
  end
@@ -33,12 +33,17 @@ class FPM::Package::Deb < FPM::Package
33
33
  # Example value with version relationship: libc6 (>= 2.2.1)
34
34
  # Example value: libc6
35
35
 
36
+ # Package name docs here: https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-source
37
+ # Package names (both source and binary, see Package) must consist only of lower case letters (a-z),
38
+ # digits (0-9), plus (+) and minus (-) signs, and periods (.).
39
+ # They must be at least two characters long and must start with an alphanumeric character.
40
+
36
41
  # Version string docs here: https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-version
37
42
  # The format is: [epoch:]upstream_version[-debian_revision].
38
43
  # epoch - This is a single (generally small) unsigned integer
39
44
  # upstream_version - must contain only alphanumerics 6 and the characters . + - ~
40
45
  # debian_revision - only alphanumerics and the characters + . ~
41
- RELATIONSHIP_FIELD_PATTERN = /^(?<name>[A-z0-9_-]+)(?: *\((?<relation>[<>=]+) *(?<version>(?:[0-9]+:)?[0-9A-Za-z+~.-]+(?:-[0-9A-Za-z+~.]+)?)\))?$/
46
+ RELATIONSHIP_FIELD_PATTERN = /^(?<name>[A-z0-9][A-z0-9_.-]+)(?: *\((?<relation>[<>=]+) *(?<version>(?:[0-9]+:)?[0-9A-Za-z+~.-]+(?:-[0-9A-Za-z+~.]+)?)\))?$/
42
47
 
43
48
  option "--ignore-iteration-in-dependencies", :flag,
44
49
  "For '=' (equal) dependencies, allow iterations on the specified " \
@@ -93,7 +98,7 @@ class FPM::Package::Deb < FPM::Package
93
98
  end
94
99
 
95
100
  option "--priority", "PRIORITY",
96
- "The debian package 'priority' value.", :default => "extra"
101
+ "The debian package 'priority' value.", :default => "optional"
97
102
 
98
103
  option "--use-file-permissions", :flag,
99
104
  "Use existing file permissions when defining ownership and modes"
@@ -216,7 +221,7 @@ class FPM::Package::Deb < FPM::Package
216
221
 
217
222
  def initialize(*args)
218
223
  super(*args)
219
- attributes[:deb_priority] = "extra"
224
+ attributes[:deb_priority] = "optional"
220
225
  end # def initialize
221
226
 
222
227
  private
@@ -104,19 +104,18 @@ class FPM::Package::Gem < FPM::Package
104
104
  FileUtils.mkdir(download_dir) unless File.directory?(download_dir)
105
105
 
106
106
  if attributes[:gem_git_repo]
107
- require "git"
108
107
  logger.debug("Git cloning in directory #{download_dir}")
109
- g = Git.clone(attributes[:gem_git_repo],gem_name,:path => download_dir)
108
+ safesystem("git", "-C", download_dir, "clone", attributes[:gem_git_repo], ".")
110
109
  if attributes[:gem_git_branch]
111
- g.branch(attributes[:gem_git_branch]).checkout
112
- g.pull('origin',attributes[:gem_git_branch])
110
+ safesystem("git", "-C", download_dir, "checkout", attributes[:gem_git_branch])
113
111
  end
114
- gem_build = [ "#{attributes[:gem_gem]}", "build", "#{g.dir.to_s}/#{gem_name}.gemspec"]
115
- ::Dir.chdir(g.dir.to_s) do |dir|
112
+
113
+ gem_build = [ "#{attributes[:gem_gem]}", "build", "#{download_dir}/#{gem_name}.gemspec"]
114
+ ::Dir.chdir(download_dir) do |dir|
116
115
  logger.debug("Building in directory #{dir}")
117
116
  safesystem(*gem_build)
118
117
  end
119
- gem_files = ::Dir.glob(File.join(g.dir.to_s, "*.gem"))
118
+ gem_files = ::Dir.glob(File.join(download_dir, "*.gem"))
120
119
  else
121
120
  gem_fetch = [ "#{attributes[:gem_gem]}", "fetch", gem_name]
122
121
  gem_fetch += ["--prerelease"] if attributes[:gem_prerelease?]
@@ -135,9 +134,19 @@ class FPM::Package::Gem < FPM::Package
135
134
  return gem_files.first
136
135
  end # def download
137
136
 
137
+ GEMSPEC_YAML_CLASSES = [ ::Gem::Specification, ::Gem::Version, Time, ::Gem::Dependency, ::Gem::Requirement, Symbol ]
138
138
  def load_package_info(gem_path)
139
-
140
- spec = YAML.load(%x{#{attributes[:gem_gem]} specification #{gem_path} --yaml})
139
+ # TODO(sissel): Maybe we should check if `safe_load` method exists instead of this version check?
140
+ if ::Gem::Version.new(RUBY_VERSION) >= ::Gem::Version.new("3.1.0")
141
+ # Ruby 3.1.0 switched to a Psych/YAML version that defaults to "safe" loading
142
+ # and unfortunately `gem specification --yaml` emits YAML that requires
143
+ # class loaders to process correctly
144
+ spec = YAML.load(%x{#{attributes[:gem_gem]} specification #{gem_path} --yaml},
145
+ :permitted_classes => GEMSPEC_YAML_CLASSES)
146
+ else
147
+ # Older versions of ruby call this method YAML.safe_load
148
+ spec = YAML.safe_load(%x{#{attributes[:gem_gem]} specification #{gem_path} --yaml}, GEMSPEC_YAML_CLASSES)
149
+ end
141
150
 
142
151
  if !attributes[:gem_package_prefix].nil?
143
152
  attributes[:gem_package_name_prefix] = attributes[:gem_package_prefix]
@@ -4,7 +4,6 @@ require "fileutils"
4
4
  require "fpm/package/dir"
5
5
  require 'tempfile' # stdlib
6
6
  require 'pathname' # stdlib
7
- require 'rexml/document' # stdlib
8
7
 
9
8
  # Use an OS X pkg built with pkgbuild.
10
9
  #
@@ -103,6 +102,7 @@ class FPM::Package::OSXpkg < FPM::Package
103
102
 
104
103
  # Extract name and version from PackageInfo XML
105
104
  def extract_info(package)
105
+ require 'rexml/document'
106
106
  build_path("expand").tap do |path|
107
107
  doc = REXML::Document.new File.open(File.join(path, "PackageInfo"))
108
108
  pkginfo_elem = doc.elements["pkg-info"]
@@ -148,6 +148,11 @@ class FPM::Package::OSXpkg < FPM::Package
148
148
  write_scripts
149
149
  args += ["--scripts", scripts_path]
150
150
  end
151
+
152
+ if attributes[:prefix]
153
+ args += ["--install-location", attributes[:prefix]]
154
+ end
155
+
151
156
  args << output_path
152
157
 
153
158
  safesystem("pkgbuild", *args)
@@ -18,6 +18,7 @@ class FPM::Package::PleaseRun < FPM::Package
18
18
 
19
19
  option "--name", "SERVICE_NAME", "The name of the service you are creating"
20
20
  option "--chdir", "CHDIR", "The working directory used by the service"
21
+ option "--user", "USER", "The user to use for executing this program."
21
22
 
22
23
  private
23
24
  def input(command)
@@ -162,13 +162,22 @@ class FPM::Package::Python < FPM::Package
162
162
  ]
163
163
  end
164
164
 
165
- setup_cmd += [
166
- "--build",
167
- target,
168
- want_pkg,
169
- ]
170
-
165
+ setup_cmd << want_pkg
166
+
171
167
  safesystem(*setup_cmd)
168
+
169
+ # Pip removed the --build flag sometime in 2021, it seems: https://github.com/pypa/pip/issues/8333
170
+ # A workaround for pip removing the `--build` flag. Previously, `pip download --build ...` would leave
171
+ # behind a directory with the Python package extracted and ready to be used.
172
+ # For example, `pip download ... Django` puts `Django-4.0.4.tar.tz` into the build_path directory.
173
+ # If we expect `pip` to leave an unknown-named file in the `build_path` directory, let's check for
174
+ # a single file and unpack it. I don't know if it will /always/ be a .tar.gz though.
175
+ files = ::Dir.glob(File.join(build_path, "*.tar.gz"))
176
+ if files.length != 1
177
+ raise "Unexpected directory layout after `pip download ...`. This might be an fpm bug? The directory is #{build_path}"
178
+ end
179
+
180
+ safesystem("tar", "-zxf", files[0], "-C", target)
172
181
  else
173
182
  # no pip, use easy_install
174
183
  logger.debug("no pip, defaulting to easy_install", :easy_install => attributes[:python_easyinstall])
data/lib/fpm/package.rb CHANGED
@@ -331,11 +331,12 @@ class FPM::Package
331
331
  template_path = File.join(template_dir, path)
332
332
  template_code = File.read(template_path)
333
333
  logger.info("Reading template", :path => template_path)
334
- erb = ERB.new(template_code, nil, "-")
334
+ erb = erbnew(template_code)
335
335
  erb.filename = template_path
336
336
  return erb
337
337
  end # def template
338
338
 
339
+
339
340
  #######################################
340
341
  # The following methods are provided to
341
342
  # easily override particular substitut-
@@ -518,7 +519,7 @@ class FPM::Package
518
519
  # flag), then apply it as an ERB template.
519
520
  def script(script_name)
520
521
  if attributes[:template_scripts?]
521
- erb = ERB.new(scripts[script_name], nil, "-")
522
+ erb = erbnew(scripts[script_name])
522
523
  # TODO(sissel): find the original file name for the file.
523
524
  erb.filename = "script(#{script_name})"
524
525
  return erb.result(binding)
data/lib/fpm/util.rb CHANGED
@@ -154,10 +154,13 @@ module FPM::Util
154
154
 
155
155
  yield(*args3)
156
156
 
157
- stdin_w_close if opts[:stdin] and not stdin_w.closed?
157
+ stdin_w.close if opts[:stdin] and not stdin_w.closed?
158
158
  stdout_r.close unless stdout_r.closed?
159
159
  stderr_r.close unless stderr_r.closed?
160
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
161
164
  # Log both stdout and stderr as 'info' because nobody uses stderr for
162
165
  # actually reporting errors and as a result 'stderr' is a misnomer.
163
166
  logger.pipe(stdout_r => :info, stderr_r => :info)
@@ -406,6 +409,33 @@ module FPM::Util
406
409
  def logger
407
410
  @logger ||= Cabin::Channel.get
408
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
409
439
  end # module FPM::Util
410
440
 
411
441
  require 'fpm/util/tar_writer'
data/lib/fpm/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module FPM
2
- VERSION = "1.14.2"
2
+ VERSION = "1.15.0"
3
3
  end
@@ -1,4 +1,4 @@
1
- <%= name %> (<%= "#{epoch}:" if epoch %><%= version %><%= "-" + iteration.to_s if iteration %>) whatever; urgency=medium
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 %>) whatever; urgency=medium
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| -%>
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.14.2
4
+ version: 1.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jordan Sissel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-31 00:00:00.000000000 Z
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: '3.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: '3.0'
33
13
  - !ruby/object:Gem::Dependency
34
14
  name: cabin
35
15
  requirement: !ruby/object:Gem::Requirement
@@ -100,26 +80,6 @@ dependencies:
100
80
  - - "~>"
101
81
  - !ruby/object:Gem::Version
102
82
  version: 0.0.29
103
- - !ruby/object:Gem::Dependency
104
- name: git
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: 1.3.0
110
- - - "<"
111
- - !ruby/object:Gem::Version
112
- version: '2.0'
113
- type: :runtime
114
- prerelease: false
115
- version_requirements: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- version: 1.3.0
120
- - - "<"
121
- - !ruby/object:Gem::Version
122
- version: '2.0'
123
83
  - !ruby/object:Gem::Dependency
124
84
  name: stud
125
85
  requirement: !ruby/object:Gem::Requirement
@@ -294,7 +254,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
294
254
  - !ruby/object:Gem::Version
295
255
  version: '0'
296
256
  requirements: []
297
- rubygems_version: 3.2.31
257
+ rubygems_version: 3.3.20
298
258
  signing_key:
299
259
  specification_version: 4
300
260
  summary: fpm - package building and mangling