summaryrefslogtreecommitdiff
path: root/debian/patches
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/05_sparc_unaligned_access.diff41
-rw-r--r--debian/patches/atomic_config_test.diff52
-rw-r--r--debian/patches/blacklist_libkpartsplugin.patch30
-rw-r--r--debian/patches/detect_opengl_es2.diff16
-rw-r--r--debian/patches/do_not_use_jit_on_big_endian_machines.patch41
-rw-r--r--debian/patches/fix_cloop_on_big_endian_machines.patch142
-rw-r--r--debian/patches/fix_copyChars_segfault.diff43
-rw-r--r--debian/patches/fix_crash_when_a_network_request_is_aborted_while_forwarding_data.patch38
-rw-r--r--debian/patches/fix_ftbfs_x32.diff15
-rw-r--r--debian/patches/fix_nonlinux_glibc_linkage.diff16
-rw-r--r--debian/patches/fix_selectedHtml_segfault.diff18
-rw-r--r--debian/patches/hurd.diff33
-rw-r--r--debian/patches/no_gc_sections.diff25
-rw-r--r--debian/patches/path_max.diff21
-rw-r--r--debian/patches/reduce_exports.diff26
-rw-r--r--debian/patches/reduce_memory_usage.patch23
-rw-r--r--debian/patches/series22
-rw-r--r--debian/patches/webkit_qt_hide_symbols.diff28
18 files changed, 198 insertions, 432 deletions
diff --git a/debian/patches/05_sparc_unaligned_access.diff b/debian/patches/05_sparc_unaligned_access.diff
deleted file mode 100644
index f875008..0000000
--- a/debian/patches/05_sparc_unaligned_access.diff
+++ /dev/null
@@ -1,41 +0,0 @@
-Description: fix some alignment problems on sparc.
-Author: Mike Hommey <glandium@debian.org>
-Author: Timo Jyrinki <timo@debian.org>
-Last-Update: 2013-12-17
-
----
- Source/JavaScriptCore/wtf/ListHashSet.h | 9 +++------
- 1 file changed, 3 insertions(+), 6 deletions(-)
-
---- a/Source/WTF/wtf/ListHashSet.h
-+++ b/Source/WTF/wtf/ListHashSet.h
-@@ -173,7 +173,7 @@ namespace WTF {
- : m_freeList(pool())
- , m_isDoneWithInitialFreeList(false)
- {
-- memset(m_pool.pool, 0, sizeof(m_pool.pool));
-+ memset(m_pool, 0, sizeof(m_pool));
- }
-
- Node* allocate()
-@@ -217,7 +217,7 @@ namespace WTF {
- }
-
- private:
-- Node* pool() { return reinterpret_cast_ptr<Node*>(m_pool.pool); }
-+ Node* pool() { return reinterpret_cast_ptr<Node*>(m_pool); }
- Node* pastPool() { return pool() + m_poolSize; }
- bool inPool(Node* node)
- {
-@@ -227,10 +227,7 @@ namespace WTF {
- Node* m_freeList;
- bool m_isDoneWithInitialFreeList;
- static const size_t m_poolSize = inlineCapacity;
-- union {
-- char pool[sizeof(Node) * m_poolSize];
-- double forAlignment;
-- } m_pool;
-+ uint32_t m_pool[(sizeof(Node) * m_poolSize + sizeof(uint32_t) - 1) / sizeof(uint32_t)];
- };
-
- template<typename ValueArg, size_t inlineCapacity> struct ListHashSetNode {
diff --git a/debian/patches/atomic_config_test.diff b/debian/patches/atomic_config_test.diff
new file mode 100644
index 0000000..247c254
--- /dev/null
+++ b/debian/patches/atomic_config_test.diff
@@ -0,0 +1,52 @@
+Description: improve configuration tests for librt and libatomic
+Origin: upstream, https://github.com/annulen/webkit/commit/250709411c49550a
+Last-Update: 2017-09-16
+
+--- a/Source/WebKit2/CMakeLists.txt
++++ b/Source/WebKit2/CMakeLists.txt
+@@ -1,3 +1,6 @@
++include(CheckCXXSourceCompiles)
++include(CheckFunctionExists)
++
+ set(WebKit2_INCLUDE_DIRECTORIES
+ "${JAVASCRIPTCORE_DIR}/llint"
+ "${WEBKIT2_DIR}"
+@@ -740,11 +743,33 @@
+ WebKit2
+ )
+
+-# librt is needed for shm_open on Linux.
+-find_library(LIBRT_LIBRARIES NAMES rt)
+-mark_as_advanced(LIBRT_LIBRARIES)
+-if (LIBRT_LIBRARIES)
+- list(APPEND WebKit2_LIBRARIES ${LIBRT_LIBRARIES})
++if (COMPILER_IS_GCC_OR_CLANG)
++ set(ATOMIC_TEST_SOURCE
++ "
++ #include <atomic>
++ int main() { std::atomic<int64_t> i(0); i++; return 0; }
++ "
++ )
++ check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMIC_INT64_IS_BUILTIN)
++ if (NOT ATOMIC_INT64_IS_BUILTIN)
++ set(CMAKE_REQUIRED_LIBRARIES atomic)
++ check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMIC_INT64_REQUIRES_LIBATOMIC)
++ if (ATOMIC_INT64_REQUIRES_LIBATOMIC)
++ list(APPEND WebKit2_LIBRARIES atomic)
++ endif ()
++ unset(CMAKE_REQUIRED_LIBRARIES)
++ endif ()
++endif ()
++
++if (UNIX)
++ check_function_exists(shm_open SHM_OPEN_EXISTS)
++ if (NOT SHM_OPEN_EXISTS)
++ set(CMAKE_REQUIRED_LIBRARIES rt)
++ check_function_exists(shm_open SHM_OPEN_REQUIRES_LIBRT)
++ if (SHM_OPEN_REQUIRES_LIBRT)
++ list(APPEND WebKit2_LIBRARIES rt)
++ endif ()
++ endif ()
+ endif ()
+
+ macro(ADD_WEBKIT2_PREFIX_HEADER _target)
diff --git a/debian/patches/blacklist_libkpartsplugin.patch b/debian/patches/blacklist_libkpartsplugin.patch
deleted file mode 100644
index 1508042..0000000
--- a/debian/patches/blacklist_libkpartsplugin.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From a322d1b1ba39bb83a2ffd41c4dc0c00de5bd77e0 Mon Sep 17 00:00:00 2001
-From: Sune Vuorela <sune@vuorela.dk>
-Date: Mon, 13 Oct 2014 20:39:26 +0200
-Subject: [PATCH] Blacklist libkpartsplugin
-
-KPartsPlugin is built using qt4, and loading that into a Qt5 QtWebkit
-makes stuff crash.
-
-Change-Id: I47d01dfe3b215192b012911013b352ea5b5b1530
----
- Source/WebCore/plugins/qt/PluginPackageQt.cpp | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/Source/WebCore/plugins/qt/PluginPackageQt.cpp b/Source/WebCore/plugins/qt/PluginPackageQt.cpp
-index 679480b..a674ad3 100644
---- a/Source/WebCore/plugins/qt/PluginPackageQt.cpp
-+++ b/Source/WebCore/plugins/qt/PluginPackageQt.cpp
-@@ -146,7 +146,8 @@ bool PluginPackage::isPluginBlacklisted()
- {
- // TODO: enumerate all plugins that are incompatible with Qt5.
- const QLatin1String pluginBlacklist[] = {
-- QLatin1String("skypebuttons")
-+ QLatin1String("skypebuttons"),
-+ QLatin1String("libkpartsplugin")
- };
-
- QString baseName = QFileInfo(static_cast<QString>(m_path)).baseName();
---
-2.1.1
-
diff --git a/debian/patches/detect_opengl_es2.diff b/debian/patches/detect_opengl_es2.diff
new file mode 100644
index 0000000..ef3399e
--- /dev/null
+++ b/debian/patches/detect_opengl_es2.diff
@@ -0,0 +1,16 @@
+Description: fix header needed to check OpenGL ES 2
+Author: Dmitry Shachnev <mitya57@debian.org>
+Bug-Upstream: https://github.com/annulen/webkit/issues/598
+Last-Update: 2017-08-27
+
+--- a/Source/WTF/wtf/Platform.h
++++ b/Source/WTF/wtf/Platform.h
+@@ -1057,7 +1057,7 @@
+
+ #if PLATFORM(QT)
+ #ifdef __cplusplus
+-#include <qglobal.h>
++#include <QtGui/qtguiglobal.h>
+ #endif
+ #if defined(QT_OPENGL_ES_2) && !defined(USE_OPENGL_ES_2)
+ #define USE_OPENGL_ES_2 1
diff --git a/debian/patches/do_not_use_jit_on_big_endian_machines.patch b/debian/patches/do_not_use_jit_on_big_endian_machines.patch
deleted file mode 100644
index b50fdd7..0000000
--- a/debian/patches/do_not_use_jit_on_big_endian_machines.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 0b6f959022700ecf9374bdbb13772242d3f7e617 Mon Sep 17 00:00:00 2001
-From: Allan Sandfeld Jensen <allan.jensen@digia.com>
-Date: Fri, 10 Oct 2014 14:50:18 +0200
-Subject: [PATCH] Do not use JIT on big endian architectures
-
-All the JIT implementations targets the little-endian versions of ARM,
-MIPS and SH4 respectively. So in case anyone builds on those platforms
-we should not enable JIT.
-
-Task-number: QTBUG-41896
-Change-Id: I5be167511e2c3eac6c63e603b82da84fb6b29eaa
-Reviewed-by: Julien Brianceau <jbriance@cisco.com>
-Reviewed-by: Michael Bruning <michael.bruning@digia.com>
----
- Source/WTF/wtf/Platform.h | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
---- a/Source/WTF/wtf/Platform.h
-+++ b/Source/WTF/wtf/Platform.h
-@@ -128,6 +128,9 @@
- /* CPU(SH4) - SuperH SH-4 */
- #if defined(__SH4__)
- #define WTF_CPU_SH4 1
-+#ifdef __BIG_ENDIAN__
-+#define WTF_CPU_BIG_ENDIAN 1
-+#endif
- #endif
-
- /* CPU(SPARC32) - SPARC 32-bit */
-@@ -759,6 +762,11 @@
- #define ENABLE_JIT 0
- #endif
-
-+/* All the current JIT implementations target little-endian */
-+#if CPU(BIG_ENDIAN)
-+#define ENABLE_JIT 0
-+#endif
-+
- /* Disable JIT on x32 */
- #if CPU(X32)
- #define ENABLE_JIT 0
diff --git a/debian/patches/fix_cloop_on_big_endian_machines.patch b/debian/patches/fix_cloop_on_big_endian_machines.patch
deleted file mode 100644
index 45006d7..0000000
--- a/debian/patches/fix_cloop_on_big_endian_machines.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From 0c58a486f551e7e7b63d438e3d32f21f876327d1 Mon Sep 17 00:00:00 2001
-From: Allan Sandfeld Jensen <allan.jensen@digia.com>
-Date: Thu, 9 Oct 2014 17:40:37 +0200
-Subject: [PATCH] Fix CLoop on big-endian machines
-
-Callee and ScopeChain are JSObject pointers and saved in the 64bit
-structure for JS registers. On a 32bit big-endian machine the actual
-pointer is offset by the PayloadOffset of 4 bytes, but on little-endian
-and 64bit architectures there is no offset.
-
-This patch fixes four places the payloadOffset was not correctly added
-on 32bit big-endian, and six places it was added on 64big big-endian
-when it shouldn't.
-
-Task-number: QTBUG-41896
-Change-Id: I46b474bee9822b8040d1b7b2e8f31ce42e0adefe
-Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
----
- .../JavaScriptCore/llint/LowLevelInterpreter.asm | 25 +++++++++++++---------
- .../llint/LowLevelInterpreter32_64.asm | 2 +-
- 2 files changed, 16 insertions(+), 11 deletions(-)
-
-diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
-index 2b5a23c..c4d86ee 100644
---- a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
-+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
-@@ -87,6 +87,12 @@ else
- const PayloadOffset = 0
- end
-
-+if JSVALUE64
-+ const JSCellPayloadOffset = 0
-+else
-+ const JSCellPayloadOffset = PayloadOffset
-+end
-+
- # Constant for reasoning about butterflies.
- const IsArray = 1
- const IndexingShapeMask = 30
-@@ -161,7 +167,6 @@ else
- const VectorSizeOffset = 8
- end
-
--
- # Some common utilities.
- macro crash()
- if C_LOOP
-@@ -267,13 +272,13 @@ macro assertNotConstant(index)
- end
-
- macro functionForCallCodeBlockGetter(targetRegister)
-- loadp Callee[cfr], targetRegister
-+ loadp Callee + JSCellPayloadOffset[cfr], targetRegister
- loadp JSFunction::m_executable[targetRegister], targetRegister
- loadp FunctionExecutable::m_codeBlockForCall[targetRegister], targetRegister
- end
-
- macro functionForConstructCodeBlockGetter(targetRegister)
-- loadp Callee[cfr], targetRegister
-+ loadp Callee + JSCellPayloadOffset[cfr], targetRegister
- loadp JSFunction::m_executable[targetRegister], targetRegister
- loadp FunctionExecutable::m_codeBlockForConstruct[targetRegister], targetRegister
- end
-@@ -671,7 +676,7 @@ _llint_op_resolve_global_var:
- macro resolveScopedVarBody(resolveOperations)
- # First ResolveOperation is to skip scope chain nodes
- getScope(macro(dest)
-- loadp ScopeChain + PayloadOffset[cfr], dest
-+ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
- end,
- ResolveOperation::m_scopesToSkip[resolveOperations], t1, t2)
- loadp JSVariableObject::m_registers[t1], t1 # t1 now contains the activation registers
-@@ -696,7 +701,7 @@ _llint_op_resolve_scoped_var_on_top_scope:
- loadisFromInstruction(1, t3)
-
- # We know we want the top scope chain entry
-- loadp ScopeChain + PayloadOffset[cfr], t1
-+ loadp ScopeChain + JSCellPayloadOffset[cfr], t1
- loadp JSVariableObject::m_registers[t1], t1 # t1 now contains the activation registers
-
- # Second ResolveOperation tells us what offset to use
-@@ -718,7 +723,7 @@ _llint_op_resolve_scoped_var_with_top_scope_check:
- loadp JSScope::m_next[t1], dest
- jmp .done
- .scopeChainNotCreated:
-- loadp ScopeChain + PayloadOffset[cfr], dest
-+ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
- .done:
- end,
- # Second ResolveOperation tells us how many more nodes to skip
-@@ -773,7 +778,7 @@ _llint_op_resolve_base_to_scope:
- getResolveOperation(4, t0)
- # First ResolveOperation is to skip scope chain nodes
- getScope(macro(dest)
-- loadp ScopeChain + PayloadOffset[cfr], dest
-+ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
- end,
- ResolveOperation::m_scopesToSkip[t0], t1, t2)
- loadisFromInstruction(1, t3)
-@@ -798,7 +803,7 @@ _llint_op_resolve_base_to_scope_with_top_scope_check:
- loadp JSScope::m_next[t1], dest
- jmp .done
- .scopeChainNotCreated:
-- loadp ScopeChain + PayloadOffset[cfr], dest
-+ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
- .done:
- end,
- # Second ResolveOperation tells us how many more nodes to skip
-@@ -823,7 +828,7 @@ macro interpretResolveWithBase(opcodeLength, slowPath)
- getResolveOperation(4, t0)
- btpz t0, .slowPath
-
-- loadp ScopeChain[cfr], t3
-+ loadp ScopeChain + JSCellPayloadOffset[cfr], t3
- # Get the base
- loadis ResolveOperation::m_operation[t0], t2
-
-@@ -845,7 +850,7 @@ macro interpretResolveWithBase(opcodeLength, slowPath)
- loadp JSScope::m_next[t1], dest
- jmp .done
- .scopeChainNotCreated:
-- loadp ScopeChain + PayloadOffset[cfr], dest
-+ loadp ScopeChain + JSCellPayloadOffset[cfr], dest
- .done:
- end,
- sizeof ResolveOperation + ResolveOperation::m_scopesToSkip[t0], t1, t2)
-diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
-index 89e40c7..87aa09e 100644
---- a/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
-+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
-@@ -1692,7 +1692,7 @@ _llint_op_next_pname:
- loadi 20[PC], t2
- loadi PayloadOffset[cfr, t2, 8], t2
- loadp JSPropertyNameIterator::m_jsStrings[t2], t3
-- loadi [t3, t0, 8], t3
-+ loadi PayloadOffset[t3, t0, 8], t3
- addi 1, t0
- storei t0, PayloadOffset[cfr, t1, 8]
- loadi 4[PC], t1
---
-2.1.1
-
diff --git a/debian/patches/fix_copyChars_segfault.diff b/debian/patches/fix_copyChars_segfault.diff
new file mode 100644
index 0000000..1c704f3
--- /dev/null
+++ b/debian/patches/fix_copyChars_segfault.diff
@@ -0,0 +1,43 @@
+Description: fix WTF::StringImpl::copyChars segfault when built with GCC 7
+Origin: upstream, https://github.com/annulen/webkit/commit/0caec8a593cd872e
+Last-Update: 2017-10-27
+
+--- a/Source/WTF/wtf/text/StringImpl.h
++++ b/Source/WTF/wtf/text/StringImpl.h
+@@ -619,25 +619,7 @@
+ *destination = *source;
+ return;
+ }
+-
+- if (numCharacters <= s_copyCharsInlineCutOff) {
+- unsigned i = 0;
+-#if (CPU(X86) || CPU(X86_64))
+- const unsigned charsPerInt = sizeof(uint32_t) / sizeof(T);
+-
+- if (numCharacters > charsPerInt) {
+- unsigned stopCount = numCharacters & ~(charsPerInt - 1);
+-
+- const uint32_t* srcCharacters = reinterpret_cast<const uint32_t*>(source);
+- uint32_t* destCharacters = reinterpret_cast<uint32_t*>(destination);
+- for (unsigned j = 0; i < stopCount; i += charsPerInt, ++j)
+- destCharacters[j] = srcCharacters[j];
+- }
+-#endif
+- for (; i < numCharacters; ++i)
+- destination[i] = source[i];
+- } else
+- memcpy(destination, source, numCharacters * sizeof(T));
++ memcpy(destination, source, numCharacters * sizeof(T));
+ }
+
+ ALWAYS_INLINE static void copyChars(UChar* destination, const LChar* source, unsigned numCharacters)
+@@ -855,9 +837,6 @@
+ return *tailPointer<StringImpl*>();
+ }
+
+- // This number must be at least 2 to avoid sharing empty, null as well as 1 character strings from SmallStrings.
+- static const unsigned s_copyCharsInlineCutOff = 20;
+-
+ enum class CaseConvertType { Upper, Lower };
+ template<CaseConvertType type, typename CharacterType> static Ref<StringImpl> convertASCIICase(StringImpl&, const CharacterType*, unsigned);
+
diff --git a/debian/patches/fix_crash_when_a_network_request_is_aborted_while_forwarding_data.patch b/debian/patches/fix_crash_when_a_network_request_is_aborted_while_forwarding_data.patch
deleted file mode 100644
index 19ac009..0000000
--- a/debian/patches/fix_crash_when_a_network_request_is_aborted_while_forwarding_data.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 13ebee35e169a8b1210851ec494951815c70620c Mon Sep 17 00:00:00 2001
-From: Allan Sandfeld Jensen <allan.jensen@digia.com>
-Date: Mon, 13 Oct 2014 15:32:14 +0200
-Subject: [PATCH] Fix crash when a network-request is aborted while forwarding
- data
-
-Since we forward data block-wise a network request may be aborted while
-we are still forwarding received data. In that case we should stop the
-forwarding.
-
-Task-number: QTBUG-41877
-Change-Id: Ia34bbdcacdc4eb70a2e814d3b4bada9844abbb83
-Reviewed-by: Michael Bruning <michael.bruning@digia.com>
----
- Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp b/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
-index 5990a40..fc69546 100644
---- a/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
-+++ b/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
-@@ -687,9 +687,12 @@ void QNetworkReplyHandler::forwardData()
- // -1 means we do not provide any data about transfer size to inspector so it would use
- // Content-Length headers or content size to show transfer size.
- client->didReceiveData(m_resourceHandle, buffer, readSize, -1);
-+ // Check if the request has been aborted or this reply-handler was otherwise released.
-+ if (wasAborted() || !m_replyWrapper)
-+ break;
- }
- delete[] buffer;
-- if (bytesAvailable > 0)
-+ if (bytesAvailable > 0 && m_replyWrapper)
- m_queue.requeue(&QNetworkReplyHandler::forwardData);
- }
-
---
-2.1.1
-
diff --git a/debian/patches/fix_ftbfs_x32.diff b/debian/patches/fix_ftbfs_x32.diff
new file mode 100644
index 0000000..38a90e5
--- /dev/null
+++ b/debian/patches/fix_ftbfs_x32.diff
@@ -0,0 +1,15 @@
+Description: fix x32 build
+Origin: upstream, https://github.com/WebKit/webkit/commit/0858ee607f376ae8
+Last-Update: 2017-11-11
+
+--- a/Source/WTF/wtf/Platform.h
++++ b/Source/WTF/wtf/Platform.h
+@@ -705,7 +705,7 @@
+ #endif
+
+ #if !defined(USE_JSVALUE64) && !defined(USE_JSVALUE32_64)
+-#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS))) \
++#if (CPU(X86_64) && !defined(__ILP32__) && (OS(UNIX) || OS(WINDOWS))) \
+ || (CPU(IA64) && !CPU(IA64_32)) \
+ || CPU(ALPHA) \
+ || CPU(ARM64) \
diff --git a/debian/patches/fix_nonlinux_glibc_linkage.diff b/debian/patches/fix_nonlinux_glibc_linkage.diff
deleted file mode 100644
index 566389a..0000000
--- a/debian/patches/fix_nonlinux_glibc_linkage.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Author: Sune Vuorela
-Description: Ensures we link with rt on all the platforms where we
-have glibc. Not yet upstreamed. Requires a upstreamming of the gnukfreebsd patch
-Index: b/Source/WebKit2/WebKit2.pri
-===================================================================
---- a/Source/WebKit2/WebKit2.pri
-+++ b/Source/WebKit2/WebKit2.pri
-@@ -75,7 +75,7 @@
-
- INCLUDEPATH += $$WEBKIT2_GENERATED_SOURCES_DIR
-
--linux-*:!android {
-+linux-*:!android|hurd-*|gnukfreebsd-* {
- # -lrt is required for shm_open and shm_unlink.
- LIBS += -lrt
- }
diff --git a/debian/patches/fix_selectedHtml_segfault.diff b/debian/patches/fix_selectedHtml_segfault.diff
new file mode 100644
index 0000000..826bf5a
--- /dev/null
+++ b/debian/patches/fix_selectedHtml_segfault.diff
@@ -0,0 +1,18 @@
+Description: fix nullptr dereference in QWebPageAdapter::selectedHtml()
+Origin: Fedora, https://src.fedoraproject.org/cgit/rpms/qt5-qtwebkit.git/tree/qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference.patch
+Last-Update: 2017-10-30
+
+--- a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp
++++ b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp
+@@ -390,7 +390,10 @@
+
+ QString QWebPageAdapter::selectedHtml() const
+ {
+- return page->focusController().focusedOrMainFrame().editor().selectedRange()->toHTML();
++ RefPtr<Range> range = page->focusController().focusedOrMainFrame().editor().selectedRange();
++ if (!range)
++ return QString();
++ return range->toHTML();
+ }
+
+ bool QWebPageAdapter::isContentEditable() const
diff --git a/debian/patches/hurd.diff b/debian/patches/hurd.diff
deleted file mode 100644
index 46318d3..0000000
--- a/debian/patches/hurd.diff
+++ /dev/null
@@ -1,33 +0,0 @@
-Author: Pino Toscano <pino@debian.org>
-Description: fix (workaround) build on GNU/Hurd
- Apparently PTHREAD_MUTEX_NORMAL and PTHREAD_MUTEX_DEFAULT cannot be used
- in preprocessor expressions, so temporarly use directly the code which would
- be used on GNU/Hurd.
-Origin: vendor
-Forwarded: not-needed
-Last-Update: 2011-12-30
-
----
- Source/JavaScriptCore/wtf/FastMalloc.cpp | 4 ++++
- 1 file changed, 4 insertions(+)
-
---- a/Source/WTF/wtf/FastMalloc.cpp
-+++ b/Source/WTF/wtf/FastMalloc.cpp
-@@ -1966,6 +1966,9 @@ ALWAYS_INLINE void TCMalloc_PageHeap::su
- void TCMalloc_PageHeap::initializeScavenger()
- {
- // Create a non-recursive mutex.
-+#if defined(__GNU__)
-+ pthread_mutex_init(&m_scavengeMutex, 0);
-+#else
- #if !defined(PTHREAD_MUTEX_NORMAL) || PTHREAD_MUTEX_NORMAL == PTHREAD_MUTEX_DEFAULT
- pthread_mutex_init(&m_scavengeMutex, 0);
- #else
-@@ -1977,6 +1980,7 @@ void TCMalloc_PageHeap::initializeScaven
-
- pthread_mutexattr_destroy(&attr);
- #endif
-+#endif
-
- pthread_cond_init(&m_scavengeCondition, 0);
- m_scavengeThreadActive = true;
diff --git a/debian/patches/no_gc_sections.diff b/debian/patches/no_gc_sections.diff
deleted file mode 100644
index ffe5ec1..0000000
--- a/debian/patches/no_gc_sections.diff
+++ /dev/null
@@ -1,25 +0,0 @@
-Description: do not pass -Wl,--gc-sections on powerpc, s390, arm*, mips*, iX86 when building
- libQtWebKit.so; works around a binutils bug that results in a
- segfault on powerpc, internal link error on s390 and OOM on armel/mipsel.
-Author: Steve Langasek <vorlon@debian.org>
-Author: Modestas Vainius <modax@debian.org>
-Author: Timo Jyrinki <timo@debian.org>
-Origin: vendor
-Forwarded: no
-Last-Update: 2013-02-07 (add i686)
-
----
- Source/WebCore/WebCore.pri | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/Source/WebCore/WebCore.pri
-+++ b/Source/WebCore/WebCore.pri
-@@ -301,7 +301,7 @@ mac {
- unix:!mac:*-g++*:QMAKE_CXXFLAGS += -ffunction-sections
- }
- unix:!mac:*-g++*:QMAKE_CXXFLAGS += -fdata-sections
--unix:!mac:*-g++*:QMAKE_LFLAGS += -Wl,--gc-sections
-+unix:!mac:*-g++*:!equals(QT_ARCH, powerpc):!equals(QT_ARCH, s390):!equals(QT_ARCH, mips):!equals(QT_ARCH, arm):!equals(QT_ARCH, i386):!equals(QT_ARCH, i686):QMAKE_LFLAGS += -Wl,--gc-sections
- linux*-g++*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
-
- enable_fast_mobile_scrolling: DEFINES += ENABLE_FAST_MOBILE_SCROLLING=1
diff --git a/debian/patches/path_max.diff b/debian/patches/path_max.diff
new file mode 100644
index 0000000..3b76145
--- /dev/null
+++ b/debian/patches/path_max.diff
@@ -0,0 +1,21 @@
+Author: Pino Toscano <pino@debian.org>
+Description: Locally define PATH_MAX is not available
+ The code unconditionally uses PATH_MAX, which is POSIX-optional.
+ .
+ This fixes the build on platforms without it, such as GNU/Hurd.
+Forwarded: no
+Last-Update: 2017-11-20
+
+--- a/Source/WebCore/platform/text/hyphen/HyphenationLibHyphen.cpp
++++ b/Source/WebCore/platform/text/hyphen/HyphenationLibHyphen.cpp
+@@ -45,6 +45,10 @@
+ #include <wtf/glib/GUniquePtr.h>
+ #endif
+
++#if !defined(PATH_MAX)
++#define PATH_MAX 4096
++#endif
++
+ namespace WebCore {
+
+ static const char* const gDictionaryDirectories[] = {
diff --git a/debian/patches/reduce_exports.diff b/debian/patches/reduce_exports.diff
new file mode 100644
index 0000000..44fb4df
--- /dev/null
+++ b/debian/patches/reduce_exports.diff
@@ -0,0 +1,26 @@
+Description: reduce the number of exported symbols in libQt5WebKit.so.5
+Author: Dmitry Shachnev <mitya57@debian.org>
+Forwarded: not-needed
+Last-Update: 2017-08-27
+
+--- a/Source/WTF/wtf/ExportMacros.h
++++ b/Source/WTF/wtf/ExportMacros.h
+@@ -56,7 +56,7 @@
+
+ #elif defined(__GNUC__) && !defined(__CC_ARM) && !defined(__ARMCC__)
+
+-#define WTF_EXPORT_DECLARATION __attribute__((visibility("default")))
++#define WTF_EXPORT_DECLARATION
+ #define WTF_IMPORT_DECLARATION WTF_EXPORT_DECLARATION
+ #define WTF_HIDDEN_DECLARATION __attribute__((visibility("hidden")))
+
+--- a/Source/cmake/OptionsQt.cmake
++++ b/Source/cmake/OptionsQt.cmake
+@@ -546,6 +546,7 @@
+ if (NOT SHARED_CORE)
+ set(CMAKE_C_FLAGS "-fvisibility=hidden ${CMAKE_C_FLAGS}")
+ set(CMAKE_CXX_FLAGS "-fvisibility=hidden -fvisibility-inlines-hidden ${CMAKE_CXX_FLAGS}")
++ add_definitions(-DJS_NO_EXPORT)
+ endif ()
+ endif ()
+
diff --git a/debian/patches/reduce_memory_usage.patch b/debian/patches/reduce_memory_usage.patch
deleted file mode 100644
index fe1ebb6..0000000
--- a/debian/patches/reduce_memory_usage.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Description: force ld to not cache symbols tables.
- This patch, wich should be considered Debian-only (in other words, it should
- not be pushed upstream), forces ld to not cache the symbol tables of input
- files in memory to avoid memory exhaustion during the linking phase.
- .
- This might make linking slower but reducing the overall memory consumption.
-Author: Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>
-Forwarded: not-needed
-Last-Update: 2014-03-05
-
----
- Tools/qmake/mkspecs/features/unix/default_post.prf | 3 +++
- 1 file changed, 3 insertions(+)
-
---- a/Tools/qmake/mkspecs/features/unix/default_post.prf
-+++ b/Tools/qmake/mkspecs/features/unix/default_post.prf
-@@ -68,3 +68,6 @@ CONFIG(debug, debug|release)|force_debug
- }
-
- load(default_post)
-+
-+# Make ld not cache the symbol tables of input files in memory to avoid memory exhaustion during the linking phase.
-+QMAKE_LFLAGS += -Wl,--no-keep-memory
diff --git a/debian/patches/series b/debian/patches/series
index dff8ec2..13e6f0c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,18 +1,10 @@
-# Upstream patches
-do_not_use_jit_on_big_endian_machines.patch
-fix_cloop_on_big_endian_machines.patch
-fix_crash_when_a_network_request_is_aborted_while_forwarding_data.patch
-blacklist_libkpartsplugin.patch
-
-# debian patches
-reduce_memory_usage.patch
-05_sparc_unaligned_access.diff
-no_gc_sections.diff
-hurd.diff
-webkit_qt_hide_symbols.diff
-fix_nonlinux_glibc_linkage.diff
-
-# Dyson patches
+reduce_exports.diff
+detect_opengl_es2.diff
+atomic_config_test.diff
+fix_copyChars_segfault.diff
+fix_selectedHtml_segfault.diff
+fix_ftbfs_x32.diff
+path_max.diff
dyson-MathExtras.patch
dyson-yield.patch
dyson-MachineStackMarker-stackPointer.patch
diff --git a/debian/patches/webkit_qt_hide_symbols.diff b/debian/patches/webkit_qt_hide_symbols.diff
deleted file mode 100644
index b881ac7..0000000
--- a/debian/patches/webkit_qt_hide_symbols.diff
+++ /dev/null
@@ -1,28 +0,0 @@
-From: Modestas Vainius <modax@debian.org>
-SUbject: Make hide_symbols to cover all QtWebKit portions
-Origin: vendor
-Author: Timo Jyrinki <timo@debian.org>
-Last-Update: 2013-01-28 (use a similar patch on Qt 5)
-Forwarded: no
-
-Almost everything in Source/WebCore/generated was not build with
--fvisibility=hidden resulting into redundantly polluted and huge dynamic symbol
-list in libQtWebKit.so.
-
-Therefore, move +hide_symbols configuration parameter upwards in order for it
-to cover everything including the offending Source/WebCore/CodeGenerators.pri
-
---- a/Source/QtWebKit.pro 2012-12-18 19:04:43.000000000 +0000
-+++ b/Source/QtWebKit.pro 2013-01-28 08:25:56.342911517 +0000
-@@ -7,6 +7,11 @@
- TEMPLATE = subdirs
- CONFIG += ordered
-
-+CONFIG(release):!CONFIG(standalone_package) {
-+ contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
-+ unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
-+}
-+
- api.file = api.pri
- SUBDIRS += api
-