From 60fd93e0b0cd1e33a73ecc91dccab7c08b1464e9 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Mon, 16 Oct 2023 01:16:15 +0000
Subject: [PATCH] added extra/webkitgtk-6.0

---
 extra/webkitgtk-6.0/.SRCINFO                  | 139 ++++++++++++++
 extra/webkitgtk-6.0/PKGBUILD                  | 178 ++++++++++++++++++
 ...A3BC334FD7E3369E7C77B291C559DBE4C9123B.asc |  21 +++
 ...FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3.asc |  23 +++
 4 files changed, 361 insertions(+)
 create mode 100644 extra/webkitgtk-6.0/.SRCINFO
 create mode 100644 extra/webkitgtk-6.0/PKGBUILD
 create mode 100644 extra/webkitgtk-6.0/keys/pgp/5AA3BC334FD7E3369E7C77B291C559DBE4C9123B.asc
 create mode 100644 extra/webkitgtk-6.0/keys/pgp/D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3.asc

diff --git a/extra/webkitgtk-6.0/.SRCINFO b/extra/webkitgtk-6.0/.SRCINFO
new file mode 100644
index 000000000..545230ebe
--- /dev/null
+++ b/extra/webkitgtk-6.0/.SRCINFO
@@ -0,0 +1,139 @@
+pkgbase = webkitgtk-6.0
+	pkgdesc = Web content engine for GTK
+	pkgver = 2.42.1
+	pkgrel = 1
+	url = https://webkitgtk.org
+	arch = x86_64
+	license = custom
+	makedepends = clang
+	makedepends = cmake
+	makedepends = gi-docgen
+	makedepends = gobject-introspection
+	makedepends = gperf
+	makedepends = gst-plugins-bad
+	makedepends = lld
+	makedepends = ninja
+	makedepends = python
+	makedepends = ruby
+	makedepends = systemd
+	makedepends = unifdef
+	makedepends = wayland-protocols
+	depends = at-spi2-core
+	depends = atk
+	depends = bubblewrap
+	depends = cairo
+	depends = enchant
+	depends = fontconfig
+	depends = freetype2
+	depends = glib2
+	depends = gst-plugins-bad-libs
+	depends = gst-plugins-base-libs
+	depends = gstreamer
+	depends = gtk4
+	depends = harfbuzz
+	depends = harfbuzz-icu
+	depends = hyphen
+	depends = icu
+	depends = libavif
+	depends = libdrm
+	depends = libegl
+	depends = libepoxy
+	depends = libgcrypt
+	depends = libgl
+	depends = libgles
+	depends = libjpeg
+	depends = libjxl
+	depends = libmanette
+	depends = libpng
+	depends = libseccomp
+	depends = libsecret
+	depends = libsoup3
+	depends = libsystemd
+	depends = libtasn1
+	depends = libwebp
+	depends = libwpe
+	depends = libx11
+	depends = libxcomposite
+	depends = libxml2
+	depends = libxslt
+	depends = libxt
+	depends = mesa
+	depends = openjpeg2
+	depends = sqlite
+	depends = wayland
+	depends = woff2
+	depends = wpebackend-fdo
+	depends = xdg-dbus-proxy
+	depends = zlib
+	source = https://webkitgtk.org/releases/webkitgtk-2.42.1.tar.xz
+	source = https://webkitgtk.org/releases/webkitgtk-2.42.1.tar.xz.asc
+	source = webkitgtk-MiniBrowser-fullscreen.patch::https://github.com/WebKit/WebKit/commit/e07345343415dd2496edc721daa61a3b42703131.patch
+	validpgpkeys = D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3
+	validpgpkeys = 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B
+	sha256sums = 6f41fac9989d3ee51c08c48de1d439cdeddecbc757e34b6180987d99b16d2499
+	sha256sums = SKIP
+	sha256sums = a921d6be1303e9f23474971f381886fd291ec5bb1a7ff1e85acede8cfb88bef2
+	b2sums = c6453cf2d15661507df66c5478e7675217b62d9579cf9b9408cb3e4fa1a8405c5c2608edf0960baed62aafa766e6cdbe2f0c07e8fb728d86c111f12d5a816492
+	b2sums = SKIP
+	b2sums = d440d82c769f1b35caf5464dc850cdf1c896224205c90c17d8b0a44aee62e4b1383e11306936aaca067fde8836770d346d5122d7b05c91a5c7c1741c89c65e2f
+
+pkgname = webkitgtk-6.0
+	depends = at-spi2-core
+	depends = atk
+	depends = bubblewrap
+	depends = cairo
+	depends = enchant
+	depends = fontconfig
+	depends = freetype2
+	depends = glib2
+	depends = gst-plugins-bad-libs
+	depends = gst-plugins-base-libs
+	depends = gstreamer
+	depends = gtk4
+	depends = harfbuzz
+	depends = harfbuzz-icu
+	depends = hyphen
+	depends = icu
+	depends = libavif
+	depends = libdrm
+	depends = libegl
+	depends = libepoxy
+	depends = libgcrypt
+	depends = libgl
+	depends = libgles
+	depends = libjpeg
+	depends = libjxl
+	depends = libmanette
+	depends = libpng
+	depends = libseccomp
+	depends = libsecret
+	depends = libsoup3
+	depends = libsystemd
+	depends = libtasn1
+	depends = libwebp
+	depends = libwpe
+	depends = libx11
+	depends = libxcomposite
+	depends = libxml2
+	depends = libxslt
+	depends = libxt
+	depends = mesa
+	depends = openjpeg2
+	depends = sqlite
+	depends = wayland
+	depends = woff2
+	depends = wpebackend-fdo
+	depends = xdg-dbus-proxy
+	depends = zlib
+	depends = libWPEBackend-fdo-1.0.so
+	depends = libwpe-1.0.so
+	optdepends = geoclue: Geolocation support
+	optdepends = gst-libav: nonfree media decoding
+	optdepends = gst-plugins-bad: media decoding
+	optdepends = gst-plugins-good: media decoding
+	provides = libjavascriptcoregtk-6.0.so
+	provides = libwebkitgtk-6.0.so
+
+pkgname = webkitgtk-6.0-docs
+	pkgdesc = Web content engine for GTK (documentation)
+	depends = 
diff --git a/extra/webkitgtk-6.0/PKGBUILD b/extra/webkitgtk-6.0/PKGBUILD
new file mode 100644
index 000000000..f5719c084
--- /dev/null
+++ b/extra/webkitgtk-6.0/PKGBUILD
@@ -0,0 +1,178 @@
+# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+# Contributor: Eric Bélanger <eric@archlinux.org>
+
+# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
+#  - build with gcc instead of clang
+#  - disable neon for v7
+
+pkgbase=webkitgtk-6.0
+pkgname=(
+  webkitgtk-6.0
+  webkitgtk-6.0-docs
+)
+pkgver=2.42.1
+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}
+  webkitgtk-MiniBrowser-fullscreen.patch::https://github.com/WebKit/WebKit/commit/e07345343415dd2496edc721daa61a3b42703131.patch
+)
+sha256sums=('6f41fac9989d3ee51c08c48de1d439cdeddecbc757e34b6180987d99b16d2499'
+            'SKIP'
+            'a921d6be1303e9f23474971f381886fd291ec5bb1a7ff1e85acede8cfb88bef2')
+b2sums=('c6453cf2d15661507df66c5478e7675217b62d9579cf9b9408cb3e4fa1a8405c5c2608edf0960baed62aafa766e6cdbe2f0c07e8fb728d86c111f12d5a816492'
+        'SKIP'
+        'd440d82c769f1b35caf5464dc850cdf1c896224205c90c17d8b0a44aee62e4b1383e11306936aaca067fde8836770d346d5122d7b05c91a5c7c1741c89c65e2f')
+validpgpkeys=(
+  'D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3'  # Carlos Garcia Campos <cgarcia@igalia.com>
+  '5AA3BC334FD7E3369E7C77B291C559DBE4C9123B'  # Adrián Pérez de Castro <aperez@igalia.com>
+)
+
+prepare() {
+  cd webkitgtk-$pkgver
+
+  patch -Np1 < ../webkitgtk-MiniBrowser-fullscreen.patch
+
+  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_AVIF=ON
+    -DUSE_GTK4=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"
+
+  # 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/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_webkitgtk-6.0-docs() {
+  pkgdesc+=" (documentation)"
+  depends=()
+
+  mv doc/* "$pkgdir"
+}
+
+# vim:set sw=2 sts=-1 et:
diff --git a/extra/webkitgtk-6.0/keys/pgp/5AA3BC334FD7E3369E7C77B291C559DBE4C9123B.asc b/extra/webkitgtk-6.0/keys/pgp/5AA3BC334FD7E3369E7C77B291C559DBE4C9123B.asc
new file mode 100644
index 000000000..9f844169f
--- /dev/null
+++ b/extra/webkitgtk-6.0/keys/pgp/5AA3BC334FD7E3369E7C77B291C559DBE4C9123B.asc
@@ -0,0 +1,21 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQGiBEhD/gURBADY9/zG24BcSOkrarNtDlMqTM1Mc22gBlpVs3IyGwiYFy1f+NYL
+0CwgO6JsJPF0BsrLtZ0jO7SCUOnq1lQ/XA3Ecttp9Fc7p7qRoDX4okC72PFGOtth
+fnnkAaFe4d2LYIXs6ZPbuH4x7sDnEDcK2ceJvNXFIRjF8XnOglpN3pmI+wCggRxa
+VFsAYh/xbm5/UYSDyJDqCH0EALjkCl4l5kGVA+5ZQgtuvLNrHyOIAX35pwE4fKby
+krpM7DP0YooNnXzENOPvOB4WlhW8dAAt2EuQspvmJieeevE//DcgAhYVZBlzNnQq
+Z3yPbJY4ucQy9KU5hyP6GLul+80KThhJZRAiCnjSQf8H3Ij7sEwLkSAmg1MIyPF7
+OShABAC42FzEpsyW6+SX7c6FNYB5ZgsgEESq6nTiCJ77Tqe5CrOqNplpNqrw/knI
+GgSEsxmXNEhBvXCjCH4CDDGPXVuqXpHB/E38JW75irXVVSr47iTx0XaBRzGLcHyM
+gT1b/yYCl10FV/47u8XaOP0BP9cQ2A9PY/vRTKRDNbe4plJSRbQsQWRyacOhbiBQ
+w6lyZXogZGUgQ2FzdHJvIDxhcGVyZXpAaWdhbGlhLmNvbT6IgQQTEQoAQQIbIwIe
+AQIXgAIZAQULCQgHAwUVCgkICwUWAgMBABYhBFqjvDNP1+M2nnx3spHFWdvkyRI7
+BQJeuoBnBQkaOOliAAoJEJHFWdvkyRI7lAsAn0EYqK753vXGH0fQGi30hnLUTbo7
+AJ4gi/3tS5RXrokUBWt//IhPrkUSBrQ+QWRyacOhbiBQw6lyZXogZGUgQ2FzdHJv
+IChwZXJzb25hbCkgPGFkcmlhbkBwZXJlemRlY2FzdHJvLm9yZz6IfgQTEQoAPgIb
+IwIeAQIXgAULCQgHAwUVCgkICwUWAgMBABYhBFqjvDNP1+M2nnx3spHFWdvkyRI7
+BQJeuoBuBQkaOOliAAoJEJHFWdvkyRI7PlsAn0kzehBht+bqJ9IVW08hfq3dNirm
+AJsHuPgQnz2Zm43XDUf6Re8vaoxlxQ==
+=tAiD
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/extra/webkitgtk-6.0/keys/pgp/D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3.asc b/extra/webkitgtk-6.0/keys/pgp/D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3.asc
new file mode 100644
index 000000000..e5d71dd52
--- /dev/null
+++ b/extra/webkitgtk-6.0/keys/pgp/D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3.asc
@@ -0,0 +1,23 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQGiBEy4Qy4RBACevATwAKdArGO2UjVGsP3nb3BWLfB9KR5hbpuL5yejUoR6xeN4
+vsw1/fy9fiGlsLGqlmnd6bDZ6c7mNyc0ERXXGk2QOQEMeDyL6VsoZEbo5t8bZa6B
+Pxc23C9L4d0bdNF7y0CoO7xsg1zClq23MXWAgi4Wm+ZDonw+b2UBcCt/uwCg9AST
+/g8XgNKZ4WxpRI4bM/1BvxUD/2xeJkUjgmdwV14dOdHmsW7BYJHUKxAt9KBSJ5Yo
+ZDCmh6HTtUjd9dKwkuRTxtc3G4s+J5D5WCeNKQ/kNAYAoclzXYc2crTrXZ+RqWap
+G+ngUZxgnyNAaveyUjV19qDRJKVuzBXeQWH/UU5eEpuRfx7ReyFX7sAhDOmnVrvg
+IoegA/0SNS+wsGjYxpWOO1QMsqGidgIp5yLanfA7qsfxz8t+gGtXOSqomUJsYyYX
+a0c2kXl3ZPe/cyK6j9o+l4YrczkNAxeXVJd4uA4sSrqmKI1F7cICV3EqJ5uyKWll
+eW/sfhKNcPiadBZr9LNS1775jWM3pNxszZrjCnTfspn0gyGTbLQpQ2FybG9zIEdh
+cmNpYSBDYW1wb3MgPGNnYXJjaWFAaWdhbGlhLmNvbT6IYgQTEQIAIgUCTLhDLgIb
+AwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ89Mi0OxFgsO7aQCgyouexI5L
+4PxyZlCgucZj2UGUI1kAn2Lh4CPgaCa7kno1aArSFzzdVRnhuQENBEy4Qy4QBADZ
+F1vw6zV7ZKGg8Ipfi0ASbDRVzHdr4wdoiNbFGKXykwi3PRuolrSTd+970u0MNX30
+ZmfOTk/cidymaBd0RyVnwmPgnoRxZpKhMnFrlxRYtukUHyYDeFwM376ux1TXNWwG
+sxZ3RmENWyoAs8GK3vIYhaqC22qxS1SfjMn1eueonwADBQQAnLZte7R5TK0j5L1K
+/JJc82JOkdjlF6ORS+hxHqlITmRevmo5zcvBMfCjH98y5yGVHciQ/Pp+AC+hI7n0
+r2B+HO7/M+fzub4mJpgsrdGLebwFOOMuJQCzU/vm2O+ni9RfhKGxj6j5ibVzW/Xg
+dxDF7ffwmiqAWJrzUGtIBKRw372ISQQYEQIACQUCTLhDLgIbDAAKCRDz0yLQ7EWC
+w/ohAJ9TForRmpOoZQn8nC82lvjLnl8yJwCfePN1wgFlZu2kkHP4d0fJ2LN6whM=
+=HKDK
+-----END PGP PUBLIC KEY BLOCK-----