From 8e474318e398abdc93537d01ddf14420d164e91f Mon Sep 17 00:00:00 2001 From: James Meyer <james.meyer@operamail.com> Date: Tue, 7 Aug 2012 13:24:12 -0500 Subject: qtwebkit 2.2.2 --- abs/core/qtwebkit/PKGBUILD | 106 ++++++++++++ abs/core/qtwebkit/fix-build.patch | 36 ++++ abs/core/qtwebkit/glibc.patch | 339 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 481 insertions(+) create mode 100644 abs/core/qtwebkit/PKGBUILD create mode 100644 abs/core/qtwebkit/fix-build.patch create mode 100644 abs/core/qtwebkit/glibc.patch diff --git a/abs/core/qtwebkit/PKGBUILD b/abs/core/qtwebkit/PKGBUILD new file mode 100644 index 0000000..8c289f4 --- /dev/null +++ b/abs/core/qtwebkit/PKGBUILD @@ -0,0 +1,106 @@ +# $Id: PKGBUILD 159414 2012-05-23 22:31:17Z andrea $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org> + +pkgname=qtwebkit +pkgver=2.2.2 +pkgrel=1 +arch=('i686' 'x86_64') +url='http://trac.webkit.org/wiki/QtWebKit' +pkgdesc='An open source web browser engine (Qt port)' +license=('LGPL2.1' 'GPL3') +depends=('qt' 'gstreamer0.10-base') +makedepends=('python2' 'mesa' 'gperf') +conflicts=('qt<4.8') +_qtver=4.8.2 +source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}-source.tar.gz" + "ftp://ftp.archlinux.org/other/${pkgname}/qwebview-${_qtver}.tar.xz" + 'glibc.patch' + 'fix-build.patch') +sha1sums=('914d7cc099e5b6181c2d74fc7a74e1b4478b75a4' + '33c83272ed8110180ee6e7e3733e68cc513e2802' + '9e47ba5725a2ebd072b8bff31fa2f71aa83f0333' + 'c6dfb001b0412a8adfcb7f1f565a24314a753448') + +build() { + cd "${srcdir}"/${pkgname}-${pkgver}-source + + patch -p1 -i "${srcdir}"/glibc.patch + patch -p1 -i "${srcdir}"/fix-build.patch + + # move headers + mv include Source/ + + cd Source + qmake + cd ../ + + make -C Source + + # Build the QWebView plugin (FS#27914) + cd "${srcdir}"/${pkgname}-${pkgver}-source/qwebview-${_qtver}/plugins/qwebview + qmake + make +} + +package() { + cd "${srcdir}"/${pkgname}-${pkgver}-source + make INSTALL_ROOT="${pkgdir}" -C Source install + + cd "${srcdir}"/${pkgname}-${pkgver}-source/qwebview-${_qtver}/plugins/qwebview + make INSTALL_ROOT="${pkgdir}" install +} + +_source() { + local _current_dir=$(pwd) + local _tmp=$(mktemp -d --tmpdir) + + cd _tmp + git clone git://gitorious.org/+qtwebkit-developers/webkit/qtwebkit.git + + # fetch the make-package.py script + git clone git://qt.gitorious.org/qtwebkit/tools.git + + # create the qtwebkit tarball + cd qtwebkit + git checkout -b ${pkgname}-${pkgver} ${pkgname}-${pkgver} + + sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \ + ../tools/make-package.py + python2 ../tools/make-package.py + + mv ${pkgname}-${pkgver}-source.tar.gz ${_current_dir}/ + + cd .. + + # create the qwebview plugin tarball + mkdir qwebview-${_qtver} + cd qwebview-${_qtver} + wget http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-${_qtver}.tar.gz + tar xf qt-everywhere-opensource-src-${_qtver}.tar.gz + mkdir -p ${pkgname}-${pkgver}-source/qwebview-${_qtver}/plugins/ + cp -ra qt-everywhere-opensource-src-${_qtver}/tools/designer/src/plugins/qwebview \ + ${pkgname}-${pkgver}-source/qwebview-${_qtver}/plugins/ + + cat > ${pkgname}-${pkgver}-source/qwebview-${_qtver}/plugins/plugins.pro <<"EOF" +TEMPLATE = subdirs +CONFIG += ordered + +REQUIRES = !CONFIG(static,shared|static) +contains(QT_CONFIG, webkit): SUBDIRS += qwebview +EOF + + cat > $(_tmp)/header.txt <<"EOF" +INCLUDEPATH += ../../../Source/include +LIBS += -L../../../Source/lib + +EOF + + cat $(_tmp)/header.txt qt-everywhere-opensource-src-${_qtver}/tools/designer/src/plugins/plugins.pri > \ + ${pkgname}-${pkgver}-source/qwebview-${_qtver}/plugins/plugins.pri + + tar cJf qwebview-${_qtver}.tar.xz ${pkgname}-${pkgver}-source + + mv qwebview-${_qtver}.tar.xz ${_current_dir}/ + + rm -rf ${_tmp} +} diff --git a/abs/core/qtwebkit/fix-build.patch b/abs/core/qtwebkit/fix-build.patch new file mode 100644 index 0000000..46313bb --- /dev/null +++ b/abs/core/qtwebkit/fix-build.patch @@ -0,0 +1,36 @@ +diff -up qtwebkit-2.2.2-source/Source/WebKit.pri.no_Werror qtwebkit-2.2.2-source/Source/WebKit.pri +--- qtwebkit-2.2.2-source/Source/WebKit.pri.no_Werror 2012-05-22 09:30:37.000000000 -0500 ++++ qtwebkit-2.2.2-source/Source/WebKit.pri 2012-05-22 09:51:42.126610618 -0500 +@@ -102,7 +102,7 @@ CONFIG -= warn_on + + # Treat warnings as errors on x86/Linux/GCC + linux-g++* { +- !CONFIG(standalone_package):isEqual(QT_ARCH,x86_64)|isEqual(QT_ARCH,i386): QMAKE_CXXFLAGS += -Werror ++ #!CONFIG(standalone_package):isEqual(QT_ARCH,x86_64)|isEqual(QT_ARCH,i386): QMAKE_CXXFLAGS += -Werror + + greaterThan(QT_GCC_MAJOR_VERSION, 3):greaterThan(QT_GCC_MINOR_VERSION, 5) { + if (!contains(QMAKE_CXXFLAGS, -std=c++0x) && !contains(QMAKE_CXXFLAGS, -std=gnu++0x)) { + +diff -up webkit-qtwebkit/Source/common.pri.me webkit-qtwebkit/Source/common.pri +--- webkit-qtwebkit/Source/common.pri.me 2012-01-24 14:51:49.000000000 +0100 ++++ webkit-qtwebkit/Source/common.pri 2012-01-24 14:52:01.000000000 +0100 +@@ -3,12 +3,12 @@ + contains(JAVASCRIPTCORE_JIT,yes): DEFINES+=ENABLE_JIT=1 + contains(JAVASCRIPTCORE_JIT,no): DEFINES+=ENABLE_JIT=0 + +-linux-g++ { +-isEmpty($$(SBOX_DPKG_INST_ARCH)):exists(/usr/bin/ld.gold) { +- message(Using gold linker) +- QMAKE_LFLAGS+=-fuse-ld=gold +-} +-} ++#linux-g++ { ++#isEmpty($$(SBOX_DPKG_INST_ARCH)):exists(/usr/bin/ld.gold) { ++# message(Using gold linker) ++# QMAKE_LFLAGS+=-fuse-ld=gold ++#} ++#} + + # We use this flag on production branches + # See https://bugs.webkit.org/show_bug.cgi?id=60824 +diff -up webkit-qtwebkit/Source/JavaScriptCore/runtime/JSGlobalObject.h.me webkit-qtwebkit/Source/JavaScriptCore/runtime/JSGlobalObject.h diff --git a/abs/core/qtwebkit/glibc.patch b/abs/core/qtwebkit/glibc.patch new file mode 100644 index 0000000..bd7cb94 --- /dev/null +++ b/abs/core/qtwebkit/glibc.patch @@ -0,0 +1,339 @@ +diff -up webkit-qtwebkit/Source/JavaScriptCore/GNUmakefile.list.am.glib231 webkit-qtwebkit/Source/JavaScriptCore/GNUmakefile.list.am +--- webkit-qtwebkit/Source/JavaScriptCore/GNUmakefile.list.am.glib231 2011-11-09 16:32:47.000000000 +0100 ++++ webkit-qtwebkit/Source/JavaScriptCore/GNUmakefile.list.am 2011-12-21 12:50:19.000000000 +0100 +@@ -438,7 +438,6 @@ javascriptcore_sources += \ + Source/JavaScriptCore/wtf/gobject/GRefPtr.h \ + Source/JavaScriptCore/wtf/gobject/GTypedefs.h \ + Source/JavaScriptCore/wtf/gtk/MainThreadGtk.cpp \ +- Source/JavaScriptCore/wtf/gtk/ThreadingGtk.cpp \ + Source/JavaScriptCore/wtf/HashCountedSet.h \ + Source/JavaScriptCore/wtf/HashFunctions.h \ + Source/JavaScriptCore/wtf/HashIterators.h \ +diff -up webkit-qtwebkit/Source/JavaScriptCore/wtf/gobject/GOwnPtr.cpp.glib231 webkit-qtwebkit/Source/JavaScriptCore/wtf/gobject/GOwnPtr.cpp +--- webkit-qtwebkit/Source/JavaScriptCore/wtf/gobject/GOwnPtr.cpp.glib231 2011-11-09 16:32:47.000000000 +0100 ++++ webkit-qtwebkit/Source/JavaScriptCore/wtf/gobject/GOwnPtr.cpp 2011-12-21 12:50:19.000000000 +0100 +@@ -37,18 +37,6 @@ template <> void freeOwnedGPtr<GList>(GL + g_list_free(ptr); + } + +-template <> void freeOwnedGPtr<GCond>(GCond* ptr) +-{ +- if (ptr) +- g_cond_free(ptr); +-} +- +-template <> void freeOwnedGPtr<GMutex>(GMutex* ptr) +-{ +- if (ptr) +- g_mutex_free(ptr); +-} +- + template <> void freeOwnedGPtr<GPatternSpec>(GPatternSpec* ptr) + { + if (ptr) +diff -up webkit-qtwebkit/Source/JavaScriptCore/wtf/gobject/GOwnPtr.h.glib231 webkit-qtwebkit/Source/JavaScriptCore/wtf/gobject/GOwnPtr.h +--- webkit-qtwebkit/Source/JavaScriptCore/wtf/gobject/GOwnPtr.h.glib231 2011-11-09 16:32:47.000000000 +0100 ++++ webkit-qtwebkit/Source/JavaScriptCore/wtf/gobject/GOwnPtr.h 2011-12-21 12:50:19.000000000 +0100 +@@ -35,8 +35,6 @@ namespace WTF { + template <typename T> inline void freeOwnedGPtr(T* ptr); + template<> void freeOwnedGPtr<GError>(GError*); + template<> void freeOwnedGPtr<GList>(GList*); +-template<> void freeOwnedGPtr<GCond>(GCond*); +-template<> void freeOwnedGPtr<GMutex>(GMutex*); + template<> void freeOwnedGPtr<GPatternSpec>(GPatternSpec*); + template<> void freeOwnedGPtr<GDir>(GDir*); + +diff -up webkit-qtwebkit/Source/JavaScriptCore/wtf/gobject/GTypedefs.h.glib231 webkit-qtwebkit/Source/JavaScriptCore/wtf/gobject/GTypedefs.h +--- webkit-qtwebkit/Source/JavaScriptCore/wtf/gobject/GTypedefs.h.glib231 2011-11-09 16:32:47.000000000 +0100 ++++ webkit-qtwebkit/Source/JavaScriptCore/wtf/gobject/GTypedefs.h 2011-12-21 12:50:19.000000000 +0100 +@@ -39,7 +39,6 @@ typedef void* gpointer; + typedef struct _GAsyncResult GAsyncResult; + typedef struct _GCancellable GCancellable; + typedef struct _GCharsetConverter GCharsetConverter; +-typedef struct _GCond GCond; + typedef struct _GDir GDir; + typedef struct _GdkAtom* GdkAtom; + typedef struct _GdkCursor GdkCursor; +@@ -52,7 +51,6 @@ typedef struct _GFile GFile; + typedef struct _GHashTable GHashTable; + typedef struct _GInputStream GInputStream; + typedef struct _GList GList; +-typedef struct _GMutex GMutex; + typedef struct _GPatternSpec GPatternSpec; + typedef struct _GPollableOutputStream GPollableOutputStream; + typedef struct _GSocketClient GSocketClient; +diff -up webkit-qtwebkit/Source/JavaScriptCore/wtf/gtk/ThreadingGtk.cpp.glib231 webkit-qtwebkit/Source/JavaScriptCore/wtf/gtk/ThreadingGtk.cpp +--- webkit-qtwebkit/Source/JavaScriptCore/wtf/gtk/ThreadingGtk.cpp.glib231 2011-12-21 12:52:25.000000000 +0100 ++++ webkit-qtwebkit/Source/JavaScriptCore/wtf/gtk/ThreadingGtk.cpp 2011-12-21 12:52:28.000000000 +0100 +@@ -1,248 +0,0 @@ +-/* +- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. +- * Copyright (C) 2007 Justin Haygood (jhaygood@reaktix.com) +- * +- * Redistribution and use in source and binary forms, with or without +- * modification, are permitted provided that the following conditions +- * are met: +- * +- * 1. Redistributions of source code must retain the above copyright +- * notice, this list of conditions and the following disclaimer. +- * 2. Redistributions in binary form must reproduce the above copyright +- * notice, this list of conditions and the following disclaimer in the +- * documentation and/or other materials provided with the distribution. +- * 3. Neither the name of Apple Inc. ("Apple") nor the names of +- * its contributors may be used to endorse or promote products derived +- * from this software without specific prior written permission. +- * +- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY +- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY +- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- */ +- +-#include "config.h" +-#include "Threading.h" +- +-#if !USE(PTHREADS) +- +-#include "CurrentTime.h" +-#include "HashMap.h" +-#include "MainThread.h" +-#include "RandomNumberSeed.h" +-#include <wtf/StdLibExtras.h> +- +-#include <glib.h> +-#include <limits.h> +- +-namespace WTF { +- +-typedef HashMap<ThreadIdentifier, GThread*> ThreadMap; +- +-static Mutex* atomicallyInitializedStaticMutex; +- +-static Mutex& threadMapMutex() +-{ +- DEFINE_STATIC_LOCAL(Mutex, mutex, ()); +- return mutex; +-} +- +-void initializeThreading() +-{ +- if (!g_thread_supported()) +- g_thread_init(NULL); +- ASSERT(g_thread_supported()); +- +- if (!atomicallyInitializedStaticMutex) { +- atomicallyInitializedStaticMutex = new Mutex; +- threadMapMutex(); +- initializeRandomNumberGenerator(); +- } +-} +- +-void lockAtomicallyInitializedStaticMutex() +-{ +- ASSERT(atomicallyInitializedStaticMutex); +- atomicallyInitializedStaticMutex->lock(); +-} +- +-void unlockAtomicallyInitializedStaticMutex() +-{ +- atomicallyInitializedStaticMutex->unlock(); +-} +- +-static ThreadMap& threadMap() +-{ +- DEFINE_STATIC_LOCAL(ThreadMap, map, ()); +- return map; +-} +- +-static ThreadIdentifier identifierByGthreadHandle(GThread*& thread) +-{ +- MutexLocker locker(threadMapMutex()); +- +- ThreadMap::iterator i = threadMap().begin(); +- for (; i != threadMap().end(); ++i) { +- if (i->second == thread) +- return i->first; +- } +- +- return 0; +-} +- +-static ThreadIdentifier establishIdentifierForThread(GThread*& thread) +-{ +- ASSERT(!identifierByGthreadHandle(thread)); +- +- MutexLocker locker(threadMapMutex()); +- +- static ThreadIdentifier identifierCount = 1; +- +- threadMap().add(identifierCount, thread); +- +- return identifierCount++; +-} +- +-static GThread* threadForIdentifier(ThreadIdentifier id) +-{ +- MutexLocker locker(threadMapMutex()); +- +- return threadMap().get(id); +-} +- +-static void clearThreadForIdentifier(ThreadIdentifier id) +-{ +- MutexLocker locker(threadMapMutex()); +- +- ASSERT(threadMap().contains(id)); +- +- threadMap().remove(id); +-} +- +-ThreadIdentifier createThreadInternal(ThreadFunction entryPoint, void* data, const char*) +-{ +- GThread* thread; +- if (!(thread = g_thread_create(entryPoint, data, TRUE, 0))) { +- LOG_ERROR("Failed to create thread at entry point %p with data %p", entryPoint, data); +- return 0; +- } +- +- ThreadIdentifier threadID = establishIdentifierForThread(thread); +- return threadID; +-} +- +-void initializeCurrentThreadInternal(const char*) +-{ +-} +- +-int waitForThreadCompletion(ThreadIdentifier threadID, void** result) +-{ +- ASSERT(threadID); +- +- GThread* thread = threadForIdentifier(threadID); +- +- void* joinResult = g_thread_join(thread); +- if (result) +- *result = joinResult; +- +- clearThreadForIdentifier(threadID); +- return 0; +-} +- +-void detachThread(ThreadIdentifier) +-{ +-} +- +-ThreadIdentifier currentThread() +-{ +- GThread* currentThread = g_thread_self(); +- if (ThreadIdentifier id = identifierByGthreadHandle(currentThread)) +- return id; +- return establishIdentifierForThread(currentThread); +-} +- +-void yield() +-{ +- g_thread_yield(); +-} +- +-Mutex::Mutex() +- : m_mutex(g_mutex_new()) +-{ +-} +- +-Mutex::~Mutex() +-{ +-} +- +-void Mutex::lock() +-{ +- g_mutex_lock(m_mutex.get()); +-} +- +-bool Mutex::tryLock() +-{ +- return g_mutex_trylock(m_mutex.get()); +-} +- +-void Mutex::unlock() +-{ +- g_mutex_unlock(m_mutex.get()); +-} +- +-ThreadCondition::ThreadCondition() +- : m_condition(g_cond_new()) +-{ +-} +- +-ThreadCondition::~ThreadCondition() +-{ +-} +- +-void ThreadCondition::wait(Mutex& mutex) +-{ +- g_cond_wait(m_condition.get(), mutex.impl().get()); +-} +- +-bool ThreadCondition::timedWait(Mutex& mutex, double absoluteTime) +-{ +- // Time is in the past - return right away. +- if (absoluteTime < currentTime()) +- return false; +- +- // Time is too far in the future for g_cond_timed_wait - wait forever. +- if (absoluteTime > INT_MAX) { +- wait(mutex); +- return true; +- } +- +- int timeSeconds = static_cast<int>(absoluteTime); +- int timeMicroseconds = static_cast<int>((absoluteTime - timeSeconds) * 1000000.0); +- +- GTimeVal targetTime; +- targetTime.tv_sec = timeSeconds; +- targetTime.tv_usec = timeMicroseconds; +- +- return g_cond_timed_wait(m_condition.get(), mutex.impl().get(), &targetTime); +-} +- +-void ThreadCondition::signal() +-{ +- g_cond_signal(m_condition.get()); +-} +- +-void ThreadCondition::broadcast() +-{ +- g_cond_broadcast(m_condition.get()); +-} +- +- +-} +- +-#endif // !USE(PTHREADS) +diff -up webkit-qtwebkit/Source/JavaScriptCore/wtf/ThreadingPrimitives.h.glib231 webkit-qtwebkit/Source/JavaScriptCore/wtf/ThreadingPrimitives.h +--- webkit-qtwebkit/Source/JavaScriptCore/wtf/ThreadingPrimitives.h.glib231 2011-11-09 16:32:47.000000000 +0100 ++++ webkit-qtwebkit/Source/JavaScriptCore/wtf/ThreadingPrimitives.h 2011-12-21 12:50:19.000000000 +0100 +@@ -44,8 +44,6 @@ + + #if USE(PTHREADS) + #include <pthread.h> +-#elif PLATFORM(GTK) +-#include "GOwnPtr.h" + #endif + + #if PLATFORM(QT) +@@ -66,10 +64,6 @@ typedef pthread_rwlock_t PlatformReadWri + typedef void* PlatformReadWriteLock; + #endif + typedef pthread_cond_t PlatformCondition; +-#elif PLATFORM(GTK) +-typedef GOwnPtr<GMutex> PlatformMutex; +-typedef void* PlatformReadWriteLock; // FIXME: Implement. +-typedef GOwnPtr<GCond> PlatformCondition; + #elif PLATFORM(QT) + typedef QT_PREPEND_NAMESPACE(QMutex)* PlatformMutex; + typedef void* PlatformReadWriteLock; // FIXME: Implement. -- cgit v0.12