Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package nodejs-electron for openSUSE:Factory
checked in at 2023-10-02 20:06:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nodejs-electron (Old)
and /work/SRC/openSUSE:Factory/.nodejs-electron.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nodejs-electron"
Mon Oct 2 20:06:36 2023 rev:80 rq:1114636 version:25.8.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/nodejs-electron/nodejs-electron.changes
2023-10-01 21:23:07.674429202 +0200
+++
/work/SRC/openSUSE:Factory/.nodejs-electron.new.28202/nodejs-electron.changes
2023-10-02 20:09:06.848517639 +0200
@@ -1,0 +2,12 @@
+Sun Oct 1 16:22:35 UTC 2023 - Bruno Pitrus <[email protected]>
+
+- Add backported swiftshader-llvm17.patch to fix ftbfs on arm64
+- Drop 647d3d2.patch no longer relevant
+
+-------------------------------------------------------------------
+Sat Sep 30 16:09:25 UTC 2023 - Bruno Pitrus <[email protected]>
+
+- Disable chromium-ffmpeg-first-dts.patch on openSUSE as it breaks playback of
some videos and is no longer needed.
+ * In its place add chromium-94-ffmpeg-roll.patch for Leap only.
+
+-------------------------------------------------------------------
Old:
----
647d3d2.patch
New:
----
chromium-94-ffmpeg-roll.patch
swiftshader-llvm17.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nodejs-electron.spec ++++++
--- /var/tmp/diff_new_pack.p1Ia5c/_old 2023-10-02 20:09:16.076849516 +0200
+++ /var/tmp/diff_new_pack.p1Ia5c/_new 2023-10-02 20:09:16.076849516 +0200
@@ -288,7 +288,15 @@
# PATCHES to fix interaction with third-party software
Patch2004: chromium-gcc11.patch
Patch2010: chromium-93-ffmpeg-4.4.patch
+
+#Since ffmpeg 5, there is no longer first_dts member in AVFormat. Chromium
upstream (and Tumbleweed) patches ffmpeg to add a av_stream_get_first_dts
function.
+#This workaround is only used on Fedora. It is known to break some H264 videos
produced by Apple® iPhone⢠camera. Further testing is needed.
+#Upstream ref:
https://chromium-review.googlesource.com/c/chromium/src/+/3525614
Patch2011: chromium-ffmpeg-first-dts.patch
+#This patch is only for Leap which uses ffmpeg 4. It makes chromium use the
old api and does not work with ffmpeg 5.
+Patch2012: chromium-94-ffmpeg-roll.patch
+#Tumbleweed needs neither of these.
+
# Fixe builds with older clang versions that do not allow
# nomerge attributes on declaration. Otherwise, the following error
# is produced:
@@ -327,8 +335,6 @@
Patch3096: remove-date-reproducible-builds.patch
Patch3106: vulkan_memory_allocator-vk_mem_alloc-missing-snprintf.patch
Patch3121: services-network-optional-explicit-constructor.patch
-# PATCH-FIX-UPSTREAM -
https://swiftshader-review.googlesource.com/c/SwiftShader/+/70328
-Patch3201: 647d3d2.patch
Patch3202: mojom-python3.12-imp.patch
#
https://src.fedoraproject.org/rpms/qt6-qtwebengine/blob/rawhide/f/Partial-migration-from-imp-to-importlib.patch
Patch3203: Partial-migration-from-imp-to-importlib.patch
@@ -341,6 +347,8 @@
Patch3210: electron_api_app-GetPathConstant-non-constexpr.patch
# https://github.com/electron/electron/pull/40032
Patch3211: build-without-extensions.patch
+Patch3212: swiftshader-llvm17.patch
+
%if %{with clang}
BuildRequires: clang
@@ -397,7 +405,7 @@
BuildRequires: lld
%endif
%if %{with swiftshader} && %{without subzero}
-BuildRequires: llvm-devel
+BuildRequires: llvm-devel >= 16
%endif
BuildRequires: memory-constraints
%if %{with mold}
@@ -665,10 +673,16 @@
patch -R -p1 < %PATCH1054
%endif
-%if %{without ffmpeg_5}
+%if %{with ffmpeg_5}
+patch -R -p1 < %PATCH2012
+%else
patch -R -p1 < %SOURCE400
%endif
+%if 0%{?suse_version}
+patch -R -p1 < %PATCH2011
+%endif
+
%if %{without harfbuzz_5}
patch -R -p1 < %SOURCE415
patch -R -p1 < %SOURCE416
++++++ chromium-94-ffmpeg-roll.patch ++++++
diff --git a/build/linux/unbundle/ffmpeg.gn b/build/linux/unbundle/ffmpeg.gn
index 16e20744706..6a079b32221 100644
--- a/build/linux/unbundle/ffmpeg.gn
+++ b/build/linux/unbundle/ffmpeg.gn
@@ -12,6 +12,7 @@ pkg_config("system_ffmpeg") {
"libavformat",
"libavutil",
]
+ defines = [ "av_stream_get_first_dts(stream)=stream->first_dts" ]
}
buildflag_header("ffmpeg_features") {
++++++ swiftshader-llvm17.patch ++++++
>From 9fbca2df22a8e71e3116a576e26cf9b3d7915c08 Mon Sep 17 00:00:00 2001
From: Ben Clayton <[email protected]>
Date: Mon, 24 Jul 2023 18:15:26 +0100
Subject: [PATCH] LLVMReactor: Support LLVM 17+
Change-Id: I9263c16450f0cd68ce472f8735cefc9de0dc0d53
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/72128
Tested-by: Ben Clayton <[email protected]>
Commit-Queue: Ben Clayton <[email protected]>
Reviewed-by: Geoff Lang <[email protected]>
Reviewed-by: Shahbaz Youssefi <[email protected]>
Presubmit-Ready: Ben Clayton <[email protected]>
Kokoro-Result: kokoro <[email protected]>
---
src/Reactor/LLVMJIT.cpp | 33 +++++++++++++++++++------
src/Reactor/LLVMReactor.cpp | 49 ++++++++++++++-----------------------
2 files changed, 44 insertions(+), 38 deletions(-)
diff --git a/src/Reactor/LLVMJIT.cpp b/src/Reactor/LLVMJIT.cpp
index 07dc65440c..0f61e07a11 100644
--- a/third_party/swiftshader/src/Reactor/LLVMJIT.cpp
+++ b/third_party/swiftshader/src/Reactor/LLVMJIT.cpp
@@ -258,8 +258,12 @@ JITGlobals *JITGlobals::get()
#endif
// Reactor's MemorySanitizer support depends on intercepting
__emutls_get_address calls.
+#if LLVM_VERSION_MAJOR < 17
ASSERT(!__has_feature(memory_sanitizer) ||
(jitTargetMachineBuilder.getOptions().ExplicitEmulatedTLS &&
jitTargetMachineBuilder.getOptions().EmulatedTLS));
+#else
+ ASSERT(!__has_feature(memory_sanitizer) ||
jitTargetMachineBuilder.getOptions().EmulatedTLS);
+#endif
auto dataLayout =
jitTargetMachineBuilder.getDefaultDataLayoutForTarget();
ASSERT_MSG(dataLayout,
"JITTargetMachineBuilder::getDefaultDataLayoutForTarget() failed");
@@ -660,13 +664,25 @@ class ExternalSymbolGenerator : public
llvm::orc::JITDylib::DefinitionGenerator
auto unmangled = *name;
#endif
+#if LLVM_VERSION_MAJOR < 17
+ auto toSymbol = [](void *ptr) {
+ return llvm::JITEvaluatedSymbol(
+
static_cast<llvm::JITTargetAddress>(reinterpret_cast<uintptr_t>(ptr)),
+ llvm::JITSymbolFlags::Exported);
+ };
+#else
+ auto toSymbol = [](void *ptr) {
+ return llvm::orc::ExecutorSymbolDef{
+
llvm::orc::ExecutorAddr(reinterpret_cast<uintptr_t>(ptr)),
+ llvm::JITSymbolFlags::Exported,
+ };
+ };
+#endif
+
auto it = resolver.functions.find(unmangled.str());
if(it != resolver.functions.end())
{
- symbols[name] = llvm::JITEvaluatedSymbol(
-
static_cast<llvm::JITTargetAddress>(reinterpret_cast<uintptr_t>(it->second)),
- llvm::JITSymbolFlags::Exported);
-
+ symbols[name] = toSymbol(it->second);
continue;
}
@@ -681,10 +697,7 @@ class ExternalSymbolGenerator : public
llvm::orc::JITDylib::DefinitionGenerator
if(address)
{
- symbols[name] = llvm::JITEvaluatedSymbol(
-
static_cast<llvm::JITTargetAddress>(reinterpret_cast<uintptr_t>(address)),
- llvm::JITSymbolFlags::Exported);
-
+ symbols[name] = toSymbol(address);
continue;
}
#endif
@@ -866,7 +879,11 @@ class JITRoutine : public rr::Routine
}
else // Successful compilation
{
+#if LLVM_VERSION_MAJOR < 17
addresses[i] = reinterpret_cast<void
*>(static_cast<intptr_t>(symbol->getAddress()));
+#else
+ addresses[i] = reinterpret_cast<void
*>(static_cast<intptr_t>(symbol->getAddress().getValue()));
+#endif
}
}
diff --git a/src/Reactor/LLVMReactor.cpp b/src/Reactor/LLVMReactor.cpp
index fde64762df..aa4aaaa49a 100644
--- a/third_party/swiftshader/src/Reactor/LLVMReactor.cpp
+++ b/third_party/swiftshader/src/Reactor/LLVMReactor.cpp
@@ -68,6 +68,15 @@ llvm::llvm_shutdown_obj llvmShutdownObj;
// for destructing objects at exit. See crbug.com/1074222
thread_local rr::JITBuilder *jit = nullptr;
+auto getNumElements(llvm::FixedVectorType *vec)
+{
+#if LLVM_VERSION_MAJOR >= 11
+ return vec->getElementCount();
+#else
+ return vec->getNumElements();
+#endif
+}
+
llvm::Value *lowerPAVG(llvm::Value *x, llvm::Value *y)
{
llvm::VectorType *ty = llvm::cast<llvm::VectorType>(x->getType());
@@ -142,13 +151,8 @@ llvm::Value *lowerPCMP(llvm::ICmpInst::Predicate pred,
llvm::Value *x,
llvm::Constant *one;
if(llvm::FixedVectorType *vectorTy =
llvm::dyn_cast<llvm::FixedVectorType>(ty))
{
- one = llvm::ConstantVector::getSplat(
-#if LLVM_VERSION_MAJOR >= 11
- vectorTy->getElementCount(),
-#else
- vectorTy->getNumElements(),
-#endif
- llvm::ConstantFP::get(vectorTy->getElementType(), 1));
+ one = llvm::ConstantVector::getSplat(getNumElements(vectorTy),
+
llvm::ConstantFP::get(vectorTy->getElementType(), 1));
}
else
{
@@ -165,39 +169,24 @@ llvm::Value *lowerPCMP(llvm::ICmpInst::Predicate pred,
llvm::Value *x,
[[maybe_unused]] llvm::Value *lowerVectorShl(llvm::Value *x, uint64_t scalarY)
{
llvm::FixedVectorType *ty =
llvm::cast<llvm::FixedVectorType>(x->getType());
- llvm::Value *y = llvm::ConstantVector::getSplat(
-#if LLVM_VERSION_MAJOR >= 11
- ty->getElementCount(),
-#else
- ty->getNumElements(),
-#endif
- llvm::ConstantInt::get(ty->getElementType(), scalarY));
+ llvm::Value *y = llvm::ConstantVector::getSplat(getNumElements(ty),
+
llvm::ConstantInt::get(ty->getElementType(), scalarY));
return jit->builder->CreateShl(x, y);
}
[[maybe_unused]] llvm::Value *lowerVectorAShr(llvm::Value *x, uint64_t scalarY)
{
llvm::FixedVectorType *ty =
llvm::cast<llvm::FixedVectorType>(x->getType());
- llvm::Value *y = llvm::ConstantVector::getSplat(
-#if LLVM_VERSION_MAJOR >= 11
- ty->getElementCount(),
-#else
- ty->getNumElements(),
-#endif
- llvm::ConstantInt::get(ty->getElementType(), scalarY));
+ llvm::Value *y = llvm::ConstantVector::getSplat(getNumElements(ty),
+
llvm::ConstantInt::get(ty->getElementType(), scalarY));
return jit->builder->CreateAShr(x, y);
}
[[maybe_unused]] llvm::Value *lowerVectorLShr(llvm::Value *x, uint64_t scalarY)
{
llvm::FixedVectorType *ty =
llvm::cast<llvm::FixedVectorType>(x->getType());
- llvm::Value *y = llvm::ConstantVector::getSplat(
-#if LLVM_VERSION_MAJOR >= 11
- ty->getElementCount(),
-#else
- ty->getNumElements(),
-#endif
- llvm::ConstantInt::get(ty->getElementType(), scalarY));
+ llvm::Value *y = llvm::ConstantVector::getSplat(getNumElements(ty),
+
llvm::ConstantInt::get(ty->getElementType(), scalarY));
return jit->builder->CreateLShr(x, y);
}