guix_mirror_bot pushed a commit to branch master
in repository guix.
commit ab62c438ef382260722f7adb931a43521feaf4c2
Author: Nicolas Graves <[email protected]>
AuthorDate: Sun Jul 12 00:41:47 2026 +0200
gnu: node-llparse-bootstrap: Avoid node-build-system.
* gnu/packages/node.scm (node-llparse-bootstrap)
[name]: Add -bootstrap suffix.
[build-system]: Switch to gnu-build-system + bootstrap-node-phases.
[arguments]: Improve style.
{node}: Drop it.
{phases}: Migrate accordingly.
[native-inputs]: Add node-bootstrap.
Change-Id: I5e4a2db417daf7443043c7efab3e45570f2f960a
Signed-off-by: Jelle Licht <[email protected]>
---
gnu/packages/node.scm | 92 +++++++++++++++++++++++++++------------------------
1 file changed, 49 insertions(+), 43 deletions(-)
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 74fc1fa2c59..79988f6d753 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -649,7 +649,7 @@ Node.js and web browsers.")
(define-public node-llparse-bootstrap
(package
- (name "node-llparse")
+ (name "node-llparse-bootstrap")
(version "7.3.0")
(source
(origin
@@ -659,48 +659,54 @@ Node.js and web browsers.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "09hqjcynkz5iv7aydzdwgs42r7y2zylplv0ff7w0vkdsgb08j22a"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Fix imports for esbuild.
- ;; https://github.com/evanw/esbuild/issues/477
- (substitute* '("src/compiler/index.ts"
- "src/implementation/c/node/base.ts"
- "src/implementation/c/node/table-lookup.ts"
- "src/implementation/c/compilation.ts"
- "src/implementation/c/helpers/match-sequence.ts"
- "src/implementation/c/code/mul-add.ts")
- (("\\* as assert") "assert")
- (("\\* as debugAPI") "debugAPI"))
- #t))))
- (build-system node-build-system)
+ (base32 "09hqjcynkz5iv7aydzdwgs42r7y2zylplv0ff7w0vkdsgb08j22a"))))
+ (build-system gnu-build-system)
(arguments
- `(#:node ,node-bootstrap
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- (add-after 'patch-dependencies 'delete-dependencies
- (lambda args
- (modify-json (delete-dependencies
- `("@stylistic/eslint-plugin"
- "@typescript-eslint/eslint-plugin"
- "@typescript-eslint/parser"
- "@types/debug"
- "@types/mocha"
- "@types/node"
- "esm"
- "eslint"
- "llparse-test-fixture"
- "mocha"
- "ts-node"
- "tslint"
- "typescript")))))
- (replace 'build
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((esbuild (search-input-file inputs "/bin/esbuild")))
- (invoke esbuild
+ (list
+ #:tests? #f
+ #:phases
+ #~(modify-phases #$bootstrap-node-phases
+ (add-after 'unpack 'fix-imports-for-esbuild
+ ;; https://github.com/evanw/esbuild/issues/477
+ (lambda _
+ (substitute* '("src/compiler/index.ts"
+ "src/implementation/c/node/base.ts"
+ "src/implementation/c/node/table-lookup.ts"
+ "src/implementation/c/compilation.ts"
+ "src/implementation/c/helpers/match-sequence.ts"
+ "src/implementation/c/code/mul-add.ts")
+ (("\\* as assert") "assert")
+ (("\\* as debugAPI") "debugAPI"))))
+ (add-before 'configure 'patch-dependencies
+ (lambda* (#:key inputs #:allow-other-keys)
+ #$(delete-dependencies* (list "@stylistic/eslint-plugin"
+ "@typescript-eslint/eslint-plugin"
+ "@typescript-eslint/parser"
+ "@types/debug"
+ "@types/mocha"
+ "@types/node"
+ "esm"
+ "eslint"
+ "llparse-test-fixture"
+ "mocha"
+ "ts-node"
+ "tslint"
+ "typescript"))
+ ;; Resolve dependencies manually.
+ (let* ((debug-path "lib/node_modules/debug")
+ (debug (search-input-directory inputs debug-path))
+ (frontend-path "lib/node_modules/llparse-frontend")
+ (frontend (search-input-directory inputs frontend-path)))
+ (substitute* "package.json"
+ (("\"debug\": \".*")
+ (format #f "\"debug\": \"file://~a\"," debug))
+ (("\"llparse-frontend\": \".*")
+ (format #f "\"llparse-frontend\": \"file://~a\""
+ frontend))))))
+ (add-before 'repack 'build
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((esbuild (search-input-file inputs "/bin/esbuild")))
+ (invoke esbuild
"--platform=node"
"--outfile=lib/api.js"
"--bundle"
@@ -708,7 +714,7 @@ Node.js and web browsers.")
(inputs
(list node-debug-bootstrap node-llparse-frontend-bootstrap))
(native-inputs
- (list esbuild))
+ (list esbuild node-bootstrap))
(home-page "https://github.com/nodejs/llparse#readme")
(properties '((hidden? . #t)))
(synopsis "Compile incremental parsers to C code")