commit:     1f35e6091d81283b0e5d15f4e5a18540f82cf42e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 22 16:24:41 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Nov 22 18:28:43 2024 +0000
URL:        
https://gitweb.gentoo.org/proj/pkgcore/pkgcheck.git/commit/?id=1f35e609

eclass: Support rust.eclass and RUST_OPTIONAL as well

Closes: https://github.com/pkgcore/pkgcheck/issues/714
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Closes: https://github.com/pkgcore/pkgcheck/pull/718
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 src/pkgcheck/checks/eclass.py                          |  5 +++--
 .../RustMissingDeps/expected.json                      |  2 ++
 .../EclassManualDepsCheck/RustMissingDeps/fix.patch    | 18 ++++++++++++++++++
 .../RustMissingDeps/RustMissingDeps-2.ebuild           |  6 ++++++
 .../RustMissingDeps/RustMissingDeps-3.ebuild           | 10 ++++++++++
 .../RustMissingDeps/RustMissingDeps-4.ebuild           | 10 ++++++++++
 testdata/repos/standalone/eclass/cargo.eclass          |  4 ++++
 7 files changed, 53 insertions(+), 2 deletions(-)

diff --git a/src/pkgcheck/checks/eclass.py b/src/pkgcheck/checks/eclass.py
index f806e50e..5a6b6430 100644
--- a/src/pkgcheck/checks/eclass.py
+++ b/src/pkgcheck/checks/eclass.py
@@ -516,9 +516,9 @@ class RubyMissingDeps(results.VersionResult, 
results.Warning):
 
 
 class RustMissingDeps(results.VersionResult, results.Warning):
-    """Package sets ``CARGO_OPTIONAL`` but does not use ``${RUST_DEPEND}``."""
+    """Package sets ``RUST_OPTIONAL`` but does not use ``${RUST_DEPEND}``."""
 
-    desc = "sets CARGO_OPTIONAL but does not use ${RUST_DEPEND}"
+    desc = "sets RUST_OPTIONAL (or CARGO_OPTIONAL) but does not use 
${RUST_DEPEND}"
 
 
 class TmpfilesMissingDeps(results.VersionResult, results.Warning):
@@ -543,6 +543,7 @@ class EclassManualDepsCheck(Check):
     dependencies = (
         # eclass, variable, one of deps, class
         ("cargo", "CARGO_OPTIONAL", {"dev-lang/rust", "dev-lang/rust-bin"}, 
RustMissingDeps),
+        ("rust", "RUST_OPTIONAL", {"dev-lang/rust", "dev-lang/rust-bin"}, 
RustMissingDeps),
         ("go-module", "GO_OPTIONAL", {"dev-lang/go"}, GoMissingDeps),
         (
             "ruby-ng",

diff --git 
a/testdata/data/repos/standalone/EclassManualDepsCheck/RustMissingDeps/expected.json
 
b/testdata/data/repos/standalone/EclassManualDepsCheck/RustMissingDeps/expected.json
index 43be8d93..762b9a20 100644
--- 
a/testdata/data/repos/standalone/EclassManualDepsCheck/RustMissingDeps/expected.json
+++ 
b/testdata/data/repos/standalone/EclassManualDepsCheck/RustMissingDeps/expected.json
@@ -1 +1,3 @@
 {"__class__": "RustMissingDeps", "category": "EclassManualDepsCheck", 
"package": "RustMissingDeps", "version": "1"}
+{"__class__": "RustMissingDeps", "category": "EclassManualDepsCheck", 
"package": "RustMissingDeps", "version": "3"}
+{"__class__": "RustMissingDeps", "category": "EclassManualDepsCheck", 
"package": "RustMissingDeps", "version": "4"}

diff --git 
a/testdata/data/repos/standalone/EclassManualDepsCheck/RustMissingDeps/fix.patch
 
b/testdata/data/repos/standalone/EclassManualDepsCheck/RustMissingDeps/fix.patch
index 5d75114e..3fc81ee0 100644
--- 
a/testdata/data/repos/standalone/EclassManualDepsCheck/RustMissingDeps/fix.patch
+++ 
b/testdata/data/repos/standalone/EclassManualDepsCheck/RustMissingDeps/fix.patch
@@ -7,3 +7,21 @@ diff -Naur 
standalone/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-1.eb
  SLOT="0"
 +
 +BDEPEND="${RUST_DEPEND}"
+diff -Naur 
standalone/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-3.ebuild 
fixed/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-3.ebuild
+--- standalone/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-3.ebuild
++++ fixed/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-3.ebuild
+@@ -8,3 +8,5 @@ DESCRIPTION="Optional inherit without deps"
+ HOMEPAGE="https://github.com/pkgcore/pkgcheck";
+ LICENSE="BSD"
+ SLOT="0"
++
++BDEPEND="${RUST_DEPEND}"
+diff -Naur 
standalone/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-4.ebuild 
fixed/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-4.ebuild
+--- standalone/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-4.ebuild
++++ fixed/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-4.ebuild
+@@ -8,3 +8,5 @@ DESCRIPTION="Optional inherit without deps"
+ HOMEPAGE="https://github.com/pkgcore/pkgcheck";
+ LICENSE="BSD"
+ SLOT="0"
++
++BDEPEND="${RUST_DEPEND}"

diff --git 
a/testdata/repos/standalone/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-2.ebuild
 
b/testdata/repos/standalone/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-2.ebuild
new file mode 100644
index 00000000..6edadd9f
--- /dev/null
+++ 
b/testdata/repos/standalone/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-2.ebuild
@@ -0,0 +1,6 @@
+inherit rust
+
+DESCRIPTION="Normal non-optional inherit"
+HOMEPAGE="https://github.com/pkgcore/pkgcheck";
+LICENSE="BSD"
+SLOT="0"

diff --git 
a/testdata/repos/standalone/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-3.ebuild
 
b/testdata/repos/standalone/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-3.ebuild
new file mode 100644
index 00000000..11da192c
--- /dev/null
+++ 
b/testdata/repos/standalone/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-3.ebuild
@@ -0,0 +1,10 @@
+EAPI=7
+
+RUST_OPTIONAL=1
+
+inherit rust
+
+DESCRIPTION="Optional inherit without deps"
+HOMEPAGE="https://github.com/pkgcore/pkgcheck";
+LICENSE="BSD"
+SLOT="0"

diff --git 
a/testdata/repos/standalone/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-4.ebuild
 
b/testdata/repos/standalone/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-4.ebuild
new file mode 100644
index 00000000..a89f53a5
--- /dev/null
+++ 
b/testdata/repos/standalone/EclassManualDepsCheck/RustMissingDeps/RustMissingDeps-4.ebuild
@@ -0,0 +1,10 @@
+EAPI=7
+
+RUST_OPTIONAL=1
+
+inherit cargo
+
+DESCRIPTION="Optional inherit without deps"
+HOMEPAGE="https://github.com/pkgcore/pkgcheck";
+LICENSE="BSD"
+SLOT="0"

diff --git a/testdata/repos/standalone/eclass/cargo.eclass 
b/testdata/repos/standalone/eclass/cargo.eclass
index 04deb1f4..9a9eb924 100644
--- a/testdata/repos/standalone/eclass/cargo.eclass
+++ b/testdata/repos/standalone/eclass/cargo.eclass
@@ -1,5 +1,9 @@
 # cargo eclass
 
+if [[ -n ${CARGO_OPTIONAL} ]]; then
+       RUST_OPTIONAL=1
+fi
+
 inherit rust
 
 CARGO_CRATE_URIS=${CRATES}

Reply via email to