diff options
Diffstat (limited to 'www-client/qutebrowser')
-rw-r--r-- | www-client/qutebrowser/Manifest | 8 | ||||
-rw-r--r-- | www-client/qutebrowser/files/qutebrowser-2.5.2-dictcli.patch | 17 | ||||
-rw-r--r-- | www-client/qutebrowser/qutebrowser-2.5.2-r1.ebuild | 133 | ||||
-rw-r--r-- | www-client/qutebrowser/qutebrowser-2.5.4.ebuild | 15 | ||||
-rw-r--r-- | www-client/qutebrowser/qutebrowser-3.0.0_pre9999.ebuild | 187 | ||||
-rw-r--r-- | www-client/qutebrowser/qutebrowser-9999.ebuild | 60 |
6 files changed, 68 insertions, 352 deletions
diff --git a/www-client/qutebrowser/Manifest b/www-client/qutebrowser/Manifest index ea24874fdb0c..bd76eb7244a4 100644 --- a/www-client/qutebrowser/Manifest +++ b/www-client/qutebrowser/Manifest @@ -1,8 +1,4 @@ -AUX qutebrowser-2.5.2-dictcli.patch 589 BLAKE2B 1ad904d36935acc28dc9c6f871d0dab260bf8db24e2dec67b60cd09a7234faac719f0836f73e17c6673b99c7253164e18a6ec47827796daf6af5b4babe91e3ac SHA512 00c6907241fc3ccd0266c0433e18580594b0c8a2151f8e393f1d1dc1a04c6c68619a7ca20f1219ec2cca7e302a39ba14542af03faac7b85c68c7fc47a9fc45fe -DIST qutebrowser-2.5.2.tar.gz 6114611 BLAKE2B 5f56e1e2c390bb2f36c95e25a2dae9e5203020ff6b2cf1e13092cf493efa950b24b8ff8f23af6eed93ca8b316e30f86715ecd2f2eb28c341210de0b25c9f67ad SHA512 4751ea1a5b1776f085fcd1f9ab5ff805155fca34d0272ba8eb6574f9074257929c3fb5b50c9053a522bfb346aee1a2551b58cf933c6ff7c5c84fd10559ec36fc DIST qutebrowser-2.5.4.tar.gz 6117674 BLAKE2B d8dedf57ac064ce1a3d2e4e854a0064dfe567260cadfcdf129c2a2bcdbd26aaa21a569e3f69300c75e5dfb363b62173ac6e5f11e4bcd4a5c8dd72697b4caa5c3 SHA512 1c500cda921a273dee14b1e0808786bbfd2ce53ea9b4d5114be9abdacbefa5d3c7580d2995ad0100f597b9bf54addf4c98dbd4b924d9e8d3d08fe30309e44c3e -EBUILD qutebrowser-2.5.2-r1.ebuild 4441 BLAKE2B c86a459181c039d78ace97598690d6ea373bc33c6964f187bc98de45a12e807d909e17ecc4506258400f155b230d0f225d6519fe79cc524f74d810a8280e0e96 SHA512 2eec0e64b15604e11f1193fa0af5ce576a1f620db6d916f401fd3257993545c436aa4194ca5184027d84515bf02de29c557ade250e69d13b7c13bef9057a5d4d -EBUILD qutebrowser-2.5.4.ebuild 4629 BLAKE2B 0119c620c49300fb466253b2eb0c66814651deac70a1287114c3e58df2735ecd1e65b6a38a893cd264040579153ac3b5961ad3ff08408b7e2b668b015bdc3335 SHA512 18c14149a622245e872b09fee08fa37bfedc70117a99d46a1e5d04b291a22f93153f32f80eade6ee39760e033af3ef1badb4e49f8d3eebb8ad464e30b7b70603 -EBUILD qutebrowser-3.0.0_pre9999.ebuild 6337 BLAKE2B 0e60e5064c85be840e7d0d64472d5781f9ee378a56ebc80d28bfa86be84bc026e6bf8d3dc354008bc5ab013644e394ee9bc73e8f6f81d40f7a973dac4f339eb5 SHA512 beaee232c67e3549094d4b6ca26225e81871a291fceca45f9518217c8435c971bb29298120982f4890aa4a61e712919da771cd11a4a03e4393ad50c2d47565d9 -EBUILD qutebrowser-9999.ebuild 4630 BLAKE2B 9c67f8771da3a75d497bbc5a4df689f1b964f46dcb2272e768860e5c2ec87ad53b3ddd9eca41f9e51f6da4fea1141fc928638bf83eba5320c20e194056630c05 SHA512 13d47b1a5340c0017a3f1959195efecd2ad96f17593fc74a1e8b73f296f021b70385a5b5bfe14431cec9b93cf9080874f4dd9dd330fff688e5a053d7714eea94 +EBUILD qutebrowser-2.5.4.ebuild 5146 BLAKE2B 1afe3f919b68805163651570ef0daeeb6891324d4836afa8ef5313be8d340dcf78f39500917f05b73033867f8f4a1bdfdf46d67fe8c42bb81efbc4545b6963bf SHA512 06f7f867cb92f51b6f0bfc8c6ff76d82a276118b2c66f55938c838af0fbda051ea0edbed8bb78180ed4770c3e36bf681605e501d3ab5cbc211453864d16fd304 +EBUILD qutebrowser-9999.ebuild 6373 BLAKE2B 31c516817bef034524112b7c3842bc92198d02d88928701176918b144069b651420ecbf5111f72e22860e9aa14afd3232d5facb2dc3bb67a669d4cae8a5e866b SHA512 593efebbbc57288e4594ebf0833f5a4a34081bebfb20157b2dd0125d58726ddff06dbfc3b23cea4ea776706234627663797da661ee7ecc713232b6ea4969282c MISC metadata.xml 1018 BLAKE2B 9d0c406995b2036671113b6513c3ed2fdb5021eae9d1dde5c186efeccdde6dae127857e3e5898f7809edcc27eca4b47f37965155ac0ff21bedb78e242421fd54 SHA512 2af79f18d31f9efe8df852f4bca132caf1d79fc06f6388959deb367470d4975af541a75c70831b549d944112bcd0bc7e11510a81bce4ef1391fbf1354425b769 diff --git a/www-client/qutebrowser/files/qutebrowser-2.5.2-dictcli.patch b/www-client/qutebrowser/files/qutebrowser-2.5.2-dictcli.patch deleted file mode 100644 index cd179a5d0236..000000000000 --- a/www-client/qutebrowser/files/qutebrowser-2.5.2-dictcli.patch +++ /dev/null @@ -1,17 +0,0 @@ -https://github.com/qutebrowser/qutebrowser/commit/f277876ce0817f7d05ca94b05beb644482027f85 -From: Florian Bruhin <me@the-compiler.org> -Date: Sat, 19 Nov 2022 16:00:15 +0100 -Subject: [PATCH] dictcli: Switch from master to main - -Fixes #7481 ---- a/scripts/dictcli.py -+++ b/scripts/dictcli.py -@@ -40,7 +40,7 @@ - from qutebrowser.utils import standarddir - - --API_URL = 'https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git/+/master/' -+API_URL = 'https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git/+/main/' - - - class InvalidLanguageError(Exception): diff --git a/www-client/qutebrowser/qutebrowser-2.5.2-r1.ebuild b/www-client/qutebrowser/qutebrowser-2.5.2-r1.ebuild deleted file mode 100644 index 1e0b94274b51..000000000000 --- a/www-client/qutebrowser/qutebrowser-2.5.2-r1.ebuild +++ /dev/null @@ -1,133 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_SINGLE_IMPL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{9..11} ) -inherit distutils-r1 xdg - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/qutebrowser/qutebrowser.git" -else - SRC_URI="https://github.com/qutebrowser/qutebrowser/releases/download/v${PV}/${P}.tar.gz" - KEYWORDS="amd64 ~arm64 ~x86" -fi - -DESCRIPTION="Keyboard-driven, vim-like browser based on PyQt5 and QtWebEngine" -HOMEPAGE="https://www.qutebrowser.org/" - -LICENSE="GPL-3+" -SLOT="0" -IUSE="+adblock pdf widevine" - -RDEPEND=" - dev-qt/qtcore:5[icu] - dev-qt/qtgui:5[png] - $(python_gen_cond_dep ' - dev-python/colorama[${PYTHON_USEDEP}] - >=dev-python/jinja-3.0.2[${PYTHON_USEDEP}] - >=dev-python/markupsafe-2.0.1[${PYTHON_USEDEP}] - dev-python/pygments[${PYTHON_USEDEP}] - dev-python/PyQt5[${PYTHON_USEDEP},dbus,declarative,multimedia,gui,network,opengl,printsupport,sql,widgets] - dev-python/PyQtWebEngine[${PYTHON_USEDEP}] - dev-python/pyyaml[${PYTHON_USEDEP},libyaml(+)] - dev-python/zipp[${PYTHON_USEDEP}] - adblock? ( dev-python/adblock[${PYTHON_USEDEP}] )') - pdf? ( <www-plugins/pdfjs-3 ) - widevine? ( www-plugins/chrome-binary-plugins )" -BDEPEND=" - $(python_gen_cond_dep ' - test? ( - dev-python/beautifulsoup4[${PYTHON_USEDEP}] - dev-python/cheroot[${PYTHON_USEDEP}] - dev-python/flask[${PYTHON_USEDEP}] - dev-python/hypothesis[${PYTHON_USEDEP}] - dev-python/pytest-bdd[${PYTHON_USEDEP}] - dev-python/pytest-mock[${PYTHON_USEDEP}] - dev-python/pytest-qt[${PYTHON_USEDEP}] - dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] - dev-python/pytest-xvfb[${PYTHON_USEDEP}] - dev-python/tldextract[${PYTHON_USEDEP}] - )')" -[[ ${PV} != 9999 ]] || BDEPEND+=" app-text/asciidoc" - -distutils_enable_tests pytest - -PATCHES=( - "${FILESDIR}"/${P}-dictcli.patch -) - -src_prepare() { - distutils-r1_src_prepare - - if use pdf; then - sed '/^content.pdfjs:/,+1s/false/true/' \ - -i ${PN}/config/configdata.yml || die - fi - - if use widevine; then - local widevine=${EPREFIX}/usr/$(get_libdir)/chromium-browser/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so - sed "/yield from _qtwebengine_settings_args/a\ yield '--widevine-path=${widevine}'" \ - -i ${PN}/config/qtargs.py || die - fi - - # let eclass handle python - sed -i '/setup.py/d' misc/Makefile || die - - [[ ${PV} != 9999 ]] || ${EPYTHON} scripts/asciidoc2html.py || die - - # these plugins/tests are unnecessary here and have extra dependencies - sed -e '/pytest-benchmark/d;s/--benchmark[^ ]*//' \ - -e '/pytest-instafail/d;s/--instafail//' \ - -i pytest.ini || die - [[ ${PV} == 9999 ]] || rm tests/unit/scripts/test_problemmatchers.py || die - [[ ${PV} != 9999 ]] || rm tests/unit/scripts/test_run_vulture.py || die -} - -python_test() { - local -x PYTEST_QT_API=pyqt5 - - local EPYTEST_DESELECT=( - # end2end and other IPC tests are broken with "Name error" if - # socket path is over 104 characters (=124 in /var/tmp/portage) - # https://github.com/qutebrowser/qutebrowser/issues/888 (not just OSX) - tests/end2end - tests/unit/misc/test_ipc.py - # tests that don't know about our newer qtwebengine - tests/unit/browser/webengine/test_webenginedownloads.py::TestDataUrlWorkaround - tests/unit/utils/test_version.py::TestChromiumVersion - # may misbehave depending on installed old python versions - tests/unit/misc/test_checkpyver.py::test_old_python - # bug 819393 - tests/unit/commands/test_userscripts.py::test_custom_env[_POSIXUserscriptRunner] - # not worth running dbus over - tests/unit/browser/test_notification.py::TestDBus - ) - use widevine && EPYTEST_DESELECT+=( tests/unit/config/test_qtargs.py ) - - # skip benchmarks (incl. _tree), and warning tests broken by -Wdefault - epytest -p xvfb -k 'not _bench and not _matches_tree and not _warning' -} - -python_install_all() { - emake -f misc/Makefile DESTDIR="${D}" PREFIX="${EPREFIX}"/usr install - - rm "${ED}"/usr/share/${PN}/scripts/{mkvenv,utils}.py || die - fperms -x /usr/share/${PN}/{scripts/cycle-inputs.js,userscripts/README.md} - python_fix_shebang "${ED}"/usr/share/${PN} - - einstalldocs -} - -pkg_postinst() { - xdg_pkg_postinst - - if [[ ! ${REPLACING_VERSIONS} ]]; then - elog "Note that optional scripts in ${EROOT}/usr/share/${PN}/{user,}scripts" - elog "have additional dependencies not covered by this ebuild, for example" - elog "view_in_mpv needs media-video/mpv[lua] and net-misc/yt-dlp." - fi -} diff --git a/www-client/qutebrowser/qutebrowser-2.5.4.ebuild b/www-client/qutebrowser/qutebrowser-2.5.4.ebuild index 30a3498c8cf8..59de8c56dd4a 100644 --- a/www-client/qutebrowser/qutebrowser-2.5.4.ebuild +++ b/www-client/qutebrowser/qutebrowser-2.5.4.ebuild @@ -131,6 +131,12 @@ python_install_all() { einstalldocs } +pkg_preinst() { + xdg_pkg_preinst + + has_version "${CATEGORY}/${PN}[qt6]" && QUTEBROWSER_HAD_QT6= +} + pkg_postinst() { xdg_pkg_postinst @@ -139,4 +145,13 @@ pkg_postinst() { elog "have additional dependencies not covered by this ebuild, for example" elog "view_in_mpv needs media-video/mpv[lua] and net-misc/yt-dlp." fi + + if [[ -v QUTEBROWSER_HAD_QT6 ]]; then + ewarn "This is a downgrade from Qt6-based ${PN} to Qt5-based, and this" + ewarn "older version of ${PN} will /not/ warn on startup that this is" + ewarn "going to destroy some browsing data (e.g. cookies) when older chromium" + ewarn "version tries to use the newer ~/.local/share/${PN}/webengine." + ewarn + ewarn "It is recommended to backup in case or go back to Qt6." + fi } diff --git a/www-client/qutebrowser/qutebrowser-3.0.0_pre9999.ebuild b/www-client/qutebrowser/qutebrowser-3.0.0_pre9999.ebuild deleted file mode 100644 index 0de37e2649d8..000000000000 --- a/www-client/qutebrowser/qutebrowser-3.0.0_pre9999.ebuild +++ /dev/null @@ -1,187 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_SINGLE_IMPL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{9..11} ) -inherit distutils-r1 xdg - -if [[ ${PV} == *9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/qutebrowser/qutebrowser.git" - EGIT_BRANCH="qt6-v2" -else - SRC_URI="https://github.com/qutebrowser/qutebrowser/releases/download/v${PV}/${P}.tar.gz" - KEYWORDS="~amd64 ~arm64 ~x86" -fi - -DESCRIPTION="Keyboard-driven, vim-like browser based on Python and Qt" -HOMEPAGE="https://www.qutebrowser.org/" - -LICENSE="GPL-3+" -SLOT="0" -IUSE="+adblock pdf +qt6 widevine" - -RDEPEND=" - $(python_gen_cond_dep ' - dev-python/colorama[${PYTHON_USEDEP}] - >=dev-python/jinja-3.1.2[${PYTHON_USEDEP}] - >=dev-python/markupsafe-2.1.1[${PYTHON_USEDEP}] - dev-python/pygments[${PYTHON_USEDEP}] - dev-python/pyyaml[${PYTHON_USEDEP}] - dev-python/zipp[${PYTHON_USEDEP}] - adblock? ( dev-python/adblock[${PYTHON_USEDEP}] ) - ') - qt6? ( - dev-qt/qtbase:6[icu] - $(python_gen_cond_dep ' - dev-python/PyQt6[${PYTHON_USEDEP},dbus,gui,network,opengl,printsupport,qml,sql,widgets] - dev-python/PyQt6-WebEngine[${PYTHON_USEDEP},widgets] - ') - pdf? ( www-plugins/pdfjs ) - ) - !qt6? ( - dev-qt/qtcore:5[icu] - dev-qt/qtgui:5[png] - $(python_gen_cond_dep ' - dev-python/PyQt5[${PYTHON_USEDEP},dbus,declarative,gui,network,opengl,printsupport,sql,widgets] - dev-python/PyQtWebEngine[${PYTHON_USEDEP}] - ') - pdf? ( <www-plugins/pdfjs-3 ) - ) - widevine? ( www-plugins/chrome-binary-plugins )" -BDEPEND=" - $(python_gen_cond_dep ' - test? ( - dev-python/beautifulsoup4[${PYTHON_USEDEP}] - dev-python/cheroot[${PYTHON_USEDEP}] - dev-python/flask[${PYTHON_USEDEP}] - dev-python/hypothesis[${PYTHON_USEDEP}] - dev-python/pytest-bdd[${PYTHON_USEDEP}] - dev-python/pytest-mock[${PYTHON_USEDEP}] - dev-python/pytest-qt[${PYTHON_USEDEP}] - dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] - dev-python/pytest-xvfb[${PYTHON_USEDEP}] - dev-python/tldextract[${PYTHON_USEDEP}] - qt6? ( dev-python/PyQt6[testlib] ) - !qt6? ( dev-python/PyQt5[testlib] ) - ) - ')" -[[ ${PV} == *9999 ]] && BDEPEND+=" app-text/asciidoc" - -distutils_enable_tests pytest - -src_prepare() { - distutils-r1_src_prepare - - if use pdf; then - sed -e '/^content.pdfjs:/,+1s/false/true/' \ - -i ${PN}/config/configdata.yml || die - fi - - if use widevine && use prefix; then - # hack: QtWebEngine knows Gentoo's widevine, but not with ${EPREFIX} - local widevine=${EPREFIX}/usr/$(get_libdir)/chromium-browser/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so - sed -e "/yield from _qtwebengine_settings_args/a\ yield '--widevine-path=${widevine}'" \ - -i ${PN}/config/qtargs.py || die - fi - - # ensure run the requested Qt backend - sed -e '/^_WRAPPERS = /,/^]/c\_WRAPPERS = [ "PyQt'$(usex qt6 6 5)'" ]' \ - -i ${PN}/qt/machinery.py || die - - # let eclass handle python - sed -i '/setup.py/d' misc/Makefile || die - - if [[ ${PV} == *9999 ]]; then - # call asciidoc(1) rather than the single target python module - sed -e '/cmdline = /s/= .*/= ["asciidoc"]/' \ - -i scripts/asciidoc2html.py || die - - "${EPYTHON}" scripts/asciidoc2html.py || die - fi - - # disable unnecessary tests/plugins that need extras - sed -e '/pytest-benchmark/d' -e 's/--benchmark[^ ]*//' \ - -e '/pytest-instafail/d' -e 's/--instafail//' \ - -i pytest.ini || die - if [[ ${PV} == *9999 ]]; then - rm tests/unit/scripts/test_run_vulture.py || die - else - rm tests/unit/scripts/test_problemmatchers.py || die - fi -} - -python_test() { - local -x PYTEST_QT_API=pyqt$(usex qt6 6 5) - - local EPYTEST_DESELECT=( - # end2end and other IPC tests are broken with "Name error" if - # socket path is over ~104 characters (=124 in /var/tmp/portage) - # https://github.com/qutebrowser/qutebrowser/issues/888 (not just OSX) - tests/end2end - tests/unit/misc/test_ipc.py - # calls eclass' python2 "failure" wrapper - tests/unit/misc/test_checkpyver.py::test_old_python - # not worth running dbus over - tests/unit/browser/test_notification.py::TestDBus - # bug 819393 - tests/unit/commands/test_userscripts.py::test_custom_env[_POSIXUserscriptRunner] - # tests that don't know about our newer qtwebengine:5 - tests/unit/browser/webengine/test_webenginedownloads.py::TestDataUrlWorkaround - ) - # qtargs are mangled with widevine+prefix - use widevine && use prefix && EPYTEST_DESELECT+=( tests/unit/config/test_qtargs.py ) - - # skip benchmarks (incl. _tree), and warning tests broken by -Wdefault - epytest -p xvfb -n ${jobs} -k 'not _bench and not _matches_tree and not _warning' -} - -python_install_all() { - emake -f misc/Makefile DESTDIR="${D}" PREFIX="${EPREFIX}"/usr install - - rm "${ED}"/usr/share/${PN}/scripts/{mkvenv,utils}.py || die - fperms -x /usr/share/${PN}/{scripts/cycle-inputs.js,userscripts/README.md} - python_fix_shebang "${ED}"/usr/share/${PN} - - einstalldocs -} - -pkg_preinst() { - xdg_pkg_preinst - - has_version "${CATEGORY}/${PN}[qt6]" && QUTEBROWSER_HAD_QT6= -} - -pkg_postinst() { - xdg_pkg_postinst - - if [[ ! ${REPLACING_VERSIONS} ]]; then - elog "Note that optional scripts in ${EROOT}/usr/share/${PN}/{user,}scripts" - elog "have additional dependencies not covered by this ebuild, for example" - elog "view_in_mpv needs media-video/mpv[lua] and net-misc/yt-dlp." - fi - - if [[ ! -v QUTEBROWSER_HAD_QT6 ]] && use qt6; then - elog "USE=qt6 is enabled using the qt6-v2 branch, it is work-in-progress" - elog "and some issues may be expected. Can follow upstream progress at:" - elog " https://github.com/qutebrowser/qutebrowser/issues/7202 [qt6 general]" - elog " https://github.com/qutebrowser/qutebrowser/tree/qt6-v2 [used branch]" - if [[ ${REPLACING_VERSIONS} ]]; then - elog - elog "You may optionally want to backup your ~/.local/share/${PN} before" - elog "it is converted to use Qt6 WebEngine (one-way conversion). ${PN}" - elog "will also warn about this on launch for a last chance to abort." - fi - fi - - # only show qt6 warning on arches where USE=qt6 is unmasked - if use amd64 && use !qt6; then - ewarn "USE=qt6 is disabled, be warned that Qt5's WebEngine uses an older" - ewarn "chromium version. While it is relatively maintained for security, it may" - ewarn "cause issues for sites/features designed with a newer version in mind." - ewarn "When Qt6 support is stable enough, ebuild's Qt5 support may get removed." - fi -} diff --git a/www-client/qutebrowser/qutebrowser-9999.ebuild b/www-client/qutebrowser/qutebrowser-9999.ebuild index 7cb5d6ee3504..2a80f2b1aa5d 100644 --- a/www-client/qutebrowser/qutebrowser-9999.ebuild +++ b/www-client/qutebrowser/qutebrowser-9999.ebuild @@ -21,12 +21,10 @@ HOMEPAGE="https://www.qutebrowser.org/" LICENSE="GPL-3+" SLOT="0" -IUSE="+adblock pdf widevine" +IUSE="+adblock pdf +qt6 widevine" RDEPEND=" $(python_gen_cond_dep ' - dev-python/PyQt5[${PYTHON_USEDEP},dbus,declarative,gui,network,opengl,printsupport,sql,widgets] - dev-python/PyQtWebEngine[${PYTHON_USEDEP}] dev-python/colorama[${PYTHON_USEDEP}] >=dev-python/jinja-3.1.2[${PYTHON_USEDEP}] >=dev-python/markupsafe-2.1.1[${PYTHON_USEDEP}] @@ -35,14 +33,27 @@ RDEPEND=" dev-python/zipp[${PYTHON_USEDEP}] adblock? ( dev-python/adblock[${PYTHON_USEDEP}] ) ') - dev-qt/qtcore:5[icu] - dev-qt/qtgui:5[png] - pdf? ( <www-plugins/pdfjs-3 ) + qt6? ( + dev-qt/qtbase:6[icu] + $(python_gen_cond_dep ' + dev-python/PyQt6[${PYTHON_USEDEP},dbus,gui,network,opengl,printsupport,qml,sql,widgets] + dev-python/PyQt6-WebEngine[${PYTHON_USEDEP},widgets] + ') + pdf? ( www-plugins/pdfjs ) + ) + !qt6? ( + dev-qt/qtcore:5[icu] + dev-qt/qtgui:5[png] + $(python_gen_cond_dep ' + dev-python/PyQt5[${PYTHON_USEDEP},dbus,declarative,gui,network,opengl,printsupport,sql,widgets] + dev-python/PyQtWebEngine[${PYTHON_USEDEP}] + ') + pdf? ( <www-plugins/pdfjs-3 ) + ) widevine? ( www-plugins/chrome-binary-plugins )" BDEPEND=" $(python_gen_cond_dep ' test? ( - dev-python/PyQt5[testlib] dev-python/beautifulsoup4[${PYTHON_USEDEP}] dev-python/cheroot[${PYTHON_USEDEP}] dev-python/flask[${PYTHON_USEDEP}] @@ -53,6 +64,8 @@ BDEPEND=" dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] dev-python/pytest-xvfb[${PYTHON_USEDEP}] dev-python/tldextract[${PYTHON_USEDEP}] + qt6? ( dev-python/PyQt6[testlib] ) + !qt6? ( dev-python/PyQt5[testlib] ) ) ')" [[ ${PV} == 9999 ]] && BDEPEND+=" app-text/asciidoc" @@ -63,6 +76,7 @@ src_prepare() { distutils-r1_src_prepare if use pdf; then + # doesn't hurt to enable by default if was explicitly requested sed -e '/^content.pdfjs:/,+1s/false/true/' \ -i ${PN}/config/configdata.yml || die fi @@ -74,6 +88,12 @@ src_prepare() { -i ${PN}/config/qtargs.py || die fi + # default to the requested Qt backend, current default is PyQt5 but + # sed unconditionally for safety in 9999 given this is going to change + # (note that using sed is the suggested solution by upstream for now) + sed -e "/^_DEFAULT_WRAPPER =/s/=.*/= \"PyQt$(usex qt6 6 5)\"/" \ + -i ${PN}/qt/machinery.py || die + # let eclass handle python sed -i '/setup.py/d' misc/Makefile || die @@ -85,7 +105,7 @@ src_prepare() { "${EPYTHON}" scripts/asciidoc2html.py || die fi - # disable unnecessary tests/plugins that need extras + # disable tests/plugins that are unncessary for us and need extras sed -e '/pytest-benchmark/d' -e 's/--benchmark[^ ]*//' \ -e '/pytest-instafail/d' -e 's/--instafail//' \ -i pytest.ini || die @@ -97,7 +117,7 @@ src_prepare() { } python_test() { - local -x PYTEST_QT_API=pyqt5 + local -x PYTEST_QT_API=pyqt$(usex qt6 6 5) local EPYTEST_DESELECT=( # end2end and other IPC tests are broken with "Name error" if @@ -131,6 +151,12 @@ python_install_all() { einstalldocs } +pkg_preinst() { + xdg_pkg_preinst + + has_version "${CATEGORY}/${PN}[qt6]" && QUTEBROWSER_HAD_QT6= +} + pkg_postinst() { xdg_pkg_postinst @@ -139,4 +165,20 @@ pkg_postinst() { elog "have additional dependencies not covered by this ebuild, for example" elog "view_in_mpv needs media-video/mpv[lua] and net-misc/yt-dlp." fi + + if [[ ! -v QUTEBROWSER_HAD_QT6 && ${REPLACING_VERSIONS} ]] && use qt6; then + ewarn "Be warned that starting the Qt6 version of ${PN} performs a one-way" + ewarn "conversion of ~/.local/share/${PN}/webengine to Qt6. There will also" + ewarn "be a warning on startup, and may optionally want to backup first." + fi + + # only show qt6 warning on arches where USE=qt6 is unmasked + # TODO: uncomment after https://github.com/gentoo/gentoo/pull/29181 albeit + # may need to comment it out again when stabling if don't stable Qt6 (yet). +# if use amd64 && use !qt6; then +# ewarn "USE=qt6 is disabled, be warned that Qt5's WebEngine uses an older" +# ewarn "chromium version. While it is relatively maintained for security, it may" +# ewarn "cause issues for sites/features designed with a newer version in mind." +# ewarn "When Qt6 support is stable enough, ebuild's Qt5 support may get removed." +# fi } |