diff --git a/0012-cmake-Fix-include-dir-in-the-generated-pkg-config-fi.patch b/0012-cmake-Fix-include-dir-in-the-generated-pkg-config-fi.patch deleted file mode 100644 index 48056e69fb4fed2fcc7f9bd0ae7eec76a31c52a0..0000000000000000000000000000000000000000 --- a/0012-cmake-Fix-include-dir-in-the-generated-pkg-config-fi.patch +++ /dev/null @@ -1,33 +0,0 @@ -From fbd1de045999d1e5b5dcae7ac6c1e674ac0044fe Mon Sep 17 00:00:00 2001 -From: Dmitry Shachnev -Date: Sat, 24 Feb 2018 15:09:53 +0300 -Subject: [PATCH 12/14] [cmake] Fix include dir in the generated pkg-config - files - ---- - Source/WebKit/PlatformQt.cmake | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/Source/WebKit/PlatformQt.cmake b/Source/WebKit/PlatformQt.cmake -index 6fe440be800..28976b611cd 100644 ---- a/Source/WebKit/PlatformQt.cmake -+++ b/Source/WebKit/PlatformQt.cmake -@@ -503,6 +503,7 @@ if (NOT MACOS_BUILD_FRAMEWORKS) - ecm_generate_pkgconfig_file( - BASE_NAME Qt5WebKit - DESCRIPTION "Qt WebKit module" -+ INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/QtWebKit" - DEPS "${WEBKIT_PKGCONGIG_DEPS}" - FILENAME_VAR WebKit_PKGCONFIG_FILENAME - ) -@@ -728,6 +729,7 @@ if (NOT MACOS_BUILD_FRAMEWORKS) - ecm_generate_pkgconfig_file( - BASE_NAME Qt5WebKitWidgets - DESCRIPTION "Qt WebKitWidgets module" -+ INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets" - DEPS "${WEBKITWIDGETS_PKGCONFIG_DEPS}" - FILENAME_VAR WebKitWidgets_PKGCONFIG_FILENAME - ) --- -2.17.1 - diff --git a/0016-cmake-Import-ECMEnableSanitizers.patch b/0016-cmake-Import-ECMEnableSanitizers.patch deleted file mode 100644 index da4d4261c0a9c88b60b954651fddcd5be11dbcef..0000000000000000000000000000000000000000 --- a/0016-cmake-Import-ECMEnableSanitizers.patch +++ /dev/null @@ -1,204 +0,0 @@ -From 4ef333ab0b60ca86e9a44cae0b77d1f752892a94 Mon Sep 17 00:00:00 2001 -From: Konstantin Tokarev -Date: Tue, 27 Jun 2017 16:34:00 +0300 -Subject: [PATCH 016/143] [cmake] Import ECMEnableSanitizers - -Change-Id: I1417511f0734e8d03bf8d55c5766b57388ed5504 ---- - Source/cmake/ECMEnableSanitizers.cmake | 173 +++++++++++++++++++++++++ - Source/cmake/OptionsQt.cmake | 1 + - 2 files changed, 174 insertions(+) - create mode 100644 Source/cmake/ECMEnableSanitizers.cmake - -diff --git a/Source/cmake/ECMEnableSanitizers.cmake b/Source/cmake/ECMEnableSanitizers.cmake -new file mode 100644 -index 00000000000..06cc0b66d86 ---- /dev/null -+++ b/Source/cmake/ECMEnableSanitizers.cmake -@@ -0,0 +1,173 @@ -+#.rst: -+# ECMEnableSanitizers -+# ------------------- -+# -+# Enable compiler sanitizer flags. -+# -+# The following sanitizers are supported: -+# -+# - Address Sanitizer -+# - Memory Sanitizer -+# - Thread Sanitizer -+# - Leak Sanitizer -+# - Undefined Behaviour Sanitizer -+# -+# All of them are implemented in Clang, depending on your version, and -+# there is an work in progress in GCC, where some of them are currently -+# implemented. -+# -+# This module will check your current compiler version to see if it -+# supports the sanitizers that you want to enable -+# -+# Usage -+# ===== -+# -+# Simply add:: -+# -+# include(ECMEnableSanitizers) -+# -+# to your ``CMakeLists.txt``. Note that this module is included in -+# KDECompilerSettings, so projects using that module do not need to also -+# include this one. -+# -+# The sanitizers are not enabled by default. Instead, you must set -+# ``ECM_ENABLE_SANITIZERS`` (either in your ``CMakeLists.txt`` or on the -+# command line) to a semicolon-separated list of sanitizers you wish to enable. -+# The options are: -+# -+# - address -+# - memory -+# - thread -+# - leak -+# - undefined -+# -+# The sanitizers "address", "memory" and "thread" are mutually exclusive. You -+# cannot enable two of them in the same build. -+# -+# "leak" requires the "address" sanitizer. -+# -+# .. note:: -+# -+# To reduce the overhead induced by the instrumentation of the sanitizers, it -+# is advised to enable compiler optimizations (``-O1`` or higher). -+# -+# Example -+# ======= -+# -+# This is an example of usage:: -+# -+# mkdir build -+# cd build -+# cmake -DECM_ENABLE_SANITIZERS='address;leak;undefined' .. -+# -+# .. note:: -+# -+# Most of the sanitizers will require Clang. To enable it, use:: -+# -+# -DCMAKE_CXX_COMPILER=clang++ -+# -+# Since 1.3.0. -+ -+#============================================================================= -+# Copyright 2014 Mathieu Tarral -+# -+# 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 copyright -+# notice, this list of conditions and the following disclaimer. -+# 2. Redistributions in binary form must reproduce the copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# 3. The name of the author may not be used to endorse or promote products -+# derived from this software without specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. -+ -+# MACRO check_compiler_version -+#----------------------------- -+macro (check_compiler_version gcc_required_version clang_required_version) -+ if ( -+ ( -+ CMAKE_CXX_COMPILER_ID MATCHES "GNU" -+ AND -+ CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${gcc_required_version} -+ ) -+ OR -+ ( -+ CMAKE_CXX_COMPILER_ID MATCHES "Clang" -+ AND -+ CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${clang_required_version} -+ ) -+ ) -+ # error ! -+ message(FATAL_ERROR "You ask to enable the sanitizer ${CUR_SANITIZER}, -+ but your compiler ${CMAKE_CXX_COMPILER_ID} version ${CMAKE_CXX_COMPILER_VERSION} -+ does not support it ! -+ You should use at least GCC ${gcc_required_version} or Clang ${clang_required_version} -+ (99.99 means not implemented yet)") -+ endif () -+endmacro () -+ -+# MACRO check_compiler_support -+#------------------------------ -+macro (enable_sanitizer_flags sanitize_option) -+ if (${sanitize_option} MATCHES "address") -+ check_compiler_version("4.8" "3.1") -+ set(XSAN_COMPILE_FLAGS "-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls") -+ set(XSAN_LINKER_FLAGS "asan") -+ elseif (${sanitize_option} MATCHES "thread") -+ check_compiler_version("4.8" "3.1") -+ set(XSAN_COMPILE_FLAGS "-fsanitize=thread") -+ set(XSAN_LINKER_FLAGS "tsan") -+ elseif (${sanitize_option} MATCHES "memory") -+ check_compiler_version("99.99" "3.1") -+ set(XSAN_COMPILE_FLAGS "-fsanitize=memory") -+ elseif (${sanitize_option} MATCHES "leak") -+ check_compiler_version("4.9" "3.4") -+ set(XSAN_COMPILE_FLAGS "-fsanitize=leak") -+ set(XSAN_LINKER_FLAGS "lsan") -+ elseif (${sanitize_option} MATCHES "undefined") -+ check_compiler_version("4.9" "3.1") -+ set(XSAN_COMPILE_FLAGS "-fsanitize=undefined -fno-omit-frame-pointer -fno-optimize-sibling-calls") -+ else () -+ message(FATAL_ERROR "Compiler sanitizer option \"${sanitize_option}\" not supported.") -+ endif () -+endmacro () -+ -+if (ECM_ENABLE_SANITIZERS) -+ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") -+ # for each element of the ECM_ENABLE_SANITIZERS list -+ foreach ( CUR_SANITIZER ${ECM_ENABLE_SANITIZERS} ) -+ # lowercase filter -+ string(TOLOWER ${CUR_SANITIZER} CUR_SANITIZER) -+ # check option and enable appropriate flags -+ enable_sanitizer_flags ( ${CUR_SANITIZER} ) -+ # TODO: GCC will not link pthread library if enabled ASan -+ if(CMAKE_C_COMPILER_ID MATCHES "Clang") -+ set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${XSAN_COMPILE_FLAGS}" ) -+ endif() -+ set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${XSAN_COMPILE_FLAGS}" ) -+ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") -+ link_libraries(${XSAN_LINKER_FLAGS}) -+ endif() -+ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") -+ string(REPLACE "-Wl,--no-undefined" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}") -+ string(REPLACE "-Wl,--no-undefined" "" CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}") -+ endif () -+ endforeach() -+ else() -+ message(STATUS "Tried to enable sanitizers (-DECM_ENABLE_SANITIZERS=${ECM_ENABLE_SANITIZERS}), \ -+but compiler (${CMAKE_CXX_COMPILER_ID}) does not have sanitizer support") -+ endif() -+endif() -diff --git a/Source/cmake/OptionsQt.cmake b/Source/cmake/OptionsQt.cmake -index 463a091c787..0835e47aa72 100644 ---- a/Source/cmake/OptionsQt.cmake -+++ b/Source/cmake/OptionsQt.cmake -@@ -1,4 +1,5 @@ - include(FeatureSummary) -+include(ECMEnableSanitizers) - include(ECMPackageConfigHelpers) - - set(ECM_MODULE_DIR ${CMAKE_MODULE_PATH}) --- -2.17.1 - diff --git a/0031-Disable-ES6-Proxy-object.patch b/0031-Disable-ES6-Proxy-object.patch deleted file mode 100644 index bd2d57ede8ce92b1a4669736740079a9cf865144..0000000000000000000000000000000000000000 --- a/0031-Disable-ES6-Proxy-object.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 5648446933f52fe479d0a9006f6393a81a790116 Mon Sep 17 00:00:00 2001 -From: Konstantin Tokarev -Date: Thu, 25 May 2017 00:49:22 +0300 -Subject: [PATCH 031/143] Disable ES6 Proxy object - -Change-Id: Ifd6404e254b242afa8dd563c03f9588b4b05ab93 ---- - Source/JavaScriptCore/runtime/JSGlobalObject.cpp | 3 + - 91 files changed, 17 insertions(+), 1379 deletions(-) -diff --git a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp b/Source/JavaScriptCore/runtime/JSGlobalObject.cpp -index 9e613a21215..7d57590b4c5 100644 ---- a/Source/JavaScriptCore/runtime/JSGlobalObject.cpp -+++ b/Source/JavaScriptCore/runtime/JSGlobalObject.cpp -@@ -458,7 +458,10 @@ m_ ## lowerName ## Prototype->putDirectWithoutTransition(vm, vm.propertyNames->c - putDirectWithoutTransition(vm, vm.propertyNames->TypeError, m_typeErrorConstructor.get(), DontEnum); - putDirectWithoutTransition(vm, vm.propertyNames->URIError, m_URIErrorConstructor.get(), DontEnum); - -+#if !PLATFORM(QT) -+ // Disable ES6 Proxy because our implementation is not compliant with what real world code expects - putDirectWithoutTransition(vm, vm.propertyNames->Proxy, ProxyConstructor::create(vm, ProxyConstructor::createStructure(vm, this, m_functionPrototype.get())), DontEnum); -+#endif - - - #define PUT_CONSTRUCTOR_FOR_SIMPLE_TYPE(capitalName, lowerName, properName, instanceType, jsName) \ diff --git a/0111-ECM-Update-ECMGeneratePkgConfigFile-to-latest-versio.patch b/0111-ECM-Update-ECMGeneratePkgConfigFile-to-latest-versio.patch deleted file mode 100644 index 9b5c02de7e38ffe4977b0ab4924f555061e840d8..0000000000000000000000000000000000000000 --- a/0111-ECM-Update-ECMGeneratePkgConfigFile-to-latest-versio.patch +++ /dev/null @@ -1,156 +0,0 @@ -From 0325d51c4a2a05fb11b93f0c99d1d08976aac47d Mon Sep 17 00:00:00 2001 -From: Konstantin Tokarev -Date: Thu, 28 Dec 2017 02:22:58 +0300 -Subject: [PATCH 111/143] [ECM] Update ECMGeneratePkgConfigFile to latest - version, fill in DESCRIPTION - -Change-Id: Ib9252a02badeb2be4d8da74c9ab38195ded92afd ---- - Source/WebKit/PlatformQt.cmake | 2 + - Source/cmake/ECMGeneratePkgConfigFile.cmake | 60 ++++++++++++++++----- - 2 files changed, 50 insertions(+), 12 deletions(-) - -diff --git a/Source/WebKit/PlatformQt.cmake b/Source/WebKit/PlatformQt.cmake -index cf5f3670040..909efc00dba 100644 ---- a/Source/WebKit/PlatformQt.cmake -+++ b/Source/WebKit/PlatformQt.cmake -@@ -502,6 +502,7 @@ endif () - if (NOT MACOS_BUILD_FRAMEWORKS) - ecm_generate_pkgconfig_file( - BASE_NAME Qt5WebKit -+ DESCRIPTION "Qt WebKit module" - DEPS "${WEBKIT_PKGCONGIG_DEPS}" - FILENAME_VAR WebKit_PKGCONFIG_FILENAME - ) -@@ -726,6 +727,7 @@ install( - if (NOT MACOS_BUILD_FRAMEWORKS) - ecm_generate_pkgconfig_file( - BASE_NAME Qt5WebKitWidgets -+ DESCRIPTION "Qt WebKitWidgets module" - DEPS "${WEBKITWIDGETS_PKGCONFIG_DEPS}" - FILENAME_VAR WebKitWidgets_PKGCONFIG_FILENAME - ) -diff --git a/Source/cmake/ECMGeneratePkgConfigFile.cmake b/Source/cmake/ECMGeneratePkgConfigFile.cmake -index b4e68663038..09d7e2b476d 100644 ---- a/Source/cmake/ECMGeneratePkgConfigFile.cmake -+++ b/Source/cmake/ECMGeneratePkgConfigFile.cmake -@@ -16,6 +16,7 @@ - # [INCLUDE_INSTALL_DIR ] - # [LIB_INSTALL_DIR ] - # [DEFINES -D...] -+# [DESCRIPTION ] - # [INSTALL]) - # - # ``BASE_NAME`` is the name of the module. It's the name projects will use to -@@ -42,6 +43,10 @@ - # ``DEFINES`` is a list of preprocessor defines that it is recommended users of - # the library pass to the compiler when using it. - # -+# ``DESCRIPTION`` describes what this library is. If it's not specified, CMake -+# will first try to get the description from the metainfo.yaml file or will -+# create one based on ``LIB_NAME``. -+# - # ``INSTALL`` will cause the module to be installed to the ``pkgconfig`` - # subdirectory of ``LIB_INSTALL_DIR``, unless the ``ECM_PKGCONFIG_INSTALL_DIR`` - # cache variable is set to something different. Note that the first call to -@@ -66,24 +71,39 @@ - # ) - # - # Since 1.3.0. -+# ``DESCRIPTION`` available since 5.1.41 -+# - - #============================================================================= - # Copyright 2014 Aleix Pol Gonzalez - # Copyright 2014 David Faure - # --# Distributed under the OSI-approved BSD License (the "License"); --# see accompanying file COPYING-CMAKE-SCRIPTS for details. --# --# This software is distributed WITHOUT ANY WARRANTY; without even the --# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. --# See the License for more information. --#============================================================================= --# (To distribute this file outside of extra-cmake-modules, substitute the full --# License text for the above reference.) -+# 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 copyright -+# notice, this list of conditions and the following disclaimer. -+# 2. Redistributions in binary form must reproduce the copyright -+# notice, this list of conditions and the following disclaimer in the -+# documentation and/or other materials provided with the distribution. -+# 3. The name of the author may not be used to endorse or promote products -+# derived from this software without specific prior written permission. -+# -+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. - - function(ECM_GENERATE_PKGCONFIG_FILE) - set(options INSTALL) -- set(oneValueArgs BASE_NAME LIB_NAME FILENAME_VAR INCLUDE_INSTALL_DIR LIB_INSTALL_DIR) -+ set(oneValueArgs BASE_NAME LIB_NAME FILENAME_VAR INCLUDE_INSTALL_DIR LIB_INSTALL_DIR DESCRIPTION) - set(multiValueArgs DEPS DEFINES) - - cmake_parse_arguments(EGPF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) -@@ -119,6 +139,17 @@ function(ECM_GENERATE_PKGCONFIG_FILE) - set(EGPF_LIB_INSTALL_DIR "lib") - endif() - endif() -+ if(NOT EGPF_DESCRIPTION) -+ if(EXISTS ${CMAKE_SOURCE_DIR}/metainfo.yaml) -+ file(STRINGS "${CMAKE_SOURCE_DIR}/metainfo.yaml" _EGPF_METAINFO_DESCRIPTION_STRING REGEX "^description:.*$") -+ if(_EGPF_METAINFO_DESCRIPTION_STRING) -+ string(REGEX REPLACE "^description:[ ]*(.*)" "\\1" EGPF_DESCRIPTION ${_EGPF_METAINFO_DESCRIPTION_STRING}) -+ endif() -+ endif() -+ if("${EGPF_DESCRIPTION}" STREQUAL "") -+ set(EGPF_DESCRIPTION "${EGPF_LIB_NAME} library.") -+ endif() -+ endif() - - set(PKGCONFIG_TARGET_BASENAME ${EGPF_BASE_NAME}) - set(PKGCONFIG_TARGET_LIBNAME ${EGPF_LIB_NAME}) -@@ -135,6 +166,7 @@ function(ECM_GENERATE_PKGCONFIG_FILE) - else() - set(PKGCONFIG_TARGET_LIBS "${CMAKE_INSTALL_PREFIX}/${EGPF_LIB_INSTALL_DIR}") - endif() -+ set(PKGCONFIG_TARGET_DESCRIPTION "${EGPF_DESCRIPTION}") - set(PKGCONFIG_TARGET_DEFINES "") - if(EGPF_DEFINES) - set(PKGCONFIG_TARGET_DEFINES "${EGPF_DEFINE}") -@@ -148,6 +180,7 @@ function(ECM_GENERATE_PKGCONFIG_FILE) - file(WRITE ${PKGCONFIG_FILENAME} - " - Name: ${PKGCONFIG_TARGET_LIBNAME} -+Description: ${PKGCONFIG_TARGET_DESCRIPTION} - Version: ${PROJECT_VERSION} - Libs: -L${CMAKE_INSTALL_PREFIX}/${EGPF_LIB_INSTALL_DIR} -l${PKGCONFIG_TARGET_LIBNAME} - Cflags: ${PKGCONFIG_TARGET_INCLUDES} ${PKGCONFIG_TARGET_DEFINES} -@@ -156,8 +189,11 @@ Requires: ${PKGCONFIG_TARGET_DEPS} - ) - - if(EGPF_INSTALL) -- set(ECM_PKGCONFIG_INSTALL_DIR "${EGPF_LIB_INSTALL_DIR}/pkgconfig" CACHE PATH "The directory where pkgconfig will be installed to.") -+ if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") -+ set(ECM_PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/libdata/pkgconfig" CACHE PATH "The directory where pkgconfig will be installed to.") -+ else() -+ set(ECM_PKGCONFIG_INSTALL_DIR "${EGPF_LIB_INSTALL_DIR}/pkgconfig" CACHE PATH "The directory where pkgconfig will be installed to.") -+ endif() - install(FILES ${PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR}) - endif() - endfunction() -- --- -2.17.1 - diff --git a/Fix-build-with-icu-65.1.patch b/Fix-build-with-icu-65.1.patch deleted file mode 100644 index 5abf741998ac722f0afac9dac140f2da9442ea00..0000000000000000000000000000000000000000 --- a/Fix-build-with-icu-65.1.patch +++ /dev/null @@ -1,55 +0,0 @@ -From dc02ec4080010e33b737db6491d71d6bb961a77d Mon Sep 17 00:00:00 2001 -From: "commit-queue@webkit.org" - -Date: Fri, 4 Oct 2019 21:51:37 +0000 -Subject: [PATCH] Fix build with icu 65.1 - https://bugs.webkit.org/show_bug.cgi?id=202600 - -Patch by Heiko Becker on 2019-10-04 -Reviewed by Konstantin Tokarev. - -Source/WebCore: - -* dom/Document.cpp: -(WebCore::isValidNameNonASCII): -(WebCore::Document::parseQualifiedName): - -Source/WTF: - -* wtf/URLHelpers.cpp: -(WTF::URLHelpers::allCharactersInIDNScriptWhiteList): - -Change-Id: I1b087322cbae43fbe155facdf933717ac8569b6c -git-svn-id: http://svn.webkit.org/repository/webkit/trunk@250747 268f45cc-cd09-0410-ab3c-d52691b4dbfc ---- - Source/WebCore/dom/Document.cpp | 6 +++--- - 1 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp -index 1bca2d0a66f8..19355f166019 100644 ---- a/Source/WebCore/dom/Document.cpp -+++ b/Source/WebCore/dom/Document.cpp -@@ -4407,12 +4407,12 @@ static bool isValidNameNonASCII(const UChar* characters, unsigned length) - unsigned i = 0; - - UChar32 c; -- U16_NEXT(characters, i, length, c) -+ U16_NEXT(characters, i, length, c); - if (!isValidNameStart(c)) - return false; - - while (i < length) { -- U16_NEXT(characters, i, length, c) -+ U16_NEXT(characters, i, length, c); - if (!isValidNamePart(c)) - return false; - } -@@ -4474,7 +4474,7 @@ bool Document::parseQualifiedName(const String& qualifiedName, String& prefix, S - - for (unsigned i = 0; i < length;) { - UChar32 c; -- U16_NEXT(qualifiedName, i, length, c) -+ U16_NEXT(qualifiedName, i, length, c); - if (c == ':') { - if (sawColon) { - ec = NAMESPACE_ERR; diff --git a/fix_build_with_bison.patch b/fix_build_with_bison.patch new file mode 100644 index 0000000000000000000000000000000000000000..de3bbcfc3ef192652a78c0ce52235dfc339bf41d --- /dev/null +++ b/fix_build_with_bison.patch @@ -0,0 +1,46 @@ +From d92b11fea65364fefa700249bd3340e0cd4c5b31 Mon Sep 17 00:00:00 2001 +From: Dmitry Shachnev +Date: Tue, 4 Aug 2020 21:04:06 +0300 +Subject: [PATCH] Let Bison generate the header directly, to fix build with + Bison 3.7 + +Starting with Bison 3.7, the generated C++ file #include's the header +by default, instead of duplicating it. So we should not delete it. + +Remove the code to add #ifdef guards to the header, since Bison adds +them itself since version 2.6.3. +--- + Source/WebCore/css/makegrammar.pl | 21 +-------------------- + 1 file changed, 1 insertion(+), 20 deletions(-) + +diff --git a/Source/WebCore/css/makegrammar.pl b/Source/WebCore/css/makegrammar.pl +index 5d63b08102eb..9435701c7061 100644 +--- a/Source/WebCore/css/makegrammar.pl ++++ b/Source/WebCore/css/makegrammar.pl +@@ -73,25 +73,6 @@ + } + + my $fileBase = File::Spec->join($outputDir, $filename); +-my @bisonCommand = ($bison, "-d", "-p", $symbolsPrefix, $grammarFilePath, "-o", "$fileBase.cpp"); ++my @bisonCommand = ($bison, "--defines=$fileBase.h", "-p", $symbolsPrefix, $grammarFilePath, "-o", "$fileBase.cpp"); + push @bisonCommand, "--no-lines" if $^O eq "MSWin32"; # Work around bug in bison >= 3.0 on Windows where it puts backslashes into #line directives. + system(@bisonCommand) == 0 or die; +- +-open HEADER, ">$fileBase.h" or die; +-print HEADER << "EOF"; +-#ifndef CSSGRAMMAR_H +-#define CSSGRAMMAR_H +-EOF +- +-open HPP, "<$fileBase.cpp.h" or open HPP, "<$fileBase.hpp" or die; +-while () { +- print HEADER; +-} +-close HPP; +- +-print HEADER "#endif\n"; +-close HEADER; +- +-unlink("$fileBase.cpp.h"); +-unlink("$fileBase.hpp"); +- diff --git a/qt5-qtwebkit-5.212.0-alpha2-fix-pagewidth.patch b/qt5-qtwebkit-5.212.0-alpha2-fix-pagewidth.patch deleted file mode 100644 index 0837b9105be5009cee8d51d1a876c36a27060de0..0000000000000000000000000000000000000000 --- a/qt5-qtwebkit-5.212.0-alpha2-fix-pagewidth.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur qtwebkit/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp qtwebkit.new/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp ---- qtwebkit/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp 2017-10-23 17:25:58.941518553 +0200 -+++ qtwebkit.new/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp 2017-10-23 17:27:44.223917497 +0200 -@@ -961,6 +961,8 @@ - FrameView* view = frame->view(); - ASSERT(view); - view->resize(size); -+ if (view->needsLayout()) -+ view->layout(); - view->adjustViewSize(); - } - diff --git a/qt5-qtwebkit.spec b/qt5-qtwebkit.spec index 376f08870e15f392c55867baf9a902844435d7dc..d94a77c29a0af495ca49c96c1d03e7432e15fb54 100644 --- a/qt5-qtwebkit.spec +++ b/qt5-qtwebkit.spec @@ -1,83 +1,187 @@ %undefine _annotated_build -%global _hardened_build 1 -%global add_to_license_files() mkdir -p _license_files ; cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') -%global __provides_exclude_from ^%{_qt5_archdatadir}/qml/.*\\.so$ -Name: qt5-qtwebkit +%global qt_module qtwebkit + +%global _hardened_build 1 + +%global prerel alpha4 +%global prerel_tag -%{prerel} + +## 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: qt5-%{qt_module} Version: 5.212.0 -Release: 3 -Summary: QtWebKit components of Qt5 +Release: 4 +Summary: Qt5 - QtWebKit components + License: LGPLv2 and BSD -URL: https://github.com/annulen/webkit -Source0: https://github.com/annulen/webkit/releases/download/qtwebkit-%{version}-alpha2/qtwebkit-%{version}-alpha2.tar.xz - -BuildRequires: bison cmake flex pkgconfig(fontconfig) pkgconfig(gio-2.0) pkgconfig(glib-2.0) gperf -BuildRequires: pkgconfig(gstreamer-1.0) pkgconfig(gstreamer-app-1.0) hyphen-devel pkgconfig(icu-i18n) -BuildRequires: pkgconfig(icu-uc) libjpeg-devel pkgconfig(libpng) pkgconfig(libwebp) pkgconfig(xcomposite) -BuildRequires: pkgconfig(xrender) pkgconfig(libxslt) pkgconfig(gl) pkgconfig(gstreamer-gl-1.0) -BuildRequires: pkgconfig(gstreamer-mpegts-1.0) perl-generators python2 qt5-qtbase-devel findutils -BuildRequires: qt5-qtdeclarative-devel pkgconfig(ruby) rubygems pkgconfig(sqlite3) pkgconfig(zlib) -BuildRequires: qt5-qtbase-private-devel qt5-qtdeclarative-private-devel +URL: https://github.com/qtwebkit/qtwebkit +Source0: https://github.com/qtwebkit/qtwebkit/releases/download/%{qt_module}-%{version}%{?prerel_tag}/%{qt_module}-%{version}%{?prerel_tag}.tar.xz + +# Patch for new CMake policy CMP0071 to explicitly use old behaviour. +Patch2: qtwebkit-5.212.0_cmake_cmp0071.patch +Patch3: fix_build_with_bison.patch + +BuildRequires: bison +BuildRequires: cmake +BuildRequires: flex +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(libwoff2dec) +BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: gperf +BuildRequires: pkgconfig(gstreamer-1.0) +BuildRequires: pkgconfig(gstreamer-app-1.0) +BuildRequires: hyphen-devel +BuildRequires: pkgconfig(icu-i18n) pkgconfig(icu-uc) +BuildRequires: libjpeg-devel +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libwebp) +BuildRequires: pkgconfig(xcomposite) +BuildRequires: pkgconfig(xrender) +BuildRequires: pkgconfig(libxslt) +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(gstreamer-gl-1.0) +BuildRequires: pkgconfig(gstreamer-mpegts-1.0) +BuildRequires: perl-generators +BuildRequires: perl(File::Copy) +BuildRequires: python3 +BuildRequires: qt5-qtbase-devel +BuildRequires: qt5-qtdeclarative-devel %if ! 0%{?bootstrap} -BuildRequires: qt5-qtlocation-devel qt5-qtsensors-devel qt5-qtwebchannel-devel -Provides: bundled(angle) bundled(brotli) bundled(woff2) +BuildRequires: qt5-qtlocation-devel +BuildRequires: qt5-qtsensors-devel +BuildRequires: qt5-qtwebchannel-devel %endif -%{?_qt5:Requires: %{_qt5} = %{_qt5_version}} -%{?_qt5:Requires: qt5-qtdeclarative = %{_qt5_version}} - -# Upstream patch to fix pagewidth issue with trojita -# https://github.com/annulen/webkit/issues/511 -# https://github.com/annulen/webkit/commit/6faf11215e1af27d35e921ae669aa0251a01a1ab -# https://github.com/annulen/webkit/commit/76420459a13d9440b41864c93cb4ebb404bdab55 -Patch0000: qt5-qtwebkit-5.212.0-alpha2-fix-pagewidth.patch -# Patch from Kevin Kofler to fix https://github.com/annulen/webkit/issues/573 -Patch0001: qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference.patch -# Patch for new CMake policy CMP0071 to explicitly use old behaviour. -Patch0002: qtwebkit-5.212.0_cmake_cmp0071.patch -# Patch to fix for missing source file. -Patch0003: qtwebkit-5.212.0_fix_missing_sources.patch -## upstream patches (qtwebkit-5.212 branch) -Patch0004: 0016-cmake-Import-ECMEnableSanitizers.patch -# disable ES6 Proxy -Patch0005: 0031-Disable-ES6-Proxy-object.patch -# ECM Update ECMGeneratePkgConfigFile to latest versio -Patch0006: 0111-ECM-Update-ECMGeneratePkgConfigFile-to-latest-versio.patch -## upstream patches (qtwebkit-stable branch) -Patch0007: 0012-cmake-Fix-include-dir-in-the-generated-pkg-config-fi.patch -## Fix build with icu 65.1 -Patch0008: Fix-build-with-icu-65.1.patch +BuildRequires: pkgconfig(ruby) +BuildRequires: rubygems +BuildRequires: pkgconfig(sqlite3) +BuildRequires: pkgconfig(zlib) +# workaround bad embedded png files, https://bugzilla.redhat.com/1639422 +BuildRequires: findutils +BuildRequires: pngcrush + +BuildRequires: qt5-qtbase-private-devel +%{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}} +BuildRequires: qt5-qtdeclarative-private-devel +%{?_qt5:Requires: qt5-qtdeclarative%{?_isa} = %{_qt5_version}} + + +# filter qml provides +%global __provides_exclude_from ^%{_qt5_archdatadir}/qml/.*\\.so$ + +# 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) %description -QtWebKit components of Qt5. +%{summary} %package devel -Summary: Development files for qt5-qtwebkit -Requires: qt5-qtwebkit = %{version}-%{release} -Requires: qt5-qtbase-devel -Requires: qt5-qtdeclarative-devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: qt5-qtbase-devel%{?_isa} +Requires: qt5-qtdeclarative-devel%{?_isa} %description devel -Development files for qt5-qtwebkit. +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%if 0%{?docs} +%package doc +Summary: API documentation for %{name} +BuildRequires: qt5-qdoc +BuildRequires: qt5-qhelpgenerator +BuildArch: noarch + +%description doc +%{summary}. +%endif + %prep -%autosetup -n qtwebkit-%{version}-alpha2 -p1 +%autosetup -p1 -n %{qt_module}-%{version}%{?prerel_tag} + +# find/fix pngs with "libpng warning: iCCP: known incorrect sRGB profile" +find -name \*.png | xargs -n1 pngcrush -ow -fix + +# ppc64le failed once with +# make[2]: *** No rule to make target 'Source/WebCore/Resources/textAreaResizeCorner.png', needed by 'Source/WebKit/qrc_WebCore.cpp'. Stop. test -f Source/WebCore/Resources/textAreaResizeCorner.png + %build +# The following changes of optflags ietc. are adapted from webkitgtk4 package, which +# is mostly similar to this one... +# +# 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 +# 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 + CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; CXXFLAGS="${CXXFLAGS:-%optflags} -fpermissive" ; export CXXFLAGS ; %{?__global_ldflags:LDFLAGS="${LDFLAGS:-%__global_ldflags}" ; export LDFLAGS ;} -cmake -DPORT=Qt -DCMAKE_BUILD_TYPE=Release -DENABLE_TOOLS=OFF -DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \ - -DCMAKE_CXX_FLAGS_RELEASE:STRING="-DNDEBUG" -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON +# We cannot use default cmake macro here as it overwrites some settings queried +# by qtwebkit cmake from qmake +cmake . \ + -DPORT=Qt \ + -DCMAKE_BUILD_TYPE=Release \ + -DENABLE_TOOLS=OFF \ + -DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \ + -DCMAKE_CXX_FLAGS_RELEASE:STRING="-DNDEBUG" \ + -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ +%ifarch s390 s390x ppc %{power64} + -DENABLE_JIT=OFF \ +%endif +%ifarch s390 s390x ppc %{power64} + -DUSE_SYSTEM_MALLOC=ON \ +%endif + %{?docs:-DGENERATE_DOCUMENTATION=ON} \ + -DPYTHON_EXECUTABLE:PATH="%{__python3}" + %make_build +%if 0%{?docs} +%make_build docs +%endif + + %install %make_install + find %{buildroot} -name '*.la' -exec rm -f {} ';' + +# fix pkgconfig files +#sed -i '/Name/a Description: Qt5 WebKit module' %{buildroot}%{_libdir}/pkgconfig/Qt5WebKit.pc +#sed -i "s,Cflags: -I%{_qt5_libdir}/qt5/../../include/qt5/Qt5WebKit,Cflags: -I%{_qt5_headerdir}/QtWebKit,g" %{buildroot}%{_libdir}/pkgconfig/Qt5WebKit.pc +# strictly speaking, this isn't *wrong*, but can made more readable, so let's do that sed -i "s,Libs: -L%{_qt5_libdir}/qt5/../ -lQt5WebKit,Libs: -L%{_qt5_libdir} -lQt5WebKit ,g" %{buildroot}%{_libdir}/pkgconfig/Qt5WebKit.pc + +#sed -i '/Name/a Description: Qt5 WebKitWidgets module' %{buildroot}%{_libdir}/pkgconfig/Qt5WebKitWidgets.pc +#sed -i "s,Cflags: -I%{_qt5_libdir}/qt5/../../include/qt5/Qt5WebKitWidgets,Cflags: -I%{_qt5_headerdir}/QtWebKitWidgets,g" %{buildroot}%{_libdir}/pkgconfig/Qt5WebKitWidgets.pc sed -i "s,Libs: -L%{_qt5_libdir}/qt5/../ -lQt5WebKitWidgets,Libs: -L%{_qt5_libdir} -lQt5WebKitWidgets ,g" %{buildroot}%{_libdir}/pkgconfig/Qt5WebKitWidgets.pc + +# 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 @@ -93,17 +197,23 @@ sed -i "s,Libs: -L%{_qt5_libdir}/qt5/../ -lQt5WebKitWidgets,Libs: -L%{_qt5_libdi %add_to_license_files Source/WTF/wtf/dtoa/COPYING %add_to_license_files Source/WTF/wtf/dtoa/LICENSE + %check +# verify Qt5WebKit cflags non-use of -I/.../Qt5WebKit export PKG_CONFIG_PATH=%{buildroot}%{_libdir}/pkgconfig test -z "$(pkg-config --cflags Qt5WebKit | grep Qt5WebKit)" -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig + +%ldconfig_scriptlets %files -%doc LICENSE.LGPLv21 _license_files/* -%{_qt5_libdir}/{libQt5WebKit.so.5*,libQt5WebKitWidgets.so.5*} -%{_qt5_libexecdir}/{QtWebDatabaseProcess,QtWebNetworkProcess,QtWebPluginProcess,QtWebProcess} +%license LICENSE.LGPLv21 _license_files/* +%{_qt5_libdir}/libQt5WebKit.so.5* +%{_qt5_libdir}/libQt5WebKitWidgets.so.5* +%{_qt5_libexecdir}/QtWebNetworkProcess +%{_qt5_libexecdir}/QtWebPluginProcess +%{_qt5_libexecdir}/QtWebProcess +%{_qt5_libexecdir}/QtWebStorageProcess %{_qt5_archdatadir}/qml/QtWebKit/ %files devel @@ -113,7 +223,18 @@ test -z "$(pkg-config --cflags Qt5WebKit | grep Qt5WebKit)" %{_qt5_libdir}/pkgconfig/Qt5*.pc %{_qt5_archdatadir}/mkspecs/modules/*.pri + +%if 0%{?docs} +%files doc +%{_qt5_docdir}/qtwebkit.qch +%{_qt5_docdir}/qtwebkit/ +%endif + + %changelog +* Thu Nov 12 2020 wutao - 5.212.0-4 +- update to alpha4 and drop python2 module + * Mon Aug 03 2020 lingsheng - 5.212.0-3 - Fix build with icu 65.1 diff --git a/qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference.patch b/qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference.patch deleted file mode 100644 index 4cf7ae4b188be2eef4b8c444e58a1750a989876c..0000000000000000000000000000000000000000 --- a/qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -ur qtwebkit-5.212.0-alpha2/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp ---- qtwebkit-5.212.0-alpha2/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp 2017-06-09 16:11:36.000000000 +0200 -+++ qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp 2017-10-24 21:44:40.504943501 +0200 -@@ -390,7 +390,10 @@ - - QString QWebPageAdapter::selectedHtml() const - { -- return page->focusController().focusedOrMainFrame().editor().selectedRange()->toHTML(); -+ RefPtr range = page->focusController().focusedOrMainFrame().editor().selectedRange(); -+ if (!range) -+ return QString(); -+ return range->toHTML(); - } - - bool QWebPageAdapter::isContentEditable() const diff --git a/qtwebkit-5.212.0-alpha2.tar.xz b/qtwebkit-5.212.0-alpha4.tar.xz similarity index 60% rename from qtwebkit-5.212.0-alpha2.tar.xz rename to qtwebkit-5.212.0-alpha4.tar.xz index a0778193c6acc592f722708c0620650eb25f9bee..d55cd7525c2efe2cc69cbfd32eb4550fac9fc0fb 100644 Binary files a/qtwebkit-5.212.0-alpha2.tar.xz and b/qtwebkit-5.212.0-alpha4.tar.xz differ diff --git a/qtwebkit-5.212.0_fix_missing_sources.patch b/qtwebkit-5.212.0_fix_missing_sources.patch deleted file mode 100644 index ca372a2b3c8e0afd4000a12a678c082753b5ab4f..0000000000000000000000000000000000000000 --- a/qtwebkit-5.212.0_fix_missing_sources.patch +++ /dev/null @@ -1,20 +0,0 @@ -Index: qtwebkit-5.212.0-alpha2/Source/WebKit/PlatformQt.cmake -=================================================================== ---- qtwebkit-5.212.0-alpha2.orig/Source/WebKit/PlatformQt.cmake -+++ qtwebkit-5.212.0-alpha2/Source/WebKit/PlatformQt.cmake -@@ -786,6 +786,7 @@ if (COMPILER_IS_GCC_OR_CLANG) - set_source_files_properties( - qt/Api/qwebdatabase.cpp - qt/Api/qwebelement.cpp -+ qt/Api/qwebfullscreenrequest.cpp - qt/Api/qwebhistory.cpp - qt/Api/qwebhistoryinterface.cpp - qt/Api/qwebpluginfactory.cpp -@@ -795,7 +796,6 @@ if (COMPILER_IS_GCC_OR_CLANG) - - qt/WidgetApi/qgraphicswebview.cpp - qt/WidgetApi/qwebframe.cpp -- qt/WidgetApi/qwebfullscreenrequest.cpp - qt/WidgetApi/qwebinspector.cpp - qt/WidgetApi/qwebpage.cpp - qt/WidgetApi/qwebview.cpp