summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelle Licht <jlicht@fsfe.org>2023-02-08 22:05:17 +0100
committerJelle Licht <jlicht@fsfe.org>2023-02-20 16:58:28 +0100
commit197afed76664fc38c7004645a783433b964eecf7 (patch)
treef40681ed2401db16d50331468cf9a14c9bdac3bf
parent5f86a9e427769fb9cf1444d6fa7c8fdf8abac290 (diff)
gnu: node-acorn: Remove lifecycle script.
* gnu/packages/node-xyz.scm (node-acorn)[arguments]<modules>: New argument. <phases>: Patch out unused 'prepare' script that breaks dependents.
-rw-r--r--gnu/packages/node-xyz.scm26
1 files changed, 25 insertions, 1 deletions
diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm
index 51ea110e8c..5e7e6ae4d9 100644
--- a/gnu/packages/node-xyz.scm
+++ b/gnu/packages/node-xyz.scm
@@ -47,11 +47,35 @@
(build-system node-build-system)
(arguments
'(#:tests? #f
+ #:modules
+ ((guix build node-build-system)
+ (srfi srfi-1)
+ (ice-9 match)
+ (guix build utils))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'change-directory
(lambda _
- (chdir "acorn"))))))
+ (chdir "acorn")))
+ (add-before 'configure 'avoid-prepare-scripts
+ (lambda _
+ ;; We need to remove the prepare script from "package.json", as
+ ;; it would try to use the build environment and would block the
+ ;; automatic building by other packages making use of node-acorn.
+ ;; TODO: Add utility function
+ (with-atomic-json-file-replacement "package.json"
+ (match-lambda
+ (('@ . pkg-meta-alist)
+ (cons '@ (map (match-lambda
+ (("scripts" @ . scripts-alist)
+ `("scripts" @ ,@(filter (match-lambda
+ (("prepare" . _)
+ #f)
+ (_
+ #t))
+ scripts-alist)))
+ (other other))
+ pkg-meta-alist))))))))))
(home-page "https://github.com/acornjs/acorn/tree/master/acorn")
(synopsis "Javascript-based Javascript parser")
(description "Acornjs is a Javascript parser with many options and an