from daklib.dbconn import *
from daklib import utils
from daklib.config import Config
+from daklib.dak_exceptions import InvalidDscError, ChangesUnicodeError, CantOpenError
################################################################################
if dirname.find('proposed-updates') != -1:
return
for name in filenames:
- filename = os.path.abspath(dirname+'/'+name)
- filename = filename.replace('potato-proposed-updates', 'proposed-updates')
+ filename = os.path.abspath(os.path.join(dirname,name))
if os.path.isfile(filename) and not os.path.islink(filename) and not db_files.has_key(filename) and not excluded.has_key(filename):
waste += os.stat(filename)[stat.ST_SIZE]
print "%s" % (filename)
db_files.clear()
for f in q.all():
- filename = os.path.abspath(f.location.path, f.filename)
+ filename = os.path.abspath(os.path.join(f.location.path, f.filename))
db_files[filename] = ""
if os.access(filename, os.R_OK) == 0:
if f.last_used:
print "Existent files not in db:"
- os.path.walk(cnf["Dir::Root"] + 'pool/', process_dir, None)
+ os.path.walk(os.path.join(cnf["Dir::Root"], 'pool/'), process_dir, None)
print
print "%s wasted..." % (utils.size_type(waste))
Parse every .dsc file in the archive and check for it's validity.
"""
- cnf = Config()
-
count = 0
- suite = 'unstable'
-
- for component in cnf.SubTree("Component").List():
- component = component.lower()
- list_filename = '%s%s_%s_source.list' % (cnf["Dir::Lists"], suite, component)
- list_file = utils.open_file(list_filename)
-
- for line in list_file.readlines():
- f = line[:-1]
- try:
- utils.parse_changes(f, signing_rules=1, dsc_file=1)
- except InvalidDscError, line:
- utils.warn("syntax error in .dsc file '%s', line %s." % (f, line))
- count += 1
- except ChangesUnicodeError:
- utils.warn("found invalid changes file, not properly utf-8 encoded")
- count += 1
+
+ for src in DBConn().session().query(DBSource).order_by(DBSource.source, DBSource.version):
+ f = src.poolfile.fullpath
+ try:
+ utils.parse_changes(f, signing_rules=1, dsc_file=1)
+ except InvalidDscError:
+ utils.warn("syntax error in .dsc file %s" % f)
+ count += 1
+ except ChangesUnicodeError:
+ utils.warn("found invalid dsc file (%s), not properly utf-8 encoded" % f)
+ count += 1
+ except CantOpenError:
+ utils.warn("missing dsc file (%s)" % f)
+ count += 1
+ except Exception, e:
+ utils.warn("miscellaneous error parsing dsc file (%s): %s" % (f, str(e)))
+ count += 1
if count:
utils.warn("Found %s invalid .dsc files." % (count))
Ensure files mentioned in Packages & Sources exist
"""
for suite in [ "stable", "testing", "unstable" ]:
- for component in Cnf.ValueList("Suite::%s::Components" % (suite)):
+ for component in get_component_names():
architectures = get_suite_architectures(suite)
for arch in [ i.arch_string.lower() for i in architectures ]:
if arch == "source":