fpm 1.14.1 → 1.14.2

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: '079f0bd8cc1fe2a84b6e5dfc38cc0ae2e509d271d9752e0fb739c7cde79c746b'
4
- data.tar.gz: 28ed14320c22c0dc5767781d3f325cd4e817b16e42999b0a2d1e2713522d0761
3
+ metadata.gz: 8d9090d2dd285f34892443936dfd389afe4f566eadc9cc3eb8cdc2103f93f712
4
+ data.tar.gz: 44e67a378384be66baddf1c5dfcb1a2ed88f1b512ed84b9bba7c823866e71e31
5
5
  SHA512:
6
- metadata.gz: b6287a7079c1f00a327d92a268f46df825cdbcc5008d719a23a4dd8f4fdba574bedf735f559207781794c7c29cf39153092d1f1452d8d3ddd4d23f808a8856ae
7
- data.tar.gz: 4c90779c8b7990818a76dc4fd60035311fe8ad461e7717271abd11318d1cad10bff03783468ee78fa17bc8455d692deabd69c41bb0ffef8195d6c4be61a56d6e
6
+ metadata.gz: 68e628235ec80373159575e51ece876047f12fc9a149c03c4652424ad29605059e83483e0d1dcae2e85fba9bbe53989a6489d9b18f23e699afd787401c215264
7
+ data.tar.gz: 873f374ccb59dcdd95bf0f586a007a46cc0a4a9d28ebdb616dc829d8b3f8fbf80b9231b0625050d4d1b6e0153ee0df168eaac712c436a6724cd70d7116311b7d
data/CHANGELOG.rst CHANGED
@@ -1,6 +1,15 @@
1
1
  Release Notes and Change Log
2
2
  ============================
3
3
 
4
+ 1.14.2 (March 30, 2022)
5
+ ^^^^^^^^^^^^^^^^^^^^^^^
6
+ * deb: fix bug causing ``--deb-compression none`` to invoke ``tar`` incorrectly (`#1879`_; John Howard)
7
+ * rpm: Better support for paths that have spaces and mixed quotation marks in them. (`#1882`_, `#1886`_, `#1385`_; John Bollinger and Jordan Sissel)
8
+ * pacman: Fix typo preventing the use of ``--pacman-compression xz`` (`#1876`_; mszprejda)
9
+ * docs: All supported package types now have dedicated documentation pages. Some pages are small stubs and would benefit from future improvement. (`#1884`_; mcandre, Jordan Sissel)
10
+ * docs: Small but lovely documentation fixes (`#1875`_ by Corey Quinn, `#1864`_ by Geoff Beier)
11
+ * Fixed mistake causing the test suite to fail when ``rake`` wasn't available. (`#1877`_; Jordan Sissel)
12
+
4
13
  1.14.1 (November 10, 2021)
5
14
  ^^^^^^^^^^^^^^^^^^^^^^^^^^
6
15
  * Fix a bug that impacted fpm api usage (from other ruby programs) that caused an error "NameError: uninitialized constant FPM::Package::CPAN" when trying to output a Deb package. (`#1854`_, `#1856`_; Karol Bucek, Jordan Sissel)
@@ -613,25 +613,24 @@ class FPM::Package::Deb < FPM::Package
613
613
  when "gz", nil
614
614
  datatar = build_path("data.tar.gz")
615
615
  controltar = build_path("control.tar.gz")
616
- compression = "-z"
616
+ compression_flags = ["-z"]
617
617
  when "bzip2"
618
618
  datatar = build_path("data.tar.bz2")
619
619
  controltar = build_path("control.tar.gz")
620
- compression = "-j"
620
+ compression_flags = ["-j"]
621
621
  when "xz"
622
622
  datatar = build_path("data.tar.xz")
623
623
  controltar = build_path("control.tar.xz")
624
- compression = "-J"
624
+ compression_flags = ["-J"]
625
625
  when "none"
626
626
  datatar = build_path("data.tar")
627
627
  controltar = build_path("control.tar")
628
- compression = ""
628
+ compression_flags = []
629
629
  else
630
630
  raise FPM::InvalidPackageConfiguration,
631
631
  "Unknown compression type '#{self.attributes[:deb_compression]}'"
632
632
  end
633
-
634
- args = [ tar_cmd, "-C", staging_path, compression ] + data_tar_flags + [ "-cf", datatar, "." ]
633
+ args = [ tar_cmd, "-C", staging_path ] + compression_flags + data_tar_flags + [ "-cf", datatar, "." ]
635
634
  if tar_cmd_supports_sort_names_and_set_mtime? and not attributes[:source_date_epoch].nil?
636
635
  # Use gnu tar options to force deterministic file order and timestamp
637
636
  args += ["--sort=name", ("--mtime=@%s" % attributes[:source_date_epoch])]
@@ -906,13 +905,13 @@ class FPM::Package::Deb < FPM::Package
906
905
  case self.attributes[:deb_compression]
907
906
  when "gz", "bzip2", nil
908
907
  controltar = "control.tar.gz"
909
- compression = "-z"
908
+ compression_flags = ["-z"]
910
909
  when "xz"
911
910
  controltar = "control.tar.xz"
912
- compression = "-J"
911
+ compression_flags = ["-J"]
913
912
  when "none"
914
913
  controltar = "control.tar"
915
- compression = ""
914
+ compression_flags = []
916
915
  else
917
916
  raise FPM::InvalidPackageConfiguration,
918
917
  "Unknown compression type '#{self.attributes[:deb_compression]}'"
@@ -922,7 +921,7 @@ class FPM::Package::Deb < FPM::Package
922
921
  build_path(controltar).tap do |controltar|
923
922
  logger.info("Creating", :path => controltar, :from => control_path)
924
923
 
925
- args = [ tar_cmd, "-C", control_path, compression, "-cf", controltar,
924
+ args = [ tar_cmd, "-C", control_path ] + compression_flags + [ "-cf", controltar,
926
925
  "--owner=0", "--group=0", "--numeric-owner", "." ]
927
926
  if tar_cmd_supports_sort_names_and_set_mtime? and not attributes[:source_date_epoch].nil?
928
927
  # Force deterministic file order and timestamp
@@ -234,7 +234,7 @@ class FPM::Package::Pacman < FPM::Package
234
234
  return ""
235
235
  when "gz"
236
236
  return ".gz"
237
- when "zx"
237
+ when "xz"
238
238
  return ".xz"
239
239
  when "bzip2"
240
240
  return ".bz2"
@@ -192,17 +192,26 @@ class FPM::Package::RPM < FPM::Package
192
192
  # Replace * with [*] to make rpm not use globs
193
193
  # Replace ? with [?] to make rpm not use globs
194
194
  # Replace % with [%] to make rpm not expand macros
195
+ # Replace whitespace with ? to make rpm not split the filename
196
+ # If and only if any of the above are done, then also replace ' with \', " with \", and \ with \\\\
197
+ # to accommodate escape and quote processing that rpm will perform in that case (but not otherwise)
195
198
  def rpm_fix_name(name)
196
- name = name.gsub(/(\ |\[|\]|\*|\?|\%|\$|')/, {
197
- ' ' => '?',
198
- '%' => '[%]',
199
- '$' => '[$]',
200
- '?' => '[?]',
201
- '*' => '[*]',
202
- '[' => '[\[]',
203
- ']' => '[\]]',
204
- "'" => "\\'",
205
- })
199
+ if name.match?(/[ \t*?%$\[\]]/)
200
+ name = name.gsub(/(\ |\t|\[|\]|\*|\?|\%|\$|'|"|\\)/, {
201
+ ' ' => '?',
202
+ "\t" => '?',
203
+ '%' => '[%]',
204
+ '$' => '[$]',
205
+ '?' => '[?]',
206
+ '*' => '[*]',
207
+ '[' => '[\[]',
208
+ ']' => '[\]]',
209
+ '"' => '\\"',
210
+ "'" => "\\'",
211
+ '\\' => '\\\\\\\\',
212
+ })
213
+ end
214
+ name
206
215
  end
207
216
 
208
217
  def rpm_file_entry(file)
data/lib/fpm/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module FPM
2
- VERSION = "1.14.1"
2
+ VERSION = "1.14.2"
3
3
  end
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.14.1
4
+ version: 1.14.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jordan Sissel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-10 00:00:00.000000000 Z
11
+ date: 2022-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -190,6 +190,20 @@ dependencies:
190
190
  - - ">="
191
191
  - !ruby/object:Gem::Version
192
192
  version: '0'
193
+ - !ruby/object:Gem::Dependency
194
+ name: rake
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ type: :development
201
+ prerelease: false
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
193
207
  description: Convert directories, rpms, python eggs, rubygems, and more to rpms, debs,
194
208
  solaris packages and more. Win at package management without wasting pointless hours
195
209
  debugging bad rpm specs!