]> git.pld-linux.org Git - packages/qt5-qtwebkit.git/commitdiff
- up to 5.212.0 auto/th/qt5-qtwebkit-5.212.0-0.alpha2.1
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Sun, 12 Aug 2018 22:11:56 +0000 (00:11 +0200)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Sun, 12 Aug 2018 22:11:56 +0000 (00:11 +0200)
0012-cmake-Fix-include-dir-in-the-generated-pkg-config-fi.patch [new file with mode: 0644]
0016-cmake-Import-ECMEnableSanitizers.patch [new file with mode: 0644]
0031-Disable-ES6-Proxy-object.patch [new file with mode: 0644]
0111-ECM-Update-ECMGeneratePkgConfigFile-to-latest-versio.patch [new file with mode: 0644]
icu59.patch [deleted file]
new-char-types.patch [deleted file]
qt5-qtwebkit-5.212.0-alpha2-fix-pagewidth.patch [new file with mode: 0644]
qt5-qtwebkit.spec
qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference.patch [new file with mode: 0644]
qtwebkit-5.212.0_cmake_cmp0071.patch [new file with mode: 0644]
qtwebkit-5.212.0_fix_missing_sources.patch [new file with mode: 0644]

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
new file mode 100644 (file)
index 0000000..48056e6
--- /dev/null
@@ -0,0 +1,33 @@
+From fbd1de045999d1e5b5dcae7ac6c1e674ac0044fe Mon Sep 17 00:00:00 2001
+From: Dmitry Shachnev <mitya57@gmail.com>
+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
new file mode 100644 (file)
index 0000000..da4d426
--- /dev/null
@@ -0,0 +1,204 @@
+From 4ef333ab0b60ca86e9a44cae0b77d1f752892a94 Mon Sep 17 00:00:00 2001
+From: Konstantin Tokarev <annulen@yandex.ru>
+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 <mathieu.tarral@gmail.com>
++#
++# 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
new file mode 100644 (file)
index 0000000..bd2d57e
--- /dev/null
@@ -0,0 +1,24 @@
+From 5648446933f52fe479d0a9006f6393a81a790116 Mon Sep 17 00:00:00 2001
+From: Konstantin Tokarev <annulen@yandex.ru>
+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
new file mode 100644 (file)
index 0000000..9b5c02d
--- /dev/null
@@ -0,0 +1,156 @@
+From 0325d51c4a2a05fb11b93f0c99d1d08976aac47d Mon Sep 17 00:00:00 2001
+From: Konstantin Tokarev <annulen@yandex.ru>
+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 <dir>]
+ #                         [LIB_INSTALL_DIR <dir>]
+ #                         [DEFINES -D<variable=value>...]
++#                         [DESCRIPTION <library 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 <aleixpol@kde.org>
+ # Copyright 2014 David Faure <faure@kde.org>
+ #
+-# 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/icu59.patch b/icu59.patch
deleted file mode 100644 (file)
index a7c190e..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
---- qtwebkit-opensource-src-5.5.1/Source/JavaScriptCore/API/JSStringRef.h.orig 2015-10-13 06:37:10.000000000 +0200
-+++ qtwebkit-opensource-src-5.5.1/Source/JavaScriptCore/API/JSStringRef.h      2017-04-24 12:26:42.495345570 +0200
-@@ -32,6 +32,7 @@
- #include <stdbool.h>
- #endif
- #include <stddef.h> /* for size_t */
-+#include <uchar.h>
- #ifdef __cplusplus
- extern "C" {
-@@ -43,7 +44,7 @@
- @typedef JSChar
- @abstract A Unicode character.
- */
--    typedef unsigned short JSChar;
-+    typedef char16_t JSChar;
- #else
-     typedef wchar_t JSChar;
- #endif
---- qtwebkit-opensource-src-5.5.1/Source/WebKit2/Shared/API/c/WKString.h.orig  2015-10-13 06:37:12.000000000 +0200
-+++ qtwebkit-opensource-src-5.5.1/Source/WebKit2/Shared/API/c/WKString.h       2017-04-24 12:27:33.432011867 +0200
-@@ -31,6 +31,7 @@
- #ifndef __cplusplus
- #include <stdbool.h>
- #endif
-+#include <uchar.h>
- #ifdef __cplusplus
- extern "C" {
-@@ -38,7 +39,7 @@
- #if !defined(WIN32) && !defined(_WIN32) \
-     && !((defined(__CC_ARM) || defined(__ARMCC__)) && !defined(__linux__)) /* RVCT */
--    typedef unsigned short WKChar;
-+    typedef char16_t WKChar;
- #else
-     typedef wchar_t WKChar;
- #endif
diff --git a/new-char-types.patch b/new-char-types.patch
deleted file mode 100644 (file)
index a096203..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/Source/WTF/wtf/Compiler.h b/Source/WTF/wtf/Compiler.h
-index ead844f..e62cfd4 100644
---- a/Source/WTF/wtf/Compiler.h
-+++ b/Source/WTF/wtf/Compiler.h
-@@ -61,6 +61,7 @@
- #define WTF_COMPILER_SUPPORTS_HAS_TRIVIAL_DESTRUCTOR __has_feature(has_trivial_destructor)
- #define WTF_COMPILER_SUPPORTS_CXX_STRONG_ENUMS __has_feature(cxx_strong_enums)
- #define WTF_COMPILER_SUPPORTS_CXX_REFERENCE_QUALIFIED_FUNCTIONS __has_feature(cxx_reference_qualified_functions)
-+#define WTF_COMPILER_SUPPORTS_CXX_NEW_CHAR_TYPES !defined(_LIBCPP_HAS_NO_UNICODE_CHARS)
- #endif
-@@ -142,6 +143,7 @@
- #define WTF_COMPILER_SUPPORTS_CXX_DELETED_FUNCTIONS 1
- #endif
- #if GCC_VERSION_AT_LEAST(4, 5, 0)
-+#define WTF_COMPILER_SUPPORTS_CXX_NEW_CHAR_TYPES 1
- #define WTF_COMPILER_SUPPORTS_CXX_EXPLICIT_CONVERSIONS 1
- #endif
- #if GCC_VERSION_AT_LEAST(4, 6, 0)
-diff --git a/Source/WTF/wtf/TypeTraits.h b/Source/WTF/wtf/TypeTraits.h
-index b9e46bc..876fa45 100644
---- a/Source/WTF/wtf/TypeTraits.h
-+++ b/Source/WTF/wtf/TypeTraits.h
-@@ -75,6 +75,10 @@ namespace WTF {
- #if !COMPILER(MSVC) || defined(_NATIVE_WCHAR_T_DEFINED)
-     template<> struct IsInteger<wchar_t>            { static const bool value = true; };
- #endif
-+#if COMPILER_SUPPORTS(CXX_NEW_CHAR_TYPES)
-+    template<> struct IsInteger<char16_t>           { static const bool value = true; };
-+    template<> struct IsInteger<char32_t>           { static const bool value = true; };
-+#endif
-     template<typename T> struct IsFloatingPoint     { static const bool value = false; };
-     template<> struct IsFloatingPoint<float>        { static const bool value = true; };
diff --git a/qt5-qtwebkit-5.212.0-alpha2-fix-pagewidth.patch b/qt5-qtwebkit-5.212.0-alpha2-fix-pagewidth.patch
new file mode 100644 (file)
index 0000000..0837b91
--- /dev/null
@@ -0,0 +1,12 @@
+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();
+ }
index eac3db90e5e9f6ea312604f1f306ddb25b217a84..0c426045feff04e5c1d56117fba20e291064509a 100644 (file)
@@ -4,11 +4,12 @@
 # - system leveldb (requires memenv helper library)
 # NOTE: not splitting WebKit/WebKitWidgets, interdependencies are not clear
 # (e.g. WebProcess requires WebKitWidgets)
+# - switch to building using cmake directly, reenable doc
 #
 # Conditional build:
 %bcond_with    bootstrap       # disable features to able to build without installed qt5
 # -- build targets
-%bcond_without doc             # Documentation
+%bcond_with    doc             # Documentation
 # -- features
 %bcond_with    qtmultimedia    # QtMultimedia support
 
 %undefine      with_doc
 %endif
 
+%define                snap    alpha2
+
 %define                orgname                 qtwebkit
-%define                qtbase_ver              %{version}
-%define                qtdeclarative_ver       %{version}
-%define                qtlocation_ver          %{version}
-%define                qtmultimedia_ver        %{version}
-%define                qtsensors_ver           %{version}
-%define                qttools_ver             5.4
+%define                qtbase_ver              5.11
+%define                qtdeclarative_ver       5.11
+%define                qtlocation_ver          5.11
+%define                qtmultimedia_ver        5.11
+%define                qtsensors_ver           5.11
+%define                qttools_ver             5.11
 Summary:       The Qt5 WebKit libraries
 Summary(pl.UTF-8):     Biblioteki Qt5 WebKit
 Name:          qt5-%{orgname}
-Version:       5.8.0
-Release:       1
+Version:       5.212.0
+Release:       0.%{snap}.1
 License:       LGPL v2+
 Group:         X11/Libraries
-Source0:       http://download.qt.io/community_releases/5.8/%{version}-final/%{orgname}-opensource-src-%{version}.tar.xz
-# Source0-md5: 60a6935aca4a7c553d0ec4646ceed3b4
-Patch0:                icu59.patch
-Patch1:                new-char-types.patch
-URL:           http://www.qt.io/
+Source0:       https://github.com/annulen/webkit/archive/qtwebkit-%{version}-%{snap}.tar.gz
+# Source0-md5: 9216661f6626fe4224ac477adf8d4162
+# from FC
+Patch100:      qt5-qtwebkit-5.212.0-alpha2-fix-pagewidth.patch
+Patch101:      qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference.patch
+Patch102:      qtwebkit-5.212.0_cmake_cmp0071.patch
+Patch103:      qtwebkit-5.212.0_fix_missing_sources.patch
+Patch104:      0016-cmake-Import-ECMEnableSanitizers.patch
+Patch105:      0031-Disable-ES6-Proxy-object.patch
+Patch106:      0111-ECM-Update-ECMGeneratePkgConfigFile-to-latest-versio.patch
+Patch107:      0012-cmake-Fix-include-dir-in-the-generated-pkg-config-fi.patch
+URL:           https://github.com/annulen/webkit
 BuildRequires: OpenGL-devel
 BuildRequires: Qt5Core-devel >= %{qtbase_ver}
 BuildRequires: Qt5Gui-devel >= %{qtbase_ver}
@@ -172,9 +182,15 @@ Qt5 WebKit documentation in QCH format.
 Dokumentacja do bibliotek Qt5 WebKit w formacie QCH.
 
 %prep
-%setup -q -n %{orgname}-opensource-src-%{version}
-%patch0 -p1
-%patch1 -p1
+%setup -q -n webkit-qtwebkit-%{version}-%{snap}
+%patch100 -p1
+%patch101 -p1
+%patch102 -p1
+%patch103 -p1
+%patch104 -p1
+%patch105 -p1
+%patch106 -p1
+%patch107 -p1
 
 %build
 qmake-qt5 \
@@ -193,16 +209,11 @@ rm -rf $RPM_BUILD_ROOT
        INSTALL_ROOT=$RPM_BUILD_ROOT
 %endif
 
-# kill unnecessary -L%{_libdir} from *.la, *.prl, *.pc
+# kill unnecessary -L%{_libdir} from *.pc
 %{__sed} -i -e "s,-L%{_libdir} \?,,g" \
-       $RPM_BUILD_ROOT%{_libdir}/*.{la,prl} \
        $RPM_BUILD_ROOT%{_pkgconfigdir}/*.pc
 # kill unwanted Libs.private (containing many bogus entries) from *.pc files
 %{__sed} -i -e '/^Libs\.private/d' $RPM_BUILD_ROOT%{_pkgconfigdir}/*.pc
-# useless symlinks
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/libQt5*.so.5.?
-# actually drop *.la, follow policy of not packaging them when *.pc exist
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/libQt5*.la
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -225,13 +236,13 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/qt5/qml/QtWebKit/experimental/qmldir
 %dir %{_libdir}/qt5/libexec
 %attr(755,root,root) %{_libdir}/qt5/libexec/QtWebProcess
+%attr(755,root,root) %{_libdir}/qt5/libexec/QtWebDatabaseProcess
+%attr(755,root,root) %{_libdir}/qt5/libexec/QtWebNetworkProcess
 
 %files -n Qt5WebKit-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libQt5WebKit.so
 %attr(755,root,root) %{_libdir}/libQt5WebKitWidgets.so
-%{_libdir}/libQt5WebKit.prl
-%{_libdir}/libQt5WebKitWidgets.prl
 %{_includedir}/qt5/QtWebKit
 %{_includedir}/qt5/QtWebKitWidgets
 %{_pkgconfigdir}/Qt5WebKit.pc
@@ -239,9 +250,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/cmake/Qt5WebKit
 %{_libdir}/cmake/Qt5WebKitWidgets
 %{qt5dir}/mkspecs/modules/qt_lib_webkit.pri
-%{qt5dir}/mkspecs/modules/qt_lib_webkit_private.pri
 %{qt5dir}/mkspecs/modules/qt_lib_webkitwidgets.pri
-%{qt5dir}/mkspecs/modules/qt_lib_webkitwidgets_private.pri
 
 %if %{with doc}
 %files doc
diff --git a/qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference.patch b/qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference.patch
new file mode 100644 (file)
index 0000000..4cf7ae4
--- /dev/null
@@ -0,0 +1,15 @@
+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> range = page->focusController().focusedOrMainFrame().editor().selectedRange();
++    if (!range)
++        return QString();
++    return range->toHTML();
+ }
+ bool QWebPageAdapter::isContentEditable() const
diff --git a/qtwebkit-5.212.0_cmake_cmp0071.patch b/qtwebkit-5.212.0_cmake_cmp0071.patch
new file mode 100644 (file)
index 0000000..b42af57
--- /dev/null
@@ -0,0 +1,32 @@
+Index: qtwebkit-5.212.0-alpha2/CMakeLists.txt
+===================================================================
+--- qtwebkit-5.212.0-alpha2.orig/CMakeLists.txt
++++ qtwebkit-5.212.0-alpha2/CMakeLists.txt
+@@ -6,6 +6,11 @@ if (POLICY CMP0058)
+     cmake_policy(SET CMP0058 NEW)
+ endif ()
++# Explicitly process generated files with AUTOMOC.
++if (POLICY CMP0071)
++    cmake_policy(SET CMP0071 NEW)
++endif ()
++
+ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/Source/cmake")
+ if (NOT DEFINED ENABLE_WEBKIT)
+Index: qtwebkit-5.212.0-alpha2/Source/WebKit/CMakeLists.txt
+===================================================================
+--- qtwebkit-5.212.0-alpha2.orig/Source/WebKit/CMakeLists.txt
++++ qtwebkit-5.212.0-alpha2/Source/WebKit/CMakeLists.txt
+@@ -1,6 +1,11 @@
+ cmake_minimum_required(VERSION 2.8.12)
+ include(WebKitCommon)
++# Explicitly process generated files with AUTOMOC.
++if (POLICY CMP0071)
++    cmake_policy(SET CMP0071 NEW)
++endif ()
++
+ set(WebKit_SOURCES
+     Storage/StorageAreaImpl.cpp
+     Storage/StorageAreaSync.cpp
diff --git a/qtwebkit-5.212.0_fix_missing_sources.patch b/qtwebkit-5.212.0_fix_missing_sources.patch
new file mode 100644 (file)
index 0000000..ca372a2
--- /dev/null
@@ -0,0 +1,20 @@
+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
This page took 0.126734 seconds and 4 git commands to generate.