################################################################################
-def parse_wnpp_bug_file(file = "/home/tolimar/wnpp-bugs"):
+def parse_wnpp_bug_file(file = "/srv/ftp-master.debian.org/scripts/masterfiles/wnpp_rm"):
"""
Parses the wnpp bug list available at http://qa.debian.org/data/bts/wnpp_rm
Well, actually it parsed a local copy, but let's document the source
returns a dict associating source package name with a list of open wnpp
bugs (Yes, there might be more than one)
"""
- lines = open(file).readlines()
+
+ line = []
+ try:
+ f = open(file)
+ lines = f.readlines()
+ except IOError, e:
+ print "Warning: Couldn't open %s; don't know about WNPP bugs, so won't close any." % file
+ lines = []
wnpp = {}
for line in lines:
wnpp[source] = bugs
return wnpp
+################################################################################
+
+def get_packages_from_ftp(root, suite, component, architecture):
+ """
+ Returns a filename containing data collected by aggregating Packages.gz files
+ gathered for each architecture.
+
+ Returned file has to be manually deleted afterwards.
+ """
+ filename = "%s/dists/%s/%s/binary-%s/Packages.gz" % (root, suite, component, architecture)
+ (fd, temp_file) = temp_filename()
+ (result, output) = commands.getstatusoutput("gunzip -c %s > %s" % (filename, temp_file))
+ if (result != 0):
+ fubar("Gunzip invocation failed!\n%s\n" % (output), result)
+ filename = "%s/dists/%s/%s/debian-installer/binary-%s/Packages.gz" % (root, suite, component, architecture)
+ if os.path.exists(filename):
+ (result, output) = commands.getstatusoutput("gunzip -c %s >> %s" % (filename, temp_file))
+ if (result != 0):
+ fubar("Gunzip invocation failed!\n%s\n" % (output), result)
+ return temp_file