# Contributor: Rasmus Thomsen # Contributor: Sergei Lukin # Contributor: Jiri Horner # Maintainer: psykose pkgname=webkit2gtk-6.0 pkgver=2.40.2 pkgrel=1 pkgdesc="Portable web rendering engine WebKit for GTK+ - GTK4 version" url="https://webkitgtk.org/" arch="all" license="LGPL-2.0-or-later AND BSD-2-Clause" depends="bubblewrap xdg-dbus-proxy dbus:org.freedesktop.Secrets" makedepends=" bison clang cmake enchant2-dev flex flite-dev geoclue-dev gnutls-dev gobject-introspection-dev gperf gst-plugins-bad-dev gst-plugins-base-dev gstreamer-dev gtk4.0-dev hyphen-dev icu-dev lcms2-dev libavif-dev libgcrypt-dev libjpeg-turbo-dev libmanette-dev libpng-dev libseccomp-dev libsecret-dev libsoup3-dev libwebp-dev libwpe-dev libwpebackend-fdo-dev libxcomposite-dev libxml2-dev libxslt-dev libxt-dev llvm mesa-dev openjpeg-dev pango-dev python3 ruby samurai sqlite-dev unifdef woff2-dev " options="!check" # upstream doesn't package them in release tarballs: Tools/Scripts/run-gtk-tests: Command not found subpackages="$pkgname-dev $pkgname-lang $pkgname-dbg" source="https://webkitgtk.org/releases/webkitgtk-$pkgver.tar.xz armv6kz.patch initial-exec.patch " builddir="$srcdir/webkitgtk-$pkgver" case "$CARCH" in s390x) ;; *) makedepends="$makedepends lld" ;; esac # secfixes: # 2.36.5-r0: # - CVE-2022-2294 # - CVE-2022-32792 # - CVE-2022-32816 # 2.36.4-r0: # - CVE-2022-22677 # - CVE-2022-22710 build() { case "$CARCH" in s390x|armhf|armv7|x86|ppc64le) # llint/LowLevelInterpreter.cpp fails to build with fortify source here export CXXFLAGS="$CXXFLAGS -U_FORTIFY_SOURCE" ;; esac case "$CARCH" in armv7) # clang fails to build armv7 due to some NEON related thing. # https://github.com/WebKit/WebKit/pull/1233 should fix it ;; s390x) # no lld on s390x export CC=clang export CXX=clang++ ;; *) # the debug symbols become 1/2 the size, and actual webkit becomes # smaller too. export CC=clang export CXX=clang++ export LDFLAGS="$LDFLAGS -fuse-ld=lld" ;; esac case "$CARCH" in arm*|aarch64|s390x|riscv64) # arm: seemingly broken? # s390x/riscv64: no lld ;; *) local lto="-DLTO_MODE=thin" ;; esac export AR=llvm-ar export NM=llvm-nm export RANLIB=llvm-ranlib # significantly reduce debug symbol size export CFLAGS="$CFLAGS -g1" export CXXFLAGS="$CXXFLAGS -g1" cmake -B build -G Ninja \ -DPORT=GTK \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_SKIP_RPATH=ON \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib \ -DENABLE_DOCUMENTATION=OFF \ -DENABLE_JOURNALD_LOG=OFF \ -DENABLE_SAMPLING_PROFILER=OFF \ -DENABLE_MINIBROWSER=ON \ -DENABLE_SPELLCHECK=ON \ -DENABLE_SPEECH_SYNTHESIS=ON \ -DUSE_GTK4=ON \ $lto \ $jit cmake --build build } check() { ninja -C build check } package() { DESTDIR="$pkgdir" cmake --install build mv "$pkgdir"/usr/bin/WebKitWebDriver "$pkgdir"/usr/bin/WebKitWebDriver-6.0 } sha512sums=" 2fea73faffe171845f3710995bb27eb7350aa9ba7b513e7f0fc163c09fc63d73112a55dbc010af67e422c59baa9bfc85018f470a0255e43eb17aae465946eef7 webkitgtk-2.40.2.tar.xz 8c89d4ac737a2bd6d970fec3ecb9d0b72d61ffb9a37d4b0b56bc0106914398a65319e940c593c0305fc40d6900aac2a8b4fc3bafc9a96062063d15abd1f5039d armv6kz.patch 26f3df81758068a83bf770e1f8b48546e9ec2428d23cbc4e1c5cc7851c91ad1dfeeac89aea73568a5f498cd6c053aaab7e1af67e59a471ad2d0375c1c64cbd8a initial-exec.patch "