Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
5e83bdf873
!35 [sync] PR-34: Migrate python 2 to python 3 & Fix build on riscv64
From: @openeuler-sync-bot 
Reviewed-by: @peijiankang 
Signed-off-by: @peijiankang
2024-04-07 00:35:25 +00:00
misaka00251
d88e571a79 Migrate python 2 to python 3 & Fix build on riscv64
(cherry picked from commit f121ee5cf79d2e5492b7bec1d7caf7bde8bbdc3b)
2024-04-05 16:56:26 +08:00
openeuler-ci-bot
689d8d98c9
!32 [sync] PR-31: Fixes assembling with binutil as >= 2.41
From: @openeuler-sync-bot 
Reviewed-by: @peijiankang 
Signed-off-by: @peijiankang
2024-03-18 02:44:07 +00:00
panchenbo
93008d91d3 Backport ffmpeg: avcodec/x86/mathops: clip constants used with shift instructions within inline assembly
(cherry picked from commit 76c835e5be2f3d7cefe79c81fdfe28ee03dbd76e)
2024-03-15 13:33:32 +08:00
openeuler-ci-bot
d1b5f4a1d0
!30 add qtwebengine-icu-74.patch
From: @peijiankang 
Reviewed-by: @dou33 
Signed-off-by: @dou33
2024-02-21 02:07:13 +00:00
peijiankang
4dcc0cf08f add qtwebengine-icu-74.patch 2024-02-20 16:10:25 +08:00
openeuler-ci-bot
4e2f1cf2be
!29 CVE-2023-6112
From: @peijiankang 
Reviewed-by: @dou33 
Signed-off-by: @dou33
2024-01-30 03:27:34 +00:00
peijiankang
5631d9ba49 CVE-2023-6112 2024-01-30 09:47:35 +08:00
openeuler-ci-bot
22de4075ff
!28 LLVM平行宇宙:支持使用clang构建qt5-qtwebengine
From: @ren-yi43 
Reviewed-by: @peijiankang 
Signed-off-by: @peijiankang
2024-01-29 09:13:45 +00:00
15859157387
bcf605399e support clang compile 2023-09-20 17:16:37 +08:00
17 changed files with 38952 additions and 723 deletions

View File

@ -0,0 +1,73 @@
From 91a348ac06676ed64a230f08b80ca5f92c92c78c Mon Sep 17 00:00:00 2001
From: panchenbo <panchenbo@kylinsec.com.cn>
Date: Fri, 15 Mar 2024 10:46:46 +0800
Subject: [PATCH] ffmpeg: avcodec/x86/mathops: clip constants used with shift
instructions within inline assembly
---
.../ffmpeg/libavcodec/x86/mathops.h | 26 ++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff --git a/src/3rdparty/chromium/third_party/ffmpeg/libavcodec/x86/mathops.h b/src/3rdparty/chromium/third_party/ffmpeg/libavcodec/x86/mathops.h
index 6298f5ed1..ca7e2dffc 100644
--- a/src/3rdparty/chromium/third_party/ffmpeg/libavcodec/x86/mathops.h
+++ b/src/3rdparty/chromium/third_party/ffmpeg/libavcodec/x86/mathops.h
@@ -35,12 +35,20 @@
static av_always_inline av_const int MULL(int a, int b, unsigned shift)
{
int rt, dummy;
+ if (__builtin_constant_p(shift))
__asm__ (
"imull %3 \n\t"
"shrdl %4, %%edx, %%eax \n\t"
:"=a"(rt), "=d"(dummy)
- :"a"(a), "rm"(b), "ci"((uint8_t)shift)
+ :"a"(a), "rm"(b), "i"(shift & 0x1F)
);
+ else
+ __asm__ (
+ "imull %3 \n\t"
+ "shrdl %4, %%edx, %%eax \n\t"
+ :"=a"(rt), "=d"(dummy)
+ :"a"(a), "rm"(b), "c"((uint8_t)shift)
+ );
return rt;
}
@@ -113,19 +121,31 @@ __asm__ volatile(\
// avoid +32 for shift optimization (gcc should do that ...)
#define NEG_SSR32 NEG_SSR32
static inline int32_t NEG_SSR32( int32_t a, int8_t s){
+ if (__builtin_constant_p(s))
__asm__ ("sarl %1, %0\n\t"
: "+r" (a)
- : "ic" ((uint8_t)(-s))
+ : "i" (-s & 0x1F)
);
+ else
+ __asm__ ("sarl %1, %0\n\t"
+ : "+r" (a)
+ : "c" ((uint8_t)(-s))
+ );
return a;
}
#define NEG_USR32 NEG_USR32
static inline uint32_t NEG_USR32(uint32_t a, int8_t s){
+ if (__builtin_constant_p(s))
__asm__ ("shrl %1, %0\n\t"
: "+r" (a)
- : "ic" ((uint8_t)(-s))
+ : "i" (-s & 0x1F)
);
+ else
+ __asm__ ("shrl %1, %0\n\t"
+ : "+r" (a)
+ : "c" ((uint8_t)(-s))
+ );
return a;
}
--
2.27.0

29
CVE-2023-6112.patch Normal file
View File

@ -0,0 +1,29 @@
From b727ffde2b4ffe8b979927d6dc9f056eb916a8b8 Mon Sep 17 00:00:00 2001
From: peijiankang <peijiankang@kylinos.cn>
Date: Tue, 30 Jan 2024 09:43:39 +0800
Subject: [PATCH] CVE-2023-6112
---
.../content/browser/loader/navigation_url_loader_impl.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/3rdparty/chromium/content/browser/loader/navigation_url_loader_impl.cc b/src/3rdparty/chromium/content/browser/loader/navigation_url_loader_impl.cc
index f54cfd9a6..41c78e2fe 100644
--- a/src/3rdparty/chromium/content/browser/loader/navigation_url_loader_impl.cc
+++ b/src/3rdparty/chromium/content/browser/loader/navigation_url_loader_impl.cc
@@ -560,10 +560,10 @@ void NavigationURLLoaderImpl::MaybeStartLoader(
next_interceptor->MaybeCreateLoader(
*resource_request_, browser_context_,
base::BindOnce(&NavigationURLLoaderImpl::MaybeStartLoader,
- base::Unretained(this), next_interceptor),
+ weak_factory_.GetWeakPtr(), next_interceptor),
base::BindOnce(
&NavigationURLLoaderImpl::FallbackToNonInterceptedRequest,
- base::Unretained(this)));
+ weak_factory_.GetWeakPtr()));
return;
}
--
2.41.0

1687
chromium-python3.patch Normal file

File diff suppressed because it is too large Load Diff

390
disable-catapult.patch Normal file
View File

@ -0,0 +1,390 @@
Description: remove dependencies on third_party catapult
Author: Michael Gilbert <mgilbert@debian.org>
Forwarded: not-needed
Last-Update: 2022-11-26
--- a/src/3rdparty/chromium/BUILD.gn
+++ b/src/3rdparty/chromium/BUILD.gn
@@ -239,7 +239,6 @@ group("gn_all") {
"//media/capture:capture_unittests",
"//media/cast:cast_unittests",
"//third_party/angle/src/tests:angle_white_box_tests",
- "//third_party/catapult/telemetry:bitmaptools($host_toolchain)",
]
} else if (is_ios && !use_qt) {
deps += [
@@ -354,7 +353,6 @@ group("gn_all") {
"//net/android:net_junit_tests",
"//services:services_junit_tests",
"//testing/android/junit:junit_unit_tests",
- "//third_party/catapult/devil",
"//third_party/smhasher:murmurhash3",
"//tools/android:android_tools",
"//tools/android:memconsumer",
@@ -959,7 +957,6 @@ if (is_chromeos) {
"//third_party/dawn/src/tests:dawn_unittests",
# Blocked on https://github.com/catapult-project/catapult/issues/2297
- #"//third_party/catapult/telemetry:bitmaptools",
"//tools/perf/clear_system_cache",
"//ui/ozone/gl:ozone_gl_unittests",
]
@@ -1037,7 +1034,6 @@ if (!is_ios && !use_qt) {
data_deps = [
"//chrome:chrome",
"//chrome/test/chromedriver",
- "//third_party/catapult/third_party/typ",
]
if (is_win) {
data_deps += [ "//build/win:copy_cdb_to_output" ]
@@ -1084,7 +1080,6 @@ if (!is_ios && !use_qt) {
"//third_party/blink/public:blink_devtools_inspector_resources",
"//third_party/blink/public/mojom:mojom_platform_js_data_deps",
"//third_party/blink/renderer/core/html:js_files_for_form_controls_web_tests",
- "//third_party/catapult/third_party/typ",
"//third_party/mesa_headers",
"//tools/imagediff",
]
@@ -1152,7 +1147,6 @@ if (!is_ios && !use_qt) {
if (is_android) {
data += [
- "//third_party/catapult/",
"//build/android/",
]
}
@@ -1259,11 +1253,6 @@ if (!is_ios && !use_qt) {
"//third_party/blink/web_tests/StaleTestExpectations",
"//third_party/blink/web_tests/TestExpectations",
"//third_party/blink/web_tests/VirtualTestSuites",
- "//third_party/catapult/common/py_utils/",
- "//third_party/catapult/devil/",
- "//third_party/catapult/dependency_manager/",
- "//third_party/catapult/third_party/zipfile/",
- "//third_party/catapult/third_party/typ/",
"//third_party/depot_tools/pylint",
"//third_party/depot_tools/pylint-1.5",
"//third_party/depot_tools/pylint_main.py",
--- a/src/3rdparty/chromium/chrome/chrome_paks.gni
+++ b/src/3rdparty/chromium/chrome/chrome_paks.gni
@@ -94,7 +94,6 @@ template("chrome_extra_paks") {
"$root_gen_dir/chrome/common_resources.pak",
"$root_gen_dir/components/autofill/core/browser/autofill_address_rewriter_resources.pak",
"$root_gen_dir/components/components_resources.pak",
- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
"$root_gen_dir/content/content_resources.pak",
"$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
"$root_gen_dir/net/net_resources.pak",
@@ -110,7 +109,6 @@ template("chrome_extra_paks") {
"//components/autofill/core/browser:autofill_address_rewriter_resources",
"//components/resources",
"//content:content_resources",
- "//content/browser/tracing:resources",
"//mojo/public/js:resources",
"//net:net_resources",
"//skia:skia_resources",
--- a/src/3rdparty/chromium/chrome/common/extensions/docs/server2/BUILD.gn
+++ b/src/3rdparty/chromium/chrome/common/extensions/docs/server2/BUILD.gn
@@ -38,6 +38,4 @@ group("extension_docserver_python_unitte
"//tools/json_comment_eater/json_comment_eater.py",
"//tools/json_schema_compiler/",
]
-
- data_deps = [ "//third_party/catapult/third_party/typ" ]
}
--- a/src/3rdparty/chromium/chrome/test/BUILD.gn
+++ b/src/3rdparty/chromium/chrome/test/BUILD.gn
@@ -7103,8 +7103,6 @@ if (!is_fuchsia && !is_android) {
"//chrome/test/data/password/captured_sites/",
"//chrome/test/data/web_page_replay_go_helper_scripts/automation_helper.js",
"//components/test/data/autofill/web_page_replay_support_files/",
- "//third_party/catapult/telemetry/telemetry/bin/",
- "//third_party/catapult/web_page_replay_go/deterministic.js",
]
if (is_linux || is_chromeos || is_win) {
@@ -7141,7 +7139,6 @@ if (!is_fuchsia && !is_android) {
# TODO(uwyiming@chromium.org) create a gn target for Web Page Replay Go (WPR Go) and only WPR Go.
# So that test targets requiring WPR Go does not pull down the whole telemetry tool chain.
- "//third_party/catapult:telemetry_chrome_test_support",
"//third_party/hunspell",
"//third_party/icu",
"//third_party/libpng",
@@ -7171,7 +7168,6 @@ if (!is_fuchsia && !is_android) {
deps = [ "//tools/perf/chrome_telemetry_build:telemetry_chrome_test" ]
data = [
- "//third_party/catapult/telemetry/telemetry/internal/bin/",
"//tools/perf/run_telemetry_tests",
# For isolate contract.
@@ -7189,7 +7185,6 @@ if (!is_fuchsia && !is_android) {
group("telemetry_gpu_unittests") {
testonly = true
deps = [
- "//third_party/catapult:telemetry_chrome_test_support",
"//tools/metrics:metrics_python_tests",
]
data = [
@@ -7313,7 +7308,6 @@ if (is_mac || is_win || is_android) {
"//testing/scripts",
"//testing/test_env.py",
"//testing/xvfb.py",
- "//third_party/catapult",
"//tools",
]
}
--- a/src/3rdparty/chromium/content/browser/BUILD.gn
+++ b/src/3rdparty/chromium/content/browser/BUILD.gn
@@ -2169,7 +2169,6 @@ jumbo_static_library("browser") {
if (!is_android) {
deps += [
"//components/vector_icons",
- "//content/browser/tracing:resources",
]
}
--- a/src/3rdparty/chromium/content/browser/tracing/tracing_ui.cc
+++ b/src/3rdparty/chromium/content/browser/tracing/tracing_ui.cc
@@ -27,7 +27,6 @@
#include "base/strings/stringprintf.h"
#include "base/trace_event/trace_event.h"
#include "base/values.h"
-#include "content/browser/tracing/grit/tracing_resources.h"
#include "content/browser/tracing/tracing_controller_impl.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_thread.h"
@@ -242,8 +241,6 @@ TracingUI::TracingUI(WebUI* web_ui)
WebUIDataSource* source = WebUIDataSource::Create(kChromeUITracingHost);
source->DisableTrustedTypesCSP();
source->UseStringsJs();
- source->SetDefaultResource(IDR_TRACING_HTML);
- source->AddResourcePath("tracing.js", IDR_TRACING_JS);
source->SetRequestFilter(base::BindRepeating(OnShouldHandleRequest),
base::BindRepeating(OnTracingRequest));
WebUIDataSource::Add(browser_context, source);
--- a/src/3rdparty/chromium/content/shell/BUILD.gn
+++ b/src/3rdparty/chromium/content/shell/BUILD.gn
@@ -390,7 +390,6 @@ repack("pak") {
sources = [
"$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
"$root_gen_dir/content/browser/resources/media/media_internals_resources.pak",
- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
"$root_gen_dir/content/browser/webrtc/resources/webrtc_internals_resources.pak",
"$root_gen_dir/content/content_resources.pak",
"$root_gen_dir/content/dev_ui_content_resources.pak",
@@ -413,7 +412,6 @@ repack("pak") {
"//content:dev_ui_content_resources",
"//content/app/resources",
"//content/browser/resources/media:media_internals_resources",
- "//content/browser/tracing:resources",
"//content/browser/webrtc/resources",
"//mojo/public/js:resources",
"//net:net_resources",
--- a/src/3rdparty/chromium/fuchsia/engine/BUILD.gn
+++ b/src/3rdparty/chromium/fuchsia/engine/BUILD.gn
@@ -43,7 +43,6 @@ repack("web_engine_pak") {
"$root_gen_dir/components/components_resources.pak",
"$root_gen_dir/components/strings/components_strings_en-US.pak",
"$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
"$root_gen_dir/content/content_resources.pak",
"$root_gen_dir/content/dev_ui_content_resources.pak",
"$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
@@ -66,7 +65,6 @@ repack("web_engine_pak") {
"//content:content_resources",
"//content:dev_ui_content_resources",
"//content/app/resources",
- "//content/browser/tracing:resources",
"//gpu/command_buffer/service",
"//mojo/public/js:resources",
"//net:net_resources",
--- a/src/3rdparty/chromium/headless/BUILD.gn
+++ b/src/3rdparty/chromium/headless/BUILD.gn
@@ -37,7 +37,6 @@ repack("pak") {
"$root_gen_dir/components/components_resources.pak",
"$root_gen_dir/components/strings/components_strings_en-US.pak",
"$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
"$root_gen_dir/content/content_resources.pak",
"$root_gen_dir/content/dev_ui_content_resources.pak",
"$root_gen_dir/headless/headless_lib_resources.pak",
@@ -65,7 +64,6 @@ repack("pak") {
"//content:content_resources",
"//content:dev_ui_content_resources",
"//content/app/resources",
- "//content/browser/tracing:resources",
"//mojo/public/js:resources",
"//net:net_resources",
"//third_party/blink/public:resources",
--- a/src/3rdparty/chromium/mojo/public/tools/BUILD.gn
+++ b/src/3rdparty/chromium/mojo/public/tools/BUILD.gn
@@ -14,5 +14,4 @@ group("mojo_python_unittests") {
"//testing/xvfb.py",
]
deps = [ "//mojo/public/tools/mojom/mojom:tests" ]
- data_deps = [ "//third_party/catapult/third_party/typ/" ]
}
--- a/src/3rdparty/chromium/testing/BUILD.gn
+++ b/src/3rdparty/chromium/testing/BUILD.gn
@@ -27,7 +27,6 @@ group("run_perf_test") {
data_deps = [
":test_scripts_shared",
- "//third_party/catapult/tracing:convert_chart_json",
]
if (is_android) {
--- a/src/3rdparty/chromium/third_party/webrtc/test/BUILD.gn
+++ b/src/3rdparty/chromium/third_party/webrtc/test/BUILD.gn
@@ -258,10 +258,6 @@ rtc_library("perf_test") {
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
if (rtc_enable_protobuf) {
sources += [ "testsupport/perf_test_histogram_writer.cc" ]
- deps += [
- "//third_party/catapult/tracing/tracing:histogram",
- "//third_party/catapult/tracing/tracing:reserved_infos",
- ]
} else {
sources += [ "testsupport/perf_test_histogram_writer_no_protobuf.cc" ]
}
@@ -566,7 +562,6 @@ if (rtc_include_tests) {
if (rtc_enable_protobuf) {
sources += [ "testsupport/perf_test_histogram_writer_unittest.cc" ]
- deps += [ "//third_party/catapult/tracing/tracing:histogram" ]
}
data = test_support_unittests_resources
--- a/src/3rdparty/chromium/tools/binary_size/BUILD.gn
+++ b/src/3rdparty/chromium/tools/binary_size/BUILD.gn
@@ -18,7 +18,6 @@ python_library("binary_size_trybot_py")
python_library("sizes_py") {
testonly = true
pydeps_file = "sizes.pydeps"
- data_deps = [ "//third_party/catapult/tracing:convert_chart_json" ]
}
if (is_linux || is_chromeos) {
--- a/src/3rdparty/chromium/tools/grit/BUILD.gn
+++ b/src/3rdparty/chromium/tools/grit/BUILD.gn
@@ -33,7 +33,6 @@ group("grit_python_unittests") {
"//testing/scripts/run_isolated_script_test.py",
"//testing/xvfb.py",
"//tools/grit/",
- "//third_party/catapult/third_party/typ/",
]
}
--- a/src/3rdparty/chromium/tools/gritsettings/resource_ids.spec
+++ b/src/3rdparty/chromium/tools/gritsettings/resource_ids.spec
@@ -499,12 +499,6 @@
"content/shell/shell_resources.grd": {
"includes": [2940],
},
-
- # This file is generated during the build.
- "<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.grd": {
- "META": {"sizes": {"includes": [20],}},
- "includes": [2960],
- },
# END content/ section.
# START ios/web/ section.
--- a/src/3rdparty/chromium/tools/metrics/BUILD.gn
+++ b/src/3rdparty/chromium/tools/metrics/BUILD.gn
@@ -56,7 +56,6 @@ group("metrics_python_tests") {
"//testing/scripts/common.py",
"//testing/xvfb.py",
"//testing/test_env.py",
- "//third_party/catapult/third_party/typ/",
# Scripts we depend on. Their unit tests are also included.
"//tools/json_comment_eater/json_comment_eater.py",
--- a/src/3rdparty/chromium/tools/perf/chrome_telemetry_build/BUILD.gn
+++ b/src/3rdparty/chromium/tools/perf/chrome_telemetry_build/BUILD.gn
@@ -107,7 +107,6 @@ group("telemetry_chrome_test_without_chr
"//tools/perf/core/", # chrome_telemetry_build/ depends on core/
]
data_deps = [
- "//third_party/catapult:telemetry_chrome_test_support",
"//tools/metrics:metrics_python_tests",
]
@@ -151,7 +150,5 @@ group("telemetry_chrome_test_without_chr
"//build/android:devil_chromium_py",
"//build/android:stack_tools",
]
- } else if (!is_fuchsia) {
- data_deps += [ "//third_party/catapult/telemetry:bitmaptools" ]
}
}
--- a/src/3rdparty/chromium/tools/perf/core/perfetto_binary_roller/BUILD.gn
+++ b/src/3rdparty/chromium/tools/perf/core/perfetto_binary_roller/BUILD.gn
@@ -7,7 +7,6 @@ import("//build/util/generate_wrapper.gn
generate_wrapper("upload_trace_processor") {
testonly = true
data_deps = [
- "//third_party/catapult:telemetry_chrome_test_support",
"//third_party/perfetto/src/trace_processor:trace_processor_shell",
]
data = [
--- a/src/3rdparty/chromium/tools/polymer/BUILD.gn
+++ b/src/3rdparty/chromium/tools/polymer/BUILD.gn
@@ -10,6 +10,5 @@ group("polymer_tools_python_unittests")
"//testing/scripts/run_isolated_script_test.py",
"//testing/xvfb.py",
"//tools/polymer/",
- "//third_party/catapult/third_party/typ/",
]
}
--- a/src/3rdparty/chromium/v8/tools/BUILD.gn
+++ b/src/3rdparty/chromium/v8/tools/BUILD.gn
@@ -31,10 +31,6 @@ group("v8_android_test_runner_deps") {
if (is_android && !build_with_chromium) {
data_deps = [ "//build/android:test_runner_py" ]
- data = [
- # This is used by android.py, but not included by test_runner_py above.
- "//third_party/catapult/devil/devil/android/perf/",
- ]
}
}
--- a/src/3rdparty/chromium/weblayer/shell/BUILD.gn
+++ b/src/3rdparty/chromium/weblayer/shell/BUILD.gn
@@ -161,7 +161,6 @@ repack("support_pak") {
"$root_gen_dir/components/strings/components_locale_settings_en-US.pak",
"$root_gen_dir/components/strings/components_strings_en-US.pak",
"$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
"$root_gen_dir/content/content_resources.pak",
"$root_gen_dir/content/dev_ui_content_resources.pak",
"$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
@@ -182,7 +181,6 @@ repack("support_pak") {
"//content:content_resources",
"//content:dev_ui_content_resources",
"//content/app/resources",
- "//content/browser/tracing:resources",
"//mojo/public/js:resources",
"//net:net_resources",
"//third_party/blink/public:resources",
--- a/src/core/qtwebengine_resources.gni
+++ b/src/core/qtwebengine_resources.gni
@@ -27,7 +27,6 @@ repack("qtwebengine_repack_resources") {
"$root_gen_dir/components/components_resources.pak",
"$root_gen_dir/components/dev_ui_components_resources.pak",
"$root_gen_dir/content/browser/resources/media/media_internals_resources.pak",
- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
"$root_gen_dir/content/content_resources.pak",
"$root_gen_dir/content/dev_ui_content_resources.pak",
"$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
@@ -44,7 +43,6 @@ repack("qtwebengine_repack_resources") {
"//components/resources:components_resources_grit",
"//components/resources:dev_ui_components_resources_grit",
"//content/browser/resources/media:media_internals_resources",
- "//content/browser/tracing:resources",
"//content:content_resources_grit",
"//content:dev_ui_content_resources_grit",
"//mojo/public/js:resources",

View File

@ -0,0 +1,72 @@
From 82c9b1d3f4383cd8059690bd34c9d7fa86398b78 Mon Sep 17 00:00:00 2001
From: Kadir Yilmaz <kadir.c.yilmaz@gmail.com>
Date: Sat, 21 Oct 2023 22:45:03 +0200
Subject: [PATCH] Fix build tools to run with python3.11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream: N/A buildroot uses python3.11 which apparently is not yet
supported by upstream
- re error: global flags not at the start
https://docs.python.org/3/library/re.html#re-syntax
(?aiLmsux)
....
Changed in version 3.11: This construction can only be used at the
start of the expression
- ValueError: invalid mode: 'rU'
open(), io.open(), codecs.open() and fileinput.FileInput no longer
accept 'U' (“universal newline”) in the file mode. In Python 3,
“universal newline” mode is used by default whenever a file is
opened in text mode, and the 'U' flag has been deprecated since
Python 3.3. The newline parameter to these functions controls how
universal newlines work. (Contributed by Victor Stinner in bpo-37330.)
Signed-off-by: Kadir Yilmaz <kadir.c.yilmaz@gmail.com>
---
src/3rdparty/chromium/tools/grit/grit/util.py | 2 +-
src/3rdparty/chromium/tools/metrics/ukm/ukm_model.py | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/3rdparty/chromium/tools/grit/grit/util.py b/src/3rdparty/chromium/tools/grit/grit/util.py
index 528d766ad6b..6e8cdb0ebfa 100644
--- a/src/3rdparty/chromium/tools/grit/grit/util.py
+++ b/src/3rdparty/chromium/tools/grit/grit/util.py
@@ -211,7 +211,7 @@ def ReadFile(filename, encoding):
mode = 'rb'
encoding = None
else:
- mode = 'rU'
+ mode = 'r'
with io.open(abs(filename), mode, encoding=encoding) as f:
return f.read()
diff --git a/src/3rdparty/chromium/tools/metrics/ukm/ukm_model.py b/src/3rdparty/chromium/tools/metrics/ukm/ukm_model.py
index ec24dd57360..57decab3ccc 100644
--- a/src/3rdparty/chromium/tools/metrics/ukm/ukm_model.py
+++ b/src/3rdparty/chromium/tools/metrics/ukm/ukm_model.py
@@ -42,7 +42,7 @@ _INDEX_TYPE = models.ObjectNodeType(
_STATISTICS_TYPE = models.ObjectNodeType(
'statistics',
attributes=[
- ('export', str, r'^(?i)(|true|false)$'),
+ ('export', str, r'(?i)^(|true|false)$'),
],
children=[
models.ChildType(_QUANTILES_TYPE.tag, _QUANTILES_TYPE, multiple=False),
@@ -94,7 +94,7 @@ _EVENT_TYPE = models.ObjectNodeType(
'event',
attributes=[
('name', str, r'^[A-Za-z0-9.]+$'),
- ('singular', str, r'^(?i)(|true|false)$'),
+ ('singular', str, r'(?i)^(|true|false)$'),
],
alphabetization=[
(_OBSOLETE_TYPE.tag, _KEEP_ORDER),
--
2.25.1

View File

@ -0,0 +1,10 @@
--- a/src/3rdparty/chromium/build/config/compiler/BUILD.gn 2022-05-13 03:17:44.000000000 +1000
+++ b/src/3rdparty/chromium/build/config/compiler/BUILD.gn 2023-04-06 18:09:53.528885245 +1000
@@ -318,6 +318,7 @@
"-Wno-parentheses-equality",
"-Wno-tautological-compare",
"-Wno-thread-safety-attributes",
+ "-Wno-enum-constexpr-conversion"
]
}

Binary file not shown.

Binary file not shown.

159
python3.patch Normal file
View File

@ -0,0 +1,159 @@
Description: replace Python 2 with Python 3 in the build system
Author: Dmitry Shachnev <mitya57@debian.org>
Last-Update: 2022-11-25
Forwarded: not-needed
--- a/configure.pri
+++ b/configure.pri
@@ -6,23 +6,6 @@ QTWEBENGINE_SOURCE_TREE = $$PWD
equals(QMAKE_HOST.os, Windows): EXE_SUFFIX = .exe
-defineTest(isPythonVersionSupported) {
- python = $$system_quote($$system_path($$1))
- python_version = $$system('$$python -c "import sys; print(sys.version_info[0:3])"')
- python_version ~= s/[()]//g
- python_version = $$split(python_version, ',')
- python_major_version = $$first(python_version)
- greaterThan(python_major_version, 2) {
- qtLog("Python version 3 is not supported by Chromium.")
- return(false)
- }
- python_minor_version = $$member(python_version, 1)
- python_patch_version = $$member(python_version, 2)
- greaterThan(python_major_version, 1): greaterThan(python_minor_version, 6): greaterThan(python_patch_version, 4): return(true)
- qtLog("Unsupported python version: $${python_major_version}.$${python_minor_version}.$${python_patch_version}.")
- return(false)
-}
-
defineTest(qtConfTest_detectJumboBuild) {
mergeLimit = $$eval(config.input.merge_limit)
mergeLimit = $$find(mergeLimit, "\\d")
@@ -52,22 +35,18 @@ defineTest(qtConfReport_jumboBuild) {
qtConfReportPadded($${1}, $$mergeLimit)
}
-defineTest(qtConfTest_detectPython2) {
- python = $$qtConfFindInPath("python2$$EXE_SUFFIX")
+defineTest(qtConfTest_detectPython3) {
+ python = $$qtConfFindInPath("python3$$EXE_SUFFIX")
isEmpty(python) {
- qtLog("'python2$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.")
+ qtLog("'python3$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.")
python = $$qtConfFindInPath("python$$EXE_SUFFIX")
}
isEmpty(python) {
qtLog("'python$$EXE_SUFFIX' not found in PATH. Giving up.")
return(false)
}
- !isPythonVersionSupported($$python) {
- qtLog("A suitable Python 2 executable could not be located.")
- return(false)
- }
- # Make tests.python2.location available in configure.json.
+ # Make tests.python3.location available in configure.json.
$${1}.location = $$clean_path($$python)
export($${1}.location)
$${1}.cache += location
--- a/mkspecs/features/functions.prf
+++ b/mkspecs/features/functions.prf
@@ -44,11 +44,11 @@ defineReplace(which) {
# Returns the unquoted path to the python executable.
defineReplace(pythonPath) {
- isEmpty(QMAKE_PYTHON2) {
+ isEmpty(QMAKE_PYTHON3) {
# Fallback for building QtWebEngine with Qt < 5.8
- QMAKE_PYTHON2 = python
+ QMAKE_PYTHON3 = python
}
- return($$QMAKE_PYTHON2)
+ return($$QMAKE_PYTHON3)
}
# Returns the python executable for use with shell / make targets.
--- a/src/buildtools/config/support.pri
+++ b/src/buildtools/config/support.pri
@@ -21,7 +21,7 @@ defineReplace(qtwebengine_checkWebEngine
!qtwebengine_checkForGperf(QtWebEngine):return(false)
!qtwebengine_checkForBison(QtWebEngine):return(false)
!qtwebengine_checkForFlex(QtWebEngine):return(false)
- !qtwebengine_checkForPython2(QtWebEngine):return(false)
+ !qtwebengine_checkForPython3(QtWebEngine):return(false)
!qtwebengine_checkForNodejs(QtWebEngine):return(false)
!qtwebengine_checkForSanitizer(QtWebEngine):return(false)
linux:!qtwebengine_checkForPkgCfg(QtWebEngine):return(false)
@@ -51,7 +51,7 @@ defineReplace(qtwebengine_checkPdfError)
!qtwebengine_checkForGperf(QtPdf):return(false)
!qtwebengine_checkForBison(QtPdf):return(false)
!qtwebengine_checkForFlex(QtPdf):return(false)
- !qtwebengine_checkForPython2(QtPdf):return(false)
+ !qtwebengine_checkForPython3(QtPdf):return(false)
!qtwebengine_checkForSanitizer(QtPdf):return(false)
linux:!qtwebengine_checkForPkgCfg(QtPdf):return(false)
linux:!qtwebengine_checkForHostPkgCfg(QtPdf):return(false)
@@ -143,10 +143,10 @@ defineTest(qtwebengine_checkForFlex) {
return(true)
}
-defineTest(qtwebengine_checkForPython2) {
+defineTest(qtwebengine_checkForPython3) {
module = $$1
- !qtConfig(webengine-python2) {
- qtwebengine_skipBuild("Python version 2 (2.7.5 or later) is required to build $${module}.")
+ !qtConfig(webengine-python3) {
+ qtwebengine_skipBuild("Python version 3 is required to build $${module}.")
return(false)
}
return(true)
--- a/src/buildtools/configure.json
+++ b/src/buildtools/configure.json
@@ -295,9 +295,9 @@
"label": "system ninja",
"type": "detectNinja"
},
- "webengine-python2": {
- "label": "python2",
- "type": "detectPython2",
+ "webengine-python3": {
+ "label": "python3",
+ "type": "detectPython3",
"log": "location"
},
"webengine-winversion": {
@@ -374,7 +374,7 @@
&& features.webengine-gperf
&& features.webengine-bison
&& features.webengine-flex
- && features.webengine-python2
+ && features.webengine-python3
&& features.webengine-nodejs
&& (!config.sanitizer || features.webengine-sanitizer)
&& (!config.linux || features.pkg-config)
@@ -400,7 +400,7 @@
&& features.webengine-gperf
&& features.webengine-bison
&& features.webengine-flex
- && features.webengine-python2
+ && features.webengine-python3
&& (!config.sanitizer || features.webengine-sanitizer)
&& (!config.linux || features.pkg-config)
&& (!config.linux || features.webengine-host-pkg-config)
@@ -423,12 +423,12 @@
"autoDetect": "features.private_tests",
"output": [ "privateFeature" ]
},
- "webengine-python2": {
- "label": "python2",
- "condition": "tests.webengine-python2",
+ "webengine-python3": {
+ "label": "python3",
+ "condition": "tests.webengine-python3",
"output": [
"privateFeature",
- { "type": "varAssign", "name": "QMAKE_PYTHON2", "value": "tests.webengine-python2.location" }
+ { "type": "varAssign", "name": "QMAKE_PYTHON3", "value": "tests.webengine-python3.location" }
]
},
"webengine-gperf": {

View File

@ -10,7 +10,7 @@
%global docs 0
# need libvpx >= 1.8.0 (need commit 297dfd869609d7c3c5cd5faa3ebc7b43a394434e)
%global use_system_libvpx 0
%global use_system_libvpx 1
# For screen sharing on Wayland, currently Fedora only thing - no epel
#global pipewire 1
# need libwebp >= 0.6.0
@ -52,7 +52,7 @@
Summary: Qt5 - QtWebEngine components
Name: qt5-qtwebengine
Version: 5.15.10
Release: 1
Release: 6
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
# See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html
@ -75,13 +75,6 @@ Source10: macros.qt5-qtwebengine
# pulseaudio headers
Source20: pulseaudio-12.2-headers.tar.gz
## Python2 Sources
## src.rpm is Fedora spec with tests and tkinter turned off
## binary rpms have been built on epel9
Source100: python2.7-2.7.18-19.el9.1.src.rpm
Source101: python2.7-2.7.18-19.el9.1.aarch64.rpm
Source102: python2.7-2.7.18-19.el9.1.x86_64.rpm
# fix extractCFlag to also look in QMAKE_CFLAGS_RELEASE, needed to detect the
# ARM flags with our %%qmake_qt5 macro, including for the next patch
Patch2: qtwebengine-opensource-src-5.12.4-fix-extractcflag.patch
@ -98,8 +91,6 @@ Patch7: chromium-hunspell-nullptr.patch
Patch8: qtwebengine-everywhere-5.15.8-libpipewire-0.3.patch
# Fix/workaround FTBFS on aarch64 with newer glibc
Patch24: qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch
# Use Python2
Patch26: qtwebengine-everywhere-5.15.5-use-python2.patch
# FTBFS TRUE/FALSE undeclared
Patch31: qtwebengine-everywhere-src-5.15.5-TRUE.patch
Patch32: qtwebengine-skia-missing-includes.patch
@ -108,11 +99,37 @@ Patch32: qtwebengine-skia-missing-includes.patch
## Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2144200
## From: https://chromium-review.googlesource.com/c/chromium/src/+/3545665
Patch33: qtwebengine-5.15-Backport-of-16k-page-support-on-aarch64.patch
Patch34: qtwebengine-support-clang-compile.patch
#https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/518607
Patch35: CVE-2023-6112.patch
## Upstream patches:
Patch36: qtwebengine-icu-74.patch
## From: https://git.videolan.org/?p=ffmpeg.git;a=commit;h=effadce6c756247ea8bae32dc13bb3e6f464f0eb
Patch37: Backport-ffmpeg-avcodec-x86-mathops-clip-constants-used-with-.patch
# handled by qt5-srpm-macros, which defines %%qt5_qtwebengine_arches
#ExclusiveArch: %{qt5_qtwebengine_arches}
# Disable Catapult to simplify porting to Python 3
# Also porting Python 2 to Python 3
## From: https://salsa.debian.org/qt-kde-team/qt/qtwebengine/-/blob/082c7f7e9ee899ff5ab68a166819e2f0aaa87617/debian/patches/disable-catapult.patch
Patch50: disable-catapult.patch
## From: https://salsa.debian.org/qt-kde-team/qt/qtwebengine/-/blob/0db62e47f0e2f5e4e00193b65da912fe0083088c/debian/patches/chromium-python3.patch
Patch51: python3.patch
## From: https://salsa.debian.org/qt-kde-team/qt/qtwebengine/-/blob/0db62e47f0e2f5e4e00193b65da912fe0083088c/debian/patches/python3.patch
Patch52: chromium-python3.patch
# re.error: global flags not at the start of the expression at position 1
## From: https://lore.kernel.org/buildroot/20231025205233.1925727-1-kadir.c.yilmaz@gmail.com/T/
Patch53: fix-build-tools-to-run-with-python3.11.patch
# bit-field.h:43:29: error: integer value 7 is outside the valid range of values [0, 3] for the enumeration type 'Kind'
Patch54: fix-qt5-qtwebengine-build-with-clang-17.patch
%ifarch riscv64
# riscv64 support patch from Arch Linux
Patch1000: riscv-v8.patch
Patch1001: riscv-qt5-qtwebengine.patch
Patch1002: qtwebengine-ffmpeg5.patch
%endif
BuildRequires: make
BuildRequires: qt5-qtbase-devel
BuildRequires: qt5-qtbase-private-devel
@ -200,12 +217,21 @@ BuildRequires: perl-interpreter
# Only the interpreter is needed
BuildRequires: python3
%if 0%{?use_system_libvpx}
BuildRequires: pkgconfig(vpx) >= 1.8.0
BuildRequires: libvpx libvpx-devel
%endif
BuildRequires: libtirpc
BuildRequires: libnsl2
BuildRequires: python-rpm-macros
%ifarch riscv64
# collect2: fatal error: cannot find 'ld'
BuildRequires: lld
# We don't use bundled ffmpeg
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libavutil)
%endif
# extra (non-upstream) functions needed, see
# src/3rdparty/chromium/third_party/sqlite/README.chromium for details
#BuildRequires: pkgconfig(sqlite3)
@ -386,17 +412,6 @@ mv pulse src/3rdparty/chromium/
pushd src/3rdparty/chromium
popd
# Install python2 from rpms
mkdir python2
pushd python2
%ifarch aarch64
rpm2cpio %{SOURCE101} | cpio -idm
%endif
%ifarch x86_64
rpm2cpio %{SOURCE102} | cpio -idm
%endif
popd
%patch2 -p1 -b .fix-extractcflag
%if !0%{?arm_neon}
%patch3 -p1 -b .no-neon
@ -411,10 +426,26 @@ popd
## upstream patches
%patch24 -p1 -b .aarch64-new-stat
%patch26 -p1 -b .use-python2
%patch31 -p1 -b .TRUE
%patch32 -p1 -b .skia-missing-includes
%patch33 -p1 -b .aarch64-16kb-support
%patch34 -p1 -b .support-clang-compile
%patch35 -p1
%patch36 -p1
%patch37 -p1
%patch50 -p1 -b .disable-catapult
%patch51 -p1 -b .python3
%patch52 -p1 -b .chromium-python3
%patch53 -p1 -b .fix-build-tools-to-run-with-python3.11
%patch54 -p1 -b .fix-qt5-qtwebengine-build-with-clang-17
%ifarch riscv64
%patch1000 -p1 -b .riscv-v8
%patch1001 -p1 -b .riscv-qt5-qtwebengine
%patch1002 -p1 -b .qtwebengine-ffmpeg5
%endif
# delete all "toolprefix = " lines from build/toolchain/linux/BUILD.gn, as we
# never cross-compile in native Fedora RPMs, fixes ARM and aarch64 FTBFS
@ -461,9 +492,6 @@ test -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h"
%build
# python2 path
export PATH=$(pwd)/python2/usr/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/python2/usr/lib64
export STRIP=strip
export NINJAFLAGS="%{__ninja_common_opts}"
@ -471,7 +499,12 @@ export NINJA_PATH=%{__ninja}
%{qmake_qt5} \
%{?debug_config:CONFIG+="%{debug_config}}" \
%ifarch riscv64
CONFIG+="link_pulseaudio" \
QMAKE_EXTRA_ARGS+="-system-webengine-ffmpeg -system-webengine-webp -system-webengine-opus" \
%else
CONFIG+="link_pulseaudio use_gold_linker" \
%endif
%{?use_system_libicu:QMAKE_EXTRA_ARGS+="-system-webengine-icu"} \
QMAKE_EXTRA_ARGS+="-webengine-kerberos" \
%{?pipewire:QMAKE_EXTRA_ARGS+="-webengine-webrtc-pipewire"} \
@ -632,6 +665,21 @@ done
%changelog
* Wed Apr 03 2024 misaka00251 <liuxin@iscas.ac.cn> - 5.15.10-6
- Migrate python 2 to python 3 & Fix build on riscv64
* Fri Mar 15 2024 panchenbo <panchenbo@kylinsec.com.cn> - 5.15.10-5
- Backport ffmpeg: avcodec/x86/mathops: clip constants used with shift instructions within inline assembly
* Tue Feb 20 2024 peijiankang <peijiankang@kylinos.cn> - 5.15.10-4
- add qtwebengine-icu-74.patch
* Tue Jan 30 2024 peijiankang <peijiankang@kylinos.cn> - 5.15.10-3
- CVE-2023-6112.patch
* Wed Sep 20 2023 renyi <977713017@qq.com> - 5.15.10-2
- Support building this package with clang
* Fri Dec 16 2022 peijiankang <peijiankang@kylinos.cn> -5.15.10-1
- update upstream version to 5.15.10

154
qtwebengine-ffmpeg5.patch Normal file
View File

@ -0,0 +1,154 @@
Allow building qtwebengine using ffmpeg 5
Origin: ArchLinux, https://github.com/archlinux/svntogit-packages/tree/packages/qt5-webengine/trunk
diff --git a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h b/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h
index 2734a48..70b1877 100644
--- a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h
+++ b/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h
@@ -29,6 +29,7 @@ extern "C" {
#include <libavformat/avformat.h>
#include <libavformat/avio.h>
#include <libavutil/avutil.h>
+#include <libavutil/channel_layout.h>
#include <libavutil/imgutils.h>
#include <libavutil/log.h>
#include <libavutil/mastering_display_metadata.h>
diff --git a/src/3rdparty/chromium/media/filters/audio_file_reader.cc b/src/3rdparty/chromium/media/filters/audio_file_reader.cc
index cb81d92..bd73908 100644
--- a/src/3rdparty/chromium/media/filters/audio_file_reader.cc
+++ b/src/3rdparty/chromium/media/filters/audio_file_reader.cc
@@ -85,7 +85,7 @@ bool AudioFileReader::OpenDemuxer() {
}
bool AudioFileReader::OpenDecoder() {
- AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
if (codec) {
// MP3 decodes to S16P which we don't support, tell it to use S16 instead.
if (codec_context_->sample_fmt == AV_SAMPLE_FMT_S16P)
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc b/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc
index 0d825ed..72fac61 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_audio_decoder.cc
@@ -329,7 +329,7 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) {
}
}
- AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
if (!codec ||
avcodec_open2(codec_context_.get(), codec, &codec_options) < 0) {
DLOG(ERROR) << "Could not initialize audio decoder: "
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc b/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
index d34db63..427565b 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
@@ -98,12 +98,12 @@ static base::TimeDelta ExtractStartTime(AVStream* stream) {
// Next try to use the first DTS value, for codecs where we know PTS == DTS
// (excludes all H26x codecs). The start time must be returned in PTS.
- if (stream->first_dts != kNoFFmpegTimestamp &&
+ if (av_stream_get_first_dts(stream) != kNoFFmpegTimestamp &&
stream->codecpar->codec_id != AV_CODEC_ID_HEVC &&
stream->codecpar->codec_id != AV_CODEC_ID_H264 &&
stream->codecpar->codec_id != AV_CODEC_ID_MPEG4) {
const base::TimeDelta first_pts =
- ConvertFromTimeBase(stream->time_base, stream->first_dts);
+ ConvertFromTimeBase(stream->time_base, av_stream_get_first_dts(stream));
if (first_pts < start_time)
start_time = first_pts;
}
@@ -408,11 +408,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
scoped_refptr<DecoderBuffer> buffer;
if (type() == DemuxerStream::TEXT) {
- int id_size = 0;
+ size_t id_size = 0;
uint8_t* id_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size);
- int settings_size = 0;
+ size_t settings_size = 0;
uint8_t* settings_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
@@ -424,7 +424,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
side_data.data(), side_data.size());
} else {
- int side_data_size = 0;
+ size_t side_data_size = 0;
uint8_t* side_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
@@ -485,7 +485,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
packet->size - data_offset);
}
- int skip_samples_size = 0;
+ size_t skip_samples_size = 0;
const uint32_t* skip_samples_ptr =
reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
packet.get(), AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_glue.cc b/src/3rdparty/chromium/media/filters/ffmpeg_glue.cc
index 0ef3521..8483ecc 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_glue.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_glue.cc
@@ -59,7 +59,6 @@ static int64_t AVIOSeekOperation(void* opaque, int64_t offset, int whence) {
}
void FFmpegGlue::InitializeFFmpeg() {
- av_register_all();
}
static void LogContainer(bool is_local_file,
@@ -95,9 +94,6 @@ FFmpegGlue::FFmpegGlue(FFmpegURLProtocol* protocol) {
// Enable fast, but inaccurate seeks for MP3.
format_context_->flags |= AVFMT_FLAG_FAST_SEEK;
- // Ensures we can read out various metadata bits like vp8 alpha.
- format_context_->flags |= AVFMT_FLAG_KEEP_SIDE_DATA;
-
// Ensures format parsing errors will bail out. From an audit on 11/2017, all
// instances were real failures. Solves bugs like http://crbug.com/710791.
format_context_->error_recognition |= AV_EF_EXPLODE;
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc b/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
index ef12477..7996606 100644
--- a/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_video_decoder.cc
@@ -391,7 +391,7 @@ bool FFmpegVideoDecoder::ConfigureDecoder(const VideoDecoderConfig& config,
if (decode_nalus_)
codec_context_->flags2 |= AV_CODEC_FLAG2_CHUNKS;
- AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(codec_context_->codec_id);
if (!codec || avcodec_open2(codec_context_.get(), codec, NULL) < 0) {
ReleaseFFmpegResources();
return false;
diff --git a/src/3rdparty/chromium/media/filters/media_file_checker.cc b/src/3rdparty/chromium/media/filters/media_file_checker.cc
index 59c2a2f..1a9872c 100644
--- a/src/3rdparty/chromium/media/filters/media_file_checker.cc
+++ b/src/3rdparty/chromium/media/filters/media_file_checker.cc
@@ -68,7 +68,7 @@ bool MediaFileChecker::Start(base::TimeDelta check_time) {
auto context = AVStreamToAVCodecContext(format_context->streams[i]);
if (!context)
continue;
- AVCodec* codec = avcodec_find_decoder(cp->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(cp->codec_id);
if (codec && avcodec_open2(context.get(), codec, nullptr) >= 0) {
auto loop = std::make_unique<FFmpegDecodingLoop>(context.get());
stream_contexts[i] = {std::move(context), std::move(loop)};
diff --git a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
index 9002b87..d12fade 100644
--- a/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
@@ -203,7 +203,7 @@ int32_t H264DecoderImpl::InitDecode(const VideoCodec* codec_settings,
// a pointer |this|.
av_context_->opaque = this;
- AVCodec* codec = avcodec_find_decoder(av_context_->codec_id);
+ const AVCodec* codec = avcodec_find_decoder(av_context_->codec_id);
if (!codec) {
// This is an indication that FFmpeg has not been initialized or it has not
// been compiled/initialized with the correct set of codecs.

15
qtwebengine-icu-74.patch Normal file
View File

@ -0,0 +1,15 @@
diff --git a/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc b/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc
index e34b07372..c0f9268aa 100644
--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc
+++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc
@@ -162,7 +162,9 @@ static const unsigned char kAsciiLineBreakTable[][(kAsciiLineBreakTableLastChar
};
// clang-format on
-#if U_ICU_VERSION_MAJOR_NUM >= 58
+#if U_ICU_VERSION_MAJOR_NUM >= 74
+#define BA_LB_COUNT (U_LB_COUNT - 8)
+#elif U_ICU_VERSION_MAJOR_NUM >= 58
#define BA_LB_COUNT (U_LB_COUNT - 3)
#else
#define BA_LB_COUNT U_LB_COUNT

View File

@ -0,0 +1,34 @@
From a9c6557bc3188478e1fe72049b6786d187aaabb2 Mon Sep 17 00:00:00 2001
From: 15859157387 <977713017@qq.com>
Date: Wed, 20 Sep 2023 17:12:23 +0800
Subject: [PATCH] support clang compile
---
.../third_party/skia/src/opts/SkRasterPipeline_opts.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h b/src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
index 4abad712d..c80ba130e 100644
--- a/src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
+++ b/src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
@@ -980,7 +980,7 @@ SI F approx_powf(F x, F y) {
SI F from_half(U16 h) {
#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
&& !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-#if defined(SK_BUILD_FOR_MAC)
+#if defined(__ARM_FP16_FORMAT_IEEE)
return vcvt_f32_f16(h);
#else
__fp16 fp16;
@@ -1006,7 +1006,7 @@ SI F from_half(U16 h) {
SI U16 to_half(F f) {
#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
&& !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-#if defined(SK_BUILD_FOR_MAC)
+#if defined(__ARM_FP16_FORMAT_IEEE)
return vcvt_f16_f32(f);
#else
__fp16 fp16 = __fp16(f);
--
2.27.0

2999
riscv-qt5-qtwebengine.patch Normal file

File diff suppressed because it is too large Load Diff

33254
riscv-v8.patch Normal file

File diff suppressed because it is too large Load Diff

695
test
View File

@ -1,695 +0,0 @@
%global qt_module qtwebengine
%global _hardened_build 1
# package-notes causes FTBFS (#2043178)
%undefine _package_note_file
# define to build docs, may need to undef this for bootstrapping
# where qt5-qttools (qt5-doctools) builds are not yet available
%global docs 0
#%if 0%{?fedora}
# need libvpx >= 1.8.0 (need commit 297dfd869609d7c3c5cd5faa3ebc7b43a394434e)
%global use_system_libvpx 0
# For screen sharing on Wayland, currently Fedora only thing - no epel
#global pipewire 1
#%endif
#%if 0%{?fedora} > 30 || 0%{?epel} > 7
# need libwebp >= 0.6.0
%global use_system_libwebp 1
%global use_system_jsoncpp 1
#%if 0%{?rhel} && 0%{?rhel} == 9
#%global use_system_re2 0
#%else
#%global use_system_re2 1
#%endif
#%endif
#%if 0%{?fedora} > 32
# need libicu >= 65, only currently available on f33+
%global use_system_libicu 1
#%endif
# NEON support on ARM (detected at runtime) - disable this if you are hitting
# FTBFS due to e.g. GCC bug https://bugzilla.redhat.com/show_bug.cgi?id=1282495
#global arm_neon 1
# the QMake CONFIG flags to force debugging information to be produced in
# release builds, and for all parts of the code
%ifarch %{arm} aarch64
# the ARM builder runs out of memory during linking with the full setting below,
# so omit debugging information for the parts upstream deems it dispensable for
# (webcore, v8base)
%global debug_config %{nil}
%else
%global debug_config force_debug_info
# webcore_debug v8base_debug
%endif
#global prerelease rc
# spellchecking dictionary directory
%global _qtwebengine_dictionaries_dir %{_qt5_datadir}/qtwebengine_dictionaries
%global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
# exclude plugins
%global __provides_exclude ^lib.*plugin\\.so.*$
# and designer plugins
%global __provides_exclude_from ^%{_qt5_plugindir}/.*\\.so$
Summary: Qt5 - QtWebEngine components
Name: qt5-qtwebengine
Version: 5.15.10
Release: 1
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
# See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html
# The other licenses are from Chromium and the code it bundles
License: (LGPLv2 with exceptions or GPLv3 with exceptions) and BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
URL: http://www.qt.io
# cleaned tarball with patent-encumbered codecs removed from the bundled FFmpeg
# ./qtwebengine-release.sh
# ./clean_qtwebengine.sh 5.15.1
Source0: qtwebengine-everywhere-src-%{version}-clean.tar.xz
# release script used above
Source1: qtwebengine-release.sh
# cleanup scripts used above
Source2: clean_qtwebengine.sh
Source3: clean_ffmpeg.sh
Source4: get_free_ffmpeg_source_files.py
# macros
Source10: macros.qt5-qtwebengine
# pulseaudio headers
Source20: pulseaudio-12.2-headers.tar.gz
## Python2 Sources
## src.rpm is Fedora spec with tests and tkinter turned off
## binary rpms have been built on epel9
Source100: python2.7-2.7.18-19.el9.1.src.rpm
Source101: python2.7-2.7.18-19.el9.1.aarch64.rpm
Source102: python2.7-2.7.18-19.el9.1.x86_64.rpm
# fix extractCFlag to also look in QMAKE_CFLAGS_RELEASE, needed to detect the
# ARM flags with our %%qmake_qt5 macro, including for the next patch
Patch2: qtwebengine-opensource-src-5.12.4-fix-extractcflag.patch
# disable NEON vector instructions on ARM where the NEON code FTBFS due to
# GCC bug https://bugzilla.redhat.com/show_bug.cgi?id=1282495
Patch3: qtwebengine-opensource-src-5.9.0-no-neon.patch
# workaround FTBFS against kernel-headers-5.2.0+
Patch4: qtwebengine-SIOCGSTAMP.patch
# fix build when using qt < 5.14
Patch5: qtwebengine-5.15.0-QT_DEPRECATED_VERSION.patch
# gcc-12 FTBFS "use of deleted function"
Patch6: chromium-angle-nullptr.patch
Patch7: chromium-hunspell-nullptr.patch
Patch8: qtwebengine-everywhere-5.15.8-libpipewire-0.3.patch
# Fix/workaround FTBFS on aarch64 with newer glibc
Patch24: qtwebengine-everywhere-src-5.11.3-aarch64-new-stat.patch
# Use Python2
Patch26: qtwebengine-everywhere-5.15.5-use-python2.patch
# FTBFS TRUE/FALSE undeclared
Patch31: qtwebengine-everywhere-src-5.15.5-TRUE.patch
Patch32: qtwebengine-skia-missing-includes.patch
# Fix QtWebEngine on Apple M1 hardware (patch from Arch Linux ARM)
## Cf. https://bugreports.qt.io/browse/QTBUG-108674
## Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2144200
## From: https://chromium-review.googlesource.com/c/chromium/src/+/3545665
Patch33: qtwebengine-5.15-Backport-of-16k-page-support-on-aarch64.patch
## Upstream patches:
#%if 0%{?fedora} || 0%{?epel} > 7
# handled by qt5-srpm-macros, which defines %%qt5_qtwebengine_arches
#ExclusiveArch: %{qt5_qtwebengine_arches}
#%endif
BuildRequires: make
BuildRequires: qt5-qtbase-devel
BuildRequires: qt5-qtbase-private-devel
# TODO: check of = is really needed or if >= would be good enough -- rex
%{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}}
BuildRequires: qt5-qtdeclarative-devel
BuildRequires: qt5-qtxmlpatterns-devel
BuildRequires: qt5-qtlocation-devel
BuildRequires: qt5-qtsensors-devel
BuildRequires: qt5-qtsvg-devel
BuildRequires: qt5-qtwebchannel-devel
BuildRequires: qt5-qttools-static
# for examples?
BuildRequires: qt5-qtquickcontrols2-devel
BuildRequires: ninja-build
BuildRequires: cmake
BuildRequires: bison
BuildRequires: flex
BuildRequires: gcc-c++
# gn links statically (for now)
BuildRequires: libstdc++-static
BuildRequires: git-core
BuildRequires: gperf
BuildRequires: krb5-devel
%if 0%{?use_system_libicu}
BuildRequires: libicu-devel >= 65
%endif
BuildRequires: libjpeg-devel
BuildRequires: nodejs
#%if 0%{?use_system_re2}
#BuildRequires: re2-devel
#%endif
%if 0%{?pipewire}
BuildRequires: pkgconfig(libpipewire-0.3)
%endif
BuildRequires: snappy-devel
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(egl)
%if 0%{?use_system_jsoncpp}
BuildRequires: pkgconfig(jsoncpp)
%endif
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libudev)
%if 0%{?use_system_libwebp}
BuildRequires: pkgconfig(libwebp) >= 0.6.0
%endif
BuildRequires: pkgconfig(harfbuzz)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(opus)
BuildRequires: pkgconfig(libevent)
BuildRequires: pkgconfig(poppler-cpp)
BuildRequires: pkgconfig(zlib)
#%if 0%{?fedora} && 0%{?fedora} < 30
#BuildRequires: pkgconfig(minizip)
#%else
BuildConflicts: minizip-devel
Provides: bundled(minizip) = 1.2
#%endif
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xi)
BuildRequires: pkgconfig(xcursor)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xfixes)
BuildRequires: pkgconfig(xrender)
BuildRequires: pkgconfig(xdamage)
BuildRequires: pkgconfig(xcomposite)
BuildRequires: pkgconfig(xtst)
BuildRequires: pkgconfig(xrandr)
BuildRequires: pkgconfig(xscrnsaver)
BuildRequires: pkgconfig(libcap)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(libpci)
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(nss)
BuildRequires: pkgconfig(lcms2)
BuildRequires: pkgconfig(xkbcommon)
BuildRequires: pkgconfig(xkbfile)
## https://bugreports.qt.io/browse/QTBUG-59094
## requires libxml2 built with icu support
#BuildRequires: pkgconfig(libxslt) pkgconfig(libxml-2.0)
BuildRequires: perl-interpreter
# fesco exception to allow python2 use: https://pagure.io/fesco/issue/2208
# per https://fedoraproject.org/wiki/Changes/RetirePython2#FESCo_exceptions
# Only the interpreter is needed
#%if 0%{?fedora} > 29 || 0%{?rhel} > 8
#%if 0%{?rhel} && 0%{?rhel} == 9
BuildRequires: python3
#%else
#BuildRequires: %{__python2}
#%endif
#%else
#BuildRequires: python2
#BuildRequires: python2-rpm-macros
#%endif
%if 0%{?use_system_libvpx}
BuildRequires: pkgconfig(vpx) >= 1.8.0
%endif
# For python on EPEL9, These get pulled in via python2
BuildRequires: libtirpc
BuildRequires: libnsl2
BuildRequires: python-rpm-macros
# extra (non-upstream) functions needed, see
# src/3rdparty/chromium/third_party/sqlite/README.chromium for details
#BuildRequires: pkgconfig(sqlite3)
## Various bundled libraries that Chromium does not support unbundling :-(
## Only the parts actually built are listed.
## Query for candidates:
## grep third_party/ build.log | sed 's!third_party/!\nthird_party/!g' | \
## grep third_party/ | sed 's!^third_party/!!g' | sed 's!/.*$!!g' | \
## sed 's/\;.*$//g' | sed 's/ .*$//g' | sort | uniq | less
## some false positives where only shim headers are generated for some reason
## some false positives with dummy placeholder dirs (swiftshader, widevine)
## some false negatives where a header-only library is bundled (e.g. x86inc)
## Spot's chromium.spec also has a list that I checked.
# Of course, Chromium itself is bundled. It cannot be unbundled because it is
# not a library, but forked (modified) application code.
Provides: bundled(chromium) = 87.0.4280.144
# Bundled in src/3rdparty/chromium/third_party:
# Check src/3rdparty/chromium/third_party/*/README.chromium for version numbers,
# except where specified otherwise.
# Note that many of those libraries are git snapshots, so version numbers are
# necessarily approximate.
# Also note that the list is probably not complete anymore due to Chromium
# adding more and more bundled stuff at every release, some of which (but not
# all) is actually built in QtWebEngine.
# src/3rdparty/chromium/third_party/angle/doc/ChoosingANGLEBranch.md points to
# http://omahaproxy.appspot.com/deps.json?version=87.0.4280.144 chromium_branch
Provides: bundled(angle) = 2422
# Google's fork of OpenSSL
# We cannot build against NSS instead because it no longer works with NSS 3.21:
# HTTPS on, ironically, Google's sites (Google, YouTube, etc.) stops working
# completely and produces only ERR_SSL_PROTOCOL_ERROR errors:
# http://kaosx.us/phpBB3/viewtopic.php?t=1235
# https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1520568
# So we have to do what Chromium now defaults to (since 47): a "chimera build",
# i.e., use the BoringSSL code and the system NSS certificates.
Provides: bundled(boringssl)
Provides: bundled(brotli)
# Don't get too excited. MPEG and other legally problematic stuff is stripped
# out. See clean_qtwebengine.sh, clean_ffmpeg.sh, and
# get_free_ffmpeg_source_files.py.
# see src/3rdparty/chromium/third_party/ffmpeg/Changelog for the version number
Provides: bundled(ffmpeg) = 4.3
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
# bundled as "khronos", headers only
Provides: bundled(khronos_headers)
# bundled as "leveldatabase"
Provides: bundled(leveldb) = 1.22
# bundled as "libjingle_xmpp"
Provides: bundled(libjingle)
# see src/3rdparty/chromium/third_party/libsrtp/CHANGES for the version number
Provides: bundled(libsrtp) = 2.2.0
%if !0%{?use_system_libvpx}
Provides: bundled(libvpx) = 1.8.2
%endif
%if !0%{?use_system_libwebp}
Provides: bundled(libwebp) = 1.1.0-28-g55a080e5
%endif
# bundled as "libxml"
# see src/3rdparty/chromium/third_party/libxml/linux/include/libxml/xmlversion.h
# post 2.9.9 snapshot?, 2.9.9-0b3c64d9f2f3e9ce1a98d8f19ee7a763c87e27d5
Provides: bundled(libxml2) = 2.9.10
# see src/3rdparty/chromium/third_party/libxslt/linux/config.h for version
Provides: bundled(libxslt) = 1.1.34
Provides: bundled(libXNVCtrl) = 302.17
Provides: bundled(libyuv) = 1768
Provides: bundled(modp_b64)
Provides: bundled(ots)
Provides: bundled(re2)
# see src/3rdparty/chromium/third_party/protobuf/CHANGES.txt for the version
Provides: bundled(protobuf) = 3.9.0
Provides: bundled(qcms) = 4
Provides: bundled(skia)
# bundled as "smhasher"
Provides: bundled(SMHasher) = 0-147
Provides: bundled(sqlite) = 3.35.5
Provides: bundled(usrsctp)
Provides: bundled(webrtc) = 90
%ifarch %{ix86} x86_64
# bundled by ffmpeg and libvpx:
# header (for assembly) only
Provides: bundled(x86inc)
%endif
# Bundled in src/3rdparty/chromium/base/third_party:
# Check src/3rdparty/chromium/third_party/base/*/README.chromium for version
# numbers, except where specified otherwise.
Provides: bundled(dynamic_annotations) = 4384
Provides: bundled(superfasthash) = 0
Provides: bundled(symbolize)
# bundled as "valgrind", headers only
Provides: bundled(valgrind.h)
# bundled as "xdg_mime"
Provides: bundled(xdg-mime)
# bundled as "xdg_user_dirs"
Provides: bundled(xdg-user-dirs) = 0.10
# Bundled in src/3rdparty/chromium/net/third_party:
# Check src/3rdparty/chromium/third_party/net/*/README.chromium for version
# numbers, except where specified otherwise.
Provides: bundled(mozilla_security_manager) = 1.9.2
# Bundled in src/3rdparty/chromium/url/third_party:
# Check src/3rdparty/chromium/third_party/url/*/README.chromium for version
# numbers, except where specified otherwise.
# bundled as "mozilla", file renamed and modified
Provides: bundled(nsURLParsers)
# Bundled outside of third_party, apparently not considered as such by Chromium:
Provides: bundled(mojo)
# see src/3rdparty/chromium/v8/include/v8_version.h for the version number
Provides: bundled(v8) = 8.7.220.35
# bundled by v8 (src/3rdparty/chromium/v8/src/base/ieee754.cc)
# The version number is 5.3, the last version that upstream released, years ago:
# http://www.netlib.org/fdlibm/readme
Provides: bundled(fdlibm) = 5.3
%{?_qt5_version:Requires: qt5-qtbase%{?_isa} = %{_qt5_version}}
%if 0%{?use_system_icu}
# Those versions were built with bundled ICU and want the data file.
Conflicts: qt5-qtwebengine-freeworld < 5.15.2-2
%endif
#%if 0%{?rhel} == 7
#BuildRequires: devtoolset-7-toolchain
#%endif
%description
%{summary}.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: qt5-qtbase-devel%{?_isa}
Requires: qt5-qtdeclarative-devel%{?_isa}
# not arch'd for now, see if can get away with avoiding multilib'ing -- rex
Requires: %{name}-devtools = %{version}-%{release}
%description devel
%{summary}.
%package devtools
Summary: WebEngine devtools_resources
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devtools
Support for remote debugging.
%package examples
Summary: Example files for %{name}
%description examples
%{summary}.
%if 0%{?docs}
%package doc
Summary: API documentation for %{name}
BuildRequires: qt5-qdoc
BuildRequires: qt5-qhelpgenerator
BuildRequires: qt5-qtbase-doc
Requires: qt5-qtbase-doc
BuildRequires: qt5-qtxmlpatterns-doc
Requires: qt5-qtxmlpatterns-doc
BuildRequires: qt5-qtdeclarative-doc
Requires: qt5-qtdeclarative-doc
BuildArch: noarch
%description doc
%{summary}.
%endif
%prep
%setup -q -n %{qt_module}-everywhere-src-%{version}%{?prerelease:-%{prerelease}} -a20
mv pulse src/3rdparty/chromium/
pushd src/3rdparty/chromium
popd
#%if 0%{?rhel} && 0%{?rhel} == 9
# Install python2 from rpms
mkdir python2
pushd python2
%ifarch aarch64
rpm2cpio %{SOURCE101} | cpio -idm
%endif
%ifarch x86_64
rpm2cpio %{SOURCE102} | cpio -idm
%endif
popd
#%endif
%patch2 -p1 -b .fix-extractcflag
%if !0%{?arm_neon}
%patch3 -p1 -b .no-neon
%endif
%patch4 -p1 -b .SIOCGSTAMP
%patch5 -p1 -b .QT_DEPRECATED_VERSION
%patch6 -p1 -b .angle_nullptr
%patch7 -p1 -b .hunspell_nullptr
#if 0%{?pipewire}
%patch8 -p1 -b .libpipewire-0.3
#endif
## upstream patches
%patch24 -p1 -b .aarch64-new-stat
%patch26 -p1 -b .use-python2
%patch31 -p1 -b .TRUE
%patch32 -p1 -b .skia-missing-includes
%patch33 -p1 -b .aarch64-16kb-support
# delete all "toolprefix = " lines from build/toolchain/linux/BUILD.gn, as we
# never cross-compile in native Fedora RPMs, fixes ARM and aarch64 FTBFS
sed -i -e '/toolprefix = /d' -e 's/\${toolprefix}//g' \
src/3rdparty/chromium/build/toolchain/linux/BUILD.gn
#%if 0%{?use_system_re2}
## http://bugzilla.redhat.com/1337585
## can't just delete, but we'll overwrite with system headers to be on the safe side
#cp -bv /usr/include/re2/*.h src/3rdparty/chromium/third_party/re2/src/re2/
#%endif
%if 0
#ifarch x86_64
# enable this to force -g2 on x86_64 (most arches run out of memory with -g2)
# DISABLED BECAUSE OF:
# /usr/lib/rpm/find-debuginfo.sh: line 188: 3619 Segmentation fault
# (core dumped) eu-strip --remove-comment $r $g -f "$1" "$2"
sed -i -e 's/symbol_level=1/symbol_level=2/g' src/core/config/common.pri
%endif
%if 0%{?docs}
# generate qtwebengine-3rdparty.qdoc, it is missing from the tarball
pushd src/3rdparty
%{__python3} chromium/tools/licenses.py \
--file-template ../../tools/about_credits.tmpl \
--entry-template ../../tools/about_credits_entry.tmpl \
credits >../webengine/doc/src/qtwebengine-3rdparty.qdoc
popd
%endif
# copy the Chromium license so it is installed with the appropriate name
cp -p src/3rdparty/chromium/LICENSE LICENSE.Chromium
# consider doing this as part of the tarball creation step instead? rdieter
# fix/workaround
# fatal error: QtWebEngineCore/qtwebenginecoreglobal.h: No such file or directory
if [ ! -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h" ]; then
%_qt5_bindir/syncqt.pl -version %{version}
fi
# abort if this doesn't get created by syncqt.pl
test -f "./include/QtWebEngineCore/qtwebenginecoreglobal.h"
%build
#%if 0%{?rhel} == 7
#. /opt/rh/devtoolset-7/enable
#%endif
# python2 path
export PATH=$(pwd)/python2/usr/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/python2/usr/lib64
export STRIP=strip
export NINJAFLAGS="%{__ninja_common_opts}"
export NINJA_PATH=%{__ninja}
%{qmake_qt5} \
%{?debug_config:CONFIG+="%{debug_config}}" \
CONFIG+="link_pulseaudio use_gold_linker" \
%{?use_system_libicu:QMAKE_EXTRA_ARGS+="-system-webengine-icu"} \
QMAKE_EXTRA_ARGS+="-webengine-kerberos" \
%{?pipewire:QMAKE_EXTRA_ARGS+="-webengine-webrtc-pipewire"} \
.
# avoid %%make_build for now, the -O flag buffers output from intermediate build steps done via ninja
make
%if 0%{?docs}
%make_build docs
%endif
%install
make install INSTALL_ROOT=%{buildroot}
%if 0%{?docs}
make install_docs INSTALL_ROOT=%{buildroot}
%endif
# rpm macros
install -p -m644 -D %{SOURCE10} \
%{buildroot}%{rpm_macros_dir}/macros.qt5-qtwebengine
sed -i \
-e "s|@@NAME@@|%{name}|g" \
-e "s|@@EPOCH@@|%{?epoch}%{!?epoch:0}|g" \
-e "s|@@VERSION@@|%{version}|g" \
-e "s|@@EVR@@|%{?epoch:%{epoch:}}%{version}-%{release}|g" \
%{buildroot}%{rpm_macros_dir}/macros.qt5-qtwebengine
## .prl/.la file love
# nuke .prl reference(s) to %%buildroot, excessive (.la-like) libs
pushd %{buildroot}%{_qt5_libdir}
for prl_file in libQt5*.prl ; do
sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" ${prl_file}
if [ -f "$(basename ${prl_file} .prl).so" ]; then
rm -fv "$(basename ${prl_file} .prl).la"
sed -i -e "/^QMAKE_PRL_LIBS/d" ${prl_file}
fi
done
# explicitly omit, at least until there's a real library installed associated with it -- rex
rm -fv Qt5WebEngineCore.la
popd
mkdir -p %{buildroot}%{_qtwebengine_dictionaries_dir}
# adjust cmake dep(s) to allow for using the same Qt5 that was used to build it
# using the lesser of %%version, %%_qt5_version
%global lesser_version $(echo -e "%{version}\\n%{_qt5_version}" | sort -V | head -1)
sed -i -e "s|%{version} \${_Qt5WebEngine|%{lesser_version} \${_Qt5WebEngine|" \
%{buildroot}%{_qt5_libdir}/cmake/Qt5WebEngine*/Qt5WebEngine*Config.cmake
%ldconfig_scriptlets
#%if 0%{?fedora} > 35 || 0%{?epel} > 9
%filetriggerin -- %{_datadir}/hunspell
#%else
#%filetriggerin -- %{_datadir}/myspell
#%endif
while read filename ; do
case "$filename" in
*.dic)
bdicname=%{_qtwebengine_dictionaries_dir}/`basename -s .dic "$filename"`.bdic
%{_qt5_bindir}/qwebengine_convert_dict "$filename" "$bdicname" &> /dev/null || :
;;
esac
done
%files
%license LICENSE.*
%if 0%{?docs}
%license src/webengine/doc/src/qtwebengine-3rdparty.qdoc
%endif
%{_qt5_libdir}/libQt5*.so.*
%{_qt5_bindir}/qwebengine_convert_dict
%{_qt5_libdir}/qt5/qml/*
%{_qt5_libdir}/qt5/libexec/QtWebEngineProcess
%{_qt5_plugindir}/designer/libqwebengineview.so
%{_qt5_plugindir}/imageformats/libqpdf.so
%dir %{_qt5_datadir}/resources/
%if ! 0%{?use_system_libicu}
%{_qt5_datadir}/resources/icudtl.dat
%endif
%{_qt5_datadir}/resources/qtwebengine_resources_100p.pak
%{_qt5_datadir}/resources/qtwebengine_resources_200p.pak
%{_qt5_datadir}/resources/qtwebengine_resources.pak
%dir %{_qtwebengine_dictionaries_dir}
%dir %{_qt5_translationdir}/qtwebengine_locales
%lang(am) %{_qt5_translationdir}/qtwebengine_locales/am.pak
%lang(ar) %{_qt5_translationdir}/qtwebengine_locales/ar.pak
%lang(bg) %{_qt5_translationdir}/qtwebengine_locales/bg.pak
%lang(bn) %{_qt5_translationdir}/qtwebengine_locales/bn.pak
%lang(ca) %{_qt5_translationdir}/qtwebengine_locales/ca.pak
%lang(cs) %{_qt5_translationdir}/qtwebengine_locales/cs.pak
%lang(da) %{_qt5_translationdir}/qtwebengine_locales/da.pak
%lang(de) %{_qt5_translationdir}/qtwebengine_locales/de.pak
%lang(el) %{_qt5_translationdir}/qtwebengine_locales/el.pak
%lang(en) %{_qt5_translationdir}/qtwebengine_locales/en-GB.pak
%lang(en) %{_qt5_translationdir}/qtwebengine_locales/en-US.pak
%lang(es) %{_qt5_translationdir}/qtwebengine_locales/es-419.pak
%lang(es) %{_qt5_translationdir}/qtwebengine_locales/es.pak
%lang(et) %{_qt5_translationdir}/qtwebengine_locales/et.pak
%lang(fa) %{_qt5_translationdir}/qtwebengine_locales/fa.pak
%lang(fi) %{_qt5_translationdir}/qtwebengine_locales/fi.pak
%lang(fil) %{_qt5_translationdir}/qtwebengine_locales/fil.pak
%lang(fr) %{_qt5_translationdir}/qtwebengine_locales/fr.pak
%lang(gu) %{_qt5_translationdir}/qtwebengine_locales/gu.pak
%lang(he) %{_qt5_translationdir}/qtwebengine_locales/he.pak
%lang(hi) %{_qt5_translationdir}/qtwebengine_locales/hi.pak
%lang(hr) %{_qt5_translationdir}/qtwebengine_locales/hr.pak
%lang(hu) %{_qt5_translationdir}/qtwebengine_locales/hu.pak
%lang(id) %{_qt5_translationdir}/qtwebengine_locales/id.pak
%lang(it) %{_qt5_translationdir}/qtwebengine_locales/it.pak
%lang(ja) %{_qt5_translationdir}/qtwebengine_locales/ja.pak
%lang(kn) %{_qt5_translationdir}/qtwebengine_locales/kn.pak
%lang(ko) %{_qt5_translationdir}/qtwebengine_locales/ko.pak
%lang(lt) %{_qt5_translationdir}/qtwebengine_locales/lt.pak
%lang(lv) %{_qt5_translationdir}/qtwebengine_locales/lv.pak
%lang(ml) %{_qt5_translationdir}/qtwebengine_locales/ml.pak
%lang(mr) %{_qt5_translationdir}/qtwebengine_locales/mr.pak
%lang(ms) %{_qt5_translationdir}/qtwebengine_locales/ms.pak
%lang(nb) %{_qt5_translationdir}/qtwebengine_locales/nb.pak
%lang(nl) %{_qt5_translationdir}/qtwebengine_locales/nl.pak
%lang(pl) %{_qt5_translationdir}/qtwebengine_locales/pl.pak
%lang(pt_BR) %{_qt5_translationdir}/qtwebengine_locales/pt-BR.pak
%lang(pt_PT) %{_qt5_translationdir}/qtwebengine_locales/pt-PT.pak
%lang(ro) %{_qt5_translationdir}/qtwebengine_locales/ro.pak
%lang(ru) %{_qt5_translationdir}/qtwebengine_locales/ru.pak
%lang(sk) %{_qt5_translationdir}/qtwebengine_locales/sk.pak
%lang(sl) %{_qt5_translationdir}/qtwebengine_locales/sl.pak
%lang(sr) %{_qt5_translationdir}/qtwebengine_locales/sr.pak
%lang(sv) %{_qt5_translationdir}/qtwebengine_locales/sv.pak
%lang(sw) %{_qt5_translationdir}/qtwebengine_locales/sw.pak
%lang(ta) %{_qt5_translationdir}/qtwebengine_locales/ta.pak
%lang(te) %{_qt5_translationdir}/qtwebengine_locales/te.pak
%lang(th) %{_qt5_translationdir}/qtwebengine_locales/th.pak
%lang(tr) %{_qt5_translationdir}/qtwebengine_locales/tr.pak
%lang(uk) %{_qt5_translationdir}/qtwebengine_locales/uk.pak
%lang(vi) %{_qt5_translationdir}/qtwebengine_locales/vi.pak
%lang(zh_CN) %{_qt5_translationdir}/qtwebengine_locales/zh-CN.pak
%lang(zh_TW) %{_qt5_translationdir}/qtwebengine_locales/zh-TW.pak
%files devel
%{rpm_macros_dir}/macros.qt5-qtwebengine
%{_qt5_headerdir}/Qt*/
%{_qt5_libdir}/libQt5*.so
%{_qt5_libdir}/libQt5*.prl
%{_qt5_libdir}/cmake/Qt5*/
%{_qt5_libdir}/pkgconfig/Qt5*.pc
%{_qt5_archdatadir}/mkspecs/modules/*.pri
%files devtools
%{_qt5_datadir}/resources/qtwebengine_devtools_resources.pak
%files examples
%{_qt5_examplesdir}/
%if 0%{?docs}
%files doc
%{_qt5_docdir}/*
%endif
%changelog
* Fri Dec 16 2022 peijiankang <peijiankang@kylinos.cn> -5.15.10-1
- update upstream version to 5.15.10
* Fri Jul 24 2020 maminjie <maminjie1@huawei.com> -5.11.1-10
- Fix the build error for U16_NEXT calls
* Sun Jun 28 2020 huanghaitao <huanghaitao8@huawei.com> -5.11.1-9
- Fix the build errors with conflicting declaration of C
* Sat Jun 20 2020 huanghaitao <huanghaitao8@huawei.com> -5.11.1-8
- Solved the unresolved problem
* Wed Mar 18 2020 gulining <gulining1@huawei.com> - 5.11.1-7
- Fix build error
* Wed Mar 18 2020 yanglijin <yanglijin@huawei.com> - 5.11.1-6
- Remove help package
* Fri Mar 6 2020 Ling Yang <lingyang2@huawei.com> - 5.11.1-5
- Package Init