diff options
Diffstat (limited to 'dev-util/pkgcheck')
-rw-r--r-- | dev-util/pkgcheck/Manifest | 4 | ||||
-rw-r--r-- | dev-util/pkgcheck/files/pkgcheck-0.9.7-py310-update.patch | 170 | ||||
-rw-r--r-- | dev-util/pkgcheck/pkgcheck-0.9.7-r1.ebuild | 63 | ||||
-rw-r--r-- | dev-util/pkgcheck/pkgcheck-9999.ebuild | 4 |
4 files changed, 240 insertions, 1 deletions
diff --git a/dev-util/pkgcheck/Manifest b/dev-util/pkgcheck/Manifest index 485784117d41..184f0116abf8 100644 --- a/dev-util/pkgcheck/Manifest +++ b/dev-util/pkgcheck/Manifest @@ -1,3 +1,4 @@ +AUX pkgcheck-0.9.7-py310-update.patch 7845 BLAKE2B c530448d0019af7ba7d2f3866ed4a8d12fc84a4dfd7fdf7260fe8d84fe4f9539e116c60190bff80b518abcc6c8dfeeda2a7c46c74b1d4b999a4b4fb81efdf6e7 SHA512 e976a8cab6196b738073491b407a431611fda0bfe0c6202a3b799c8608a6404b9d607c1d4b472e051ebee23f7fc1b97caad31ef7f80144bd1280ebf2562e173b DIST pkgcheck-0.8.2.tar.gz 455039 BLAKE2B 282c75578cd4aa7aca3f54e9625360cde4d7146cc08a6b2bcf2f594b21b6224a18e0623055e8aa866e89583b9fd6ec12749aa4bba791f06a851b1b43fe60d440 SHA512 3377060dae6e2c49d5ae6f2dbb883da4ddeab35ecd04133635f3a91f5bfb63177497b8843445914132539efc461ce0ea89bd5d07d3cba49e0854b91d7e2f74ce DIST pkgcheck-0.9.3.tar.gz 460029 BLAKE2B 3ef3aa6c338c5b379e4845302aaaacc5c71679309f45985e1dfa71fb1e62760c4f94ca43d34ca4ad75ecd1f738d9bcb0140568b4e4826ee6a14586c21d0c1a03 SHA512 5613f65437e6cc1c55330eef8bc354ad2f6e325a03c8353186d17a8e9dd21333a3900f91a36c1af0767ccda56f30d425ddb848e4eccf9d20ccba3f5de5098fb3 DIST pkgcheck-0.9.5.tar.gz 459226 BLAKE2B 23f42ffb49bb89b33d01749fede01a8399c99a8e400bd451d1577c4240b929913b13738ba5bc55f3251058e26bebb619bedfb2ec1a50733a1bd8a7c62c7602df SHA512 2a404657e9b6d48d7f99d743aaee6bd4d5aee9cb48c28f89fea46cc7c680e6d3c0351660632abcf879c5ca3569b47cb22c7d6a53ba17d60fe6b545b3c96b90e7 @@ -5,6 +6,7 @@ DIST pkgcheck-0.9.7.tar.gz 453478 BLAKE2B 486bae68af1757fbdb4b109b34cea836cb6dee EBUILD pkgcheck-0.8.2-r2.ebuild 1417 BLAKE2B 0b635b4a66c79928fd2ae21de749e456686dcd77d66e7fb413c39c0b645c3252c4eab7d77f1725b038fdcdd84d25998dcb79b9ee1a0c80b6063510d49d9f15a5 SHA512 3ef8917647484400d8a46e2942e598769e01918f381117877815535ed0dc6e683640ef49dc4cec2f5182d80c2ef06184ce823f9beb6ecc9203490a907db813e1 EBUILD pkgcheck-0.9.3-r1.ebuild 1544 BLAKE2B f8d9c073beafcbedea2058b26420130fe065a25d57524de80caa310b03570a3ad52e6109666a4e008fc87868a708c9510164304880f5e086d14a8b6a9e06ebcf SHA512 a49b1d8d5eabd1139ef081bf374fb36fb0b6e724eac57644cf72c976271878941340774d7e8aea77ece8d185315d38f8cbe359fbc4187be67296ee09b9ab4ee4 EBUILD pkgcheck-0.9.5.ebuild 1507 BLAKE2B ed58c351d977d491d464d896a8519d88ed1799d7bfada82c2588249ff4245b5efcb65a2df38fb3a620f5573d0fc542ee7347338c8bd58fcba22118e1f0106f0b SHA512 dff66a95a5c5ec85d886f58674b6b9bc945f2664c666105b2e8e4989a2cddcd324578ca1abcbfbd56bfd98eabc99abd222662882163a5b51d3813e8b899f1279 +EBUILD pkgcheck-0.9.7-r1.ebuild 1559 BLAKE2B 3a027528217f62b4f793f616c2d1f562ffc0a991fad0640ab136245ba86e65a000fea4e0d5c6197b3dce4b2b17063d04fa7e0ebed850cefcd99f049a806d99da SHA512 a10e103e418e85453ba40e90203e8aeaad464cd90950fce4c74532496958a02ea9f7f8f2a65ba80da72ae12b1053385d93a501b6540fab507dfb0f3eb2d8f05b EBUILD pkgcheck-0.9.7.ebuild 1499 BLAKE2B d902ae79522cd7d08274fc82cf0954557a02ddfcef87f023ea3905ded88b44dc1e651e7cb38b89438532f6f09a3644cd0663e085852161f9cd404cba27e5aea9 SHA512 b506c1d78a8857b3e8a4b36663126b613622cad2ba8f4b15b49a0744412428eb8dd495f57f5d8eedae0c2a400dcf5b4decd72b987d44e8c47116539b240ae3c1 -EBUILD pkgcheck-9999.ebuild 1507 BLAKE2B 195770c065ba7471492ea94d35e9cabf658921cfca255543354f96f4112bd12958d2d445f99e60c5ab71beec94e2dbd98c13f6837d67bede0ad46547a29d1b92 SHA512 ec29615b0f6c41dddc72c6ced8c3edc6e68efb093122ff4896b685189b7676a12d997fac0645ad993ebd79ca14cf285eb063275e1cc0f3297b90acf0a5f6dad2 +EBUILD pkgcheck-9999.ebuild 1566 BLAKE2B 6bb5d7ffc6d1f63444eb574b6a230d187a177593087af1c777c52a8829b19477a7afa570fda4c45f9904d8e5ffc81061ee78eeefbcfcd77a8848eb3212fc58b1 SHA512 c1ac0651030a9d7a503e361fb99031ea3f8aac891696326048a011d299764f27a8ebff9f5e7825f83aa06e2da958191346815162044e973d0418b3a2bf5391dc MISC metadata.xml 328 BLAKE2B b84dba717460e84f7ee3163fd8d6a5f13eb3b15dd1bb749f6ece81f062e3530988dacefadb24c1395eb36593a7ab6d868b06c8c4ee8f620a17c85faf04283b24 SHA512 5696505214a737ad495b23bfac2a51fbbc5b1e815eb6fcbabb3c6674325f05e3f6f418de05257c08935e389e47879e8a2d1b3723ec86aeb5ad97c6110fd2ec75 diff --git a/dev-util/pkgcheck/files/pkgcheck-0.9.7-py310-update.patch b/dev-util/pkgcheck/files/pkgcheck-0.9.7-py310-update.patch new file mode 100644 index 000000000000..8bee592b228e --- /dev/null +++ b/dev-util/pkgcheck/files/pkgcheck-0.9.7-py310-update.patch @@ -0,0 +1,170 @@ +From 443c0aab158e34196399073e801ae19ae0dce4dc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Sun, 9 May 2021 10:59:18 +0200 +Subject: [PATCH] python: Fix treating python3.10 as newer than python3.9 + +Fix the sorting logic to use a combined lexical-numerical sort, in order +to sort python3.10 as newer than python3.9. This fixes +PythonCompatUpdate check. +--- + src/pkgcheck/checks/python.py | 25 +++++++++++++++---- + .../PythonCompatUpdate/expected.json | 6 ++--- + .../PythonCompatUpdate/fix.patch | 6 ++--- + .../profiles/desc/python_single_target.desc | 1 + + .../python/profiles/desc/python_targets.desc | 1 + + .../stub/python-dep1/python-dep1-0.ebuild | 2 +- + .../stub/python-dep2/python-dep2-0.ebuild | 2 +- + 7 files changed, 30 insertions(+), 13 deletions(-) + +diff --git a/src/pkgcheck/checks/python.py b/src/pkgcheck/checks/python.py +index ed922215..7f0e9be4 100644 +--- a/src/pkgcheck/checks/python.py ++++ b/src/pkgcheck/checks/python.py +@@ -1,4 +1,5 @@ + import itertools ++import re + + from pkgcore.ebuild.atom import atom + from pkgcore.restrictions import packages, values +@@ -28,6 +29,18 @@ CHECK_EXCLUDE = frozenset(['virtual/pypy', 'virtual/pypy3']) + IUSE_PREFIX = 'python_targets_' + IUSE_PREFIX_S = 'python_single_target_' + ++TARGET_SPLIT_RE = re.compile(r'([0-9]+)') ++ ++ ++def target_sort_key(target): ++ def iter(): ++ for x in TARGET_SPLIT_RE.split(target): ++ try: ++ yield int(x) ++ except ValueError: ++ yield x ++ return tuple(iter()) ++ + + def get_python_eclass(pkg): + eclasses = ECLASSES.intersection(pkg.inherited) +@@ -281,14 +294,14 @@ class PythonCompatCheck(Check): + for target, _desc in repo.config.use_expand_desc.get(IUSE_PREFIX[:-1], ()): + if target[len(IUSE_PREFIX):].startswith('python'): + targets.append(target[len(IUSE_PREFIX):]) +- multi_targets = tuple(sorted(targets)) ++ multi_targets = tuple(sorted(targets, key=target_sort_key)) + + # determine available PYTHON_SINGLE_TARGET use flags + targets = [] + for target, _desc in repo.config.use_expand_desc.get(IUSE_PREFIX_S[:-1], ()): + if target[len(IUSE_PREFIX_S):].startswith('python'): + targets.append(target[len(IUSE_PREFIX_S):]) +- single_targets = tuple(sorted(targets)) ++ single_targets = tuple(sorted(targets, key=target_sort_key)) + + self.params = { + 'python-r1': (multi_targets, IUSE_PREFIX, None), +@@ -327,8 +340,9 @@ class PythonCompatCheck(Check): + try: + # determine the latest supported python version + latest_target = sorted( +- f"python{x.slot.replace('.', '_')}" for x in deps +- if x.key == 'dev-lang/python' and x.slot is not None)[-1] ++ (f"python{x.slot.replace('.', '_')}" for x in deps ++ if x.key == 'dev-lang/python' and x.slot is not None), ++ key=target_sort_key)[-1] + except IndexError: + # should be flagged by PythonMissingDeps + return +@@ -355,4 +369,5 @@ class PythonCompatCheck(Check): + except IndexError: + return + +- yield PythonCompatUpdate(sorted(targets), pkg=pkg) ++ yield PythonCompatUpdate(sorted(targets, key=target_sort_key), ++ pkg=pkg) +diff --git a/testdata/data/repos/python/PythonCompatCheck/PythonCompatUpdate/expected.json b/testdata/data/repos/python/PythonCompatCheck/PythonCompatUpdate/expected.json +index ab7d9b01..f3476eac 100644 +--- a/testdata/data/repos/python/PythonCompatCheck/PythonCompatUpdate/expected.json ++++ b/testdata/data/repos/python/PythonCompatCheck/PythonCompatUpdate/expected.json +@@ -1,3 +1,3 @@ +-{"__class__": "PythonCompatUpdate", "category": "PythonCompatCheck", "package": "PythonCompatUpdate", "version": "0", "updates": ["python3_8", "python3_9"]} +-{"__class__": "PythonCompatUpdate", "category": "PythonCompatCheck", "package": "PythonCompatUpdate", "version": "1", "updates": ["python3_9"]} +-{"__class__": "PythonCompatUpdate", "category": "PythonCompatCheck", "package": "PythonCompatUpdate", "version": "2", "updates": ["python3_9"]} ++{"__class__": "PythonCompatUpdate", "category": "PythonCompatCheck", "package": "PythonCompatUpdate", "version": "0", "updates": ["python3_8", "python3_9", "python3_10"]} ++{"__class__": "PythonCompatUpdate", "category": "PythonCompatCheck", "package": "PythonCompatUpdate", "version": "1", "updates": ["python3_9", "python3_10"]} ++{"__class__": "PythonCompatUpdate", "category": "PythonCompatCheck", "package": "PythonCompatUpdate", "version": "2", "updates": ["python3_9", "python3_10"]} +diff --git a/testdata/data/repos/python/PythonCompatCheck/PythonCompatUpdate/fix.patch b/testdata/data/repos/python/PythonCompatCheck/PythonCompatUpdate/fix.patch +index c63184e9..9be4952a 100644 +--- a/testdata/data/repos/python/PythonCompatCheck/PythonCompatUpdate/fix.patch ++++ b/testdata/data/repos/python/PythonCompatCheck/PythonCompatUpdate/fix.patch +@@ -4,7 +4,7 @@ diff -Naur python/PythonCompatCheck/PythonCompatUpdate/PythonCompatUpdate-0.ebui + @@ -1,5 +1,5 @@ + EAPI=7 + -PYTHON_COMPAT=( python3_7 ) +-+PYTHON_COMPAT=( python3_{7..9} ) +++PYTHON_COMPAT=( python3_{7..10} ) + + inherit python-r1 + +@@ -14,7 +14,7 @@ diff -Naur python/PythonCompatCheck/PythonCompatUpdate/PythonCompatUpdate-1.ebui + @@ -1,5 +1,5 @@ + EAPI=7 + -PYTHON_COMPAT=( python3_{7,8} ) +-+PYTHON_COMPAT=( python3_{7..9} ) +++PYTHON_COMPAT=( python3_{7..10} ) + + inherit python-single-r1 + +@@ -24,7 +24,7 @@ diff -Naur python/PythonCompatCheck/PythonCompatUpdate/PythonCompatUpdate-2.ebui + @@ -1,5 +1,5 @@ + EAPI=7 + -PYTHON_COMPAT=( python3_{7,8} ) +-+PYTHON_COMPAT=( python3_{7..9} ) +++PYTHON_COMPAT=( python3_{7..10} ) + + inherit python-any-r1 + +diff --git a/testdata/repos/python/profiles/desc/python_single_target.desc b/testdata/repos/python/profiles/desc/python_single_target.desc +index da5be2fd..3c39a224 100644 +--- a/testdata/repos/python/profiles/desc/python_single_target.desc ++++ b/testdata/repos/python/profiles/desc/python_single_target.desc +@@ -3,4 +3,5 @@ python2_7 - Build with Python 2.7 + python3_7 - Build with Python 3.7 + python3_8 - Build with Python 3.8 + python3_9 - Build with Python 3.9 ++python3_10 - Build with Python 3.10 + pypy3 - Build for PyPy3 only +diff --git a/testdata/repos/python/profiles/desc/python_targets.desc b/testdata/repos/python/profiles/desc/python_targets.desc +index b2be59ca..8e55f2da 100644 +--- a/testdata/repos/python/profiles/desc/python_targets.desc ++++ b/testdata/repos/python/profiles/desc/python_targets.desc +@@ -3,4 +3,5 @@ python2_7 - Build with Python 2.7 + python3_7 - Build with Python 3.7 + python3_8 - Build with Python 3.8 + python3_9 - Build with Python 3.9 ++python3_10 - Build with Python 3.10 + pypy3 - Build for PyPy3 only +diff --git a/testdata/repos/python/stub/python-dep1/python-dep1-0.ebuild b/testdata/repos/python/stub/python-dep1/python-dep1-0.ebuild +index 9eebedfd..55c455d9 100644 +--- a/testdata/repos/python/stub/python-dep1/python-dep1-0.ebuild ++++ b/testdata/repos/python/stub/python-dep1/python-dep1-0.ebuild +@@ -1,5 +1,5 @@ + EAPI=7 +-PYTHON_COMPAT=( python2_7 python3_{7,8,9} ) ++PYTHON_COMPAT=( python2_7 python3_{7,8,9,10} ) + + inherit python-r1 + +diff --git a/testdata/repos/python/stub/python-dep2/python-dep2-0.ebuild b/testdata/repos/python/stub/python-dep2/python-dep2-0.ebuild +index 9eebedfd..55c455d9 100644 +--- a/testdata/repos/python/stub/python-dep2/python-dep2-0.ebuild ++++ b/testdata/repos/python/stub/python-dep2/python-dep2-0.ebuild +@@ -1,5 +1,5 @@ + EAPI=7 +-PYTHON_COMPAT=( python2_7 python3_{7,8,9} ) ++PYTHON_COMPAT=( python2_7 python3_{7,8,9,10} ) + + inherit python-r1 + +-- +2.31.1 + diff --git a/dev-util/pkgcheck/pkgcheck-0.9.7-r1.ebuild b/dev-util/pkgcheck/pkgcheck-0.9.7-r1.ebuild new file mode 100644 index 000000000000..1859af4de531 --- /dev/null +++ b/dev-util/pkgcheck/pkgcheck-0.9.7-r1.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +PYTHON_COMPAT=( python3_{8..9} ) +DISTUTILS_IN_SOURCE_BUILD=1 +inherit distutils-r1 optfeature + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/pkgcore/pkgcheck.git" + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~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" + +if [[ ${PV} == *9999 ]]; then + RDEPEND=" + ~dev-python/snakeoil-9999[${PYTHON_USEDEP}] + ~sys-apps/pkgcore-9999[${PYTHON_USEDEP}]" +else + RDEPEND=" + >=dev-python/snakeoil-0.9.6[${PYTHON_USEDEP}] + >=sys-apps/pkgcore-0.11.6[${PYTHON_USEDEP}]" +fi +RDEPEND+=" + 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}] +" +BDEPEND=" + test? ( dev-python/pytest[${PYTHON_USEDEP}] ) +" + +distutils_enable_tests setup.py + +PATCHES=( + "${FILESDIR}"/${P}-py310-update.patch +) + +src_test() { + local -x PYTHONDONTWRITEBYTECODE= + distutils-r1_src_test +} + +python_install_all() { + local DOCS=( NEWS.rst ) + [[ ${PV} == *9999 ]] || doman man/* + distutils-r1_python_install_all +} + +pkg_postinst() { + optfeature "Network check support" dev-python/requests + optfeature "Perl module version check support" dev-perl/Gentoo-PerlMod-Version +} diff --git a/dev-util/pkgcheck/pkgcheck-9999.ebuild b/dev-util/pkgcheck/pkgcheck-9999.ebuild index f801b3b477e3..4f3e1d2a82c8 100644 --- a/dev-util/pkgcheck/pkgcheck-9999.ebuild +++ b/dev-util/pkgcheck/pkgcheck-9999.ebuild @@ -42,6 +42,10 @@ BDEPEND=" distutils_enable_tests setup.py +PATCHES=( + "${FILESDIR}"/${PN}-0.9.7-py310-update.patch +) + src_test() { local -x PYTHONDONTWRITEBYTECODE= distutils-r1_src_test |