commit:     b7fee1f3d5d3d0f9d74f7ac8cf8a15be03d252b0
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 27 19:21:24 2022 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Tue Dec 27 19:25:08 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b7fee1f3

dev-util/pkgcheck: fix for pkgcore-0.12.18

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 .../pkgcheck-0.10.19-fix-pkgcore-0.12.18.patch     |  65 +++++++++++++
 dev-util/pkgcheck/pkgcheck-0.10.19-r2.ebuild       | 102 +++++++++++++++++++++
 2 files changed, 167 insertions(+)

diff --git a/dev-util/pkgcheck/files/pkgcheck-0.10.19-fix-pkgcore-0.12.18.patch 
b/dev-util/pkgcheck/files/pkgcheck-0.10.19-fix-pkgcore-0.12.18.patch
new file mode 100644
index 000000000000..c2c452c42c7f
--- /dev/null
+++ b/dev-util/pkgcheck/files/pkgcheck-0.10.19-fix-pkgcore-0.12.18.patch
@@ -0,0 +1,65 @@
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -8,8 +8,8 @@ requires = [
+       "lxml",
+       "pathspec",
+       "tree-sitter>=0.19.0",
+-      "snakeoil~=0.10.3",
+-      "pkgcore~=0.12.17",
++      "snakeoil~=0.10.4",
++      "pkgcore~=0.12.18",
+ ]
+ build-backend = "setuptools.build_meta"
+ 
+@@ -40,8 +40,8 @@ dependencies = [
+       "lxml",
+       "pathspec",
+       "tree-sitter>=0.19.0",
+-      "snakeoil~=0.10.3",
+-      "pkgcore~=0.12.17",
++      "snakeoil~=0.10.4",
++      "pkgcore~=0.12.18",
+ ]
+ 
+ [project.optional-dependencies]
+@@ -53,7 +53,7 @@ test = [
+ doc = [
+       "sphinx",
+       "tomli; python_version < '3.11'",
+-      "snakeoil~=0.10.3",
++      "snakeoil~=0.10.4",
+ ]
+ network = [
+       "requests",
+--- a/src/pkgcheck/checks/metadata.py
++++ b/src/pkgcheck/checks/metadata.py
+@@ -210,11 +210,10 @@ class IuseCheck(Check):
+     def __init__(self, *args, use_addon):
+         super().__init__(*args)
+         self.iuse_handler = use_addon
+-        self.valid_use = atom_mod.valid_use_flag.match
+         self.bad_defaults = tuple(['-'] + [f'+{x}_' for x in 
self.use_expand_groups])
+ 
+     def feed(self, pkg):
+-        if invalid := sorted(x for x in pkg.iuse_stripped if not 
self.valid_use(x)):
++        if invalid := sorted(x for x in pkg.iuse_stripped if not 
pkg.eapi.is_valid_use_flag(x)):
+             yield InvalidUseFlags(invalid, pkg=pkg)
+ 
+         if pkg.eapi.options.iuse_defaults and (bad_defaults := sorted(
+--- a/testdata/data/repos/standalone/SourcingCheck/InvalidEapi/expected.json
++++ b/testdata/data/repos/standalone/SourcingCheck/InvalidEapi/expected.json
+@@ -1,2 +1,2 @@
+ {"__class__": "InvalidEapi", "category": "SourcingCheck", "package": 
"InvalidEapi", "version": "0", "attr": "eapi", "msg": "EAPI '9999' is not 
supported"}
+-{"__class__": "InvalidEapi", "category": "SourcingCheck", "package": 
"InvalidEapi", "version": "1", "attr": "eapi", "msg": "invalid EAPI: 
'invalid!'"}
++{"__class__": "InvalidEapi", "category": "SourcingCheck", "package": 
"InvalidEapi", "version": "1", "attr": "eapi", "msg": "invalid EAPI 'invalid!'"}
+--- a/tests/checks/test_metadata.py
++++ b/tests/checks/test_metadata.py
+@@ -430,7 +430,7 @@ class TestSourcingCheck(misc.ReportTestCase, misc.Tmpdir):
+                 """))
+             r = self.assertReport(check, self.repo)
+             assert isinstance(r, metadata.InvalidEapi)
+-            assert f"invalid EAPI: '{eapi}'" in str(r)
++            assert f"invalid EAPI '{eapi}'" in str(r)
+ 
+     def test_sourcing_error(self):
+         check = self.mk_check()

diff --git a/dev-util/pkgcheck/pkgcheck-0.10.19-r2.ebuild 
b/dev-util/pkgcheck/pkgcheck-0.10.19-r2.ebuild
new file mode 100644
index 000000000000..e8ce5bc43086
--- /dev/null
+++ b/dev-util/pkgcheck/pkgcheck-0.10.19-r2.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9..11} )
+inherit elisp-common distutils-r1 optfeature
+
+if [[ ${PV} == *9999 ]] ; then
+       EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/pkgcore/pkgcheck.git
+               https://github.com/pkgcore/pkgcheck.git";
+       inherit git-r3
+else
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~x64-macos"
+       SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+fi
+
+DESCRIPTION="pkgcore-based QA utility for ebuild repos"
+HOMEPAGE="https://github.com/pkgcore/pkgcheck";
+
+LICENSE="BSD MIT"
+SLOT="0"
+IUSE="emacs"
+
+if [[ ${PV} == *9999 ]]; then
+       RDEPEND="
+               ~dev-python/snakeoil-9999[${PYTHON_USEDEP}]
+               ~sys-apps/pkgcore-9999[${PYTHON_USEDEP}]"
+else
+       RDEPEND="
+               >=dev-python/snakeoil-0.10.4[${PYTHON_USEDEP}]
+               >=sys-apps/pkgcore-0.12.18[${PYTHON_USEDEP}]"
+fi
+RDEPEND+="
+       dev-libs/tree-sitter
+       dev-libs/tree-sitter-bash
+       dev-python/chardet[${PYTHON_USEDEP}]
+       dev-python/lazy-object-proxy[${PYTHON_USEDEP}]
+       dev-python/lxml[${PYTHON_USEDEP}]
+       dev-python/pathspec[${PYTHON_USEDEP}]
+       >=dev-python/tree-sitter-0.19.0[${PYTHON_USEDEP}]
+       emacs? (
+               >=app-editors/emacs-24.1:*
+               app-emacs/ebuild-mode
+               app-emacs/flycheck
+       )
+"
+BDEPEND="${RDEPEND}
+       dev-python/wheel
+       test? (
+               dev-python/pytest[${PYTHON_USEDEP}]
+               dev-python/requests[${PYTHON_USEDEP}]
+               dev-vcs/git
+       )
+"
+
+PATCHES=(
+       "${FILESDIR}/${P}-fix-pkgcore-0.12.18.patch"
+)
+
+SITEFILE="50${PN}-gentoo.el"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+       
tests/scripts/test_pkgcheck_replay.py::TestPkgcheckReplay::test_replay_pipe_stdin
+)
+
+export USE_SYSTEM_TREE_SITTER_BASH=1
+
+src_compile() {
+       distutils-r1_src_compile
+
+       if use emacs ; then
+          pushd "${S}"/contrib/emacs >/dev/null || die
+          elisp-compile *.el
+          popd >/dev/null || die
+       fi
+}
+
+python_install_all() {
+       local DOCS=( NEWS.rst )
+       [[ ${PV} == *9999 ]] || doman man/*
+       distutils-r1_python_install_all
+
+       if use emacs ; then
+               elisp-install ${PN} "${S}"/contrib/emacs/*.el{,c}
+               elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+       fi
+}
+
+pkg_postinst() {
+       use emacs && elisp-site-regen
+
+       optfeature "Network check support" dev-python/requests
+       optfeature "Perl module version check support" 
dev-perl/Gentoo-PerlMod-Version
+}
+
+pkg_postrm() {
+       use emacs && elisp-site-regen
+}

Reply via email to