diff --git a/.gitignore b/.gitignore index 06b6843..1e59282 100644 --- a/.gitignore +++ b/.gitignore @@ -38,4 +38,7 @@ /node-v4.2.6-stripped.tar.gz /node-v4.3.0-stripped.tar.gz /node-v4.3.1-stripped.tar.gz -/node-v4.4.1-stripped.tar.gz +/node-v5.7.1-stripped.tar.gz +/node-v5.8.0-stripped.tar.gz +/node-v5.9.0.tar.gz +/node-v5.9.1-stripped.tar.gz diff --git a/nodejs-disable-gyp-deps.patch b/nodejs-disable-gyp-deps.patch index 2743f4c..f1526c0 100644 --- a/nodejs-disable-gyp-deps.patch +++ b/nodejs-disable-gyp-deps.patch @@ -1,4 +1,4 @@ -From 08ee9476e138421b5f6c4fd928986b125fb82634 Mon Sep 17 00:00:00 2001 +From 9ed79cf3212bf7bba43c2a7f313628092c43daf5 Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Tue, 1 Dec 2015 16:35:29 -0500 Subject: [PATCH 1/2] disable running gyp files for bundled deps @@ -8,10 +8,10 @@ Subject: [PATCH 1/2] disable running gyp files for bundled deps 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index ff0098b70d7b2c2b76c6456534013d186ad44f0f..df64f3a90ecf57fb58963b717647d69ffa4fb391 100644 +index 4962bd4e47e447840cc9890ce465b786bb77ba26..30fa7fb2f621a320706a076724250421da373d1f 100644 --- a/Makefile +++ b/Makefile -@@ -47,11 +47,11 @@ $(NODE_EXE): config.gypi out/Makefile +@@ -65,11 +65,11 @@ $(NODE_EXE): config.gypi out/Makefile $(NODE_G_EXE): config.gypi out/Makefile $(MAKE) -C out BUILDTYPE=Debug V=$(V) @@ -25,5 +25,5 @@ index ff0098b70d7b2c2b76c6456534013d186ad44f0f..df64f3a90ecf57fb58963b717647d69f if [ -f $@ ]; then $(error Stale $@, please re-run ./configure) -- -2.7.3 +2.7.2 diff --git a/nodejs-use-system-certs.patch b/nodejs-use-system-certs.patch index 3ea5b9e..e14347c 100644 --- a/nodejs-use-system-certs.patch +++ b/nodejs-use-system-certs.patch @@ -1,4 +1,4 @@ -From e51cf2ad2627af02e88df48287fe510e885ba1dc Mon Sep 17 00:00:00 2001 +From e0aac817a87c927f70a6f8edb63a4103a4109dfc Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Tue, 1 Dec 2015 16:29:07 -0500 Subject: [PATCH 2/2] Do not bundle CA Certificates @@ -19,13 +19,13 @@ Modified 2015-12-01 by Stephen Gallagher to update for Node.js 4.2 Modified 2016-03-04 by Stephen Gallagher to update for -Node.js 5.4.1 +Node.js 5.7.1 --- src/node_crypto.cc | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/src/node_crypto.cc b/src/node_crypto.cc -index 382a42f22727f878b9bf55459e0e3835ac885159..ee90a0fbce017a5af56e10f3f416f86bd27a9d66 100644 +index acd83e9f2f41ade75ee9a3c8061acfa8b3dbf0f4..70ffe035f8be24b2eb6daf71185649d8ae7d579f 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -119,11 +119,11 @@ static X509_NAME *cnnic_ev_name = @@ -41,7 +41,7 @@ index 382a42f22727f878b9bf55459e0e3835ac885159..ee90a0fbce017a5af56e10f3f416f86b X509_STORE* root_cert_store; // Just to generate static methods -@@ -756,33 +756,21 @@ void SecureContext::AddRootCerts(const FunctionCallbackInfo& args) { +@@ -748,33 +748,21 @@ void SecureContext::AddRootCerts(const FunctionCallbackInfo& args) { (void) &clear_error_on_return; // Silence compiler warning. CHECK_EQ(sc->ca_store_, nullptr); @@ -83,5 +83,5 @@ index 382a42f22727f878b9bf55459e0e3835ac885159..ee90a0fbce017a5af56e10f3f416f86b void SecureContext::SetCiphers(const FunctionCallbackInfo& args) { SecureContext* sc = Unwrap(args.Holder()); -- -2.7.3 +2.7.2 diff --git a/nodejs.spec b/nodejs.spec index 82ae8d8..1a93be4 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -7,8 +7,8 @@ %endif # == Node.js Version == -%global nodejs_major 4 -%global nodejs_minor 4 +%global nodejs_major 5 +%global nodejs_minor 9 %global nodejs_patch 1 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} @@ -16,9 +16,9 @@ # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h %global v8_major 4 -%global v8_minor 5 -%global v8_build 103 -%global v8_patch 35 +%global v8_minor 6 +%global v8_build 85 +%global v8_patch 31 # V8 presently breaks ABI at least every x.y release while never bumping SONAME %global v8_abi %{v8_major}.%{v8_minor} %global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch} @@ -29,9 +29,9 @@ %global c_ares_patch 1 %global c_ares_version %{c_ares_major}.%{c_ares_minor}.%{c_ares_patch} -# http-parser - from deps/http-parser/http_parser.h +# http-parser - from deps/http_parser/http_parser.h %global http_parser_major 2 -%global http_parser_minor 5 +%global http_parser_minor 6 %global http_parser_patch 2 %global http_parser_version %{http_parser_major}.%{http_parser_minor}.%{http_parser_patch} @@ -42,6 +42,17 @@ %global punycode_patch 2 %global punycode_version %{punycode_major}.%{punycode_minor}.%{punycode_patch} +# npm - from deps/npm/package.json +%global npm_major 3 +%global npm_minor 7 +%global npm_patch 3 +%global npm_version %{npm_major}.%{npm_minor}.%{npm_patch} + +# Filter out the NPM bundled dependencies so we aren't providing them +%global __provides_exclude_from ^%{_prefix}/lib/node_modules/npm/.*$ +%global __requires_exclude_from ^%{_prefix}/lib/node_modules/npm/.*$ + + Name: nodejs Version: %{nodejs_version} Release: 1%{?dist} @@ -72,8 +83,8 @@ Patch1: nodejs-disable-gyp-deps.patch Patch2: nodejs-use-system-certs.patch BuildRequires: python-devel -BuildRequires: libuv-devel >= 1.7.5 -Requires: libuv >= 1.7.5 +BuildRequires: libuv-devel >= 1.8.0 +Requires: libuv >= 1.8.0 BuildRequires: zlib-devel # Node.js requires some features from openssl 1.0.1 for SPDY support BuildRequires: openssl-devel >= 1:1.0.2 @@ -121,6 +132,13 @@ Provides: bundled(v8) = %{v8_version} # do releases often and is almost always far behind the bundled version Provides: bundled(http-parser) = %{http_parser_version} +# We used to ship npm separately, but it is so tightly integrated with Node.js +# (and expected to be present on all Node.js systems) that we ship it bundled +# now. +Provides: npm = %{npm_version} +Provides: npm(npm) = %{npm_version} +Obsoletes: npm < 3.5.4-6 + %description Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. @@ -145,6 +163,12 @@ Summary: Node.js API documentation Group: Documentation BuildArch: noarch +# We don't require that the main package be installed to +# use the docs, but if it is installed, make sure the +# version always matches +Conflicts: %{name} > %{version}-%{release} +Conflicts: %{name} < %{version}-%{release} + %description docs The API documentation for the Node.js JavaScript runtime. @@ -154,8 +178,7 @@ The API documentation for the Node.js JavaScript runtime. # remove bundled dependencies that we aren't building %patch1 -p1 -rm -rf deps/npm \ - deps/uv \ +rm -rf deps/uv \ deps/zlib # remove bundled CA certificates @@ -174,7 +197,6 @@ export CXXFLAGS='%{optflags} -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno- --shared-openssl \ --shared-zlib \ --shared-libuv \ - --without-npm \ --without-dtrace %if %{?with_debug} == 1 @@ -226,6 +248,38 @@ cp -p common.gypi %{buildroot}%{_datadir}/node # Install the GDB init tool into the documentation directory mv %{buildroot}/%{_datadir}/doc/node/gdbinit %{buildroot}/%{_pkgdocdir}/gdbinit +# Since the old version of NPM was unbundled, there are a lot of symlinks in +# it's node_modules directory. We need to keep these as symlinks to ensure we +# can backtrack on this if we decide to. + +# Rename the npm node_modules directory to node_modules.bundled +mv %{buildroot}/%{_prefix}/lib/node_modules/npm/node_modules \ + %{buildroot}/%{_prefix}/lib/node_modules/npm/node_modules.bundled + +# Recreate all the symlinks +mkdir -p %{buildroot}/%{_prefix}/lib/node_modules/npm/node_modules +FILES=%{buildroot}/%{_prefix}/lib/node_modules/npm/node_modules.bundled/* +for f in $FILES +do + module=`basename $f` + ln -s ../node_modules.bundled/$module %{buildroot}%{_prefix}/lib/node_modules/npm/node_modules/$module +done + +# install NPM docs to mandir +mkdir -p %{buildroot}%{_mandir} \ + %{buildroot}%{_pkgdocdir}/npm + +cp -pr deps/npm/man/* %{buildroot}%{_mandir}/ +rm -rf %{buildroot}%{_prefix}/lib/node_modules/npm/man +ln -sf %{_mandir} %{buildroot}%{_prefix}/lib/node_modules/npm/man + +# Install Markdown and HTML documentation to %{_pkgdocdir} +cp -pr deps/npm/html deps/npm/doc %{buildroot}%{_pkgdocdir}/npm/ +rm -rf %{buildroot}%{_prefix}/lib/node_modules/npm/html \ + %{buildroot}%{_prefix}/lib/node_modules/npm/doc + +ln -sf %{_pkgdocdir} %{buildroot}%{_prefix}/lib/node_modules/npm/html +ln -sf %{_pkgdocdir}/npm/html %{buildroot}%{_prefix}/lib/node_modules/npm/doc %check # Fail the build if the versions don't match @@ -239,7 +293,6 @@ mv %{buildroot}/%{_datadir}/doc/node/gdbinit %{buildroot}/%{_pkgdocdir}/gdbinit %files %{_bindir}/node -%{_mandir}/man1/node.* %dir %{_prefix}/lib/node_modules %dir %{_datadir}/node %dir %{_datadir}/systemtap @@ -247,11 +300,15 @@ mv %{buildroot}/%{_datadir}/doc/node/gdbinit %{buildroot}/%{_pkgdocdir}/gdbinit %{_datadir}/systemtap/tapset/node.stp %{_rpmconfigdir}/fileattrs/nodejs_native.attr %{_rpmconfigdir}/nodejs_native.req -%dir %{_pkgdocdir} %license LICENSE %doc AUTHORS CHANGELOG.md COLLABORATOR_GUIDE.md GOVERNANCE.md README.md %doc ROADMAP.md WORKING_GROUPS.md - +%{_prefix}/lib/node_modules/npm +%ghost %{_sysconfdir}/npmrc +%ghost %{_sysconfdir}/npmignore +%{_bindir}/npm +%{_mandir}/man*/* + %files devel %if %{?with_debug} == 1 %{_bindir}/node_g @@ -263,8 +320,14 @@ mv %{buildroot}/%{_datadir}/doc/node/gdbinit %{buildroot}/%{_pkgdocdir}/gdbinit %files docs %dir %{_pkgdocdir} %{_pkgdocdir}/html +%{_pkgdocdir}/npm/html +%{_pkgdocdir}/npm/doc %changelog +* Wed Mar 23 2016 Stephen Gallagher - 5.9.1-1 +- Update to latest stable release (5.9.1) +- Bundle npm (3.7.3) + * Wed Mar 23 2016 Stephen Gallagher - 4.4.1-1 - Update to 4.4.1 upstream LTS release - Add more versatile ABI checking diff --git a/sources b/sources index da4bdf3..00338d5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -531aa89a87526745fc3e9268fc4efea5 node-v4.4.1-stripped.tar.gz +f71057ca5993899b569a75e891e7f871 node-v5.9.1-stripped.tar.gz