diff --git a/.gitignore b/.gitignore index e266d7f..586f147 100644 --- a/.gitignore +++ b/.gitignore @@ -84,7 +84,19 @@ /node-v8.9.1-stripped.tar.gz /node-v8.9.3-stripped.tar.gz /node-v8.9.4-stripped.tar.gz -/node-v8.10.0-stripped.tar.gz -/node-v8.11.0-stripped.tar.gz -/node-v8.11.2-stripped.tar.gz -/node-v8.11.3-stripped.tar.gz +/node-v9.5.0-stripped.tar.gz +/node-v9.6.1-stripped.tar.gz +/node-v9.7.0-stripped.tar.gz +/node-v9.8.0-stripped.tar.gz +/node-v9.9.0-stripped.tar.gz +/node-v9.10.0-stripped.tar.gz +/node-v9.11.1.tar.gz +/node-v9.11.1-stripped.tar.gz +/node-v10.0.0-stripped.tar.gz +/node-v10.1.0-stripped.tar.gz +/node-v10.2.0-stripped.tar.gz +/node-v10.2.1-stripped.tar.gz +/node-v10.3.0-stripped.tar.gz +/node-v10.4.0-stripped.tar.gz +/node-v10.4.1-stripped.tar.gz +/node-v10.5.0-stripped.tar.gz diff --git a/0001-Disable-running-gyp-on-shared-deps.patch b/0001-Disable-running-gyp-on-shared-deps.patch index 1c104e0..54c26ad 100644 --- a/0001-Disable-running-gyp-on-shared-deps.patch +++ b/0001-Disable-running-gyp-on-shared-deps.patch @@ -1,17 +1,17 @@ -From c651b81df4132f5a1db173d1317ba64673de6f01 Mon Sep 17 00:00:00 2001 +From b5b4b7f8acd2d67c79d1fc2c954aa88edff27511 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Thu, 27 Apr 2017 14:25:42 +0200 -Subject: [PATCH 1/4] Disable running gyp on shared deps +Subject: [PATCH 1/2] Disable running gyp on shared deps --- Makefile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile -index 2c62bf29cd233479e7c56b86d293519dcf9cce6e..10198b11fac2171b6b1c381dbba72596f350870d 100644 +index b11168aaa456af019a32885f5495c4527a16e9a0..1297fbfc9f68261ea8ebfd1ac70f32581918d078 100644 --- a/Makefile +++ b/Makefile -@@ -90,14 +90,13 @@ $(NODE_EXE): config.gypi out/Makefile +@@ -89,14 +89,13 @@ $(NODE_EXE): config.gypi out/Makefile $(NODE_G_EXE): config.gypi out/Makefile $(MAKE) -C out BUILDTYPE=Debug V=$(V) @@ -19,11 +19,11 @@ index 2c62bf29cd233479e7c56b86d293519dcf9cce6e..10198b11fac2171b6b1c381dbba72596 -out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \ - deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \ -- deps/v8/gypfiles/features.gypi deps/v8/src/v8.gyp node.gyp \ +- deps/v8/gypfiles/features.gypi deps/v8/gypfiles/v8.gyp node.gyp \ - config.gypi +out/Makefile: common.gypi deps/http_parser/http_parser.gyp \ + deps/v8/gypfiles/toolchain.gypi deps/v8/gypfiles/features.gypi \ -+ deps/v8/src/v8.gyp node.gyp config.gypi ++ deps/v8/gypfiles/v8.gyp node.gyp config.gypi $(PYTHON) tools/gyp_node.py -f make config.gypi: configure diff --git a/0002-Fix-aarch64-debug.patch b/0002-Fix-aarch64-debug.patch deleted file mode 100644 index fa30e47..0000000 --- a/0002-Fix-aarch64-debug.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 1ce4b0bab75380351ab04cc97ee7f86d7c988d44 Mon Sep 17 00:00:00 2001 -From: Zuzana Svetlikova -Date: Wed, 20 Sep 2017 13:05:01 +0200 -Subject: [PATCH 2/4] Fix aarch64 debug - ---- - deps/v8/src/v8.gyp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/deps/v8/src/v8.gyp b/deps/v8/src/v8.gyp -index 1c56842f81a548f91b1e5f7b62690d50e012e039..0f34d104f7fff89c5321a54b4cc3ca577aed1be4 100644 ---- a/deps/v8/src/v8.gyp -+++ b/deps/v8/src/v8.gyp -@@ -350,11 +350,11 @@ - ], - 'outputs': [ - '<(INTERMEDIATE_DIR)/snapshot.cc', - ], - 'variables': { -- 'mksnapshot_flags': [], -+ 'mksnapshot_flags': ['--nodebug_code'], - 'conditions': [ - ['v8_random_seed!=0', { - 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'], - }], - ['v8_vector_stores!=0', { -@@ -451,11 +451,11 @@ - 'action_name': 'run_mksnapshot (external)', - 'inputs': [ - '<(mksnapshot_exec)', - ], - 'variables': { -- 'mksnapshot_flags': [], -+ 'mksnapshot_flags': ['--nodebug_code'], - 'conditions': [ - ['v8_random_seed!=0', { - 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'], - }], - ['v8_vector_stores!=0', { --- -2.17.0 - diff --git a/0002-Suppress-NPM-message-to-run-global-update.patch b/0002-Suppress-NPM-message-to-run-global-update.patch new file mode 100644 index 0000000..050485e --- /dev/null +++ b/0002-Suppress-NPM-message-to-run-global-update.patch @@ -0,0 +1,74 @@ +From e84a42f54aa1dabc115a0c647af6aa1500a85f34 Mon Sep 17 00:00:00 2001 +From: Stephen Gallagher +Date: Tue, 1 May 2018 08:05:30 -0400 +Subject: [PATCH 2/2] Suppress NPM message to run global update + +Signed-off-by: Stephen Gallagher +--- + deps/npm/bin/npm-cli.js | 46 ----------------------------------------- + 1 file changed, 46 deletions(-) + +diff --git a/deps/npm/bin/npm-cli.js b/deps/npm/bin/npm-cli.js +index d7c14bc4b2cd0206448163c3a9bed765bde7fae7..98edb6f45fe073e03794a2ae6e7aa7f5500723ee 100755 +--- a/deps/npm/bin/npm-cli.js ++++ b/deps/npm/bin/npm-cli.js +@@ -72,56 +72,10 @@ + // now actually fire up npm and run the command. + // this is how to use npm programmatically: + conf._exit = true + npm.load(conf, function (er) { + if (er) return errorHandler(er) +- if (!unsupported.checkVersion(process.version).unsupported) { +- const pkg = require('../package.json') +- let notifier = require('update-notifier')({pkg}) +- if ( +- notifier.update && +- notifier.update.latest !== pkg.version +- ) { +- const color = require('ansicolors') +- const useColor = npm.config.get('color') +- const useUnicode = npm.config.get('unicode') +- const old = notifier.update.current +- const latest = notifier.update.latest +- let type = notifier.update.type +- if (useColor) { +- switch (type) { +- case 'major': +- type = color.red(type) +- break +- case 'minor': +- type = color.yellow(type) +- break +- case 'patch': +- type = color.green(type) +- break +- } +- } +- const changelog = `https://github.com/npm/npm/releases/tag/v${latest}` +- notifier.notify({ +- message: `New ${type} version of ${pkg.name} available! ${ +- useColor ? color.red(old) : old +- } ${useUnicode ? '→' : '->'} ${ +- useColor ? color.green(latest) : latest +- }\n` + +- `${ +- useColor ? color.yellow('Changelog:') : 'Changelog:' +- } ${ +- useColor ? color.cyan(changelog) : changelog +- }\n` + +- `Run ${ +- useColor +- ? color.green(`npm install -g ${pkg.name}`) +- : `npm i -g ${pkg.name}` +- } to update!` +- }) +- } +- } + npm.commands[npm.command](npm.argv, function (err) { + // https://genius.com/Lin-manuel-miranda-your-obedient-servant-lyrics + if ( + !err && + npm.config.get('ham-it-up') && +-- +2.17.0 + diff --git a/0003-PATCH-PPC-use-pc-relative-address-to-init-constpool-.patch b/0003-PATCH-PPC-use-pc-relative-address-to-init-constpool-.patch new file mode 100644 index 0000000..0436f75 --- /dev/null +++ b/0003-PATCH-PPC-use-pc-relative-address-to-init-constpool-.patch @@ -0,0 +1,128 @@ +From cefa0fd937cb48a8431e62268b2c9500b104d4e5 Mon Sep 17 00:00:00 2001 +From: Junliang Yan +Date: Wed, 9 May 2018 18:39:49 -0400 +Subject: [PATCH 3/4] [PATCH] PPC: use pc-relative address to init constpool + reg + +R=joransiu@ca.ibm.com + +Change-Id: I67364f29d494b09786a14b13743f73bef4b64582 +Reviewed-on: https://chromium-review.googlesource.com/950242 +Commit-Queue: Junliang Yan +Reviewed-by: Joran Siu +Cr-Commit-Position: refs/heads/master@{#51750} + +Signed-off-by: Stephen Gallagher +--- + deps/v8/src/ppc/macro-assembler-ppc.cc | 14 ++++++++++---- + deps/v8/src/ppc/macro-assembler-ppc.h | 9 +++++---- + 2 files changed, 15 insertions(+), 8 deletions(-) + +diff --git a/deps/v8/src/ppc/macro-assembler-ppc.cc b/deps/v8/src/ppc/macro-assembler-ppc.cc +index 68efa84c72c7f6d781d508183b53ea83024944d1..3192e9cefb1c1b116c5e12b5c52e7971b92a111a 100644 +--- a/deps/v8/src/ppc/macro-assembler-ppc.cc ++++ b/deps/v8/src/ppc/macro-assembler-ppc.cc +@@ -166,11 +166,11 @@ void TurboAssembler::Call(Register target) { + + DCHECK_EQ(CallSize(target), SizeOfCodeGeneratedSince(&start)); + } + + void MacroAssembler::CallJSEntry(Register target) { +- DCHECK(target == ip); ++ CHECK(target == r5); + Call(target); + } + + int TurboAssembler::CallSize(Address target, RelocInfo::Mode rmode, + Condition cond) { +@@ -823,20 +823,27 @@ void TurboAssembler::ShiftRightAlgPair(Register dst_low, Register dst_high, + srawi(dst_high, src_high, shift); + } + } + #endif + +-void MacroAssembler::LoadConstantPoolPointerRegisterFromCodeTargetAddress( ++void TurboAssembler::LoadConstantPoolPointerRegisterFromCodeTargetAddress( + Register code_target_address) { + lwz(kConstantPoolRegister, + MemOperand(code_target_address, + Code::kConstantPoolOffset - Code::kHeaderSize)); + add(kConstantPoolRegister, kConstantPoolRegister, code_target_address); + } + ++void TurboAssembler::LoadPC(Register dst) { ++ b(4, SetLK); ++ mflr(dst); ++} ++ + void TurboAssembler::LoadConstantPoolPointerRegister() { +- mov_label_addr(kConstantPoolRegister, ConstantPoolPosition()); ++ LoadPC(kConstantPoolRegister); ++ add_label_offset(kConstantPoolRegister, kConstantPoolRegister, ++ ConstantPoolPosition(), -pc_offset() + 4); + } + + void TurboAssembler::StubPrologue(StackFrame::Type type) { + { + ConstantPoolUnavailableScope constant_pool_unavailable(this); +@@ -848,11 +855,10 @@ void TurboAssembler::StubPrologue(StackFrame::Type type) { + set_constant_pool_available(true); + } + } + + void TurboAssembler::Prologue() { +- DCHECK(base != no_reg); + PushStandardFrame(r4); + if (FLAG_enable_embedded_constant_pool) { + // base contains prologue address + LoadConstantPoolPointerRegister(); + set_constant_pool_available(true); +diff --git a/deps/v8/src/ppc/macro-assembler-ppc.h b/deps/v8/src/ppc/macro-assembler-ppc.h +index f4d9afd47f150f9cd2e840c20a61e965a5d8f5f5..32e6219c41bbbfe8427e05f2f9a02ff800efcffb 100644 +--- a/deps/v8/src/ppc/macro-assembler-ppc.h ++++ b/deps/v8/src/ppc/macro-assembler-ppc.h +@@ -214,10 +214,11 @@ class TurboAssembler : public Assembler { + + void LoadSingle(DoubleRegister dst, const MemOperand& mem, + Register scratch = no_reg); + void LoadSingleU(DoubleRegister dst, const MemOperand& mem, + Register scratch = no_reg); ++ void LoadPC(Register dst); + + void StoreDouble(DoubleRegister src, const MemOperand& mem, + Register scratch = no_reg); + void StoreDoubleU(DoubleRegister src, const MemOperand& mem, + Register scratch = no_reg); +@@ -639,10 +640,14 @@ class TurboAssembler : public Assembler { + + // Call a code stub. + void CallStubDelayed(CodeStub* stub); + + void LoadConstantPoolPointerRegister(); ++ ++ // Loads the constant pool pointer (kConstantPoolRegister). ++ void LoadConstantPoolPointerRegisterFromCodeTargetAddress( ++ Register code_target_address); + void AbortConstantPoolBuilding() { + #ifdef DEBUG + // Avoid DCHECK(!is_linked()) failure in ~Label() + bind(ConstantPoolPosition()); + #endif +@@ -733,14 +738,10 @@ class MacroAssembler : public TurboAssembler { + // Push and pop the registers that can hold pointers, as defined by the + // RegList constant kSafepointSavedRegisters. + void PushSafepointRegisters(); + void PopSafepointRegisters(); + +- // Loads the constant pool pointer (kConstantPoolRegister). +- void LoadConstantPoolPointerRegisterFromCodeTargetAddress( +- Register code_target_address); +- + // Flush the I-cache from asm code. You should use CpuFeatures::FlushICache + // from C. + // Does not handle errors. + void FlushICache(Register address, size_t size, Register scratch); + +-- +2.17.0 + diff --git a/0003-Suppress-message-to-update-npm.patch b/0003-Suppress-message-to-update-npm.patch deleted file mode 100644 index d2c38a4..0000000 --- a/0003-Suppress-message-to-update-npm.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 78ba46ffc5b0bd1dd30470a8b4fa21ce75b36c67 Mon Sep 17 00:00:00 2001 -From: Stephen Gallagher -Date: Fri, 18 May 2018 08:25:06 -0400 -Subject: [PATCH 3/4] Suppress message to update npm - -Signed-off-by: Stephen Gallagher ---- - deps/npm/bin/npm-cli.js | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/deps/npm/bin/npm-cli.js b/deps/npm/bin/npm-cli.js -index e2c013b5df86371b5a0e5b5ac5cc73613f47fd2c..50691e6f82b7f102cbbf40ba568345836dc849fb 100755 ---- a/deps/npm/bin/npm-cli.js -+++ b/deps/npm/bin/npm-cli.js -@@ -23,16 +23,10 @@ - log.pause() // will be unpaused when config is loaded. - log.info('it worked if it ends with', 'ok') - - unsupported.checkForUnsupportedNode() - -- if (!unsupported.checkVersion(process.version).unsupported) { -- var updater = require('update-notifier') -- var pkg = require('../package.json') -- updater({pkg: pkg}).notify({defer: true}) -- } -- - var path = require('path') - var npm = require('../lib/npm.js') - var npmconf = require('../lib/config/core.js') - var errorHandler = require('../lib/utils/error-handler.js') - var output = require('../lib/utils/output.js') --- -2.17.0 - diff --git a/0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch b/0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch deleted file mode 100644 index e9eaabf..0000000 --- a/0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 138926210083b2a9d1bd7a224204e02199242dab Mon Sep 17 00:00:00 2001 -From: Daniel Bevenius -Date: Fri, 18 May 2018 09:58:37 +0200 -Subject: [PATCH 4/4] http2: pass session to DEBUG_HTTP2SESSION2 - -When configure with --debug-http2 --debug-nghttp2 the following -compilation error is generated: - -DEBUG_HTTP2SESSION2(this, "fatal error receiving data: %d", ret); - ^ -../src/node_http2.cc:1690:27: -error: invalid use of 'this' outside of a non-static member function - -1 errors generated. - -OnStreamReadImpl is static and I think the intention was to pass in the -session variable here. - -Refs: https://github.com/nodejs/node/issues/20806 ---- - src/node_http2.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/node_http2.cc b/src/node_http2.cc -index b31878582301ed2fc974e1ff75bd0776bfd3293e..4aa9fceec18ced426195039da4814be3898d9689 100644 ---- a/src/node_http2.cc -+++ b/src/node_http2.cc -@@ -1685,11 +1685,11 @@ void Http2Session::OnStreamReadImpl(ssize_t nread, - - // Note: if ssize_t is not defined (e.g. on Win32), nghttp2 will typedef - // ssize_t to int. Cast here so that the < 0 check actually works on - // Windows. - if (static_cast(ret) < 0) { -- DEBUG_HTTP2SESSION2(this, "fatal error receiving data: %d", ret); -+ DEBUG_HTTP2SESSION2(session, "fatal error receiving data: %d", ret); - - Local argv[1] = { - Integer::New(isolate, ret), - }; - session->MakeCallback(env->error_string(), arraysize(argv), argv); --- -2.17.0 - diff --git a/nodejs-tarball.sh b/nodejs-tarball.sh index 20dab4b..237ae13 100755 --- a/nodejs-tarball.sh +++ b/nodejs-tarball.sh @@ -1,10 +1,10 @@ #!/bin/sh version=$(rpm -q --specfile --qf='%{version}\n' nodejs.spec | head -n1) +rm -f node-v${version}.tar.gz wget http://nodejs.org/dist/v${version}/node-v${version}.tar.gz tar -zxf node-v${version}.tar.gz rm -rf node-v${version}/deps/openssl tar -zcf node-v${version}-stripped.tar.gz node-v${version} -echo "Now make sure to run:" -echo "fedpkg new-sources node-v${version}-stripped.tar.gz" +fedpkg new-sources node-v${version}-stripped.tar.gz diff --git a/nodejs.spec b/nodejs.spec index 6c622d2..f5ba5cd 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -1,5 +1,11 @@ %global with_debug 1 +# PowerPC and s390x segfault during Debug builds +# https://github.com/nodejs/node/issues/20642 +%ifarch %{power64} s390x +%global with_debug 0 +%endif + # bundle dependencies that are not available as Fedora modules # %%{!?_with_bootstrap: %%global bootstrap 1} # use bcond for building modules @@ -13,9 +19,9 @@ # feature releases that are only supported for nine months, which is shorter # than a Fedora release lifecycle. %global nodejs_epoch 1 -%global nodejs_major 8 -%global nodejs_minor 11 -%global nodejs_patch 3 +%global nodejs_major 10 +%global nodejs_minor 5 +%global nodejs_patch 0 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release 1 @@ -23,9 +29,9 @@ # == Bundled Dependency Versions == # v8 - from deps/v8/include/v8-version.h %global v8_major 6 -%global v8_minor 2 -%global v8_build 414 -%global v8_patch 54 +%global v8_minor 7 +%global v8_build 288 +%global v8_patch 46 # 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} @@ -33,8 +39,8 @@ # c-ares - from deps/cares/include/ares_version.h # https://github.com/nodejs/node/pull/9332 %global c_ares_major 1 -%global c_ares_minor 10 -%global c_ares_patch 1 +%global c_ares_minor 14 +%global c_ares_patch 0 %global c_ares_version %{c_ares_major}.%{c_ares_minor}.%{c_ares_patch} # http-parser - from deps/http_parser/http_parser.h @@ -45,21 +51,21 @@ # libuv - from deps/uv/include/uv-version.h %global libuv_major 1 -%global libuv_minor 19 -%global libuv_patch 1 +%global libuv_minor 20 +%global libuv_patch 3 %global libuv_version %{libuv_major}.%{libuv_minor}.%{libuv_patch} -# ICU - from configure in the configure_intl() function -%global libicu_major 60 -%global libicu_minor 1 -%global libicu_version %{libicu_major}.%{libicu_minor} - # nghttp2 - from deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h %global nghttp2_major 1 %global nghttp2_minor 32 %global nghttp2_patch 0 %global nghttp2_version %{nghttp2_major}.%{nghttp2_minor}.%{nghttp2_patch} +# ICU - from configure in the configure_intl() function +%global icu_major 61 +%global icu_minor 1 +%global icu_version %{icu_major}.%{icu_minor} + # punycode - from lib/punycode.js # Note: this was merged into the mainline since 0.6.x # Note: this will be unmerged in an upcoming major release @@ -70,8 +76,8 @@ # npm - from deps/npm/package.json %global npm_epoch 1 -%global npm_major 5 -%global npm_minor 6 +%global npm_major 6 +%global npm_minor 1 %global npm_patch 0 %global npm_version %{npm_major}.%{npm_minor}.%{npm_patch} @@ -111,20 +117,11 @@ Source7: nodejs_native.attr # Disable running gyp on bundled deps we don't use Patch1: 0001-Disable-running-gyp-on-shared-deps.patch -# Being fixed upstream. -# Follow https://bugs.chromium.org/p/v8/issues/detail?id=6939 -Patch2: 0002-Fix-aarch64-debug.patch - # Suppress the message from npm to run `npm -g update npm` # This does bad things on an RPM-managed npm. -Patch3: 0003-Suppress-message-to-update-npm.patch - -# Fix nghttp2 debug builds -# https://github.com/nodejs/node/pull/20815 -Patch4: 0004-http2-pass-session-to-DEBUG_HTTP2SESSION2.patch +Patch2: 0002-Suppress-NPM-message-to-run-global-update.patch BuildRequires: python2-devel -BuildRequires: libicu-devel BuildRequires: zlib-devel BuildRequires: gcc >= 4.9.4 BuildRequires: gcc-c++ >= 4.9.4 @@ -138,15 +135,15 @@ Provides: bundled(nghttp2) = %{nghttp2_version} BuildRequires: systemtap-sdt-devel BuildRequires: http-parser-devel >= 2.7.0 Requires: http-parser >= 2.7.0 -BuildRequires: libuv-devel >= 1:1.19.1 -Requires: libuv >= 1:1.19.1 -BuildRequires: libnghttp2-devel >= 1.25.0 -Requires: libnghttp2 >= 1.25.0 +BuildRequires: libuv-devel >= 1:1.20.2 +Requires: libuv >= 1:1.20.2 +BuildRequires: libnghttp2-devel >= %{nghttp2_version} +Requires: libnghttp2 >= %{nghttp2_version} %endif BuildRequires: openssl-devel -# we need the system certificate store when Patch2 is applied +# we need the system certificate store Requires: ca-certificates #we need ABI virtual provides where SONAMEs aren't enough/not present so deps @@ -189,13 +186,10 @@ Provides: bundled(c-ares) = %{c_ares_version} # See https://github.com/nodejs/node/commit/d726a177ed59c37cf5306983ed00ecd858cfbbef Provides: bundled(v8) = %{v8_version} -%if 0%{?fedora} && 0%{?fedora < 28} -# Node.js requires up-to-date ICU -%global config_intl --with-intl=small-icu -Provides: bundled(icu) = %{libicu_version} -%else -%global config_intl --with-intl=system-icu -%endif +# Node.js is bound to a specific version of ICU which may not match the OS +# We cannot pin the OS to this version of ICU because every update includes +# an ABI-break, so we'll use the bundled copy. +Provides: bundled(icu) = %{icu_version} # Make sure we keep NPM up to date when we update Node.js %if 0%{?rhel} @@ -273,20 +267,10 @@ The API documentation for the Node.js JavaScript runtime. # remove bundled dependencies that we aren't building %patch1 -p1 - -%if 0%{?fedora} && 0%{?fedora < 28} rm -rf deps/zlib -%else -rm -rf deps/icu-small \ - deps/zlib -%endif %patch2 -p1 -%patch3 -p1 - -%patch4 -p1 - # Replace any instances of unversioned python' with python2 find . -type f -exec sed -i "s~/usr\/bin\/env python~/usr/bin/python2~" {} \; find . -type f -exec sed -i "s~/usr\/bin\/python\W~/usr/bin/python2~" {} \; @@ -321,8 +305,6 @@ export LDFLAGS="%{build_ldflags}" --shared-openssl \ --shared-zlib \ --without-dtrace \ - %{config_intl} \ - --debug-http2 \ --debug-nghttp2 \ --openssl-use-def-ca-store %else @@ -333,8 +315,6 @@ export LDFLAGS="%{build_ldflags}" --shared-http-parser \ --shared-nghttp2 \ --with-dtrace \ - %{config_intl} \ - --debug-http2 \ --debug-nghttp2 \ --openssl-use-def-ca-store %endif @@ -390,16 +370,18 @@ mv %{buildroot}/%{_datadir}/doc/node/gdbinit %{buildroot}/%{_pkgdocdir}/gdbinit # can backtrack on this if we decide to. # Rename the npm node_modules directory to node_modules.bundled +mkdir -p %{buildroot}/%{_prefix}/lib/node/.bundled mv %{buildroot}/%{_prefix}/lib/node_modules/npm/node_modules \ - %{buildroot}/%{_prefix}/lib/node_modules/npm/node_modules.bundled + %{buildroot}/%{_prefix}/lib/node/.bundled/npm # Recreate all the symlinks mkdir -p %{buildroot}/%{_prefix}/lib/node_modules/npm/node_modules -FILES=%{buildroot}/%{_prefix}/lib/node_modules/npm/node_modules.bundled/* +FILES=%{buildroot}/%{_prefix}/lib/node/.bundled/npm/* for f in $FILES do module=`basename $f` - ln -s ../node_modules.bundled/$module %{buildroot}%{_prefix}/lib/node_modules/npm/node_modules/$module + ln -s ../../../node/.bundled/npm/$module \ + %{buildroot}%{_prefix}/lib/node_modules/npm/node_modules/$module done # install NPM docs to mandir @@ -435,11 +417,13 @@ rm -f %{buildroot}/%{_defaultdocdir}/node/lldb_commands.py \ %{buildroot}/%{_bindir}/node -e "require(\"assert\").equal(require(\"punycode\").version, '%{punycode_version}')" # Ensure we have npm and that the version matches -NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node -e "require(\"assert\").equal(require(\"npm\").version, '%{npm_version}')" +NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules:%{buildroot}%{_prefix}/lib/node_modules/npm/node_modules %{buildroot}/%{_bindir}/node -e "require(\"assert\").equal(require(\"npm\").version, '%{npm_version}')" %files %{_bindir}/node %dir %{_prefix}/lib/node_modules +%dir %{_prefix}/lib/node +%dir %{_prefix}/lib/node/.bundled %dir %{_datadir}/node %dir %{_datadir}/systemtap %dir %{_datadir}/systemtap/tapset @@ -473,6 +457,7 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_bindir}/npm %{_bindir}/npx %{_prefix}/lib/node_modules/npm +%{_prefix}/lib/node/.bundled/npm %ghost %{_sysconfdir}/npmrc %ghost %{_sysconfdir}/npmignore %doc %{_mandir}/man*/npm* @@ -490,33 +475,89 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules %{buildroot}/%{_bindir}/node - %{_pkgdocdir}/npm/doc %changelog -* Thu Jun 14 2018 Stephen Gallagher - 1:8.11.3-1 -- Update to 8.11.3 for security fixes -- https://nodejs.org/en/blog/release/v8.11.3/ +* Thu Jun 21 2018 Stephen Gallagher - 1:10.5.0-1 +- Update to 10.5.0 +- https://nodejs.org/en/blog/release/v10.5.0/ -* Mon Jun 04 2018 Stephen Gallagher - 1:8.11.2-2 -- Build against OpenSSL 1.1 +* Thu Jun 14 2018 Stephen Gallagher - 1:10.4.1-1 +- Update to 10.4.1 to address security issues +- https://nodejs.org/en/blog/release/v10.4.1/ +- Resolves: rhbz#1590801 +- Resolves: rhbz#1591014 +- Resolves: rhbz#1591019 -* Thu May 17 2018 Stephen Gallagher - 1:8.11.2-1 -- Update to 8.11.2 -- https://nodejs.org/en/blog/release/v8.11.2/ +* Thu Jun 07 2018 Stephen Gallagher - 1:10.4.0-1 +- Update to 10.4.0 +- https://nodejs.org/en/blog/release/v10.4.0/ -* Fri Apr 13 2018 Rafael dos Santos - 1:8.11.0-2 +* Wed May 30 2018 Stephen Gallagher - 1:10.3.0-1 +- Update to 10.3.0 +- Update npm to 6.1.0 +- https://nodejs.org/en/blog/release/v10.3.0/ + +* Tue May 29 2018 Stephen Gallagher - 1:10.2.1-2 +- Fix up bare 'python' to be python2 +- Drop redundant entry in docs section + +* Fri May 25 2018 Stephen Gallagher - 1:10.2.1-1 +- Update to 10.2.1 +- https://nodejs.org/en/blog/release/v10.2.1/ + +* Wed May 23 2018 Stephen Gallagher - 1:10.2.0-1 +- Update to 10.2.0 +- https://nodejs.org/en/blog/release/v10.2.0/ + +* Thu May 10 2018 Stephen Gallagher - 1:10.1.0-3 +- Fix incorrect rpm macro + +* Thu May 10 2018 Stephen Gallagher - 1:10.1.0-2 +- Include upstream v8 fix for ppc64[le] +- Disable debug build on ppc64[le] and s390x + +* Wed May 09 2018 Stephen Gallagher - 1:10.1.0-1 +- Update to 10.1.0 +- https://nodejs.org/en/blog/release/v10.1.0/ +- Reenable node_g binary + +* Thu Apr 26 2018 Stephen Gallagher - 1:10.0.0-1 +- Update to 10.0.0 +- https://nodejs.org/en/blog/release/v10.0.0/ +- Drop workaround patch +- Temporarily drop node_g binary due to + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85587 + +* Fri Apr 13 2018 Rafael dos Santos - 1:9.11.1-2 - Use standard Fedora linker flags (bug #1543859) -* Wed Mar 28 2018 Stephen Gallagher - 1:8.11.0-1 -- Update to 8.11.0 -- https://nodejs.org/en/blog/release/v8.11.0/ +* Thu Apr 05 2018 Stephen Gallagher - 1:9.11.1-1 +- Update to 9.11.1 +- https://nodejs.org/en/blog/release/v9.11.0/ +- https://nodejs.org/en/blog/release/v9.11.1/ -* Thu Mar 08 2018 Stephen Gallagher - 1:8.10.0-1 -- Update to 8.10.0 -- https://nodejs.org/en/blog/release/v8.10.0/ +* Wed Mar 28 2018 Stephen Gallagher - 1:9.10.0-1 +- Update to 9.10.0 +- https://nodejs.org/en/blog/release/v9.10.0/ -* Thu Mar 01 2018 Stephen Gallagher - 1:8.9.4-3 -- Work around build issue on F28 +* Wed Mar 21 2018 Stephen Gallagher - 1:9.9.0-1 +- Update to 9.9.0 +- https://nodejs.org/en/blog/release/v9.9.0/ -* Thu Feb 08 2018 Fedora Release Engineering - 1:8.9.4-2.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild +* Thu Mar 08 2018 Stephen Gallagher - 1:9.8.0-1 +- Update to 9.8.0 +- https://nodejs.org/en/blog/release/v9.8.0/ + +* Thu Mar 01 2018 Stephen Gallagher - 1:9.7.0-1 +- Update to 9.7.0 +- https://nodejs.org/en/blog/release/v9.7.0/ +- Work around F28 build issue + +* Sun Feb 25 2018 Stephen Gallagher - 1:9.6.1-1 +- Update to 9.6.1 +- https://nodejs.org/en/blog/release/v9.6.1/ +- https://nodejs.org/en/blog/release/v9.6.0/ + +* Mon Feb 05 2018 Stephen Gallagher - 1:9.5.0-1 +- Package Node.js 9.5.0 * Thu Jan 11 2018 Stephen Gallagher - 1:8.9.4-2 - Fix incorrect Requires: diff --git a/sources b/sources index eac00d0..842a96b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (node-v8.11.3-stripped.tar.gz) = 17e0ceb71d9e8d6ab3ce211ae6034014baf66a751e9dc093d2baf487822524dc48a919db56ddbbcdcd1521071b4d416a24057854d0e881a6e91d3ae9c58cd918 +SHA512 (node-v10.5.0-stripped.tar.gz) = df9ec8923d5b6260a27b1794f6841a2eb8f08cd8a2a24958dc5d2e7698878337a014c582055cc9eb96dee6303bc5580c718bde8b86cdbde27c8f01f8cac12a31