public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/pkgcore/pkgcheck:master commit in: testdata/data/repos/standalone/BadCommandsCheck/BannedEapiCommand/, ...
@ 2023-10-02 15:47 Arthur Zamarin
  0 siblings, 0 replies; only message in thread
From: Arthur Zamarin @ 2023-10-02 15:47 UTC (permalink / raw
  To: gentoo-commits

commit:     ef0ee73cdcfe27dc27e208afe36060e0e52a3165
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Sun Oct  1 20:10:53 2023 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sun Oct  1 20:10:53 2023 +0000
URL:        https://gitweb.gentoo.org/proj/pkgcore/pkgcheck.git/commit/?id=ef0ee73c

BannedEapiCommand: check for has_version --host-root

Catch ``has_version --host-root`` and ``best_version --host-root``
calls, which are not allowed in EAPI>=7.

Resolves: https://github.com/pkgcore/pkgcheck/issues/630
Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 src/pkgcheck/checks/codingstyle.py                    |  9 +++++++++
 .../BadCommandsCheck/BannedEapiCommand/expected.json  |  2 ++
 .../BadCommandsCheck/BannedEapiCommand/fix.patch      | 19 +++++++++++++++++--
 .../BannedEapiCommand/BannedEapiCommand-1.ebuild      | 13 +++++++++++++
 4 files changed, 41 insertions(+), 2 deletions(-)

diff --git a/src/pkgcheck/checks/codingstyle.py b/src/pkgcheck/checks/codingstyle.py
index d0b5d861..317841bc 100644
--- a/src/pkgcheck/checks/codingstyle.py
+++ b/src/pkgcheck/checks/codingstyle.py
@@ -91,6 +91,15 @@ class BadCommandsCheck(Check):
                     )
                 elif name in pkg.eapi.phases.values():
                     yield BannedPhaseCall(line=name, lineno=lineno + 1, pkg=pkg)
+                elif name in ("has_version", "best_version"):
+                    if not pkg.eapi.options.query_host_root and any(
+                        pkg.node_str(n) == "--host-root"
+                        for n in node.children_by_field_name("argument")
+                    ):
+                        name = f"{name} --host-root"
+                        yield BannedEapiCommand(
+                            name, line=call, lineno=lineno + 1, eapi=pkg.eapi, pkg=pkg
+                        )
 
 
 class EendMissingArg(results.LineResult, results.Warning):

diff --git a/testdata/data/repos/standalone/BadCommandsCheck/BannedEapiCommand/expected.json b/testdata/data/repos/standalone/BadCommandsCheck/BannedEapiCommand/expected.json
index dee93d43..921d5893 100644
--- a/testdata/data/repos/standalone/BadCommandsCheck/BannedEapiCommand/expected.json
+++ b/testdata/data/repos/standalone/BadCommandsCheck/BannedEapiCommand/expected.json
@@ -1 +1,3 @@
 {"__class__": "BannedEapiCommand", "category": "BadCommandsCheck", "package": "BannedEapiCommand", "version": "0", "line": "dohtml doc/*", "lineno": 9, "command": "dohtml", "eapi": "7"}
+{"__class__": "BannedEapiCommand", "category": "BadCommandsCheck", "package": "BannedEapiCommand", "version": "1", "line": "has_version --host-root stub/stub1", "lineno": 9, "command": "has_version --host-root", "eapi": "7"}
+{"__class__": "BannedEapiCommand", "category": "BadCommandsCheck", "package": "BannedEapiCommand", "version": "1", "line": "best_version --host-root stub/stub1:2", "lineno": 12, "command": "best_version --host-root", "eapi": "7"}

diff --git a/testdata/data/repos/standalone/BadCommandsCheck/BannedEapiCommand/fix.patch b/testdata/data/repos/standalone/BadCommandsCheck/BannedEapiCommand/fix.patch
index 180e7f03..d906bd2b 100644
--- a/testdata/data/repos/standalone/BadCommandsCheck/BannedEapiCommand/fix.patch
+++ b/testdata/data/repos/standalone/BadCommandsCheck/BannedEapiCommand/fix.patch
@@ -1,6 +1,6 @@
 diff -Naur standalone/BadCommandsCheck/BannedEapiCommand/BannedEapiCommand-0.ebuild fixed/BadCommandsCheck/BannedEapiCommand/BannedEapiCommand-0.ebuild
---- standalone/BadCommandsCheck/BannedEapiCommand/BannedEapiCommand-0.ebuild	2019-10-01 15:48:21.121467232 -0600
-+++ fixed/BadCommandsCheck/BannedEapiCommand/BannedEapiCommand-0.ebuild	2019-10-01 15:50:51.970090195 -0600
+--- standalone/BadCommandsCheck/BannedEapiCommand/BannedEapiCommand-0.ebuild
++++ fixed/BadCommandsCheck/BannedEapiCommand/BannedEapiCommand-0.ebuild
 @@ -6,5 +6,6 @@
  LICENSE="BSD"
 
@@ -9,3 +9,18 @@ diff -Naur standalone/BadCommandsCheck/BannedEapiCommand/BannedEapiCommand-0.ebu
 +	docinto html
 +	dodoc doc/*
  }
+
+diff -Naur standalone/BadCommandsCheck/BannedEapiCommand/BannedEapiCommand-1.ebuild fixed/BadCommandsCheck/BannedEapiCommand/BannedEapiCommand-1.ebuild
+--- standalone/BadCommandsCheck/BannedEapiCommand/BannedEapiCommand-1.ebuild
++++ fixed/BadCommandsCheck/BannedEapiCommand/BannedEapiCommand-1.ebuild
+@@ -6,8 +6,8 @@ SLOT="0"
+ LICENSE="BSD"
+
+ src_install() {
+-	if has_version --host-root stub/stub1; then
++	if has_version -b stub/stub1; then
+ 		:
+ 	fi
+-	H=$(best_version --host-root stub/stub1:2)
++	H=$(best_version -b stub/stub1:2)
+ }

diff --git a/testdata/repos/standalone/BadCommandsCheck/BannedEapiCommand/BannedEapiCommand-1.ebuild b/testdata/repos/standalone/BadCommandsCheck/BannedEapiCommand/BannedEapiCommand-1.ebuild
new file mode 100644
index 00000000..ea4fb45b
--- /dev/null
+++ b/testdata/repos/standalone/BadCommandsCheck/BannedEapiCommand/BannedEapiCommand-1.ebuild
@@ -0,0 +1,13 @@
+EAPI=7
+
+DESCRIPTION="Ebuild using banned has_version"
+HOMEPAGE="https://github.com/pkgcore/pkgcheck"
+SLOT="0"
+LICENSE="BSD"
+
+src_install() {
+	if has_version --host-root stub/stub1; then
+		:
+	fi
+	H=$(best_version --host-root stub/stub1:2)
+}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2023-10-02 15:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-02 15:47 [gentoo-commits] proj/pkgcore/pkgcheck:master commit in: testdata/data/repos/standalone/BadCommandsCheck/BannedEapiCommand/, Arthur Zamarin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox