8
0

Accepting request 949719 from devel:languages:javascript

- Fix build on Fedora
  * Added electron-16-node-fix-python3.10-import.patch
- Add devel package with node headers (e.g. for node-gyp)
  * Added electron-16-system-node-headers.patch
- Fix building on Fedora and openSUSE Leap

OBS-URL: https://build.opensuse.org/request/show/949719
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/nodejs-electron?expand=0&rev=16
This commit is contained in:
2022-01-29 19:59:26 +00:00
committed by Git OBS Bridge
parent d94dec1e89
commit 49ed28a0a7
6 changed files with 107 additions and 15 deletions

View File

@@ -216,12 +216,14 @@ keeplibs=(
third_party/ffmpeg
third_party/fft2d
third_party/flatbuffers
third_party/freetype
third_party/fusejs/dist
third_party/gemmlowp
third_party/google_input_tools
third_party/google_input_tools/third_party/closure_library
third_party/google_input_tools/third_party/closure_library/third_party/closure
third_party/googletest
third_party/harfbuzz-ng
third_party/harfbuzz-ng/utils
third_party/highway
third_party/hunspell

View File

@@ -0,0 +1,13 @@
Index: electron-16.0.7/third_party/electron_node/tools/inspector_protocol/jinja2/tests.py
===================================================================
--- electron-16.0.7.orig/third_party/electron_node/tools/inspector_protocol/jinja2/tests.py 2022-01-19 09:58:52.946185049 +0100
+++ electron-16.0.7/third_party/electron_node/tools/inspector_protocol/jinja2/tests.py 2022-01-27 13:05:22.634208381 +0100
@@ -10,7 +10,7 @@
"""
import operator
import re
-from collections import Mapping
+from collections.abc import Mapping
from jinja2.runtime import Undefined
from jinja2._compat import text_type, string_types, integer_types
import decimal

View File

@@ -0,0 +1,14 @@
Index: electron-16.0.7/third_party/electron_node/common.gypi
===================================================================
--- electron-16.0.7.orig/third_party/electron_node/common.gypi 2022-01-19 10:13:06.686093505 +0100
+++ electron-16.0.7/third_party/electron_node/common.gypi 2022-01-27 09:34:39.846154230 +0100
@@ -404,6 +404,9 @@
'BUILDING_UV_SHARED=1',
],
}],
+ [ 'OS in "linux"', {
+ 'cflags': [ '-I/usr/include/electron' ],
+ }],
[ 'OS in "linux freebsd openbsd solaris aix"', {
'cflags': [ '-pthread' ],
'ldflags': [ '-pthread' ],

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f724f7a30f61a2aea0d3e43a4df68e850accec5a7a0f05ca18786d96278f6d15
size 1178200944
oid sha256:c4dbe0d954fa54ca0aa859ca4905e9b6123f74a74d057da40a4892b9c1538624
size 1192482232

View File

@@ -1,3 +1,16 @@
-------------------------------------------------------------------
Fri Jan 28 13:15:25 UTC 2022 - Andreas Schneider <asn@cryptomilk.org>
- Fix build on Fedora
* Added electron-16-node-fix-python3.10-import.patch
-------------------------------------------------------------------
Thu Jan 27 08:07:59 UTC 2022 - Andreas Schneider <asn@cryptomilk.org>
- Add devel package with node headers (e.g. for node-gyp)
* Added electron-16-system-node-headers.patch
- Fix building on Fedora and openSUSE Leap
-------------------------------------------------------------------
Wed Jan 19 18:09:33 UTC 2022 - Andreas Schneider <asn@cryptomilk.org>

View File

@@ -2,6 +2,7 @@
# spec file for package nodejs-electron
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2021-2022 Andreas Schneider <asn@cryptomilk.org>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +20,7 @@
%define mod_name electron
ExcludeArch: %{ix86} %{arm}
%ifarch x86_64
%if 0%{?suse_version} > 1500 || 0%{?fedora_version}
%if 0%{?suse_version} > 1500 || 0%{?fedora}
# DISABLE LTO AS IT IS BROKEN RIGHT NOW
#%%bcond_without lto
%bcond_with lto
@@ -33,7 +34,7 @@ ExcludeArch: %{ix86} %{arm}
%bcond_with lto
# endif arch x86_64
%endif
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150200 || 0%{?fedora_version}
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150200 || 0%{?fedora}
%bcond_without pipewire
%else
%bcond_with pipewire
@@ -43,7 +44,7 @@ ExcludeArch: %{ix86} %{arm}
%else
%bcond_without swiftshader
%endif
%if 0%{?suse_version} >= 1550 || 0%{?fedora_version} > 34
%if 0%{?suse_version} >= 1550 || 0%{?fedora} > 34
%bcond_without systemicu
%else
%bcond_with systemicu
@@ -55,6 +56,18 @@ ExcludeArch: %{ix86} %{arm}
%else
%bcond_with clang
%endif
%if 0%{?suse_version} >= 1550 || 0%{?fedora} > 35
%bcond_without system_harfbuzz
%bcond_without system_freetype
%else
%bcond_with system_harfbuzz
%bcond_with system_freetype
%endif
%if 0%{?suse_version}
%bcond_without system_ffmpeg
%else
%bcond_with system_ffmpeg
%endif
Name: nodejs-electron
Version: 16.0.7
Release: 0
@@ -68,7 +81,7 @@ Source10: electron-launcher.sh
Source11: electron.desktop
Source12: electron-logo-symbolic.svg
Patch0: chromium-95-compiler.patch
%if 0%{?sle_version} < 150300 || 0%{?fedora_version} < 34
%if 0%{?sle_version} < 150300 || 0%{?fedora} < 34
# Fixed with ld.gold >= 2.36
# https://sourceware.org/bugzilla/show_bug.cgi?id=26200
Patch1: chromium-disable-parallel-gold.patch
@@ -81,8 +94,10 @@ Patch6: chromium-vaapi.patch
Patch7: chromium-91-java-only-allowed-in-android-builds.patch
Patch8: chromium-glibc-2.34.patch
Patch9: chromium-86-fix-vaapi-on-intel.patch
%if %{with system_ffmpeg}
Patch10: chromium-93-ffmpeg-4.4.patch
Patch11: chromium-94-ffmpeg-roll.patch
%endif
Patch12: chromium-96-RestrictedCookieManager-tuple.patch
Patch13: chromium-96-CouponDB-include.patch
Patch14: chromium-96-DrmRenderNodePathFinder-include.patch
@@ -101,6 +116,12 @@ Patch22: electron-13-fix-base-check-nomerge.patch
Patch23: electron-13-blink-gcc-ambiguous-nodestructor.patch
# Fix electron patched code
Patch24: electron-16-std-vector-non-const.patch
# Fix common.gypi to include /usr/include/electron
Patch25: electron-16-system-node-headers.patch
%if 0%{?fedora} >= 35
# Fix collections import with python 3.10
Patch26: electron-16-node-fix-python3.10-import.patch
%endif
BuildRequires: SDL-devel
BuildRequires: binutils-gold
BuildRequires: bison
@@ -131,7 +152,7 @@ BuildRequires: clang >= 8.0.0
BuildRequires: lld >= 8.0.0
BuildRequires: ninja >= 1.7.2
%endif
%if 0%{?fedora_version}
%if 0%{?fedora}
# Required for /usr/bin/clang-format
BuildRequires: clang-tools-extra
BuildRequires: libatomic
@@ -159,13 +180,17 @@ BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(dri)
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(flac++)
%if %{with system_freetype}
BuildRequires: pkgconfig(freetype2)
%endif
BuildRequires: pkgconfig(gbm)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(glproto)
BuildRequires: pkgconfig(gtk+-2.0)
BuildRequires: pkgconfig(gtk+-3.0)
%if %{with system_harfbuzz}
BuildRequires: pkgconfig(harfbuzz) > 2.3.0
%endif
BuildRequires: pkgconfig(hunspell)
%if %{with systemicu}
BuildRequires: pkgconfig(icu-i18n) >= 68.0
@@ -202,7 +227,7 @@ BuildRequires: pkgconfig(libva)
BuildRequires: pkgconfig(libwebp) >= 0.4.0
BuildRequires: pkgconfig(libxml-2.0) >= 2.9.5
BuildRequires: pkgconfig(libxslt)
%if 0%{?fedora_version}
%if 0%{?fedora}
BuildRequires: minizip-compat-devel
%else
BuildRequires: pkgconfig(minizip)
@@ -255,7 +280,7 @@ BuildRequires: libjpeg-turbo-devel
BuildRequires: pkgconfig(vpx) >= 1.8.2
%endif
%if %{without clang}
%if 0%{?suse_version} >= 1550 || 0%{?fedora_version}
%if 0%{?suse_version} >= 1550 || 0%{?fedora}
BuildRequires: gcc >= 10
BuildRequires: gcc-c++ >= 10
%else
@@ -278,6 +303,14 @@ Provides: nodejs-electron-prebuilt = %{version}
%description
Nodejs application: Build cross platform desktop apps with JavaScript, HTML, and CSS
%package devel
Summary: Electron development headers
Group: Development/Libraries/C and C++
Requires: nodejs-electron = %{version}
%description devel
Development headers for Electron projects.
%if 0%{?fedora}
%global debug_package %{nil}
%endif
@@ -327,7 +360,7 @@ export CXX=clang++
# REDUCE DEBUG as it gets TOO large
ARCH_FLAGS="`echo %{optflags} | sed -e 's/^-g / /g' -e 's/ -g / /g' -e 's/ -g$//g'`"
%if 0%{?fedora_version}
%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="`echo $ARCH_FLAGS | sed -e 's/ -fexceptions / /g'`"
@@ -348,7 +381,7 @@ export CXXFLAGS="${CXXFLAGS} -Wno-address -Wno-dangling-else -Wno-packed-not-ali
export CFLAGS="${CXXFLAGS}"
export CXXFLAGS="${CXXFLAGS} -Wno-subobject-linkage -Wno-class-memaccess -Wno-invalid-offsetof -fpermissive"
%if 0%{?suse_version} >= 1550 || 0%{?fedora_version}
%if 0%{?suse_version} >= 1550 || 0%{?fedora}
export CC=gcc
export CXX=g++
%else
@@ -370,8 +403,6 @@ export RANLIB=ranlib
gn_system_libraries=(
flac
fontconfig
freetype
harfbuzz-ng
libdrm
libevent
libjpeg
@@ -386,11 +417,19 @@ gn_system_libraries=(
zlib
)
%if %{with system_harfbuzz}
gn_system_libraries+=( harfbuzz-ng )
%endif
%if %{with system_freetype}
gn_system_libraries+=( freetype )
%endif
%if %{with systemicu}
gn_system_libraries+=( icu )
%endif
%if 0%{?suse_version}
%if %{with system_ffmpeg}
gn_system_libraries+=( ffmpeg )
%endif
@@ -448,8 +487,12 @@ myconf_gn+=" media_use_openh264=false"
myconf_gn+=" rtc_use_h264=false"
myconf_gn+=" use_v8_context_snapshot=true"
myconf_gn+=" v8_use_external_startup_data=true"
%if %{with system_harfbuzz}
myconf_gn+=" use_system_harfbuzz=true"
%endif
%if %{with system_freetype}
myconf_gn+=" use_system_freetype=true"
%endif
%if %{with clang}
myconf_gn+=" is_clang=true clang_base_path=\"/usr\" clang_use_chrome_plugins=false"
@@ -483,12 +526,14 @@ myconf_gn+=" ffmpeg_branding=\"Chrome\""
# https://bugs.chromium.org/p/chromium/issues/detail?id=642016
gn gen out/Release --args="import(\"//electron/build/args/release.gn\") ${myconf_gn}"
ninja -v %{?_smp_mflags} -C out/Release electron
ninja -v %{?_smp_mflags} -C out/Release copy_headers
# strip the debugging and symbol information
electron/script/strip-binaries.py -d out/Release
%install
install -d -m 0755 %{buildroot}%{_bindir}
install -d -m 0755 %{buildroot}%{_includedir}/electron
install -d -m 0755 %{buildroot}%{_libdir}/electron
install -d -m 0755 %{buildroot}%{_libdir}/electron/swiftshader
install -d -m 0755 %{buildroot}%{_datadir}/applications
@@ -504,7 +549,7 @@ desktop-file-install --dir %{buildroot}%{_datadir}/applications/ %{SOURCE11}
pushd out/Release
rsync -av *.bin *.pak *.so resources %{buildroot}%{_libdir}/electron/
%if 0%{?fedora_version}
%if %{without system_ffmpeg}
rm -f %{buildroot}%{_libdir}/electron/libffmpeg*
%endif
@@ -530,6 +575,8 @@ echo -n "%{version}" > %{buildroot}%{_libdir}/electron/version
mkdir -p "%{buildroot}%{_sysconfdir}/webapps"
mkdir -p "%{buildroot}%{_datadir}/webapps"
rsync -av out/Release/gen/node_headers/include/node/* %{buildroot}%{_includedir}/electron
%files
%license electron/LICENSE
%doc electron/README.md
@@ -569,4 +616,7 @@ mkdir -p "%{buildroot}%{_datadir}/webapps"
%dir %{_sysconfdir}/webapps
%dir %{_datadir}/webapps
%files devel
%{_includedir}/electron
%changelog