diff options
author | q234rty | 2022-06-22 21:24:50 +0800 |
---|---|---|
committer | q234rty | 2022-06-22 21:24:50 +0800 |
commit | 37cca198e82ee9fed80eac6ef3e4717c8ee47bbd (patch) | |
tree | 9e9b4f61b91f2a12ced59c282e9604fdaa1217e5 | |
download | aur-37cca198e82ee9fed80eac6ef3e4717c8ee47bbd.tar.gz |
Initial commit
-rw-r--r-- | .SRCINFO | 127 | ||||
-rw-r--r-- | EnlargeObjectSize.patch | 11 | ||||
-rw-r--r-- | PKGBUILD | 75 | ||||
-rw-r--r-- | PasteBoardGtk.patch | 49 |
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() |