]> git.decadent.org.uk Git - dak.git/commitdiff
Merge remote-tracking branch 'ansgar/package-set' into merge
authorJoerg Jaspert <joerg@debian.org>
Fri, 25 Mar 2011 13:57:39 +0000 (14:57 +0100)
committerJoerg Jaspert <joerg@debian.org>
Fri, 25 Mar 2011 13:57:39 +0000 (14:57 +0100)
* ansgar/package-set:
  determine_new: Really make `new' an empty dict

Signed-off-by: Joerg Jaspert <joerg@debian.org>
1  2 
daklib/queue.py

diff --combined daklib/queue.py
index 84ac6c984e5389f253bd58c68b86097a901ca7e6,86e768b366ab6548ba04c30df6d5383a3848748e..26bacf57fbdd9ef0121f9eda6339cc44928f4a53
@@@ -102,7 -102,7 +102,7 @@@ def get_type(f, session)
  
  # Determine what parts in a .changes are NEW
  
- def determine_new(filename, changes, files, warn=1, session = None, dsc = None, new = {}):
+ def determine_new(filename, changes, files, warn=1, session = None, dsc = None, new = None):
      """
      Determine what parts in a C{changes} file are NEW.
  
      # TODO: This should all use the database instead of parsing the changes
      # file again
      byhand = {}
+     if new is None:
+         new = {}
  
      dbchg = get_dbchange(filename, session)
      if dbchg is None:
@@@ -2072,7 -2074,6 +2074,7 @@@ distribution.""
          print "Installing."
          self.logger.log(["installing changes", self.pkg.changes_file])
  
 +        binaries = []
          poolfiles = []
  
          # Add the .dsc file to the DB first
          # Add .deb / .udeb files to the DB (type is always deb, dbtype is udeb/deb)
          for newfile, entry in self.pkg.files.items():
              if entry["type"] == "deb":
 -                poolfiles.append(add_deb_to_db(self, newfile, session))
 +                b, pf = add_deb_to_db(self, newfile, session)
 +                binaries.append(b)
 +                poolfiles.append(pf)
  
          # If this is a sourceful diff only upload that is moving
          # cross-component we need to copy the .orig files into the new
          # Our SQL session will automatically start a new transaction after
          # the last commit
  
 +        # Now ensure that the metadata has been added
 +        # This has to be done after we copy the files into the pool
 +        # For source if we have it:
 +        if self.pkg.changes["architecture"].has_key("source"):
 +            import_metadata_into_db(source, session)
 +
 +        # Now for any of our binaries
 +        for b in binaries:
 +            import_metadata_into_db(b, session)
 +
 +        session.commit()
 +
          # Move the .changes into the 'done' directory
          utils.move(self.pkg.changes_file,
                     os.path.join(cnf["Dir::Queue::Done"], os.path.basename(self.pkg.changes_file)))