From 4fecf60d86f38b928beaae9d2e6a78a6d0533b8c Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 1 Mar 2017 15:50:11 +0100 Subject: [PATCH 01/75] Update to 2.15.91 --- .gitignore | 1 + ...s-when-showing-Google-search-results.patch | 589 ------------------ sources | 2 +- webkitgtk4.spec | 11 +- 4 files changed, 9 insertions(+), 594 deletions(-) delete mode 100644 0001-GTK-Hangs-when-showing-Google-search-results.patch diff --git a/.gitignore b/.gitignore index 4c0c9bd..85b599f 100644 --- a/.gitignore +++ b/.gitignore @@ -51,3 +51,4 @@ /webkitgtk-2.15.3.tar.xz /webkitgtk-2.15.4.tar.xz /webkitgtk-2.15.90.tar.xz +/webkitgtk-2.15.91.tar.xz diff --git a/0001-GTK-Hangs-when-showing-Google-search-results.patch b/0001-GTK-Hangs-when-showing-Google-search-results.patch deleted file mode 100644 index 6f9195a..0000000 --- a/0001-GTK-Hangs-when-showing-Google-search-results.patch +++ /dev/null @@ -1,589 +0,0 @@ -From 7e013c8c5ff959cd71a939a4795ef7dfc18a51f1 Mon Sep 17 00:00:00 2001 -From: Carlos Garcia Campos -Date: Fri, 24 Feb 2017 13:03:14 +0100 -Subject: [PATCH] [GTK] Hangs when showing Google search results - -https://bugs.webkit.org/show_bug.cgi?id=168699 - -Reviewed by NOBODY (OOPS!). - -Connection::sendOutgoingMessage() can poll forever if sendmsg fails with EAGAIN or EWOULDBLOCK. For example if -socket read buffers are full, poll will be blocked until we read the pending data, but we can't read because -the thread is blocked in the poll. In case of EAGAIN/EWOULDBLOCK we should poll using the run loop, to allow -reads to happen in thread while we wait for the socket to be writable again. In the GTK+ port we use -GSocketMonitor to poll socket file descriptor without blocking, using the run loop. This patch renames the -socket monitor as readSocketMonitor and adds another one for polling output. When sendmsg fails with -EAGAIN/EWOULDBLOCK, the pending message is saved and the write monitor starts polling. Once the socket is -writable again we send the pending message. Helper class MessageInfo and a new one UnixMessage have been moved -to its own header file to be able to use std::unique_ptr member to save the pending message. - -* Platform/IPC/Connection.cpp: Include UnixMessage.h as required by std::unique_ptr. -* Platform/IPC/Connection.h: Add write socket monitor and also keep the GSocket as a member to reuse it. -* Platform/IPC/glib/GSocketMonitor.cpp: Use Function instead of std::function. -(IPC::GSocketMonitor::start): -* Platform/IPC/glib/GSocketMonitor.h: -* Platform/IPC/unix/ConnectionUnix.cpp: -(IPC::Connection::platformInitialize): Initialize the GSocket here since we rely on it to take the ownership of -the descriptor. We were leaking it if the connection was invalidated without being opened. -(IPC::Connection::platformInvalidate): Destroy the GSocket even when not connected. Also stop the write monitor. -(IPC::Connection::processMessage): -(IPC::Connection::open): -(IPC::Connection::platformCanSendOutgoingMessages): Return false if we have a pending message to ensure -Connection doesn't try to send more messages until the pending message is dispatched. We don't need to check -m_isConnected because the caller already checks that. -(IPC::Connection::sendOutgoingMessage): Split it in two. This creates and prepares a UnixMessage and then calls -sendOutputMessage() to do the rest. -(IPC::Connection::sendOutputMessage): Send the message, or save it if sendmsg fails with EAGAIN or EWOULDBLOCK -to be sent later when the socket is writable. -* Platform/IPC/unix/UnixMessage.h: Added. -(IPC::MessageInfo::MessageInfo): -(IPC::MessageInfo::setMessageBodyIsOutOfLine): -(IPC::MessageInfo::isMessageBodyIsOutOfLine): -(IPC::MessageInfo::bodySize): -(IPC::MessageInfo::attachmentCount): -(IPC::UnixMessage::UnixMessage): -(IPC::UnixMessage::~UnixMessage): -(IPC::UnixMessage::attachments): -(IPC::UnixMessage::messageInfo): -(IPC::UnixMessage::body): -(IPC::UnixMessage::bodySize): -(IPC::UnixMessage::appendAttachment): -* PlatformGTK.cmake: ---- - Source/WebKit2/Platform/IPC/Connection.cpp | 4 + - Source/WebKit2/Platform/IPC/Connection.h | 7 +- - .../WebKit2/Platform/IPC/glib/GSocketMonitor.cpp | 2 +- - Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h | 4 +- - .../WebKit2/Platform/IPC/unix/ConnectionUnix.cpp | 140 ++++++++++----------- - Source/WebKit2/Platform/IPC/unix/UnixMessage.h | 113 +++++++++++++++++ - Source/WebKit2/PlatformGTK.cmake | 1 + - 7 files changed, 194 insertions(+), 77 deletions(-) - create mode 100644 Source/WebKit2/Platform/IPC/unix/UnixMessage.h - -diff --git a/Source/WebKit2/Platform/IPC/Connection.cpp b/Source/WebKit2/Platform/IPC/Connection.cpp -index daa6510..baf5306 100644 ---- a/Source/WebKit2/Platform/IPC/Connection.cpp -+++ b/Source/WebKit2/Platform/IPC/Connection.cpp -@@ -39,6 +39,10 @@ - #include "MachMessage.h" - #endif - -+#if USE(UNIX_DOMAIN_SOCKETS) -+#include "UnixMessage.h" -+#endif -+ - namespace IPC { - - struct Connection::ReplyHandler { -diff --git a/Source/WebKit2/Platform/IPC/Connection.h b/Source/WebKit2/Platform/IPC/Connection.h -index 87a3d91..a5a8ad7 100644 ---- a/Source/WebKit2/Platform/IPC/Connection.h -+++ b/Source/WebKit2/Platform/IPC/Connection.h -@@ -79,6 +79,7 @@ enum class WaitForOption { - while (0) - - class MachMessage; -+class UnixMessage; - - class Connection : public ThreadSafeRefCounted { - public: -@@ -308,12 +309,16 @@ private: - // Called on the connection queue. - void readyReadHandler(); - bool processMessage(); -+ bool sendOutputMessage(UnixMessage&); - - Vector m_readBuffer; - Vector m_fileDescriptors; - int m_socketDescriptor; -+ std::unique_ptr m_pendingOutputMessage; - #if PLATFORM(GTK) -- GSocketMonitor m_socketMonitor; -+ GRefPtr m_socket; -+ GSocketMonitor m_readSocketMonitor; -+ GSocketMonitor m_writeSocketMonitor; - #endif - #elif OS(DARWIN) - // Called on the connection queue. -diff --git a/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.cpp b/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.cpp -index 0faf266..14329b9 100644 ---- a/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.cpp -+++ b/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.cpp -@@ -42,7 +42,7 @@ gboolean GSocketMonitor::socketSourceCallback(GSocket*, GIOCondition condition, - return monitor->m_callback(condition); - } - --void GSocketMonitor::start(GSocket* socket, GIOCondition condition, RunLoop& runLoop, std::function&& callback) -+void GSocketMonitor::start(GSocket* socket, GIOCondition condition, RunLoop& runLoop, Function&& callback) - { - stop(); - -diff --git a/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h b/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h -index 11e528a..ff37bf9 100644 ---- a/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h -+++ b/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h -@@ -43,7 +43,7 @@ public: - GSocketMonitor() = default; - ~GSocketMonitor(); - -- void start(GSocket*, GIOCondition, RunLoop&, std::function&&); -+ void start(GSocket*, GIOCondition, RunLoop&, Function&&); - void stop(); - - private: -@@ -51,7 +51,7 @@ private: - - GRefPtr m_source; - GRefPtr m_cancellable; -- std::function m_callback; -+ Function m_callback; - }; - - } // namespace IPC -diff --git a/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp b/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp -index fcd1047..0e04238 100644 ---- a/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp -+++ b/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp -@@ -30,6 +30,7 @@ - - #include "DataReference.h" - #include "SharedMemory.h" -+#include "UnixMessage.h" - #include - #include - #include -@@ -60,60 +61,20 @@ namespace IPC { - static const size_t messageMaxSize = 4096; - static const size_t attachmentMaxAmount = 255; - --enum { -- MessageBodyIsOutOfLine = 1U << 31 --}; -- --class MessageInfo { --public: -- MessageInfo() { } -- -- MessageInfo(size_t bodySize, size_t initialAttachmentCount) -- : m_bodySize(bodySize) -- , m_attachmentCount(initialAttachmentCount) -- , m_isMessageBodyOutOfLine(false) -- { -- } -- -- void setMessageBodyIsOutOfLine() -- { -- ASSERT(!isMessageBodyIsOutOfLine()); -- -- m_isMessageBodyOutOfLine = true; -- m_attachmentCount++; -- } -- -- bool isMessageBodyIsOutOfLine() const { return m_isMessageBodyOutOfLine; } -- -- size_t bodySize() const { return m_bodySize; } -- -- size_t attachmentCount() const { return m_attachmentCount; } -- --private: -- size_t m_bodySize; -- size_t m_attachmentCount; -- bool m_isMessageBodyOutOfLine; --}; -- - class AttachmentInfo { - WTF_MAKE_FAST_ALLOCATED; - public: -- AttachmentInfo() -- : m_type(Attachment::Uninitialized) -- , m_size(0) -- , m_isNull(false) -- { -- } -+ AttachmentInfo() = default; - - void setType(Attachment::Type type) { m_type = type; } -- Attachment::Type getType() { return m_type; } -+ Attachment::Type type() const { return m_type; } - void setSize(size_t size) - { - ASSERT(m_type == Attachment::MappedMemoryType); - m_size = size; - } - -- size_t getSize() -+ size_t size() const - { - ASSERT(m_type == Attachment::MappedMemoryType); - return m_size; -@@ -121,25 +82,30 @@ public: - - // The attachment is not null unless explicitly set. - void setNull() { m_isNull = true; } -- bool isNull() { return m_isNull; } -+ bool isNull() const { return m_isNull; } - - private: -- Attachment::Type m_type; -- size_t m_size; -- bool m_isNull; -+ Attachment::Type m_type { Attachment::Uninitialized }; -+ size_t m_size { 0 }; -+ bool m_isNull { false }; - }; - - void Connection::platformInitialize(Identifier identifier) - { - m_socketDescriptor = identifier; -+#if PLATFORM(GTK) -+ m_socket = adoptGRef(g_socket_new_from_fd(m_socketDescriptor, nullptr)); -+#endif - m_readBuffer.reserveInitialCapacity(messageMaxSize); - m_fileDescriptors.reserveInitialCapacity(attachmentMaxAmount); - } - - void Connection::platformInvalidate() - { -- // In GTK+ platform the socket is closed by the work queue. --#if !PLATFORM(GTK) -+#if PLATFORM(GTK) -+ // In GTK+ platform the socket descriptor is owned by GSocket. -+ m_socket = nullptr; -+#else - if (m_socketDescriptor != -1) - closeWithRetry(m_socketDescriptor); - #endif -@@ -148,7 +114,8 @@ void Connection::platformInvalidate() - return; - - #if PLATFORM(GTK) -- m_socketMonitor.stop(); -+ m_readSocketMonitor.stop(); -+ m_writeSocketMonitor.stop(); - #endif - - m_socketDescriptor = -1; -@@ -165,7 +132,7 @@ bool Connection::processMessage() - memcpy(&messageInfo, messageData, sizeof(messageInfo)); - messageData += sizeof(messageInfo); - -- size_t messageLength = sizeof(MessageInfo) + messageInfo.attachmentCount() * sizeof(AttachmentInfo) + (messageInfo.isMessageBodyIsOutOfLine() ? 0 : messageInfo.bodySize()); -+ size_t messageLength = sizeof(MessageInfo) + messageInfo.attachmentCount() * sizeof(AttachmentInfo) + (messageInfo.isBodyOutOfLine() ? 0 : messageInfo.bodySize()); - if (m_readBuffer.size() < messageLength) - return false; - -@@ -179,7 +146,7 @@ bool Connection::processMessage() - messageData += sizeof(AttachmentInfo) * attachmentCount; - - for (size_t i = 0; i < attachmentCount; ++i) { -- switch (attachmentInfo[i].getType()) { -+ switch (attachmentInfo[i].type()) { - case Attachment::MappedMemoryType: - case Attachment::SocketType: - if (!attachmentInfo[i].isNull()) -@@ -191,7 +158,7 @@ bool Connection::processMessage() - } - } - -- if (messageInfo.isMessageBodyIsOutOfLine()) -+ if (messageInfo.isBodyOutOfLine()) - attachmentCount--; - } - -@@ -201,11 +168,11 @@ bool Connection::processMessage() - size_t fdIndex = 0; - for (size_t i = 0; i < attachmentCount; ++i) { - int fd = -1; -- switch (attachmentInfo[i].getType()) { -+ switch (attachmentInfo[i].type()) { - case Attachment::MappedMemoryType: - if (!attachmentInfo[i].isNull()) - fd = m_fileDescriptors[fdIndex++]; -- attachments[attachmentCount - i - 1] = Attachment(fd, attachmentInfo[i].getSize()); -+ attachments[attachmentCount - i - 1] = Attachment(fd, attachmentInfo[i].size()); - break; - case Attachment::SocketType: - if (!attachmentInfo[i].isNull()) -@@ -219,7 +186,7 @@ bool Connection::processMessage() - } - } - -- if (messageInfo.isMessageBodyIsOutOfLine()) { -+ if (messageInfo.isBodyOutOfLine()) { - ASSERT(messageInfo.bodySize()); - - if (attachmentInfo[attachmentCount].isNull()) { -@@ -228,7 +195,7 @@ bool Connection::processMessage() - } - - WebKit::SharedMemory::Handle handle; -- handle.adoptAttachment(IPC::Attachment(m_fileDescriptors[attachmentFileDescriptorCount - 1], attachmentInfo[attachmentCount].getSize())); -+ handle.adoptAttachment(IPC::Attachment(m_fileDescriptors[attachmentFileDescriptorCount - 1], attachmentInfo[attachmentCount].size())); - - oolMessageBody = WebKit::SharedMemory::map(handle, WebKit::SharedMemory::Protection::ReadOnly); - if (!oolMessageBody) { -@@ -237,10 +204,10 @@ bool Connection::processMessage() - } - } - -- ASSERT(attachments.size() == (messageInfo.isMessageBodyIsOutOfLine() ? messageInfo.attachmentCount() - 1 : messageInfo.attachmentCount())); -+ ASSERT(attachments.size() == (messageInfo.isBodyOutOfLine() ? messageInfo.attachmentCount() - 1 : messageInfo.attachmentCount())); - - uint8_t* messageBody = messageData; -- if (messageInfo.isMessageBodyIsOutOfLine()) -+ if (messageInfo.isBodyOutOfLine()) - messageBody = reinterpret_cast(oolMessageBody->data()); - - auto decoder = std::make_unique(messageBody, messageInfo.bodySize(), nullptr, WTFMove(attachments)); -@@ -365,8 +332,7 @@ bool Connection::open() - RefPtr protectedThis(this); - m_isConnected = true; - #if PLATFORM(GTK) -- GRefPtr socket = adoptGRef(g_socket_new_from_fd(m_socketDescriptor, nullptr)); -- m_socketMonitor.start(socket.get(), G_IO_IN, m_connectionQueue->runLoop(), [protectedThis] (GIOCondition condition) -> gboolean { -+ m_readSocketMonitor.start(m_socket.get(), G_IO_IN, m_connectionQueue->runLoop(), [protectedThis] (GIOCondition condition) -> gboolean { - if (condition & G_IO_HUP || condition & G_IO_ERR || condition & G_IO_NVAL) { - protectedThis->connectionDidClose(); - return G_SOURCE_REMOVE; -@@ -392,22 +358,21 @@ bool Connection::open() - - bool Connection::platformCanSendOutgoingMessages() const - { -- return m_isConnected; -+ return !m_pendingOutputMessage; - } - - bool Connection::sendOutgoingMessage(std::unique_ptr encoder) - { - COMPILE_ASSERT(sizeof(MessageInfo) + attachmentMaxAmount * sizeof(size_t) <= messageMaxSize, AttachmentsFitToMessageInline); - -- Vector attachments = encoder->releaseAttachments(); -- if (attachments.size() > (attachmentMaxAmount - 1)) { -+ UnixMessage outputMessage(encoder.get()); -+ if (outputMessage.attachments().size() > (attachmentMaxAmount - 1)) { - ASSERT_NOT_REACHED(); - return false; - } - -- MessageInfo messageInfo(encoder->bufferSize(), attachments.size()); -- size_t messageSizeWithBodyInline = sizeof(messageInfo) + (attachments.size() * sizeof(AttachmentInfo)) + encoder->bufferSize(); -- if (messageSizeWithBodyInline > messageMaxSize && encoder->bufferSize()) { -+ size_t messageSizeWithBodyInline = sizeof(MessageInfo) + (outputMessage.attachments().size() * sizeof(AttachmentInfo)) + outputMessage.bodySize(); -+ if (messageSizeWithBodyInline > messageMaxSize && outputMessage.bodySize()) { - RefPtr oolMessageBody = WebKit::SharedMemory::allocate(encoder->bufferSize()); - if (!oolMessageBody) - return false; -@@ -416,13 +381,21 @@ bool Connection::sendOutgoingMessage(std::unique_ptr encoder) - if (!oolMessageBody->createHandle(handle, WebKit::SharedMemory::Protection::ReadOnly)) - return false; - -- messageInfo.setMessageBodyIsOutOfLine(); -+ outputMessage.messageInfo().setBodyOutOfLine(); - -- memcpy(oolMessageBody->data(), encoder->buffer(), encoder->bufferSize()); -+ memcpy(oolMessageBody->data(), outputMessage.body(), outputMessage.bodySize()); - -- attachments.append(handle.releaseAttachment()); -+ outputMessage.appendAttachment(handle.releaseAttachment()); - } - -+ return sendOutputMessage(outputMessage); -+} -+ -+bool Connection::sendOutputMessage(UnixMessage& outputMessage) -+{ -+ ASSERT(!m_pendingOutputMessage); -+ -+ auto& messageInfo = outputMessage.messageInfo(); - struct msghdr message; - memset(&message, 0, sizeof(message)); - -@@ -438,6 +411,7 @@ bool Connection::sendOutgoingMessage(std::unique_ptr encoder) - std::unique_ptr attachmentInfo; - MallocPtr attachmentFDBuffer; - -+ auto& attachments = outputMessage.attachments(); - if (!attachments.isEmpty()) { - int* fdPtr = 0; - -@@ -488,9 +462,9 @@ bool Connection::sendOutgoingMessage(std::unique_ptr encoder) - ++iovLength; - } - -- if (!messageInfo.isMessageBodyIsOutOfLine() && encoder->bufferSize()) { -- iov[iovLength].iov_base = reinterpret_cast(encoder->buffer()); -- iov[iovLength].iov_len = encoder->bufferSize(); -+ if (!messageInfo.isBodyOutOfLine() && outputMessage.bodySize()) { -+ iov[iovLength].iov_base = reinterpret_cast(outputMessage.body()); -+ iov[iovLength].iov_len = outputMessage.bodySize(); - ++iovLength; - } - -@@ -500,6 +474,25 @@ bool Connection::sendOutgoingMessage(std::unique_ptr encoder) - if (errno == EINTR) - continue; - if (errno == EAGAIN || errno == EWOULDBLOCK) { -+#if PLATFORM(GTK) -+ m_pendingOutputMessage = std::make_unique(WTFMove(outputMessage)); -+ m_writeSocketMonitor.start(m_socket.get(), G_IO_OUT, m_connectionQueue->runLoop(), [this, protectedThis = makeRef(*this)] (GIOCondition condition) -> gboolean { -+ if (condition & G_IO_OUT) { -+ ASSERT(m_pendingOutputMessage); -+ // We can't stop the monitor from this lambda, because stop destroys the lambda. -+ m_connectionQueue->dispatch([this, protectedThis = makeRef(*this)] { -+ m_writeSocketMonitor.stop(); -+ auto message = WTFMove(m_pendingOutputMessage); -+ if (m_isConnected) { -+ sendOutputMessage(*message); -+ sendOutgoingMessages(); -+ } -+ }); -+ } -+ return G_SOURCE_REMOVE; -+ }); -+ return false; -+#else - struct pollfd pollfd; - - pollfd.fd = m_socketDescriptor; -@@ -507,6 +500,7 @@ bool Connection::sendOutgoingMessage(std::unique_ptr encoder) - pollfd.revents = 0; - poll(&pollfd, 1, -1); - continue; -+#endif - } - - if (m_isConnected) -diff --git a/Source/WebKit2/Platform/IPC/unix/UnixMessage.h b/Source/WebKit2/Platform/IPC/unix/UnixMessage.h -new file mode 100644 -index 0000000..e99a0a4 ---- /dev/null -+++ b/Source/WebKit2/Platform/IPC/unix/UnixMessage.h -@@ -0,0 +1,113 @@ -+/* -+ * Copyright (C) 2010 Apple Inc. All rights reserved. -+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) -+ * Copyright (C) 2011,2017 Igalia S.L. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' -+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS -+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -+ * THE POSSIBILITY OF SUCH DAMAGE. -+ */ -+ -+#pragma once -+ -+#include "Attachment.h" -+#include -+ -+namespace IPC { -+ -+class MessageInfo { -+public: -+ MessageInfo() = default; -+ -+ MessageInfo(size_t bodySize, size_t initialAttachmentCount) -+ : m_bodySize(bodySize) -+ , m_attachmentCount(initialAttachmentCount) -+ { -+ } -+ -+ void setBodyOutOfLine() -+ { -+ ASSERT(!isBodyOutOfLine()); -+ -+ m_isBodyOutOfLine = true; -+ m_attachmentCount++; -+ } -+ -+ bool isBodyOutOfLine() const { return m_isBodyOutOfLine; } -+ size_t bodySize() const { return m_bodySize; } -+ size_t attachmentCount() const { return m_attachmentCount; } -+ -+private: -+ size_t m_bodySize { 0 }; -+ size_t m_attachmentCount { 0 }; -+ bool m_isBodyOutOfLine { false }; -+}; -+ -+class UnixMessage { -+ WTF_MAKE_FAST_ALLOCATED; -+public: -+ UnixMessage(Encoder* encoder) -+ : m_attachments(encoder->releaseAttachments()) -+ , m_messageInfo(encoder->bufferSize(), m_attachments.size()) -+ , m_body(encoder->buffer()) -+ { -+ } -+ -+ UnixMessage(UnixMessage&& other) -+ { -+ m_attachments = WTFMove(other.m_attachments); -+ m_messageInfo = WTFMove(other.m_messageInfo); -+ if (other.m_bodyOwned) { -+ std::swap(m_body, other.m_body); -+ std::swap(m_bodyOwned, other.m_bodyOwned); -+ } else if (!m_messageInfo.isBodyOutOfLine()) { -+ m_body = static_cast(fastMalloc(m_messageInfo.bodySize())); -+ memcpy(m_body, other.m_body, m_messageInfo.bodySize()); -+ m_bodyOwned = true; -+ other.m_body = nullptr; -+ other.m_bodyOwned = false; -+ } -+ } -+ -+ ~UnixMessage() -+ { -+ if (m_bodyOwned) -+ fastFree(m_body); -+ } -+ -+ const Vector& attachments() const { return m_attachments; } -+ MessageInfo& messageInfo() { return m_messageInfo; } -+ -+ uint8_t* body() const { return m_body; } -+ size_t bodySize() const { return m_messageInfo.bodySize(); } -+ -+ void appendAttachment(Attachment&& attachment) -+ { -+ m_attachments.append(WTFMove(attachment)); -+ } -+ -+private: -+ Vector m_attachments; -+ MessageInfo m_messageInfo; -+ uint8_t* m_body { nullptr }; -+ bool m_bodyOwned { false }; -+}; -+ -+} // namespace IPC -diff --git a/Source/WebKit2/PlatformGTK.cmake b/Source/WebKit2/PlatformGTK.cmake -index ebede75..2c6bc5f 100644 ---- a/Source/WebKit2/PlatformGTK.cmake -+++ b/Source/WebKit2/PlatformGTK.cmake -@@ -850,6 +850,7 @@ list(APPEND WebKit2_INCLUDE_DIRECTORIES - "${WEBKIT2_DIR}/NetworkProcess/soup" - "${WEBKIT2_DIR}/NetworkProcess/unix" - "${WEBKIT2_DIR}/Platform/IPC/glib" -+ "${WEBKIT2_DIR}/Platform/IPC/unix" - "${WEBKIT2_DIR}/Shared/API/c/gtk" - "${WEBKIT2_DIR}/Shared/Plugins/unix" - "${WEBKIT2_DIR}/Shared/glib" --- -2.11.1 - diff --git a/sources b/sources index 2ff2d3b..f51f27f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.15.90.tar.xz) = f06bbde9ed06fb7ba426629e130d2a1a9f9d137a864d5f6874f1a0c14dde043a51ffe9ea31f3be5252f852621ddcef5385f75f8624cdc2e1f357cd14c839a4cc +SHA512 (webkitgtk-2.15.91.tar.xz) = 7071f305bb83cdb70559a28e2eb7b7207c6051278ee0dbe6c7a2448b3617294a700c2e536fdb125b2d66e4c4922e6a2da907f23ea0652df77d8d4402d9bd370a diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 3cc1819..95e5ec2 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.15.90 -Release: 2%{?dist} +Version: 2.15.91 +Release: 1%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -21,8 +21,6 @@ Patch0: webkitgtk-2.14.1-user-agent-branding.patch Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=167643 Patch2: gcc7.patch -# https://bugs.webkit.org/show_bug.cgi?id=168699 -Patch3: 0001-GTK-Hangs-when-showing-Google-search-results.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -98,6 +96,7 @@ This package contains WebKitGTK+ for GTK+ 3. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-jsc%{?_isa} = %{version}-%{release} Requires: %{name}-jsc-devel%{?_isa} = %{version}-%{release} %description devel @@ -129,6 +128,7 @@ files for developing applications that use JavaScript engine from %{name}. %package plugin-process-gtk2 Summary: GTK+ 2 based NPAPI plugins support for %{name} Obsoletes: %{name} < 2.12.0-3 +Requires: %{name}-jsc%{?_isa} = %{version}-%{release} %description plugin-process-gtk2 Support for the GTK+ 2 based NPAPI plugins (such as Adobe Flash) for %{name}. @@ -257,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Wed Mar 01 2017 Tomas Popela - 2.15.91-1 +- Update to 2.15.91 + * Fri Feb 24 2017 Bastien Nocera - 2.15.90-2 - Add patch to fix hangs when showing the Google search page From 0627c6c7ad1520793a15b80d7645fd875365c365 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 1 Mar 2017 15:50:11 +0100 Subject: [PATCH 02/75] Update to 2.15.91 --- .gitignore | 1 + ...s-when-showing-Google-search-results.patch | 589 ------------------ sources | 2 +- webkitgtk4.spec | 11 +- 4 files changed, 9 insertions(+), 594 deletions(-) delete mode 100644 0001-GTK-Hangs-when-showing-Google-search-results.patch diff --git a/.gitignore b/.gitignore index 4c0c9bd..85b599f 100644 --- a/.gitignore +++ b/.gitignore @@ -51,3 +51,4 @@ /webkitgtk-2.15.3.tar.xz /webkitgtk-2.15.4.tar.xz /webkitgtk-2.15.90.tar.xz +/webkitgtk-2.15.91.tar.xz diff --git a/0001-GTK-Hangs-when-showing-Google-search-results.patch b/0001-GTK-Hangs-when-showing-Google-search-results.patch deleted file mode 100644 index 6f9195a..0000000 --- a/0001-GTK-Hangs-when-showing-Google-search-results.patch +++ /dev/null @@ -1,589 +0,0 @@ -From 7e013c8c5ff959cd71a939a4795ef7dfc18a51f1 Mon Sep 17 00:00:00 2001 -From: Carlos Garcia Campos -Date: Fri, 24 Feb 2017 13:03:14 +0100 -Subject: [PATCH] [GTK] Hangs when showing Google search results - -https://bugs.webkit.org/show_bug.cgi?id=168699 - -Reviewed by NOBODY (OOPS!). - -Connection::sendOutgoingMessage() can poll forever if sendmsg fails with EAGAIN or EWOULDBLOCK. For example if -socket read buffers are full, poll will be blocked until we read the pending data, but we can't read because -the thread is blocked in the poll. In case of EAGAIN/EWOULDBLOCK we should poll using the run loop, to allow -reads to happen in thread while we wait for the socket to be writable again. In the GTK+ port we use -GSocketMonitor to poll socket file descriptor without blocking, using the run loop. This patch renames the -socket monitor as readSocketMonitor and adds another one for polling output. When sendmsg fails with -EAGAIN/EWOULDBLOCK, the pending message is saved and the write monitor starts polling. Once the socket is -writable again we send the pending message. Helper class MessageInfo and a new one UnixMessage have been moved -to its own header file to be able to use std::unique_ptr member to save the pending message. - -* Platform/IPC/Connection.cpp: Include UnixMessage.h as required by std::unique_ptr. -* Platform/IPC/Connection.h: Add write socket monitor and also keep the GSocket as a member to reuse it. -* Platform/IPC/glib/GSocketMonitor.cpp: Use Function instead of std::function. -(IPC::GSocketMonitor::start): -* Platform/IPC/glib/GSocketMonitor.h: -* Platform/IPC/unix/ConnectionUnix.cpp: -(IPC::Connection::platformInitialize): Initialize the GSocket here since we rely on it to take the ownership of -the descriptor. We were leaking it if the connection was invalidated without being opened. -(IPC::Connection::platformInvalidate): Destroy the GSocket even when not connected. Also stop the write monitor. -(IPC::Connection::processMessage): -(IPC::Connection::open): -(IPC::Connection::platformCanSendOutgoingMessages): Return false if we have a pending message to ensure -Connection doesn't try to send more messages until the pending message is dispatched. We don't need to check -m_isConnected because the caller already checks that. -(IPC::Connection::sendOutgoingMessage): Split it in two. This creates and prepares a UnixMessage and then calls -sendOutputMessage() to do the rest. -(IPC::Connection::sendOutputMessage): Send the message, or save it if sendmsg fails with EAGAIN or EWOULDBLOCK -to be sent later when the socket is writable. -* Platform/IPC/unix/UnixMessage.h: Added. -(IPC::MessageInfo::MessageInfo): -(IPC::MessageInfo::setMessageBodyIsOutOfLine): -(IPC::MessageInfo::isMessageBodyIsOutOfLine): -(IPC::MessageInfo::bodySize): -(IPC::MessageInfo::attachmentCount): -(IPC::UnixMessage::UnixMessage): -(IPC::UnixMessage::~UnixMessage): -(IPC::UnixMessage::attachments): -(IPC::UnixMessage::messageInfo): -(IPC::UnixMessage::body): -(IPC::UnixMessage::bodySize): -(IPC::UnixMessage::appendAttachment): -* PlatformGTK.cmake: ---- - Source/WebKit2/Platform/IPC/Connection.cpp | 4 + - Source/WebKit2/Platform/IPC/Connection.h | 7 +- - .../WebKit2/Platform/IPC/glib/GSocketMonitor.cpp | 2 +- - Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h | 4 +- - .../WebKit2/Platform/IPC/unix/ConnectionUnix.cpp | 140 ++++++++++----------- - Source/WebKit2/Platform/IPC/unix/UnixMessage.h | 113 +++++++++++++++++ - Source/WebKit2/PlatformGTK.cmake | 1 + - 7 files changed, 194 insertions(+), 77 deletions(-) - create mode 100644 Source/WebKit2/Platform/IPC/unix/UnixMessage.h - -diff --git a/Source/WebKit2/Platform/IPC/Connection.cpp b/Source/WebKit2/Platform/IPC/Connection.cpp -index daa6510..baf5306 100644 ---- a/Source/WebKit2/Platform/IPC/Connection.cpp -+++ b/Source/WebKit2/Platform/IPC/Connection.cpp -@@ -39,6 +39,10 @@ - #include "MachMessage.h" - #endif - -+#if USE(UNIX_DOMAIN_SOCKETS) -+#include "UnixMessage.h" -+#endif -+ - namespace IPC { - - struct Connection::ReplyHandler { -diff --git a/Source/WebKit2/Platform/IPC/Connection.h b/Source/WebKit2/Platform/IPC/Connection.h -index 87a3d91..a5a8ad7 100644 ---- a/Source/WebKit2/Platform/IPC/Connection.h -+++ b/Source/WebKit2/Platform/IPC/Connection.h -@@ -79,6 +79,7 @@ enum class WaitForOption { - while (0) - - class MachMessage; -+class UnixMessage; - - class Connection : public ThreadSafeRefCounted { - public: -@@ -308,12 +309,16 @@ private: - // Called on the connection queue. - void readyReadHandler(); - bool processMessage(); -+ bool sendOutputMessage(UnixMessage&); - - Vector m_readBuffer; - Vector m_fileDescriptors; - int m_socketDescriptor; -+ std::unique_ptr m_pendingOutputMessage; - #if PLATFORM(GTK) -- GSocketMonitor m_socketMonitor; -+ GRefPtr m_socket; -+ GSocketMonitor m_readSocketMonitor; -+ GSocketMonitor m_writeSocketMonitor; - #endif - #elif OS(DARWIN) - // Called on the connection queue. -diff --git a/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.cpp b/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.cpp -index 0faf266..14329b9 100644 ---- a/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.cpp -+++ b/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.cpp -@@ -42,7 +42,7 @@ gboolean GSocketMonitor::socketSourceCallback(GSocket*, GIOCondition condition, - return monitor->m_callback(condition); - } - --void GSocketMonitor::start(GSocket* socket, GIOCondition condition, RunLoop& runLoop, std::function&& callback) -+void GSocketMonitor::start(GSocket* socket, GIOCondition condition, RunLoop& runLoop, Function&& callback) - { - stop(); - -diff --git a/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h b/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h -index 11e528a..ff37bf9 100644 ---- a/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h -+++ b/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h -@@ -43,7 +43,7 @@ public: - GSocketMonitor() = default; - ~GSocketMonitor(); - -- void start(GSocket*, GIOCondition, RunLoop&, std::function&&); -+ void start(GSocket*, GIOCondition, RunLoop&, Function&&); - void stop(); - - private: -@@ -51,7 +51,7 @@ private: - - GRefPtr m_source; - GRefPtr m_cancellable; -- std::function m_callback; -+ Function m_callback; - }; - - } // namespace IPC -diff --git a/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp b/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp -index fcd1047..0e04238 100644 ---- a/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp -+++ b/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp -@@ -30,6 +30,7 @@ - - #include "DataReference.h" - #include "SharedMemory.h" -+#include "UnixMessage.h" - #include - #include - #include -@@ -60,60 +61,20 @@ namespace IPC { - static const size_t messageMaxSize = 4096; - static const size_t attachmentMaxAmount = 255; - --enum { -- MessageBodyIsOutOfLine = 1U << 31 --}; -- --class MessageInfo { --public: -- MessageInfo() { } -- -- MessageInfo(size_t bodySize, size_t initialAttachmentCount) -- : m_bodySize(bodySize) -- , m_attachmentCount(initialAttachmentCount) -- , m_isMessageBodyOutOfLine(false) -- { -- } -- -- void setMessageBodyIsOutOfLine() -- { -- ASSERT(!isMessageBodyIsOutOfLine()); -- -- m_isMessageBodyOutOfLine = true; -- m_attachmentCount++; -- } -- -- bool isMessageBodyIsOutOfLine() const { return m_isMessageBodyOutOfLine; } -- -- size_t bodySize() const { return m_bodySize; } -- -- size_t attachmentCount() const { return m_attachmentCount; } -- --private: -- size_t m_bodySize; -- size_t m_attachmentCount; -- bool m_isMessageBodyOutOfLine; --}; -- - class AttachmentInfo { - WTF_MAKE_FAST_ALLOCATED; - public: -- AttachmentInfo() -- : m_type(Attachment::Uninitialized) -- , m_size(0) -- , m_isNull(false) -- { -- } -+ AttachmentInfo() = default; - - void setType(Attachment::Type type) { m_type = type; } -- Attachment::Type getType() { return m_type; } -+ Attachment::Type type() const { return m_type; } - void setSize(size_t size) - { - ASSERT(m_type == Attachment::MappedMemoryType); - m_size = size; - } - -- size_t getSize() -+ size_t size() const - { - ASSERT(m_type == Attachment::MappedMemoryType); - return m_size; -@@ -121,25 +82,30 @@ public: - - // The attachment is not null unless explicitly set. - void setNull() { m_isNull = true; } -- bool isNull() { return m_isNull; } -+ bool isNull() const { return m_isNull; } - - private: -- Attachment::Type m_type; -- size_t m_size; -- bool m_isNull; -+ Attachment::Type m_type { Attachment::Uninitialized }; -+ size_t m_size { 0 }; -+ bool m_isNull { false }; - }; - - void Connection::platformInitialize(Identifier identifier) - { - m_socketDescriptor = identifier; -+#if PLATFORM(GTK) -+ m_socket = adoptGRef(g_socket_new_from_fd(m_socketDescriptor, nullptr)); -+#endif - m_readBuffer.reserveInitialCapacity(messageMaxSize); - m_fileDescriptors.reserveInitialCapacity(attachmentMaxAmount); - } - - void Connection::platformInvalidate() - { -- // In GTK+ platform the socket is closed by the work queue. --#if !PLATFORM(GTK) -+#if PLATFORM(GTK) -+ // In GTK+ platform the socket descriptor is owned by GSocket. -+ m_socket = nullptr; -+#else - if (m_socketDescriptor != -1) - closeWithRetry(m_socketDescriptor); - #endif -@@ -148,7 +114,8 @@ void Connection::platformInvalidate() - return; - - #if PLATFORM(GTK) -- m_socketMonitor.stop(); -+ m_readSocketMonitor.stop(); -+ m_writeSocketMonitor.stop(); - #endif - - m_socketDescriptor = -1; -@@ -165,7 +132,7 @@ bool Connection::processMessage() - memcpy(&messageInfo, messageData, sizeof(messageInfo)); - messageData += sizeof(messageInfo); - -- size_t messageLength = sizeof(MessageInfo) + messageInfo.attachmentCount() * sizeof(AttachmentInfo) + (messageInfo.isMessageBodyIsOutOfLine() ? 0 : messageInfo.bodySize()); -+ size_t messageLength = sizeof(MessageInfo) + messageInfo.attachmentCount() * sizeof(AttachmentInfo) + (messageInfo.isBodyOutOfLine() ? 0 : messageInfo.bodySize()); - if (m_readBuffer.size() < messageLength) - return false; - -@@ -179,7 +146,7 @@ bool Connection::processMessage() - messageData += sizeof(AttachmentInfo) * attachmentCount; - - for (size_t i = 0; i < attachmentCount; ++i) { -- switch (attachmentInfo[i].getType()) { -+ switch (attachmentInfo[i].type()) { - case Attachment::MappedMemoryType: - case Attachment::SocketType: - if (!attachmentInfo[i].isNull()) -@@ -191,7 +158,7 @@ bool Connection::processMessage() - } - } - -- if (messageInfo.isMessageBodyIsOutOfLine()) -+ if (messageInfo.isBodyOutOfLine()) - attachmentCount--; - } - -@@ -201,11 +168,11 @@ bool Connection::processMessage() - size_t fdIndex = 0; - for (size_t i = 0; i < attachmentCount; ++i) { - int fd = -1; -- switch (attachmentInfo[i].getType()) { -+ switch (attachmentInfo[i].type()) { - case Attachment::MappedMemoryType: - if (!attachmentInfo[i].isNull()) - fd = m_fileDescriptors[fdIndex++]; -- attachments[attachmentCount - i - 1] = Attachment(fd, attachmentInfo[i].getSize()); -+ attachments[attachmentCount - i - 1] = Attachment(fd, attachmentInfo[i].size()); - break; - case Attachment::SocketType: - if (!attachmentInfo[i].isNull()) -@@ -219,7 +186,7 @@ bool Connection::processMessage() - } - } - -- if (messageInfo.isMessageBodyIsOutOfLine()) { -+ if (messageInfo.isBodyOutOfLine()) { - ASSERT(messageInfo.bodySize()); - - if (attachmentInfo[attachmentCount].isNull()) { -@@ -228,7 +195,7 @@ bool Connection::processMessage() - } - - WebKit::SharedMemory::Handle handle; -- handle.adoptAttachment(IPC::Attachment(m_fileDescriptors[attachmentFileDescriptorCount - 1], attachmentInfo[attachmentCount].getSize())); -+ handle.adoptAttachment(IPC::Attachment(m_fileDescriptors[attachmentFileDescriptorCount - 1], attachmentInfo[attachmentCount].size())); - - oolMessageBody = WebKit::SharedMemory::map(handle, WebKit::SharedMemory::Protection::ReadOnly); - if (!oolMessageBody) { -@@ -237,10 +204,10 @@ bool Connection::processMessage() - } - } - -- ASSERT(attachments.size() == (messageInfo.isMessageBodyIsOutOfLine() ? messageInfo.attachmentCount() - 1 : messageInfo.attachmentCount())); -+ ASSERT(attachments.size() == (messageInfo.isBodyOutOfLine() ? messageInfo.attachmentCount() - 1 : messageInfo.attachmentCount())); - - uint8_t* messageBody = messageData; -- if (messageInfo.isMessageBodyIsOutOfLine()) -+ if (messageInfo.isBodyOutOfLine()) - messageBody = reinterpret_cast(oolMessageBody->data()); - - auto decoder = std::make_unique(messageBody, messageInfo.bodySize(), nullptr, WTFMove(attachments)); -@@ -365,8 +332,7 @@ bool Connection::open() - RefPtr protectedThis(this); - m_isConnected = true; - #if PLATFORM(GTK) -- GRefPtr socket = adoptGRef(g_socket_new_from_fd(m_socketDescriptor, nullptr)); -- m_socketMonitor.start(socket.get(), G_IO_IN, m_connectionQueue->runLoop(), [protectedThis] (GIOCondition condition) -> gboolean { -+ m_readSocketMonitor.start(m_socket.get(), G_IO_IN, m_connectionQueue->runLoop(), [protectedThis] (GIOCondition condition) -> gboolean { - if (condition & G_IO_HUP || condition & G_IO_ERR || condition & G_IO_NVAL) { - protectedThis->connectionDidClose(); - return G_SOURCE_REMOVE; -@@ -392,22 +358,21 @@ bool Connection::open() - - bool Connection::platformCanSendOutgoingMessages() const - { -- return m_isConnected; -+ return !m_pendingOutputMessage; - } - - bool Connection::sendOutgoingMessage(std::unique_ptr encoder) - { - COMPILE_ASSERT(sizeof(MessageInfo) + attachmentMaxAmount * sizeof(size_t) <= messageMaxSize, AttachmentsFitToMessageInline); - -- Vector attachments = encoder->releaseAttachments(); -- if (attachments.size() > (attachmentMaxAmount - 1)) { -+ UnixMessage outputMessage(encoder.get()); -+ if (outputMessage.attachments().size() > (attachmentMaxAmount - 1)) { - ASSERT_NOT_REACHED(); - return false; - } - -- MessageInfo messageInfo(encoder->bufferSize(), attachments.size()); -- size_t messageSizeWithBodyInline = sizeof(messageInfo) + (attachments.size() * sizeof(AttachmentInfo)) + encoder->bufferSize(); -- if (messageSizeWithBodyInline > messageMaxSize && encoder->bufferSize()) { -+ size_t messageSizeWithBodyInline = sizeof(MessageInfo) + (outputMessage.attachments().size() * sizeof(AttachmentInfo)) + outputMessage.bodySize(); -+ if (messageSizeWithBodyInline > messageMaxSize && outputMessage.bodySize()) { - RefPtr oolMessageBody = WebKit::SharedMemory::allocate(encoder->bufferSize()); - if (!oolMessageBody) - return false; -@@ -416,13 +381,21 @@ bool Connection::sendOutgoingMessage(std::unique_ptr encoder) - if (!oolMessageBody->createHandle(handle, WebKit::SharedMemory::Protection::ReadOnly)) - return false; - -- messageInfo.setMessageBodyIsOutOfLine(); -+ outputMessage.messageInfo().setBodyOutOfLine(); - -- memcpy(oolMessageBody->data(), encoder->buffer(), encoder->bufferSize()); -+ memcpy(oolMessageBody->data(), outputMessage.body(), outputMessage.bodySize()); - -- attachments.append(handle.releaseAttachment()); -+ outputMessage.appendAttachment(handle.releaseAttachment()); - } - -+ return sendOutputMessage(outputMessage); -+} -+ -+bool Connection::sendOutputMessage(UnixMessage& outputMessage) -+{ -+ ASSERT(!m_pendingOutputMessage); -+ -+ auto& messageInfo = outputMessage.messageInfo(); - struct msghdr message; - memset(&message, 0, sizeof(message)); - -@@ -438,6 +411,7 @@ bool Connection::sendOutgoingMessage(std::unique_ptr encoder) - std::unique_ptr attachmentInfo; - MallocPtr attachmentFDBuffer; - -+ auto& attachments = outputMessage.attachments(); - if (!attachments.isEmpty()) { - int* fdPtr = 0; - -@@ -488,9 +462,9 @@ bool Connection::sendOutgoingMessage(std::unique_ptr encoder) - ++iovLength; - } - -- if (!messageInfo.isMessageBodyIsOutOfLine() && encoder->bufferSize()) { -- iov[iovLength].iov_base = reinterpret_cast(encoder->buffer()); -- iov[iovLength].iov_len = encoder->bufferSize(); -+ if (!messageInfo.isBodyOutOfLine() && outputMessage.bodySize()) { -+ iov[iovLength].iov_base = reinterpret_cast(outputMessage.body()); -+ iov[iovLength].iov_len = outputMessage.bodySize(); - ++iovLength; - } - -@@ -500,6 +474,25 @@ bool Connection::sendOutgoingMessage(std::unique_ptr encoder) - if (errno == EINTR) - continue; - if (errno == EAGAIN || errno == EWOULDBLOCK) { -+#if PLATFORM(GTK) -+ m_pendingOutputMessage = std::make_unique(WTFMove(outputMessage)); -+ m_writeSocketMonitor.start(m_socket.get(), G_IO_OUT, m_connectionQueue->runLoop(), [this, protectedThis = makeRef(*this)] (GIOCondition condition) -> gboolean { -+ if (condition & G_IO_OUT) { -+ ASSERT(m_pendingOutputMessage); -+ // We can't stop the monitor from this lambda, because stop destroys the lambda. -+ m_connectionQueue->dispatch([this, protectedThis = makeRef(*this)] { -+ m_writeSocketMonitor.stop(); -+ auto message = WTFMove(m_pendingOutputMessage); -+ if (m_isConnected) { -+ sendOutputMessage(*message); -+ sendOutgoingMessages(); -+ } -+ }); -+ } -+ return G_SOURCE_REMOVE; -+ }); -+ return false; -+#else - struct pollfd pollfd; - - pollfd.fd = m_socketDescriptor; -@@ -507,6 +500,7 @@ bool Connection::sendOutgoingMessage(std::unique_ptr encoder) - pollfd.revents = 0; - poll(&pollfd, 1, -1); - continue; -+#endif - } - - if (m_isConnected) -diff --git a/Source/WebKit2/Platform/IPC/unix/UnixMessage.h b/Source/WebKit2/Platform/IPC/unix/UnixMessage.h -new file mode 100644 -index 0000000..e99a0a4 ---- /dev/null -+++ b/Source/WebKit2/Platform/IPC/unix/UnixMessage.h -@@ -0,0 +1,113 @@ -+/* -+ * Copyright (C) 2010 Apple Inc. All rights reserved. -+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) -+ * Copyright (C) 2011,2017 Igalia S.L. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' -+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS -+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -+ * THE POSSIBILITY OF SUCH DAMAGE. -+ */ -+ -+#pragma once -+ -+#include "Attachment.h" -+#include -+ -+namespace IPC { -+ -+class MessageInfo { -+public: -+ MessageInfo() = default; -+ -+ MessageInfo(size_t bodySize, size_t initialAttachmentCount) -+ : m_bodySize(bodySize) -+ , m_attachmentCount(initialAttachmentCount) -+ { -+ } -+ -+ void setBodyOutOfLine() -+ { -+ ASSERT(!isBodyOutOfLine()); -+ -+ m_isBodyOutOfLine = true; -+ m_attachmentCount++; -+ } -+ -+ bool isBodyOutOfLine() const { return m_isBodyOutOfLine; } -+ size_t bodySize() const { return m_bodySize; } -+ size_t attachmentCount() const { return m_attachmentCount; } -+ -+private: -+ size_t m_bodySize { 0 }; -+ size_t m_attachmentCount { 0 }; -+ bool m_isBodyOutOfLine { false }; -+}; -+ -+class UnixMessage { -+ WTF_MAKE_FAST_ALLOCATED; -+public: -+ UnixMessage(Encoder* encoder) -+ : m_attachments(encoder->releaseAttachments()) -+ , m_messageInfo(encoder->bufferSize(), m_attachments.size()) -+ , m_body(encoder->buffer()) -+ { -+ } -+ -+ UnixMessage(UnixMessage&& other) -+ { -+ m_attachments = WTFMove(other.m_attachments); -+ m_messageInfo = WTFMove(other.m_messageInfo); -+ if (other.m_bodyOwned) { -+ std::swap(m_body, other.m_body); -+ std::swap(m_bodyOwned, other.m_bodyOwned); -+ } else if (!m_messageInfo.isBodyOutOfLine()) { -+ m_body = static_cast(fastMalloc(m_messageInfo.bodySize())); -+ memcpy(m_body, other.m_body, m_messageInfo.bodySize()); -+ m_bodyOwned = true; -+ other.m_body = nullptr; -+ other.m_bodyOwned = false; -+ } -+ } -+ -+ ~UnixMessage() -+ { -+ if (m_bodyOwned) -+ fastFree(m_body); -+ } -+ -+ const Vector& attachments() const { return m_attachments; } -+ MessageInfo& messageInfo() { return m_messageInfo; } -+ -+ uint8_t* body() const { return m_body; } -+ size_t bodySize() const { return m_messageInfo.bodySize(); } -+ -+ void appendAttachment(Attachment&& attachment) -+ { -+ m_attachments.append(WTFMove(attachment)); -+ } -+ -+private: -+ Vector m_attachments; -+ MessageInfo m_messageInfo; -+ uint8_t* m_body { nullptr }; -+ bool m_bodyOwned { false }; -+}; -+ -+} // namespace IPC -diff --git a/Source/WebKit2/PlatformGTK.cmake b/Source/WebKit2/PlatformGTK.cmake -index ebede75..2c6bc5f 100644 ---- a/Source/WebKit2/PlatformGTK.cmake -+++ b/Source/WebKit2/PlatformGTK.cmake -@@ -850,6 +850,7 @@ list(APPEND WebKit2_INCLUDE_DIRECTORIES - "${WEBKIT2_DIR}/NetworkProcess/soup" - "${WEBKIT2_DIR}/NetworkProcess/unix" - "${WEBKIT2_DIR}/Platform/IPC/glib" -+ "${WEBKIT2_DIR}/Platform/IPC/unix" - "${WEBKIT2_DIR}/Shared/API/c/gtk" - "${WEBKIT2_DIR}/Shared/Plugins/unix" - "${WEBKIT2_DIR}/Shared/glib" --- -2.11.1 - diff --git a/sources b/sources index 2ff2d3b..f51f27f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.15.90.tar.xz) = f06bbde9ed06fb7ba426629e130d2a1a9f9d137a864d5f6874f1a0c14dde043a51ffe9ea31f3be5252f852621ddcef5385f75f8624cdc2e1f357cd14c839a4cc +SHA512 (webkitgtk-2.15.91.tar.xz) = 7071f305bb83cdb70559a28e2eb7b7207c6051278ee0dbe6c7a2448b3617294a700c2e536fdb125b2d66e4c4922e6a2da907f23ea0652df77d8d4402d9bd370a diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 3cc1819..95e5ec2 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.15.90 -Release: 2%{?dist} +Version: 2.15.91 +Release: 1%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -21,8 +21,6 @@ Patch0: webkitgtk-2.14.1-user-agent-branding.patch Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=167643 Patch2: gcc7.patch -# https://bugs.webkit.org/show_bug.cgi?id=168699 -Patch3: 0001-GTK-Hangs-when-showing-Google-search-results.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -98,6 +96,7 @@ This package contains WebKitGTK+ for GTK+ 3. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-jsc%{?_isa} = %{version}-%{release} Requires: %{name}-jsc-devel%{?_isa} = %{version}-%{release} %description devel @@ -129,6 +128,7 @@ files for developing applications that use JavaScript engine from %{name}. %package plugin-process-gtk2 Summary: GTK+ 2 based NPAPI plugins support for %{name} Obsoletes: %{name} < 2.12.0-3 +Requires: %{name}-jsc%{?_isa} = %{version}-%{release} %description plugin-process-gtk2 Support for the GTK+ 2 based NPAPI plugins (such as Adobe Flash) for %{name}. @@ -257,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Wed Mar 01 2017 Tomas Popela - 2.15.91-1 +- Update to 2.15.91 + * Fri Feb 24 2017 Bastien Nocera - 2.15.90-2 - Add patch to fix hangs when showing the Google search page From c1ad2a110f4363cb3fb03a4a13bff166d0be5046 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 14 Mar 2017 10:41:46 +0100 Subject: [PATCH 03/75] Update to 2.15.92 --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 85b599f..30523f3 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,4 @@ /webkitgtk-2.15.4.tar.xz /webkitgtk-2.15.90.tar.xz /webkitgtk-2.15.91.tar.xz +/webkitgtk-2.15.92.tar.xz diff --git a/sources b/sources index f51f27f..6b1b2c3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.15.91.tar.xz) = 7071f305bb83cdb70559a28e2eb7b7207c6051278ee0dbe6c7a2448b3617294a700c2e536fdb125b2d66e4c4922e6a2da907f23ea0652df77d8d4402d9bd370a +SHA512 (webkitgtk-2.15.92.tar.xz) = 2302c52f623b1ce1366ec1de0b93701bc149689495ca3b054a5aea55509f620a637fc0906c43657b1822c5d82c9636cfb387db218e939d6cf2d6eacae0657016 From ba406e12bd4d23d70287c8f132fb0065fd54365f Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 14 Mar 2017 10:42:37 +0100 Subject: [PATCH 04/75] Update the specfile --- webkitgtk4.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 95e5ec2..a6a9ae2 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.15.91 +Version: 2.15.92 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -257,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue Mar 14 2017 Tomas Popela - 2.15.92-1 +- Update to 2.15.92 + * Wed Mar 01 2017 Tomas Popela - 2.15.91-1 - Update to 2.15.91 From 9674b5847175765cfb17f0a15cae0cf38d0527d9 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 14 Mar 2017 10:44:10 +0100 Subject: [PATCH 05/75] Update to 2.15.92 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 85b599f..30523f3 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,4 @@ /webkitgtk-2.15.4.tar.xz /webkitgtk-2.15.90.tar.xz /webkitgtk-2.15.91.tar.xz +/webkitgtk-2.15.92.tar.xz diff --git a/sources b/sources index f51f27f..6b1b2c3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.15.91.tar.xz) = 7071f305bb83cdb70559a28e2eb7b7207c6051278ee0dbe6c7a2448b3617294a700c2e536fdb125b2d66e4c4922e6a2da907f23ea0652df77d8d4402d9bd370a +SHA512 (webkitgtk-2.15.92.tar.xz) = 2302c52f623b1ce1366ec1de0b93701bc149689495ca3b054a5aea55509f620a637fc0906c43657b1822c5d82c9636cfb387db218e939d6cf2d6eacae0657016 diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 95e5ec2..a6a9ae2 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.15.91 +Version: 2.15.92 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -257,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue Mar 14 2017 Tomas Popela - 2.15.92-1 +- Update to 2.15.92 + * Wed Mar 01 2017 Tomas Popela - 2.15.91-1 - Update to 2.15.91 From e8f4b0235cda1b3ee8a81bc04ea143f6b3d1513b Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 20 Mar 2017 14:06:26 +0100 Subject: [PATCH 06/75] Update to 2.16.0 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 30523f3..0edb21c 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,4 @@ /webkitgtk-2.15.90.tar.xz /webkitgtk-2.15.91.tar.xz /webkitgtk-2.15.92.tar.xz +/webkitgtk-2.16.0.tar.xz diff --git a/sources b/sources index 6b1b2c3..c99396b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.15.92.tar.xz) = 2302c52f623b1ce1366ec1de0b93701bc149689495ca3b054a5aea55509f620a637fc0906c43657b1822c5d82c9636cfb387db218e939d6cf2d6eacae0657016 +SHA512 (webkitgtk-2.16.0.tar.xz) = 7ad889484dda5d91009b1375eb4188b5bf7bf9ff7cc2b253dc702511d1b5859d18076a14246cc928fb4736676dbc5ee33f5afa944c3cb9ec013227a34bbb9523 diff --git a/webkitgtk4.spec b/webkitgtk4.spec index a6a9ae2..e7f409e 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.15.92 +Version: 2.16.0 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -257,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Mon Mar 20 2017 Tomas Popela - 2.16.0-1 +- Update to 2.16.0 + * Tue Mar 14 2017 Tomas Popela - 2.15.92-1 - Update to 2.15.92 From 4c15545597a950305060adff3e3489ef51dea601 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 20 Mar 2017 14:06:26 +0100 Subject: [PATCH 07/75] Update to 2.16.0 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 30523f3..0edb21c 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,4 @@ /webkitgtk-2.15.90.tar.xz /webkitgtk-2.15.91.tar.xz /webkitgtk-2.15.92.tar.xz +/webkitgtk-2.16.0.tar.xz diff --git a/sources b/sources index 6b1b2c3..c99396b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.15.92.tar.xz) = 2302c52f623b1ce1366ec1de0b93701bc149689495ca3b054a5aea55509f620a637fc0906c43657b1822c5d82c9636cfb387db218e939d6cf2d6eacae0657016 +SHA512 (webkitgtk-2.16.0.tar.xz) = 7ad889484dda5d91009b1375eb4188b5bf7bf9ff7cc2b253dc702511d1b5859d18076a14246cc928fb4736676dbc5ee33f5afa944c3cb9ec013227a34bbb9523 diff --git a/webkitgtk4.spec b/webkitgtk4.spec index a6a9ae2..e7f409e 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.15.92 +Version: 2.16.0 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -257,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Mon Mar 20 2017 Tomas Popela - 2.16.0-1 +- Update to 2.16.0 + * Tue Mar 14 2017 Tomas Popela - 2.15.92-1 - Update to 2.15.92 From 04714da99bc2395f46d1598fd90744971da1b825 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 4 Apr 2017 10:37:35 +0200 Subject: [PATCH 08/75] Update to 2.16.1 --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0edb21c..40b1850 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,4 @@ /webkitgtk-2.15.91.tar.xz /webkitgtk-2.15.92.tar.xz /webkitgtk-2.16.0.tar.xz +/webkitgtk-2.16.1.tar.xz diff --git a/sources b/sources index c99396b..701baeb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.16.0.tar.xz) = 7ad889484dda5d91009b1375eb4188b5bf7bf9ff7cc2b253dc702511d1b5859d18076a14246cc928fb4736676dbc5ee33f5afa944c3cb9ec013227a34bbb9523 +SHA512 (webkitgtk-2.16.1.tar.xz) = 4b8de15644d0d0f9814c674020cbbab8628347915b8010977dbe2365ce276ea05b3bf86171400ae8eb5bfdebbadcfabd1efce34a177b5c82aa765bd3351e7010 From 760c3fb60efbcc1a9a630a283578f946feff3fe8 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 4 Apr 2017 10:38:21 +0200 Subject: [PATCH 09/75] Update the SPEC file --- webkitgtk4.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index e7f409e..850bf5c 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.16.0 +Version: 2.16.1 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -257,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue Apr 04 2017 Tomas Popela - 2.16.1-1 +- Update to 2.16.1 + * Mon Mar 20 2017 Tomas Popela - 2.16.0-1 - Update to 2.16.0 From 1bdb288d59c3442f22fda1c7bb7f466d3e10c28e Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 4 Apr 2017 10:39:21 +0200 Subject: [PATCH 10/75] Update to 2.16.1 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 0edb21c..40b1850 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,4 @@ /webkitgtk-2.15.91.tar.xz /webkitgtk-2.15.92.tar.xz /webkitgtk-2.16.0.tar.xz +/webkitgtk-2.16.1.tar.xz diff --git a/sources b/sources index c99396b..701baeb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.16.0.tar.xz) = 7ad889484dda5d91009b1375eb4188b5bf7bf9ff7cc2b253dc702511d1b5859d18076a14246cc928fb4736676dbc5ee33f5afa944c3cb9ec013227a34bbb9523 +SHA512 (webkitgtk-2.16.1.tar.xz) = 4b8de15644d0d0f9814c674020cbbab8628347915b8010977dbe2365ce276ea05b3bf86171400ae8eb5bfdebbadcfabd1efce34a177b5c82aa765bd3351e7010 diff --git a/webkitgtk4.spec b/webkitgtk4.spec index e7f409e..850bf5c 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.16.0 +Version: 2.16.1 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -257,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue Apr 04 2017 Tomas Popela - 2.16.1-1 +- Update to 2.16.1 + * Mon Mar 20 2017 Tomas Popela - 2.16.0-1 - Update to 2.16.0 From cca73d6fb0d34b5769a5f6155fb5ab231a8c537c Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Thu, 6 Apr 2017 10:33:28 +0200 Subject: [PATCH 11/75] Add patch for freezing regression --- ...C-MachineThreads-does-not-consider-s.patch | 390 ++++++++++++++++++ ...ge-when-an-invalid-message-is-receiv.patch | 38 ++ webkitgtk4.spec | 9 +- 3 files changed, 436 insertions(+), 1 deletion(-) create mode 100644 0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch create mode 100644 0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch diff --git a/0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch b/0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch new file mode 100644 index 0000000..80318f0 --- /dev/null +++ b/0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch @@ -0,0 +1,390 @@ +From 70c605847496766b0ca59bee03ecadb74e54a159 Mon Sep 17 00:00:00 2001 +From: "carlosgc@webkit.org" + +Date: Tue, 4 Apr 2017 16:12:17 +0000 +Subject: [PATCH] Merge r214319 - [JSC] MachineThreads does not consider + situation that one thread has multiple VMs + https://bugs.webkit.org/show_bug.cgi?id=169819 + +Reviewed by Mark Lam. + +The Linux port of PlatformThread suspend/resume mechanism relies on having a thread +specific singleton thread data, and was relying on MachineThreads::Thread to be this +thread specific singleton. But because MachineThreads::Thread is not a thread specific +singleton, we can get a deadlock in the GTK port's DatabaseProcess. + +This patch fixes this issue by moving per thread data from MachineThreads::Thread to +MachineThreads::ThreadData, where there will only be one instance of +MachineThreads::ThreadData per thread. Each MachineThreads::Thread will now point to +the same MachineThreads::ThreadData for any given thread. + +* heap/MachineStackMarker.cpp: +(pthreadSignalHandlerSuspendResume): +(JSC::threadData): +(JSC::MachineThreads::Thread::Thread): +(JSC::MachineThreads::Thread::createForCurrentThread): +(JSC::MachineThreads::Thread::operator==): +(JSC::MachineThreads::ThreadData::ThreadData): +(JSC::MachineThreads::ThreadData::~ThreadData): +(JSC::MachineThreads::ThreadData::suspend): +(JSC::MachineThreads::ThreadData::resume): +(JSC::MachineThreads::ThreadData::getRegisters): +(JSC::MachineThreads::ThreadData::Registers::stackPointer): +(JSC::MachineThreads::ThreadData::Registers::framePointer): +(JSC::MachineThreads::ThreadData::Registers::instructionPointer): +(JSC::MachineThreads::ThreadData::Registers::llintPC): +(JSC::MachineThreads::ThreadData::freeRegisters): +(JSC::MachineThreads::ThreadData::captureStack): +(JSC::MachineThreads::tryCopyOtherThreadStacks): +(JSC::MachineThreads::Thread::~Thread): Deleted. +(JSC::MachineThreads::Thread::suspend): Deleted. +(JSC::MachineThreads::Thread::resume): Deleted. +(JSC::MachineThreads::Thread::getRegisters): Deleted. +(JSC::MachineThreads::Thread::Registers::stackPointer): Deleted. +(JSC::MachineThreads::Thread::Registers::framePointer): Deleted. +(JSC::MachineThreads::Thread::Registers::instructionPointer): Deleted. +(JSC::MachineThreads::Thread::Registers::llintPC): Deleted. +(JSC::MachineThreads::Thread::freeRegisters): Deleted. +(JSC::MachineThreads::Thread::captureStack): Deleted. +* heap/MachineStackMarker.h: +(JSC::MachineThreads::Thread::operator!=): +(JSC::MachineThreads::Thread::suspend): +(JSC::MachineThreads::Thread::resume): +(JSC::MachineThreads::Thread::getRegisters): +(JSC::MachineThreads::Thread::freeRegisters): +(JSC::MachineThreads::Thread::captureStack): +(JSC::MachineThreads::Thread::platformThread): +(JSC::MachineThreads::Thread::stackBase): +(JSC::MachineThreads::Thread::stackEnd): +* runtime/SamplingProfiler.cpp: +(JSC::FrameWalker::isValidFramePointer): +* runtime/VMTraps.cpp: +(JSC::findActiveVMAndStackBounds): + +git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.16@214882 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/JavaScriptCore/heap/MachineStackMarker.cpp | 73 +++++++++++++--------- + Source/JavaScriptCore/heap/MachineStackMarker.h | 41 +++++++++--- + Source/JavaScriptCore/runtime/SamplingProfiler.cpp | 4 +- + 4 files changed, 137 insertions(+), 41 deletions(-) + +diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.cpp b/Source/JavaScriptCore/heap/MachineStackMarker.cpp +index 65eb0cf0d9b..5fea745d2ad 100644 +--- a/Source/JavaScriptCore/heap/MachineStackMarker.cpp ++++ b/Source/JavaScriptCore/heap/MachineStackMarker.cpp +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + #include + + #if OS(DARWIN) +@@ -69,14 +70,14 @@ + // We use SIGUSR2 to suspend and resume machine threads in JavaScriptCore. + static const int SigThreadSuspendResume = SIGUSR2; + static StaticLock globalSignalLock; +-thread_local static std::atomic threadLocalCurrentThread; ++thread_local static std::atomic threadLocalCurrentThread { nullptr }; + + static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) + { + // Touching thread local atomic types from signal handlers is allowed. +- JSC::MachineThreads::Thread* thread = threadLocalCurrentThread.load(); ++ JSC::MachineThreads::ThreadData* threadData = threadLocalCurrentThread.load(); + +- if (thread->suspended.load(std::memory_order_acquire)) { ++ if (threadData->suspended.load(std::memory_order_acquire)) { + // This is signal handler invocation that is intended to be used to resume sigsuspend. + // So this handler invocation itself should not process. + // +@@ -88,9 +89,9 @@ static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) + + ucontext_t* userContext = static_cast(ucontext); + #if CPU(PPC) +- thread->suspendedMachineContext = *userContext->uc_mcontext.uc_regs; ++ threadData->suspendedMachineContext = *userContext->uc_mcontext.uc_regs; + #else +- thread->suspendedMachineContext = userContext->uc_mcontext; ++ threadData->suspendedMachineContext = userContext->uc_mcontext; + #endif + + // Allow suspend caller to see that this thread is suspended. +@@ -99,7 +100,7 @@ static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) + // + // And sem_post emits memory barrier that ensures that suspendedMachineContext is correctly saved. + // http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_11 +- sem_post(&thread->semaphoreForSuspendResume); ++ sem_post(&threadData->semaphoreForSuspendResume); + + // Reaching here, SigThreadSuspendResume is blocked in this handler (this is configured by sigaction's sa_mask). + // So before calling sigsuspend, SigThreadSuspendResume to this thread is deferred. This ensures that the handler is not executed recursively. +@@ -109,7 +110,7 @@ static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) + sigsuspend(&blockedSignalSet); + + // Allow resume caller to see that this thread is resumed. +- sem_post(&thread->semaphoreForSuspendResume); ++ sem_post(&threadData->semaphoreForSuspendResume); + } + #endif // USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN) + +@@ -215,18 +216,29 @@ MachineThreads::~MachineThreads() + } + } + ++static MachineThreads::ThreadData* threadData() ++{ ++ static NeverDestroyed> threadData; ++ return threadData.get(); ++} ++ ++MachineThreads::Thread::Thread(ThreadData* threadData) ++ : data(threadData) ++{ ++ ASSERT(threadData); ++} ++ + Thread* MachineThreads::Thread::createForCurrentThread() + { +- auto stackBounds = wtfThreadData().stack(); +- return new Thread(getCurrentPlatformThread(), stackBounds.origin(), stackBounds.end()); ++ return new Thread(threadData()); + } + + bool MachineThreads::Thread::operator==(const PlatformThread& other) const + { + #if OS(DARWIN) || OS(WINDOWS) +- return platformThread == other; ++ return data->platformThread == other; + #elif USE(PTHREADS) +- return !!pthread_equal(platformThread, other); ++ return !!pthread_equal(data->platformThread, other); + #else + #error Need a way to compare threads on this platform + #endif +@@ -325,11 +337,13 @@ void MachineThreads::gatherFromCurrentThread(ConservativeRoots& conservativeRoot + conservativeRoots.add(currentThreadState.stackTop, currentThreadState.stackOrigin, jitStubRoutines, codeBlocks); + } + +-MachineThreads::Thread::Thread(const PlatformThread& platThread, void* base, void* end) +- : platformThread(platThread) +- , stackBase(base) +- , stackEnd(end) ++MachineThreads::ThreadData::ThreadData() + { ++ auto stackBounds = wtfThreadData().stack(); ++ platformThread = getCurrentPlatformThread(); ++ stackBase = stackBounds.origin(); ++ stackEnd = stackBounds.end(); ++ + #if OS(WINDOWS) + ASSERT(platformThread == GetCurrentThreadId()); + bool isSuccessful = +@@ -362,7 +376,7 @@ MachineThreads::Thread::Thread(const PlatformThread& platThread, void* base, voi + #endif + } + +-MachineThreads::Thread::~Thread() ++MachineThreads::ThreadData::~ThreadData() + { + #if OS(WINDOWS) + CloseHandle(platformThreadHandle); +@@ -371,7 +385,7 @@ MachineThreads::Thread::~Thread() + #endif + } + +-bool MachineThreads::Thread::suspend() ++bool MachineThreads::ThreadData::suspend() + { + #if OS(DARWIN) + kern_return_t result = thread_suspend(platformThread); +@@ -408,7 +422,7 @@ bool MachineThreads::Thread::suspend() + #endif + } + +-void MachineThreads::Thread::resume() ++void MachineThreads::ThreadData::resume() + { + #if OS(DARWIN) + thread_resume(platformThread); +@@ -439,9 +453,9 @@ void MachineThreads::Thread::resume() + #endif + } + +-size_t MachineThreads::Thread::getRegisters(Thread::Registers& registers) ++size_t MachineThreads::ThreadData::getRegisters(ThreadData::Registers& registers) + { +- Thread::Registers::PlatformRegisters& regs = registers.regs; ++ ThreadData::Registers::PlatformRegisters& regs = registers.regs; + #if OS(DARWIN) + #if CPU(X86) + unsigned user_count = sizeof(regs)/sizeof(int); +@@ -496,7 +510,7 @@ size_t MachineThreads::Thread::getRegisters(Thread::Registers& registers) + #endif + } + +-void* MachineThreads::Thread::Registers::stackPointer() const ++void* MachineThreads::ThreadData::Registers::stackPointer() const + { + #if OS(DARWIN) + +@@ -601,7 +615,7 @@ void* MachineThreads::Thread::Registers::stackPointer() const + } + + #if ENABLE(SAMPLING_PROFILER) +-void* MachineThreads::Thread::Registers::framePointer() const ++void* MachineThreads::ThreadData::Registers::framePointer() const + { + #if OS(DARWIN) + +@@ -684,7 +698,7 @@ void* MachineThreads::Thread::Registers::framePointer() const + #endif + } + +-void* MachineThreads::Thread::Registers::instructionPointer() const ++void* MachineThreads::ThreadData::Registers::instructionPointer() const + { + #if OS(DARWIN) + +@@ -765,7 +779,8 @@ void* MachineThreads::Thread::Registers::instructionPointer() const + #error Need a way to get the instruction pointer for another thread on this platform + #endif + } +-void* MachineThreads::Thread::Registers::llintPC() const ++ ++void* MachineThreads::ThreadData::Registers::llintPC() const + { + // LLInt uses regT4 as PC. + #if OS(DARWIN) +@@ -858,9 +873,9 @@ void* MachineThreads::Thread::Registers::llintPC() const + } + #endif // ENABLE(SAMPLING_PROFILER) + +-void MachineThreads::Thread::freeRegisters(Thread::Registers& registers) ++void MachineThreads::ThreadData::freeRegisters(ThreadData::Registers& registers) + { +- Thread::Registers::PlatformRegisters& regs = registers.regs; ++ ThreadData::Registers::PlatformRegisters& regs = registers.regs; + #if USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN) + pthread_attr_destroy(®s.attribute); + #else +@@ -883,7 +898,7 @@ static inline int osRedZoneAdjustment() + return redZoneAdjustment; + } + +-std::pair MachineThreads::Thread::captureStack(void* stackTop) ++std::pair MachineThreads::ThreadData::captureStack(void* stackTop) + { + char* begin = reinterpret_cast_ptr(stackBase); + char* end = bitwise_cast(WTF::roundUpToMultipleOf(reinterpret_cast(stackTop))); +@@ -971,12 +986,12 @@ bool MachineThreads::tryCopyOtherThreadStacks(LockHolder&, void* buffer, size_t + } + + // Re-do the suspension to get the actual failure result for logging. +- kern_return_t error = thread_suspend(thread->platformThread); ++ kern_return_t error = thread_suspend(thread->platformThread()); + ASSERT(error != KERN_SUCCESS); + + WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, + "JavaScript garbage collection encountered an invalid thread (err 0x%x): Thread [%d/%d: %p] platformThread %p.", +- error, index, numberOfThreads, thread, reinterpret_cast(thread->platformThread)); ++ error, index, numberOfThreads, thread, reinterpret_cast(thread->platformThread())); + + // Put the invalid thread on the threadsToBeDeleted list. + // We can't just delete it here because we have suspended other +diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.h b/Source/JavaScriptCore/heap/MachineStackMarker.h +index a5a50870922..da979c582ec 100644 +--- a/Source/JavaScriptCore/heap/MachineStackMarker.h ++++ b/Source/JavaScriptCore/heap/MachineStackMarker.h +@@ -74,14 +74,13 @@ public: + + JS_EXPORT_PRIVATE void addCurrentThread(); // Only needs to be called by clients that can use the same heap from multiple threads. + +- class Thread { ++ class ThreadData { + WTF_MAKE_FAST_ALLOCATED; +- Thread(const PlatformThread& platThread, void* base, void* end); +- + public: +- ~Thread(); ++ ThreadData(); ++ ~ThreadData(); + +- static Thread* createForCurrentThread(); ++ static ThreadData* createForCurrentThread(); + + struct Registers { + void* stackPointer() const; +@@ -118,12 +117,9 @@ public: + #else + #error Need a thread register struct for this platform + #endif +- ++ + PlatformRegisters regs; + }; +- +- bool operator==(const PlatformThread& other) const; +- bool operator!=(const PlatformThread& other) const { return !(*this == other); } + + bool suspend(); + void resume(); +@@ -131,7 +127,6 @@ public: + void freeRegisters(Registers&); + std::pair captureStack(void* stackTop); + +- Thread* next; + PlatformThread platformThread; + void* stackBase; + void* stackEnd; +@@ -145,6 +140,32 @@ public: + #endif + }; + ++ class Thread { ++ WTF_MAKE_FAST_ALLOCATED; ++ Thread(ThreadData*); ++ ++ public: ++ using Registers = ThreadData::Registers; ++ ++ static Thread* createForCurrentThread(); ++ ++ bool operator==(const PlatformThread& other) const; ++ bool operator!=(const PlatformThread& other) const { return !(*this == other); } ++ ++ bool suspend() { return data->suspend(); } ++ void resume() { data->resume(); } ++ size_t getRegisters(Registers& regs) { return data->getRegisters(regs); } ++ void freeRegisters(Registers& regs) { data->freeRegisters(regs); } ++ std::pair captureStack(void* stackTop) { return data->captureStack(stackTop); } ++ ++ const PlatformThread& platformThread() { return data->platformThread; } ++ void* stackBase() const { return data->stackBase; } ++ void* stackEnd() const { return data->stackEnd; } ++ ++ Thread* next; ++ ThreadData* data; ++ }; ++ + Lock& getLock() { return m_registeredThreadsMutex; } + Thread* threadsListHead(const LockHolder&) const { ASSERT(m_registeredThreadsMutex.isLocked()); return m_registeredThreads; } + Thread* machineThreadForCurrentThread(); +diff --git a/Source/JavaScriptCore/runtime/SamplingProfiler.cpp b/Source/JavaScriptCore/runtime/SamplingProfiler.cpp +index a8d953d6622..9326d7a0fc9 100644 +--- a/Source/JavaScriptCore/runtime/SamplingProfiler.cpp ++++ b/Source/JavaScriptCore/runtime/SamplingProfiler.cpp +@@ -169,8 +169,8 @@ protected: + { + uint8_t* fpCast = bitwise_cast(exec); + for (MachineThreads::Thread* thread = m_vm.heap.machineThreads().threadsListHead(m_machineThreadsLocker); thread; thread = thread->next) { +- uint8_t* stackBase = static_cast(thread->stackBase); +- uint8_t* stackLimit = static_cast(thread->stackEnd); ++ uint8_t* stackBase = static_cast(thread->stackBase()); ++ uint8_t* stackLimit = static_cast(thread->stackEnd()); + RELEASE_ASSERT(stackBase); + RELEASE_ASSERT(stackLimit); + if (fpCast <= stackBase && fpCast >= stackLimit) +-- +2.12.2 + diff --git a/0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch b/0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch new file mode 100644 index 0000000..796e637 --- /dev/null +++ b/0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch @@ -0,0 +1,38 @@ +From 7a4822f02bd724c1eb3079158f93331c4090b9ad Mon Sep 17 00:00:00 2001 +From: "commit-queue@webkit.org" + +Date: Wed, 5 Apr 2017 16:50:03 +0000 +Subject: [PATCH] Show a log message when an invalid message is received in non + cocoa ports https://bugs.webkit.org/show_bug.cgi?id=170506 + +Patch by Carlos Garcia Campos on 2017-04-05 +Reviewed by Michael Catanzaro. + +We just crash, but without knowing the details about the message it's impossible to debug. + +* Shared/ChildProcess.cpp: +(WebKit::ChildProcess::didReceiveInvalidMessage): + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@214947 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/WebKit2/Shared/ChildProcess.cpp | 3 ++- + 2 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/Source/WebKit2/Shared/ChildProcess.cpp b/Source/WebKit2/Shared/ChildProcess.cpp +index 060c63ae792..bc1f2d6ab6a 100644 +--- a/Source/WebKit2/Shared/ChildProcess.cpp ++++ b/Source/WebKit2/Shared/ChildProcess.cpp +@@ -197,8 +197,9 @@ void ChildProcess::initializeSandbox(const ChildProcessInitializationParameters& + { + } + +-void ChildProcess::didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference, IPC::StringReference) ++void ChildProcess::didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference messageReceiverName, IPC::StringReference messageName) + { ++ WTFLogAlways("Received invalid message: '%s::%s'", messageReceiverName.toString().data(), messageName.toString().data()); + CRASH(); + } + #endif +-- +2.12.2 + diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 850bf5c..112b68e 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.16.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -21,6 +21,10 @@ Patch0: webkitgtk-2.14.1-user-agent-branding.patch Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=167643 Patch2: gcc7.patch +# https://bugs.webkit.org/show_bug.cgi?id=170450 +Patch3: 0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch +# https://bugs.webkit.org/show_bug.cgi?id=170506 +Patch4: 0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -257,6 +261,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Thu Apr 06 2017 Tomas Popela - 2.16.1-2 +- Add patch for freezing regression + * Tue Apr 04 2017 Tomas Popela - 2.16.1-1 - Update to 2.16.1 From e0b63c15394e79a34a5cc6e9a047b72052bf4a9a Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Thu, 6 Apr 2017 10:33:28 +0200 Subject: [PATCH 12/75] Add patch for freezing regression --- ...C-MachineThreads-does-not-consider-s.patch | 390 ++++++++++++++++++ ...ge-when-an-invalid-message-is-receiv.patch | 38 ++ webkitgtk4.spec | 9 +- 3 files changed, 436 insertions(+), 1 deletion(-) create mode 100644 0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch create mode 100644 0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch diff --git a/0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch b/0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch new file mode 100644 index 0000000..80318f0 --- /dev/null +++ b/0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch @@ -0,0 +1,390 @@ +From 70c605847496766b0ca59bee03ecadb74e54a159 Mon Sep 17 00:00:00 2001 +From: "carlosgc@webkit.org" + +Date: Tue, 4 Apr 2017 16:12:17 +0000 +Subject: [PATCH] Merge r214319 - [JSC] MachineThreads does not consider + situation that one thread has multiple VMs + https://bugs.webkit.org/show_bug.cgi?id=169819 + +Reviewed by Mark Lam. + +The Linux port of PlatformThread suspend/resume mechanism relies on having a thread +specific singleton thread data, and was relying on MachineThreads::Thread to be this +thread specific singleton. But because MachineThreads::Thread is not a thread specific +singleton, we can get a deadlock in the GTK port's DatabaseProcess. + +This patch fixes this issue by moving per thread data from MachineThreads::Thread to +MachineThreads::ThreadData, where there will only be one instance of +MachineThreads::ThreadData per thread. Each MachineThreads::Thread will now point to +the same MachineThreads::ThreadData for any given thread. + +* heap/MachineStackMarker.cpp: +(pthreadSignalHandlerSuspendResume): +(JSC::threadData): +(JSC::MachineThreads::Thread::Thread): +(JSC::MachineThreads::Thread::createForCurrentThread): +(JSC::MachineThreads::Thread::operator==): +(JSC::MachineThreads::ThreadData::ThreadData): +(JSC::MachineThreads::ThreadData::~ThreadData): +(JSC::MachineThreads::ThreadData::suspend): +(JSC::MachineThreads::ThreadData::resume): +(JSC::MachineThreads::ThreadData::getRegisters): +(JSC::MachineThreads::ThreadData::Registers::stackPointer): +(JSC::MachineThreads::ThreadData::Registers::framePointer): +(JSC::MachineThreads::ThreadData::Registers::instructionPointer): +(JSC::MachineThreads::ThreadData::Registers::llintPC): +(JSC::MachineThreads::ThreadData::freeRegisters): +(JSC::MachineThreads::ThreadData::captureStack): +(JSC::MachineThreads::tryCopyOtherThreadStacks): +(JSC::MachineThreads::Thread::~Thread): Deleted. +(JSC::MachineThreads::Thread::suspend): Deleted. +(JSC::MachineThreads::Thread::resume): Deleted. +(JSC::MachineThreads::Thread::getRegisters): Deleted. +(JSC::MachineThreads::Thread::Registers::stackPointer): Deleted. +(JSC::MachineThreads::Thread::Registers::framePointer): Deleted. +(JSC::MachineThreads::Thread::Registers::instructionPointer): Deleted. +(JSC::MachineThreads::Thread::Registers::llintPC): Deleted. +(JSC::MachineThreads::Thread::freeRegisters): Deleted. +(JSC::MachineThreads::Thread::captureStack): Deleted. +* heap/MachineStackMarker.h: +(JSC::MachineThreads::Thread::operator!=): +(JSC::MachineThreads::Thread::suspend): +(JSC::MachineThreads::Thread::resume): +(JSC::MachineThreads::Thread::getRegisters): +(JSC::MachineThreads::Thread::freeRegisters): +(JSC::MachineThreads::Thread::captureStack): +(JSC::MachineThreads::Thread::platformThread): +(JSC::MachineThreads::Thread::stackBase): +(JSC::MachineThreads::Thread::stackEnd): +* runtime/SamplingProfiler.cpp: +(JSC::FrameWalker::isValidFramePointer): +* runtime/VMTraps.cpp: +(JSC::findActiveVMAndStackBounds): + +git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.16@214882 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/JavaScriptCore/heap/MachineStackMarker.cpp | 73 +++++++++++++--------- + Source/JavaScriptCore/heap/MachineStackMarker.h | 41 +++++++++--- + Source/JavaScriptCore/runtime/SamplingProfiler.cpp | 4 +- + 4 files changed, 137 insertions(+), 41 deletions(-) + +diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.cpp b/Source/JavaScriptCore/heap/MachineStackMarker.cpp +index 65eb0cf0d9b..5fea745d2ad 100644 +--- a/Source/JavaScriptCore/heap/MachineStackMarker.cpp ++++ b/Source/JavaScriptCore/heap/MachineStackMarker.cpp +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + #include + + #if OS(DARWIN) +@@ -69,14 +70,14 @@ + // We use SIGUSR2 to suspend and resume machine threads in JavaScriptCore. + static const int SigThreadSuspendResume = SIGUSR2; + static StaticLock globalSignalLock; +-thread_local static std::atomic threadLocalCurrentThread; ++thread_local static std::atomic threadLocalCurrentThread { nullptr }; + + static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) + { + // Touching thread local atomic types from signal handlers is allowed. +- JSC::MachineThreads::Thread* thread = threadLocalCurrentThread.load(); ++ JSC::MachineThreads::ThreadData* threadData = threadLocalCurrentThread.load(); + +- if (thread->suspended.load(std::memory_order_acquire)) { ++ if (threadData->suspended.load(std::memory_order_acquire)) { + // This is signal handler invocation that is intended to be used to resume sigsuspend. + // So this handler invocation itself should not process. + // +@@ -88,9 +89,9 @@ static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) + + ucontext_t* userContext = static_cast(ucontext); + #if CPU(PPC) +- thread->suspendedMachineContext = *userContext->uc_mcontext.uc_regs; ++ threadData->suspendedMachineContext = *userContext->uc_mcontext.uc_regs; + #else +- thread->suspendedMachineContext = userContext->uc_mcontext; ++ threadData->suspendedMachineContext = userContext->uc_mcontext; + #endif + + // Allow suspend caller to see that this thread is suspended. +@@ -99,7 +100,7 @@ static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) + // + // And sem_post emits memory barrier that ensures that suspendedMachineContext is correctly saved. + // http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_11 +- sem_post(&thread->semaphoreForSuspendResume); ++ sem_post(&threadData->semaphoreForSuspendResume); + + // Reaching here, SigThreadSuspendResume is blocked in this handler (this is configured by sigaction's sa_mask). + // So before calling sigsuspend, SigThreadSuspendResume to this thread is deferred. This ensures that the handler is not executed recursively. +@@ -109,7 +110,7 @@ static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) + sigsuspend(&blockedSignalSet); + + // Allow resume caller to see that this thread is resumed. +- sem_post(&thread->semaphoreForSuspendResume); ++ sem_post(&threadData->semaphoreForSuspendResume); + } + #endif // USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN) + +@@ -215,18 +216,29 @@ MachineThreads::~MachineThreads() + } + } + ++static MachineThreads::ThreadData* threadData() ++{ ++ static NeverDestroyed> threadData; ++ return threadData.get(); ++} ++ ++MachineThreads::Thread::Thread(ThreadData* threadData) ++ : data(threadData) ++{ ++ ASSERT(threadData); ++} ++ + Thread* MachineThreads::Thread::createForCurrentThread() + { +- auto stackBounds = wtfThreadData().stack(); +- return new Thread(getCurrentPlatformThread(), stackBounds.origin(), stackBounds.end()); ++ return new Thread(threadData()); + } + + bool MachineThreads::Thread::operator==(const PlatformThread& other) const + { + #if OS(DARWIN) || OS(WINDOWS) +- return platformThread == other; ++ return data->platformThread == other; + #elif USE(PTHREADS) +- return !!pthread_equal(platformThread, other); ++ return !!pthread_equal(data->platformThread, other); + #else + #error Need a way to compare threads on this platform + #endif +@@ -325,11 +337,13 @@ void MachineThreads::gatherFromCurrentThread(ConservativeRoots& conservativeRoot + conservativeRoots.add(currentThreadState.stackTop, currentThreadState.stackOrigin, jitStubRoutines, codeBlocks); + } + +-MachineThreads::Thread::Thread(const PlatformThread& platThread, void* base, void* end) +- : platformThread(platThread) +- , stackBase(base) +- , stackEnd(end) ++MachineThreads::ThreadData::ThreadData() + { ++ auto stackBounds = wtfThreadData().stack(); ++ platformThread = getCurrentPlatformThread(); ++ stackBase = stackBounds.origin(); ++ stackEnd = stackBounds.end(); ++ + #if OS(WINDOWS) + ASSERT(platformThread == GetCurrentThreadId()); + bool isSuccessful = +@@ -362,7 +376,7 @@ MachineThreads::Thread::Thread(const PlatformThread& platThread, void* base, voi + #endif + } + +-MachineThreads::Thread::~Thread() ++MachineThreads::ThreadData::~ThreadData() + { + #if OS(WINDOWS) + CloseHandle(platformThreadHandle); +@@ -371,7 +385,7 @@ MachineThreads::Thread::~Thread() + #endif + } + +-bool MachineThreads::Thread::suspend() ++bool MachineThreads::ThreadData::suspend() + { + #if OS(DARWIN) + kern_return_t result = thread_suspend(platformThread); +@@ -408,7 +422,7 @@ bool MachineThreads::Thread::suspend() + #endif + } + +-void MachineThreads::Thread::resume() ++void MachineThreads::ThreadData::resume() + { + #if OS(DARWIN) + thread_resume(platformThread); +@@ -439,9 +453,9 @@ void MachineThreads::Thread::resume() + #endif + } + +-size_t MachineThreads::Thread::getRegisters(Thread::Registers& registers) ++size_t MachineThreads::ThreadData::getRegisters(ThreadData::Registers& registers) + { +- Thread::Registers::PlatformRegisters& regs = registers.regs; ++ ThreadData::Registers::PlatformRegisters& regs = registers.regs; + #if OS(DARWIN) + #if CPU(X86) + unsigned user_count = sizeof(regs)/sizeof(int); +@@ -496,7 +510,7 @@ size_t MachineThreads::Thread::getRegisters(Thread::Registers& registers) + #endif + } + +-void* MachineThreads::Thread::Registers::stackPointer() const ++void* MachineThreads::ThreadData::Registers::stackPointer() const + { + #if OS(DARWIN) + +@@ -601,7 +615,7 @@ void* MachineThreads::Thread::Registers::stackPointer() const + } + + #if ENABLE(SAMPLING_PROFILER) +-void* MachineThreads::Thread::Registers::framePointer() const ++void* MachineThreads::ThreadData::Registers::framePointer() const + { + #if OS(DARWIN) + +@@ -684,7 +698,7 @@ void* MachineThreads::Thread::Registers::framePointer() const + #endif + } + +-void* MachineThreads::Thread::Registers::instructionPointer() const ++void* MachineThreads::ThreadData::Registers::instructionPointer() const + { + #if OS(DARWIN) + +@@ -765,7 +779,8 @@ void* MachineThreads::Thread::Registers::instructionPointer() const + #error Need a way to get the instruction pointer for another thread on this platform + #endif + } +-void* MachineThreads::Thread::Registers::llintPC() const ++ ++void* MachineThreads::ThreadData::Registers::llintPC() const + { + // LLInt uses regT4 as PC. + #if OS(DARWIN) +@@ -858,9 +873,9 @@ void* MachineThreads::Thread::Registers::llintPC() const + } + #endif // ENABLE(SAMPLING_PROFILER) + +-void MachineThreads::Thread::freeRegisters(Thread::Registers& registers) ++void MachineThreads::ThreadData::freeRegisters(ThreadData::Registers& registers) + { +- Thread::Registers::PlatformRegisters& regs = registers.regs; ++ ThreadData::Registers::PlatformRegisters& regs = registers.regs; + #if USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN) + pthread_attr_destroy(®s.attribute); + #else +@@ -883,7 +898,7 @@ static inline int osRedZoneAdjustment() + return redZoneAdjustment; + } + +-std::pair MachineThreads::Thread::captureStack(void* stackTop) ++std::pair MachineThreads::ThreadData::captureStack(void* stackTop) + { + char* begin = reinterpret_cast_ptr(stackBase); + char* end = bitwise_cast(WTF::roundUpToMultipleOf(reinterpret_cast(stackTop))); +@@ -971,12 +986,12 @@ bool MachineThreads::tryCopyOtherThreadStacks(LockHolder&, void* buffer, size_t + } + + // Re-do the suspension to get the actual failure result for logging. +- kern_return_t error = thread_suspend(thread->platformThread); ++ kern_return_t error = thread_suspend(thread->platformThread()); + ASSERT(error != KERN_SUCCESS); + + WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, + "JavaScript garbage collection encountered an invalid thread (err 0x%x): Thread [%d/%d: %p] platformThread %p.", +- error, index, numberOfThreads, thread, reinterpret_cast(thread->platformThread)); ++ error, index, numberOfThreads, thread, reinterpret_cast(thread->platformThread())); + + // Put the invalid thread on the threadsToBeDeleted list. + // We can't just delete it here because we have suspended other +diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.h b/Source/JavaScriptCore/heap/MachineStackMarker.h +index a5a50870922..da979c582ec 100644 +--- a/Source/JavaScriptCore/heap/MachineStackMarker.h ++++ b/Source/JavaScriptCore/heap/MachineStackMarker.h +@@ -74,14 +74,13 @@ public: + + JS_EXPORT_PRIVATE void addCurrentThread(); // Only needs to be called by clients that can use the same heap from multiple threads. + +- class Thread { ++ class ThreadData { + WTF_MAKE_FAST_ALLOCATED; +- Thread(const PlatformThread& platThread, void* base, void* end); +- + public: +- ~Thread(); ++ ThreadData(); ++ ~ThreadData(); + +- static Thread* createForCurrentThread(); ++ static ThreadData* createForCurrentThread(); + + struct Registers { + void* stackPointer() const; +@@ -118,12 +117,9 @@ public: + #else + #error Need a thread register struct for this platform + #endif +- ++ + PlatformRegisters regs; + }; +- +- bool operator==(const PlatformThread& other) const; +- bool operator!=(const PlatformThread& other) const { return !(*this == other); } + + bool suspend(); + void resume(); +@@ -131,7 +127,6 @@ public: + void freeRegisters(Registers&); + std::pair captureStack(void* stackTop); + +- Thread* next; + PlatformThread platformThread; + void* stackBase; + void* stackEnd; +@@ -145,6 +140,32 @@ public: + #endif + }; + ++ class Thread { ++ WTF_MAKE_FAST_ALLOCATED; ++ Thread(ThreadData*); ++ ++ public: ++ using Registers = ThreadData::Registers; ++ ++ static Thread* createForCurrentThread(); ++ ++ bool operator==(const PlatformThread& other) const; ++ bool operator!=(const PlatformThread& other) const { return !(*this == other); } ++ ++ bool suspend() { return data->suspend(); } ++ void resume() { data->resume(); } ++ size_t getRegisters(Registers& regs) { return data->getRegisters(regs); } ++ void freeRegisters(Registers& regs) { data->freeRegisters(regs); } ++ std::pair captureStack(void* stackTop) { return data->captureStack(stackTop); } ++ ++ const PlatformThread& platformThread() { return data->platformThread; } ++ void* stackBase() const { return data->stackBase; } ++ void* stackEnd() const { return data->stackEnd; } ++ ++ Thread* next; ++ ThreadData* data; ++ }; ++ + Lock& getLock() { return m_registeredThreadsMutex; } + Thread* threadsListHead(const LockHolder&) const { ASSERT(m_registeredThreadsMutex.isLocked()); return m_registeredThreads; } + Thread* machineThreadForCurrentThread(); +diff --git a/Source/JavaScriptCore/runtime/SamplingProfiler.cpp b/Source/JavaScriptCore/runtime/SamplingProfiler.cpp +index a8d953d6622..9326d7a0fc9 100644 +--- a/Source/JavaScriptCore/runtime/SamplingProfiler.cpp ++++ b/Source/JavaScriptCore/runtime/SamplingProfiler.cpp +@@ -169,8 +169,8 @@ protected: + { + uint8_t* fpCast = bitwise_cast(exec); + for (MachineThreads::Thread* thread = m_vm.heap.machineThreads().threadsListHead(m_machineThreadsLocker); thread; thread = thread->next) { +- uint8_t* stackBase = static_cast(thread->stackBase); +- uint8_t* stackLimit = static_cast(thread->stackEnd); ++ uint8_t* stackBase = static_cast(thread->stackBase()); ++ uint8_t* stackLimit = static_cast(thread->stackEnd()); + RELEASE_ASSERT(stackBase); + RELEASE_ASSERT(stackLimit); + if (fpCast <= stackBase && fpCast >= stackLimit) +-- +2.12.2 + diff --git a/0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch b/0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch new file mode 100644 index 0000000..796e637 --- /dev/null +++ b/0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch @@ -0,0 +1,38 @@ +From 7a4822f02bd724c1eb3079158f93331c4090b9ad Mon Sep 17 00:00:00 2001 +From: "commit-queue@webkit.org" + +Date: Wed, 5 Apr 2017 16:50:03 +0000 +Subject: [PATCH] Show a log message when an invalid message is received in non + cocoa ports https://bugs.webkit.org/show_bug.cgi?id=170506 + +Patch by Carlos Garcia Campos on 2017-04-05 +Reviewed by Michael Catanzaro. + +We just crash, but without knowing the details about the message it's impossible to debug. + +* Shared/ChildProcess.cpp: +(WebKit::ChildProcess::didReceiveInvalidMessage): + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@214947 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/WebKit2/Shared/ChildProcess.cpp | 3 ++- + 2 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/Source/WebKit2/Shared/ChildProcess.cpp b/Source/WebKit2/Shared/ChildProcess.cpp +index 060c63ae792..bc1f2d6ab6a 100644 +--- a/Source/WebKit2/Shared/ChildProcess.cpp ++++ b/Source/WebKit2/Shared/ChildProcess.cpp +@@ -197,8 +197,9 @@ void ChildProcess::initializeSandbox(const ChildProcessInitializationParameters& + { + } + +-void ChildProcess::didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference, IPC::StringReference) ++void ChildProcess::didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference messageReceiverName, IPC::StringReference messageName) + { ++ WTFLogAlways("Received invalid message: '%s::%s'", messageReceiverName.toString().data(), messageName.toString().data()); + CRASH(); + } + #endif +-- +2.12.2 + diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 850bf5c..112b68e 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.16.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -21,6 +21,10 @@ Patch0: webkitgtk-2.14.1-user-agent-branding.patch Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=167643 Patch2: gcc7.patch +# https://bugs.webkit.org/show_bug.cgi?id=170450 +Patch3: 0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch +# https://bugs.webkit.org/show_bug.cgi?id=170506 +Patch4: 0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -257,6 +261,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Thu Apr 06 2017 Tomas Popela - 2.16.1-2 +- Add patch for freezing regression + * Tue Apr 04 2017 Tomas Popela - 2.16.1-1 - Update to 2.16.1 From 1c1d5ef171bac498c7bb06cc9482d5817f83283c Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 10 Apr 2017 16:11:37 +0200 Subject: [PATCH 13/75] Enable JIT and bmalloc on aarch64 and MIPS --- webkitgtk4.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 112b68e..705ca55 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.16.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -179,10 +179,10 @@ pushd %{_target_platform} %ifarch s390 aarch64 -DUSE_LD_GOLD=OFF \ %endif -%ifarch s390 s390x ppc %{power64} aarch64 %{mips} +%ifarch s390 s390x ppc %{power64} -DENABLE_JIT=OFF \ %endif -%ifarch s390 s390x ppc %{power64} aarch64 %{mips} +%ifarch s390 s390x ppc %{power64} -DUSE_SYSTEM_MALLOC=ON \ %endif .. @@ -261,6 +261,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Mon Apr 10 2017 Tomas Popela - 2.16.1-3 +- Enable JIT and bmalloc on aarch64 and MIPS + * Thu Apr 06 2017 Tomas Popela - 2.16.1-2 - Add patch for freezing regression From c24eeac162c328573051955b971e5a77243e65f0 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 9 May 2017 07:54:30 -0500 Subject: [PATCH 14/75] Update to 2.17.1 --- .gitignore | 1 + ...C-MachineThreads-does-not-consider-s.patch | 390 ------------------ ...ge-when-an-invalid-message-is-receiv.patch | 38 -- fix-google.patch | 21 + fix-youtube.patch | 12 + sources | 2 +- webkitgtk4.spec | 15 +- 7 files changed, 44 insertions(+), 435 deletions(-) delete mode 100644 0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch delete mode 100644 0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch create mode 100644 fix-google.patch create mode 100644 fix-youtube.patch diff --git a/.gitignore b/.gitignore index 40b1850..f810e82 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,4 @@ /webkitgtk-2.15.92.tar.xz /webkitgtk-2.16.0.tar.xz /webkitgtk-2.16.1.tar.xz +/webkitgtk-2.17.1.tar.xz diff --git a/0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch b/0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch deleted file mode 100644 index 80318f0..0000000 --- a/0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch +++ /dev/null @@ -1,390 +0,0 @@ -From 70c605847496766b0ca59bee03ecadb74e54a159 Mon Sep 17 00:00:00 2001 -From: "carlosgc@webkit.org" - -Date: Tue, 4 Apr 2017 16:12:17 +0000 -Subject: [PATCH] Merge r214319 - [JSC] MachineThreads does not consider - situation that one thread has multiple VMs - https://bugs.webkit.org/show_bug.cgi?id=169819 - -Reviewed by Mark Lam. - -The Linux port of PlatformThread suspend/resume mechanism relies on having a thread -specific singleton thread data, and was relying on MachineThreads::Thread to be this -thread specific singleton. But because MachineThreads::Thread is not a thread specific -singleton, we can get a deadlock in the GTK port's DatabaseProcess. - -This patch fixes this issue by moving per thread data from MachineThreads::Thread to -MachineThreads::ThreadData, where there will only be one instance of -MachineThreads::ThreadData per thread. Each MachineThreads::Thread will now point to -the same MachineThreads::ThreadData for any given thread. - -* heap/MachineStackMarker.cpp: -(pthreadSignalHandlerSuspendResume): -(JSC::threadData): -(JSC::MachineThreads::Thread::Thread): -(JSC::MachineThreads::Thread::createForCurrentThread): -(JSC::MachineThreads::Thread::operator==): -(JSC::MachineThreads::ThreadData::ThreadData): -(JSC::MachineThreads::ThreadData::~ThreadData): -(JSC::MachineThreads::ThreadData::suspend): -(JSC::MachineThreads::ThreadData::resume): -(JSC::MachineThreads::ThreadData::getRegisters): -(JSC::MachineThreads::ThreadData::Registers::stackPointer): -(JSC::MachineThreads::ThreadData::Registers::framePointer): -(JSC::MachineThreads::ThreadData::Registers::instructionPointer): -(JSC::MachineThreads::ThreadData::Registers::llintPC): -(JSC::MachineThreads::ThreadData::freeRegisters): -(JSC::MachineThreads::ThreadData::captureStack): -(JSC::MachineThreads::tryCopyOtherThreadStacks): -(JSC::MachineThreads::Thread::~Thread): Deleted. -(JSC::MachineThreads::Thread::suspend): Deleted. -(JSC::MachineThreads::Thread::resume): Deleted. -(JSC::MachineThreads::Thread::getRegisters): Deleted. -(JSC::MachineThreads::Thread::Registers::stackPointer): Deleted. -(JSC::MachineThreads::Thread::Registers::framePointer): Deleted. -(JSC::MachineThreads::Thread::Registers::instructionPointer): Deleted. -(JSC::MachineThreads::Thread::Registers::llintPC): Deleted. -(JSC::MachineThreads::Thread::freeRegisters): Deleted. -(JSC::MachineThreads::Thread::captureStack): Deleted. -* heap/MachineStackMarker.h: -(JSC::MachineThreads::Thread::operator!=): -(JSC::MachineThreads::Thread::suspend): -(JSC::MachineThreads::Thread::resume): -(JSC::MachineThreads::Thread::getRegisters): -(JSC::MachineThreads::Thread::freeRegisters): -(JSC::MachineThreads::Thread::captureStack): -(JSC::MachineThreads::Thread::platformThread): -(JSC::MachineThreads::Thread::stackBase): -(JSC::MachineThreads::Thread::stackEnd): -* runtime/SamplingProfiler.cpp: -(JSC::FrameWalker::isValidFramePointer): -* runtime/VMTraps.cpp: -(JSC::findActiveVMAndStackBounds): - -git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.16@214882 268f45cc-cd09-0410-ab3c-d52691b4dbfc ---- - Source/JavaScriptCore/heap/MachineStackMarker.cpp | 73 +++++++++++++--------- - Source/JavaScriptCore/heap/MachineStackMarker.h | 41 +++++++++--- - Source/JavaScriptCore/runtime/SamplingProfiler.cpp | 4 +- - 4 files changed, 137 insertions(+), 41 deletions(-) - -diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.cpp b/Source/JavaScriptCore/heap/MachineStackMarker.cpp -index 65eb0cf0d9b..5fea745d2ad 100644 ---- a/Source/JavaScriptCore/heap/MachineStackMarker.cpp -+++ b/Source/JavaScriptCore/heap/MachineStackMarker.cpp -@@ -33,6 +33,7 @@ - #include - #include - #include -+#include - #include - - #if OS(DARWIN) -@@ -69,14 +70,14 @@ - // We use SIGUSR2 to suspend and resume machine threads in JavaScriptCore. - static const int SigThreadSuspendResume = SIGUSR2; - static StaticLock globalSignalLock; --thread_local static std::atomic threadLocalCurrentThread; -+thread_local static std::atomic threadLocalCurrentThread { nullptr }; - - static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) - { - // Touching thread local atomic types from signal handlers is allowed. -- JSC::MachineThreads::Thread* thread = threadLocalCurrentThread.load(); -+ JSC::MachineThreads::ThreadData* threadData = threadLocalCurrentThread.load(); - -- if (thread->suspended.load(std::memory_order_acquire)) { -+ if (threadData->suspended.load(std::memory_order_acquire)) { - // This is signal handler invocation that is intended to be used to resume sigsuspend. - // So this handler invocation itself should not process. - // -@@ -88,9 +89,9 @@ static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) - - ucontext_t* userContext = static_cast(ucontext); - #if CPU(PPC) -- thread->suspendedMachineContext = *userContext->uc_mcontext.uc_regs; -+ threadData->suspendedMachineContext = *userContext->uc_mcontext.uc_regs; - #else -- thread->suspendedMachineContext = userContext->uc_mcontext; -+ threadData->suspendedMachineContext = userContext->uc_mcontext; - #endif - - // Allow suspend caller to see that this thread is suspended. -@@ -99,7 +100,7 @@ static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) - // - // And sem_post emits memory barrier that ensures that suspendedMachineContext is correctly saved. - // http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_11 -- sem_post(&thread->semaphoreForSuspendResume); -+ sem_post(&threadData->semaphoreForSuspendResume); - - // Reaching here, SigThreadSuspendResume is blocked in this handler (this is configured by sigaction's sa_mask). - // So before calling sigsuspend, SigThreadSuspendResume to this thread is deferred. This ensures that the handler is not executed recursively. -@@ -109,7 +110,7 @@ static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) - sigsuspend(&blockedSignalSet); - - // Allow resume caller to see that this thread is resumed. -- sem_post(&thread->semaphoreForSuspendResume); -+ sem_post(&threadData->semaphoreForSuspendResume); - } - #endif // USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN) - -@@ -215,18 +216,29 @@ MachineThreads::~MachineThreads() - } - } - -+static MachineThreads::ThreadData* threadData() -+{ -+ static NeverDestroyed> threadData; -+ return threadData.get(); -+} -+ -+MachineThreads::Thread::Thread(ThreadData* threadData) -+ : data(threadData) -+{ -+ ASSERT(threadData); -+} -+ - Thread* MachineThreads::Thread::createForCurrentThread() - { -- auto stackBounds = wtfThreadData().stack(); -- return new Thread(getCurrentPlatformThread(), stackBounds.origin(), stackBounds.end()); -+ return new Thread(threadData()); - } - - bool MachineThreads::Thread::operator==(const PlatformThread& other) const - { - #if OS(DARWIN) || OS(WINDOWS) -- return platformThread == other; -+ return data->platformThread == other; - #elif USE(PTHREADS) -- return !!pthread_equal(platformThread, other); -+ return !!pthread_equal(data->platformThread, other); - #else - #error Need a way to compare threads on this platform - #endif -@@ -325,11 +337,13 @@ void MachineThreads::gatherFromCurrentThread(ConservativeRoots& conservativeRoot - conservativeRoots.add(currentThreadState.stackTop, currentThreadState.stackOrigin, jitStubRoutines, codeBlocks); - } - --MachineThreads::Thread::Thread(const PlatformThread& platThread, void* base, void* end) -- : platformThread(platThread) -- , stackBase(base) -- , stackEnd(end) -+MachineThreads::ThreadData::ThreadData() - { -+ auto stackBounds = wtfThreadData().stack(); -+ platformThread = getCurrentPlatformThread(); -+ stackBase = stackBounds.origin(); -+ stackEnd = stackBounds.end(); -+ - #if OS(WINDOWS) - ASSERT(platformThread == GetCurrentThreadId()); - bool isSuccessful = -@@ -362,7 +376,7 @@ MachineThreads::Thread::Thread(const PlatformThread& platThread, void* base, voi - #endif - } - --MachineThreads::Thread::~Thread() -+MachineThreads::ThreadData::~ThreadData() - { - #if OS(WINDOWS) - CloseHandle(platformThreadHandle); -@@ -371,7 +385,7 @@ MachineThreads::Thread::~Thread() - #endif - } - --bool MachineThreads::Thread::suspend() -+bool MachineThreads::ThreadData::suspend() - { - #if OS(DARWIN) - kern_return_t result = thread_suspend(platformThread); -@@ -408,7 +422,7 @@ bool MachineThreads::Thread::suspend() - #endif - } - --void MachineThreads::Thread::resume() -+void MachineThreads::ThreadData::resume() - { - #if OS(DARWIN) - thread_resume(platformThread); -@@ -439,9 +453,9 @@ void MachineThreads::Thread::resume() - #endif - } - --size_t MachineThreads::Thread::getRegisters(Thread::Registers& registers) -+size_t MachineThreads::ThreadData::getRegisters(ThreadData::Registers& registers) - { -- Thread::Registers::PlatformRegisters& regs = registers.regs; -+ ThreadData::Registers::PlatformRegisters& regs = registers.regs; - #if OS(DARWIN) - #if CPU(X86) - unsigned user_count = sizeof(regs)/sizeof(int); -@@ -496,7 +510,7 @@ size_t MachineThreads::Thread::getRegisters(Thread::Registers& registers) - #endif - } - --void* MachineThreads::Thread::Registers::stackPointer() const -+void* MachineThreads::ThreadData::Registers::stackPointer() const - { - #if OS(DARWIN) - -@@ -601,7 +615,7 @@ void* MachineThreads::Thread::Registers::stackPointer() const - } - - #if ENABLE(SAMPLING_PROFILER) --void* MachineThreads::Thread::Registers::framePointer() const -+void* MachineThreads::ThreadData::Registers::framePointer() const - { - #if OS(DARWIN) - -@@ -684,7 +698,7 @@ void* MachineThreads::Thread::Registers::framePointer() const - #endif - } - --void* MachineThreads::Thread::Registers::instructionPointer() const -+void* MachineThreads::ThreadData::Registers::instructionPointer() const - { - #if OS(DARWIN) - -@@ -765,7 +779,8 @@ void* MachineThreads::Thread::Registers::instructionPointer() const - #error Need a way to get the instruction pointer for another thread on this platform - #endif - } --void* MachineThreads::Thread::Registers::llintPC() const -+ -+void* MachineThreads::ThreadData::Registers::llintPC() const - { - // LLInt uses regT4 as PC. - #if OS(DARWIN) -@@ -858,9 +873,9 @@ void* MachineThreads::Thread::Registers::llintPC() const - } - #endif // ENABLE(SAMPLING_PROFILER) - --void MachineThreads::Thread::freeRegisters(Thread::Registers& registers) -+void MachineThreads::ThreadData::freeRegisters(ThreadData::Registers& registers) - { -- Thread::Registers::PlatformRegisters& regs = registers.regs; -+ ThreadData::Registers::PlatformRegisters& regs = registers.regs; - #if USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN) - pthread_attr_destroy(®s.attribute); - #else -@@ -883,7 +898,7 @@ static inline int osRedZoneAdjustment() - return redZoneAdjustment; - } - --std::pair MachineThreads::Thread::captureStack(void* stackTop) -+std::pair MachineThreads::ThreadData::captureStack(void* stackTop) - { - char* begin = reinterpret_cast_ptr(stackBase); - char* end = bitwise_cast(WTF::roundUpToMultipleOf(reinterpret_cast(stackTop))); -@@ -971,12 +986,12 @@ bool MachineThreads::tryCopyOtherThreadStacks(LockHolder&, void* buffer, size_t - } - - // Re-do the suspension to get the actual failure result for logging. -- kern_return_t error = thread_suspend(thread->platformThread); -+ kern_return_t error = thread_suspend(thread->platformThread()); - ASSERT(error != KERN_SUCCESS); - - WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, - "JavaScript garbage collection encountered an invalid thread (err 0x%x): Thread [%d/%d: %p] platformThread %p.", -- error, index, numberOfThreads, thread, reinterpret_cast(thread->platformThread)); -+ error, index, numberOfThreads, thread, reinterpret_cast(thread->platformThread())); - - // Put the invalid thread on the threadsToBeDeleted list. - // We can't just delete it here because we have suspended other -diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.h b/Source/JavaScriptCore/heap/MachineStackMarker.h -index a5a50870922..da979c582ec 100644 ---- a/Source/JavaScriptCore/heap/MachineStackMarker.h -+++ b/Source/JavaScriptCore/heap/MachineStackMarker.h -@@ -74,14 +74,13 @@ public: - - JS_EXPORT_PRIVATE void addCurrentThread(); // Only needs to be called by clients that can use the same heap from multiple threads. - -- class Thread { -+ class ThreadData { - WTF_MAKE_FAST_ALLOCATED; -- Thread(const PlatformThread& platThread, void* base, void* end); -- - public: -- ~Thread(); -+ ThreadData(); -+ ~ThreadData(); - -- static Thread* createForCurrentThread(); -+ static ThreadData* createForCurrentThread(); - - struct Registers { - void* stackPointer() const; -@@ -118,12 +117,9 @@ public: - #else - #error Need a thread register struct for this platform - #endif -- -+ - PlatformRegisters regs; - }; -- -- bool operator==(const PlatformThread& other) const; -- bool operator!=(const PlatformThread& other) const { return !(*this == other); } - - bool suspend(); - void resume(); -@@ -131,7 +127,6 @@ public: - void freeRegisters(Registers&); - std::pair captureStack(void* stackTop); - -- Thread* next; - PlatformThread platformThread; - void* stackBase; - void* stackEnd; -@@ -145,6 +140,32 @@ public: - #endif - }; - -+ class Thread { -+ WTF_MAKE_FAST_ALLOCATED; -+ Thread(ThreadData*); -+ -+ public: -+ using Registers = ThreadData::Registers; -+ -+ static Thread* createForCurrentThread(); -+ -+ bool operator==(const PlatformThread& other) const; -+ bool operator!=(const PlatformThread& other) const { return !(*this == other); } -+ -+ bool suspend() { return data->suspend(); } -+ void resume() { data->resume(); } -+ size_t getRegisters(Registers& regs) { return data->getRegisters(regs); } -+ void freeRegisters(Registers& regs) { data->freeRegisters(regs); } -+ std::pair captureStack(void* stackTop) { return data->captureStack(stackTop); } -+ -+ const PlatformThread& platformThread() { return data->platformThread; } -+ void* stackBase() const { return data->stackBase; } -+ void* stackEnd() const { return data->stackEnd; } -+ -+ Thread* next; -+ ThreadData* data; -+ }; -+ - Lock& getLock() { return m_registeredThreadsMutex; } - Thread* threadsListHead(const LockHolder&) const { ASSERT(m_registeredThreadsMutex.isLocked()); return m_registeredThreads; } - Thread* machineThreadForCurrentThread(); -diff --git a/Source/JavaScriptCore/runtime/SamplingProfiler.cpp b/Source/JavaScriptCore/runtime/SamplingProfiler.cpp -index a8d953d6622..9326d7a0fc9 100644 ---- a/Source/JavaScriptCore/runtime/SamplingProfiler.cpp -+++ b/Source/JavaScriptCore/runtime/SamplingProfiler.cpp -@@ -169,8 +169,8 @@ protected: - { - uint8_t* fpCast = bitwise_cast(exec); - for (MachineThreads::Thread* thread = m_vm.heap.machineThreads().threadsListHead(m_machineThreadsLocker); thread; thread = thread->next) { -- uint8_t* stackBase = static_cast(thread->stackBase); -- uint8_t* stackLimit = static_cast(thread->stackEnd); -+ uint8_t* stackBase = static_cast(thread->stackBase()); -+ uint8_t* stackLimit = static_cast(thread->stackEnd()); - RELEASE_ASSERT(stackBase); - RELEASE_ASSERT(stackLimit); - if (fpCast <= stackBase && fpCast >= stackLimit) --- -2.12.2 - diff --git a/0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch b/0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch deleted file mode 100644 index 796e637..0000000 --- a/0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 7a4822f02bd724c1eb3079158f93331c4090b9ad Mon Sep 17 00:00:00 2001 -From: "commit-queue@webkit.org" - -Date: Wed, 5 Apr 2017 16:50:03 +0000 -Subject: [PATCH] Show a log message when an invalid message is received in non - cocoa ports https://bugs.webkit.org/show_bug.cgi?id=170506 - -Patch by Carlos Garcia Campos on 2017-04-05 -Reviewed by Michael Catanzaro. - -We just crash, but without knowing the details about the message it's impossible to debug. - -* Shared/ChildProcess.cpp: -(WebKit::ChildProcess::didReceiveInvalidMessage): - -git-svn-id: http://svn.webkit.org/repository/webkit/trunk@214947 268f45cc-cd09-0410-ab3c-d52691b4dbfc ---- - Source/WebKit2/Shared/ChildProcess.cpp | 3 ++- - 2 files changed, 14 insertions(+), 1 deletion(-) - -diff --git a/Source/WebKit2/Shared/ChildProcess.cpp b/Source/WebKit2/Shared/ChildProcess.cpp -index 060c63ae792..bc1f2d6ab6a 100644 ---- a/Source/WebKit2/Shared/ChildProcess.cpp -+++ b/Source/WebKit2/Shared/ChildProcess.cpp -@@ -197,8 +197,9 @@ void ChildProcess::initializeSandbox(const ChildProcessInitializationParameters& - { - } - --void ChildProcess::didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference, IPC::StringReference) -+void ChildProcess::didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference messageReceiverName, IPC::StringReference messageName) - { -+ WTFLogAlways("Received invalid message: '%s::%s'", messageReceiverName.toString().data(), messageName.toString().data()); - CRASH(); - } - #endif --- -2.12.2 - diff --git a/fix-google.patch b/fix-google.patch new file mode 100644 index 0000000..f815dca --- /dev/null +++ b/fix-google.patch @@ -0,0 +1,21 @@ +Index: /Source/WebCore/platform/UserAgentQuirks.cpp +=================================================================== +--- /Source/WebCore/platform/UserAgentQuirks.cpp (revision 216342) ++++ /Source/WebCore/platform/UserAgentQuirks.cpp (revision 216343) +@@ -42,6 +42,7 @@ + // https://webkit.org/b/142074 carefully before changing. Test that Earth + // view is available in Google Maps. Test Google Calendar. Test downloading +- // the Hangouts browser plugin. Change platformVersionForUAString() to +- // return "FreeBSD amd64" and test Maps and Calendar again. ++ // the Hangouts browser plugin. Test logging out and logging in to a Google ++ // account. Change platformVersionForUAString() to return "FreeBSD amd64" ++ // and test everything again. + if (baseDomain.startsWith("google.")) + return true; +@@ -76,5 +77,5 @@ + static bool urlRequiresFirefoxBrowser(const URL& url) + { +- return isGoogle(url); ++ return isGoogle(url) && url.host() != "accounts.google.com"; + } + diff --git a/fix-youtube.patch b/fix-youtube.patch new file mode 100644 index 0000000..64b8b44 --- /dev/null +++ b/fix-youtube.patch @@ -0,0 +1,12 @@ +Index: /Source/WebCore/platform/UserAgentQuirks.cpp +=================================================================== +--- /Source/WebCore/platform/UserAgentQuirks.cpp (revision 216138) ++++ /Source/WebCore/platform/UserAgentQuirks.cpp (revision 216139) +@@ -65,8 +65,4 @@ + // https://bugs.webkit.org/show_bug.cgi?id=147296 + if (baseDomain == "typekit.net" || baseDomain == "typekit.com") +- return true; +- +- // Needed for YouTube 360 with WebKitGTK+ and WPE (requires ENABLE_MEDIA_SOURCE). +- if (baseDomain == "youtube.com") + return true; diff --git a/sources b/sources index 701baeb..95c6e97 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.16.1.tar.xz) = 4b8de15644d0d0f9814c674020cbbab8628347915b8010977dbe2365ce276ea05b3bf86171400ae8eb5bfdebbadcfabd1efce34a177b5c82aa765bd3351e7010 +SHA512 (webkitgtk-2.17.1.tar.xz) = 94efd18c8100fcdba20793247c948c90d6416ad3073098f5ad97f0de603ef272e47235a6b987f95d3b2ba07b461f0ea1843f0af992adbf5282c4b70537edb62d diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 705ca55..7585e87 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.16.1 -Release: 3%{?dist} +Version: 2.17.1 +Release: 1%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -21,10 +21,10 @@ Patch0: webkitgtk-2.14.1-user-agent-branding.patch Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=167643 Patch2: gcc7.patch -# https://bugs.webkit.org/show_bug.cgi?id=170450 -Patch3: 0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch -# https://bugs.webkit.org/show_bug.cgi?id=170506 -Patch4: 0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch +# https://bugs.webkit.org/show_bug.cgi?id=171770 +Patch3: fix-google.patch +# https://bugs.webkit.org/show_bug.cgi?id=171603 +Patch4: fix-youtube.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -261,6 +261,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue May 09 2017 Michael Catanzaro - 2.17.1-1 +- Update to 2.17.1 + * Mon Apr 10 2017 Tomas Popela - 2.16.1-3 - Enable JIT and bmalloc on aarch64 and MIPS From 38532b3cd8b2d32a8bf9ffe7274957199717dba0 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 9 May 2017 08:12:52 -0500 Subject: [PATCH 15/75] Update to 2.16.2 --- .gitignore | 1 + ...C-MachineThreads-does-not-consider-s.patch | 390 ------------------ ...ge-when-an-invalid-message-is-receiv.patch | 38 -- sources | 2 +- webkitgtk4.spec | 11 +- 5 files changed, 7 insertions(+), 435 deletions(-) delete mode 100644 0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch delete mode 100644 0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch diff --git a/.gitignore b/.gitignore index 40b1850..3361775 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,4 @@ /webkitgtk-2.15.92.tar.xz /webkitgtk-2.16.0.tar.xz /webkitgtk-2.16.1.tar.xz +/webkitgtk-2.16.2.tar.xz diff --git a/0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch b/0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch deleted file mode 100644 index 80318f0..0000000 --- a/0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch +++ /dev/null @@ -1,390 +0,0 @@ -From 70c605847496766b0ca59bee03ecadb74e54a159 Mon Sep 17 00:00:00 2001 -From: "carlosgc@webkit.org" - -Date: Tue, 4 Apr 2017 16:12:17 +0000 -Subject: [PATCH] Merge r214319 - [JSC] MachineThreads does not consider - situation that one thread has multiple VMs - https://bugs.webkit.org/show_bug.cgi?id=169819 - -Reviewed by Mark Lam. - -The Linux port of PlatformThread suspend/resume mechanism relies on having a thread -specific singleton thread data, and was relying on MachineThreads::Thread to be this -thread specific singleton. But because MachineThreads::Thread is not a thread specific -singleton, we can get a deadlock in the GTK port's DatabaseProcess. - -This patch fixes this issue by moving per thread data from MachineThreads::Thread to -MachineThreads::ThreadData, where there will only be one instance of -MachineThreads::ThreadData per thread. Each MachineThreads::Thread will now point to -the same MachineThreads::ThreadData for any given thread. - -* heap/MachineStackMarker.cpp: -(pthreadSignalHandlerSuspendResume): -(JSC::threadData): -(JSC::MachineThreads::Thread::Thread): -(JSC::MachineThreads::Thread::createForCurrentThread): -(JSC::MachineThreads::Thread::operator==): -(JSC::MachineThreads::ThreadData::ThreadData): -(JSC::MachineThreads::ThreadData::~ThreadData): -(JSC::MachineThreads::ThreadData::suspend): -(JSC::MachineThreads::ThreadData::resume): -(JSC::MachineThreads::ThreadData::getRegisters): -(JSC::MachineThreads::ThreadData::Registers::stackPointer): -(JSC::MachineThreads::ThreadData::Registers::framePointer): -(JSC::MachineThreads::ThreadData::Registers::instructionPointer): -(JSC::MachineThreads::ThreadData::Registers::llintPC): -(JSC::MachineThreads::ThreadData::freeRegisters): -(JSC::MachineThreads::ThreadData::captureStack): -(JSC::MachineThreads::tryCopyOtherThreadStacks): -(JSC::MachineThreads::Thread::~Thread): Deleted. -(JSC::MachineThreads::Thread::suspend): Deleted. -(JSC::MachineThreads::Thread::resume): Deleted. -(JSC::MachineThreads::Thread::getRegisters): Deleted. -(JSC::MachineThreads::Thread::Registers::stackPointer): Deleted. -(JSC::MachineThreads::Thread::Registers::framePointer): Deleted. -(JSC::MachineThreads::Thread::Registers::instructionPointer): Deleted. -(JSC::MachineThreads::Thread::Registers::llintPC): Deleted. -(JSC::MachineThreads::Thread::freeRegisters): Deleted. -(JSC::MachineThreads::Thread::captureStack): Deleted. -* heap/MachineStackMarker.h: -(JSC::MachineThreads::Thread::operator!=): -(JSC::MachineThreads::Thread::suspend): -(JSC::MachineThreads::Thread::resume): -(JSC::MachineThreads::Thread::getRegisters): -(JSC::MachineThreads::Thread::freeRegisters): -(JSC::MachineThreads::Thread::captureStack): -(JSC::MachineThreads::Thread::platformThread): -(JSC::MachineThreads::Thread::stackBase): -(JSC::MachineThreads::Thread::stackEnd): -* runtime/SamplingProfiler.cpp: -(JSC::FrameWalker::isValidFramePointer): -* runtime/VMTraps.cpp: -(JSC::findActiveVMAndStackBounds): - -git-svn-id: http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-2.16@214882 268f45cc-cd09-0410-ab3c-d52691b4dbfc ---- - Source/JavaScriptCore/heap/MachineStackMarker.cpp | 73 +++++++++++++--------- - Source/JavaScriptCore/heap/MachineStackMarker.h | 41 +++++++++--- - Source/JavaScriptCore/runtime/SamplingProfiler.cpp | 4 +- - 4 files changed, 137 insertions(+), 41 deletions(-) - -diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.cpp b/Source/JavaScriptCore/heap/MachineStackMarker.cpp -index 65eb0cf0d9b..5fea745d2ad 100644 ---- a/Source/JavaScriptCore/heap/MachineStackMarker.cpp -+++ b/Source/JavaScriptCore/heap/MachineStackMarker.cpp -@@ -33,6 +33,7 @@ - #include - #include - #include -+#include - #include - - #if OS(DARWIN) -@@ -69,14 +70,14 @@ - // We use SIGUSR2 to suspend and resume machine threads in JavaScriptCore. - static const int SigThreadSuspendResume = SIGUSR2; - static StaticLock globalSignalLock; --thread_local static std::atomic threadLocalCurrentThread; -+thread_local static std::atomic threadLocalCurrentThread { nullptr }; - - static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) - { - // Touching thread local atomic types from signal handlers is allowed. -- JSC::MachineThreads::Thread* thread = threadLocalCurrentThread.load(); -+ JSC::MachineThreads::ThreadData* threadData = threadLocalCurrentThread.load(); - -- if (thread->suspended.load(std::memory_order_acquire)) { -+ if (threadData->suspended.load(std::memory_order_acquire)) { - // This is signal handler invocation that is intended to be used to resume sigsuspend. - // So this handler invocation itself should not process. - // -@@ -88,9 +89,9 @@ static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) - - ucontext_t* userContext = static_cast(ucontext); - #if CPU(PPC) -- thread->suspendedMachineContext = *userContext->uc_mcontext.uc_regs; -+ threadData->suspendedMachineContext = *userContext->uc_mcontext.uc_regs; - #else -- thread->suspendedMachineContext = userContext->uc_mcontext; -+ threadData->suspendedMachineContext = userContext->uc_mcontext; - #endif - - // Allow suspend caller to see that this thread is suspended. -@@ -99,7 +100,7 @@ static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) - // - // And sem_post emits memory barrier that ensures that suspendedMachineContext is correctly saved. - // http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_11 -- sem_post(&thread->semaphoreForSuspendResume); -+ sem_post(&threadData->semaphoreForSuspendResume); - - // Reaching here, SigThreadSuspendResume is blocked in this handler (this is configured by sigaction's sa_mask). - // So before calling sigsuspend, SigThreadSuspendResume to this thread is deferred. This ensures that the handler is not executed recursively. -@@ -109,7 +110,7 @@ static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext) - sigsuspend(&blockedSignalSet); - - // Allow resume caller to see that this thread is resumed. -- sem_post(&thread->semaphoreForSuspendResume); -+ sem_post(&threadData->semaphoreForSuspendResume); - } - #endif // USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN) - -@@ -215,18 +216,29 @@ MachineThreads::~MachineThreads() - } - } - -+static MachineThreads::ThreadData* threadData() -+{ -+ static NeverDestroyed> threadData; -+ return threadData.get(); -+} -+ -+MachineThreads::Thread::Thread(ThreadData* threadData) -+ : data(threadData) -+{ -+ ASSERT(threadData); -+} -+ - Thread* MachineThreads::Thread::createForCurrentThread() - { -- auto stackBounds = wtfThreadData().stack(); -- return new Thread(getCurrentPlatformThread(), stackBounds.origin(), stackBounds.end()); -+ return new Thread(threadData()); - } - - bool MachineThreads::Thread::operator==(const PlatformThread& other) const - { - #if OS(DARWIN) || OS(WINDOWS) -- return platformThread == other; -+ return data->platformThread == other; - #elif USE(PTHREADS) -- return !!pthread_equal(platformThread, other); -+ return !!pthread_equal(data->platformThread, other); - #else - #error Need a way to compare threads on this platform - #endif -@@ -325,11 +337,13 @@ void MachineThreads::gatherFromCurrentThread(ConservativeRoots& conservativeRoot - conservativeRoots.add(currentThreadState.stackTop, currentThreadState.stackOrigin, jitStubRoutines, codeBlocks); - } - --MachineThreads::Thread::Thread(const PlatformThread& platThread, void* base, void* end) -- : platformThread(platThread) -- , stackBase(base) -- , stackEnd(end) -+MachineThreads::ThreadData::ThreadData() - { -+ auto stackBounds = wtfThreadData().stack(); -+ platformThread = getCurrentPlatformThread(); -+ stackBase = stackBounds.origin(); -+ stackEnd = stackBounds.end(); -+ - #if OS(WINDOWS) - ASSERT(platformThread == GetCurrentThreadId()); - bool isSuccessful = -@@ -362,7 +376,7 @@ MachineThreads::Thread::Thread(const PlatformThread& platThread, void* base, voi - #endif - } - --MachineThreads::Thread::~Thread() -+MachineThreads::ThreadData::~ThreadData() - { - #if OS(WINDOWS) - CloseHandle(platformThreadHandle); -@@ -371,7 +385,7 @@ MachineThreads::Thread::~Thread() - #endif - } - --bool MachineThreads::Thread::suspend() -+bool MachineThreads::ThreadData::suspend() - { - #if OS(DARWIN) - kern_return_t result = thread_suspend(platformThread); -@@ -408,7 +422,7 @@ bool MachineThreads::Thread::suspend() - #endif - } - --void MachineThreads::Thread::resume() -+void MachineThreads::ThreadData::resume() - { - #if OS(DARWIN) - thread_resume(platformThread); -@@ -439,9 +453,9 @@ void MachineThreads::Thread::resume() - #endif - } - --size_t MachineThreads::Thread::getRegisters(Thread::Registers& registers) -+size_t MachineThreads::ThreadData::getRegisters(ThreadData::Registers& registers) - { -- Thread::Registers::PlatformRegisters& regs = registers.regs; -+ ThreadData::Registers::PlatformRegisters& regs = registers.regs; - #if OS(DARWIN) - #if CPU(X86) - unsigned user_count = sizeof(regs)/sizeof(int); -@@ -496,7 +510,7 @@ size_t MachineThreads::Thread::getRegisters(Thread::Registers& registers) - #endif - } - --void* MachineThreads::Thread::Registers::stackPointer() const -+void* MachineThreads::ThreadData::Registers::stackPointer() const - { - #if OS(DARWIN) - -@@ -601,7 +615,7 @@ void* MachineThreads::Thread::Registers::stackPointer() const - } - - #if ENABLE(SAMPLING_PROFILER) --void* MachineThreads::Thread::Registers::framePointer() const -+void* MachineThreads::ThreadData::Registers::framePointer() const - { - #if OS(DARWIN) - -@@ -684,7 +698,7 @@ void* MachineThreads::Thread::Registers::framePointer() const - #endif - } - --void* MachineThreads::Thread::Registers::instructionPointer() const -+void* MachineThreads::ThreadData::Registers::instructionPointer() const - { - #if OS(DARWIN) - -@@ -765,7 +779,8 @@ void* MachineThreads::Thread::Registers::instructionPointer() const - #error Need a way to get the instruction pointer for another thread on this platform - #endif - } --void* MachineThreads::Thread::Registers::llintPC() const -+ -+void* MachineThreads::ThreadData::Registers::llintPC() const - { - // LLInt uses regT4 as PC. - #if OS(DARWIN) -@@ -858,9 +873,9 @@ void* MachineThreads::Thread::Registers::llintPC() const - } - #endif // ENABLE(SAMPLING_PROFILER) - --void MachineThreads::Thread::freeRegisters(Thread::Registers& registers) -+void MachineThreads::ThreadData::freeRegisters(ThreadData::Registers& registers) - { -- Thread::Registers::PlatformRegisters& regs = registers.regs; -+ ThreadData::Registers::PlatformRegisters& regs = registers.regs; - #if USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN) - pthread_attr_destroy(®s.attribute); - #else -@@ -883,7 +898,7 @@ static inline int osRedZoneAdjustment() - return redZoneAdjustment; - } - --std::pair MachineThreads::Thread::captureStack(void* stackTop) -+std::pair MachineThreads::ThreadData::captureStack(void* stackTop) - { - char* begin = reinterpret_cast_ptr(stackBase); - char* end = bitwise_cast(WTF::roundUpToMultipleOf(reinterpret_cast(stackTop))); -@@ -971,12 +986,12 @@ bool MachineThreads::tryCopyOtherThreadStacks(LockHolder&, void* buffer, size_t - } - - // Re-do the suspension to get the actual failure result for logging. -- kern_return_t error = thread_suspend(thread->platformThread); -+ kern_return_t error = thread_suspend(thread->platformThread()); - ASSERT(error != KERN_SUCCESS); - - WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, - "JavaScript garbage collection encountered an invalid thread (err 0x%x): Thread [%d/%d: %p] platformThread %p.", -- error, index, numberOfThreads, thread, reinterpret_cast(thread->platformThread)); -+ error, index, numberOfThreads, thread, reinterpret_cast(thread->platformThread())); - - // Put the invalid thread on the threadsToBeDeleted list. - // We can't just delete it here because we have suspended other -diff --git a/Source/JavaScriptCore/heap/MachineStackMarker.h b/Source/JavaScriptCore/heap/MachineStackMarker.h -index a5a50870922..da979c582ec 100644 ---- a/Source/JavaScriptCore/heap/MachineStackMarker.h -+++ b/Source/JavaScriptCore/heap/MachineStackMarker.h -@@ -74,14 +74,13 @@ public: - - JS_EXPORT_PRIVATE void addCurrentThread(); // Only needs to be called by clients that can use the same heap from multiple threads. - -- class Thread { -+ class ThreadData { - WTF_MAKE_FAST_ALLOCATED; -- Thread(const PlatformThread& platThread, void* base, void* end); -- - public: -- ~Thread(); -+ ThreadData(); -+ ~ThreadData(); - -- static Thread* createForCurrentThread(); -+ static ThreadData* createForCurrentThread(); - - struct Registers { - void* stackPointer() const; -@@ -118,12 +117,9 @@ public: - #else - #error Need a thread register struct for this platform - #endif -- -+ - PlatformRegisters regs; - }; -- -- bool operator==(const PlatformThread& other) const; -- bool operator!=(const PlatformThread& other) const { return !(*this == other); } - - bool suspend(); - void resume(); -@@ -131,7 +127,6 @@ public: - void freeRegisters(Registers&); - std::pair captureStack(void* stackTop); - -- Thread* next; - PlatformThread platformThread; - void* stackBase; - void* stackEnd; -@@ -145,6 +140,32 @@ public: - #endif - }; - -+ class Thread { -+ WTF_MAKE_FAST_ALLOCATED; -+ Thread(ThreadData*); -+ -+ public: -+ using Registers = ThreadData::Registers; -+ -+ static Thread* createForCurrentThread(); -+ -+ bool operator==(const PlatformThread& other) const; -+ bool operator!=(const PlatformThread& other) const { return !(*this == other); } -+ -+ bool suspend() { return data->suspend(); } -+ void resume() { data->resume(); } -+ size_t getRegisters(Registers& regs) { return data->getRegisters(regs); } -+ void freeRegisters(Registers& regs) { data->freeRegisters(regs); } -+ std::pair captureStack(void* stackTop) { return data->captureStack(stackTop); } -+ -+ const PlatformThread& platformThread() { return data->platformThread; } -+ void* stackBase() const { return data->stackBase; } -+ void* stackEnd() const { return data->stackEnd; } -+ -+ Thread* next; -+ ThreadData* data; -+ }; -+ - Lock& getLock() { return m_registeredThreadsMutex; } - Thread* threadsListHead(const LockHolder&) const { ASSERT(m_registeredThreadsMutex.isLocked()); return m_registeredThreads; } - Thread* machineThreadForCurrentThread(); -diff --git a/Source/JavaScriptCore/runtime/SamplingProfiler.cpp b/Source/JavaScriptCore/runtime/SamplingProfiler.cpp -index a8d953d6622..9326d7a0fc9 100644 ---- a/Source/JavaScriptCore/runtime/SamplingProfiler.cpp -+++ b/Source/JavaScriptCore/runtime/SamplingProfiler.cpp -@@ -169,8 +169,8 @@ protected: - { - uint8_t* fpCast = bitwise_cast(exec); - for (MachineThreads::Thread* thread = m_vm.heap.machineThreads().threadsListHead(m_machineThreadsLocker); thread; thread = thread->next) { -- uint8_t* stackBase = static_cast(thread->stackBase); -- uint8_t* stackLimit = static_cast(thread->stackEnd); -+ uint8_t* stackBase = static_cast(thread->stackBase()); -+ uint8_t* stackLimit = static_cast(thread->stackEnd()); - RELEASE_ASSERT(stackBase); - RELEASE_ASSERT(stackLimit); - if (fpCast <= stackBase && fpCast >= stackLimit) --- -2.12.2 - diff --git a/0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch b/0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch deleted file mode 100644 index 796e637..0000000 --- a/0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 7a4822f02bd724c1eb3079158f93331c4090b9ad Mon Sep 17 00:00:00 2001 -From: "commit-queue@webkit.org" - -Date: Wed, 5 Apr 2017 16:50:03 +0000 -Subject: [PATCH] Show a log message when an invalid message is received in non - cocoa ports https://bugs.webkit.org/show_bug.cgi?id=170506 - -Patch by Carlos Garcia Campos on 2017-04-05 -Reviewed by Michael Catanzaro. - -We just crash, but without knowing the details about the message it's impossible to debug. - -* Shared/ChildProcess.cpp: -(WebKit::ChildProcess::didReceiveInvalidMessage): - -git-svn-id: http://svn.webkit.org/repository/webkit/trunk@214947 268f45cc-cd09-0410-ab3c-d52691b4dbfc ---- - Source/WebKit2/Shared/ChildProcess.cpp | 3 ++- - 2 files changed, 14 insertions(+), 1 deletion(-) - -diff --git a/Source/WebKit2/Shared/ChildProcess.cpp b/Source/WebKit2/Shared/ChildProcess.cpp -index 060c63ae792..bc1f2d6ab6a 100644 ---- a/Source/WebKit2/Shared/ChildProcess.cpp -+++ b/Source/WebKit2/Shared/ChildProcess.cpp -@@ -197,8 +197,9 @@ void ChildProcess::initializeSandbox(const ChildProcessInitializationParameters& - { - } - --void ChildProcess::didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference, IPC::StringReference) -+void ChildProcess::didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference messageReceiverName, IPC::StringReference messageName) - { -+ WTFLogAlways("Received invalid message: '%s::%s'", messageReceiverName.toString().data(), messageName.toString().data()); - CRASH(); - } - #endif --- -2.12.2 - diff --git a/sources b/sources index 701baeb..4a3e943 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.16.1.tar.xz) = 4b8de15644d0d0f9814c674020cbbab8628347915b8010977dbe2365ce276ea05b3bf86171400ae8eb5bfdebbadcfabd1efce34a177b5c82aa765bd3351e7010 +SHA512 (webkitgtk-2.16.2.tar.xz) = 0bd16f663dffd41d713a53e2186576c4a7c42e7f872605a1688c80e8b55408b5f96f1274a1fe24624b4974240e901df5b11d1ff27a03fa2d9950575f1260abc8 diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 112b68e..91f16c5 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.16.1 -Release: 2%{?dist} +Version: 2.16.2 +Release: 1%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -21,10 +21,6 @@ Patch0: webkitgtk-2.14.1-user-agent-branding.patch Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=167643 Patch2: gcc7.patch -# https://bugs.webkit.org/show_bug.cgi?id=170450 -Patch3: 0001-Merge-r214319-JSC-MachineThreads-does-not-consider-s.patch -# https://bugs.webkit.org/show_bug.cgi?id=170506 -Patch4: 0001-Show-a-log-message-when-an-invalid-message-is-receiv.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -261,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue May 09 2017 Michael Catanzaro - 2.16.2-1 +- Update to 2.16.2 + * Thu Apr 06 2017 Tomas Popela - 2.16.1-2 - Add patch for freezing regression From 2a9683ba70f7f42ff204e4546f05c095cc14afe7 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 15 May 2017 10:48:10 +0200 Subject: [PATCH 16/75] Update to 2.17.2 --- .gitignore | 1 + fix-google.patch | 21 --------------------- fix-youtube.patch | 12 ------------ sources | 2 +- webkitgtk4.spec | 9 ++++----- 5 files changed, 6 insertions(+), 39 deletions(-) delete mode 100644 fix-google.patch delete mode 100644 fix-youtube.patch diff --git a/.gitignore b/.gitignore index f810e82..160ccff 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,4 @@ /webkitgtk-2.16.0.tar.xz /webkitgtk-2.16.1.tar.xz /webkitgtk-2.17.1.tar.xz +/webkitgtk-2.17.2.tar.xz diff --git a/fix-google.patch b/fix-google.patch deleted file mode 100644 index f815dca..0000000 --- a/fix-google.patch +++ /dev/null @@ -1,21 +0,0 @@ -Index: /Source/WebCore/platform/UserAgentQuirks.cpp -=================================================================== ---- /Source/WebCore/platform/UserAgentQuirks.cpp (revision 216342) -+++ /Source/WebCore/platform/UserAgentQuirks.cpp (revision 216343) -@@ -42,6 +42,7 @@ - // https://webkit.org/b/142074 carefully before changing. Test that Earth - // view is available in Google Maps. Test Google Calendar. Test downloading -- // the Hangouts browser plugin. Change platformVersionForUAString() to -- // return "FreeBSD amd64" and test Maps and Calendar again. -+ // the Hangouts browser plugin. Test logging out and logging in to a Google -+ // account. Change platformVersionForUAString() to return "FreeBSD amd64" -+ // and test everything again. - if (baseDomain.startsWith("google.")) - return true; -@@ -76,5 +77,5 @@ - static bool urlRequiresFirefoxBrowser(const URL& url) - { -- return isGoogle(url); -+ return isGoogle(url) && url.host() != "accounts.google.com"; - } - diff --git a/fix-youtube.patch b/fix-youtube.patch deleted file mode 100644 index 64b8b44..0000000 --- a/fix-youtube.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: /Source/WebCore/platform/UserAgentQuirks.cpp -=================================================================== ---- /Source/WebCore/platform/UserAgentQuirks.cpp (revision 216138) -+++ /Source/WebCore/platform/UserAgentQuirks.cpp (revision 216139) -@@ -65,8 +65,4 @@ - // https://bugs.webkit.org/show_bug.cgi?id=147296 - if (baseDomain == "typekit.net" || baseDomain == "typekit.com") -- return true; -- -- // Needed for YouTube 360 with WebKitGTK+ and WPE (requires ENABLE_MEDIA_SOURCE). -- if (baseDomain == "youtube.com") - return true; diff --git a/sources b/sources index 95c6e97..bc31d0b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.17.1.tar.xz) = 94efd18c8100fcdba20793247c948c90d6416ad3073098f5ad97f0de603ef272e47235a6b987f95d3b2ba07b461f0ea1843f0af992adbf5282c4b70537edb62d +SHA512 (webkitgtk-2.17.2.tar.xz) = 4aae1a64391c7331bce43cc4cf76ec1e7fd517589fa737f44b9c022b13fbbe862f292f2e8040584a854df36c49619c36ea772bd47e76180f6c637256ddc8d79a diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 7585e87..f859ba8 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.17.1 +Version: 2.17.2 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -21,10 +21,6 @@ Patch0: webkitgtk-2.14.1-user-agent-branding.patch Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=167643 Patch2: gcc7.patch -# https://bugs.webkit.org/show_bug.cgi?id=171770 -Patch3: fix-google.patch -# https://bugs.webkit.org/show_bug.cgi?id=171603 -Patch4: fix-youtube.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -261,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Mon May 15 2017 Tomas Popela - 2.17.2-1 +- Update to 2.17.2 + * Tue May 09 2017 Michael Catanzaro - 2.17.1-1 - Update to 2.17.1 From ca6f0d7140ad36708e21047a7c72a6cb0ffd71b6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 15 May 2017 20:21:27 +0000 Subject: [PATCH 17/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild --- webkitgtk4.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index f859ba8..a837d9d 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.17.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -257,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Mon May 15 2017 Fedora Release Engineering - 2.17.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild + * Mon May 15 2017 Tomas Popela - 2.17.2-1 - Update to 2.17.2 From db8404586bd89ff628315e7be60933c3ff115bb6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 15 May 2017 20:21:32 +0000 Subject: [PATCH 18/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild --- webkitgtk4.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 91f16c5..f6a73b3 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.16.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -257,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Mon May 15 2017 Fedora Release Engineering - 2.16.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild + * Tue May 09 2017 Michael Catanzaro - 2.16.2-1 - Update to 2.16.2 From f93ef446ca5e8701670488a15086b919bd54bf67 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 22 May 2017 11:27:39 +0200 Subject: [PATCH 19/75] Update to 2.17.3 --- .gitignore | 1 + fedora-crypto-policy.patch | 35 ++++++++++------------------------- sources | 2 +- webkitgtk4.spec | 7 +++++-- 4 files changed, 17 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index 160ccff..6605b48 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,4 @@ /webkitgtk-2.16.1.tar.xz /webkitgtk-2.17.1.tar.xz /webkitgtk-2.17.2.tar.xz +/webkitgtk-2.17.3.tar.xz diff --git a/fedora-crypto-policy.patch b/fedora-crypto-policy.patch index cb7c756..cee0eae 100644 --- a/fedora-crypto-policy.patch +++ b/fedora-crypto-policy.patch @@ -1,39 +1,24 @@ -From e583c6f7deb86406f7e0375c560503858f4831ca Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Sun, 19 Jun 2016 21:10:03 -0500 -Subject: [PATCH] https://fedoraproject.org/wiki/Packaging:CryptoPolicies - ---- - Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp | 2 +- - Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp b/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp -index b282e16..ed8bbbd 100644 ---- a/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp -+++ b/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp +diff -up webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.orig webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp +--- webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.orig 2017-05-22 11:25:38.492770258 +0200 ++++ webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp 2017-05-22 11:25:57.212665811 +0200 @@ -39,7 +39,7 @@ int main(int argc, char** argv) // overwrite this priority string if it's already set by the user. // https://bugzilla.gnome.org/show_bug.cgi?id=738633 // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. -- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:%LATEST_RECORD_VERSION:!VERS-SSL3.0:!ARCFOUR-128", 0); -+ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:%LATEST_RECORD_VERSION:!VERS-SSL3.0:!ARCFOUR-128", 0); +- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); ++ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); return NetworkProcessMainUnix(argc, argv); } -diff --git a/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp b/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp -index 5f45d01..2b34ead 100644 ---- a/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp -+++ b/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp +diff -up webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp.orig webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp +--- webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp.orig 2017-05-22 11:26:12.941578052 +0200 ++++ webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp 2017-05-22 11:26:25.051510485 +0200 @@ -39,7 +39,7 @@ int main(int argc, char** argv) // overwrite this priority string if it's already set by the user. // https://bugzilla.gnome.org/show_bug.cgi?id=738633 // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. -- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:%LATEST_RECORD_VERSION:!VERS-SSL3.0:!ARCFOUR-128", 0); -+ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:%LATEST_RECORD_VERSION:!VERS-SSL3.0:!ARCFOUR-128", 0); +- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); ++ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); return WebProcessMainUnix(argc, argv); } --- -2.7.4 - diff --git a/sources b/sources index bc31d0b..35f34fa 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.17.2.tar.xz) = 4aae1a64391c7331bce43cc4cf76ec1e7fd517589fa737f44b9c022b13fbbe862f292f2e8040584a854df36c49619c36ea772bd47e76180f6c637256ddc8d79a +SHA512 (webkitgtk-2.17.3.tar.xz) = 8801e498ed481b5649ead2f219177e2cca10840aa5bc122ab3d1ec61e340dfd32728e06e5968fc821ecb90d3787f6659955db0584effe80b8d22295d48e8845c diff --git a/webkitgtk4.spec b/webkitgtk4.spec index a837d9d..a6b6113 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.17.2 -Release: 2%{?dist} +Version: 2.17.3 +Release: 1%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -257,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Mon May 22 2017 Tomas Popela - 2.17.3-1 +- Update to 2.17.3 + * Mon May 15 2017 Fedora Release Engineering - 2.17.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild From 214df592e5628d680346188dad76208af37b02cc Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 22 May 2017 15:52:14 +0200 Subject: [PATCH 20/75] Fix the compilation on arches where we don't use bmalloc --- webkitgtk4.spec | 2 ++ wtf-system-malloc.patch | 47 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 wtf-system-malloc.patch diff --git a/webkitgtk4.spec b/webkitgtk4.spec index a6b6113..3fdfaab 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -21,6 +21,8 @@ Patch0: webkitgtk-2.14.1-user-agent-branding.patch Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=167643 Patch2: gcc7.patch +# https://bugs.webkit.org/show_bug.cgi?id=172445 +Patch3: wtf-system-malloc.patch BuildRequires: at-spi2-core-devel BuildRequires: bison diff --git a/wtf-system-malloc.patch b/wtf-system-malloc.patch new file mode 100644 index 0000000..98fc656 --- /dev/null +++ b/wtf-system-malloc.patch @@ -0,0 +1,47 @@ +From 6b04633a99730f13518fccd27c32c65c59762763 Mon Sep 17 00:00:00 2001 +From: Tomas Popela +Date: Mon, 22 May 2017 15:47:10 +0200 +Subject: [PATCH] [WTF] Compilation fails with system malloc + +--- + Source/WTF/wtf/RAMSize.cpp | 12 +++++++++++- + 2 files changed, 26 insertions(+), 1 deletion(-) + +diff --git a/Source/WTF/wtf/RAMSize.cpp b/Source/WTF/wtf/RAMSize.cpp +index b017a26bde3..c647307ab91 100644 +--- a/Source/WTF/wtf/RAMSize.cpp ++++ b/Source/WTF/wtf/RAMSize.cpp +@@ -31,12 +31,16 @@ + + #if OS(WINDOWS) + #include ++#if defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC ++#if OS(UNIX) ++#include ++#endif // OS(UNIX) + #else + #include + #endif + + namespace WTF { +- ++ + #if OS(WINDOWS) + static const size_t ramSizeGuess = 512 * MB; + #endif +@@ -50,6 +54,12 @@ static size_t computeRAMSize() + if (!result) + return ramSizeGuess; + return status.ullTotalPhys; ++#elif defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC ++#if OS(UNIX) ++ struct sysinfo si; ++ sysinfo(&si); ++ return si.totalram / MB; ++#endif // OS(UNIX) + #else + return bmalloc::api::availableMemory(); + #endif +-- +2.13.0 + From c5f5b3a966650c30781f9804b449f7496185eb5f Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 22 May 2017 16:03:37 +0200 Subject: [PATCH 21/75] Fix the latest patch --- wtf-system-malloc.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wtf-system-malloc.patch b/wtf-system-malloc.patch index 98fc656..daecf20 100644 --- a/wtf-system-malloc.patch +++ b/wtf-system-malloc.patch @@ -15,7 +15,7 @@ index b017a26bde3..c647307ab91 100644 #if OS(WINDOWS) #include -+#if defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC ++#elif defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC +#if OS(UNIX) +#include +#endif // OS(UNIX) From 27eaaaa205ef49a2d92912265762a5c3c0af15a5 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 23 May 2017 09:21:05 +0200 Subject: [PATCH 22/75] Update the last patch to the upstream version --- wtf-system-malloc.patch | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/wtf-system-malloc.patch b/wtf-system-malloc.patch index daecf20..d551e36 100644 --- a/wtf-system-malloc.patch +++ b/wtf-system-malloc.patch @@ -1,14 +1,14 @@ -From 6b04633a99730f13518fccd27c32c65c59762763 Mon Sep 17 00:00:00 2001 +From 2df6d52ff0997b87df4bbf99a105f9c2f8bab7d1 Mon Sep 17 00:00:00 2001 From: Tomas Popela -Date: Mon, 22 May 2017 15:47:10 +0200 -Subject: [PATCH] [WTF] Compilation fails with system malloc +Date: Tue, 23 May 2017 09:12:02 +0200 +Subject: [PATCH] wip --- - Source/WTF/wtf/RAMSize.cpp | 12 +++++++++++- - 2 files changed, 26 insertions(+), 1 deletion(-) + Source/WTF/wtf/RAMSize.cpp | 14 +++++++++++++- + 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/Source/WTF/wtf/RAMSize.cpp b/Source/WTF/wtf/RAMSize.cpp -index b017a26bde3..c647307ab91 100644 +index b017a26bde3..5d34d3bb0b3 100644 --- a/Source/WTF/wtf/RAMSize.cpp +++ b/Source/WTF/wtf/RAMSize.cpp @@ -31,12 +31,16 @@ @@ -29,7 +29,7 @@ index b017a26bde3..c647307ab91 100644 #if OS(WINDOWS) static const size_t ramSizeGuess = 512 * MB; #endif -@@ -50,6 +54,12 @@ static size_t computeRAMSize() +@@ -50,6 +54,14 @@ static size_t computeRAMSize() if (!result) return ramSizeGuess; return status.ullTotalPhys; @@ -37,7 +37,9 @@ index b017a26bde3..c647307ab91 100644 +#if OS(UNIX) + struct sysinfo si; + sysinfo(&si); -+ return si.totalram / MB; ++ return si.totalram * si.mem_unit; ++#else ++#error "Missing a platform specific way of determining the available RAM" +#endif // OS(UNIX) #else return bmalloc::api::availableMemory(); From 249aefb8cbc42f234bf40d0e6ddc9a1c74b663e2 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 24 May 2017 14:54:44 +0200 Subject: [PATCH 23/75] Update to 2.16.3 --- .gitignore | 1 + fedora-crypto-policy.patch | 35 ++++++++++------------------------- sources | 2 +- webkitgtk4.spec | 7 +++++-- 4 files changed, 17 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index 3361775..bfe7ad2 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,4 @@ /webkitgtk-2.16.0.tar.xz /webkitgtk-2.16.1.tar.xz /webkitgtk-2.16.2.tar.xz +/webkitgtk-2.16.3.tar.xz diff --git a/fedora-crypto-policy.patch b/fedora-crypto-policy.patch index cb7c756..cee0eae 100644 --- a/fedora-crypto-policy.patch +++ b/fedora-crypto-policy.patch @@ -1,39 +1,24 @@ -From e583c6f7deb86406f7e0375c560503858f4831ca Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Sun, 19 Jun 2016 21:10:03 -0500 -Subject: [PATCH] https://fedoraproject.org/wiki/Packaging:CryptoPolicies - ---- - Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp | 2 +- - Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp b/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp -index b282e16..ed8bbbd 100644 ---- a/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp -+++ b/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp +diff -up webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.orig webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp +--- webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.orig 2017-05-22 11:25:38.492770258 +0200 ++++ webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp 2017-05-22 11:25:57.212665811 +0200 @@ -39,7 +39,7 @@ int main(int argc, char** argv) // overwrite this priority string if it's already set by the user. // https://bugzilla.gnome.org/show_bug.cgi?id=738633 // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. -- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:%LATEST_RECORD_VERSION:!VERS-SSL3.0:!ARCFOUR-128", 0); -+ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:%LATEST_RECORD_VERSION:!VERS-SSL3.0:!ARCFOUR-128", 0); +- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); ++ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); return NetworkProcessMainUnix(argc, argv); } -diff --git a/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp b/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp -index 5f45d01..2b34ead 100644 ---- a/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp -+++ b/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp +diff -up webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp.orig webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp +--- webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp.orig 2017-05-22 11:26:12.941578052 +0200 ++++ webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp 2017-05-22 11:26:25.051510485 +0200 @@ -39,7 +39,7 @@ int main(int argc, char** argv) // overwrite this priority string if it's already set by the user. // https://bugzilla.gnome.org/show_bug.cgi?id=738633 // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. -- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:%LATEST_RECORD_VERSION:!VERS-SSL3.0:!ARCFOUR-128", 0); -+ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:%LATEST_RECORD_VERSION:!VERS-SSL3.0:!ARCFOUR-128", 0); +- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); ++ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); return WebProcessMainUnix(argc, argv); } --- -2.7.4 - diff --git a/sources b/sources index 4a3e943..3c4aac0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.16.2.tar.xz) = 0bd16f663dffd41d713a53e2186576c4a7c42e7f872605a1688c80e8b55408b5f96f1274a1fe24624b4974240e901df5b11d1ff27a03fa2d9950575f1260abc8 +SHA512 (webkitgtk-2.16.3.tar.xz) = 551367551ed1bceaf9c70269f229e97972706820c6ae2d4444bc6d8b0992d6de34a156f9c245813c1f1701ce54f5476a44512590acfa6cfd6e67663d94caa91e diff --git a/webkitgtk4.spec b/webkitgtk4.spec index f6a73b3..fe885c3 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.16.2 -Release: 2%{?dist} +Version: 2.16.3 +Release: 1%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -257,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Wed May 24 2017 Tomas Popela - 2.16.3-1 +- Update to 2.16.3 + * Mon May 15 2017 Fedora Release Engineering - 2.16.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild From fedeb167b351c19d0ae832600a79263615d74a19 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 19 Jun 2017 11:34:12 +0200 Subject: [PATCH 24/75] Increase the DIE limit so our debuginfo packages could be size optimized - rhbz#1456261 --- webkitgtk4.spec | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 3fdfaab..e731aed 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.17.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -143,6 +143,11 @@ rm -rf Source/ThirdParty/gtest/ rm -rf Source/ThirdParty/qunit/ %build +# Increase the DIE limit so our debuginfo packages could be size optimized. +# Decreases the size for x86_64 from ~5G to ~1.1G. +# https://bugzilla.redhat.com/show_bug.cgi?id=1456261 +%global _dwz_max_die_limit 250000000 + %ifarch s390 aarch64 # Use linker flags to reduce memory consumption - on other arches the ld.gold is # used and also it doesn't have the --reduce-memory-overheads option @@ -259,6 +264,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Mon Jun 19 2017 Tomas Popela - 2.17.3-2 +- Increase the DIE limit so our debuginfo packages could be size optimized - rhbz#1456261 + * Mon May 22 2017 Tomas Popela - 2.17.3-1 - Update to 2.17.3 From e9d5b2e8cacfa8174ef0b10653819982fee1e495 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 19 Jun 2017 13:17:06 +0200 Subject: [PATCH 25/75] Update to 2.17.4 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 7 ++++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 6605b48..2e28a0e 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,4 @@ /webkitgtk-2.17.1.tar.xz /webkitgtk-2.17.2.tar.xz /webkitgtk-2.17.3.tar.xz +/webkitgtk-2.17.4.tar.xz diff --git a/sources b/sources index 35f34fa..bb7ae95 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.17.3.tar.xz) = 8801e498ed481b5649ead2f219177e2cca10840aa5bc122ab3d1ec61e340dfd32728e06e5968fc821ecb90d3787f6659955db0584effe80b8d22295d48e8845c +SHA512 (webkitgtk-2.17.4.tar.xz) = 356f9b3f3a246fd06047b7226a274ecc2c68b63fa49ebb1f1ecad2ce69fa284bf1bb3619d985c2ccee376a99b8ed990b6db947f4a96c6f96a04ea0095e3d55ed diff --git a/webkitgtk4.spec b/webkitgtk4.spec index e731aed..5fc1864 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.17.3 -Release: 2%{?dist} +Version: 2.17.4 +Release: 1%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -264,7 +264,8 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog -* Mon Jun 19 2017 Tomas Popela - 2.17.3-2 +* Mon Jun 19 2017 Tomas Popela - 2.17.4-1 +- Update to 2.17.4 - Increase the DIE limit so our debuginfo packages could be size optimized - rhbz#1456261 * Mon May 22 2017 Tomas Popela - 2.17.3-1 From 37c684a2a284b0bd71d85a6fafd41c32690b5d55 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 19 Jun 2017 13:59:59 +0200 Subject: [PATCH 26/75] Remove patches that were upstreamed --- gcc7.patch | 12 ---------- webkitgtk4.spec | 4 ---- wtf-system-malloc.patch | 49 ----------------------------------------- 3 files changed, 65 deletions(-) delete mode 100644 gcc7.patch delete mode 100644 wtf-system-malloc.patch diff --git a/gcc7.patch b/gcc7.patch deleted file mode 100644 index 77f02ba..0000000 --- a/gcc7.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up webkitgtk-2.15.90/Source/cmake/OptionsCommon.cmake.gcc7 webkitgtk-2.15.90/Source/cmake/OptionsCommon.cmake ---- webkitgtk-2.15.90/Source/cmake/OptionsCommon.cmake.gcc7 2017-02-21 09:57:13.168916004 +0100 -+++ webkitgtk-2.15.90/Source/cmake/OptionsCommon.cmake 2017-02-21 09:58:12.811563156 +0100 -@@ -41,6 +41,8 @@ if (COMPILER_IS_GCC_OR_CLANG) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-exceptions -fno-strict-aliasing") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-strict-aliasing -fno-rtti") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y") -+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-expansion-to-defined") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-expansion-to-defined") - endif () - - if (COMPILER_IS_CLANG AND CMAKE_GENERATOR STREQUAL "Ninja") diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 5fc1864..afc7b77 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -19,10 +19,6 @@ Patch0: webkitgtk-2.14.1-user-agent-branding.patch # https://fedoraproject.org/wiki/Packaging:CryptoPolicies # https://bugs.webkit.org/show_bug.cgi?id=158785 Patch1: fedora-crypto-policy.patch -# https://bugs.webkit.org/show_bug.cgi?id=167643 -Patch2: gcc7.patch -# https://bugs.webkit.org/show_bug.cgi?id=172445 -Patch3: wtf-system-malloc.patch BuildRequires: at-spi2-core-devel BuildRequires: bison diff --git a/wtf-system-malloc.patch b/wtf-system-malloc.patch deleted file mode 100644 index d551e36..0000000 --- a/wtf-system-malloc.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 2df6d52ff0997b87df4bbf99a105f9c2f8bab7d1 Mon Sep 17 00:00:00 2001 -From: Tomas Popela -Date: Tue, 23 May 2017 09:12:02 +0200 -Subject: [PATCH] wip - ---- - Source/WTF/wtf/RAMSize.cpp | 14 +++++++++++++- - 2 files changed, 28 insertions(+), 1 deletion(-) - -diff --git a/Source/WTF/wtf/RAMSize.cpp b/Source/WTF/wtf/RAMSize.cpp -index b017a26bde3..5d34d3bb0b3 100644 ---- a/Source/WTF/wtf/RAMSize.cpp -+++ b/Source/WTF/wtf/RAMSize.cpp -@@ -31,12 +31,16 @@ - - #if OS(WINDOWS) - #include -+#elif defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC -+#if OS(UNIX) -+#include -+#endif // OS(UNIX) - #else - #include - #endif - - namespace WTF { -- -+ - #if OS(WINDOWS) - static const size_t ramSizeGuess = 512 * MB; - #endif -@@ -50,6 +54,14 @@ static size_t computeRAMSize() - if (!result) - return ramSizeGuess; - return status.ullTotalPhys; -+#elif defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC -+#if OS(UNIX) -+ struct sysinfo si; -+ sysinfo(&si); -+ return si.totalram * si.mem_unit; -+#else -+#error "Missing a platform specific way of determining the available RAM" -+#endif // OS(UNIX) - #else - return bmalloc::api::availableMemory(); - #endif --- -2.13.0 - From d6ca44dda971dac18c71ba7e5ba477dd0f5d9bc0 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 19 Jun 2017 14:40:22 +0200 Subject: [PATCH 27/75] Fix build with gcc 7 --- gcc7-functional.patch | 132 ++++++++++++++++++++++++++++++++++++++++++ webkitgtk4.spec | 2 + 2 files changed, 134 insertions(+) create mode 100644 gcc7-functional.patch diff --git a/gcc7-functional.patch b/gcc7-functional.patch new file mode 100644 index 0000000..8a467f8 --- /dev/null +++ b/gcc7-functional.patch @@ -0,0 +1,132 @@ +diff --git a/Source/JavaScriptCore/API/tests/CompareAndSwapTest.cpp b/Source/JavaScriptCore/API/tests/CompareAndSwapTest.cpp +index d09102e65048871367b4161d994034cebecad62f..7c5b128090438885f7926cc645b8f026ebb587e4 100644 +--- a/Source/JavaScriptCore/API/tests/CompareAndSwapTest.cpp ++++ b/Source/JavaScriptCore/API/tests/CompareAndSwapTest.cpp +@@ -26,6 +26,7 @@ + #include "config.h" + #include "CompareAndSwapTest.h" + ++#include + #include + #include + #include +diff --git a/Source/JavaScriptCore/runtime/VMEntryScope.h b/Source/JavaScriptCore/runtime/VMEntryScope.h +index d37fad6d73cb1391bf7ea71fd411dafe7d763d2b..1b7b267e36f87abf6c0af5426bd7eebadd74f965 100644 +--- a/Source/JavaScriptCore/runtime/VMEntryScope.h ++++ b/Source/JavaScriptCore/runtime/VMEntryScope.h +@@ -25,6 +25,7 @@ + + #pragma once + ++#include + #include + #include + #include +diff --git a/Source/WebCore/Modules/mediastream/MediaStreamRegistry.h b/Source/WebCore/Modules/mediastream/MediaStreamRegistry.h +index 030bce9adb66c172266e1b24857d49ba9206ffdb..947bdfed418c344669b6907887abbd6215733fe6 100644 +--- a/Source/WebCore/Modules/mediastream/MediaStreamRegistry.h ++++ b/Source/WebCore/Modules/mediastream/MediaStreamRegistry.h +@@ -28,6 +28,7 @@ + #if ENABLE(MEDIA_STREAM) + + #include "URLRegistry.h" ++#include + #include + #include + +diff --git a/Source/WebCore/animation/DocumentAnimation.h b/Source/WebCore/animation/DocumentAnimation.h +index 27e6c3d7d83b9bfaf0ef492b3c2a1facc031aef7..ca03391899f77d5c3be6387c8cb9bef45139cdfc 100644 +--- a/Source/WebCore/animation/DocumentAnimation.h ++++ b/Source/WebCore/animation/DocumentAnimation.h +@@ -33,6 +33,7 @@ + #include "AnimationEffect.h" + #include "Supplementable.h" + #include "WebAnimation.h" ++#include + #include + #include + +diff --git a/Source/WebCore/page/WheelEventTestTrigger.h b/Source/WebCore/page/WheelEventTestTrigger.h +index c2b36ddcf465d9d648acc285a50d33c4d1757963..082db7d72335ce9b689b8a029082f8f5c29193fb 100644 +--- a/Source/WebCore/page/WheelEventTestTrigger.h ++++ b/Source/WebCore/page/WheelEventTestTrigger.h +@@ -28,6 +28,7 @@ + + #pragma once + ++#include + #include + #include + #include +diff --git a/Source/WebCore/page/csp/ContentSecurityPolicy.h b/Source/WebCore/page/csp/ContentSecurityPolicy.h +index 3d8bd0c569a0d6df1e423a86e9bc14cdfc18fc21..99a392f0fdd831fce27d3386599df2bafa42bfb3 100644 +--- a/Source/WebCore/page/csp/ContentSecurityPolicy.h ++++ b/Source/WebCore/page/csp/ContentSecurityPolicy.h +@@ -30,6 +30,7 @@ + #include "ContentSecurityPolicyResponseHeaders.h" + #include "SecurityOrigin.h" + #include "SecurityOriginHash.h" ++#include + #include + #include + #include +diff --git a/Source/WebCore/platform/Timer.h b/Source/WebCore/platform/Timer.h +index b3e051e702e3a8ad6f0e4dda779d36ee138ad332..e3fd7b96cd93bf9fa2706dbc4b5807b570ed56c5 100644 +--- a/Source/WebCore/platform/Timer.h ++++ b/Source/WebCore/platform/Timer.h +@@ -25,6 +25,7 @@ + + #pragma once + ++#include + #include + #include + #include +diff --git a/Source/WebCore/platform/graphics/gstreamer/MainThreadNotifier.h b/Source/WebCore/platform/graphics/gstreamer/MainThreadNotifier.h +index 96b587ff946263614110342f47fa31afb5c1d3f4..f14050dd2ef4469c018092a5d7d872e06c1e8100 100644 +--- a/Source/WebCore/platform/graphics/gstreamer/MainThreadNotifier.h ++++ b/Source/WebCore/platform/graphics/gstreamer/MainThreadNotifier.h +@@ -18,6 +18,7 @@ + + #pragma once + ++#include + #include + #include + #include +diff --git a/Source/WebCore/platform/network/NetworkStorageSession.h b/Source/WebCore/platform/network/NetworkStorageSession.h +index 7ce0d98c29bfe4064350bda8b68ae3eb7da21ae3..b0976d975206288e714dbc0fccb5646b33758915 100644 +--- a/Source/WebCore/platform/network/NetworkStorageSession.h ++++ b/Source/WebCore/platform/network/NetworkStorageSession.h +@@ -27,6 +27,7 @@ + + #include "CredentialStorage.h" + #include "SessionID.h" ++#include + #include + #include + +diff --git a/Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp b/Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp +index db596728f30360ae8a8af0edf1b63081b507b4ea..fff6b08bb834442374391eebd5eeb674b989ca44 100644 +--- a/Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp ++++ b/Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp +@@ -29,6 +29,7 @@ + #include "DeletedAddressOfOperator.h" + #include "MoveOnly.h" + #include "RefLogger.h" ++#include + #include + #include + +diff --git a/Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h b/Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h +index 3715eb91e090076f8429224e502b400a3cf8a8fe..3b3d13fabe7b19915e17a8504504d7013777e121 100644 +--- a/Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h ++++ b/Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h +@@ -17,6 +17,7 @@ + * Boston, MA 02110-1301, USA. + */ + ++#include + #include + #include + #include diff --git a/webkitgtk4.spec b/webkitgtk4.spec index afc7b77..b9c3629 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -19,6 +19,8 @@ Patch0: webkitgtk-2.14.1-user-agent-branding.patch # https://fedoraproject.org/wiki/Packaging:CryptoPolicies # https://bugs.webkit.org/show_bug.cgi?id=158785 Patch1: fedora-crypto-policy.patch +# https://bugs.webkit.org/show_bug.cgi?id=173544 +Patch2: gcc7-functional.patch BuildRequires: at-spi2-core-devel BuildRequires: bison From 48f41182c3df9bc8bcc4defc28da53c51fde49c1 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 20 Jun 2017 11:42:42 +0200 Subject: [PATCH 28/75] Fix compilation on secondary arches --- machine-context.patch | 38 ++++++++++++++++++++++++++++++++++++++ webkitgtk4.spec | 2 ++ 2 files changed, 40 insertions(+) create mode 100644 machine-context.patch diff --git a/machine-context.patch b/machine-context.patch new file mode 100644 index 0000000..fb566de --- /dev/null +++ b/machine-context.patch @@ -0,0 +1,38 @@ +diff --git a/Source/WTF/wtf/threads/Signals.cpp b/Source/WTF/wtf/threads/Signals.cpp +index f929952a4a13837162ffce395e2492cdb402ce1c..f01e39113b0c62190bdbef13eaba22a0e1489bc2 100644 +--- a/Source/WTF/wtf/threads/Signals.cpp ++++ b/Source/WTF/wtf/threads/Signals.cpp +@@ -26,7 +26,7 @@ + #include "config.h" + #include "Signals.h" + +-#if USE(PTHREADS) ++#if USE(PTHREADS) && HAVE(MACHINE_CONTEXT) + + #if HAVE(MACH_EXCEPTIONS) + extern "C" { +@@ -361,4 +361,4 @@ void jscSignalHandler(int sig, siginfo_t* info, void* ucontext) + + } // namespace WTF + +-#endif // USE(PTHREADS) ++#endif // USE(PTHREADS) && HAVE(MACHINE_CONTEXT) +diff --git a/Source/WTF/wtf/threads/Signals.h b/Source/WTF/wtf/threads/Signals.h +index f4bb5305a4ae39ca1aa39b131db3aef2bdb1030a..2576fad5a004833208c5bc250e5470d378f752b4 100644 +--- a/Source/WTF/wtf/threads/Signals.h ++++ b/Source/WTF/wtf/threads/Signals.h +@@ -25,7 +25,7 @@ + + #pragma once + +-#if USE(PTHREADS) ++#if USE(PTHREADS) && HAVE(MACHINE_CONTEXT) + + #include + #include +@@ -116,4 +116,4 @@ using WTF::fromSystemSignal; + using WTF::SignalAction; + using WTF::installSignalHandler; + +-#endif // USE(PTHREADS) ++#endif // USE(PTHREADS) && HAVE(MACHINE_CONTEXT) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index b9c3629..ed8b1f1 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -21,6 +21,8 @@ Patch0: webkitgtk-2.14.1-user-agent-branding.patch Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=173544 Patch2: gcc7-functional.patch +# https://bugs.webkit.org/show_bug.cgi?id=173590 +Patch3: machine-context.patch BuildRequires: at-spi2-core-devel BuildRequires: bison From c4a08e27970cd9931523928ca1fb3241487b4287 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 20 Jun 2017 14:11:41 +0200 Subject: [PATCH 29/75] Update to 2.16.4 Fix CLoop crashes on big endian arches --- .gitignore | 1 + cloop-big-endians.patch | 30 ++++++++++++++++++++++++++++++ sources | 2 +- webkitgtk4.spec | 8 +++++++- 4 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 cloop-big-endians.patch diff --git a/.gitignore b/.gitignore index bfe7ad2..ecb0db2 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,4 @@ /webkitgtk-2.16.1.tar.xz /webkitgtk-2.16.2.tar.xz /webkitgtk-2.16.3.tar.xz +/webkitgtk-2.16.4.tar.xz diff --git a/cloop-big-endians.patch b/cloop-big-endians.patch new file mode 100644 index 0000000..7bb12df --- /dev/null +++ b/cloop-big-endians.patch @@ -0,0 +1,30 @@ +diff -up webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp.b132333 webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp +--- webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp.b132333 2017-02-07 09:05:07.000000000 +0100 ++++ webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp 2017-06-16 10:34:57.859748036 +0200 +@@ -2186,7 +2186,12 @@ void CodeBlock::finishCreation(VM& vm, S + instructions[i + 5].u.watchpointSet = op.watchpointSet; + else if (op.structure) + instructions[i + 5].u.structure.set(vm, this, op.structure); +- instructions[i + 6].u.pointer = reinterpret_cast(op.operand); ++ ++ if (op.type == ClosureVar || op.type == ClosureVarWithVarInjectionChecks || op.type == GlobalProperty || op.type == GlobalPropertyWithVarInjectionChecks || op.type == ModuleVar) ++ instructions[i + 6].u.operand = op.operand; ++ else ++ instructions[i + 6].u.pointer = reinterpret_cast(op.operand); ++ + break; + } + +@@ -2222,7 +2227,11 @@ void CodeBlock::finishCreation(VM& vm, S + op.watchpointSet->invalidate(vm, PutToScopeFireDetail(this, ident)); + } else if (op.structure) + instructions[i + 5].u.structure.set(vm, this, op.structure); +- instructions[i + 6].u.pointer = reinterpret_cast(op.operand); ++ ++ if (op.type == ClosureVar || op.type == ClosureVarWithVarInjectionChecks || op.type == GlobalProperty || op.type == GlobalPropertyWithVarInjectionChecks || op.type == ModuleVar) ++ instructions[i + 6].u.operand = op.operand; ++ else ++ instructions[i + 6].u.pointer = reinterpret_cast(op.operand); + + break; + } diff --git a/sources b/sources index 3c4aac0..4f6374a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.16.3.tar.xz) = 551367551ed1bceaf9c70269f229e97972706820c6ae2d4444bc6d8b0992d6de34a156f9c245813c1f1701ce54f5476a44512590acfa6cfd6e67663d94caa91e +SHA512 (webkitgtk-2.16.4.tar.xz) = 9643b40f5425cb6c13daf39cbe66db7103e588c8a6a1822709d1b2d24ddf73662c139337327a403c25678cec96df7e5ccf186c14aca162b6f32b5bc31310709c diff --git a/webkitgtk4.spec b/webkitgtk4.spec index fe885c3..98348d9 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.16.3 +Version: 2.16.4 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -21,6 +21,8 @@ Patch0: webkitgtk-2.14.1-user-agent-branding.patch Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=167643 Patch2: gcc7.patch +# https://bugs.webkit.org/show_bug.cgi?id=132333 +Patch3: cloop-big-endians.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -257,6 +259,10 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue Jun 20 2017 Tomas Popela - 2.16.4-1 +- Update to 2.16.4 +- Fix CLoop crashes on big endian arches + * Wed May 24 2017 Tomas Popela - 2.16.3-1 - Update to 2.16.3 From 78d867a7c3f3bb048d7f046e62cd0556a799c677 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 21 Jun 2017 09:54:56 +0200 Subject: [PATCH 30/75] Take two on increasing the DIE limit --- webkitgtk4.spec | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index ed8b1f1..7bec9f9 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.17.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -147,6 +147,10 @@ rm -rf Source/ThirdParty/qunit/ # Decreases the size for x86_64 from ~5G to ~1.1G. # https://bugzilla.redhat.com/show_bug.cgi?id=1456261 %global _dwz_max_die_limit 250000000 +# The _dwz_max_die_limit is being overridden by the arch specific ones from the +# redhat-rpm-config so we need to set the arch specific ones as well - now it +# is only needed for x86_64. +%global _dwz_max_die_limit_x86_64 250000000 %ifarch s390 aarch64 # Use linker flags to reduce memory consumption - on other arches the ld.gold is @@ -264,6 +268,10 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Wed Jun 21 2017 Tomas Popela - 2.17.4-2 +- Take two on increasing the DIE limit as the _dwz_max_die_limit is being + overridden by the arch specific ones from the redhat-rpm-config + * Mon Jun 19 2017 Tomas Popela - 2.17.4-1 - Update to 2.17.4 - Increase the DIE limit so our debuginfo packages could be size optimized - rhbz#1456261 From dc72cf7a2008761e5bd6f1e4618e51459e2471aa Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 27 Jun 2017 10:26:38 +0200 Subject: [PATCH 31/75] Update to 2.16.5 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index ecb0db2..ce77e45 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,4 @@ /webkitgtk-2.16.2.tar.xz /webkitgtk-2.16.3.tar.xz /webkitgtk-2.16.4.tar.xz +/webkitgtk-2.16.5.tar.xz diff --git a/sources b/sources index 4f6374a..b9720ed 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.16.4.tar.xz) = 9643b40f5425cb6c13daf39cbe66db7103e588c8a6a1822709d1b2d24ddf73662c139337327a403c25678cec96df7e5ccf186c14aca162b6f32b5bc31310709c +SHA512 (webkitgtk-2.16.5.tar.xz) = 9d7573da44267edcd83b4918e5f1e0516eb8d84c58ac6b239a2328448f96b39067b62bcd18e7d730ec0ef44b9f4b0a03712d17f9f465f00346a1f45a0a4ebb10 diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 98348d9..1fc0a86 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.16.4 +Version: 2.16.5 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -259,6 +259,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue Jun 27 2017 Tomas Popela - 2.16.5-1 +- Update to 2.16.5 + * Tue Jun 20 2017 Tomas Popela - 2.16.4-1 - Update to 2.16.4 - Fix CLoop crashes on big endian arches From cf7fc828d1c426508557078e5917bd2e1a222388 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 17 Jul 2017 20:52:47 +0200 Subject: [PATCH 32/75] Add a missing build dep --- webkitgtk4.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 7bec9f9..9a6e069 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -55,6 +55,7 @@ BuildRequires: libXt-devel BuildRequires: libwayland-client-devel BuildRequires: libwayland-egl-devel BuildRequires: libwayland-server-devel +BuildRequires: mesa-libEGL-devel BuildRequires: mesa-libGL-devel BuildRequires: pcre-devel BuildRequires: perl-Switch From 22bb3816cab3ad65babe80d5d75f88f93aa63558 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 18 Jul 2017 23:40:49 +0100 Subject: [PATCH 33/75] Bump release and rebuild to attempt to fix _ZSt11__once_call dynamic linking problem (RHBZ#1470692). I tested this first in a scratch build and it appears to have fixed the problem I was having with emacs on ppc64le. --- webkitgtk4.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 9a6e069..801bfa4 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.17.4 -Release: 2%{?dist} +Release: 3%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -269,6 +269,10 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue Jul 18 2017 Richard W.M. Jones - 2.17.4-3 +- Bump release and rebuild to attempt to fix _ZSt11__once_call + dynamic linking problem (RHBZ#1470692). + * Wed Jun 21 2017 Tomas Popela - 2.17.4-2 - Take two on increasing the DIE limit as the _dwz_max_die_limit is being overridden by the arch specific ones from the redhat-rpm-config From 09677f6049d2da1177c71a5af5b0ead58ccd6b0d Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Thu, 20 Jul 2017 14:41:03 +0200 Subject: [PATCH 34/75] Rebuild for rhbz#1470692 --- webkitgtk4.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 801bfa4..e656675 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.17.4 -Release: 3%{?dist} +Release: 4%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -269,6 +269,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Thu Jul 20 2017 Tomas Popela - 2.17.4-4 +- Rebuild for rhbz#1470692 + * Tue Jul 18 2017 Richard W.M. Jones - 2.17.4-3 - Bump release and rebuild to attempt to fix _ZSt11__once_call dynamic linking problem (RHBZ#1470692). From 80cede840da4ccc9e5a85ba7d98ae0df66306872 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 24 Jul 2017 14:49:08 +0200 Subject: [PATCH 35/75] Update to 2.16.6 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index ce77e45..fbba9b4 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,4 @@ /webkitgtk-2.16.3.tar.xz /webkitgtk-2.16.4.tar.xz /webkitgtk-2.16.5.tar.xz +/webkitgtk-2.16.6.tar.xz diff --git a/sources b/sources index b9720ed..042ed15 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.16.5.tar.xz) = 9d7573da44267edcd83b4918e5f1e0516eb8d84c58ac6b239a2328448f96b39067b62bcd18e7d730ec0ef44b9f4b0a03712d17f9f465f00346a1f45a0a4ebb10 +SHA512 (webkitgtk-2.16.6.tar.xz) = bb488d7a60e4d6f9683ac343852a75854ef73e6b5aa093361ffe2d08e71e2f11c19da4447f9937221e518cda784bdacfcfd151f9395605a1957380fbc5b1533b diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 1fc0a86..6cd40d8 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.16.5 +Version: 2.16.6 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -259,6 +259,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Mon Jul 24 2017 Tomas Popela - 2.16.6-1 +- Update to 2.16.6 + * Tue Jun 27 2017 Tomas Popela - 2.16.5-1 - Update to 2.16.5 From bcb93fa2b31ffc8cdccbf4c545f12e86f97680b1 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 26 Jul 2017 10:43:24 +0200 Subject: [PATCH 36/75] Update to 2.17.5 --- .gitignore | 1 + fedora-crypto-policy.patch | 18 ++--- gcc7-functional.patch | 132 ------------------------------------- machine-context.patch | 38 ----------- sources | 2 +- webkitgtk4.spec | 10 +-- 6 files changed, 16 insertions(+), 185 deletions(-) delete mode 100644 gcc7-functional.patch delete mode 100644 machine-context.patch diff --git a/.gitignore b/.gitignore index 2e28a0e..bb016ec 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,4 @@ /webkitgtk-2.17.2.tar.xz /webkitgtk-2.17.3.tar.xz /webkitgtk-2.17.4.tar.xz +/webkitgtk-2.17.5.tar.xz diff --git a/fedora-crypto-policy.patch b/fedora-crypto-policy.patch index cee0eae..4b84f0f 100644 --- a/fedora-crypto-policy.patch +++ b/fedora-crypto-policy.patch @@ -1,6 +1,6 @@ -diff -up webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.orig webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp ---- webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.orig 2017-05-22 11:25:38.492770258 +0200 -+++ webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp 2017-05-22 11:25:57.212665811 +0200 +diff -up webkitgtk-2.17.5/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.fedora-crypto-policy webkitgtk-2.17.5/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp +--- webkitgtk-2.17.5/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.fedora-crypto-policy 2017-07-26 10:41:35.729680485 +0200 ++++ webkitgtk-2.17.5/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp 2017-07-26 10:41:47.709611761 +0200 @@ -39,7 +39,7 @@ int main(int argc, char** argv) // overwrite this priority string if it's already set by the user. // https://bugzilla.gnome.org/show_bug.cgi?id=738633 @@ -10,15 +10,15 @@ diff -up webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkP return NetworkProcessMainUnix(argc, argv); } -diff -up webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp.orig webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp ---- webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp.orig 2017-05-22 11:26:12.941578052 +0200 -+++ webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp 2017-05-22 11:26:25.051510485 +0200 -@@ -39,7 +39,7 @@ int main(int argc, char** argv) +diff -up webkitgtk-2.17.5/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.fedora-crypto-policy webkitgtk-2.17.5/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp +--- webkitgtk-2.17.5/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.fedora-crypto-policy 2017-07-26 10:38:08.202870988 +0200 ++++ webkitgtk-2.17.5/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp 2017-07-26 10:38:35.342715297 +0200 +@@ -43,7 +43,7 @@ int main(int argc, char** argv) // overwrite this priority string if it's already set by the user. // https://bugzilla.gnome.org/show_bug.cgi?id=738633 // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. - setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); + setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); - return WebProcessMainUnix(argc, argv); - } + #if USE(GCRYPT) + // Call gcry_check_version() before any other libgcrypt call, ignoring the diff --git a/gcc7-functional.patch b/gcc7-functional.patch deleted file mode 100644 index 8a467f8..0000000 --- a/gcc7-functional.patch +++ /dev/null @@ -1,132 +0,0 @@ -diff --git a/Source/JavaScriptCore/API/tests/CompareAndSwapTest.cpp b/Source/JavaScriptCore/API/tests/CompareAndSwapTest.cpp -index d09102e65048871367b4161d994034cebecad62f..7c5b128090438885f7926cc645b8f026ebb587e4 100644 ---- a/Source/JavaScriptCore/API/tests/CompareAndSwapTest.cpp -+++ b/Source/JavaScriptCore/API/tests/CompareAndSwapTest.cpp -@@ -26,6 +26,7 @@ - #include "config.h" - #include "CompareAndSwapTest.h" - -+#include - #include - #include - #include -diff --git a/Source/JavaScriptCore/runtime/VMEntryScope.h b/Source/JavaScriptCore/runtime/VMEntryScope.h -index d37fad6d73cb1391bf7ea71fd411dafe7d763d2b..1b7b267e36f87abf6c0af5426bd7eebadd74f965 100644 ---- a/Source/JavaScriptCore/runtime/VMEntryScope.h -+++ b/Source/JavaScriptCore/runtime/VMEntryScope.h -@@ -25,6 +25,7 @@ - - #pragma once - -+#include - #include - #include - #include -diff --git a/Source/WebCore/Modules/mediastream/MediaStreamRegistry.h b/Source/WebCore/Modules/mediastream/MediaStreamRegistry.h -index 030bce9adb66c172266e1b24857d49ba9206ffdb..947bdfed418c344669b6907887abbd6215733fe6 100644 ---- a/Source/WebCore/Modules/mediastream/MediaStreamRegistry.h -+++ b/Source/WebCore/Modules/mediastream/MediaStreamRegistry.h -@@ -28,6 +28,7 @@ - #if ENABLE(MEDIA_STREAM) - - #include "URLRegistry.h" -+#include - #include - #include - -diff --git a/Source/WebCore/animation/DocumentAnimation.h b/Source/WebCore/animation/DocumentAnimation.h -index 27e6c3d7d83b9bfaf0ef492b3c2a1facc031aef7..ca03391899f77d5c3be6387c8cb9bef45139cdfc 100644 ---- a/Source/WebCore/animation/DocumentAnimation.h -+++ b/Source/WebCore/animation/DocumentAnimation.h -@@ -33,6 +33,7 @@ - #include "AnimationEffect.h" - #include "Supplementable.h" - #include "WebAnimation.h" -+#include - #include - #include - -diff --git a/Source/WebCore/page/WheelEventTestTrigger.h b/Source/WebCore/page/WheelEventTestTrigger.h -index c2b36ddcf465d9d648acc285a50d33c4d1757963..082db7d72335ce9b689b8a029082f8f5c29193fb 100644 ---- a/Source/WebCore/page/WheelEventTestTrigger.h -+++ b/Source/WebCore/page/WheelEventTestTrigger.h -@@ -28,6 +28,7 @@ - - #pragma once - -+#include - #include - #include - #include -diff --git a/Source/WebCore/page/csp/ContentSecurityPolicy.h b/Source/WebCore/page/csp/ContentSecurityPolicy.h -index 3d8bd0c569a0d6df1e423a86e9bc14cdfc18fc21..99a392f0fdd831fce27d3386599df2bafa42bfb3 100644 ---- a/Source/WebCore/page/csp/ContentSecurityPolicy.h -+++ b/Source/WebCore/page/csp/ContentSecurityPolicy.h -@@ -30,6 +30,7 @@ - #include "ContentSecurityPolicyResponseHeaders.h" - #include "SecurityOrigin.h" - #include "SecurityOriginHash.h" -+#include - #include - #include - #include -diff --git a/Source/WebCore/platform/Timer.h b/Source/WebCore/platform/Timer.h -index b3e051e702e3a8ad6f0e4dda779d36ee138ad332..e3fd7b96cd93bf9fa2706dbc4b5807b570ed56c5 100644 ---- a/Source/WebCore/platform/Timer.h -+++ b/Source/WebCore/platform/Timer.h -@@ -25,6 +25,7 @@ - - #pragma once - -+#include - #include - #include - #include -diff --git a/Source/WebCore/platform/graphics/gstreamer/MainThreadNotifier.h b/Source/WebCore/platform/graphics/gstreamer/MainThreadNotifier.h -index 96b587ff946263614110342f47fa31afb5c1d3f4..f14050dd2ef4469c018092a5d7d872e06c1e8100 100644 ---- a/Source/WebCore/platform/graphics/gstreamer/MainThreadNotifier.h -+++ b/Source/WebCore/platform/graphics/gstreamer/MainThreadNotifier.h -@@ -18,6 +18,7 @@ - - #pragma once - -+#include - #include - #include - #include -diff --git a/Source/WebCore/platform/network/NetworkStorageSession.h b/Source/WebCore/platform/network/NetworkStorageSession.h -index 7ce0d98c29bfe4064350bda8b68ae3eb7da21ae3..b0976d975206288e714dbc0fccb5646b33758915 100644 ---- a/Source/WebCore/platform/network/NetworkStorageSession.h -+++ b/Source/WebCore/platform/network/NetworkStorageSession.h -@@ -27,6 +27,7 @@ - - #include "CredentialStorage.h" - #include "SessionID.h" -+#include - #include - #include - -diff --git a/Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp b/Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp -index db596728f30360ae8a8af0edf1b63081b507b4ea..fff6b08bb834442374391eebd5eeb674b989ca44 100644 ---- a/Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp -+++ b/Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp -@@ -29,6 +29,7 @@ - #include "DeletedAddressOfOperator.h" - #include "MoveOnly.h" - #include "RefLogger.h" -+#include - #include - #include - -diff --git a/Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h b/Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h -index 3715eb91e090076f8429224e502b400a3cf8a8fe..3b3d13fabe7b19915e17a8504504d7013777e121 100644 ---- a/Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h -+++ b/Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h -@@ -17,6 +17,7 @@ - * Boston, MA 02110-1301, USA. - */ - -+#include - #include - #include - #include diff --git a/machine-context.patch b/machine-context.patch deleted file mode 100644 index fb566de..0000000 --- a/machine-context.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/Source/WTF/wtf/threads/Signals.cpp b/Source/WTF/wtf/threads/Signals.cpp -index f929952a4a13837162ffce395e2492cdb402ce1c..f01e39113b0c62190bdbef13eaba22a0e1489bc2 100644 ---- a/Source/WTF/wtf/threads/Signals.cpp -+++ b/Source/WTF/wtf/threads/Signals.cpp -@@ -26,7 +26,7 @@ - #include "config.h" - #include "Signals.h" - --#if USE(PTHREADS) -+#if USE(PTHREADS) && HAVE(MACHINE_CONTEXT) - - #if HAVE(MACH_EXCEPTIONS) - extern "C" { -@@ -361,4 +361,4 @@ void jscSignalHandler(int sig, siginfo_t* info, void* ucontext) - - } // namespace WTF - --#endif // USE(PTHREADS) -+#endif // USE(PTHREADS) && HAVE(MACHINE_CONTEXT) -diff --git a/Source/WTF/wtf/threads/Signals.h b/Source/WTF/wtf/threads/Signals.h -index f4bb5305a4ae39ca1aa39b131db3aef2bdb1030a..2576fad5a004833208c5bc250e5470d378f752b4 100644 ---- a/Source/WTF/wtf/threads/Signals.h -+++ b/Source/WTF/wtf/threads/Signals.h -@@ -25,7 +25,7 @@ - - #pragma once - --#if USE(PTHREADS) -+#if USE(PTHREADS) && HAVE(MACHINE_CONTEXT) - - #include - #include -@@ -116,4 +116,4 @@ using WTF::fromSystemSignal; - using WTF::SignalAction; - using WTF::installSignalHandler; - --#endif // USE(PTHREADS) -+#endif // USE(PTHREADS) && HAVE(MACHINE_CONTEXT) diff --git a/sources b/sources index bb7ae95..b146d6e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.17.4.tar.xz) = 356f9b3f3a246fd06047b7226a274ecc2c68b63fa49ebb1f1ecad2ce69fa284bf1bb3619d985c2ccee376a99b8ed990b6db947f4a96c6f96a04ea0095e3d55ed +SHA512 (webkitgtk-2.17.5.tar.xz) = 304187ca3b7e260061e985b3b0ca6f5d615154122882eda5a3bf879bfd58949137f4ca4e92dc5fb08b24c012d8dec88345ffbefc9c583de75505e3deecbff2c4 diff --git a/webkitgtk4.spec b/webkitgtk4.spec index e656675..5caff33 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.17.4 -Release: 4%{?dist} +Version: 2.17.5 +Release: 1%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -20,9 +20,6 @@ Patch0: webkitgtk-2.14.1-user-agent-branding.patch # https://bugs.webkit.org/show_bug.cgi?id=158785 Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=173544 -Patch2: gcc7-functional.patch -# https://bugs.webkit.org/show_bug.cgi?id=173590 -Patch3: machine-context.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -269,6 +266,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Wed Jul 26 2017 Tomas Popela - 2.17.5-1 +- Update to 2.17.5 + * Thu Jul 20 2017 Tomas Popela - 2.17.4-4 - Rebuild for rhbz#1470692 From f3e6fa7795d7ea932a0fa6cb6bd6e5942fcdc6fa Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 26 Jul 2017 11:20:01 +0200 Subject: [PATCH 37/75] Add missing BR --- webkitgtk4.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 5caff33..28c8370 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -36,6 +36,7 @@ BuildRequires: gobject-introspection-devel BuildRequires: gperf BuildRequires: gstreamer1-devel BuildRequires: gstreamer1-plugins-base-devel +BuildRequires: gstreamer1-plugins-bad-free-devel BuildRequires: gtk2-devel BuildRequires: gtk3-devel BuildRequires: gtk-doc From 836c7e33f5ffe423605d88032dd934e608d9d876 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Thu, 27 Jul 2017 13:12:00 +0200 Subject: [PATCH 38/75] Add missing BR on mesa-libGLES-devel --- webkitgtk4.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 28c8370..3a014fa 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -55,6 +55,7 @@ BuildRequires: libwayland-egl-devel BuildRequires: libwayland-server-devel BuildRequires: mesa-libEGL-devel BuildRequires: mesa-libGL-devel +BuildRequires: mesa-libGLES-devel BuildRequires: pcre-devel BuildRequires: perl-Switch BuildRequires: perl-JSON-PP From c4e47114bb907ecf1cf3770e0cebc14a7574b013 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Thu, 27 Jul 2017 15:38:52 +0200 Subject: [PATCH 39/75] Package WebKitWebDriver --- webkitgtk4.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 3a014fa..735fd03 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -233,6 +233,7 @@ make %{?_smp_mflags} -C %{_target_platform} %{_libdir}/girepository-1.0/WebKit2WebExtension-4.0.typelib %{_libdir}/webkit2gtk-4.0/ %{_libexecdir}/webkit2gtk-4.0/ +%{_bindir}/WebKitWebDriver %exclude %{_libexecdir}/webkit2gtk-4.0/WebKitPluginProcess2 %files devel From 8c528317d9ce5c7c0bf3eacc6872595187e7bb35 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 3 Aug 2017 10:13:46 +0000 Subject: [PATCH 40/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild --- webkitgtk4.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 735fd03..787afe3 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.17.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -269,6 +269,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Thu Aug 03 2017 Fedora Release Engineering - 2.17.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + * Wed Jul 26 2017 Tomas Popela - 2.17.5-1 - Update to 2.17.5 From 5cb6048bb73c0110b8a780252b8cfa59b50a5cd1 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 9 Aug 2017 13:33:58 +0200 Subject: [PATCH 41/75] Update to 2.17.90 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index bb016ec..a066c19 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,4 @@ /webkitgtk-2.17.3.tar.xz /webkitgtk-2.17.4.tar.xz /webkitgtk-2.17.5.tar.xz +/webkitgtk-2.17.90.tar.xz diff --git a/sources b/sources index b146d6e..21cfba1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.17.5.tar.xz) = 304187ca3b7e260061e985b3b0ca6f5d615154122882eda5a3bf879bfd58949137f4ca4e92dc5fb08b24c012d8dec88345ffbefc9c583de75505e3deecbff2c4 +SHA512 (webkitgtk-2.17.90.tar.xz) = 72993e7bf61607bf75682f387f2877492d0982f8c15de2ed8444d9ac889d635845d8b59b5f9373ef3605d9b376534ff923775a98d229da608c532508d5846aa4 diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 787afe3..662809f 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.17.5 -Release: 2%{?dist} +Version: 2.17.90 +Release: 1%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -269,6 +269,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Wed Aug 09 2017 Tomas Popela - 2.17.90-1 +- Update to 2.17.90 + * Thu Aug 03 2017 Fedora Release Engineering - 2.17.5-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild From 524bbde06b5fd269b704259228901b6b0674f5b6 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Fri, 18 Aug 2017 13:45:59 +0200 Subject: [PATCH 42/75] Update to 2.17.91 --- .gitignore | 1 + sources | 2 +- ...-user-agent-branding.patch => user-agent-branding.patch | 6 +++--- webkitgtk4.spec | 7 +++++-- 4 files changed, 10 insertions(+), 6 deletions(-) rename webkitgtk-2.14.1-user-agent-branding.patch => user-agent-branding.patch (50%) diff --git a/.gitignore b/.gitignore index a066c19..188b46e 100644 --- a/.gitignore +++ b/.gitignore @@ -61,3 +61,4 @@ /webkitgtk-2.17.4.tar.xz /webkitgtk-2.17.5.tar.xz /webkitgtk-2.17.90.tar.xz +/webkitgtk-2.17.91.tar.xz diff --git a/sources b/sources index 21cfba1..ae66fa2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.17.90.tar.xz) = 72993e7bf61607bf75682f387f2877492d0982f8c15de2ed8444d9ac889d635845d8b59b5f9373ef3605d9b376534ff923775a98d229da608c532508d5846aa4 +SHA512 (webkitgtk-2.17.91.tar.xz) = f6ce14ce5838819e348ec300d6a98bde7a6fdeef4e2b88179169378b7193cfee3460c53c2f986fbfb55ba2dbdfe40ff509f9cf2ca615105765762b800cd1c980 diff --git a/webkitgtk-2.14.1-user-agent-branding.patch b/user-agent-branding.patch similarity index 50% rename from webkitgtk-2.14.1-user-agent-branding.patch rename to user-agent-branding.patch index d2dbd86..d87f3e7 100644 --- a/webkitgtk-2.14.1-user-agent-branding.patch +++ b/user-agent-branding.patch @@ -1,6 +1,6 @@ -diff -up webkitgtk-2.14.1/Source/WebCore/platform/gtk/UserAgentGtk.cpp.orig webkitgtk-2.14.1/Source/WebCore/platform/gtk/UserAgentGtk.cpp ---- webkitgtk-2.14.1/Source/WebCore/platform/gtk/UserAgentGtk.cpp.orig 2016-10-12 07:59:25.670057792 +0200 -+++ webkitgtk-2.14.1/Source/WebCore/platform/gtk/UserAgentGtk.cpp 2016-10-12 08:01:06.251878684 +0200 +diff -up webkitglib-2.14.1/Source/WebCore/platform/glib/UserAgentGLib.cpp.orig webkitglib-2.14.1/Source/WebCore/platform/glib/UserAgentGLib.cpp +--- webkitglib-2.14.1/Source/WebCore/platform/glib/UserAgentGLib.cpp.orig 2016-10-12 07:59:25.670057792 +0200 ++++ webkitglib-2.14.1/Source/WebCore/platform/glib/UserAgentGLib.cpp 2016-10-12 08:01:06.251878684 +0200 @@ -85,6 +85,9 @@ static String buildUserAgentString(const UserAgentQuirks& quirks) else { uaString.append(platformForUAString()); diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 662809f..0c471a6 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.17.90 +Version: 2.17.91 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -15,7 +15,7 @@ URL: http://www.webkitgtk.org/ Source0: http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz # https://bugs.webkit.org/show_bug.cgi?id=162611 -Patch0: webkitgtk-2.14.1-user-agent-branding.patch +Patch0: user-agent-branding.patch # https://fedoraproject.org/wiki/Packaging:CryptoPolicies # https://bugs.webkit.org/show_bug.cgi?id=158785 Patch1: fedora-crypto-policy.patch @@ -269,6 +269,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Fri Aug 18 2017 Tomas Popela - 2.17.91-1 +- Update to 2.17.91 + * Wed Aug 09 2017 Tomas Popela - 2.17.90-1 - Update to 2.17.90 From 0d98b2f496186bcedc12da43689badcdb825ae53 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 5 Sep 2017 13:41:39 +0200 Subject: [PATCH 43/75] Update to 2.17.92 --- .gitignore | 1 + fedora-crypto-policy.patch | 32 ++++++++++++++++---------------- sources | 2 +- webkitgtk4.spec | 5 ++++- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 188b46e..26e6a1a 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,4 @@ /webkitgtk-2.17.5.tar.xz /webkitgtk-2.17.90.tar.xz /webkitgtk-2.17.91.tar.xz +/webkitgtk-2.17.92.tar.xz diff --git a/fedora-crypto-policy.patch b/fedora-crypto-policy.patch index 4b84f0f..8a317db 100644 --- a/fedora-crypto-policy.patch +++ b/fedora-crypto-policy.patch @@ -1,18 +1,6 @@ -diff -up webkitgtk-2.17.5/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.fedora-crypto-policy webkitgtk-2.17.5/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp ---- webkitgtk-2.17.5/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.fedora-crypto-policy 2017-07-26 10:41:35.729680485 +0200 -+++ webkitgtk-2.17.5/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp 2017-07-26 10:41:47.709611761 +0200 -@@ -39,7 +39,7 @@ int main(int argc, char** argv) - // overwrite this priority string if it's already set by the user. - // https://bugzilla.gnome.org/show_bug.cgi?id=738633 - // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. -- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); -+ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); - - return NetworkProcessMainUnix(argc, argv); - } -diff -up webkitgtk-2.17.5/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.fedora-crypto-policy webkitgtk-2.17.5/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp ---- webkitgtk-2.17.5/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.fedora-crypto-policy 2017-07-26 10:38:08.202870988 +0200 -+++ webkitgtk-2.17.5/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp 2017-07-26 10:38:35.342715297 +0200 +diff -up webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.fedora-crypto-policy webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp +--- webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.fedora-crypto-policy 2017-09-05 13:39:59.294426661 +0200 ++++ webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp 2017-09-05 13:40:09.144389997 +0200 @@ -43,7 +43,7 @@ int main(int argc, char** argv) // overwrite this priority string if it's already set by the user. // https://bugzilla.gnome.org/show_bug.cgi?id=738633 @@ -21,4 +9,16 @@ diff -up webkitgtk-2.17.5/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMai + setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); #if USE(GCRYPT) - // Call gcry_check_version() before any other libgcrypt call, ignoring the + PAL::GCrypt::initialize(); +diff -up webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.fedora-crypto-policy webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp +--- webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.fedora-crypto-policy 2017-09-05 13:40:28.558317735 +0200 ++++ webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp 2017-09-05 13:40:56.057215378 +0200 +@@ -43,7 +43,7 @@ int main(int argc, char** argv) + // overwrite this priority string if it's already set by the user. + // https://bugzilla.gnome.org/show_bug.cgi?id=738633 + // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. +- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); ++ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); + + #if USE(GCRYPT) + PAL::GCrypt::initialize(); diff --git a/sources b/sources index ae66fa2..e7fe10d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.17.91.tar.xz) = f6ce14ce5838819e348ec300d6a98bde7a6fdeef4e2b88179169378b7193cfee3460c53c2f986fbfb55ba2dbdfe40ff509f9cf2ca615105765762b800cd1c980 +SHA512 (webkitgtk-2.17.92.tar.xz) = e6d16460553e1f55ccc940274f4ca9a6fd46654dbd1176d03239bc8e90d0c9eee63860c6a78bf8992a0f6d8d29ced26226a996610c441edd57cb32628b9277cf diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 0c471a6..7b19de7 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.17.91 +Version: 2.17.92 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -269,6 +269,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue Sep 05 2017 Tomas Popela - 2.17.92-1 +- Update to 2.17.92 + * Fri Aug 18 2017 Tomas Popela - 2.17.91-1 - Update to 2.17.91 From 0987868e44ae9e4c52070e6415a18919c6f90646 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 11 Sep 2017 14:42:18 +0200 Subject: [PATCH 44/75] Update to 2.18.0 --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 26e6a1a..e0112c6 100644 --- a/.gitignore +++ b/.gitignore @@ -63,3 +63,4 @@ /webkitgtk-2.17.90.tar.xz /webkitgtk-2.17.91.tar.xz /webkitgtk-2.17.92.tar.xz +/webkitgtk-2.18.0.tar.xz diff --git a/sources b/sources index e7fe10d..a6e55a2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.17.92.tar.xz) = e6d16460553e1f55ccc940274f4ca9a6fd46654dbd1176d03239bc8e90d0c9eee63860c6a78bf8992a0f6d8d29ced26226a996610c441edd57cb32628b9277cf +SHA512 (webkitgtk-2.18.0.tar.xz) = 4a248e0f8128a61c123107baebb37efa9944fe490922b474f42400d68f3007e7d28a20886f9e60bfd86e357ea1aa9ede0c8bba3c34e2e3899720805b9145fc48 From 215dc52413a6643ec3024799f50318d6e1d9737b Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 11 Sep 2017 14:43:00 +0200 Subject: [PATCH 45/75] Commit SPEC file changes --- webkitgtk4.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 7b19de7..d2b0acc 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.17.92 +Version: 2.18.0 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -269,6 +269,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Mon Sep 11 2017 Tomas Popela - 2.18.0-1 +- Update to 2.18.0 + * Tue Sep 05 2017 Tomas Popela - 2.17.92-1 - Update to 2.17.92 From 912491272f9f468db32178db98f428973a76b783 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 11 Sep 2017 14:50:20 +0200 Subject: [PATCH 46/75] Fix JSC on big-endian arches --- cloop-big-endians.patch | 30 ++++++++++++++++++++++++++++++ webkitgtk4.spec | 3 ++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 cloop-big-endians.patch diff --git a/cloop-big-endians.patch b/cloop-big-endians.patch new file mode 100644 index 0000000..7bb12df --- /dev/null +++ b/cloop-big-endians.patch @@ -0,0 +1,30 @@ +diff -up webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp.b132333 webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp +--- webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp.b132333 2017-02-07 09:05:07.000000000 +0100 ++++ webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp 2017-06-16 10:34:57.859748036 +0200 +@@ -2186,7 +2186,12 @@ void CodeBlock::finishCreation(VM& vm, S + instructions[i + 5].u.watchpointSet = op.watchpointSet; + else if (op.structure) + instructions[i + 5].u.structure.set(vm, this, op.structure); +- instructions[i + 6].u.pointer = reinterpret_cast(op.operand); ++ ++ if (op.type == ClosureVar || op.type == ClosureVarWithVarInjectionChecks || op.type == GlobalProperty || op.type == GlobalPropertyWithVarInjectionChecks || op.type == ModuleVar) ++ instructions[i + 6].u.operand = op.operand; ++ else ++ instructions[i + 6].u.pointer = reinterpret_cast(op.operand); ++ + break; + } + +@@ -2222,7 +2227,11 @@ void CodeBlock::finishCreation(VM& vm, S + op.watchpointSet->invalidate(vm, PutToScopeFireDetail(this, ident)); + } else if (op.structure) + instructions[i + 5].u.structure.set(vm, this, op.structure); +- instructions[i + 6].u.pointer = reinterpret_cast(op.operand); ++ ++ if (op.type == ClosureVar || op.type == ClosureVarWithVarInjectionChecks || op.type == GlobalProperty || op.type == GlobalPropertyWithVarInjectionChecks || op.type == ModuleVar) ++ instructions[i + 6].u.operand = op.operand; ++ else ++ instructions[i + 6].u.pointer = reinterpret_cast(op.operand); + + break; + } diff --git a/webkitgtk4.spec b/webkitgtk4.spec index d2b0acc..5705395 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -19,7 +19,8 @@ Patch0: user-agent-branding.patch # https://fedoraproject.org/wiki/Packaging:CryptoPolicies # https://bugs.webkit.org/show_bug.cgi?id=158785 Patch1: fedora-crypto-policy.patch -# https://bugs.webkit.org/show_bug.cgi?id=173544 +# https://bugs.webkit.org/show_bug.cgi?id=132333 +Patch2: cloop-big-endians.patch BuildRequires: at-spi2-core-devel BuildRequires: bison From 2abffaa4af3b940f74cfb2b4012bb41d6e312a2b Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 11 Sep 2017 14:54:32 +0200 Subject: [PATCH 47/75] Update to 2,18.0 --- .gitignore | 1 + fedora-crypto-policy.patch | 24 +++++++++---------- gcc7.patch | 12 ---------- sources | 2 +- ...randing.patch => user-agent-branding.patch | 6 ++--- webkitgtk4.spec | 11 +++++---- 6 files changed, 23 insertions(+), 33 deletions(-) delete mode 100644 gcc7.patch rename webkitgtk-2.14.1-user-agent-branding.patch => user-agent-branding.patch (50%) diff --git a/.gitignore b/.gitignore index fbba9b4..4b87cc3 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,4 @@ /webkitgtk-2.16.4.tar.xz /webkitgtk-2.16.5.tar.xz /webkitgtk-2.16.6.tar.xz +/webkitgtk-2.18.0.tar.xz diff --git a/fedora-crypto-policy.patch b/fedora-crypto-policy.patch index cee0eae..8a317db 100644 --- a/fedora-crypto-policy.patch +++ b/fedora-crypto-policy.patch @@ -1,24 +1,24 @@ -diff -up webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.orig webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp ---- webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.orig 2017-05-22 11:25:38.492770258 +0200 -+++ webkitgtk-2.17.3/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp 2017-05-22 11:25:57.212665811 +0200 -@@ -39,7 +39,7 @@ int main(int argc, char** argv) +diff -up webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.fedora-crypto-policy webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp +--- webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.fedora-crypto-policy 2017-09-05 13:39:59.294426661 +0200 ++++ webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp 2017-09-05 13:40:09.144389997 +0200 +@@ -43,7 +43,7 @@ int main(int argc, char** argv) // overwrite this priority string if it's already set by the user. // https://bugzilla.gnome.org/show_bug.cgi?id=738633 // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. - setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); + setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); - return NetworkProcessMainUnix(argc, argv); - } -diff -up webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp.orig webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp ---- webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp.orig 2017-05-22 11:26:12.941578052 +0200 -+++ webkitgtk-2.17.3/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp 2017-05-22 11:26:25.051510485 +0200 -@@ -39,7 +39,7 @@ int main(int argc, char** argv) + #if USE(GCRYPT) + PAL::GCrypt::initialize(); +diff -up webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.fedora-crypto-policy webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp +--- webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.fedora-crypto-policy 2017-09-05 13:40:28.558317735 +0200 ++++ webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp 2017-09-05 13:40:56.057215378 +0200 +@@ -43,7 +43,7 @@ int main(int argc, char** argv) // overwrite this priority string if it's already set by the user. // https://bugzilla.gnome.org/show_bug.cgi?id=738633 // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. - setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); + setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); - return WebProcessMainUnix(argc, argv); - } + #if USE(GCRYPT) + PAL::GCrypt::initialize(); diff --git a/gcc7.patch b/gcc7.patch deleted file mode 100644 index 77f02ba..0000000 --- a/gcc7.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up webkitgtk-2.15.90/Source/cmake/OptionsCommon.cmake.gcc7 webkitgtk-2.15.90/Source/cmake/OptionsCommon.cmake ---- webkitgtk-2.15.90/Source/cmake/OptionsCommon.cmake.gcc7 2017-02-21 09:57:13.168916004 +0100 -+++ webkitgtk-2.15.90/Source/cmake/OptionsCommon.cmake 2017-02-21 09:58:12.811563156 +0100 -@@ -41,6 +41,8 @@ if (COMPILER_IS_GCC_OR_CLANG) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-exceptions -fno-strict-aliasing") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-strict-aliasing -fno-rtti") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y") -+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-expansion-to-defined") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-expansion-to-defined") - endif () - - if (COMPILER_IS_CLANG AND CMAKE_GENERATOR STREQUAL "Ninja") diff --git a/sources b/sources index 042ed15..a6e55a2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.16.6.tar.xz) = bb488d7a60e4d6f9683ac343852a75854ef73e6b5aa093361ffe2d08e71e2f11c19da4447f9937221e518cda784bdacfcfd151f9395605a1957380fbc5b1533b +SHA512 (webkitgtk-2.18.0.tar.xz) = 4a248e0f8128a61c123107baebb37efa9944fe490922b474f42400d68f3007e7d28a20886f9e60bfd86e357ea1aa9ede0c8bba3c34e2e3899720805b9145fc48 diff --git a/webkitgtk-2.14.1-user-agent-branding.patch b/user-agent-branding.patch similarity index 50% rename from webkitgtk-2.14.1-user-agent-branding.patch rename to user-agent-branding.patch index d2dbd86..d87f3e7 100644 --- a/webkitgtk-2.14.1-user-agent-branding.patch +++ b/user-agent-branding.patch @@ -1,6 +1,6 @@ -diff -up webkitgtk-2.14.1/Source/WebCore/platform/gtk/UserAgentGtk.cpp.orig webkitgtk-2.14.1/Source/WebCore/platform/gtk/UserAgentGtk.cpp ---- webkitgtk-2.14.1/Source/WebCore/platform/gtk/UserAgentGtk.cpp.orig 2016-10-12 07:59:25.670057792 +0200 -+++ webkitgtk-2.14.1/Source/WebCore/platform/gtk/UserAgentGtk.cpp 2016-10-12 08:01:06.251878684 +0200 +diff -up webkitglib-2.14.1/Source/WebCore/platform/glib/UserAgentGLib.cpp.orig webkitglib-2.14.1/Source/WebCore/platform/glib/UserAgentGLib.cpp +--- webkitglib-2.14.1/Source/WebCore/platform/glib/UserAgentGLib.cpp.orig 2016-10-12 07:59:25.670057792 +0200 ++++ webkitglib-2.14.1/Source/WebCore/platform/glib/UserAgentGLib.cpp 2016-10-12 08:01:06.251878684 +0200 @@ -85,6 +85,9 @@ static String buildUserAgentString(const UserAgentQuirks& quirks) else { uaString.append(platformForUAString()); diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 6cd40d8..2582617 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.16.6 +Version: 2.18.0 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -15,14 +15,12 @@ URL: http://www.webkitgtk.org/ Source0: http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz # https://bugs.webkit.org/show_bug.cgi?id=162611 -Patch0: webkitgtk-2.14.1-user-agent-branding.patch +Patch0: user-agent-branding.patch # https://fedoraproject.org/wiki/Packaging:CryptoPolicies # https://bugs.webkit.org/show_bug.cgi?id=158785 Patch1: fedora-crypto-policy.patch -# https://bugs.webkit.org/show_bug.cgi?id=167643 -Patch2: gcc7.patch # https://bugs.webkit.org/show_bug.cgi?id=132333 -Patch3: cloop-big-endians.patch +Patch2: cloop-big-endians.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -259,6 +257,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Mon Sep 11 2017 Tomas Popela - 2.18.0-1 +- Update to 2.18.0 + * Mon Jul 24 2017 Tomas Popela - 2.16.6-1 - Update to 2.16.6 From fd050d83e6befe206b56739fa3aeadadee48e76a Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 11 Sep 2017 15:20:22 +0200 Subject: [PATCH 48/75] Backport packaging changes from 2.18 cycle --- webkitgtk4.spec | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 2582617..2b14fc6 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -37,6 +37,7 @@ BuildRequires: gobject-introspection-devel BuildRequires: gperf BuildRequires: gstreamer1-devel BuildRequires: gstreamer1-plugins-base-devel +BuildRequires: gstreamer1-plugins-bad-free-devel BuildRequires: gtk2-devel BuildRequires: gtk3-devel BuildRequires: gtk-doc @@ -53,7 +54,9 @@ BuildRequires: libXt-devel BuildRequires: libwayland-client-devel BuildRequires: libwayland-egl-devel BuildRequires: libwayland-server-devel +BuildRequires: mesa-libEGL-devel BuildRequires: mesa-libGL-devel +BuildRequires: mesa-libGLES-devel BuildRequires: pcre-devel BuildRequires: perl-Switch BuildRequires: perl-JSON-PP @@ -141,6 +144,15 @@ rm -rf Source/ThirdParty/gtest/ rm -rf Source/ThirdParty/qunit/ %build +# Increase the DIE limit so our debuginfo packages could be size optimized. +# Decreases the size for x86_64 from ~5G to ~1.1G. +# https://bugzilla.redhat.com/show_bug.cgi?id=1456261 +%global _dwz_max_die_limit 250000000 +# The _dwz_max_die_limit is being overridden by the arch specific ones from the +# redhat-rpm-config so we need to set the arch specific ones as well - now it +# is only needed for x86_64. +%global _dwz_max_die_limit_x86_64 250000000 + %ifarch s390 aarch64 # Use linker flags to reduce memory consumption - on other arches the ld.gold is # used and also it doesn't have the --reduce-memory-overheads option @@ -175,10 +187,10 @@ pushd %{_target_platform} %ifarch s390 aarch64 -DUSE_LD_GOLD=OFF \ %endif -%ifarch s390 s390x ppc %{power64} aarch64 %{mips} +%ifarch s390 s390x ppc %{power64} -DENABLE_JIT=OFF \ %endif -%ifarch s390 s390x ppc %{power64} aarch64 %{mips} +%ifarch s390 s390x ppc %{power64} -DUSE_SYSTEM_MALLOC=ON \ %endif .. @@ -222,6 +234,7 @@ make %{?_smp_mflags} -C %{_target_platform} %{_libdir}/girepository-1.0/WebKit2WebExtension-4.0.typelib %{_libdir}/webkit2gtk-4.0/ %{_libexecdir}/webkit2gtk-4.0/ +%{_bindir}/WebKitWebDriver %exclude %{_libexecdir}/webkit2gtk-4.0/WebKitPluginProcess2 %files devel From 9c5df2c6b53b810a52edf4d6a49988cd8317f95c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Wed, 13 Sep 2017 21:38:23 +0100 Subject: [PATCH 49/75] Rebuild to try to fix: libwebkit2gtk-4.0.so.37: undefined symbol: soup_auth_manager_clear_cached_credentials --- webkitgtk4.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 5705395..5b7a093 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.18.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -270,6 +270,10 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Wed Sep 13 2017 Richard W.M. Jones - 2.18.0-2 +- Rebuild to try to fix: libwebkit2gtk-4.0.so.37: undefined symbol: + soup_auth_manager_clear_cached_credentials + * Mon Sep 11 2017 Tomas Popela - 2.18.0-1 - Update to 2.18.0 From 9f6f6e7617ad61966f18c4d0828ddd0cbc639998 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 18 Oct 2017 13:11:49 +0200 Subject: [PATCH 50/75] Update to 2.18.1 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index e0112c6..816a75c 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,4 @@ /webkitgtk-2.17.91.tar.xz /webkitgtk-2.17.92.tar.xz /webkitgtk-2.18.0.tar.xz +/webkitgtk-2.18.1.tar.xz diff --git a/sources b/sources index a6e55a2..08cef25 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.18.0.tar.xz) = 4a248e0f8128a61c123107baebb37efa9944fe490922b474f42400d68f3007e7d28a20886f9e60bfd86e357ea1aa9ede0c8bba3c34e2e3899720805b9145fc48 +SHA512 (webkitgtk-2.18.1.tar.xz) = 671392f46a34def51df34e5ce384acdcf7526b286e64f1220921f6c654a28148553e815f6f0fd02252b642dcabef9c646f5386b9ec3d2cb01520782833bb650b diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 5b7a093..eea14c8 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.18.0 -Release: 2%{?dist} +Version: 2.18.1 +Release: 1%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -270,6 +270,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Wed Oct 18 2017 Tomas Popela - 2.18.1-1 +- Update to 2.18.1 + * Wed Sep 13 2017 Richard W.M. Jones - 2.18.0-2 - Rebuild to try to fix: libwebkit2gtk-4.0.so.37: undefined symbol: soup_auth_manager_clear_cached_credentials From 520712bd1cf0887cd557ad3f1e9c6708ab85e721 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 18 Oct 2017 13:14:39 +0200 Subject: [PATCH 51/75] Update to 2.18.1 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 4b87cc3..2bd00f0 100644 --- a/.gitignore +++ b/.gitignore @@ -61,3 +61,4 @@ /webkitgtk-2.16.5.tar.xz /webkitgtk-2.16.6.tar.xz /webkitgtk-2.18.0.tar.xz +/webkitgtk-2.18.1.tar.xz diff --git a/sources b/sources index a6e55a2..08cef25 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.18.0.tar.xz) = 4a248e0f8128a61c123107baebb37efa9944fe490922b474f42400d68f3007e7d28a20886f9e60bfd86e357ea1aa9ede0c8bba3c34e2e3899720805b9145fc48 +SHA512 (webkitgtk-2.18.1.tar.xz) = 671392f46a34def51df34e5ce384acdcf7526b286e64f1220921f6c654a28148553e815f6f0fd02252b642dcabef9c646f5386b9ec3d2cb01520782833bb650b diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 2b14fc6..012006e 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.18.0 +Version: 2.18.1 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -270,6 +270,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Wed Oct 18 2017 Tomas Popela - 2.18.1-1 +- Update to 2.18.1 + * Mon Sep 11 2017 Tomas Popela - 2.18.0-1 - Update to 2.18.0 From 735ef250a3944249a11161ce93c2d3e83e4a6216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 26 Oct 2017 12:23:02 +0200 Subject: [PATCH 52/75] Drop the explicit dependnecy on rubypick. Better then depend on rubypick would be dependency on %{_bindir}/ruby. But rubypick is pulled in via transitive dependencies anyway, so drop the dependnecy altogether. --- webkitgtk4.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index eea14c8..13d0e6f 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.18.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -60,7 +60,7 @@ BuildRequires: mesa-libGLES-devel BuildRequires: pcre-devel BuildRequires: perl-Switch BuildRequires: perl-JSON-PP -BuildRequires: ruby rubypick rubygems +BuildRequires: ruby rubygems BuildRequires: sqlite-devel BuildRequires: hyphen-devel BuildRequires: gnutls-devel @@ -270,6 +270,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Thu Oct 26 2017 Vít Ondruch - 2.18.1-2 +- Drop the explicit dependnecy on rubypick. + * Wed Oct 18 2017 Tomas Popela - 2.18.1-1 - Update to 2.18.1 From 8f1c9762345f96aafde31a97b8db3ac2f11cd4ae Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Fri, 27 Oct 2017 15:20:57 +0200 Subject: [PATCH 53/75] Update to 2.18.2 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 816a75c..10bd44c 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,4 @@ /webkitgtk-2.17.92.tar.xz /webkitgtk-2.18.0.tar.xz /webkitgtk-2.18.1.tar.xz +/webkitgtk-2.18.2.tar.xz diff --git a/sources b/sources index 08cef25..6760688 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.18.1.tar.xz) = 671392f46a34def51df34e5ce384acdcf7526b286e64f1220921f6c654a28148553e815f6f0fd02252b642dcabef9c646f5386b9ec3d2cb01520782833bb650b +SHA512 (webkitgtk-2.18.2.tar.xz) = 94c8ce0fcee741dc9c054fa3f8ecac9756245c623f36e6b0bb5588d12b660aaa8bbbe28e82d0f694b94b75f1985f9dbf9231a4b63832fcf4efbe7a0116c7585c diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 13d0e6f..8035d5a 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.18.1 -Release: 2%{?dist} +Version: 2.18.2 +Release: 1%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -270,6 +270,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Fri Oct 27 2017 Tomas Popela - 2.18.2-1 +- Update to 2.18.2 + * Thu Oct 26 2017 Vít Ondruch - 2.18.1-2 - Drop the explicit dependnecy on rubypick. From 3e3df3fef146b846a32d6020264423e713ab4919 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Fri, 27 Oct 2017 15:21:42 +0200 Subject: [PATCH 54/75] Update to 2.18.2 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 2bd00f0..0906a38 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,4 @@ /webkitgtk-2.16.6.tar.xz /webkitgtk-2.18.0.tar.xz /webkitgtk-2.18.1.tar.xz +/webkitgtk-2.18.2.tar.xz diff --git a/sources b/sources index 08cef25..6760688 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.18.1.tar.xz) = 671392f46a34def51df34e5ce384acdcf7526b286e64f1220921f6c654a28148553e815f6f0fd02252b642dcabef9c646f5386b9ec3d2cb01520782833bb650b +SHA512 (webkitgtk-2.18.2.tar.xz) = 94c8ce0fcee741dc9c054fa3f8ecac9756245c623f36e6b0bb5588d12b660aaa8bbbe28e82d0f694b94b75f1985f9dbf9231a4b63832fcf4efbe7a0116c7585c diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 012006e..e96202b 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.18.1 +Version: 2.18.2 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -270,6 +270,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Fri Oct 27 2017 Tomas Popela - 2.18.2-1 +- Update to 2.18.2 + * Wed Oct 18 2017 Tomas Popela - 2.18.1-1 - Update to 2.18.1 From 465ca38ebee830a7a22ceb8010dc0e3e000869cd Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 31 Oct 2017 17:11:53 +0100 Subject: [PATCH 55/75] Update to 2.19.1 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 10 +++++++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 10bd44c..7bcb1e4 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,4 @@ /webkitgtk-2.18.0.tar.xz /webkitgtk-2.18.1.tar.xz /webkitgtk-2.18.2.tar.xz +/webkitgtk-2.19.1.tar.xz diff --git a/sources b/sources index 6760688..d1e745b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.18.2.tar.xz) = 94c8ce0fcee741dc9c054fa3f8ecac9756245c623f36e6b0bb5588d12b660aaa8bbbe28e82d0f694b94b75f1985f9dbf9231a4b63832fcf4efbe7a0116c7585c +SHA512 (webkitgtk-2.19.1.tar.xz) = f6dc33867acdcd0f3c846019b337058c7cdb77bd387b56419461a9bf1767465a759abc51331f08e5c8ce077c446d577222bafcda721d9f67c8ab29a7d020324d diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 8035d5a..b91fcd7 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.18.2 +Version: 2.19.1 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -64,6 +64,9 @@ BuildRequires: ruby rubygems BuildRequires: sqlite-devel BuildRequires: hyphen-devel BuildRequires: gnutls-devel +BuildRequires: brotli-devel +BuildRequires: woff2-devel +BuildRequires: upower-devel %ifarch ppc BuildRequires: libatomic %endif @@ -77,8 +80,6 @@ Provides: libwebkit2gtk = %{version}-%{release} # We're supposed to specify versions here, but these crap Google libs don't do # normal releases. Accordingly, they're not suitable to be system libs. Provides: bundled(angle) -Provides: bundled(brotli) -Provides: bundled(woff2) # Require the jsc subpackage Requires: %{name}-jsc%{?_isa} = %{version}-%{release} @@ -270,6 +271,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue Oct 31 2017 Tomas Popela - 2.19.1-1 +- Update to 2.19.1 + * Fri Oct 27 2017 Tomas Popela - 2.18.2-1 - Update to 2.18.2 From 1b94869d1b31eccaeb24610392093704621d4180 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Thu, 2 Nov 2017 16:21:44 +0100 Subject: [PATCH 56/75] Fix gir directory ownership Co-own the directories to make sure they get correctly removed when uninstalling webkitgtk4. --- webkitgtk4.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index b91fcd7..e4bbc5c 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.19.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -231,6 +231,7 @@ make %{?_smp_mflags} -C %{_target_platform} %license _license_files/*WebInspectorUI* %license _license_files/*WTF* %{_libdir}/libwebkit2gtk-4.0.so.* +%dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/WebKit2-4.0.typelib %{_libdir}/girepository-1.0/WebKit2WebExtension-4.0.typelib %{_libdir}/webkit2gtk-4.0/ @@ -245,12 +246,14 @@ make %{?_smp_mflags} -C %{_target_platform} %{_libdir}/libwebkit2gtk-4.0.so %{_libdir}/pkgconfig/webkit2gtk-4.0.pc %{_libdir}/pkgconfig/webkit2gtk-web-extension-4.0.pc +%dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/WebKit2-4.0.gir %{_datadir}/gir-1.0/WebKit2WebExtension-4.0.gir %files jsc %license _license_files/*JavaScriptCore* %{_libdir}/libjavascriptcoregtk-4.0.so.* +%dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/JavaScriptCore-4.0.typelib %files jsc-devel @@ -259,6 +262,7 @@ make %{?_smp_mflags} -C %{_target_platform} %{_includedir}/webkitgtk-4.0/JavaScriptCore/ %{_libdir}/libjavascriptcoregtk-4.0.so %{_libdir}/pkgconfig/javascriptcoregtk-4.0.pc +%dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/JavaScriptCore-4.0.gir %files plugin-process-gtk2 @@ -271,6 +275,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Thu Nov 02 2017 Kalev Lember - 2.19.2-2 +- Fix gir directory ownership + * Tue Oct 31 2017 Tomas Popela - 2.19.1-1 - Update to 2.19.1 From ab829bd6be74863c4e74b4954a98dde549634382 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 13 Nov 2017 07:47:14 +0100 Subject: [PATCH 57/75] Update to 2.18.3 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 0906a38..feb5549 100644 --- a/.gitignore +++ b/.gitignore @@ -63,3 +63,4 @@ /webkitgtk-2.18.0.tar.xz /webkitgtk-2.18.1.tar.xz /webkitgtk-2.18.2.tar.xz +/webkitgtk-2.18.3.tar.xz diff --git a/sources b/sources index 6760688..c51d45e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.18.2.tar.xz) = 94c8ce0fcee741dc9c054fa3f8ecac9756245c623f36e6b0bb5588d12b660aaa8bbbe28e82d0f694b94b75f1985f9dbf9231a4b63832fcf4efbe7a0116c7585c +SHA512 (webkitgtk-2.18.3.tar.xz) = 8ba68d7234205728ed4b92358304cf0d0b771647d9b4316085241adeacafe67dee685225b0b46752087b93416ce8d2053a5a7c2376fda1eee7bc6d9024ae787e diff --git a/webkitgtk4.spec b/webkitgtk4.spec index e96202b..9eb9cc8 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.18.2 +Version: 2.18.3 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -270,6 +270,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Mon Nov 13 2017 Tomas Popela - 2.18.3-1 +- Update to 2.18.3 + * Fri Oct 27 2017 Tomas Popela - 2.18.2-1 - Update to 2.18.2 From 3c86d3a40ad5bb7e686fcdb98978a1281a113b6c Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 21 Nov 2017 10:09:43 +0100 Subject: [PATCH 58/75] Update to 2.19.2 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 7bcb1e4..5a57715 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,4 @@ /webkitgtk-2.18.1.tar.xz /webkitgtk-2.18.2.tar.xz /webkitgtk-2.19.1.tar.xz +/webkitgtk-2.19.2.tar.xz diff --git a/sources b/sources index d1e745b..47796d0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.19.1.tar.xz) = f6dc33867acdcd0f3c846019b337058c7cdb77bd387b56419461a9bf1767465a759abc51331f08e5c8ce077c446d577222bafcda721d9f67c8ab29a7d020324d +SHA512 (webkitgtk-2.19.2.tar.xz) = 418a247745acdd16917881604ba75f0abddae5d631e8c0f4b6e35b80fb9b76f17706a1fa847be096c74dcea71c7b47e2178c6a2ce5bcc0d965411d83234fef7b diff --git a/webkitgtk4.spec b/webkitgtk4.spec index e4bbc5c..b807912 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.19.1 -Release: 2%{?dist} +Version: 2.19.2 +Release: 1%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -275,6 +275,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue Nov 21 2017 Tomas Popela - 2.19.2-1 +- Update to 2.19.2 + * Thu Nov 02 2017 Kalev Lember - 2.19.2-2 - Fix gir directory ownership From 1e50340e235da62a7a7142b7c81efe73c07d0048 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 21 Nov 2017 11:32:53 +0100 Subject: [PATCH 59/75] Add perl-File-Copy-Recursive to BR And sort them. --- webkitgtk4.spec | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index b807912..5cb4ad0 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -24,6 +24,7 @@ Patch2: cloop-big-endians.patch BuildRequires: at-spi2-core-devel BuildRequires: bison +BuildRequires: brotli-devel BuildRequires: cairo-devel BuildRequires: cmake BuildRequires: enchant-devel @@ -33,6 +34,7 @@ BuildRequires: freetype-devel BuildRequires: geoclue2-devel BuildRequires: gettext BuildRequires: glib2-devel +BuildRequires: gnutls-devel BuildRequires: gobject-introspection-devel BuildRequires: gperf BuildRequires: gstreamer1-devel @@ -42,6 +44,7 @@ BuildRequires: gtk2-devel BuildRequires: gtk3-devel BuildRequires: gtk-doc BuildRequires: harfbuzz-devel +BuildRequires: hyphen-devel BuildRequires: libicu-devel BuildRequires: libjpeg-devel BuildRequires: libnotify-devel @@ -58,15 +61,14 @@ BuildRequires: mesa-libEGL-devel BuildRequires: mesa-libGL-devel BuildRequires: mesa-libGLES-devel BuildRequires: pcre-devel -BuildRequires: perl-Switch +BuildRequires: perl-File-Copy-Recursive BuildRequires: perl-JSON-PP -BuildRequires: ruby rubygems +BuildRequires: perl-Switch +BuildRequires: ruby +BuildRequires: rubygems BuildRequires: sqlite-devel -BuildRequires: hyphen-devel -BuildRequires: gnutls-devel -BuildRequires: brotli-devel -BuildRequires: woff2-devel BuildRequires: upower-devel +BuildRequires: woff2-devel %ifarch ppc BuildRequires: libatomic %endif From d514a8e3032fa53553589d86245787f33575c124 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 21 Nov 2017 13:19:50 +0100 Subject: [PATCH 60/75] Fix the build by including the missing file in tarball --- package-common-py.patch | 154 ++++++++++++++++++++++++++++++++++++++++ webkitgtk4.spec | 1 + 2 files changed, 155 insertions(+) create mode 100644 package-common-py.patch diff --git a/package-common-py.patch b/package-common-py.patch new file mode 100644 index 0000000..d8677e6 --- /dev/null +++ b/package-common-py.patch @@ -0,0 +1,154 @@ +diff -up webkitgtk-2.19.2/Tools/glib/common.py.package-common-py webkitgtk-2.19.2/Tools/glib/common.py +--- webkitgtk-2.19.2/Tools/glib/common.py.package-common-py 2017-11-21 13:18:14.258002441 +0100 ++++ webkitgtk-2.19.2/Tools/glib/common.py 2017-11-21 13:17:45.587105007 +0100 +@@ -0,0 +1,150 @@ ++#!/usr/bin/env python ++# Copyright (C) 2011 Igalia S.L. ++# ++# This library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2 of the License, or (at your option) any later version. ++# ++# This library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++# ++# You should have received a copy of the GNU Lesser General Public ++# License along with this library; if not, write to the Free Software ++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ ++import errno ++import os ++import select ++import subprocess ++import sys ++ ++top_level_dir = None ++build_dir = None ++library_build_dir = None ++binary_build_dir = None ++build_types = ('Release', 'Debug') ++ ++ ++def top_level_path(*args): ++ global top_level_dir ++ if not top_level_dir: ++ top_level_dir = os.path.join(os.path.dirname(__file__), '..', '..') ++ return os.path.join(*(top_level_dir,) + args) ++ ++ ++def set_build_types(new_build_types): ++ global build_types ++ build_types = new_build_types ++ ++ ++def library_build_path(*args): ++ global library_build_dir ++ if not library_build_dir: ++ library_build_dir = build_path('lib', *args) ++ return library_build_dir ++ ++ ++def binary_build_path(*args): ++ global binary_build_dir ++ if not binary_build_dir: ++ binary_build_dir = build_path('bin', *args) ++ return binary_build_dir ++ ++ ++def get_build_path(fatal=True): ++ global build_dir ++ if build_dir: ++ return build_dir ++ ++ def is_valid_build_directory(path): ++ return os.path.exists(os.path.join(path, 'CMakeCache.txt')) or \ ++ os.path.exists(os.path.join(path, 'bin/WebKitTestRunner')) ++ ++ if len(sys.argv[1:]) > 1 and os.path.exists(sys.argv[-1]) and is_valid_build_directory(sys.argv[-1]): ++ return sys.argv[-1] ++ ++ # Debian and Ubuntu build both flavours of the library (with gtk2 ++ # and with gtk3); they use directories build-2.0 and build-3.0 for ++ # that, which is not handled by the above cases; we check that the ++ # directory where we are called from is a valid build directory, ++ # which should handle pretty much all other non-standard cases. ++ build_dir = os.getcwd() ++ if is_valid_build_directory(build_dir): ++ return build_dir ++ ++ global build_types ++ for build_type in build_types: ++ build_dir = top_level_path('WebKitBuild', build_type) ++ if is_valid_build_directory(build_dir): ++ return build_dir ++ ++ # distcheck builds in a directory named _build in the top-level path. ++ build_dir = top_level_path("_build") ++ if is_valid_build_directory(build_dir): ++ return build_dir ++ ++ build_dir = top_level_path() ++ if is_valid_build_directory(build_dir): ++ return build_dir ++ ++ build_dir = top_level_path("WebKitBuild") ++ if is_valid_build_directory(build_dir): ++ return build_dir ++ ++ print('Could not determine build directory.') ++ if fatal: ++ sys.exit(1) ++ ++ ++def build_path(*args): ++ return os.path.join(*(get_build_path(),) + args) ++ ++ ++def pkg_config_file_variable(package, variable): ++ process = subprocess.Popen(['pkg-config', '--variable=%s' % variable, package], ++ stdout=subprocess.PIPE) ++ stdout = process.communicate()[0].decode("utf-8") ++ if process.returncode: ++ return None ++ return stdout.strip() ++ ++ ++def prefix_of_pkg_config_file(package): ++ return pkg_config_file_variable(package, 'prefix') ++ ++ ++def parse_output_lines(fd, parse_line_callback): ++ output = '' ++ read_set = [fd] ++ while read_set: ++ try: ++ rlist, wlist, xlist = select.select(read_set, [], []) ++ except select.error as e: ++ parse_line_callback("WARNING: error while waiting for fd %d to become readable\n" % fd) ++ parse_line_callback(" error code: %d, error message: %s\n" % (e[0], e[1])) ++ continue ++ ++ if fd in rlist: ++ try: ++ chunk = os.read(fd, 1024) ++ except OSError as e: ++ if e.errno == errno.EIO: ++ # Child process finished. ++ chunk = '' ++ else: ++ raise e ++ if not chunk: ++ read_set.remove(fd) ++ ++ output += chunk ++ while '\n' in output: ++ pos = output.find('\n') ++ parse_line_callback(output[:pos + 1]) ++ output = output[pos + 1:] ++ ++ if not chunk and output: ++ parse_line_callback(output) ++ output = '' diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 5cb4ad0..60c4876 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -21,6 +21,7 @@ Patch0: user-agent-branding.patch Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=132333 Patch2: cloop-big-endians.patch +Patch3: package-common-py.patch BuildRequires: at-spi2-core-devel BuildRequires: bison From 903c50089b251dca5f647966356bc8c494538783 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Thu, 30 Nov 2017 07:52:45 +0100 Subject: [PATCH 61/75] Temporarily disable bmalloc --- webkitgtk4.spec | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 60c4876..954ac53 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.19.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -181,6 +181,10 @@ rm -rf Source/ThirdParty/qunit/ # Disable ld.gold on s390 as it does not have it. # Also for aarch64 as the support is in upstream, but not packaged in Fedora. +# +# I really didn't want to do so, but looks like I have to disable bmalloc +# temporarily due to +# https://bugs.webkit.org/show_bug.cgi?id=179914 mkdir -p %{_target_platform} pushd %{_target_platform} %cmake \ @@ -194,9 +198,7 @@ pushd %{_target_platform} %ifarch s390 s390x ppc %{power64} -DENABLE_JIT=OFF \ %endif -%ifarch s390 s390x ppc %{power64} -DUSE_SYSTEM_MALLOC=ON \ -%endif .. popd @@ -278,6 +280,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Thu Nov 30 2017 Tomas Popela - 2.19.2-2 +- Temporarily disable bmalloc + * Tue Nov 21 2017 Tomas Popela - 2.19.2-1 - Update to 2.19.2 From 87938f22d06e3d94cbe7613dc6a2d66eb39f33a3 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Thu, 30 Nov 2017 15:28:00 +0100 Subject: [PATCH 62/75] Fix compilation with BMalloc turned off --- system-malloc-gigacage-build-fix.patch | 36 ++++++++++++++++++++++++++ webkitgtk4.spec | 5 ++-- 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 system-malloc-gigacage-build-fix.patch diff --git a/system-malloc-gigacage-build-fix.patch b/system-malloc-gigacage-build-fix.patch new file mode 100644 index 0000000..3aacd20 --- /dev/null +++ b/system-malloc-gigacage-build-fix.patch @@ -0,0 +1,36 @@ +diff --git a/Source/WTF/wtf/Gigacage.cpp b/Source/WTF/wtf/Gigacage.cpp +index ea3ecc6a216..48c2202e514 100644 +--- a/Source/WTF/wtf/Gigacage.cpp ++++ b/Source/WTF/wtf/Gigacage.cpp +@@ -32,9 +32,7 @@ + + #if defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC + +-extern "C" { +-void* g_gigacageBasePtr; +-} ++char g_gigacageBasePtrs[GIGACAGE_BASE_PTRS_SIZE]; + + namespace Gigacage { + +diff --git a/Source/WTF/wtf/Gigacage.h b/Source/WTF/wtf/Gigacage.h +index ce84e32fb37..b27f3c4f333 100644 +--- a/Source/WTF/wtf/Gigacage.h ++++ b/Source/WTF/wtf/Gigacage.h +@@ -97,6 +97,16 @@ ALWAYS_INLINE BasePtrs& basePtrs() + return *reinterpret_cast(g_gigacageBasePtrs); + } + ++ALWAYS_INLINE void*& basePtr(Kind kind) ++{ ++ return basePtr(basePtrs(), kind); ++} ++ ++ALWAYS_INLINE bool isEnabled(Kind kind) ++{ ++ return !!basePtr(kind); ++} ++ + ALWAYS_INLINE size_t mask(Kind) { return 0; } + + template diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 954ac53..53463cb 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -22,6 +22,8 @@ Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=132333 Patch2: cloop-big-endians.patch Patch3: package-common-py.patch +# https://bugs.webkit.org/show_bug.cgi?id=180188 +Patch4: system-malloc-gigacage-build-fix.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -183,8 +185,7 @@ rm -rf Source/ThirdParty/qunit/ # Also for aarch64 as the support is in upstream, but not packaged in Fedora. # # I really didn't want to do so, but looks like I have to disable bmalloc -# temporarily due to -# https://bugs.webkit.org/show_bug.cgi?id=179914 +# temporarily due to https://bugs.webkit.org/show_bug.cgi?id=179914 mkdir -p %{_target_platform} pushd %{_target_platform} %cmake \ From b2c4344b8abf8497a36fc81da7aaef2ee4720e4c Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Thu, 30 Nov 2017 20:55:48 +0000 Subject: [PATCH 63/75] Rebuild for ICU 60.1 --- webkitgtk4.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 53463cb..c87dab0 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -7,7 +7,7 @@ Name: webkitgtk4 Version: 2.19.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -281,6 +281,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Thu Nov 30 2017 Pete Walter - 2.19.2-3 +- Rebuild for ICU 60.1 + * Thu Nov 30 2017 Tomas Popela - 2.19.2-2 - Temporarily disable bmalloc From 6fef8df7e0c9697eb2f6574ce64e2dda0500997a Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 13 Dec 2017 13:40:49 +0100 Subject: [PATCH 64/75] Update to 2.19.3 Enable bmalloc again --- .gitignore | 1 + package-common-py.patch | 154 ------------------------- sources | 2 +- system-malloc-gigacage-build-fix.patch | 36 ------ webkitgtk4.spec | 16 ++- 5 files changed, 9 insertions(+), 200 deletions(-) delete mode 100644 package-common-py.patch delete mode 100644 system-malloc-gigacage-build-fix.patch diff --git a/.gitignore b/.gitignore index 5a57715..2fcaf03 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,4 @@ /webkitgtk-2.18.2.tar.xz /webkitgtk-2.19.1.tar.xz /webkitgtk-2.19.2.tar.xz +/webkitgtk-2.19.3.tar.xz diff --git a/package-common-py.patch b/package-common-py.patch deleted file mode 100644 index d8677e6..0000000 --- a/package-common-py.patch +++ /dev/null @@ -1,154 +0,0 @@ -diff -up webkitgtk-2.19.2/Tools/glib/common.py.package-common-py webkitgtk-2.19.2/Tools/glib/common.py ---- webkitgtk-2.19.2/Tools/glib/common.py.package-common-py 2017-11-21 13:18:14.258002441 +0100 -+++ webkitgtk-2.19.2/Tools/glib/common.py 2017-11-21 13:17:45.587105007 +0100 -@@ -0,0 +1,150 @@ -+#!/usr/bin/env python -+# Copyright (C) 2011 Igalia S.L. -+# -+# This library is free software; you can redistribute it and/or -+# modify it under the terms of the GNU Lesser General Public -+# License as published by the Free Software Foundation; either -+# version 2 of the License, or (at your option) any later version. -+# -+# This library is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# Lesser General Public License for more details. -+# -+# You should have received a copy of the GNU Lesser General Public -+# License along with this library; if not, write to the Free Software -+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -+ -+import errno -+import os -+import select -+import subprocess -+import sys -+ -+top_level_dir = None -+build_dir = None -+library_build_dir = None -+binary_build_dir = None -+build_types = ('Release', 'Debug') -+ -+ -+def top_level_path(*args): -+ global top_level_dir -+ if not top_level_dir: -+ top_level_dir = os.path.join(os.path.dirname(__file__), '..', '..') -+ return os.path.join(*(top_level_dir,) + args) -+ -+ -+def set_build_types(new_build_types): -+ global build_types -+ build_types = new_build_types -+ -+ -+def library_build_path(*args): -+ global library_build_dir -+ if not library_build_dir: -+ library_build_dir = build_path('lib', *args) -+ return library_build_dir -+ -+ -+def binary_build_path(*args): -+ global binary_build_dir -+ if not binary_build_dir: -+ binary_build_dir = build_path('bin', *args) -+ return binary_build_dir -+ -+ -+def get_build_path(fatal=True): -+ global build_dir -+ if build_dir: -+ return build_dir -+ -+ def is_valid_build_directory(path): -+ return os.path.exists(os.path.join(path, 'CMakeCache.txt')) or \ -+ os.path.exists(os.path.join(path, 'bin/WebKitTestRunner')) -+ -+ if len(sys.argv[1:]) > 1 and os.path.exists(sys.argv[-1]) and is_valid_build_directory(sys.argv[-1]): -+ return sys.argv[-1] -+ -+ # Debian and Ubuntu build both flavours of the library (with gtk2 -+ # and with gtk3); they use directories build-2.0 and build-3.0 for -+ # that, which is not handled by the above cases; we check that the -+ # directory where we are called from is a valid build directory, -+ # which should handle pretty much all other non-standard cases. -+ build_dir = os.getcwd() -+ if is_valid_build_directory(build_dir): -+ return build_dir -+ -+ global build_types -+ for build_type in build_types: -+ build_dir = top_level_path('WebKitBuild', build_type) -+ if is_valid_build_directory(build_dir): -+ return build_dir -+ -+ # distcheck builds in a directory named _build in the top-level path. -+ build_dir = top_level_path("_build") -+ if is_valid_build_directory(build_dir): -+ return build_dir -+ -+ build_dir = top_level_path() -+ if is_valid_build_directory(build_dir): -+ return build_dir -+ -+ build_dir = top_level_path("WebKitBuild") -+ if is_valid_build_directory(build_dir): -+ return build_dir -+ -+ print('Could not determine build directory.') -+ if fatal: -+ sys.exit(1) -+ -+ -+def build_path(*args): -+ return os.path.join(*(get_build_path(),) + args) -+ -+ -+def pkg_config_file_variable(package, variable): -+ process = subprocess.Popen(['pkg-config', '--variable=%s' % variable, package], -+ stdout=subprocess.PIPE) -+ stdout = process.communicate()[0].decode("utf-8") -+ if process.returncode: -+ return None -+ return stdout.strip() -+ -+ -+def prefix_of_pkg_config_file(package): -+ return pkg_config_file_variable(package, 'prefix') -+ -+ -+def parse_output_lines(fd, parse_line_callback): -+ output = '' -+ read_set = [fd] -+ while read_set: -+ try: -+ rlist, wlist, xlist = select.select(read_set, [], []) -+ except select.error as e: -+ parse_line_callback("WARNING: error while waiting for fd %d to become readable\n" % fd) -+ parse_line_callback(" error code: %d, error message: %s\n" % (e[0], e[1])) -+ continue -+ -+ if fd in rlist: -+ try: -+ chunk = os.read(fd, 1024) -+ except OSError as e: -+ if e.errno == errno.EIO: -+ # Child process finished. -+ chunk = '' -+ else: -+ raise e -+ if not chunk: -+ read_set.remove(fd) -+ -+ output += chunk -+ while '\n' in output: -+ pos = output.find('\n') -+ parse_line_callback(output[:pos + 1]) -+ output = output[pos + 1:] -+ -+ if not chunk and output: -+ parse_line_callback(output) -+ output = '' diff --git a/sources b/sources index 47796d0..15f8043 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.19.2.tar.xz) = 418a247745acdd16917881604ba75f0abddae5d631e8c0f4b6e35b80fb9b76f17706a1fa847be096c74dcea71c7b47e2178c6a2ce5bcc0d965411d83234fef7b +SHA512 (webkitgtk-2.19.3.tar.xz) = 1fccf0046270ebe33f6fd834838e2d8813dbbac1dcc2e832becd18faab4cc72173f489ea96cd21964d578d7492c084c14606c401c0d2404744c0b48cf899b2cc diff --git a/system-malloc-gigacage-build-fix.patch b/system-malloc-gigacage-build-fix.patch deleted file mode 100644 index 3aacd20..0000000 --- a/system-malloc-gigacage-build-fix.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/Source/WTF/wtf/Gigacage.cpp b/Source/WTF/wtf/Gigacage.cpp -index ea3ecc6a216..48c2202e514 100644 ---- a/Source/WTF/wtf/Gigacage.cpp -+++ b/Source/WTF/wtf/Gigacage.cpp -@@ -32,9 +32,7 @@ - - #if defined(USE_SYSTEM_MALLOC) && USE_SYSTEM_MALLOC - --extern "C" { --void* g_gigacageBasePtr; --} -+char g_gigacageBasePtrs[GIGACAGE_BASE_PTRS_SIZE]; - - namespace Gigacage { - -diff --git a/Source/WTF/wtf/Gigacage.h b/Source/WTF/wtf/Gigacage.h -index ce84e32fb37..b27f3c4f333 100644 ---- a/Source/WTF/wtf/Gigacage.h -+++ b/Source/WTF/wtf/Gigacage.h -@@ -97,6 +97,16 @@ ALWAYS_INLINE BasePtrs& basePtrs() - return *reinterpret_cast(g_gigacageBasePtrs); - } - -+ALWAYS_INLINE void*& basePtr(Kind kind) -+{ -+ return basePtr(basePtrs(), kind); -+} -+ -+ALWAYS_INLINE bool isEnabled(Kind kind) -+{ -+ return !!basePtr(kind); -+} -+ - ALWAYS_INLINE size_t mask(Kind) { return 0; } - - template diff --git a/webkitgtk4.spec b/webkitgtk4.spec index c87dab0..991d0d9 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,8 +6,8 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.19.2 -Release: 3%{?dist} +Version: 2.19.3 +Release: 1%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 @@ -21,9 +21,6 @@ Patch0: user-agent-branding.patch Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=132333 Patch2: cloop-big-endians.patch -Patch3: package-common-py.patch -# https://bugs.webkit.org/show_bug.cgi?id=180188 -Patch4: system-malloc-gigacage-build-fix.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -183,9 +180,6 @@ rm -rf Source/ThirdParty/qunit/ # Disable ld.gold on s390 as it does not have it. # Also for aarch64 as the support is in upstream, but not packaged in Fedora. -# -# I really didn't want to do so, but looks like I have to disable bmalloc -# temporarily due to https://bugs.webkit.org/show_bug.cgi?id=179914 mkdir -p %{_target_platform} pushd %{_target_platform} %cmake \ @@ -198,8 +192,8 @@ pushd %{_target_platform} %endif %ifarch s390 s390x ppc %{power64} -DENABLE_JIT=OFF \ -%endif -DUSE_SYSTEM_MALLOC=ON \ +%endif .. popd @@ -281,6 +275,10 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Wed Dec 13 2017 Tomas Popela - 2.19.3-1 +- Update to 2.19.3 +- Enable bmalloc again + * Thu Nov 30 2017 Pete Walter - 2.19.2-3 - Rebuild for ICU 60.1 From 4cd57b35c60e0d5de67cfbeea1beadcf9bf25c2b Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 13 Dec 2017 16:55:13 +0100 Subject: [PATCH 65/75] Fix licenses The build previously failed because one license was removed. --- webkitgtk4.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 991d0d9..b42712e 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -208,14 +208,17 @@ make %{?_smp_mflags} -C %{_target_platform} %add_to_license_files Source/JavaScriptCore/COPYING.LIB %add_to_license_files Source/JavaScriptCore/icu/LICENSE %add_to_license_files Source/ThirdParty/ANGLE/LICENSE +%add_to_license_files Source/ThirdParty/ANGLE/src/common/third_party/smhasher/LICENSE %add_to_license_files Source/ThirdParty/ANGLE/src/third_party/compiler/LICENSE -%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/murmurhash/LICENSE +%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/libXNVCtrl/LICENSE %add_to_license_files Source/WebCore/icu/LICENSE %add_to_license_files Source/WebCore/LICENSE-APPLE %add_to_license_files Source/WebCore/LICENSE-LGPL-2 %add_to_license_files Source/WebCore/LICENSE-LGPL-2.1 %add_to_license_files Source/WebInspectorUI/UserInterface/External/CodeMirror/LICENSE +%add_to_license_files Source/WebInspectorUI/UserInterface/External/ESLint/LICENSE %add_to_license_files Source/WebInspectorUI/UserInterface/External/Esprima/LICENSE +%add_to_license_files Source/WebInspectorUI/UserInterface/External/three.js/LICENSE %add_to_license_files Source/WTF/icu/LICENSE %add_to_license_files Source/WTF/wtf/dtoa/COPYING %add_to_license_files Source/WTF/wtf/dtoa/LICENSE From 3f02e0172c5b8f65551c8e150fdbd67cda5240c9 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 19 Dec 2017 11:14:04 +0100 Subject: [PATCH 66/75] Update to 2.18.4 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index feb5549..b3c60fe 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,4 @@ /webkitgtk-2.18.1.tar.xz /webkitgtk-2.18.2.tar.xz /webkitgtk-2.18.3.tar.xz +/webkitgtk-2.18.4.tar.xz diff --git a/sources b/sources index c51d45e..ef062a1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.18.3.tar.xz) = 8ba68d7234205728ed4b92358304cf0d0b771647d9b4316085241adeacafe67dee685225b0b46752087b93416ce8d2053a5a7c2376fda1eee7bc6d9024ae787e +SHA512 (webkitgtk-2.18.4.tar.xz) = c7440668cc097232b7eb9ea15e1047f7110cd06249cb61501b0414175693e0b11b22335abf17c62582dcf16c41ae49d0a713cd069f7df32955e440b9d23194d1 diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 9eb9cc8..7e9598e 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.18.3 +Version: 2.18.4 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -270,6 +270,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue Dec 19 2017 Tomas Popela - 2.18.4-1 +- Update to 2.18.4 + * Mon Nov 13 2017 Tomas Popela - 2.18.3-1 - Update to 2.18.3 From ed730dc62da82a2f8bec26200d58b4c70c3e8b29 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 9 Jan 2018 13:13:41 +0100 Subject: [PATCH 67/75] Update to 2.19.4 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 2fcaf03..d74f3d3 100644 --- a/.gitignore +++ b/.gitignore @@ -69,3 +69,4 @@ /webkitgtk-2.19.1.tar.xz /webkitgtk-2.19.2.tar.xz /webkitgtk-2.19.3.tar.xz +/webkitgtk-2.19.4.tar.xz diff --git a/sources b/sources index 15f8043..4d98bed 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.19.3.tar.xz) = 1fccf0046270ebe33f6fd834838e2d8813dbbac1dcc2e832becd18faab4cc72173f489ea96cd21964d578d7492c084c14606c401c0d2404744c0b48cf899b2cc +SHA512 (webkitgtk-2.19.4.tar.xz) = 7572567739b89db29c609186b35d9132e532ca4719304cdfec1fe1394c01e4c3591a12d71563529d6122e1e2d42b3dc30e2cf8fb0dc5541920a42760a7aebd06 diff --git a/webkitgtk4.spec b/webkitgtk4.spec index b42712e..eccabb8 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.19.3 +Version: 2.19.4 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -278,6 +278,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue Jan 09 2018 Tomas Popela - 2.19.4-1 +- Update to 2.19.4 + * Wed Dec 13 2017 Tomas Popela - 2.19.3-1 - Update to 2.19.3 - Enable bmalloc again From 03f6a2b2a6444683ed7927bb861ff4d5d1b11c92 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 9 Jan 2018 19:19:46 +0100 Subject: [PATCH 68/75] Update to 2.19.5 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index d74f3d3..62636b7 100644 --- a/.gitignore +++ b/.gitignore @@ -70,3 +70,4 @@ /webkitgtk-2.19.2.tar.xz /webkitgtk-2.19.3.tar.xz /webkitgtk-2.19.4.tar.xz +/webkitgtk-2.19.5.tar.xz diff --git a/sources b/sources index 4d98bed..06376b2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.19.4.tar.xz) = 7572567739b89db29c609186b35d9132e532ca4719304cdfec1fe1394c01e4c3591a12d71563529d6122e1e2d42b3dc30e2cf8fb0dc5541920a42760a7aebd06 +SHA512 (webkitgtk-2.19.5.tar.xz) = a3f22d7764be5118ab9065931c19c87993e5a1fcdbb532462e7158200e98eda417fcc12cdef340e6612eb799926c70d61457d1bfe07347755102e7ed882a9285 diff --git a/webkitgtk4.spec b/webkitgtk4.spec index eccabb8..d5d7a56 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.19.4 +Version: 2.19.5 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -278,6 +278,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Tue Jan 09 2018 Tomas Popela - 2.19.5-1 +- Update to 2.19.5 + * Tue Jan 09 2018 Tomas Popela - 2.19.4-1 - Update to 2.19.4 From 8f4b0ae5dabf57dd74ece29ac5e896bb1fe1ae1d Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 10 Jan 2018 11:58:35 +0100 Subject: [PATCH 69/75] Update to 2.18.5 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index b3c60fe..4b70a9e 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,4 @@ /webkitgtk-2.18.2.tar.xz /webkitgtk-2.18.3.tar.xz /webkitgtk-2.18.4.tar.xz +/webkitgtk-2.18.5.tar.xz diff --git a/sources b/sources index ef062a1..64955eb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.18.4.tar.xz) = c7440668cc097232b7eb9ea15e1047f7110cd06249cb61501b0414175693e0b11b22335abf17c62582dcf16c41ae49d0a713cd069f7df32955e440b9d23194d1 +SHA512 (webkitgtk-2.18.5.tar.xz) = f11a45150af4ba36192380ad0757da53d50b660f0a4f127a71123a6d80e9757d16a1deb1d69b235852c62bb1225352823932c60df7d6aa9372442ed7a165068c diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 7e9598e..f98acd5 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.18.4 +Version: 2.18.5 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -270,6 +270,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Wed Jan 10 2018 Tomas Popela - 2.18.5-1 +- Update to 2.18.5 + * Tue Dec 19 2017 Tomas Popela - 2.18.4-1 - Update to 2.18.4 From 256d15f6647f1eb96adf30a688a640e135021ea7 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Fri, 12 Jan 2018 15:49:56 +0100 Subject: [PATCH 70/75] Package was renamed to webkit2gtk3 --- .gitignore | 73 ---- cloop-big-endians.patch | 30 -- dead.package | 1 + fedora-crypto-policy.patch | 24 -- sources | 1 - user-agent-branding.patch | 13 - webkitgtk4.spec | 777 ------------------------------------- 7 files changed, 1 insertion(+), 918 deletions(-) delete mode 100644 .gitignore delete mode 100644 cloop-big-endians.patch create mode 100644 dead.package delete mode 100644 fedora-crypto-policy.patch delete mode 100644 sources delete mode 100644 user-agent-branding.patch delete mode 100644 webkitgtk4.spec diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 62636b7..0000000 --- a/.gitignore +++ /dev/null @@ -1,73 +0,0 @@ -/webkitgtk-2.5.3.tar.xz -/webkitgtk-2.5.90.tar.xz -/webkitgtk-2.6.0.tar.xz -/webkitgtk-2.6.1.tar.xz -/webkitgtk-2.6.2.tar.xz -/webkitgtk-2.7.1.tar.xz -/webkitgtk-2.7.2.tar.xz -/webkitgtk-2.7.3.tar.xz -/webkitgtk-2.7.4.tar.xz -/webkitgtk-2.7.90.tar.xz -/webkitgtk-2.7.91.tar.xz -/webkitgtk-2.7.92.tar.xz -/webkitgtk-2.8.0.tar.xz -/webkitgtk-2.8.1.tar.xz -/webkitgtk-2.9.1.tar.xz -/webkitgtk-2.9.2.tar.xz -/webkitgtk-2.9.3.tar.xz -/webkitgtk-2.9.4.tar.xz -/webkitgtk-2.9.5.tar.xz -/webkitgtk-2.9.90.tar.xz -/webkitgtk-2.9.91.tar.xz -/webkitgtk-2.9.92.tar.xz -/webkitgtk-2.10.0.tar.xz -/webkitgtk-2.10.1.tar.xz -/webkitgtk-2.10.2.tar.xz -/webkitgtk-2.10.3.tar.xz -/webkitgtk-2.11.1.tar.xz -/webkitgtk-2.11.2.tar.xz -/webkitgtk-2.11.3.tar.xz -/webkitgtk-2.11.4.tar.xz -/webkitgtk-2.11.5.tar.xz -/webkitgtk-2.11.90.tar.xz -/webkitgtk-2.11.91.tar.xz -/webkitgtk-2.11.92.tar.xz -/webkitgtk-2.12.0.tar.xz -/webkitgtk-2.12.1.tar.xz -/webkitgtk-2.12.2.tar.xz -/webkitgtk-2.12.3.tar.xz -/webkitgtk-2.13.1.tar.xz -/webkitgtk-2.13.2.tar.xz -/webkitgtk-2.13.3.tar.xz -/webkitgtk-2.13.4.tar.xz -/webkitgtk-2.13.90.tar.xz -/webkitgtk-2.13.91.tar.xz -/webkitgtk-2.13.92.tar.xz -/webkitgtk-2.14.0.tar.xz -/webkitgtk-2.14.1.tar.xz -/webkitgtk-2.15.1.tar.xz -/webkitgtk-2.14.2.tar.xz -/webkitgtk-2.15.2.tar.xz -/webkitgtk-2.15.3.tar.xz -/webkitgtk-2.15.4.tar.xz -/webkitgtk-2.15.90.tar.xz -/webkitgtk-2.15.91.tar.xz -/webkitgtk-2.15.92.tar.xz -/webkitgtk-2.16.0.tar.xz -/webkitgtk-2.16.1.tar.xz -/webkitgtk-2.17.1.tar.xz -/webkitgtk-2.17.2.tar.xz -/webkitgtk-2.17.3.tar.xz -/webkitgtk-2.17.4.tar.xz -/webkitgtk-2.17.5.tar.xz -/webkitgtk-2.17.90.tar.xz -/webkitgtk-2.17.91.tar.xz -/webkitgtk-2.17.92.tar.xz -/webkitgtk-2.18.0.tar.xz -/webkitgtk-2.18.1.tar.xz -/webkitgtk-2.18.2.tar.xz -/webkitgtk-2.19.1.tar.xz -/webkitgtk-2.19.2.tar.xz -/webkitgtk-2.19.3.tar.xz -/webkitgtk-2.19.4.tar.xz -/webkitgtk-2.19.5.tar.xz diff --git a/cloop-big-endians.patch b/cloop-big-endians.patch deleted file mode 100644 index 7bb12df..0000000 --- a/cloop-big-endians.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -up webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp.b132333 webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp ---- webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp.b132333 2017-02-07 09:05:07.000000000 +0100 -+++ webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp 2017-06-16 10:34:57.859748036 +0200 -@@ -2186,7 +2186,12 @@ void CodeBlock::finishCreation(VM& vm, S - instructions[i + 5].u.watchpointSet = op.watchpointSet; - else if (op.structure) - instructions[i + 5].u.structure.set(vm, this, op.structure); -- instructions[i + 6].u.pointer = reinterpret_cast(op.operand); -+ -+ if (op.type == ClosureVar || op.type == ClosureVarWithVarInjectionChecks || op.type == GlobalProperty || op.type == GlobalPropertyWithVarInjectionChecks || op.type == ModuleVar) -+ instructions[i + 6].u.operand = op.operand; -+ else -+ instructions[i + 6].u.pointer = reinterpret_cast(op.operand); -+ - break; - } - -@@ -2222,7 +2227,11 @@ void CodeBlock::finishCreation(VM& vm, S - op.watchpointSet->invalidate(vm, PutToScopeFireDetail(this, ident)); - } else if (op.structure) - instructions[i + 5].u.structure.set(vm, this, op.structure); -- instructions[i + 6].u.pointer = reinterpret_cast(op.operand); -+ -+ if (op.type == ClosureVar || op.type == ClosureVarWithVarInjectionChecks || op.type == GlobalProperty || op.type == GlobalPropertyWithVarInjectionChecks || op.type == ModuleVar) -+ instructions[i + 6].u.operand = op.operand; -+ else -+ instructions[i + 6].u.pointer = reinterpret_cast(op.operand); - - break; - } diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..f75d3fb --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Package was renamed to webkit2gtk3 diff --git a/fedora-crypto-policy.patch b/fedora-crypto-policy.patch deleted file mode 100644 index 8a317db..0000000 --- a/fedora-crypto-policy.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.fedora-crypto-policy webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp ---- webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp.fedora-crypto-policy 2017-09-05 13:39:59.294426661 +0200 -+++ webkitgtk-2.17.92/Source/WebKit/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp 2017-09-05 13:40:09.144389997 +0200 -@@ -43,7 +43,7 @@ int main(int argc, char** argv) - // overwrite this priority string if it's already set by the user. - // https://bugzilla.gnome.org/show_bug.cgi?id=738633 - // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. -- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); -+ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); - - #if USE(GCRYPT) - PAL::GCrypt::initialize(); -diff -up webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.fedora-crypto-policy webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp ---- webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.fedora-crypto-policy 2017-09-05 13:40:28.558317735 +0200 -+++ webkitgtk-2.17.92/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp 2017-09-05 13:40:56.057215378 +0200 -@@ -43,7 +43,7 @@ int main(int argc, char** argv) - // overwrite this priority string if it's already set by the user. - // https://bugzilla.gnome.org/show_bug.cgi?id=738633 - // WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp. -- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); -+ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:!VERS-SSL3.0:!ARCFOUR-128", 0); - - #if USE(GCRYPT) - PAL::GCrypt::initialize(); diff --git a/sources b/sources deleted file mode 100644 index 06376b2..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (webkitgtk-2.19.5.tar.xz) = a3f22d7764be5118ab9065931c19c87993e5a1fcdbb532462e7158200e98eda417fcc12cdef340e6612eb799926c70d61457d1bfe07347755102e7ed882a9285 diff --git a/user-agent-branding.patch b/user-agent-branding.patch deleted file mode 100644 index d87f3e7..0000000 --- a/user-agent-branding.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up webkitglib-2.14.1/Source/WebCore/platform/glib/UserAgentGLib.cpp.orig webkitglib-2.14.1/Source/WebCore/platform/glib/UserAgentGLib.cpp ---- webkitglib-2.14.1/Source/WebCore/platform/glib/UserAgentGLib.cpp.orig 2016-10-12 07:59:25.670057792 +0200 -+++ webkitglib-2.14.1/Source/WebCore/platform/glib/UserAgentGLib.cpp 2016-10-12 08:01:06.251878684 +0200 -@@ -85,6 +85,9 @@ static String buildUserAgentString(const UserAgentQuirks& quirks) - else { - uaString.append(platformForUAString()); - uaString.appendLiteral("; "); -+#if defined(USER_AGENT_GTK_DISTRIBUTOR_NAME) -+ uaString.appendLiteral(USER_AGENT_GTK_DISTRIBUTOR_NAME "; "); -+#endif - uaString.append(platformVersionForUAString()); - } - diff --git a/webkitgtk4.spec b/webkitgtk4.spec deleted file mode 100644 index d5d7a56..0000000 --- a/webkitgtk4.spec +++ /dev/null @@ -1,777 +0,0 @@ -## NOTE: Lots of files in various subdirectories have the same name (such as -## "LICENSE") so this short macro allows us to distinguish them by using their -## directory names (from the source tree) as prefixes for the files. -%global add_to_license_files() \ - mkdir -p _license_files ; \ - cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') - -Name: webkitgtk4 -Version: 2.19.5 -Release: 1%{?dist} -Summary: GTK+ Web content engine library - -License: LGPLv2 -URL: http://www.webkitgtk.org/ -Source0: http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz - -# https://bugs.webkit.org/show_bug.cgi?id=162611 -Patch0: user-agent-branding.patch -# https://fedoraproject.org/wiki/Packaging:CryptoPolicies -# https://bugs.webkit.org/show_bug.cgi?id=158785 -Patch1: fedora-crypto-policy.patch -# https://bugs.webkit.org/show_bug.cgi?id=132333 -Patch2: cloop-big-endians.patch - -BuildRequires: at-spi2-core-devel -BuildRequires: bison -BuildRequires: brotli-devel -BuildRequires: cairo-devel -BuildRequires: cmake -BuildRequires: enchant-devel -BuildRequires: flex -BuildRequires: fontconfig-devel -BuildRequires: freetype-devel -BuildRequires: geoclue2-devel -BuildRequires: gettext -BuildRequires: glib2-devel -BuildRequires: gnutls-devel -BuildRequires: gobject-introspection-devel -BuildRequires: gperf -BuildRequires: gstreamer1-devel -BuildRequires: gstreamer1-plugins-base-devel -BuildRequires: gstreamer1-plugins-bad-free-devel -BuildRequires: gtk2-devel -BuildRequires: gtk3-devel -BuildRequires: gtk-doc -BuildRequires: harfbuzz-devel -BuildRequires: hyphen-devel -BuildRequires: libicu-devel -BuildRequires: libjpeg-devel -BuildRequires: libnotify-devel -BuildRequires: libpng-devel -BuildRequires: libsecret-devel -BuildRequires: libsoup-devel -BuildRequires: libwebp-devel -BuildRequires: libxslt-devel -BuildRequires: libXt-devel -BuildRequires: libwayland-client-devel -BuildRequires: libwayland-egl-devel -BuildRequires: libwayland-server-devel -BuildRequires: mesa-libEGL-devel -BuildRequires: mesa-libGL-devel -BuildRequires: mesa-libGLES-devel -BuildRequires: pcre-devel -BuildRequires: perl-File-Copy-Recursive -BuildRequires: perl-JSON-PP -BuildRequires: perl-Switch -BuildRequires: ruby -BuildRequires: rubygems -BuildRequires: sqlite-devel -BuildRequires: upower-devel -BuildRequires: woff2-devel -%ifarch ppc -BuildRequires: libatomic -%endif - -Requires: geoclue2 - -# Obsolete libwebkit2gtk from the webkitgtk3 package -Obsoletes: libwebkit2gtk < 2.5.0 -Provides: libwebkit2gtk = %{version}-%{release} - -# We're supposed to specify versions here, but these crap Google libs don't do -# normal releases. Accordingly, they're not suitable to be system libs. -Provides: bundled(angle) - -# Require the jsc subpackage -Requires: %{name}-jsc%{?_isa} = %{version}-%{release} - -# Recommend the support for the GTK+ 2 based NPAPI plugins -Recommends: %{name}-plugin-process-gtk2%{?_isa} = %{version}-%{release} -Obsoletes: %{name} < 2.12.0-3 - -# Filter out provides for private libraries -%global __provides_exclude_from ^%{_libdir}/webkit2gtk-4\\.0/.*\\.so$ - -%description -WebKitGTK+ is the port of the portable web rendering engine WebKit to the -GTK+ platform. - -This package contains WebKitGTK+ for GTK+ 3. - -%package devel -Summary: Development files for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} -Requires: %{name}-jsc%{?_isa} = %{version}-%{release} -Requires: %{name}-jsc-devel%{?_isa} = %{version}-%{release} - -%description devel -The %{name}-devel package contains libraries, build data, and header -files for developing applications that use %{name}. - -%package doc -Summary: Documentation files for %{name} -BuildArch: noarch -Requires: %{name} = %{version}-%{release} - -%description doc -This package contains developer documentation for %{name}. - -%package jsc -Summary: JavaScript engine from %{name} - -%description jsc -This package contains JavaScript engine from %{name}. - -%package jsc-devel -Summary: Development files for JavaScript engine from %{name} -Requires: %{name}-jsc%{?_isa} = %{version}-%{release} - -%description jsc-devel -The %{name}-jsc-devel package contains libraries, build data, and header -files for developing applications that use JavaScript engine from %{name}. - -%package plugin-process-gtk2 -Summary: GTK+ 2 based NPAPI plugins support for %{name} -Obsoletes: %{name} < 2.12.0-3 -Requires: %{name}-jsc%{?_isa} = %{version}-%{release} - -%description plugin-process-gtk2 -Support for the GTK+ 2 based NPAPI plugins (such as Adobe Flash) for %{name}. - -%prep -%autosetup -p1 -n webkitgtk-%{version} - -# Remove bundled libraries -rm -rf Source/ThirdParty/gtest/ -rm -rf Source/ThirdParty/qunit/ - -%build -# Increase the DIE limit so our debuginfo packages could be size optimized. -# Decreases the size for x86_64 from ~5G to ~1.1G. -# https://bugzilla.redhat.com/show_bug.cgi?id=1456261 -%global _dwz_max_die_limit 250000000 -# The _dwz_max_die_limit is being overridden by the arch specific ones from the -# redhat-rpm-config so we need to set the arch specific ones as well - now it -# is only needed for x86_64. -%global _dwz_max_die_limit_x86_64 250000000 - -%ifarch s390 aarch64 -# Use linker flags to reduce memory consumption - on other arches the ld.gold is -# used and also it doesn't have the --reduce-memory-overheads option -%global optflags %{optflags} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads -%endif - -# Decrease debuginfo even on ix86 because of: -# https://bugs.webkit.org/show_bug.cgi?id=140176 -%ifarch s390 s390x %{arm} %{ix86} ppc %{power64} %{mips} -# Decrease debuginfo verbosity to reduce memory consumption even more -%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') -%endif - -%ifarch ppc -# Use linker flag -relax to get WebKit build under ppc(32) with JIT disabled -%global optflags %{optflags} -Wl,-relax -%endif - -%if 0%{?fedora} -%global optflags %{optflags} -DUSER_AGENT_GTK_DISTRIBUTOR_NAME=\'\\"Fedora\\"\' -%endif - -# Disable ld.gold on s390 as it does not have it. -# Also for aarch64 as the support is in upstream, but not packaged in Fedora. -mkdir -p %{_target_platform} -pushd %{_target_platform} -%cmake \ - -DPORT=GTK \ - -DCMAKE_BUILD_TYPE=Release \ - -DENABLE_GTKDOC=ON \ - -DENABLE_MINIBROWSER=ON \ -%ifarch s390 aarch64 - -DUSE_LD_GOLD=OFF \ -%endif -%ifarch s390 s390x ppc %{power64} - -DENABLE_JIT=OFF \ - -DUSE_SYSTEM_MALLOC=ON \ -%endif - .. -popd - -make %{?_smp_mflags} -C %{_target_platform} - -%install -%make_install -C %{_target_platform} - -%find_lang WebKit2GTK-4.0 - -# Finally, copy over and rename various files for %%license inclusion -%add_to_license_files Source/JavaScriptCore/COPYING.LIB -%add_to_license_files Source/JavaScriptCore/icu/LICENSE -%add_to_license_files Source/ThirdParty/ANGLE/LICENSE -%add_to_license_files Source/ThirdParty/ANGLE/src/common/third_party/smhasher/LICENSE -%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/compiler/LICENSE -%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/libXNVCtrl/LICENSE -%add_to_license_files Source/WebCore/icu/LICENSE -%add_to_license_files Source/WebCore/LICENSE-APPLE -%add_to_license_files Source/WebCore/LICENSE-LGPL-2 -%add_to_license_files Source/WebCore/LICENSE-LGPL-2.1 -%add_to_license_files Source/WebInspectorUI/UserInterface/External/CodeMirror/LICENSE -%add_to_license_files Source/WebInspectorUI/UserInterface/External/ESLint/LICENSE -%add_to_license_files Source/WebInspectorUI/UserInterface/External/Esprima/LICENSE -%add_to_license_files Source/WebInspectorUI/UserInterface/External/three.js/LICENSE -%add_to_license_files Source/WTF/icu/LICENSE -%add_to_license_files Source/WTF/wtf/dtoa/COPYING -%add_to_license_files Source/WTF/wtf/dtoa/LICENSE - -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig -%post jsc -p /sbin/ldconfig -%postun jsc -p /sbin/ldconfig - -%files -f WebKit2GTK-4.0.lang -%license _license_files/*ThirdParty* -%license _license_files/*WebCore* -%license _license_files/*WebInspectorUI* -%license _license_files/*WTF* -%{_libdir}/libwebkit2gtk-4.0.so.* -%dir %{_libdir}/girepository-1.0 -%{_libdir}/girepository-1.0/WebKit2-4.0.typelib -%{_libdir}/girepository-1.0/WebKit2WebExtension-4.0.typelib -%{_libdir}/webkit2gtk-4.0/ -%{_libexecdir}/webkit2gtk-4.0/ -%{_bindir}/WebKitWebDriver -%exclude %{_libexecdir}/webkit2gtk-4.0/WebKitPluginProcess2 - -%files devel -%{_libexecdir}/webkit2gtk-4.0/MiniBrowser -%{_includedir}/webkitgtk-4.0/ -%exclude %{_includedir}/webkitgtk-4.0/JavaScriptCore -%{_libdir}/libwebkit2gtk-4.0.so -%{_libdir}/pkgconfig/webkit2gtk-4.0.pc -%{_libdir}/pkgconfig/webkit2gtk-web-extension-4.0.pc -%dir %{_datadir}/gir-1.0 -%{_datadir}/gir-1.0/WebKit2-4.0.gir -%{_datadir}/gir-1.0/WebKit2WebExtension-4.0.gir - -%files jsc -%license _license_files/*JavaScriptCore* -%{_libdir}/libjavascriptcoregtk-4.0.so.* -%dir %{_libdir}/girepository-1.0 -%{_libdir}/girepository-1.0/JavaScriptCore-4.0.typelib - -%files jsc-devel -%{_libexecdir}/webkit2gtk-4.0/jsc -%dir %{_includedir}/webkitgtk-4.0 -%{_includedir}/webkitgtk-4.0/JavaScriptCore/ -%{_libdir}/libjavascriptcoregtk-4.0.so -%{_libdir}/pkgconfig/javascriptcoregtk-4.0.pc -%dir %{_datadir}/gir-1.0 -%{_datadir}/gir-1.0/JavaScriptCore-4.0.gir - -%files plugin-process-gtk2 -%{_libexecdir}/webkit2gtk-4.0/WebKitPluginProcess2 - -%files doc -%dir %{_datadir}/gtk-doc -%dir %{_datadir}/gtk-doc/html -%{_datadir}/gtk-doc/html/webkit2gtk-4.0/ -%{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ - -%changelog -* Tue Jan 09 2018 Tomas Popela - 2.19.5-1 -- Update to 2.19.5 - -* Tue Jan 09 2018 Tomas Popela - 2.19.4-1 -- Update to 2.19.4 - -* Wed Dec 13 2017 Tomas Popela - 2.19.3-1 -- Update to 2.19.3 -- Enable bmalloc again - -* Thu Nov 30 2017 Pete Walter - 2.19.2-3 -- Rebuild for ICU 60.1 - -* Thu Nov 30 2017 Tomas Popela - 2.19.2-2 -- Temporarily disable bmalloc - -* Tue Nov 21 2017 Tomas Popela - 2.19.2-1 -- Update to 2.19.2 - -* Thu Nov 02 2017 Kalev Lember - 2.19.2-2 -- Fix gir directory ownership - -* Tue Oct 31 2017 Tomas Popela - 2.19.1-1 -- Update to 2.19.1 - -* Fri Oct 27 2017 Tomas Popela - 2.18.2-1 -- Update to 2.18.2 - -* Thu Oct 26 2017 Vít Ondruch - 2.18.1-2 -- Drop the explicit dependnecy on rubypick. - -* Wed Oct 18 2017 Tomas Popela - 2.18.1-1 -- Update to 2.18.1 - -* Wed Sep 13 2017 Richard W.M. Jones - 2.18.0-2 -- Rebuild to try to fix: libwebkit2gtk-4.0.so.37: undefined symbol: - soup_auth_manager_clear_cached_credentials - -* Mon Sep 11 2017 Tomas Popela - 2.18.0-1 -- Update to 2.18.0 - -* Tue Sep 05 2017 Tomas Popela - 2.17.92-1 -- Update to 2.17.92 - -* Fri Aug 18 2017 Tomas Popela - 2.17.91-1 -- Update to 2.17.91 - -* Wed Aug 09 2017 Tomas Popela - 2.17.90-1 -- Update to 2.17.90 - -* Thu Aug 03 2017 Fedora Release Engineering - 2.17.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Tomas Popela - 2.17.5-1 -- Update to 2.17.5 - -* Thu Jul 20 2017 Tomas Popela - 2.17.4-4 -- Rebuild for rhbz#1470692 - -* Tue Jul 18 2017 Richard W.M. Jones - 2.17.4-3 -- Bump release and rebuild to attempt to fix _ZSt11__once_call - dynamic linking problem (RHBZ#1470692). - -* Wed Jun 21 2017 Tomas Popela - 2.17.4-2 -- Take two on increasing the DIE limit as the _dwz_max_die_limit is being - overridden by the arch specific ones from the redhat-rpm-config - -* Mon Jun 19 2017 Tomas Popela - 2.17.4-1 -- Update to 2.17.4 -- Increase the DIE limit so our debuginfo packages could be size optimized - rhbz#1456261 - -* Mon May 22 2017 Tomas Popela - 2.17.3-1 -- Update to 2.17.3 - -* Mon May 15 2017 Fedora Release Engineering - 2.17.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild - -* Mon May 15 2017 Tomas Popela - 2.17.2-1 -- Update to 2.17.2 - -* Tue May 09 2017 Michael Catanzaro - 2.17.1-1 -- Update to 2.17.1 - -* Mon Apr 10 2017 Tomas Popela - 2.16.1-3 -- Enable JIT and bmalloc on aarch64 and MIPS - -* Thu Apr 06 2017 Tomas Popela - 2.16.1-2 -- Add patch for freezing regression - -* Tue Apr 04 2017 Tomas Popela - 2.16.1-1 -- Update to 2.16.1 - -* Mon Mar 20 2017 Tomas Popela - 2.16.0-1 -- Update to 2.16.0 - -* Tue Mar 14 2017 Tomas Popela - 2.15.92-1 -- Update to 2.15.92 - -* Wed Mar 01 2017 Tomas Popela - 2.15.91-1 -- Update to 2.15.91 - -* Fri Feb 24 2017 Bastien Nocera - 2.15.90-2 -- Add patch to fix hangs when showing the Google search page - -* Tue Feb 21 2017 Tomas Popela - 2.15.90-1 -- Update to 2.15.90 - -* Tue Feb 07 2017 Tomas Popela - 2.15.4-4 -- Add patches to make Evolution usable again - rhbz#1418413 - -* Thu Feb 02 2017 Tomas Popela - 2.15.4-3 -- Push gcc7 fixes, only buildable with gcc-7.0.1-0.5.fc26 and higher - -* Wed Feb 01 2017 Sandro Mani - 2.15.4-2 -- Rebuild (libwebp) - -* Tue Jan 31 2017 Tomas Popela - 2.15.4-1 -- Update to 2.15.4 - -* Mon Jan 23 2017 Tomas Popela - 2.15.3-1 -- Update to 2.15.3 - -* Mon Nov 21 2016 Tomas Popela - 2.15.2-1 -- Update to 2.15.2 - -* Wed Oct 26 2016 Tomas Popela - 2.15.1-1 -- Update to 2.15.1 - -* Wed Oct 12 2016 Adam Jackson - 2.14.1-2 -- Prefer eglGetPlatformDisplay to eglGetDisplay - -* Wed Oct 12 2016 Tomas Popela - 2.14.1-1 -- Update to 2.14.1 - -* Tue Sep 20 2016 Tomas Popela - 2.14.0-1 -- Update to 2.14.0 - -* Thu Sep 15 2016 Tomas Popela - 2.13.92-1 -- Update to 2.13.92 - -* Mon Sep 12 2016 Tomas Popela - 2.13.91-1 -- Update to 2.13.91 - -* Wed Aug 31 2016 Tomas Popela - 2.13.90-1 -- Update to 2.13.90 - -* Wed Jul 27 2016 Tomas Popela - 2.13.4-1 -- Update to 2.13.4 - -* Mon Jul 18 2016 Tomas Popela - 2.13.3-1 -- Update to 2.13.3 -- Enable JIT on ARMv7 - -* Fri Jul 08 2016 Tomas Popela - 2.13.2-4 -- Remove the wrong patch for THUMB2 support - -* Tue Jun 28 2016 Michael Catanzaro - 2.13.2-3 -- Disable NPAPI in Wayland -- Specify more bundled provides -- Again disable JIT on ARMv7 until rhbz#1350982 is fixed - -* Tue Jun 28 2016 Tomas Popela - 2.13.2-2 -- Enable JIT and BMalloc on ARMv7 - -* Thu Jun 23 2016 Tomas Popela - 2.13.2-1 -- Update to 2.13.2 -- Disable JIT on ARM until https://bugs.webkit.org/show_bug.cgi?id=159083 is fixed - -* Sun Jun 19 2016 Michael Catanzaro - 2.13.1-2 -- Add patch to comply with Fedora crypto policy - -* Tue May 31 2016 Tomas Popela - 2.13.1-1 -- Update to 2.13.1 - -* Tue May 24 2016 Tomas Popela - 2.12.3-1 -- Update to 2.12.3 - -* Fri Apr 29 2016 Igor Gnatenko - 2.12.2-2 -- Remove typelib from jsc-devel because it is in jsc - -* Thu Apr 28 2016 Tomas Popela - 2.12.2-1 -- Update to 2.12.2 - -* Tue Apr 26 2016 Tomas Popela - 2.12.1-3 -- Fix the build on aarch64 - disable bmalloc as it's crashing when generating - the documentation - -* Fri Apr 15 2016 David Tardon - 2.12.1-2 -- rebuild for ICU 57.1 - -* Thu Apr 14 2016 Tomas Popela - 2.12.1-1 -- Update to 2.12.1 - -* Thu Apr 07 2016 Michael Catanzaro - 2.12.0-3 -- Attempt harder to ensure plugin-process-gtk2 is installed on upgrade - -* Wed Apr 06 2016 Michael Catanzaro - 2.12.0-2 -- Attempt to ensure plugin-process-gtk2 is installed on upgrade -- Add patch for WebKit#155885 - -* Tue Mar 22 2016 Tomas Popela - 2.12.0-1 -- Update to 2.12.0 - -* Sun Mar 20 2016 Igor Gnatenko - 2.11.92-3 -- Add missing ldconfig call for jsc subpkg - -* Thu Mar 17 2016 Tomas Popela - 2.11.92-2 -- Fix the build with gcc6 - -* Thu Mar 17 2016 Tomas Popela - 2.11.92-1 -- Update to 2.11.92 - -* Tue Mar 15 2016 Tomas Popela - 2.11.91-2 -- Subpackage the WebKitPluginProcess2 -- Resolves: rhbz#1317692 - -* Tue Mar 01 2016 Tomas Popela - 2.11.91-1 -- Update to 2.11.91 - -* Mon Feb 29 2016 David King - 2.11.90-4 -- Move JavaScriptCore headers to jsc-devel subpackage (#1312894) - -* Wed Feb 24 2016 Michael Catanzaro - 2.11.90-3 -- Stop building with ENABLE_OPENGL=OFF, see WebKit#126122 and WebKit#150955. - -* Mon Feb 22 2016 Tomas Popela - 2.11.90-1 -- Update to 2.11.90 - -* Tue Feb 9 2016 Peter Robinson 2.11.5-2 -- Add ruby deps for build - -* Tue Feb 09 2016 Tomas Popela - 2.11.5-1 -- Update to 2.11.5 -- Drop the llvm dependencies as we switched to B3 -- Rebase the YouTube patch - -* Fri Feb 05 2016 Fedora Release Engineering - 2.11.4-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Jan 28 2016 Tomas Popela - 2.11.4-2 -- Rebuilt for LLVM rebase - -* Wed Jan 20 2016 Tomas Popela - 2.11.4-1 -- Update to 2.11.4 - -* Wed Jan 13 2016 Michael Catanzaro - 2.11.3-2 -- Build with ENABLE_OPENGL=OFF as I think it is causing bugs. -- Stop static linking to LLVM. - -* Wed Jan 13 2016 Tomas Popela - 2.11.3-1 -- Update to 2.11.3 - -* Wed Dec 30 2015 Michael Catanzaro - 2.11.2-6 -- Remove webkitgtk-2.5.90-cloop_fix.patch and - webkitgtk-2.8.0-page_size_align.patch. These have been broken for ages. -- Remove webkitgtk-2.8.0-s390_fixes.patch since this is a patch for bmalloc, but - we disable bmalloc on s390. -- Don't request hardened build, it's the default. -- Use public USE_SYSTEM_MALLOC option instead of unsupported USE_BMALLOC. -- lldb is not bundled anymore. - -* Wed Dec 30 2015 Michal Toman - 2.11.2-5 -- Add support for MIPS - -* Mon Dec 28 2015 Igor Gnatenko - 2.11.2-4 -- Rebuilt for libwebp soname bump - -* Mon Dec 07 2015 Tomas Popela - 2.11.2-3 -- rhbz#1289053 - Retire nspluginwrapper and remove from Fedora 24 - -* Mon Nov 30 2015 Tomas Popela - 2.11.2-2 -- Introduce the jsc and jsc-devel subpackages with JavaScriptCore packaged -- Resolves: rhbz#1176677 - -* Mon Nov 23 2015 Tomas Popela - 2.11.2-1 -- Update to 2.11.2 -- Enable FTL on x86_64 - -* Tue Nov 03 2015 Tomas Popela - 2.11.1-1 -- Update to 2.11.1 - -* Wed Oct 28 2015 David Tardon - 2.10.3-2 -- rebuild for ICU 56.1 - -* Tue Oct 27 2015 Tomas Popela - 2.10.3-1 -- Update to 2.10.3 - -* Thu Oct 15 2015 Tomas Popela - 2.10.2-1 -- Update to 2.10.2 - -* Thu Oct 15 2015 Kalev Lember - 2.10.1-2 -- Rebuilt - -* Wed Oct 14 2015 Tomas Popela - 2.10.1-1 -- Update to 2.10.1 - -* Fri Oct 09 2015 Michael Catanzaro - 2.10.0-2 -- Add provides bundled(angle) since it's finally safe to do so. - -* Mon Sep 21 2015 Kalev Lember - 2.10.0-1 -- Update to 2.10.0 - -* Wed Sep 16 2015 Tomas Popela - 2.9.92-1 -- Update to 2.9.92 - -* Wed Aug 26 2015 Kalev Lember - 2.9.91-1 -- Update to 2.9.91 - -* Mon Aug 24 2015 Michael Catanzaro - 2.9.90-2 -- Remove the address space limit patch: it was causing too many problems. -- (Warning! This means Red Hat Bugzilla can hang your computer again.) -- Improve the YouTube patch to avoid spamming the journal with rpm output. -- Add patch from upstream to workaround severe a performance regression. -- No need to explicitly enable Wayland support anymore; it's now default. - -* Wed Aug 19 2015 Kalev Lember - 2.9.90-1 -- Update to 2.9.90 - -* Mon Aug 03 2015 Tomas Popela - 2.9.5-1 -- Update to 2.9.5 - -* Sat Aug 01 2015 Michael Catanzaro - 2.9.4-3 -- Make YouTube work. - -* Tue Jul 28 2015 Michael Catanzaro - 2.9.4-2 -- Exempt the plugin process from the address space limit. - -* Wed Jul 22 2015 Tomas Popela - 2.9.4-1 -- Update to 2.9.4 - -* Thu Jul 09 2015 Michael Catanzaro - 2.9.3-3 -- Prevent runaway web processes from using unlimited memory. - -* Wed Jul 01 2015 Michael Catanzaro - 2.9.3-2 -- Enable Wayland support at long last. Hopefully fixes #1220811. - -* Tue Jun 23 2015 Tomas Popela - 2.9.3-1 -- Update to 2.9.3 - -* Fri Jun 19 2015 Fedora Release Engineering - 2.9.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Wed May 27 2015 Tomas Popela - 2.9.2-1 -- Update to 2.9.2 - -* Thu May 07 2015 Tomas Popela - 2.9.1-1 -- Update to 2.9.1 -- Add hyphen-devel as BR - -* Tue Apr 21 2015 Michael Catanzaro - 2.8.1-2 -- Reenable fast matrix multiplication on x86_64 - -* Tue Apr 14 2015 Tomas Popela - 2.8.1-1 -- Update to 2.8.1 - -* Wed Apr 08 2015 Michael Catanzaro - 2.8.0-4 -- Build with support for HTML5 desktop notifications - -* Wed Apr 08 2015 Tomas Popela - 2.8.0-3 -- Fix CLoop on secondary arches - -* Fri Mar 27 2015 Than Ngo - 2.8.0-2 -- Fix build failures on s390 -- Fix build failures with gcc 5 -- Decrease the debuginfo verbosity on ppc and others - -* Mon Mar 23 2015 Tomas Popela - 2.8.0-1 -- Update to 2.8.0 - -* Tue Mar 17 2015 Tomas Popela - 2.7.92-1 -- Update to 2.7.92 -- Re-enable parallel build -- Compile and ship MiniBrowser - -* Mon Mar 16 2015 Michael Catanzaro 2.7.91-3 -- Add a couple patches to fix more crashes - -* Wed Mar 04 2015 Michael Catanzaro 2.7.91-2 -- Add patch to make gnome-online-accounts 3.15.91 not crash - -* Tue Mar 03 2015 Tomas Popela - 2.7.91-1 -- Update to 2.7.91 - -* Thu Feb 26 2015 Michael Catanzaro - 2.7.90-10 -- Add Fedora branding to the user agent - -* Thu Feb 19 2015 Tomas Popela - 2.7.90-9 -- Fix the build with cmake 3.2.x - -* Thu Feb 19 2015 Tomas Popela - 2.7.90-8 -- Fix crash in CLoop -- Forgot to reset the release number so continuing with 8 -- Decrease the debuginfo verbosity on s390x - -* Wed Feb 18 2015 Tomas Popela - 2.7.90-7 -- Update to 2.7.90 -- Add JIT and CLoop fixes - -* Mon Feb 16 2015 Michael Catanzaro - 2.7.4-7 -- Remove disable codec installer patch, not needed in GNOME 3.15.90 - -* Tue Feb 10 2015 Michael Catanzaro - 2.7.4-6 -- Temporarily disable cloop patch since it breaks js -- Add patch for gmutexlocker namespace collision with glib 2.43.4 - -* Fri Feb 06 2015 Michael Catanzaro - 2.7.4-5 -- Revert yesterday's changes since they don't help. - -* Thu Feb 05 2015 Michael Catanzaro - 2.7.4-4 -- Disable JIT to see if it fixes js. - -* Thu Feb 05 2015 Michael Catanzaro - 2.7.4-3 -- Disable hardened build to see if it fixes js - -* Mon Jan 26 2015 David Tardon - 2.7.4-2 -- rebuild for ICU 54.1 - -* Tue Jan 20 2015 Tomas Popela - 2.7.4-1 -- Update to 2.7.4 - -* Mon Jan 19 2015 Tomas Popela - 2.7.3-3 -- Fix compilation on secondary arches - -* Thu Jan 08 2015 Tomas Popela - 2.7.3-2 -- Decrease debuginfo verbosity on ix86 to let it build - -* Tue Dec 16 2014 Tomas Popela - 2.7.3-1 -- Update to 2.7.3 - -* Tue Dec 09 2014 Michael Catanzaro - 2.7.2-3 -- Disable the PackageKit codec installer - -* Sun Dec 07 2014 Michael Catanzaro - 2.7.2-2 -- Enable hardened build - -* Mon Nov 24 2014 Tomas Popela - 2.7.2-1 -- Update to 2.7.2 -- Don't use ld.gold on s390 and aarch64 - -* Wed Nov 12 2014 Tomas Popela - 2.7.1-5 -- Enable JIT where possible (accidentally turned off when updating to 2.5.90) - -* Fri Nov 07 2014 Kalev Lember - 2.7.1-4 -- Build developer documentation - -* Fri Oct 31 2014 Michael Catanzaro - 2.7.1-3 -- Obsolete libwebkit2gtk < 2.5.0 to be future-proof - -* Fri Oct 31 2014 Kalev Lember - 2.7.1-2 -- Bump libwebkit2gtk obsoletes version - -* Wed Oct 29 2014 Tomas Popela - 2.7.1-1 -- Update to 2.7.1 - -* Wed Oct 22 2014 Tomas Popela - 2.6.2-1 -- Update to 2.6.2 - -* Tue Oct 21 2014 Tomas Popela - 2.6.1-2 -- Disable the SSLv3 to address the POODLE vulnerability - -* Tue Oct 14 2014 Tomas Popela - 2.6.1-1 -- Update to 2.6.1 - -* Thu Sep 25 2014 Tomas Popela - 2.6.0-1 -- Add the wrongly removed CLoop patch and remove the one that was upstreamed - -* Wed Sep 24 2014 Kalev Lember - 2.6.0-1 -- Update to 2.6.0 - -* Mon Sep 22 2014 Tomas Popela - 2.5.90-1 -- Update to 2.5.90 - -* Tue Aug 26 2014 Kalev Lember - 2.5.3-7 -- Obsolete libwebkit2gtk from the webkitgtk3 package - -* Tue Aug 26 2014 David Tardon - 2.5.3-6 -- rebuild for ICU 53.1 - -* Mon Aug 25 2014 Tomas Popela - 2.5.3-5 -- Add support for secondary arches - -* Fri Aug 22 2014 Michael Catanzaro - 2.5.3-4 -- Add webkitgtk-2.5.3-toggle-buttons.patch - -* Thu Aug 21 2014 Kalev Lember - 2.5.3-3 -- More package review fixes (#1131284) -- Correct the license tag to read LGPLv2 -- Filter out provides for private libraries - -* Tue Aug 19 2014 Kalev Lember - 2.5.3-2 -- Remove bundled leveldb, gtest, qunit in %%prep (#1131284) - -* Fri Aug 15 2014 Kalev Lember - 2.5.3-1 -- Update to 2.5.3 - -* Fri Aug 01 2014 Kalev Lember - 2.5.1-1 -- Initial Fedora packaging, based on the webkitgtk3 package From b79929e5eb448e941e0c6904df3dd2a571860144 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 24 Jan 2018 12:23:57 +0100 Subject: [PATCH 71/75] Update to 2.18.6 --- .gitignore | 1 + sources | 2 +- webkitgtk4.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 4b70a9e..ff5b130 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,4 @@ /webkitgtk-2.18.3.tar.xz /webkitgtk-2.18.4.tar.xz /webkitgtk-2.18.5.tar.xz +/webkitgtk-2.18.6.tar.xz diff --git a/sources b/sources index 64955eb..cd8650e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.18.5.tar.xz) = f11a45150af4ba36192380ad0757da53d50b660f0a4f127a71123a6d80e9757d16a1deb1d69b235852c62bb1225352823932c60df7d6aa9372442ed7a165068c +SHA512 (webkitgtk-2.18.6.tar.xz) = 375907d4c84e27aaa4b5df9a71424488c1b2ba0cf1d63e107d678c0f55f677996a80e9d9a9d4a412b40d1d0dde77b88464c54246cbafe70751042ec8a7bbe029 diff --git a/webkitgtk4.spec b/webkitgtk4.spec index f98acd5..3786e18 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.18.5 +Version: 2.18.6 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -270,6 +270,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Wed Jan 24 2018 Tomas Popela - 2.18.6-1 +- Update to 2.18.6 + * Wed Jan 10 2018 Tomas Popela - 2.18.5-1 - Update to 2.18.5 From 265780f74248a2c7c7bfa998dfde1a2fb8d12e00 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 12 Mar 2018 12:19:53 +0100 Subject: [PATCH 72/75] Update to 2.20.0 --- .gitignore | 1 + page-size.patch | 12 ++++++++++++ sources | 2 +- webkitgtk4.spec | 18 ++++++++++++++---- 4 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 page-size.patch diff --git a/.gitignore b/.gitignore index ff5b130..1cced97 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,4 @@ /webkitgtk-2.18.4.tar.xz /webkitgtk-2.18.5.tar.xz /webkitgtk-2.18.6.tar.xz +/webkitgtk-2.20.0.tar.xz diff --git a/page-size.patch b/page-size.patch new file mode 100644 index 0000000..6e1b230 --- /dev/null +++ b/page-size.patch @@ -0,0 +1,12 @@ +diff -up webkitgtk-2.19.91/Source/JavaScriptCore/heap/MarkedBlock.h.page_size webkitgtk-2.19.91/Source/JavaScriptCore/heap/MarkedBlock.h +--- webkitgtk-2.19.91/Source/JavaScriptCore/heap/MarkedBlock.h.page_size 2018-02-21 09:55:37.388754142 +0100 ++++ webkitgtk-2.19.91/Source/JavaScriptCore/heap/MarkedBlock.h 2018-02-21 09:55:51.789690916 +0100 +@@ -67,7 +67,7 @@ private: + friend class Handle; + public: + static constexpr size_t atomSize = 16; // bytes +- static constexpr size_t blockSize = 16 * KB; ++ static constexpr size_t blockSize = 64 * KB; + static constexpr size_t blockMask = ~(blockSize - 1); // blockSize must be a power of two. + + static constexpr size_t atomsPerBlock = blockSize / atomSize; diff --git a/sources b/sources index cd8650e..d56da59 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (webkitgtk-2.18.6.tar.xz) = 375907d4c84e27aaa4b5df9a71424488c1b2ba0cf1d63e107d678c0f55f677996a80e9d9a9d4a412b40d1d0dde77b88464c54246cbafe70751042ec8a7bbe029 +SHA512 (webkitgtk-2.20.0.tar.xz) = 5e3d1c38828691a639780d7bb9d31fc327e74e07b24a111422a38490eda75eca78bb2d62cedfebe0496e01673eb57e1625f4986a194af301968f67d17a9205be diff --git a/webkitgtk4.spec b/webkitgtk4.spec index 3786e18..8554679 100644 --- a/webkitgtk4.spec +++ b/webkitgtk4.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk4 -Version: 2.18.6 +Version: 2.20.0 Release: 1%{?dist} Summary: GTK+ Web content engine library @@ -21,6 +21,9 @@ Patch0: user-agent-branding.patch Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=132333 Patch2: cloop-big-endians.patch +# Silly workaround for +# https://bugs.webkit.org/show_bug.cgi?id=182923 +Patch3: page-size.patch BuildRequires: at-spi2-core-devel BuildRequires: bison @@ -137,7 +140,13 @@ Requires: %{name}-jsc%{?_isa} = %{version}-%{release} Support for the GTK+ 2 based NPAPI plugins (such as Adobe Flash) for %{name}. %prep -%autosetup -p1 -n webkitgtk-%{version} +%setup -q -n webkitgtk-%{version} +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%ifarch ppc %{power64} s390 %{s390x} +%patch3 -p1 +%endif # Remove bundled libraries rm -rf Source/ThirdParty/gtest/ @@ -189,8 +198,6 @@ pushd %{_target_platform} %endif %ifarch s390 s390x ppc %{power64} -DENABLE_JIT=OFF \ -%endif -%ifarch s390 s390x ppc %{power64} -DUSE_SYSTEM_MALLOC=ON \ %endif .. @@ -270,6 +277,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog +* Mon Mar 12 2018 Tomas Popela - 2.20.0-1 +- Update to 2.20.0 + * Wed Jan 24 2018 Tomas Popela - 2.18.6-1 - Update to 2.18.6 From 434b597cb969b8543c5e8c21d95abe1609898aea Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 12 Mar 2018 16:19:27 +0100 Subject: [PATCH 73/75] Bundle woff2 and brotli as they're not in F26 and F27 --- ...2-1.0.2-and-drop-direct-brotli-depen.patch | 111 + ...ypos-in-library-names-for-the-GTK-po.patch | 35 + remove_brotli.patch | 12853 ++++++++++++++++ remove_woff2.patch | 5289 +++++++ webkitgtk4.spec | 22 +- 5 files changed, 18309 insertions(+), 1 deletion(-) create mode 100644 0001-GTK-Require-woff2-1.0.2-and-drop-direct-brotli-depen.patch create mode 100644 0001-Unreviewed-fix-typos-in-library-names-for-the-GTK-po.patch create mode 100644 remove_brotli.patch create mode 100644 remove_woff2.patch diff --git a/0001-GTK-Require-woff2-1.0.2-and-drop-direct-brotli-depen.patch b/0001-GTK-Require-woff2-1.0.2-and-drop-direct-brotli-depen.patch new file mode 100644 index 0000000..7303b95 --- /dev/null +++ b/0001-GTK-Require-woff2-1.0.2-and-drop-direct-brotli-depen.patch @@ -0,0 +1,111 @@ +From aacbb7501a1c9b16a73211a8a67ff5b028e92988 Mon Sep 17 00:00:00 2001 +From: "mcatanzaro@igalia.com" + +Date: Tue, 14 Nov 2017 00:42:20 +0000 +Subject: [PATCH] [GTK] Require woff2 1.0.2 and drop direct brotli dependency + https://bugs.webkit.org/show_bug.cgi?id=179630 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Reviewed by Frédéric Wang. + +.: + +* Source/cmake/FindBrotliDec.cmake: Removed. +* Source/cmake/OptionsGTK.cmake: + +Tools: + +* gtk/jhbuild.modules: + + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@224793 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + ChangeLog | 10 ++++++++ + Source/cmake/FindBrotliDec.cmake | 53 ---------------------------------------- + Source/cmake/OptionsGTK.cmake | 6 +---- + Tools/ChangeLog | 9 +++++++ + Tools/gtk/jhbuild.modules | 2 +- + 5 files changed, 21 insertions(+), 59 deletions(-) + delete mode 100644 Source/cmake/FindBrotliDec.cmake + +diff --git a/Source/cmake/FindBrotliDec.cmake b/Source/cmake/FindBrotliDec.cmake +deleted file mode 100644 +index 3a8cf90357f..00000000000 +--- a/Source/cmake/FindBrotliDec.cmake ++++ /dev/null +@@ -1,53 +0,0 @@ +-# - Try to find BrotliDec. +-# Once done, this will define +-# +-# BROTLIDEC_FOUND - system has BrotliDec. +-# BROTLIDEC_INCLUDE_DIRS - the BrotliDec include directories +-# BROTLIDEC_LIBRARIES - link these to use BrotliDec. +-# +-# Copyright (C) 2017 Igalia S.L. +-# +-# Redistribution and use in source and binary forms, with or without +-# modification, are permitted provided that the following conditions +-# are met: +-# 1. Redistributions of source code must retain the above copyright +-# notice, this list of conditions and the following disclaimer. +-# 2. Redistributions in binary form must reproduce the above copyright +-# notice, this list of conditions and the following disclaimer in the +-# documentation and/or other materials provided with the distribution. +-# +-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``AS +-# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ITS +-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- +-find_package(PkgConfig) +-pkg_check_modules(PC_BROTLIDEC libbrotlidec) +- +-find_path(BROTLIDEC_INCLUDE_DIRS +- NAMES brotli/decode.h +- HINTS ${PC_BROTLIDEC_INCLUDEDIR} +-) +- +-find_library(BROTLIDEC_LIBRARIES +- NAMES brotlidec +- HINTS ${PC_BROTLIDEC_LIBDIR} +-) +- +-include(FindPackageHandleStandardArgs) +-find_package_handle_standard_args(BrotliDec +- REQUIRED_VARS BROTLIDEC_INCLUDE_DIRS BROTLIDEC_LIBRARIES +- FOUND_VAR BROTLIDEC_FOUND +- VERSION_VAR PC_BROTLIDEC_VERSION) +- +-mark_as_advanced( +- BROTLIDEC_INCLUDE_DIRS +- BROTLIDEC_LIBRARIES +-) +diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake +index ba7e134c7cc..39c3a9be47e 100644 +--- a/Source/cmake/OptionsGTK.cmake ++++ b/Source/cmake/OptionsGTK.cmake +@@ -365,11 +365,7 @@ if (USE_UPOWER) + endif () + + if (USE_WOFF2) +- find_package(BrotliDec 1.0.1) +- if (NOT BROTLIDEC_FOUND) +- message(FATAL_ERROR "libbrotlidec is needed for USE_WOFF2.") +- endif () +- find_package(WOFF2Dec 1.0.1) ++ find_package(WOFF2Dec 1.0.2) + if (NOT WOFF2DEC_FOUND) + message(FATAL_ERROR "libwoff2dec is needed for USE_WOFF2.") + endif () +-- +2.16.2 + diff --git a/0001-Unreviewed-fix-typos-in-library-names-for-the-GTK-po.patch b/0001-Unreviewed-fix-typos-in-library-names-for-the-GTK-po.patch new file mode 100644 index 0000000..b18bada --- /dev/null +++ b/0001-Unreviewed-fix-typos-in-library-names-for-the-GTK-po.patch @@ -0,0 +1,35 @@ +From ecbb859d88eacad10bf556044abaeaed6c9b32fc Mon Sep 17 00:00:00 2001 +From: "berto@igalia.com" + +Date: Thu, 2 Nov 2017 13:41:16 +0000 +Subject: [PATCH] Unreviewed, fix typos in library names for the GTK+ port. + +* Source/cmake/OptionsGTK.cmake: + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@224329 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + ChangeLog | 6 ++++++ + Source/cmake/OptionsGTK.cmake | 4 ++-- + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake +index 2b440a27376..6c99868ae86 100644 +--- a/Source/cmake/OptionsGTK.cmake ++++ b/Source/cmake/OptionsGTK.cmake +@@ -367,11 +367,11 @@ endif () + if (USE_WOFF2) + find_package(BrotliDec 1.0.1) + if (NOT BROTLIDEC_FOUND) +- message(FATAL_ERROR "librotlidec is needed for USE_WOFF2.") ++ message(FATAL_ERROR "libbrotlidec is needed for USE_WOFF2.") + endif () + find_package(WOFF2Dec 1.0.1) + if (NOT WOFF2DEC_FOUND) +- message(FATAL_ERROR "liwoff2dec is needed for USE_WOFF2.") ++ message(FATAL_ERROR "libwoff2dec is needed for USE_WOFF2.") + endif () + endif () + +-- +2.16.2 + diff --git a/remove_brotli.patch b/remove_brotli.patch new file mode 100644 index 0000000..596f62e --- /dev/null +++ b/remove_brotli.patch @@ -0,0 +1,12853 @@ +diff -up webkitgtk-2.20.0/Source/cmake/FindBrotliDec.cmake.remove_brotli webkitgtk-2.20.0/Source/cmake/FindBrotliDec.cmake +--- webkitgtk-2.20.0/Source/cmake/FindBrotliDec.cmake.remove_brotli 2018-03-12 14:43:28.679016345 +0100 ++++ webkitgtk-2.20.0/Source/cmake/FindBrotliDec.cmake 2018-03-12 14:46:44.967630278 +0100 +@@ -1,53 +0,0 @@ +-# - Try to find BrotliDec. +-# Once done, this will define +-# +-# BROTLIDEC_FOUND - system has BrotliDec. +-# BROTLIDEC_INCLUDE_DIRS - the BrotliDec include directories +-# BROTLIDEC_LIBRARIES - link these to use BrotliDec. +-# +-# Copyright (C) 2017 Igalia S.L. +-# +-# Redistribution and use in source and binary forms, with or without +-# modification, are permitted provided that the following conditions +-# are met: +-# 1. Redistributions of source code must retain the above copyright +-# notice, this list of conditions and the following disclaimer. +-# 2. Redistributions in binary form must reproduce the above copyright +-# notice, this list of conditions and the following disclaimer in the +-# documentation and/or other materials provided with the distribution. +-# +-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``AS +-# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ITS +-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- +-find_package(PkgConfig) +-pkg_check_modules(PC_BROTLIDEC libbrotlidec) +- +-find_path(BROTLIDEC_INCLUDE_DIRS +- NAMES brotli/decode.h +- HINTS ${PC_BROTLIDEC_INCLUDEDIR} +-) +- +-find_library(BROTLIDEC_LIBRARIES +- NAMES brotlidec +- HINTS ${PC_BROTLIDEC_LIBDIR} +-) +- +-include(FindPackageHandleStandardArgs) +-find_package_handle_standard_args(BrotliDec +- REQUIRED_VARS BROTLIDEC_INCLUDE_DIRS BROTLIDEC_LIBRARIES +- FOUND_VAR BROTLIDEC_FOUND +- VERSION_VAR PC_BROTLIDEC_VERSION) +- +-mark_as_advanced( +- BROTLIDEC_INCLUDE_DIRS +- BROTLIDEC_LIBRARIES +-) +diff -up webkitgtk-2.20.0/Source/CMakeLists.txt.remove_brotli webkitgtk-2.20.0/Source/CMakeLists.txt +--- webkitgtk-2.20.0/Source/CMakeLists.txt.remove_brotli 2018-03-12 14:43:28.690016267 +0100 ++++ webkitgtk-2.20.0/Source/CMakeLists.txt 2018-03-12 14:43:28.708016140 +0100 +@@ -22,6 +22,7 @@ if (USE_OPENVR) + endif () + + if (USE_WOFF2) ++ add_subdirectory(ThirdParty/brotli) + add_subdirectory(ThirdParty/woff2) + endif () + +diff -up webkitgtk-2.20.0/Source/cmake/OptionsGTK.cmake.remove_brotli webkitgtk-2.20.0/Source/cmake/OptionsGTK.cmake +--- webkitgtk-2.20.0/Source/cmake/OptionsGTK.cmake.remove_brotli 2018-03-12 14:43:28.729015992 +0100 ++++ webkitgtk-2.20.0/Source/cmake/OptionsGTK.cmake 2018-03-12 14:46:14.846842972 +0100 +@@ -47,6 +47,7 @@ WEBKIT_OPTION_BEGIN() + include(GStreamerDefinitions) + + SET_AND_EXPOSE_TO_BUILD(USE_CAIRO TRUE) ++SET_AND_EXPOSE_TO_BUILD(USE_WOFF2 TRUE) + SET_AND_EXPOSE_TO_BUILD(USE_XDGMIME TRUE) + SET_AND_EXPOSE_TO_BUILD(USE_GCRYPT TRUE) + +@@ -81,7 +82,6 @@ WEBKIT_OPTION_DEFINE(ENABLE_WAYLAND_TARG + WEBKIT_OPTION_DEFINE(USE_LIBNOTIFY "Whether to enable the default web notification implementation." PUBLIC ON) + WEBKIT_OPTION_DEFINE(USE_LIBHYPHEN "Whether to enable the default automatic hyphenation implementation." PUBLIC ON) + WEBKIT_OPTION_DEFINE(USE_LIBSECRET "Whether to enable the persistent credential storage using libsecret." PUBLIC ON) +-WEBKIT_OPTION_DEFINE(USE_WOFF2 "Whether to enable support for WOFF2 Web Fonts." PUBLIC ON) + + # Private options specific to the GTK+ port. Changing these options is + # completely unsupported. They are intended for use only by WebKit developers. +@@ -340,13 +340,6 @@ if (USE_LIBHYPHEN) + endif () + endif () + +-if (USE_WOFF2) +- find_package(BrotliDec 1.0.1) +- if (NOT BROTLIDEC_FOUND) +- message(FATAL_ERROR "librotlidec is needed for USE_WOFF2.") +- endif () +-endif () +- + # https://bugs.webkit.org/show_bug.cgi?id=182247 + if (ENABLED_COMPILER_SANITIZERS) + set(ENABLE_INTROSPECTION OFF) +diff -up webkitgtk-2.20.0/Source/ThirdParty/brotli/CMakeLists.txt.remove_brotli webkitgtk-2.20.0/Source/ThirdParty/brotli/CMakeLists.txt +--- webkitgtk-2.20.0/Source/ThirdParty/brotli/CMakeLists.txt.remove_brotli 2018-03-12 14:43:28.709016133 +0100 ++++ webkitgtk-2.20.0/Source/ThirdParty/brotli/CMakeLists.txt 2018-03-12 14:43:28.709016133 +0100 +@@ -0,0 +1,24 @@ ++set(BROTLI_DIR "${THIRDPARTY_DIR}/brotli") ++ ++set(BROTLI_INCLUDE_DIRECTORIES ++ "${BROTLI_DIR}/common" ++ "${BROTLI_DIR}/dec" ++ "${BROTLI_DIR}/include" ++) ++ ++set(BROTLI_SOURCES ++ ${BROTLI_DIR}/common/dictionary.c ++ ${BROTLI_DIR}/dec/bit_reader.c ++ ${BROTLI_DIR}/dec/decode.c ++ ${BROTLI_DIR}/dec/huffman.c ++ ${BROTLI_DIR}/dec/state.c ++) ++ ++include_directories("${BROTLI_INCLUDE_DIRECTORIES}") ++add_definitions(-DBROTLI_BUILD_PORTABLE) ++add_library(brotli STATIC ${BROTLI_SOURCES}) ++ ++if (COMPILER_IS_GCC_OR_CLANG) ++ WEBKIT_ADD_TARGET_C_FLAGS(brotli -Wno-cast-align ++ -Wno-implicit-fallthrough) ++endif () +diff -up webkitgtk-2.20.0/Source/ThirdParty/brotli/common/constants.h.remove_brotli webkitgtk-2.20.0/Source/ThirdParty/brotli/common/constants.h +--- webkitgtk-2.20.0/Source/ThirdParty/brotli/common/constants.h.remove_brotli 2018-03-12 14:43:28.710016126 +0100 ++++ webkitgtk-2.20.0/Source/ThirdParty/brotli/common/constants.h 2018-03-12 14:43:28.710016126 +0100 +@@ -0,0 +1,57 @@ ++/* Copyright 2016 Google Inc. All Rights Reserved. ++ ++ Distributed under MIT license. ++ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT ++*/ ++ ++#ifndef BROTLI_COMMON_CONSTANTS_H_ ++#define BROTLI_COMMON_CONSTANTS_H_ ++ ++/* Specification: 7.3. Encoding of the context map */ ++#define BROTLI_CONTEXT_MAP_MAX_RLE 16 ++ ++/* Specification: 2. Compressed representation overview */ ++#define BROTLI_MAX_NUMBER_OF_BLOCK_TYPES 256 ++ ++/* Specification: 3.3. Alphabet sizes: insert-and-copy length */ ++#define BROTLI_NUM_LITERAL_SYMBOLS 256 ++#define BROTLI_NUM_COMMAND_SYMBOLS 704 ++#define BROTLI_NUM_BLOCK_LEN_SYMBOLS 26 ++#define BROTLI_MAX_CONTEXT_MAP_SYMBOLS (BROTLI_MAX_NUMBER_OF_BLOCK_TYPES + \ ++ BROTLI_CONTEXT_MAP_MAX_RLE) ++#define BROTLI_MAX_BLOCK_TYPE_SYMBOLS (BROTLI_MAX_NUMBER_OF_BLOCK_TYPES + 2) ++ ++/* Specification: 3.5. Complex prefix codes */ ++#define BROTLI_REPEAT_PREVIOUS_CODE_LENGTH 16 ++#define BROTLI_REPEAT_ZERO_CODE_LENGTH 17 ++#define BROTLI_CODE_LENGTH_CODES (BROTLI_REPEAT_ZERO_CODE_LENGTH + 1) ++/* "code length of 8 is repeated" */ ++#define BROTLI_INITIAL_REPEATED_CODE_LENGTH 8 ++ ++/* Specification: 4. Encoding of distances */ ++#define BROTLI_NUM_DISTANCE_SHORT_CODES 16 ++#define BROTLI_MAX_NPOSTFIX 3 ++#define BROTLI_MAX_NDIRECT 120 ++#define BROTLI_MAX_DISTANCE_BITS 24U ++/* BROTLI_NUM_DISTANCE_SYMBOLS == 520 */ ++#define BROTLI_NUM_DISTANCE_SYMBOLS (BROTLI_NUM_DISTANCE_SHORT_CODES + \ ++ BROTLI_MAX_NDIRECT + \ ++ (BROTLI_MAX_DISTANCE_BITS << \ ++ (BROTLI_MAX_NPOSTFIX + 1))) ++/* Distance that is guaranteed to be representable in any stream. */ ++#define BROTLI_MAX_DISTANCE 0x3FFFFFC ++ ++/* 7.1. Context modes and context ID lookup for literals */ ++/* "context IDs for literals are in the range of 0..63" */ ++#define BROTLI_LITERAL_CONTEXT_BITS 6 ++ ++/* 7.2. Context ID for distances */ ++#define BROTLI_DISTANCE_CONTEXT_BITS 2 ++ ++/* 9.1. Format of the Stream Header */ ++/* Number of slack bytes for window size. Don't confuse ++ with BROTLI_NUM_DISTANCE_SHORT_CODES. */ ++#define BROTLI_WINDOW_GAP 16 ++#define BROTLI_MAX_BACKWARD_LIMIT(W) (((size_t)1 << (W)) - BROTLI_WINDOW_GAP) ++ ++#endif /* BROTLI_COMMON_CONSTANTS_H_ */ +diff -up webkitgtk-2.20.0/Source/ThirdParty/brotli/common/dictionary.bin.remove_brotli webkitgtk-2.20.0/Source/ThirdParty/brotli/common/dictionary.bin +--- webkitgtk-2.20.0/Source/ThirdParty/brotli/common/dictionary.bin.remove_brotli 2018-03-12 14:43:28.712016112 +0100 ++++ webkitgtk-2.20.0/Source/ThirdParty/brotli/common/dictionary.bin 2018-03-12 14:43:28.711016119 +0100 +@@ -0,0 +1,432 @@ ++timedownlifeleftbackcodedatashowonlysitecityopenjustlikefreeworktextyearoverbodyloveformbookplaylivelinehelphomesidemorewordlongthemviewfindpagedaysfullheadtermeachareafromtruemarkableuponhighdatelandnewsevennextcasebothpostusedmadehandherewhatnameLinkblogsizebaseheldmakemainuser') +holdendswithNewsreadweresigntakehavegameseencallpathwellplusmenufilmpartjointhislistgoodneedwayswestjobsmindalsologorichuseslastteamarmyfoodkingwilleastwardbestfirePageknowaway.pngmovethanloadgiveselfnotemuchfeedmanyrockicononcelookhidediedHomerulehostajaxinfoclublawslesshalfsomesuchzone100%onescareTimeracebluefourweekfacehopegavehardlostwhenparkkeptpassshiproomHTMLplanTypedonesavekeepflaglinksoldfivetookratetownjumpthusdarkcardfilefearstaykillthatfallautoever.comtalkshopvotedeepmoderestturnbornbandfellroseurl(skinrolecomeactsagesmeetgold.jpgitemvaryfeltthensenddropViewcopy1.0"stopelseliestourpack.gifpastcss?graymean>rideshotlatesaidroadvar feeljohnrickportfast'UA-deadpoorbilltypeU.S.woodmust2px;Inforankwidewantwalllead[0];paulwavesure$('#waitmassarmsgoesgainlangpaid!-- lockunitrootwalkfirmwifexml"songtest20pxkindrowstoolfontmailsafestarmapscorerainflowbabyspansays4px;6px;artsfootrealwikiheatsteptriporg/lakeweaktoldFormcastfansbankveryrunsjulytask1px;goalgrewslowedgeid="sets5px;.js?40pxif (soonseatnonetubezerosentreedfactintogiftharm18pxcamehillboldzoomvoideasyringfillpeakinitcost3px;jacktagsbitsrolleditknewnearironfreddiskwentsoilputs/js/holyT22:ISBNT20:adamsees

json', 'contT21: RSSloopasiamoon

soulLINEfortcartT14:

80px!--<9px;T04:mike:46ZniceinchYorkricezh:ä'));puremageparatonebond:37Z_of_']);000,zh:çtankyardbowlbush:56ZJava30px ++|} ++%C3%:34ZjeffEXPIcashvisagolfsnowzh:équer.csssickmeatmin.binddellhirepicsrent:36ZHTTP-201fotowolfEND xbox:54ZBODYdick; ++} ++exit:35Zvarsbeat'});diet999;anne}}sonyguysfuckpipe|- ++!002)ndow[1];[]; ++Log salt ++ bangtrimbath){ ++00px ++});ko:ìfeesad> s:// [];tollplug(){ ++{ ++ .js'200pdualboat.JPG); ++}quot); ++ ++'); ++ ++} 201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037201320122011201020092008200720062005200420032002200120001999199819971996199519941993199219911990198919881987198619851984198319821981198019791978197719761975197419731972197119701969196819671966196519641963196219611960195919581957195619551954195319521951195010001024139400009999comomásesteestaperotodohacecadaañobiendíaasívidacasootroforosolootracualdijosidograntipotemadebealgoquéestonadatrespococasabajotodasinoaguapuesunosantediceluisellamayozonaamorpisoobraclicellodioshoracasiзанаомрарутанепоотизнодотожеонихÐаеебымыВыÑовывоÐообПолиниРФÐеМытыОнимдаЗаДаÐуОбтеИзейнуммТыужÙيأنمامعكلأوردياÙىهولملكاولهبسالإنهيأيقدهلثمبهلوليبلايبكشيامأمنتبيلنحبهممشوشfirstvideolightworldmediawhitecloseblackrightsmallbooksplacemusicfieldorderpointvalueleveltableboardhousegroupworksyearsstatetodaywaterstartstyledeathpowerphonenighterrorinputabouttermstitletoolseventlocaltimeslargewordsgamesshortspacefocusclearmodelblockguideradiosharewomenagainmoneyimagenamesyounglineslatercolorgreenfront&watchforcepricerulesbeginaftervisitissueareasbelowindextotalhourslabelprintpressbuiltlinksspeedstudytradefoundsenseundershownformsrangeaddedstillmovedtakenaboveflashfixedoftenotherviewschecklegalriveritemsquickshapehumanexistgoingmoviethirdbasicpeacestagewidthloginideaswrotepagesusersdrivestorebreaksouthvoicesitesmonthwherebuildwhichearthforumthreesportpartyClicklowerlivesclasslayerentrystoryusagesoundcourtyour birthpopuptypesapplyImagebeinguppernoteseveryshowsmeansextramatchtrackknownearlybegansuperpapernorthlearngivennamedendedTermspartsGroupbrandusingwomanfalsereadyaudiotakeswhile.com/livedcasesdailychildgreatjudgethoseunitsneverbroadcoastcoverapplefilescyclesceneplansclickwritequeenpieceemailframeolderphotolimitcachecivilscaleenterthemetheretouchboundroyalaskedwholesincestock namefaithheartemptyofferscopeownedmightalbumthinkbloodarraymajortrustcanonunioncountvalidstoneStyleLoginhappyoccurleft:freshquitefilmsgradeneedsurbanfightbasishoverauto;route.htmlmixedfinalYour slidetopicbrownalonedrawnsplitreachRightdatesmarchquotegoodsLinksdoubtasyncthumballowchiefyouthnovel10px;serveuntilhandsCheckSpacequeryjamesequaltwice0,000Startpanelsongsroundeightshiftworthpostsleadsweeksavoidthesemilesplanesmartalphaplantmarksratesplaysclaimsalestextsstarswrong

thing.org/multiheardPowerstandtokensolid(thisbringshipsstafftriedcallsfullyfactsagentThis //-->adminegyptEvent15px;Emailtrue"crossspentblogsbox">notedleavechinasizesguestrobotheavytrue,sevengrandcrimesignsawaredancephase> ++ ++ ++name=diegopage swiss--> ++ ++#fff;">Log.com"treatsheet) && 14px;sleepntentfiledja:ãƒid="cName"worseshots-box-delta ++<bears:48Z spendbakershops= "";php">ction13px;brianhellosize=o=%2F joinmaybe, fjsimg" ")[0]MTopBType"newlyDanskczechtrailknowsfaq">zh-cn10); ++-1");type=bluestrulydavis.js';> ++ ++form jesus100% menu. ++ ++walesrisksumentddingb-likteachgif" vegasdanskeestishqipsuomisobredesdeentretodospuedeañosestátienehastaotrospartedondenuevohacerformamismomejormundoaquídíassóloayudafechatodastantomenosdatosotrassitiomuchoahoralugarmayorestoshorastenerantesfotosestaspaísnuevasaludforosmedioquienmesespoderchileserávecesdecirjoséestarventagrupohechoellostengoamigocosasnivelgentemismaairesjuliotemashaciafavorjuniolibrepuntobuenoautorabrilbuenatextomarzosaberlistaluegocómoenerojuegoperúhaberestoynuncamujervalorfueralibrogustaigualvotoscasosguíapuedosomosavisousteddebennochebuscafaltaeurosseriedichocursoclavecasasleónplazolargoobrasvistaapoyojuntotratavistocrearcampohemoscincocargopisosordenhacenáreadiscopedrocercapuedapapelmenorútilclarojorgecalleponertardenadiemarcasigueellassiglocochemotosmadreclaserestoniñoquedapasarbancohijosviajepabloéstevienereinodejarfondocanalnorteletracausatomarmanoslunesautosvillavendopesartipostengamarcollevapadreunidovamoszonasambosbandamariaabusomuchasubirriojavivirgradochicaallíjovendichaestantalessalirsuelopesosfinesllamabuscoéstalleganegroplazahumorpagarjuntadobleislasbolsabañohablaluchaÃreadicenjugarnotasvalleallácargadolorabajoestégustomentemariofirmacostofichaplatahogarartesleyesaquelmuseobasespocosmitadcielochicomiedoganarsantoetapadebesplayaredessietecortecoreadudasdeseoviejodeseaaguas"domaincommonstatuseventsmastersystemactionbannerremovescrollupdateglobalmediumfilternumberchangeresultpublicscreenchoosenormaltravelissuessourcetargetspringmodulemobileswitchphotosborderregionitselfsocialactivecolumnrecordfollowtitle>eitherlengthfamilyfriendlayoutauthorcreatereviewsummerserverplayedplayerexpandpolicyformatdoublepointsseriespersonlivingdesignmonthsforcesuniqueweightpeopleenergynaturesearchfigurehavingcustomoffsetletterwindowsubmitrendergroupsuploadhealthmethodvideosschoolfutureshadowdebatevaluesObjectothersrightsleaguechromesimplenoticesharedendingseasonreportonlinesquarebuttonimagesenablemovinglatestwinterFranceperiodstrongrepeatLondondetailformeddemandsecurepassedtoggleplacesdevicestaticcitiesstreamyellowattackstreetflighthiddeninfo">openedusefulvalleycausesleadersecretseconddamagesportsexceptratingsignedthingseffectfieldsstatesofficevisualeditorvolumeReportmuseummoviesparentaccessmostlymother" id="marketgroundchancesurveybeforesymbolmomentspeechmotioninsidematterCenterobjectexistsmiddleEuropegrowthlegacymannerenoughcareeransweroriginportalclientselectrandomclosedtopicscomingfatheroptionsimplyraisedescapechosenchurchdefinereasoncorneroutputmemoryiframepolicemodelsNumberduringoffersstyleskilledlistedcalledsilvermargindeletebetterbrowselimitsGlobalsinglewidgetcenterbudgetnowrapcreditclaimsenginesafetychoicespirit-stylespreadmakingneededrussiapleaseextentScriptbrokenallowschargedividefactormember-basedtheoryconfigaroundworkedhelpedChurchimpactshouldalwayslogo" bottomlist">){var prefixorangeHeader.push(couplegardenbridgelaunchReviewtakingvisionlittledatingButtonbeautythemesforgotSearchanchoralmostloadedChangereturnstringreloadMobileincomesupplySourceordersviewed courseAbout islandPhilipawardshandleimportOfficeregardskillsnationSportsdegreeweekly (e.g.behinddoctorloggedunitedbeyond-scaleacceptservedmarineFootercamera ++_form"leavesstress" /> ++.gif" onloadloaderOxfordsistersurvivlistenfemaleDesignsize="appealtext">levelsthankshigherforcedanimalanyoneAfricaagreedrecentPeople
wonderpricesturned|| {};main">inlinesundaywrap">failedcensusminutebeaconquotes150px|estateremoteemail"linkedright;signalformal1.htmlsignupprincefloat:.png" forum.AccesspaperssoundsextendHeightsliderUTF-8"& Before. WithstudioownersmanageprofitjQueryannualparamsboughtfamousgooglelongeri++) {israelsayingdecidehome">headerensurebranchpiecesblock;statedtop">boston.test(avatartested_countforumsschemaindex,filledsharesreaderalert(appearSubmitline">body"> ++* TheThoughseeingjerseyNews ++System DavidcancertablesprovedApril reallydriveritem">more">boardscolorscampusfirst || [];media.guitarfinishwidth:showedOther .php" assumelayerswilsonstoresreliefswedenCustomeasily your String ++ ++Whiltaylorclear:resortfrenchthough") + "buyingbrandsMembername">oppingsector5px;">vspacepostermajor coffeemartinmaturehappenkansaslink">Images=falsewhile hspace0& ++ ++In powerPolski-colorjordanBottomStart -count2.htmlnews">01.jpgOnline-rightmillerseniorISBN 00,000 guidesvalue)ectionrepair.xml" rights.html-blockregExp:hoverwithinvirginphones using ++ var >'); ++ ++ ++bahasabrasilgalegomagyarpolskisrpskiردو中文简体ç¹é«”ä¿¡æ¯ä¸­å›½æˆ‘们一个公å¸ç®¡ç†è®ºå›å¯ä»¥æœåŠ¡æ—¶é—´ä¸ªäººäº§å“自己ä¼ä¸šæŸ¥çœ‹å·¥ä½œè”系没有网站所有评论中心文章用户首页作者技术问题相关下载æœç´¢ä½¿ç”¨è½¯ä»¶åœ¨çº¿ä¸»é¢˜èµ„æ–™è§†é¢‘å›žå¤æ³¨å†Œç½‘络收è—内容推è市场消æ¯ç©ºé—´å‘布什么好å‹ç”Ÿæ´»å›¾ç‰‡å‘展如果手机新闻最新方å¼åŒ—京æä¾›å…³äºŽæ›´å¤šè¿™ä¸ªç³»ç»ŸçŸ¥é“游æˆå¹¿å‘Šå…¶ä»–å‘表安全第一会员进行点击版æƒç”µå­ä¸–界设计å…费教育加入活动他们商å“åšå®¢çŽ°åœ¨ä¸Šæµ·å¦‚ä½•å·²ç»ç•™è¨€è¯¦ç»†ç¤¾åŒºç™»å½•本站需è¦ä»·æ ¼æ”¯æŒå›½é™…链接国家建设朋å‹é˜…读法律ä½ç½®ç»æµŽé€‰æ‹©è¿™æ ·å½“å‰åˆ†ç±»æŽ’行因为交易最åŽéŸ³ä¹ä¸èƒ½é€šè¿‡è¡Œä¸šç§‘技å¯èƒ½è®¾å¤‡åˆä½œå¤§å®¶ç¤¾ä¼šç ”究专业全部项目这里还是开始情况电脑文件å“牌帮助文化资æºå¤§å­¦å­¦ä¹ åœ°å€æµè§ˆæŠ•èµ„å·¥ç¨‹è¦æ±‚怎么时候功能主è¦ç›®å‰èµ„讯城市方法电影招è˜å£°æ˜Žä»»ä½•å¥åº·æ•°æ®ç¾Žå›½æ±½è½¦ä»‹ç»ä½†æ˜¯äº¤æµç”Ÿäº§æ‰€ä»¥ç”µè¯æ˜¾ç¤ºä¸€äº›å•ä½äººå‘˜åˆ†æžåœ°å›¾æ—…游工具学生系列网å‹å¸–å­å¯†ç é¢‘é“æŽ§åˆ¶åœ°åŒºåŸºæœ¬å…¨å›½ç½‘ä¸Šé‡è¦ç¬¬äºŒå–œæ¬¢è¿›å…¥å‹æƒ…这些考试å‘现培训以上政府æˆä¸ºçŽ¯å¢ƒé¦™æ¸¯åŒæ—¶å¨±ä¹å‘é€ä¸€å®šå¼€å‘ä½œå“æ ‡å‡†æ¬¢è¿Žè§£å†³åœ°æ–¹ä¸€ä¸‹ä»¥åŠè´£ä»»æˆ–者客户代表积分女人数ç é”€å”®å‡ºçŽ°ç¦»çº¿åº”ç”¨åˆ—è¡¨ä¸åŒç¼–辑统计查询ä¸è¦æœ‰å…³æœºæž„å¾ˆå¤šæ’­æ”¾ç»„ç»‡æ”¿ç­–ç›´æŽ¥èƒ½åŠ›æ¥æºæ™‚間看到热门关键专区éžå¸¸è‹±è¯­ç™¾åº¦å¸Œæœ›ç¾Žå¥³æ¯”较知识规定建议部门æ„è§ç²¾å½©æ—¥æœ¬æé«˜å‘言方é¢åŸºé‡‘å¤„ç†æƒé™å½±ç‰‡é“¶è¡Œè¿˜æœ‰åˆ†äº«ç‰©å“ç»è¥æ·»åŠ ä¸“å®¶è¿™ç§è¯é¢˜èµ·æ¥ä¸šåŠ¡å…¬å‘Šè®°å½•ç®€ä»‹è´¨é‡ç”·äººå½±å“引用报告部分快速咨询时尚注æ„申请学校应该历å²åªæ˜¯è¿”回购买å称为了æˆåŠŸè¯´æ˜Žä¾›åº”å­©å­ä¸“题程åºä¸€èˆ¬æœƒå“¡åªæœ‰å…¶å®ƒä¿æŠ¤è€Œä¸”今天窗å£åЍæ€çжæ€ç‰¹åˆ«è®¤ä¸ºå¿…须更新å°è¯´æˆ‘å€‘ä½œä¸ºåª’ä½“åŒ…æ‹¬é‚£ä¹ˆä¸€æ ·å›½å†…æ˜¯å¦æ ¹æ®ç”µè§†å­¦é™¢å…·æœ‰è¿‡ç¨‹ç”±äºŽäººæ‰å‡ºæ¥ä¸è¿‡æ­£åœ¨æ˜Žæ˜Ÿæ•…事关系标题商务输入一直基础教学了解建筑结果全çƒé€šçŸ¥è®¡åˆ’对于艺术相册å‘生真的建立等级类型ç»éªŒå®žçŽ°åˆ¶ä½œæ¥è‡ªæ ‡ç­¾ä»¥ä¸‹åŽŸåˆ›æ— æ³•å…¶ä¸­å€‹äººä¸€åˆ‡æŒ‡å—关闭集团第三关注因此照片深圳商业广州日期高级最近综åˆè¡¨ç¤ºä¸“辑行为交通评价觉得精åŽå®¶åº­å®Œæˆæ„Ÿè§‰å®‰è£…得到邮件制度食å“虽然转载报价记者方案行政人民用å“东西æå‡ºé…’店然åŽä»˜æ¬¾çƒ­ç‚¹ä»¥å‰å®Œå…¨å‘帖设置领导工业医院看看ç»å…¸åŽŸå› å¹³å°å„ç§å¢žåŠ ææ–™æ–°å¢žä¹‹åŽèŒä¸šæ•ˆæžœä»Šå¹´è®ºæ–‡æˆ‘国告诉版主修改å‚与打å°å¿«ä¹æœºæ¢°è§‚点存在精神获得利用继续你们这么模å¼è¯­è¨€èƒ½å¤Ÿé›…虎æ“作风格一起科学体育短信æ¡ä»¶æ²»ç–—è¿åŠ¨äº§ä¸šä¼šè®®å¯¼èˆªå…ˆç”Ÿè”ç›Ÿå¯æ˜¯å•題结构作用调查資料自动负责农业访问实施接å—讨论那个å馈加强女性范围æœå‹™ä¼‘闲今日客æœè§€çœ‹å‚加的è¯ä¸€ç‚¹ä¿è¯å›¾ä¹¦æœ‰æ•ˆæµ‹è¯•移动æ‰èƒ½å†³å®šè‚¡ç¥¨ä¸æ–­éœ€æ±‚ä¸å¾—办法之间采用è¥é”€æŠ•诉目标爱情摄影有些複製文学机会数字装修购物农æ‘å…¨é¢ç²¾å“其实事情水平æç¤ºä¸Šå¸‚谢谢普通教师上传类别歌曲拥有创新é…ä»¶åªè¦æ—¶ä»£è³‡è¨Šè¾¾åˆ°äººç”Ÿè®¢é˜…è€å¸ˆå±•示心ç†è´´å­ç¶²ç«™ä¸»é¡Œè‡ªç„¶çº§åˆ«ç®€å•改é©é‚£äº›æ¥è¯´æ‰“开代ç åˆ é™¤è¯åˆ¸èŠ‚ç›®é‡ç‚¹æ¬¡æ•¸å¤šå°‘规划资金找到以åŽå¤§å…¨ä¸»é¡µæœ€ä½³å›žç­”天下ä¿éšœçŽ°ä»£æ£€æŸ¥æŠ•ç¥¨å°æ—¶æ²’有正常甚至代ç†ç›®å½•公开å¤åˆ¶é‡‘èžå¹¸ç¦ç‰ˆæœ¬å½¢æˆå‡†å¤‡è¡Œæƒ…å›žåˆ°æ€æƒ³æ€Žæ ·åè®®è®¤è¯æœ€å¥½äº§ç”ŸæŒ‰ç…§æœè£…å¹¿ä¸œåŠ¨æ¼«é‡‡è´­æ–°æ‰‹ç»„å›¾é¢æ¿å‚考政治容易天地努力人们å‡çº§é€Ÿåº¦äººç‰©è°ƒæ•´æµè¡Œé€ æˆæ–‡å­—éŸ©å›½è´¸æ˜“å¼€å±•ç›¸é—œè¡¨çŽ°å½±è§†å¦‚æ­¤ç¾Žå®¹å¤§å°æŠ¥é“æ¡æ¬¾å¿ƒæƒ…许多法规家居书店连接立å³ä¸¾æŠ¥æŠ€å·§å¥¥è¿ç™»å…¥ä»¥æ¥ç†è®ºäº‹ä»¶è‡ªç”±ä¸­åŽåŠžå…¬å¦ˆå¦ˆçœŸæ­£ä¸é”™å…¨æ–‡åˆåŒä»·å€¼åˆ«äººç›‘ç£å…·ä½“ä¸–çºªå›¢é˜Ÿåˆ›ä¸šæ‰¿æ‹…å¢žé•¿æœ‰äººä¿æŒå•†å®¶ç»´ä¿®å°æ¹¾å·¦å³è‚¡ä»½ç­”案实际电信ç»ç†ç”Ÿå‘½å®£ä¼ ä»»åŠ¡æ­£å¼ç‰¹è‰²ä¸‹æ¥å会åªèƒ½å½“ç„¶é‡æ–°å…§å®¹æŒ‡å¯¼è¿è¡Œæ—¥å¿—賣家超过土地浙江支付推出站长æ­å·žæ‰§è¡Œåˆ¶é€ ä¹‹ä¸€æŽ¨å¹¿çŽ°åœºæè¿°å˜åŒ–传统歌手ä¿é™©è¯¾ç¨‹åŒ»ç–—ç»è¿‡è¿‡å޻之剿”¶å…¥å¹´åº¦æ‚志美丽最高登陆未æ¥åŠ å·¥å…责教程版å—身体é‡åº†å‡ºå”®æˆæœ¬å½¢å¼åœŸè±†å‡ºåƒ¹ä¸œæ–¹é‚®ç®±å—京求èŒå–å¾—èŒä½ç›¸ä¿¡é¡µé¢åˆ†é’Ÿç½‘页确定图例网å€ç§¯æžé”™è¯¯ç›®çš„å®è´æœºå…³é£Žé™©æŽˆæƒç—…æ¯’å® ç‰©é™¤äº†è©•è«–ç–¾ç—…åŠæ—¶æ±‚购站点儿童æ¯å¤©ä¸­å¤®è®¤è¯†æ¯ä¸ªå¤©æ´¥å­—体å°ç£ç»´æŠ¤æœ¬é¡µä¸ªæ€§å®˜æ–¹å¸¸è§ç›¸æœºæˆ˜ç•¥åº”当律师方便校园股市房屋æ ç›®å‘˜å·¥å¯¼è‡´çªç„¶é“å…·æœ¬ç½‘ç»“åˆæ¡£æ¡ˆåŠ³åŠ¨å¦å¤–美元引起改å˜ç¬¬å››ä¼šè®¡èªªæ˜Žéšç§å®å®è§„范消费共åŒå¿˜è®°ä½“系带æ¥å字發表开放加盟å—åˆ°äºŒæ‰‹å¤§é‡æˆäººæ•°é‡å…±äº«åŒºåŸŸå¥³å­©åŽŸåˆ™æ‰€åœ¨ç»“æŸé€šä¿¡è¶…级é…ç½®å½“æ—¶ä¼˜ç§€æ€§æ„Ÿæˆ¿äº§éŠæˆ²å‡ºå£æäº¤å°±ä¸šä¿å¥ç¨‹åº¦å‚数事业整个山东情感特殊分類æœå°‹å±žäºŽé—¨æˆ·è´¢åŠ¡å£°éŸ³åŠå…¶è´¢ç»åšæŒå¹²éƒ¨æˆç«‹åˆ©ç›Šè€ƒè™‘æˆéƒ½åŒ…装用戶比赛文明招商完整真是眼ç›ä¼™ä¼´å¨æœ›é¢†åŸŸå«ç”Ÿä¼˜æƒ è«–壇公共良好充分符åˆé™„件特点ä¸å¯è‹±æ–‡èµ„äº§æ ¹æœ¬æ˜Žæ˜¾å¯†ç¢¼å…¬ä¼—æ°‘æ—æ›´åŠ äº«å—åŒå­¦å¯åЍ适åˆåŽŸæ¥é—®ç­”本文美食绿色稳定终于生物供求æœç‹åŠ›é‡ä¸¥é‡æ°¸è¿œå†™çœŸæœ‰é™ç«žäº‰å¯¹è±¡è´¹ç”¨ä¸å¥½ç»å¯¹å分促进点评影音优势ä¸å°‘欣èµå¹¶ä¸”有点方å‘全新信用设施形象资格çªç ´éšç€é‡å¤§äºŽæ˜¯æ¯•ä¸šæ™ºèƒ½åŒ–å·¥å®Œç¾Žå•†åŸŽç»Ÿä¸€å‡ºç‰ˆæ‰“é€ ç”¢å“æ¦‚况用于ä¿ç•™å› ç´ ä¸­åœ‹å­˜å‚¨è´´å›¾æœ€æ„›é•¿æœŸå£ä»·ç†è´¢åŸºåœ°å®‰æŽ’武汉里é¢åˆ›å»ºå¤©ç©ºé¦–先完善驱动下é¢ä¸å†è¯šä¿¡æ„义阳光英国漂亮军事玩家群众农民å³å¯å稱家具动画想到注明å°å­¦æ€§èƒ½è€ƒç ”硬件观看清楚æžç¬‘首é é»„金适用江è‹çœŸå®žä¸»ç®¡é˜¶æ®µè¨»å†Šç¿»è¯‘æƒåˆ©åšå¥½ä¼¼ä¹Žé€šè®¯æ–½å·¥ç‹€æ…‹ä¹Ÿè®¸çޝä¿åŸ¹å…»æ¦‚念大型机票ç†è§£åŒ¿åcuandoenviarmadridbuscariniciotiempoporquecuentaestadopuedenjuegoscontraestánnombretienenperfilmaneraamigosciudadcentroaunquepuedesdentroprimerpreciosegúnbuenosvolverpuntossemanahabíaagostonuevosunidoscarlosequiponiñosmuchosalgunacorreoimagenpartirarribamaríahombreempleoverdadcambiomuchasfueronpasadolíneaparecenuevascursosestabaquierolibroscuantoaccesomiguelvarioscuatrotienesgruposseráneuropamediosfrenteacercademásofertacochesmodeloitalialetrasalgúncompracualesexistecuerposiendoprensallegarviajesdineromurciapodrápuestodiariopuebloquieremanuelpropiocrisisciertoseguromuertefuentecerrargrandeefectopartesmedidapropiaofrecetierrae-mailvariasformasfuturoobjetoseguirriesgonormasmismosúnicocaminositiosrazóndebidopruebatoledoteníajesúsesperococinaorigentiendacientocádizhablarseríalatinafuerzaestiloguerraentraréxitolópezagendavídeoevitarpaginametrosjavierpadresfácilcabezaáreassalidaenvíojapónabusosbienestextosllevarpuedanfuertecomúnclaseshumanotenidobilbaounidadestáseditarcreadoдлÑчтокакилиÑтовÑеегопритакещеужеКакбезбылониВÑеподЭтотомчемнетлетразонагдемнеДлÑПринаÑнихтемктогодвоттамСШÐмаÑЧтоваÑвамемуТакдванамÑтиÑтуВамтехпротутнадднÑВоттринейВаÑнимÑамтотрубОнимирнееОООлицÑтаОнанемдоммойдвеоноÑудकेहैकीसेकाकोऔरपरनेà¤à¤•किभीइसकरतोहोआपहीयहयातकथाjagranआजजोअबदोगईजागà¤à¤¹à¤®à¤‡à¤¨à¤µà¤¹à¤¯à¥‡à¤¥à¥‡à¤¥à¥€à¤˜à¤°à¤œà¤¬à¤¦à¥€à¤•ईजीवेनईनà¤à¤¹à¤°à¤‰à¤¸à¤®à¥‡à¤•मवोलेसबमईदेओरआमबसभरबनचलमनआगसीलीعلىإلىهذاآخرعددالىهذهصورغيركانولابينعرضذلكهنايومقالعليانالكنحتىقبلوحةاخرÙقطعبدركنإذاكمااحدإلاÙÙŠÙ‡Ø¨Ø¹Ø¶ÙƒÙŠÙØ¨Ø­Ø«ÙˆÙ…نوهوأناجدالهاسلمعندليسعبرصلىمنذبهاأنهمثلكنتالاحيثمصرشرححولوÙÙŠØ§Ø°Ø§Ù„ÙƒÙ„Ù…Ø±Ø©Ø§Ù†ØªØ§Ù„ÙØ£Ø¨ÙˆØ®Ø§ØµØ£Ù†ØªØ§Ù†Ù‡Ø§Ù„ÙŠØ¹Ø¶ÙˆÙˆÙ‚Ø¯Ø§Ø¨Ù†Ø®ÙŠØ±Ø¨Ù†ØªÙ„ÙƒÙ…Ø´Ø§Ø¡ÙˆÙ‡ÙŠØ§Ø¨ÙˆÙ‚ØµØµÙˆÙ…Ø§Ø±Ù‚Ù…Ø£Ø­Ø¯Ù†Ø­Ù†Ø¹Ø¯Ù…Ø±Ø£ÙŠØ§Ø­Ø©ÙƒØªØ¨Ø¯ÙˆÙ†ÙŠØ¬Ø¨Ù…Ù†Ù‡ØªØ­ØªØ¬Ù‡Ø©Ø³Ù†Ø©ÙŠØªÙ…ÙƒØ±Ø©ØºØ²Ø©Ù†ÙØ³Ø¨ÙŠØªÙ„لهلناتلكقلبلماعنهأولشيءنورأماÙيكبكلذاترتببأنهمسانكبيعÙقدحسنلهمشعرأهلشهرقطرطلبprofileservicedefaulthimselfdetailscontentsupportstartedmessagesuccessfashioncountryaccountcreatedstoriesresultsrunningprocesswritingobjectsvisiblewelcomearticleunknownnetworkcompanydynamicbrowserprivacyproblemServicerespectdisplayrequestreservewebsitehistoryfriendsoptionsworkingversionmillionchannelwindow.addressvisitedweathercorrectproductedirectforwardyou canremovedsubjectcontrolarchivecurrentreadinglibrarylimitedmanagerfurthersummarymachineminutesprivatecontextprogramsocietynumberswrittenenabledtriggersourcesloadingelementpartnerfinallyperfectmeaningsystemskeepingculture",journalprojectsurfaces"expiresreviewsbalanceEnglishContentthroughPlease opinioncontactaverageprimaryvillageSpanishgallerydeclinemeetingmissionpopularqualitymeasuregeneralspeciessessionsectionwriterscounterinitialreportsfiguresmembersholdingdisputeearlierexpressdigitalpictureAnothermarriedtrafficleadingchangedcentralvictoryimages/reasonsstudiesfeaturelistingmust beschoolsVersionusuallyepisodeplayinggrowingobviousoverlaypresentactions</ul> ++wrapperalreadycertainrealitystorageanotherdesktopofferedpatternunusualDigitalcapitalWebsitefailureconnectreducedAndroiddecadesregular & animalsreleaseAutomatgettingmethodsnothingPopularcaptionletterscapturesciencelicensechangesEngland=1&History = new CentralupdatedSpecialNetworkrequirecommentwarningCollegetoolbarremainsbecauseelectedDeutschfinanceworkersquicklybetweenexactlysettingdiseaseSocietyweaponsexhibit<!--Controlclassescoveredoutlineattacksdevices(windowpurposetitle="Mobile killingshowingItaliandroppedheavilyeffects-1']); ++confirmCurrentadvancesharingopeningdrawingbillionorderedGermanyrelated</form>includewhetherdefinedSciencecatalogArticlebuttonslargestuniformjourneysidebarChicagoholidayGeneralpassage,"animatefeelingarrivedpassingnaturalroughly. ++ ++The but notdensityBritainChineselack oftributeIreland" data-factorsreceivethat isLibraryhusbandin factaffairsCharlesradicalbroughtfindinglanding:lang="return leadersplannedpremiumpackageAmericaEdition]"Messageneed tovalue="complexlookingstationbelievesmaller-mobilerecordswant tokind ofFirefoxyou aresimilarstudiedmaximumheadingrapidlyclimatekingdomemergedamountsfoundedpioneerformuladynastyhow to SupportrevenueeconomyResultsbrothersoldierlargelycalling."AccountEdward segmentRobert effortsPacificlearnedup withheight:we haveAngelesnations_searchappliedacquiremassivegranted: falsetreatedbiggestbenefitdrivingStudiesminimumperhapsmorningsellingis usedreversevariant role="missingachievepromotestudentsomeoneextremerestorebottom:evolvedall thesitemapenglishway to AugustsymbolsCompanymattersmusicalagainstserving})(); ++paymenttroubleconceptcompareparentsplayersregionsmonitor ''The winningexploreadaptedGalleryproduceabilityenhancecareers). The collectSearch ancientexistedfooter handlerprintedconsoleEasternexportswindowsChannelillegalneutralsuggest_headersigning.html">settledwesterncausing-webkitclaimedJusticechaptervictimsThomas mozillapromisepartieseditionoutside:false,hundredOlympic_buttonauthorsreachedchronicdemandssecondsprotectadoptedprepareneithergreatlygreateroverallimprovecommandspecialsearch.worshipfundingthoughthighestinsteadutilityquarterCulturetestingclearlyexposedBrowserliberal} catchProjectexamplehide();FloridaanswersallowedEmperordefenseseriousfreedomSeveral-buttonFurtherout of != nulltrainedDenmarkvoid(0)/all.jspreventRequestStephen ++ ++When observe</h2> ++Modern provide" alt="borders. ++ ++For ++ ++Many artistspoweredperformfictiontype ofmedicalticketsopposedCouncilwitnessjusticeGeorge Belgium...</a>twitternotablywaitingwarfare Other rankingphrasesmentionsurvivescholar</p> ++ Countryignoredloss ofjust asGeorgiastrange<head><stopped1']); ++islandsnotableborder:list ofcarried100,000</h3> ++ severalbecomesselect wedding00.htmlmonarchoff theteacherhighly biologylife ofor evenrise of»plusonehunting(thoughDouglasjoiningcirclesFor theAncientVietnamvehiclesuch ascrystalvalue =Windowsenjoyeda smallassumed<a id="foreign All rihow theDisplayretiredhoweverhidden;battlesseekingcabinetwas notlook atconductget theJanuaryhappensturninga:hoverOnline French lackingtypicalextractenemieseven ifgeneratdecidedare not/searchbeliefs-image:locatedstatic.login">convertviolententeredfirst">circuitFinlandchemistshe was10px;">as suchdivided</span>will beline ofa greatmystery/index.fallingdue to railwaycollegemonsterdescentit withnuclearJewish protestBritishflowerspredictreformsbutton who waslectureinstantsuicidegenericperiodsmarketsSocial fishingcombinegraphicwinners<br /><by the NaturalPrivacycookiesoutcomeresolveSwedishbrieflyPersianso muchCenturydepictscolumnshousingscriptsnext tobearingmappingrevisedjQuery(-width:title">tooltipSectiondesignsTurkishyounger.match(})(); ++ ++burningoperatedegreessource=Richardcloselyplasticentries</tr> ++color:#ul id="possessrollingphysicsfailingexecutecontestlink toDefault<br /> ++: true,chartertourismclassicproceedexplain</h1> ++online.?xml vehelpingdiamonduse theairlineend -->).attr(readershosting#ffffffrealizeVincentsignals src="/ProductdespitediversetellingPublic held inJoseph theatreaffects<style>a largedoesn'tlater, ElementfaviconcreatorHungaryAirportsee theso thatMichaelSystemsPrograms, and width=e"tradingleft"> ++personsGolden Affairsgrammarformingdestroyidea ofcase ofoldest this is.src = cartoonregistrCommonsMuslimsWhat isin manymarkingrevealsIndeed,equally/show_aoutdoorescape(Austriageneticsystem,In the sittingHe alsoIslandsAcademy ++ <!--Daniel bindingblock">imposedutilizeAbraham(except{width:putting).html(|| []; ++DATA[ *kitchenmountedactual dialectmainly _blank'installexpertsif(typeIt also© ">Termsborn inOptionseasterntalkingconcerngained ongoingjustifycriticsfactoryits ownassaultinvitedlastinghis ownhref="/" rel="developconcertdiagramdollarsclusterphp?id=alcohol);})();using a><span>vesselsrevivalAddressamateurandroidallegedillnesswalkingcentersqualifymatchesunifiedextinctDefensedied in ++ <!-- customslinkingLittle Book ofeveningmin.js?are thekontakttoday's.html" target=wearingAll Rig; ++})();raising Also, crucialabout">declare--> ++<scfirefoxas muchappliesindex, s, but type = ++ ++<!--towardsRecordsPrivateForeignPremierchoicesVirtualreturnsCommentPoweredinline;povertychamberLiving volumesAnthonylogin" RelatedEconomyreachescuttinggravitylife inChapter-shadowNotable</td> ++ returnstadiumwidgetsvaryingtravelsheld bywho arework infacultyangularwho hadairporttown of ++ ++Some 'click'chargeskeywordit willcity of(this);Andrew unique checkedor more300px; return;rsion="pluginswithin herselfStationFederalventurepublishsent totensionactresscome tofingersDuke ofpeople,exploitwhat isharmonya major":"httpin his menu"> ++monthlyofficercouncilgainingeven inSummarydate ofloyaltyfitnessand wasemperorsupremeSecond hearingRussianlongestAlbertalateralset of small">.appenddo withfederalbank ofbeneathDespiteCapitalgrounds), and percentit fromclosingcontainInsteadfifteenas well.yahoo.respondfighterobscurereflectorganic= Math.editingonline paddinga wholeonerroryear ofend of barrierwhen itheader home ofresumedrenamedstrong>heatingretainscloudfrway of March 1knowingin partBetweenlessonsclosestvirtuallinks">crossedEND -->famous awardedLicenseHealth fairly wealthyminimalAfricancompetelabel">singingfarmersBrasil)discussreplaceGregoryfont copursuedappearsmake uproundedboth ofblockedsaw theofficescoloursif(docuwhen heenforcepush(fuAugust UTF-8">Fantasyin mostinjuredUsuallyfarmingclosureobject defenceuse of Medical<body> ++evidentbe usedkeyCodesixteenIslamic#000000entire widely active (typeofone cancolor =speakerextendsPhysicsterrain<tbody>funeralviewingmiddle cricketprophetshifteddoctorsRussell targetcompactalgebrasocial-bulk ofman and</td> ++ he left).val()false);logicalbankinghome tonaming Arizonacredits); ++}); ++founderin turnCollinsbefore But thechargedTitle">CaptainspelledgoddessTag -->Adding:but wasRecent patientback in=false&Lincolnwe knowCounterJudaismscript altered']); ++ has theunclearEvent',both innot all ++ ++<!-- placinghard to centersort ofclientsstreetsBernardassertstend tofantasydown inharbourFreedomjewelry/about..searchlegendsis mademodern only ononly toimage" linear painterand notrarely acronymdelivershorter00&as manywidth="/* <![Ctitle =of the lowest picked escapeduses ofpeoples PublicMatthewtacticsdamagedway forlaws ofeasy to windowstrong simple}catch(seventhinfoboxwent topaintedcitizenI don'tretreat. Some ww."); ++bombingmailto:made in. Many carries||{};wiwork ofsynonymdefeatsfavoredopticalpageTraunless sendingleft"><comScorAll thejQuery.touristClassicfalse" Wilhelmsuburbsgenuinebishops.split(global followsbody ofnominalContactsecularleft tochiefly-hidden-banner</li> ++ ++. When in bothdismissExplorealways via thespañolwelfareruling arrangecaptainhis sonrule ofhe tookitself,=0&(calledsamplesto makecom/pagMartin Kennedyacceptsfull ofhandledBesides//--></able totargetsessencehim to its by common.mineralto takeways tos.org/ladvisedpenaltysimple:if theyLettersa shortHerbertstrikes groups.lengthflightsoverlapslowly lesser social </p> ++ it intoranked rate oful> ++ attemptpair ofmake itKontaktAntoniohaving ratings activestreamstrapped").css(hostilelead tolittle groups,Picture--> ++ ++ rows=" objectinverse<footerCustomV><\/scrsolvingChamberslaverywoundedwhereas!= 'undfor allpartly -right:Arabianbacked centuryunit ofmobile-Europe,is homerisk ofdesiredClintoncost ofage of become none ofp"Middle ead')[0Criticsstudios>©group">assemblmaking pressedwidget.ps:" ? rebuiltby someFormer editorsdelayedCanonichad thepushingclass="but arepartialBabylonbottom carrierCommandits useAs withcoursesa thirddenotesalso inHouston20px;">accuseddouble goal ofFamous ).bind(priests Onlinein Julyst + "gconsultdecimalhelpfulrevivedis veryr'+'iptlosing femalesis alsostringsdays ofarrivalfuture <objectforcingString(" /> ++ here isencoded. The balloondone by/commonbgcolorlaw of Indianaavoidedbut the2px 3pxjquery.after apolicy.men andfooter-= true;for usescreen.Indian image =family,http://  driverseternalsame asnoticedviewers})(); ++ is moreseasonsformer the newis justconsent Searchwas thewhy theshippedbr><br>width: height=made ofcuisineis thata very Admiral fixed;normal MissionPress, ontariocharsettry to invaded="true"spacingis mosta more totallyfall of}); ++ immensetime inset outsatisfyto finddown tolot of Playersin Junequantumnot thetime todistantFinnishsrc = (single help ofGerman law andlabeledforestscookingspace">header-well asStanleybridges/globalCroatia About [0]; ++ it, andgroupedbeing a){throwhe madelighterethicalFFFFFF"bottom"like a employslive inas seenprintermost ofub-linkrejectsand useimage">succeedfeedingNuclearinformato helpWomen'sNeitherMexicanprotein<table by manyhealthylawsuitdevised.push({sellerssimply Through.cookie Image(older">us.js"> Since universlarger open to!-- endlies in']); ++ marketwho is ("DOMComanagedone fortypeof Kingdomprofitsproposeto showcenter;made itdressedwere inmixtureprecisearisingsrc = 'make a securedBaptistvoting ++ var March 2grew upClimate.removeskilledway the</head>face ofacting right">to workreduceshas haderectedshow();action=book ofan area== "htt<header ++<html>conformfacing cookie.rely onhosted .customhe wentbut forspread Family a meansout theforums.footage">MobilClements" id="as highintense--><!--female is seenimpliedset thea stateand hisfastestbesidesbutton_bounded"><img Infoboxevents,a youngand areNative cheaperTimeoutand hasengineswon the(mostlyright: find a -bottomPrince area ofmore ofsearch_nature,legallyperiod,land ofor withinducedprovingmissilelocallyAgainstthe wayk"px;"> ++pushed abandonnumeralCertainIn thismore inor somename isand, incrownedISBN 0-createsOctobermay notcenter late inDefenceenactedwish tobroadlycoolingonload=it. TherecoverMembersheight assumes<html> ++people.in one =windowfooter_a good reklamaothers,to this_cookiepanel">London,definescrushedbaptismcoastalstatus title" move tolost inbetter impliesrivalryservers SystemPerhapses and contendflowinglasted rise inGenesisview ofrising seem tobut in backinghe willgiven agiving cities.flow of Later all butHighwayonly bysign ofhe doesdiffersbattery&lasinglesthreatsintegertake onrefusedcalled =US&See thenativesby thissystem.head of:hover,lesbiansurnameand allcommon/header__paramsHarvard/pixel.removalso longrole ofjointlyskyscraUnicodebr /> ++AtlantanucleusCounty,purely count">easily build aonclicka givenpointerh"events else { ++ditionsnow the, with man whoorg/Webone andcavalryHe diedseattle00,000 {windowhave toif(windand itssolely m"renewedDetroitamongsteither them inSenatorUs</a><King ofFrancis-produche usedart andhim andused byscoringat hometo haverelatesibilityfactionBuffalolink"><what hefree toCity ofcome insectorscountedone daynervoussquare };if(goin whatimg" alis onlysearch/tuesdaylooselySolomonsexual - <a hrmedium"DO NOT France,with a war andsecond take a > ++ ++ ++market.highwaydone inctivity"last">obligedrise to"undefimade to Early praisedin its for hisathleteJupiterYahoo! termed so manyreally s. The a woman?value=direct right" bicycleacing="day andstatingRather,higher Office are nowtimes, when a pay foron this-link">;borderaround annual the Newput the.com" takin toa brief(in thegroups.; widthenzymessimple in late{returntherapya pointbanninginks"> ++();" rea place\u003Caabout atr> ++ ccount gives a<SCRIPTRailwaythemes/toolboxById("xhumans,watchesin some if (wicoming formats Under but hashanded made bythan infear ofdenoted/iframeleft involtagein eacha"base ofIn manyundergoregimesaction </p> ++<ustomVa;></importsor thatmostly &re size="</a></ha classpassiveHost = WhetherfertileVarious=[];(fucameras/></td>acts asIn some> ++ ++<!organis <br />Beijingcatalàdeutscheuropeueuskaragaeilgesvenskaespañamensajeusuariotrabajoméxicopáginasiempresistemaoctubreduranteañadirempresamomentonuestroprimeratravésgraciasnuestraprocesoestadoscalidadpersonanúmeroacuerdomúsicamiembroofertasalgunospaísesejemploderechoademásprivadoagregarenlacesposiblehotelessevillaprimeroúltimoeventosarchivoculturamujeresentradaanuncioembargomercadograndesestudiomejoresfebrerodiseñoturismocódigoportadaespaciofamiliaantoniopermiteguardaralgunaspreciosalguiensentidovisitastítuloconocersegundoconsejofranciaminutossegundatenemosefectosmálagasesiónrevistagranadacompraringresogarcíaacciónecuadorquienesinclusodeberámateriahombresmuestrapodríamañanaúltimaestamosoficialtambienningúnsaludospodemosmejorarpositionbusinesshomepagesecuritylanguagestandardcampaignfeaturescategoryexternalchildrenreservedresearchexchangefavoritetemplatemilitaryindustryservicesmaterialproductsz-index:commentssoftwarecompletecalendarplatformarticlesrequiredmovementquestionbuildingpoliticspossiblereligionphysicalfeedbackregisterpicturesdisabledprotocolaudiencesettingsactivityelementslearninganythingabstractprogressoverviewmagazineeconomictrainingpressurevarious <strong>propertyshoppingtogetheradvancedbehaviordownloadfeaturedfootballselectedLanguagedistanceremembertrackingpasswordmodifiedstudentsdirectlyfightingnortherndatabasefestivalbreakinglocationinternetdropdownpracticeevidencefunctionmarriageresponseproblemsnegativeprogramsanalysisreleasedbanner">purchasepoliciesregionalcreativeargumentbookmarkreferrerchemicaldivisioncallbackseparateprojectsconflicthardwareinterestdeliverymountainobtained= false;for(var acceptedcapacitycomputeridentityaircraftemployedproposeddomesticincludesprovidedhospitalverticalcollapseapproachpartnerslogo"><adaughterauthor" culturalfamilies/images/assemblypowerfulteachingfinisheddistrictcriticalcgi-bin/purposesrequireselectionbecomingprovidesacademicexerciseactuallymedicineconstantaccidentMagazinedocumentstartingbottom">observed: "extendedpreviousSoftwarecustomerdecisionstrengthdetailedslightlyplanningtextareacurrencyeveryonestraighttransferpositiveproducedheritageshippingabsolutereceivedrelevantbutton" violenceanywherebenefitslaunchedrecentlyalliancefollowedmultiplebulletinincludedoccurredinternal$(this).republic><tr><tdcongressrecordedultimatesolution<ul id="discoverHome</a>websitesnetworksalthoughentirelymemorialmessagescontinueactive">somewhatvictoriaWestern title="LocationcontractvisitorsDownloadwithout right"> ++measureswidth = variableinvolvedvirginianormallyhappenedaccountsstandingnationalRegisterpreparedcontrolsaccuratebirthdaystrategyofficialgraphicscriminalpossiblyconsumerPersonalspeakingvalidateachieved.jpg" />machines</h2> ++ keywordsfriendlybrotherscombinedoriginalcomposedexpectedadequatepakistanfollow" valuable</label>relativebringingincreasegovernorplugins/List of Header">" name=" ("graduate</head> ++commercemalaysiadirectormaintain;height:schedulechangingback to catholicpatternscolor: #greatestsuppliesreliable</ul> ++ <select citizensclothingwatching<li id="specificcarryingsentence<center>contrastthinkingcatch(e)southernMichael merchantcarouselpadding:interior.split("lizationOctober ){returnimproved--> ++ ++coveragechairman.png" />subjectsRichard whateverprobablyrecoverybaseballjudgmentconnect..css" /> websitereporteddefault"/></a> ++electricscotlandcreationquantity. ISBN 0did not instance-search-" lang="speakersComputercontainsarchivesministerreactiondiscountItalianocriteriastrongly: 'http:'script'coveringofferingappearedBritish identifyFacebooknumerousvehiclesconcernsAmericanhandlingdiv id="William provider_contentaccuracysection andersonflexibleCategorylawrence<script>layout="approved maximumheader"></table>Serviceshamiltoncurrent canadianchannels/themes//articleoptionalportugalvalue=""intervalwirelessentitledagenciesSearch" measuredthousandspending…new Date" size="pageNamemiddle" " /></a>hidden">sequencepersonaloverflowopinionsillinoislinks"> ++ <title>versionssaturdayterminalitempropengineersectionsdesignerproposal="false"Españolreleasessubmit" er"additionsymptomsorientedresourceright"><pleasurestationshistory.leaving border=contentscenter">. ++ ++Some directedsuitablebulgaria.show();designedGeneral conceptsExampleswilliamsOriginal"><span>search">operatorrequestsa "allowingDocumentrevision. ++ ++The yourselfContact michiganEnglish columbiapriorityprintingdrinkingfacilityreturnedContent officersRussian generate-8859-1"indicatefamiliar qualitymargin:0 contentviewportcontacts-title">portable.length eligibleinvolvesatlanticonload="default.suppliedpaymentsglossary ++ ++After guidance</td><tdencodingmiddle">came to displaysscottishjonathanmajoritywidgets.clinicalthailandteachers<head> ++ affectedsupportspointer;toString</small>oklahomawill be investor0" alt="holidaysResourcelicensed (which . After considervisitingexplorerprimary search" android"quickly meetingsestimate;return ;color:# height=approval, " checked.min.js"magnetic></a></hforecast. While thursdaydvertiseéhasClassevaluateorderingexistingpatients Online coloradoOptions"campbell<!-- end</span><<br /> ++_popups|sciences," quality Windows assignedheight: <b classle" value=" Companyexamples<iframe believespresentsmarshallpart of properly). ++ ++The taxonomymuch of </span> ++" data-srtuguêsscrollTo project<head> ++attorneyemphasissponsorsfancyboxworld's wildlifechecked=sessionsprogrammpx;font- Projectjournalsbelievedvacationthompsonlightingand the special border=0checking</tbody><button Completeclearfix ++<head> ++article <sectionfindingsrole in popular Octoberwebsite exposureused to changesoperatedclickingenteringcommandsinformed numbers </div>creatingonSubmitmarylandcollegesanalyticlistingscontact.loggedInadvisorysiblingscontent"s")s. This packagescheckboxsuggestspregnanttomorrowspacing=icon.pngjapanesecodebasebutton">gamblingsuch as , while </span> missourisportingtop:1px .</span>tensionswidth="2lazyloadnovemberused in height="cript"> ++ </<tr><td height:2/productcountry include footer" <!-- title"></jquery.</form> ++(简体)(ç¹é«”)hrvatskiitalianoromânătürkçeاردوtambiénnoticiasmensajespersonasderechosnacionalserviciocontactousuariosprogramagobiernoempresasanunciosvalenciacolombiadespuésdeportesproyectoproductopúbliconosotroshistoriapresentemillonesmediantepreguntaanteriorrecursosproblemasantiagonuestrosopiniónimprimirmientrasaméricavendedorsociedadrespectorealizarregistropalabrasinterésentoncesespecialmiembrosrealidadcórdobazaragozapáginassocialesbloqueargestiónalquilersistemascienciascompletoversióncompletaestudiospúblicaobjetivoalicantebuscadorcantidadentradasaccionesarchivossuperiormayoríaalemaniafunciónúltimoshaciendoaquellosediciónfernandoambientefacebooknuestrasclientesprocesosbastantepresentareportarcongresopublicarcomerciocontratojóvenesdistritotécnicaconjuntoenergíatrabajarasturiasrecienteutilizarboletínsalvadorcorrectatrabajosprimerosnegocioslibertaddetallespantallapróximoalmeríaanimalesquiénescorazónsecciónbuscandoopcionesexteriorconceptotodavíagaleríaescribirmedicinalicenciaconsultaaspectoscríticadólaresjusticiadeberánperíodonecesitamantenerpequeñorecibidatribunaltenerifecancióncanariasdescargadiversosmallorcarequieretécnicodeberíaviviendafinanzasadelantefuncionaconsejosdifícilciudadesantiguasavanzadatérminounidadessánchezcampañasoftonicrevistascontienesectoresmomentosfacultadcréditodiversassupuestofactoressegundospequeñaгодаеÑлиеÑтьбылобытьÑтомЕÑлитогоменÑвÑехÑтойдажебылигодуденьÑтотбылаÑебÑодинÑебенадоÑайтфотонегоÑвоиÑвойигрытожевÑемÑвоюлишьÑтихпокаднейдомамиралиботемухотÑдвухÑетилюдиделомиретебÑÑвоевидечегоÑтимÑчеттемыценыÑталведьтемеводытебевышенамитипатомуправлицаоднагодызнаюмогудругвÑейидеткиноодноделаделеÑрокиюнÑвеÑьЕÑÑ‚ÑŒÑ€Ð°Ð·Ð°Ð½Ð°ÑˆÐ¸Ø§Ù„Ù„Ù‡Ø§Ù„ØªÙŠØ¬Ù…ÙŠØ¹Ø®Ø§ØµØ©Ø§Ù„Ø°ÙŠØ¹Ù„ÙŠÙ‡Ø¬Ø¯ÙŠØ¯Ø§Ù„Ø¢Ù†Ø§Ù„Ø±Ø¯ØªØ­ÙƒÙ…ØµÙØ­Ø©ÙƒØ§Ù†ØªØ§Ù„لييكونشبكةÙيهابناتحواءأكثرخلالالحبدليلدروساضغطتكونهناكساحةناديالطبعليكشكرايمكنمنهاشركةرئيسنشيطماذاالÙÙ†Ø´Ø¨Ø§Ø¨ØªØ¹Ø¨Ø±Ø±Ø­Ù…Ø©ÙƒØ§ÙØ©ÙŠÙ‚ÙˆÙ„Ù…Ø±ÙƒØ²ÙƒÙ„Ù…Ø©Ø£Ø­Ù…Ø¯Ù‚Ù„Ø¨ÙŠÙŠØ¹Ù†ÙŠØµÙˆØ±Ø©Ø·Ø±ÙŠÙ‚Ø´Ø§Ø±ÙƒØ¬ÙˆØ§Ù„Ø£Ø®Ø±Ù‰Ù…Ø¹Ù†Ø§Ø§Ø¨Ø­Ø«Ø¹Ø±ÙˆØ¶Ø¨Ø´ÙƒÙ„Ù…Ø³Ø¬Ù„Ø¨Ù†Ø§Ù†Ø®Ø§Ù„Ø¯ÙƒØªØ§Ø¨ÙƒÙ„ÙŠØ©Ø¨Ø¯ÙˆÙ†Ø£ÙŠØ¶Ø§ÙŠÙˆØ¬Ø¯ÙØ±ÙŠÙ‚ÙƒØªØ¨ØªØ£ÙØ¶Ù„Ù…Ø·Ø¨Ø®Ø§ÙƒØ«Ø±Ø¨Ø§Ø±ÙƒØ§ÙØ¶Ù„Ø§Ø­Ù„Ù‰Ù†ÙØ³Ù‡Ø£ÙŠØ§Ù…ردودأنهاديناالانمعرضتعلمداخلممكن���������������������� ++  ++ ÿÿÿÿ��������ÿÿÿÿ������������������ÿÿ������ÿÿ����������������resourcescountriesquestionsequipmentcommunityavailablehighlightDTD/xhtmlmarketingknowledgesomethingcontainerdirectionsubscribeadvertisecharacter" value="</select>Australia" class="situationauthorityfollowingprimarilyoperationchallengedevelopedanonymousfunction functionscompaniesstructureagreement" title="potentialeducationargumentssecondarycopyrightlanguagesexclusivecondition</form> ++statementattentionBiography} else { ++solutionswhen the Analyticstemplatesdangeroussatellitedocumentspublisherimportantprototypeinfluence»</effectivegenerallytransformbeautifultransportorganizedpublishedprominentuntil thethumbnailNational .focus();over the migrationannouncedfooter"> ++exceptionless thanexpensiveformationframeworkterritoryndicationcurrentlyclassNamecriticismtraditionelsewhereAlexanderappointedmaterialsbroadcastmentionedaffiliate</option>treatmentdifferent/default.Presidentonclick="biographyotherwisepermanentFrançaisHollywoodexpansionstandards</style> ++reductionDecember preferredCambridgeopponentsBusiness confusion> ++<title>presentedexplaineddoes not worldwideinterfacepositionsnewspaper</table> ++mountainslike the essentialfinancialselectionaction="/abandonedEducationparseInt(stabilityunable to ++relationsNote thatefficientperformedtwo yearsSince thethereforewrapper">alternateincreasedBattle ofperceivedtrying tonecessaryportrayedelectionsElizabethdiscoveryinsurances.length;legendaryGeographycandidatecorporatesometimesservices.inheritedCommunityreligiouslocationsCommitteebuildingsthe worldno longerbeginningreferencecannot befrequencytypicallyinto the relative;recordingpresidentinitiallytechniquethe otherit can beexistenceunderlinethis timetelephoneitemscopepracticesadvantage);return For otherprovidingdemocracyboth the extensivesufferingsupportedcomputers functionpracticalsaid thatit may beEnglish ++suspectedmargin: 0spiritual ++ ++microsoftgraduallydiscussedhe becameexecutivejquery.jshouseholdconfirmedpurchasedliterallydestroyedup to thevariationremainingit is notcenturiesJapanese among thecompletedalgorithminterestsrebellionundefinedencourageresizableinvolvingsensitiveuniversalprovision(althoughfeaturingconducted), which continued-header">February numerous overflow:componentfragmentsexcellentcolspan="technicalnear the Advanced source ofexpressedHong Kong Facebookmultiple mechanismelevationoffensive ++ sponsoreddocument.or "there arethose whomovementsprocessesdifficultsubmittedrecommendconvincedpromoting" width=".replace(classicalcoalitionhis firstdecisionsassistantindicatedevolution-wrapper"enough toalong thedelivered--> ++ ++ ++
Archbishop class="nobeing usedapproachesprivilegesnoscript> ++results inmay be theEaster eggmechanismsreasonablePopulationCollectionselected">noscript> /index.phparrival of-jssdk'));managed toincompletecasualtiescompletionChristiansSeptember arithmeticproceduresmight haveProductionit appearsPhilosophyfriendshipleading togiving thetoward theguaranteeddocumentedcolor:#000video gamecommissionreflectingchange theassociatedsans-serifonkeypress; padding:He was theunderlyingtypically , and the srcElementsuccessivesince the should be networkingaccountinguse of thelower thanshows that ++ complaintscontinuousquantitiesastronomerhe did notdue to itsapplied toan averageefforts tothe futureattempt toTherefore,capabilityRepublicanwas formedElectronickilometerschallengespublishingthe formerindigenousdirectionssubsidiaryconspiracydetails ofand in theaffordablesubstancesreason forconventionitemtype="absolutelysupposedlyremained aattractivetravellingseparatelyfocuses onelementaryapplicablefound thatstylesheetmanuscriptstands for no-repeat(sometimesCommercialin Americaundertakenquarter ofan examplepersonallyindex.php? ++percentagebest-knowncreating a" dir="ltrLieutenant ++
is said tostructuralreferendummost oftena separate-> ++
implementedcan be seenthere was ademonstratecontainer">connectionsthe Britishwas written!important;px; margin-followed byability to complicatedduring the immigrationalso called

as follows:merged withthrough thecommercial pointed outopportunityview of therequirementdivision ofprogramminghe receivedsetInterval">maintainingChristopherMuch of thewritings of" height="2size of theversion of mixture of between theExamples ofeducationalcompetitive onsubmit="director ofdistinctive/DTD XHTML relating totendency toprovince ofwhich woulddespite thescientific legislature.innerHTML allegationsAgriculturewas used inapproach tointelligentyears later,sans-serifdeterminingPerformanceappearances, which is foundationsabbreviatedhigher thans from the individual composed ofsupposed toclaims thatattributionfont-size:1elements ofHistorical his brotherat the timeanniversarygoverned byrelated to ultimately innovationsit is stillcan only bedefinitionstoGMTStringA number ofimg class="Eventually,was changedoccurred inneighboringdistinguishwhen he wasintroducingterrestrialMany of theargues thatan Americanconquest ofwidespread were killedscreen and In order toexpected todescendantsare locatedlegislativegenerations backgroundmost peopleyears afterthere is nothe highestfrequently they do notargued thatshowed thatpredominanttheologicalby the timeconsideringshort-livedcan be usedvery littleone of the had alreadyinterpretedcommunicatefeatures ofgovernment,entered the" height="3Independentpopulationslarge-scale. Although used in thedestructionpossibilitystarting intwo or moreexpressionssubordinatelarger thanhistory and ++Continentaleliminatingwill not bepractice ofin front ofsite of theensure thatto create amississippipotentiallyoutstandingbetter thanwhat is nowsituated inmeta name="TraditionalsuggestionsTranslationthe form ofatmosphericideologicalenterprisescalculatingeast of theremnants ofpluginspage/index.php?remained intransformedHe was alsowas alreadystatisticalin favor ofMinistry ofmovement offormulationis required ++question ofwas electedto become abecause of some peopleinspired bysuccessful a time whenmore commonamongst thean officialwidth:100%;technology,was adoptedto keep thesettlementslive birthsindex.html"Connecticutassigned to&times;account foralign=rightthe companyalways beenreturned toinvolvementBecause thethis period" name="q" confined toa result ofvalue="" />is actuallyEnvironment ++ ++Conversely,> ++
this is notthe presentif they areand finallya matter of ++
++ ++faster thanmajority ofafter whichcomparativeto maintainimprove theawarded theer" class="frameborderrestorationin the sameanalysis oftheir firstDuring the continentalsequence offunction(){font-size: work on the ++adopted theproperty ofdirected byeffectivelywas broughtchildren ofProgramminglonger thanmanuscriptswar againstby means ofand most ofsimilar to proprietaryoriginatingprestigiousgrammaticalexperience.to make theIt was alsois found incompetitorsin the U.S.replace thebrought thecalculationfall of thethe generalpracticallyin honor ofreleased inresidentialand some ofking of thereaction to1st Earl ofculture andprincipally ++ they can beback to thesome of hisexposure toare similarform of theaddFavoritecitizenshippart in thepeople within practiceto continue&minus;approved by the first allowed theand for thefunctioningplaying thesolution toheight="0" in his bookmore than afollows thecreated thepresence in nationalistthe idea ofa characterwere forced class="btndays of thefeatured inshowing theinterest inin place ofturn of thethe head ofLord of thepoliticallyhas its ownEducationalapproval ofsome of theeach other,behavior ofand becauseand anotherappeared onrecorded inblack"may includethe world'scan lead torefers to aborder="0" government winning theresulted in while the Washington,the subjectcity in the>

++ reflect theto completebecame moreradioactiverejected bywithout anyhis father,which couldcopy of theto indicatea politicalaccounts ofconstitutesworked witherof his lifeaccompaniedclientWidthprevent theLegislativedifferentlytogether inhas severalfor anothertext of thefounded thee with the is used forchanged theusually theplace wherewhereas the> The currentthe site ofsubstantialexperience,in the Westthey shouldslovenÄinacomentariosuniversidadcondicionesactividadesexperienciatecnologíaproducciónpuntuaciónaplicacióncontraseñacategoríasregistrarseprofesionaltratamientoregístratesecretaríaprincipalesprotecciónimportantesimportanciaposibilidadinteresantecrecimientonecesidadessuscribirseasociacióndisponiblesevaluaciónestudiantesresponsableresoluciónguadalajararegistradosoportunidadcomercialesfotografíaautoridadesingenieríatelevisióncompetenciaoperacionesestablecidosimplementeactualmentenavegaciónconformidadline-height:font-family:" : "http://applicationslink" href="specifically// ++/index.html"window.open( !important;application/independence//www.googleorganizationautocompleterequirementsconservative
most notably/>
notification'undefined')Furthermore,believe thatinnerHTML = prior to thedramaticallyreferring tonegotiationsheadquartersSouth AfricaunsuccessfulPennsylvaniaAs a result, ++
English (US)appendChild(transmissions. However, intelligence" tabindex="float:right;Commonwealthranging fromin which theat least onereproductionencyclopedia;font-size:1jurisdictionat that time">compensationchampionshipmedia="all" violation ofreference toreturn true;Strict//EN" transactionsinterventionverificationInformation difficultiesChampionshipcapabilities} ++ ++Christianityfor example,Professionalrestrictionssuggest thatwas released(such as theremoveClass(unemploymentthe Americanstructure of/index.html published inspan class=""> ++ ++f (document.border: 1px {font-size:1treatment of0" height="1modificationIndependencedivided intogreater thanachievementsestablishingJavaScript" neverthelesssignificanceBroadcasting> container"> ++such as the influence ofa particularsrc='http://navigation" half of the substantial  advantage ofdiscovery offundamental metropolitanthe opposite" xml:lang="deliberatelyalign=centerevolution ofpreservationimprovementsbeginning inJesus ChristPublicationsdisagreementtext-align:r, function()similaritiesbody>is currentlyalphabeticalis sometimestype="image/many of the flow:hidden;available indescribe theexistence ofall over thethe Internet