>From d5b23cd105e0816a385d8f3fabc47fb6c2e672d6 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer 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 +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