From 43c0b95eaf91b77daccded5ac32c5fa67c9d72c8 Mon Sep 17 00:00:00 2001 From: Joerg Jaspert Date: Sat, 19 Apr 2008 23:20:49 +0200 Subject: [PATCH] Sanity check the provides field --- ChangeLog | 5 +++++ dak/process_unchecked.py | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/ChangeLog b/ChangeLog index 65e898eb..c6b4a9e2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-04-19 Joerg Jaspert + + * dak/process_unchecked.py (check_files): Sanity check the + provides field, which closes #472783 + 2008-04-18 Joerg Jaspert * config/debian/dak.conf: Add mapping stable-proposed-updates diff --git a/dak/process_unchecked.py b/dak/process_unchecked.py index 30737ed1..0b8241e4 100755 --- a/dak/process_unchecked.py +++ b/dak/process_unchecked.py @@ -44,6 +44,7 @@ re_valid_pkg_name = re.compile(r"^[\dA-Za-z][\dA-Za-z\+\-\.]+$") re_changelog_versions = re.compile(r"^\w[-+0-9a-z.]+ \([^\(\) \t]+\)") re_strip_revision = re.compile(r"-([^-]+)$") re_strip_srcver = re.compile(r"\s+\(\S+\)$") +re_spacestrip = re.compile('(\s)') ################################################################################ @@ -461,6 +462,16 @@ def check_files(): if depends == '': reject("%s: Depends field is empty." % (file)) + # Sanity-check the Provides field + provides = re_spacestrip.sub('', control.Find("Provides")) + if provides == '': + reject("%s: Provides field is empty." % (file)) + prov_list = provides.split(",") + for prov in prov_list: + if not re_valid_pkg_name.match(prov): + reject("%s: Invalid Provides field content %s." % (file, prov)) + + # Check the section & priority match those given in the .changes (non-fatal) if control.Find("Section") and files[file]["section"] != "" and files[file]["section"] != control.Find("Section"): reject("%s control file lists section as `%s', but changes file has `%s'." % (file, control.Find("Section", ""), files[file]["section"]), "Warning: ") -- 2.39.5