summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-libs')
-rw-r--r--net-libs/webkit-gtk/Manifest4
-rw-r--r--net-libs/webkit-gtk/files/webkit-gtk-1.1.15.2-unaligned.patch139
-rw-r--r--net-libs/webkit-gtk/files/webkit-gtk-1.3.x-disable-jsc-assertion.patch31
-rw-r--r--net-libs/webkit-gtk/webkit-gtk-1.3.3.ebuild114
4 files changed, 288 insertions, 0 deletions
diff --git a/net-libs/webkit-gtk/Manifest b/net-libs/webkit-gtk/Manifest
new file mode 100644
index 0000000..d014332
--- /dev/null
+++ b/net-libs/webkit-gtk/Manifest
@@ -0,0 +1,4 @@
+AUX webkit-gtk-1.1.15.2-unaligned.patch 4403 RMD160 c9ba117a35e07ed1097787934fdb0750b2baaab5 SHA1 fd1ddaff12705784662002554a76aea67ff70320 SHA256 8b20af7ccad9d91f8d76465843b6a40e80c59c8e9620cf7772ba6f64406b3e68
+AUX webkit-gtk-1.3.x-disable-jsc-assertion.patch 1289 RMD160 37618017cb02da9bd70044645464c6437bb5c8fd SHA1 2a779863cf37f2a12e724e5b4b1ff2616fc3b181 SHA256 e9b76660b115a43a1fb53aeb3b2d59f7014263474ff98e44f057473d4283bd5c
+DIST webkit-1.3.3.tar.gz 7306862 RMD160 4bd4b8d58d820d8ea560f7bbf2815e47ba03513d SHA1 c75251fb5ff7fe17b70a24b035490825e4fce76a SHA256 6520c80aa9b444ca882ee3dbe11b445d5d34bca837a6fcd46eccaf66301e6e08
+EBUILD webkit-gtk-1.3.3.ebuild 3081 RMD160 7d1eef7330df1d2ca2816d9e424d3926147cbb45 SHA1 6887be63b64545337d4a00b30faf5dae03385187 SHA256 b528aafa04fa49d182cbcf7e7e28184a0262b545fcbe8524ff95e35809b1d6f1
diff --git a/net-libs/webkit-gtk/files/webkit-gtk-1.1.15.2-unaligned.patch b/net-libs/webkit-gtk/files/webkit-gtk-1.1.15.2-unaligned.patch
new file mode 100644
index 0000000..ae2d921
--- /dev/null
+++ b/net-libs/webkit-gtk/files/webkit-gtk-1.1.15.2-unaligned.patch
@@ -0,0 +1,139 @@
+--- webkit-1.1.16.orig/JavaScriptCore/wtf/Platform.h
++++ webkit-1.1.16/JavaScriptCore/wtf/Platform.h
+@@ -347,6 +347,23 @@
+ #define WTF_PLATFORM_X86_64 1
+ #endif
+
++/* PLATFORM(IA64) */
++#if defined(__ia64__)
++#define WTF_PLATFORM_IA64 1
++#endif
++
++/* PLATFORM(ALPHA) */
++#if defined(__alpha__)
++#define WTF_PLATFORM_ALPHA 1
++#endif
++
++/* PLATFORM(SPARC) */
++#if defined(__sparc__) \
++ || defined(__sparc)
++#define WTF_PLATFORM_SPARC 1
++#define WTF_PLATFORM_BIG_ENDIAN 1
++#endif
++
+ /* PLATFORM(SH4) */
+ #if defined(__SH4__)
+ #define WTF_PLATFORM_SH4 1
+@@ -372,6 +389,16 @@
+ # endif
+ #endif
+
++/* For undefined platforms */
++#if !defined(WTF_PLATFORM_BIG_ENDIAN) && !defined(WTF_PLATFORM_MIDDLE_ENDIAN)
++#include <sys/param.h>
++#if __BYTE_ORDER == __BIG_ENDIAN
++#define WTF_PLATFORM_BIG_ENDIAN 1
++#elif __BYTE_ORDER == __PDP_ENDIAN
++#define WTF_PLATFORM_MIDDLE_ENDIAN 1
++#endif
++#endif
++
+ /* Compiler */
+
+ /* COMPILER(MSVC) */
+@@ -703,7 +730,7 @@
+ #endif
+
+ #if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64)
+-#if PLATFORM(X86_64) && (PLATFORM(DARWIN) || PLATFORM(LINUX))
++#if (PLATFORM(X86_64) && (PLATFORM(DARWIN) || PLATFORM(LINUX) || PLATFORM(FREEBSD))) || PLATFORM(IA64) || PLATFORM(ALPHA)
+ #define WTF_USE_JSVALUE64 1
+ #elif PLATFORM(ARM) || PLATFORM(PPC64)
+ #define WTF_USE_JSVALUE32 1
+--- webkit-1.1.16.orig/JavaScriptCore/wtf/ListHashSet.h
++++ webkit-1.1.16/JavaScriptCore/wtf/ListHashSet.h
+@@ -127,7 +127,7 @@
+ : m_freeList(pool())
+ , m_isDoneWithInitialFreeList(false)
+ {
+- memset(m_pool.pool, 0, sizeof(m_pool.pool));
++ memset(m_pool, 0, sizeof(m_pool));
+ }
+
+ Node* allocate()
+@@ -171,7 +171,7 @@
+ }
+
+ private:
+- Node* pool() { return reinterpret_cast<Node*>(m_pool.pool); }
++ Node* pool() { return reinterpret_cast<Node*>(m_pool); }
+ Node* pastPool() { return pool() + m_poolSize; }
+
+ bool inPool(Node* node)
+@@ -182,10 +182,7 @@
+ Node* m_freeList;
+ bool m_isDoneWithInitialFreeList;
+ static const size_t m_poolSize = 256;
+- union {
+- char pool[sizeof(Node) * m_poolSize];
+- double forAlignment;
+- } m_pool;
++ uint32_t m_pool[(sizeof(Node) * m_poolSize + sizeof(uint32_t) - 1) / sizeof(uint32_t)];
+ };
+
+ template<typename ValueArg> struct ListHashSetNode {
+--- webkit-1.1.16.orig/JavaScriptCore/wtf/FastMalloc.cpp
++++ webkit-1.1.16/JavaScriptCore/wtf/FastMalloc.cpp
+@@ -2259,13 +2259,13 @@
+
+ // Page-level allocator
+ static SpinLock pageheap_lock = SPINLOCK_INITIALIZER;
+-static void* pageheap_memory[(sizeof(TCMalloc_PageHeap) + sizeof(void*) - 1) / sizeof(void*)];
++static uint64_t pageheap_memory[(sizeof(TCMalloc_PageHeap) + sizeof(uint64_t) - 1) / sizeof(uint64_t)];
+ static bool phinited = false;
+
+ // Avoid extra level of indirection by making "pageheap" be just an alias
+ // of pageheap_memory.
+ typedef union {
+- void* m_memory;
++ uint64_t* m_memory;
+ TCMalloc_PageHeap* m_pageHeap;
+ } PageHeapUnion;
+
+--- webkit-1.1.16.orig/WebCore/platform/text/AtomicString.cpp
++++ webkit-1.1.16/WebCore/platform/text/AtomicString.cpp
+@@ -103,7 +103,7 @@
+ if (string->length() != length)
+ return false;
+
+-#if PLATFORM(ARM) || PLATFORM(SH4)
++#if PLATFORM(ARM) || PLATFORM(SPARC) || PLATFORM(SH4)
+ const UChar* stringCharacters = string->characters();
+ for (unsigned i = 0; i != length; ++i) {
+ if (*stringCharacters++ != *characters++)
+--- webkit-1.1.16.orig/WebCore/platform/text/StringHash.h
++++ webkit-1.1.16/WebCore/platform/text/StringHash.h
+@@ -47,6 +47,15 @@
+ if (aLength != bLength)
+ return false;
+
++#if PLATFORM(ARM) || PLATFORM(SPARC)
++ const UChar* aChars = a->characters();
++ const UChar* bChars = b->characters();
++ for (unsigned i = 0; i != aLength; ++i)
++ if (*aChars++ != *bChars++)
++ return false;
++
++ return true;
++#else
+ const uint32_t* aChars = reinterpret_cast<const uint32_t*>(a->characters());
+ const uint32_t* bChars = reinterpret_cast<const uint32_t*>(b->characters());
+
+@@ -59,6 +68,7 @@
+ return false;
+
+ return true;
++#endif
+ }
+
+ static unsigned hash(const RefPtr<StringImpl>& key) { return key->hash(); } \ No newline at end of file
diff --git a/net-libs/webkit-gtk/files/webkit-gtk-1.3.x-disable-jsc-assertion.patch b/net-libs/webkit-gtk/files/webkit-gtk-1.3.x-disable-jsc-assertion.patch
new file mode 100644
index 0000000..f6e9bcf
--- /dev/null
+++ b/net-libs/webkit-gtk/files/webkit-gtk-1.3.x-disable-jsc-assertion.patch
@@ -0,0 +1,31 @@
+From 0c0ee9075ff74eca8fbd3c81356954d443e5c3c1 Mon Sep 17 00:00:00 2001
+From: Priit Laes <plaes@plaes.org>
+Date: Tue, 13 Jul 2010 15:23:20 +0300
+Subject: [PATCH] Crashfix
+
+https://bugs.webkit.org/show_bug.cgi?id=41454
+
+---
+ JavaScriptCore/jit/JITStubs.cpp | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/JavaScriptCore/jit/JITStubs.cpp b/JavaScriptCore/jit/JITStubs.cpp
+index 85bd54f..595a066 100644
+--- a/JavaScriptCore/jit/JITStubs.cpp
++++ b/JavaScriptCore/jit/JITStubs.cpp
+@@ -2232,10 +2232,12 @@ DEFINE_STUB_FUNCTION(EncodedJSValue, op_construct_NotJSConstruct)
+ int argCount = stackFrame.args[2].int32();
+ CallFrame* previousCallFrame = stackFrame.callFrame;
+ CallFrame* callFrame = CallFrame::create(previousCallFrame->registers() + registerOffset);
++#if 0
+ if (!stackFrame.registerFile->grow(callFrame->registers())) {
+ throwStackOverflowError(previousCallFrame, stackFrame.globalData, callFrame->returnPC(), STUB_RETURN_ADDRESS);
+ VM_THROW_EXCEPTION();
+ }
++#endif
+
+ callFrame->init(0, static_cast<Instruction*>((STUB_RETURN_ADDRESS).value()), previousCallFrame->scopeChain(), previousCallFrame, argCount, asObject(constrVal));
+ stackFrame.callFrame = callFrame;
+--
+1.7.1.1
+
diff --git a/net-libs/webkit-gtk/webkit-gtk-1.3.3.ebuild b/net-libs/webkit-gtk/webkit-gtk-1.3.3.ebuild
new file mode 100644
index 0000000..f1f511c
--- /dev/null
+++ b/net-libs/webkit-gtk/webkit-gtk-1.3.3.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="2"
+
+inherit autotools flag-o-matic eutils virtualx
+
+MY_P="webkit-${PV}"
+DESCRIPTION="Open source web browser engine"
+HOMEPAGE="http://www.webkitgtk.org/"
+SRC_URI="http://www.webkitgtk.org/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2 LGPL-2.1 BSD"
+SLOT="3.0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~x86-macos"
+# geoclue
+IUSE="coverage debug doc +gstreamer +introspection" # aqua
+
+# use sqlite, svg by default
+# dependency on >=x11-libs/gtk+-2.13:2 for gail
+# XXX: Quartz patch does not apply
+# >=x11-libs/gtk+-2.13:2[aqua=]
+RDEPEND="
+ dev-libs/libxml2
+ dev-libs/libxslt
+ media-libs/jpeg:0
+ media-libs/libpng
+ x11-libs/cairo
+ >=x11-libs/gtk+-2.90.4:3[introspection?]
+ >=dev-libs/glib-2.21.3
+ >=dev-libs/icu-3.8.1-r1
+ >=net-libs/libsoup-2.29.90[introspection?]
+ >=dev-db/sqlite-3
+ >=app-text/enchant-0.22
+ >=x11-libs/pango-1.12
+
+ gstreamer? (
+ media-libs/gstreamer:0.10
+ >=media-libs/gst-plugins-base-0.10.25:0.10 )
+ introspection? (
+ >=dev-libs/gobject-introspection-0.6.15 )"
+
+DEPEND="${RDEPEND}
+ >=sys-devel/flex-2.5.33
+ sys-devel/gettext
+ dev-util/gperf
+ dev-util/pkgconfig
+ dev-util/gtk-doc-am
+ doc? ( >=dev-util/gtk-doc-1.10 )"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ # FIXME: Fix unaligned accesses on ARM, IA64 and SPARC
+ # https://bugs.webkit.org/show_bug.cgi?id=19775
+ use sparc && epatch "${FILESDIR}"/${PN}-1.1.15.2-unaligned.patch
+
+ # Fix invalid? assertion check
+ # https://bugs.webkit.org/show_bug.cgi?id=41454
+ epatch "${FILESDIR}"/${PN}-1.3.x-disable-jsc-assertion.patch
+
+ # Darwin/Aqua build is broken, needs autoreconf
+ # XXX: BROKEN. Patch does not apply anymore.
+ # https://bugs.webkit.org/show_bug.cgi?id=28727
+ #epatch "${FILESDIR}"/${PN}-1.1.15.4-darwin-quartz.patch
+
+ # Make it libtool-1 compatible
+ rm -v autotools/lt* autotools/libtool.m4 \
+ || die "removing libtool macros failed"
+ # Don't force -O2
+ sed -i 's/-O2//g' "${S}"/configure.ac || die "sed failed"
+ # Prevent maintainer mode from being triggered during make
+ AT_M4DIR=autotools eautoreconf
+}
+
+src_configure() {
+ # It doesn't compile on alpha without this in LDFLAGS
+ use alpha && append-ldflags "-Wl,--no-relax"
+
+ # Sigbuses on SPARC with mcpu
+ use sparc && filter-flags "-mcpu=*" "-mtune=*"
+
+ local myconf
+
+ myconf="
+ --with-gtk=3.0
+ $(use_enable coverage)
+ $(use_enable debug)
+ $(use_enable introspection)
+ $(use_enable gstreamer video)"
+ # quartz patch above does not apply anymore
+ #$(use aqua && echo "--with-target=quartz")"
+
+ econf ${myconf}
+}
+
+src_test() {
+ unset DISPLAY
+ # Tests will fail without it, bug 294691, bug 310695
+ Xemake check || die "Test phase failed"
+}
+
+src_compile() {
+ # Fix sandbox error with USE="introspection"
+ # https://bugs.webkit.org/show_bug.cgi?id=35471
+ addpredict "$(unset HOME; echo ~)/.local"
+ emake || die "Compile failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "Install failed"
+ dodoc WebKit/gtk/{NEWS,ChangeLog} || die "dodoc failed"
+}