summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2021-02-21 16:36:51 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2021-02-23 21:26:29 +0100
commit013acd8314e8c46f29aab2fdcc69339b205131af (patch)
treef3c2c0a50d374273c22451249c066162b40c70d5
parentmedia-libs/kcolorpicker: Drop 0.1.4 (diff)
downloadgentoo-013acd8314e8c46f29aab2fdcc69339b205131af.tar.gz
gentoo-013acd8314e8c46f29aab2fdcc69339b205131af.tar.bz2
gentoo-013acd8314e8c46f29aab2fdcc69339b205131af.zip
dev-qt/qtwebengine: 5.15.2_p20210220 bump, no KEYWORDS for now
Snapshotted at: Branch: 5.15 Commit: 0b5f110234256eabaa264189d9117069f2a2d144 Submodule qtwebengine-chromium.git: Branch: 87-based Commit: d77379c520980bea4f53e093c0a130d57155c2ad V8-ICU-68 runtime fix: Thanks-to: Stephan Hartmann <sultan@gentoo.org> Package-Manager: Portage-3.0.14, Repoman-3.0.2 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
-rw-r--r--dev-qt/qtwebengine/Manifest1
-rw-r--r--dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210220-chromium-87-v8-icu68.patch192
-rw-r--r--dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210220-disable-git.patch15
-rw-r--r--dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210220-fixup-CVE-2021-21149-backport.patch42
-rw-r--r--dev-qt/qtwebengine/qtwebengine-5.15.2_p20210220.ebuild184
5 files changed, 434 insertions, 0 deletions
diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest
index 8e7d67bb1e8e..ac12b6baffd9 100644
--- a/dev-qt/qtwebengine/Manifest
+++ b/dev-qt/qtwebengine/Manifest
@@ -1,3 +1,4 @@
DIST qtwebengine-5.15.2-ppc64.tar.xz 43868 BLAKE2B 97a2db64c688cc3ce178a6f00c29d3408221302c992bf0df31edd5c11f7cd978b92d9222201644991fca4fc0824b19d994a71c472732dbbdda3729bdd04a67f3 SHA512 835e7da4670cd823a1674052d64971bfd98d54edb6c5df8e9d09aa8103d496a4c16f0eb9d47c46db466e1c640e3326d4e43b284161129d648bfe693a902ec9cc
DIST qtwebengine-5.15.2_p20210205.tar.xz 317422912 BLAKE2B a5cdbea0347db21b7fb981a358ad6419ea9cebef98f3d8fef3618b9010164986257cb87caef6a09648e463c3b864ce28e0591a2a783b8b5727b69d85b4b3289c SHA512 8e8b4918f7c3232aafd9f2d13655501e0d03d90514ef3a0b8319df1c8792aeaf7800f370cee15634c708ee14f86ef831749556cb6710578d03c3c2e468149be0
+DIST qtwebengine-5.15.2_p20210220.tar.xz 320087924 BLAKE2B 8db495e853948d8a47d04d34e8f2e99f33423874026d447fd119be885c74671f6566f8ba34f6e37ed5abcc347150213bef9575cc61b80ee8fbc4a005c2448df8 SHA512 7502a3d7df68764d1ed8953f8bd8a6def88344c56800bf32d1527133bceaf669f2ef6899dd2b4f23ca284ad5f0a9b086f1807f3a5f0a482b0744d1ba2391c480
DIST qtwebengine-everywhere-src-5.15.2.tar.xz 280142544 BLAKE2B cf84a07292e69b5746d6575d65295b5bf4e054d448361f26e63cbe20ddd0773f60893e656d74b3b8c191e2829e09398a65896c8d96d3a7ef210ac1f21cd90e63 SHA512 de64c30819f5e2f8620c853ff22b2f9717641477aef4432a552a72d1d67ed62ed61572afee6de3f2c9f32dee28f4f786ffd63fc465aa42c0ae1e87ea28341756
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210220-chromium-87-v8-icu68.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210220-chromium-87-v8-icu68.patch
new file mode 100644
index 000000000000..a6856975a663
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210220-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_p20210220-disable-git.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210220-disable-git.patch
new file mode 100644
index 000000000000..c31e8970eaef
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210220-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_p20210220-fixup-CVE-2021-21149-backport.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210220-fixup-CVE-2021-21149-backport.patch
new file mode 100644
index 000000000000..eeca3627d0ba
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210220-fixup-CVE-2021-21149-backport.patch
@@ -0,0 +1,42 @@
+From d9d9e606cb34b1b4ac0f44de132b1eb10763f1f6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michael=20Br=C3=BCning?= <michael.bruning@qt.io>
+Date: Tue, 23 Feb 2021 16:34:39 +0100
+Subject: [PATCH] FIXUP: [Backport] CVE-2021-21149: Stack overflow in Data
+ Transfer
+
+Const qualifier removed by another patch upstream had to be removed
+as well.
+
+Change-Id: I4823080661b815884c49ad9881e9958c1ba65251
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+---
+ src/3rdparty/chromium/ui/gfx/x/connection.cc | 2 +-
+ src/3rdparty/chromium/ui/gfx/x/connection.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/3rdparty/chromium/ui/gfx/x/connection.cc b/src/3rdparty/chromium/ui/gfx/x/connection.cc
+index 0afbac2c605..8152f4e06be 100644
+--- a/src/3rdparty/chromium/ui/gfx/x/connection.cc
++++ b/src/3rdparty/chromium/ui/gfx/x/connection.cc
+@@ -423,7 +423,7 @@ Event Connection::WaitForNextEvent() {
+ return Event();
+ }
+
+-bool Connection::HasPendingResponses() const {
++bool Connection::HasPendingResponses() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ return HasNextEvent() || HasNextResponse();
+ }
+diff --git a/src/3rdparty/chromium/ui/gfx/x/connection.h b/src/3rdparty/chromium/ui/gfx/x/connection.h
+index 73a306a2ca1..0e3bbb66e53 100644
+--- a/src/3rdparty/chromium/ui/gfx/x/connection.h
++++ b/src/3rdparty/chromium/ui/gfx/x/connection.h
+@@ -124,7 +124,7 @@ class COMPONENT_EXPORT(X11) Connection : public XProto,
+ Event WaitForNextEvent();
+
+ // Are there any events, errors, or replies already buffered?
+- bool HasPendingResponses() const;
++ bool HasPendingResponses();
+
+ // Dispatch any buffered events, errors, or replies.
+ void Dispatch(Delegate* delegate);
diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210220.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210220.ebuild
new file mode 100644
index 000000000000..ff0e14bee9ed
--- /dev/null
+++ b/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210220.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python2_7 )
+QTVER=$(ver_cut 1-3)
+inherit multiprocessing python-any-r1 qt5-build
+
+DESCRIPTION="Library for rendering dynamic web content in Qt5 C++ and QML applications"
+
+if [[ ${QT5_BUILD_TYPE} == release ]]; then
+# KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+ if [[ ${PV} == ${QTVER}_p* ]]; then
+ SRC_URI="https://dev.gentoo.org/~asturm/distfiles/${P}.tar.xz"
+ S="${WORKDIR}/${P}"
+ fi
+fi
+
+# patchset based on https://github.com/chromium-ppc64le releases
+SRC_URI+=" ppc64? ( https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-5.15.2-ppc64.tar.xz )"
+
+IUSE="alsa bindist designer geolocation 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-${QTVER}
+ ~dev-qt/qtdeclarative-${QTVER}
+ ~dev-qt/qtgui-${QTVER}
+ ~dev-qt/qtnetwork-${QTVER}
+ ~dev-qt/qtprintsupport-${QTVER}
+ ~dev-qt/qtwebchannel-${QTVER}[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/mesa[egl,X(+)]
+ 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/libXrandr
+ x11-libs/libXrender
+ x11-libs/libXScrnSaver
+ x11-libs/libXtst
+ alsa? ( media-libs/alsa-lib )
+ designer? ( ~dev-qt/designer-${QTVER} )
+ geolocation? ( ~dev-qt/qtpositioning-${QTVER} )
+ kerberos? ( virtual/krb5 )
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? ( media-video/ffmpeg:0= )
+ system-icu? ( >=dev-libs/icu-68.2:= )
+ widgets? (
+ ~dev-qt/qtdeclarative-${QTVER}[widgets]
+ ~dev-qt/qtwidgets-${QTVER}
+ )
+"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ dev-util/gperf
+ dev-util/ninja
+ dev-util/re2c
+ net-libs/nodejs
+ sys-devel/bison
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-5.15.0-disable-fatal-warnings.patch" # bug 695446
+ "${FILESDIR}/${P}-chromium-87-v8-icu68.patch" # bug 757606
+ "${FILESDIR}/${P}-fixup-CVE-2021-21149-backport.patch"
+ "${FILESDIR}/${P}-disable-git.patch" # downstream snapshot fix
+)
+
+src_prepare() {
+ if [[ ${PV} == ${QTVER}_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
+
+ # 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.
+ sed -e "/^MODULE_VERSION/s/5.*/${QTVER}/" -i .qmake.conf || die
+ fi
+
+ # QTBUG-88657 - jumbo-build is broken
+ #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 630834 - pass appropriate options to ninja when building GN
+ sed -e "s/\['ninja'/&, '-j$(makeopts_jobs)', '-l$(makeopts_loadavg "${MAKEOPTS}" 0)', '-v'/" \
+ -i src/3rdparty/chromium/tools/gn/bootstrap/bootstrap.py || die
+
+ # 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
+
+ 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 "${WORKDIR}/${PN}-ppc64"
+ 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
+ $(usex alsa '-alsa' '-no-alsa')
+ $(usex bindist '-no-proprietary-codecs' '-proprietary-codecs')
+ $(usex geolocation '-webengine-geolocation' '-no-webengine-geolocation')
+ $(usex kerberos '-webengine-kerberos' '-no-webengine-kerberos')
+ $(usex pulseaudio '-pulseaudio' '-no-pulseaudio')
+ $(usex system-ffmpeg '-system-ffmpeg' '-qt-ffmpeg')
+ $(usex system-icu '-webengine-icu' '-no-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
+}