unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#33431] [PATCH] gnu: Add yarn
@ 2018-11-19 13:57 Andrea Frigido
  2018-11-19 18:06 ` Andrea Frigido
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Andrea Frigido @ 2018-11-19 13:57 UTC (permalink / raw)
  To: 33431

Hello,

This patch adds yarn as a Guix package.
This is my first patch so I hope this is the correct way of doing it.
Inspired by the nix package:
https://github.com/NixOS/nixpkgs/blob/b37872d4268164614e3ecef6e1f730d48cf5a90f/pkgs/development/tools/yarn/default.nix#L23

Andrea Frigido

---
 gnu/packages/yarn.scm | 75 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)
 create mode 100644 gnu/packages/yarn.scm

diff --git a/gnu/packages/yarn.scm b/gnu/packages/yarn.scm
new file mode 100644
index 000000000..e48313f7f
--- /dev/null
+++ b/gnu/packages/yarn.scm
@@ -0,0 +1,75 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Andrea Frigido <andrea@frisoft.it>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages yarn)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
+  #:use-module (gnu packages node))
+
+(define-public yarn
+  (package
+    (name "yarn")
+    (version "1.12.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/yarnpkg/yarn/releases/download/v"
+             version
+             "/yarn-v"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1wi47awrcy5kki9qmmia4h3rpsf5k7yvnpmwsbdlnb62krc4pk82"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'check)
+         (delete 'build)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out               (assoc-ref %outputs "out"))
+                    (bin               (string-append out "/bin"))
+                    (libexec-yarn      (string-append out "/libexec/yarn"))
+                    (yarn-js           (string-append libexec-yarn
"/bin/yarn.js")))
+               (mkdir-p bin)
+               (mkdir-p libexec-yarn)
+               (copy-recursively "./" libexec-yarn)
+               (symlink yarn-js (string-append bin "/yarn"))
+               (symlink yarn-js (string-append bin "/yarnpkg"))))))))
+
+    (inputs `(("node" ,node)))
+    (synopsis "Fast, reliable, and secure dependency management")
+    (description
+     "Yarn is a fast, reliable, and secure dependency management.  Fast: Yarn
+caches every package it has downloaded, so it never needs to download the
+same package again.  It also does almost everything concurrently to maximize
+resource utilization.  This means even faster installs.  Reliable: Using a
+detailed but concise lockfile format and a deterministic algorithm for install
+operations, Yarn is able to guarantee that any installation that works on one
+system will work exactly the same on another system.
+Secure: Yarn uses checksums to verify the integrity of every installed package
+before its code is executed.")
+    (license license:bsd-2)
+    (home-page "https://yarnpkg.com")))
-- 
2.17.1

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

* [bug#33431] [PATCH] gnu: Add yarn
  2018-11-19 13:57 [bug#33431] [PATCH] gnu: Add yarn Andrea Frigido
@ 2018-11-19 18:06 ` Andrea Frigido
  2018-12-08 13:17 ` Andrea Frigido
  2018-12-10  8:24 ` Andrea Frigido
  2 siblings, 0 replies; 6+ messages in thread
From: Andrea Frigido @ 2018-11-19 18:06 UTC (permalink / raw)
  To: 33431

Hi,
I forgot to include the change to the gnu/local.mk file.
Please ignore my previous patch and replace it with this one.

Thanks

---
 gnu/local.mk          |  1 +
 gnu/packages/yarn.scm | 75 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 76 insertions(+)
 create mode 100644 gnu/packages/yarn.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 707341663..814e294f5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -463,6 +463,7 @@ GNU_SYSTEM_MODULES = \
   %D%/packages/xdisorg.scm \
   %D%/packages/xorg.scm \
   %D%/packages/xfce.scm \
+ %D%/packages/yarn.scm \
   %D%/packages/zile.scm \
  \
   %D%/services.scm \
diff --git a/gnu/packages/yarn.scm b/gnu/packages/yarn.scm
new file mode 100644
index 000000000..e48313f7f
--- /dev/null
+++ b/gnu/packages/yarn.scm
@@ -0,0 +1,75 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Andrea Frigido <andrea@frisoft.it>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages yarn)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
+  #:use-module (gnu packages node))
+
+(define-public yarn
+  (package
+    (name "yarn")
+    (version "1.12.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/yarnpkg/yarn/releases/download/v"
+             version
+             "/yarn-v"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1wi47awrcy5kki9qmmia4h3rpsf5k7yvnpmwsbdlnb62krc4pk82"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'check)
+         (delete 'build)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out               (assoc-ref %outputs "out"))
+                    (bin               (string-append out "/bin"))
+                    (libexec-yarn      (string-append out "/libexec/yarn"))
+                    (yarn-js           (string-append libexec-yarn
"/bin/yarn.js")))
+               (mkdir-p bin)
+               (mkdir-p libexec-yarn)
+               (copy-recursively "./" libexec-yarn)
+               (symlink yarn-js (string-append bin "/yarn"))
+               (symlink yarn-js (string-append bin "/yarnpkg"))))))))
+
+    (inputs `(("node" ,node)))
+    (synopsis "Fast, reliable, and secure dependency management")
+    (description
+     "Yarn is a fast, reliable, and secure dependency management.  Fast: Yarn
+caches every package it has downloaded, so it never needs to download the
+same package again.  It also does almost everything concurrently to maximize
+resource utilization.  This means even faster installs.  Reliable: Using a
+detailed but concise lockfile format and a deterministic algorithm for install
+operations, Yarn is able to guarantee that any installation that works on one
+system will work exactly the same on another system.
+Secure: Yarn uses checksums to verify the integrity of every installed package
+before its code is executed.")
+    (license license:bsd-2)
+    (home-page "https://yarnpkg.com")))
-- 
2.17.1

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

* [bug#33431] [PATCH] gnu: Add yarn
  2018-11-19 13:57 [bug#33431] [PATCH] gnu: Add yarn Andrea Frigido
  2018-11-19 18:06 ` Andrea Frigido
@ 2018-12-08 13:17 ` Andrea Frigido
  2018-12-08 15:07   ` Jelle Licht
  2018-12-10  8:24 ` Andrea Frigido
  2 siblings, 1 reply; 6+ messages in thread
From: Andrea Frigido @ 2018-12-08 13:17 UTC (permalink / raw)
  To: 33431

[-- Attachment #1: Type: text/plain, Size: 53 bytes --]

The same patch as an attachment.

-- 
Andrea Frigido

[-- Attachment #2: 0001-Add-yarn.patch --]
[-- Type: text/x-patch, Size: 4037 bytes --]

From e328c28094fc1581a6edcce5a7329f36a9d6de70 Mon Sep 17 00:00:00 2001
From: Andrea Frigido <andrea@frisoft.it>
Date: Fri, 30 Nov 2018 14:16:18 +0000
Subject: [PATCH] Add yarn

---
 gnu/local.mk          |  1 +
 gnu/packages/yarn.scm | 75 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 76 insertions(+)
 create mode 100644 gnu/packages/yarn.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 847c9286c..7e03134bc 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -465,6 +465,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/xdisorg.scm			\
   %D%/packages/xorg.scm				\
   %D%/packages/xfce.scm				\
+	%D%/packages/yarn.scm				\
   %D%/packages/zile.scm				\
 						\
   %D%/services.scm				\
diff --git a/gnu/packages/yarn.scm b/gnu/packages/yarn.scm
new file mode 100644
index 000000000..e48313f7f
--- /dev/null
+++ b/gnu/packages/yarn.scm
@@ -0,0 +1,75 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Andrea Frigido <andrea@frisoft.it>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages yarn)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
+  #:use-module (gnu packages node))
+
+(define-public yarn
+  (package
+    (name "yarn")
+    (version "1.12.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/yarnpkg/yarn/releases/download/v"
+             version
+             "/yarn-v"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1wi47awrcy5kki9qmmia4h3rpsf5k7yvnpmwsbdlnb62krc4pk82"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'check)
+         (delete 'build)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out               (assoc-ref %outputs "out"))
+                    (bin               (string-append out "/bin"))
+                    (libexec-yarn      (string-append out "/libexec/yarn"))
+                    (yarn-js           (string-append libexec-yarn "/bin/yarn.js")))
+               (mkdir-p bin)
+               (mkdir-p libexec-yarn)
+               (copy-recursively "./" libexec-yarn)
+               (symlink yarn-js (string-append bin "/yarn"))
+               (symlink yarn-js (string-append bin "/yarnpkg"))))))))
+
+    (inputs `(("node" ,node)))
+    (synopsis "Fast, reliable, and secure dependency management")
+    (description
+     "Yarn is a fast, reliable, and secure dependency management.  Fast: Yarn
+caches every package it has downloaded, so it never needs to download the
+same package again.  It also does almost everything concurrently to maximize
+resource utilization.  This means even faster installs.  Reliable: Using a
+detailed but concise lockfile format and a deterministic algorithm for install
+operations, Yarn is able to guarantee that any installation that works on one
+system will work exactly the same on another system.
+Secure: Yarn uses checksums to verify the integrity of every installed package
+before its code is executed.")
+    (license license:bsd-2)
+    (home-page "https://yarnpkg.com")))
-- 
2.17.1


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

* [bug#33431] [PATCH] gnu: Add yarn
  2018-12-08 13:17 ` Andrea Frigido
@ 2018-12-08 15:07   ` Jelle Licht
  0 siblings, 0 replies; 6+ messages in thread
From: Jelle Licht @ 2018-12-08 15:07 UTC (permalink / raw)
  To: Andrea Frigido; +Cc: 33431


Hey Andrea,

The yarn tarball in your package is not the actual source code of
yarn; it seems to be an aggregation of multiple javascript files if I
am not mistaken, generated by other tools.

A cursory glance at both package.json and yarn.lock indicates that to
build yarn from source, we need access to at least some of gulp,
webpack and babel. I assume these tools are non-trivial to package, so
perhaps someone else has a workable solution for now.

- Jelle

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

* [bug#33431] [PATCH] gnu: Add yarn
  2018-11-19 13:57 [bug#33431] [PATCH] gnu: Add yarn Andrea Frigido
  2018-11-19 18:06 ` Andrea Frigido
  2018-12-08 13:17 ` Andrea Frigido
@ 2018-12-10  8:24 ` Andrea Frigido
  2021-07-13 13:10   ` bug#33431: " Maxim Cournoyer
  2 siblings, 1 reply; 6+ messages in thread
From: Andrea Frigido @ 2018-12-10  8:24 UTC (permalink / raw)
  To: 33431

Hi Jelle,
thank for the review.

The tarball comes from the official releases page of yarn:
https://github.com/yarnpkg/yarn/releases
I followed the same process of the nix package:
https://github.com/NixOS/nixpkgs/blob/1a4498d1328e8dd74a8099f16972224c87d01358/pkgs/development/tools/yarn/default.nix#L23

I thought it was an acceptable way of packaging this software.

Is there a policy in Guix about this that I need to follow?

Thanks
-- 
Andrea Frigido

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

* bug#33431: [PATCH] gnu: Add yarn
  2018-12-10  8:24 ` Andrea Frigido
@ 2021-07-13 13:10   ` Maxim Cournoyer
  0 siblings, 0 replies; 6+ messages in thread
From: Maxim Cournoyer @ 2021-07-13 13:10 UTC (permalink / raw)
  To: Andrea Frigido; +Cc: 33431-done

Hello Andrea,

Andrea Frigido <andrea.frigido@gmail.com> writes:

> Hi Jelle,
> thank for the review.
>
> The tarball comes from the official releases page of yarn:
> https://github.com/yarnpkg/yarn/releases
> I followed the same process of the nix package:
> https://github.com/NixOS/nixpkgs/blob/1a4498d1328e8dd74a8099f16972224c87d01358/pkgs/development/tools/yarn/default.nix#L23
>
> I thought it was an acceptable way of packaging this software.

Nix doesn't commit to offer only free software, for one.

> Is there a policy in Guix about this that I need to follow?

The policy for GNU Guix is that of the GNU Free Software Distribution
Guidelines (FSDG) [0].  We also typically do the utmost to fully
bootstrap things from sources, compared to other distributions.

Its seems the issues raised by Jelle are blocking progress on this
package submission.  Babel seems a complicated piece of software that
will take some effort to get packaged in Guix.

I'll close this ticket as it is not actionable and probably won't be in
the near future.

Please resubmit when the missing packages to fully build from sources
have been added.

Thank you!

Maxim




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

end of thread, other threads:[~2021-07-13 13:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-19 13:57 [bug#33431] [PATCH] gnu: Add yarn Andrea Frigido
2018-11-19 18:06 ` Andrea Frigido
2018-12-08 13:17 ` Andrea Frigido
2018-12-08 15:07   ` Jelle Licht
2018-12-10  8:24 ` Andrea Frigido
2021-07-13 13:10   ` bug#33431: " Maxim Cournoyer

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