From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 6D68515817D for ; Mon, 3 Jun 2024 19:27:13 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 2D411E2A63; Mon, 3 Jun 2024 19:27:12 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 044BDE2A63 for ; Mon, 3 Jun 2024 19:27:11 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id C961E3406C2 for ; Mon, 3 Jun 2024 19:27:10 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 05C6416DD for ; Mon, 3 Jun 2024 19:27:09 +0000 (UTC) From: "Ionen Wolkens" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Ionen Wolkens" Message-ID: <1717442467.50cf99524c80245ed31e6f5f9ee355100552bba1.ionen@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: www-client/qutebrowser/ X-VCS-Repository: repo/gentoo X-VCS-Files: www-client/qutebrowser/Manifest www-client/qutebrowser/qutebrowser-3.2.0.ebuild X-VCS-Directories: www-client/qutebrowser/ X-VCS-Committer: ionen X-VCS-Committer-Name: Ionen Wolkens X-VCS-Revision: 50cf99524c80245ed31e6f5f9ee355100552bba1 X-VCS-Branch: master Date: Mon, 3 Jun 2024 19:27:09 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 0bc77597-ea30-4f45-bd76-b998a8fc77e2 X-Archives-Hash: 9a8acb7f77014002ef61bb4206100906 commit: 50cf99524c80245ed31e6f5f9ee355100552bba1 Author: Ionen Wolkens gentoo org> AuthorDate: Mon Jun 3 19:11:04 2024 +0000 Commit: Ionen Wolkens gentoo org> CommitDate: Mon Jun 3 19:21:07 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=50cf9952 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 gentoo.org> www-client/qutebrowser/Manifest | 2 + www-client/qutebrowser/qutebrowser-3.2.0.ebuild | 167 ++++++++++++++++++++++++ 2 files changed, 169 insertions(+) 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 +}