From 6cc9bb06797aee1df9e1a25b6a01dd0981119b36 Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Tue, 13 Oct 2015 19:15:25 +0200 Subject: [PATCH] - more fixes in include,lib,werror patches - added glib patch (fixes build with recent glib) - added link patch (EWebKit2 needs -lXext) --- ewebkit-glib.patch | 247 ++++++++++++++++++++++++++++++++++++++++++ ewebkit-include.patch | 90 +++++++++++++++ ewebkit-lib.patch | 23 +++- ewebkit-link.patch | 10 ++ ewebkit-werror.patch | 33 +++++- ewebkit.spec | 4 + 6 files changed, 405 insertions(+), 2 deletions(-) create mode 100644 ewebkit-glib.patch create mode 100644 ewebkit-link.patch diff --git a/ewebkit-glib.patch b/ewebkit-glib.patch new file mode 100644 index 0000000..4451563 --- /dev/null +++ b/ewebkit-glib.patch @@ -0,0 +1,247 @@ +--- efl-webkit/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp.orig 2013-12-18 13:27:22.000000000 +0100 ++++ efl-webkit/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp 2015-10-11 21:52:28.072260360 +0200 +@@ -118,7 +118,7 @@ + WebKitVideoSink* sink = reinterpret_cast(data); + WebKitVideoSinkPrivate* priv = sink->priv; + +- GMutexLocker lock(priv->bufferMutex); ++ WebCore::GMutexLocker lock(priv->bufferMutex); + GstBuffer* buffer = priv->buffer; + priv->buffer = 0; + priv->timeoutId = 0; +@@ -140,7 +140,7 @@ + WebKitVideoSink* sink = WEBKIT_VIDEO_SINK(baseSink); + WebKitVideoSinkPrivate* priv = sink->priv; + +- GMutexLocker lock(priv->bufferMutex); ++ WebCore::GMutexLocker lock(priv->bufferMutex); + + if (priv->unlocked) + return GST_FLOW_OK; +@@ -272,7 +272,7 @@ + + static void unlockBufferMutex(WebKitVideoSinkPrivate* priv) + { +- GMutexLocker lock(priv->bufferMutex); ++ WebCore::GMutexLocker lock(priv->bufferMutex); + + if (priv->buffer) { + gst_buffer_unref(priv->buffer); +@@ -298,7 +298,7 @@ + WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; + + { +- GMutexLocker lock(priv->bufferMutex); ++ WebCore::GMutexLocker lock(priv->bufferMutex); + priv->unlocked = false; + } + +@@ -323,7 +323,7 @@ + { + WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; + +- GMutexLocker lock(priv->bufferMutex); ++ WebCore::GMutexLocker lock(priv->bufferMutex); + priv->unlocked = false; + return TRUE; + } +--- efl-webkit/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp.orig 2014-01-29 00:06:51.000000000 +0100 ++++ efl-webkit/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2015-10-11 21:52:40.316229122 +0200 +@@ -335,7 +335,7 @@ + + switch (propID) { + case PROP_IRADIO_MODE: { +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + priv->iradioMode = g_value_get_boolean(value); + break; + } +@@ -353,7 +353,7 @@ + WebKitWebSrc* src = WEBKIT_WEB_SRC(object); + WebKitWebSrcPrivate* priv = src->priv; + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + switch (propID) { + case PROP_IRADIO_MODE: + g_value_set_boolean(value, priv->iradioMode); +@@ -406,7 +406,7 @@ + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + bool seeking = priv->seekID; + +@@ -465,7 +465,7 @@ + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + priv->startID = 0; + +@@ -560,7 +560,7 @@ + return ret; + } + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + GST_DEBUG_OBJECT(src, "READY->PAUSED"); +@@ -591,7 +591,7 @@ + gst_query_parse_duration(query, &format, NULL); + + GST_DEBUG_OBJECT(src, "duration query in format %s", gst_format_get_name(format)); +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (format == GST_FORMAT_BYTES && src->priv->size > 0) { + gst_query_set_duration(query, format, src->priv->size); + result = TRUE; +@@ -599,7 +599,7 @@ + break; + } + case GST_QUERY_URI: { +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + gst_query_set_uri(query, src->priv->uri); + result = TRUE; + break; +@@ -640,7 +640,7 @@ + WebKitWebSrc* src = WEBKIT_WEB_SRC(handler); + gchar* ret; + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + ret = g_strdup(src->priv->uri); + return ret; + } +@@ -655,7 +655,7 @@ + return FALSE; + } + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + g_free(priv->uri); + priv->uri = 0; +@@ -691,7 +691,7 @@ + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->needDataID) + return FALSE; +@@ -712,7 +712,7 @@ + + GST_DEBUG_OBJECT(src, "Need more data: %u", length); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (priv->needDataID || !priv->paused) { + return; + } +@@ -726,7 +726,7 @@ + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->enoughDataID) + return FALSE; +@@ -747,7 +747,7 @@ + + GST_DEBUG_OBJECT(src, "Have enough data"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (priv->enoughDataID || priv->paused) { + return; + } +@@ -761,7 +761,7 @@ + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->seekID) + return FALSE; +@@ -779,7 +779,7 @@ + WebKitWebSrcPrivate* priv = src->priv; + + GST_DEBUG_OBJECT(src, "Seeking to offset: %" G_GUINT64_FORMAT, offset); +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (offset == priv->offset && priv->requestedOffset == priv->offset) + return TRUE; + +@@ -798,7 +798,7 @@ + void webKitWebSrcSetMediaPlayer(WebKitWebSrc* src, WebCore::MediaPlayer* player) + { + ASSERT(player); +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + src->priv->player = player; + } + +@@ -822,7 +822,7 @@ + + mapGstBuffer(buffer); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + priv->buffer = adoptGRef(buffer); + locker.unlock(); + +@@ -845,7 +845,7 @@ + return; + } + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + if (priv->seekID) { + GST_DEBUG_OBJECT(src, "Seek in progress, ignoring response"); +@@ -942,7 +942,7 @@ + WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src.get()); + WebKitWebSrcPrivate* priv = src->priv; + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + GST_LOG_OBJECT(src, "Have %lld bytes of data", priv->buffer ? static_cast(gst_buffer_get_size(priv->buffer.get())) : length); + +@@ -1011,7 +1011,7 @@ + + GST_DEBUG_OBJECT(src, "Have EOS"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (!priv->seekID) { + locker.unlock(); + gst_app_src_end_of_stream(priv->appsrc); +@@ -1156,7 +1156,7 @@ + + GST_ERROR_OBJECT(src, "Request was blocked"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + uri.reset(g_strdup(src->priv->uri)); + locker.unlock(); + +@@ -1170,7 +1170,7 @@ + + GST_ERROR_OBJECT(src, "Cannot show URL"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + uri.reset(g_strdup(src->priv->uri)); + locker.unlock(); + diff --git a/ewebkit-include.patch b/ewebkit-include.patch index a096bc8..e745f47 100644 --- a/ewebkit-include.patch +++ b/ewebkit-include.patch @@ -18,3 +18,93 @@ #include "CodeBlock.h" +--- efl-webkit/Source/JavaScriptCore/runtime/ArgumentsIteratorConstructor.cpp.orig 2013-11-07 09:32:26.000000000 +0100 ++++ efl-webkit/Source/JavaScriptCore/runtime/ArgumentsIteratorConstructor.cpp 2015-10-11 21:26:50.522477628 +0200 +@@ -31,6 +31,7 @@ + #include "JSCJSValueInlines.h" + #include "JSCellInlines.h" + #include "JSGlobalObject.h" ++#include "StructureInlines.h" + + namespace JSC { + +--- efl-webkit/Source/JavaScriptCore/runtime/MapIteratorConstructor.cpp.orig 2013-11-12 11:01:43.000000000 +0100 ++++ efl-webkit/Source/JavaScriptCore/runtime/MapIteratorConstructor.cpp 2015-10-12 18:02:57.788797399 +0200 +@@ -30,6 +30,7 @@ + #include "JSCellInlines.h" + #include "JSGlobalObject.h" + #include "JSMapIterator.h" ++#include "StructureInlines.h" + #include "MapIteratorPrototype.h" + + namespace JSC { +--- efl-webkit/Source/JavaScriptCore/runtime/SetIteratorConstructor.cpp.orig 2013-11-12 11:01:43.000000000 +0100 ++++ efl-webkit/Source/JavaScriptCore/runtime/SetIteratorConstructor.cpp 2015-10-12 19:48:30.573880360 +0200 +@@ -30,6 +30,7 @@ + #include "JSCellInlines.h" + #include "JSGlobalObject.h" + #include "JSSetIterator.h" ++#include "StructureInlines.h" + #include "SetIteratorPrototype.h" + + namespace JSC { +--- efl-webkit/Source/JavaScriptCore/llint/LLIntThunks.cpp.orig 2014-02-02 05:21:06.000000000 +0100 ++++ efl-webkit/Source/JavaScriptCore/llint/LLIntThunks.cpp 2015-10-12 19:55:11.737996314 +0200 +@@ -32,6 +32,7 @@ + #include "JSInterfaceJIT.h" + #include "JSObject.h" + #include "JSStackInlines.h" ++#include "JSCJSValueInlines.h" + #include "LLIntCLoop.h" + #include "LinkBuffer.h" + #include "LowLevelInterpreter.h" +--- efl-webkit/Source/WebCore/editing/InsertNodeBeforeCommand.cpp.orig 2013-12-30 11:34:40.000000000 +0100 ++++ efl-webkit/Source/WebCore/editing/InsertNodeBeforeCommand.cpp 2015-10-12 20:17:08.519546544 +0200 +@@ -25,6 +25,7 @@ + + #include "config.h" + #include "InsertNodeBeforeCommand.h" ++#include "RenderElement.h" + + #include "AXObjectCache.h" + #include "Document.h" +--- efl-webkit/Source/JavaScriptCore/runtime/JSPromiseFunctions.cpp.orig 2014-01-09 10:03:17.000000000 +0100 ++++ efl-webkit/Source/JavaScriptCore/runtime/JSPromiseFunctions.cpp 2015-10-12 20:46:55.032098217 +0200 +@@ -31,6 +31,7 @@ + #include "Error.h" + #include "JSCJSValueInlines.h" + #include "JSCellInlines.h" ++#include "StructureInlines.h" + #include "JSPromise.h" + #include "JSPromiseConstructor.h" + #include "JSPromiseDeferred.h" +--- efl-webkit/Source/JavaScriptCore/runtime/MapConstructor.cpp.orig 2013-09-27 13:08:50.000000000 +0200 ++++ efl-webkit/Source/JavaScriptCore/runtime/MapConstructor.cpp 2015-10-12 20:55:06.454148865 +0200 +@@ -29,6 +29,7 @@ + #include "Error.h" + #include "JSCJSValueInlines.h" + #include "JSCellInlines.h" ++#include "StructureInlines.h" + #include "JSGlobalObject.h" + #include "JSMap.h" + #include "MapPrototype.h" +--- efl-webkit/Source/JavaScriptCore/runtime/SetConstructor.cpp.orig 2013-09-27 13:08:50.000000000 +0200 ++++ efl-webkit/Source/JavaScriptCore/runtime/SetConstructor.cpp 2015-10-12 21:09:10.664326190 +0200 +@@ -29,6 +29,7 @@ + #include "Error.h" + #include "JSCJSValueInlines.h" + #include "JSCellInlines.h" ++#include "StructureInlines.h" + #include "JSGlobalObject.h" + #include "JSSet.h" + #include "MapData.h" +--- efl-webkit/Source/JavaScriptCore/runtime/WeakMapConstructor.cpp.orig 2013-09-27 13:08:50.000000000 +0200 ++++ efl-webkit/Source/JavaScriptCore/runtime/WeakMapConstructor.cpp 2015-10-12 21:12:13.607063396 +0200 +@@ -28,6 +28,7 @@ + + #include "JSCJSValueInlines.h" + #include "JSCellInlines.h" ++#include "StructureInlines.h" + #include "JSGlobalObject.h" + #include "JSWeakMap.h" + #include "WeakMapPrototype.h" diff --git a/ewebkit-lib.patch b/ewebkit-lib.patch index 92add9d..e8721af 100644 --- a/ewebkit-lib.patch +++ b/ewebkit-lib.patch @@ -1,6 +1,6 @@ --- WebKit/Source/WebKit/PlatformEfl.cmake.orig 2013-12-09 21:45:22.604102036 +0100 +++ WebKit/Source/WebKit/PlatformEfl.cmake 2013-12-09 21:48:03.260761960 +0100 -@@ -189,7 +189,7 @@ +@@ -189,11 +189,11 @@ configure_file(efl/ewebkit.pc.in ${CMAKE_BINARY_DIR}/WebKit/efl/ewebkit.pc @ONLY) configure_file(efl/EWebKitConfig.cmake.in ${CMAKE_BINARY_DIR}/WebKit/efl/EWebKitConfig.cmake @ONLY) configure_file(efl/EWebKitConfigVersion.cmake.in ${CMAKE_BINARY_DIR}/WebKit/efl/EWebKitConfigVersion.cmake @ONLY) @@ -9,3 +9,24 @@ install(FILES ${CMAKE_BINARY_DIR}/WebKit/efl/EWebKitConfig.cmake ${CMAKE_BINARY_DIR}/WebKit/efl/EWebKitConfigVersion.cmake +- DESTINATION lib/cmake/EWebKit) ++ DESTINATION lib${LIB_SUFFIX}/cmake/EWebKit) + + unset(LIBS_PRIVATE) + +--- efl-webkit/Source/WebKit2/PlatformEfl.cmake.orig 2015-10-13 15:43:08.356612680 +0200 ++++ efl-webkit/Source/WebKit2/PlatformEfl.cmake 2015-10-13 17:08:19.183755065 +0200 +@@ -365,11 +365,11 @@ + "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_window_features.h" + ) + +-install(FILES ${CMAKE_BINARY_DIR}/WebKit2/efl/ewebkit2.pc DESTINATION lib/pkgconfig) ++install(FILES ${CMAKE_BINARY_DIR}/WebKit2/efl/ewebkit2.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig) + install(FILES + ${CMAKE_BINARY_DIR}/WebKit2/efl/EWebKit2Config.cmake + ${CMAKE_BINARY_DIR}/WebKit2/efl/EWebKit2ConfigVersion.cmake +- DESTINATION lib/cmake/EWebKit2) ++ DESTINATION lib${LIB_SUFFIX}/cmake/EWebKit2) + + install(FILES ${EWebKit2_HEADERS} DESTINATION include/${WebKit2_OUTPUT_NAME}-${PROJECT_VERSION_MAJOR}) + diff --git a/ewebkit-link.patch b/ewebkit-link.patch new file mode 100644 index 0000000..32f35ed --- /dev/null +++ b/ewebkit-link.patch @@ -0,0 +1,10 @@ +--- efl-webkit/Source/WebKit2/PlatformEfl.cmake.orig 2014-01-24 12:25:07.000000000 +0100 ++++ efl-webkit/Source/WebKit2/PlatformEfl.cmake 2015-10-13 15:42:28.827895471 +0200 +@@ -266,6 +266,7 @@ + ${OPENGL_LIBRARIES} + ${PNG_LIBRARIES} + ${SQLITE_LIBRARIES} ++ Xext + ) + + list(APPEND WebProcess_SOURCES diff --git a/ewebkit-werror.patch b/ewebkit-werror.patch index 91f8c08..ab3f2f0 100644 --- a/ewebkit-werror.patch +++ b/ewebkit-werror.patch @@ -18,7 +18,38 @@ # Enable errors on warning if (OPTION_ENABLE_WERROR) - set(OLD_COMPILE_FLAGS "-Werror -Wno-error=unused-parameter ${OLD_COMPILE_FLAGS}") -+ set(OLD_COMPILE_FLAGS "-Werror -Wno-error=unused-parameter -Wno-error=uninitialized -Wno-error=parentheses ${OLD_COMPILE_FLAGS}") ++ set(OLD_COMPILE_FLAGS "-Werror -Wno-error=unused-parameter -Wno-error=uninitialized ${OLD_COMPILE_FLAGS}") endif () set_target_properties(${_target} PROPERTIES +--- efl-webkit/Source/WTF/wtf/SaturatedArithmetic.h.orig 2015-10-11 21:58:21.340594067 +0200 ++++ efl-webkit/Source/WTF/wtf/SaturatedArithmetic.h 2015-10-11 21:59:56.195516793 +0200 +@@ -43,7 +43,7 @@ + + // Can only overflow if the signed bit of the two values match. If the signed + // bit of the result and one of the values differ it did overflow. +- if (!((ua ^ ub) >> 31) & (result ^ ua) >> 31) ++ if (!((ua ^ ub) >> 31) && (result ^ ua) >> 31) + result = std::numeric_limits::max() + (ua >> 31); + + return result; +@@ -57,7 +57,7 @@ + + // Can only overflow if the signed bit of the two values do not match. If the + // signed bit of the result and the first value differ it did overflow. +- if ((ua ^ ub) >> 31 & (result ^ ua) >> 31) ++ if ((ua ^ ub) >> 31 && (result ^ ua) >> 31) + result = std::numeric_limits::max() + (ua >> 31); + + return result; +--- efl-webkit/Source/WebCore/platform/audio/MediaSessionManager.cpp.orig 2014-02-08 13:36:06.000000000 +0100 ++++ efl-webkit/Source/WebCore/platform/audio/MediaSessionManager.cpp 2015-10-12 18:06:33.023265872 +0200 +@@ -136,7 +136,7 @@ + { + MediaSession::MediaType sessionType = session.mediaType(); + SessionRestrictions restrictions = m_restrictions[sessionType]; +- if (!restrictions & ConcurrentPlaybackNotPermitted) ++ if (!(restrictions & ConcurrentPlaybackNotPermitted)) + return; + + for (auto* oneSession : m_sessions) { diff --git a/ewebkit.spec b/ewebkit.spec index 5e978fc..f32c5f0 100644 --- a/ewebkit.spec +++ b/ewebkit.spec @@ -25,6 +25,8 @@ Patch1: %{name}-werror.patch Patch2: %{name}-include.patch Patch3: %{name}-build.patch Patch4: %{name}-x32.patch +Patch5: %{name}-glib.patch +Patch6: %{name}-link.patch URL: http://trac.enlightenment.org/e/wiki/EWebKit BuildRequires: OpenGL-devel BuildRequires: atk-devel >= 1:2.10.0 @@ -135,6 +137,8 @@ Pliki nagłówkowe biblioteki WebKit-EFL. %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 +%patch6 -p1 %build # replace -g2 with -g1 to not run into 4 GB ar format limit -- 2.44.0