From patchwork Sun Sep 24 12:50:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Graves X-Patchwork-Id: 54269 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 A207A27BBEA; Sun, 24 Sep 2023 13:53:24 +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=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, SPF_HELO_PASS autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 5E4CC27BBE2 for ; Sun, 24 Sep 2023 13:53:23 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qkOag-0006cb-1r; Sun, 24 Sep 2023 08:52:02 -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 1qkOaa-0006Xz-7w for guix-patches@gnu.org; Sun, 24 Sep 2023 08:51:57 -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 1qkOaY-0003X5-Lh for guix-patches@gnu.org; Sun, 24 Sep 2023 08:51:55 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qkOak-0003Cv-ES for guix-patches@gnu.org; Sun, 24 Sep 2023 08:52:06 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#66180] [PATCH 12/19] gnu: node-sqlite3: Move package in alphabetical order. Resent-From: Nicolas Graves Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 24 Sep 2023 12:52:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66180 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66180@debbugs.gnu.org Cc: ngraves@ngraves.fr Received: via spool by 66180-submit@debbugs.gnu.org id=B66180.169555991612180 (code B ref 66180); Sun, 24 Sep 2023 12:52:06 +0000 Received: (at 66180) by debbugs.gnu.org; 24 Sep 2023 12:51:56 +0000 Received: from localhost ([127.0.0.1]:41298 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkOaZ-0003AH-1N for submit@debbugs.gnu.org; Sun, 24 Sep 2023 08:51:55 -0400 Received: from 10.mo575.mail-out.ovh.net ([46.105.79.203]:54361) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkOa8-00037q-NZ for 66180@debbugs.gnu.org; Sun, 24 Sep 2023 08:51:31 -0400 Received: from director1.ghost.mail-out.ovh.net (unknown [10.108.4.200]) by mo575.mail-out.ovh.net (Postfix) with ESMTP id 5CC8E24590 for <66180@debbugs.gnu.org>; Sun, 24 Sep 2023 12:51:16 +0000 (UTC) Received: from ghost-submission-6684bf9d7b-l4m42 (unknown [10.110.115.240]) by director1.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 016CF1FDD5; Sun, 24 Sep 2023 12:51:15 +0000 (UTC) Received: from ngraves.fr ([37.59.142.99]) by ghost-submission-6684bf9d7b-l4m42 with ESMTPSA id PkofBMQwEGXYyAkAp0uKbg (envelope-from ); Sun, 24 Sep 2023 12:51:16 +0000 Authentication-Results: garm.ovh; auth=pass (GARM-99G0031d86276b-3560-4cdb-8d82-43f9fb94ad60, 37298845F4A107D180274B7401D593E91573BF7B) smtp.auth=ngraves@ngraves.fr X-OVh-ClientIp: 81.67.140.142 Date: Sun, 24 Sep 2023 14:50:38 +0200 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: <28369246c2163cab7579f033071c85fbc6d0768b.1695559845.git.ngraves@ngraves.fr> References: <28369246c2163cab7579f033071c85fbc6d0768b.1695559845.git.ngraves@ngraves.fr> MIME-Version: 1.0 X-Ovh-Tracer-Id: 3513933610144752354 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedviedrudelvddgheejucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucenucfjughrpefhvfevufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefpihgtohhlrghsucfirhgrvhgvshcuoehnghhrrghvvghssehnghhrrghvvghsrdhfrheqnecuggftrfgrthhtvghrnhepvdehleeiffehtedvlefhffffjeefgfduhfetkeevheeiteduiedugfekuedtheejnecuffhomhgrihhnpehgihhthhhusgdrtghomhenucfkphepuddvjedrtddrtddruddpkedurdeijedrudegtddrudegvddpfeejrdehledrudegvddrleelnecuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpeeonhhgrhgrvhgvshesnhhgrhgrvhgvshdrfhhrqedpnhgspghrtghpthhtohepuddprhgtphhtthhopeeiiedukedtseguvggssghughhsrdhgnhhurdhorhhgpdfovfetjfhoshhtpehmohehjeehpdhmohguvgepshhmthhpohhuth 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: , Reply-to: Nicolas Graves X-ACL-Warn: , Nicolas Graves via Guix-patches X-Patchwork-Original-From: Nicolas Graves via Guix-patches via From: Nicolas Graves 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 * gnu/packages/node-xyz.scm (node-sqlite3): Move package in alphabetical order. --- gnu/packages/node-xyz.scm | 258 +++++++++++++++++++------------------- 1 file changed, 129 insertions(+), 129 deletions(-) diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 0ef691e0e6..cefc826c8d 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -838,6 +838,135 @@ (define-public node-safe-buffer @code{Buffer.alloc(SIZE)}) in older versions.") (license license:expat))) +(define-public node-sqlite3 + (package + (name "node-sqlite3") + (version "5.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mapbox/node-sqlite3") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sbbzzli282nxyfha10zx0k5m8hdp0sf3ipl59khjb7wm449j86h")) + (snippet + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + ;; unbundle sqlite + (for-each delete-file-recursively + (find-files "deps" + (lambda (pth stat) + (gzip-file? pth))))))))) + (inputs + (list node-addon-api python sqlite)) + (build-system node-build-system) + (arguments + `(#:modules + ((guix build node-build-system) + (srfi srfi-1) + (ice-9 match) + (guix build utils)) + #:tests? #f ; FIXME: tests depend on node-mocha + #:phases + (modify-phases %standard-phases + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies + `(;; Normally, this is "built" using @mapbox/node-pre-gyp, + ;; which publishes or downloads pre-built binaries or + ;; falls back to building from source. Here, we patch out + ;; all of that and just build directly. It might be + ;; better to patch a version of @mapbox/node-pre-gyp that + ;; always builds from source, as Debian does, but there + ;; are a number of dependencies that need to be packaged + ;; or removed. + "@mapbox/node-pre-gyp" + "node-pre-gyp" ;; deprecated name still used in some places + "aws-sdk" + "@mapbox/cloudfriend" + ;; Confusingly, this is only a dependency because of + ;; @mapbox/node-pre-gyp: with that removed, + ;; npm will use its own copy: + "node-gyp" + ;; These we'd like, we just don't have them yet: + "eslint" + "mocha")))) + (add-before 'configure 'npm-config-sqlite + ;; We need this step even if we do replace @mapbox/node-pre-gyp + ;; because the package expects to build its bundled sqlite + (lambda* (#:key inputs #:allow-other-keys) + (setenv "npm_config_sqlite" (assoc-ref inputs "sqlite")))) + (add-after 'install 'patch-binding-path + ;; We replace a file that dynamic searches for the addon using + ;; node-pre-gyp (which we don't have) with a version that + ;; simply uses the path to the addon we built directly. + ;; The exact path is supposed to depend on things like the + ;; architecture and napi_build_version, so, to avoid having + ;; hard-code the details accurately, we do this after the addon + ;; has been built so we can just find where it ended up. + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion + (search-input-directory outputs + "lib/node_modules/sqlite3/lib") + (match (find-files "binding" "\\.node$") + ((rel-path) + (with-atomic-file-replacement "sqlite3-binding.js" + (lambda (in out) + (format out "var binding = require('./~a');\n" rel-path) + (display "module.exports = exports = binding;\n" + out)))))))) + (add-after 'patch-dependencies 'avoid-node-pre-gyp + (lambda args + ;; We need to patch .npmignore before the 'repack phase + ;; so that the built addon is installed with in the package. + ;; (Upstream assumes node-pre-gyp will download a pre-built + ;; version when this package is installed.) + (substitute* ".npmignore" + (("lib/binding") + "#lib/binding # <- patched for Guix")) + (with-atomic-json-file-replacement "package.json" + (match-lambda + (('@ . pkg-meta-alist) + (match (assoc-ref pkg-meta-alist "binary") + (('@ . binary-alist) + ;; When it builds from source, node-pre-gyp supplies + ;; module_name and module_path based on the entries under + ;; "binary" from "package.json", so this package's + ;; "binding.gyp" doesn't define them. Thus, we also need + ;; to supply them. The GYP_DEFINES environment variable + ;; turns out to be the easiest way to make sure they are + ;; propagated from npm to node-gyp to gyp. + (setenv "GYP_DEFINES" + (string-append + "module_name=" + (assoc-ref binary-alist "module_name") + " " + "module_path=" + (assoc-ref binary-alist "module_path"))))) + ;; We need to remove the install script from "package.json", + ;; as it would try to use node-pre-gyp and would block the + ;; automatic building performed by `npm install`. + (cons '@ (map (match-lambda + (("scripts" @ . scripts-alist) + `("scripts" @ ,@(filter (match-lambda + (("install" . _) + #f) + (_ + #t)) + scripts-alist))) + (other + other)) + pkg-meta-alist)))))))))) + (home-page "https://github.com/mapbox/node-sqlite3") + (synopsis "Node.js bindings for SQLite3") + (description + "@code{node-sqlite3} provides a set of a Node.js bindings for interacting +with SQLite3 databases.") + (license license:bsd-3))) + (define-public node-stack-trace ;; There have been improvements since the last release. (let ((commit "4fd379ee78965ce7ce8820b436f1b1b590d5dbcf") @@ -1003,135 +1132,6 @@ (define-public node-wrappy (description "@code{wrappy} is a utility for Node.js to wrap callbacks.") (license license:isc))) -(define-public node-sqlite3 - (package - (name "node-sqlite3") - (version "5.0.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mapbox/node-sqlite3") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0sbbzzli282nxyfha10zx0k5m8hdp0sf3ipl59khjb7wm449j86h")) - (snippet - (with-imported-modules '((guix build utils)) - #~(begin - (use-modules (guix build utils)) - ;; unbundle sqlite - (for-each delete-file-recursively - (find-files "deps" - (lambda (pth stat) - (gzip-file? pth))))))))) - (inputs - (list node-addon-api python sqlite)) - (build-system node-build-system) - (arguments - `(#:modules - ((guix build node-build-system) - (srfi srfi-1) - (ice-9 match) - (guix build utils)) - #:tests? #f ; FIXME: tests depend on node-mocha - #:phases - (modify-phases %standard-phases - (add-after 'patch-dependencies 'delete-dependencies - (lambda args - (delete-dependencies - `(;; Normally, this is "built" using @mapbox/node-pre-gyp, - ;; which publishes or downloads pre-built binaries or - ;; falls back to building from source. Here, we patch out - ;; all of that and just build directly. It might be - ;; better to patch a version of @mapbox/node-pre-gyp that - ;; always builds from source, as Debian does, but there - ;; are a number of dependencies that need to be packaged - ;; or removed. - "@mapbox/node-pre-gyp" - "node-pre-gyp" ;; deprecated name still used in some places - "aws-sdk" - "@mapbox/cloudfriend" - ;; Confusingly, this is only a dependency because of - ;; @mapbox/node-pre-gyp: with that removed, - ;; npm will use its own copy: - "node-gyp" - ;; These we'd like, we just don't have them yet: - "eslint" - "mocha")))) - (add-before 'configure 'npm-config-sqlite - ;; We need this step even if we do replace @mapbox/node-pre-gyp - ;; because the package expects to build its bundled sqlite - (lambda* (#:key inputs #:allow-other-keys) - (setenv "npm_config_sqlite" (assoc-ref inputs "sqlite")))) - (add-after 'install 'patch-binding-path - ;; We replace a file that dynamic searches for the addon using - ;; node-pre-gyp (which we don't have) with a version that - ;; simply uses the path to the addon we built directly. - ;; The exact path is supposed to depend on things like the - ;; architecture and napi_build_version, so, to avoid having - ;; hard-code the details accurately, we do this after the addon - ;; has been built so we can just find where it ended up. - (lambda* (#:key outputs #:allow-other-keys) - (with-directory-excursion - (search-input-directory outputs - "lib/node_modules/sqlite3/lib") - (match (find-files "binding" "\\.node$") - ((rel-path) - (with-atomic-file-replacement "sqlite3-binding.js" - (lambda (in out) - (format out "var binding = require('./~a');\n" rel-path) - (display "module.exports = exports = binding;\n" - out)))))))) - (add-after 'patch-dependencies 'avoid-node-pre-gyp - (lambda args - ;; We need to patch .npmignore before the 'repack phase - ;; so that the built addon is installed with in the package. - ;; (Upstream assumes node-pre-gyp will download a pre-built - ;; version when this package is installed.) - (substitute* ".npmignore" - (("lib/binding") - "#lib/binding # <- patched for Guix")) - (with-atomic-json-file-replacement "package.json" - (match-lambda - (('@ . pkg-meta-alist) - (match (assoc-ref pkg-meta-alist "binary") - (('@ . binary-alist) - ;; When it builds from source, node-pre-gyp supplies - ;; module_name and module_path based on the entries under - ;; "binary" from "package.json", so this package's - ;; "binding.gyp" doesn't define them. Thus, we also need - ;; to supply them. The GYP_DEFINES environment variable - ;; turns out to be the easiest way to make sure they are - ;; propagated from npm to node-gyp to gyp. - (setenv "GYP_DEFINES" - (string-append - "module_name=" - (assoc-ref binary-alist "module_name") - " " - "module_path=" - (assoc-ref binary-alist "module_path"))))) - ;; We need to remove the install script from "package.json", - ;; as it would try to use node-pre-gyp and would block the - ;; automatic building performed by `npm install`. - (cons '@ (map (match-lambda - (("scripts" @ . scripts-alist) - `("scripts" @ ,@(filter (match-lambda - (("install" . _) - #f) - (_ - #t)) - scripts-alist))) - (other - other)) - pkg-meta-alist)))))))))) - (home-page "https://github.com/mapbox/node-sqlite3") - (synopsis "Node.js bindings for SQLite3") - (description - "@code{node-sqlite3} provides a set of a Node.js bindings for interacting -with SQLite3 databases.") - (license license:bsd-3))) - (define-public node-file-uri-to-path (package (name "node-file-uri-to-path")