qtwebengine: 5.15.8 -> 5.15.9
This commit is contained in:
parent
03493e94c0
commit
3fed4d64e0
@ -1,6 +1,14 @@
|
||||
untrusted comment: verify with /etc/ports/opt.pub
|
||||
RWSE3ohX2g5d/R8gKK+2LSPc07GbUqh8EkA4SRAwVbrDoPxR2/eNmE8pQG9uNiSDvzIsEzRZhIS2kwTD7iof0Z8woV2gcJe+twk=
|
||||
SHA256 (Pkgfile) = 2b2f80d437eae5fa139a47b042aa7cc789f83ad114f02f92fba80497b22ba1d6
|
||||
RWSE3ohX2g5d/bmNIesm3/ClFcapNZOj4LcRYCRVUJqffKiiV12upemyQjb4LK1ydOkRHBtNp0G9Qz/9mFWXJlDNXbB2ICbTnA8=
|
||||
SHA256 (Pkgfile) = 4819832c6a1817475fae0ca0c55fca37e4c67ec0d09a8f1186e069fdea0e48bd
|
||||
SHA256 (.footprint) = 44b1db82a792e29d0e7a4bf1a4ea7d0ed7b440ab9f0df493452d03ff3c164554
|
||||
SHA256 (qtwebengine-5.15.8.tar.xz) = 9315c78db8e077d6dab6bd67e4b47c89c0109c87a557fb5095e9da280cbdafec
|
||||
SHA256 (qtwebengine-5.15.8-build_fixes-1.patch) = 78aa2fb51bf3b4916f23e4bf81dcaff838da7b38c3261d8cfd18178b52e50445
|
||||
SHA256 (qtwebengine-5.15.9.tar.xz) = 4b61afcd5b5452d9b3178f28335fb455da543170220f72dba85fe6aa8e76fa39
|
||||
SHA256 (qtwebengine-5.15.9-build_fixes-1.patch) = 78aa2fb51bf3b4916f23e4bf81dcaff838da7b38c3261d8cfd18178b52e50445
|
||||
SHA256 (qtwebengine-5.15.2-disable-fatal-warnings.patch) = 19dac26d6753f4cbe1fe2bcb911d8124ea082f55ff86b45cdcba294d3c199249
|
||||
SHA256 (qtwebengine-5.15.2-extra_gn.patch) = 3b691d9fb242688e1521a26bf1c47ce5aaa9cd6f7e7fdc458c332470a563d6be
|
||||
SHA256 (qtwebengine-5.15.2_p20210224-chromium-87-v8-icu68.patch) = 4bd5364a5f45c68e0bd452dad7a6f638142503da8c43aaeb15d577aa09369c7c
|
||||
SHA256 (qtwebengine-5.15.2_p20210521-clang-libc++.patch) = 64f786a919c7c145033139e6effe236459dad7b7bb5b52428e00fc70592ce05d
|
||||
SHA256 (qtwebengine-5.15.2_p20211015-pdfium-system-lcms2.patch) = 391f899137cabf4c90ff3bc3a1cf9687d6a273e7bd42618760e7f09c7e0d3e32
|
||||
SHA256 (qtwebengine-5.15.3_p20220406-ffmpeg5.patch) = 63b0a709c7d1e84193dada20109740d6b9a768f6d83809247dd9691ff50bfc7c
|
||||
SHA256 (qt5-webengine-pipewire-0.3.patch) = 5e3a3c4711d964d5152a04059a2b5c1d14bb13dd29bce370120f60e85b476b6f
|
||||
SHA256 (gcc12.patch) = 2a59acf4574bdd9a0c1a2314aef11d44a2de033392b72ae21f97370e4bbaba99
|
||||
|
@ -1,19 +1,35 @@
|
||||
# Description: Provides support for web applications using the Chromium browser project.
|
||||
# URL: https://www.qt.io/
|
||||
# Maintainer: Danny Rawlins, crux at romster dot me
|
||||
# Depends on: ffmpeg4 libvpx libwebp nodejs nss python qt5 xorg-libxscrnsaver xorg-libxtst
|
||||
# Depends on: ffmpeg libvpx libwebp nodejs nss opus python qt5 xorg-libxscrnsaver xorg-libxtst
|
||||
|
||||
name=qtwebengine
|
||||
version=5.15.8
|
||||
version=5.15.9
|
||||
release=1
|
||||
source=(https://anduin.linuxfromscratch.org/BLFS/qtwebengine/$name-$version.tar.xz
|
||||
https://www.linuxfromscratch.org/patches/blfs/svn/qtwebengine-5.15.8-build_fixes-1.patch)
|
||||
https://www.linuxfromscratch.org/patches/blfs/svn/qtwebengine-$version-build_fixes-1.patch
|
||||
qtwebengine-5.15.2-disable-fatal-warnings.patch
|
||||
qtwebengine-5.15.2-extra_gn.patch
|
||||
qtwebengine-5.15.2_p20210224-chromium-87-v8-icu68.patch
|
||||
qtwebengine-5.15.2_p20210521-clang-libc++.patch
|
||||
qtwebengine-5.15.2_p20211015-pdfium-system-lcms2.patch
|
||||
qtwebengine-5.15.3_p20220406-ffmpeg5.patch
|
||||
qt5-webengine-pipewire-0.3.patch
|
||||
gcc12.patch)
|
||||
|
||||
build() {
|
||||
cd qtwebengine-$version
|
||||
|
||||
# https://www.linuxfromscratch.org/blfs/view/svn/x/qtwebengine.html
|
||||
patch -p1 -i $SRC/qtwebengine-5.15.8-build_fixes-1.patch
|
||||
patch -p1 -i $SRC/qtwebengine-$version-build_fixes-1.patch
|
||||
patch -p1 -i $SRC/qtwebengine-5.15.2-disable-fatal-warnings.patch
|
||||
patch -p1 -i $SRC/qtwebengine-5.15.2-extra_gn.patch
|
||||
patch -p1 -i $SRC/qtwebengine-5.15.2_p20210224-chromium-87-v8-icu68.patch
|
||||
patch -p1 -i $SRC/qtwebengine-5.15.2_p20210521-clang-libc++.patch
|
||||
patch -p1 -i $SRC/qtwebengine-5.15.2_p20211015-pdfium-system-lcms2.patch
|
||||
patch -p1 -i $SRC/qtwebengine-5.15.3_p20220406-ffmpeg5.patch
|
||||
patch -p1 -d src/3rdparty -i $SRC/qt5-webengine-pipewire-0.3.patch
|
||||
patch -p0 -d src/3rdparty/chromium/third_party/skia/src/utils/ -i $SRC/gcc12.patch
|
||||
|
||||
mkdir -pv .git src/3rdparty/chromium/.git
|
||||
sed -e '/^MODULE_VERSION/s/5.*/5.15.2/' -i .qmake.conf
|
||||
@ -24,8 +40,7 @@ build() {
|
||||
-i src/3rdparty/chromium/media/media_options.gni
|
||||
|
||||
# Ninja, by default, sets the number of jobs to the number of availalble threads
|
||||
test -n "$JOBS" && export NINJAFLAGS+=" -j $JOBS"
|
||||
sed -i 's/NINJAJOBS/NINJA_JOBS/' src/core/gn_run.pro
|
||||
test -n "$JOBS" && export NINJAFLAGS+=" -j ${JOBS-1}"
|
||||
|
||||
prt-get isinst ccache && export \
|
||||
QMAKE_CC='ccache gcc' \
|
||||
@ -40,14 +55,15 @@ build() {
|
||||
cd build
|
||||
|
||||
prt-get isinst pulseaudio && PKGMK_QTWEBENGINE+=' -pulseaudio' || PKGMK_QTWEBENGINE+=' -no-pulseaudio'
|
||||
prt-get isinst pipewire && PKGMK_QTWEBENGINE+=' -webengine-webrtc-pipewire'
|
||||
prt-get isinst icu && PKGMK_QTWEBENGINE+=' -webengine-icu' || PKGMK_QTWEBENGINE+=' -no-webengine-icu'
|
||||
|
||||
export PKG_CONFIG_PATH+="/usr/lib/ffmpeg4/pkgconfig"
|
||||
|
||||
qmake-qt5 .. -- \
|
||||
$PKGMK_QTWEBENGINE \
|
||||
-proprietary-codecs \
|
||||
-system-ffmpeg
|
||||
-system-ffmpeg \
|
||||
-system-opus \
|
||||
-system-webp
|
||||
|
||||
make
|
||||
make INSTALL_ROOT=$PKG install
|
||||
|
10
qtwebengine/gcc12.patch
Normal file
10
qtwebengine/gcc12.patch
Normal file
@ -0,0 +1,10 @@
|
||||
--- SkParseColor.cpp.orig 2022-05-10 21:02:09.968689017 +0200
|
||||
+++ SkParseColor.cpp 2022-05-10 21:02:17.812647846 +0200
|
||||
@@ -6,6 +6,7 @@
|
||||
*/
|
||||
|
||||
|
||||
+#include <iterator>
|
||||
#include "include/utils/SkParse.h"
|
||||
|
||||
static constexpr const char* gColorNames[] = {
|
1819
qtwebengine/qt5-webengine-pipewire-0.3.patch
Normal file
1819
qtwebengine/qt5-webengine-pipewire-0.3.patch
Normal file
File diff suppressed because it is too large
Load Diff
12
qtwebengine/qtwebengine-5.15.2-disable-fatal-warnings.patch
Normal file
12
qtwebengine/qtwebengine-5.15.2-disable-fatal-warnings.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/src/buildtools/config/common.pri b/src/buildtools/config/common.pri
|
||||
index cf990c79..910a88ca 100644
|
||||
--- a/src/buildtools/config/common.pri
|
||||
+++ b/src/buildtools/config/common.pri
|
||||
@@ -26,6 +26,7 @@ gn_args += \
|
||||
skia_use_dawn=false \
|
||||
toolkit_views=false \
|
||||
treat_warnings_as_errors=false \
|
||||
+ fatal_linker_warnings=false \
|
||||
use_allocator_shim=false \
|
||||
use_allocator=\"none\" \
|
||||
use_custom_libcxx=false \
|
12
qtwebengine/qtwebengine-5.15.2-extra_gn.patch
Normal file
12
qtwebengine/qtwebengine-5.15.2-extra_gn.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/src/core/gn_run.pro b/src/core/gn_run.pro
|
||||
index 3d6fda80e..3d0bc86fe 100644
|
||||
--- a/src/core/gn_run.pro
|
||||
+++ b/src/core/gn_run.pro
|
||||
@@ -38,5 +38,6 @@ build_pass|!debug_and_release {
|
||||
}
|
||||
|
||||
+ gn_args += $$(EXTRA_GN)
|
||||
gn_args = $$system_quote($$gn_args)
|
||||
gn_src_root = $$system_quote($$system_path($$QTWEBENGINE_ROOT/$$getChromiumSrcDir()))
|
||||
gn_build_root = $$system_quote($$system_path($$OUT_PWD/$$getConfigDir()))
|
||||
gn_python = "--script-executable=$$pythonPathForSystem()"
|
@ -0,0 +1,192 @@
|
||||
From b0a7f5691113534c2cf771f2dd3cece5e93bc7d4 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Tang <ftang@chromium.org>
|
||||
Date: Tue, 03 Nov 2020 23:20:37 -0800
|
||||
Subject: [PATCH] Update to ICU68-1
|
||||
|
||||
ICU68-1 change the output skeleton format. So we need to change
|
||||
resolvedOptions code for 68 migration.
|
||||
|
||||
Chromium roll
|
||||
https://chromium-review.googlesource.com/c/chromium/src/+/2474093
|
||||
|
||||
Bug: v8:10945
|
||||
Change-Id: I3b2c7fbe8abb22df8fa51287c498ca3245b8c55b
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2477431
|
||||
Commit-Queue: Frank Tang <ftang@chromium.org>
|
||||
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
|
||||
Reviewed-by: Shu-yu Guo <syg@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#70972}
|
||||
|
||||
(ported to work with <ICU-68.1 and rebased chromium)
|
||||
---
|
||||
|
||||
diff --git a/src/3rdparty/chromium/v8/src/objects/js-number-format.cc b/src/3rdparty/chromium/v8/src/objects/js-number-format.cc
|
||||
index 45b0eab..d18b133 100644
|
||||
--- a/src/3rdparty/chromium/v8/src/objects/js-number-format.cc
|
||||
+++ b/src/3rdparty/chromium/v8/src/objects/js-number-format.cc
|
||||
@@ -389,17 +389,20 @@ Handle<String> CurrencySignString(Isolate* isolate,
|
||||
Handle<String> UnitDisplayString(Isolate* isolate,
|
||||
const icu::UnicodeString& skeleton) {
|
||||
// Ex: skeleton as
|
||||
- // "measure-unit/length-meter .### rounding-mode-half-up unit-width-full-name"
|
||||
+ // <ICU-68.1: "measure-unit/length-meter .### rounding-mode-half-up unit-width-full-name".
|
||||
+ // >=ICU-68.1: "unit/length-meter .### rounding-mode-half-up unit-width-full-name"
|
||||
if (skeleton.indexOf("unit-width-full-name") >= 0) {
|
||||
return ReadOnlyRoots(isolate).long_string_handle();
|
||||
}
|
||||
// Ex: skeleton as
|
||||
- // "measure-unit/length-meter .### rounding-mode-half-up unit-width-narrow".
|
||||
+ // <ICU-68.1: "measure-unit/length-meter .### rounding-mode-half-up unit-width-narrow".
|
||||
+ // >=ICU-68.1: "unit/length-meter .### rounding-mode-half-up unit-width-narrow".
|
||||
if (skeleton.indexOf("unit-width-narrow") >= 0) {
|
||||
return ReadOnlyRoots(isolate).narrow_string_handle();
|
||||
}
|
||||
// Ex: skeleton as
|
||||
- // "measure-unit/length-foot .### rounding-mode-half-up"
|
||||
+ // <ICU-68.1: "measure-unit/length-foot .### rounding-mode-half-up"
|
||||
+ // >=ICU-68.1: "unit/length-foot .### rounding-mode-half-up"
|
||||
return ReadOnlyRoots(isolate).short_string_handle();
|
||||
}
|
||||
|
||||
@@ -422,7 +425,8 @@ Notation NotationFromSkeleton(const icu::UnicodeString& skeleton) {
|
||||
return Notation::COMPACT;
|
||||
}
|
||||
// Ex: skeleton as
|
||||
- // "measure-unit/length-foot .### rounding-mode-half-up"
|
||||
+ // <ICU-68.1: "measure-unit/length-foot .### rounding-mode-half-up"
|
||||
+ // >=ICU-68.1: "unit/length-foot .### rounding-mode-half-up"
|
||||
return Notation::STANDARD;
|
||||
}
|
||||
|
||||
@@ -562,14 +566,23 @@ namespace {
|
||||
|
||||
// Ex: percent .### rounding-mode-half-up
|
||||
// Special case for "percent"
|
||||
-// Ex: "measure-unit/length-kilometer per-measure-unit/duration-hour .###
|
||||
-// rounding-mode-half-up" should return "kilometer-per-unit".
|
||||
-// Ex: "measure-unit/duration-year .### rounding-mode-half-up" should return
|
||||
-// "year".
|
||||
+// <ICU-68.1:
|
||||
+// Ex: "measure-unit/length-kilometer per-measure-unit/duration-hour .###
|
||||
+// rounding-mode-half-up" should return "kilometer-per-unit".
|
||||
+// Ex: "measure-unit/duration-year .### rounding-mode-half-up" should return
|
||||
+// >=ICU-68.1:
|
||||
+// Ex: "unit/milliliter-per-acre .### rounding-mode-half-up"
|
||||
+// should return "milliliter-per-acre".
|
||||
+// Ex: "unit/year .### rounding-mode-half-up" should return
|
||||
+// "year".
|
||||
std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
|
||||
std::string str;
|
||||
str = skeleton.toUTF8String<std::string>(str);
|
||||
+#if U_ICU_VERSION_MAJOR_NUM < 68
|
||||
std::string search("measure-unit/");
|
||||
+#else
|
||||
+ std::string search("unit/");
|
||||
+#endif
|
||||
size_t begin = str.find(search);
|
||||
if (begin == str.npos) {
|
||||
// Special case for "percent".
|
||||
@@ -578,20 +591,41 @@ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
|
||||
}
|
||||
return "";
|
||||
}
|
||||
+#if U_ICU_VERSION_MAJOR_NUM < 68
|
||||
// Skip the type (ex: "length").
|
||||
// "measure-unit/length-kilometer per-measure-unit/duration-hour"
|
||||
// b
|
||||
begin = str.find("-", begin + search.size());
|
||||
+#else
|
||||
+ // Ex:
|
||||
+ // "unit/acre .### rounding-mode-half-up"
|
||||
+ // b
|
||||
+ // Ex:
|
||||
+ // "unit/milliliter-per-acre .### rounding-mode-half-up"
|
||||
+ // b
|
||||
+ begin += search.size();
|
||||
+#endif
|
||||
if (begin == str.npos) {
|
||||
return "";
|
||||
}
|
||||
+#if U_ICU_VERSION_MAJOR_NUM < 68
|
||||
begin++; // Skip the '-'.
|
||||
+#endif
|
||||
// Find the end of the subtype.
|
||||
size_t end = str.find(" ", begin);
|
||||
- // "measure-unit/length-kilometer per-measure-unit/duration-hour"
|
||||
- // b e
|
||||
+ // <ICU-68.1:
|
||||
+ // "measure-unit/length-kilometer per-measure-unit/duration-hour"
|
||||
+ // b e
|
||||
+ // >=ICU-68.1:
|
||||
+ // Ex:
|
||||
+ // "unit/acre .### rounding-mode-half-up"
|
||||
+ // b e
|
||||
+ // Ex:
|
||||
+ // "unit/milliliter-per-acre .### rounding-mode-half-up"
|
||||
+ // b e
|
||||
if (end == str.npos) {
|
||||
end = str.size();
|
||||
+#if U_ICU_VERSION_MAJOR_NUM < 68
|
||||
return str.substr(begin, end - begin);
|
||||
}
|
||||
// "measure-unit/length-kilometer per-measure-unit/duration-hour"
|
||||
@@ -625,17 +659,36 @@ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
|
||||
// "measure-unit/length-kilometer per-measure-unit/duration-hour"
|
||||
// [result ] b e
|
||||
return result + "-per-" + str.substr(begin, end - begin);
|
||||
+#else
|
||||
+ }
|
||||
+ return str.substr(begin, end - begin);
|
||||
+#endif
|
||||
}
|
||||
|
||||
Style StyleFromSkeleton(const icu::UnicodeString& skeleton) {
|
||||
if (skeleton.indexOf("currency/") >= 0) {
|
||||
return Style::CURRENCY;
|
||||
}
|
||||
+#if U_ICU_VERSION_MAJOR_NUM < 68
|
||||
if (skeleton.indexOf("measure-unit/") >= 0) {
|
||||
if (skeleton.indexOf("scale/100") >= 0 &&
|
||||
skeleton.indexOf("measure-unit/concentr-percent") >= 0) {
|
||||
+#else
|
||||
+ if (skeleton.indexOf("percent") >= 0) {
|
||||
+ // percent precision-integer rounding-mode-half-up scale/100
|
||||
+ if (skeleton.indexOf("scale/100") >= 0) {
|
||||
+#endif
|
||||
return Style::PERCENT;
|
||||
+#if U_ICU_VERSION_MAJOR_NUM >= 68
|
||||
+ } else {
|
||||
+ return Style::UNIT;
|
||||
+#endif
|
||||
}
|
||||
+#if U_ICU_VERSION_MAJOR_NUM >= 68
|
||||
+ }
|
||||
+ // Before ICU68: "measure-unit/", since ICU68 "unit/"
|
||||
+ if (skeleton.indexOf("unit/") >= 0) {
|
||||
+#endif
|
||||
return Style::UNIT;
|
||||
}
|
||||
return Style::DECIMAL;
|
||||
diff --git a/src/3rdparty/chromium/v8/src/objects/js-relative-time-format.cc b/src/3rdparty/chromium/v8/src/objects/js-relative-time-format.cc
|
||||
index 267343aaae..64d56a1c12 100644
|
||||
--- a/src/3rdparty/chromium/v8/src/objects/js-relative-time-format.cc
|
||||
+++ b/src/3rdparty/chromium/v8/src/objects/js-relative-time-format.cc
|
||||
@@ -195,9 +195,18 @@ MaybeHandle<JSRelativeTimeFormat> JSRelativeTimeFormat::New(
|
||||
}
|
||||
}
|
||||
|
||||
+#if U_ICU_VERSION_MAJOR_NUM < 68
|
||||
icu::DecimalFormat* decimal_format =
|
||||
static_cast<icu::DecimalFormat*>(number_format);
|
||||
decimal_format->setMinimumGroupingDigits(-2);
|
||||
+#else
|
||||
+ if (number_format->getDynamicClassID() ==
|
||||
+ icu::DecimalFormat::getStaticClassID()) {
|
||||
+ icu::DecimalFormat* decimal_format =
|
||||
+ static_cast<icu::DecimalFormat*>(number_format);
|
||||
+ decimal_format->setMinimumGroupingDigits(-2);
|
||||
+ }
|
||||
+#endif
|
||||
|
||||
// Change UDISPCTX_CAPITALIZATION_NONE to other values if
|
||||
// ECMA402 later include option to change capitalization.
|
10
qtwebengine/qtwebengine-5.15.2_p20210521-clang-libc++.patch
Normal file
10
qtwebengine/qtwebengine-5.15.2_p20210521-clang-libc++.patch
Normal file
@ -0,0 +1,10 @@
|
||||
--- a/src/buildtools/gn.pro
|
||||
+++ b/src/buildtools/gn.pro
|
||||
@@ -25,6 +25,7 @@
|
||||
msvc:!clang_cl: gn_gen_args += --use-lto
|
||||
|
||||
gn_configure = $$system_quote($$gn_bootstrap) $$gn_gen_args
|
||||
+ gn_configure += --no-static-libstdc++
|
||||
macos {
|
||||
gn_configure += --isysroot \"$$QMAKE_MAC_SDK_PATH\"
|
||||
}
|
@ -0,0 +1,79 @@
|
||||
Description: Use system lcms2
|
||||
Author: Sandro Knauß <hefee@debian.org>
|
||||
Origin: Debian
|
||||
Forwarded: https://bugreports.qt.io/browse/QTBUG-61746
|
||||
Reviewed-by: Sandro Knauß <hefee@debian.org>
|
||||
Last-Update: 2021-03-08
|
||||
---
|
||||
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
||||
--- a/src/3rdparty/chromium/third_party/pdfium/third_party/BUILD.gn
|
||||
+++ b/src/3rdparty/chromium/third_party/pdfium/third_party/BUILD.gn
|
||||
@@ -239,58 +239,19 @@ if (!pdf_use_skia && !pdf_use_skia_paths
|
||||
}
|
||||
}
|
||||
|
||||
-config("fx_lcms2_warnings") {
|
||||
- visibility = [ ":*" ]
|
||||
- if (is_clang) {
|
||||
- cflags = [
|
||||
- # cmslut.cc is sloppy with aggregate initialization. Version 2.7 of this
|
||||
- # library doesn't appear to have this problem.
|
||||
- "-Wno-missing-braces",
|
||||
- ]
|
||||
- }
|
||||
+import("//build/shim_headers.gni")
|
||||
+
|
||||
+shim_headers("lcms2_shim") {
|
||||
+ root_path = "lcms/include"
|
||||
+ headers = [
|
||||
+ "lcms2.h",
|
||||
+ "lcms2_plugin.h",
|
||||
+ ]
|
||||
}
|
||||
|
||||
source_set("fx_lcms2") {
|
||||
- configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
- configs += [
|
||||
- "//build/config/compiler:no_chromium_code",
|
||||
- "//build/config/sanitizers:cfi_icall_generalize_pointers",
|
||||
- ":pdfium_third_party_config",
|
||||
-
|
||||
- # Must be after no_chromium_code for warning flags to be ordered correctly.
|
||||
- ":fx_lcms2_warnings",
|
||||
- ]
|
||||
- sources = [
|
||||
- "lcms/include/lcms2.h",
|
||||
- "lcms/include/lcms2_plugin.h",
|
||||
- "lcms/src/cmsalpha.c",
|
||||
- "lcms/src/cmscam02.c",
|
||||
- "lcms/src/cmscgats.c",
|
||||
- "lcms/src/cmscnvrt.c",
|
||||
- "lcms/src/cmserr.c",
|
||||
- "lcms/src/cmsgamma.c",
|
||||
- "lcms/src/cmsgmt.c",
|
||||
- "lcms/src/cmshalf.c",
|
||||
- "lcms/src/cmsintrp.c",
|
||||
- "lcms/src/cmsio0.c",
|
||||
- "lcms/src/cmsio1.c",
|
||||
- "lcms/src/cmslut.c",
|
||||
- "lcms/src/cmsmd5.c",
|
||||
- "lcms/src/cmsmtrx.c",
|
||||
- "lcms/src/cmsnamed.c",
|
||||
- "lcms/src/cmsopt.c",
|
||||
- "lcms/src/cmspack.c",
|
||||
- "lcms/src/cmspcs.c",
|
||||
- "lcms/src/cmsplugin.c",
|
||||
- "lcms/src/cmsps2.c",
|
||||
- "lcms/src/cmssamp.c",
|
||||
- "lcms/src/cmssm.c",
|
||||
- "lcms/src/cmstypes.c",
|
||||
- "lcms/src/cmsvirt.c",
|
||||
- "lcms/src/cmswtpnt.c",
|
||||
- "lcms/src/cmsxform.c",
|
||||
- ]
|
||||
- deps = [ "../core/fxcrt" ]
|
||||
+ deps = [ ":lcms2_shim" ]
|
||||
+ libs = ["lcms2"]
|
||||
}
|
||||
|
||||
if (!build_with_chromium) {
|
169
qtwebengine/qtwebengine-5.15.3_p20220406-ffmpeg5.patch
Normal file
169
qtwebengine/qtwebengine-5.15.3_p20220406-ffmpeg5.patch
Normal file
@ -0,0 +1,169 @@
|
||||
From 05f6ffbbce0a2aad01dc05d682cbe4a1ec44fad5 Mon Sep 17 00:00:00 2001
|
||||
From: Antonio Rojas <arojas@archlinux.org>
|
||||
Date: Tue, 25 Jan 2022 10:51:58 +0000
|
||||
Subject: [PATCH] Fix build with ffmpeg 5
|
||||
|
||||
---
|
||||
chromium/media/ffmpeg/ffmpeg_common.h | 1 +
|
||||
chromium/media/filters/audio_file_reader.cc | 2 +-
|
||||
chromium/media/filters/ffmpeg_audio_decoder.cc | 2 +-
|
||||
chromium/media/filters/ffmpeg_demuxer.cc | 12 ++++++------
|
||||
chromium/media/filters/ffmpeg_glue.cc | 4 ----
|
||||
chromium/media/filters/ffmpeg_video_decoder.cc | 2 +-
|
||||
chromium/media/filters/media_file_checker.cc | 2 +-
|
||||
.../video_coding/codecs/h264/h264_decoder_impl.cc | 2 +-
|
||||
8 files changed, 12 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/chromium/media/ffmpeg/ffmpeg_common.h b/chromium/media/ffmpeg/ffmpeg_common.h
|
||||
index 2734a485cbd..70b1877a43c 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/chromium/media/filters/audio_file_reader.cc b/chromium/media/filters/audio_file_reader.cc
|
||||
index cb81d920def..bd73908d0ca 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/chromium/media/filters/ffmpeg_audio_decoder.cc b/chromium/media/filters/ffmpeg_audio_decoder.cc
|
||||
index 0d825ed791b..72fac6167ef 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/chromium/media/filters/ffmpeg_demuxer.cc b/chromium/media/filters/ffmpeg_demuxer.cc
|
||||
index d34db63f3ef..427565b00c1 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/chromium/media/filters/ffmpeg_glue.cc b/chromium/media/filters/ffmpeg_glue.cc
|
||||
index 0ef3521473d..8483ecc348f 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/chromium/media/filters/ffmpeg_video_decoder.cc b/chromium/media/filters/ffmpeg_video_decoder.cc
|
||||
index ef12477ee89..7996606f5f9 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/chromium/media/filters/media_file_checker.cc b/chromium/media/filters/media_file_checker.cc
|
||||
index 59c2a2fc618..1a9872c7acb 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/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc b/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
|
||||
index 9002b874611..d12fade8b63 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.
|
||||
--
|
||||
2.35.1
|
||||
|
Loading…
x
Reference in New Issue
Block a user