X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fgenerate_packages_sources.py;h=e78466fc96de24dd8466804a5935a4ca1f9aa186;hb=dd80b169287a128cd9e3b833852fbf68106385b5;hp=07a64b6e823ee02610be52fecd34e0a8114bc40e;hpb=5695f314e1475062e890011149da48f87ff9751e;p=dak.git diff --git a/dak/generate_packages_sources.py b/dak/generate_packages_sources.py index 07a64b6e..e78466fc 100755 --- a/dak/generate_packages_sources.py +++ b/dak/generate_packages_sources.py @@ -6,6 +6,7 @@ @copyright: 2000, 2001, 2002, 2006 James Troup @copyright: 2009 Mark Hymers @copyright: 2010 Joerg Jaspert +@license: GNU General Public License version 2 or later """ @@ -41,6 +42,7 @@ from daklib.config import Config Options = None #: Commandline arguments parsed into this Logger = None #: Our logging object +results = [] #: Results of the subprocesses ################################################################################ @@ -103,17 +105,82 @@ TreeDefault apt_trees={} apt_trees["di"]={} - apt_trees["testing"]=""" -tree "dists/testing" + + apt_trees["oldstable"]=""" +tree "dists/oldstable" { - FakeDI "dists/unstable"; - FileList "/srv/ftp-master.debian.org/database/dists/testing_$(SECTION)_binary-$(ARCH).list"; - SourceFileList "/srv/ftp-master.debian.org/database/dists/testing_$(SECTION)_source.list"; + FileList "/srv/ftp-master.debian.org/database/dists/oldstable_$(SECTION)_binary-$(ARCH).list"; + SourceFileList "/srv/ftp-master.debian.org/database/dists/oldstable_$(SECTION)_source.list"; Sections "main contrib non-free"; Architectures "%(arch)s"; - BinOverride "override.wheezy.$(SECTION)"; - ExtraOverride "override.wheezy.extra.$(SECTION)"; - SrcOverride "override.wheezy.$(SECTION).src"; + BinOverride "override.lenny.$(SECTION)"; + ExtraOverride "override.lenny.extra.$(SECTION)"; + SrcOverride "override.lenny.$(SECTION).src"; +}; +""" + + apt_trees["di"]["oldstable"]=""" +tree "dists/oldstable/main" +{ + FileList "/srv/ftp-master.debian.org/database/dists/oldstable_main_$(SECTION)_binary-$(ARCH).list"; + Sections "debian-installer"; + Architectures "%(arch)s"; + BinOverride "override.lenny.main.$(SECTION)"; + SrcOverride "override.lenny.main.src"; + BinCacheDB "packages-debian-installer-$(ARCH).db"; + Packages::Extensions ".udeb"; + %(contentsline)s +}; + +tree "dists/oldstable/non-free" +{ + FileList "/srv/ftp-master.debian.org/database/dists/oldstable_non-free_$(SECTION)_binary-$(ARCH).list"; + Sections "debian-installer"; + Architectures "%(arch)s"; + BinOverride "override.lenny.main.$(SECTION)"; + SrcOverride "override.lenny.main.src"; + BinCacheDB "packages-debian-installer-$(ARCH).db"; + Packages::Extensions ".udeb"; + %(contentsline)s +}; +""" + + apt_trees["stable"]=""" +tree "dists/stable" +{ + FileList "/srv/ftp-master.debian.org/database/dists/stable_$(SECTION)_binary-$(ARCH).list"; + SourceFileList "/srv/ftp-master.debian.org/database/dists/stable_$(SECTION)_source.list"; + Sections "main contrib non-free"; + Architectures "%(arch)s"; + BinOverride "override.squeeze.$(SECTION)"; + ExtraOverride "override.squeeze.extra.$(SECTION)"; + SrcOverride "override.squeeze.$(SECTION).src"; +}; +""" + + apt_trees["di"]["stable"]=""" +tree "dists/stable/main" +{ + FileList "/srv/ftp-master.debian.org/database/dists/stable_main_$(SECTION)_binary-$(ARCH).list"; + Sections "debian-installer"; + Architectures "%(arch)s"; + BinOverride "override.squeeze.main.$(SECTION)"; + SrcOverride "override.squeeze.main.src"; + BinCacheDB "packages-debian-installer-$(ARCH).db"; + Packages::Extensions ".udeb"; + %(contentsline)s +}; + +tree "dists/stable/non-free" +{ + FileList "/srv/ftp-master.debian.org/database/dists/stable_non-free_$(SECTION)_binary-$(ARCH).list"; + Sections "debian-installer"; + Architectures "%(arch)s"; + BinOverride "override.squeeze.main.$(SECTION)"; + SrcOverride "override.squeeze.main.src"; + BinCacheDB "packages-debian-installer-$(ARCH).db"; + Packages::Extensions ".udeb"; + %(contentsline)s }; """ @@ -129,6 +196,20 @@ tree "dists/squeeze-updates" SrcOverride "override.squeeze.$(SECTION).src"; Contents " "; }; +""" + + apt_trees["testing"]=""" +tree "dists/testing" +{ + FakeDI "dists/unstable"; + FileList "/srv/ftp-master.debian.org/database/dists/testing_$(SECTION)_binary-$(ARCH).list"; + SourceFileList "/srv/ftp-master.debian.org/database/dists/testing_$(SECTION)_source.list"; + Sections "main contrib non-free"; + Architectures "%(arch)s"; + BinOverride "override.wheezy.$(SECTION)"; + ExtraOverride "override.wheezy.extra.$(SECTION)"; + SrcOverride "override.wheezy.$(SECTION).src"; +}; """ apt_trees["di"]["testing"]=""" @@ -360,11 +441,16 @@ tree "dists/oldstable-proposed-updates/main" def sname(arch): return arch.arch_string +def get_result(arg): + global results + if arg: + results.append(arg) + ######################################################################## ######################################################################## def main (): - global Options, Logger + global Options, Logger, results cnf = Config() @@ -382,7 +468,7 @@ def main (): if Options["Help"]: usage() - Logger = daklog.Logger(cnf, 'generate-packages-sources') + Logger = daklog.Logger('generate-packages-sources') session = DBConn().session() @@ -405,40 +491,28 @@ def main (): broken=[] # For each given suite, each architecture, run one apt-ftparchive for s in suites: + results=[] # Setup a multiprocessing Pool. As many workers as we have CPU cores. pool = Pool() - arch_list=get_suite_architectures(s.suite_name, skipsrc=False, skipall=True, session=session) + arch_list=get_suite_architectures(s.suite_name, skipsrc=False, skipall=False, session=session) Logger.log(['generating output for Suite %s, Architectures %s' % (s.suite_name, map(sname, arch_list))]) for a in arch_list: - try: - result=pool.apply_async(generate_packages_sources, (a.arch_string, s.suite_name, cnf["Dir::TempPath"])) - # Get the result. Should it take too long (a-f hanging), break out. - r=result.get(timeout=3600) - except TimeoutError: - broken.append("Timeout: %s - %s" % (s.suite_name, a.arch_string)) - # Now try the next architecture - continue - - if r: - # As long as we get 0, we are fine. Otherwise we yell about it later. - broken.append("Breakage: %s - %s returned %s" % (s.suite_name, a.arch_string, r)) + pool.apply_async(generate_packages_sources, (a.arch_string, s.suite_name, cnf["Dir::TempPath"]), callback=get_result) # No more work will be added to our pool, close it and then wait for all to finish pool.close() pool.join() - if len(broken) > 0: - Logger.log(['Trouble: %s' % (broken)]) - print "Trouble: %s" % (broken) + if len(results) > 0: + Logger.log(['Trouble, something with a-f broke, resultcodes: %s' % (results)]) + print "Trouble, something with a-f broke, resultcodes: %s" % (results) + sys.exit(1) os.chdir(startdir) # this script doesn't change the database session.close() Logger.close() - if len(broken) > 0: - sys.exit(1) - ####################################################################################### if __name__ == '__main__':