summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorq234rty2022-06-22 21:24:50 +0800
committerq234rty2022-06-22 21:24:50 +0800
commit37cca198e82ee9fed80eac6ef3e4717c8ee47bbd (patch)
tree9e9b4f61b91f2a12ced59c282e9604fdaa1217e5
downloadaur-37cca198e82ee9fed80eac6ef3e4717c8ee47bbd.tar.gz
Initial commit
-rw-r--r--.SRCINFO127
-rw-r--r--EnlargeObjectSize.patch11
-rw-r--r--PKGBUILD75
-rw-r--r--PasteBoardGtk.patch49
4 files changed, 262 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..5b9cf277da73
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,127 @@
+pkgbase = webkit2gtk-imgpaste
+ pkgdesc = Web content engine for GTK
+ pkgver = 2.36.3
+ pkgrel = 1
+ url = https://webkitgtk.org
+ arch = x86_64
+ license = custom
+ makedepends = cmake
+ makedepends = ninja
+ makedepends = gtk-doc
+ makedepends = python
+ makedepends = ruby
+ makedepends = gobject-introspection
+ makedepends = wayland-protocols
+ makedepends = systemd
+ makedepends = gst-plugins-bad
+ makedepends = gperf
+ depends = cairo
+ depends = fontconfig
+ depends = freetype2
+ depends = libgcrypt
+ depends = glib2
+ depends = gtk3
+ depends = harfbuzz
+ depends = harfbuzz-icu
+ depends = icu
+ depends = libjpeg
+ depends = libsoup
+ depends = libxml2
+ depends = zlib
+ depends = libpng
+ depends = sqlite
+ depends = atk
+ depends = libwebp
+ depends = at-spi2-core
+ depends = libegl
+ depends = libgl
+ depends = libgles
+ depends = libwpe
+ depends = wpebackend-fdo
+ depends = libxslt
+ depends = libsecret
+ depends = libtasn1
+ depends = enchant
+ depends = libx11
+ depends = libxext
+ depends = libice
+ depends = libxt
+ depends = wayland
+ depends = libnotify
+ depends = hyphen
+ depends = openjpeg2
+ depends = woff2
+ depends = libsystemd
+ depends = bubblewrap
+ depends = libseccomp
+ depends = xdg-dbus-proxy
+ depends = gstreamer
+ depends = gst-plugins-base-libs
+ depends = libmanette
+ optdepends = geoclue: Geolocation support
+ optdepends = gst-plugins-good: media decoding
+ optdepends = gst-plugins-bad: media decoding
+ optdepends = gst-libav: nonfree media decoding
+ provides = webkit2gtk
+ conflicts = webkit2gtk
+ options = !lto
+ source = https://webkitgtk.org/releases/webkitgtk-2.36.3.tar.xz
+ source = https://webkitgtk.org/releases/webkitgtk-2.36.3.tar.xz.asc
+ source = PasteBoardGtk.patch
+ source = EnlargeObjectSize.patch
+ validpgpkeys = D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3
+ validpgpkeys = 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B
+ sha256sums = 732fcf8c4ec644b8ed28b46ebbd7c1ebab9d9e0afea9bdf5e5d12786afc478d1
+ sha256sums = SKIP
+ sha256sums = 909eb44783d093c89400494a8b57eee3a5b926e1a5b5f1e922e1dff1a6dc3c7b
+ sha256sums = a5d2149d55190a15bc806bfddd85f43b6c714722b04ce0c1e476f9cb58985bac
+
+pkgname = webkit2gtk-imgpaste
+ depends = cairo
+ depends = fontconfig
+ depends = freetype2
+ depends = libgcrypt
+ depends = glib2
+ depends = gtk3
+ depends = harfbuzz
+ depends = harfbuzz-icu
+ depends = icu
+ depends = libjpeg
+ depends = libsoup
+ depends = libxml2
+ depends = zlib
+ depends = libpng
+ depends = sqlite
+ depends = atk
+ depends = libwebp
+ depends = at-spi2-core
+ depends = libegl
+ depends = libgl
+ depends = libgles
+ depends = libwpe
+ depends = wpebackend-fdo
+ depends = libxslt
+ depends = libsecret
+ depends = libtasn1
+ depends = enchant
+ depends = libx11
+ depends = libxext
+ depends = libice
+ depends = libxt
+ depends = wayland
+ depends = libnotify
+ depends = hyphen
+ depends = openjpeg2
+ depends = woff2
+ depends = libsystemd
+ depends = bubblewrap
+ depends = libseccomp
+ depends = xdg-dbus-proxy
+ depends = gstreamer
+ depends = gst-plugins-base-libs
+ depends = libmanette
+ depends = libwpe-1.0.so
+ depends = libWPEBackend-fdo-1.0.so
+ provides = webkit2gtk
+ provides = libjavascriptcoregtk-4.0.so
+ provides = libwebkit2gtk-4.0.so
diff --git a/EnlargeObjectSize.patch b/EnlargeObjectSize.patch
new file mode 100644
index 000000000000..1d4e7a9838e6
--- /dev/null
+++ b/EnlargeObjectSize.patch
@@ -0,0 +1,11 @@
+--- Source/bmalloc/libpas/src/chaos/Chaos.cpp 2022-06-20 11:45:15.214571540 +0800
++++ Source/bmalloc/libpas/src/chaos/Chaos.cpp 2022-06-20 11:45:55.425599612 +0800
+@@ -51,7 +51,7 @@
+ macro(uintptr_t, seed, 666, "%lu") \
+ macro(uintptr_t, seedAdvance, 1, "%lu") \
+ macro(uintptr_t, maxSmallObjectSize, 1000, "%lu") \
+- macro(uintptr_t, maxObjectSize, 65536, "%lu") \
++ macro(uintptr_t, maxObjectSize, 16777216, "%lu") \
+ macro(double, smallObjectProbability, .95, "%lf") \
+ macro(double, memalignProbability, .05, "%lf") \
+ macro(uintptr_t, maxMemalignShift, 14, "%lu") \
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..7b5c0e84d671
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,75 @@
+# Maintainer: q234 rty <q23456yuiop at gmail dot com>
+# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+# Contributor: Eric Bélanger <eric@archlinux.org>
+
+pkgname=webkit2gtk-imgpaste
+pkgver=2.36.3
+pkgrel=1
+pkgdesc="Web content engine for GTK"
+url="https://webkitgtk.org"
+arch=(x86_64)
+license=(custom)
+provides=(webkit2gtk)
+conflicts=(webkit2gtk)
+depends=(cairo fontconfig freetype2 libgcrypt glib2 gtk3 harfbuzz harfbuzz-icu
+ icu libjpeg libsoup libxml2 zlib libpng sqlite atk libwebp at-spi2-core
+ libegl libgl libgles libwpe wpebackend-fdo libxslt libsecret libtasn1
+ enchant libx11 libxext libice libxt wayland libnotify hyphen openjpeg2
+ woff2 libsystemd bubblewrap libseccomp xdg-dbus-proxy gstreamer
+ gst-plugins-base-libs libmanette)
+makedepends=(cmake ninja gtk-doc python ruby gobject-introspection
+ wayland-protocols systemd gst-plugins-bad gperf)
+optdepends=('geoclue: Geolocation support'
+ 'gst-plugins-good: media decoding'
+ 'gst-plugins-bad: media decoding'
+ 'gst-libav: nonfree media decoding')
+options=(!lto)
+source=($url/releases/webkitgtk-$pkgver.tar.xz{,.asc}
+ PasteBoardGtk.patch
+ EnlargeObjectSize.patch)
+sha256sums=('732fcf8c4ec644b8ed28b46ebbd7c1ebab9d9e0afea9bdf5e5d12786afc478d1'
+ 'SKIP'
+ '909eb44783d093c89400494a8b57eee3a5b926e1a5b5f1e922e1dff1a6dc3c7b'
+ 'a5d2149d55190a15bc806bfddd85f43b6c714722b04ce0c1e476f9cb58985bac')
+validpgpkeys=('D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3' # Carlos Garcia Campos <cgarcia@igalia.com>
+ '5AA3BC334FD7E3369E7C77B291C559DBE4C9123B') # Adrián Pérez de Castro <aperez@igalia.com>
+
+prepare() {
+ cd webkitgtk-$pkgver
+ patch --forward --strip=0 --input="${srcdir}/PasteBoardGtk.patch"
+ patch --forward --strip=0 --input="${srcdir}/EnlargeObjectSize.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_GTKDOC=OFF \
+ -DENABLE_MINIBROWSER=ON
+ cmake --build build
+}
+
+package() {
+ depends+=(libwpe-1.0.so libWPEBackend-fdo-1.0.so)
+ provides+=(libjavascriptcoregtk-4.0.so libwebkit2gtk-4.0.so)
+
+ DESTDIR="$pkgdir" cmake --install build
+
+ rm -r "$pkgdir/usr/bin"
+
+ 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"
+}
+
+# vim:set sw=2 et:
diff --git a/PasteBoardGtk.patch b/PasteBoardGtk.patch
new file mode 100644
index 000000000000..623e49303af5
--- /dev/null
+++ b/PasteBoardGtk.patch
@@ -0,0 +1,49 @@
+--- Source/WebCore/platform/gtk/PasteboardGtk.cpp
++++ Source/WebCore/platform/gtk/PasteboardGtk.cpp
+@@ -318,15 +318,44 @@
+
+ void Pasteboard::read(PasteboardFileReader& reader, std::optional<size_t>)
+ {
++ WTFLogAlways("xxoo Pasteboard::read PasteboardFileReader");
+ if (m_selectionData) {
+- for (const auto& filePath : m_selectionData->filenames())
++ WTFLogAlways("xxoo Pasteboard::read m_selectionData");
++ for (const auto& filePath : m_selectionData->filenames()) {
++ WTFLogAlways("xxoo Pasteboard::read m_selectionData reader.readFilename filePath=%s", filePath.utf8().data());
+ reader.readFilename(filePath);
++ }
+ return;
+ }
+
++
++ WTFLogAlways("xxoo Pasteboard::read readFilePathsFromClipboard pasteboardName=%s", m_name.utf8().data());
+ auto filePaths = platformStrategies()->pasteboardStrategy()->readFilePathsFromClipboard(m_name);
+- for (const auto& filePath : filePaths)
++ for (const auto& filePath : filePaths) {
++ WTFLogAlways("xxoo Pasteboard::read readFilePathsFromClipboard reader.readFilename filePath=%s", filePath.utf8().data());
+ reader.readFilename(filePath);
++ }
++
++ if (filePaths.isEmpty()) {
++ WTFLogAlways("xxoo Pasteboard::read readFilePathsFromClipboard got no filePaths, try readBufferFromClipboard pasteboardName=%s", m_name.utf8().data());
++
++ auto types = platformStrategies()->pasteboardStrategy()->types(m_name);
++ static const ASCIILiteral imageTypes[] = { "image/png"_s, "image/jpeg"_s, "image/gif"_s, "image/bmp"_s, "image/vnd.microsoft.icon"_s, "image/x-icon"_s };
++ static const ASCIILiteral imageNames[] = { "image.png"_s, "image.jpeg"_s, "image.gif"_s, "image.bmp"_s, "image.ico"_s, "image.ico"_s };
++ for (int i = 0;i < 6;i++) {
++ if (types.contains(imageTypes[i])) {
++ WTFLogAlways("xxoo Pasteboard::read readBufferFromClipboard types contains imageType");
++ auto buffer = platformStrategies()->pasteboardStrategy()->readBufferFromClipboard(m_name, imageTypes[i]);
++ // readBuffer(const String&, const String& type, Ref<SharedBuffer>&&)
++ // readImage(Ref<SharedBuffer>&&, const String&, PresentationSize = { })
++ if (!buffer->isEmpty()) {
++ reader.readBuffer(imageNames[i], imageTypes[i], buffer.releaseNonNull());
++ WTFLogAlways("xxoo Pasteboard::read reader.readBuffer success");
++ return;
++ }
++ }
++ }
++ }
+ }
+
+ bool Pasteboard::hasData()