5 2

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

Jiri Horner
Details
Message ID
<1446510767-4912-2-git-send-email-laeqten@gmail.com>
Sender timestamp
1446510767
DKIM signature
missing
Download raw message
Patch: +157 -0
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
+@@ -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
+@@ -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
+@@ -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
+@@ -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
---
Natanael Copa
Details
Message ID
<20151103092949.049b0bc2@ncopa-desktop.alpinelinux.org>
In-Reply-To
<1446510767-4912-2-git-send-email-laeqten@gmail.com> (view parent)
Sender timestamp
1446539389
DKIM signature
missing
Download raw message
On Tue,  3 Nov 2015 00:32:47 +0000
Jiri Horner <horner.jiri@gmail.com> wrote:

> 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

Instead of adding another webktigtk aport, how about upgrade the
existing community/webkitgtk? It provides webkit for both gtk2 and gtk3
from same aport.

-nc


---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---
Jiri Horner
Details
Message ID
<20151103102122.GB4816@eucalyptus>
In-Reply-To
<20151103092949.049b0bc2@ncopa-desktop.alpinelinux.org> (view parent)
Sender timestamp
1446546082
DKIM signature
missing
Download raw message
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:
>On Tue,  3 Nov 2015 00:32:47 +0000
>Jiri Horner <horner.jiri@gmail.com> wrote:
>
>> 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
>
>Instead of adding another webktigtk aport, how about upgrade the
>existing community/webkitgtk? It provides webkit for both gtk2 and gtk3
>from same aport.
>
>-nc

-- 


---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---
Natanael Copa
Details
Message ID
<20151104135521.37d082a5@ncopa-desktop.alpinelinux.org>
In-Reply-To
<20151103102122.GB4816@eucalyptus> (view parent)
Sender timestamp
1446641721
DKIM signature
missing
Download raw message
On Tue, 3 Nov 2015 11:21:22 +0100
Jiri Horner <laeqten@gmail.com> wrote:

> 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.

This all sounds great to me. lets do it.

There appear to be a build error (32bit atleast):

[ 13%] Building CXX object Source/WebCore/CMakeFiles/WebCore.dir/platform/linux/MemoryPressureHandlerLinux.cpp.o
/home/ncopa/aports/testing/webkit2gtk/src/webkitgtk-2.10.3/Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp: In member function 'void WebCore::MemoryPressureHandler::platformReleaseMemory(WebCore::Critical)':
/home/ncopa/aports/testing/webkit2gtk/src/webkitgtk-2.10.3/Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:205:18: error: 'malloc_trim' was not declared in this scope
     malloc_trim(0);
                  ^
Source/WebCore/CMakeFiles/WebCore.dir/build.make:60331: recipe for target 'Source/WebCore/CMakeFiles/WebCore.dir/platform/linux/MemoryPressureHandlerLinux.cpp.o' failed
make[2]: *** [Source/WebCore/CMakeFiles/WebCore.dir/platform/linux/MemoryPressureHandlerLinux.cpp.o] Error 1
CMakeFiles/Makefile2:642: recipe for target 'Source/WebCore/CMakeFiles/WebCore.dir/all' failed
make[1]: *** [Source/WebCore/CMakeFiles/WebCore.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2


> 
> 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:
> >On Tue,  3 Nov 2015 00:32:47 +0000
> >Jiri Horner <horner.jiri@gmail.com> wrote:
> >
> >> 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
> >
> >Instead of adding another webktigtk aport, how about upgrade the
> >existing community/webkitgtk? It provides webkit for both gtk2 and gtk3
> >from same aport.
> >
> >-nc
> 



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---
Jiri Horner
Details
Message ID
<20151104182118.GA30891@eucalyptus>
In-Reply-To
<20151104135521.37d082a5@ncopa-desktop.alpinelinux.org> (view parent)
Sender timestamp
1446661278
DKIM signature
missing
Download raw message
>
>This all sounds great to me. lets do it.
>
>There appear to be a build error (32bit atleast):
>
>[ 13%] Building CXX object Source/WebCore/CMakeFiles/WebCore.dir/platform/linux/MemoryPressureHandlerLinux.cpp.o
>/home/ncopa/aports/testing/webkit2gtk/src/webkitgtk-2.10.3/Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp: In member function 'void WebCore::MemoryPressureHandler::platformReleaseMemory(WebCore::Critical)':
>/home/ncopa/aports/testing/webkit2gtk/src/webkitgtk-2.10.3/Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp:205:18: error: 'malloc_trim' was not declared in this scope
>     malloc_trim(0);
>                  ^
>Source/WebCore/CMakeFiles/WebCore.dir/build.make:60331: recipe for target 'Source/WebCore/CMakeFiles/WebCore.dir/platform/linux/MemoryPressureHandlerLinux.cpp.o' failed
>make[2]: *** [Source/WebCore/CMakeFiles/WebCore.dir/platform/linux/MemoryPressureHandlerLinux.cpp.o] Error 1
>CMakeFiles/Makefile2:642: recipe for target 'Source/WebCore/CMakeFiles/WebCore.dir/all' failed
>make[1]: *** [Source/WebCore/CMakeFiles/WebCore.dir/all] Error 2
>Makefile:149: recipe for target 'all' failed
>make: *** [all] Error 2
>
>

I'm sorry, mea culpa. I have forgotten to add one of the patches to APKBUILD. 
This patch deals with problem (glibc malloc.h extension).

New patch attached.

Jiri
Natanael Copa
Details
Message ID
<20151107170003.50e873a4@ncopa-laptop>
In-Reply-To
<20151104182118.GA30891@eucalyptus> (view parent)
Sender timestamp
1446912003
DKIM signature
missing
Download raw message
On Wed, 4 Nov 2015 19:21:18 +0100
Jiri Horner <laeqten@gmail.com> wrote:

> New patch attached.

Applied and moved to testing for now, so we can test what could be
built with it.

It would be nice to get rid of webkit1 if possible.

-nc

> 
> Jiri



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