From fd354d0be2f0f3a29666cd016604d82e52083406 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Stan=C4=9Bk?= Date: Tue, 31 May 2022 14:52:49 +0200 Subject: [PATCH] rebase to 18.2.0 Resolves: rhbz#2083073 --- .gitignore | 2 + 0001-Disable-running-gyp-on-shared-deps.patch | 48 ++- 0001-fix-ci-lock-file-validation.patch | 397 ------------------ 0003-yarn-not-installable-on-aarch64.patch | 92 ---- nodejs.spec | 36 +- sources | 4 +- 6 files changed, 59 insertions(+), 520 deletions(-) delete mode 100644 0001-fix-ci-lock-file-validation.patch delete mode 100644 0003-yarn-not-installable-on-aarch64.patch diff --git a/.gitignore b/.gitignore index 6345ec3..98a4bf9 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ /node-v16.13.1-stripped.tar.gz /node-v16.14.0-stripped.tar.gz /icu4c-70_1-src.tgz +/node-v18.2.0-stripped.tar.gz +/icu4c-71_1-src.tgz diff --git a/0001-Disable-running-gyp-on-shared-deps.patch b/0001-Disable-running-gyp-on-shared-deps.patch index 361ea08..778f8df 100644 --- a/0001-Disable-running-gyp-on-shared-deps.patch +++ b/0001-Disable-running-gyp-on-shared-deps.patch @@ -1,19 +1,19 @@ -From b0b4d1ddbc720db73fb8ab13cdbbf1ce6524eebd Mon Sep 17 00:00:00 2001 +From 142fe30256f96e28b49f55d5c72e604719aaaad8 Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Fri, 17 Apr 2020 12:59:44 +0200 -Subject: [PATCH 1/2] Disable running gyp on shared deps +Subject: [PATCH] Disable running gyp on shared deps +Signed-off-by: rpm-build --- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + Makefile | 2 +- + node.gyp | 17 ----------------- + 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/Makefile b/Makefile -index 93d63110ae2e3928a95d24036b86d11885ab240f..79caaec2112cefa8f6a1c947375b517e9676f176 100644 +index 4aace77..0bad864 100644 --- a/Makefile +++ b/Makefile -@@ -136,11 +136,11 @@ endif - .PHONY: test-code-cache - with-code-cache test-code-cache: +@@ -147,7 +147,7 @@ with-code-cache test-code-cache: $(warning '$@' target is a noop) out/Makefile: config.gypi common.gypi node.gyp \ @@ -22,8 +22,34 @@ index 93d63110ae2e3928a95d24036b86d11885ab240f..79caaec2112cefa8f6a1c947375b517e tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \ tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp $(PYTHON) tools/gyp_node.py -f make - - # node_version.h is listed because the N-API version is taken from there +diff --git a/node.gyp b/node.gyp +index 86fe9a6..bfa5093 100644 +--- a/node.gyp ++++ b/node.gyp +@@ -449,23 +449,6 @@ + ], + }, + ], +- }, { +- 'variables': { +- 'opensslconfig_internal': '<(obj_dir)/deps/openssl/openssl.cnf', +- 'opensslconfig': './deps/openssl/openssl/apps/openssl.cnf', +- }, +- 'actions': [ +- { +- 'action_name': 'reset_openssl_cnf', +- 'inputs': [ '<(opensslconfig)', ], +- 'outputs': [ '<(opensslconfig_internal)', ], +- 'action': [ +- 'python', 'tools/copyfile.py', +- './deps/openssl/openssl/apps/openssl.cnf', +- '<(obj_dir)/deps/openssl/openssl.cnf', +- ], +- }, +- ], + }], + ], + }, # node_core_target_name -- -2.29.2 +2.36.1 diff --git a/0001-fix-ci-lock-file-validation.patch b/0001-fix-ci-lock-file-validation.patch deleted file mode 100644 index 81ff06a..0000000 --- a/0001-fix-ci-lock-file-validation.patch +++ /dev/null @@ -1,397 +0,0 @@ -From 730dd78c897a28c3df0468ed1fc42d5817badefe Mon Sep 17 00:00:00 2001 -From: Ruy Adorno -Date: Wed, 2 Feb 2022 22:10:22 -0500 -Subject: [PATCH] fix(ci): lock file validation -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Make sure to validate any lock file (either package-lock.json or -npm-shrinkwrap.json) against the current install. This will properly -throw an error in case any of the dependencies being installed don't -match the dependencies that are currently listed in the lock file. - -Fixes: https://github.com/npm/cli/issues/2701 -Fixes: https://github.com/npm/cli/issues/3947 -Signed-off-by: Jan Staněk ---- - deps/npm/lib/commands/ci.js | 23 ++++++ - deps/npm/lib/utils/validate-lockfile.js | 29 +++++++ - .../smoke-tests/index.js.test.cjs | 11 +++ - .../test/lib/commands/ci.js.test.cjs | 13 +++ - .../lib/utils/validate-lockfile.js.test.cjs | 35 ++++++++ - deps/npm/test/lib/commands/ci.js | 82 +++++++++++++++++++ - deps/npm/test/lib/utils/validate-lockfile.js | 82 +++++++++++++++++++ - 7 files changed, 275 insertions(+) - create mode 100644 deps/npm/lib/utils/validate-lockfile.js - create mode 100644 deps/npm/tap-snapshots/test/lib/commands/ci.js.test.cjs - create mode 100644 deps/npm/tap-snapshots/test/lib/utils/validate-lockfile.js.test.cjs - create mode 100644 deps/npm/test/lib/utils/validate-lockfile.js - -diff --git a/deps/npm/lib/commands/ci.js b/deps/npm/lib/commands/ci.js -index 2c2f8da..376a85d 100644 ---- a/deps/npm/lib/commands/ci.js -+++ b/deps/npm/lib/commands/ci.js -@@ -6,6 +6,7 @@ const runScript = require('@npmcli/run-script') - const fs = require('fs') - const readdir = util.promisify(fs.readdir) - const log = require('../utils/log-shim.js') -+const validateLockfile = require('../utils/validate-lockfile.js') - - const removeNodeModules = async where => { - const rimrafOpts = { glob: false } -@@ -55,6 +56,28 @@ class CI extends ArboristWorkspaceCmd { - }), - removeNodeModules(where), - ]) -+ -+ // retrieves inventory of packages from loaded virtual tree (lock file) -+ const virtualInventory = new Map(arb.virtualTree.inventory) -+ -+ // build ideal tree step needs to come right after retrieving the virtual -+ // inventory since it's going to erase the previous ref to virtualTree -+ await arb.buildIdealTree() -+ -+ // verifies that the packages from the ideal tree will match -+ // the same versions that are present in the virtual tree (lock file) -+ // throws a validation error in case of mismatches -+ const errors = validateLockfile(virtualInventory, arb.idealTree.inventory) -+ if (errors.length) { -+ throw new Error( -+ '`npm ci` can only install packages when your package.json and ' + -+ 'package-lock.json or npm-shrinkwrap.json are in sync. Please ' + -+ 'update your lock file with `npm install` ' + -+ 'before continuing.\n\n' + -+ errors.join('\n') + '\n' -+ ) -+ } -+ - await arb.reify(opts) - - const ignoreScripts = this.npm.config.get('ignore-scripts') -diff --git a/deps/npm/lib/utils/validate-lockfile.js b/deps/npm/lib/utils/validate-lockfile.js -new file mode 100644 -index 0000000..29161ec ---- /dev/null -+++ b/deps/npm/lib/utils/validate-lockfile.js -@@ -0,0 +1,29 @@ -+// compares the inventory of package items in the tree -+// that is about to be installed (idealTree) with the inventory -+// of items stored in the package-lock file (virtualTree) -+// -+// Returns empty array if no errors found or an array populated -+// with an entry for each validation error found. -+function validateLockfile (virtualTree, idealTree) { -+ const errors = [] -+ -+ // loops through the inventory of packages resulted by ideal tree, -+ // for each package compares the versions with the version stored in the -+ // package-lock and adds an error to the list in case of mismatches -+ for (const [key, entry] of idealTree.entries()) { -+ const lock = virtualTree.get(key) -+ -+ if (!lock) { -+ errors.push(`Missing: ${entry.name}@${entry.version} from lock file`) -+ continue -+ } -+ -+ if (entry.version !== lock.version) { -+ errors.push(`Invalid: lock file's ${lock.name}@${lock.version} does ` + -+ `not satisfy ${entry.name}@${entry.version}`) -+ } -+ } -+ return errors -+} -+ -+module.exports = validateLockfile -diff --git a/deps/npm/tap-snapshots/smoke-tests/index.js.test.cjs b/deps/npm/tap-snapshots/smoke-tests/index.js.test.cjs -index c1316e0..5fa3977 100644 ---- a/deps/npm/tap-snapshots/smoke-tests/index.js.test.cjs -+++ b/deps/npm/tap-snapshots/smoke-tests/index.js.test.cjs -@@ -40,6 +40,17 @@ Configuration fields: npm help 7 config - - npm {CWD} - -+` -+ -+exports[`smoke-tests/index.js TAP npm ci > should throw mismatch deps in lock file error 1`] = ` -+npm ERR! \`npm ci\` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with \`npm install\` before continuing. -+npm ERR! -+npm ERR! Invalid: lock file's abbrev@1.0.4 does not satisfy abbrev@1.1.1 -+npm ERR! -+ -+npm ERR! A complete log of this run can be found in: -+ -+ - ` - - exports[`smoke-tests/index.js TAP npm diff > should have expected diff output 1`] = ` -diff --git a/deps/npm/tap-snapshots/test/lib/commands/ci.js.test.cjs b/deps/npm/tap-snapshots/test/lib/commands/ci.js.test.cjs -new file mode 100644 -index 0000000..d6a7471 ---- /dev/null -+++ b/deps/npm/tap-snapshots/test/lib/commands/ci.js.test.cjs -@@ -0,0 +1,13 @@ -+/* IMPORTANT -+ * This snapshot file is auto-generated, but designed for humans. -+ * It should be checked into source control and tracked carefully. -+ * Re-generate by setting TAP_SNAPSHOT=1 and running tests. -+ * Make sure to inspect the output below. Do not ignore changes! -+ */ -+'use strict' -+exports[`test/lib/commands/ci.js TAP should throw error when ideal inventory mismatches virtual > must match snapshot 1`] = ` -+\`npm ci\` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with \`npm install\` before continuing. -+ -+Invalid: lock file's foo@1.0.0 does not satisfy foo@2.0.0 -+ -+` -diff --git a/deps/npm/tap-snapshots/test/lib/utils/validate-lockfile.js.test.cjs b/deps/npm/tap-snapshots/test/lib/utils/validate-lockfile.js.test.cjs -new file mode 100644 -index 0000000..98a5126 ---- /dev/null -+++ b/deps/npm/tap-snapshots/test/lib/utils/validate-lockfile.js.test.cjs -@@ -0,0 +1,35 @@ -+/* IMPORTANT -+ * This snapshot file is auto-generated, but designed for humans. -+ * It should be checked into source control and tracked carefully. -+ * Re-generate by setting TAP_SNAPSHOT=1 and running tests. -+ * Make sure to inspect the output below. Do not ignore changes! -+ */ -+'use strict' -+exports[`test/lib/utils/validate-lockfile.js TAP extra inventory items on idealTree > should have missing entries error 1`] = ` -+Array [ -+ "Missing: baz@3.0.0 from lock file", -+] -+` -+ -+exports[`test/lib/utils/validate-lockfile.js TAP extra inventory items on virtualTree > should have no errors if finding virtualTree extra items 1`] = ` -+Array [] -+` -+ -+exports[`test/lib/utils/validate-lockfile.js TAP identical inventory for both idealTree and virtualTree > should have no errors on identical inventories 1`] = ` -+Array [] -+` -+ -+exports[`test/lib/utils/validate-lockfile.js TAP mismatching versions on inventory > should have errors for each mismatching version 1`] = ` -+Array [ -+ "Invalid: lock file's foo@1.0.0 does not satisfy foo@2.0.0", -+ "Invalid: lock file's bar@2.0.0 does not satisfy bar@3.0.0", -+] -+` -+ -+exports[`test/lib/utils/validate-lockfile.js TAP missing virtualTree inventory > should have errors for each mismatching version 1`] = ` -+Array [ -+ "Missing: foo@1.0.0 from lock file", -+ "Missing: bar@2.0.0 from lock file", -+ "Missing: baz@3.0.0 from lock file", -+] -+` -diff --git a/deps/npm/test/lib/commands/ci.js b/deps/npm/test/lib/commands/ci.js -index 537d078..e077c99 100644 ---- a/deps/npm/test/lib/commands/ci.js -+++ b/deps/npm/test/lib/commands/ci.js -@@ -19,6 +19,17 @@ t.test('should ignore scripts with --ignore-scripts', async t => { - this.reify = () => { - REIFY_CALLED = true - } -+ this.buildIdealTree = () => {} -+ this.virtualTree = { -+ inventory: new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ]), -+ } -+ this.idealTree = { -+ inventory: new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ]), -+ } - }, - }) - -@@ -99,6 +110,17 @@ t.test('should use Arborist and run-script', async t => { - this.reify = () => { - t.ok(true, 'reify is called') - } -+ this.buildIdealTree = () => {} -+ this.virtualTree = { -+ inventory: new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ]), -+ } -+ this.idealTree = { -+ inventory: new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ]), -+ } - }, - rimraf: (path, ...args) => { - actualRimrafs++ -@@ -138,6 +160,17 @@ t.test('should pass flatOptions to Arborist.reify', async t => { - this.reify = async (options) => { - t.equal(options.production, true, 'should pass flatOptions to Arborist.reify') - } -+ this.buildIdealTree = () => {} -+ this.virtualTree = { -+ inventory: new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ]), -+ } -+ this.idealTree = { -+ inventory: new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ]), -+ } - }, - }) - const npm = mockNpm({ -@@ -218,6 +251,17 @@ t.test('should remove existing node_modules before installing', async t => { - const nodeModules = contents.filter((path) => path.startsWith('node_modules')) - t.same(nodeModules, ['node_modules'], 'should only have the node_modules directory') - } -+ this.buildIdealTree = () => {} -+ this.virtualTree = { -+ inventory: new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ]), -+ } -+ this.idealTree = { -+ inventory: new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ]), -+ } - }, - }) - -@@ -231,3 +275,41 @@ t.test('should remove existing node_modules before installing', async t => { - - await ci.exec(null) - }) -+ -+t.test('should throw error when ideal inventory mismatches virtual', async t => { -+ const CI = t.mock('../../../lib/commands/ci.js', { -+ '../../../lib/utils/reify-finish.js': async () => {}, -+ '@npmcli/run-script': ({ event }) => {}, -+ '@npmcli/arborist': function () { -+ this.loadVirtual = async () => {} -+ this.reify = () => {} -+ this.buildIdealTree = () => {} -+ this.virtualTree = { -+ inventory: new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ]), -+ } -+ this.idealTree = { -+ inventory: new Map([ -+ ['foo', { name: 'foo', version: '2.0.0' }], -+ ]), -+ } -+ }, -+ }) -+ -+ const npm = mockNpm({ -+ globalDir: 'path/to/node_modules/', -+ prefix: 'foo', -+ config: { -+ global: false, -+ 'ignore-scripts': true, -+ }, -+ }) -+ const ci = new CI(npm) -+ -+ try { -+ await ci.exec([]) -+ } catch (err) { -+ t.matchSnapshot(err.message) -+ } -+}) -diff --git a/deps/npm/test/lib/utils/validate-lockfile.js b/deps/npm/test/lib/utils/validate-lockfile.js -new file mode 100644 -index 0000000..25939c5 ---- /dev/null -+++ b/deps/npm/test/lib/utils/validate-lockfile.js -@@ -0,0 +1,82 @@ -+const t = require('tap') -+const validateLockfile = require('../../../lib/utils/validate-lockfile.js') -+ -+t.test('identical inventory for both idealTree and virtualTree', async t => { -+ t.matchSnapshot( -+ validateLockfile( -+ new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ['bar', { name: 'bar', version: '2.0.0' }], -+ ]), -+ new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ['bar', { name: 'bar', version: '2.0.0' }], -+ ]) -+ ), -+ 'should have no errors on identical inventories' -+ ) -+}) -+ -+t.test('extra inventory items on idealTree', async t => { -+ t.matchSnapshot( -+ validateLockfile( -+ new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ['bar', { name: 'bar', version: '2.0.0' }], -+ ]), -+ new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ['bar', { name: 'bar', version: '2.0.0' }], -+ ['baz', { name: 'baz', version: '3.0.0' }], -+ ]) -+ ), -+ 'should have missing entries error' -+ ) -+}) -+ -+t.test('extra inventory items on virtualTree', async t => { -+ t.matchSnapshot( -+ validateLockfile( -+ new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ['bar', { name: 'bar', version: '2.0.0' }], -+ ['baz', { name: 'baz', version: '3.0.0' }], -+ ]), -+ new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ['bar', { name: 'bar', version: '2.0.0' }], -+ ]) -+ ), -+ 'should have no errors if finding virtualTree extra items' -+ ) -+}) -+ -+t.test('mismatching versions on inventory', async t => { -+ t.matchSnapshot( -+ validateLockfile( -+ new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ['bar', { name: 'bar', version: '2.0.0' }], -+ ]), -+ new Map([ -+ ['foo', { name: 'foo', version: '2.0.0' }], -+ ['bar', { name: 'bar', version: '3.0.0' }], -+ ]) -+ ), -+ 'should have errors for each mismatching version' -+ ) -+}) -+ -+t.test('missing virtualTree inventory', async t => { -+ t.matchSnapshot( -+ validateLockfile( -+ new Map([]), -+ new Map([ -+ ['foo', { name: 'foo', version: '1.0.0' }], -+ ['bar', { name: 'bar', version: '2.0.0' }], -+ ['baz', { name: 'baz', version: '3.0.0' }], -+ ]) -+ ), -+ 'should have errors for each mismatching version' -+ ) -+}) --- -2.35.1 - diff --git a/0003-yarn-not-installable-on-aarch64.patch b/0003-yarn-not-installable-on-aarch64.patch deleted file mode 100644 index 3bb652a..0000000 --- a/0003-yarn-not-installable-on-aarch64.patch +++ /dev/null @@ -1,92 +0,0 @@ - From d4d05ceb418c525b0d07e76b81b8694ac2f5b309 Mon Sep 17 00:00:00 2001 -From: Daniel Bevenius -Date: Wed, 16 Sep 2020 06:12:54 +0200 -Subject: [PATCH] [deps] V8: cherry-pick 71736859756b2bd0444bdb0a87a - -Original commit message: - - [heap] Add large_object_threshold to AllocateRaw - - This commit adds a check in Heap::AllocateRaw when setting the - large_object variable, when the AllocationType is of type kCode, to - take into account the size of the CodeSpace's area size. - - The motivation for this change is that without this check it is - possible that size_in_bytes is less than 128, and hence not considered - a large object, but it might be larger than the available space - in code_space->AreaSize(), which will cause the object to be created - in the CodeLargeObjectSpace. This will later cause a segmentation fault - when calling the following chain of functions: - - if (!large_object) { - MemoryChunk::FromHeapObject(heap_object) - ->GetCodeObjectRegistry() - ->RegisterNewlyAllocatedCodeObject(heap_object.address()); - } - - We (Red Hat) ran into this issue when running Node.js v12.16.1 in - combination with yarn on aarch64 (this was the only architecture that - this happed on). - - Bug: v8:10808 - Change-Id: I0c396b0eb64bc4cc91d9a3be521254f3130eac7b - Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390665 - Commit-Queue: Ulan Degenbaev - Reviewed-by: Ulan Degenbaev - Cr-Commit-Position: refs/heads/master@{#69876} - -Refs: https://github.com/v8/v8/commit/71736859756b2bd0444bdb0a87a61a0b090cbba2 ---- - deps/v8/src/heap/heap-inl.h | 13 +++-- - deps/v8/src/heap/heap.h | 6 ++- - 4 files changed, 83 insertions(+), 6 deletions(-) - -diff --git a/deps/v8/src/heap/heap-inl.h b/deps/v8/src/heap/heap-inl.h -index 39f5ec6c66e..b56ebc03d58 100644 ---- a/deps/v8/src/heap/heap-inl.h -+++ b/deps/v8/src/heap/heap-inl.h -@@ -192,7 +192,12 @@ AllocationResult Heap::AllocateRaw(int size_in_bytes, AllocationType type, - IncrementObjectCounters(); - #endif - -- bool large_object = size_in_bytes > kMaxRegularHeapObjectSize; -+ size_t large_object_threshold = -+ AllocationType::kCode == type -+ ? std::min(kMaxRegularHeapObjectSize, code_space()->AreaSize()) -+ : kMaxRegularHeapObjectSize; -+ bool large_object = -+ static_cast(size_in_bytes) > large_object_threshold; - - HeapObject object; - AllocationResult allocation; -@@ -225,10 +230,10 @@ AllocationResult Heap::AllocateRaw(int size_in_bytes, AllocationType type, - allocation = old_space_->AllocateRaw(size_in_bytes, alignment, origin); - } - } else if (AllocationType::kCode == type) { -- if (size_in_bytes <= code_space()->AreaSize() && !large_object) { -- allocation = code_space_->AllocateRawUnaligned(size_in_bytes); -- } else { -+ if (large_object) { - allocation = code_lo_space_->AllocateRaw(size_in_bytes); -+ } else { -+ allocation = code_space_->AllocateRawUnaligned(size_in_bytes); - } - } else if (AllocationType::kMap == type) { - allocation = map_space_->AllocateRawUnaligned(size_in_bytes); -diff --git a/deps/v8/src/heap/heap.h b/deps/v8/src/heap/heap.h -index 888d174c02f..0165fa6970f 100644 ---- a/deps/v8/src/heap/heap.h -+++ b/deps/v8/src/heap/heap.h -@@ -1404,8 +1404,10 @@ class Heap { - // Heap object allocation tracking. ========================================== - // =========================================================================== - -- void AddHeapObjectAllocationTracker(HeapObjectAllocationTracker* tracker); -- void RemoveHeapObjectAllocationTracker(HeapObjectAllocationTracker* tracker); -+ V8_EXPORT_PRIVATE void AddHeapObjectAllocationTracker( -+ HeapObjectAllocationTracker* tracker); -+ V8_EXPORT_PRIVATE void RemoveHeapObjectAllocationTracker( -+ HeapObjectAllocationTracker* tracker); - bool has_heap_object_allocation_tracker() const { - return !allocation_trackers_.empty(); - } diff --git a/nodejs.spec b/nodejs.spec index ed02cca..e8cea9d 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -30,7 +30,7 @@ # This is used by both the nodejs package and the npm subpackage that # has a separate version - the name is special so that rpmdev-bumpspec # will bump this rather than adding .1 to the end. -%global baserelease 5 +%global baserelease 1 %{?!_pkgdocdir:%global _pkgdocdir %{_docdir}/%{name}-%{version}} @@ -40,12 +40,12 @@ # feature releases that are only supported for nine months, which is shorter # than a Fedora release lifecycle. %global nodejs_epoch 1 -%global nodejs_major 16 -%global nodejs_minor 14 +%global nodejs_major 18 +%global nodejs_minor 2 %global nodejs_patch 0 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} # nodejs_soversion - from NODE_MODULE_VERSION in src/node_version.h -%global nodejs_soversion 93 +%global nodejs_soversion 108 %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release %{baserelease} @@ -55,10 +55,10 @@ # v8 - from deps/v8/include/v8-version.h # Epoch is set to ensure clean upgrades from the old v8 package %global v8_epoch 2 -%global v8_major 9 -%global v8_minor 4 -%global v8_build 146 -%global v8_patch 24 +%global v8_major 10 +%global v8_minor 1 +%global v8_build 124 +%global v8_patch 8 # 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} @@ -74,7 +74,7 @@ # llhttp - from deps/llhttp/include/llhttp.h %global llhttp_major 6 %global llhttp_minor 0 -%global llhttp_patch 4 +%global llhttp_patch 6 %global llhttp_version %{llhttp_major}.%{llhttp_minor}.%{llhttp_patch} # libuv - from deps/uv/include/uv/version.h @@ -85,8 +85,8 @@ # nghttp2 - from deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h %global nghttp2_major 1 -%global nghttp2_minor 45 -%global nghttp2_patch 1 +%global nghttp2_minor 47 +%global nghttp2_patch 0 %global nghttp2_version %{nghttp2_major}.%{nghttp2_minor}.%{nghttp2_patch} # nghttp3 - from deps/ngtcp2/nghttp3/lib/includes/nghttp3/version.h @@ -102,7 +102,7 @@ %global ngtcp2_version %{ngtcp2_major}.%{ngtcp2_minor}.%{ngtcp2_patch} # ICU - from tools/icu/current_ver.dep -%global icu_major 70 +%global icu_major 71 %global icu_minor 1 %global icu_version %{icu_major}.%{icu_minor} @@ -134,8 +134,8 @@ # npm - from deps/npm/package.json %global npm_epoch 1 %global npm_major 8 -%global npm_minor 3 -%global npm_patch 1 +%global npm_minor 9 +%global npm_patch 0 %global npm_version %{npm_major}.%{npm_minor}.%{npm_patch} # uvwasi - from deps/uvwasi/include/uvwasi.h @@ -187,9 +187,6 @@ Source7: nodejs_native.attr # Disable running gyp on bundled deps we don't use Patch1: 0001-Disable-running-gyp-on-shared-deps.patch -# CVE-2021-43616 -Patch2: 0001-fix-ci-lock-file-validation.patch - BuildRequires: make BuildRequires: python3-devel BuildRequires: zlib-devel @@ -406,7 +403,7 @@ extra_cflags=( export CFLAGS="%{optflags} ${extra_cflags[*]}" CXXFLAGS="%{optflags} ${extra_cflags[*]}" export LDFLAGS="%{build_ldflags}" -%{__python3} configure.py --prefix=%{_prefix} \ +%{__python3} configure.py --prefix=%{_prefix} --verbose \ --shared-openssl \ --shared-zlib \ --shared-brotli \ @@ -695,6 +692,9 @@ end %changelog +* Tue May 31 2022 Jan Staněk - 1:18.2.0-1 +- Rebase to version 18.2.0 + * Mon Apr 25 2022 Jan Staněk - 1:16.14.0-5 - Unify configure calls into single command - Refactor bootstrap-related parts diff --git a/sources b/sources index ac7615d..6b5cd21 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (node-v16.14.0-stripped.tar.gz) = 5227f488e703b458ab299fce87821810f4b6f08192d7985c6643b5d6ab9457619b29847ff17a5cc31ffa3bdf48cc8baa4c88f2641327ba1b1f58cfc3c7336031 -SHA512 (icu4c-70_1-src.tgz) = 0b26ae7207155cb65a8fdb25f7b2fa4431e74b12bccbed0884a17feaae3c96833d12451064dd152197fd6ea5fd3adfd95594284a463e66c82e0d860f645880c9 +SHA512 (node-v18.2.0-stripped.tar.gz) = c51881ae16d950a8a9f3e123b8901937b0152e81128a51645cdc07408a076cc4212883a408b3e88de91bfa30d6d2dc327a1f7b842e4b78f62defb13d78d4d08b +SHA512 (icu4c-71_1-src.tgz) = 1fd2a20aef48369d1f06e2bb74584877b8ad0eb529320b976264ec2db87420bae242715795f372dbc513ea80047bc49077a064e78205cd5e8b33d746fd2a2912