1 |
commit: b29d1aa9e776bef58cf639b10bdbe4d21a236d7c |
2 |
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> |
3 |
AuthorDate: Tue Nov 29 19:32:46 2022 +0000 |
4 |
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Nov 29 20:50:29 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b29d1aa9 |
7 |
|
8 |
dev-qt/qtwebengine: add 5.15.7_p20221122 |
9 |
|
10 |
Snapshotted at: |
11 |
Branch: 5.15 |
12 |
Commit: 5d89f26414471689a9626515d098104e38bacbda |
13 |
|
14 |
Submodule qtwebengine-chromium.git: |
15 |
Branch: 87-based |
16 |
Commit: 20f20a41961ae1f63cf04a02f743cd2d9892a3b0 |
17 |
|
18 |
Patched with security patches up to Chromium version: 98.0.4758.102 |
19 |
|
20 |
Bug: https://bugs.gentoo.org/866332 |
21 |
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> |
22 |
|
23 |
dev-qt/qtwebengine/Manifest | 1 + |
24 |
.../qtwebengine-5.15.7_p20221122.ebuild | 282 +++++++++++++++++++++ |
25 |
2 files changed, 283 insertions(+) |
26 |
|
27 |
diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest |
28 |
index 5e8385ebb3cf..1dd01f60b148 100644 |
29 |
--- a/dev-qt/qtwebengine/Manifest |
30 |
+++ b/dev-qt/qtwebengine/Manifest |
31 |
@@ -2,5 +2,6 @@ DIST qtwebengine-5.15.2-r1-chromium87-ppc64le.tar.xz 28784 BLAKE2B aa101d14446f3 |
32 |
DIST qtwebengine-5.15.2_p20211019-jumbo-build.patch.bz2 2930 BLAKE2B fca1d1406874d04eafb64bb4d8730512a6307ba44fb99d76f428ca1bd4a303758e0c3bd8f92a59f7bcf62e5b767c5a8ed239028bdb74ad7a8b62abf88d38c101 SHA512 61cbfbe4ff340b75ea8d356e031e932ac03fe65dd009999ff897ca4b0185d1d989490daf75ffeaaabb3e92c870c11c7ff8ad2cd6372f5363b3d774b8ecca6d89 |
33 |
DIST qtwebengine-5.15.3_p20220406-patchset.tar.xz 35480 BLAKE2B ce6aeebbb3255196611130d04ee7a3907ba45d6d2a283f2433e2176cf67e473e74137b180de0a9998762cc54439bb06825815e81e9f95f9413ce2956ac9308b7 SHA512 47e29a1429dce2db324929af91c8ef8421c75ae48f5a491db71b434f8017a5b1e7475e9938989e331e8e012220852848565242e09747892e1a8a8d3ab7386840 |
34 |
DIST qtwebengine-5.15.5_p20220618.tar.xz 320131236 BLAKE2B 842322c94737cdf647277ccf226c0d015ac0b362af54c4298cbad6b4494aa4ef0e73830577fb391be31c91b4331b85f407ec58641897a7cc7237e7623043577d SHA512 b1bab7aa5edc7f7b9d4f8338a05dbbd55ae6e0312e1a7e6061895bd7a98c67780127c20db1dbbc81664bf483a5b8f7ed887cedd1baaa1a0259e28fd4b13d6944 |
35 |
+DIST qtwebengine-5.15.7_p20221122.tar.xz 319323408 BLAKE2B f0f7d566e84a78bae964bf34ccb305d51ae3c0b73bea2b382edca373a5240ab63ce6d90a1f81c8e70fd1f1eb05f9985fccbdae36958afe9dd8fa9c95a72775e0 SHA512 42665d2d7d227aeb04b9f7af0728ea5b07978e221b858fd2855595ad588d709bacbea18ab9e0c3a023579e5e3b80cdf6d3ff721573631ee43626bd37fb424225 |
36 |
DIST qtwebengine-everywhere-src-6.3.2.tar.xz 398294888 BLAKE2B 7fb59e9c0a09e4ffc2c59398e9249cb91c864168b81befa9ea7e2044ed328bc010f0e6d03ecfc74e006044b56c826b35dba05375aba6fee29e5d5aa08b33fa4c SHA512 deff0a7ad71c4c81b3f5cfff77919d9971eec0ba3713a94a28d902404189b4f92b237a89cc6ef3dec2ea7a766f8a7241638a1310e4ac68fe46ecdc61f69a958a |
37 |
DIST qtwebengine-everywhere-src-6.4.0.tar.xz 440346968 BLAKE2B ffe9ad9f71034d14f016a71bf3e6034853d5c2b17a3ab3e8aefc1c3a79896363eb2ce41446f16e126ec313608619900ee7ac41750978c28f135df5bbc2e0be5c SHA512 a024781c675c60ca746abb6cd977872b51e3f4a7ff9f934450b82e9b19883c68c0c6c630c28997624f0caceed3c43e8b0658419ecb18cf08fa9081275bedd2a7 |
38 |
|
39 |
diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.7_p20221122.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.7_p20221122.ebuild |
40 |
new file mode 100644 |
41 |
index 000000000000..571d2b62b77e |
42 |
--- /dev/null |
43 |
+++ b/dev-qt/qtwebengine/qtwebengine-5.15.7_p20221122.ebuild |
44 |
@@ -0,0 +1,282 @@ |
45 |
+# Copyright 1999-2022 Gentoo Authors |
46 |
+# Distributed under the terms of the GNU General Public License v2 |
47 |
+ |
48 |
+EAPI=8 |
49 |
+ |
50 |
+PYTHON_COMPAT=( python3_{9..10} ) |
51 |
+PYTHON_REQ_USE="xml(+)" |
52 |
+inherit check-reqs estack flag-o-matic multiprocessing python-any-r1 qt5-build toolchain-funcs |
53 |
+ |
54 |
+DESCRIPTION="Library for rendering dynamic web content in Qt5 C++ and QML applications" |
55 |
+HOMEPAGE="https://www.qt.io/" |
56 |
+ |
57 |
+if [[ ${QT5_BUILD_TYPE} == release ]]; then |
58 |
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" |
59 |
+ if [[ ${PV} == ${QT5_PV}_p* ]]; then |
60 |
+ SRC_URI="https://dev.gentoo.org/~asturm/distfiles/${P}.tar.xz" |
61 |
+ S="${WORKDIR}/${P}" |
62 |
+ QT5_BUILD_DIR="${S}_build" |
63 |
+ fi |
64 |
+else |
65 |
+ EGIT_BRANCH="5.15" |
66 |
+ EGIT_REPO_URI=( |
67 |
+ "https://code.qt.io/qt/${QT5_MODULE}.git" |
68 |
+ "https://github.com/qt/${QT5_MODULE}.git" |
69 |
+ ) |
70 |
+ inherit git-r3 |
71 |
+fi |
72 |
+ |
73 |
+# ppc64 patchset based on https://github.com/chromium-ppc64le releases |
74 |
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-5.15.2_p20211019-jumbo-build.patch.bz2 |
75 |
+ https://dev.gentoo.org/~asturm/distfiles/${PN}-5.15.3_p20220406-patchset.tar.xz |
76 |
+ ppc64? ( https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-5.15.2-r1-chromium87-ppc64le.tar.xz )" |
77 |
+ |
78 |
+IUSE="alsa bindist designer geolocation +jumbo-build kerberos pulseaudio screencast +system-ffmpeg +system-icu widgets" |
79 |
+REQUIRED_USE="designer? ( widgets )" |
80 |
+ |
81 |
+RDEPEND=" |
82 |
+ app-arch/snappy:= |
83 |
+ dev-libs/glib:2 |
84 |
+ dev-libs/nspr |
85 |
+ dev-libs/nss |
86 |
+ dev-libs/expat |
87 |
+ dev-libs/libevent:= |
88 |
+ dev-libs/libxml2[icu] |
89 |
+ dev-libs/libxslt |
90 |
+ dev-libs/re2:= |
91 |
+ =dev-qt/qtcore-${QT5_PV}* |
92 |
+ =dev-qt/qtdeclarative-${QT5_PV}* |
93 |
+ =dev-qt/qtgui-${QT5_PV}* |
94 |
+ =dev-qt/qtnetwork-${QT5_PV}* |
95 |
+ =dev-qt/qtprintsupport-${QT5_PV}* |
96 |
+ =dev-qt/qtwebchannel-${QT5_PV}*[qml] |
97 |
+ media-libs/fontconfig |
98 |
+ media-libs/freetype |
99 |
+ media-libs/harfbuzz:= |
100 |
+ media-libs/lcms:2 |
101 |
+ media-libs/libjpeg-turbo:= |
102 |
+ media-libs/libpng:0= |
103 |
+ >=media-libs/libvpx-1.5:=[svc(+)] |
104 |
+ media-libs/libwebp:= |
105 |
+ media-libs/opus |
106 |
+ sys-apps/dbus |
107 |
+ sys-apps/pciutils |
108 |
+ sys-libs/zlib[minizip] |
109 |
+ virtual/libudev |
110 |
+ x11-libs/libdrm |
111 |
+ x11-libs/libX11 |
112 |
+ x11-libs/libXcomposite |
113 |
+ x11-libs/libXcursor |
114 |
+ x11-libs/libXdamage |
115 |
+ x11-libs/libXext |
116 |
+ x11-libs/libXfixes |
117 |
+ x11-libs/libXi |
118 |
+ x11-libs/libxkbfile |
119 |
+ x11-libs/libXrandr |
120 |
+ x11-libs/libXrender |
121 |
+ x11-libs/libXScrnSaver |
122 |
+ x11-libs/libXtst |
123 |
+ alsa? ( media-libs/alsa-lib ) |
124 |
+ designer? ( =dev-qt/designer-${QT5_PV}* ) |
125 |
+ geolocation? ( =dev-qt/qtpositioning-${QT5_PV}* ) |
126 |
+ kerberos? ( virtual/krb5 ) |
127 |
+ pulseaudio? ( media-libs/libpulse ) |
128 |
+ screencast? ( media-video/pipewire:= ) |
129 |
+ system-ffmpeg? ( media-video/ffmpeg:0= ) |
130 |
+ system-icu? ( >=dev-libs/icu-69.1:= ) |
131 |
+ widgets? ( |
132 |
+ =dev-qt/qtdeclarative-${QT5_PV}*[widgets] |
133 |
+ =dev-qt/qtwidgets-${QT5_PV}* |
134 |
+ ) |
135 |
+" |
136 |
+DEPEND="${RDEPEND} |
137 |
+ media-libs/libglvnd |
138 |
+" |
139 |
+BDEPEND="${PYTHON_DEPS} |
140 |
+ dev-util/gperf |
141 |
+ dev-util/ninja |
142 |
+ dev-util/re2c |
143 |
+ net-libs/nodejs[ssl] |
144 |
+ sys-devel/bison |
145 |
+ sys-devel/flex |
146 |
+ ppc64? ( >=dev-util/gn-0.1807 ) |
147 |
+" |
148 |
+ |
149 |
+PATCHES=( |
150 |
+ "${FILESDIR}/${PN}-5.15.2-disable-fatal-warnings.patch" # downstream, bug 695446 |
151 |
+ "${FILESDIR}/${PN}-5.15.3_p20220505-extra-gn.patch" # downstream, bug 774186 |
152 |
+ "${FILESDIR}/${PN}-5.15.2_p20210224-chromium-87-v8-icu68.patch" # downstream, bug 757606 |
153 |
+ "${FILESDIR}/${PN}-5.15.2_p20210224-disable-git.patch" # downstream snapshot fix |
154 |
+ "${FILESDIR}/${PN}-5.15.2_p20211015-pdfium-system-lcms2.patch" # by Debian, QTBUG-61746 |
155 |
+ "${FILESDIR}/${PN}-5.15.3_p20220329-clang14.patch" # by FreeBSD, bug 836604 |
156 |
+ "${FILESDIR}/${PN}-5.15.3_p20220406-gcc12-includes.patch" # by openSUSE, bug 840326 |
157 |
+ "${WORKDIR}/${PN}-5.15.2_p20211019-jumbo-build.patch" # bug 813957 |
158 |
+ "${WORKDIR}/${PN}-5.15.3_p20220406-patchset" # bug 698988 (py2--), pipewire-3 |
159 |
+) |
160 |
+ |
161 |
+qtwebengine_check-reqs() { |
162 |
+ # bug #307861 |
163 |
+ eshopts_push -s extglob |
164 |
+ if is-flagq '-g?(gdb)?([1-9])'; then |
165 |
+ ewarn "You have enabled debug info (probably have -g or -ggdb in your CFLAGS/CXXFLAGS)." |
166 |
+ ewarn "You may experience really long compilation times and/or increased memory usage." |
167 |
+ ewarn "If compilation fails, please try removing -g/-ggdb before reporting a bug." |
168 |
+ fi |
169 |
+ eshopts_pop |
170 |
+ |
171 |
+ [[ ${MERGE_TYPE} == binary ]] && return |
172 |
+ |
173 |
+ # (check-reqs added for bug #570534) |
174 |
+ # |
175 |
+ # Estimate the amount of RAM required |
176 |
+ # Multiplier is *10 because Bash doesn't do floating point maths. |
177 |
+ # Let's crudely assume ~2GB per compiler job for GCC. |
178 |
+ local multiplier=20 |
179 |
+ |
180 |
+ # And call it ~1.5GB for Clang. |
181 |
+ if tc-is-clang ; then |
182 |
+ multiplier=15 |
183 |
+ fi |
184 |
+ |
185 |
+ local CHECKREQS_DISK_BUILD="7G" |
186 |
+ local CHECKREQS_DISK_USR="150M" |
187 |
+ if ! has "distcc" ${FEATURES} ; then |
188 |
+ # bug #830661 |
189 |
+ # Not super realistic to come up with good estimates for distcc right now |
190 |
+ local CHECKREQS_MEMORY=$(($(makeopts_jobs)*multiplier/10))G |
191 |
+ fi |
192 |
+ |
193 |
+ check-reqs_${EBUILD_PHASE_FUNC} |
194 |
+} |
195 |
+ |
196 |
+pkg_pretend() { |
197 |
+ qtwebengine_check-reqs |
198 |
+} |
199 |
+ |
200 |
+pkg_setup() { |
201 |
+ qtwebengine_check-reqs |
202 |
+ python-any-r1_pkg_setup |
203 |
+} |
204 |
+ |
205 |
+src_unpack() { |
206 |
+ case ${QT5_BUILD_TYPE} in |
207 |
+ live) git-r3_src_unpack ;& |
208 |
+ release) default ;; |
209 |
+ esac |
210 |
+} |
211 |
+ |
212 |
+src_prepare() { |
213 |
+ if [[ ${PV} == ${QT5_PV}_p* ]]; then |
214 |
+ # This is made from git, and for some reason will fail w/o .git directories. |
215 |
+ mkdir -p .git src/3rdparty/chromium/.git || die |
216 |
+ fi |
217 |
+ # We need to make sure this integrates well into Qt 5.15.3 installation. |
218 |
+ # Otherwise revdeps fail w/o heavy changes. This is the simplest way to do it. |
219 |
+ # See also: https://www.qt.io/blog/building-qt-webengine-against-other-qt-versions |
220 |
+ sed -E "/^MODULE_VERSION/s/5\.15\.[0-9]+/${QT5_PV}/" -i .qmake.conf || die |
221 |
+ |
222 |
+ # QTBUG-88657 - jumbo-build could still make trouble |
223 |
+ if ! use jumbo-build; then |
224 |
+ sed -i -e 's|use_jumbo_build=true|use_jumbo_build=false|' \ |
225 |
+ src/buildtools/config/common.pri || die |
226 |
+ fi |
227 |
+ |
228 |
+ # bug 620444 - ensure local headers are used |
229 |
+ find "${S}" -type f -name "*.pr[fio]" | \ |
230 |
+ xargs sed -i -e 's|INCLUDEPATH += |&$${QTWEBENGINE_ROOT}_build/include $${QTWEBENGINE_ROOT}/include |' || die |
231 |
+ |
232 |
+ if use system-icu; then |
233 |
+ # Sanity check to ensure that bundled copy of ICU is not used. |
234 |
+ # Whole src/3rdparty/chromium/third_party/icu directory cannot be deleted because |
235 |
+ # src/3rdparty/chromium/third_party/icu/BUILD.gn is used by build system. |
236 |
+ # If usage of headers of bundled copy of ICU occurs, then lists of shim headers in |
237 |
+ # shim_headers("icui18n_shim") and shim_headers("icuuc_shim") in |
238 |
+ # src/3rdparty/chromium/third_party/icu/BUILD.gn should be updated. |
239 |
+ local file |
240 |
+ while read file; do |
241 |
+ echo "#error This file should not be used!" > "${file}" || die |
242 |
+ done < <(find src/3rdparty/chromium/third_party/icu -type f "(" -name "*.c" -o -name "*.cpp" -o -name "*.h" ")" 2>/dev/null) |
243 |
+ fi |
244 |
+ |
245 |
+ # src/3rdparty/gn fails with libc++ due to passing of `-static-libstdc++` |
246 |
+ if tc-is-clang ; then |
247 |
+ if has_version 'sys-devel/clang[default-libcxx(-)]' || has_version 'sys-devel/clang-common[default-libcxx(-)]' ; then |
248 |
+ eapply "${FILESDIR}/${PN}-5.15.2_p20210521-clang-libc++.patch" |
249 |
+ fi |
250 |
+ fi |
251 |
+ |
252 |
+ if use system-ffmpeg && has_version '>=media-video/ffmpeg-5'; then |
253 |
+ eapply "${FILESDIR}/${PN}-5.15.3_p20220406-ffmpeg5.patch" # by Archlinux, bug 831437 |
254 |
+ fi |
255 |
+ |
256 |
+ qt_use_disable_config alsa webengine-alsa src/buildtools/config/linux.pri |
257 |
+ qt_use_disable_config pulseaudio webengine-pulseaudio src/buildtools/config/linux.pri |
258 |
+ |
259 |
+ qt_use_disable_mod designer webenginewidgets src/plugins/plugins.pro |
260 |
+ |
261 |
+ qt_use_disable_mod widgets widgets src/src.pro |
262 |
+ |
263 |
+ qt5-build_src_prepare |
264 |
+ |
265 |
+ # we need to generate ppc64 stuff because upstream does not ship it yet |
266 |
+ if use ppc64; then |
267 |
+ einfo "Patching for ppc64le and generating build files" |
268 |
+ eapply "${FILESDIR}/qtwebengine-5.15.2-enable-ppc64.patch" |
269 |
+ pushd src/3rdparty/chromium > /dev/null || die |
270 |
+ eapply -p0 "${WORKDIR}/${PN}-ppc64le" |
271 |
+ popd > /dev/null || die |
272 |
+ pushd src/3rdparty/chromium/third_party/libvpx > /dev/null || die |
273 |
+ mkdir -vp source/config/linux/ppc64 || die |
274 |
+ mkdir -p source/libvpx/test || die |
275 |
+ touch source/libvpx/test/test.mk || die |
276 |
+ # clang-format is used to re-format sources |
277 |
+ # but we'd rather make it a no-op than introduce a clang dependency |
278 |
+ # https://bugs.gentoo.org/849458 |
279 |
+ clang-format() { : ; } |
280 |
+ export -f clang-format || die |
281 |
+ ./generate_gni.sh || die |
282 |
+ popd >/dev/null || die |
283 |
+ fi |
284 |
+} |
285 |
+ |
286 |
+src_configure() { |
287 |
+ export NINJA_PATH=/usr/bin/ninja |
288 |
+ export NINJAFLAGS="${NINJAFLAGS:--j$(makeopts_jobs "${MAKEOPTS}" 999) -l$(makeopts_loadavg "${MAKEOPTS}" 0) -v}" |
289 |
+ |
290 |
+ local myqmakeargs=( |
291 |
+ -- |
292 |
+ -no-build-qtpdf |
293 |
+ -printing-and-pdf |
294 |
+ -system-opus |
295 |
+ -system-webp |
296 |
+ $(qt_use alsa) |
297 |
+ $(qt_use !bindist proprietary-codecs) |
298 |
+ $(qt_use geolocation webengine-geolocation) |
299 |
+ $(qt_use kerberos webengine-kerberos) |
300 |
+ $(qt_use pulseaudio) |
301 |
+ $(usex screencast -webengine-webrtc-pipewire '') |
302 |
+ $(usex system-ffmpeg -system-ffmpeg -qt-ffmpeg) |
303 |
+ $(qt_use system-icu webengine-icu) |
304 |
+ ) |
305 |
+ qt5-build_src_configure |
306 |
+} |
307 |
+ |
308 |
+src_install() { |
309 |
+ qt5-build_src_install |
310 |
+ |
311 |
+ # bug 601472 |
312 |
+ if [[ ! -f ${D}${QT5_LIBDIR}/libQt5WebEngine.so ]]; then |
313 |
+ die "${CATEGORY}/${PF} failed to build anything. Please report to https://bugs.gentoo.org/" |
314 |
+ fi |
315 |
+} |
316 |
+ |
317 |
+pkg_preinst() { |
318 |
+ elog "This version of Qt WebEngine is based on Chromium version 87.0.4280.144," |
319 |
+ elog "with additional security fixes from newer versions. Extensive as it is, the" |
320 |
+ elog "list of backports is impossible to evaluate, but always bound to be behind" |
321 |
+ elog "Chromium's release schedule." |
322 |
+ elog "In addition, various online services may deny service based on an outdated" |
323 |
+ elog "user agent version (and/or other checks). Google is already known to do so." |
324 |
+ elog |
325 |
+ elog "tldr: Your web browsing experience will be compromised." |
326 |
+} |