X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fqueue.py;fp=daklib%2Fqueue.py;h=f7d999a3da7220135d89d522ac87948775182199;hb=fb11aec0c46bae0797a4e32b1d19eb6fcbc07c49;hp=1d2a3275fc43ac8f29d062affa974a3f3efc6d6f;hpb=05c002afb12f077d753234de45753062fa54ce02;p=dak.git diff --git a/daklib/queue.py b/daklib/queue.py index 1d2a3275..f7d999a3 100755 --- a/daklib/queue.py +++ b/daklib/queue.py @@ -1025,21 +1025,16 @@ class Upload(object): ########################################################################### - def get_changelog_versions(self, source_dir): - """Extracts a the source package and (optionally) grabs the - version history out of debian/changelog for the BTS.""" - - cnf = Config() + def ensure_all_source_exists(self, dest_dir=None): + """ + Ensure that dest_dir contains all the orig tarballs for the specified + changes. If it does not, symlink them into place. - # Find the .dsc (again) - dsc_filename = None - for f in self.pkg.files.keys(): - if self.pkg.files[f]["type"] == "dsc": - dsc_filename = f + If dest_dir is None, populate the current directory. + """ - # If there isn't one, we have nothing to do. (We have reject()ed the upload already) - if not dsc_filename: - return + if dest_dir is None: + dest_dir = os.getcwd() # Create a symlink mirror of the source files in our temporary directory for f in self.pkg.files.keys(): @@ -1064,6 +1059,26 @@ class Upload(object): dest = os.path.join(os.getcwd(), os.path.basename(orig_file)) os.symlink(self.pkg.orig_files[orig_file]["path"], dest) + ########################################################################### + + def get_changelog_versions(self, source_dir): + """Extracts a the source package and (optionally) grabs the + version history out of debian/changelog for the BTS.""" + + cnf = Config() + + # Find the .dsc (again) + dsc_filename = None + for f in self.pkg.files.keys(): + if self.pkg.files[f]["type"] == "dsc": + dsc_filename = f + + # If there isn't one, we have nothing to do. (We have reject()ed the upload already) + if not dsc_filename: + return + + self.ensure_all_source_exists() + # Extract the source cmd = "dpkg-source -sn -x %s" % (dsc_filename) (result, output) = commands.getstatusoutput(cmd) @@ -1207,6 +1222,8 @@ class Upload(object): if not valid_dist: return + self.ensure_all_source_exists() + cnf = Config() tagfile = cnf.get("Dinstall::LintianTags") if tagfile is None: