unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#63307] [PATCH] gnu: Add pnpm
@ 2023-05-05 14:03 Franz Geffke
  2023-08-20  5:35 ` Hilton Chain via Guix-patches via
  2024-02-20 17:11 ` Erik Eduardo
  0 siblings, 2 replies; 3+ messages in thread
From: Franz Geffke @ 2023-05-05 14:03 UTC (permalink / raw)
  To: 63307

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)))




^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [bug#63307] [PATCH] gnu: Add pnpm
  2023-05-05 14:03 [bug#63307] [PATCH] gnu: Add pnpm Franz Geffke
@ 2023-08-20  5:35 ` Hilton Chain via Guix-patches via
  2024-02-20 17:11 ` Erik Eduardo
  1 sibling, 0 replies; 3+ messages in thread
From: Hilton Chain via Guix-patches via @ 2023-08-20  5:35 UTC (permalink / raw)
  To: Franz Geffke; +Cc: 63307

Hi Franz,

On Fri, 05 May 2023 22:03:22 +0800,
Franz Geffke wrote:
>
> 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)))
>
>

Binary packages won't be accpeted, would you like to try building pnpm
from source?  Or this issue should be closed.

And in case you don't know, the current node package is built with
corepack [1] support, pnpm is included in it:
$ guix shell node -- corepack pnpm --help

Thanks

[1]: https://github.com/nodejs/corepack




^ permalink raw reply	[flat|nested] 3+ messages in thread

* [bug#63307] [PATCH] gnu: Add pnpm
  2023-05-05 14:03 [bug#63307] [PATCH] gnu: Add pnpm Franz Geffke
  2023-08-20  5:35 ` Hilton Chain via Guix-patches via
@ 2024-02-20 17:11 ` Erik Eduardo
  1 sibling, 0 replies; 3+ messages in thread
From: Erik Eduardo @ 2024-02-20 17:11 UTC (permalink / raw)
  To: 63307

To install pnpm is needed pnpm, how guix would deal with this?

More information about building can be found in CONTRIBUTING.md
on the root of the repository.




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-02-20 17:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-05 14:03 [bug#63307] [PATCH] gnu: Add pnpm Franz Geffke
2023-08-20  5:35 ` Hilton Chain via Guix-patches via
2024-02-20 17:11 ` Erik Eduardo

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).