~alpine/aports

testing/webkit2gtk: new aport v1 PROPOSED

Jiri Horner: 1
 testing/webkit2gtk: new aport

 5 files changed, 157 insertions(+), 0 deletions(-)
Hi,

TLDR: it was intentional

sorry for confusion, original email body was stripped. I have to tune my git 
send-mail config a bit.

This package brings webkit2gtk-4.0 to alpine, which is the latest binary version 
of webkitgtk. It is intentionaly coinstallable with binary versions 1.0 and 3.0 
already present in alpine.

webkit1 (in webkit) and webkit2 are totally different and require application 
rewrite to move to later. Thats why distros usually have both of them. 
Last version of webkitgtk with webkit1 is 2.4.9. Also webkit2 included in 2.4.9 
is slightly different from webkit2 included in 2.10 series (binary version 
bumped). More details: [0].

It would definitely make things easier not to have 3 binary versions + gtk2/gtk3 
versions. To keep things minimal I think it would be possible to stop building 
webkit2 from 2.4.9 branch and move all dependencies to this new package. Also 
xiphos which builds currently against webkit1 could be moved to this package. 
Status is as follows:

could use webkit2-4.0:
* midori
* claws-mail
* xiphos

blockers for webkit1:
* shotwell [2]
* geary [1]

For the last two we could drop gtk2 build in `webkit` since the both uses gtk3. 
So the minimal version could be gtk3 webkit (libwebkitgtk-3.0) from 2.4.9 and 
gtk3 webkit2 (libwebkit2gtk-4.0) from latest branch.

Note to the package:

I have disabled support for gtk2 plugins which reduces binary size a lot. Flash
and similar will not work with this version.

I'm OK with maintaining it in community, but if you want to take it then even 
better.
Cheers,
Jiri

[0] http://blogs.igalia.com/carlosgc/2014/08/01/webkitgtk-2-5-1-good-bye-webkit1/
[1] https://bugzilla.gnome.org/show_bug.cgi?id=728002
[2] https://bugzilla.gnome.org/show_bug.cgi?id=751709

On Tue, Nov 03, 2015 at 09:29:49AM +0100, Natanael Copa wrote:
Next
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.alpinelinux.org/~alpine/aports/patches/1446/mbox | git am -3
Learn more about email & git

[alpine-aports] [PATCH] testing/webkit2gtk: new aport Export this patch

http://webkitgtk.org/
portable web rendering engine WebKit for GTK+
---
 community/webkit2gtk/APKBUILD                   | 95 +++++++++++++++++++++++++
 community/webkit2gtk/disallow-ctype.patch       | 11 +++
 community/webkit2gtk/disallow-malloc_trim.patch | 12 ++++
 community/webkit2gtk/fix-execinfo.patch         | 20 ++++++
 community/webkit2gtk/fix-isnan.patch            | 19 +++++
 5 files changed, 157 insertions(+)
 create mode 100644 community/webkit2gtk/APKBUILD
 create mode 100644 community/webkit2gtk/disallow-ctype.patch
 create mode 100644 community/webkit2gtk/disallow-malloc_trim.patch
 create mode 100644 community/webkit2gtk/fix-execinfo.patch
 create mode 100644 community/webkit2gtk/fix-isnan.patch
diff --git a/community/webkit2gtk/APKBUILD b/community/webkit2gtk/APKBUILD
new file mode 100644
index 0000000..c055d9f
--- /dev/null
+++ b/community/webkit2gtk/APKBUILD
@@ -0,0 +1,95 @@
# Contributor: Jiri Horner <laeqten@gmail.com>
# Maintainer: Jiri Horner <laeqten@gmail.com>
pkgname=webkit2gtk
pkgver=2.10.3
pkgrel=0
pkgdesc="portable web rendering engine WebKit for GTK+"
url="http://webkitgtk.org/"
arch="all"
license="LGPL2+ BSD"
depends=""
depends_dev="gtk+3.0-dev libsoup-dev"
makedepends="$depends_dev
	cmake
	bison
	enchant-dev
	flex
	gnutls-dev
	gobject-introspection-dev
	gperf
	gtk-doc
	icu-dev
	gstreamer1-dev
	gst-plugins-base1-dev
	hyphen-dev
	libjpeg-turbo-dev
	libpng-dev
	libsecret-dev
	libwebp-dev
	libxml2-dev
	libxslt-dev
	libxt-dev
	libnotify-dev
	mesa-dev
	pango-dev
	ruby
	sqlite-dev
	"
install=
replaces="webkit"
subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
source="http://webkitgtk.org/releases/webkitgtk-$pkgver.tar.xz
	fix-execinfo.patch
	disallow-ctype.patch
	fix-isnan.patch
	"

_srcdir="${srcdir}/webkitgtk-${pkgver}"
_builddir="${srcdir}/build"
prepare() {
	cd "$_srcdir"
	for i in $source; do
		case "$i" in
		*.patch)
			msg "Applying $i"
			patch -p1 -i "$srcdir"/$i || return 1
			;;
		esac
	done
	rm -r Source/ThirdParty/gtest/ || return 1
	rm -r Source/ThirdParty/qunit/ || return 1
}

build() {
	mkdir "$_builddir"
	cd "$_builddir"
	cmake -DPORT=GTK \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_SKIP_RPATH=ON \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DLIB_INSTALL_DIR=/usr/lib \
		-DLIBEXEC_INSTALL_DIR=/usr/lib/webkit2gtk-4.0 \
		-DENABLE_GTKDOC=ON \
		-DENABLE_GEOLOCATION=OFF \
		-DENABLE_PLUGIN_PROCESS_GTK2=OFF \
		"$_srcdir" || return 1
	make || return 1
}

package() {
	cd "$_builddir"
	make DESTDIR="$pkgdir" install
}

md5sums="278d6c64f4673a506daf27556c124523  webkitgtk-2.10.3.tar.xz
c114751c30cdcaede5a7ed5568b2b0d4  fix-execinfo.patch
375d22de42a0d1053985a6df942f1db3  disallow-ctype.patch
3fa45dbc0ea278e6426b6f86e0f8fc6d  fix-isnan.patch"
sha256sums="2b3ee0b2ea9bac82064d818085e09236d5fca97a5780d4c731b2f0400fb64052  webkitgtk-2.10.3.tar.xz
b2bc9e03fd5d968d6df4531a7d102496139120e666e6fed397a19ae4026751c6  fix-execinfo.patch
f4fd0f6d2c70c95169ab5c84d39607d1c4b2f674c36119f8fc1c60c751564e12  disallow-ctype.patch
08a688126e3e9a0640786b4b928740bceec0e7f94720d71ecbec971dd1dd77ce  fix-isnan.patch"
sha512sums="12546184cb0b60f00382da010f5c5717e01aca2a56e1a351be1b5fae0a1584e534b82ddf2361bac2f213fddeabcf29772cc20f1cf4a5ac834e7876beb13b2f24  webkitgtk-2.10.3.tar.xz
602630468ee80b9f9bb53ee7808f4b2f2c86d1d4db14ac9c244b3e2e79a245510a289eb321cb7dbefd3b7a2dde13cf444b8ecf7cd46f23eaa5c0f04670914e42  fix-execinfo.patch
59f4e977fae16145a5116c97e3700625f1ed27963ad65daa957f1355dc93269435c1225fc5302b45e5df731c14aa7e639db4e163003eb265b867a9df9f97ab6f  disallow-ctype.patch
cf48a1faf1e4daebf37c17e6b646d797b4179cee37b37369c34f879e4bafd190c974c18bad80beb7bc4560ce4d9a1f39aab8f5e5df3c130c2c8eaabb9fd124be  fix-isnan.patch"
diff --git a/community/webkit2gtk/disallow-ctype.patch b/community/webkit2gtk/disallow-ctype.patch
new file mode 100644
index 0000000..d14932e
--- /dev/null
+++ b/community/webkit2gtk/disallow-ctype.patch
@@ -0,0 +1,11 @@
--- webkitgtk-2.10.3/Source/WTF/wtf/DisallowCType.h.orig
+++ webkitgtk-2.10.3/Source/WTF/wtf/DisallowCType.h
@@ -40,7 +40,7 @@
 // are used from wx headers. On GTK+ for Mac many GTK+ files include <libintl.h>
 // or <glib/gi18n-lib.h>, which in turn include <xlocale/_ctype.h> which uses
 // isacii(). 
-#if !(OS(DARWIN) && PLATFORM(GTK)) && !PLATFORM(EFL) && !defined(_LIBCPP_VERSION)
+#if !(OS(DARWIN) && PLATFORM(GTK)) && !PLATFORM(EFL) && !defined(_LIBCPP_VERSION) && defined(__GLIBC__)
 
 #include <ctype.h>
 
diff --git a/community/webkit2gtk/disallow-malloc_trim.patch b/community/webkit2gtk/disallow-malloc_trim.patch
new file mode 100644
index 0000000..34d4905
--- /dev/null
+++ b/community/webkit2gtk/disallow-malloc_trim.patch
@@ -0,0 +1,12 @@
--- webkitgtk-2.10.3/Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp.orig
+++ webkitgtk-2.10.3/Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp
@@ -202,7 +202,9 @@
 void MemoryPressureHandler::platformReleaseMemory(Critical)
 {
     ReliefLogger log("Run malloc_trim");
+#if defined(__GLIBC__)
     malloc_trim(0);
+#endif
 }
 
 void MemoryPressureHandler::ReliefLogger::platformLog()
diff --git a/community/webkit2gtk/fix-execinfo.patch b/community/webkit2gtk/fix-execinfo.patch
new file mode 100644
index 0000000..eb82531
--- /dev/null
+++ b/community/webkit2gtk/fix-execinfo.patch
@@ -0,0 +1,20 @@
--- webkitgtk-2.2.0.orig/Source/WTF/wtf/Assertions.cpp
+++ webkitgtk-2.2.0/Source/WTF/wtf/Assertions.cpp
@@ -64,7 +64,7 @@
 #include <windows.h>
 #endif
 
-#if OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))
+#if OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))
 #include <cxxabi.h>
 #include <dlfcn.h>
 #include <execinfo.h>
@@ -242,7 +242,7 @@
 
 void WTFGetBacktrace(void** stack, int* size)
 {
-#if OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))
+#if OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))
     *size = backtrace(stack, *size);
 #elif OS(WINDOWS) && !OS(WINCE)
     // The CaptureStackBackTrace function is available in XP, but it is not defined
diff --git a/community/webkit2gtk/fix-isnan.patch b/community/webkit2gtk/fix-isnan.patch
new file mode 100644
index 0000000..6644460
--- /dev/null
+++ b/community/webkit2gtk/fix-isnan.patch
@@ -0,0 +1,19 @@
--- webkitgtk-2.10.3/Source/JavaScriptCore/runtime/Options.cpp.orig
+++ webkitgtk-2.10.3/Source/JavaScriptCore/runtime/Options.cpp
@@ -29,7 +29,6 @@
 #include "HeapStatistics.h"
 #include <algorithm>
 #include <limits>
-#include <math.h>
 #include <mutex>
 #include <stdlib.h>
 #include <string.h>
@@ -610,7 +609,7 @@
     case Options::Type::unsignedType:
         return m_entry.unsignedVal == other.m_entry.unsignedVal;
     case Options::Type::doubleType:
-        return (m_entry.doubleVal == other.m_entry.doubleVal) || (isnan(m_entry.doubleVal) && isnan(other.m_entry.doubleVal));
+        return (m_entry.doubleVal == other.m_entry.doubleVal) || (std::isnan(m_entry.doubleVal) && std::isnan(other.m_entry.doubleVal));
     case Options::Type::int32Type:
         return m_entry.int32Val == other.m_entry.int32Val;
     case Options::Type::optionRangeType:
-- 
2.4.1



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---