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 <brunopit...@hotmail.com>
+
+- 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 <brunopit...@hotmail.com>
+
+- 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 <bclay...@google.com>
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 <bclay...@google.com>
Commit-Queue: Ben Clayton <bclay...@google.com>
Reviewed-by: Geoff Lang <geoffl...@google.com>
Reviewed-by: Shahbaz Youssefi <syouss...@google.com>
Presubmit-Ready: Ben Clayton <bclay...@google.com>
Kokoro-Result: kokoro <noreply+kok...@google.com>
---
 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);
 }
 

Reply via email to