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 }