jobextra/webkit2gtk/PKGBUILD

137 lines
5.1 KiB
Bash

#!/usr/bin/bash
# JOBoRun : Jwm OpenBox Obarun RUNit
# Maintainer : Joe Bo Run <joborun@disroot.org>
# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname"
# Website : https://pozol.eu
#-----------------------------------------| DESCRIPTION |---------------------------------------
#pkgbase=webkit2gtk
pkgname=webkit2gtk
# webkit2gtk-docs) # add if you want your own made docs
pkgver=2.42.5
pkgrel=02
pkgdesc="Web content engine for GTK w/o systemd"
url="https://webkitgtk.org"
depends=(at-spi2-core atk bubblewrap cairo enchant-pure 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 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 unifdef wayland-protocols)
optdepends=('geoclue: Geolocation support'
'gst-plugins-good: media decoding'
'gst-plugins-bad: media decoding'
'gst-libav: nonfree media decoding')
source=($url/releases/webkitgtk-$pkgver.tar.xz{,.asc}
GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch
GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch)
prepare() {
cd webkitgtk-$pkgver
# Requested by eworm
# https://github.com/WebKit/WebKit/pull/17909
patch -Np1 -i ../GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch
# https://bugs.archlinux.org/task/79783
# https://github.com/WebKit/WebKit/pull/18614
patch -Np1 -i ../GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch
}
build() {
cmake -S webkitgtk-$pkgver -B build -G Ninja \
-DPORT=GTK \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_LIBEXECDIR=lib \
-DCMAKE_SKIP_RPATH=ON \
-DUSE_SOUP2=ON \
-DENABLE_DOCUMENTATION=OFF \
-DENABLE_GTKDOC=OFF \
-DENABLE_MINIBROWSER=ON \
-DENABLE_JOURNALD_LOG=OFF \
-DENABLE_SYSTEMD=OFF
# 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'
cmake -S webkitgtk-$pkgver -B build -G Ninja "${cmake_options[@]}"
cmake --build build
}
package() {
depends+=(libwpe-1.0.so libWPEBackend-fdo-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/gtk-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"
#}
#---- arch license gpg-key & sha256sums ----
arch=(x86_64)
license=(custom)
validpgpkeys=(D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3 # Carlos Garcia Campos <cgarcia@igalia.com>
5AA3BC334FD7E3369E7C77B291C559DBE4C9123B) # Adrián Pérez de Castro <aperez@igalia.com>
b2sums=('4b772d91d3e2c3fc3a48455f43016d2cc1699b18fcc78253d1527eecabbfc1f47cd3bf3c512508fd683d29de68f980511d2057e4c65979bab38083a2da5cb516'
'SKIP'
'd440d82c769f1b35caf5464dc850cdf1c896224205c90c17d8b0a44aee62e4b1383e11306936aaca067fde8836770d346d5122d7b05c91a5c7c1741c89c65e2f'
'daa782d4d40cc12a05c02b2494e879333f66f32820f1a1b89b7ab68f62fd53043b116ecb5ef476004095a7c7b924b12695b7e87e21dd547f66e72fa02a972f0d')
sha256sums=(b64278c1f20b8cfdbfb5ff573c37d871aba74a1db26d9b39f74e8953fe61e749 # webkitgtk-2.42.5.tar.xz
1495d1346e65696f25995efebceec0672e374c8740e49f623b6dd89a30280cd4 # webkitgtk-2.42.5.tar.xz.asc
a921d6be1303e9f23474971f381886fd291ec5bb1a7ff1e85acede8cfb88bef2 # GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch
655f3b2c96355ac83c4fa1fc6048e3256bbfdbfb9727e1e18c5af12613536206) # GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch
## 18b39da86ef0d68bb21abac3de2ba945e4cae45bc3926ae10d93d9e160b59946 webkit2gtk-2.42.5-02-x86_64.pkg.tar.lz