diff options
Diffstat (limited to 'net-libs')
-rw-r--r-- | net-libs/webkit-gtk/Manifest | 4 | ||||
-rw-r--r-- | net-libs/webkit-gtk/files/webkit-gtk-1.1.15.2-unaligned.patch | 139 | ||||
-rw-r--r-- | net-libs/webkit-gtk/files/webkit-gtk-1.3.x-disable-jsc-assertion.patch | 31 | ||||
-rw-r--r-- | net-libs/webkit-gtk/webkit-gtk-1.3.3.ebuild | 114 |
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" +} |