]> git.donarmstrong.com Git - dak.git/commitdiff
Merge with mainline.
authorArchive Administrator <ftpmaster@debian.org>
Wed, 7 Feb 2007 20:03:28 +0000 (20:03 +0000)
committerArchive Administrator <ftpmaster@debian.org>
Wed, 7 Feb 2007 20:03:28 +0000 (20:03 +0000)
1  2 
dak/process_unchecked.py

diff --combined dak/process_unchecked.py
index 3b85d6053b298aeacc6f96b3ca0d6c96a362bc5f,665528a7c32d530fc7be4e2a129f497a5729be60..688fd63c273363b407d96c56f655c09c68ec1ba7
@@@ -43,7 -43,6 +43,7 @@@ re_valid_version = re.compile(r"^([0-9]
  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+\)$")
  
  ################################################################################
  
@@@ -203,14 -202,6 +203,14 @@@ def check_changes()
              reject("%s: Missing mandatory field `%s'." % (filename, i))
              return 0    # Avoid <undef> 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, "")
@@@ -540,11 -531,10 +540,11 @@@ def check_files()
                          files[file]["new"] = 1
                      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
 +                        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
@@@ -1198,9 -1188,20 +1198,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."