#!/usr/bin/env python
-""" Cruft checker and hole filler for overrides """
-# Copyright (C) 2000, 2001, 2002, 2004, 2006 James Troup <james@nocrew.org>
-# Copyright (C) 2005 Jeroen van Wolffelaar <jeroen@wolffelaar.nl>
+""" Cruft checker and hole filler for overrides
+
+@contact: Debian FTPMaster <ftpmaster@debian.org>
+@copyright: 2000, 2001, 2002, 2004, 2006 James Troup <james@nocrew.org>
+@opyright: 2005 Jeroen van Wolffelaar <jeroen@wolffelaar.nl>
+@copyright: 2011 Joerg Jaspert <joerg@debian.org>
+@license: GNU General Public License version 2 or later
+
+"""
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
################################################################################
-Options = None
-Logger = None
+Options = None #: Commandline arguments parsed into this
+Logger = None #: Our logging object
sections = {}
priorities = {}
blacklist = {}
################################################################################
-def gen_blacklist(dir):
- for entry in os.listdir(dir):
- entry = entry.split('_')[0]
- blacklist[entry] = 1
-
def process(osuite, affected_suites, originosuite, component, otype, session):
global Logger, Options, sections, priorities
if not Options["No-Action"]:
session.execute("""DELETE FROM override WHERE package = :package
AND suite = :suite_id AND component = :component_id
- AND type = :type_id""",
+ AND type = :type_id
+ AND created < now() - interval '14 days'""",
{'package': package, 'suite_id': osuite_id,
'component_id': component_id, 'type_id': type_id})
# create source overrides based on binary overrides, as source
if not Options["No-Action"]:
session.execute("""DELETE FROM override
WHERE package = :package AND suite = :suite_id
- AND component = :component_id AND type = :type_id""",
+ AND component = :component_id AND type = :type_id
+ AND created < now() - interval '14 days'""",
{'package': package, 'suite_id': osuite_id,
'component_id': component_id, 'type_id': type_id})
# we can copy
packages[package] = 1
Logger.log(["copying missing override", osuite, component,
- type, package, priorities[i[1]], sections[i[2]], i[3]])
+ otype, package, priorities[i[1]], sections[i[2]], i[3]])
if not Options["No-Action"]:
session.execute("""INSERT INTO override (package, suite, component,
priority, section, type, maintainer)
priorities[entry] = name
if not Options["No-Action"]:
- Logger = daklog.Logger(cnf, "check-overrides")
+ Logger = daklog.Logger("check-overrides")
else:
- Logger = daklog.Logger(cnf, "check-overrides", 1)
-
- gen_blacklist(cnf["Dir::Queue::Accepted"])
+ Logger = daklog.Logger("check-overrides", 1)
for osuite in cnf.SubTree("Check-Overrides::OverrideSuites").List():
if "1" != cnf["Check-Overrides::OverrideSuites::%s::Process" % osuite]:
pass
print "Processing %s%s..." % (osuite, originremark)
+ suiteobj = get_suite(osuite)
# Get a list of all suites that use the override file of 'osuite'
- ocodename = cnf["Suite::%s::codename" % osuite].lower()
- suites = []
- suiteids = []
- for suite in cnf.SubTree("Suite").List():
- if ocodename == cnf["Suite::%s::OverrideCodeName" % suite].lower():
- suites.append(suite)
- s = get_suite(suite.lower(), session)
- if s is not None:
- suiteids.append(s.suite_id)
-
- if len(suiteids) != len(suites) or len(suiteids) < 1:
- utils.fubar("Couldn't find id's of all suites: %s" % suites)
-
- for component in cnf.SubTree("Component").List():
+ ocodename = suiteobj.codename
+ suiteids = [x.suite_id for x in session.query(Suite).filter(Suite.overridecodename == ocodename).all()]
+
+ if len(suiteids) < 1:
+ utils.fubar("Couldn't find id's of all suites: %s" % suiteids)
+
+ for component in session.query(Component).all():
# It is crucial for the dsc override creation based on binary
# overrides that 'dsc' goes first
- otypes = cnf.ValueList("OverrideType")
- otypes.remove("dsc")
- otypes = ["dsc"] + otypes
+ component_name = component.component_name
+ otypes = ['dsc']
+ for ot in session.query(OverrideType):
+ if ot.overridetype == 'dsc':
+ continue
+ otypes.append(ot.overridetype)
+
for otype in otypes:
- print "Processing %s [%s - %s] using %s..." \
- % (osuite, component, otype, suites)
+ print "Processing %s [%s - %s]" \
+ % (osuite, component_name, otype)
sys.stdout.flush()
- process(osuite, suiteids, originosuite, component, otype, session)
+ process(osuite, suiteids, originosuite, component_name, otype, session)
Logger.close()