From mboxrd@z Thu Jan 1 00:00:00 1970 From: Cyrill Schenkel Subject: Re: [PATCH] gnu: Add node. Date: Tue, 01 Jul 2014 08:59:06 +0200 Message-ID: <87oax9r2dh.fsf@gmail.com> References: <87oaxaghuf.fsf@gmail.com> <877g3yc9ca.fsf@izanagi.i-did-not-set--mail-host-address--so-tickle-me> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:51316) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X1s2w-0003z3-Jf for guix-devel@gnu.org; Tue, 01 Jul 2014 03:00:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X1s2q-0004Jo-LC for guix-devel@gnu.org; Tue, 01 Jul 2014 03:00:06 -0400 Received: from mail-we0-x22d.google.com ([2a00:1450:400c:c03::22d]:63509) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X1s2q-0004Je-9c for guix-devel@gnu.org; Tue, 01 Jul 2014 03:00:00 -0400 Received: by mail-we0-f173.google.com with SMTP id t60so9159439wes.32 for ; Mon, 30 Jun 2014 23:59:59 -0700 (PDT) Received: from SIRIUS09 ([2a02:1205:5016:3160:beae:c5ff:fe67:f585]) by mx.google.com with ESMTPSA id gr2sm911749wib.19.2014.06.30.23.59.57 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Mon, 30 Jun 2014 23:59:58 -0700 (PDT) In-Reply-To: <877g3yc9ca.fsf@izanagi.i-did-not-set--mail-host-address--so-tickle-me> (David Thompson's message of "Mon, 30 Jun 2014 18:37:41 -0400") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Guix-devel --=-=-= Content-Type: text/plain Hi Eric Bavier writes: > Instead of patching the configure script, why not replace the default > configure step with one that calls python instead? This is done e.g. > in the "petsc" package. Thanks for the hint. David Thompson writes: >> + (synopsis "Evented I/O for V8 javascript.") > > No period at the end. Done. >> + (description "Node.js is a platform built on Chrome's JavaScript runtime >> +for easily building fast, scalable network applications. Node.js uses an >> +event-driven, non-blocking I/O model that makes it lightweight and efficient, >> +perfect for data-intensive real-time applications that run across distributed >> +devices.") > > Two spaces after a period. Done. An updated Patch is attached. Regards Cyrill --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: inline; filename=0001-gnu-Add-node.patch Content-Transfer-Encoding: quoted-printable >From 57788c6cbb3989b5ff997b7c37b8c02979786c4b Mon Sep 17 00:00:00 2001 From: Cyrill Schenkel Date: Tue, 1 Jul 2014 08:47:31 +0200 Subject: [PATCH] gnu: Add node. * gnu-system.am (GNU_SYSTEM_MODULES): Add new package. * gnu/packages/node.scm: New file. --- gnu-system.am | 1 + gnu/packages/node.scm | 77 +++++++++++++++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 78 insertions(+) create mode 100644 gnu/packages/node.scm diff --git a/gnu-system.am b/gnu-system.am index 793ee4c..d59f204 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -171,6 +171,7 @@ GNU_SYSTEM_MODULES =3D \ gnu/packages/ncurses.scm \ gnu/packages/netpbm.scm \ gnu/packages/nettle.scm \ + gnu/packages/node.scm \ gnu/packages/noweb.scm \ gnu/packages/ocaml.scm \ gnu/packages/ocrad.scm \ diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm new file mode 100644 index 0000000..5af96eb --- /dev/null +++ b/gnu/packages/node.scm @@ -0,0 +1,77 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2014 Cyrill Schenkel +;;; +;;; 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 . + +(define-module (gnu packages node) + #:use-module ((guix licenses) + #:select (expat)) + #:use-module (gnu packages) + #:use-module (gnu packages perl) + #:use-module (gnu packages python) + #:use-module (gnu packages gcc) + #:use-module (gnu packages linux) + #:use-module (guix packages) + #:use-module (guix derivations) + #:use-module (guix download) + #:use-module (guix build gnu-build-system) + #:use-module (guix build-system gnu)) + +(define-public node + (package + (name "node") + (version "0.10.29") + (source (origin + (method url-fetch) + (uri (string-append "http://nodejs.org/dist/v" version + "/node-v" version ".tar.gz")) + (sha256 + (base32 + "0pdib215ldypc149ad03wlfj0i8fwdfydd4q2hd7ry35yw0rsds7")))) + (native-inputs `(("python" ,python-2) + ("perl" ,perl) + ("gcc" ,gcc-4.9) + ("util-linux" ,util-linux))) + (build-system gnu-build-system) + (arguments + `(#:phases + (alist-replace + 'configure + ;; Node's configure script is actually a python script, so we can't + ;; run it with bash. + (lambda* (#:key outputs (configure-flags '()) inputs + #:allow-other-keys) + (let* ((prefix (assoc-ref outputs "out")) + (flags `(,(string-append "--prefix=3D" prefix) + ,@configure-flags))) + (format #t "build directory: ~s~%" (getcwd)) + (format #t "configure flags: ~s~%" flags) + ;; Node's configure script expects the CC environment variable= to + ;; be set. + (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc= ")) + (zero? (apply system* + (string-append (assoc-ref inputs "python") + "/bin/python") + "./configure" flags)))) + %standard-phases))) + (synopsis "Evented I/O for V8 javascript") + (description "Node.js is a platform built on Chrome's JavaScript runti= me +for easily building fast, scalable network applications. Node.js uses an +event-driven, non-blocking I/O model that makes it lightweight and efficie= nt, +perfect for data-intensive real-time applications that run across distribu= ted +devices.") + (license expat) + (home-page "http://nodejs.org/"))) --=20 2.0.0 --=-=-=--