!1 qt5-qtwebkit: Package init

Merge pull request !1 from gnaygnil/master
This commit is contained in:
openeuler-ci-bot 2020-03-06 17:53:07 +08:00 committed by Gitee
commit 332c8b411a
12 changed files with 629 additions and 75 deletions

View File

@ -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

View File

@ -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

View File

@ -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) \

View File

@ -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

View File

@ -1,36 +0,0 @@
# qt5-qtwebkit
#### Description
{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
#### Software Architecture
Software architecture description
#### Installation
1. xxxx
2. xxxx
3. xxxx
#### Instructions
1. xxxx
2. xxxx
3. xxxx
#### Contribution
1. Fork the repository
2. Create Feat_xxx branch
3. Commit your code
4. Create Pull Request
#### Gitee Feature
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
4. The most valuable open source project [GVP](https://gitee.com/gvp)
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

View File

@ -1,39 +0,0 @@
# qt5-qtwebkit
#### 介绍
{**以下是码云平台说明,您可以替换此简介**
码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN。专为开发者提供稳定、高效、安全的云端软件开发协作平台
无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
#### 软件架构
软件架构说明
#### 安装教程
1. xxxx
2. xxxx
3. xxxx
#### 使用说明
1. xxxx
2. xxxx
3. xxxx
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 码云特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

View File

@ -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();
}

133
qt5-qtwebkit.spec Normal file
View File

@ -0,0 +1,133 @@
Name: qt5-qtwebkit
Version: 5.212.0
Release: 1
Summary: QtWebKit components
License: LGPLv2 and BSD
URL: https://github.com/annulen/webkit
Source0: https://github.com/qtwebkit/qtwebkit/releases/download/qtwebkit-5.212.0-alpha2/qtwebkit-%{version}-alpha2.tar.xz
Patch0000: qt5-qtwebkit-5.212.0-alpha2-fix-pagewidth.patch
Patch0001: qtwebkit-5.212.0-alpha2-fix-null-pointer-dereference.patch
Patch0002: qtwebkit-5.212.0_cmake_cmp0071.patch
Patch0003: qtwebkit-5.212.0_fix_missing_sources.patch
Patch0004: 0016-cmake-Import-ECMEnableSanitizers.patch
Patch0005: 0031-Disable-ES6-Proxy-object.patch
Patch0006: 0111-ECM-Update-ECMGeneratePkgConfigFile-to-latest-versio.patch
Patch0007: 0012-cmake-Fix-include-dir-in-the-generated-pkg-config-fi.patch
BuildRequires: bison cmake flex pkgconfig(fontconfig) pkgconfig(gio-2.0) pkgconfig(glib-2.0)
BuildRequires: gperf pkgconfig(gstreamer-1.0) pkgconfig(gstreamer-app-1.0) hyphen-devel
BuildRequires: pkgconfig(icu-i18n) pkgconfig(icu-uc) libjpeg-devel pkgconfig(libpng)
BuildRequires: pkgconfig(libwebp) pkgconfig(xcomposite) pkgconfig(xrender) pkgconfig(libxslt)
BuildRequires: pkgconfig(gl) pkgconfig(gstreamer-gl-1.0) pkgconfig(gstreamer-mpegts-1.0)
BuildRequires: perl-generators python2 qt5-qtbase-devel pkgconfig(Qt5Quick)
BuildRequires: pkgconfig(Qt5Location) pkgconfig(Qt5Sensors) pkgconfig(Qt5WebChannel)
BuildRequires: pkgconfig(ruby) rubygems pkgconfig(sqlite3) pkgconfig(zlib)
BuildRequires: qt5-qtbase-private-devel qt5-qtdeclarative-private-devel
%{?_qt5:Requires: %{_qt5} = %{_qt5_version}}
%{?_qt5:Requires: qt5-qtdeclarative = %{_qt5_version}}
%global __provides_exclude_from ^%{_qt5_archdatadir}/qml/.*\\.so$
Provides: bundled(angle) bundled(brotli) bundled(woff2)
%description
WebKit is an open source web browser engine.
WebKit's HTML and JavaScript code began as a branch of the KHTML and KJS libraries from KDE.
As part of KDE framework KHTML was based on Qt
but during their porting efforts Apple's engineers made WebKit toolkit independent.
QtWebKit is a project aiming at porting this fabulous engine back to Qt.
%package devel
Summary: Development files for qt5-qtwebkit
Requires: qt5-qtwebkit = %{version}-%{release} qt5-qtbase-devel qt5-qtdeclarative-devel
%description devel
Development files for qt5-qtwebkit.
%package help
Summary: API documentation for qt5-qtwebkit
BuildRequires: qt5-qdoc qt5-qhelpgenerator
BuildArch: noarch
Provides: qt5-qtwebkit-doc = %{version}-%{release}
Obsoletes: qt5-qtwebkit-doc < %{version}-%{release}
%description help
API documentation for qt5-qtwebkit.
%prep
%autosetup -p1 -n qtwebkit-%{version}-alpha2
%build
export CFLAGS="${CFLAGS:-%optflags}"
export CXXFLAGS="${CXXFLAGS:-%optflags} -fpermissive"
export QT_VERSION_TAG=52120
export QT_VER=5.212.0
export QT_VERSION=5.212.0
export QT_INSTALL_DOCS=/usr/share/doc/qt5
export BUILDDIR=./
%{?__global_ldflags:export LDFLAGS="${LDFLAGS:-%__global_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 \
-DGENERATE_DOCUMENTATION=ON \
.
%make_build
%make_build docs
%install
export QT_VERSION_TAG=52120
export QT_VER=5.212.0
export QT_VERSION=5.212.0
export QT_INSTALL_DOCS=/usr/share/doc/qt5
export BUILDDIR=./
%make_install
%delete_la
sed -i "s,Libs: -L%{_qt5_libdir}/qt5/../ -lQt5WebKit,Libs: -L%{_qt5_libdir} -lQt5WebKit ,g" %{buildroot}%{_libdir}/pkgconfig/Qt5WebKit.pc
sed -i "s,Libs: -L%{_qt5_libdir}/qt5/../ -lQt5WebKitWidgets,Libs: -L%{_qt5_libdir} -lQt5WebKitWidgets ,g" %{buildroot}%{_libdir}/pkgconfig/Qt5WebKitWidgets.pc
mkdir -p _license_files
cp -p Source/JavaScriptCore/COPYING.LIB _license_files/Source.JavaScriptCore.COPYING.LIB
cp -p Source/JavaScriptCore/icu/LICENSE _license_files/Source.JavaScriptCore.icu.LICENSE
cp -p Source/ThirdParty/ANGLE/LICENSE _license_files/Source.ThirdParty.ANGLE.LICENSE
cp -p Source/ThirdParty/ANGLE/src/third_party/compiler/LICENSE _license_files/Source.ThirdParty.ANGLE.src.third_party.compiler.LICENSE
cp -p Source/ThirdParty/ANGLE/src/third_party/murmurhash/LICENSE _license_files/Source.ThirdParty.ANGLE.src.third_party.murmurhash.LICENSE
cp -p Source/WebCore/icu/LICENSE _license_files/Source.WebCore.icu.LICENSE
cp -p Source/WebCore/LICENSE-APPLE _license_files/Source.WebCore.LICENSE-APPLE
cp -p Source/WebCore/LICENSE-LGPL-2 _license_files/Source.WebCore.LICENSE-LGPL-2
cp -p Source/WebCore/LICENSE-LGPL-2.1 _license_files/Source.WebCore.LICENSE-LGPL-2.1
cp -p Source/WebInspectorUI/UserInterface/External/CodeMirror/LICENSE _license_files/Source.WebInspectorUI.UserInterface.External.CodeMirror.LICENSE
cp -p Source/WebInspectorUI/UserInterface/External/Esprima/LICENSE _license_files/Source.WebInspectorUI.UserInterface.External.Esprima.LICENSE
cp -p Source/WTF/icu/LICENSE _license_files/Source.WTF.icu.LICENSE
cp -p Source/WTF/wtf/dtoa/COPYING _license_files/Source.WTF.wtf.dtoa.COPYING
cp -p Source/WTF/wtf/dtoa/LICENSE _license_files/Source.WTF.wtf.dtoa.LICENSE
%check
export PKG_CONFIG_PATH=%{buildroot}%{_libdir}/pkgconfig
test -z "$(pkg-config --cflags Qt5WebKit | grep Qt5WebKit)"
%post
/sbin/ldconfig
%postun
/sbin/ldconfig
%files
%license LICENSE.LGPLv21 _license_files/*
%{_qt5_libdir}/*.so.5*
%{_qt5_libexecdir}/*
%{_qt5_archdatadir}/qml/QtWebKit/
%files devel
%{_qt5_headerdir}/Qt*/
%{_qt5_libdir}/libQt5*.so
%{_qt5_libdir}/cmake/Qt5*/
%{_qt5_libdir}/pkgconfig/Qt5*.pc
%{_qt5_archdatadir}/mkspecs/modules/*.pri
%files help
%{_qt5_docdir}/qtwebkit.qch
%{_qt5_docdir}/qtwebkit/
%changelog
* Fri Feb 14 2020 Ling Yang <lingyang2@huawei.com> - 5.212.0-1
- Package init

View File

@ -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

Binary file not shown.

View File

@ -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

View File

@ -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