From d99093fb4bb5652015c06274d64083daa2439e4f Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 3 Mar 2021 10:28:17 +0000 Subject: gentoo resync : 03.03.2021 --- dev-qt/qtwebengine/Manifest | 8 +- ...ine-5.15.2_p20210224-chromium-87-v8-icu68.patch | 192 +++++++++++++++++++++ .../qtwebengine-5.15.2_p20210224-disable-git.patch | 15 ++ dev-qt/qtwebengine/metadata.xml | 1 + .../qtwebengine-5.15.2_p20210205.ebuild | 183 -------------------- .../qtwebengine-5.15.2_p20210224.ebuild | 183 ++++++++++++++++++++ 6 files changed, 396 insertions(+), 186 deletions(-) create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210224-chromium-87-v8-icu68.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.2_p20210224-disable-git.patch delete mode 100644 dev-qt/qtwebengine/qtwebengine-5.15.2_p20210205.ebuild create mode 100644 dev-qt/qtwebengine/qtwebengine-5.15.2_p20210224.ebuild (limited to 'dev-qt/qtwebengine') diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest index 7f1900e7cdc3..6d6da2ebf865 100644 --- a/dev-qt/qtwebengine/Manifest +++ b/dev-qt/qtwebengine/Manifest @@ -1,9 +1,11 @@ AUX qtwebengine-5.15.0-disable-fatal-warnings.patch 414 BLAKE2B 531523ee8c85d6ac51637b3bfd4fbcd56476e1231103c0db62b7c27ace4d5e070becb97beb74526806101c138669adc81a00eefe319ff96582df4743ecabcef8 SHA512 4e3ae727f2738bcc011c9fdd27593d9689206573ff7f17a51fd78d3aa25d427b899af78c098c278f6e7ab4ce88bf415e7382a8a635dd880448a75e6756abc680 AUX qtwebengine-5.15.2-icu-68-v8-runtime-fix.patch 6264 BLAKE2B 18a5bc35ddf7fc120dde8adcb0bd3f450f2422695dec698ad65f133e51018bc0e84bbcf8e3c85c6003dca114a11083903e05ea7348316b4aa90d415f1fd539c1 SHA512 e505c98cb777fb353529810e59acb0976403924a18ad8336d0ff4cf76df024e54f354efbac35322f0cf135d38a7340bc26e9a709435bf0f96d21344d8fecaa99 AUX qtwebengine-5.15.2-icu-68.patch 15373 BLAKE2B 3b7ef4b096f8a593e711c74c64a0a770c0a2bd0fc3af0a2bc4b28fd9999358b06affce062ececf0b0c6f5092a4f6cb243ecc3decd00eb3f69292ad6393bf1bca SHA512 159c1553702b505a1e59ff18b3ac0340c7e0534a98b45ef2a70ab645d10bbb569c47bccb9d5a58d0f413b86abf29f9706af0ff5800029617a0575d6a759edbc3 +AUX qtwebengine-5.15.2_p20210224-chromium-87-v8-icu68.patch 7361 BLAKE2B 0a5ab9077982df3afea7d156e0dbaf11384d7b9ab6ea70ef4dc0b82f1690e455144318734cb50b7bf2349a95b99325e67bbfcbdf5c88f55f3ecc65c7e593c468 SHA512 585dab11bf6cf811b657831292d5b6b90dd01d9e4c1fa4b6a446d0eb66f436c46a6fcd4851e9c6b6b0bda8a41cbea57fe74ca5ecca4e40cb35f85d7c2f5265e7 +AUX qtwebengine-5.15.2_p20210224-disable-git.patch 501 BLAKE2B a295e5061830da6bfaf0c0ae6db832c86f797fa2426ec29e244133e862c0998a03373c11a2a31944bc09e0a20bf30c0a0a91eb06b1f8a9fdcdd9762f5ba7c542 SHA512 b795328058be945e7a323ea50f01cd5c11b130bc1204c8274fec920e04cce1643d8f9313e975f451dbb7dfecd6214f9ff9ea0aec87ad29237b6e9bb1b4114c5f 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_p20210224.tar.xz 320052028 BLAKE2B a1ebaae7cf114041576f4920de1e484bea70c715a470e83e7c47bd8ff95480fc4e408bba173990480732bd464a9eb07d304f4afdb90d943c0a8cbe1e8299df84 SHA512 939292511703f3a6d758d38f1c860ffacd003be65761b19f23e8817bf1121cb9e6351216f737126d8defb1c97ca877e1c6f352e7cfee8e9289274d0793348b51 DIST qtwebengine-everywhere-src-5.15.2.tar.xz 280142544 BLAKE2B cf84a07292e69b5746d6575d65295b5bf4e054d448361f26e63cbe20ddd0773f60893e656d74b3b8c191e2829e09398a65896c8d96d3a7ef210ac1f21cd90e63 SHA512 de64c30819f5e2f8620c853ff22b2f9717641477aef4432a552a72d1d67ed62ed61572afee6de3f2c9f32dee28f4f786ffd63fc465aa42c0ae1e87ea28341756 EBUILD qtwebengine-5.15.2.ebuild 5272 BLAKE2B c5ffd7075103bb6daaeaee53e7abe77a4ff1d941c1705db68c1da2df4fbd659d0afa00f9a63376d9b29a2df180263470a90d73c05d39e472f6d327e1689808d7 SHA512 15d27511929ad0877a047c02491913a33de9d80ef4ee5e1cd92f33259b853c4e8cc360dacfca7ce980f64e3a3f1685371334331f6dbb62bd2d19b64399148b15 -EBUILD qtwebengine-5.15.2_p20210205.ebuild 5750 BLAKE2B daf7b44835a552184f8c965b367b9bc8842102a4fa91abc88ae2de13cc0be36962c886238386c289e63d486159ea8a40f36af436cedf5174416f2fe9929b6ae3 SHA512 4cd73e7b3071c651435085bb4872a76f5b283a321055ecc6e06e219ead000b7c99c1857b9dda1765cf105f9f723c2bf1c829e5ead402fbd742a4a75718233645 -MISC metadata.xml 1187 BLAKE2B 0f2262dce8d67eab1588f1d651497c668926cb68e28698dbf6f55326be84f1326bf2a031439ea9505e48d4cd20874ffc2a0919c82b31490ac11c347cfea73f98 SHA512 6d84c67075acc0fb037c8cc6579bab144667f4630e58205905f94b38815f3adf8f3a58413eedbde1609a62f74d7feaaf52e6c80ed414eb84f8f63febc66a86e2 +EBUILD qtwebengine-5.15.2_p20210224.ebuild 5793 BLAKE2B f59aec351b41008545ea6e8b54f878020474965bb872fc4b13d780d38f2485d47c5698a5e3d1a92b59bc5232a74c410daba35983fdb3716f1a39410a92582f2e SHA512 996f864b9ee05c35f5988a677731ebaf2e8892ac7a6d0aa559daf93f534c76cea5763439c83b6bcfe772629dc7fcc4985b28d4c35888fe33da94df4480baf74b +MISC metadata.xml 1269 BLAKE2B f95392929bcecbce9334108e3446d631e2a91d1aceb0fa6347496d2d0eeaff8cff55e08b7c3bb39fb8b51667988a6cc2b8e500143f2ebe0d78e6985a6f7af3c1 SHA512 7949854cf55f26750ded6787ce295762af7fd16600f8b251b25e1c9dd4d643338ed4c3b2a8a3405a2c427ed8b5a9ad13a8566a640161768d4dbf6db7e54811a3 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 000000000000..a6856975a663 --- /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 +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 +Reviewed-by: Jakob Kummerow +Reviewed-by: Shu-yu Guo +Cr-Commit-Position: refs/heads/master@{#70972} + +(ported to work with CurrencySignString(Isolate* isolate, + Handle 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: "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: "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: "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: "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: "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(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: ++ // 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::New( + } + } + ++#if U_ICU_VERSION_MAJOR_NUM < 68 + icu::DecimalFormat* decimal_format = + static_cast(number_format); + decimal_format->setMinimumGroupingDigits(-2); ++#else ++ if (number_format->getDynamicClassID() == ++ icu::DecimalFormat::getStaticClassID()) { ++ icu::DecimalFormat* decimal_format = ++ static_cast(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 000000000000..c31e8970eaef --- /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 + +--- 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/metadata.xml b/dev-qt/qtwebengine/metadata.xml index 4c0b395c7e06..ea633503ac72 100644 --- a/dev-qt/qtwebengine/metadata.xml +++ b/dev-qt/qtwebengine/metadata.xml @@ -15,6 +15,7 @@ dev-qt/designer forms that display web pages. Enable physical position determination via dev-qt/qtpositioning + Combine source files to speed up build process. Use the system-wide media-video/ffmpeg instead of bundled. Use the system-wide dev-libs/icu diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210205.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210205.ebuild deleted file mode 100644 index d8a78a0113ba..000000000000 --- a/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210205.ebuild +++ /dev/null @@ -1,183 +0,0 @@ -# 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-60.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 - -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 runs git at the end of process, prevent it. - git() { : ; } - export -f git - ./generate_gni.sh || die - unset git - 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 -} diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210224.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210224.ebuild new file mode 100644 index 000000000000..5271d30d4ae7 --- /dev/null +++ b/dev-qt/qtwebengine/qtwebengine-5.15.2_p20210224.ebuild @@ -0,0 +1,183 @@ +# 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 +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-${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}-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 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 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 +} -- cgit v1.2.3