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 2025-05-12 16:47:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nodejs-electron (Old)
 and      /work/SRC/openSUSE:Factory/.nodejs-electron.new.30101 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nodejs-electron"

Mon May 12 16:47:30 2025 rev:157 rq:1276328 version:35.3.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/nodejs-electron/nodejs-electron.changes  
2025-05-02 15:00:40.005145335 +0200
+++ 
/work/SRC/openSUSE:Factory/.nodejs-electron.new.30101/nodejs-electron.changes   
    2025-05-12 16:50:49.089552388 +0200
@@ -1,0 +2,16 @@
+Fri May  9 15:31:47 UTC 2025 - Bruno Pitrus <brunopit...@hotmail.com>
+
+- Fix reproducible builds (bsc#1041090)
+  * html_permission_element_strings_map-reproducible.patch
+
+-------------------------------------------------------------------
+Thu May  8 21:03:32 UTC 2025 - Bruno Pitrus <brunopit...@hotmail.com>
+
+- New upstream release 35.3.0
+  * Fixed xdg portal version detection for file dialogs
+- Add file_dialog-missing-uint32_t.patch to fix build error
+- Add backported CheckPortalAvailabilityOnBusThread-UaF-crash.patch to fix 
gh#electron/electron#47007
+- Enable debuginfo in Torque code (torque-debuginfo.patch)
+- Fix headers installed in wrong location causing node-gyp unable to find 
config.gypi
+
+-------------------------------------------------------------------

Old:
----
  electron-35.2.2.tar.zst

New:
----
  CheckPortalAvailabilityOnBusThread-UaF-crash.patch
  electron-35.3.0.tar.zst
  file_dialog-missing-uint32_t.patch
  html_permission_element_strings_map-reproducible.patch
  torque-debuginfo.patch

BETA DEBUG BEGIN:
  New:- Add file_dialog-missing-uint32_t.patch to fix build error
- Add backported CheckPortalAvailabilityOnBusThread-UaF-crash.patch to fix 
gh#electron/electron#47007
- Enable debuginfo in Torque code (torque-debuginfo.patch)
  New:  * Fixed xdg portal version detection for file dialogs
- Add file_dialog-missing-uint32_t.patch to fix build error
- Add backported CheckPortalAvailabilityOnBusThread-UaF-crash.patch to fix 
gh#electron/electron#47007
  New:- Fix reproducible builds (bsc#1041090)
  * html_permission_element_strings_map-reproducible.patch
  New:- Add backported CheckPortalAvailabilityOnBusThread-UaF-crash.patch to 
fix gh#electron/electron#47007
- Enable debuginfo in Torque code (torque-debuginfo.patch)
- Fix headers installed in wrong location causing node-gyp unable to find 
config.gypi
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nodejs-electron.spec ++++++
--- /var/tmp/diff_new_pack.9RzQhB/_old  2025-05-12 16:50:54.077762480 +0200
+++ /var/tmp/diff_new_pack.9RzQhB/_new  2025-05-12 16:50:54.081762648 +0200
@@ -189,7 +189,7 @@
 
 
 Name:           nodejs-electron
-Version:        35.2.2
+Version:        35.3.0
 %global tag_version %version
 Release:        0
 Summary:        Build cross platform desktop apps with JavaScript, HTML, and 
CSS
@@ -242,6 +242,7 @@
 Patch86:        enable_stack_trace_line_numbers-symbol_level.patch
 Patch97:        chromium-127-cargo_crate.patch
 Patch98:        gn-logspam-breaks-install.patch
+Patch99:        torque-debuginfo.patch
 
 
 # PATCHES that remove code we don't want. Most of them can be reused verbatim 
by other distributors,
@@ -378,6 +379,9 @@
 Patch3206:      string-hasher-flax-vector-conversions.patch
 Patch3207:      unexportable_key_service_impl-Wlto-type-mismatch.patch
 Patch3208:      to_vector-std-projected-gcc119888.patch
+Patch3209:      file_dialog-missing-uint32_t.patch
+Patch3210:      CheckPortalAvailabilityOnBusThread-UaF-crash.patch
+Patch3211:      html_permission_element_strings_map-reproducible.patch
 
 # Patches to re-enable upstream force disabled features.
 # There's no sense in submitting them but they may be reused as-is by other 
packagers.
@@ -1380,7 +1384,8 @@
 
 
 
-cp -lrvT out/Release/gen/node_headers/include/node 
%{buildroot}%{_includedir}/electron
+cp -lrvT out/Release/gen/node_headers %{buildroot}%{_includedir}/electron
+
 
 # Electron has a little known feature that make it work like a nodejs binary.
 # We make use of it in the %%electron_rebuild macro which builds all 
dependencies in node_modules against Electron's headers.

++++++ CheckPortalAvailabilityOnBusThread-UaF-crash.patch ++++++
>From 41cfb13e3fd199108130e4b29ccb54b52ae82bbb Mon Sep 17 00:00:00 2001
From: deepak1556 <hop2d...@gmail.com>
Date: Fri, 9 May 2025 01:07:04 +0900
Subject: [PATCH] fix: use-after-move of bus connection in xdg portal detection

---
 shell/browser/ui/file_dialog_linux_portal.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/shell/browser/ui/file_dialog_linux_portal.cc 
b/shell/browser/ui/file_dialog_linux_portal.cc
index 298ee25caffb4..7dd520d92bdfa 100644
--- a/electron/shell/browser/ui/file_dialog_linux_portal.cc
+++ b/electron/shell/browser/ui/file_dialog_linux_portal.cc
@@ -86,8 +86,9 @@ void CheckPortalAvailabilityOnBusThread() {
                     << (g_portal_available ? "yes" : "no");
             flag->Set();
             bus->ShutdownAndBlock();
+            bus.reset();
           },
-          std::move(bus), flag));
+          bus, flag));
 }
 
 }  // namespace

++++++ electron-35.2.2.tar.zst -> electron-35.3.0.tar.zst ++++++
/work/SRC/openSUSE:Factory/nodejs-electron/electron-35.2.2.tar.zst 
/work/SRC/openSUSE:Factory/.nodejs-electron.new.30101/electron-35.3.0.tar.zst 
differ: char 7, line 1

++++++ file_dialog-missing-uint32_t.patch ++++++
--- src/electron/shell/browser/ui/file_dialog.h.orig    2025-05-07 
19:52:05.453848300 +0200
+++ src/electron/shell/browser/ui/file_dialog.h 2025-05-07 22:41:30.703083100 
+0200
@@ -5,6 +5,7 @@
 #ifndef ELECTRON_SHELL_BROWSER_UI_FILE_DIALOG_H_
 #define ELECTRON_SHELL_BROWSER_UI_FILE_DIALOG_H_
 
+#include <stdint.h>
 #include <string>
 #include <utility>
 #include <vector>

++++++ html_permission_element_strings_map-reproducible.patch ++++++
--- 
src/third_party/blink/renderer/build/scripts/generate_permission_element_grd.py 
    2025-05-07 19:56:08.225814691 +0200
+++ 
src/third_party/blink/renderer/build/scripts/generate_permission_element_grd.py 
    2025-05-09 17:27:22.302946256 +0200
@@ -148,6 +148,18 @@ def generate_grd_file(id_map, file_list,
     with open(output_file_path, 'wb') as output_file:
         output_file.write(doc.toxml(encoding='UTF-8'))
 
+# Generate the shortest string containing both `long` and `short` as 
substrings.
+# The full n-string problem is NP-complete, but we only use a crude greedy 
heuristic.
+def superstring(long, short):
+    if long.find(short) >= 0:
+        return long
+    for i in range(len(short), 0, -1):
+        if(long[-i:] == short[:i]):
+            return long + short[i:]
+        if(short[-i:] == long[:i]):
+            return short + long[i:]
+    return long + short
+
 
 def generate_cpp_mapping(orderings, input_file_path, output_file_path):
     doc = parse(input_file_path)
@@ -161,8 +173,8 @@ def generate_cpp_mapping(orderings, inpu
         # this code will use `pt-pt` (Portuguese from Portugal).
         custom_locale_mappings = {"en-gb": "en", "pt-pt": "pt", "zh-cn": "zh"}
 
-        langs = ''
-        lang_map = {}
+
+        locales = set()
         message_map = []
         for message in messages:
             message_name = message.getAttribute('name')
@@ -171,20 +183,18 @@ def generate_cpp_mapping(orderings, inpu
                 '_', 1)[1].lower().replace("_", "-")
             if locale in custom_locale_mappings:
                 locale = custom_locale_mappings[locale]
-            if locale not in lang_map:
-                # String concatenation is inefficientin Python, since strings
-                # are immutable. However, maintaining a list of chars and
-                # re-implementing find() is also unpleasant.
-                langs_idx = langs.find(locale)
-                if langs_idx < 0:
-                    lang_map[locale] = (len(langs), len(locale))
-                    langs += locale
-                else:
-                    # If locale is already a substring in the existing list,
-                    # the substring can simply be reused to save some space.
-                    lang_map[locale] = (langs_idx, len(locale))
+            locales.add(locale) # Need to add all locales at first because 
iteration order is non-deterministic
             message_map.append((locale, base_message, message_name))
 
+        langs = ''
+        locales = sorted(locales, key=lambda x: (-len(x), x))
+        for locale in locales: # Sort by length so that we add `ab-cd` before 
`ab` and `cd`
+            langs = superstring(langs, locale)
+
+        lang_map = {}
+        for locale in locales:
+            lang_map[locale] = langs.find(locale), len(locale)
+
         output_file.write(kStringMapCcPrefix)
         output_file.write(f'    "{langs}";\n')
         output_file.write(kStringMapCcMidfix)

++++++ torque-debuginfo.patch ++++++
Adds debuginfo directives to embedded.S and torque-generated .cc files.

This does not change the electron binary in any way (the text is identical), 
only makes the symbols better.

Revert https://github.com/v8/v8/commit/28e0e97dfe0d2b4587cb8f9a809fcaeb4670546f

reverted:
--- b/v8/src/snapshot/embedded/embedded-file-writer.cc
+++ a/v8/src/snapshot/embedded/embedded-file-writer.cc
@@ -77,10 +77,6 @@ void EmbeddedFileWriter::WriteBuiltin(Pl
   v8::internal::SourcePositionTableIterator positions(
       vpos, SourcePositionTableIterator::kExternalOnly);
 
-#ifndef DEBUG
-  CHECK(positions.done());  // Release builds must not contain debug infos.
-#endif
-
   // Some builtins (InterpreterPushArgsThenFastConstructFunction,
   // JSConstructStubGeneric) have entry points located in the middle of them, 
we
   // need to store their addresses since they are part of the list of allowed
reverted:
--- b/v8/src/snapshot/embedded/embedded-file-writer.h
+++ a/v8/src/snapshot/embedded/embedded-file-writer.h
@@ -121,11 +121,6 @@
   }
 
   void WriteExternalFilenames(PlatformEmbeddedFileWriterBase* w) const {
-#ifndef DEBUG
-    // Release builds must not contain debug infos.
-    CHECK_EQ(external_filenames_by_index_.size(), 0);
-#endif
-
     w->Comment(
         "Source positions in the embedded blob refer to filenames by id.");
     w->Comment("Assembly directives here map the id to a filename.");
--- src/v8/src/torque/torque-code-generator.cc.orig     2025-05-07 
20:01:00.337777745 +0200
+++ src/v8/src/torque/torque-code-generator.cc  2025-05-08 20:03:23.726364897 
+0200
@@ -26,11 +26,9 @@ bool TorqueCodeGenerator::IsEmptyInstruc
 
 void TorqueCodeGenerator::EmitInstruction(const Instruction& instruction,
                                           Stack<std::string>* stack) {
-#ifdef DEBUG
   if (!IsEmptyInstruction(instruction)) {
     EmitSourcePosition(instruction->pos);
   }
-#endif
 
   switch (instruction.kind()) {
 #define ENUM_ITEM(T)                                  \
--- src/v8/src/compiler/code-assembler.cc.orig  2025-05-07 20:01:00.165777775 
+0200
+++ src/v8/src/compiler/code-assembler.cc       2025-05-08 21:30:20.037471973 
+0200
@@ -100,7 +100,9 @@ void CodeAssemblerState::SetInitialDebug
                                                     int line) {
 #if DEBUG
   AssemblerDebugInfo debug_info = {msg, file, line};
+#endif
   raw_assembler_->SetCurrentExternalSourcePosition({file, line});
+#if DEBUG
   raw_assembler_->SetInitialDebugInformation(debug_info);
 #endif  // DEBUG
 }

Reply via email to