From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46621) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g44Lp-0001hl-AJ for guix-patches@gnu.org; Sun, 23 Sep 2018 09:23:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g44Lm-0000Cc-Jb for guix-patches@gnu.org; Sun, 23 Sep 2018 09:23:05 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:46116) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g44Lm-0000CH-ES for guix-patches@gnu.org; Sun, 23 Sep 2018 09:23:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1g44Lm-0001Zo-7Q for guix-patches@gnu.org; Sun, 23 Sep 2018 09:23:02 -0400 Subject: [bug#32095] [PATCH 2/2] gnu: node: Update to 10.6.0. Resent-Message-ID: From: Marius Bakke In-Reply-To: <87h8ihbibh.fsf@gnu.org> References: <20180708152009.28002-1-mthl@gnu.org> <20180708152009.28002-2-mthl@gnu.org> <87muv0fo9d.fsf@gnu.org> <87pnxqus5x.fsf@gnu.org> <87a7oteeos.fsf@fastmail.com> <87tvn1z6ge.fsf@gnu.org> <87in2x36ys.fsf@gnu.org> <875zyxmttw.fsf@fastmail.com> <87h8ihbibh.fsf@gnu.org> Date: Sun, 23 Sep 2018 15:22:37 +0200 Message-ID: <87worcl55u.fsf@fastmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Mathieu Lirzin Cc: 32095@debbugs.gnu.org --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mathieu Lirzin writes: > Marius Bakke writes: > >> We already have the latest libuv on 'core-updates'. > > Indeed, I forgot to prune old branches and get confused. > >> I wanted to push >> this patch to master actually (with a libuv-1.23 package), but node does >> not work with OpenSSL 1.1.1: >> . > > I have read rapidly this thread. > > IIRC the build for node 10.xx was failing with =E2=80=98openssl=E2=80=99 = which was the > reason of upgrading to =E2=80=98openssl-next=E2=80=99 and this issue seem= s to imply that > node fails to run with =E2=80=98openssl-next=E2=80=99? Is that correct? > > Have you recently tried to compile =E2=80=98node=E2=80=99 with libuv-1.23= without > upgrading the =E2=80=9Copenssl=E2=80=9D input? How did it work? Building Node 10.11.0 with OpenSSL@1.0 results in... g++ '-DNODE_ARCH=3D"x64"' '-DNODE_PLATFORM=3D"linux"' '-DNODE_WANT_INTERNAL= S=3D1' '-DV8_DEPRECATION_WARNINGS=3D1' '-DNODE_OPENSSL_SYSTEM_CERT_PATH=3D"= "' '-DHAVE_INSPECTOR=3D1' '-D__POSIX__' '-DNODE_USE_V8_PLATFORM=3D1' '-DNOD= E_HAVE_I18N_SUPPORT=3D1' '-DHAVE_OPENSSL=3D1' -I../src -I/tmp/guix-build-no= de-10.11.0.drv-0/node-v10.11.0/out/Release/obj/gen -I/tmp/guix-build-node-1= 0.11.0.drv-0/node-v10.11.0/out/Release/obj/gen/include -I/tmp/guix-build-no= de-10.11.0.drv-0/node-v10.11.0/out/Release/obj/gen/src -I../deps/v8/include= -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -fno-omit-frame-poi= nter -fno-rtti -fno-exceptions -std=3Dgnu++1y -MMD -MF /tmp/guix-build-node= -10.11.0.drv-0/node-v10.11.0/out/Release/.deps//tmp/guix-build-node-10.11.0= .drv-0/node-v10.11.0/out/Release/obj.target/node_lib/src/node.o.d.raw -c = -o /tmp/guix-build-node-10.11.0.drv-0/node-v10.11.0/out/Release/obj.target/= node_lib/src/node.o ../src/node.cc In file included from ../src/node.cc:39:0: ../src/node_crypto.h:82:46: error: =E2=80=98EVP_MD_CTX_free=E2=80=99 was no= t declared in this scope using EVPMDPointer =3D DeleteFnPtr; = = = ^ ../src/node_crypto.h:82:61: error: template argument 2 is invalid using EVPMDPointer =3D DeleteFnPtr; ^ ../src/node_crypto.h:454:25: error: =E2=80=98HMAC_CTX_free=E2=80=99 was not= declared in this scope DeleteFnPtr ctx_; ^ ../src/node_crypto.h:454:38: error: template argument 2 is invalid DeleteFnPtr ctx_; ^ ../src/node_crypto.h: In constructor =E2=80=98node::crypto::Hmac::Hmac(node= ::Environment*, v8::Local)=E2=80=99: ../src/node_crypto.h:449:21: error: cannot convert =E2=80=98std::nullptr_t= =E2=80=99 to =E2=80=98int=E2=80=99 in initialization ctx_(nullptr) { ^ ../src/node_crypto.h: At global scope: ../src/node_crypto.h:483:3: error: =E2=80=98EVPMDPointer=E2=80=99 does not = name a type EVPMDPointer mdctx_; ^ ../src/node_crypto.h: In constructor =E2=80=98node::crypto::Hash::Hash(node= ::Environment*, v8::Local)=E2=80=99: ../src/node_crypto.h:477:9: error: class =E2=80=98node::crypto::Hash=E2=80= =99 does not have any field named =E2=80=98mdctx_=E2=80=99 mdctx_(nullptr), ^ ../src/node_crypto.h: At global scope: ../src/node_crypto.h:515:3: error: =E2=80=98EVPMDPointer=E2=80=99 does not = name a type EVPMDPointer mdctx_; ^ make[1]: *** [node_lib.target.mk:181: /tmp/guix-build-node-10.11.0.drv-0/no= de-v10.11.0/out/Release/obj.target/node_lib/src/node.o] Error 1 >> So I wonder if we should downgrade to the 8.12 LTS release, which still >> supports OpenSSL 1.0, until the OpenSSL situation is sorted. From what >> I can tell it might take a while. >> >> What do you think? > > I think that ideally it would be a good idea to have both the latest and > the LTS versions distributed in Guix. So I agree with your solution of > downgrading to 8.12 LTS. I managed to build Node LTS on 'core-updates' with this patch: --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-gnu-Add-Node-LTS.patch Content-Transfer-Encoding: quoted-printable From=209556fc13a77d2619cfd1e861f0269bccf0a58986 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 23 Sep 2018 13:12:23 +0200 Subject: [PATCH] gnu: Add Node LTS. * gnu/packages/libevent.scm (libuv-1.19): New public variable. * gnu/packages/node.scm (node)[arguments]: Adjust 'patch-files' phase to ignore missing files. (node-lts): New public variable. =2D-- gnu/packages/libevent.scm | 13 +++++++++++++ gnu/packages/node.scm | 30 +++++++++++++++++++++++++++--- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index bc7f6c670..053824bce 100644 =2D-- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -152,6 +152,19 @@ resolution, asynchronous file system operations, and t= hreading primitives.") ;; details. Documentation is CC-BY 4.0 as of 1.12.0; see 'LICENSE-doc= s'. (license (list expat cc-by4.0)))) =20 +;; Node 8.x require this version. +(define-public libuv-1.19 + (package + (inherit libuv) + (version "1.19.2") + (source (origin + (method url-fetch) + (uri (string-append "https://dist.libuv.org/dist/v" version + "/libuv-v" version ".tar.gz")) + (sha256 + (base32 + "1msk9ac1z69whww88ibrwjqkd1apdla6l77cm2fwy5kigq0z5g3w"))))= )) + (define-public perl-anyevent (package (name "perl-anyevent") diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index d1de7a536..50b1c2b34 100644 =2D-- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -39,7 +39,8 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages tls) =2D #:use-module (gnu packages web)) + #:use-module (gnu packages web) + #:use-module (srfi srfi-1)) =20 (define-public node (package @@ -86,6 +87,14 @@ (modify-phases %standard-phases (add-before 'configure 'patch-files (lambda* (#:key inputs #:allow-other-keys) + + ;; This phase is inherited by Node LTS, which does not have a= ll + ;; the files listed here. Use this helper for convenience. + (define (delete-if-exists file) + (if (file-exists? file) + (delete-file file) + #t)) + ;; Fix hardcoded /bin/sh references. (substitute* '("lib/child_process.js" "lib/internal/v8_prof_polyfill.js" @@ -103,7 +112,7 @@ =20 ;; FIXME: These tests depend on being able to install eslint. ;; See https://github.com/nodejs/node/issues/17098. =2D (for-each delete-file + (for-each delete-if-exists '("test/parallel/test-eslint-alphabetize-errors.js" "test/parallel/test-eslint-buffer-constructor.js" "test/parallel/test-eslint-documented-errors.js" @@ -111,7 +120,7 @@ =20 ;; FIXME: These tests fail in the build container, but they d= on't ;; seem to be indicative of real problems in practice. =2D (for-each delete-file + (for-each delete-if-exists '("test/async-hooks/test-ttywrap.readstream.js" "test/parallel/test-util-inspect.js" "test/parallel/test-v8-serdes.js" @@ -180,3 +189,18 @@ devices.") (home-page "https://nodejs.org/") (license expat) (properties '((timeout . 3600))))) ; 1 h + +(define-public node-lts + (package + (inherit node) + (version "8.12.0") + (source (origin + (inherit (package-source node)) + (uri (string-append "https://nodejs.org/dist/v" version + "/node-v" version ".tar.xz")) + (sha256 + (base32 + "16j1rrxkhmvpcw689ndw1raql1gz4jqn7n82z55zn63c05cgz7as")))) + (inputs + `(("libuv" ,libuv-1.19) + ,@(alist-delete "libuv" (package-inputs node)))))) =2D-=20 2.19.0 --=-=-= Content-Type: text/plain Unfortunately it fails on 'master' because a test requires OpenSSL 1.0.2p. I can arrange to disable the test there. WDYT? --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAlunk50ACgkQoqBt8qM6 VPpHwQgAvEC6RXwTIRdAhF09xY4wqrDjl27ZWf7cgodH2qv1hZwoDxZ7z9Y7WszQ puLShMVQVl4o2I0JzsdNGTOhNRd932zBQ8S2BECJMaRaDv/dsPkeJ3CNDk/yPrF8 j84C6iQFyAYK3/ZNmt+w5XZE+nbH73l438nf9LgusTU8vCN9c+AfWNAiLpbQypY9 Nl4yawBt+Cv9Epedu/HqRG33aViASVIMUyYHitdVmSazAsmxMtffSS909x1u5Pqb E5m8AosNu2NT9cZngS6cZoHkzcWtRsNeXPurJGSKw42iZBQ4JmNLNKPdJRqzf4bD kGQaUaZ2DbaFI8hTmuwk8WVwltzTQQ== =rNum -----END PGP SIGNATURE----- --==-=-=--