# Maintainer: Jan Alexander Steffens (heftig) # Contributor: Eric Bélanger # ALARM: Kevin Mihelich # - build with gcc instead of clang # - disable neon for v7 pkgbase=webkitgtk-6.0 pkgname=( webkitgtk-6.0 webkitgtk-6.0-docs ) pkgver=2.44.2 pkgrel=1 pkgdesc="Web content engine for GTK" url="https://webkitgtk.org" arch=(x86_64) license=(custom) depends=( at-spi2-core atk bubblewrap cairo enchant fontconfig freetype2 glib2 gst-plugins-bad-libs gst-plugins-base-libs gstreamer gtk4 harfbuzz harfbuzz-icu hyphen icu libavif libdrm libegl libepoxy libgcrypt libgl libgles libjpeg libjxl libmanette libpng libseccomp libsecret libsoup3 libsystemd libtasn1 libwebp libwpe libx11 libxcomposite libxml2 libxslt libxt mesa openjpeg2 sqlite wayland woff2 wpebackend-fdo xdg-dbus-proxy zlib ) makedepends=( cmake gi-docgen gobject-introspection gperf gst-plugins-bad ninja python ruby systemd unifdef wayland-protocols ) source=( $url/releases/webkitgtk-$pkgver.tar.xz{,.asc} ) sha256sums=('523f42c8ff24832add17631f6eaafe8f9303afe316ef1a7e1844b952a7f7521b' 'SKIP') b2sums=('f92ba55adf7bfea165d9950ffbea6f848466be7c6a96b50e0c1c080964415b3e1b44f65c22fa8f64e907e6e7785bd86082452ce15c62ff52811ebc7b8d6b1071' 'SKIP') validpgpkeys=( # https://www.webkitgtk.org/verifying.html 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B # Adrián Pérez de Castro 013A0127AC9C65B34FFA62526C1009B693975393 # Carlos Garcia Campos ) prepare() { cd webkitgtk-$pkgver if [[ $CARCH == "armv7h" ]]; then sed -i '/#define WTF_CPU_ARM_NEON 1/d' Source/WTF/wtf/PlatformCPU.h fi } build() { local cmake_options=( -DPORT=GTK -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_LIBEXECDIR=lib -DCMAKE_SKIP_RPATH=ON -DUSE_GTK4=ON -DUSE_LIBBACKTRACE=OFF -DUSE_SOUP2=OFF -DENABLE_DOCUMENTATION=ON -DENABLE_MINIBROWSER=ON ) # GCC with LTO fails to link libjavascriptcoregtk # /usr/bin/ld: /tmp/ccXxyWZV.ltrans0.ltrans.o: in function `ipint_table_size_validate': # :(.text+0x49f0f): undefined reference to `ipint_extern_table_size' # /usr/bin/ld: /tmp/ccXxyWZV.ltrans0.ltrans.o: in function `ipint_table_fill_validate': # :(.text+0x4a019): undefined reference to `ipint_extern_table_fill' # collect2: error: ld returned 1 exit status #export CC=clang CXX=clang++ #LDFLAGS+=" -fuse-ld=lld" # JITted code crashes when CET is used #CFLAGS+=' -fcf-protection=none' #CXXFLAGS+=' -fcf-protection=none' # Produce minimal debug info: 4.3 GB of debug data makes the # build too slow and is too much to package for debuginfod #CFLAGS+=' -g1' #CXXFLAGS+=' -g1' [[ $CARCH == "armv7h" ]] && CFLAGS=`echo $CFLAGS | sed -e 's/neon/vfpv3/'` && CXXFLAGS="$CFLAGS" cmake -S webkitgtk-$pkgver -B build -G Ninja "${cmake_options[@]}" cmake --build build } package_webkitgtk-6.0() { depends+=( libWPEBackend-fdo-1.0.so libwpe-1.0.so ) provides+=( libjavascriptcoregtk-6.0.so libwebkitgtk-6.0.so ) optdepends=( 'geoclue: Geolocation support' 'gst-libav: nonfree media decoding' 'gst-plugins-bad: media decoding' 'gst-plugins-good: media decoding' ) DESTDIR="$pkgdir" cmake --install build mkdir -p doc/usr/share mv {"$pkgdir",doc}/usr/share/doc cd webkitgtk-$pkgver find Source -name 'COPYING*' -or -name 'LICENSE*' -print0 | sort -z | while IFS= read -d $'\0' -r _f; do echo "### $_f ###" cat "$_f" echo done | install -Dm644 /dev/stdin "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } package_webkitgtk-6.0-docs() { pkgdesc+=" (documentation)" depends=() mv doc/* "$pkgdir" } # vim:set sw=2 sts=-1 et: