PKGBUILDs/extra/qt5-webengine/PKGBUILD
2023-03-09 18:51:05 +00:00

108 lines
4.4 KiB
Bash

# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - patch for chromium GN
# - patch for chromium skia
# - patch for chromium to run blink bindings generation single threaded
# - patch for chromium to backport 16k page support
# - build v7 with -j4
highmem=1
pkgname=qt5-webengine
_basever=5.15.8
pkgver=5.15.12
pkgrel=4
arch=('x86_64')
url='https://www.qt.io'
license=('LGPL3' 'LGPL2.1' 'BSD')
pkgdesc='Provides support for web applications using the Chromium browser project'
depends=('qt5-webchannel' 'qt5-location' 'libxcomposite' 'libxrandr' 'pciutils' 'libxss' 'libxkbfile'
'libevent' 'snappy' 'nss' 'libxslt' 'minizip' 'ffmpeg' 're2' 'libvpx' 'libxtst' 'ttf-font')
makedepends=('git' 'python' 'gperf' 'jsoncpp' 'ninja' 'qt5-tools' 'poppler' 'pipewire' 'nodejs')
optdepends=('pipewire: WebRTC desktop sharing under Wayland')
groups=('qt' 'qt5')
_pkgfqn=${pkgname/5-/}
source=(git+https://code.qt.io/qt/qtwebengine.git#tag=v${pkgver}-lts
git+https://code.qt.io/qt/qtwebengine-chromium.git
git+https://chromium.googlesource.com/catapult#commit=5eedfe23148a234211ba477f76fc2ea2e8529189
qt5-webengine-python3.patch
qt5-webengine-chromium-python3.patch
qt5-webengine-ffmpeg5.patch
qt5-webengine-pipewire-0.3.patch
qt5-webengine-gcc12.patch
0001-ARM-toolchain-fixes.patch
0002-Fix-ARM-skia-ICE.patch
0003-bind-gen-Support-single_process-flag-in-generate_bin.patch
0004-Run-blink-bindings-generation-single-threaded.patch
0005-Backport-of-16k-page-support-on-aarch64.patch)
sha256sums=('SKIP'
'SKIP'
'SKIP'
'398c996cb5b606695ac93645143df39e23fa67e768b09e0da6dbd37342a43f32'
'fda4ff16790799fb285847918a677f4f3f7c0f513d4751f846ffc5aa5d873932'
'c50d3019626183e753c53a997dc8a55938847543aa3178d4c51f377be741c693'
'5e3a3c4711d964d5152a04059a2b5c1d14bb13dd29bce370120f60e85b476b6f'
'cf9be3ffcc3b3cd9450b1ff13535ff7d76284f73173412d097a6ab487463a379'
'888dcb27b6cc9ac6e926a59707cc298a0d4ff24b5461a14d8c5dd4ab70e8b759'
'4d09377b181a1bd9d84c0e45e8edae7b43c5af92b9375ef8cdbb1be06ec75436'
'a2dda475d7064e627f4b60bde3539a25f9b520881628b62192bfa8d705dd965e'
'1ee30297739637763e1e36ac65a9b504e161ef2c2cd9ac8bc01d071ff3b284bf'
'fcf7ff60b2a78dc1ae1e93f8d15744b6d90e64eeebc5979385b92b85e4e3f079')
prepare() {
mkdir -p build
cd ${_pkgfqn}
git submodule init
git submodule set-url src/3rdparty "$srcdir"/qtwebengine-chromium
git submodule set-branch --branch 87-based src/3rdparty
git -c protocol.file.allow=always submodule update
patch -p1 -i "$srcdir"/qt5-webengine-python3.patch # Fix build with Python 3
patch -p1 -d src/3rdparty -i "$srcdir"/qt5-webengine-chromium-python3.patch
patch -p1 -d src/3rdparty -i "$srcdir"/qt5-webengine-ffmpeg5.patch # Fix build with ffmpeg 5
patch -p1 -d src/3rdparty -i "$srcdir"/qt5-webengine-pipewire-0.3.patch # Port to pipewire 0.3
patch -p1 -d src/3rdparty -i "$srcdir"/qt5-webengine-gcc12.patch # Fix build with GCC 12
# Update catapult for python3 compatibility
rm -r src/3rdparty/chromium/third_party/catapult
mv "$srcdir"/catapult src/3rdparty/chromium/third_party
[[ $CARCH == "armv7h" ]] && export NINJAJOBS="-j1"
cd "$srcdir/$_pkgfqn/src/3rdparty"
patch -p1 -i ${srcdir}/0001-ARM-toolchain-fixes.patch
patch -p1 -i ${srcdir}/0002-Fix-ARM-skia-ICE.patch
patch -p1 -i ${srcdir}/0003-bind-gen-Support-single_process-flag-in-generate_bin.patch
patch -p1 -i ${srcdir}/0004-Run-blink-bindings-generation-single-threaded.patch
patch -p1 -i ${srcdir}/0005-Backport-of-16k-page-support-on-aarch64.patch
}
build() {
cd build
qmake ../${_pkgfqn} -- \
-proprietary-codecs \
-system-ffmpeg \
-webp \
-spellchecker \
-webengine-icu \
-webengine-kerberos \
-webengine-webrtc-pipewire
make
}
package() {
cd build
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
find "$pkgdir/usr/lib" -type f -name '*.prl' \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
install -Dm644 "$srcdir"/${_pkgfqn}/src/3rdparty/chromium/LICENSE "$pkgdir"/usr/share/licenses/${pkgname}/LICENSE.chromium
# Fix cmake dependency versions
sed -e "s|$pkgver\ |$_basever |" -i "$pkgdir"/usr/lib/cmake/*/*Config.cmake
}