380 lines
14 KiB
Text
380 lines
14 KiB
Text
# Maintainer: psykose <alice@ayaya.dev>
|
|
pkgname=electron
|
|
pkgver=19.0.4
|
|
pkgrel=0
|
|
_gitrev=def1ec7f991df8e47f00c6fcbe68ece68d09107a
|
|
_chromium=102.0.5005.115
|
|
_depot_tools=9b9f451addeb3ad230e9385d5e2c20cd1632c491
|
|
pkgdesc="Electron"
|
|
url="https://github.com/electron/electron"
|
|
arch="" # no auto build
|
|
[ "$MAGIC" = "1" ] && arch="x86_64"
|
|
license="MIT"
|
|
depends="gtk+3.0 so:libudev.so.1 xdg-utils"
|
|
makedepends="
|
|
alsa-lib-dev
|
|
bash
|
|
bsd-compat-headers
|
|
bzip2-dev
|
|
c-ares-dev
|
|
cairo-dev
|
|
clang-dev
|
|
clang-extra-tools
|
|
cups-dev
|
|
curl-dev
|
|
dbus-glib-dev
|
|
eudev-dev
|
|
ffmpeg-dev
|
|
findutils
|
|
flac-dev
|
|
flex
|
|
freetype-dev
|
|
gperf
|
|
gtk+3.0-dev
|
|
gn
|
|
gzip
|
|
harfbuzz-dev
|
|
hunspell-dev
|
|
http-parser-dev
|
|
hwids-usb
|
|
java-jdk
|
|
jpeg-dev
|
|
jsoncpp-dev
|
|
krb5-dev
|
|
lcms2-dev
|
|
libarchive-tools
|
|
libbsd-dev
|
|
libcap-dev
|
|
libevent-dev
|
|
libexif-dev
|
|
libgcrypt-dev
|
|
libgnome-keyring-dev
|
|
libjpeg-turbo-dev
|
|
libnotify-dev
|
|
libpng-dev
|
|
libusb-dev
|
|
libva-dev
|
|
libwebp-dev
|
|
libxcomposite-dev
|
|
libxcursor-dev
|
|
libxinerama-dev
|
|
libxml2-dev
|
|
libxrandr-dev
|
|
libxscrnsaver-dev
|
|
libxslt-dev
|
|
linux-headers
|
|
lld
|
|
mesa-dev
|
|
nghttp2-dev
|
|
ninja
|
|
nodejs
|
|
nss-dev
|
|
opus-dev
|
|
pciutils-dev
|
|
perl
|
|
pipewire-dev
|
|
pulseaudio-dev
|
|
py3-httplib2
|
|
py3-parsing
|
|
py3-six
|
|
python3
|
|
pythonispython3
|
|
re2-dev
|
|
snappy-dev
|
|
speex-dev
|
|
sqlite-dev
|
|
xcb-proto
|
|
yarn
|
|
zlib-dev
|
|
"
|
|
source="chromium-102-fenced_frame_utils-include.patch.chromium
|
|
chromium-102-regex_pattern-array.patch.chromium
|
|
chromium-VirtualCursor-standard-layout.patch.chromium
|
|
chromium-revert-drop-of-system-java.patch.chromium
|
|
chromium-use-alpine-target.patch.chromium
|
|
credentials-header.patch.chromium
|
|
default-pthread-stacksize.patch.chromium
|
|
elf-arm.patch.chromium
|
|
fix-missing-cstdint-include-musl.patch.chromium
|
|
fix-narrowing-cast.patch.chromium
|
|
fix-unittests-sandbox.patch.chromium
|
|
gdbinit.patch.chromium
|
|
iwyu-add-utility-for-std-exchange.patch.chromium
|
|
libxml-unbundle.patch.chromium
|
|
media-base.patch.chromium
|
|
memory-tagging-arm64.patch.chromium
|
|
musl-crashpad.patch.chromium
|
|
musl-fixes.patch.chromium
|
|
musl-hacks.patch.chromium
|
|
musl-libc++.patch.chromium
|
|
musl-sandbox.patch.chromium
|
|
musl-stat.patch.chromium
|
|
musl-tid-caching.patch.chromium
|
|
musl-v8-monotonic-pthread-cont_timedwait.patch.chromium
|
|
nasm.patch.chromium
|
|
no-execinfo.patch.chromium
|
|
no-getcontext.patch.chromium
|
|
no-mallinfo.patch.chromium
|
|
quiche-arena-size.patch.chromium
|
|
remove-no-opaque-pointers-flag.patch.chromium
|
|
remove-strip_binary.patch.chromium
|
|
resolver.patch.chromium
|
|
revert-use-ffile-compilation-dir.patch.chromium
|
|
roll-src-third_party-ffmpeg.patch.chromium
|
|
scoped-file.patch.chromium
|
|
system-node.patch.electron
|
|
python-jinja-3.10.patch.electron
|
|
vector-const.patch.electron
|
|
"
|
|
builddir="$srcdir"
|
|
options="!check suid"
|
|
|
|
prepare() {
|
|
git clone --branch=${_chromium} --depth=1 \
|
|
https://chromium.googlesource.com/chromium/src.git
|
|
|
|
git clone https://github.com/electron/electron.git
|
|
|
|
(
|
|
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
|
|
)
|
|
|
|
export PATH="$PATH:$srcdir/depot_tools"
|
|
|
|
echo "solutions = [
|
|
{
|
|
\"name\": \"src/electron\",
|
|
\"url\": \"file://$srcdir/electron@$_gitrev\",
|
|
\"deps_file\": \"DEPS\",
|
|
\"managed\": False,
|
|
\"custom_deps\": {
|
|
\"src\": None,
|
|
},
|
|
\"custom_vars\": {},
|
|
},
|
|
]" > .gclient
|
|
|
|
python3 depot_tools/gclient.py sync \
|
|
--with_branch_heads \
|
|
--with_tags \
|
|
--nohooks
|
|
|
|
python3 src/build/landmines.py
|
|
python3 src/build/util/lastchange.py -o src/build/util/LASTCHANGE
|
|
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
|
|
ln -sfv /usr/bin/clang-format src/buildtools/linux64/clang-format
|
|
mkdir -p src/third_party/node/linux/node-linux-x64/bin
|
|
ln -sfv /usr/bin/node src/third_party/node/linux/node-linux-x64/bin/node
|
|
python3 src/third_party/depot_tools/download_from_google_storage.py \
|
|
--no_resume --extract --no_auth --bucket chromium-nodejs \
|
|
-s src/third_party/node/node_modules.tar.gz.sha1
|
|
python3 src/tools/download_optimization_profile.py \
|
|
--newest_state=src/chrome/android/profiles/newest.txt \
|
|
--local_state=src/chrome/android/profiles/local.txt \
|
|
--output_name=src/chrome/android/profiles/afdo.prof \
|
|
--gs_url_base=chromeos-prebuilt/afdo-job/llvm
|
|
python3 src/electron/script/apply_all_patches.py \
|
|
src/electron/patches/config.json
|
|
ln -sfv /usr/bin/java src/third_party/jdk/current/bin/java
|
|
|
|
(
|
|
cd src/electron
|
|
yarn install --frozen-lockfile
|
|
)
|
|
|
|
(
|
|
cd src/third_party/node
|
|
npm ci
|
|
)
|
|
|
|
(
|
|
# chromium
|
|
cd src
|
|
|
|
for patch in "$srcdir"/*.patch.chromium; do
|
|
patch -Np1 < "$patch"
|
|
done
|
|
|
|
for patch in "$srcdir"/*.patch.electron; do
|
|
patch -Np1 < "$patch"
|
|
done
|
|
|
|
local use_system="
|
|
ffmpeg
|
|
flac
|
|
fontconfig
|
|
freetype
|
|
harfbuzz-ng
|
|
libdrm
|
|
libevent
|
|
libjpeg
|
|
libpng
|
|
libwebp
|
|
libxml
|
|
libxslt
|
|
opus
|
|
re2
|
|
snappy
|
|
"
|
|
|
|
for _lib in $use_system libjpeg_turbo; do
|
|
msg "Removing buildscripts for system provided $_lib"
|
|
find . -type f -path "*third_party/$_lib/*" \
|
|
\! -path "*third_party/$_lib/chromium/*" \
|
|
\! -path "*third_party/$_lib/google/*" \
|
|
\! -path './third_party/libxml/*' \
|
|
\! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \
|
|
\! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \
|
|
\! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
|
|
-delete
|
|
done
|
|
|
|
|
|
# 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
|
|
|
|
|
|
python3 build/linux/unbundle/replace_gn_files.py --system-libraries \
|
|
$use_system
|
|
python3 third_party/libaddressinput/chromium/tools/update-strings.py
|
|
|
|
# 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
|
|
)
|
|
}
|
|
|
|
_gn_flags() {
|
|
echo "$@"
|
|
}
|
|
|
|
build() {
|
|
cd src
|
|
|
|
export CHROMIUM_BUILDTOOLS_PATH="$srcdir/src/buildtools"
|
|
export CC=clang
|
|
export CXX=clang++
|
|
export AR=ar
|
|
export NM=nm
|
|
export LD=clang
|
|
|
|
export CFLAGS="$CFLAGS -Wno-unknown-warning-option"
|
|
export CXXFLAGS="$CXXFLAGS -Wno-unknown-warning-option"
|
|
|
|
_gn_args=$(_gn_flags \
|
|
import\(\"//electron/build/args/release.gn\"\) \
|
|
custom_toolchain=\"//build/toolchain/linux/unbundle:default\" \
|
|
host_toolchain=\"//build/toolchain/linux/unbundle:default\" \
|
|
blink_symbol_level=0 \
|
|
build_with_tflite_lib=false \
|
|
chrome_pgo_phase=0 \
|
|
clang_use_chrome_plugins=false \
|
|
disable_fieldtrial_testing_config=true \
|
|
enable_hangout_services_extension=true \
|
|
enable_nacl=false \
|
|
enable_precompiled_headers=false \
|
|
enable_vr=false \
|
|
fatal_linker_warnings=false \
|
|
ffmpeg_branding=\"Chrome\" \
|
|
icu_use_data_file=true \
|
|
is_cfi=false \
|
|
is_clang=true \
|
|
is_component_build=false \
|
|
is_debug=false \
|
|
is_official_build=true \
|
|
link_pulseaudio=true \
|
|
proprietary_codecs=true \
|
|
rtc_use_pipewire=true \
|
|
symbol_level=0 \
|
|
treat_warnings_as_errors=false \
|
|
use_allocator=\"none\" \
|
|
use_allocator_shim=false \
|
|
use_cfi_icall=false \
|
|
use_cups=true \
|
|
use_custom_libcxx=false \
|
|
use_gnome_keyring=false \
|
|
use_gold=false \
|
|
use_lld=true \
|
|
use_pulseaudio=true \
|
|
use_sysroot=false \
|
|
use_system_freetype=true \
|
|
use_system_harfbuzz=true \
|
|
use_system_lcms2=true \
|
|
use_system_libdrm=true \
|
|
use_system_libjpeg=true \
|
|
use_system_libpng=true \
|
|
use_system_zlib=true \
|
|
use_thin_lto=false \
|
|
usr_vaapi=true \
|
|
)
|
|
|
|
gn gen out/Release --args="$_gn_args"
|
|
|
|
ninja -C out/Release electron
|
|
strip -s out/Release/electron
|
|
ninja -C out/Release electron_dist_zip
|
|
}
|
|
|
|
package() {
|
|
mkdir -p "$pkgdir"/usr/lib/electron "$pkgdir"/usr/bin
|
|
|
|
bsdtar -xf src/out/Release/dist.zip -C "$pkgdir"/usr/lib/electron
|
|
|
|
chmod u+s "$pkgdir"/usr/lib/electron/chrome-sandbox
|
|
|
|
ln -sfv /usr/lib/electron/electron "$pkgdir"/usr/bin/electron
|
|
}
|
|
|
|
sha512sums="
|
|
459910ac11dfd2953240a72836aac55c33d914906194897b38328f482173a101930cad1656906df0bc1c903d41199eee8089f474f5d8b056cfb12c8f2b0acffb chromium-102-fenced_frame_utils-include.patch.chromium
|
|
a6f066e0cbb4e0644733b48013f150647b3c431dc5ebcbff611b3214c86739726208874f67cb339140045e7934e7636f7514bd7aec603545d47c7ab6ca205be4 chromium-102-regex_pattern-array.patch.chromium
|
|
0fc131ef4ad32964815744080f40cc2566c70da1cd4ddaf1da8456d1c86e67e3ebf38f43208d17d40b646744e8e662f5b314e236a1c90bc6f8b936313e42a3cf chromium-VirtualCursor-standard-layout.patch.chromium
|
|
c4654d5b23c6f5d9502507e534fe1951d6749c62251e49b6adfe10d1569431e7f7a5a6fa5ff09ec30984415ced27a5e20985df8c91295de34af3c84557fa5b91 chromium-revert-drop-of-system-java.patch.chromium
|
|
ded02360a36283973b9abb4150de3d964749a58017fbbd9f09fb6cb29ec97a8ac99ccadd953633bbb7eb9ec77a078f4df9de5f624d1580f33446ceba5fd3a3f6 chromium-use-alpine-target.patch.chromium
|
|
274858323d040ac8c51bac90b6ef91bb075d7b8d92d73952ed700c10a8bae2c2115fb2a9cc6912de79be226c141d7106839fc3486e22c0206e75cb6d8ff65ee6 credentials-header.patch.chromium
|
|
22da17c649ae9845d6a174187f2b666245a10db8a997169fc214c430fbba10143cfb57f8f6ece5acf856cd9ea09f293a1aca90cdf3e64fd9423b78beac53f517 default-pthread-stacksize.patch.chromium
|
|
9b1441fe42421ef9ead86a5143bf997d989bd53a8969cdfdf4e0c45f847efc8c1d127e15fb05e2ef5dbefbb228cbdc2849404d74997ca56265599e12e5efd6e4 elf-arm.patch.chromium
|
|
8bebf4a9d5225c6e47edc5b07c4b97be24a45cc221f49632836915ceeb4ecb69b7f79a31ea7f82171cde3443f45fec541f409892542cf1014e81aa6acd01566d fix-missing-cstdint-include-musl.patch.chromium
|
|
e60f381c557a15598d71e33b7aacc63be4a8e17b16cdd95047df5e5e9577ad925864ffd64597d5dbc9a4516de13b3f17c26099b36692165df8c66b1b4d399ce9 fix-narrowing-cast.patch.chromium
|
|
54f07ee9d85577e284e04460e79132fa6769251ceb045561cea811dde0369e9e4cdbcf26566235b0d12c649be4d46fea294f7c6a4e2a75109dc3282e6e7d7993 fix-unittests-sandbox.patch.chromium
|
|
82f2bd4aa613e792d3af6e7a8632e0920cf48504a7572fb97d5480ea182fa125fe526e7df1ce4311b5d139a3f78da0f0b54605fbd09d7cd43135906a7639e47f gdbinit.patch.chromium
|
|
4d268992ddb341e70f4e730c82c676c0c95b3958bc9553bbe83383cebde7373c79a8e9aeef47c7af2add8353263b02ccfd7e5bd864f544a584361a02d30374ec iwyu-add-utility-for-std-exchange.patch.chromium
|
|
17b54042c58cd448c7e26dca1504bb48d85fdd7c2385930e639c283493a5e430923041f01cde5a5dfaa32fbb7f0a645baca55b202d56d3f245fb4febdf026da2 libxml-unbundle.patch.chromium
|
|
599f5ef338b5797e04436bdc88921c31365d2dea2613d40053be6e774f654e2889efb0c0bd55c2c5044a6805510fbc337da555971169a75d584fac93e18256ac media-base.patch.chromium
|
|
63e5b25c49af484964b3ac723da1c2f348812572a2e24ad412d2fb9eb7eec9ddc0e76568e76d1f352cdc562bc5003c93e04ee519a82e8568f48484d1682e237f memory-tagging-arm64.patch.chromium
|
|
2e5a83826239849d096aead033eb519338b84e6fbbf58abfcd7cfe40d0b3070b66bcc825ec84406484d73d1a333f1b9d23a8ab44987ab5c8b187076c84cd668b musl-crashpad.patch.chromium
|
|
9fbfeb1f52e48658f46e55db29de02b554f24ae79f46bbd89bbf05c20f538c9bb3c8624a6e27907d13d6717e5f55a332b13577d8672539662c90c9a10109b94a musl-fixes.patch.chromium
|
|
20b6931937ae792ddf4e1be7f0cbf0f0931b0afce9f6528b7ae5edb1bb2db070438caa8edc94e915e1e5ab1a191789129877d0353fe8976f537df3775dd3ab5d musl-hacks.patch.chromium
|
|
a361989c7ff4a285ed36c499e4fe1e97ed8d904a9b92f8d3c01b056b469490b7d215b6edb803ba3b0955633f58f3682d4fb60cc710cba68153a6b23df3ba7ba9 musl-libc++.patch.chromium
|
|
ef43fa90b05e2407b6daa822193121cdeef6ee9068175572f0928f156f186be9c77539dfa06863adfaa25afd498ec1b5081f9e476543616f9472b9033fd921dc musl-sandbox.patch.chromium
|
|
0c0d3ed0a8f2bcecb2bf4eb56130fcd71031bb63744fb56e1b5a6b9dfbe16680607ff592e24602fe045b819509a70556e240b6fe0e876710977d60185f682df4 musl-stat.patch.chromium
|
|
a018cf58b9e34f73d588961f2f9a36de67267060fb2e77ebc562974c6c92a59009161e374cf9bbdc35e8bf1a7e90f0b90117a0d494dcd2e2bb2f5e6534925d0b musl-tid-caching.patch.chromium
|
|
556cc2ba28184a75745f13c673605327f5be590be179eb3f941dc0abded854a814e5da1432a28fb8d4dcdcd66ffd4c94ee1a8824d2cd93b632f48e9310dbc3fa musl-v8-monotonic-pthread-cont_timedwait.patch.chromium
|
|
7957aae04e8ef3badbc98c982ba1acb1b9ef5e665440116c704512f11554d7b64ba3643b7ff7d00476a6686324033b0cf762deb78ce798619226380953b9dc9c nasm.patch.chromium
|
|
7aa351e79c29de63972f1f16fbab0465b2569bc0a22174780988e0cdfe4fcaff3c664dd277937bb33f2b77f108d20afa8720c427524b09d26074f9cf6807e147 no-execinfo.patch.chromium
|
|
e8675aff9fccd8b58cc839ef1d9e0e022d66aa94f72baa72e7acf92ceb2691f6a7907cc60ec3a87f894efdd639a3dec7fe702c97d446fcdea99452caec57e002 no-getcontext.patch.chromium
|
|
c741fafab758a675f7007a450df7d9acfe05149f4ce6dd4cf82dc6e97ddcd6b5b4a6b8e09820c2ad3ea62487f30b34d848739908e95ca8a31ca5baeb7cb9d0d7 no-mallinfo.patch.chromium
|
|
c7fc8a1a079224b9ed6a1f8331cef901833bec04f337fa122381e0a65a1acdd529368f6653dc6d03475381659e07e6e31dd2ec0530257606480f06d15faf3aaf quiche-arena-size.patch.chromium
|
|
c8e892e36e7292cd6db36017fff994a0fbc00dd83ea9010422c21cd56da89c9eddd1712e4ff4b3fec354fa595ce3cc403b96fc13525e74fe6538461d5c2d9b50 remove-no-opaque-pointers-flag.patch.chromium
|
|
91dafba2138175b6618ec4c96c7ea39f3a26f6a09b69adabad4f9355dd84d436f3de3274b31465d5f46deeb452fde64e4cfbbda0bb4ed7e9a25d953e1b73e5d2 remove-strip_binary.patch.chromium
|
|
cd7719c30518aeb659e9b7dc126241f897afe1a231e601271b63ba170e811a93b514c4d2a77680cdf0c846f81fa6db766ac619aa200efb32cbdfff6732a63893 resolver.patch.chromium
|
|
2fdd0b2fd403dd4440533288f7e08bb8480702c42c7571ea764aac18ba5eaf72494793c77e4244991d12f45e5acfceae0772995b11d323916c07cb53c43a2f59 revert-use-ffile-compilation-dir.patch.chromium
|
|
128ec0fd14349e065c8bb0910d53cbea7423182a06e06f7b7765f3cba1e5ba5e7a8bccbcdab079335b5235abb7bf0d46dee21ecc8c221be7e1c5c6d9795f958e roll-src-third_party-ffmpeg.patch.chromium
|
|
8d11b2ba811fdd6280784bfafcef073238324941b4c33e7c9a5ccfde8506242d06e5136d697f047bab3838b43a666f1da404af7b4f4ff9a0c6bf6bdb8448e5b2 scoped-file.patch.chromium
|
|
26a8e4040e69f335a7104f42d012b9d933a40985b33a7be02add27a801c097c5a2be4c6e69faf9175ce8945210ae4c5592ecad2123ccff2beee5473194a765e3 system-node.patch.electron
|
|
e05180199ee1d559e4e577cedd3e589844ecf40d98a86321bf1bea5607b02eeb5feb486deddae40e1005b644550331f6b8500177aa7e79bcb3750d3c1ceb76c3 python-jinja-3.10.patch.electron
|
|
89a5d6ff62071247595d22a9512ef32d53ac35ab60ae7e64c198fd3dffecaaeb35134d42edb53540d9000a62007821fe8e9bb3e5602b116b1fc28eefd3fe851b vector-const.patch.electron
|
|
"
|