PKGBUILDs/extra/webkit2gtk/PKGBUILD
2024-05-19 19:34:22 +00:00

180 lines
3.8 KiB
Bash

# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Eric Bélanger <eric@archlinux.org>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - build v7 with vfpv3, neon is broken
highmem=1
pkgbase=webkit2gtk
pkgname=(
webkit2gtk
webkit2gtk-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
gtk3
harfbuzz
harfbuzz-icu
hyphen
icu
libavif
libdrm
libegl
libepoxy
libgcrypt
libgl
libgles
libjpeg
libjxl
libmanette
libpng
libseccomp
libsecret
libsoup
libsystemd
libtasn1
libwebp
libwpe
libx11
libxcomposite
libxml2
libxslt
libxt
mesa
openjpeg2
sqlite
wayland
woff2
wpebackend-fdo
xdg-dbus-proxy
zlib
)
makedepends=(
clang
cmake
gi-docgen
gobject-introspection
gperf
gst-plugins-bad
lld
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 <aperez@igalia.com>
013A0127AC9C65B34FFA62526C1009B693975393 # Carlos Garcia Campos <cgarcia@igalia.com>
)
prepare() {
cd webkitgtk-$pkgver
}
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=OFF
-DUSE_LIBBACKTRACE=OFF
-DUSE_SOUP2=ON
-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':
# <artificial>:(.text+0x49f0f): undefined reference to `ipint_extern_table_size'
# /usr/bin/ld: /tmp/ccXxyWZV.ltrans0.ltrans.o: in function `ipint_table_fill_validate':
# <artificial>:(.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_webkit2gtk() {
depends+=(
libWPEBackend-fdo-1.0.so
libwpe-1.0.so
)
provides+=(
libjavascriptcoregtk-4.0.so
libwebkit2gtk-4.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
rm -r "$pkgdir/usr/bin"
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_webkit2gtk-docs() {
pkgdesc+=" (documentation)"
depends=()
mv doc/* "$pkgdir"
}
# vim:set sw=2 sts=-1 et: