diff options
-rw-r--r-- | .SRCINFO | 81 | ||||
-rw-r--r-- | PKGBUILD | 86 | ||||
-rw-r--r-- | icu59.patch | 38 | ||||
-rw-r--r-- | webkitgtk-2.4.9-abs.patch | 26 | ||||
-rw-r--r-- | webkitgtk.install | 14 |
5 files changed, 245 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..9c1387f0864f --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,81 @@ +pkgbase = webkitgtk + pkgdesc = Legacy Web content engine + pkgver = 2.4.11 + pkgrel = 6 + url = https://webkitgtk.org/ + install = webkitgtk.install + arch = i686 + arch = x86_64 + license = custom + makedepends = gtk3 + makedepends = gtk2 + makedepends = gperf + makedepends = gobject-introspection + makedepends = python2 + makedepends = mesa + makedepends = ruby + depends = libxt + depends = libxslt + depends = sqlite + depends = libsoup + depends = enchant + depends = libgl + depends = geoclue2 + depends = gst-plugins-base-libs + depends = libsecret + depends = libwebp + depends = harfbuzz-icu + optdepends = gst-plugins-base: free media decoding + optdepends = gst-plugins-good: media decoding + optdepends = gst-libav: nonfree media decoding + options = !emptydirs + source = https://webkitgtk.org/releases/webkitgtk-2.4.11.tar.xz + source = webkitgtk-2.4.9-abs.patch + source = icu59.patch + sha256sums = 588aea051bfbacced27fdfe0335a957dca839ebe36aa548df39c7bbafdb65bf7 + sha256sums = ec294bbb5588a1802a68e3615c6718486b22f922645c5fef686d3d103014bf70 + sha256sums = eb791b9c8dcb84996904846dedf8c3ddf1a5fde32330177f3f0071510bd8ca6d + +pkgname = webkitgtk + pkgdesc = Legacy Web content engine for GTK+ 3 + depends = libxt + depends = libxslt + depends = sqlite + depends = libsoup + depends = enchant + depends = libgl + depends = geoclue2 + depends = gst-plugins-base-libs + depends = libsecret + depends = libwebp + depends = harfbuzz-icu + depends = gtk3 + optdepends = gst-plugins-base: free media decoding + optdepends = gst-plugins-good: media decoding + optdepends = gst-libav: nonfree media decoding + optdepends = gtk2: Netscape plugin support + provides = webkitgtk3=2.4.11 + provides = libwebkit3=2.4.11 + conflicts = webkitgtk3 + conflicts = libwebkit3 + replaces = webkitgtk3 + replaces = libwebkit3 + +pkgname = webkitgtk2 + pkgdesc = Legacy Web content engine for GTK+ 2 + depends = libxt + depends = libxslt + depends = sqlite + depends = libsoup + depends = enchant + depends = libgl + depends = geoclue2 + depends = gst-plugins-base-libs + depends = libsecret + depends = libwebp + depends = harfbuzz-icu + depends = gtk2 + provides = libwebkit=2.4.11 + conflicts = libwebkit + replaces = libwebkit + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..cfcc69060403 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,86 @@ +# $Id: PKGBUILD 294869 2017-04-27 03:06:45Z foutrelis $ +# Contributor: Andreas Radke <andyrtr@archlinux.org> + +pkgbase=webkitgtk +pkgname=(webkitgtk webkitgtk2) +pkgver=2.4.11 +pkgrel=6 +pkgdesc="Legacy Web content engine" +arch=(i686 x86_64) +url="https://webkitgtk.org/" +license=(custom) +depends=(libxt libxslt sqlite libsoup enchant libgl geoclue2 gst-plugins-base-libs + libsecret libwebp harfbuzz-icu) +makedepends=(gtk3 gtk2 gperf gobject-introspection python2 mesa ruby) +optdepends=('gst-plugins-base: free media decoding' + 'gst-plugins-good: media decoding' + 'gst-libav: nonfree media decoding') +options=(!emptydirs) +install=webkitgtk.install +source=(https://webkitgtk.org/releases/$pkgbase-${pkgver}.tar.xz + webkitgtk-2.4.9-abs.patch + icu59.patch) +sha256sums=('588aea051bfbacced27fdfe0335a957dca839ebe36aa548df39c7bbafdb65bf7' + 'ec294bbb5588a1802a68e3615c6718486b22f922645c5fef686d3d103014bf70' + 'eb791b9c8dcb84996904846dedf8c3ddf1a5fde32330177f3f0071510bd8ca6d') + +prepare() { + mkdir build-gtk{,2} path + ln -s /usr/bin/python2 path/python + + cd $pkgbase-$pkgver + patch -Np1 -i ../webkitgtk-2.4.9-abs.patch + patch -Np1 -i ../icu59.patch +} + +_build() ( + _ver="$1"; shift + cd build-${_ver} + + PATH="$srcdir/path:$PATH" + + CXXFLAGS+=" -fno-delete-null-pointer-checks" + CFLAGS+=" -fno-delete-null-pointer-checks" + + ../$pkgbase-$pkgver/configure --prefix=/usr \ + --libexecdir=/usr/lib/webkit${_ver} \ + --enable-introspection \ + --disable-webkit2 \ + --disable-gtk-doc \ + "$@" + + # https://bugzilla.gnome.org/show_bug.cgi?id=655517 + sed -i 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + + make all stamp-po +) + +build() { + _build gtk + _build gtk2 --with-gtk=2.0 +} + +package_webkitgtk() { + pkgdesc+=" for GTK+ 3" + depends+=(gtk3) + optdepends+=('gtk2: Netscape plugin support') + provides=("webkitgtk3=${pkgver}" "libwebkit3=${pkgver}") + conflicts=(webkitgtk3 libwebkit3) + replaces=(webkitgtk3 libwebkit3) + + make -C build-gtk -j1 DESTDIR="$pkgdir" install + install -Dm644 $pkgbase-$pkgver/Source/WebKit/LICENSE \ + "$pkgdir/usr/share/licenses/webkitgtk/LICENSE" +} + +package_webkitgtk2() { + pkgdesc+=" for GTK+ 2" + depends+=(gtk2) + provides=("libwebkit=${pkgver}") + conflicts=(libwebkit) + replaces=(libwebkit) + + make -C build-gtk2 -j1 DESTDIR="$pkgdir" install + install -Dm644 $pkgbase-$pkgver/Source/WebKit/LICENSE \ + "$pkgdir/usr/share/licenses/webkitgtk2/LICENSE" +} diff --git a/icu59.patch b/icu59.patch new file mode 100644 index 000000000000..39ff89ee63d3 --- /dev/null +++ b/icu59.patch @@ -0,0 +1,38 @@ +--- webkitgtk-2.16.1/Source/JavaScriptCore/API/JSStringRef.h.orig 2017-02-20 17:20:08.000000000 +0100 ++++ webkitgtk-2.16.1/Source/JavaScriptCore/API/JSStringRef.h 2017-04-22 14:35:00.926530142 +0200 +@@ -32,6 +32,7 @@ + #include <stdbool.h> + #endif + #include <stddef.h> /* for size_t */ ++#include <uchar.h> + + #ifdef __cplusplus + extern "C" { +@@ -46,7 +47,7 @@ + character. As with all scalar types, endianness depends on the underlying + architecture. + */ +- typedef unsigned short JSChar; ++ typedef char16_t JSChar; + #else + typedef wchar_t JSChar; + #endif +--- webkitgtk-2.16.1/Source/WebKit2/Shared/API/c/WKString.h.orig 2017-02-20 17:20:17.000000000 +0100 ++++ webkitgtk-2.16.1/Source/WebKit2/Shared/API/c/WKString.h 2017-04-22 14:35:56.853196170 +0200 +@@ -28,6 +28,7 @@ + + #include <WebKit/WKBase.h> + #include <stddef.h> ++#include <uchar.h> + + #ifndef __cplusplus + #include <stdbool.h> +@@ -39,7 +40,7 @@ + + #if !defined(WIN32) && !defined(_WIN32) \ + && !((defined(__CC_ARM) || defined(__ARMCC__)) && !defined(__linux__)) /* RVCT */ +- typedef unsigned short WKChar; ++ typedef char16_t WKChar; + #else + typedef wchar_t WKChar; + #endif diff --git a/webkitgtk-2.4.9-abs.patch b/webkitgtk-2.4.9-abs.patch new file mode 100644 index 000000000000..9a1c5f990de6 --- /dev/null +++ b/webkitgtk-2.4.9-abs.patch @@ -0,0 +1,26 @@ +diff -Nur webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/GtkClickCounter.cpp webkitgtk-2.4.9/Source/WebCore/platform/gtk/GtkClickCounter.cpp +--- webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/GtkClickCounter.cpp 2015-05-20 03:03:24.000000000 -0600 ++++ webkitgtk-2.4.9/Source/WebCore/platform/gtk/GtkClickCounter.cpp 2016-02-07 11:30:42.392686308 -0700 +@@ -85,8 +85,8 @@ + guint32 eventTime = getEventTime(event); + + if ((event->type == GDK_2BUTTON_PRESS || event->type == GDK_3BUTTON_PRESS) +- || ((abs(buttonEvent->x - m_previousClickPoint.x()) < doubleClickDistance) +- && (abs(buttonEvent->y - m_previousClickPoint.y()) < doubleClickDistance) ++ || ((fabs(buttonEvent->x - m_previousClickPoint.x()) < doubleClickDistance) ++ && (fabs(buttonEvent->y - m_previousClickPoint.y()) < doubleClickDistance) + && (eventTime - m_previousClickTime < static_cast<guint>(doubleClickTime)) + && (buttonEvent->button == m_previousClickButton))) + m_currentClickCount++; +diff -Nur webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp webkitgtk-2.4.9/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp +--- webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp 2015-05-20 03:03:24.000000000 -0600 ++++ webkitgtk-2.4.9/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp 2016-02-07 11:49:36.384691005 -0700 +@@ -659,7 +659,7 @@ + if (!std::isfinite(time)) + return String::fromUTF8(_("indefinite time")); + +- int seconds = static_cast<int>(abs(time)); ++ int seconds = static_cast<int>(fabs(time)); + int days = seconds / (60 * 60 * 24); + int hours = seconds / (60 * 60); + int minutes = (seconds / 60) % 60; diff --git a/webkitgtk.install b/webkitgtk.install new file mode 100644 index 000000000000..245d07b198f2 --- /dev/null +++ b/webkitgtk.install @@ -0,0 +1,14 @@ +post_install() { + post_upgrade $1 0 +} + +post_upgrade() { + if (( $(vercmp $2 2.4.11-4) < 0)); then + cat <<END + + > WARNING: WebKitGTK+ 2.4 is known to have many security vulnerabilities that + will NOT be fixed. Avoid browsing with it. + +END + fi +} |