public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/riscv:master commit in: dev-qt/qtwebengine/, dev-qt/qtwebengine/files/
@ 2022-03-25  4:47 Yixun Lan
  0 siblings, 0 replies; 3+ messages in thread
From: Yixun Lan @ 2022-03-25  4:47 UTC (permalink / raw
  To: gentoo-commits

commit:     20714d617ef73390f25f6fec89f148ba5c336081
Author:     Yixun Lan <dlan <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 25 04:46:04 2022 +0000
Commit:     Yixun Lan <dlan <AT> gentoo <DOT> org>
CommitDate: Fri Mar 25 04:46:04 2022 +0000
URL:        https://gitweb.gentoo.org/proj/riscv.git/commit/?id=20714d61

dev-qt/qtwebengine: import from gentoo's official tree

original version without modification here

Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Yixun Lan <dlan <AT> gentoo.org>

 dev-qt/qtwebengine/Manifest                        |   3 +
 ...qtwebengine-5.15.2-disable-fatal-warnings.patch |  12 +
 .../files/qtwebengine-5.15.2-enable-ppc64.patch    |  37 +++
 .../files/qtwebengine-5.15.2-extra_gn.patch        |  12 +
 ...ine-5.15.2_p20210224-chromium-87-v8-icu68.patch | 192 +++++++++++++++
 .../qtwebengine-5.15.2_p20210224-disable-git.patch |  15 ++
 ...qtwebengine-5.15.2_p20210521-clang-libc++.patch |  10 +
 ...gine-5.15.2_p20211015-pdfium-system-lcms2.patch |  79 ++++++
 ...ngine-5.15.2_p20211210-sandbox-glibc-2.34.patch |  27 +++
 dev-qt/qtwebengine/metadata.xml                    |  34 +++
 .../qtwebengine-5.15.3_p20220310.ebuild            | 265 +++++++++++++++++++++
 11 files changed, 686 insertions(+)

diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest
new file mode 100644
index 0000000..24d4c40
--- /dev/null
+++ b/dev-qt/qtwebengine/Manifest
@@ -0,0 +1,3 @@
+DIST qtwebengine-5.15.2-r1-chromium87-ppc64le.tar.xz 28784 BLAKE2B aa101d14446f3282fda8932cc75a249d88b79319f0886d95777292776d94ac5f4fc114c3893b2801fbba6abb14f381172bb14b15b5ffef12413db3a16e4d1ca6 SHA512 3324e0076eb18e2ae2248428d2730cfb3413761514b2bb57e25b8db79248aaaa8098d9f7cebfa08f1a3b39b1d0a382aafed75c5ae8273918909335957921305e
+DIST qtwebengine-5.15.2_p20211019-jumbo-build.patch.bz2 2930 BLAKE2B fca1d1406874d04eafb64bb4d8730512a6307ba44fb99d76f428ca1bd4a303758e0c3bd8f92a59f7bcf62e5b767c5a8ed239028bdb74ad7a8b62abf88d38c101 SHA512 61cbfbe4ff340b75ea8d356e031e932ac03fe65dd009999ff897ca4b0185d1d989490daf75ffeaaabb3e92c870c11c7ff8ad2cd6372f5363b3d774b8ecca6d89
+DIST qtwebengine-5.15.3_p20220310.tar.xz 319290976 BLAKE2B 0a0e74e7d94e59d81687ceb4d791034d43daaeef887894acedc2d2568a8c74e4b7303440518d377c16de21a546e2609fdd89ab64c0664c230df4657cec9d399c SHA512 e57c7c51d0f27d116d2dc80043cb563a1dbce2357221ba87ae3c3b0e8c781e3ef09f69b8f6f20fcb7d85d596ae312b2f85ebc35ba7ee283ab30caa8f796fe2d6

diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2-disable-fatal-warnings.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2-disable-fatal-warnings.patch
new file mode 100644
index 0000000..b0f5f3d
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.2-disable-fatal-warnings.patch
@@ -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 \

diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2-enable-ppc64.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2-enable-ppc64.patch
new file mode 100644
index 0000000..4fb19cc
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.2-enable-ppc64.patch
@@ -0,0 +1,37 @@
+From 463f1234c57a36e78ff666bd55094a9d4e68f296 Mon Sep 17 00:00:00 2001
+From: q66 <daniel@octaforge.org>
+Date: Sat, 18 Jan 2020 23:52:55 +0100
+Subject: [PATCH 1/3] Enable ppc64 builds
+
+---
+ configure.pri                  | 1 +
+ mkspecs/features/functions.prf | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/configure.pri b/configure.pri
+index 3a144e3f8..cabe8b24a 100644
+--- a/configure.pri	2021-02-24 10:45:58.000000000 +0100
++++ -	2021-03-07 21:18:43.124754796 +0100
+@@ -144,6 +144,7 @@
+     contains(QT_ARCH, "arm")|contains(QT_ARCH, "arm64"): return(true)
+     contains(QT_ARCH, "mips"): return(true)
+     contains(QT_ARCH, "mips64"): return(true)
++    contains(QT_ARCH, "power64"): return(true)
+     qtLog("Architecture not supported.")
+     return(false)
+ }
+diff --git a/mkspecs/features/functions.prf b/mkspecs/features/functions.prf
+index 512e2523b..e31123654 100644
+--- a/mkspecs/features/functions.prf	2021-02-24 10:45:58.000000000 +0100
++++ -	2021-03-07 21:19:21.345036293 +0100
+@@ -107,6 +107,7 @@
+     contains(qtArch, "mips"): return(mipsel)
+     contains(qtArch, "mips64"): return(mips64el)
+     contains(qtArch, "mips64el"): return(mips64el)
++    contains(qtArch, "power64"): return(ppc64)
+     return(unknown)
+ }
+ 
+-- 
+2.26.0
+

diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2-extra_gn.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2-extra_gn.patch
new file mode 100644
index 0000000..0488122
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.2-extra_gn.patch
@@ -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()"

diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210224-chromium-87-v8-icu68.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210224-chromium-87-v8-icu68.patch
new file mode 100644
index 0000000..a685697
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210224-chromium-87-v8-icu68.patch
@@ -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.

diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210224-disable-git.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210224-disable-git.patch
new file mode 100644
index 0000000..c31e897
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210224-disable-git.patch
@@ -0,0 +1,15 @@
+generate_gni.sh: update_readme() runs git at the end of process, prevent it.
+
+Thanks-to: Georgy Yakovlev <gyakovlev@gentoo.org>
+
+--- a/src/3rdparty/chromium/third_party/libvpx/generate_gni.sh	2021-02-07 12:51:49.438514897 +0100
++++ b/src/3rdparty/chromium/third_party/libvpx/generate_gni.sh	2021-02-21 16:23:38.375724515 +0100
+@@ -519,8 +519,3 @@
+ 
+ gn format --in-place $BASE_DIR/BUILD.gn
+ gn format --in-place $BASE_DIR/libvpx_srcs.gni
+-
+-cd $BASE_DIR/$LIBVPX_SRC_DIR
+-update_readme
+-
+-cd $BASE_DIR

diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210521-clang-libc++.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210521-clang-libc++.patch
new file mode 100644
index 0000000..fdcc787
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210521-clang-libc++.patch
@@ -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\"
+             }

diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20211015-pdfium-system-lcms2.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20211015-pdfium-system-lcms2.patch
new file mode 100644
index 0000000..b3c2ffb
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20211015-pdfium-system-lcms2.patch
@@ -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) {

diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20211210-sandbox-glibc-2.34.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20211210-sandbox-glibc-2.34.patch
new file mode 100644
index 0000000..aac512a
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20211210-sandbox-glibc-2.34.patch
@@ -0,0 +1,27 @@
+Patch taken from www-client/chromium:
+https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-glibc-2.34.patch
+
+Dropped parts already upstream.
+
+diff --git a/src/3rdparty/chromium/sandbox/linux/services/credentials.cc b/src/3rdparty/chromium/sandbox/linux/services/credentials.cc
+index ca6b595..1c1ee42 100644
+--- a/src/3rdparty/chromium/sandbox/linux/services/credentials.cc
++++ b/src/3rdparty/chromium/sandbox/linux/services/credentials.cc
+@@ -11,6 +11,7 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <stdio.h>
++#include <string.h>
+ #include <sys/syscall.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
+@@ -100,7 +101,8 @@ bool ChrootToSafeEmptyDir() {
+   // TODO(crbug.com/1247458) Broken in MSan builds after LLVM f1bb30a4956f.
+   clone_flags |= CLONE_VM | CLONE_VFORK | CLONE_SETTLS;
+ 
+-  char tls_buf[PTHREAD_STACK_MIN] = {0};
++  char tls_buf[PTHREAD_STACK_MIN];
++  memset(tls_buf, 0, PTHREAD_STACK_MIN);
+   tls = tls_buf;
+ #endif
+ 

diff --git a/dev-qt/qtwebengine/metadata.xml b/dev-qt/qtwebengine/metadata.xml
new file mode 100644
index 0000000..fe0b26e
--- /dev/null
+++ b/dev-qt/qtwebengine/metadata.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="project">
+		<email>qt@gentoo.org</email>
+		<name>Gentoo Qt Project</name>
+	</maintainer>
+	<maintainer type="person">
+		<description>ppc64 patchset maintainer</description>
+		<email>gyakovlev@gentoo.org</email>
+		<name>Georgy Yakovlev</name>
+	</maintainer>
+	<use>
+		<flag name="designer">Install the QWebEngineView plugin used to add widgets in
+			<pkg>dev-qt/designer</pkg> forms that display web pages.</flag>
+		<flag name="geolocation">Enable physical position determination
+			via <pkg>dev-qt/qtpositioning</pkg></flag>
+		<flag name="jumbo-build">Combine source files to speed up build process.</flag>
+		<flag name="system-ffmpeg">Use the system-wide <pkg>media-video/ffmpeg</pkg>
+			instead of bundled.</flag>
+		<flag name="system-icu">Use the system-wide <pkg>dev-libs/icu</pkg>
+			instead of bundled.</flag>
+		<flag name="widgets">Enable QtWidgets support</flag>
+	</use>
+	<upstream>
+		<bugs-to>https://bugreports.qt.io/</bugs-to>
+		<doc>https://doc.qt.io/</doc>
+	</upstream>
+	<slots>
+		<subslots>
+			Must only be used by packages that are known to use private parts of the Qt API.
+		</subslots>
+	</slots>
+</pkgmetadata>

diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.3_p20220310.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.3_p20220310.ebuild
new file mode 100644
index 0000000..8c44a49
--- /dev/null
+++ b/dev-qt/qtwebengine/qtwebengine-5.15.3_p20220310.ebuild
@@ -0,0 +1,265 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="xml(+)"
+inherit check-reqs estack flag-o-matic multiprocessing python-any-r1 qt5-build toolchain-funcs
+
+DESCRIPTION="Library for rendering dynamic web content in Qt5 C++ and QML applications"
+HOMEPAGE="https://www.qt.io/"
+
+if [[ ${QT5_BUILD_TYPE} == release ]]; then
+	KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+	if [[ ${PV} == ${QT5_PV}_p* ]]; then
+		SRC_URI="https://dev.gentoo.org/~asturm/distfiles/${P}.tar.xz"
+		S="${WORKDIR}/${P}"
+		QT5_BUILD_DIR="${S}_build"
+	fi
+else
+	EGIT_BRANCH="5.15"
+	EGIT_REPO_URI=(
+		"https://code.qt.io/qt/${QT5_MODULE}.git"
+		"https://github.com/qt/${QT5_MODULE}.git"
+	)
+	inherit git-r3
+fi
+
+# ppc64 patchset based on https://github.com/chromium-ppc64le releases
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-5.15.2_p20211019-jumbo-build.patch.bz2
+	ppc64? ( https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-5.15.2-r1-chromium87-ppc64le.tar.xz )"
+
+IUSE="alsa bindist designer geolocation +jumbo-build kerberos pulseaudio +system-ffmpeg +system-icu widgets"
+REQUIRED_USE="designer? ( widgets )"
+
+RDEPEND="
+	app-arch/snappy:=
+	dev-libs/glib:2
+	dev-libs/nspr
+	dev-libs/nss
+	dev-libs/expat
+	dev-libs/libevent:=
+	dev-libs/libxml2[icu]
+	dev-libs/libxslt
+	dev-libs/re2:=
+	=dev-qt/qtcore-${QT5_PV}*
+	=dev-qt/qtdeclarative-${QT5_PV}*
+	=dev-qt/qtgui-${QT5_PV}*
+	=dev-qt/qtnetwork-${QT5_PV}*
+	=dev-qt/qtprintsupport-${QT5_PV}*
+	=dev-qt/qtwebchannel-${QT5_PV}*[qml]
+	media-libs/fontconfig
+	media-libs/freetype
+	media-libs/harfbuzz:=
+	media-libs/lcms:2
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:0=
+	>=media-libs/libvpx-1.5:=[svc(+)]
+	media-libs/libwebp:=
+	media-libs/opus
+	sys-apps/dbus
+	sys-apps/pciutils
+	sys-libs/zlib[minizip]
+	virtual/libudev
+	x11-libs/libdrm
+	x11-libs/libX11
+	x11-libs/libXcomposite
+	x11-libs/libXcursor
+	x11-libs/libXdamage
+	x11-libs/libXext
+	x11-libs/libXfixes
+	x11-libs/libXi
+	x11-libs/libxkbfile
+	x11-libs/libXrandr
+	x11-libs/libXrender
+	x11-libs/libXScrnSaver
+	x11-libs/libXtst
+	alsa? ( media-libs/alsa-lib )
+	designer? ( =dev-qt/designer-${QT5_PV}* )
+	geolocation? ( =dev-qt/qtpositioning-${QT5_PV}* )
+	kerberos? ( virtual/krb5 )
+	pulseaudio? ( media-sound/pulseaudio:= )
+	system-ffmpeg? ( media-video/ffmpeg:0= )
+	system-icu? ( >=dev-libs/icu-69.1:= )
+	widgets? (
+		=dev-qt/qtdeclarative-${QT5_PV}*[widgets]
+		=dev-qt/qtwidgets-${QT5_PV}*
+	)
+"
+DEPEND="${RDEPEND}
+	media-libs/libglvnd
+"
+BDEPEND="${PYTHON_DEPS}
+	dev-util/gperf
+	dev-util/ninja
+	dev-util/re2c
+	net-libs/nodejs[ssl]
+	sys-devel/bison
+	sys-devel/flex
+	ppc64? ( >=dev-util/gn-0.1807 )
+"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-5.15.2-disable-fatal-warnings.patch" # downstream, bug 695446
+	"${FILESDIR}/${PN}-5.15.2-extra_gn.patch" # downstream, bug 774186
+	"${FILESDIR}/${PN}-5.15.2_p20210224-chromium-87-v8-icu68.patch" # downstream, bug 757606
+	"${FILESDIR}/${PN}-5.15.2_p20210224-disable-git.patch" # downstream snapshot fix
+	"${FILESDIR}/${PN}-5.15.2_p20211015-pdfium-system-lcms2.patch" # by Debian, QTBUG-61746
+	"${WORKDIR}/${PN}-5.15.2_p20211019-jumbo-build.patch" # bug 813957
+)
+
+qtwebengine_check-reqs() {
+	# bug #307861
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		ewarn "You have enabled debug info (probably have -g or -ggdb in your CFLAGS/CXXFLAGS)."
+		ewarn "You may experience really long compilation times and/or increased memory usage."
+		ewarn "If compilation fails, please try removing -g/-ggdb before reporting a bug."
+	fi
+	eshopts_pop
+
+	[[ ${MERGE_TYPE} == binary ]] && return
+
+	# (check-reqs added for bug #570534)
+	#
+	# Estimate the amount of RAM required
+	# Multiplier is *10 because Bash doesn't do floating point maths.
+	# Let's crudely assume ~2GB per compiler job for GCC.
+	local multiplier=20
+
+	# And call it ~1.5GB for Clang.
+	if tc-is-clang ; then
+		multiplier=15
+	fi
+
+	local CHECKREQS_DISK_BUILD="7G"
+	local CHECKREQS_DISK_USR="150M"
+	if ! has "distcc" ${FEATURES} ; then
+		# bug #830661
+		# Not super realistic to come up with good estimates for distcc right now
+		local CHECKREQS_MEMORY=$(($(makeopts_jobs)*multiplier/10))G
+	fi
+
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	qtwebengine_check-reqs
+}
+
+pkg_setup() {
+	qtwebengine_check-reqs
+	python-any-r1_pkg_setup
+}
+
+src_unpack() {
+	case ${QT5_BUILD_TYPE} in
+		live)    git-r3_src_unpack ;&
+		release) default ;;
+	esac
+}
+
+src_prepare() {
+	if [[ ${PV} == ${QT5_PV}_p* ]]; then
+		# This is made from git, and for some reason will fail w/o .git directories.
+		mkdir -p .git src/3rdparty/chromium/.git || die
+	fi
+	# We need to make sure this integrates well into Qt 5.15.2 installation.
+	# Otherwise revdeps fail w/o heavy changes. This is the simplest way to do it.
+	# See also: https://www.qt.io/blog/building-qt-webengine-against-other-qt-versions
+	sed -e "/^MODULE_VERSION/s/5\.15\.[3456789]/${QT5_PV}/" -i .qmake.conf || die
+
+	# QTBUG-88657 - jumbo-build could still make trouble
+	if ! use jumbo-build; then
+		sed -i -e 's|use_jumbo_build=true|use_jumbo_build=false|' \
+			src/buildtools/config/common.pri || die
+	fi
+
+	# bug 620444 - ensure local headers are used
+	find "${S}" -type f -name "*.pr[fio]" | \
+		xargs sed -i -e 's|INCLUDEPATH += |&$${QTWEBENGINE_ROOT}_build/include $${QTWEBENGINE_ROOT}/include |' || die
+
+	if use system-icu; then
+		# Sanity check to ensure that bundled copy of ICU is not used.
+		# Whole src/3rdparty/chromium/third_party/icu directory cannot be deleted because
+		# src/3rdparty/chromium/third_party/icu/BUILD.gn is used by build system.
+		# If usage of headers of bundled copy of ICU occurs, then lists of shim headers in
+		# shim_headers("icui18n_shim") and shim_headers("icuuc_shim") in
+		# src/3rdparty/chromium/third_party/icu/BUILD.gn should be updated.
+		local file
+		while read file; do
+			echo "#error This file should not be used!" > "${file}" || die
+		done < <(find src/3rdparty/chromium/third_party/icu -type f "(" -name "*.c" -o -name "*.cpp" -o -name "*.h" ")" 2>/dev/null)
+	fi
+
+	# src/3rdparty/gn fails with libc++ due to passing of `-static-libstdc++`
+	if tc-is-clang && has_version 'sys-devel/clang[default-libcxx]'; then
+		eapply "${FILESDIR}/${PN}-5.15.2_p20210521-clang-libc++.patch"
+	fi
+
+	qt_use_disable_config alsa webengine-alsa src/buildtools/config/linux.pri
+	qt_use_disable_config pulseaudio webengine-pulseaudio src/buildtools/config/linux.pri
+
+	qt_use_disable_mod designer webenginewidgets src/plugins/plugins.pro
+
+	qt_use_disable_mod widgets widgets src/src.pro
+
+	qt5-build_src_prepare
+
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	if use ppc64; then
+		einfo "Patching for ppc64le and generating build files"
+		eapply "${FILESDIR}/qtwebengine-5.15.2-enable-ppc64.patch"
+		pushd src/3rdparty/chromium > /dev/null || die
+		eapply -p0 "${WORKDIR}/${PN}-ppc64le"
+		popd > /dev/null || die
+		pushd src/3rdparty/chromium/third_party/libvpx > /dev/null || die
+		mkdir -vp source/config/linux/ppc64 || die
+		mkdir -p source/libvpx/test || die
+		touch source/libvpx/test/test.mk || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+	fi
+}
+
+src_configure() {
+	export NINJA_PATH=/usr/bin/ninja
+	export NINJAFLAGS="${NINJAFLAGS:--j$(makeopts_jobs) -l$(makeopts_loadavg "${MAKEOPTS}" 0) -v}"
+
+	local myqmakeargs=(
+		--
+		-no-build-qtpdf
+		-printing-and-pdf
+		-system-opus
+		-system-webp
+		$(qt_use alsa)
+		$(qt_use !bindist proprietary-codecs)
+		$(qt_use geolocation webengine-geolocation)
+		$(qt_use kerberos webengine-kerberos)
+		$(qt_use pulseaudio)
+		$(usex system-ffmpeg -system-ffmpeg -qt-ffmpeg)
+		$(qt_use system-icu webengine-icu)
+	)
+	qt5-build_src_configure
+}
+
+src_install() {
+	qt5-build_src_install
+
+	# bug 601472
+	if [[ ! -f ${D}${QT5_LIBDIR}/libQt5WebEngine.so ]]; then
+		die "${CATEGORY}/${PF} failed to build anything. Please report to https://bugs.gentoo.org/"
+	fi
+}
+
+pkg_preinst() {
+	elog "This version of Qt WebEngine is based on Chromium version 87.0.4280, with"
+	elog "additional security fixes from newer versions. Extensive as it is, the"
+	elog "list of backports is impossible to evaluate, but always bound to be behind"
+	elog "Chromium's release schedule."
+	elog "In addition, various online services may deny service based on an outdated"
+	elog "user agent version (and/or other checks). Google is already known to do so."
+	elog
+	elog "tldr: Your web browsing experience will be compromised."
+}


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] proj/riscv:master commit in: dev-qt/qtwebengine/, dev-qt/qtwebengine/files/
@ 2022-04-26  7:12 Yixun Lan
  0 siblings, 0 replies; 3+ messages in thread
From: Yixun Lan @ 2022-04-26  7:12 UTC (permalink / raw
  To: gentoo-commits

commit:     29caf025e40ccc3e701974a4785e0fe353af9ea6
Author:     Han Gao <rabenda.cn <AT> gmail <DOT> com>
AuthorDate: Mon Apr 25 16:10:44 2022 +0000
Commit:     Yixun Lan <dlan <AT> gentoo <DOT> org>
CommitDate: Tue Apr 26 06:56:11 2022 +0000
URL:        https://gitweb.gentoo.org/proj/riscv.git/commit/?id=29caf025

dev-qt/qtwebengine: sync gentoo main tree

Signed-off-by: Han Gao <rabenda.cn <AT> gmail.com>
Signed-off-by: Yixun Lan <dlan <AT> gentoo.org>

 dev-qt/qtwebengine/Manifest                        |   2 +
 .../qtwebengine-5.15.3_p20220329-clang14.patch     |  42 ++++
 .../qtwebengine-5.15.3_p20220406-ffmpeg5.patch     | 169 +++++++++++++
 dev-qt/qtwebengine/metadata.xml                    |  13 +-
 .../qtwebengine-5.15.3_p20220406.ebuild            | 274 +++++++++++++++++++++
 5 files changed, 492 insertions(+), 8 deletions(-)

diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest
index f69e1d9..dc9b5d7 100644
--- a/dev-qt/qtwebengine/Manifest
+++ b/dev-qt/qtwebengine/Manifest
@@ -2,3 +2,5 @@ DIST qtwebengine-5.15.2-r1-chromium87-ppc64le.tar.xz 28784 BLAKE2B aa101d14446f3
 DIST qtwebengine-5.15.2_p20211019-jumbo-build.patch.bz2 2930 BLAKE2B fca1d1406874d04eafb64bb4d8730512a6307ba44fb99d76f428ca1bd4a303758e0c3bd8f92a59f7bcf62e5b767c5a8ed239028bdb74ad7a8b62abf88d38c101 SHA512 61cbfbe4ff340b75ea8d356e031e932ac03fe65dd009999ff897ca4b0185d1d989490daf75ffeaaabb3e92c870c11c7ff8ad2cd6372f5363b3d774b8ecca6d89
 DIST qtwebengine-5.15.3-riscv-0.tar.xz 189688 BLAKE2B 987b09aa79d1bb425e23a9d4573d46dc1f470b7abf169a446317b68b42a131fa9fb3f1839d0589858a91949759ec1909b0488deeb40863a362fd28307c7b5bb0 SHA512 1e6aaa13118eaba839e82482f30ba14843bcd67bc4c42a38bf09e1f89bb53175dedcf74ddbd68ea9821dc36645f23de3e63211de2a82962ae6ada49f520bc4f6
 DIST qtwebengine-5.15.3_p20220310.tar.xz 319290976 BLAKE2B 0a0e74e7d94e59d81687ceb4d791034d43daaeef887894acedc2d2568a8c74e4b7303440518d377c16de21a546e2609fdd89ab64c0664c230df4657cec9d399c SHA512 e57c7c51d0f27d116d2dc80043cb563a1dbce2357221ba87ae3c3b0e8c781e3ef09f69b8f6f20fcb7d85d596ae312b2f85ebc35ba7ee283ab30caa8f796fe2d6
+DIST qtwebengine-5.15.3_p20220406-patchset.tar.xz 35480 BLAKE2B ce6aeebbb3255196611130d04ee7a3907ba45d6d2a283f2433e2176cf67e473e74137b180de0a9998762cc54439bb06825815e81e9f95f9413ce2956ac9308b7 SHA512 47e29a1429dce2db324929af91c8ef8421c75ae48f5a491db71b434f8017a5b1e7475e9938989e331e8e012220852848565242e09747892e1a8a8d3ab7386840
+DIST qtwebengine-5.15.3_p20220406.tar.xz 318979648 BLAKE2B 3aba9293c52f96379cfe37c418c7a29a28e2fc0a8526d35452bef28c03b101054131d0daf75f07f058f80fbd42678b6bd24733573318169908f1d5e18d147db8 SHA512 80bf51b547cc8e15473652327a0cb753211911e8c98b1cb8b2cd696af923e79eccdc74aa4b68b6184c74ceb3a9bd708c7313f48eab4381ebeaac8192daa163b6

diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220329-clang14.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220329-clang14.patch
new file mode 100644
index 0000000..c1a98d0
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220329-clang14.patch
@@ -0,0 +1,42 @@
+From 0825e7bc64e47d87e1f1026cc80c933550f114f5 Mon Sep 17 00:00:00 2001
+From: Dimitry Andric <dim@FreeBSD.org>
+Date: Mon, 14 Feb 2022 13:55:25 +0100
+Subject: www/qt5-webengine: fix build with clang 14
+
+Fixes compile error:
+
+In file included from gen/third_party/blink/renderer/platform/platform_jumbo_63.cc:8:
+src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc:122:15: error: anonymous non-C-compatible type given name for linkage purposes by typedef declaration after its linkage was computed; add a tag name here to establish linkage prior to definition
+typedef struct {
+              ^
+               UTextWithBuffer
+src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc:123:3: note: type is not C-compatible due to this member declaration
+  DISALLOW_NEW();
+  ^~~~~~~~~~~~~~
+src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/allocator/allocator.h:40:2: note: expanded from macro 'DISALLOW_NEW'
+ public:                                                                      \
+ ^~~~~~~
+src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc:126:3: note: type is given name 'UTextWithBuffer' for linkage purposes by this typedef declaration
+} UTextWithBuffer;
+  ^
+
+PR:		261949
+Approved by:	adridg (maintainer)
+MFH:		2022Q1
+
+--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc
++++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator_icu.cc
+@@ -119,11 +119,11 @@ enum TextContext { kNoContext, kPriorContext, kPrimary
+ 
+ const int kTextBufferCapacity = 16;
+ 
+-typedef struct {
++struct UTextWithBuffer {
+   DISALLOW_NEW();
+   UText text;
+   UChar buffer[kTextBufferCapacity];
+-} UTextWithBuffer;
++};
+ 
+ static inline int64_t TextPinIndex(int64_t& index, int64_t limit) {
+   if (index < 0)

diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220406-ffmpeg5.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220406-ffmpeg5.patch
new file mode 100644
index 0000000..15c1926
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220406-ffmpeg5.patch
@@ -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
+

diff --git a/dev-qt/qtwebengine/metadata.xml b/dev-qt/qtwebengine/metadata.xml
index fe0b26e..cbcf0f7 100644
--- a/dev-qt/qtwebengine/metadata.xml
+++ b/dev-qt/qtwebengine/metadata.xml
@@ -11,15 +11,12 @@
 		<name>Georgy Yakovlev</name>
 	</maintainer>
 	<use>
-		<flag name="designer">Install the QWebEngineView plugin used to add widgets in
-			<pkg>dev-qt/designer</pkg> forms that display web pages.</flag>
-		<flag name="geolocation">Enable physical position determination
-			via <pkg>dev-qt/qtpositioning</pkg></flag>
+		<flag name="designer">Install the QWebEngineView plugin used to add widgets in <pkg>dev-qt/designer</pkg> forms that display web pages.</flag>
+		<flag name="geolocation">Enable physical position determination via <pkg>dev-qt/qtpositioning</pkg></flag>
 		<flag name="jumbo-build">Combine source files to speed up build process.</flag>
-		<flag name="system-ffmpeg">Use the system-wide <pkg>media-video/ffmpeg</pkg>
-			instead of bundled.</flag>
-		<flag name="system-icu">Use the system-wide <pkg>dev-libs/icu</pkg>
-			instead of bundled.</flag>
+		<flag name="screencast">Enable support for remote desktop and screen cast using <pkg>media-video/pipewire</pkg></flag>
+		<flag name="system-ffmpeg">Use the system-wide <pkg>media-video/ffmpeg</pkg> instead of bundled.</flag>
+		<flag name="system-icu">Use the system-wide <pkg>dev-libs/icu</pkg> instead of bundled.</flag>
 		<flag name="widgets">Enable QtWidgets support</flag>
 	</use>
 	<upstream>

diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.3_p20220406.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.3_p20220406.ebuild
new file mode 100644
index 0000000..2cc0403
--- /dev/null
+++ b/dev-qt/qtwebengine/qtwebengine-5.15.3_p20220406.ebuild
@@ -0,0 +1,274 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10} )
+PYTHON_REQ_USE="xml(+)"
+inherit check-reqs estack flag-o-matic multiprocessing python-any-r1 qt5-build toolchain-funcs
+
+DESCRIPTION="Library for rendering dynamic web content in Qt5 C++ and QML applications"
+HOMEPAGE="https://www.qt.io/"
+
+if [[ ${QT5_BUILD_TYPE} == release ]]; then
+	KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+	if [[ ${PV} == ${QT5_PV}_p* ]]; then
+		SRC_URI="https://dev.gentoo.org/~asturm/distfiles/${P}.tar.xz"
+		S="${WORKDIR}/${P}"
+		QT5_BUILD_DIR="${S}_build"
+	fi
+else
+	EGIT_BRANCH="5.15"
+	EGIT_REPO_URI=(
+		"https://code.qt.io/qt/${QT5_MODULE}.git"
+		"https://github.com/qt/${QT5_MODULE}.git"
+	)
+	inherit git-r3
+fi
+
+# ppc64 patchset based on https://github.com/chromium-ppc64le releases
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-5.15.2_p20211019-jumbo-build.patch.bz2
+	https://dev.gentoo.org/~asturm/distfiles/${PN}-5.15.3_p20220406-patchset.tar.xz
+	ppc64? ( https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-5.15.2-r1-chromium87-ppc64le.tar.xz )"
+
+IUSE="alsa bindist designer geolocation +jumbo-build kerberos pulseaudio screencast +system-ffmpeg +system-icu widgets"
+REQUIRED_USE="designer? ( widgets )"
+
+RDEPEND="
+	app-arch/snappy:=
+	dev-libs/glib:2
+	dev-libs/nspr
+	dev-libs/nss
+	dev-libs/expat
+	dev-libs/libevent:=
+	dev-libs/libxml2[icu]
+	dev-libs/libxslt
+	dev-libs/re2:=
+	=dev-qt/qtcore-${QT5_PV}*
+	=dev-qt/qtdeclarative-${QT5_PV}*
+	=dev-qt/qtgui-${QT5_PV}*
+	=dev-qt/qtnetwork-${QT5_PV}*
+	=dev-qt/qtprintsupport-${QT5_PV}*
+	=dev-qt/qtwebchannel-${QT5_PV}*[qml]
+	media-libs/fontconfig
+	media-libs/freetype
+	media-libs/harfbuzz:=
+	media-libs/lcms:2
+	media-libs/libjpeg-turbo:=
+	media-libs/libpng:0=
+	>=media-libs/libvpx-1.5:=[svc(+)]
+	media-libs/libwebp:=
+	media-libs/opus
+	sys-apps/dbus
+	sys-apps/pciutils
+	sys-libs/zlib[minizip]
+	virtual/libudev
+	x11-libs/libdrm
+	x11-libs/libX11
+	x11-libs/libXcomposite
+	x11-libs/libXcursor
+	x11-libs/libXdamage
+	x11-libs/libXext
+	x11-libs/libXfixes
+	x11-libs/libXi
+	x11-libs/libxkbfile
+	x11-libs/libXrandr
+	x11-libs/libXrender
+	x11-libs/libXScrnSaver
+	x11-libs/libXtst
+	alsa? ( media-libs/alsa-lib )
+	designer? ( =dev-qt/designer-${QT5_PV}* )
+	geolocation? ( =dev-qt/qtpositioning-${QT5_PV}* )
+	kerberos? ( virtual/krb5 )
+	pulseaudio? ( media-sound/pulseaudio:= )
+	screencast? ( media-video/pipewire:= )
+	system-ffmpeg? ( media-video/ffmpeg:0= )
+	system-icu? ( >=dev-libs/icu-69.1:= )
+	widgets? (
+		=dev-qt/qtdeclarative-${QT5_PV}*[widgets]
+		=dev-qt/qtwidgets-${QT5_PV}*
+	)
+"
+DEPEND="${RDEPEND}
+	media-libs/libglvnd
+"
+BDEPEND="${PYTHON_DEPS}
+	dev-util/gperf
+	dev-util/ninja
+	dev-util/re2c
+	net-libs/nodejs[ssl]
+	sys-devel/bison
+	sys-devel/flex
+	ppc64? ( >=dev-util/gn-0.1807 )
+"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-5.15.2-disable-fatal-warnings.patch" # downstream, bug 695446
+	"${FILESDIR}/${PN}-5.15.2-extra_gn.patch" # downstream, bug 774186
+	"${FILESDIR}/${PN}-5.15.2_p20210224-chromium-87-v8-icu68.patch" # downstream, bug 757606
+	"${FILESDIR}/${PN}-5.15.2_p20210224-disable-git.patch" # downstream snapshot fix
+	"${FILESDIR}/${PN}-5.15.2_p20211015-pdfium-system-lcms2.patch" # by Debian, QTBUG-61746
+	"${FILESDIR}/${PN}-5.15.3_p20220329-clang14.patch" # by FreeBSD, bug 836604
+	"${WORKDIR}/${PN}-5.15.2_p20211019-jumbo-build.patch" # bug 813957
+	"${WORKDIR}/${PN}-5.15.3_p20220406-patchset" # bug 698988 (py2--), pipewire-3
+)
+
+qtwebengine_check-reqs() {
+	# bug #307861
+	eshopts_push -s extglob
+	if is-flagq '-g?(gdb)?([1-9])'; then
+		ewarn "You have enabled debug info (probably have -g or -ggdb in your CFLAGS/CXXFLAGS)."
+		ewarn "You may experience really long compilation times and/or increased memory usage."
+		ewarn "If compilation fails, please try removing -g/-ggdb before reporting a bug."
+	fi
+	eshopts_pop
+
+	[[ ${MERGE_TYPE} == binary ]] && return
+
+	# (check-reqs added for bug #570534)
+	#
+	# Estimate the amount of RAM required
+	# Multiplier is *10 because Bash doesn't do floating point maths.
+	# Let's crudely assume ~2GB per compiler job for GCC.
+	local multiplier=20
+
+	# And call it ~1.5GB for Clang.
+	if tc-is-clang ; then
+		multiplier=15
+	fi
+
+	local CHECKREQS_DISK_BUILD="7G"
+	local CHECKREQS_DISK_USR="150M"
+	if ! has "distcc" ${FEATURES} ; then
+		# bug #830661
+		# Not super realistic to come up with good estimates for distcc right now
+		local CHECKREQS_MEMORY=$(($(makeopts_jobs)*multiplier/10))G
+	fi
+
+	check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+	qtwebengine_check-reqs
+}
+
+pkg_setup() {
+	qtwebengine_check-reqs
+	python-any-r1_pkg_setup
+}
+
+src_unpack() {
+	case ${QT5_BUILD_TYPE} in
+		live)    git-r3_src_unpack ;&
+		release) default ;;
+	esac
+}
+
+src_prepare() {
+	if [[ ${PV} == ${QT5_PV}_p* ]]; then
+		# This is made from git, and for some reason will fail w/o .git directories.
+		mkdir -p .git src/3rdparty/chromium/.git || die
+	fi
+	# We need to make sure this integrates well into Qt 5.15.3 installation.
+	# Otherwise revdeps fail w/o heavy changes. This is the simplest way to do it.
+	# See also: https://www.qt.io/blog/building-qt-webengine-against-other-qt-versions
+	sed -E "/^MODULE_VERSION/s/5\.15\.[0-9]+/${QT5_PV}/" -i .qmake.conf || die
+
+	# QTBUG-88657 - jumbo-build could still make trouble
+	if ! use jumbo-build; then
+		sed -i -e 's|use_jumbo_build=true|use_jumbo_build=false|' \
+			src/buildtools/config/common.pri || die
+	fi
+
+	# bug 620444 - ensure local headers are used
+	find "${S}" -type f -name "*.pr[fio]" | \
+		xargs sed -i -e 's|INCLUDEPATH += |&$${QTWEBENGINE_ROOT}_build/include $${QTWEBENGINE_ROOT}/include |' || die
+
+	if use system-icu; then
+		# Sanity check to ensure that bundled copy of ICU is not used.
+		# Whole src/3rdparty/chromium/third_party/icu directory cannot be deleted because
+		# src/3rdparty/chromium/third_party/icu/BUILD.gn is used by build system.
+		# If usage of headers of bundled copy of ICU occurs, then lists of shim headers in
+		# shim_headers("icui18n_shim") and shim_headers("icuuc_shim") in
+		# src/3rdparty/chromium/third_party/icu/BUILD.gn should be updated.
+		local file
+		while read file; do
+			echo "#error This file should not be used!" > "${file}" || die
+		done < <(find src/3rdparty/chromium/third_party/icu -type f "(" -name "*.c" -o -name "*.cpp" -o -name "*.h" ")" 2>/dev/null)
+	fi
+
+	# src/3rdparty/gn fails with libc++ due to passing of `-static-libstdc++`
+	if tc-is-clang && has_version 'sys-devel/clang[default-libcxx]'; then
+		eapply "${FILESDIR}/${PN}-5.15.2_p20210521-clang-libc++.patch"
+	fi
+
+	if use system-ffmpeg && has_version '>=media-video/ffmpeg-5'; then
+		eapply "${FILESDIR}/${PN}-5.15.3_p20220406-ffmpeg5.patch" # by Archlinux, bug 831437
+	fi
+
+	qt_use_disable_config alsa webengine-alsa src/buildtools/config/linux.pri
+	qt_use_disable_config pulseaudio webengine-pulseaudio src/buildtools/config/linux.pri
+
+	qt_use_disable_mod designer webenginewidgets src/plugins/plugins.pro
+
+	qt_use_disable_mod widgets widgets src/src.pro
+
+	qt5-build_src_prepare
+
+	# we need to generate ppc64 stuff because upstream does not ship it yet
+	if use ppc64; then
+		einfo "Patching for ppc64le and generating build files"
+		eapply "${FILESDIR}/qtwebengine-5.15.2-enable-ppc64.patch"
+		pushd src/3rdparty/chromium > /dev/null || die
+		eapply -p0 "${WORKDIR}/${PN}-ppc64le"
+		popd > /dev/null || die
+		pushd src/3rdparty/chromium/third_party/libvpx > /dev/null || die
+		mkdir -vp source/config/linux/ppc64 || die
+		mkdir -p source/libvpx/test || die
+		touch source/libvpx/test/test.mk || die
+		./generate_gni.sh || die
+		popd >/dev/null || die
+	fi
+}
+
+src_configure() {
+	export NINJA_PATH=/usr/bin/ninja
+	export NINJAFLAGS="${NINJAFLAGS:--j$(makeopts_jobs) -l$(makeopts_loadavg "${MAKEOPTS}" 0) -v}"
+
+	local myqmakeargs=(
+		--
+		-no-build-qtpdf
+		-printing-and-pdf
+		-system-opus
+		-system-webp
+		$(qt_use alsa)
+		$(qt_use !bindist proprietary-codecs)
+		$(qt_use geolocation webengine-geolocation)
+		$(qt_use kerberos webengine-kerberos)
+		$(qt_use pulseaudio)
+		$(usex screencast -webengine-webrtc-pipewire '')
+		$(usex system-ffmpeg -system-ffmpeg -qt-ffmpeg)
+		$(qt_use system-icu webengine-icu)
+	)
+	qt5-build_src_configure
+}
+
+src_install() {
+	qt5-build_src_install
+
+	# bug 601472
+	if [[ ! -f ${D}${QT5_LIBDIR}/libQt5WebEngine.so ]]; then
+		die "${CATEGORY}/${PF} failed to build anything. Please report to https://bugs.gentoo.org/"
+	fi
+}
+
+pkg_preinst() {
+	elog "This version of Qt WebEngine is based on Chromium version 87.0.4280, with"
+	elog "additional security fixes from newer versions. Extensive as it is, the"
+	elog "list of backports is impossible to evaluate, but always bound to be behind"
+	elog "Chromium's release schedule."
+	elog "In addition, various online services may deny service based on an outdated"
+	elog "user agent version (and/or other checks). Google is already known to do so."
+	elog
+	elog "tldr: Your web browsing experience will be compromised."
+}


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] proj/riscv:master commit in: dev-qt/qtwebengine/, dev-qt/qtwebengine/files/
@ 2022-08-18  7:49 Yixun Lan
  0 siblings, 0 replies; 3+ messages in thread
From: Yixun Lan @ 2022-08-18  7:49 UTC (permalink / raw
  To: gentoo-commits

commit:     5669bb8614bcc28fe7567b5a60fb4b91f97296ee
Author:     Han Gao <rabenda.cn <AT> gmail <DOT> com>
AuthorDate: Wed Aug 10 06:40:11 2022 +0000
Commit:     Yixun Lan <dlan <AT> gentoo <DOT> org>
CommitDate: Thu Aug 18 07:49:23 2022 +0000
URL:        https://gitweb.gentoo.org/proj/riscv.git/commit/?id=5669bb86

dev-qt/qtwebengine: sync maintree

Signed-off-by: Han Gao <rabenda.cn <AT> gmail.com>
Signed-off-by: Yixun Lan <dlan <AT> gentoo.org>

 dev-qt/qtwebengine/Manifest                        |  3 +-
 .../files/qtwebengine-5.15.2-extra_gn.patch        | 12 ------
 ...webengine-5.15.3_p20220406-gcc12-includes.patch | 32 +++++++++++++++
 .../qtwebengine-5.15.3_p20220505-extra-gn.patch    | 10 +++++
 ...gine-5.15.5_p20220618-fixup-CVE-2022-0796.patch | 48 ++++++++++++++++++++++
 ....ebuild => qtwebengine-5.15.5_p20220618.ebuild} | 22 ++++++----
 6 files changed, 104 insertions(+), 23 deletions(-)

diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest
index ca85627..282326e 100644
--- a/dev-qt/qtwebengine/Manifest
+++ b/dev-qt/qtwebengine/Manifest
@@ -1,5 +1,4 @@
 DIST qtwebengine-5.15.2-r1-chromium87-ppc64le.tar.xz 28784 BLAKE2B aa101d14446f3282fda8932cc75a249d88b79319f0886d95777292776d94ac5f4fc114c3893b2801fbba6abb14f381172bb14b15b5ffef12413db3a16e4d1ca6 SHA512 3324e0076eb18e2ae2248428d2730cfb3413761514b2bb57e25b8db79248aaaa8098d9f7cebfa08f1a3b39b1d0a382aafed75c5ae8273918909335957921305e
 DIST qtwebengine-5.15.2_p20211019-jumbo-build.patch.bz2 2930 BLAKE2B fca1d1406874d04eafb64bb4d8730512a6307ba44fb99d76f428ca1bd4a303758e0c3bd8f92a59f7bcf62e5b767c5a8ed239028bdb74ad7a8b62abf88d38c101 SHA512 61cbfbe4ff340b75ea8d356e031e932ac03fe65dd009999ff897ca4b0185d1d989490daf75ffeaaabb3e92c870c11c7ff8ad2cd6372f5363b3d774b8ecca6d89
-DIST qtwebengine-5.15.3-riscv-0.tar.xz 189688 BLAKE2B 987b09aa79d1bb425e23a9d4573d46dc1f470b7abf169a446317b68b42a131fa9fb3f1839d0589858a91949759ec1909b0488deeb40863a362fd28307c7b5bb0 SHA512 1e6aaa13118eaba839e82482f30ba14843bcd67bc4c42a38bf09e1f89bb53175dedcf74ddbd68ea9821dc36645f23de3e63211de2a82962ae6ada49f520bc4f6
 DIST qtwebengine-5.15.3_p20220406-patchset.tar.xz 35480 BLAKE2B ce6aeebbb3255196611130d04ee7a3907ba45d6d2a283f2433e2176cf67e473e74137b180de0a9998762cc54439bb06825815e81e9f95f9413ce2956ac9308b7 SHA512 47e29a1429dce2db324929af91c8ef8421c75ae48f5a491db71b434f8017a5b1e7475e9938989e331e8e012220852848565242e09747892e1a8a8d3ab7386840
-DIST qtwebengine-5.15.3_p20220406.tar.xz 318979648 BLAKE2B 3aba9293c52f96379cfe37c418c7a29a28e2fc0a8526d35452bef28c03b101054131d0daf75f07f058f80fbd42678b6bd24733573318169908f1d5e18d147db8 SHA512 80bf51b547cc8e15473652327a0cb753211911e8c98b1cb8b2cd696af923e79eccdc74aa4b68b6184c74ceb3a9bd708c7313f48eab4381ebeaac8192daa163b6
+DIST qtwebengine-5.15.5_p20220618.tar.xz 320131236 BLAKE2B 842322c94737cdf647277ccf226c0d015ac0b362af54c4298cbad6b4494aa4ef0e73830577fb391be31c91b4331b85f407ec58641897a7cc7237e7623043577d SHA512 b1bab7aa5edc7f7b9d4f8338a05dbbd55ae6e0312e1a7e6061895bd7a98c67780127c20db1dbbc81664bf483a5b8f7ed887cedd1baaa1a0259e28fd4b13d6944

diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2-extra_gn.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2-extra_gn.patch
deleted file mode 100644
index 0488122..0000000
--- a/dev-qt/qtwebengine/files/qtwebengine-5.15.2-extra_gn.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-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()"

diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220406-gcc12-includes.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220406-gcc12-includes.patch
new file mode 100644
index 0000000..cd47656
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220406-gcc12-includes.patch
@@ -0,0 +1,32 @@
+https://build.opensuse.org/package/view_file/KDE:Qt:5.15/libqt5-qtwebengine/0001-skia-Some-includes-to-fix-build-with-GCC-12.patch?expand=1
+https://bugs.gentoo.org/840326
+
+From 68799a1e0815b20ca59ce354a55280399257a201 Mon Sep 17 00:00:00 2001
+From: Fabian Vogt <fvogt@suse.de>
+Date: Fri, 25 Mar 2022 15:29:28 +0100
+Subject: [PATCH] skia: Some includes to fix build with GCC 12
+
+Those includes got introduced upstream for other reasons and fixed building
+with GCC 12 as a side effect.
+--- a/src/3rdparty/chromium/third_party/skia/include/core/SkColor.h
++++ b/src/3rdparty/chromium/third_party/skia/include/core/SkColor.h
+@@ -12,6 +12,8 @@
+ #include "include/core/SkScalar.h"
+ #include "include/core/SkTypes.h"
+ 
++#include <array>
++
+ /** \file SkColor.h
+ 
+     Types, consts, functions, and macros for colors.
+--- a/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
++++ b/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
+@@ -8,6 +8,8 @@
+ 
+ #include "include/utils/SkParse.h"
+ 
++#include <algorithm> // std::lower_bound
++
+ static constexpr const char* gColorNames[] = {
+     "aliceblue",
+     "antiquewhite",

diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220505-extra-gn.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220505-extra-gn.patch
new file mode 100644
index 0000000..a319f52
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220505-extra-gn.patch
@@ -0,0 +1,10 @@
+--- a/src/core/gn_run.pro
++++ b/src/core/gn_run.pro
+@@ -64,6 +64,7 @@
+         }
+     } else {
+         gn_args+= "qtwebengine_target=\"$$system_path($$OUT_PWD/$$getConfigDir()):QtWebEngineCore\""
++        gn_args += $$(EXTRA_GN)
+         gn_args = $$system_quote($$gn_args)
+         gn_build_root = $$system_quote($$system_path($$OUT_PWD/$$getConfigDir()))
+         gn_run = $$gn_binary gen $$gn_build_root $$gn_python --args=$$gn_args --root=$$gn_src_root

diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.5_p20220618-fixup-CVE-2022-0796.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.5_p20220618-fixup-CVE-2022-0796.patch
new file mode 100644
index 0000000..c38bf1b
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.5_p20220618-fixup-CVE-2022-0796.patch
@@ -0,0 +1,48 @@
+From 7e11d69b957595a172a3eb60db17141daed29d63 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michael=20Br=C3=BCning?= <michael.bruning@qt.io>
+Date: Mon, 20 Jun 2022 17:19:58 +0200
+Subject: Fixup: CVE-2022-0796: Use after free in Media
+
+Commit ecc2bb74f1f accidentally introduced a build break due to an
+apparent typo.
+
+This fixes it.
+
+Change-Id: I746c6f10ecd2b212b847a291677e24e527d6b922
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ chromium/content/renderer/media/batching_media_log.h | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/3rdparty/chromium/content/renderer/media/batching_media_log.h b/src/3rdparty/chromium/content/renderer/media/batching_media_log.h
+index b68535aea42..a28d426878f 100644
+--- a/src/3rdparty/chromium/content/renderer/media/batching_media_log.h
++++ b/src/3rdparty/chromium/content/renderer/media/batching_media_log.h
+@@ -72,18 +72,18 @@ class CONTENT_EXPORT BatchingMediaLog : public media::MediaLog {
+   // guarantees provided by MediaLog, since SendQueuedMediaEvents must also
+   // be synchronized with respect to AddEvent.
+   mutable base::Lock lock_;
+-  const base::TickClock* tick_clock_ GUARDED_BY(LOCK);
+-  base::TimeTicks last_ipc_send_time_ GUARDED_BY(LOCK);
+-  std::vector<media::MediaLogRecord> queued_media_events_ GUARDED_BY(LOCK);
++  const base::TickClock* tick_clock_ GUARDED_BY(lock_);
++  base::TimeTicks last_ipc_send_time_ GUARDED_BY(lock_);
++  std::vector<media::MediaLogRecord> queued_media_events_ GUARDED_BY(lock_);
+ 
+   // impl for sending queued events.
+-  std::vector<std::unique_ptr<EventHandler>> event_handlers_ GUARDED_BY(LOCK);
++  std::vector<std::unique_ptr<EventHandler>> event_handlers_ GUARDED_BY(lock_);
+ 
+   // For enforcing max 1 pending send.
+-  bool ipc_send_pending_ GUARDED_BY(LOCK);
++  bool ipc_send_pending_ GUARDED_BY(lock_);
+ 
+   // Limits the number of events we send over IPC to one.
+-  std::unique_ptr<media::MediaLogRecord> last_duration_changed_event_ GUARDED_BY(LOCK);
++  std::unique_ptr<media::MediaLogRecord> last_duration_changed_event_ GUARDED_BY(lock_);
+ 
+   // Holds the earliest MEDIA_ERROR_LOG_ENTRY event added to this log. This is
+   // most likely to contain the most specific information available describing
+-- 
+cgit v1.2.1
+

diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.3_p20220406.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.5_p20220618.ebuild
similarity index 92%
rename from dev-qt/qtwebengine/qtwebengine-5.15.3_p20220406.ebuild
rename to dev-qt/qtwebengine/qtwebengine-5.15.5_p20220618.ebuild
index 802ae75..b1d2486 100644
--- a/dev-qt/qtwebengine/qtwebengine-5.15.3_p20220406.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-5.15.5_p20220618.ebuild
@@ -11,7 +11,7 @@ DESCRIPTION="Library for rendering dynamic web content in Qt5 C++ and QML applic
 HOMEPAGE="https://www.qt.io/"
 
 if [[ ${QT5_BUILD_TYPE} == release ]]; then
-	KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+	KEYWORDS="amd64 ~arm arm64 ~ppc64 x86"
 	if [[ ${PV} == ${QT5_PV}_p* ]]; then
 		SRC_URI="https://dev.gentoo.org/~asturm/distfiles/${P}.tar.xz"
 		S="${WORKDIR}/${P}"
@@ -29,7 +29,6 @@ fi
 # ppc64 patchset based on https://github.com/chromium-ppc64le releases
 SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-5.15.2_p20211019-jumbo-build.patch.bz2
 	https://dev.gentoo.org/~asturm/distfiles/${PN}-5.15.3_p20220406-patchset.tar.xz
-	riscv? ( https://dev.gentoo.org/~dlan/distfiles/${CATEGORY}/${PN}/${PN}-5.15.3-riscv-0.tar.xz )
 	ppc64? ( https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-5.15.2-r1-chromium87-ppc64le.tar.xz )"
 
 IUSE="alsa bindist designer geolocation +jumbo-build kerberos pulseaudio screencast +system-ffmpeg +system-icu widgets"
@@ -105,15 +104,15 @@ BDEPEND="${PYTHON_DEPS}
 
 PATCHES=(
 	"${FILESDIR}/${PN}-5.15.2-disable-fatal-warnings.patch" # downstream, bug 695446
-	"${FILESDIR}/${PN}-5.15.2-extra_gn.patch" # downstream, bug 774186
+	"${FILESDIR}/${PN}-5.15.3_p20220505-extra-gn.patch" # downstream, bug 774186
 	"${FILESDIR}/${PN}-5.15.2_p20210224-chromium-87-v8-icu68.patch" # downstream, bug 757606
 	"${FILESDIR}/${PN}-5.15.2_p20210224-disable-git.patch" # downstream snapshot fix
 	"${FILESDIR}/${PN}-5.15.2_p20211015-pdfium-system-lcms2.patch" # by Debian, QTBUG-61746
 	"${FILESDIR}/${PN}-5.15.3_p20220329-clang14.patch" # by FreeBSD, bug 836604
+	"${FILESDIR}/${PN}-5.15.3_p20220406-gcc12-includes.patch" # by openSUSE, bug 840326
 	"${WORKDIR}/${PN}-5.15.2_p20211019-jumbo-build.patch" # bug 813957
 	"${WORKDIR}/${PN}-5.15.3_p20220406-patchset" # bug 698988 (py2--), pipewire-3
-	"${WORKDIR}/${PN}-5.15.3-riscv-general.patch"
-	"${WORKDIR}/${PN}-5.15.3-riscv-v8.patch"
+	"${FILESDIR}/${P}-fixup-CVE-2022-0796.patch" # bug 853097
 )
 
 qtwebengine_check-reqs() {
@@ -133,7 +132,7 @@ qtwebengine_check-reqs() {
 	# Estimate the amount of RAM required
 	# Multiplier is *10 because Bash doesn't do floating point maths.
 	# Let's crudely assume ~2GB per compiler job for GCC.
-	local multiplier=8
+	local multiplier=20
 
 	# And call it ~1.5GB for Clang.
 	if tc-is-clang ; then
@@ -229,6 +228,11 @@ src_prepare() {
 		mkdir -vp source/config/linux/ppc64 || die
 		mkdir -p source/libvpx/test || die
 		touch source/libvpx/test/test.mk || die
+		# clang-format is used to re-format sources
+		# but we'd rather make it a no-op than introduce a clang dependency
+		# https://bugs.gentoo.org/849458
+		clang-format() { : ; }
+		export -f clang-format || die
 		./generate_gni.sh || die
 		popd >/dev/null || die
 	fi
@@ -236,7 +240,7 @@ src_prepare() {
 
 src_configure() {
 	export NINJA_PATH=/usr/bin/ninja
-	export NINJAFLAGS="${NINJAFLAGS:--j$(makeopts_jobs) -l$(makeopts_loadavg "${MAKEOPTS}" 0) -v}"
+	export NINJAFLAGS="${NINJAFLAGS:--j$(makeopts_jobs "${MAKEOPTS}" 999) -l$(makeopts_loadavg "${MAKEOPTS}" 0) -v}"
 
 	local myqmakeargs=(
 		--
@@ -266,8 +270,8 @@ src_install() {
 }
 
 pkg_preinst() {
-	elog "This version of Qt WebEngine is based on Chromium version 87.0.4280, with"
-	elog "additional security fixes from newer versions. Extensive as it is, the"
+	elog "This version of Qt WebEngine is based on Chromium version 87.0.4280.144,"
+	elog "with additional security fixes from newer versions. Extensive as it is, the"
 	elog "list of backports is impossible to evaluate, but always bound to be behind"
 	elog "Chromium's release schedule."
 	elog "In addition, various online services may deny service based on an outdated"


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-08-18  7:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-26  7:12 [gentoo-commits] proj/riscv:master commit in: dev-qt/qtwebengine/, dev-qt/qtwebengine/files/ Yixun Lan
  -- strict thread matches above, loose matches on Subject: below --
2022-08-18  7:49 Yixun Lan
2022-03-25  4:47 Yixun Lan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox