(address . guix-patches@gnu.org)
Toggle diff (53 lines)
diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm
index 991113c05b..b32e68b415 100644
--- a/gnu/packages/node-xyz.scm
+++ b/gnu/packages/node-xyz.scm
@@ -29,7 +29,9 @@ (define-module (gnu packages node-xyz)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix git-download)
- #:use-module (guix build-system node))
+ #:use-module (guix build-system node)
+ #:use-module (guix build-system trivial)
+ #:use-module (ice-9 match))
(define-public node-acorn
(package
@@ -1546,3 +1548,37 @@ (define-public node-yazl
@item Prefer to open input files one at a time than all at once.
@end enumerate")
(license license:expat)))
+
+(define-public pnpm
+ (package
+ (name "pnpm")
+ (version "7.32.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/pnpm/pnpm/releases/download/v"
+ version "/pnpm-linuxstatic-"
+ (match (or (%current-system) (%current-target-system))
+ ("x86_64-linux" "x64")
+ ("aarch64-linux" "arm64"))))
+ (sha256
+ (base32
+ "1k3n24ink74ajs8nd0p6y6238vi41n5bvrk8clnydgwg11ax1zx0"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules ((guix build utils)))
+ (let* ((source (assoc-ref %build-inputs "source"))
+ (bin (string-append %output "/bin"))
+ (exe (string-append bin "/pnpm")))
+ (mkdir-p bin)
+ (copy-file source exe)
+ (chmod exe #o755)))))
+ (home-page "https://pnpm.io")
+ (synopsis "Fast, disk space efficient package manager for nodejs")
+ (description "pnpm uses a content-addressable filesystem to
+store all files from all module directories on a disk")
+ (license license:expat)))