Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nodejs20 for openSUSE:Factory checked in at 2023-05-12 20:38:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nodejs20 (Old) and /work/SRC/openSUSE:Factory/.nodejs20.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nodejs20" Fri May 12 20:38:43 2023 rev:2 rq:1086728 version:20.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/nodejs20/nodejs20.changes 2023-05-10 16:17:57.458773520 +0200 +++ /work/SRC/openSUSE:Factory/.nodejs20.new.1533/nodejs20.changes 2023-05-12 20:41:24.407225728 +0200 @@ -1,0 +2,11 @@ +Fri May 12 07:52:30 UTC 2023 - Adam Majer <adam.ma...@suse.de> + +- z13.patch: fixes illegal instruction error on z13 and older s390 + +------------------------------------------------------------------- +Thu May 10 13:09:58 UTC 2023 - Otto Hollmann <otto.hollm...@suse.com> + +- Adapt tests for OpenSSL 3.1 [bsc#1209430] + * Add openssl3_1-adapt_tests.patch + +------------------------------------------------------------------- New: ---- openssl3_1-adapt_tests.patch z13.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nodejs20.spec ++++++ --- /var/tmp/diff_new_pack.LrrX3j/_old 2023-05-12 20:41:25.151229817 +0200 +++ /var/tmp/diff_new_pack.LrrX3j/_new 2023-05-12 20:41:25.151229817 +0200 @@ -172,6 +172,8 @@ Patch305: qemu_timeouts_arches.patch Patch308: node-gyp-config.patch Patch309: gcc13.patch +Patch310: openssl3_1-adapt_tests.patch +Patch311: z13.patch BuildRequires: pkg-config BuildRequires: fdupes @@ -704,6 +706,8 @@ %patch305 -p1 %patch309 -p1 +%patch310 -p1 +%patch311 -p1 %if %{node_version_number} == 12 # minimist security update - patch50 ++++++ openssl3_1-adapt_tests.patch ++++++ commit 33ee7a0221b1fad07639c3c8948ad322238a52ab Author: Otto Hollmann <otto.hollm...@suse.com> Date: Wed May 10 11:07:36 2023 +0200 test: Adapt tests for OpenSSL 3.1 diff --git a/test/common/index.js b/test/common/index.js index f3caa9d1d4..a3e317d24b 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -57,7 +57,10 @@ const hasCrypto = Boolean(process.versions.openssl) && !process.env.NODE_SKIP_CRYPTO; const hasOpenSSL3 = hasCrypto && - require('crypto').constants.OPENSSL_VERSION_NUMBER >= 805306368; + require('crypto').constants.OPENSSL_VERSION_NUMBER >= 0x30000000; + +const hasOpenSSL31 = hasCrypto && + require('crypto').constants.OPENSSL_VERSION_NUMBER >= 0x30100000; const hasQuic = hasCrypto && !!process.config.variables.openssl_quic; @@ -913,6 +916,7 @@ const common = { hasIntl, hasCrypto, hasOpenSSL3, + hasOpenSSL31, hasQuic, hasMultiLocalhost, invalidArgTypeHelper, diff --git a/test/parallel/test-https-agent-session-eviction.js b/test/parallel/test-https-agent-session-eviction.js index 20cdb870a0..da56007105 100644 --- a/test/parallel/test-https-agent-session-eviction.js +++ b/test/parallel/test-https-agent-session-eviction.js @@ -56,6 +56,7 @@ function faultyServer(port) { function second(server, session) { const req = https.request({ port: server.address().port, + ciphers: (common.hasOpenSSL31 ? 'DEFAULT:@SECLEVEL=0' : 'DEFAULT'), rejectUnauthorized: false }, function(res) { res.resume(); diff --git a/test/parallel/test-tls-alert.js b/test/parallel/test-tls-alert.js index 31b07104c2..9e92ccca49 100644 --- a/test/parallel/test-tls-alert.js +++ b/test/parallel/test-tls-alert.js @@ -41,7 +41,7 @@ const server = tls.Server({ key: loadPEM('agent2-key'), cert: loadPEM('agent2-cert') }, null).listen(0, common.mustCall(() => { - const args = ['s_client', '-quiet', '-tls1_1', + const args = ['s_client', '-quiet', '-tls1_1', '-cipher', (common.hasOpenSSL31 ? 'DEFAULT:@SECLEVEL=0' : 'DEFAULT'), '-connect', `127.0.0.1:${server.address().port}`]; execFile(common.opensslCli, args, common.mustCall((err, _, stderr) => { diff --git a/test/parallel/test-tls-getprotocol.js b/test/parallel/test-tls-getprotocol.js index d45287d671..ee33200916 100644 --- a/test/parallel/test-tls-getprotocol.js +++ b/test/parallel/test-tls-getprotocol.js @@ -11,8 +11,8 @@ const tls = require('tls'); const fixtures = require('../common/fixtures'); const clientConfigs = [ - { secureProtocol: 'TLSv1_method', version: 'TLSv1' }, - { secureProtocol: 'TLSv1_1_method', version: 'TLSv1.1' }, + { secureProtocol: 'TLSv1_method', version: 'TLSv1', ciphers: (common.hasOpenSSL31 ? 'DEFAULT:@SECLEVEL=0' : 'DEFAULT') }, + { secureProtocol: 'TLSv1_1_method', version: 'TLSv1.1', ciphers: (common.hasOpenSSL31 ? 'DEFAULT:@SECLEVEL=0' : 'DEFAULT') }, { secureProtocol: 'TLSv1_2_method', version: 'TLSv1.2' }, ]; @@ -30,6 +30,7 @@ const server = tls.createServer(serverConfig, common.mustCall(clientConfigs.leng tls.connect({ host: common.localhostIPv4, port: server.address().port, + ciphers: v.ciphers, rejectUnauthorized: false, secureProtocol: v.secureProtocol }, common.mustCall(function() { diff --git a/test/parallel/test-tls-min-max-version.js b/test/parallel/test-tls-min-max-version.js index 5cea41ca7e..ab351558a4 100644 --- a/test/parallel/test-tls-min-max-version.js +++ b/test/parallel/test-tls-min-max-version.js @@ -22,6 +22,9 @@ function test(cmin, cmax, cprot, smin, smax, sprot, proto, cerr, serr) { if (serr !== 'ERR_SSL_UNSUPPORTED_PROTOCOL') ciphers = 'ALL@SECLEVEL=0'; } + if (common.hasOpenSSL31 && cerr === 'ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION') { + ciphers = 'DEFAULT@SECLEVEL=0'; + } // Report where test was called from. Strip leading garbage from // at Object.<anonymous> (file:line) // from the stack location, we only want the file:line part. diff --git a/test/parallel/test-tls-session-cache.js b/test/parallel/test-tls-session-cache.js index c4bebff2e3..e4ecb53282 100644 --- a/test/parallel/test-tls-session-cache.js +++ b/test/parallel/test-tls-session-cache.js @@ -100,6 +100,7 @@ function doTest(testOptions, callback) { const args = [ 's_client', '-tls1', + '-cipher', (common.hasOpenSSL31 ? 'DEFAULT:@SECLEVEL=0' : 'DEFAULT'), '-connect', `localhost:${this.address().port}`, '-servername', 'ohgod', '-key', fixtures.path('keys/rsa_private.pem'), ++++++ z13.patch ++++++ >From 540a17bcd30abc3f14d1e1b0ef81a23fde0ca18d Mon Sep 17 00:00:00 2001 From: Milad Fa <mfara...@redhat.com> Date: Wed, 10 May 2023 19:40:36 +0000 Subject: [PATCH] Fix usage of MulHighS64 on <= z13 Change-Id: If7ac06eef57cc3db059c2640b77c80de3b16fced https://chromium-review.googlesource.com/c/v8/v8/+/4521297 --- Index: node-v20.1.0/deps/v8/src/compiler/backend/s390/code-generator-s390.cc =================================================================== --- node-v20.1.0.orig/deps/v8/src/compiler/backend/s390/code-generator-s390.cc +++ node-v20.1.0/deps/v8/src/compiler/backend/s390/code-generator-s390.cc @@ -1699,15 +1699,18 @@ CodeGenerator::CodeGenResult CodeGenerat case kS390_Mul64WithOverflow: { Register dst = i.OutputRegister(), src1 = i.InputRegister(0), src2 = i.InputRegister(1); - DCHECK(!AreAliased(dst, src1, src2)); + CHECK(!AreAliased(dst, src1, src2)); if (CpuFeatures::IsSupported(MISC_INSTR_EXT2)) { __ msgrkc(dst, src1, src2); } else { - __ mgrk(r0, src1, src2); // r0 = high 64-bits, r1 = low 64-bits. - __ lgr(dst, r1); - __ ShiftRightS64(r1, r1, Operand(63)); + // Mul high. + __ MulHighS64(r1, src1, src2); + // Mul low. + __ mov(dst, src1); + __ MulS64(dst, src2); // Test whether {high} is a sign-extension of {result}. - __ CmpU64(r0, r1); + __ ShiftRightS64(r0, dst, Operand(63)); + __ CmpU64(r1, r0); } break; } @@ -1725,20 +1728,7 @@ CodeGenerator::CodeGenResult CodeGenerat ASSEMBLE_BIN_OP(RRRInstr(MulHighU64), nullInstr, nullInstr); break; case kS390_MulHighS64: - if (CpuFeatures::IsSupported(MISC_INSTR_EXT2)) { - ASSEMBLE_BIN_OP(RRRInstr(MulHighS64), nullInstr, nullInstr); - } else { - __ Push(r2, r3, i.InputRegister(0), i.InputRegister(1)); - __ Pop(r2, r3); - { - FrameScope scope(masm(), StackFrame::INTERNAL); - __ PrepareCallCFunction(2, 0, kScratchReg); - __ CallCFunction(ExternalReference::int64_mul_high_function(), 2, 0); - } - __ mov(kScratchReg, r2); - __ Pop(r2, r3); - __ mov(i.OutputRegister(), kScratchReg); - } + ASSEMBLE_BIN_OP(RRRInstr(MulHighS64), nullInstr, nullInstr); break; case kS390_MulFloat: ASSEMBLE_BIN_OP(DDInstr(meebr), DMTInstr(MulFloat32), nullInstr); Index: node-v20.1.0/deps/v8/src/codegen/s390/macro-assembler-s390.cc =================================================================== --- node-v20.1.0.orig/deps/v8/src/codegen/s390/macro-assembler-s390.cc +++ node-v20.1.0/deps/v8/src/codegen/s390/macro-assembler-s390.cc @@ -2906,8 +2906,23 @@ void MacroAssembler::MulS64(Register dst } void MacroAssembler::MulHighS64(Register dst, Register src1, Register src2) { - mgrk(r0, src1, src2); - lgr(dst, r0); + if (CpuFeatures::IsSupported(MISC_INSTR_EXT2)) { + mgrk(r0, src1, src2); + lgr(dst, r0); + } else { + SaveFPRegsMode fp_mode = SaveFPRegsMode::kSave; + PushCallerSaved(fp_mode, ip); + Push(src1, src2); + Pop(r2, r3); + { + FrameScope scope(this, StackFrame::INTERNAL); + PrepareCallCFunction(2, 0, r0); + CallCFunction(ExternalReference::int64_mul_high_function(), 2, 0); + } + mov(r0, r2); + PopCallerSaved(fp_mode, ip); + mov(dst, r0); + } } void MacroAssembler::MulHighS64(Register dst, Register src1,