X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fprocess_unchecked.py;h=665528a7c32d530fc7be4e2a129f497a5729be60;hb=ebeff5d0834583b5f3e2ce4cd7b5df6976ca1b41;hp=1cf2234ecd2f10a4a0f6b132980e25e40f175f67;hpb=1955704e1679c2061856a241f205efca4796f799;p=dak.git diff --git a/dak/process_unchecked.py b/dak/process_unchecked.py index 1cf2234e..665528a7 100755 --- a/dak/process_unchecked.py +++ b/dak/process_unchecked.py @@ -39,7 +39,7 @@ from types import * ################################################################################ -re_valid_version = re.compile(r"^([0-9]+:)?[0-9A-Za-z\.\-\+:]+$") +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"-([^-]+)$") @@ -529,8 +529,14 @@ 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"]: + 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 +1140,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 @@ -1177,9 +1188,20 @@ def queue_embargo (summary): ################################################################################ def is_stableupdate (): - if changes["distribution"].has_key("proposed-updates"): - return 1 - return 0 + if not changes["distribution"].has_key("proposed-updates"): + return 0 + + if not changes["architecture"].has_key("source"): + pusuite = database.get_suite_id("proposed-updates") + q = Upload.projectB.query( + "SELECT S.source FROM source s JOIN src_associations sa ON (s.id = sa.source) WHERE s.source = '%s' AND s.version = '%s' AND sa.suite = %d" % + (changes["source"], changes["version"], pusuite)) + ql = q.getresult() + if ql: + # source is already in proposed-updates + return 0 + + return 1 def do_stableupdate (summary): print "Moving to PROPOSED-UPDATES holding area."