Subject: Re: bug#62196: [PATCH 000/182] Add FPM, update Rails and other Ruby additions/updates

From: Maxim Cournoyer <[email-masked]>
Date: Thu, 23 Mar 2023 00:04:25 -0400

Hi,

I needed the following adjustments to get fpm to truly work:

--8<---------------cut here---------------start------------->8---
modified   gnu/local.mk
@@ -1136,6 +1136,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/fp16-implicit-double.patch		\
   %D%/packages/patches/fp16-system-libraries.patch		\
   %D%/packages/patches/fpc-reproducibility.patch		\
+  %D%/packages/patches/fpm-newer-clamp-fix.patch		\
   %D%/packages/patches/freedink-engine-fix-sdl-hints.patch	\
   %D%/packages/patches/freeimage-unbundle.patch		\
   %D%/packages/patches/fuse-glibc-2.34.patch			\
modified   gnu/packages/package-management.scm
@@ -2021,7 +2021,8 @@ (define-public fpm
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1m2zxf7wyk7psvm611yxs68hnwm0pyqilsmcq3x791hz7rvbg68w"))))
+                "1m2zxf7wyk7psvm611yxs68hnwm0pyqilsmcq3x791hz7rvbg68w"))
+              (patches (search-patches "fpm-newer-clamp-fix.patch"))))
     (build-system ruby-build-system)
     (arguments
      (list #:phases
@@ -2034,6 +2035,11 @@ (define-public fpm
                      (("\"/bin/sh\"")
                       (string-append "\"" (search-input-file inputs "bin/sh")
                                      "\"")))))
+               (add-after 'extract-gemspec 'relax-requirements
+                 (lambda _
+                   (substitute* "fpm.gemspec"
+                     (("\"clamp\", \"~> 1.0.0\"")
+                      "\"clamp\", \">= 1.0.0\""))))
                (add-after 'extract-gemspec 'disable-problematic-tests
                  ;; Disable some tests which are failing (see:
                  ;; https://github.com/jordansissel/fpm/issues/2000).
new file   gnu/packages/patches/fpm-newer-clamp-fix.patch
@@ -0,0 +1,31 @@
+From 956a218a7b35de08ea35da3b702ffdc716656b68 Mon Sep 17 00:00:00 2001
+From: Jordan Sissel <[email-masked]>
+Date: Mon, 15 Oct 2018 21:05:47 -0700
+Subject: [PATCH] Check if an option has a default value before we try to look
+ it up.
+
+This fixes fpm when used with clamp 1.3.0 or above.
+
+Fixes #1543
+---
+ lib/fpm/command.rb | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/lib/fpm/command.rb b/lib/fpm/command.rb
+index a204001e1..a99ddb627 100644
+--- a/lib/fpm/command.rb
++++ b/lib/fpm/command.rb
+@@ -394,7 +394,12 @@ def execute
+     set = proc do |object, attribute|
+       # if the package's attribute is currently nil *or* the flag setting for this
+       # attribute is non-default, use the value.
+-      if object.send(attribute).nil? || send(attribute) != send("default_#{attribute}")
++
++      # Not all options have a default value, so we assume `nil` if there's no default. (#1543)
++      # In clamp >= 1.3.0, options without `:default => ..` will not have any # `default_xyz` 
++      # methods generated, so we need to check for the presence of this method first.
++      default = respond_to?("default_#{attribute}") ? send("default_#{attribute}") : nil
++      if object.send(attribute).nil? || send(attribute) != default
+         logger.info("Setting from flags: #{attribute}=#{send(attribute)}")
+         object.send("#{attribute}=", send(attribute))
+       end
--8<---------------cut here---------------end--------------->8---

Attached is the modified patch.

>From d5b23cd105e0816a385d8f3fabc47fb6c2e672d6 Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <[email-masked]>
Date: Mon, 13 Mar 2023 22:28:36 -0400
Subject: [PATCH] gnu: Add fpm.

* gnu/packages/package-management.scm (fpm): New variable.
* gnu/packages/patches/fpm-newer-clamp-fix.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/package-management.scm           | 86 +++++++++++++++++++
 .../patches/fpm-newer-clamp-fix.patch         | 33 +++++++
 3 files changed, 120 insertions(+)
 create mode 100644 gnu/packages/patches/fpm-newer-clamp-fix.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index e820ae4bc7..0e67ce2648 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1136,6 +1136,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/fp16-implicit-double.patch		\
   %D%/packages/patches/fp16-system-libraries.patch		\
   %D%/packages/patches/fpc-reproducibility.patch		\
+  %D%/packages/patches/fpm-newer-clamp-fix.patch		\
   %D%/packages/patches/freedink-engine-fix-sdl-hints.patch	\
   %D%/packages/patches/freeimage-unbundle.patch		\
   %D%/packages/patches/fuse-glibc-2.34.patch			\
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 562d228cf4..9b7231e362 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -59,6 +59,7 @@ (define-module (gnu packages package-management)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages debian)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages docbook)
@@ -87,6 +88,7 @@ (define-module (gnu packages package-management)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ninja)
+  #:use-module (gnu packages node)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages patchutils)
   #:use-module (gnu packages perl)
@@ -98,6 +100,7 @@ (define-module (gnu packages package-management)
   #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages ssh)
@@ -117,6 +120,7 @@ (define-module (gnu packages package-management)
   #:use-module (guix build-system guile)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system ruby)
   #:use-module (guix build-system trivial)
   #:use-module (guix download)
   #:use-module (guix gexp)
@@ -2005,6 +2009,88 @@ (define-public flatpak
 sandboxed desktop applications on GNU/Linux.")
     (license license:lgpl2.1+)))
 
+(define-public fpm
+  (package
+    (name "fpm")
+    (version "1.15.1")
+    (source (origin
+              (method git-fetch)        ;for tests
+              (uri (git-reference
+                    (url "https://github.com/jordansissel/fpm")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1m2zxf7wyk7psvm611yxs68hnwm0pyqilsmcq3x791hz7rvbg68w"))
+              (patches (search-patches "fpm-newer-clamp-fix.patch"))))
+    (build-system ruby-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'extract-gemspec 'patch-paths
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (substitute* '("lib/fpm/util.rb"
+                                  "spec/fpm/util_spec.rb"
+                                  "spec/fpm/package/rpm_spec.rb")
+                     (("\"/bin/sh\"")
+                      (string-append "\"" (search-input-file inputs "bin/sh")
+                                     "\"")))))
+               (add-after 'extract-gemspec 'relax-requirements
+                 (lambda _
+                   (substitute* "fpm.gemspec"
+                     (("\"clamp\", \"~> 1.0.0\"")
+                      "\"clamp\", \">= 1.0.0\""))))
+               (add-after 'extract-gemspec 'disable-problematic-tests
+                 ;; Disable some tests which are failing (see:
+                 ;; https://github.com/jordansissel/fpm/issues/2000).
+                 (lambda _
+                   ;; There are 4 'NoMethodError' test failures in the
+                   ;; command_spec suite, for unknown reasons.
+                   (delete-file "spec/fpm/command_spec.rb")
+                   (substitute* "spec/fpm/package_spec.rb"
+                     (("@oldtmp = ENV\\[\"TMP\"]" all)
+                      "skip('fails with guix')"))
+                   (substitute* "spec/fpm/package/cpan_spec.rb"
+                     ;; This test is marked as expected to fail (pending) when
+                     ;; TRAVIS_OS_NAME is set, but passes with Guix; skip it.
+                     (("it \"should unpack tarball containing" all)
+                      (string-append "x" all)))
+                   (substitute* "spec/fpm/package/gem_spec.rb"
+                     ;; This test fails for unknown reason; perhaps a patched
+                     ;; shebang.
+                     (("it 'should not change the shebang'" all)
+                      (string-append "x" all)))))
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     ;; Set TRAVIS_OS_NAME to skip tests known to cause
+                     ;; problems in minimal environments.
+                     (setenv "TRAVIS_OS_NAME" "GNU Guix")
+                     (invoke "rspec")))))))
+    (native-inputs
+     (list dpkg
+           libarchive
+           node
+           perl-app-cpanminus
+           python
+           ruby-rspec
+           squashfs-tools
+           zstd))
+    (inputs
+     (list bash-minimal
+           ruby-arr-pm
+           ruby-backports
+           ruby-cabin
+           ruby-clamp
+           ruby-pleaserun
+           ruby-rexml
+           ruby-stud))
+    (home-page "https://github.com/jordansissel/fpm/")
+    (synopsis "Package building and mangling tool")
+    (description "@command{fpm} is a command to convert directories, RPMs,
+Python eggs, Ruby gems, and more to RPMs, debs, Solaris packages and more.")
+    (license license:expat)))
+
 (define-public akku
   (package
     (name "akku")
diff --git a/gnu/packages/patches/fpm-newer-clamp-fix.patch b/gnu/packages/patches/fpm-newer-clamp-fix.patch
new file mode 100644
index 0000000000..9fbb15ee29
--- /dev/null
+++ b/gnu/packages/patches/fpm-newer-clamp-fix.patch
@@ -0,0 +1,33 @@
+Retrieved from: https://github.com/jordansissel/fpm/pull/1561.patch
+
+From 956a218a7b35de08ea35da3b702ffdc716656b68 Mon Sep 17 00:00:00 2001
+From: Jordan Sissel <[email-masked]>
+Date: Mon, 15 Oct 2018 21:05:47 -0700
+Subject: [PATCH] Check if an option has a default value before we try to look
+ it up.
+
+This fixes fpm when used with clamp 1.3.0 or above.
+
+Fixes #1543
+---
+ lib/fpm/command.rb | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/lib/fpm/command.rb b/lib/fpm/command.rb
+index a204001e1..a99ddb627 100644
+--- a/lib/fpm/command.rb
++++ b/lib/fpm/command.rb
+@@ -394,7 +394,12 @@ def execute
+     set = proc do |object, attribute|
+       # if the package's attribute is currently nil *or* the flag setting for this
+       # attribute is non-default, use the value.
+-      if object.send(attribute).nil? || send(attribute) != send("default_#{attribute}")
++
++      # Not all options have a default value, so we assume `nil` if there's no default. (#1543)
++      # In clamp >= 1.3.0, options without `:default => ..` will not have any # `default_xyz` 
++      # methods generated, so we need to check for the presence of this method first.
++      default = respond_to?("default_#{attribute}") ? send("default_#{attribute}") : nil
++      if object.send(attribute).nil? || send(attribute) != default
+         logger.info("Setting from flags: #{attribute}=#{send(attribute)}")
+         object.send("#{attribute}=", send(attribute))
+       end

base-commit: 5174820753be045ba4fc7cc93da33f4e0b730bc3
prerequisite-patch-id: 09822aa431e6d44db6d85345c890bec22e5d3755
prerequisite-patch-id: 5d60a89d3f59a159f77d1fb6cc56388a8bc168b0
prerequisite-patch-id: 0201548e6b9ccf0077ee092854bbe68d727238d7
prerequisite-patch-id: 28e32ea1a2245ebbfa5d36d8ed517956506a7f5d
prerequisite-patch-id: 612981cfa687c12a2f7b4744e3af19630ab1120f
prerequisite-patch-id: fc02be562b5095a090cc39d855ed870a87f7e11b
prerequisite-patch-id: bd4874f281e254563f79237461ebb7d5e3284eb4
prerequisite-patch-id: d2a8b741ac6f67af38915d24444933cdc2b20e86
prerequisite-patch-id: 1b06dbe3db65090f01219a3e1a7c7d6f4429d563
prerequisite-patch-id: efe284e4e3ef307949c5be4a3ff31035f8196eb4
prerequisite-patch-id: 90f9ed3d153defad5d055f02c17f1574709f2f9c
prerequisite-patch-id: 736a73aad2698b7fa0422e0138197446eb17a048
prerequisite-patch-id: 45d18fe04a3b9c7f23c51767e4fdb9aaf846c7d7
prerequisite-patch-id: d4e60b275824fd716725bb58491d7cbfa35e7988
prerequisite-patch-id: c33195dc771e66b920b1111500811302cae7db54
prerequisite-patch-id: 1e05a0f437cfd71170d2ef390ee9924a53038cc4
prerequisite-patch-id: f9b1a416934e43ed389ac9fbe626a721066eb4fc
prerequisite-patch-id: 832e4d270e49520f1b4c43beaf6bee67d0b48afc
prerequisite-patch-id: 82b1795b0684353ff555268322c5894381289194
prerequisite-patch-id: 06730ab79e4cce81914bab21f492feea740e4664
prerequisite-patch-id: e15add5b513549830698385eee01400c86b5c8b6
prerequisite-patch-id: cb225ee9d039644caa051cd3f21e56e7465c33c1
prerequisite-patch-id: 574e0a3a8546331d864d47d9d056d1c0ab8a9171
prerequisite-patch-id: 3800d174fd8b246cf375cf25c0873f53e414c310
prerequisite-patch-id: 3b0906c42c62276749ab7453c60647547cb6cb45
prerequisite-patch-id: 59914dcd6c804b46bb72ee13ca2d138e5901dcca
prerequisite-patch-id: e5a320b788a534f13c58c570c3e16c6316f79994
prerequisite-patch-id: 8f6317b12f6ba15465be8d88051ead2fe5f87a9f
prerequisite-patch-id: c8c04a4440ee04724dc3f5067245b0395cde475b
prerequisite-patch-id: ce6b8e81a5717e8958c792fc39db6cb025f46cfd
prerequisite-patch-id: 0f1a22ac6d089710876fb5be12ea40f11f6aae3a
prerequisite-patch-id: 06da958eb2e483e42973de42f52761d7c88ce005
prerequisite-patch-id: 14fa27614a6e72b44f1b46a18cbd9706709dd80d
prerequisite-patch-id: e4172c359f315b0c4443b36897e24e41f7253d7c
prerequisite-patch-id: 25790613101334f2de7213a3b1f120165eb7e822
prerequisite-patch-id: 389f52615d4fef6f4388da32ed9ab0aac42750b2
prerequisite-patch-id: 60f998411b14747b8c9f756a31b02b7feabe2578
prerequisite-patch-id: 028907e49056eca01e32239a1ed4e39cf857f65e
prerequisite-patch-id: 053fa73cf88cf7cfe4a79cf97896865360c86371
prerequisite-patch-id: 9b5a8e9e7e43b76303f9afd62a59af284b1f647f
prerequisite-patch-id: 59224b3e6c85c48c6020ac9d7c95b2ab11044e3c
prerequisite-patch-id: 733b1556354a03fecda2e545ed0855a03a592664
prerequisite-patch-id: 8225660c36a6cd25d89237768184b7f1258489c8
prerequisite-patch-id: 4b05f7f0d6add8145784c95e8d6525c73e95061f
prerequisite-patch-id: 9617e445c97cbd82a72b7254764e8f58ff2a83de
prerequisite-patch-id: 3ff20351ebf960af6272da62c1ff1b6af288ac93
prerequisite-patch-id: ed899a058e1a3413c015eb603740b51fff6b6eac
prerequisite-patch-id: dbad96751ef3afb53bdba74f144908e409c550cc
prerequisite-patch-id: 0a476aced7ed547bb8ce6b05c9439c501806b91c
prerequisite-patch-id: 50d28b15beaefd80040f155c492d0f82ae3f8b79
prerequisite-patch-id: 656b67addc3b60afeb5e33c35be3e79267c4ae35
prerequisite-patch-id: e206409a14f03a54d1981cf271420c321746408b
prerequisite-patch-id: ed23d65ecddb83a1e041874e98b5b7b4b7e05ede
prerequisite-patch-id: 848eebed970c8699d718d5d22a9344ec1c2170bb
prerequisite-patch-id: 7acc23dee8e125a86095c3b4b104d38bb0cc8749
prerequisite-patch-id: 6a81dd60ab729b86e5049052cbabf368d1adb904
prerequisite-patch-id: 072d2da474c267e8b928be386cc7857a8b07393d
prerequisite-patch-id: af5b162ff72ec8f39d75713f1b49173f8e9ebdaa
prerequisite-patch-id: a1ac1633793124c7af7f2e0dc8ef5fcf339ac68b
prerequisite-patch-id: d6282325e3fddd49a804dd347daeabf38d5016d1
prerequisite-patch-id: 0412446beffe107b9e1a37c5dc81c3c2e834d81c
prerequisite-patch-id: 998718ec33d519d6a8913fed6bd94a4e14496e47
prerequisite-patch-id: e4eea56fecc65a9bf1d522ab5597197fc767bf91
prerequisite-patch-id: 06c6e5988002a026bc34e941a9120a351ece910d
prerequisite-patch-id: 2ea39d8de10524c96d7a3199e60d9b4e0da2ed2b
prerequisite-patch-id: cedc7502ffcf953b6f581c13ccc0413f5ed3d872
prerequisite-patch-id: c5f7817ade74f310d5b4b4a0fe392687e481971d
prerequisite-patch-id: 463831ff2eeca4a8f054678ecc43c0b91f238e98
prerequisite-patch-id: 99812ccd90fd139dffe3dc7fb5c98e9ccf28df00
prerequisite-patch-id: d31b28e2cf77c988b6f30e632b92e5039e905551
prerequisite-patch-id: 1b835549a0c7ab2eec2855efdc34bc7c8225d087
prerequisite-patch-id: a24dcd48c2b16e392b10d76bd149fe70f77fdb1f
prerequisite-patch-id: 72022f3e913a6d60eabab4876ebcd8e0397aa90f
prerequisite-patch-id: 6470894c5244c4f2aa654109d4c1c7cc3c2cff71
prerequisite-patch-id: 95f7e69fede202723fa7223b191f1323845ba0a7
prerequisite-patch-id: 2a2f3b1d86499d111c3febf2b4756399c5d3ce07
prerequisite-patch-id: 13b7339d80b2f619ad2a236b379946e32032f4f0
prerequisite-patch-id: 0b26c94651ca8714e228dbfd389259caf9cf5a18
prerequisite-patch-id: d9a45ea982782dafec419d572b98ed8d92ac94aa
prerequisite-patch-id: 29f90e12719a8e5df1c3433dfaefc0eaf4528559
prerequisite-patch-id: 6776d2c4a975868fe12d6432b06881a63cda45d4
prerequisite-patch-id: 454e69cba0b82712b4339349472c31aa69da15fb
prerequisite-patch-id: 4248322bd7ae654eabcacbfb424e603a05246f0e
prerequisite-patch-id: a9d33788c612caa567989b78edbb09e734293605
prerequisite-patch-id: b0da4baf3df29024473635c5bf897356ea90e0aa
prerequisite-patch-id: 5755d81334249bd78aadd4f89c47d6fefce66285
prerequisite-patch-id: 9ccf66f57620ac92603e686df0223482ecb9dad2
prerequisite-patch-id: 64504424faf5607e20e90bd9f6a99d5634ca77c4
prerequisite-patch-id: 331d724d664c3064e06e104b05ce10221296b564
prerequisite-patch-id: 7510bd15df7f708b8a6b305ac17486de566a9663
prerequisite-patch-id: 3d2b5f17f0ec11dee04aab93e95cd3c83cf23374
prerequisite-patch-id: 4a2e8c9dd12752919af94fd80b97d0b0b327bd4d
prerequisite-patch-id: a4b3d4baba25a76d706e21a00d560c3f9ce7bf34
prerequisite-patch-id: ba0dbed7a45eb22ed21e03fa8f3a34ea53f05ea1
prerequisite-patch-id: d380fba0b9da5bab14cdbd4dc3de5262cf86c430
prerequisite-patch-id: 24c562bb68501d2edccacd5dda73d8de2b6ebcf3
prerequisite-patch-id: bedf2404d5374fae09399541cc114c66176052da
prerequisite-patch-id: ced460b2e708dcd3a233df761d3cb768f1aa4995
prerequisite-patch-id: 1ea26466b4466033ba1591599b6f17fdf5ba559b
prerequisite-patch-id: a2124d160dfd92658a3f36febbc35390887160df
prerequisite-patch-id: 184494c669e7be5f141e15c01d9685b3877c39de
prerequisite-patch-id: 4c5a3b74f1ff78ef51c6889c6191961fd37616ce
prerequisite-patch-id: fbc2c6fe70c337a690a760d6d100370aa5765201
prerequisite-patch-id: f023aeee7ee38cc86194953fb4e97f3e5b460b50
prerequisite-patch-id: 9e66a6ae4de97c4d4c624a8681f04149f6273fa6
prerequisite-patch-id: 2eadcf883abc3e004c14bfb6445bfc185745fbe7
prerequisite-patch-id: a9675e63747b84b45941a34a77bdfdb1ddc5fcdf
prerequisite-patch-id: 1b6c1c6b7ecc1e5f782ced368ba656863f8519a5
prerequisite-patch-id: 4509f7329877cf6afe48db787e7856763d8dfb73
prerequisite-patch-id: 33d473e825837671768448e3c35facfc6ac550c9
prerequisite-patch-id: 0d3909aa6e2eeeceeee77ec691165e191bc5f2bb
prerequisite-patch-id: 49400285b3866f4ff3073369308eef5222ca5d83
prerequisite-patch-id: 846ebb18a08e510ec467a31ef7010f6bbeee6b00
prerequisite-patch-id: dba7c6d97d48a819210da9e5ec867f205e1107ac
prerequisite-patch-id: 6b1ce92a7971f4f39d9e07586b9b9cdd6857bfd0
prerequisite-patch-id: 47a9f7356aa4190e978aee5ab3523752dacb57bb
prerequisite-patch-id: d8d7f032e242f031a642a76275bc8955409f0e9e
prerequisite-patch-id: e0e4c5d87e9a0fea75b554709ffde2038123a46a
prerequisite-patch-id: 026ab7ab71bd1019db1e32048c38cbfcccead175
prerequisite-patch-id: 6cb1725d6e95caf9a6a91d9696a222218643bb02
prerequisite-patch-id: 1307e97786e706754c65e9a4c16a03b0617941d8
prerequisite-patch-id: fffa4ca180ab9df81bb9d75c462b82ac81f66453
prerequisite-patch-id: b7df0cf04e27be069589657a27683935f8541af4
prerequisite-patch-id: a7abb5f130749cf52f1e7368896b09384178decb
prerequisite-patch-id: 708763a6d51ede269a7f039d1d1967add6af166b
prerequisite-patch-id: 15f9fa2b0fee8149a296c2fcb77bcb0345688545
prerequisite-patch-id: d68941084c6e745d85c0bdf80ea3b42d3e657bd3
prerequisite-patch-id: 7d65855c7f9e6653dec8c9955efeb82d3d5990db
prerequisite-patch-id: 1ea7f33d692e87828d54e84b13b7d1861bcdfe1f
prerequisite-patch-id: d5c2e5001921fea8753de756117ee871901db5dd
prerequisite-patch-id: 1c4b32ebc9866b2b5bb663d37120b536c01c4827
prerequisite-patch-id: 791200f791274b7949adf2647709ea3a3da0c5b5
prerequisite-patch-id: f4d10617fe3bcc1eff1594458dacca2ed58a3701
prerequisite-patch-id: a161a6b004f6db0c2d1cb5ea2bf2572227a570d9
prerequisite-patch-id: 02ed4e94d5724ac41b05f687ec635b74d187590b
prerequisite-patch-id: f87342068219596aed2b364a830b2c24873260d0
prerequisite-patch-id: e0f38b64a1425583162aaccd417c04c00bbd680f
prerequisite-patch-id: 3672697e33f44d57db418270cb3e25a979628ff9
prerequisite-patch-id: 288ff9c3160dabe6d74f448687c0d3be651c7105
prerequisite-patch-id: d0e8ea40474f480264dc5fab3b1bc70a649e932d
prerequisite-patch-id: a24f1049bda0b195180735f050869b91009c4b1c
prerequisite-patch-id: 5b77241785787f607d81f2e0cc07a756fca6011e
prerequisite-patch-id: e5cc0bdbb2d8c859650f848d2ed03f775d5ce638
prerequisite-patch-id: e1ef89c9f82eecb6ab6ecbb830d024814ba28c8a
prerequisite-patch-id: b419b960b8a33c6158e1c76b4fb7473d90961182
prerequisite-patch-id: ef8a1fef403101e5f883abd3dea1efd96bfde9be
prerequisite-patch-id: 5f76f3dedac67909a92617e9492402bea2a41934
prerequisite-patch-id: ae1d0f8ae769b4bf58c1a2f674403d5fe0fd0759
prerequisite-patch-id: e030bda00efeb44cad2592ec53049e4e8cc9bba1
prerequisite-patch-id: 00d98d578c68ff806839b143ac4f2db3128afdbf
prerequisite-patch-id: 5e85d1ddcdcafa8563d8dd8a2d5eedeec660faea
prerequisite-patch-id: b79dff58177f15253b523fd71f4eab4631de280e
prerequisite-patch-id: cbdd3de78ba57ecb97757e253b87d6fb6d15755f
prerequisite-patch-id: f4670d9cddbec127fa3430ab33d5745129fbe22d
prerequisite-patch-id: 7b96c6113b0d9afc8d044cd0290b8babd3fd1e71
prerequisite-patch-id: 8ea65198fddffe3f4391bd34517923da5a8baa5c
prerequisite-patch-id: ae81f9cfdcef6f0be245bc98593ca54b9b49276c
prerequisite-patch-id: 3e8e3aef73cdc63f34f17b151ef46ed6e979c857
prerequisite-patch-id: ed6d04a439d8222ef39ea92afe81251b3f1b250e
prerequisite-patch-id: f368b7e3538a2515ad16dd234a826954c0ef1785
prerequisite-patch-id: 3f8b798a6951c487a35d159eeb4622b09f33d03f
prerequisite-patch-id: 2a16c57f6d4736e8a19890a6864f25a392bdec0a
prerequisite-patch-id: e031d76854186fcc3c47af06e57c6c864b041440
prerequisite-patch-id: 18be5cbce63181202cf68cdeb2e83eb13c1415bb
prerequisite-patch-id: 91281d05c7b9d6e3c57b68c29be7aa837653313a
prerequisite-patch-id: 6bf427e2493fe7209b72e4ea871aa0113e32189c
prerequisite-patch-id: ded68f28b7f83c2953b0e9a9035f5b2ce285f4eb
prerequisite-patch-id: 1e3a707c53e82e927931c75b0bb51bd1f864dfa7
prerequisite-patch-id: de15b8fcc53976db9195a25f3a84d93ac6059bac
prerequisite-patch-id: 24a00012fc29ecfdf7bf6eb415e52a32524a29c4
prerequisite-patch-id: fa8ecaa1e4494312a811841afff31f9f947463dd
prerequisite-patch-id: 2426ead7e9d9b15e4bcb5cec6fe9f9c2406052cc
prerequisite-patch-id: 6342cebcdb60560476712405a4fb6375565c73de
prerequisite-patch-id: 0fe4d6580620e9fb8485c846246491c6dba68261
prerequisite-patch-id: 4202d710f677b4e55288cde605d7da10a880244b
prerequisite-patch-id: 78ea092803fb065e351710a108a066f50950cd4f
prerequisite-patch-id: 019065a06c7b03b64e13489483af04ede7e5d14b
prerequisite-patch-id: cd506c0f1176fa1cd25131945a4d9a65d90dd898
-- 
2.39.1

-- 
Thanks,
Maxim