2024-11-01 13:59:14 +00:00
|
|
|
# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
|
|
|
|
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
2023-01-11 00:40:45 +00:00
|
|
|
pkgname=electron
|
2024-11-30 18:18:38 +00:00
|
|
|
pkgver=33.2.1
|
2024-11-01 13:59:14 +00:00
|
|
|
_gittag=v"${pkgver/_beta/-beta.}"
|
2023-05-05 05:10:04 +00:00
|
|
|
pkgrel=0
|
2024-11-30 18:18:38 +00:00
|
|
|
_chromium=130.0.6723.127
|
2024-11-01 13:59:14 +00:00
|
|
|
_copium_tag=129.1
|
2024-06-02 23:02:17 +00:00
|
|
|
_depot_tools=495b23b39aaba2ca3b55dd27cadc523f1cb17ee6
|
2023-01-11 00:40:45 +00:00
|
|
|
pkgdesc="Electron cross-platform desktop toolkit"
|
|
|
|
url="https://github.com/electron/electron"
|
2023-11-24 17:56:51 +00:00
|
|
|
arch="aarch64 x86_64" # same as chromium
|
2023-01-11 00:40:45 +00:00
|
|
|
license="MIT"
|
|
|
|
depends="gtk+3.0 so:libudev.so.1 xdg-utils"
|
2024-11-01 13:59:14 +00:00
|
|
|
_llvmver=19
|
2023-01-11 00:40:45 +00:00
|
|
|
makedepends="
|
2024-06-02 23:02:17 +00:00
|
|
|
ada-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
alsa-lib-dev
|
|
|
|
aom-dev
|
2024-06-02 23:02:17 +00:00
|
|
|
base64-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
bash
|
|
|
|
brotli-dev
|
|
|
|
bsd-compat-headers
|
|
|
|
bzip2-dev
|
|
|
|
c-ares-dev
|
|
|
|
cairo-dev
|
2024-11-01 13:59:14 +00:00
|
|
|
clang$_llvmver-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
clang-extra-tools
|
|
|
|
compiler-rt
|
2024-06-02 23:02:17 +00:00
|
|
|
crc32c-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
cups-dev
|
|
|
|
curl-dev
|
|
|
|
dav1d-dev
|
|
|
|
dbus-glib-dev
|
2024-06-02 23:02:17 +00:00
|
|
|
double-conversion-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
eudev-dev
|
|
|
|
ffmpeg-dev
|
|
|
|
findutils
|
|
|
|
flac-dev
|
2024-06-02 23:02:17 +00:00
|
|
|
flatbuffers-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
flex
|
|
|
|
freetype-dev
|
|
|
|
gperf
|
|
|
|
gtk+3.0-dev
|
|
|
|
gn
|
|
|
|
gzip
|
|
|
|
harfbuzz-dev
|
2024-06-02 23:02:17 +00:00
|
|
|
hdrhistogram-c-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
hunspell-dev
|
|
|
|
http-parser-dev
|
2023-09-01 17:03:15 +00:00
|
|
|
hwdata-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
java-jdk
|
|
|
|
jpeg-dev
|
2024-11-01 13:59:14 +00:00
|
|
|
jsoncpp-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
krb5-dev
|
|
|
|
lcms2-dev
|
|
|
|
libarchive-tools
|
|
|
|
libavif-dev
|
|
|
|
libbsd-dev
|
|
|
|
libcap-dev
|
2024-06-02 23:02:17 +00:00
|
|
|
libdrm-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
libevent-dev
|
|
|
|
libexif-dev
|
|
|
|
libgcrypt-dev
|
|
|
|
libjpeg-turbo-dev
|
|
|
|
libnotify-dev
|
2024-06-02 23:02:17 +00:00
|
|
|
libsecret-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
libusb-dev
|
|
|
|
libva-dev
|
|
|
|
libwebp-dev
|
|
|
|
libxcomposite-dev
|
|
|
|
libxcursor-dev
|
|
|
|
libxinerama-dev
|
|
|
|
libxml2-dev
|
|
|
|
libxrandr-dev
|
|
|
|
libxscrnsaver-dev
|
|
|
|
libxslt-dev
|
|
|
|
linux-headers
|
|
|
|
lld
|
2024-11-01 13:59:14 +00:00
|
|
|
llvm$_llvmver
|
2023-01-11 00:40:45 +00:00
|
|
|
mesa-dev
|
|
|
|
minizip-dev
|
|
|
|
nghttp2-dev
|
|
|
|
nodejs
|
|
|
|
npm
|
|
|
|
nss-dev
|
2024-06-02 23:02:17 +00:00
|
|
|
openh264-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
opus-dev
|
|
|
|
pciutils-dev
|
|
|
|
perl
|
|
|
|
pipewire-dev
|
|
|
|
pulseaudio-dev
|
|
|
|
py3-httplib2
|
2024-06-02 23:02:17 +00:00
|
|
|
py3-jinja2
|
2023-01-11 00:40:45 +00:00
|
|
|
py3-parsing
|
2024-06-02 23:02:17 +00:00
|
|
|
py3-setuptools
|
2023-01-11 00:40:45 +00:00
|
|
|
py3-six
|
|
|
|
python3
|
2023-05-05 05:10:04 +00:00
|
|
|
qt5-qtbase-dev
|
2024-11-01 13:59:14 +00:00
|
|
|
re2-dev
|
2023-05-05 05:10:04 +00:00
|
|
|
rsync
|
2023-11-24 17:56:51 +00:00
|
|
|
rust
|
2024-11-01 13:59:14 +00:00
|
|
|
rust-bindgen
|
2023-01-11 00:40:45 +00:00
|
|
|
samurai
|
2024-11-01 13:59:14 +00:00
|
|
|
snappy-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
speex-dev
|
2024-11-01 13:59:14 +00:00
|
|
|
spirv-tools-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
sqlite-dev
|
2024-11-01 13:59:14 +00:00
|
|
|
woff2-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
xcb-proto
|
|
|
|
yarn
|
|
|
|
zlib-dev
|
2023-11-24 17:56:51 +00:00
|
|
|
zstd-dev
|
2023-01-11 00:40:45 +00:00
|
|
|
"
|
|
|
|
subpackages="$pkgname-lang $pkgname-dev"
|
|
|
|
# the lower patches are specific to electron, the top ones are from the equivalent chromium version
|
2024-11-01 13:59:14 +00:00
|
|
|
source="
|
|
|
|
https://ayakael.net/api/packages/mirrors/generic/electron/$_gittag/electron-$_gittag-$_chromium.tar.zst
|
2024-06-02 23:02:17 +00:00
|
|
|
copium-$_copium_tag.tar.gz::https://codeberg.org/selfisekai/copium/archive/$_copium_tag.tar.gz
|
2023-01-11 00:40:45 +00:00
|
|
|
chromium-revert-drop-of-system-java.patch
|
2024-06-02 23:02:17 +00:00
|
|
|
compiler.patch
|
|
|
|
disable-dns_config_service.patch
|
|
|
|
disable-failing-tests.patch
|
|
|
|
fc-cache-version.patch
|
|
|
|
fix-opus.patch
|
|
|
|
fstatat-32bit.patch
|
2023-01-11 00:40:45 +00:00
|
|
|
gdbinit.patch
|
2024-06-02 23:02:17 +00:00
|
|
|
generic-sensor-include.patch
|
|
|
|
musl-auxv.patch
|
2023-01-11 00:40:45 +00:00
|
|
|
musl-sandbox.patch
|
|
|
|
musl-tid-caching.patch
|
|
|
|
musl-v8-monotonic-pthread-cont_timedwait.patch
|
|
|
|
no-execinfo.patch
|
|
|
|
no-mallinfo.patch
|
|
|
|
no-res-ninit-nclose.patch
|
2023-09-01 17:03:15 +00:00
|
|
|
no-sandbox-settls.patch
|
2024-06-02 23:02:17 +00:00
|
|
|
partalloc-no-tagging-arm64.patch
|
|
|
|
pvalloc.patch
|
2023-01-11 00:40:45 +00:00
|
|
|
temp-failure-retry.patch
|
2024-06-02 23:02:17 +00:00
|
|
|
yes-musl.patch
|
2023-01-11 00:40:45 +00:00
|
|
|
|
2024-11-01 13:59:14 +00:00
|
|
|
electron_icon.patch
|
|
|
|
electron_python-jinja-3.10.patch
|
|
|
|
electron_webpack-hash.patch
|
|
|
|
electron_unbundle-node.patch
|
|
|
|
electron_system-zlib-headers.patch
|
2023-01-11 00:40:45 +00:00
|
|
|
|
|
|
|
default.conf
|
|
|
|
electron.desktop
|
|
|
|
electron-launcher.sh
|
|
|
|
"
|
2024-06-02 23:02:17 +00:00
|
|
|
_copium_patches="
|
|
|
|
cr124-iwyu-sys-select-dawn-terminal.patch
|
2024-11-01 13:59:14 +00:00
|
|
|
cr126-aarch64-musl-unsupported-relocation.patch
|
|
|
|
cr129-ffmpeg-no-noh264parse.patch
|
|
|
|
cr129-musl-metricts-imports.patch
|
2024-06-02 23:02:17 +00:00
|
|
|
"
|
2023-05-05 05:10:04 +00:00
|
|
|
# tests are todo for some base checks
|
|
|
|
options="!check net suid"
|
2024-11-01 13:59:14 +00:00
|
|
|
builddir="$srcdir/electron-$_gittag-$_chromium"
|
2023-11-24 17:56:51 +00:00
|
|
|
|
|
|
|
export PATH="$PATH:/usr/lib/qt5/bin"
|
|
|
|
|
2024-11-01 13:59:14 +00:00
|
|
|
export CC=clang-$_llvmver
|
|
|
|
export CXX=clang++-$_llvmver
|
2023-11-24 17:56:51 +00:00
|
|
|
|
|
|
|
# required to find the tools
|
2024-06-02 23:02:17 +00:00
|
|
|
export AR=llvm-ar
|
|
|
|
export NM=llvm-nm
|
2024-11-01 13:59:14 +00:00
|
|
|
export LD=clang++-$_llvmver
|
2023-11-24 17:56:51 +00:00
|
|
|
|
|
|
|
# less log spam, reproducible
|
2024-06-02 23:02:17 +00:00
|
|
|
export CFLAGS="${CFLAGS/-g/} -O2 -Wno-builtin-macro-redefined -Wno-deprecated-declarations -Wno-shift-count-overflow -Wno-ignored-attributes"
|
|
|
|
export CXXFLAGS="${CXXFLAGS/-g/} -O2 -Wno-builtin-macro-redefined -Wno-deprecated-declarations -Wno-invalid-constexpr"
|
2023-11-24 17:56:51 +00:00
|
|
|
export CPPFLAGS="${CPPFLAGS/-g/} -D__DATE__= -D__TIME__= -D__TIMESTAMP__="
|
2024-06-02 23:02:17 +00:00
|
|
|
case "$CARCH" in
|
|
|
|
aarch64|arm*|riscv64)
|
|
|
|
# not supported by clang here
|
|
|
|
export CFLAGS="${CFLAGS/-fstack-clash-protection}"
|
|
|
|
export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection}"
|
|
|
|
;;
|
|
|
|
esac
|
2023-11-24 17:56:51 +00:00
|
|
|
|
|
|
|
# breaks chromium-based stuff
|
|
|
|
export CXXFLAGS="${CXXFLAGS/-D_GLIBCXX_ASSERTIONS=1}"
|
2023-01-11 00:40:45 +00:00
|
|
|
|
|
|
|
# creates a dist tarball that does not need to git clone everything at build time.
|
2024-06-02 23:02:17 +00:00
|
|
|
_distbucket="sakamoto/lnl-aports-snapshots/"
|
2023-01-11 00:40:45 +00:00
|
|
|
snapshot() {
|
2023-05-05 05:10:04 +00:00
|
|
|
deps
|
|
|
|
# vpython3 execs system python3 with this set
|
|
|
|
export VPYTHON_BYPASS="manually managed python not supported by chrome operations"
|
2023-01-11 00:40:45 +00:00
|
|
|
export CHROMIUM_BUILDTOOLS_PATH="$srcdir/src/buildtools"
|
2024-11-01 13:59:14 +00:00
|
|
|
export DEPOT_TOOLS_UPDATE=0
|
2023-01-11 00:40:45 +00:00
|
|
|
mkdir -p "$srcdir"
|
|
|
|
cd "$srcdir"
|
2023-09-01 17:03:15 +00:00
|
|
|
|
|
|
|
if ! [ -d depot_tools ]; then
|
|
|
|
(
|
|
|
|
git clone --depth 1 -b main https://chromium.googlesource.com/chromium/tools/depot_tools.git
|
|
|
|
cd depot_tools
|
|
|
|
git fetch --depth 1 origin $_depot_tools
|
|
|
|
git checkout $_depot_tools
|
|
|
|
)
|
|
|
|
fi
|
2023-01-11 00:40:45 +00:00
|
|
|
|
|
|
|
export PATH="$PATH:$srcdir/depot_tools"
|
|
|
|
|
|
|
|
echo "solutions = [
|
|
|
|
{
|
|
|
|
\"name\": \"src/electron\",
|
2024-11-01 13:59:14 +00:00
|
|
|
\"url\": \"https://github.com/electron/electron.git@$_gittag\",
|
2023-01-11 00:40:45 +00:00
|
|
|
\"deps_file\": \"DEPS\",
|
|
|
|
\"managed\": False,
|
|
|
|
\"custom_deps\": {
|
2024-06-02 23:02:17 +00:00
|
|
|
\"src\": \"https://chromium.googlesource.com/chromium/src.git@$_chromium\",
|
2023-01-11 00:40:45 +00:00
|
|
|
},
|
|
|
|
\"custom_vars\": {},
|
|
|
|
},
|
|
|
|
]" > .gclient
|
|
|
|
|
|
|
|
python3 depot_tools/gclient.py sync \
|
2024-06-02 23:02:17 +00:00
|
|
|
--no-history \
|
2023-01-11 00:40:45 +00:00
|
|
|
--nohooks
|
|
|
|
|
|
|
|
python3 src/build/landmines.py
|
2024-11-01 13:59:14 +00:00
|
|
|
python3 src/build/util/lastchange.py -o src/build/util/LASTCHANGE \
|
2023-01-11 00:40:45 +00:00
|
|
|
--revision src/gpu/webgpu/DAWN_VERSION
|
|
|
|
python3 src/build/util/lastchange.py -m GPU_LISTS_VERSION \
|
|
|
|
--revision-id-only --header src/gpu/config/gpu_lists_version.h
|
|
|
|
python3 src/build/util/lastchange.py -m SKIA_COMMIT_HASH \
|
|
|
|
-s src/third_party/skia --header src/skia/ext/skia_commit_hash.h
|
|
|
|
|
2024-06-02 23:02:17 +00:00
|
|
|
# rolled newer chromium with it included
|
|
|
|
sed -i '/reland_mojom_ts_generator_handle_empty_module_path_identically_to.patch/d' src/electron/patches/chromium/.patches
|
2023-03-10 17:38:28 +00:00
|
|
|
|
2024-06-02 23:02:17 +00:00
|
|
|
python3 src/electron/script/apply_all_patches.py \
|
|
|
|
src/electron/patches/config.json
|
2023-01-11 00:40:45 +00:00
|
|
|
|
2024-11-01 13:59:14 +00:00
|
|
|
mv src $pkgname-$_gittag-$_chromium
|
2023-01-11 00:40:45 +00:00
|
|
|
|
|
|
|
# extra binaries are most likely things we don't want, so nuke them all
|
2024-11-01 13:59:14 +00:00
|
|
|
for elf in $(scanelf -RA -F "%F" $pkgname-$_gittag-$_chromium); do
|
2023-01-11 00:40:45 +00:00
|
|
|
rm -f "$elf"
|
|
|
|
done
|
|
|
|
|
|
|
|
msg "generating tarball.. (this takes a while)"
|
2024-11-01 13:59:14 +00:00
|
|
|
tar -cf $pkgname-$_gittag-$_chromium.tar \
|
2023-01-11 00:40:45 +00:00
|
|
|
--exclude="ChangeLog*" \
|
2023-05-05 05:10:04 +00:00
|
|
|
--exclude="testdata/*" \
|
|
|
|
--exclude="test_data/*" \
|
|
|
|
--exclude="android_rust_toolchain/*" \
|
2024-11-01 13:59:14 +00:00
|
|
|
--exclude="third_party/instrumented_libs/binaries" \
|
2023-01-11 00:40:45 +00:00
|
|
|
--exclude-backups \
|
|
|
|
--exclude-caches-all \
|
|
|
|
--exclude-vcs \
|
2024-11-01 13:59:14 +00:00
|
|
|
$pkgname-$_gittag-$_chromium
|
2023-01-11 00:40:45 +00:00
|
|
|
|
2024-11-01 13:59:14 +00:00
|
|
|
zstd --auto-threads=logical --ultra --long -22 -T"${ZSTD_LIMIT:-0}" -vv $pkgname-$_gittag-$_chromium.tar -o "$SRCDEST"/$pkgname-$_gittag-$_chromium.tar.zst
|
|
|
|
mcli cp "$SRCDEST"/$pkgname-$_gittag-$_chromium.tar.zst "$_distbucket"
|
2023-01-11 00:40:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
prepare() {
|
|
|
|
default_prepare
|
|
|
|
|
2024-06-02 23:02:17 +00:00
|
|
|
for i in $_copium_patches; do
|
|
|
|
case "$i" in
|
|
|
|
*.patch)
|
|
|
|
msg "${i%::*}"
|
|
|
|
patch -p1 -i "$srcdir/copium/$i" || failed="$failed $i"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
2024-11-01 13:59:14 +00:00
|
|
|
if [ -n "$failed" ]; then
|
2024-06-02 23:02:17 +00:00
|
|
|
error "The following patches failed to apply:"
|
|
|
|
for i in $failed; do
|
|
|
|
printf " %s\n" "$i" >&2
|
|
|
|
done
|
|
|
|
exit 1
|
|
|
|
fi
|
2023-09-01 17:03:15 +00:00
|
|
|
|
|
|
|
git init -q .
|
2023-01-11 00:40:45 +00:00
|
|
|
|
|
|
|
# link to system tools
|
|
|
|
ln -sfv /usr/bin/clang-format buildtools/linux64/clang-format
|
|
|
|
mkdir -p third_party/node/linux/node-linux-x64/bin
|
|
|
|
ln -sfv /usr/bin/node third_party/node/linux/node-linux-x64/bin/node
|
|
|
|
ln -sfv /usr/bin/java third_party/jdk/current/bin/java
|
|
|
|
|
|
|
|
(
|
|
|
|
cd electron
|
2023-09-01 17:03:15 +00:00
|
|
|
git init -q .
|
2023-01-11 00:40:45 +00:00
|
|
|
git config user.email "example@example.com"
|
|
|
|
git config user.name "example"
|
2023-09-01 17:03:15 +00:00
|
|
|
git config commit.gpgsign false
|
2023-01-11 00:40:45 +00:00
|
|
|
git add LICENSE
|
|
|
|
git commit -m "init"
|
2024-11-01 13:59:14 +00:00
|
|
|
git tag "$_gittag"
|
2023-09-01 17:03:15 +00:00
|
|
|
git pack-refs
|
2024-11-01 13:59:14 +00:00
|
|
|
yarn install --frozen-lockfile --ignore-scripts
|
2023-01-11 00:40:45 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
(
|
|
|
|
cd third_party/node
|
2023-05-05 05:10:04 +00:00
|
|
|
./update_npm_deps
|
2023-01-11 00:40:45 +00:00
|
|
|
)
|
|
|
|
|
2024-06-02 23:02:17 +00:00
|
|
|
# reusable system library settings
|
2024-06-03 13:30:32 +00:00
|
|
|
# flatbuffers - tensorflow has a few static_asserts for a specific patch version
|
2024-11-01 13:59:14 +00:00
|
|
|
# highway - requires highway>=1.1.0 (arm failures)
|
2024-06-02 23:02:17 +00:00
|
|
|
# libavif - https://github.com/AOMediaCodec/libavif/commit/50a541469c98009016af8dcc9f83a1be79f3a7d9
|
2023-09-01 17:03:15 +00:00
|
|
|
# libaom - https://aomedia.googlesource.com/aom/+/706ee36dcc82%5E%21/
|
2024-06-02 23:02:17 +00:00
|
|
|
# but watch this space: https://aomedia-review.googlesource.com/c/aom/+/188606
|
2024-11-01 13:59:14 +00:00
|
|
|
# jsoncpp, re2, snappy, swiftshader-*, woff2 - requires use_custom_libcxx=false
|
2024-06-02 23:02:17 +00:00
|
|
|
local chromium_use_system="
|
|
|
|
brotli
|
|
|
|
crc32c
|
2023-01-11 00:40:45 +00:00
|
|
|
dav1d
|
2024-06-02 23:02:17 +00:00
|
|
|
double-conversion
|
2023-01-11 00:40:45 +00:00
|
|
|
ffmpeg
|
|
|
|
flac
|
|
|
|
fontconfig
|
|
|
|
freetype
|
|
|
|
harfbuzz-ng
|
|
|
|
icu
|
|
|
|
libdrm
|
|
|
|
libevent
|
|
|
|
libjpeg
|
2024-06-02 23:02:17 +00:00
|
|
|
libsecret
|
|
|
|
libusb
|
2023-01-11 00:40:45 +00:00
|
|
|
libwebp
|
|
|
|
libxml
|
|
|
|
libxslt
|
2024-06-02 23:02:17 +00:00
|
|
|
openh264
|
2023-01-11 00:40:45 +00:00
|
|
|
opus
|
|
|
|
zlib
|
2023-11-24 17:56:51 +00:00
|
|
|
zstd
|
2023-01-11 00:40:45 +00:00
|
|
|
"
|
|
|
|
|
2024-11-01 13:59:14 +00:00
|
|
|
for _lib in $chromium_use_system jinja2 libjpeg_turbo unrar; do
|
2023-01-11 00:40:45 +00:00
|
|
|
msg "Removing buildscripts for system provided $_lib"
|
2024-11-01 13:59:14 +00:00
|
|
|
_lib="${_lib/swiftshader-/swiftshader/third_party/}"
|
2023-01-11 00:40:45 +00:00
|
|
|
find . -type f -path "*third_party/$_lib/*" \
|
|
|
|
\! -path "*third_party/$_lib/chromium/*" \
|
|
|
|
\! -path "*third_party/$_lib/google/*" \
|
|
|
|
\! -path './base/third_party/icu/*' \
|
|
|
|
\! -path './third_party/libxml/*' \
|
|
|
|
\! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \
|
|
|
|
\! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \
|
|
|
|
\! -path './third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h' \
|
2024-06-02 23:02:17 +00:00
|
|
|
\! -regex '.*\.\(gn\|gni\|gyp\|gypi\|isolate\|py\)' \
|
|
|
|
-delete
|
|
|
|
done
|
|
|
|
|
|
|
|
# llhttp - 9.x needed, 8.x in repo (2023-12-17)
|
|
|
|
# ada - needs use_custom_libcxx=false
|
|
|
|
local node_use_system="
|
|
|
|
base64
|
|
|
|
brotli
|
|
|
|
cares
|
|
|
|
corepack
|
|
|
|
histogram
|
|
|
|
nghttp2
|
|
|
|
nghttp3
|
|
|
|
ngtcp2
|
|
|
|
zlib
|
|
|
|
"
|
|
|
|
# some of these are provided by system, e.g. brotli. some are from chromium,
|
|
|
|
# e.g. boringssl (as openssl). some are not in use at all (corepack)
|
|
|
|
for _lib in $node_use_system openssl; do
|
|
|
|
msg "Removing buildscripts for $_lib"
|
|
|
|
find . -type f -path "*third_party/electron_node/deps/$_lib/*" \
|
|
|
|
\! -path "*third_party/electron_node/deps/$_lib/chromium/*" \
|
|
|
|
\! -path "*third_party/electron_node/deps/$_lib/google/*" \
|
|
|
|
\! -regex '.*\.\(gn\|gni\|gyp\|gypi\|isolate\|py\)' \
|
2023-01-11 00:40:45 +00:00
|
|
|
-delete
|
|
|
|
done
|
2024-06-02 23:02:17 +00:00
|
|
|
# XXX: hack. unbundle-node.patch uses this list to switch things
|
|
|
|
# in config.gypi. https://github.com/electron/electron/issues/40836
|
|
|
|
echo $node_use_system > third_party/electron_node/use_system.txt
|
|
|
|
|
|
|
|
rm -rf third_party/electron_node/tools/inspector_protocol/jinja2
|
2023-01-11 00:40:45 +00:00
|
|
|
|
|
|
|
# https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/9JX1N2nf4PU/discussion
|
|
|
|
touch chrome/test/data/webui/i18n_process_css_test.html
|
|
|
|
# Use the file at run time instead of effectively compiling it in
|
|
|
|
sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
|
|
|
|
-i services/device/public/cpp/usb/BUILD.gn
|
|
|
|
|
2023-05-05 05:10:04 +00:00
|
|
|
msg "Running debundle script"
|
2023-01-11 00:40:45 +00:00
|
|
|
python3 build/linux/unbundle/replace_gn_files.py --system-libraries \
|
2024-06-02 23:02:17 +00:00
|
|
|
$chromium_use_system
|
2023-01-11 00:40:45 +00:00
|
|
|
python3 third_party/libaddressinput/chromium/tools/update-strings.py
|
|
|
|
|
2024-11-01 13:59:14 +00:00
|
|
|
# flatc is used in build workflows since https://crrev.com/c/5595037,
|
|
|
|
# but the pre-generated files are still checked-in. remove to make sure
|
|
|
|
# they're not used. (if used, they will break builds on version mismatch.)
|
|
|
|
# https://github.com/tensorflow/tensorflow/issues/62298
|
|
|
|
# find third_party/tflite/ -name '*_generated.h' -delete
|
|
|
|
|
2023-01-11 00:40:45 +00:00
|
|
|
# prevent annoying errors when regenerating gni
|
|
|
|
sed -i 's,^update_readme$,#update_readme,' \
|
|
|
|
third_party/libvpx/generate_gni.sh
|
|
|
|
|
|
|
|
# allow system dependencies in "official builds"
|
|
|
|
sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
|
|
|
|
tools/generate_shim_headers/generate_shim_headers.py
|
|
|
|
|
|
|
|
# https://crbug.com/893950
|
|
|
|
sed -i -e 's/\<xmlMalloc\>/malloc/' -e 's/\<xmlFree\>/free/' \
|
|
|
|
third_party/blink/renderer/core/xml/*.cc \
|
|
|
|
third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \
|
2024-11-01 13:59:14 +00:00
|
|
|
third_party/libxml/chromium/*.cc
|
2023-01-11 00:40:45 +00:00
|
|
|
|
2023-05-05 05:10:04 +00:00
|
|
|
_configure
|
|
|
|
}
|
|
|
|
|
|
|
|
_configure() {
|
|
|
|
cd "$builddir"
|
2023-01-11 00:40:45 +00:00
|
|
|
msg "Configuring build"
|
|
|
|
|
2024-06-02 23:02:17 +00:00
|
|
|
case "$USE_CCACHE" in
|
|
|
|
1)
|
|
|
|
local cc_wrapper="ccache"
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
local cc_wrapper=""
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
local maglev=true
|
|
|
|
local symbol_level=0
|
|
|
|
local vaapi=true
|
|
|
|
|
2023-05-05 05:10:04 +00:00
|
|
|
# shellcheck disable=2089
|
2023-01-11 00:40:45 +00:00
|
|
|
local gn_config="
|
|
|
|
import(\"//electron/build/args/release.gn\")
|
2023-03-10 17:38:28 +00:00
|
|
|
|
2023-01-11 00:40:45 +00:00
|
|
|
blink_enable_generated_code_formatting=false
|
2024-06-02 23:02:17 +00:00
|
|
|
cc_wrapper=\"$cc_wrapper\"
|
2023-09-01 17:03:15 +00:00
|
|
|
chrome_pgo_phase=0
|
2024-06-02 23:02:17 +00:00
|
|
|
clang_base_path=\"/usr\"
|
2023-01-11 00:40:45 +00:00
|
|
|
clang_use_chrome_plugins=false
|
2024-11-01 13:59:14 +00:00
|
|
|
clang_version=\"$_llvmver\"
|
2024-06-02 23:02:17 +00:00
|
|
|
custom_toolchain=\"//build/toolchain/linux/unbundle:default\"
|
|
|
|
disable_fieldtrial_testing_config=true
|
|
|
|
enable_hangout_services_extension=true
|
|
|
|
enable_nacl=false
|
|
|
|
enable_nocompile_tests=false
|
|
|
|
enable_stripping=false
|
|
|
|
enable_rust=true
|
|
|
|
enable_vr=false
|
2023-01-11 00:40:45 +00:00
|
|
|
fatal_linker_warnings=false
|
|
|
|
ffmpeg_branding=\"Chrome\"
|
2024-06-02 23:02:17 +00:00
|
|
|
host_toolchain=\"//build/toolchain/linux/unbundle:default\"
|
|
|
|
icu_use_data_file=false
|
2023-01-11 00:40:45 +00:00
|
|
|
is_cfi=false
|
2023-09-01 17:03:15 +00:00
|
|
|
is_clang=true
|
2023-01-11 00:40:45 +00:00
|
|
|
is_component_ffmpeg=true
|
|
|
|
is_debug=false
|
|
|
|
is_official_build=true
|
|
|
|
link_pulseaudio=true
|
|
|
|
proprietary_codecs=true
|
|
|
|
rtc_link_pipewire=true
|
|
|
|
rtc_use_pipewire=true
|
2024-06-02 23:02:17 +00:00
|
|
|
rustc_version=\"yes\"
|
2024-11-01 13:59:14 +00:00
|
|
|
rust_bindgen_root=\"/usr\"
|
2024-06-02 23:02:17 +00:00
|
|
|
rust_sysroot_absolute=\"/usr\"
|
2024-11-01 13:59:14 +00:00
|
|
|
safe_browsing_use_unrar=false
|
2024-06-02 23:02:17 +00:00
|
|
|
symbol_level=$symbol_level
|
|
|
|
treat_warnings_as_errors=false
|
|
|
|
use_custom_libcxx=true
|
|
|
|
use_lld=true
|
2023-01-11 00:40:45 +00:00
|
|
|
use_pulseaudio=true
|
2024-06-02 23:02:17 +00:00
|
|
|
use_safe_libstdcxx=false
|
|
|
|
use_system_libffi=true
|
2023-01-11 00:40:45 +00:00
|
|
|
use_sysroot=false
|
2024-06-02 23:02:17 +00:00
|
|
|
use_thin_lto=false
|
|
|
|
use_vaapi=$vaapi
|
|
|
|
v8_enable_maglev=$maglev
|
|
|
|
|
|
|
|
skia_use_dawn=false
|
|
|
|
use_dawn=false
|
|
|
|
use_system_ada=false
|
|
|
|
use_system_base64=true
|
2023-05-05 05:10:04 +00:00
|
|
|
use_system_cares=true
|
2024-06-02 23:02:17 +00:00
|
|
|
use_system_histogram=true
|
2023-01-11 00:40:45 +00:00
|
|
|
use_system_lcms2=true
|
2023-05-05 05:10:04 +00:00
|
|
|
use_system_libffi=true
|
2024-06-02 23:02:17 +00:00
|
|
|
use_system_llhttp=false
|
2023-05-05 05:10:04 +00:00
|
|
|
use_system_nghttp2=true
|
2023-03-10 17:38:28 +00:00
|
|
|
"
|
2023-01-11 00:40:45 +00:00
|
|
|
|
2023-05-05 05:10:04 +00:00
|
|
|
# shellcheck disable=2086,2090,2116
|
|
|
|
gn gen out/Release --args="$(echo $gn_config)" \
|
2023-01-11 00:40:45 +00:00
|
|
|
--export-compile-commands
|
|
|
|
}
|
|
|
|
|
|
|
|
build() {
|
2023-05-05 05:10:04 +00:00
|
|
|
export PATH="$PATH:/usr/lib/qt5/bin"
|
|
|
|
|
2024-11-01 13:59:14 +00:00
|
|
|
ninja -C out/Release \
|
|
|
|
copy_node_headers \
|
2023-01-11 00:40:45 +00:00
|
|
|
electron_dist_zip \
|
|
|
|
node_gypi_headers \
|
2024-06-02 23:02:17 +00:00
|
|
|
node_version_header
|
|
|
|
|
2023-01-11 00:40:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
package() {
|
|
|
|
mkdir -p "$pkgdir"/usr/lib/electron "$pkgdir"/usr/bin
|
|
|
|
|
|
|
|
bsdtar -xf out/Release/dist.zip -C "$pkgdir"/usr/lib/electron
|
|
|
|
|
|
|
|
chmod u+s "$pkgdir"/usr/lib/electron/chrome-sandbox
|
|
|
|
|
|
|
|
install -Dm755 "$srcdir"/electron-launcher.sh "$pkgdir"/usr/bin/electron
|
|
|
|
install -Dm755 "$srcdir"/default.conf "$pkgdir"/etc/electron/default.conf
|
|
|
|
|
|
|
|
mkdir -p "$pkgdir"/usr/include/electron
|
2024-11-01 13:59:14 +00:00
|
|
|
cp -rv "$builddir"/out/Release/gen/node_headers "$pkgdir"/usr/include/electron
|
2023-01-11 00:40:45 +00:00
|
|
|
ln -sv /usr/include/electron/node_headers/include/node "$pkgdir"/usr/include/electron/node
|
|
|
|
|
|
|
|
mkdir -p "$pkgdir"/usr/include/electron/node_headers/include/nan
|
|
|
|
cp -v "$builddir"/third_party/nan/*.h "$pkgdir"/usr/include/electron/node_headers/include/nan
|
|
|
|
ln -sv /usr/include/electron/node_headers/include/nan "$pkgdir"/usr/include/electron/nan
|
|
|
|
|
|
|
|
install -Dm644 electron/default_app/icon.png \
|
|
|
|
"$pkgdir"/usr/share/icons/hicolor/1024x1024/apps/electron.png
|
|
|
|
install -Dm644 "$srcdir"/electron.desktop \
|
|
|
|
-t "$pkgdir"/usr/share/applications/
|
|
|
|
}
|
|
|
|
|
|
|
|
lang() {
|
|
|
|
pkgdesc="$pkgdesc (translations)"
|
|
|
|
install_if="$pkgname=$pkgver-r$pkgrel lang"
|
|
|
|
|
|
|
|
mkdir -p "$subpkgdir"/usr/lib/electron/locales
|
|
|
|
|
|
|
|
mv "$pkgdir"/usr/lib/electron/locales/*.pak \
|
|
|
|
"$subpkgdir"/usr/lib/electron/locales
|
|
|
|
mv "$subpkgdir"/usr/lib/electron/locales/en-US.pak \
|
|
|
|
"$pkgdir"/usr/lib/electron/locales
|
|
|
|
}
|
|
|
|
|
|
|
|
sha512sums="
|
2024-11-30 18:18:38 +00:00
|
|
|
e2df4454f4178af859c13aadee4ea04a5b6aa202972cad625e54bc68f5b8c25e098e50d428ec9c1886c37ccf49aaaedb4c5f02fc8bdd498314ba216901932185 electron-v33.2.1-130.0.6723.127.tar.zst
|
2024-11-01 13:59:14 +00:00
|
|
|
6138b3dbf3903c78f4ca1ed5a6c3c3c485471ded31976010484ce8893d03953df2b8f066a4fe84bbde5ae7ef9bbff664ef917e247b2e95dd471de40f2774d7d0 copium-129.1.tar.gz
|
2023-05-05 05:10:04 +00:00
|
|
|
29bb685e03356a77df5fd347cdf55194cc8b3265c421cc76e54d64edefc329dbcb052deb26b22e8f587ce68456876c071de1b7d258dd0fcc6ee66c875ec4a020 chromium-revert-drop-of-system-java.patch
|
2024-11-01 13:59:14 +00:00
|
|
|
53b7cdee8f7bfb4c9371cb385c473e34ed3d8ac7efaa43c0af061107560be30d8747b07fb0b16c01079b8c770f2c721bb5a8081313b7c126856ea4078a74da2a compiler.patch
|
2024-06-02 23:02:17 +00:00
|
|
|
4057cc78f10bfd64092bc35a373869abb1d68b880cdbca70422f39ffd78a929c19c7728d4d4c40709aaba25581148a93ae5343e724849fd35323062ed68753fa disable-dns_config_service.patch
|
2024-11-01 13:59:14 +00:00
|
|
|
2470904846e3adde2c9506f9e78220daca0932320b628dd3d427bf2b7c17a8f7880cb97e787b046c28de7aca642e1a8d30824d6049905976da77e7473baa64da disable-failing-tests.patch
|
2024-06-02 23:02:17 +00:00
|
|
|
5fc5c012c1db6cf1ba82f38c6f3f4f5ca3a209e47ac708a74de379b018e0649b7694877c9571ef79002dde875ffc07b458a3355425f1c01867f362c66c2bc1bf fc-cache-version.patch
|
|
|
|
b24563e9a738c00fce7ff2fbdee3d7c024d9125d7c74d9ab90af6bdb16f7ec8419f2c8aa78c0640f6d5d81c17dc2c673a194401d354f466749672729b48ed068 fix-opus.patch
|
|
|
|
c63dee5044353eb306a39ca1526158c0f003ab310ecb03d1c368dc2a979454590c84b8d3c15484517d5e66bb8add9b231da9abbadf2e50850abd72ac1345c4ab fstatat-32bit.patch
|
2023-05-05 05:10:04 +00:00
|
|
|
33ee60863cc438ef57ffef92ba4cf67a856a5ffc16138bce241bcf87e47b15154aa86918e793c26f7ec4dc62a445257ad5673ed7001daf22c4043cf6cc57da7f gdbinit.patch
|
2024-06-02 23:02:17 +00:00
|
|
|
36a764fa73443b47d38050b52dbe6ad2fa8d67201ff4ccdbad13b52308ef165ca046aac6f9609fe35890a6485f0f3e672e78cc41e3e44f3cdc7f145e540524e8 generic-sensor-include.patch
|
|
|
|
99bcc7dd485b404a90c606a96addab1d900852128d44fb8cea8acc7303189ef87c89a7b0e749fd0e10c5ef5f6bf1fadeb5c16a34503cab6a59938ce2653d887e musl-auxv.patch
|
2024-11-01 13:59:14 +00:00
|
|
|
51f1959bd622af26a1c3a1f4b0ad9a5bfa461057aa4cf9960c568dddf8ac47d55989c277f5d5ab5db040a04c54925a531af7a1cc767559218b408eaa6bdd7577 musl-sandbox.patch
|
2023-05-05 05:10:04 +00:00
|
|
|
e7163ac5810ac85366cef2447412287c856e3d67c6b77f219a6e5a418b1965b98e449c409424ad0704a5bded9355dd0aec3dc4585918ce5a2ab36c079707afe2 musl-tid-caching.patch
|
|
|
|
92eb002718026611f5542362ad69b67f0a398ff71b3fca5c05d55cb5c6f9f29334e5e127bb4860cfaa3fba0f0d4c901e2b98808217e7dc02e254a64a5c9521aa musl-v8-monotonic-pthread-cont_timedwait.patch
|
2024-11-01 13:59:14 +00:00
|
|
|
a250cff50d282b02ce0f28880d0a2b4fb8e7df51bc072bfeeddc561c29a7c76453dbcbc7b17b82966a7b30a31409d2555720d1dcf963e1b3fb8a2a06a6abcf46 no-execinfo.patch
|
|
|
|
0b41aeb6b212f9c3f61aa0a8d3085c9e865a2e68f3270ceec2376aab67f337ac46eaea7da36d3fd7219e2a1cb731b7aa2d3fb619a374d2b7653976b9f4f384bb no-mallinfo.patch
|
2023-05-05 05:10:04 +00:00
|
|
|
e4c4e5bc6f828f9c883dd418c0ba01887949c29c311f76206a1ec29f620b0c0ba0452949dc2778a9c46ea066405857536964a36436a68eecf7da7952736333cf no-res-ninit-nclose.patch
|
2023-09-01 17:03:15 +00:00
|
|
|
6dc4d8dc92e685dace62265a1ddb3aebc558aed54d20ff6d36b030be0c48d7e84662326c31363612492574d9a03c62653cdc21a60995b97dee1d75cae86a9f9b no-sandbox-settls.patch
|
2024-11-01 13:59:14 +00:00
|
|
|
f2b08538ff57c50b3772a07ca91845f9d45f4a5112f608b6192d4fb5d7be48f478c0c36194d95ab7bbf933e0278e5c6d578619d8643895cdc40386eebc5b975f partalloc-no-tagging-arm64.patch
|
|
|
|
03f829a2da633533ef3fd0f287f5ec602d936a97a98b53cd2415553c2537ae9d571f35397ca7c9fb3f4b0806c300e3b189569f8d979ca132e1a2a4dae7206396 pvalloc.patch
|
2023-05-05 05:10:04 +00:00
|
|
|
e48693e6b7aeebf69a5acbf80d9a35defe4c23835121dfeb58b051ac7c527e758a41004f4d193274fe1b01c0bfb1dbc77b09cb6a404a3fdee507a2918afb0edb temp-failure-retry.patch
|
2024-06-02 23:02:17 +00:00
|
|
|
914ccf649d7771f19f209ab97f99c481aebc6f66174d68e8b539f6ad4a70bc8cb0fae2df6dadbf0415958ffb3574c420fe029079dcce45f5e5add4db2e903566 yes-musl.patch
|
2024-11-01 13:59:14 +00:00
|
|
|
465107da7818b237e3c144a318ab80c3c9343b51ed38b8971ef204692d13346929becbe94cefad4c153788d3a200642143584d5ca070f6304e768ba2139c19ec electron_icon.patch
|
|
|
|
e05180199ee1d559e4e577cedd3e589844ecf40d98a86321bf1bea5607b02eeb5feb486deddae40e1005b644550331f6b8500177aa7e79bcb3750d3c1ceb76c3 electron_python-jinja-3.10.patch
|
|
|
|
2aa340854316f1284217c0ca17cbf44953684ad6c7da90815117df30928612eb9fb9ffb734b948dfc309cd25d1a67cd57f77aac2d052a3dd9aca07a3a58cbb30 electron_webpack-hash.patch
|
|
|
|
57aa81d46b9cc931092d9d9b3cb4a9859f86c183a236bc5cca6abbaeca86b82bf1b537dd9cb3412114fa4e86087c0022ee3f7e88de974d29b309e9d1714df7a5 electron_unbundle-node.patch
|
|
|
|
1b35edcf0b41e39e20c4d64dbb978bcaab8036f2fe839930709b269c50cb1321458a15b4d0013246f9e03f58f250a1e3a57ea910db1aa0adbd602a6a11ad33b9 electron_system-zlib-headers.patch
|
2024-06-02 23:02:17 +00:00
|
|
|
e8ea87c547546011c4c8fc2de30e4f443b85cd4cfcff92808e2521d2f9ada03feefb8e1b0cf0f6b460919c146e56ef8d5ad4bb5e2461cc5247c30d92eb4d068e default.conf
|
2023-01-11 00:40:45 +00:00
|
|
|
191559fc7aa1ea0353c6fb0cc321ee1d5803a0e44848c8be941cfab96277b0de6a59962d373e2a2a1686c8f9be2bcf2d2f33706759a339a959e297d3f7fda463 electron.desktop
|
2024-06-02 23:02:17 +00:00
|
|
|
5f7ba5ad005f196facec1c0f26108356b64cafb1e5cfa462ff714a33b8a4c757ac00bfcb080da09eb5b65032f8eb245d9676a61ec554515d125ed63912708648 electron-launcher.sh
|
2023-01-11 00:40:45 +00:00
|
|
|
"
|