[arch-projects] [namcap] [PATCH v2 3/4] nonuniquesources: Also warn on downloaded common filenames not overriding name to be unique
James P. Harvey
jamespharvey20 at gmail.com
Mon May 27 12:01:22 UTC 2019
Downloaded files in source() are required to be unique. A common
violation of this is from community named files (i.e. LICENSE) that
aren't part of an upstream tarball.
Warn if a source file is downloaded, doesn't have an overriding name,
and has a commonly used name, ignoring extension and case.
Signed-off-by: James P. Harvey <jamespharvey20 at gmail.com>
---
Namcap/rules/nonuniquesources.py | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/Namcap/rules/nonuniquesources.py b/Namcap/rules/nonuniquesources.py
index a16f56e..216ae82 100644
--- a/Namcap/rules/nonuniquesources.py
+++ b/Namcap/rules/nonuniquesources.py
@@ -26,9 +26,27 @@ from Namcap.ruleclass import PkgbuildRule
class nonuniquesources(PkgbuildRule):
name = "nonuniquesources"
description = "Verifies the downloaded sources have a unique filename"
+
def analyze(self, pkginfo, tar):
+ filename_begins_upper_case = [
+ "AUTHORS",
+ "CHANGELOG",
+ "CONTRIBUTING",
+ "COPYING",
+ "COPYRIGHT",
+ "HACKING",
+ "HISTORY",
+ "LICENSE",
+ "NEWS",
+ "README",
+ "TODO"
+ ]
+
for source_file in pkginfo["source"]:
- if '::' not in source_file and re.match(r'^[vV]?(([0-9]){8}|([0-9]+\.?)+)\.', os.path.basename(source_file)):
- self.warnings.append(("non-unique-source-name %s", os.path.basename(source_file)))
+ if '::' not in source_file:
+ basename = os.path.basename(source_file)
+ if re.match(r'^[vV]?(([0-9]){8}|([0-9]+\.?)+)\.', basename) \
+ or ('://' in source_file and basename.upper().split('.')[0] in filename_begins_upper_case):
+ self.warnings.append(("non-unique-source-name %s", basename))
# vim: set ts=4 sw=4 noet:
--
2.21.0
More information about the arch-projects
mailing list