From patchwork Mon May 12 09:28:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Dan Khodabakhsh X-Patchwork-Id: 42540 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id A33D827BC4B; Mon, 12 May 2025 10:29:14 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 57CE927BC49 for ; Mon, 12 May 2025 10:29:14 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uEPT8-0000Fl-4S; Mon, 12 May 2025 05:29:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uEPT5-0000EG-HZ for guix-patches@gnu.org; Mon, 12 May 2025 05:29:03 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uEPT4-0006z1-QS for guix-patches@gnu.org; Mon, 12 May 2025 05:29:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=Date:Mime-Version:From:To:In-Reply-To:References:Subject; bh=K14mOiZTh9F2jW42TbtUizfe4PDosNMgpdAPyu8FsKw=; b=kkBd9VOGMOku5HdOcKCKMrvxqLEPh8nbJ6CIaSi0b6Fg0DKT2IC5BY0OcLrPoe+yt86j3UAOZ8HBM6j2xpF3eewh7st5VlRvXePDsRxAVVKC+fqH2MQExeCjbf9BcdmycRvGibsmCqbRmd1klCW2P5pnQugEbtAAF8N1VTZfmAxU6SIkxN4lu6Pvy1p4tE+oaPrfxBuhRpkB6Hm4BMp6aS4ffgdDeplN9BQutZNke/jU9RSNclK0PB0o5AZxTlJvqTejJmkJMPQMZn+nloPqwEQS+TyzM8xNUhIe/WyhkFXjYItdmDMJHFWEL0eIb0r49hqOVmkDUSpYp90cuSXSYA==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1uEPT4-0005oH-IT for guix-patches@gnu.org; Mon, 12 May 2025 05:29:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#78183] [PATCH 1/1] gnu: node-esbuild: Replace esbuild-node with node-esbuild. References: In-Reply-To: Resent-From: "Dan Khodabakhsh" Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 12 May 2025 09:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 78183 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: "78183" <78183@debbugs.gnu.org> Received: via spool by 78183-submit@debbugs.gnu.org id=B78183.174704211122246 (code B ref 78183); Mon, 12 May 2025 09:29:02 +0000 Received: (at 78183) by debbugs.gnu.org; 12 May 2025 09:28:31 +0000 Received: from localhost ([127.0.0.1]:50203 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uEPSY-0005mj-Ph for submit@debbugs.gnu.org; Mon, 12 May 2025 05:28:31 -0400 Received: from out162-62-57-64.mail.qq.com ([162.62.57.64]:43433) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uEPST-0005m5-HA for 78183@debbugs.gnu.org; Mon, 12 May 2025 05:28:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=niel.khodabakh.sh; s=xmailafb52b5a; t=1747042088; bh=K14mOiZTh9F2jW42TbtUizfe4PDosNMgpdAPyu8FsKw=; h=From:To:Subject:Date; b=J0dBDuALEKS8Zthd6iZjK4UJ3BV8JBsjwjECe/FuHPk3UQ6oklUwATmijSquJeips 7UhodbBVlseg2lm6AVTjav38Znv591P9emBACoveRLz9hEr//Fv8GJStBG3V7rcaK/ ufpeUWO3xPeatZngSIE8WYFf+4zA1vH7JqtOQHtI= X-QQ-XMRINFO: MSVp+SPm3vtS1Vd6Y4Mggwc= X-QQ-XMAILINFO: OKqcAQMyLjLmnAy7ZMNMSzHHW2sXmOtjipBi/HoA43n6jahtVGFOijmzLnaf6q xrvvxj44b8t255Z9DP3bufx5uHEKz1Lkz/G+45WMUeG0cie5UNN7VBFD/2A8XzLGcBq+hOshYBLsO PgBRF16pK7Dh9tdVVkfymYQQ4wsCqqD8jF12CSIPNQ28YfIitfF3qNFEClrqWoLTaLzGosRTJuqHe Dfo1PN4Pyb7F9i3giJMlRK/MImKi+tq2GBuIuwlZ8Us8wpDgeQ08eHhIEqC9QDp0MwMvOieYw4D60 cEHIsJLQBjSN/XiwATE/K1Tc92jW863dbprxFsioZlAkDXzm6cKkr+30Upa9HODNGWBZd1glyidja DBwl6DNV8exhWOYD1AfoFJ2/9DPR6H1LHTOYC7FKhzf37Vvh7Q/6+oLobyNf6dJ9h3Z6MJD6VLmII 16otrqzlqYQA/i67wKNzvq3qeT4dnt2Ptpq6Wa7XtjyC+qPO0C/oe+jWKN/pO+ft4qzGciRdndXdj QWh0kfgGuUSDV4ESPjRqaUZVMBwoAf5xA1QurMjv3N4a0KIrX20NWew2ZaPw/X8xZMtfiPGnWGL0v XO6Hmklt1Hs1DbrjZ7M6AFeyDONqgKsSx3TZF/9kbp32p2JYNzWBLISg31BXbdn2AWArqVEHDVwsC MI56f09N8ev5rnVB7Mpdsn33FdJkSV0ED3UjqVaLZAJdVf0mGkejYtTrW97vcOsrUiwnrdhiehL2K zJalriMmBjukKWbhz90S+638V7LeayBne7fp9i5sW8wqD/WoW9UBThjsjwpZeChPikZFx1NG8BUxU BqQbbPATT00C2etwHfaKNAIYqMKLW5sRw9LNxqqIWwdNxXuaO+DIluu6kDsajhKzEzIC1rcyjaswG NuUPhuFnsslwu8R5fU41CpoLsXfXkGAITJhlnZhx1aiD9Ivf/nkfE5y9f/UdwA/hLUpKWIllmJ2t0 b5t+lYf6yAZcP3dSgi From: "Dan Khodabakhsh" Mime-Version: 1.0 Date: Mon, 12 May 2025 09:28:02 +0000 X-Priority: 3 Message-ID: X-QQ-MIME: TCMime 1.0 by Tencent X-Mailer: QQMail 2.x X-QQ-Mailer: QQMail 2.x X-QQ-mid: xmsezc29-1t1747042082tu2ncr80p X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches Updated the change a bit, removed unneeded (arguments #modules ...): This change replaces the esbuild-node package with one named node-esbuild: - node-esbuild conforms to the name of node packages. - Uses (guix build-system node) instead of (guix build-system go) which is more appropriate because this is a node package. - Uses esbuild as an input to use its binary so that it isn't rebuilt. - Does not include the go-lang source by default. - Does not include the lib/node_modules/esbuild/bin/esbuild shim javascript file, but instead uses the actual binary. The shim file is supposed to be replaced as part of the node module build process. Here is the structure of node-esbuild: ├── bin │   └── esbuild -> ../lib/node_modules/esbuild/bin/esbuild ├── etc │   └── ld.so.cache ├── lib │   └── node_modules │   └── esbuild │   ├── bin │   │   └── esbuild <- Actual binary │   ├── lib │   │   ├── main.d.ts │   │   └── main.js │   ├── LICENSE.md │   ├── package.json │   └── README.md └── share └── doc └── node-esbuild-0.24.0 └── LICENSE.md Structure of esbuild-node ├── bin │   └── esbuild <- Actual binary ├── etc │   └── ld.so.cache ├── lib │   └── node_modules │   └── esbuild │   ├── bin │   │   └── esbuild <- Javascript file which tries to run /bin/esbuild │   ├── install.js │   ├── lib │   │   ├── main.d.ts │   │   └── main.js │   ├── package.json │   └── README.md ├── share │   └── doc │   └── esbuild-node-0.14.0 │   └── LICENSE.md └── src └── github.com └── evanw └── esbuild └── cmd └── esbuild ├── main.go ├── main_other.go ├── main_wasm.go ├── service.go ├── stdio_protocol.go └── version.go Structure of the NPM package: ├── bin │   └── esbuild <- Actual binary ├── install.js ├── lib │   ├── main.d.ts │   └── main.js ├── LICENSE.md ├── package.json └── README.md Change-Id: I344cffe77f7065813284ccc434a3508650ba941d Signed-off-by: Daniel Khodabakhsh --- gnu/packages/cran.scm | 3 +- gnu/packages/web.scm | 88 ++++++++++++++++++------------------------- 2 files changed, 39 insertions(+), 52 deletions(-) base-commit: a6b40f7a2f2db3107319d1a5e099b269a462a723 diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 194133777e..d980035fa3 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -40,6 +40,7 @@ ;;; Copyright © 2024 Marco Baggio ;;; Copyright © 2024, 2025 Spencer King ;;; Copyright © 2024 Tor-björn Claesson +;;; Copyright © 2025 Daniel Khodabakhsh ;;; ;;; This file is part of GNU Guix. ;;; @@ -6368,7 +6369,7 @@ (define-public r-waiter "inst/assets/garcon/garcon.min.js")))))) (propagated-inputs (list r-htmltools r-r6 r-shiny)) (native-inputs - (list esbuild-node node-lts r-knitr + (list node-esbuild node-lts r-knitr (origin (method git-fetch) (uri (git-reference diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index b3f998aca9..fa7b46c08e 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -70,6 +70,7 @@ ;;; Copyright © 2024 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2024, 2025 Artyom V. Poptsov ;;; Copyright © 2025 Raven Hallsby +;;; Copyright © 2025 Daniel Khodabakhsh ;;; ;;; This file is part of GNU Guix. ;;; @@ -104,6 +105,7 @@ (define-module (gnu packages web) #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system meson) + #:use-module (guix build-system node) #:use-module (guix build-system perl) #:use-module (guix build-system pyproject) #:use-module (guix build-system python) @@ -2187,57 +2189,41 @@ (define-public websockify directions.") (license license:lgpl3))) -;; This is a variant of esbuild that builds and installs the nodejs API. -;; Eventually, this should probably be merged with the esbuild package. -(define-public esbuild-node - (package - (inherit esbuild) - (name "esbuild-node") - (version "0.14.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/evanw/esbuild") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "09r1xy0kk6c9cpz6q0mxr4why373pwxbm439z2ihq3k1d5kk7x4w")) - (modules '((guix build utils))) - (snippet - ;; Remove prebuilt binaries - '(delete-file-recursively "lib/npm/exit0")))) - (arguments - (list - #:import-path "github.com/evanw/esbuild/cmd/esbuild" - #:unpack-path "github.com/evanw/esbuild" - #:phases - #~(modify-phases %standard-phases - (add-after 'build 'build-platform - (lambda* (#:key unpack-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" unpack-path) - ;; Must be writable. - (for-each make-file-writable (find-files "." ".")) - (invoke "node" "scripts/esbuild.js" - (string-append #$output "/bin/esbuild")) - (let ((modules (string-append #$output "/lib/node_modules/esbuild"))) - (mkdir-p modules) - (copy-recursively "npm/esbuild" modules))))) - (replace 'check - (lambda* (#:key tests? unpack-path #:allow-other-keys) - (when tests? - ;; The "Go Race Detector" is only supported on 64-bit - ;; platforms, this variable disables it. - ;; TODO: Causes too many rebuilds, rewrite to limit to x86_64, - ;; aarch64 and ppc64le. - #$(if (target-riscv64?) - `(setenv "ESBUILD_RACE" "") - #~(unless #$(target-64bit?) - (setenv "ESBUILD_RACE" ""))) - (with-directory-excursion (string-append "src/" unpack-path) - (invoke "make" "test-go")))))))) - (native-inputs - (list go-github-com-kylelemons-godebug node-lts)))) +(define-public node-esbuild + (package + (name "node-esbuild") + (version (package-version esbuild)) + (source + (origin + (inherit (package-source esbuild)) + (file-name (git-file-name name version)) + (snippet #f) + (modules '()))) + (build-system node-build-system) + (inputs (list esbuild)) + (arguments `( + #:tests? #f + #:phases (modify-phases %standard-phases + (add-after 'unpack 'chdir (lambda _ + (chdir "npm/esbuild"))) + (replace 'build (lambda* (#:key inputs #:allow-other-keys) + (let + ((esbuild-bin + (string-append (assoc-ref inputs "esbuild") "/bin/esbuild"))) + (invoke + "node" + "../../scripts/esbuild.js" + esbuild-bin + "--neutral") + (modify-json + (delete-fields '("optionalDependencies", "scripts"))) + (delete-file "install.js") + (delete-file "package-lock.json") + (copy-file esbuild-bin "bin/esbuild"))))))) + (home-page (package-home-page esbuild)) + (synopsis "Node module of ESBuild") + (description (package-description esbuild)) + (license (package-license esbuild)))) (define-public wwwoffle (package