summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIonen Wolkens <ionen@gentoo.org>2024-06-03 15:11:04 -0400
committerIonen Wolkens <ionen@gentoo.org>2024-06-03 15:21:07 -0400
commit50cf99524c80245ed31e6f5f9ee355100552bba1 (patch)
tree5eddeccf4be720b6701cedda02dbeeb0b0e60d8b /www-client/qutebrowser
parentwww-client/qutebrowser: update live (diff)
downloadgentoo-50cf99524c80245ed31e6f5f9ee355100552bba1.tar.gz
gentoo-50cf99524c80245ed31e6f5f9ee355100552bba1.tar.bz2
gentoo-50cf99524c80245ed31e6f5f9ee355100552bba1.zip
www-client/qutebrowser: add 3.2.0
Note that the Qt5 support had been dropped in the live ebuild a while ago, and this is the first keyworded ebuild with that change. Upstream still support Qt5 (albeit discouraged), but seeing little reason to keep supporting it here when we have working Qt6. Many sites are broken with old qtwebengine:5 and, even with backports, it is a security hazard. Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'www-client/qutebrowser')
-rw-r--r--www-client/qutebrowser/Manifest2
-rw-r--r--www-client/qutebrowser/qutebrowser-3.2.0.ebuild167
2 files changed, 169 insertions, 0 deletions
diff --git a/www-client/qutebrowser/Manifest b/www-client/qutebrowser/Manifest
index 02e1b0c83623..908813e7eb50 100644
--- a/www-client/qutebrowser/Manifest
+++ b/www-client/qutebrowser/Manifest
@@ -1,2 +1,4 @@
DIST qutebrowser-3.1.0.tar.gz 6045747 BLAKE2B d0cca696dd85bb99b8514331a392e1cb54fcbeff32fcf13e058739ef5a20ef1725980fbabef187a226f1cc29be9943784ba1f93275047586827922c3e98d0a64 SHA512 79dff3cf4ff93c75150e5cb9ada835ed5faf0343f03854266c6138fb8e6cceb921c868e1e408432da61b85ebe37e7e1657f634771ff73f1395d1b6e169138d98
DIST qutebrowser-3.1.0.tar.gz.asc 659 BLAKE2B 023916e83cf2ac084f013ad750acf1ddb02a146197e92f703a96c54bceafcabf9d09a398c43e1679d0e425d54f13726c576c1b2e13707888e097952abef9797b SHA512 f89369b0c61852c0ee22a476fcce0c8fc236920a2c6fbcfb945e010275650bdd133b6714ec2b64c1156789eb3f6f897cbf9a31441e913afcf9f19ea3113611f7
+DIST qutebrowser-3.2.0.tar.gz 6054386 BLAKE2B 3f0589dbbc2dc34c4138bc7ea33ea090a6aff4abe087e7b80f0294789a252924fb90b2b0229e1513c96e863a612bf26579b6e895bc0b9b553c1b7439361ee589 SHA512 85980ccbb1982ecfb142a4e3fc0a66b8ac88f73c394a6c936b8f1a541ea30a65ee576abd7e202ac50fd943c85457d75b5ccac7d51ea34ff1b0f7eb8a647aa18d
+DIST qutebrowser-3.2.0.tar.gz.asc 659 BLAKE2B 33d88c2d4020535616ee5d8ed8e517aabf24433ab9d712f12aa1f138398a60807a14383d300245ee7873ed027445034ced9c61ce52a54518a2cc240a01f2649f SHA512 895e6d585f4d1d7373544d763663412136ef4b397565ddac24c1bcf16c75e96c8110cc8dea6fa8457799b893a2e3d2fca8979875b8e8423f270a70100d6e57db
diff --git a/www-client/qutebrowser/qutebrowser-3.2.0.ebuild b/www-client/qutebrowser/qutebrowser-3.2.0.ebuild
new file mode 100644
index 000000000000..e0f7bb2a94cd
--- /dev/null
+++ b/www-client/qutebrowser/qutebrowser-3.2.0.ebuild
@@ -0,0 +1,167 @@
+# Copyright 1999-2024 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_{10..12} )
+inherit distutils-r1 xdg
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/qutebrowser/qutebrowser.git"
+else
+ inherit verify-sig
+ SRC_URI="
+ https://github.com/qutebrowser/qutebrowser/releases/download/v${PV}/${P}.tar.gz
+ verify-sig? ( https://github.com/qutebrowser/qutebrowser/releases/download/v${PV}/${P}.tar.gz.asc )
+ "
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/qutebrowser.gpg
+ KEYWORDS="~amd64 ~arm64"
+fi
+
+DESCRIPTION="Keyboard-driven, vim-like browser based on Python and Qt"
+HOMEPAGE="https://qutebrowser.org/"
+
+LICENSE="GPL-3+"
+SLOT="0"
+IUSE="+adblock pdf widevine"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/PyQt6-WebEngine[${PYTHON_USEDEP},widgets]
+ dev-python/PyQt6[${PYTHON_USEDEP},dbus,gui,network,opengl,printsupport,qml,sql,widgets]
+ dev-python/colorama[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/markupsafe[${PYTHON_USEDEP}]
+ dev-python/pygments[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/zipp[${PYTHON_USEDEP}]
+ dev-qt/qtbase:6[icu,sqlite]
+ adblock? ( dev-python/adblock[${PYTHON_USEDEP}] )
+ pdf? ( www-plugins/pdfjs )
+ widevine? ( www-plugins/chrome-binary-plugins )
+ ')
+"
+BDEPEND="
+ $(python_gen_cond_dep '
+ test? (
+ dev-python/PyQt6[testlib]
+ 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}]
+ )
+ ')
+"
+
+if [[ ${PV} == 9999 ]]; then
+ BDEPEND+=" app-text/asciidoc"
+else
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-qutebrowser )"
+fi
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ if use pdf; then
+ # does not hurt to enable by default if it was explicitly requested
+ sed -e '/^content.pdfjs:/,+1s/false/true/' \
+ -i ${PN}/config/configdata.yml || die
+ fi
+
+ # 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
+
+ if use test; then
+ # unnecessary here, and would require extra deps
+ sed -e '/pytest-benchmark/d' -e 's/--benchmark[^ ]*//' \
+ -e '/pytest-instafail/d' -e 's/--instafail//' \
+ -i pytest.ini || die
+
+ if [[ ${PV} == 9999 ]]; then
+ # likewise, needs vulture
+ rm tests/unit/scripts/test_run_vulture.py || die
+ else
+ # https://github.com/qutebrowser/qutebrowser/issues/7620
+ rm tests/unit/scripts/test_problemmatchers.py || die
+ fi
+ fi
+}
+
+python_test() {
+ local -x PYTEST_QT_API=pyqt6
+
+ local EPYTEST_DESELECT=(
+ # end2end/IPC tests are broken with "Name error" if socket path is over
+ # ~108 characters (>124 in /var/tmp/portage) due to Linux limitations,
+ # skip rather than bother using /tmp+cleanup over ${T} (end2end tests
+ # are important, but the other tests should be enough for downstream)
+ tests/end2end
+ tests/unit/misc/test_ipc.py
+ # python eclasses provide a fake "failing" python2 and trips this test
+ tests/unit/misc/test_checkpyver.py::test_old_python
+ # not worth running dbus over
+ tests/unit/browser/test_notification.py::TestDBus
+ # fails in ebuild, seems due to saving fake downloads in the wrong location
+ tests/unit/browser/webengine/test_webenginedownloads.py::TestDataUrlWorkaround
+ # may fail if environment is very large (bug #819393)
+ tests/unit/commands/test_userscripts.py::test_custom_env\[_POSIXUserscriptRunner\]
+ # fails if chromium version is unrecognized (aka newer qtwebengine)
+ tests/unit/utils/test_version.py::TestWebEngineVersions::test_real_chromium_version
+ )
+
+ local epytestargs=(
+ # prefer pytest-xvfb over virtx given same upstream and is expected
+ -p xvfb
+ # skip warning tests broken by -Wdefault, and benchmarks
+ -k 'not _bench and not _matches_tree and not _warning'
+ # override eclass' settings, tempdirs are re-used by Qt
+ -o tmp_path_retention_policy=all
+ )
+
+ epytest "${epytestargs[@]}"
+}
+
+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
+
+ if has_version 'dev-qt/qtwebengine:6[bindist]'; then
+ ewarn
+ ewarn "USE=bindist is set on dev-qt/qtwebengine, be warned that this"
+ ewarn "will prevent playback of proprietary media formats (e.g. h264)."
+ fi
+}