X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fprocess_unchecked.py;h=8a92e878f95a742f32936fc6865d278c3bd3114b;hb=f997a3ffafcff4e591685dbad84cf85bc0a2245a;hp=1cf2234ecd2f10a4a0f6b132980e25e40f175f67;hpb=021ab67920bbf31549ba7c9d1c85f14e32f5c428;p=dak.git diff --git a/dak/process_unchecked.py b/dak/process_unchecked.py index 1cf2234e..8a92e878 100755 --- a/dak/process_unchecked.py +++ b/dak/process_unchecked.py @@ -43,6 +43,7 @@ re_valid_version = re.compile(r"^([0-9]+:)?[0-9A-Za-z\.\-\+:]+$") 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+\)$") ################################################################################ @@ -202,6 +203,14 @@ def check_changes(): reject("%s: Missing mandatory field `%s'." % (filename, i)) return 0 # Avoid errors during later tests + # Strip a source version in brackets from the source field + if re_strip_srcver.search(changes["source"]): + changes["source"] = re_strip_srcver.sub('', changes["source"]) + + # Ensure the source field is a valid package name. + if not re_valid_pkg_name.match(changes["source"]): + reject("%s: invalid source name '%s'." % (filename, changes["source"])) + # Split multi-value fields into a lower-level dictionary for i in ("architecture", "distribution", "binary", "closes"): o = changes.get(i, "") @@ -529,8 +538,15 @@ def check_files(): files[file]["byhand"] = 1 elif os.path.exists(Cnf["Dir::Queue::New"] + '/' + dsc_filename): files[file]["new"] = 1 - elif not os.path.exists(Cnf["Dir::Queue::Accepted"] + '/' + dsc_filename): - reject("no source found for %s %s (%s)." % (source_package, source_version, file)) + else: + dsc_file_exists = 0 + for myq in ["Accepted", "Embargoed", "Unembargoed", "ProposedUpdates"]: + if Cnf.has_key("Dir::Queue::%s" % (myq)): + if os.path.exists(Cnf["Dir::Queue::"+myq] + '/' + dsc_filename): + dsc_file_exists = 1 + break + if not dsc_file_exists: + reject("no source found for %s %s (%s)." % (source_package, source_version, file)) # Check the version and for file overwrites reject(Upload.check_binary_against_db(file),"") @@ -1134,7 +1150,12 @@ def is_unembargo (): if ql: return 1 - if pkg.directory == Cnf["Dir::Queue::Disembargo"].rstrip("/"): + oldcwd = os.getcwd() + os.chdir(Cnf["Dir::Queue::Disembargo"]) + disdir = os.getcwd() + os.chdir(oldcwd) + + if pkg.directory == disdir: if changes["architecture"].has_key("source"): if Options["No-Action"]: return 1