diff --git a/extra/webkit2gtk/PKGBUILD b/extra/webkit2gtk/PKGBUILD index 984f7aaac..01c80798f 100644 --- a/extra/webkit2gtk/PKGBUILD +++ b/extra/webkit2gtk/PKGBUILD @@ -9,7 +9,7 @@ highmem=1 pkgname=webkit2gtk -pkgver=2.16.3 +pkgver=2.16.4 pkgrel=1 pkgdesc="GTK+ Web content engine library" arch=(i686 x86_64) @@ -25,22 +25,24 @@ optdepends=('gtk2: Netscape plugin support' options=(!emptydirs) source=(https://webkitgtk.org/releases/webkitgtk-${pkgver}.tar.xz{,.asc} - icu59.patch + icu59.patch gcc7-memcpy.patch remove_atomics.patch) -sha256sums=('204e9131da0101b9bc8765716e70a897121af04b964d9827cd9f20816a77b512' +sha256sums=('f9aba4338319bd539785345144e28c8027dc8cb526b2e443e0c8f2c0239f5128' 'SKIP' 'eb791b9c8dcb84996904846dedf8c3ddf1a5fde32330177f3f0071510bd8ca6d' + '025e36bef353f850598a9bd9d91bc1aa2e2f75db9f46c252ec2f861726299189' '410449817b1b181737538be10d96d6d8aec134285f6288e80c96fbfdd5d19519') validpgpkeys=('D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3') prepare() { mkdir build - cd webkitgtk-$pkgver + + patch -Np1 -i ../icu59.patch + patch -Np1 -i ../gcc7-memcpy.patch # https://bugs.webkit.org/show_bug.cgi?id=173407 + sed -i '1s/python$/&2/' Tools/gtk/generate-gtkdoc rm -r Source/ThirdParty/gtest/ - #rm -r Source/ThirdParty/qunit/ - patch -Np1 -i ../icu59.patch if [[ $CARCH == "arm" || $CARCH == "armv6h" ]]; then patch -p0 -i ../remove_atomics.patch diff --git a/extra/webkit2gtk/gcc7-memcpy.patch b/extra/webkit2gtk/gcc7-memcpy.patch new file mode 100644 index 000000000..e2ad3f9bb --- /dev/null +++ b/extra/webkit2gtk/gcc7-memcpy.patch @@ -0,0 +1,34 @@ +diff -u -r webkitgtk-2.16.4/Source/WTF/wtf/text/StringImpl.h webkitgtk-2.16.4-memcpy/Source/WTF/wtf/text/StringImpl.h +--- webkitgtk-2.16.4/Source/WTF/wtf/text/StringImpl.h 2017-02-20 17:20:15.000000000 +0100 ++++ webkitgtk-2.16.4-memcpy/Source/WTF/wtf/text/StringImpl.h 2017-06-21 09:45:07.835653812 +0200 +@@ -581,29 +581,7 @@ + // FIXME: Does this really belong in StringImpl? + template static void copyChars(T* destination, const T* source, unsigned numCharacters) + { +- if (numCharacters == 1) { +- *destination = *source; +- return; +- } +- +- if (numCharacters <= s_copyCharsInlineCutOff) { +- unsigned i = 0; +-#if (CPU(X86) || CPU(X86_64)) +- const unsigned charsPerInt = sizeof(uint32_t) / sizeof(T); +- +- if (numCharacters > charsPerInt) { +- unsigned stopCount = numCharacters & ~(charsPerInt - 1); +- +- const uint32_t* srcCharacters = reinterpret_cast(source); +- uint32_t* destCharacters = reinterpret_cast(destination); +- for (unsigned j = 0; i < stopCount; i += charsPerInt, ++j) +- destCharacters[j] = srcCharacters[j]; +- } +-#endif +- for (; i < numCharacters; ++i) +- destination[i] = source[i]; +- } else +- memcpy(destination, source, numCharacters * sizeof(T)); ++ memcpy(destination, source, numCharacters * sizeof(T)); + } + + ALWAYS_INLINE static void copyChars(UChar* destination, const LChar* source, unsigned numCharacters)