Build cross platform desktop apps with JavaScript, HTML, and CSS

Edit Package nodejs-electron
https://github.com/electron/electron

Nodejs application: Build cross platform desktop apps with JavaScript, HTML, and CSS

Refresh
Refresh
Source Files
Filename Size Changed
CVE-2024-30260-undici-clear-proxy-authorization.patch 0000002267 2.21 KB
CVE-2024-30261-undici-fetch-integrity.patch 0000005700 5.57 KB
Cr122-ffmpeg-new-channel-layout.patch 0000017840 17.4 KB
InternalAllocator-too-many-initializers.patch 0000002195 2.14 KB
RenderFrameHostImpl-use-after-free.patch 0000001223 1.19 KB
_constraints 0000000800 800 Bytes
aarch64-Xclang.patch 0000000529 529 Bytes
absl2023-encapsulated_web_transport-StrCat.patch 0000000709 709 Bytes
angle-system-xxhash.patch 0000001276 1.25 KB
aom-vpx-no-thread-wrapper.patch 0000002078 2.03 KB
audio_file_reader-ffmpeg-AVFrame-duration.patch 0000002716 2.65 KB
base-system-nspr.patch 0000001354 1.32 KB
boringssl-internal-addc-cxx.patch 0000002920 2.85 KB
brotli-remove-shared-dictionary.patch 0000003157 3.08 KB
build-without-extensions.patch 0000001997 1.95 KB
bundled-minizip.patch 0000001053 1.03 KB
cares_public_headers.patch 0000000395 395 Bytes
chromium-102-compiler.patch 0000012489 12.2 KB
chromium-118-sigtrap_system_ffmpeg.patch 0000000845 845 Bytes
chromium-122-BookmarkNode-missing-operator.patch 0000001285 1.25 KB
chromium-122-abseil-shims.patch 0000013390 13.1 KB
chromium-122-avoid-SFINAE-TypeConverter.patch 0000002681 2.62 KB
chromium-91-java-only-allowed-in-android-builds.patch 0000000722 722 Bytes
chromium-93-ffmpeg-4.4.patch 0000002684 2.62 KB
chromium-94-ffmpeg-roll.patch 0000000393 393 Bytes
chromium-94.0.4606.71-InkDropHost-crash.patch 0000001280 1.25 KB
chromium-98-EnumTable-crash.patch 0000002914 2.85 KB
chromium-gcc11.patch 0000001821 1.78 KB
chromium-remove-bundled-roboto-font.patch 0000001812 1.77 KB
chromium-vaapi.patch 0000003224 3.15 KB
common.gypi-remove-fno-omit-frame-pointer.patch 0000000976 976 Bytes
compact_enc_det_generated_tables-Wnarrowing.patch 0000370390 362 KB
crashpad-use-system-abseil.patch 0000000917 917 Bytes
create_tarball.sh 0000019608 19.1 KB
disable-catapult.patch 0000011961 11.7 KB
disable-devtools-tests.patch 0000000260 260 Bytes
disable-fuses.patch 0000003748 3.66 KB
disable-tests.patch 0000000707 707 Bytes
disable-webspeech.patch 0000012246 12 KB
distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch 0000000455 455 Bytes
distributed_point_functions-evaluate_prg_hwy-signature.patch 0000001541 1.5 KB
do-not-build-libvulkan.so.patch 0000001048 1.02 KB
electron-13-fix-base-check-nomerge.patch 0000000689 689 Bytes
electron-13-fix-use-thin-lto.patch 0000001024 1 KB
electron-16-freetype-visibility-list.patch 0000000540 540 Bytes
electron-16-std-vector-non-const.patch 0000006973 6.81 KB
electron-16-system-node-headers.patch 0000000656 656 Bytes
electron-16-third_party-symbolize-missing-include.patch 0000000481 481 Bytes
electron-16-webpack-fix-openssl-3.patch 0000000921 921 Bytes
electron-29.3.1.tar.zst 0572836493 546 MB
electron-launcher.sh 0000000379 379 Bytes
electron.desktop 0000000140 140 Bytes
fake_ssl_socket_client-Wlto-type-mismatch.patch 0000000888 888 Bytes
ffmpeg-new-channel-layout.patch 0000016118 15.7 KB
fpic.patch 0000003861 3.77 KB
gcc-asmflags.patch 0000000393 393 Bytes
gcc-enable-lto.patch 0000001472 1.44 KB
grid_sizing_tree-Wchanges-meaning.patch 0000001550 1.51 KB
harfbuzz-replace-HbScopedPointer.patch 0000003368 3.29 KB
harfbuzz-replace-chromium-scoped-type.patch 0000022235 21.7 KB
hit_test_request-missing-optional.patch 0000001299 1.27 KB
icon.patch 0000000591 591 Bytes
libxml-2.12-xmlCtxtGetLastError-const.patch 0000001335 1.3 KB
material_color_utilities-tones-missing-round.patch 0000000345 345 Bytes
mt21_util-flax-vector-conversions.patch 0000001154 1.13 KB
nasm-generate-debuginfo.patch 0000000300 300 Bytes
nested-nested-nested-nested-nested-nested-regex-patterns.patch 0000002744 2.68 KB
no-zlib-headers.patch 0000000397 397 Bytes
node-compiler.patch 0000004657 4.55 KB
node-system-icu.patch 0000000486 486 Bytes
nodejs-electron.changes 0000084018 82 KB
nodejs-electron.spec 0000045749 44.7 KB
partition_alloc-no-lto.patch 0000003211 3.14 KB
pdfium-fix-system-libs.patch 0000000890 890 Bytes
perfetto-numeric_storage-double_t.patch 0000000743 743 Bytes
plus_address_types-missing-optional.patch 0000001169 1.14 KB
race_network_request_write_buffer_manager-missing-optional.patch 0000001462 1.43 KB
rdynamic.patch 0000000332 332 Bytes
remove-date-reproducible-builds.patch 0000002388 2.33 KB
remove-dawn.patch 0000003451 3.37 KB
remove-openscreen.patch 0000000312 312 Bytes
remove-password-manager-and-policy.patch 0000009537 9.31 KB
remove-puffin.patch 0000001148 1.12 KB
remove-rust.patch 0000002530 2.47 KB
resolution_monitor-missing-bitset.patch 0000001318 1.29 KB
script_promise_resolver-explicit-specialization.patch 0000005018 4.9 KB
search_engine_choice_service-missing-optional.patch 0000001465 1.43 KB
seccomp_bpf-no-lto.patch 0000001115 1.09 KB
skia-system-vulkan-headers.patch 0000000947 947 Bytes
support-i386.patch 0000000833 833 Bytes
swiftshader-LLVMJIT-AddressSanitizerPass-dead-code-remove.patch 0000002219 2.17 KB
swiftshader-llvm18-LLVMJIT-CodeGenOptLevel.patch 0000002000 1.95 KB
swiftshader-llvm18-LLVMJIT-Host.patch 0000000613 613 Bytes
swiftshader-llvm18-LLVMReactor-getInt8PtrTy.patch 0000001533 1.5 KB
swiftshader-use-system-llvm.patch 0000001213 1.18 KB
system-gtest.patch 0000002700 2.64 KB
system-libbsd.patch 0000000689 689 Bytes
system-libdrm.patch 0000002514 2.46 KB
system-libm.patch 0000002087 2.04 KB
system-nasm.patch 0000000377 377 Bytes
system-pydeps.patch 0000008421 8.22 KB
system-simdutf.patch 0000000799 799 Bytes
system-six.patch 0000000920 920 Bytes
system-usb_ids.patch 0000000775 775 Bytes
system-wayland.patch 0000002128 2.08 KB
system-yuv.patch 0000000460 460 Bytes
system-zlib.patch 0000000631 631 Bytes
text_break_iterator-icu74-breakAllLineBreakClassTable-should-be-consistent.patch 0000017271 16.9 KB
v8-icu73-alt_calendar.patch 0000007240 7.07 KB
v8-icu73-simple-case-folding.patch 0000008238 8.04 KB
v8-instance-type-inl-constexpr-used-before-its-definition.patch 0000001939 1.89 KB
wayland-proto-31-cursor-shape.patch 0000036347 35.5 KB
Latest Revision
Ana Guerrero's avatar Ana Guerrero (anag+factory) accepted request 1169279 from Bruno Pitrus's avatar Bruno Pitrus (dziobian) (revision 113)
- Update to electron 29.3.1
  * ABI break: NODE_MODULE_VERSION is now 121
  * Chromium 122.0.6261.156
  * Node 20.9.0
  * V8 12.2
  * The deprecated gpu-process-crashed event on app has been removed.
  * The deprecated renderer-process-crashed event on app and crashed
    event on WebContents and <webview> have been removed.
  * Added WebContentsView and BaseWindow, replacing the now-deprecated BrowserView APIs.
  * Added new webUtils.getPathForFile method to replace File.path augmentation. 
  * see https://www.electronjs.org/blog/electron-29-0 and https://github.com/electron/electron/releases/tag/v29.0.0 for more
  * Security fixes for Angle (CVE-2024-3516) and Compositing (CVE-2024-3157)
- Drop upstreamed patches
  * atspi.patch
  * chromium-117-blink-BUILD-mnemonic.patch
  * local_frame-local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch
  * node-upgrade-llhttp-to-8.patch
  * policy_templates-deterministic.patch
  * v8-hide-private-symbols.patch
  * web_local_frame_client-incomplete-WebBackgroundResourceFetchAssets.patch
- Add patches to fix build errors
  * aarch64-Xclang.patch
  * absl2023-encapsulated_web_transport-StrCat.patch
  * boringssl-internal-addc-cxx.patch
  * chromium-122-avoid-SFINAE-TypeConverter.patch
  * chromium-122-BookmarkNode-missing-operator.patch
  * distributed_point_functions-aes_128_fixed_key_hash-missing-StrCat.patch
  * distributed_point_functions-evaluate_prg_hwy-signature.patch
  * fake_ssl_socket_client-Wlto-type-mismatch.patch
  * grid_sizing_tree-Wchanges-meaning.patch
Comments 16

O. Gas Valve's avatar

Apps like signal-desktop are failing on execution with: /usr/lib64/electron/electron: symbol lookup error: /usr/lib64/electron/electron: undefined symbol: hb_subset_input_set_retain_gids


Dominik Heidler's avatar

According to the discussion at https://aur.archlinux.org/packages/freetube/ which seems to be the same problem, this is due to the harfbuzz library removing some "legacy code" that includes that function: https://github.com/harfbuzz/harfbuzz/commit/d700646c33af53afcabe564e9943565d58e1192a

This also seems to break the build here atm.


O. Gas Valve's avatar

I did see that. It's not the first time I've seen harfbuzz break everything in a package bulk build. What about updating this to latest stable or adding a new package for v16 so we can get apps working again?


sergio Basto's avatar

builds for Fedora 39+ fails because of the new vulkan version on Fedora , you can found the full logs in https://copr.fedorainfracloud.org/coprs/sergiomb/electrons/package/nodejs-electron/

Any suggestion to fix the build ?

in file included from ../../third_party/vulkan_memory_allocator/vma.cpp:8:
../../third_party/vulkan_memory_allocator/include/vk_mem_alloc.h: In member function ‘virtual void VmaBlockMetadata_Generic::CalcAllocationStatInfo(VmaStatInfo&) const’:
../../third_party/vulkan_memory_allocator/include/vk_mem_alloc.h:7996:20: warning: unused variable ‘rangeCount’ [-Wunused-variable]
 7996 |     const uint32_t rangeCount = (uint32_t)m_Suballocations.size();
      |                    ^~~~~~~~~~
../../third_party/vulkan_memory_allocator/include/vk_mem_alloc.h: In member function ‘virtual void VmaBlockMetadata_Linear::Alloc(const VmaAllocationRequest&, VmaSuballocationType, void*)’:

Bruno Pitrus's avatar

I don't see any builds failing here, and what you pasted is not a build error.


sergio Basto's avatar

yeah, sorry, anyway full logs are here in builder-live.log.gz https://download.copr.fedorainfracloud.org/results/sergiomb/electrons/fedora-39-x86_64/06969127-nodejs-electron/builder-live.log.gz

[7213/40867] "python3" "../../build/toolchain/gcc_solink_wrapper.py" --readelf="readelf" --nm="gcc-nm"  --sofile="./libvk_swiftshader.so" --tocfile="./libvk_swiftshader.so.TOC" --output="./libvk_swiftshader.so" -- g++ -shared -Wl,-soname="libvk_swiftshader.so" -Wl,-Bsymbolic -Wl,--version-script=../../third_party/swiftshader/src/Vulkan/vk_swiftshader.lds -Wl,--build-id=sha1 -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-z,defs -Wl,--as-needed -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1   -Wl,-O2 -Wl,--gc-sections  -Wl,--as-needed -fuse-ld=lld -o "./libvk_swiftshader.so" @"./libvk_swiftshader.so.rsp"  
FAILED: libvk_swiftshader.so libvk_swiftshader.so.TOC 
"python3" "../../build/toolchain/gcc_solink_wrapper.py" --readelf="readelf" --nm="gcc-nm"  --sofile="./libvk_swiftshader.so" --tocfile="./libvk_swiftshader.so.TOC" --output="./libvk_swiftshader.so" -- g++ -shared -Wl,-soname="libvk_swiftshader.so" -Wl,-Bsymbolic -Wl,--version-script=../../third_party/swiftshader/src/Vulkan/vk_swiftshader.lds -Wl,--build-id=sha1 -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-z,defs -Wl,--as-needed -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1   -Wl,-O2 -Wl,--gc-sections  -Wl,--as-needed -fuse-ld=lld -o "./libvk_swiftshader.so" @"./libvk_swiftshader.so.rsp"  
ld.lld: error: version script assignment of 'global' to symbol 'vkCreateXlibSurfaceKHR' failed: symbol not defined
ld.lld: error: version script assignment of 'global' to symbol 'vkGetPhysicalDeviceXlibPresentationSupportKHR' failed: symbol not defined
ld.lld: error: version script assignment of 'global' to symbol 'vkCreateDirectFBSurfaceEXT' failed: symbol not defined
ld.lld: error: version script assignment of 'global' to symbol 'vkGetPhysicalDeviceDirectFBPresentationSupportEXT' failed: symbol not defined
collect2: error: ld returned 1 exit status

sergio Basto's avatar

ah ldd is disable and I had it enabled , I'm firing a new build


sergio Basto's avatar

Following https://bugs.chromium.org/p/chromium/issues/detail?id=1374347 export LDFLAGS="${LDFLAGS} -Wl,--as-needed -fuse-ld=lld -Wl,--undefined-version" fixes the build for F39
on Rawhide we need to add: BuildRequires: python3-setuptools
But now I got an error with zlib , we need bundle zlib according https://bugzilla.redhat.com/show_bug.cgi?id=2242271


Bruno Pitrus's avatar

You should not use lld, it does not work with GCC. Also zlib should never be bundled as it is part of electron's exported API.

May i know what are you trying to do? Electron builds fine on Fedora 39 here on OBS, on both x86_64 and aarch64: https://build.opensuse.org/package/live_build_log/devel:languages:nodejs/nodejs-electron/Fedora_39/x86_64


sergio Basto's avatar

I'm building electron for Fedora in copr instead OBS for my personal use, maybe one day I will add it to Fedora . About lId, I was confused, I though lld replaces gold and gold linker was deprecated on Fedora (but neither one and other are true), I will check that. anyway build with lld makes bins 10% smaller . thank you


Bruno Pitrus's avatar

lld does not support LTO (which actually makes the binaries several dozen MB smaller when enabled). The builds here are done with the default GNU bfd linker and with LTO enabled (exactly according to packaging policy)

As for adding Electron to Fedora proper, that's tremendously unlikely due to upstream's extremely short API/ABI stability guarantees. (I have removed it from Leap for that very reason)


sergio Basto's avatar

ah ok , now I also built electron with LTO . thank you
On Rawhide we need to add: BuildRequires: python3-setuptools to avoid distutils error.
With https://fedoraproject.org/wiki/Changes/MinizipNGTransition got an error with zlib , we need bundle zlib according https://bugzilla.redhat.com/show_bug.cgi?id=2242271


Bruno Pitrus's avatar

minizip and z are two different libraries even if they are built from the same “zlib” source tree. I repeat you do not want to bundle z as it is exported by electron, meaning it would interpose the system copy which is loaded by basically everything.

You may try bundling minizip (only) but you would need to do it manually — it has been stripped from this tarball.

Personally, i would try to patch the offending file not to use this API — this is something that will need to get done eventually anyway.



Bruno Pitrus's avatar

But zlib is not a problem. All the errors are from minizip.


sergio Basto's avatar

Sorry , when I wrote bundle zlib , was want wrote bundle minizip quoting from https://bugzilla.redhat.com/show_bug.cgi?id=2242271 "Also, I can see chromium bundles minizip as well. Is our Fedora chromium package ready to switch to bundled minizip "

openSUSE Build Service is sponsored by