2024-02-27 19:01:54 +00:00
#
2021-06-29 20:42:56 +00:00
# spec file for package nodejs-electron
#
2022-01-27 22:16:50 +00:00
# Copyright (c) 2022 SUSE LLC
2022-01-29 19:59:26 +00:00
# Copyright (c) 2021-2022 Andreas Schneider <asn@cryptomilk.org>
2021-06-29 20:42:56 +00:00
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
2024-02-27 19:01:54 +00:00
#
2021-06-29 20:42:56 +00:00
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
2022-02-17 22:40:10 +00:00
2021-06-29 20:42:56 +00:00
%define mod_name electron
2022-09-21 09:00:14 +00:00
# https://github.com/nodejs/node/blob/main/doc/abi_version_registry.json
2025-08-23 18:33:03 +00:00
%define abi_version 136
2022-07-04 09:07:38 +00:00
# Do not provide libEGL.so, etc…
%define __provides_exclude ^lib.*\\.so.*$
2025-01-12 20:37:55 +00:00
# Since https://github.com/chromium/chromium/commit/98742ca1b98b0598b1981671abb994c1a442ba6e blink no longer builds on ix86.
#(use of _mm_cvtsi128_si64)
ExcludeArch : %ix86
#private_aggregation_host-uint128.patch adds a int128 which is not supported by 32-bit gcc.
#If anyone still uses these platforms, have fun with fixing it.
ExcludeArch : %arm
2022-07-04 09:07:38 +00:00
2021-06-29 20:42:56 +00:00
%bcond_without pipewire
2022-07-04 09:07:38 +00:00
2022-12-07 09:53:09 +00:00
%bcond_without swiftshader
2023-03-10 06:02:08 +00:00
%ifarch %ix86 x86_64 %x86_64 %arm
2022-07-04 09:07:38 +00:00
#Use subzero as swiftshader backend instead of LLVM
%bcond_without subzero
2021-06-29 20:42:56 +00:00
%else
2022-07-04 09:07:38 +00:00
%bcond_with subzero
2021-06-29 20:42:56 +00:00
%endif
2022-07-04 09:07:38 +00:00
2024-04-30 18:32:00 +00:00
#Not enabling this yet, as of electron 29 there are minor font rendering issues in menu, and the benefits are dubious
#(all the widgets use Gtk unconditionally — not sure which of the changed codepaths are used in Electron)
2022-12-07 09:53:09 +00:00
%bcond_with qt
2022-07-04 09:07:38 +00:00
2024-04-19 21:15:15 +00:00
#Video acceleration API to support. Useful for e.g. signal messenger.
#One cannot enable both, unfortunately.
%bcond_with v4l2
2025-07-14 09:50:35 +00:00
%bcond_without vaapi
2022-07-04 09:07:38 +00:00
2024-09-14 08:17:25 +00:00
%ifarch %arm aarch64 riscv64
%bcond_with gdbjit
%else
%bcond_without gdbjit
%endif
2022-08-08 08:46:02 +00:00
2025-04-26 10:14:41 +00:00
#We no longer support 32-bit.
2022-10-26 04:51:48 +00:00
%bcond_without lto
2024-07-20 10:06:30 +00:00
2024-09-05 05:02:09 +00:00
%bcond_with mold
2022-10-04 19:13:55 +00:00
2024-01-17 22:28:47 +00:00
2023-03-20 07:15:32 +00:00
2023-10-19 17:09:42 +00:00
2022-08-08 08:46:02 +00:00
%bcond_with system_yuv
2022-07-04 09:07:38 +00:00
2025-08-20 07:32:21 +00:00
#CPU level. Leap 16 requires x86-64-v2 so we may force it inside V8.
%if 0%{?suse_version} >= 1550 && 0%{?suse_version} < 1650
%bcond_without v2
%else
%bcond_with v2
%endif
2024-02-22 08:55:18 +00:00
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora}
%bcond_without system_vpx
2025-08-23 18:33:03 +00:00
%bcond_without system_aom
2024-02-27 19:01:54 +00:00
%bcond_without bro_11
2024-04-19 21:15:15 +00:00
%bcond_without ffmpeg_6
2025-01-12 20:37:55 +00:00
%bcond_without system_vk_headers
2025-04-26 10:14:41 +00:00
%bcond_without spirv_2024
2025-02-27 19:59:14 +00:00
%bcond_without cares_21
2025-08-23 18:33:03 +00:00
%bcond_without nghttp_50
%bcond_without highway_1_1
2024-02-27 19:01:54 +00:00
%else
2024-08-14 22:08:54 +00:00
%bcond_with system_vpx
2025-08-23 18:33:03 +00:00
%bcond_with system_aom
2024-02-27 19:01:54 +00:00
%bcond_with bro_11
2024-04-19 21:15:15 +00:00
%bcond_with ffmpeg_6
2025-01-12 20:37:55 +00:00
%bcond_with system_vk_headers
2025-04-26 10:14:41 +00:00
%bcond_with spirv_2024
2025-02-27 19:59:14 +00:00
%bcond_with cares_21
2025-08-23 18:33:03 +00:00
%bcond_with nghttp_50
%bcond_with highway_1_1
2024-02-27 19:01:54 +00:00
%endif
2024-02-22 08:55:18 +00:00
2024-11-28 05:42:29 +00:00
2024-02-22 08:55:18 +00:00
2022-09-21 09:00:14 +00:00
2022-07-04 09:07:38 +00:00
%if 0%{?fedora}
2025-08-23 18:33:03 +00:00
2022-07-07 08:02:56 +00:00
%bcond_without system_histogram
2025-04-26 10:14:41 +00:00
%bcond_without system_simdjson
2022-07-04 09:07:38 +00:00
%else
2022-07-07 08:02:56 +00:00
%bcond_with system_histogram
2025-04-26 10:14:41 +00:00
%bcond_with system_simdjson
2023-10-16 08:59:19 +00:00
%endif
2024-02-22 08:55:18 +00:00
2024-11-28 05:42:29 +00:00
%if 0%{?fedora}
2024-11-13 15:05:12 +00:00
%bcond_without system_ada
%else
%bcond_with system_ada
%endif
2025-05-24 15:29:19 +00:00
%if 0%{?fedora} >= 43
2025-08-23 18:33:03 +00:00
%bcond_without system_llhttp
2025-05-24 15:29:19 +00:00
%else
2025-08-23 18:33:03 +00:00
%bcond_with system_llhttp
2025-05-24 15:29:19 +00:00
%endif
2024-11-28 05:42:29 +00:00
2025-08-23 18:33:03 +00:00
# requires built with `SIMDUTF_ATOMIC_REF`
2024-07-12 10:45:39 +00:00
%bcond_with system_simdutf
2024-04-19 21:15:15 +00:00
2025-02-16 10:55:17 +00:00
%if 0%{?fedora} && 0%{?fedora} < 42
%bcond_without system_vma
%else
%bcond_with system_vma
%endif
2024-02-27 19:01:54 +00:00
# Some chromium code assumes absl::string_view is a typedef for std::string_view. This is not true on GCC7 systems such as Leap.
2024-11-28 05:42:29 +00:00
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora}
2024-04-19 21:15:15 +00:00
%bcond_without system_abseil
2023-03-31 15:06:38 +00:00
%else
2024-04-19 21:15:15 +00:00
%bcond_with system_abseil
2023-03-31 15:06:38 +00:00
%endif
2024-11-10 09:41:57 +00:00
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora} >= 41
2024-04-19 21:15:15 +00:00
#re2-11 has abseil as a public dependency. If you use system re2 you must use system abseil.
%bcond_without system_re2
2023-10-19 17:09:42 +00:00
%else
2024-04-19 21:15:15 +00:00
%bcond_with system_re2
2022-07-04 09:07:38 +00:00
%endif
2023-11-10 18:29:28 +00:00
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora}
%define PYVER 3
%else
%define PYVER 311
%endif
2024-11-28 05:42:29 +00:00
%if 0%{?fedora}
2023-11-15 20:58:58 +00:00
%define AVFORMAT_VER 6.0.1
%define RPMFUSION_VER 6.1-3
%endif
2024-11-28 05:42:29 +00:00
2024-02-22 08:55:18 +00:00
2023-11-15 20:58:58 +00:00
2024-05-11 22:39:59 +00:00
%if 0%{?suse_version}
%{expand:%%global NODEJS_DEFAULT_VER %(echo %{nodejs_version} |sed 's/\..*//' )}
%else
%global NODEJS_DEFAULT_VER %nil
%endif
2022-07-07 08:56:30 +00:00
# We always ship the following bundled libraries as part of Electron despite a system version being available in either openSUSE or Fedora:
2022-07-07 08:02:56 +00:00
# Name | Path in tarball | Reason
# -------------+-----------------------------------+---------------------------------------
2022-07-07 08:56:30 +00:00
# boringssl | third_party/boringssl | The openSUSE package is unmaintained.
2022-07-07 08:02:56 +00:00
# hunspell | third_party/hunspell/src | Fork.
# leveldb | third_party/leveldatabase/src | Internal api use.
# protobuf | third_party/protobuf | Fork.
# rnnoise | third_party/rnnoise | Internal api use.
# sqlite | third_party/sqlite | Fork.
2023-11-02 18:54:04 +00:00
# srtp / srtp2 | third_party/libsrtp | Needs to be built against boringssl, not openssl
2022-07-07 08:02:56 +00:00
# uv | third_party/electron_node/deps/uv | Heavily modified version which is exposed as part of Electron's public ABI.
2022-08-08 08:46:02 +00:00
2022-07-04 09:07:38 +00:00
2021-06-29 20:42:56 +00:00
Name : nodejs-electron
2025-08-23 18:33:03 +00:00
Version : 37.3.1
2024-05-09 17:36:05 +00:00
%global tag_version %version
2021-06-29 20:42:56 +00:00
Release : 0
Summary : Build cross platform desktop apps with JavaScript, HTML, and CSS
2025-04-26 10:14:41 +00:00
License : Apache-2.0 AND blessing AND BSD-2-Clause AND BSD-3-Clause AND BSD-Source-Code AND bzip2-1.0.6 AND ISC AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND MIT AND MIT-CMU AND MIT-open-group AND (MPL-1.1 OR GPL-2.0-or-later OR LGPL-2.1-or-later) AND MPL-2.0 AND OpenSSL AND SGI-B-2.0 AND SUSE-Public-Domain AND X11
2022-09-15 04:57:08 +00:00
Group : Development/Languages/NodeJS
2021-06-29 20:42:56 +00:00
URL : https://github.com/electron/electron
2024-05-03 09:28:15 +00:00
Source0 : %{mod_name} -%{tag_version} .tar.zst
2021-06-29 20:42:56 +00:00
Source1 : create_tarball.sh
Source10 : electron-launcher.sh
2024-06-29 08:08:03 +00:00
Source11 : Electron.desktop
2022-07-04 09:36:24 +00:00
2022-09-21 09:00:14 +00:00
# Reverse upstream changes to be able to build against ffmpeg-4
2022-07-04 09:07:38 +00:00
Source400 : ffmpeg-new-channel-layout.patch
2022-10-04 19:13:55 +00:00
Source401 : audio_file_reader-ffmpeg-AVFrame-duration.patch
2024-04-19 21:15:15 +00:00
Source402 : Cr122-ffmpeg-new-channel-layout.patch
2024-09-16 18:02:24 +00:00
Source403 : ffmpeg-7-ffmpeg_video_decoder-reordered_opaque.patch
2025-08-23 18:33:03 +00:00
Source404 : ffmpeg-4-AV_PROFILE.patch
2025-04-26 10:14:41 +00:00
# and abseil 2407
Source461 : webrtc-make_ref_counted-absl2024-nullability.patch
2025-02-27 19:59:14 +00:00
# and c-ares 1.19
Source470 : node-cares-1.21.patch
2025-05-17 09:23:17 +00:00
Source471 : node-cares-1.21-2.patch
Source472 : node-cares-1.21-3.patch
2025-08-23 18:33:03 +00:00
Source473 : node-cares-1.21-4.patch
2025-04-26 10:14:41 +00:00
# and spirv 2023
Source480 : angle-SPV_BINARY_TO_TEXT_OPTION_NESTED_INDENT.patch
2025-08-23 18:33:03 +00:00
#and nghttp 1.40
Source490 : node-nghttp-1.50.patch
#and highway 1.0
Source500 : v8-highway-1.1.patch
2022-08-01 08:25:54 +00:00
2023-09-13 04:57:45 +00:00
2024-05-09 17:36:05 +00:00
# PATCHES for openSUSE-specific things (compiler flags, paths, etc.)
2022-07-04 09:07:38 +00:00
Patch0 : chromium-102-compiler.patch
2022-10-26 04:51:48 +00:00
Patch1 : fpic.patch
2024-05-11 22:39:59 +00:00
Patch2 : common.gypi-compiler.patch
2022-01-27 22:16:50 +00:00
Patch3 : gcc-enable-lto.patch
2021-06-29 20:42:56 +00:00
Patch7 : chromium-91-java-only-allowed-in-android-builds.patch
2022-01-29 19:59:26 +00:00
# Fix common.gypi to include /usr/include/electron
Patch25 : electron-16-system-node-headers.patch
2022-07-04 09:07:38 +00:00
# https://sources.debian.org/patches/chromium/102.0.5005.115-1/debianization/support-i386.patch/
Patch39 : support-i386.patch
2022-08-08 08:46:02 +00:00
Patch69 : nasm-generate-debuginfo.patch
2022-11-10 05:53:36 +00:00
Patch74 : common.gypi-remove-fno-omit-frame-pointer.patch
2022-12-03 23:54:17 +00:00
Patch75 : gcc-asmflags.patch
2023-03-20 07:15:32 +00:00
Patch77 : angle_link_glx.patch
2023-05-11 19:29:06 +00:00
Patch78 : rdynamic.patch
2023-10-12 17:11:37 +00:00
Patch80 : icon.patch
2024-04-19 21:15:15 +00:00
Patch84 : aarch64-Xclang.patch
2024-05-09 17:36:05 +00:00
Patch85 : devtools-frontend-compress_files-oom.patch
2024-07-12 10:45:39 +00:00
Patch86 : enable_stack_trace_line_numbers-symbol_level.patch
2025-01-12 20:37:55 +00:00
Patch97 : chromium-127-cargo_crate.patch
2025-04-26 10:14:41 +00:00
Patch98 : gn-logspam-breaks-install.patch
2025-05-09 20:23:34 +00:00
Patch99 : torque-debuginfo.patch
2025-05-29 17:44:28 +00:00
Patch100 : reduce-gn-tree.patch
2025-08-20 07:32:21 +00:00
%if %{with v2}
Patch101 : v8-assume-x86-64-v2-support.patch
%else
Source101 : v8-assume-x86-64-v2-support.patch
%endif
2024-05-09 17:36:05 +00:00
# PATCHES that remove code we don't want. Most of them can be reused verbatim by other distributors,
# and some of them probably should be submitted upstream (at least to Electron, not necessarily to Chromium)
# from https://sources.debian.org/patches/chromium/103.0.5060.53-1/disable/catapult.patch/
Patch567 : disable-catapult.patch
Patch570 : disable-fuses.patch
# https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?h=102-based&id=d617766b236a93749ddbb50b75573dd35238ffc9
Patch573 : disable-webspeech.patch
# https://sources.debian.org/patches/chromium/108.0.5359.124-1/disable/tests.patch/
Patch581 : disable-tests.patch
Patch583 : remove-rust.patch
Patch585 : remove-dawn.patch
Patch586 : aom-vpx-no-thread-wrapper.patch
Patch588 : remove-password-manager-and-policy.patch
Patch589 : remove-puffin.patch
2024-06-13 10:51:02 +00:00
Patch590 : remove-sync.patch
2024-09-16 18:02:24 +00:00
Patch592 : fix-build-without-supervised-users.patch
2025-01-12 20:37:55 +00:00
Patch593 : fix-build-without-screen-ai.patch
#patches disabling rust features from Gentoo: https://data.gpo.zugaina.org/pf4public/dev-util/electron/files/
Patch595 : chromium-123-qrcode.patch
Patch596 : chromium-130-fontations.patch
Patch597 : chromium-125-cloud_authenticator.patch
Patch598 : chromium-127-crabby.patch
2025-04-26 10:14:41 +00:00
Patch599 : chromium-132-no-rust.patch
2025-01-12 20:37:55 +00:00
#End gentoo patches
2025-04-26 10:14:41 +00:00
Patch602 : remove-ai-language-detection-factory-which-requires-tflite-and-libphonenumber.patch
Patch603 : build-without-mesage-center.patch
Patch604 : disable-avif-really.patch
Patch605 : permission-gcc14.2.patch
2025-05-29 17:44:28 +00:00
Patch606 : build-without-extensions.patch
Patch607 : build-without-guest-view.patch
2025-07-14 09:50:35 +00:00
Patch608 : vaapi-no-encoders.patch
2025-08-23 18:33:03 +00:00
Patch609 : remove-probabilistic-token-which-uses-private-join-and-compute.patch
Patch610 : masked_domain_list-flatbuffers.patch
2024-05-09 17:36:05 +00:00
2022-08-01 08:25:54 +00:00
# PATCHES to use system libs
2023-03-20 07:15:32 +00:00
Patch1000 : do-not-build-libvulkan.so.patch
2022-08-01 08:25:54 +00:00
Patch1017 : system-libdrm.patch
# http://svnweb.mageia.org/packages/updates/7/chromium-browser-stable/current/SOURCES/chromium-74-pdfium-system-libopenjpeg2.patch?view=markup
Patch1038 : pdfium-fix-system-libs.patch
Patch1045 : angle-system-xxhash.patch
Patch1047 : cares_public_headers.patch
Patch1048 : chromium-remove-bundled-roboto-font.patch
Patch1053 : swiftshader-use-system-llvm.patch
Patch1063 : system-libbsd.patch
Patch1065 : base-system-nspr.patch
Patch1066 : system-gtest.patch
2022-08-08 08:46:02 +00:00
Patch1068 : system-six.patch
Patch1069 : system-usb_ids.patch
Patch1071 : system-pydeps.patch
Patch1072 : node-system-icu.patch
Patch1073 : system-nasm.patch
Patch1074 : no-zlib-headers.patch
2023-09-13 04:57:45 +00:00
Patch1077 : system-wayland.patch
2023-10-27 09:24:58 +00:00
Patch1079 : system-libm.patch
2024-09-16 18:02:24 +00:00
Patch1085 : webp-no-sharpyuv.patch
2024-11-10 09:41:57 +00:00
Patch1086 : zip_internal-missing-uLong-Z_DEFAULT_COMPRESSION.patch
2025-01-12 20:37:55 +00:00
Patch1088 : cr130-abseil-remove-unused-deps.patch
Patch1089 : system-absl_algorithm.patch
Patch1090 : cr130-absl-base.patch
2025-04-26 10:14:41 +00:00
Patch1091 : use-system-libraries-in-node.patch
Patch1092 : fix-system-highway.patch
Patch1093 : system-sqlite.patch
Patch1094 : absl_strings-missing-headers.patch
2025-05-17 09:23:17 +00:00
Patch1095 : system-zstd-in-node.patch
2025-08-23 18:33:03 +00:00
Patch1036 : node-version-ck.patch
Patch1037 : system-dragonbox.patch
2022-08-01 08:25:54 +00:00
2023-10-19 17:09:42 +00:00
2022-08-01 08:25:54 +00:00
# PATCHES to fix interaction with third-party software
Patch2010 : chromium-93-ffmpeg-4.4.patch
2022-10-26 04:51:48 +00:00
Patch2032 : seccomp_bpf-no-lto.patch
2023-01-18 06:07:26 +00:00
Patch2034 : swiftshader-LLVMJIT-AddressSanitizerPass-dead-code-remove.patch
2023-02-13 18:46:12 +00:00
Patch2035 : RenderFrameHostImpl-use-after-free.patch
2024-02-27 19:01:54 +00:00
%if %{without bro_11}
2023-10-19 17:09:42 +00:00
Patch2042 : brotli-remove-shared-dictionary.patch
2024-02-27 19:01:54 +00:00
%else
Source2042 : brotli-remove-shared-dictionary.patch
%endif
2023-11-18 22:01:14 +00:00
Patch2045 : libxml-2.12-xmlCtxtGetLastError-const.patch
2024-01-25 09:23:16 +00:00
Patch2046 : chromium-118-sigtrap_system_ffmpeg.patch
2024-04-19 21:15:15 +00:00
Patch2048 : absl2023-encapsulated_web_transport-StrCat.patch
2024-11-28 05:42:29 +00:00
#Work around gcc14 overly aggressive optimizer.
2024-08-31 09:02:17 +00:00
Patch2058 : v8-strict-aliasing.patch
2024-11-27 09:56:12 +00:00
#Fix opus audio not working (eg. Element voice messages)
Patch2059 : disable-FFmpegAllowLists.patch
2025-01-12 20:37:55 +00:00
# https://src.fedoraproject.org/rpms/chromium/blob/rawhide/f/chromium-129-disable-H.264-video-parser-during-demuxing.patch
Patch2060 : chromium-129-disable-H.264-video-parser-during-demuxing.patch
Patch2061 : private_aggregation_host-uint128.patch
Patch2062 : wayland_version.patch
2025-04-26 10:14:41 +00:00
#Conditionably disable feature which requires new highway
Patch2064 : blink-shape_result-highway.patch
2025-08-23 18:33:03 +00:00
#Patch2065: node-llhttp9.3.patch
Patch2066 : angle-BlobCache-Success.patch
Patch2067 : partition_alloc-strict-aliasing.patch
Patch2068 : llhttp-lax-vector-conversions.patch
2022-08-01 08:25:54 +00:00
# PATCHES that should be submitted upstream verbatim or near-verbatim
Patch3027 : electron-16-freetype-visibility-list.patch
Patch3028 : electron-16-third_party-symbolize-missing-include.patch
# From https://git.droidware.info/wchen342/ungoogled-chromium-fedora
Patch3033 : chromium-94.0.4606.71-InkDropHost-crash.patch
2022-10-26 04:51:48 +00:00
Patch3080 : compact_enc_det_generated_tables-Wnarrowing.patch
2023-01-13 05:29:42 +00:00
Patch3096 : remove-date-reproducible-builds.patch
2024-03-28 10:22:12 +00:00
Patch3133 : swiftshader-llvm18-LLVMReactor-getInt8PtrTy.patch
Patch3134 : swiftshader-llvm18-LLVMJIT-Host.patch
Patch3135 : swiftshader-llvm18-LLVMJIT-CodeGenOptLevel.patch
2024-04-19 21:15:15 +00:00
Patch3144 : mt21_util-flax-vector-conversions.patch
2025-01-12 20:37:55 +00:00
Patch3174 : swiftshader-llvm19-LLVMJIT-getHostCPUFeatures.patch
Patch3175 : swiftshader-llvm19-LLVMReactor-incomplete-Module.patch
Patch3185 : bsc1224178-font-gc.patch
2025-01-23 06:06:56 +00:00
Patch3186 : string_view-incomplete-CodePointIterator.patch
2025-04-10 09:33:30 +00:00
Patch3187 : swiftshader-llvm20-absoluteSymbols.patch
2025-04-26 10:14:41 +00:00
Patch3198 : ax_platform_node_id-fpermissive.patch
Patch3204 : browser_process_impl-fix-safe_browsing_mode-0.patch
2025-05-09 20:23:34 +00:00
Patch3209 : file_dialog-missing-uint32_t.patch
2025-08-23 18:33:03 +00:00
Patch3210 : webrtc-138-Wchanges-meaning.patch
Patch3211 : sandboxed_vfs_file_impl-missing-memset.patch
Patch3212 : lock_impl_posix-pthread_mutexattr_setprotocol-conflicting.patch
Patch3213 : node-kParentNodeTag-constexpr-initializer.patch
Patch3214 : pickle_traits-kIndexSequence-constexpr-initializer.patch
Patch3215 : offscreen_canvas-incomplete-LayoutLocale.patch
Patch3216 : identity_request_account-incomplete-IdentityProviderData.patch
Patch3217 : xr_webgl_swap_chain-incomplete-StaticBitmapImage.patch
Patch3218 : json_to_struct-fixed_flat_map-conflicting-declaration.patch
Patch3219 : webgl_rendering_context_webgpu_base-incomplete-StaticBitmapImage.patch
Patch3220 : picture_in_picture_events_info-string-constexpr.patch
Patch3221 : event_record-optional-initializer.patch
Patch3222 : ANNOTATE_CONTIGUOUS_CONTAINER-Wodr.patch
Patch3223 : v8-simd-flax-vector-conversions.patch
2022-08-01 08:25:54 +00:00
2024-05-09 17:36:05 +00:00
# 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.
Patch5000 : more-locales.patch
2022-07-04 09:07:38 +00:00
BuildRequires : brotli
BuildRequires : c-ares-devel
2025-02-27 19:59:14 +00:00
%if %{with cares_21}
BuildRequires : c-ares-devel >= 1.21
2022-07-04 09:07:38 +00:00
%endif
BuildRequires : cmake(Crc32c)
BuildRequires : double-conversion-devel
2021-06-29 20:42:56 +00:00
BuildRequires : desktop-file-utils
2025-08-23 18:33:03 +00:00
BuildRequires : dragonbox-devel
2022-08-08 08:46:02 +00:00
%if 0%{?fedora}
BuildRequires : flatbuffers-compiler
%endif
BuildRequires : flatbuffers-devel
2021-06-29 20:42:56 +00:00
BuildRequires : gn >= 0.1807
BuildRequires : gperf
2022-07-07 08:02:56 +00:00
%if %{with system_histogram}
BuildRequires : HdrHistogram_c-devel
%endif
2021-06-29 20:42:56 +00:00
BuildRequires : hicolor-icon-theme
2022-08-08 08:46:02 +00:00
BuildRequires : hwdata
2023-10-12 17:11:37 +00:00
BuildRequires : ImageMagick
2022-07-04 09:07:38 +00:00
%if 0%{?fedora}
BuildRequires : libatomic
2021-07-01 05:05:47 +00:00
%endif
2024-11-13 15:05:12 +00:00
%if %{with system_ada}
BuildRequires : cmake(ada)
%endif
2025-08-23 18:33:03 +00:00
%if %{with system_aom}
2025-01-12 20:37:55 +00:00
BuildRequires : libaom-devel >= 3.8~
%endif
2022-07-04 09:07:38 +00:00
BuildRequires : libbsd-devel
2021-06-29 20:42:56 +00:00
BuildRequires : libpng-devel
2022-07-04 09:07:38 +00:00
BuildRequires : libXNVCtrl-devel
2022-07-07 08:02:56 +00:00
%if %{with system_llhttp}
2025-05-24 15:29:19 +00:00
BuildRequires : llhttp-devel >= 9.3
2022-07-07 08:02:56 +00:00
%endif
2022-12-07 09:53:09 +00:00
%if %{with swiftshader} && %{without subzero}
2023-10-01 20:33:54 +00:00
BuildRequires : llvm-devel >= 16
2022-07-04 09:07:38 +00:00
%endif
2021-06-29 20:42:56 +00:00
BuildRequires : memory-constraints
2024-09-05 05:02:09 +00:00
%if %{with mold}
BuildRequires : mold
%endif
2023-03-10 06:02:08 +00:00
%ifarch %ix86 x86_64 %x86_64
2025-01-12 20:37:55 +00:00
%if %{without system_vpx}
2022-08-08 08:46:02 +00:00
BuildRequires : nasm
2022-10-29 19:25:58 +00:00
%endif
2023-08-19 05:38:25 +00:00
%endif
2021-07-01 05:05:47 +00:00
%if 0%{?suse_version}
2021-06-29 20:42:56 +00:00
BuildRequires : ninja >= 1.7.2
2022-07-04 09:07:38 +00:00
%else
2021-07-01 05:05:47 +00:00
BuildRequires : ninja-build >= 1.7.2
%endif
2025-04-26 10:14:41 +00:00
%if 0%{?fedora}
2023-04-15 17:03:47 +00:00
BuildRequires : nodejs-npm
2025-04-26 10:14:41 +00:00
#otherwise electron-typescript-definitions crashes like https://github.com/nodejs/node/issues/51752
BuildRequires : nodejs-full-i18n
2022-08-01 10:51:40 +00:00
%else
2021-06-29 20:42:56 +00:00
BuildRequires : npm
2022-08-01 10:51:40 +00:00
%endif
2025-04-26 10:14:41 +00:00
BuildRequires : npm(rollup)
BuildRequires : nodejs-packaging
2021-06-29 20:42:56 +00:00
BuildRequires : pkgconfig
2022-08-08 08:46:02 +00:00
BuildRequires : plasma-wayland-protocols
BuildRequires : python3-json5
2023-11-10 18:29:28 +00:00
BuildRequires : python%{PYVER} -jinja2 >= 3.0.2
2022-08-08 08:46:02 +00:00
BuildRequires : python3-mako
2023-12-22 14:28:07 +00:00
BuildRequires : python%{PYVER} -ply
2023-11-10 18:29:28 +00:00
BuildRequires : python%{PYVER} -PyYAML >= 6
2024-02-24 18:35:27 +00:00
%if 0%{?fedora}
BuildRequires : (python3-setuptools if python3 >= 3.12)
%endif
2023-11-10 18:29:28 +00:00
BuildRequires : python%{PYVER} -six
2023-10-16 08:59:19 +00:00
%if %{with system_simdutf}
2025-04-26 10:14:41 +00:00
BuildRequires : simdutf-devel >= 5
2023-10-16 08:59:19 +00:00
%endif
2021-06-29 20:42:56 +00:00
BuildRequires : snappy-devel
2021-07-01 05:05:47 +00:00
%if 0%{?suse_version}
2021-06-29 20:42:56 +00:00
BuildRequires : update-desktop-files
2021-07-01 05:05:47 +00:00
%endif
2021-06-29 20:42:56 +00:00
BuildRequires : util-linux
2025-01-12 20:37:55 +00:00
%if %{with system_vk_headers}
# Actually we need also SpvFPEncoding from spirv-headers but Fedora version is non-indicative.
# Let's only specify the vulkan version because they are usually updated together.
BuildRequires : vulkan-headers >= 1.3.296
%endif
#For skia, needed anyway
BuildRequires : vulkan-headers >= 1.3
2023-10-16 08:59:19 +00:00
%if %{with system_vma}
BuildRequires : VulkanMemoryAllocator-devel >= 3
%endif
2023-09-13 04:57:45 +00:00
BuildRequires : wayland-devel >= 1.20
2023-01-13 05:29:42 +00:00
BuildRequires : zstd
2022-07-04 09:07:38 +00:00
%if %{with system_abseil}
2024-04-19 21:15:15 +00:00
BuildRequires : pkgconfig(absl_absl_check)
2023-10-05 14:36:24 +00:00
BuildRequires : pkgconfig(absl_algorithm_container)
BuildRequires : pkgconfig(absl_any_invocable)
2022-07-04 09:07:38 +00:00
BuildRequires : pkgconfig(absl_base)
BuildRequires : pkgconfig(absl_bind_front)
BuildRequires : pkgconfig(absl_bits)
BuildRequires : pkgconfig(absl_btree)
BuildRequires : pkgconfig(absl_cleanup)
BuildRequires : pkgconfig(absl_config)
BuildRequires : pkgconfig(absl_cord)
BuildRequires : pkgconfig(absl_core_headers)
BuildRequires : pkgconfig(absl_failure_signal_handler)
BuildRequires : pkgconfig(absl_fixed_array)
BuildRequires : pkgconfig(absl_flags)
BuildRequires : pkgconfig(absl_flags_parse)
BuildRequires : pkgconfig(absl_flags_usage)
BuildRequires : pkgconfig(absl_flat_hash_map)
BuildRequires : pkgconfig(absl_flat_hash_set)
BuildRequires : pkgconfig(absl_hash)
BuildRequires : pkgconfig(absl_inlined_vector)
BuildRequires : pkgconfig(absl_int128)
BuildRequires : pkgconfig(absl_memory)
BuildRequires : pkgconfig(absl_node_hash_map)
BuildRequires : pkgconfig(absl_node_hash_set)
2025-04-26 10:14:41 +00:00
BuildRequires : pkgconfig(absl_nullability)
2022-07-04 09:07:38 +00:00
BuildRequires : pkgconfig(absl_optional)
BuildRequires : pkgconfig(absl_random_random)
BuildRequires : pkgconfig(absl_span)
BuildRequires : pkgconfig(absl_stacktrace)
BuildRequires : pkgconfig(absl_status)
BuildRequires : pkgconfig(absl_statusor)
2025-04-26 10:14:41 +00:00
BuildRequires : pkgconfig(absl_strings) >= 20240700
2022-07-04 09:07:38 +00:00
BuildRequires : pkgconfig(absl_str_format)
BuildRequires : pkgconfig(absl_symbolize)
BuildRequires : pkgconfig(absl_synchronization)
BuildRequires : pkgconfig(absl_time)
BuildRequires : pkgconfig(absl_type_traits)
2022-09-21 09:00:14 +00:00
BuildRequires : pkgconfig(absl_utility)
2022-07-04 09:07:38 +00:00
BuildRequires : pkgconfig(absl_variant)
2023-03-31 15:06:38 +00:00
BuildRequires : pkgconfig(absl_core_headers) >= 20230000
%endif
2021-06-29 20:42:56 +00:00
BuildRequires : pkgconfig(alsa)
BuildRequires : pkgconfig(cairo) >= 1.6
2022-07-04 09:07:38 +00:00
BuildRequires : pkgconfig(dav1d) >= 1
2021-06-29 20:42:56 +00:00
BuildRequires : pkgconfig(dbus-1)
BuildRequires : pkgconfig(dri)
BuildRequires : pkgconfig(expat)
2023-09-13 04:57:45 +00:00
BuildRequires : pkgconfig(flac)
2021-06-29 20:42:56 +00:00
BuildRequires : pkgconfig(freetype2)
BuildRequires : pkgconfig(gbm)
BuildRequires : pkgconfig(glib-2.0)
BuildRequires : pkgconfig(glproto)
2024-07-12 10:45:39 +00:00
BuildRequires : pkgconfig(gtest) >= 1.12
2021-06-29 20:42:56 +00:00
BuildRequires : pkgconfig(gtk+-3.0)
2023-01-18 06:07:26 +00:00
BuildRequires : pkgconfig(harfbuzz) >= 5
2023-10-19 17:09:42 +00:00
BuildRequires : pkgconfig(icu-i18n) >= 73
2022-10-04 19:13:55 +00:00
BuildRequires : pkgconfig(jsoncpp)
2023-11-12 18:57:50 +00:00
%if 0%{?fedora}
2023-11-15 20:58:58 +00:00
Recommends: (ffmpeg-libs%{_isa} or libavcodec-freeworld%{_isa})
2023-11-12 18:57:50 +00:00
%endif
2024-04-19 21:15:15 +00:00
%if %{with ffmpeg_6}
BuildRequires : pkgconfig(libavcodec) >= 60
2024-08-14 22:08:54 +00:00
BuildRequires : pkgconfig(libavformat) >= 60
BuildRequires : pkgconfig(libavutil) >= 58
2023-11-18 22:01:14 +00:00
%if 0%{?fedora}
2023-11-12 18:57:50 +00:00
#requires av_stream_get_first_dts, see rhbz#2240127
2023-11-15 20:58:58 +00:00
BuildRequires : libavformat-free-devel >= %AVFORMAT_VER
Requires : (ffmpeg-libs%{_isa} >= %RPMFUSION_VER or libavformat-free%{_isa} >= %AVFORMAT_VER)
2023-11-12 18:57:50 +00:00
%endif
2022-09-21 09:00:14 +00:00
%else
2021-06-29 20:42:56 +00:00
BuildRequires : pkgconfig(libavcodec)
BuildRequires : pkgconfig(libavformat) >= 58
BuildRequires : pkgconfig(libavutil)
2022-09-21 09:00:14 +00:00
%endif
2024-02-27 19:01:54 +00:00
%if %{with bro_11}
BuildRequires : pkgconfig(libbrotlicommon) >= 1.1~
%endif
2022-07-04 09:07:38 +00:00
BuildRequires : pkgconfig(libbrotlidec)
BuildRequires : pkgconfig(libbrotlienc)
BuildRequires : pkgconfig(libcares)
2021-06-29 20:42:56 +00:00
BuildRequires : pkgconfig(libcurl)
BuildRequires : pkgconfig(libdrm)
2025-08-23 18:33:03 +00:00
%if %{with highway_1_1}
# requires SumsOf2
BuildRequires : pkgconfig(libhwy) >= 1.1
%endif
2023-09-13 04:57:45 +00:00
BuildRequires : pkgconfig(libhwy) >= 1
2025-08-23 18:33:03 +00:00
%if %{with nghttp_50}
# needs nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation
BuildRequires : pkgconfig(libnghttp2) >= 1.50
%endif
2022-07-04 09:07:38 +00:00
BuildRequires : pkgconfig(libnghttp2)
2021-06-29 20:42:56 +00:00
BuildRequires : pkgconfig(libnotify)
BuildRequires : pkgconfig(libpci)
BuildRequires : pkgconfig(libpulse)
2022-08-08 08:46:02 +00:00
BuildRequires : pkgconfig(libsecret-1)
2025-01-12 20:37:55 +00:00
BuildRequires : pkgconfig(libudev)
2023-08-19 05:38:25 +00:00
%if %{with vaapi}
2021-06-29 20:42:56 +00:00
BuildRequires : pkgconfig(libva)
2023-08-19 05:38:25 +00:00
%endif
2021-06-29 20:42:56 +00:00
BuildRequires : pkgconfig(libwebp) >= 0.4.0
2022-07-04 09:07:38 +00:00
BuildRequires : pkgconfig(libwoff2dec)
2021-06-29 20:42:56 +00:00
BuildRequires : pkgconfig(libxml-2.0) >= 2.9.5
BuildRequires : pkgconfig(libxslt)
2022-07-04 09:07:38 +00:00
BuildRequires : pkgconfig(libxxhash)
2022-08-08 08:46:02 +00:00
%if %{with system_yuv}
2024-11-10 09:41:57 +00:00
%if 0%{?suse_version}
2025-01-12 20:37:55 +00:00
# needs I010ToNV12
BuildRequires : pkgconfig(libyuv) >= 1894
2022-08-08 08:46:02 +00:00
%endif
2024-11-10 09:41:57 +00:00
# Fedora does not provide meaningful versioning, sorry
BuildRequires : pkgconfig(libyuv)
%endif
2024-07-12 10:45:39 +00:00
BuildRequires : pkgconfig(libzstd)
2021-06-29 20:42:56 +00:00
BuildRequires : pkgconfig(minizip)
BuildRequires : pkgconfig(nspr) >= 4.9.5
BuildRequires : pkgconfig(nss) >= 3.26
BuildRequires : pkgconfig(opus) >= 1.3.1
2022-07-04 09:07:38 +00:00
BuildRequires : pkgconfig(pangocairo)
2022-12-07 09:53:09 +00:00
%if %{with qt}
BuildRequires : pkgconfig(Qt5Core)
BuildRequires : pkgconfig(Qt5Widgets)
2024-04-30 18:32:00 +00:00
BuildRequires : pkgconfig(Qt6Core)
BuildRequires : pkgconfig(Qt6Widgets)
2022-12-07 09:53:09 +00:00
%endif
2024-04-19 21:15:15 +00:00
%if %{with system_abseil} && %{with system_re2}
#re2-11 has abseil as a public dependency. If you use system re2 you must use system abseil.
2023-10-19 17:09:42 +00:00
BuildRequires : cmake(re2) >= 11
%endif
2025-04-26 10:14:41 +00:00
%if %{with system_simdjson}
BuildRequires : pkgconfig(simdjson)
%endif
2022-07-04 09:07:38 +00:00
%if 0%{?suse_version}
BuildRequires : spirv-headers
%else
BuildRequires : spirv-headers-devel
%endif
2025-04-26 10:14:41 +00:00
%if %{with spirv_2024}
BuildRequires : pkgconfig(SPIRV-Tools) >= 2024
%endif
2022-07-04 09:07:38 +00:00
BuildRequires : pkgconfig(SPIRV-Tools) >= 2022.2
2025-04-26 10:14:41 +00:00
BuildRequires : pkgconfig(sqlite3)
2023-03-20 07:15:32 +00:00
BuildRequires : pkgconfig(vulkan) >= 1.3
2025-04-26 10:14:41 +00:00
BuildRequires : pkgconfig(wayland-protocols) >= 1.37
2021-06-29 20:42:56 +00:00
BuildRequires : pkgconfig(xkbcommon)
BuildRequires : pkgconfig(xshmfence)
BuildRequires : pkgconfig(zlib)
%if 0%{?suse_version}
BuildRequires : libjpeg-devel >= 8.1
%else
BuildRequires : libjpeg-turbo-devel
%endif
%if %{with system_vpx}
2023-09-13 04:57:45 +00:00
# requires VP9E_SET_QUANTIZER_ONE_PASS
BuildRequires : pkgconfig(vpx) >= 1.13~
2021-06-29 20:42:56 +00:00
%endif
2025-08-13 17:04:25 +00:00
%if 0%{?suse_version} >= 1650 || 0%{?fedora}
2024-11-28 05:42:29 +00:00
BuildRequires : gcc >= 14
2024-08-31 09:02:17 +00:00
BuildRequires : gcc-c++ >= 14
2024-11-28 05:42:29 +00:00
%else
2025-08-13 17:04:25 +00:00
%if 0%{?suse_version} >= 1550
BuildRequires : gcc15-PIE
BuildRequires : gcc15-c++
%else
2024-11-28 05:42:29 +00:00
BuildRequires : gcc14-PIE
BuildRequires : gcc14-c++
2024-08-31 09:02:17 +00:00
%endif
2025-08-13 17:04:25 +00:00
%endif
2024-11-28 05:42:29 +00:00
2021-06-29 20:42:56 +00:00
%if %{with pipewire}
BuildRequires : pkgconfig(libpipewire-0.3)
BuildRequires : pkgconfig(libspa-0.2)
%endif
2022-07-04 09:07:38 +00:00
Requires : hicolor-icon-theme
Requires : google-roboto-fonts
2021-06-29 20:42:56 +00:00
2022-07-04 09:07:38 +00:00
2024-04-30 18:32:00 +00:00
%if %{with qt}
%if 0%{?fedora}
Requires : (nodejs-electron-qt5%{_isa} if qt5-qtbase-gui%{_isa})
Requires : (nodejs-electron-qt6%{_isa} if qt6-qtbase-gui%{_isa})
%else
Requires : (nodejs-electron-qt5%{_isa} if libQt5Gui5%{_isa})
Requires : (nodejs-electron-qt6%{_isa} if libQt6Gui6%{_isa})
%endif
%endif
2021-06-29 20:42:56 +00:00
Provides : electron
2022-09-21 09:00:14 +00:00
Provides : electron%{_isa}(abi) = %{abi_version}
2021-06-29 20:42:56 +00:00
Obsoletes : nodejs-electron-prebuilt < %{version}
Provides : nodejs-electron-prebuilt = %{version}
%description
Nodejs application: Build cross platform desktop apps with JavaScript, HTML, and CSS
2022-01-29 19:59:26 +00:00
%package devel
Summary : Electron development headers
Group : Development/Libraries/C and C++
2024-04-30 18:32:00 +00:00
Requires : nodejs-electron%{_isa} = %{version}
2022-08-08 08:46:02 +00:00
Requires : pkgconfig(zlib)
2024-05-11 22:39:59 +00:00
%if 0%{?suse_version}
Requires : npm%{NODEJS_DEFAULT_VER}
%else
Requires : nodejs-npm
%endif
2022-01-29 19:59:26 +00:00
2022-10-04 19:13:55 +00:00
2022-01-29 19:59:26 +00:00
%description devel
Development headers for Electron projects.
2022-10-04 19:13:55 +00:00
%package doc
Summary : Electron API documentation
Group : Documentation/Other
Enhances: nodejs-electron-devel = %{version}
BuildArch : noarch
%description doc
Development documentation for the Electron runtime.
2024-04-30 18:32:00 +00:00
%if %{with qt}
%package qt5
Summary : Qt5 widgets for Electron
Group : System/Libraries
Requires : nodejs-electron%{_isa} = %version
%description qt5
This is the Qt5-based UI backend for nodejs-electron,
providing better integration with desktop environments such as KDE.
%package qt6
Summary : Qt6 widgets for Electron
Group : System/Libraries
Requires : nodejs-electron%{_isa} = %version
%description qt6
This is the Qt6-based UI backend for nodejs-electron,
providing better integration with desktop environments such as KDE.
%endif
2021-06-29 20:42:56 +00:00
%prep
2022-07-04 09:07:38 +00:00
# Use stable path to source to make use of ccache
%autosetup -n src -p1
2024-04-19 21:15:15 +00:00
2022-09-21 09:00:14 +00:00
# Sanity check if macro corresponds to the actual ABI
test $(grep ^node_module_version electron/build/args/all.gn | sed 's/.* = //' ) = %abi_version
2025-01-12 20:37:55 +00:00
2025-08-23 18:33:03 +00:00
2025-01-12 20:37:55 +00:00
2025-02-27 19:59:14 +00:00
%if %{without cares_21}
2025-05-17 09:23:17 +00:00
patch -R -p1 < %SOURCE472
patch -R -p1 < %SOURCE471
2025-02-27 19:59:14 +00:00
patch -R -p1 < %SOURCE470
2025-08-23 18:33:03 +00:00
patch -R -p1 < %SOURCE473
2025-02-27 19:59:14 +00:00
%endif
2024-02-27 19:01:54 +00:00
2025-01-12 20:37:55 +00:00
2025-03-20 12:53:28 +00:00
%if %{without ffmpeg_6}
2024-09-16 18:02:24 +00:00
patch -R -p1 < %SOURCE403
2024-08-14 22:08:54 +00:00
patch -R -p1 < %SOURCE402
2022-09-21 09:00:14 +00:00
patch -R -p1 < %SOURCE400
2024-08-14 22:08:54 +00:00
patch -R -p1 < %SOURCE401
2025-08-23 18:33:03 +00:00
patch -R -p1 < %SOURCE404
2022-09-21 09:00:14 +00:00
%endif
2025-04-26 10:14:41 +00:00
%if %{without spirv_2024}
patch -R -p1 < %SOURCE480
%endif
2023-11-18 22:01:14 +00:00
2025-08-23 18:33:03 +00:00
%if %{without nghttp_50}
patch -R -p1 < %SOURCE490
%endif
%if %{without highway_1_1}
patch -R -p1 < %SOURCE500
%endif
2023-10-01 20:33:54 +00:00
2023-01-18 06:07:26 +00:00
2025-04-26 10:14:41 +00:00
# This one just removes compatibility with old abseil and does not add anything, reverting unconditionally.
patch -R -p1 < %SOURCE461
2023-09-13 04:57:45 +00:00
2024-04-19 21:15:15 +00:00
2025-01-12 20:37:55 +00:00
#Replace non-free rollup 4.x with rollup 3.x. This probably won't last for long and we will have to figure out how to build rollup 4
rm -rf third_party/node/node_modules/@rollup/wasm-node/
2025-04-26 10:14:41 +00:00
rm -rf third_party/devtools-frontend/src/node_modules/@rollup/wasm-node/
cp -arvT %{nodejs_sitelib} /rollup third_party/node/node_modules/@rollup/wasm-node
cp -alrvT third_party/node/node_modules/@rollup/wasm-node third_party/devtools-frontend/src/node_modules/@rollup/wasm-node
2025-01-12 20:37:55 +00:00
2022-08-08 08:46:02 +00:00
# Link system wayland-protocols-devel into where chrome expects them
2023-01-18 06:07:26 +00:00
mkdir -p third_party/wayland/src
2022-08-08 08:46:02 +00:00
mkdir -p third_party/wayland-protocols/kde/src
2023-01-18 06:07:26 +00:00
ln -svfT %{_datadir} /wayland third_party/wayland/src/protocol
2023-01-13 05:29:42 +00:00
#mkdir -p third_party/wayland-protocols/mesa
2024-01-17 22:28:47 +00:00
ln -svfT %{_datadir} /wayland-protocols third_party/wayland-protocols/src
2023-01-13 05:29:42 +00:00
#ln -svfT %{_datadir}/wayland-eglstream third_party/wayland-protocols/mesa/wayland-drm
2022-08-08 08:46:02 +00:00
ln -svfT %{_datadir} /plasma-wayland-protocols third_party/wayland-protocols/kde/src/protocols
2021-07-01 05:05:47 +00:00
# Fix the path to nodejs binary
mkdir -p third_party/node/linux/node-linux-x64/bin
ln -sf %{_bindir} /node third_party/node/linux/node-linux-x64/bin/node
2022-01-27 22:16:50 +00:00
# Fix eu-strip
2022-08-01 08:25:54 +00:00
mkdir -p buildtools/third_party/eu-strip/bin
ln -sf %{_bindir} /eu-strip buildtools/third_party/eu-strip/bin/eu-strip
2022-01-27 22:16:50 +00:00
2021-06-29 20:42:56 +00:00
# Fix shim header generation
sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
tools/generate_shim_headers/generate_shim_headers.py
2024-07-20 10:06:30 +00:00
# Remove bundled libraries
2021-06-29 20:42:56 +00:00
gn_system_libraries=(
2022-07-04 09:07:38 +00:00
brotli
2024-04-19 21:15:15 +00:00
crc32c
dav1d
2023-01-18 06:07:26 +00:00
double-conversion
2022-07-04 09:07:38 +00:00
ffmpeg
2021-06-29 20:42:56 +00:00
flac
2022-08-08 08:46:02 +00:00
flatbuffers
2021-06-29 20:42:56 +00:00
fontconfig
2023-01-18 06:07:26 +00:00
freetype
harfbuzz-ng
2024-04-19 21:15:15 +00:00
highway
2022-09-21 09:00:14 +00:00
icu
2023-09-13 04:57:45 +00:00
jsoncpp
2021-06-29 20:42:56 +00:00
libdrm
libjpeg
libpng
2022-08-08 08:46:02 +00:00
libsecret
2021-06-29 20:42:56 +00:00
libusb
libwebp
2024-04-19 21:15:15 +00:00
libXNVCtrl
2021-06-29 20:42:56 +00:00
libxml
libxslt
opus
snappy
2023-01-18 06:07:26 +00:00
woff2
2021-06-29 20:42:56 +00:00
zlib
2024-07-12 10:45:39 +00:00
zstd
2025-01-12 20:37:55 +00:00
swiftshader-SPIRV-Headers
swiftshader-SPIRV-Tools
vulkan-SPIRV-Tools
2021-06-29 20:42:56 +00:00
)
2022-07-04 09:07:38 +00:00
%if %{with system_abseil}
2022-08-08 08:46:02 +00:00
find third_party/abseil-cpp -type f ! -name " * . g n " -a ! -name " * . g n i " -delete
2022-07-04 09:07:38 +00:00
gn_system_libraries+=(
absl_algorithm
absl_base
absl_cleanup
2024-04-19 21:15:15 +00:00
absl_crc
2022-07-04 09:07:38 +00:00
absl_container
absl_debugging
absl_flags
absl_functional
absl_hash
2023-01-18 06:07:26 +00:00
absl_log
absl_log_internal
2022-07-04 09:07:38 +00:00
absl_memory
absl_meta
absl_numeric
absl_random
absl_status
absl_strings
absl_synchronization
absl_time
absl_types
2022-09-21 09:00:14 +00:00
absl_utility
2022-07-04 09:07:38 +00:00
)
%endif
2025-08-23 18:33:03 +00:00
%if %{with system_aom}
find third_party/libaom -type f ! -name " * . g n " -a ! -name " * . g n i " -delete
gn_system_libraries+=( libaom )
%endif
2022-07-04 09:07:38 +00:00
2023-09-13 04:57:45 +00:00
2024-02-24 18:35:27 +00:00
2023-09-13 04:57:45 +00:00
2024-04-19 21:15:15 +00:00
%if %{with system_re2}
find third_party/re2 -type f ! -name " * . g n " -a ! -name " * . g n i " -delete
gn_system_libraries+=( re2 )
2022-07-04 09:07:38 +00:00
%endif
2024-04-19 21:15:15 +00:00
2025-01-12 20:37:55 +00:00
%if %{with system_vk_headers}
find third_party/vulkan-headers -type f ! -name " * . g n " -a ! -name " * . g n i " -delete
find third_party/spirv-headers -type f ! -name " * . g n " -a ! -name " * . g n i " -delete
gn_system_libraries+=( vulkan-SPIRV-Headers )
2022-07-04 09:07:38 +00:00
%endif
2023-10-16 08:59:19 +00:00
%if %{with system_vma}
find third_party/vulkan_memory_allocator -type f ! -name " * . g n " -a ! -name " * . g n i " -delete
gn_system_libraries+=( vulkan_memory_allocator )
%endif
2021-06-29 20:42:56 +00:00
%if %{with system_vpx}
2022-08-08 08:46:02 +00:00
find third_party/libvpx -type f ! -name " * . g n " -a ! -name " * . g n i " -delete
2021-06-29 20:42:56 +00:00
gn_system_libraries+=( libvpx )
%endif
2022-07-04 09:07:38 +00:00
2022-08-08 08:46:02 +00:00
%if %{with system_yuv}
find third_party/libyuv -type f ! -name " * . g n " -a ! -name " * . g n i " -delete
gn_system_libraries+=( libyuv )
%endif
2025-04-26 10:14:41 +00:00
%if %{with system_simdutf}
find third_party/simdutf -type f ! -name " * . g n " -a ! -name " * . g n i " -a ! -name " * . g y p " -a ! -name " * . g y p i " -delete
gn_system_libraries+=( simdutf )
%endif
2021-06-29 20:42:56 +00:00
build/linux/unbundle/replace_gn_files.py --system-libraries ${gn_system_libraries[@]}
2022-07-04 09:07:38 +00:00
2024-11-13 15:05:12 +00:00
%if %{with system_ada}
find third_party/electron_node/deps/ada -type f ! -name " * . g n " -a ! -name " * . g n i " -a ! -name " * . g y p " -a ! -name " * . g y p i " -delete
%endif
2022-07-07 08:02:56 +00:00
%if %{with system_llhttp}
2022-08-08 08:46:02 +00:00
find third_party/electron_node/deps/llhttp -type f ! -name " * . g n " -a ! -name " * . g n i " -a ! -name " * . g y p " -a ! -name " * . g y p i " -delete
2022-07-07 08:02:56 +00:00
%endif
%if %{with system_histogram}
2022-08-08 08:46:02 +00:00
find third_party/electron_node/deps/histogram -type f ! -name " * . g n " -a ! -name " * . g n i " -a ! -name " * . g y p " -a ! -name " * . g y p i " -delete
2022-07-07 08:02:56 +00:00
%endif
2025-04-26 10:14:41 +00:00
%if %{with system_simdjson}
find third_party/electron_node/deps/simdjson -type f ! -name " * . g n " -a ! -name " * . g n i " -a ! -name " * . g y p " -a ! -name " * . g y p i " -delete
%endif
2022-07-04 09:07:38 +00:00
2024-07-20 10:06:30 +00:00
%build
pushd electron/shell/browser/resources/win
[ $(identify electron.ico | wc -l) = 4 ] #Sanity check
convert electron.ico -strip extracted.png
identify extracted-0.png | grep -F 16x16
identify extracted-1.png | grep -F 32x32
identify extracted-2.png | grep -F 48x48
identify extracted-3.png | grep -F 256x256
popd
# GN sets lto on its own and we need just ldflag options, not cflags
%define _lto_cflags %{nil}
# Make sure python is python3
install -d -m 0755 python3-path
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150700 || 0%{?fedora}
ln -sf %{_bindir} /python3 " $ ( p w d ) / p y t h o n 3 - p a t h / p y t h o n "
%else
ln -sf %{_bindir} /python3.11 " $ ( p w d ) / p y t h o n 3 - p a t h / p y t h o n "
ln -sf %{_bindir} /python3.11 " $ ( p w d ) / p y t h o n 3 - p a t h / p y t h o n 3 "
%endif
export PATH=" $ ( p w d ) / p y t h o n 3 - p a t h : $ { P A T H } "
#HACK: Those packages on Leap are available only in python3.6 versions.
%if 0%{?suse_version} && 0%{?suse_version} < 1550
install -d -m 0755 python3-site
cp -pr %{python3_sitelib} /{json5,mako} -t " $ ( p w d ) / p y t h o n 3 - s i t e "
export PYTHONPATH=" $ ( p w d ) / p y t h o n 3 - s i t e "
%endif
#some Fedora ports still try to build with LTO
ARCH_FLAGS=$(echo " % o p t f l a g s " |sed 's/-f[^ ]*lto[^ ]*//g' )
#Work around an upstream ODR issue.
#Remove this once https://bugs.chromium.org/p/chromium/issues/detail?id=1375049 gets fixed.
ARCH_FLAGS=" $ A R C H _ F L A G S - D I S _ S E R I A L _ E N A B L E D _ P L A T F O R M "
%if 0%{?fedora}
# Fix base/allocator/allocator_shim.cc:408:2: error: #error This code cannot be
# used when exceptions are turned on.
ARCH_FLAGS=" $ ( e c h o $ A R C H _ F L A G S | s e d - e ' s / - f e x c e p t i o n s / / g ' ) "
%endif
# for wayland
export CXXFLAGS=" $ { A R C H _ F L A G S } - I / u s r / i n c l u d e / w a y l a n d - I / u s r / i n c l u d e / l i b x k b c o m m o n "
2025-08-23 18:33:03 +00:00
#no pkgconfig, only cmake. add the include path manually
%if 0%{?fedora}
export CXXFLAGS=" $ { C X X F L A G S } - I $ ( e c h o / u s r / i n c l u d e / d r a g o n b o x - * ) "
%endif
2024-07-20 10:06:30 +00:00
export CFLAGS=" $ { C X X F L A G S } "
# Google has a bad coding style, using a macro `NOTREACHED()` that is not properly detected by GCC
# multiple times throughout the codebase (including generated code). It is not possible to redefine the macro to __builtin_unreachable,
# as it has an astonishing syntax, behaving like an ostream (in debug builds it is supposed to trap and print an error message)
export CXXFLAGS=" $ { C X X F L A G S } - W n o - e r r o r = r e t u r n - t y p e "
# A bunch of memcpy'ing of JSObject in V8 runs us into “Logfile got too big, killed job.”
export CXXFLAGS=" $ { C X X F L A G S } - W n o - c l a s s - m e m a c c e s s "
# Warning spam from generated mojom code again makes the log too big
export CXXFLAGS=" $ { C X X F L A G S } - W n o - p a c k e d - n o t - a l i g n e d - W n o - a d d r e s s "
2024-11-10 09:41:57 +00:00
# warning spam in third_party/blink/renderer/bindings/modules/v8
export CXXFLAGS=" $ { C X X F L A G S } - W n o - t e m p l a t e - i d - c d t o r - W n o - n o n - v i r t u a l - d t o r "
2024-07-20 10:06:30 +00:00
# REDUCE DEBUG for C++ as it gets TOO large due to “heavy hemplate use in Blink”. See symbol_level below and chromium-102-compiler.patch
export CXXFLAGS=" $ ( e c h o $ { C X X F L A G S } | s e d - e ' s / - g / / g ' - e ' s / - g $ / / g ' ) "
2025-08-23 18:33:03 +00:00
#Fix build with abseil < 2025
export CXXFLAGS=" $ C X X F L A G S - D a b s l _ n u l l a b l e = - D a b s l _ n o n n u l l = "
2024-07-20 10:06:30 +00:00
%ifarch %ix86 %arm
export CFLAGS=" $ ( e c h o $ { C F L A G S } | s e d - e ' s / - g / - g 1 / g ' - e ' s / - g $ / - g 1 / g ' ) "
%endif
#The chromium build process passes lots of .o files directly to the linker instead of using static libraries,
#and relies on the linker eliminating unused sections.
#Re-add these parameters from build/config/compiler/BUILD.gn.
export LDFLAGS=" %{?build_ldflags} - W l , - O 2 - W l , - - g c - s e c t i o n s "
2024-09-05 05:02:09 +00:00
# mold does not respect it otherwise
export LDFLAGS=" $ L D F L A G S - W l , - - a s - n e e d e d "
2024-07-20 10:06:30 +00:00
%ifarch %ix86 %arm
#try to reduce memory
2024-09-16 18:02:24 +00:00
export LDFLAGS=" $ { L D F L A G S } - W l , - - n o - k e e p - m e m o r y - W l , - - r e d u c e - m e m o r y - o v e r h e a d s "
2024-07-20 10:06:30 +00:00
%endif #ifarch ix86 arm
2025-08-13 17:04:25 +00:00
%if 0%{?suse_version} >= 1650 || 0%{?fedora}
2024-07-20 10:06:30 +00:00
export CC=gcc
export CXX=g++
export AR=gcc-ar
export NM=gcc-nm
export RANLIB=gcc-ranlib
%else
2025-08-13 17:04:25 +00:00
%if 0%{?suse_version} >= 1550
export CC=gcc-15
export CXX=g++-15
export AR=gcc-ar-15
export NM=gcc-nm-15
export RANLIB=gcc-ranlib-15
%else
2024-11-28 05:42:29 +00:00
export CC=gcc-14
export CXX=g++-14
export AR=gcc-ar-14
export NM=gcc-nm-14
export RANLIB=gcc-ranlib-14
2024-07-20 10:06:30 +00:00
%endif
2025-08-13 17:04:25 +00:00
%endif
2024-07-20 10:06:30 +00:00
# do not eat all memory
%ifarch %ix86 %arm
%limit_build -m 1200
%else
%limit_build -m 4000
%endif
%ifarch aarch64
#These settings make it use much more memory leading to OOM during linking
unset MALLOC_CHECK_
unset MALLOC_PERTURB_
%endif
%if %{with lto}
2025-01-17 21:32:41 +00:00
%ifarch aarch64
2025-05-29 17:44:28 +00:00
export LDFLAGS=" $ L D F L A G S - f l t o = a u t o - - p a r a m g g c - m i n - e x p a n d = 2 0 - - p a r a m g g c - m i n - h e a p s i z e = 3 2 7 6 8 - - p a r a m l t o - m a x - s t r e a m i n g - p a r a l l e l i s m = 4 "
2025-01-17 21:32:41 +00:00
%else
2024-07-20 10:06:30 +00:00
# x64 is fine with the the default settings (the machines have 30GB+ ram)
export LDFLAGS=" $ L D F L A G S - f l t o = a u t o "
%endif
2025-01-17 21:32:41 +00:00
%endif
2024-07-20 10:06:30 +00:00
2024-09-05 05:02:09 +00:00
%if %{with mold}
export LDFLAGS=" $ L D F L A G S - f u s e - l d = m o l d "
%endif
2024-08-14 22:08:54 +00:00
# Ccache is truncated to 5GB which is not enough for Electron, leading to slower rebuilds
export CCACHE_COMPRESS=1
ccache -o max_size=0 || true
2025-04-26 10:14:41 +00:00
#see generate_node_headers.py
export ELECTRON_OUT_DIR=Release
2021-06-29 20:42:56 +00:00
# Create the configuration for GN
# Available options: out/Release/gn args --list out/Release/
myconf_gn=" "
2024-05-03 09:28:15 +00:00
myconf_gn+=' override_electron_version="%{tag_version}"'
2024-09-05 05:02:09 +00:00
# The only known consumer of process.versions.<custom string> is VSCode:
# https://github.com/microsoft/vscode/blob/main/src/vs/workbench/electron-sandbox/parts/dialogs/dialogHandler.ts
myconf_gn+=' electron_vendor_version="microsoft-build:Electron for openSUSE"'
2021-06-29 20:42:56 +00:00
myconf_gn+=" c u s t o m _ t o o l c h a i n = \" / / b u i l d / t o o l c h a i n / l i n u x / u n b u n d l e : d e f a u l t \" "
myconf_gn+=" h o s t _ t o o l c h a i n = \" / / b u i l d / t o o l c h a i n / l i n u x / u n b u n d l e : d e f a u l t \" "
myconf_gn+=" u s e _ c u s t o m _ l i b c x x = f a l s e "
2025-08-23 18:33:03 +00:00
myconf_gn+=' use_safe_libstdcxx=false'
myconf_gn+=' use_llvm_libatomic=false'
2022-07-04 09:07:38 +00:00
%ifarch %ix86
myconf_gn+=" h o s t _ c p u = \" x 8 6 \" "
%endif
2023-03-10 06:02:08 +00:00
%ifarch x86_64 %x86_64
2022-01-27 22:16:50 +00:00
myconf_gn+=" h o s t _ c p u = \" x 6 4 \" "
%endif
%ifarch aarch64
myconf_gn+=" h o s t _ c p u = \" a r m 6 4 \" "
2022-10-04 19:13:55 +00:00
#default is "standard" which does not work with gcc
#This does not raise the cpu requirements according to https://developer.arm.com/documentation/101754/0616/armclang-Reference/armclang-Command-line-Options/-mbranch-protection
myconf_gn+=" a r m _ c o n t r o l _ f l o w _ i n t e g r i t y = \" p a c \" "
2022-01-27 22:16:50 +00:00
%endif
2022-07-04 09:07:38 +00:00
%ifarch %arm
myconf_gn+=" h o s t _ c p u = \" a r m \" "
2022-09-21 09:00:14 +00:00
#openSUSE only supports armhf
%ifarch armv7hl armv7hnl
myconf_gn+=" a r m _ v e r s i o n = 7 "
%endif
%ifarch armv6hl
myconf_gn+=" a r m _ v e r s i o n = 6 "
%endif
myconf_gn+=" a r m _ f l o a t _ a b i = \" h a r d \" "
2022-07-04 09:07:38 +00:00
# Disable requirement of neon instructions
2022-09-21 09:00:14 +00:00
%ifarch armv7hnl armv8hnl armv8hcnl
myconf_gn+=" a r m _ u s e _ n e o n = t r u e "
%else
myconf_gn+=" a r m _ u s e _ n e o n = f a l s e "
2022-07-04 09:07:38 +00:00
%endif
2022-09-21 09:00:14 +00:00
%endif #ifarch arm
2022-10-04 19:13:55 +00:00
2022-01-27 22:16:50 +00:00
myconf_gn+=" h o s t _ o s = \" l i n u x \" "
2021-06-29 20:42:56 +00:00
myconf_gn+=" i s _ d e b u g = f a l s e "
2022-01-27 22:16:50 +00:00
myconf_gn+=" d c h e c k _ a l w a y s _ o n = f a l s e "
2021-06-29 20:42:56 +00:00
myconf_gn+=" e n a b l e _ n a c l = f a l s e "
2022-12-07 09:53:09 +00:00
%if %{with swiftshader}
myconf_gn+=" e n a b l e _ s w i f t s h a d e r = t r u e "
2022-07-04 09:07:38 +00:00
%if %{with subzero}
2021-06-29 20:42:56 +00:00
myconf_gn+=" u s e _ s w i f t s h a d e r _ w i t h _ s u b z e r o = t r u e "
2022-07-04 09:07:38 +00:00
%else
myconf_gn+=" u s e _ s w i f t s h a d e r _ w i t h _ s u b z e r o = f a l s e "
2021-06-29 20:42:56 +00:00
%endif
2022-12-07 09:53:09 +00:00
%else
myconf_gn+=" e n a b l e _ s w i f t s h a d e r = f a l s e "
%endif
2021-06-29 20:42:56 +00:00
myconf_gn+=" i s _ c o m p o n e n t _ f f m p e g = t r u e "
2023-10-27 09:24:58 +00:00
myconf_gn+=" u s e _ c u p s = f a l s e "
2022-08-01 08:25:54 +00:00
2023-03-20 07:15:32 +00:00
# link libvulkan.so and libGLX.so instead of dlopening
2022-10-04 19:13:55 +00:00
myconf_gn+=" a n g l e _ u s e _ c u s t o m _ l i b v u l k a n = f a l s e "
2023-03-20 07:15:32 +00:00
myconf_gn+=" a n g l e _ s h a r e d _ l i b v u l k a n = f a l s e "
myconf_gn+=" a n g l e _ l i n k _ g l x = t r u e "
2023-05-26 15:49:46 +00:00
#Use faster flat_map instead of fallback std::unordered_map implementation in ANGLE.
#Upstream sets it by default to the value of is_clang with the comment “has trouble supporting MSVC”.
#This is supposed to be enabled in chromium and compiles fine with GCC.
myconf_gn+=' angle_enable_abseil=true'
2023-10-27 09:24:58 +00:00
#this is also mistakenly set to is_clang with the (untrue) comment “macros for determining endian type are currently clang specific”
#in fact, 1° clang copied those macros from gcc and 2° this should be unbundled.
myconf_gn+=' v8_use_libm_trig_functions=true'
2024-02-01 09:09:50 +00:00
#yet another is_clang
myconf_gn+=' rtc_enable_avx2=true'
2024-02-22 08:55:18 +00:00
myconf_gn+=' angle_enable_swiftshader=true'
2023-10-27 09:24:58 +00:00
2023-05-26 15:49:46 +00:00
2022-10-04 19:13:55 +00:00
# do not build PDF support
2025-04-26 10:14:41 +00:00
myconf_gn+=' enable_glic=false'
2022-10-04 19:13:55 +00:00
myconf_gn+=" e n a b l e _ p d f = f a l s e "
2025-01-12 20:37:55 +00:00
myconf_gn+=' enable_pdf_ink2=false'
2022-10-04 19:13:55 +00:00
myconf_gn+=" e n a b l e _ p d f _ v i e w e r = f a l s e "
myconf_gn+=" e n a b l e _ p r i n t _ p r e v i e w = f a l s e "
2023-09-13 04:57:45 +00:00
myconf_gn+=" e n a b l e _ p r i n t i n g = f a l s e "
2023-10-21 18:20:42 +00:00
myconf_gn+=' use_cups=false'
2023-08-19 05:38:25 +00:00
#we don't build PDF support, so disabling the below:
#myconf_gn+=" use_system_lcms2=true"
#myconf_gn+=" use_system_libopenjpeg2=true"
2022-10-04 19:13:55 +00:00
2022-10-29 19:25:58 +00:00
#do not build chrome pepper plugins support
myconf_gn+=" e n a b l e _ p l u g i n s = f a l s e "
myconf_gn+=" e n a b l e _ p p a p i = f a l s e "
2024-04-19 21:15:15 +00:00
#it is set by default to enable_ppapi but is required by electron_api_web_frame.cc
myconf_gn+=' content_enable_legacy_ipc=true'
2022-10-04 19:13:55 +00:00
2023-09-29 11:12:59 +00:00
#do not build webextensions support
myconf_gn+=' enable_electron_extensions=false'
2025-04-26 10:14:41 +00:00
myconf_gn+=' enable_platform_apps=false'
2022-08-01 08:25:54 +00:00
2022-08-08 08:46:02 +00:00
# The option below get overriden by whatever is in CFLAGS/CXXFLAGS, so they affect only C++ code.
2022-03-18 15:41:41 +00:00
# symbol_level=2 is full debug
# symbol_level=1 is enough info for stacktraces
2022-10-29 19:25:58 +00:00
# symbol_level=0 no debuginfo (only function names in private symbols)
2024-04-30 18:32:00 +00:00
# blink (HTML engine) and v8 (js engine) are template-heavy, trying to compile them with full debug leads to linker errors due to inherent limitations of the DWARF format.
2025-05-01 21:03:38 +00:00
2024-07-12 10:45:39 +00:00
%if 0%{?fedora}
2025-05-01 21:03:38 +00:00
myconf_gn+=' symbol_level=1' #OOM during linking
2025-01-12 20:37:55 +00:00
%else
2025-05-29 17:44:28 +00:00
%ifarch aarch64 #OOM or logidlelimit, pick your poison
myconf_gn+=' symbol_level=1'
%else
2024-04-30 18:32:00 +00:00
myconf_gn+=' symbol_level=2'
2024-07-12 10:45:39 +00:00
%endif
2025-05-29 17:44:28 +00:00
%endif
2024-04-30 18:32:00 +00:00
myconf_gn+=' blink_symbol_level=1'
myconf_gn+=' v8_symbol_level=1'
2022-08-01 08:25:54 +00:00
2024-07-12 10:45:39 +00:00
#symbol_level should not affect generated code.
myconf_gn+=' enable_stack_trace_line_numbers=true'
2025-01-12 20:37:55 +00:00
#This does nothing since we patch the config out, but is needed to avoid an assert
myconf_gn+=' use_debug_fission=true'
2023-10-21 18:20:42 +00:00
2022-10-26 04:51:48 +00:00
# do not build some chrome features not used by electron
2023-10-21 18:20:42 +00:00
# (some of these only go to buildflag_headers and are dead code rn, but disabling them preemptively as long as they're visible)
2021-06-29 20:42:56 +00:00
myconf_gn+=" e n a b l e _ v r = f a l s e "
2022-07-04 09:07:38 +00:00
myconf_gn+=" e n a b l e _ r e p o r t i n g = f a l s e "
myconf_gn+=" b u i l d _ w i t h _ t f l i t e _ l i b = f a l s e "
2022-12-03 23:54:17 +00:00
myconf_gn+=" b u i l d _ t f l i t e _ w i t h _ x n n p a c k = f a l s e "
2025-08-23 18:33:03 +00:00
myconf_gn+=' build_tflite_with_opencl=false'
2022-07-04 09:07:38 +00:00
myconf_gn+=" s a f e _ b r o w s i n g _ m o d e = 0 "
2025-08-23 18:33:03 +00:00
myconf_gn+=' safe_browsing_use_unrar=false'
2022-10-26 04:51:48 +00:00
myconf_gn+=" e n a b l e _ c a p t i v e _ p o r t a l _ d e t e c t i o n = f a l s e "
myconf_gn+=" e n a b l e _ b r o w s e r _ s p e e c h _ s e r v i c e = f a l s e "
myconf_gn+=" e n a b l e _ s p e e c h _ s e r v i c e = f a l s e "
myconf_gn+=" e n a b l e _ s c r e e n _ a i _ s e r v i c e = f a l s e "
2024-07-12 10:45:39 +00:00
myconf_gn+=' enable_screen_ai_browsertests=false'
2025-08-23 18:33:03 +00:00
myconf_gn+=' enable_constraints=false'
2022-11-05 11:17:41 +00:00
myconf_gn+=" i n c l u d e _ t r a n s p o r t _ s e c u r i t y _ s t a t e _ p r e l o a d _ l i s t = f a l s e "
2022-11-05 18:12:04 +00:00
myconf_gn+=" e n a b l e _ w e b _ s p e e c h = f a l s e "
2022-11-28 15:48:53 +00:00
myconf_gn+=" c h r o m e _ w i d e _ e c h o _ c a n c e l l a t i o n _ s u p p o r t e d = f a l s e "
myconf_gn+=" e n a b l e _ d o w n g r a d e _ p r o c e s s i n g = f a l s e "
myconf_gn+=" e n a b l e _ c l i c k _ t o _ c a l l = f a l s e "
myconf_gn+=" e n a b l e _ w e b u i _ t a b _ s t r i p = f a l s e "
2022-12-03 23:54:17 +00:00
myconf_gn+=" e n a b l e _ w e b u i _ c e r t i f i c a t e _ v i e w e r = f a l s e "
2022-11-28 15:48:53 +00:00
myconf_gn+=" e n a b l e _ b a c k g r o u n d _ c o n t e n t s = f a l s e "
2022-12-19 19:59:13 +00:00
myconf_gn+=" o z o n e _ p l a t f o r m _ h e a d l e s s = f a l s e "
myconf_gn+=" a n g l e _ e n a b l e _ g l _ n u l l = f a l s e "
2023-01-13 05:29:42 +00:00
myconf_gn+=" e n a b l e _ p a i n t _ p r e v i e w = f a l s e "
2023-09-13 04:57:45 +00:00
myconf_gn+=" u s e _ b u n d l e d _ w e s t o n = f a l s e "
myconf_gn+=" e n a b l e _ l e n s _ d e s k t o p = f a l s e "
2023-10-19 17:09:42 +00:00
myconf_gn+=' enable_bound_session_credentials=false'
myconf_gn+=' enable_chrome_notifications=false'
myconf_gn+=' enable_message_center=false'
2023-10-21 18:20:42 +00:00
myconf_gn+=' enable_supervised_users=false'
2024-02-27 19:01:54 +00:00
myconf_gn+=' enable_compose=false'
2024-04-04 20:44:56 +00:00
myconf_gn+=' enterprise_cloud_content_analysis=false'
myconf_gn+=' enterprise_local_content_analysis=false'
myconf_gn+=' enterprise_watermark=false'
2025-06-05 05:16:54 +00:00
myconf_gn+=' enterprise_content_analysis=false'
2024-07-12 10:45:39 +00:00
myconf_gn+=' enable_video_effects=false'
myconf_gn+=' use_fake_screen_ai=true'
myconf_gn+=' webnn_use_tflite=false'
2025-01-12 20:37:55 +00:00
myconf_gn+=' build_dawn_tests=false'
myconf_gn+=' enable_compute_pressure=false'
2025-04-26 10:14:41 +00:00
2023-10-21 18:20:42 +00:00
2025-05-29 17:44:28 +00:00
#These can only be disabled if we don't start at //... but at //electron:...
myconf_gn+=' absl_build_tests=false'
myconf_gn+=' build_with_model_execution=false'
myconf_gn+=' enable_extensions=false'
myconf_gn+=' enable_guest_view=false'
myconf_gn+=' enable_extensions_core=true' #cannot be disabled yet
myconf_gn+=' enable_on_device_translation=false'
myconf_gn+=' enable_session_service=false'
2025-06-05 05:16:54 +00:00
myconf_gn+=' enterprise_client_certificates=false'
myconf_gn+=' enterprise_data_controls=false'
2025-08-23 18:33:03 +00:00
myconf_gn+=' enterprise_telomere_reporting=false'
2025-05-29 17:44:28 +00:00
2023-10-19 17:09:42 +00:00
#FIXME: possibly enable this when skia gets built with rust code by default.
#Need to patch in optflags and possibly FFI LTO hacks (see signal-desktop package for how it's done)
myconf_gn+=' enable_rust=false'
2025-04-26 10:14:41 +00:00
myconf_gn+=' enable_rust_png=false'
2024-04-19 21:15:15 +00:00
myconf_gn+=' enable_chromium_prelude=false'
2025-08-23 18:33:03 +00:00
myconf_gn+=' rtc_rusty_base64=false'
myconf_gn+=' v8_enable_temporal_support=false'
2022-12-19 19:59:13 +00:00
2025-08-23 18:33:03 +00:00
#myconf_gn+=' chrome_root_store_cert_management_ui=false'
2023-10-21 18:20:42 +00:00
myconf_gn+=' use_kerberos=false'
2023-09-13 04:57:45 +00:00
2022-11-28 15:48:53 +00:00
2022-07-04 09:07:38 +00:00
#Do not build Chromecast
2022-10-04 19:13:55 +00:00
myconf_gn+=" e n a b l e _ r e m o t i n g = f a l s e "
2022-07-04 09:07:38 +00:00
myconf_gn+=" e n a b l e _ m e d i a _ r e m o t i n g = f a l s e "
2022-12-03 23:54:17 +00:00
myconf_gn+=" e n a b l e _ s e r v i c e _ d i s c o v e r y = f a l s e "
2025-01-12 20:37:55 +00:00
myconf_gn+=' enable_mdns=false'
2022-07-04 09:07:38 +00:00
2023-03-10 06:02:08 +00:00
#disable some debug/tracing hooks, they increase size and we do not build chrome://tracing anyway (see disable-catapult.patch)
myconf_gn+=" o p t i o n a l _ t r a c e _ e v e n t s _ e n a b l e d = f a l s e "
myconf_gn+=" r t c _ d i s a b l e _ l o g g i n g = t r u e "
myconf_gn+=" r t c _ d i s a b l e _ m e t r i c s = t r u e "
myconf_gn+=" r t c _ d i s a b l e _ t r a c e _ e v e n t s = t r u e "
2023-11-23 20:06:51 +00:00
myconf_gn+=' enable_perfetto_system_consumer=false'
myconf_gn+=' enable_perfetto_trace_processor_json=false'
myconf_gn+=' enable_perfetto_trace_processor_httpd=false'
myconf_gn+=' enable_perfetto_zlib=false'
2023-03-10 06:02:08 +00:00
2025-04-26 10:14:41 +00:00
2022-07-04 09:07:38 +00:00
2022-11-28 15:48:53 +00:00
2024-04-04 20:44:56 +00:00
myconf_gn+=' dawn_complete_static_libs=true'
2022-07-04 09:07:38 +00:00
myconf_gn+=" e n a b l e _ l i b r a r y _ c d m s = f a l s e "
2021-06-29 20:42:56 +00:00
myconf_gn+=" u s e _ p u l s e a u d i o = t r u e l i n k _ p u l s e a u d i o = t r u e "
myconf_gn+=" i s _ c o m p o n e n t _ b u i l d = f a l s e "
myconf_gn+=" u s e _ s y s r o o t = f a l s e "
myconf_gn+=" f a t a l _ l i n k e r _ w a r n i n g s = f a l s e "
2024-04-30 18:32:00 +00:00
2022-10-07 13:16:29 +00:00
2022-01-27 22:16:50 +00:00
myconf_gn+=" d i s a b l e _ f i e l d t r i a l _ t e s t i n g _ c o n f i g = t r u e "
2021-06-29 20:42:56 +00:00
myconf_gn+=" u s e _ u n o f f i c i a l _ v e r s i o n _ n u m b e r = f a l s e "
myconf_gn+=" u s e _ l l d = f a l s e "
2023-08-19 05:38:25 +00:00
2022-07-04 09:07:38 +00:00
%if %{with vaapi}
2024-04-19 21:15:15 +00:00
myconf_gn+=' use_vaapi=true use_vaapi_image_codecs=true'
2023-08-19 05:38:25 +00:00
%else
2024-04-19 21:15:15 +00:00
myconf_gn+=' use_vaapi=false use_vaapi_image_codecs=false'
%endif
%if %{with v4l2}
myconf_gn+=' use_v4l2_codec=true'
%else
myconf_gn+=' use_v4l2_codec=false'
2022-07-04 09:07:38 +00:00
%endif
2023-08-19 05:38:25 +00:00
2021-06-29 20:42:56 +00:00
myconf_gn+=" t r e a t _ w a r n i n g s _ a s _ e r r o r s = f a l s e "
myconf_gn+=" u s e _ d b u s = t r u e "
myconf_gn+=" e n a b l e _ v u l k a n = t r u e "
myconf_gn+=" i c u _ u s e _ d a t a _ f i l e = f a l s e "
2021-11-11 20:37:54 +00:00
myconf_gn+=" m e d i a _ u s e _ o p e n h 2 6 4 = f a l s e "
myconf_gn+=" r t c _ u s e _ h 2 6 4 = f a l s e "
2022-01-27 22:16:50 +00:00
myconf_gn+=" u s e _ v 8 _ c o n t e x t _ s n a p s h o t = t r u e "
myconf_gn+=" v 8 _ u s e _ e x t e r n a l _ s t a r t u p _ d a t a = t r u e "
2022-07-04 09:07:38 +00:00
myconf_gn+=" u s e _ s y s t e m _ z l i b = t r u e "
myconf_gn+=" u s e _ s y s t e m _ l i b j p e g = t r u e "
myconf_gn+=" u s e _ s y s t e m _ l i b p n g = t r u e "
2025-01-12 20:37:55 +00:00
myconf_gn+=' use_system_libwayland=true'
2023-09-13 04:57:45 +00:00
#we don't build PDF support, so disabling the below:
#myconf_gn+=" use_system_lcms2=true"
#myconf_gn+=" use_system_libopenjpeg2=true"
2022-01-27 22:16:50 +00:00
myconf_gn+=" u s e _ s y s t e m _ h a r f b u z z = t r u e "
myconf_gn+=" u s e _ s y s t e m _ f r e e t y p e = t r u e "
2022-07-04 09:07:38 +00:00
myconf_gn+=" u s e _ s y s t e m _ c a r e s = t r u e "
myconf_gn+=" u s e _ s y s t e m _ n g h t t p 2 = t r u e "
2024-11-13 15:05:12 +00:00
%if %{with system_ada}
myconf_gn+=' use_system_ada=true'
%endif
2022-07-07 08:02:56 +00:00
%if %{with system_llhttp}
myconf_gn+=" u s e _ s y s t e m _ l l h t t p = t r u e "
%endif
%if %{with system_histogram}
myconf_gn+=" u s e _ s y s t e m _ h i s t o g r a m = t r u e "
%endif
2025-04-26 10:14:41 +00:00
%if %{with system_simdjson}
myconf_gn+=' use_system_simdjson=true'
2023-10-16 08:59:19 +00:00
%endif
2021-06-29 20:42:56 +00:00
myconf_gn+=" i s _ c l a n g = f a l s e "
%if %{with lto}
myconf_gn+=" g c c _ l t o = t r u e "
# endif with lto
%endif
2024-09-14 08:17:25 +00:00
%if %{with gdbjit}
#Enable GDB protocol (--js-flags=--gdbjit_full). It's disabled by default in Chromium but very useful for Node/Electron
myconf_gn+=' v8_enable_gdbjit=true'
%endif
2022-07-04 09:07:38 +00:00
2021-06-29 20:42:56 +00:00
%if %{with pipewire}
myconf_gn+=" r t c _ u s e _ p i p e w i r e = t r u e r t c _ l i n k _ p i p e w i r e = t r u e "
%endif
2022-12-07 09:53:09 +00:00
%if %{with qt}
2024-04-30 18:32:00 +00:00
myconf_gn+=' use_qt=true'
myconf_gn+=' moc_qt5_path="%{_libdir}/qt5/bin/"'
myconf_gn+=' use_qt6=true'
myconf_gn+=' moc_qt6_path="%{_qt6_libexecdir}"'
2022-12-07 09:53:09 +00:00
%endif
2022-07-04 09:07:38 +00:00
2023-01-13 05:29:42 +00:00
2022-07-04 09:07:38 +00:00
# Do not build WebGPU support. It is huge and not used by ANY known apps (we would know if it was — it's hidden behind an experimental flag).
myconf_gn+=" u s e _ d a w n = f a l s e "
2024-04-19 21:15:15 +00:00
myconf_gn+=' skia_use_dawn=false'
2022-07-04 09:07:38 +00:00
2021-06-29 20:42:56 +00:00
# The proprietary codecs just force the chromium to say they can use it and
# offload the actual computation to the ffmpeg, otherwise the chromium
# won't be able to load the codec even if the library can handle it
myconf_gn+=" p r o p r i e t a r y _ c o d e c s = t r u e "
myconf_gn+=" f f m p e g _ b r a n d i n g = \" C h r o m e \" "
# GN does not support passing cflags:
# https://bugs.chromium.org/p/chromium/issues/detail?id=642016
2025-05-29 17:44:28 +00:00
gn gen out/Release --testonly=false \
--root-target=//electron:electron_app \
--root-pattern=//electron:electron_app \
--root-pattern=//electron:chromium_licenses \
--root-pattern=//electron:copy_node_headers \
--root-pattern=//electron:electron_version_file \
--args=" i m p o r t ( \" / / e l e c t r o n / b u i l d / a r g s / r e l e a s e . g n \" ) $ { m y c o n f _ g n } "
2022-09-09 08:50:38 +00:00
2021-06-29 20:42:56 +00:00
2022-10-26 04:51:48 +00:00
# dump the linker command line (if any) in case of failure
2024-02-27 19:01:54 +00:00
ninja -v %{?_smp_mflags} -C out/Release chromium_licenses copy_node_headers version electron || (cat out/Release/*.rsp | sed 's/ /\n/g' && false)
2022-09-09 08:50:38 +00:00
2021-07-12 19:40:24 +00:00
2021-06-29 20:42:56 +00:00
%install
install -d -m 0755 %{buildroot} %{_bindir}
2022-01-29 19:59:26 +00:00
install -d -m 0755 %{buildroot} %{_includedir} /electron
2021-06-29 20:42:56 +00:00
install -d -m 0755 %{buildroot} %{_libdir} /electron
install -d -m 0755 %{buildroot} %{_datadir} /applications
install -d -m 0755 %{buildroot} %{_datadir} /pixmaps/
install -d -m 0755 %{buildroot} %{_datadir} /icons/hicolor/symbolic/apps/
2022-07-04 09:07:38 +00:00
install -pm 0755 %{SOURCE10} %{buildroot} %{_bindir} /%{mod_name}
sed -i 's[XXXLIBDIRXXX[%{_libdir}[g' %{buildroot} %{_bindir} /%{mod_name}
2023-10-19 17:09:42 +00:00
install -pvDm644 electron/default_app/icon.png %{buildroot} %{_datadir} /icons/hicolor/1024x1024/apps/%{mod_name} .png
2023-10-12 17:11:37 +00:00
install -pvDm644 electron/shell/browser/resources/win/extracted-0.png %{buildroot} %{_datadir} /icons/hicolor/16x16/apps/%{mod_name} .png
install -pvDm644 electron/shell/browser/resources/win/extracted-1.png %{buildroot} %{_datadir} /icons/hicolor/32x32/apps/%{mod_name} .png
install -pvDm644 electron/shell/browser/resources/win/extracted-2.png %{buildroot} %{_datadir} /icons/hicolor/48x48/apps/%{mod_name} .png
install -pvDm644 electron/shell/browser/resources/win/extracted-3.png %{buildroot} %{_datadir} /icons/hicolor/256x256/apps/%{mod_name} .png
2021-06-29 20:42:56 +00:00
desktop-file-install --dir %{buildroot} %{_datadir} /applications/ %{SOURCE11}
pushd out/Release
2024-04-30 18:32:00 +00:00
install -pm 0644 version -t %{buildroot} %{_libdir} /electron/
2021-07-15 22:00:36 +00:00
2025-05-29 17:44:28 +00:00
gn desc \
--root-target=//electron:electron_app \
--root-pattern=//electron:electron_app \
--root-pattern=//electron:chromium_licenses \
--root-pattern=//electron:copy_node_headers \
--root-pattern=//electron:electron_version_file \
. //electron:electron_app runtime_deps | grep -v ^gen/ | sort | uniq | xargs -t cp -a -v --parents -t %{buildroot} %{_libdir} /electron/ --
2021-06-29 20:42:56 +00:00
popd
2021-10-07 22:05:47 +00:00
2022-11-02 11:16:40 +00:00
2021-06-29 20:42:56 +00:00
2025-05-09 20:23:34 +00:00
cp -lrvT out/Release/gen/node_headers %{buildroot} %{_includedir} /electron
2022-01-29 19:59:26 +00:00
2024-05-11 22:39:59 +00:00
# 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.
# Not all scripts work when run under electron,
# but importantly npm/yarn and GYP do.
mkdir -pv %{buildroot} %{_libexecdir} /electron-node
cat <<EOF > %{buildroot} %{_libexecdir} /electron-node/node
#!/bin/sh
ELECTRON_RUN_AS_NODE=1 exec %{_libdir} /electron/electron " \ $ @ "
EOF
# HACK: This will refer to /usr/bin/npm17 on openSUSE, /usr/bin/npm on Fedora which are Node scripts
cat <<EOF >%{buildroot} %{_libexecdir} /electron-node/npm
#!/bin/sh
exec %{_libexecdir} /electron-node/node %{_bindir} /npm%{NODEJS_DEFAULT_VER} " \ $ @ "
EOF
cat <<EOF > %{buildroot} %{_libexecdir} /electron-node/npx
#!/bin/sh
exec %{_libexecdir} /electron-node/node %{_bindir} /npx%{NODEJS_DEFAULT_VER} " \ $ @ "
EOF
# On Fedora, /usr/bin/yarn is a node script which means it needs to be wrapped too. On openSUSE, it is a shell script.
%if 0%{?fedora}
cat <<EOF > %{buildroot} %{_libexecdir} /electron-node/yarn
#!/bin/sh
exec %{_libexecdir} /electron-node/node %{_bindir} /yarn " \ $ @ "
EOF
%endif
chmod -v 0755 %{buildroot} %{_libexecdir} /electron-node/*
2022-09-21 09:00:14 +00:00
# Install electron.macros
mkdir -p %{buildroot} %{_rpmconfigdir} /macros.d
cp /dev/stdin %{buildroot} %{_rpmconfigdir} /macros.d/macros.electron <<" E O F "
2024-05-11 22:39:59 +00:00
# Ensure rebuilds when electron major changes.
2022-09-21 09:00:14 +00:00
%%electron_req Requires: electron%{_isa}(abi) = %{abi_version}
2024-05-11 22:39:59 +00:00
# Build native modules against Electron. This should be done as the first step in ‰build. You must set CFLAGS/LDFLAGS previously.
# You can call it multiple times in different directories and pass more parameters to it (seen in vscode)
2025-04-26 10:14:41 +00:00
%%electron_rebuild PATH=" %{_libexecdir} / e l e c t r o n - n o d e : $ P A T H " npm rebuild --verbose --foreground-scripts --nodedir=%{_includedir} /electron
2024-05-11 22:39:59 +00:00
# Sanity check that native modules load. You must include this in ‰check if the package includes native modules (possibly in addition to actual test suites)
# These do, in order:
# 1. Detect underlinking (missing dependencies)
# 2. Detect accidental linking to libuv which must not be used (Electron exports its own incompatible version)
# 3. Actually load each module
# This one should be paired with a simple `Requires: nodejs-electron%{_isa}` in requirements.
%%electron_check_native \
find '%%{buildroot}' -type f -name '*.node' -print0 | xargs -0 -t -IXXX sh -c '! ldd -d -r XXX | \\\
grep '\\' '^undefined symbol' \\'' | \\\
grep -v '\\' '^undefined symbol: napi_' \\'' | \\\
grep -v '\\' '^undefined symbol: uv_' \\'' ' \
find '%%{buildroot}' -type f -name '*.node' -print0 | xargs -0 -t -IXXX sh -c '! objdump -p XXX | grep -F libuv.so.1' \
find '%%{buildroot}' -type f -name '*.node' -print0 | xargs -0 -t -IXXX env ELECTRON_RUN_AS_NODE=1 %{_libdir} /electron/electron -e 'require("XXX")'
# This one allows use of unstable APIs and should be paired with the `‰electron_req` macro in requirements.
%%electron_check_native_unstable \
find '%%{buildroot}' -type f -name '*.node' -print0 | xargs -0 -t -IXXX sh -c '! ldd -d -r XXX | \\\
grep '\\' '^undefined symbol' \\'' | \\\
grep -v '\\' '^undefined symbol: node_' \\'' | \\\
grep -v '\\' '^undefined symbol: _ZN12v8_inspector' \\'' | \\\
grep -v '\\' '^undefined symbol: _ZN2v8' \\'' | \\\
grep -v '\\' '^undefined symbol: _ZN4node' \\'' | \\\
grep -v '\\' '^undefined symbol: _ZN5cppgc' \\'' | \\\
grep -v '\\' '^undefined symbol: _ZN8electron' \\'' | \\\
grep -v '\\' '^undefined symbol: _ZNK12v8_inspector' \\'' | \\\
grep -v '\\' '^undefined symbol: _ZNK2v8' \\'' | \\\
grep -v '\\' '^undefined symbol: _ZNK4node' \\'' | \\\
grep -v '\\' '^undefined symbol: _ZNK5cppgc' \\'' | \\\
grep -v '\\' '^undefined symbol: napi_' \\'' | \\\
grep -v '\\' '^undefined symbol: uv_' \\'' ' \
find '%%{buildroot}' -type f -name '*.node' -print0 | xargs -0 -t -IXXX sh -c '! objdump -p XXX | grep -F libuv.so.1' \
find '%%{buildroot}' -type f -name '*.node' -print0 | xargs -0 -t -IXXX env ELECTRON_RUN_AS_NODE=1 %{_libdir} /electron/electron -e 'require("XXX")'
2022-09-21 09:00:14 +00:00
EOF
chmod -v 644 %{buildroot} %{_rpmconfigdir} /macros.d/macros.electron
2022-09-09 08:50:38 +00:00
2023-02-09 18:41:02 +00:00
#help debugedit find the source files
2025-05-29 17:44:28 +00:00
ln -srvf third_party/emoji-segmenter/src/emoji_presentation_scanner.c -t out/Release
ln -srvf third_party/emoji-segmenter/src/emoji_presentation_scanner.rl -t out/Release
ln -srvf third_party/angle/src/compiler/translator/glslang.l -t out/Release
ln -srvf third_party/angle/src/compiler/preprocessor/preprocessor.l -t out/Release
ln -srvf third_party -t out/Release
2023-02-09 18:41:02 +00:00
2021-06-29 20:42:56 +00:00
%files
2022-09-09 08:50:38 +00:00
%license electron/LICENSE out/Release/LICENSES.chromium.html
2021-06-29 20:42:56 +00:00
%{_bindir} /electron
2024-06-29 08:08:03 +00:00
%{_datadir} /applications/Electron.desktop
2023-10-12 17:11:37 +00:00
%{_datadir} /icons/hicolor/16x16/apps/electron.png
%{_datadir} /icons/hicolor/32x32/apps/electron.png
%{_datadir} /icons/hicolor/48x48/apps/electron.png
%{_datadir} /icons/hicolor/256x256/apps/electron.png
%{_datadir} /icons/hicolor/1024x1024
2021-10-07 22:05:47 +00:00
2024-04-30 18:32:00 +00:00
%dir %{_libdir} /electron/
%{_libdir} /electron/chrome_100_percent.pak
%{_libdir} /electron/chrome_200_percent.pak
%{_libdir} /electron/chrome_crashpad_handler
%{_libdir} /electron/electron
%{_libdir} /electron/libEGL.so
%{_libdir} /electron/libGLESv2.so
%{_libdir} /electron/libvk_swiftshader.so
%{_libdir} /electron/resources.pak
%{_libdir} /electron/snapshot_blob.bin
%{_libdir} /electron/v8_context_snapshot.bin
%{_libdir} /electron/version
%{_libdir} /electron/vk_swiftshader_icd.json
%dir %{_libdir} /electron/locales
%{_libdir} /electron/locales/*.pak
%dir %{_libdir} /electron/resources
%{_libdir} /electron/resources/default_app.asar
2021-06-29 20:42:56 +00:00
2022-01-29 19:59:26 +00:00
%files devel
%{_includedir} /electron
2022-09-21 09:00:14 +00:00
%{_rpmconfigdir} /macros.d/macros.electron
2024-05-11 22:39:59 +00:00
%dir %{_libexecdir} /electron-node
%{_libexecdir} /electron-node/node
%{_libexecdir} /electron-node/npm
%{_libexecdir} /electron-node/npx
%if 0%{?fedora}
%{_libexecdir} /electron-node/yarn
%endif
2022-01-29 19:59:26 +00:00
2022-10-04 19:13:55 +00:00
%files doc
%doc electron/README.md
%doc electron/docs
2024-04-30 18:32:00 +00:00
%if %{with qt}
%files qt5
%{_libdir} /electron/libqt5_shim.so
%files qt6
%{_libdir} /electron/libqt6_shim.so
%endif
2021-06-29 20:42:56 +00:00
%changelog