import commands, os, pg, re, sys, time
import apt_pkg
-import dak.lib.database as database
-import dak.lib.utils as utils
+from daklib import database
+from daklib import utils
+from daklib.dak_exceptions import *
###############################################################################
return None
status_read, status_write = os.pipe()
- cmd = "gpgv --status-fd %s --keyring %s --keyring %s %s" \
- % (status_write, Cnf["Dinstall::PGPKeyring"], Cnf["Dinstall::GPGKeyring"], filename)
+ cmd = "gpgv --status-fd %s %s %s" \
+ % (status_write, utils.gpg_keyring_args(), filename)
(output, status, exit_status) = utils.gpgv_get_status_output(cmd, status_read, status_write)
# Process the status-fd output
prefix = ""
else:
prefix = ""
- component = component.replace("non-US/", "")
if component != 'main':
suffix = '/' + component
else:
def get_or_set_files_id (filename, size, md5sum, location_id):
global files_id_cache, files_id_serial, files_query_cache
- cache_key = "~".join((filename, size, md5sum, repr(location_id)))
+ cache_key = "_".join((filename, size, md5sum, repr(location_id)))
if not files_id_cache.has_key(cache_key):
files_id_serial += 1
files_query_cache.write("%d\t%s\t%s\t%s\t%d\t\\N\n" % (files_id_serial, filename, size, md5sum, location_id))
suite_id = database.get_suite_id(suite)
try:
file = utils.open_file (filename)
- except utils.cant_open_exc:
+ except CantOpenError:
utils.warn("can't open '%s'" % (filename))
return
Scanner = apt_pkg.ParseTagFile(file)
(md5sum, size, filename) = line.strip().split()
# Don't duplicate .orig.tar.gz's
if filename.endswith(".orig.tar.gz"):
- cache_key = "%s~%s~%s" % (filename, size, md5sum)
+ cache_key = "%s_%s_%s" % (filename, size, md5sum)
if orig_tar_gz_cache.has_key(cache_key):
id = orig_tar_gz_cache[cache_key]
else:
if filename.endswith(".dsc"):
files_id = id
filename = directory + package + '_' + no_epoch_version + '.dsc'
- cache_key = "%s~%s" % (package, version)
+ cache_key = "%s_%s" % (package, version)
if not source_cache.has_key(cache_key):
- nasty_key = "%s~%s" % (package, version)
+ nasty_key = "%s_%s" % (package, version)
source_id_serial += 1
if not source_cache_for_binaries.has_key(nasty_key):
source_cache_for_binaries[nasty_key] = source_id_serial
suite_id = database.get_suite_id(suite)
try:
file = utils.open_file (filename)
- except utils.cant_open_exc:
+ except CantOpenError:
utils.warn("can't open '%s'" % (filename))
return
Scanner = apt_pkg.ParseTagFile(file)
if not source_version:
source_version = version
filename = Scanner.Section["filename"]
+ if filename.endswith(".deb"):
+ type = "deb"
+ else:
+ type = "udeb"
location = get_location_path(filename.split('/')[0])
- location_id = database.get_location_id (location, component, archive)
+ location_id = database.get_location_id (location, component.replace("/debian-installer", ""), archive)
filename = poolify (filename, location)
if architecture == "all":
filename = re_arch_from_filename.sub("binary-all", filename)
- cache_key = "%s~%s" % (source, source_version)
+ cache_key = "%s_%s" % (source, source_version)
source_id = source_cache_for_binaries.get(cache_key, None)
size = Scanner.Section["size"]
md5sum = Scanner.Section["md5sum"]
files_id = get_or_set_files_id (filename, size, md5sum, location_id)
- type = "deb"; # FIXME
- cache_key = "%s~%s~%s~%d~%d~%d~%d" % (package, version, repr(source_id), architecture_id, location_id, files_id, suite_id)
+ cache_key = "%s_%s_%s_%d_%d_%d_%d" % (package, version, repr(source_id), architecture_id, location_id, files_id, suite_id)
if not arch_all_cache.has_key(cache_key):
arch_all_cache[cache_key] = 1
- cache_key = "%s~%s~%s~%d" % (package, version, repr(source_id), architecture_id)
+ cache_key = "%s_%s_%s_%d" % (package, version, repr(source_id), architecture_id)
if not binary_cache.has_key(cache_key):
if not source_id:
source_id = "\N"
Arguments = [('a', "action", "Import-Archive::Options::Action"),
('h', "help", "Import-Archive::Options::Help")]
for i in [ "action", "help" ]:
- if not Cnf.has_key("Import-Archive::Options::%s" % (i)):
- Cnf["Import-Archive::Options::%s" % (i)] = ""
+ if not Cnf.has_key("Import-Archive::Options::%s" % (i)):
+ Cnf["Import-Archive::Options::%s" % (i)] = ""
apt_pkg.ParseCommandLine(Cnf, Arguments, sys.argv)
Options = Cnf.SubTree("Import-Archive::Options")
if Options["Help"]:
- usage()
+ usage()
if not Options["Action"]:
utils.warn("""no -a/--action given; not doing anything.
process_packages (packages, suite, "", server)
elif type == "legacy" or type == "pool":
for suite in Cnf.ValueList("Location::%s::Suites" % (location)):
- for component in Cnf.SubTree("Component").List():
+ udeb_components = map(lambda x: x+"/debian-installer",
+ Cnf.ValueList("Suite::%s::UdebComponents" % suite))
+ for component in Cnf.SubTree("Component").List() + udeb_components:
architectures = filter(utils.real_arch,
Cnf.ValueList("Suite::%s::Architectures" % (suite)))
for architecture in architectures: