* [gentoo-commits] proj/pkgcore/pkgcheck:master commit in: testdata/data/repos/standalone/SrcUriCheck/SrcUriFilenameDotPrefix/, ...
@ 2023-06-24 15:07 Arthur Zamarin
0 siblings, 0 replies; only message in thread
From: Arthur Zamarin @ 2023-06-24 15:07 UTC (permalink / raw
To: gentoo-commits
commit: e48c3ef4f88df8906f10ee1ba3fe20f45bacdd2a
Author: Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 24 07:50:59 2023 +0000
Commit: Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sat Jun 24 14:57:20 2023 +0000
URL: https://gitweb.gentoo.org/proj/pkgcore/pkgcheck.git/commit/?id=e48c3ef4
SrcUriFilenameDotPrefix: new check for SRC_URI filenames with dot prefix
Resolves: https://github.com/pkgcore/pkgcheck/issues/585
Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>
src/pkgcheck/checks/metadata.py | 26 +++++++++++++++++++---
.../SrcUriFilenameDotPrefix/expected.json | 1 +
.../SrcUriCheck/SrcUriFilenameDotPrefix/fix.patch | 17 ++++++++++++++
.../SrcUriCheck/SrcUriFilenameDotPrefix/Manifest | 1 +
.../SrcUriFilenameDotPrefix-0.ebuild | 9 ++++++++
5 files changed, 51 insertions(+), 3 deletions(-)
diff --git a/src/pkgcheck/checks/metadata.py b/src/pkgcheck/checks/metadata.py
index 8a6c5ba5..7f0a072b 100644
--- a/src/pkgcheck/checks/metadata.py
+++ b/src/pkgcheck/checks/metadata.py
@@ -1315,6 +1315,23 @@ class InvalidSrcUri(results.MetadataError, results.VersionResult):
attr = "fetchables"
+class SrcUriFilenameDotPrefix(results.VersionResult, results.Error):
+ """SRC_URI's filename starts with a dot.
+
+ This is usually a mistake, as referencing empty variable before the dot.
+ Also those files might appear as hidden in many file system viewers.
+ Rename the filename using the ``->`` operator.
+ """
+
+ def __init__(self, filename, **kwargs):
+ super().__init__(**kwargs)
+ self.filename = filename
+
+ @property
+ def desc(self):
+ return f"SRC_URI filename {self.filename!r} starts with a dot"
+
+
class SrcUriCheck(Check):
"""SRC_URI related checks.
@@ -1324,7 +1341,7 @@ class SrcUriCheck(Check):
required_addons = (addons.UseAddon,)
known_results = frozenset(
- [
+ {
BadFilename,
BadProtocol,
MissingUri,
@@ -1333,10 +1350,11 @@ class SrcUriCheck(Check):
TarballAvailable,
UnknownMirror,
UnstatedIuse,
- ]
+ SrcUriFilenameDotPrefix,
+ }
)
- valid_protos = frozenset(["http", "https", "ftp"])
+ valid_protos = frozenset({"http", "https", "ftp"})
def __init__(self, *args, use_addon):
super().__init__(*args)
@@ -1389,6 +1407,8 @@ class SrcUriCheck(Check):
bad_filenames_re = rf"^({PN}|v?{PV}|[0-9a-f]{{40}}){exts}$"
if re.match(bad_filenames_re, f_inst.filename):
bad_filenames.add(f_inst.filename)
+ elif f_inst.filename.startswith("."):
+ yield SrcUriFilenameDotPrefix(pkg=pkg, filename=f_inst.filename)
restricts = set().union(*(x.vals for x in restrictions if not x.negate))
if not f_inst.uri and "fetch" not in pkg.restrict.evaluate_depset(restricts):
diff --git a/testdata/data/repos/standalone/SrcUriCheck/SrcUriFilenameDotPrefix/expected.json b/testdata/data/repos/standalone/SrcUriCheck/SrcUriFilenameDotPrefix/expected.json
new file mode 100644
index 00000000..9b9a5224
--- /dev/null
+++ b/testdata/data/repos/standalone/SrcUriCheck/SrcUriFilenameDotPrefix/expected.json
@@ -0,0 +1 @@
+{"__class__": "SrcUriFilenameDotPrefix", "category": "SrcUriCheck", "package": "SrcUriFilenameDotPrefix", "version": "0", "filename": ".gh.tar.gz"}
diff --git a/testdata/data/repos/standalone/SrcUriCheck/SrcUriFilenameDotPrefix/fix.patch b/testdata/data/repos/standalone/SrcUriCheck/SrcUriFilenameDotPrefix/fix.patch
new file mode 100644
index 00000000..233616f6
--- /dev/null
+++ b/testdata/data/repos/standalone/SrcUriCheck/SrcUriFilenameDotPrefix/fix.patch
@@ -0,0 +1,17 @@
+diff -Naur standalone/SrcUriCheck/SrcUriFilenameDotPrefix/Manifest fixed/SrcUriCheck//SrcUriFilenameDotPrefix/Manifest
+--- standalone/SrcUriCheck/SrcUriFilenameDotPrefix/Manifest
++++ fixed/SrcUriCheck/SrcUriFilenameDotPrefix/Manifest
+@@ -1 +1 @@
+-DIST .gh.tar.gz 153310 BLAKE2B abcd4cd9bebe912f9c8877c0f09df059130c2dc5c4da8c926f8df7995bcb7b255cdf810ce8cd16a957fb5bca3d1e71c088cd894968641db5dfae1c4c059df638 SHA512 86ff9e1c4b9353b1fbb475c7bb9d2a97bd9db8421ea5190b5a84832930b34cb5b79f8c3da68a5eb8db334f06851ec129cc6611a371e47b7c5de7a615feec5e05
++DIST SrcUriFilenameDotPrefix-v0.gh.tar.gz 153310 BLAKE2B abcd4cd9bebe912f9c8877c0f09df059130c2dc5c4da8c926f8df7995bcb7b255cdf810ce8cd16a957fb5bca3d1e71c088cd894968641db5dfae1c4c059df638 SHA512 86ff9e1c4b9353b1fbb475c7bb9d2a97bd9db8421ea5190b5a84832930b34cb5b79f8c3da68a5eb8db334f06851ec129cc6611a371e47b7c5de7a615feec5e05
+diff --git standalone/SrcUriCheck/SrcUriFilenameDotPrefix/SrcUriFilenameDotPrefix-0.ebuild fixed/SrcUriCheck/SrcUriFilenameDotPrefix/SrcUriFilenameDotPrefix-0.ebuild
+--- standalone/SrcUriCheck/SrcUriFilenameDotPrefix/SrcUriFilenameDotPrefix-0.ebuild
++++ fixed/SrcUriCheck/SrcUriFilenameDotPrefix/SrcUriFilenameDotPrefix-0.ebuild
+@@ -4,6 +4,6 @@ MY_P="${PN}-v${PV}"
+
+ DESCRIPTION="Ebuild with empty var in SRC_URI"
+ HOMEPAGE="https://github.com/pkgcore/pkgcheck"
+-SRC_URI="https://github.com/pkgcore/pkgcheck/${MY_P}.tar.gz -> ${MYP}.gh.tar.gz"
++SRC_URI="https://github.com/pkgcore/pkgcheck/${MY_P}.tar.gz -> ${MY_P}.gh.tar.gz"
+ SLOT="0"
+ LICENSE="BSD"
diff --git a/testdata/repos/standalone/SrcUriCheck/SrcUriFilenameDotPrefix/Manifest b/testdata/repos/standalone/SrcUriCheck/SrcUriFilenameDotPrefix/Manifest
new file mode 100644
index 00000000..3ec1af9a
--- /dev/null
+++ b/testdata/repos/standalone/SrcUriCheck/SrcUriFilenameDotPrefix/Manifest
@@ -0,0 +1 @@
+DIST .gh.tar.gz 153310 BLAKE2B abcd4cd9bebe912f9c8877c0f09df059130c2dc5c4da8c926f8df7995bcb7b255cdf810ce8cd16a957fb5bca3d1e71c088cd894968641db5dfae1c4c059df638 SHA512 86ff9e1c4b9353b1fbb475c7bb9d2a97bd9db8421ea5190b5a84832930b34cb5b79f8c3da68a5eb8db334f06851ec129cc6611a371e47b7c5de7a615feec5e05
diff --git a/testdata/repos/standalone/SrcUriCheck/SrcUriFilenameDotPrefix/SrcUriFilenameDotPrefix-0.ebuild b/testdata/repos/standalone/SrcUriCheck/SrcUriFilenameDotPrefix/SrcUriFilenameDotPrefix-0.ebuild
new file mode 100644
index 00000000..f961c3ad
--- /dev/null
+++ b/testdata/repos/standalone/SrcUriCheck/SrcUriFilenameDotPrefix/SrcUriFilenameDotPrefix-0.ebuild
@@ -0,0 +1,9 @@
+EAPI=7
+
+MY_P="${PN}-v${PV}"
+
+DESCRIPTION="Ebuild with empty var in SRC_URI"
+HOMEPAGE="https://github.com/pkgcore/pkgcheck"
+SRC_URI="https://github.com/pkgcore/pkgcheck/${MY_P}.tar.gz -> ${MYP}.gh.tar.gz"
+SLOT="0"
+LICENSE="BSD"
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2023-06-24 15:08 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-24 15:07 [gentoo-commits] proj/pkgcore/pkgcheck:master commit in: testdata/data/repos/standalone/SrcUriCheck/SrcUriFilenameDotPrefix/, Arthur Zamarin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox