From 46496f37cd11a6709577b28790d899ac06bafedd Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 18 Feb 2015 18:09:35 +0100 Subject: [PATCH 01/10] Add support for gcc 5.0 Let the package compile with latest glib --- webkitgtk-2.4.8-gcc5.patch | 33 ++++ webkitgtk-2.4.8-gmutexlocker.patch | 281 +++++++++++++++++++++++++++++ webkitgtk3.spec | 13 +- 3 files changed, 326 insertions(+), 1 deletion(-) create mode 100644 webkitgtk-2.4.8-gcc5.patch create mode 100644 webkitgtk-2.4.8-gmutexlocker.patch diff --git a/webkitgtk-2.4.8-gcc5.patch b/webkitgtk-2.4.8-gcc5.patch new file mode 100644 index 0000000..73f6855 --- /dev/null +++ b/webkitgtk-2.4.8-gcc5.patch @@ -0,0 +1,33 @@ +diff -up webkitgtk-2.4.8/Source/autotools/CheckSystemAndBasicDependencies.m4.gcc5 webkitgtk-2.4.8/Source/autotools/CheckSystemAndBasicDependencies.m4 +--- webkitgtk-2.4.8/Source/autotools/CheckSystemAndBasicDependencies.m4.gcc5 2015-01-07 10:45:43.000000000 +0100 ++++ webkitgtk-2.4.8/Source/autotools/CheckSystemAndBasicDependencies.m4 2015-02-18 13:09:57.359888184 +0100 +@@ -87,12 +87,12 @@ AC_SYS_LARGEFILE + c_compiler="unknown" + AC_LANG_PUSH([C]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ +-#if !(defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 7) ++#if !(defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))) + #error Not a supported GCC compiler + #endif + ])], [c_compiler="gcc"], []) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ +-#if !(defined(__clang__) && __clang_major__ >= 3 && __clang_minor__ >= 3) ++#if !(defined(__clang__) && (__apple_build_version__ >= 4250024 || (!defined(__apple_build_version__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 3))))) + #error Not a supported Clang compiler + #endif + ])], [c_compiler="clang"], []) +@@ -106,12 +106,12 @@ fi + cxx_compiler="unknown" + AC_LANG_PUSH([C++]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ +-#if !(defined(__GNUG__) && defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 7) ++#if !(defined(__GNUG__) && defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))) + #error Not a supported G++ compiler + #endif + ])], [cxx_compiler="g++"], []) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ +-#if !(defined(__clang__) && __clang_major__ >= 3 && __clang_minor__ >= 3) ++#if !(defined(__clang__) && (__apple_build_version__ >= 4250024 || (!defined(__apple_build_version__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 3))))) + #error Not a supported Clang++ compiler + #endif + ])], [cxx_compiler="clang++"], []) diff --git a/webkitgtk-2.4.8-gmutexlocker.patch b/webkitgtk-2.4.8-gmutexlocker.patch new file mode 100644 index 0000000..226da3d --- /dev/null +++ b/webkitgtk-2.4.8-gmutexlocker.patch @@ -0,0 +1,281 @@ +diff -up webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp.gmutexlocker webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp +--- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp.gmutexlocker 2015-02-18 15:40:21.851816374 +0100 ++++ webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2015-02-18 15:45:58.560092191 +0100 +@@ -316,7 +316,7 @@ void MediaPlayerPrivateGStreamerBase::mu + #if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL) && !USE(COORDINATED_GRAPHICS) + PassRefPtr MediaPlayerPrivateGStreamerBase::updateTexture(TextureMapper* textureMapper) + { +- GMutexLocker lock(m_bufferMutex); ++ WebCore::GMutexLocker lock(m_bufferMutex); + if (!m_buffer) + return nullptr; + +@@ -366,7 +366,7 @@ void MediaPlayerPrivateGStreamerBase::tr + g_return_if_fail(GST_IS_BUFFER(buffer)); + + { +- GMutexLocker lock(m_bufferMutex); ++ WebCore::GMutexLocker lock(m_bufferMutex); + gst_buffer_replace(&m_buffer, buffer); + } + +@@ -398,7 +398,7 @@ void MediaPlayerPrivateGStreamerBase::pa + if (!m_player->visible()) + return; + +- GMutexLocker lock(m_bufferMutex); ++ WebCore::GMutexLocker lock(m_bufferMutex); + if (!m_buffer) + return; + +diff -up webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp.gmutexlocker webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp +diff -up webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp.gmutexlocker webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp +--- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp.gmutexlocker 2015-02-18 15:16:11.995228731 +0100 ++++ webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp 2015-02-18 15:45:42.686843477 +0100 +@@ -118,7 +118,7 @@ static gboolean webkitVideoSinkTimeoutCa + 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 @@ static GstFlowReturn webkitVideoSinkRend + 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; +@@ -279,7 +279,7 @@ static void webkitVideoSinkGetProperty(G + + static void unlockBufferMutex(WebKitVideoSinkPrivate* priv) + { +- GMutexLocker lock(priv->bufferMutex); ++ WebCore::GMutexLocker lock(priv->bufferMutex); + + if (priv->buffer) { + gst_buffer_unref(priv->buffer); +@@ -305,7 +305,7 @@ static gboolean webkitVideoSinkUnlockSto + WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; + + { +- GMutexLocker lock(priv->bufferMutex); ++ WebCore::GMutexLocker lock(priv->bufferMutex); + priv->unlocked = false; + } + +@@ -330,7 +330,7 @@ static gboolean webkitVideoSinkStart(Gst + { + WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; + +- GMutexLocker lock(priv->bufferMutex); ++ WebCore::GMutexLocker lock(priv->bufferMutex); + priv->unlocked = false; + return TRUE; + } +diff -up webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp.gmutexlocker webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp +--- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp.gmutexlocker 2015-02-18 15:16:40.954678407 +0100 ++++ webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2015-02-18 15:45:19.567481225 +0100 +@@ -346,7 +346,7 @@ static void webKitWebSrcSetProperty(GObj + + 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; + } +@@ -364,7 +364,7 @@ static void webKitWebSrcGetProperty(GObj + 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); +@@ -417,7 +417,7 @@ static gboolean webKitWebSrcStop(WebKitW + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + bool seeking = priv->seekID; + +@@ -476,7 +476,7 @@ static gboolean webKitWebSrcStart(WebKit + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + priv->startID = 0; + priv->corsAccessCheck = CORSNoCheck; +@@ -573,7 +573,7 @@ static GstStateChangeReturn webKitWebSrc + 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"); +@@ -604,7 +604,7 @@ static gboolean webKitWebSrcQueryWithPar + 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; +@@ -612,7 +612,7 @@ static gboolean webKitWebSrcQueryWithPar + 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; +@@ -653,7 +653,7 @@ static gchar* webKitWebSrcGetUri(GstURIH + 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; + } +@@ -668,7 +668,7 @@ static gboolean webKitWebSrcSetUri(GstUR + return FALSE; + } + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + g_free(priv->uri); + priv->uri = 0; +@@ -704,7 +704,7 @@ static gboolean webKitWebSrcNeedDataMain + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->needDataID) + return FALSE; +@@ -725,7 +725,7 @@ static void webKitWebSrcNeedDataCb(GstAp + + 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; + } +@@ -739,7 +739,7 @@ static gboolean webKitWebSrcEnoughDataMa + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->enoughDataID) + return FALSE; +@@ -760,7 +760,7 @@ static void webKitWebSrcEnoughDataCb(Gst + + 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; + } +@@ -774,7 +774,7 @@ static gboolean webKitWebSrcSeekMainCb(W + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->seekID) + return FALSE; +@@ -792,7 +792,7 @@ static gboolean webKitWebSrcSeekDataCb(G + 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; + +@@ -811,7 +811,7 @@ static gboolean webKitWebSrcSeekDataCb(G + 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; + } + +@@ -841,7 +841,7 @@ char* StreamingClient::createReadBuffer( + + mapGstBuffer(buffer); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + priv->buffer = adoptGRef(buffer); + locker.unlock(); + +@@ -867,7 +867,7 @@ void StreamingClient::handleResponseRece + return; + } + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + priv->corsAccessCheck = corsAccessCheck; + +@@ -966,7 +966,7 @@ void StreamingClient::handleDataReceived + WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src); + 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); + +@@ -1035,7 +1035,7 @@ void StreamingClient::handleNotifyFinish + + 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); +@@ -1194,7 +1194,7 @@ void ResourceHandleStreamingClient::wasB + + 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(); + +@@ -1208,7 +1208,7 @@ void ResourceHandleStreamingClient::cann + + 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 -up webkitgtk-2.4.8/Source/WTF/wtf/gobject/GMutexLocker.h.gmutexlocker webkitgtk-2.4.8/Source/WTF/wtf/gobject/GMutexLocker.h diff --git a/webkitgtk3.spec b/webkitgtk3.spec index 2416773..2539bf3 100644 --- a/webkitgtk3.spec +++ b/webkitgtk3.spec @@ -10,7 +10,7 @@ Name: webkitgtk3 Version: 2.4.8 -Release: 2%{?dist} +Release: 3%{?dist} Summary: GTK+ Web content engine library Group: Development/Libraries @@ -26,6 +26,10 @@ Patch3: webkitgtk-2.4.5-cloop_fix_32.patch Patch4: webkitgtk-2.4.1-ppc64_align.patch # https://bugs.webkit.org/show_bug.cgi?id=140241 Patch5: webkitgtk-2.4.8-plugin_none.patch +# https://bugs.webkit.org/show_bug.cgi?id=126324 +Patch6: webkitgtk-2.4.8-gcc5.patch +# https://bugs.webkit.org/show_bug.cgi?id=141381 +Patch7: webkitgtk-2.4.8-gmutexlocker.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -94,6 +98,8 @@ This package contains developer documentation for %{name}. %patch1 -p1 -b .aarch64 %patch2 -p1 -b .cloop_fix %patch5 -p1 -b .plugin_none +%patch6 -p1 -b .gcc5 +%patch7 -p1 -b .gmutex_locker %ifarch ppc s390 %patch3 -p1 -b .cloop_fix_32 %endif @@ -103,6 +109,7 @@ This package contains developer documentation for %{name}. # Remove when 2.4.9 will be released # Needed for https://bugs.webkit.org/show_bug.cgi?id=140241 +# Regenerate configure to pick up the gcc 5.0 changes autoreconf -v %build @@ -207,6 +214,10 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete %{_datadir}/gtk-doc/html/webkitdomgtk %changelog +* Wed Feb 18 2015 Tomas Popela - 2.4.8-3 +- Add support for gcc 5.0 +- Let the package compile with latest glib + * Mon Jan 26 2015 David Tardon - 2.4.8-2 - rebuild for ICU 54.1 From bbc9c5d67391a30607418c4ea5129bb00d8898e1 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 27 Feb 2015 14:45:27 -0600 Subject: [PATCH 02/10] Add Fedora branding to the user agent --- webkitgtk-2.4.8-user-agent.patch | 27 +++++++++++++++++++++++++++ webkitgtk3.spec | 12 +++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 webkitgtk-2.4.8-user-agent.patch diff --git a/webkitgtk-2.4.8-user-agent.patch b/webkitgtk-2.4.8-user-agent.patch new file mode 100644 index 0000000..84b5117 --- /dev/null +++ b/webkitgtk-2.4.8-user-agent.patch @@ -0,0 +1,27 @@ +From 050232bc122d6785fea01d39121c2f93e8dd16f1 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Thu, 26 Feb 2015 16:06:36 -0600 +Subject: [PATCH] Allow branding the user agent + +--- + Source/WebCore/platform/gtk/UserAgentGtk.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/Source/WebCore/platform/gtk/UserAgentGtk.cpp b/Source/WebCore/platform/gtk/UserAgentGtk.cpp +index 91641dc..727fbaf 100644 +--- a/Source/WebCore/platform/gtk/UserAgentGtk.cpp ++++ b/Source/WebCore/platform/gtk/UserAgentGtk.cpp +@@ -84,7 +84,9 @@ static const char* cpuDescriptionForUAString() + + static const char* platformForUAString() + { +-#if PLATFORM(X11) ++#if defined USER_AGENT_GTK_DISTRIBUTOR_NAME ++ return USER_AGENT_GTK_DISTRIBUTOR_NAME; ++#elif PLATFORM(X11) + return "X11"; + #elif OS(WINDOWS) + return ""; +-- +2.1.0 + diff --git a/webkitgtk3.spec b/webkitgtk3.spec index 2539bf3..e473dec 100644 --- a/webkitgtk3.spec +++ b/webkitgtk3.spec @@ -10,7 +10,7 @@ Name: webkitgtk3 Version: 2.4.8 -Release: 3%{?dist} +Release: 4%{?dist} Summary: GTK+ Web content engine library Group: Development/Libraries @@ -30,6 +30,8 @@ Patch5: webkitgtk-2.4.8-plugin_none.patch Patch6: webkitgtk-2.4.8-gcc5.patch # https://bugs.webkit.org/show_bug.cgi?id=141381 Patch7: webkitgtk-2.4.8-gmutexlocker.patch +# https://bugs.webkit.org/show_bug.cgi?id=142074 +Patch8: webkitgtk-2.4.8-user-agent.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -100,6 +102,7 @@ This package contains developer documentation for %{name}. %patch5 -p1 -b .plugin_none %patch6 -p1 -b .gcc5 %patch7 -p1 -b .gmutex_locker +%patch8 -p1 -b .user_agent %ifarch ppc s390 %patch3 -p1 -b .cloop_fix_32 %endif @@ -130,6 +133,10 @@ autoreconf -v %global optflags %{optflags} -DENABLE_YARR_JIT=0 %endif +%if 0%{?fedora} +%global optflags %{optflags} -DUSER_AGENT_GTK_DISTRIBUTOR_NAME=\'\\"Fedora\\"\' +%endif + %configure \ --with-gtk=3.0 \ --disable-webkit2 \ @@ -214,6 +221,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete %{_datadir}/gtk-doc/html/webkitdomgtk %changelog +* Fri Feb 27 2015 Michael Catanzaro - 2.4.8-4 +- Add Fedora branding to the user agent + * Wed Feb 18 2015 Tomas Popela - 2.4.8-3 - Add support for gcc 5.0 - Let the package compile with latest glib From 2b6becdaa058f2e77cff2229be24c3656e55e9e4 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 10 Mar 2015 07:24:28 +0100 Subject: [PATCH 03/10] Backport fix for use-after-free when destroying frame --- webkitgtk-2.4.8-g_object_destroyed.patch | 23 +++++++++++++++++++++++ webkitgtk3.spec | 8 +++++++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 webkitgtk-2.4.8-g_object_destroyed.patch diff --git a/webkitgtk-2.4.8-g_object_destroyed.patch b/webkitgtk-2.4.8-g_object_destroyed.patch new file mode 100644 index 0000000..479f1de --- /dev/null +++ b/webkitgtk-2.4.8-g_object_destroyed.patch @@ -0,0 +1,23 @@ +diff --git a/Source/WebCore/bindings/gobject/GObjectEventListener.cpp b/Source/WebCore/bindings/gobject/GObjectEventListener.cpp +index 76cf279..9d1b881 100644 +--- a/Source/WebCore/bindings/gobject/GObjectEventListener.cpp ++++ b/Source/WebCore/bindings/gobject/GObjectEventListener.cpp +@@ -52,12 +52,13 @@ void GObjectEventListener::gobjectDestroyed() + { + ASSERT(m_coreTarget); + +- // We must set m_coreTarget to null, because removeEventListener +- // may call the destructor as a side effect and we must be in the +- // proper state to prevent g_object_weak_unref. +- EventTarget* target = m_coreTarget; ++ // Protect 'this' class in case the 'm_coreTarget' holds the last reference, ++ // which may cause, inside removeEventListener(), free of this object ++ // and later use-after-free with the m_handler = 0; assignment. ++ RefPtr protect(this); ++ ++ m_coreTarget->removeEventListener(m_domEventName.data(), this, m_capture); + m_coreTarget = 0; +- target->removeEventListener(m_domEventName.data(), this, m_capture); + m_handler = 0; + } + diff --git a/webkitgtk3.spec b/webkitgtk3.spec index e473dec..2d65b4f 100644 --- a/webkitgtk3.spec +++ b/webkitgtk3.spec @@ -10,7 +10,7 @@ Name: webkitgtk3 Version: 2.4.8 -Release: 4%{?dist} +Release: 5%{?dist} Summary: GTK+ Web content engine library Group: Development/Libraries @@ -32,6 +32,8 @@ Patch6: webkitgtk-2.4.8-gcc5.patch Patch7: webkitgtk-2.4.8-gmutexlocker.patch # https://bugs.webkit.org/show_bug.cgi?id=142074 Patch8: webkitgtk-2.4.8-user-agent.patch +#https://bugs.webkit.org/show_bug.cgi?id=127474 +Patch9: webkitgtk-2.4.8-g_object_destroyed.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -103,6 +105,7 @@ This package contains developer documentation for %{name}. %patch6 -p1 -b .gcc5 %patch7 -p1 -b .gmutex_locker %patch8 -p1 -b .user_agent +%patch9 -p1 -b .g_object_destroyed %ifarch ppc s390 %patch3 -p1 -b .cloop_fix_32 %endif @@ -221,6 +224,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete %{_datadir}/gtk-doc/html/webkitdomgtk %changelog +* Tue Mar 10 2015 Tomas Popela - 2.4.8-5 +- Backport fix for use-after-free when destroying frame + * Fri Feb 27 2015 Michael Catanzaro - 2.4.8-4 - Add Fedora branding to the user agent From 20155740dedf5ee7739291b7bf6ad12d14f5b4a7 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 20 May 2015 13:48:31 +0200 Subject: [PATCH 04/10] Update to 2.4.9 --- webkitgtk-2.4.8-g_object_destroyed.patch | 23 -- webkitgtk-2.4.8-gcc5.patch | 33 --- webkitgtk-2.4.8-gmutexlocker.patch | 281 ----------------------- webkitgtk-2.4.8-plugin_none.patch | 27 --- webkitgtk-aarch64.patch | 33 ++- webkitgtk3.spec | 28 +-- 6 files changed, 23 insertions(+), 402 deletions(-) delete mode 100644 webkitgtk-2.4.8-g_object_destroyed.patch delete mode 100644 webkitgtk-2.4.8-gcc5.patch delete mode 100644 webkitgtk-2.4.8-gmutexlocker.patch delete mode 100644 webkitgtk-2.4.8-plugin_none.patch diff --git a/webkitgtk-2.4.8-g_object_destroyed.patch b/webkitgtk-2.4.8-g_object_destroyed.patch deleted file mode 100644 index 479f1de..0000000 --- a/webkitgtk-2.4.8-g_object_destroyed.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/Source/WebCore/bindings/gobject/GObjectEventListener.cpp b/Source/WebCore/bindings/gobject/GObjectEventListener.cpp -index 76cf279..9d1b881 100644 ---- a/Source/WebCore/bindings/gobject/GObjectEventListener.cpp -+++ b/Source/WebCore/bindings/gobject/GObjectEventListener.cpp -@@ -52,12 +52,13 @@ void GObjectEventListener::gobjectDestroyed() - { - ASSERT(m_coreTarget); - -- // We must set m_coreTarget to null, because removeEventListener -- // may call the destructor as a side effect and we must be in the -- // proper state to prevent g_object_weak_unref. -- EventTarget* target = m_coreTarget; -+ // Protect 'this' class in case the 'm_coreTarget' holds the last reference, -+ // which may cause, inside removeEventListener(), free of this object -+ // and later use-after-free with the m_handler = 0; assignment. -+ RefPtr protect(this); -+ -+ m_coreTarget->removeEventListener(m_domEventName.data(), this, m_capture); - m_coreTarget = 0; -- target->removeEventListener(m_domEventName.data(), this, m_capture); - m_handler = 0; - } - diff --git a/webkitgtk-2.4.8-gcc5.patch b/webkitgtk-2.4.8-gcc5.patch deleted file mode 100644 index 73f6855..0000000 --- a/webkitgtk-2.4.8-gcc5.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -up webkitgtk-2.4.8/Source/autotools/CheckSystemAndBasicDependencies.m4.gcc5 webkitgtk-2.4.8/Source/autotools/CheckSystemAndBasicDependencies.m4 ---- webkitgtk-2.4.8/Source/autotools/CheckSystemAndBasicDependencies.m4.gcc5 2015-01-07 10:45:43.000000000 +0100 -+++ webkitgtk-2.4.8/Source/autotools/CheckSystemAndBasicDependencies.m4 2015-02-18 13:09:57.359888184 +0100 -@@ -87,12 +87,12 @@ AC_SYS_LARGEFILE - c_compiler="unknown" - AC_LANG_PUSH([C]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ --#if !(defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 7) -+#if !(defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))) - #error Not a supported GCC compiler - #endif - ])], [c_compiler="gcc"], []) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ --#if !(defined(__clang__) && __clang_major__ >= 3 && __clang_minor__ >= 3) -+#if !(defined(__clang__) && (__apple_build_version__ >= 4250024 || (!defined(__apple_build_version__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 3))))) - #error Not a supported Clang compiler - #endif - ])], [c_compiler="clang"], []) -@@ -106,12 +106,12 @@ fi - cxx_compiler="unknown" - AC_LANG_PUSH([C++]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ --#if !(defined(__GNUG__) && defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 7) -+#if !(defined(__GNUG__) && defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))) - #error Not a supported G++ compiler - #endif - ])], [cxx_compiler="g++"], []) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ --#if !(defined(__clang__) && __clang_major__ >= 3 && __clang_minor__ >= 3) -+#if !(defined(__clang__) && (__apple_build_version__ >= 4250024 || (!defined(__apple_build_version__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 3))))) - #error Not a supported Clang++ compiler - #endif - ])], [cxx_compiler="clang++"], []) diff --git a/webkitgtk-2.4.8-gmutexlocker.patch b/webkitgtk-2.4.8-gmutexlocker.patch deleted file mode 100644 index 226da3d..0000000 --- a/webkitgtk-2.4.8-gmutexlocker.patch +++ /dev/null @@ -1,281 +0,0 @@ -diff -up webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp.gmutexlocker webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp ---- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp.gmutexlocker 2015-02-18 15:40:21.851816374 +0100 -+++ webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2015-02-18 15:45:58.560092191 +0100 -@@ -316,7 +316,7 @@ void MediaPlayerPrivateGStreamerBase::mu - #if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL) && !USE(COORDINATED_GRAPHICS) - PassRefPtr MediaPlayerPrivateGStreamerBase::updateTexture(TextureMapper* textureMapper) - { -- GMutexLocker lock(m_bufferMutex); -+ WebCore::GMutexLocker lock(m_bufferMutex); - if (!m_buffer) - return nullptr; - -@@ -366,7 +366,7 @@ void MediaPlayerPrivateGStreamerBase::tr - g_return_if_fail(GST_IS_BUFFER(buffer)); - - { -- GMutexLocker lock(m_bufferMutex); -+ WebCore::GMutexLocker lock(m_bufferMutex); - gst_buffer_replace(&m_buffer, buffer); - } - -@@ -398,7 +398,7 @@ void MediaPlayerPrivateGStreamerBase::pa - if (!m_player->visible()) - return; - -- GMutexLocker lock(m_bufferMutex); -+ WebCore::GMutexLocker lock(m_bufferMutex); - if (!m_buffer) - return; - -diff -up webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp.gmutexlocker webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp -diff -up webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp.gmutexlocker webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp ---- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp.gmutexlocker 2015-02-18 15:16:11.995228731 +0100 -+++ webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp 2015-02-18 15:45:42.686843477 +0100 -@@ -118,7 +118,7 @@ static gboolean webkitVideoSinkTimeoutCa - 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 @@ static GstFlowReturn webkitVideoSinkRend - 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; -@@ -279,7 +279,7 @@ static void webkitVideoSinkGetProperty(G - - static void unlockBufferMutex(WebKitVideoSinkPrivate* priv) - { -- GMutexLocker lock(priv->bufferMutex); -+ WebCore::GMutexLocker lock(priv->bufferMutex); - - if (priv->buffer) { - gst_buffer_unref(priv->buffer); -@@ -305,7 +305,7 @@ static gboolean webkitVideoSinkUnlockSto - WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; - - { -- GMutexLocker lock(priv->bufferMutex); -+ WebCore::GMutexLocker lock(priv->bufferMutex); - priv->unlocked = false; - } - -@@ -330,7 +330,7 @@ static gboolean webkitVideoSinkStart(Gst - { - WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; - -- GMutexLocker lock(priv->bufferMutex); -+ WebCore::GMutexLocker lock(priv->bufferMutex); - priv->unlocked = false; - return TRUE; - } -diff -up webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp.gmutexlocker webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp ---- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp.gmutexlocker 2015-02-18 15:16:40.954678407 +0100 -+++ webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2015-02-18 15:45:19.567481225 +0100 -@@ -346,7 +346,7 @@ static void webKitWebSrcSetProperty(GObj - - 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; - } -@@ -364,7 +364,7 @@ static void webKitWebSrcGetProperty(GObj - 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); -@@ -417,7 +417,7 @@ static gboolean webKitWebSrcStop(WebKitW - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - - bool seeking = priv->seekID; - -@@ -476,7 +476,7 @@ static gboolean webKitWebSrcStart(WebKit - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - - priv->startID = 0; - priv->corsAccessCheck = CORSNoCheck; -@@ -573,7 +573,7 @@ static GstStateChangeReturn webKitWebSrc - 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"); -@@ -604,7 +604,7 @@ static gboolean webKitWebSrcQueryWithPar - 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; -@@ -612,7 +612,7 @@ static gboolean webKitWebSrcQueryWithPar - 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; -@@ -653,7 +653,7 @@ static gchar* webKitWebSrcGetUri(GstURIH - 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; - } -@@ -668,7 +668,7 @@ static gboolean webKitWebSrcSetUri(GstUR - return FALSE; - } - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - - g_free(priv->uri); - priv->uri = 0; -@@ -704,7 +704,7 @@ static gboolean webKitWebSrcNeedDataMain - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - // already stopped - if (!priv->needDataID) - return FALSE; -@@ -725,7 +725,7 @@ static void webKitWebSrcNeedDataCb(GstAp - - 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; - } -@@ -739,7 +739,7 @@ static gboolean webKitWebSrcEnoughDataMa - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - // already stopped - if (!priv->enoughDataID) - return FALSE; -@@ -760,7 +760,7 @@ static void webKitWebSrcEnoughDataCb(Gst - - 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; - } -@@ -774,7 +774,7 @@ static gboolean webKitWebSrcSeekMainCb(W - - ASSERT(isMainThread()); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - // already stopped - if (!priv->seekID) - return FALSE; -@@ -792,7 +792,7 @@ static gboolean webKitWebSrcSeekDataCb(G - 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; - -@@ -811,7 +811,7 @@ static gboolean webKitWebSrcSeekDataCb(G - 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; - } - -@@ -841,7 +841,7 @@ char* StreamingClient::createReadBuffer( - - mapGstBuffer(buffer); - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - priv->buffer = adoptGRef(buffer); - locker.unlock(); - -@@ -867,7 +867,7 @@ void StreamingClient::handleResponseRece - return; - } - -- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); -+ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); - - priv->corsAccessCheck = corsAccessCheck; - -@@ -966,7 +966,7 @@ void StreamingClient::handleDataReceived - WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src); - 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); - -@@ -1035,7 +1035,7 @@ void StreamingClient::handleNotifyFinish - - 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); -@@ -1194,7 +1194,7 @@ void ResourceHandleStreamingClient::wasB - - 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(); - -@@ -1208,7 +1208,7 @@ void ResourceHandleStreamingClient::cann - - 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 -up webkitgtk-2.4.8/Source/WTF/wtf/gobject/GMutexLocker.h.gmutexlocker webkitgtk-2.4.8/Source/WTF/wtf/gobject/GMutexLocker.h diff --git a/webkitgtk-2.4.8-plugin_none.patch b/webkitgtk-2.4.8-plugin_none.patch deleted file mode 100644 index 19ae387..0000000 --- a/webkitgtk-2.4.8-plugin_none.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -up webkitgtk-2.4.8/Source/WebCore/GNUmakefile.list.am.plugin_none webkitgtk-2.4.8/Source/WebCore/GNUmakefile.list.am ---- webkitgtk-2.4.8/Source/WebCore/GNUmakefile.list.am.plugin_none 2015-01-08 11:08:03.261853581 +0100 -+++ webkitgtk-2.4.8/Source/WebCore/GNUmakefile.list.am 2015-01-08 11:08:53.650619552 +0100 -@@ -6254,9 +6254,11 @@ endif # END USE_GLX - endif # END TARGET_X11 - - if TARGET_WAYLAND -+if ENABLE_WEBKIT2 - webcore_sources += \ - Source/WebCore/plugins/PluginPackageNone.cpp \ - Source/WebCore/plugins/PluginViewNone.cpp -+endif # END ENABLE_WEBKIT2 - endif # END TARGET_WAYLAND - - if TARGET_X11_OR_WAYLAND -@@ -6305,9 +6307,11 @@ webcoregtk_sources += \ - endif # END TARGET_WIN32 - - if TARGET_QUARTZ -+if ENABLE_WEBKIT2 - webcore_sources += \ - Source/WebCore/plugins/PluginPackageNone.cpp \ - Source/WebCore/plugins/PluginViewNone.cpp -+endif # END ENABLE_WEBKIT2 - platformgtk_sources += \ - Source/WebCore/platform/cairo/WidgetBackingStoreCairo.h \ - Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp diff --git a/webkitgtk-aarch64.patch b/webkitgtk-aarch64.patch index 7272bc1..6a82264 100644 --- a/webkitgtk-aarch64.patch +++ b/webkitgtk-aarch64.patch @@ -1,19 +1,19 @@ -diff -up webkitgtk-2.4.5/Source/WTF/wtf/dtoa/utils.h.aarch64 webkitgtk-2.4.5/Source/WTF/wtf/dtoa/utils.h ---- webkitgtk-2.4.5/Source/WTF/wtf/dtoa/utils.h.aarch64 2014-09-02 11:39:15.782812173 +0200 -+++ webkitgtk-2.4.5/Source/WTF/wtf/dtoa/utils.h 2014-09-02 11:41:23.022637099 +0200 +diff -up webkitgtk-2.4.9/Source/WTF/wtf/dtoa/utils.h.aarch64 webkitgtk-2.4.9/Source/WTF/wtf/dtoa/utils.h +--- webkitgtk-2.4.9/Source/WTF/wtf/dtoa/utils.h.aarch64 2015-05-20 11:03:24.000000000 +0200 ++++ webkitgtk-2.4.9/Source/WTF/wtf/dtoa/utils.h 2015-05-20 13:45:35.629023925 +0200 @@ -49,7 +49,7 @@ defined(__ARMEL__) || \ defined(_MIPS_ARCH_MIPS32R2) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 --#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) -+#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(AARCH64) || CPU(HPPA) +-#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) ++#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(AARCH64) || CPU(HPPA) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(_M_IX86) || defined(__i386__) #if defined(_WIN32) -diff -up webkitgtk-2.4.5/Source/WTF/wtf/Platform.h.aarch64 webkitgtk-2.4.5/Source/WTF/wtf/Platform.h ---- webkitgtk-2.4.5/Source/WTF/wtf/Platform.h.aarch64 2014-08-25 14:50:32.000000000 +0200 -+++ webkitgtk-2.4.5/Source/WTF/wtf/Platform.h 2014-09-02 11:40:40.925033307 +0200 -@@ -331,6 +331,14 @@ +diff -up webkitgtk-2.4.9/Source/WTF/wtf/Platform.h.aarch64 webkitgtk-2.4.9/Source/WTF/wtf/Platform.h +--- webkitgtk-2.4.9/Source/WTF/wtf/Platform.h.aarch64 2015-05-20 11:03:24.000000000 +0200 ++++ webkitgtk-2.4.9/Source/WTF/wtf/Platform.h 2015-05-20 13:47:34.439861401 +0200 +@@ -334,6 +334,14 @@ #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1 #endif @@ -28,13 +28,12 @@ diff -up webkitgtk-2.4.5/Source/WTF/wtf/Platform.h.aarch64 webkitgtk-2.4.5/Sourc /* ==== OS() - underlying operating system; only to be used for mandated low-level services like virtual memory, not to choose a GUI toolkit ==== */ -@@ -656,7 +664,8 @@ - || CPU(ARM64) \ +@@ -654,7 +662,7 @@ + #if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS))) \ + || (CPU(IA64) && !CPU(IA64_32)) \ + || CPU(ALPHA) \ +- || CPU(ARM64) \ ++ || CPU(AARCH64) \ || CPU(S390X) \ + || CPU(MIPS64) \ || CPU(PPC64) \ -- || CPU(PPC64LE) -+ || CPU(PPC64LE) \ -+ || CPU(AARCH64) - #define WTF_USE_JSVALUE64 1 - #else - #define WTF_USE_JSVALUE32_64 1 diff --git a/webkitgtk3.spec b/webkitgtk3.spec index 2d65b4f..76444b5 100644 --- a/webkitgtk3.spec +++ b/webkitgtk3.spec @@ -9,8 +9,8 @@ cp -p %1 %{buildroot}%{_pkgdocdir}/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk3 -Version: 2.4.8 -Release: 5%{?dist} +Version: 2.4.9 +Release: 1%{?dist} Summary: GTK+ Web content engine library Group: Development/Libraries @@ -24,16 +24,8 @@ Patch1: webkitgtk-aarch64.patch Patch2: webkitgtk-2.4.1-cloop_fix.patch Patch3: webkitgtk-2.4.5-cloop_fix_32.patch Patch4: webkitgtk-2.4.1-ppc64_align.patch -# https://bugs.webkit.org/show_bug.cgi?id=140241 -Patch5: webkitgtk-2.4.8-plugin_none.patch -# https://bugs.webkit.org/show_bug.cgi?id=126324 -Patch6: webkitgtk-2.4.8-gcc5.patch -# https://bugs.webkit.org/show_bug.cgi?id=141381 -Patch7: webkitgtk-2.4.8-gmutexlocker.patch # https://bugs.webkit.org/show_bug.cgi?id=142074 -Patch8: webkitgtk-2.4.8-user-agent.patch -#https://bugs.webkit.org/show_bug.cgi?id=127474 -Patch9: webkitgtk-2.4.8-g_object_destroyed.patch +Patch5: webkitgtk-2.4.8-user-agent.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -101,11 +93,7 @@ This package contains developer documentation for %{name}. %patch0 -p1 -b .nspluginwrapper %patch1 -p1 -b .aarch64 %patch2 -p1 -b .cloop_fix -%patch5 -p1 -b .plugin_none -%patch6 -p1 -b .gcc5 -%patch7 -p1 -b .gmutex_locker -%patch8 -p1 -b .user_agent -%patch9 -p1 -b .g_object_destroyed +%patch5 -p1 -b .user_agent %ifarch ppc s390 %patch3 -p1 -b .cloop_fix_32 %endif @@ -113,11 +101,6 @@ This package contains developer documentation for %{name}. %patch4 -p1 -b .ppc64_align %endif -# Remove when 2.4.9 will be released -# Needed for https://bugs.webkit.org/show_bug.cgi?id=140241 -# Regenerate configure to pick up the gcc 5.0 changes -autoreconf -v - %build # Use linker flags to reduce memory consumption %global optflags %{optflags} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads @@ -224,6 +207,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete %{_datadir}/gtk-doc/html/webkitdomgtk %changelog +* Wed May 20 2015 Tomas Popela - 2.4.9-1 +- Update to 2.4.9 + * Tue Mar 10 2015 Tomas Popela - 2.4.8-5 - Backport fix for use-after-free when destroying frame From 056c2a254e23db7a137004f0973d076743a9beac Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 20 May 2015 13:51:28 +0200 Subject: [PATCH 05/10] Update sources --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index a69c671..1f8355d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -bcdcef8e1ba28dbd5bb05f86c79f76b8 webkitgtk-2.4.8.tar.xz +312fd29eb7f5970660c6a64b8bf8420e webkitgtk-2.4.9.tar.xz From d7a3d7fac60e27656c185b77f53b0bee94a93762 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Fri, 25 Sep 2015 07:49:44 +0200 Subject: [PATCH 06/10] - rhbz#1189303 - [abrt] midori: WebCore::SQLiteStatement::prepare(): midori killed by SIGSEGV Initialize string in SQLiteStatement before using it --- webkitgtk-2.4.9-sql_initialize_string.patch | 12 ++++++++++++ webkitgtk3.spec | 9 ++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 webkitgtk-2.4.9-sql_initialize_string.patch diff --git a/webkitgtk-2.4.9-sql_initialize_string.patch b/webkitgtk-2.4.9-sql_initialize_string.patch new file mode 100644 index 0000000..a34ef14 --- /dev/null +++ b/webkitgtk-2.4.9-sql_initialize_string.patch @@ -0,0 +1,12 @@ +diff -up webkitgtk-2.4.9/Source/WebCore/platform/sql/SQLiteStatement.cpp.sql_initialize_string webkitgtk-2.4.9/Source/WebCore/platform/sql/SQLiteStatement.cpp +--- webkitgtk-2.4.9/Source/WebCore/platform/sql/SQLiteStatement.cpp.sql_initialize_string 2015-09-14 09:25:43.004200172 +0200 ++++ webkitgtk-2.4.9/Source/WebCore/platform/sql/SQLiteStatement.cpp 2015-09-14 09:25:57.852082368 +0200 +@@ -71,7 +71,7 @@ int SQLiteStatement::prepare() + // this lets SQLite avoid an extra string copy. + size_t lengthIncludingNullCharacter = query.length() + 1; + +- const char* tail; ++ const char* tail = nullptr; + int error = sqlite3_prepare_v2(m_database.sqlite3Handle(), query.data(), lengthIncludingNullCharacter, &m_statement, &tail); + + if (error != SQLITE_OK) diff --git a/webkitgtk3.spec b/webkitgtk3.spec index 76444b5..3b27456 100644 --- a/webkitgtk3.spec +++ b/webkitgtk3.spec @@ -10,7 +10,7 @@ Name: webkitgtk3 Version: 2.4.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ Web content engine library Group: Development/Libraries @@ -26,6 +26,8 @@ Patch3: webkitgtk-2.4.5-cloop_fix_32.patch Patch4: webkitgtk-2.4.1-ppc64_align.patch # https://bugs.webkit.org/show_bug.cgi?id=142074 Patch5: webkitgtk-2.4.8-user-agent.patch +# http://trac.webkit.org/changeset/169665 +Patch6: webkitgtk-2.4.9-sql_initialize_string.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -94,6 +96,7 @@ This package contains developer documentation for %{name}. %patch1 -p1 -b .aarch64 %patch2 -p1 -b .cloop_fix %patch5 -p1 -b .user_agent +%patch6 -p1 -b .sql_initialize_string %ifarch ppc s390 %patch3 -p1 -b .cloop_fix_32 %endif @@ -207,6 +210,10 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete %{_datadir}/gtk-doc/html/webkitdomgtk %changelog +* Fri Sep 25 2015 Tomas Popela - 2.4.9-2 +- rhbz#1189303 - [abrt] midori: WebCore::SQLiteStatement::prepare(): midori killed by SIGSEGV + Initialize string in SQLiteStatement before using it + * Wed May 20 2015 Tomas Popela - 2.4.9-1 - Update to 2.4.9 From c27640b7c304a71ea1c240b283767257fa436f6b Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 14 Mar 2016 11:43:48 +0100 Subject: [PATCH 07/10] Update to 2.4.10 --- sources | 2 +- webkitgtk-2.4.1-cloop_fix.patch | 199 -------------------- webkitgtk-2.4.1-ppc64_align.patch | 45 ----- webkitgtk-2.4.5-cloop_fix_32.patch | 31 --- webkitgtk-2.4.9-sql_initialize_string.patch | 12 -- webkitgtk-aarch64.patch | 39 ---- webkitgtk3.spec | 26 +-- 7 files changed, 8 insertions(+), 346 deletions(-) delete mode 100644 webkitgtk-2.4.1-cloop_fix.patch delete mode 100644 webkitgtk-2.4.1-ppc64_align.patch delete mode 100644 webkitgtk-2.4.5-cloop_fix_32.patch delete mode 100644 webkitgtk-2.4.9-sql_initialize_string.patch delete mode 100644 webkitgtk-aarch64.patch diff --git a/sources b/sources index 1f8355d..65e6d9c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -312fd29eb7f5970660c6a64b8bf8420e webkitgtk-2.4.9.tar.xz +1b3f18d4087dfc648e8060c14e16e202 webkitgtk-2.4.10.tar.xz diff --git a/webkitgtk-2.4.1-cloop_fix.patch b/webkitgtk-2.4.1-cloop_fix.patch deleted file mode 100644 index 2675caf..0000000 --- a/webkitgtk-2.4.1-cloop_fix.patch +++ /dev/null @@ -1,199 +0,0 @@ -diff -up webkitgtk-2.4.4/Source/JavaScriptCore/interpreter/ProtoCallFrame.h.cloop_fix webkitgtk-2.4.4/Source/JavaScriptCore/interpreter/ProtoCallFrame.h ---- webkitgtk-2.4.4/Source/JavaScriptCore/interpreter/ProtoCallFrame.h.cloop_fix 2014-07-23 14:15:45.497658648 +0200 -+++ webkitgtk-2.4.4/Source/JavaScriptCore/interpreter/ProtoCallFrame.h 2014-07-23 14:16:46.997687779 +0200 -@@ -36,7 +36,7 @@ struct ProtoCallFrame { - Register calleeValue; - Register argCountAndCodeOriginValue; - Register thisArg; -- size_t paddedArgCount; -+ uint32_t paddedArgCount; - JSValue *args; - - void init(CodeBlock*, JSScope*, JSObject*, JSValue, int, JSValue* otherArgs = 0); -@@ -53,7 +53,7 @@ struct ProtoCallFrame { - int argumentCountIncludingThis() const { return argCountAndCodeOriginValue.payload(); } - int argumentCount() const { return argumentCountIncludingThis() - 1; } - void setArgumentCountIncludingThis(int count) { argCountAndCodeOriginValue.payload() = count; } -- void setPaddedArgsCount(size_t argCount) { paddedArgCount = argCount; } -+ void setPaddedArgsCount(uint32_t argCount) { paddedArgCount = argCount; } - - void clearCurrentVPC() { argCountAndCodeOriginValue.tag() = 0; } - -diff -up webkitgtk-2.4.4/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp.cloop_fix webkitgtk-2.4.4/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp ---- webkitgtk-2.4.4/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp.cloop_fix 2014-07-23 14:16:02.057667404 +0200 -+++ webkitgtk-2.4.4/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp 2014-07-23 14:16:46.997687779 +0200 -@@ -1354,7 +1354,7 @@ LLINT_SLOW_PATH_DECL(slow_path_get_from_ - CodeBlock* codeBlock = exec->codeBlock(); - ConcurrentJITLocker locker(codeBlock->m_lock); - pc[5].u.structure.set(exec->vm(), codeBlock->ownerExecutable(), scope->structure()); -- pc[6].u.operand = slot.cachedOffset(); -+ pc[6].u.pointer = reinterpret_cast(slot.cachedOffset()); - } - } - -@@ -1381,7 +1381,7 @@ LLINT_SLOW_PATH_DECL(slow_path_put_to_sc - if (slot.isCacheable() && slot.base() == scope && scope->structure()->propertyAccessesAreCacheable()) { - ConcurrentJITLocker locker(codeBlock->m_lock); - pc[5].u.structure.set(exec->vm(), codeBlock->ownerExecutable(), scope->structure()); -- pc[6].u.operand = slot.cachedOffset(); -+ pc[6].u.pointer = reinterpret_cast(slot.cachedOffset()); - } - } - -diff -up webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm.cloop_fix webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm ---- webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm.cloop_fix 2014-07-23 14:16:13.047672325 +0200 -+++ webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm 2014-07-23 14:18:27.547721786 +0200 -@@ -282,7 +282,7 @@ macro doCallToJavaScript(makeCall, doRet - storep temp3, CodeBlock+4[cfr, temp1, 8] - btinz temp1, .copyHeaderLoop - -- loadi ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2 -+ loadi PayloadOffset + ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2 - subi 1, temp2 - loadi ProtoCallFrame::paddedArgCount[protoCallFrame], temp3 - subi 1, temp3 -@@ -321,7 +321,7 @@ macro doCallToJavaScript(makeCall, doRet - - .calleeFramePopped: - loadp Callee[cfr], temp3 # VM.topCallFrame -- loadp ScopeChain[cfr], temp4 -+ loadp ScopeChain + PayloadOffset[cfr], temp4 - storep temp4, [temp3] - - doReturn(extraStackSpace) -@@ -598,7 +598,7 @@ end - - - macro branchIfException(label) -- loadp ScopeChain[cfr], t3 -+ loadp ScopeChain + PayloadOffset[cfr], t3 - andp MarkedBlockMask, t3 - loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3 - bieq VM::m_exception + TagOffset[t3], EmptyValueTag, .noException -@@ -2039,7 +2039,7 @@ _llint_op_catch: - # the interpreter's throw trampoline (see _llint_throw_trampoline). - # The throwing code must have known that we were throwing to the interpreter, - # and have set VM::targetInterpreterPCForThrow. -- loadp ScopeChain[cfr], t3 -+ loadp ScopeChain + PayloadOffset[cfr], t3 - andp MarkedBlockMask, t3 - loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3 - loadp VM::callFrameForThrow[t3], cfr -@@ -2159,7 +2159,7 @@ macro nativeCallTrampoline(executableOff - andp MarkedBlockMask, t3 - loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3 - elsif C_LOOP -- loadp ScopeChain[cfr], t3 -+ loadp ScopeChain + PayloadOffset[cfr], t3 - andp MarkedBlockMask, t3 - loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3 - storep cfr, VM::topCallFrame[t3] -@@ -2172,7 +2172,7 @@ macro nativeCallTrampoline(executableOff - move t2, cfr - cloopCallNative executableOffsetToFunction[t1] - restoreReturnAddressBeforeReturn(t3) -- loadp ScopeChain[cfr], t3 -+ loadp ScopeChain + PayloadOffset[cfr], t3 - andp MarkedBlockMask, t3 - loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3 - else -@@ -2212,7 +2212,7 @@ macro resolveScope() - addi 1, t2 - - .resolveScopeAfterActivationCheck: -- loadp ScopeChain[cfr], t0 -+ loadp ScopeChain + PayloadOffset[cfr], t0 - btiz t2, .resolveScopeLoopEnd - - .resolveScopeLoop: -@@ -2271,13 +2271,13 @@ _llint_op_resolve_scope: - - macro loadWithStructureCheck(operand, slowPath) - loadisFromInstruction(operand, t0) -- loadp [cfr, t0, 8], t0 -+ loadp PayloadOffset[cfr, t0, 8], t0 - loadpFromInstruction(5, t1) - bpneq JSCell::m_structure[t0], t1, slowPath - end - - macro getProperty() -- loadisFromInstruction(6, t3) -+ loadpFromInstruction(6, t3) - loadPropertyAtVariableOffset(t3, t0, t1, t2) - valueProfile(t1, t2, 28, t0) - loadisFromInstruction(1, t0) -@@ -2297,7 +2297,7 @@ end - - macro getClosureVar() - loadp JSVariableObject::m_registers[t0], t0 -- loadisFromInstruction(6, t3) -+ loadpFromInstruction(6, t3) - loadp TagOffset[t0, t3, 8], t1 - loadp PayloadOffset[t0, t3, 8], t2 - valueProfile(t1, t2, 28, t0) -@@ -2356,7 +2356,7 @@ _llint_op_get_from_scope: - macro putProperty() - loadisFromInstruction(3, t1) - loadConstantOrVariable(t1, t2, t3) -- loadisFromInstruction(6, t1) -+ loadpFromInstruction(6, t1) - storePropertyAtVariableOffset(t1, t0, t2, t3) - end - -@@ -2374,7 +2374,7 @@ macro putClosureVar() - loadisFromInstruction(3, t1) - loadConstantOrVariable(t1, t2, t3) - loadp JSVariableObject::m_registers[t0], t0 -- loadisFromInstruction(6, t1) -+ loadpFromInstruction(6, t1) - storei t2, TagOffset[t0, t1, 8] - storei t3, PayloadOffset[t0, t1, 8] - end -diff -up webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm.cloop_fix webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm ---- webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm.cloop_fix 2014-07-23 14:16:19.147675074 +0200 -+++ webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm 2014-07-23 14:16:46.997687779 +0200 -@@ -171,7 +171,7 @@ macro doCallToJavaScript(makeCall, doRet - storep temp3, CodeBlock[cfr, temp1, 8] - btinz temp1, .copyHeaderLoop - -- loadi ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2 -+ loadi PayloadOffset + ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2 - subi 1, temp2 - loadi ProtoCallFrame::paddedArgCount[protoCallFrame], temp3 - subi 1, temp3 -@@ -2047,7 +2047,7 @@ macro loadWithStructureCheck(operand, sl - end - - macro getProperty() -- loadisFromInstruction(6, t1) -+ loadpFromInstruction(6, t1) - loadPropertyAtVariableOffset(t1, t0, t2) - valueProfile(t2, 7, t0) - loadisFromInstruction(1, t0) -@@ -2064,7 +2064,7 @@ end - - macro getClosureVar() - loadp JSVariableObject::m_registers[t0], t0 -- loadisFromInstruction(6, t1) -+ loadpFromInstruction(6, t1) - loadq [t0, t1, 8], t0 - valueProfile(t0, 7, t1) - loadisFromInstruction(1, t1) -@@ -2121,7 +2121,7 @@ _llint_op_get_from_scope: - macro putProperty() - loadisFromInstruction(3, t1) - loadConstantOrVariable(t1, t2) -- loadisFromInstruction(6, t1) -+ loadpFromInstruction(6, t1) - storePropertyAtVariableOffset(t1, t0, t2) - end - -@@ -2138,7 +2138,7 @@ macro putClosureVar() - loadisFromInstruction(3, t1) - loadConstantOrVariable(t1, t2) - loadp JSVariableObject::m_registers[t0], t0 -- loadisFromInstruction(6, t1) -+ loadpFromInstruction(6, t1) - storeq t2, [t0, t1, 8] - end - diff --git a/webkitgtk-2.4.1-ppc64_align.patch b/webkitgtk-2.4.1-ppc64_align.patch deleted file mode 100644 index 5186d60..0000000 --- a/webkitgtk-2.4.1-ppc64_align.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff -up webkitgtk-2.4.2/Source/JavaScriptCore/heap/CopiedBlock.h.ppc64_align webkitgtk-2.4.2/Source/JavaScriptCore/heap/CopiedBlock.h ---- webkitgtk-2.4.2/Source/JavaScriptCore/heap/CopiedBlock.h.ppc64_align 2014-05-12 08:03:53.000000000 +0200 -+++ webkitgtk-2.4.2/Source/JavaScriptCore/heap/CopiedBlock.h 2014-05-14 15:16:36.946318596 +0200 -@@ -81,7 +81,7 @@ public: - size_t size(); - size_t capacity(); - -- static const size_t blockSize = 32 * KB; -+ static const size_t blockSize = 64 * KB; - - bool hasWorkList(); - CopyWorkList& workList(); -diff -up webkitgtk-2.4.2/Source/JavaScriptCore/interpreter/JSStack.cpp.ppc64_align webkitgtk-2.4.2/Source/JavaScriptCore/interpreter/JSStack.cpp ---- webkitgtk-2.4.2/Source/JavaScriptCore/interpreter/JSStack.cpp.ppc64_align 2014-05-12 08:03:53.000000000 +0200 -+++ webkitgtk-2.4.2/Source/JavaScriptCore/interpreter/JSStack.cpp 2014-05-14 15:17:35.617171141 +0200 -@@ -49,7 +49,8 @@ JSStack::JSStack(VM& vm, size_t capacity - { - ASSERT(capacity && isPageAligned(capacity)); - -- m_reservation = PageReservation::reserve(roundUpAllocationSize(capacity * sizeof(Register), commitSize), OSAllocator::JSVMStackPages); -+ size_t commitsize = pageSize(); -+ m_reservation = PageReservation::reserve(roundUpAllocationSize(capacity * sizeof(Register), commitsize), OSAllocator::JSVMStackPages); - updateStackLimit(highAddress()); - m_commitEnd = highAddress(); - -@@ -78,7 +79,8 @@ bool JSStack::growSlowCase(Register* new - // Compute the chunk size of additional memory to commit, and see if we - // have it is still within our budget. If not, we'll fail to grow and - // return false. -- long delta = roundUpAllocationSize(reinterpret_cast(m_commitEnd) - reinterpret_cast(newEnd), commitSize); -+ size_t commitsize = pageSize(); -+ long delta = roundUpAllocationSize(reinterpret_cast(m_commitEnd) - reinterpret_cast(newEnd), commitsize); - if (reinterpret_cast(m_commitEnd) - delta <= reinterpret_cast(m_useableEnd)) - return false; - -@@ -134,7 +136,8 @@ void JSStack::enableErrorStackReserve() - - void JSStack::disableErrorStackReserve() - { -- char* useableEnd = reinterpret_cast(reservationEnd()) + commitSize; -+ size_t commitsize = pageSize(); -+ char* useableEnd = reinterpret_cast(reservationEnd()) + commitsize; - m_useableEnd = reinterpret_cast_ptr(useableEnd); - - // By the time we get here, we are guaranteed to be destructing the last diff --git a/webkitgtk-2.4.5-cloop_fix_32.patch b/webkitgtk-2.4.5-cloop_fix_32.patch deleted file mode 100644 index 96c53ad..0000000 --- a/webkitgtk-2.4.5-cloop_fix_32.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -up webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm.cloop_fix_32 webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm ---- webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm.cloop_fix_32 2013-08-28 21:06:29.000000000 +0200 -+++ webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm 2013-09-12 15:32:34.000000000 +0200 -@@ -1679,7 +1679,7 @@ _llint_op_next_pname: - loadi 20[PC], t2 - loadi PayloadOffset[cfr, t2, 8], t2 - loadp JSPropertyNameIterator::m_jsStrings[t2], t3 -- loadi [t3, t0, 8], t3 -+ loadi PayloadOffset[t3, t0, 8], t3 - addi 1, t0 - storei t0, PayloadOffset[cfr, t1, 8] - loadi 4[PC], t1 -diff -up webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter.asm.cloop_fix_32 webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter.asm ---- webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter.asm.cloop_fix_32 2013-08-28 21:06:29.000000000 +0200 -+++ webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter.asm 2013-09-12 15:32:34.000000000 +0200 -@@ -276,13 +276,13 @@ macro assertNotConstant(index) - end - - macro functionForCallCodeBlockGetter(targetRegister) -- loadp Callee[cfr], targetRegister -+ loadp Callee + PayloadOffset[cfr], targetRegister - loadp JSFunction::m_executable[targetRegister], targetRegister - loadp FunctionExecutable::m_codeBlockForCall[targetRegister], targetRegister - end - - macro functionForConstructCodeBlockGetter(targetRegister) -- loadp Callee[cfr], targetRegister -+ loadp Callee + PayloadOffset[cfr], targetRegister - loadp JSFunction::m_executable[targetRegister], targetRegister - loadp FunctionExecutable::m_codeBlockForConstruct[targetRegister], targetRegister - end diff --git a/webkitgtk-2.4.9-sql_initialize_string.patch b/webkitgtk-2.4.9-sql_initialize_string.patch deleted file mode 100644 index a34ef14..0000000 --- a/webkitgtk-2.4.9-sql_initialize_string.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up webkitgtk-2.4.9/Source/WebCore/platform/sql/SQLiteStatement.cpp.sql_initialize_string webkitgtk-2.4.9/Source/WebCore/platform/sql/SQLiteStatement.cpp ---- webkitgtk-2.4.9/Source/WebCore/platform/sql/SQLiteStatement.cpp.sql_initialize_string 2015-09-14 09:25:43.004200172 +0200 -+++ webkitgtk-2.4.9/Source/WebCore/platform/sql/SQLiteStatement.cpp 2015-09-14 09:25:57.852082368 +0200 -@@ -71,7 +71,7 @@ int SQLiteStatement::prepare() - // this lets SQLite avoid an extra string copy. - size_t lengthIncludingNullCharacter = query.length() + 1; - -- const char* tail; -+ const char* tail = nullptr; - int error = sqlite3_prepare_v2(m_database.sqlite3Handle(), query.data(), lengthIncludingNullCharacter, &m_statement, &tail); - - if (error != SQLITE_OK) diff --git a/webkitgtk-aarch64.patch b/webkitgtk-aarch64.patch deleted file mode 100644 index 6a82264..0000000 --- a/webkitgtk-aarch64.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -up webkitgtk-2.4.9/Source/WTF/wtf/dtoa/utils.h.aarch64 webkitgtk-2.4.9/Source/WTF/wtf/dtoa/utils.h ---- webkitgtk-2.4.9/Source/WTF/wtf/dtoa/utils.h.aarch64 2015-05-20 11:03:24.000000000 +0200 -+++ webkitgtk-2.4.9/Source/WTF/wtf/dtoa/utils.h 2015-05-20 13:45:35.629023925 +0200 -@@ -49,7 +49,7 @@ - defined(__ARMEL__) || \ - defined(_MIPS_ARCH_MIPS32R2) - #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 --#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) -+#elif CPU(MIPS) || CPU(MIPS64) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(AARCH64) || CPU(HPPA) - #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 - #elif defined(_M_IX86) || defined(__i386__) - #if defined(_WIN32) -diff -up webkitgtk-2.4.9/Source/WTF/wtf/Platform.h.aarch64 webkitgtk-2.4.9/Source/WTF/wtf/Platform.h ---- webkitgtk-2.4.9/Source/WTF/wtf/Platform.h.aarch64 2015-05-20 11:03:24.000000000 +0200 -+++ webkitgtk-2.4.9/Source/WTF/wtf/Platform.h 2015-05-20 13:47:34.439861401 +0200 -@@ -334,6 +334,14 @@ - #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1 - #endif - -+/* CPU(AARCH64) - AArch64 */ -+#if defined(__aarch64__) -+#define WTF_CPU_AARCH64 1 -+#if defined(__AARCH64BE__) -+#define WTF_CPU_BIG_ENDIAN 1 -+#endif -+#endif -+ - /* ==== OS() - underlying operating system; only to be used for mandated low-level services like - virtual memory, not to choose a GUI toolkit ==== */ - -@@ -654,7 +662,7 @@ - #if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS))) \ - || (CPU(IA64) && !CPU(IA64_32)) \ - || CPU(ALPHA) \ -- || CPU(ARM64) \ -+ || CPU(AARCH64) \ - || CPU(S390X) \ - || CPU(MIPS64) \ - || CPU(PPC64) \ diff --git a/webkitgtk3.spec b/webkitgtk3.spec index 3b27456..5dfd4d1 100644 --- a/webkitgtk3.spec +++ b/webkitgtk3.spec @@ -9,8 +9,8 @@ cp -p %1 %{buildroot}%{_pkgdocdir}/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk3 -Version: 2.4.9 -Release: 2%{?dist} +Version: 2.4.10 +Release: 1%{?dist} Summary: GTK+ Web content engine library Group: Development/Libraries @@ -20,14 +20,8 @@ URL: http://www.webkitgtk.org/ Source0: http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz Patch0: webkit-1.1.14-nspluginwrapper.patch -Patch1: webkitgtk-aarch64.patch -Patch2: webkitgtk-2.4.1-cloop_fix.patch -Patch3: webkitgtk-2.4.5-cloop_fix_32.patch -Patch4: webkitgtk-2.4.1-ppc64_align.patch # https://bugs.webkit.org/show_bug.cgi?id=142074 -Patch5: webkitgtk-2.4.8-user-agent.patch -# http://trac.webkit.org/changeset/169665 -Patch6: webkitgtk-2.4.9-sql_initialize_string.patch +Patch1: webkitgtk-2.4.8-user-agent.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -93,16 +87,7 @@ This package contains developer documentation for %{name}. %prep %setup -qn "webkitgtk-%{version}" %patch0 -p1 -b .nspluginwrapper -%patch1 -p1 -b .aarch64 -%patch2 -p1 -b .cloop_fix -%patch5 -p1 -b .user_agent -%patch6 -p1 -b .sql_initialize_string -%ifarch ppc s390 -%patch3 -p1 -b .cloop_fix_32 -%endif -%ifarch %{power64} aarch64 ppc -%patch4 -p1 -b .ppc64_align -%endif +%patch1 -p1 -b .user_agent %build # Use linker flags to reduce memory consumption @@ -210,6 +195,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete %{_datadir}/gtk-doc/html/webkitdomgtk %changelog +* Mon Mar 14 2016 Tomas Popela - 2.4.10-1 +- Update to 2.4.10 + * Fri Sep 25 2015 Tomas Popela - 2.4.9-2 - rhbz#1189303 - [abrt] midori: WebCore::SQLiteStatement::prepare(): midori killed by SIGSEGV Initialize string in SQLiteStatement before using it From 5c8d3001657d2a862f5e0444f1e47d2329eefe11 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 5 Apr 2016 10:03:38 +0200 Subject: [PATCH 08/10] rhbz#1321722 - [abrt] evolution: WTF::StringImpl::startsWith(): SIGSEGV with webkitgtk3-2.4.10 --- webkitgtk-2.4.10-qualified-name.patch | 12 ++++++++++++ webkitgtk3.spec | 8 +++++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 webkitgtk-2.4.10-qualified-name.patch diff --git a/webkitgtk-2.4.10-qualified-name.patch b/webkitgtk-2.4.10-qualified-name.patch new file mode 100644 index 0000000..6bd2dd3 --- /dev/null +++ b/webkitgtk-2.4.10-qualified-name.patch @@ -0,0 +1,12 @@ +diff -up webkitgtk-2.4.10/Source/WebCore/dom/Element.cpp.qualified-name webkitgtk-2.4.10/Source/WebCore/dom/Element.cpp +--- webkitgtk-2.4.10/Source/WebCore/dom/Element.cpp.qualified-name 2016-04-05 09:58:17.928258276 +0200 ++++ webkitgtk-2.4.10/Source/WebCore/dom/Element.cpp 2016-04-05 09:58:23.240229758 +0200 +@@ -1056,7 +1056,7 @@ inline void Element::setAttributeInterna + const Attribute& attribute = attributeAt(index); + AtomicString oldValue = attribute.value(); + bool valueChanged = newValue != oldValue; +- const QualifiedName& attributeName = (!inSynchronizationOfLazyAttribute || valueChanged) ? attribute.name() : name; ++ QualifiedName attributeName = (!inSynchronizationOfLazyAttribute || valueChanged) ? attribute.name() : name; + + if (!inSynchronizationOfLazyAttribute) + willModifyAttribute(attributeName, oldValue, newValue); diff --git a/webkitgtk3.spec b/webkitgtk3.spec index 5dfd4d1..1988962 100644 --- a/webkitgtk3.spec +++ b/webkitgtk3.spec @@ -10,7 +10,7 @@ Name: webkitgtk3 Version: 2.4.10 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ Web content engine library Group: Development/Libraries @@ -22,6 +22,8 @@ Source0: http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz Patch0: webkit-1.1.14-nspluginwrapper.patch # https://bugs.webkit.org/show_bug.cgi?id=142074 Patch1: webkitgtk-2.4.8-user-agent.patch +# http://trac.webkit.org/changeset/165044 +Patch2: webkitgtk-2.4.10-qualified-name.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -88,6 +90,7 @@ This package contains developer documentation for %{name}. %setup -qn "webkitgtk-%{version}" %patch0 -p1 -b .nspluginwrapper %patch1 -p1 -b .user_agent +%patch2 -p1 -b .qualified-name %build # Use linker flags to reduce memory consumption @@ -195,6 +198,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete %{_datadir}/gtk-doc/html/webkitdomgtk %changelog +* Tue Apr 05 2016 Tomas Popela - 2.4.10-2 +- rhbz#1321722 - [abrt] evolution: WTF::StringImpl::startsWith(): SIGSEGV with webkitgtk3-2.4.10 + * Mon Mar 14 2016 Tomas Popela - 2.4.10-1 - Update to 2.4.10 From 724873cc78d133cd77e5d16ea2ee4cc7001d4b57 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 6 Apr 2016 07:48:54 +0200 Subject: [PATCH 09/10] Fix the compilation on aarch64 --- webkitgtk-2.4.10-arm64-asm.patch | 108 +++++++++++++++++++++++++++++++ webkitgtk-2.4.10-arm64-gcc.patch | 45 +++++++++++++ webkitgtk3.spec | 11 +++- 3 files changed, 163 insertions(+), 1 deletion(-) create mode 100644 webkitgtk-2.4.10-arm64-asm.patch create mode 100644 webkitgtk-2.4.10-arm64-gcc.patch diff --git a/webkitgtk-2.4.10-arm64-asm.patch b/webkitgtk-2.4.10-arm64-asm.patch new file mode 100644 index 0000000..c5d8695 --- /dev/null +++ b/webkitgtk-2.4.10-arm64-asm.patch @@ -0,0 +1,108 @@ +diff -up webkitgtk-2.4.10/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp.arm64-asm webkitgtk-2.4.10/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp +--- webkitgtk-2.4.10/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp.arm64-asm 2016-04-05 14:49:20.174877057 +0200 ++++ webkitgtk-2.4.10/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp 2016-04-05 14:49:48.680774345 +0200 +@@ -1040,61 +1040,61 @@ TransformationMatrix& TransformationMatr + const double* rightMatrix = &(mat.m_matrix[0][0]); + asm volatile ( + // First, load the leftMatrix completely in memory. The leftMatrix is in v16-v23. +- "mov x4, %[leftMatrix]\n\t" +- "ld1.2d {v16, v17, v18, v19}, [%[leftMatrix]], #64\n\t" +- "ld1.2d {v20, v21, v22, v23}, [%[leftMatrix]]\n\t" ++ "mov x4, %[leftMatrix]\n\t" ++ "ld1 {v16.2d, v17.2d, v18.2d, v19.2d}, [%[leftMatrix]], #64\n\t" ++ "ld1 {v20.2d, v21.2d, v22.2d, v23.2d}, [%[leftMatrix]]\n\t" + + // First row. +- "ld4r.2d {v24, v25, v26, v27}, [%[rightMatrix]], #32\n\t" +- "fmul.2d v28, v24, v16\n\t" +- "fmul.2d v29, v24, v17\n\t" +- "fmla.2d v28, v25, v18\n\t" +- "fmla.2d v29, v25, v19\n\t" +- "fmla.2d v28, v26, v20\n\t" +- "fmla.2d v29, v26, v21\n\t" +- "fmla.2d v28, v27, v22\n\t" +- "fmla.2d v29, v27, v23\n\t" ++ "ld4r {v24.2d, v25.2d, v26.2d, v27.2d}, [%[rightMatrix]], #32\n\t" ++ "fmul v28.2d, v24.2d, v16.2d\n\t" ++ "fmul v29.2d, v24.2d, v17.2d\n\t" ++ "fmla v28.2d, v25.2d, v18.2d\n\t" ++ "fmla v29.2d, v25.2d, v19.2d\n\t" ++ "fmla v28.2d, v26.2d, v20.2d\n\t" ++ "fmla v29.2d, v26.2d, v21.2d\n\t" ++ "fmla v28.2d, v27.2d, v22.2d\n\t" ++ "fmla v29.2d, v27.2d, v23.2d\n\t" + +- "ld4r.2d {v0, v1, v2, v3}, [%[rightMatrix]], #32\n\t" +- "st1.2d {v28, v29}, [x4], #32\n\t" ++ "ld4r {v0.2d, v1.2d, v2.2d, v3.2d}, [%[rightMatrix]], #32\n\t" ++ "st1 {v28.2d, v29.2d}, [x4], #32\n\t" + + // Second row. +- "fmul.2d v30, v0, v16\n\t" +- "fmul.2d v31, v0, v17\n\t" +- "fmla.2d v30, v1, v18\n\t" +- "fmla.2d v31, v1, v19\n\t" +- "fmla.2d v30, v2, v20\n\t" +- "fmla.2d v31, v2, v21\n\t" +- "fmla.2d v30, v3, v22\n\t" +- "fmla.2d v31, v3, v23\n\t" ++ "fmul v30.2d, v0.2d, v16.2d\n\t" ++ "fmul v31.2d, v0.2d, v17.2d\n\t" ++ "fmla v30.2d, v1.2d, v18.2d\n\t" ++ "fmla v31.2d, v1.2d, v19.2d\n\t" ++ "fmla v30.2d, v2.2d, v20.2d\n\t" ++ "fmla v31.2d, v2.2d, v21.2d\n\t" ++ "fmla v30.2d, v3.2d, v22.2d\n\t" ++ "fmla v31.2d, v3.2d, v23.2d\n\t" + +- "ld4r.2d {v24, v25, v26, v27}, [%[rightMatrix]], #32\n\t" +- "st1.2d {v30, v31}, [x4], #32\n\t" ++ "ld4r {v24.2d, v25.2d, v26.2d, v27.2d}, [%[rightMatrix]], #32\n\t" ++ "st1 {v30.2d, v31.2d}, [x4], #32\n\t" + + // Third row. +- "fmul.2d v28, v24, v16\n\t" +- "fmul.2d v29, v24, v17\n\t" +- "fmla.2d v28, v25, v18\n\t" +- "fmla.2d v29, v25, v19\n\t" +- "fmla.2d v28, v26, v20\n\t" +- "fmla.2d v29, v26, v21\n\t" +- "fmla.2d v28, v27, v22\n\t" +- "fmla.2d v29, v27, v23\n\t" ++ "fmul v28.2d, v24.2d, v16.2d\n\t" ++ "fmul v29.2d, v24.2d, v17.2d\n\t" ++ "fmla v28.2d, v25.2d, v18.2d\n\t" ++ "fmla v29.2d, v25.2d, v19.2d\n\t" ++ "fmla v28.2d, v26.2d, v20.2d\n\t" ++ "fmla v29.2d, v26.2d, v21.2d\n\t" ++ "fmla v28.2d, v27.2d, v22.2d\n\t" ++ "fmla v29.2d, v27.2d, v23.2d\n\t" + +- "ld4r.2d {v0, v1, v2, v3}, [%[rightMatrix]], #32\n\t" +- "st1.2d {v28, v29}, [x4], #32\n\t" ++ "ld4r {v0.2d, v1.2d, v2.2d, v3.2d}, [%[rightMatrix]], #32\n\t" ++ "st1 {v28.2d, v29.2d}, [x4], #32\n\t" + + // Fourth row. +- "fmul.2d v30, v0, v16\n\t" +- "fmul.2d v31, v0, v17\n\t" +- "fmla.2d v30, v1, v18\n\t" +- "fmla.2d v31, v1, v19\n\t" +- "fmla.2d v30, v2, v20\n\t" +- "fmla.2d v31, v2, v21\n\t" +- "fmla.2d v30, v3, v22\n\t" +- "fmla.2d v31, v3, v23\n\t" ++ "fmul v30.2d, v0.2d, v16.2d\n\t" ++ "fmul v31.2d, v0.2d, v17.2d\n\t" ++ "fmla v30.2d, v1.2d, v18.2d\n\t" ++ "fmla v31.2d, v1.2d, v19.2d\n\t" ++ "fmla v30.2d, v2.2d, v20.2d\n\t" ++ "fmla v31.2d, v2.2d, v21.2d\n\t" ++ "fmla v30.2d, v3.2d, v22.2d\n\t" ++ "fmla v31.2d, v3.2d, v23.2d\n\t" + +- "st1.2d {v30, v31}, [x4]\n\t" ++ "st1 {v30.2d, v31.2d}, [x4]\n\t" + + : [leftMatrix]"+r"(leftMatrix), [rightMatrix]"+r"(rightMatrix) + : diff --git a/webkitgtk-2.4.10-arm64-gcc.patch b/webkitgtk-2.4.10-arm64-gcc.patch new file mode 100644 index 0000000..bad1e64 --- /dev/null +++ b/webkitgtk-2.4.10-arm64-gcc.patch @@ -0,0 +1,45 @@ +diff -up webkitgtk-2.4.10/Source/WTF/wtf/Atomics.h.arm64_gcc webkitgtk-2.4.10/Source/WTF/wtf/Atomics.h +--- webkitgtk-2.4.10/Source/WTF/wtf/Atomics.h.arm64_gcc 2016-04-05 13:17:49.467473861 +0200 ++++ webkitgtk-2.4.10/Source/WTF/wtf/Atomics.h 2016-04-05 13:18:00.812429048 +0200 +@@ -113,6 +113,20 @@ inline bool weakCompareAndSwap(volatile + : "r"(expected), "r"(newValue) + : "memory"); + result = !result; ++#elif CPU(ARM64) && COMPILER(GCC) ++ unsigned tmp; ++ unsigned result; ++ asm volatile( ++ "mov %w1, #1\n\t" ++ "ldxr %w2, [%0]\n\t" ++ "cmp %w3, %w2\n\t" ++ "b.ne 0f\n\t" ++ "stxr %w1, %w4, [%0]\n\t" ++ "0:" ++ : "+r"(location), "=&r"(result), "=&r"(tmp) ++ : "r"(expected), "r"(newValue) ++ : "memory"); ++ result = !result; + #elif CPU(ARM64) + unsigned tmp; + unsigned result; +@@ -153,6 +167,20 @@ inline bool weakCompareAndSwap(void*vola + : "memory" + ); + return result; ++#elif CPU(ARM64) && COMPILER(GCC) ++ bool result; ++ void* tmp; ++ asm volatile( ++ "mov %w1, #1\n\t" ++ "ldxr %x2, [%0]\n\t" ++ "cmp %x3, %x2\n\t" ++ "b.ne 0f\n\t" ++ "stxr %w1, %x4, [%0]\n\t" ++ "0:" ++ : "+r"(location), "=&r"(result), "=&r"(tmp) ++ : "r"(expected), "r"(newValue) ++ : "memory"); ++ return !result; + #elif CPU(ARM64) + bool result; + void* tmp; diff --git a/webkitgtk3.spec b/webkitgtk3.spec index 1988962..d831c80 100644 --- a/webkitgtk3.spec +++ b/webkitgtk3.spec @@ -10,7 +10,7 @@ Name: webkitgtk3 Version: 2.4.10 -Release: 2%{?dist} +Release: 3%{?dist} Summary: GTK+ Web content engine library Group: Development/Libraries @@ -24,6 +24,10 @@ Patch0: webkit-1.1.14-nspluginwrapper.patch Patch1: webkitgtk-2.4.8-user-agent.patch # http://trac.webkit.org/changeset/165044 Patch2: webkitgtk-2.4.10-qualified-name.patch +# http://trac.webkit.org/changeset/166234 +Patch3: webkitgtk-2.4.10-arm64-gcc.patch +# http://trac.webkit.org/changeset/166233 +Patch4: webkitgtk-2.4.10-arm64-asm.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -91,6 +95,8 @@ This package contains developer documentation for %{name}. %patch0 -p1 -b .nspluginwrapper %patch1 -p1 -b .user_agent %patch2 -p1 -b .qualified-name +%patch3 -p1 -b .arm64-gcc.patch +%patch4 -p1 -b .arm64-asm.patch %build # Use linker flags to reduce memory consumption @@ -198,6 +204,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete %{_datadir}/gtk-doc/html/webkitdomgtk %changelog +* Tue Apr 05 2016 Tomas Popela - 2.4.10-3 +- Fix the compilation on aarch64 + * Tue Apr 05 2016 Tomas Popela - 2.4.10-2 - rhbz#1321722 - [abrt] evolution: WTF::StringImpl::startsWith(): SIGSEGV with webkitgtk3-2.4.10 From 47a5d77b7755f0183c4ca8f09e555b610642f138 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 11 Apr 2016 08:45:56 +0200 Subject: [PATCH 10/10] Update to 2.4.11 --- sources | 2 +- webkitgtk-2.4.10-arm64-asm.patch | 108 -------------------------- webkitgtk-2.4.10-arm64-gcc.patch | 45 ----------- webkitgtk-2.4.10-qualified-name.patch | 12 --- webkitgtk3.spec | 18 ++--- 5 files changed, 7 insertions(+), 178 deletions(-) delete mode 100644 webkitgtk-2.4.10-arm64-asm.patch delete mode 100644 webkitgtk-2.4.10-arm64-gcc.patch delete mode 100644 webkitgtk-2.4.10-qualified-name.patch diff --git a/sources b/sources index 65e6d9c..b11eb4f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -1b3f18d4087dfc648e8060c14e16e202 webkitgtk-2.4.10.tar.xz +24a25ccc30a7914ae50922aedf24b7bc webkitgtk-2.4.11.tar.xz diff --git a/webkitgtk-2.4.10-arm64-asm.patch b/webkitgtk-2.4.10-arm64-asm.patch deleted file mode 100644 index c5d8695..0000000 --- a/webkitgtk-2.4.10-arm64-asm.patch +++ /dev/null @@ -1,108 +0,0 @@ -diff -up webkitgtk-2.4.10/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp.arm64-asm webkitgtk-2.4.10/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp ---- webkitgtk-2.4.10/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp.arm64-asm 2016-04-05 14:49:20.174877057 +0200 -+++ webkitgtk-2.4.10/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp 2016-04-05 14:49:48.680774345 +0200 -@@ -1040,61 +1040,61 @@ TransformationMatrix& TransformationMatr - const double* rightMatrix = &(mat.m_matrix[0][0]); - asm volatile ( - // First, load the leftMatrix completely in memory. The leftMatrix is in v16-v23. -- "mov x4, %[leftMatrix]\n\t" -- "ld1.2d {v16, v17, v18, v19}, [%[leftMatrix]], #64\n\t" -- "ld1.2d {v20, v21, v22, v23}, [%[leftMatrix]]\n\t" -+ "mov x4, %[leftMatrix]\n\t" -+ "ld1 {v16.2d, v17.2d, v18.2d, v19.2d}, [%[leftMatrix]], #64\n\t" -+ "ld1 {v20.2d, v21.2d, v22.2d, v23.2d}, [%[leftMatrix]]\n\t" - - // First row. -- "ld4r.2d {v24, v25, v26, v27}, [%[rightMatrix]], #32\n\t" -- "fmul.2d v28, v24, v16\n\t" -- "fmul.2d v29, v24, v17\n\t" -- "fmla.2d v28, v25, v18\n\t" -- "fmla.2d v29, v25, v19\n\t" -- "fmla.2d v28, v26, v20\n\t" -- "fmla.2d v29, v26, v21\n\t" -- "fmla.2d v28, v27, v22\n\t" -- "fmla.2d v29, v27, v23\n\t" -+ "ld4r {v24.2d, v25.2d, v26.2d, v27.2d}, [%[rightMatrix]], #32\n\t" -+ "fmul v28.2d, v24.2d, v16.2d\n\t" -+ "fmul v29.2d, v24.2d, v17.2d\n\t" -+ "fmla v28.2d, v25.2d, v18.2d\n\t" -+ "fmla v29.2d, v25.2d, v19.2d\n\t" -+ "fmla v28.2d, v26.2d, v20.2d\n\t" -+ "fmla v29.2d, v26.2d, v21.2d\n\t" -+ "fmla v28.2d, v27.2d, v22.2d\n\t" -+ "fmla v29.2d, v27.2d, v23.2d\n\t" - -- "ld4r.2d {v0, v1, v2, v3}, [%[rightMatrix]], #32\n\t" -- "st1.2d {v28, v29}, [x4], #32\n\t" -+ "ld4r {v0.2d, v1.2d, v2.2d, v3.2d}, [%[rightMatrix]], #32\n\t" -+ "st1 {v28.2d, v29.2d}, [x4], #32\n\t" - - // Second row. -- "fmul.2d v30, v0, v16\n\t" -- "fmul.2d v31, v0, v17\n\t" -- "fmla.2d v30, v1, v18\n\t" -- "fmla.2d v31, v1, v19\n\t" -- "fmla.2d v30, v2, v20\n\t" -- "fmla.2d v31, v2, v21\n\t" -- "fmla.2d v30, v3, v22\n\t" -- "fmla.2d v31, v3, v23\n\t" -+ "fmul v30.2d, v0.2d, v16.2d\n\t" -+ "fmul v31.2d, v0.2d, v17.2d\n\t" -+ "fmla v30.2d, v1.2d, v18.2d\n\t" -+ "fmla v31.2d, v1.2d, v19.2d\n\t" -+ "fmla v30.2d, v2.2d, v20.2d\n\t" -+ "fmla v31.2d, v2.2d, v21.2d\n\t" -+ "fmla v30.2d, v3.2d, v22.2d\n\t" -+ "fmla v31.2d, v3.2d, v23.2d\n\t" - -- "ld4r.2d {v24, v25, v26, v27}, [%[rightMatrix]], #32\n\t" -- "st1.2d {v30, v31}, [x4], #32\n\t" -+ "ld4r {v24.2d, v25.2d, v26.2d, v27.2d}, [%[rightMatrix]], #32\n\t" -+ "st1 {v30.2d, v31.2d}, [x4], #32\n\t" - - // Third row. -- "fmul.2d v28, v24, v16\n\t" -- "fmul.2d v29, v24, v17\n\t" -- "fmla.2d v28, v25, v18\n\t" -- "fmla.2d v29, v25, v19\n\t" -- "fmla.2d v28, v26, v20\n\t" -- "fmla.2d v29, v26, v21\n\t" -- "fmla.2d v28, v27, v22\n\t" -- "fmla.2d v29, v27, v23\n\t" -+ "fmul v28.2d, v24.2d, v16.2d\n\t" -+ "fmul v29.2d, v24.2d, v17.2d\n\t" -+ "fmla v28.2d, v25.2d, v18.2d\n\t" -+ "fmla v29.2d, v25.2d, v19.2d\n\t" -+ "fmla v28.2d, v26.2d, v20.2d\n\t" -+ "fmla v29.2d, v26.2d, v21.2d\n\t" -+ "fmla v28.2d, v27.2d, v22.2d\n\t" -+ "fmla v29.2d, v27.2d, v23.2d\n\t" - -- "ld4r.2d {v0, v1, v2, v3}, [%[rightMatrix]], #32\n\t" -- "st1.2d {v28, v29}, [x4], #32\n\t" -+ "ld4r {v0.2d, v1.2d, v2.2d, v3.2d}, [%[rightMatrix]], #32\n\t" -+ "st1 {v28.2d, v29.2d}, [x4], #32\n\t" - - // Fourth row. -- "fmul.2d v30, v0, v16\n\t" -- "fmul.2d v31, v0, v17\n\t" -- "fmla.2d v30, v1, v18\n\t" -- "fmla.2d v31, v1, v19\n\t" -- "fmla.2d v30, v2, v20\n\t" -- "fmla.2d v31, v2, v21\n\t" -- "fmla.2d v30, v3, v22\n\t" -- "fmla.2d v31, v3, v23\n\t" -+ "fmul v30.2d, v0.2d, v16.2d\n\t" -+ "fmul v31.2d, v0.2d, v17.2d\n\t" -+ "fmla v30.2d, v1.2d, v18.2d\n\t" -+ "fmla v31.2d, v1.2d, v19.2d\n\t" -+ "fmla v30.2d, v2.2d, v20.2d\n\t" -+ "fmla v31.2d, v2.2d, v21.2d\n\t" -+ "fmla v30.2d, v3.2d, v22.2d\n\t" -+ "fmla v31.2d, v3.2d, v23.2d\n\t" - -- "st1.2d {v30, v31}, [x4]\n\t" -+ "st1 {v30.2d, v31.2d}, [x4]\n\t" - - : [leftMatrix]"+r"(leftMatrix), [rightMatrix]"+r"(rightMatrix) - : diff --git a/webkitgtk-2.4.10-arm64-gcc.patch b/webkitgtk-2.4.10-arm64-gcc.patch deleted file mode 100644 index bad1e64..0000000 --- a/webkitgtk-2.4.10-arm64-gcc.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff -up webkitgtk-2.4.10/Source/WTF/wtf/Atomics.h.arm64_gcc webkitgtk-2.4.10/Source/WTF/wtf/Atomics.h ---- webkitgtk-2.4.10/Source/WTF/wtf/Atomics.h.arm64_gcc 2016-04-05 13:17:49.467473861 +0200 -+++ webkitgtk-2.4.10/Source/WTF/wtf/Atomics.h 2016-04-05 13:18:00.812429048 +0200 -@@ -113,6 +113,20 @@ inline bool weakCompareAndSwap(volatile - : "r"(expected), "r"(newValue) - : "memory"); - result = !result; -+#elif CPU(ARM64) && COMPILER(GCC) -+ unsigned tmp; -+ unsigned result; -+ asm volatile( -+ "mov %w1, #1\n\t" -+ "ldxr %w2, [%0]\n\t" -+ "cmp %w3, %w2\n\t" -+ "b.ne 0f\n\t" -+ "stxr %w1, %w4, [%0]\n\t" -+ "0:" -+ : "+r"(location), "=&r"(result), "=&r"(tmp) -+ : "r"(expected), "r"(newValue) -+ : "memory"); -+ result = !result; - #elif CPU(ARM64) - unsigned tmp; - unsigned result; -@@ -153,6 +167,20 @@ inline bool weakCompareAndSwap(void*vola - : "memory" - ); - return result; -+#elif CPU(ARM64) && COMPILER(GCC) -+ bool result; -+ void* tmp; -+ asm volatile( -+ "mov %w1, #1\n\t" -+ "ldxr %x2, [%0]\n\t" -+ "cmp %x3, %x2\n\t" -+ "b.ne 0f\n\t" -+ "stxr %w1, %x4, [%0]\n\t" -+ "0:" -+ : "+r"(location), "=&r"(result), "=&r"(tmp) -+ : "r"(expected), "r"(newValue) -+ : "memory"); -+ return !result; - #elif CPU(ARM64) - bool result; - void* tmp; diff --git a/webkitgtk-2.4.10-qualified-name.patch b/webkitgtk-2.4.10-qualified-name.patch deleted file mode 100644 index 6bd2dd3..0000000 --- a/webkitgtk-2.4.10-qualified-name.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up webkitgtk-2.4.10/Source/WebCore/dom/Element.cpp.qualified-name webkitgtk-2.4.10/Source/WebCore/dom/Element.cpp ---- webkitgtk-2.4.10/Source/WebCore/dom/Element.cpp.qualified-name 2016-04-05 09:58:17.928258276 +0200 -+++ webkitgtk-2.4.10/Source/WebCore/dom/Element.cpp 2016-04-05 09:58:23.240229758 +0200 -@@ -1056,7 +1056,7 @@ inline void Element::setAttributeInterna - const Attribute& attribute = attributeAt(index); - AtomicString oldValue = attribute.value(); - bool valueChanged = newValue != oldValue; -- const QualifiedName& attributeName = (!inSynchronizationOfLazyAttribute || valueChanged) ? attribute.name() : name; -+ QualifiedName attributeName = (!inSynchronizationOfLazyAttribute || valueChanged) ? attribute.name() : name; - - if (!inSynchronizationOfLazyAttribute) - willModifyAttribute(attributeName, oldValue, newValue); diff --git a/webkitgtk3.spec b/webkitgtk3.spec index d831c80..9dc7eb4 100644 --- a/webkitgtk3.spec +++ b/webkitgtk3.spec @@ -9,8 +9,8 @@ cp -p %1 %{buildroot}%{_pkgdocdir}/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk3 -Version: 2.4.10 -Release: 3%{?dist} +Version: 2.4.11 +Release: 1%{?dist} Summary: GTK+ Web content engine library Group: Development/Libraries @@ -22,12 +22,6 @@ Source0: http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz Patch0: webkit-1.1.14-nspluginwrapper.patch # https://bugs.webkit.org/show_bug.cgi?id=142074 Patch1: webkitgtk-2.4.8-user-agent.patch -# http://trac.webkit.org/changeset/165044 -Patch2: webkitgtk-2.4.10-qualified-name.patch -# http://trac.webkit.org/changeset/166234 -Patch3: webkitgtk-2.4.10-arm64-gcc.patch -# http://trac.webkit.org/changeset/166233 -Patch4: webkitgtk-2.4.10-arm64-asm.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -94,9 +88,6 @@ This package contains developer documentation for %{name}. %setup -qn "webkitgtk-%{version}" %patch0 -p1 -b .nspluginwrapper %patch1 -p1 -b .user_agent -%patch2 -p1 -b .qualified-name -%patch3 -p1 -b .arm64-gcc.patch -%patch4 -p1 -b .arm64-asm.patch %build # Use linker flags to reduce memory consumption @@ -109,7 +100,7 @@ This package contains developer documentation for %{name}. %ifarch ppc # Use linker flag -relax to get WebKit2 build under ppc(32) with JIT disabled -%global optflags %{optflags} -Wl,-relax -latomic +%global optflags %{optflags} -Wl,-relax %endif %ifarch s390 s390x ppc %{power64} aarch64 @@ -204,6 +195,9 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete %{_datadir}/gtk-doc/html/webkitdomgtk %changelog +* Mon Apr 11 2016 Tomas Popela - 2.4.11-1 +- Update to 2.4.11 + * Tue Apr 05 2016 Tomas Popela - 2.4.10-3 - Fix the compilation on aarch64