summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Langasek <steve.langasek@canonical.com>2012-06-12 08:16:31 -0700
committerSteve Langasek <steve.langasek@canonical.com>2012-06-12 08:16:31 -0700
commit44f568d264dc8714c92eef21c81382027ad5f12f (patch)
tree167d844d64a6dd48b5beb1fc4dd68336c7c89714
parent248de65b8195f33c096704bab9ee9b9bee807784 (diff)
parentbcef41df6bdefdd95e0b7cab0428b4655accf9fa (diff)
downloadpython-apt-44f568d264dc8714c92eef21c81382027ad5f12f.tar.gz
Merge pre-released version of 0.8.5 from Debian branch
-rw-r--r--apt/auth.py176
-rw-r--r--apt/progress/base.py4
-rw-r--r--apt/utils.py2
-rw-r--r--debian/changelog39
-rw-r--r--debian/control2
-rw-r--r--po/python-apt.pot142
-rw-r--r--tests/data/misc/foo_Release492
-rwxr-xr-xtests/fakeroot-apt-key2
-rw-r--r--tests/test_auth.py223
-rw-r--r--tests/test_utils.py18
10 files changed, 1018 insertions, 82 deletions
diff --git a/apt/auth.py b/apt/auth.py
new file mode 100644
index 00000000..38c4bdc6
--- /dev/null
+++ b/apt/auth.py
@@ -0,0 +1,176 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# auth - authentication key management
+#
+# Copyright (c) 2004 Canonical
+# Copyright (c) 2012 Sebastian Heinlein
+#
+# Author: Michael Vogt <mvo@debian.org>
+# Sebastian Heinlein <devel@glatzor.de>
+#
+# 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 the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+# USA
+"""Handle GnuPG keys used to trust signed repositories."""
+
+import atexit
+import os
+import os.path
+import subprocess
+import tempfile
+
+import apt_pkg
+from apt_pkg import gettext as _
+
+
+class TrustedKey(object):
+
+ """Represents a trusted key."""
+
+ def __init__(self, name, keyid, date):
+ self.raw_name = name
+ # Allow to translated some known keys
+ self.name = _(name)
+ self.keyid = keyid
+ self.date = date
+
+ def __str__(self):
+ return "%s\n%s %s" % (self.name, self.keyid, self.date)
+
+
+def _call_apt_key_script(*args, **kwargs):
+ """Run the apt-key script with the given arguments."""
+ cmd = [apt_pkg.config.find_file("Dir::Bin::Apt-Key", "/usr/bin/apt-key")]
+ cmd.extend(args)
+ env = os.environ.copy()
+ env["LANG"] = "C"
+ if apt_pkg.config.find_dir("Dir") != "/":
+ # If the key is to be installed into a chroot we have to export the
+ # configuration from the chroot to the apt-key script by using
+ # a temporary APT_CONFIG file. The apt-key script uses apt-config shell
+ # internally
+ conf_fd, conf_name = tempfile.mkstemp(prefix="apt-key", suffix="conf")
+ atexit.register(os.remove, conf_name)
+ try:
+ os.write(conf_fd, apt_pkg.config.dump().encode("UTF-8"))
+ finally:
+ os.close(conf_fd)
+ env["APT_CONFIG"] = conf_name
+ proc = subprocess.Popen(cmd, env=env, universal_newlines=True,
+ stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT)
+ try:
+ proc.stdin.write(kwargs["stdin"])
+ except KeyError:
+ pass
+ finally:
+ proc.stdin.close()
+ return_code = proc.wait()
+ output = proc.stdout.read()
+ if return_code:
+ raise SystemError("The apt-key script failed with return code %s:\n"
+ "%s\n%s" % (return_code, " ".join(cmd), output))
+ return output.strip()
+
+def add_key_from_file(filename):
+ """Import a GnuPG key file to trust repositores signed by it.
+
+ Keyword arguments:
+ filename -- the absolute path to the public GnuPG key file
+ """
+ if not os.path.abspath(filename):
+ raise SystemError("An absolute path is required: %s" % filename)
+ if not os.access(filename, os.R_OK):
+ raise SystemError("Key file cannot be accessed: %s" % filename)
+ _call_apt_key_script("add", filename)
+
+def add_key_from_keyserver(keyid, keyserver):
+ """Import a GnuPG key file to trust repositores signed by it.
+
+ Keyword arguments:
+ keyid -- the identifier of the key, e.g. 0x0EB12DSA
+ keyserver -- the URL or hostname of the key server
+ """
+ _call_apt_key_script("adv", "--quiet", "--keyserver", keyserver,
+ "--recv", keyid)
+
+def add_key(content):
+ """Import a GnuPG key to trust repositores signed by it.
+
+ Keyword arguments:
+ content -- the content of the GnuPG public key
+ """
+ _call_apt_key_script("adv", "--quiet", "--batch",
+ "--import", "-", stdin=content)
+
+def remove_key(fingerprint):
+ """Remove a GnuPG key to no longer trust repositores signed by it.
+
+ Keyword arguments:
+ fingerprint -- the fingerprint identifying the key
+ """
+ _call_apt_key_script("rm", fingerprint)
+
+def export_key(fingerprint):
+ """Return the GnuPG key in text format.
+
+ Keyword arguments:
+ fingerprint -- the fingerprint identifying the key
+ """
+ return _call_apt_key_script("export", fingerprint)
+
+def update():
+ """Update the local keyring with the archive keyring and remove from
+ the local keyring the archive keys which are no longer valid. The
+ archive keyring is shipped in the archive-keyring package of your
+ distribution, e.g. the debian-archive-keyring package in Debian.
+ """
+ return _call_apt_key_script("update")
+
+def net_update():
+ """Work similar to the update command above, but get the archive
+ keyring from an URI instead and validate it against a master key.
+ This requires an installed wget(1) and an APT build configured to
+ have a server to fetch from and a master keyring to validate. APT
+ in Debian does not support this command and relies on update
+ instead, but Ubuntu's APT does.
+ """
+ return _call_apt_key_script("net-update")
+
+def list_keys():
+ """Returns a list of TrustedKey instances for each key which is
+ used to trust repositories.
+ """
+ # The output of `apt-key list` is difficult to parse since the
+ # --with-colons parameter isn't user
+ output = _call_apt_key_script("adv", "--with-colons", "--batch",
+ "--list-keys")
+ res = []
+ for line in output.split("\n"):
+ fields = line.split(":")
+ if fields[0] == "pub":
+ key = TrustedKey(fields[9], fields[4][-8:], fields[5])
+ res.append(key)
+ return res
+
+if __name__ == "__main__":
+ # Add some known keys we would like to see translated so that they get
+ # picked up by gettext
+ lambda: _("Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>")
+ lambda: _("Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>")
+
+ apt_pkg.init()
+ for trusted_key in list_keys():
+ print(trusted_key)
diff --git a/apt/progress/base.py b/apt/progress/base.py
index 4943978c..88b1ad21 100644
--- a/apt/progress/base.py
+++ b/apt/progress/base.py
@@ -146,6 +146,10 @@ class InstallProgress(object):
self.status_stream = os.fdopen(self.statusfd, "r")
fcntl.fcntl(self.statusfd, fcntl.F_SETFL, os.O_NONBLOCK)
+ def __del__(self):
+ self.write_stream.close()
+ self.status_stream.close()
+
def start_update(self):
"""(Abstract) Start update."""
diff --git a/apt/utils.py b/apt/utils.py
index 49e8bed5..08140258 100644
--- a/apt/utils.py
+++ b/apt/utils.py
@@ -48,7 +48,7 @@ def get_release_date_from_release_file(path):
if not path or not os.path.exists(path):
return None
tag = apt_pkg.TagFile(open(path))
- section = tag.next()
+ section = next(tag)
if not "Date" in section:
return None
date = section["Date"]
diff --git a/debian/changelog b/debian/changelog
index 6deeab08..ab2fae38 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,10 @@
-python-apt (0.8.3ubuntu9) UNRELEASED; urgency=low
+python-apt (0.8.5~ubuntu1) UNRELEASED; urgency=low
- [ Steve Langasek ]
- * utils/get_ubuntu_mirrors_from_lp.py: move this script to python3
- * pre-build.sh: call dpkg-checkbuilddeps with the list of our
- source-build-dependencies; this may save someone else an hour down the
- line scratching their head over gratuitous test-suite failures...
+ * Merge from unreleased Debian branch, remaining changes:
+ - drop recommends on python2.6
+ - build with COMPAT_0_7, which might still be needed by some code in the
+ Ubuntu archive. We need to scan the archive for this, add liberal
+ Breaks, and analyze the dist-upgrader case before disabling.
[ Colin Watson ]
* aptsources/*.py, setup.py: Make aptsources modules work directly in
@@ -14,6 +14,33 @@ python-apt (0.8.3ubuntu9) UNRELEASED; urgency=low
-- Steve Langasek <steve.langasek@ubuntu.com> Mon, 11 Jun 2012 13:48:06 -0700
+python-apt (0.8.5) UNRELEASED; urgency=low
+
+ [ Michael Vogt ]
+ * python/cache.cc:
+ - ensure that pkgApplyStatus is called when the cache is opened
+ (thanks to Sebastian Heinlein for finding this bug), LP: #659438
+
+ [ Stéphane Graber ]
+ * data/templates/Ubuntu.info.in:
+ - add quantal
+
+ [ Evan Dandrea ]
+ * Don't leak file descriptors.
+
+ [ Steve Langasek ]
+ * utils/get_ubuntu_mirrors_from_lp.py: move this script to python3
+ * pre-build.sh: call dpkg-checkbuilddeps with the list of our
+ source-build-dependencies; this may save someone else an hour down the
+ line scratching their head over gratuitous test-suite failures...
+
+ [ Sebastian Heinlein ]
+ * lp:~glatzor/python-apt/auth:
+ - this is a port of the software-properties AptAuth module to python-apt
+ with some cleanups. It provides a wrapper API for the apt-key command
+
+ -- Michael Vogt <mvo@debian.org> Tue, 17 Apr 2012 14:09:24 +0200
+
python-apt (0.8.3ubuntu8) quantal; urgency=low
* data/templates/Ubuntu.info.in:
diff --git a/debian/control b/debian/control
index 89e57325..58136b9a 100644
--- a/debian/control
+++ b/debian/control
@@ -9,7 +9,7 @@ XS-Python-Version: >= 2.6
X-Python3-Version: >= 3.1
Build-Depends: apt-utils,
debhelper (>= 7.3.5),
- libapt-pkg-dev (>= 0.8.16~exp12),
+ libapt-pkg-dev (>= 0.8.11),
python-all-dev (>= 2.6.6-3~),
python-all-dbg,
python3-all-dev (>= 3.1.2-10~),
diff --git a/po/python-apt.pot b/po/python-apt.pot
index bde5f9c1..d6ac301e 100644
--- a/po/python-apt.pot
+++ b/po/python-apt.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-02-06 14:56+0100\n"
+"POT-Creation-Date: 2012-06-12 10:44+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -24,327 +24,327 @@ msgid "http://changelogs.ubuntu.com/changelogs/pool/%s/%s/%s/%s_%s/changelog"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:33
+#: ../data/templates/Ubuntu.info.in:151
msgid "Ubuntu 12.04 'Precise Pangolin'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:40
+#: ../data/templates/Ubuntu.info.in:158
msgid "Cdrom with Ubuntu 12.04 'Precise Pangolin'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:151
+#: ../data/templates/Ubuntu.info.in:269
msgid "Ubuntu 11.10 'Oneiric Ocelot'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:158
+#: ../data/templates/Ubuntu.info.in:276
msgid "Cdrom with Ubuntu 11.10 'Oneiric Ocelot'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:270
+#: ../data/templates/Ubuntu.info.in:388
msgid "Ubuntu 11.04 'Natty Narwhal'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:277
+#: ../data/templates/Ubuntu.info.in:395
msgid "Cdrom with Ubuntu 11.04 'Natty Narwhal'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:368
+#: ../data/templates/Ubuntu.info.in:486
msgid "Ubuntu 10.10 'Maverick Meerkat'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:388
+#: ../data/templates/Ubuntu.info.in:506
msgid "Cdrom with Ubuntu 10.10 'Maverick Meerkat'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:400
+#: ../data/templates/Ubuntu.info.in:518
msgid "Canonical Partners"
msgstr ""
#. CompDescription
-#: ../data/templates/Ubuntu.info.in:402
+#: ../data/templates/Ubuntu.info.in:520
msgid "Software packaged by Canonical for their partners"
msgstr ""
#. CompDescriptionLong
-#: ../data/templates/Ubuntu.info.in:403
+#: ../data/templates/Ubuntu.info.in:521
msgid "This software is not part of Ubuntu."
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:410
+#: ../data/templates/Ubuntu.info.in:528
msgid "Independent"
msgstr ""
#. CompDescription
-#: ../data/templates/Ubuntu.info.in:412
+#: ../data/templates/Ubuntu.info.in:530
msgid "Provided by third-party software developers"
msgstr ""
#. CompDescriptionLong
-#: ../data/templates/Ubuntu.info.in:413
+#: ../data/templates/Ubuntu.info.in:531
msgid "Software offered by third party developers."
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:451
+#: ../data/templates/Ubuntu.info.in:569
msgid "Ubuntu 10.04 'Lucid Lynx'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:471
+#: ../data/templates/Ubuntu.info.in:589
msgid "Cdrom with Ubuntu 10.04 'Lucid Lynx'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:514
+#: ../data/templates/Ubuntu.info.in:632
msgid "Ubuntu 9.10 'Karmic Koala'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:534
+#: ../data/templates/Ubuntu.info.in:652
msgid "Cdrom with Ubuntu 9.10 'Karmic Koala'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:577
+#: ../data/templates/Ubuntu.info.in:695
msgid "Ubuntu 9.04 'Jaunty Jackalope'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:596
+#: ../data/templates/Ubuntu.info.in:714
msgid "Cdrom with Ubuntu 9.04 'Jaunty Jackalope'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:639
+#: ../data/templates/Ubuntu.info.in:757
msgid "Ubuntu 8.10 'Intrepid Ibex'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:659
+#: ../data/templates/Ubuntu.info.in:777
msgid "Cdrom with Ubuntu 8.10 'Intrepid Ibex'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:703
+#: ../data/templates/Ubuntu.info.in:821
msgid "Ubuntu 8.04 'Hardy Heron'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:723
+#: ../data/templates/Ubuntu.info.in:841
msgid "Cdrom with Ubuntu 8.04 'Hardy Heron'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:768
+#: ../data/templates/Ubuntu.info.in:886
msgid "Ubuntu 7.10 'Gutsy Gibbon'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:787
+#: ../data/templates/Ubuntu.info.in:905
msgid "Cdrom with Ubuntu 7.10 'Gutsy Gibbon'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:832
+#: ../data/templates/Ubuntu.info.in:950
msgid "Ubuntu 7.04 'Feisty Fawn'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:851
+#: ../data/templates/Ubuntu.info.in:969
msgid "Cdrom with Ubuntu 7.04 'Feisty Fawn'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:893
+#: ../data/templates/Ubuntu.info.in:1011
msgid "Ubuntu 6.10 'Edgy Eft'"
msgstr ""
#. CompDescription
-#: ../data/templates/Ubuntu.info.in:898
+#: ../data/templates/Ubuntu.info.in:1016
msgid "Community-maintained"
msgstr ""
#. CompDescription
-#: ../data/templates/Ubuntu.info.in:904
+#: ../data/templates/Ubuntu.info.in:1022
msgid "Restricted software"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:912
+#: ../data/templates/Ubuntu.info.in:1030
msgid "Cdrom with Ubuntu 6.10 'Edgy Eft'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:954
+#: ../data/templates/Ubuntu.info.in:1072
msgid "Ubuntu 6.06 LTS 'Dapper Drake'"
msgstr ""
#. CompDescriptionLong
-#: ../data/templates/Ubuntu.info.in:957
+#: ../data/templates/Ubuntu.info.in:1075
msgid "Canonical-supported free and open-source software"
msgstr ""
#. CompDescription
-#: ../data/templates/Ubuntu.info.in:959
+#: ../data/templates/Ubuntu.info.in:1077
msgid "Community-maintained (universe)"
msgstr ""
#. CompDescriptionLong
-#: ../data/templates/Ubuntu.info.in:960
+#: ../data/templates/Ubuntu.info.in:1078
msgid "Community-maintained free and open-source software"
msgstr ""
#. CompDescription
-#: ../data/templates/Ubuntu.info.in:962
+#: ../data/templates/Ubuntu.info.in:1080
msgid "Non-free drivers"
msgstr ""
#. CompDescriptionLong
-#: ../data/templates/Ubuntu.info.in:963
+#: ../data/templates/Ubuntu.info.in:1081
msgid "Proprietary drivers for devices"
msgstr ""
#. CompDescription
-#: ../data/templates/Ubuntu.info.in:965
+#: ../data/templates/Ubuntu.info.in:1083
msgid "Restricted software (Multiverse)"
msgstr ""
#. CompDescriptionLong
-#: ../data/templates/Ubuntu.info.in:966
+#: ../data/templates/Ubuntu.info.in:1084
msgid "Software restricted by copyright or legal issues"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:973
+#: ../data/templates/Ubuntu.info.in:1091
msgid "Cdrom with Ubuntu 6.06 LTS 'Dapper Drake'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:989
+#: ../data/templates/Ubuntu.info.in:1107
msgid "Important security updates"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:994
+#: ../data/templates/Ubuntu.info.in:1112
msgid "Recommended updates"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:999
+#: ../data/templates/Ubuntu.info.in:1117
msgid "Pre-released updates"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1004
+#: ../data/templates/Ubuntu.info.in:1122
msgid "Unsupported updates"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1015
+#: ../data/templates/Ubuntu.info.in:1133
msgid "Ubuntu 5.10 'Breezy Badger'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1030
+#: ../data/templates/Ubuntu.info.in:1148
msgid "Cdrom with Ubuntu 5.10 'Breezy Badger'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1046
+#: ../data/templates/Ubuntu.info.in:1164
msgid "Ubuntu 5.10 Security Updates"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1051
+#: ../data/templates/Ubuntu.info.in:1169
msgid "Ubuntu 5.10 Updates"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1056
+#: ../data/templates/Ubuntu.info.in:1174
msgid "Ubuntu 5.10 Backports"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1067
+#: ../data/templates/Ubuntu.info.in:1185
msgid "Ubuntu 5.04 'Hoary Hedgehog'"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1082
+#: ../data/templates/Ubuntu.info.in:1200
msgid "Cdrom with Ubuntu 5.04 'Hoary Hedgehog'"
msgstr ""
#. CompDescription
-#: ../data/templates/Ubuntu.info.in:1085 ../data/templates/Debian.info.in:149
+#: ../data/templates/Ubuntu.info.in:1203 ../data/templates/Debian.info.in:149
msgid "Officially supported"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1098
+#: ../data/templates/Ubuntu.info.in:1216
msgid "Ubuntu 5.04 Security Updates"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1103
+#: ../data/templates/Ubuntu.info.in:1221
msgid "Ubuntu 5.04 Updates"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1108
+#: ../data/templates/Ubuntu.info.in:1226
msgid "Ubuntu 5.04 Backports"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1114
+#: ../data/templates/Ubuntu.info.in:1232
msgid "Ubuntu 4.10 'Warty Warthog'"
msgstr ""
#. CompDescription
-#: ../data/templates/Ubuntu.info.in:1120
+#: ../data/templates/Ubuntu.info.in:1238
msgid "Community-maintained (Universe)"
msgstr ""
#. CompDescription
-#: ../data/templates/Ubuntu.info.in:1122
+#: ../data/templates/Ubuntu.info.in:1240
msgid "Non-free (Multiverse)"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1129
+#: ../data/templates/Ubuntu.info.in:1247
msgid "Cdrom with Ubuntu 4.10 'Warty Warthog'"
msgstr ""
#. CompDescription
-#: ../data/templates/Ubuntu.info.in:1132
+#: ../data/templates/Ubuntu.info.in:1250
msgid "No longer officially supported"
msgstr ""
#. CompDescription
-#: ../data/templates/Ubuntu.info.in:1134
+#: ../data/templates/Ubuntu.info.in:1252
msgid "Restricted copyright"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1141
+#: ../data/templates/Ubuntu.info.in:1259
msgid "Ubuntu 4.10 Security Updates"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1146
+#: ../data/templates/Ubuntu.info.in:1264
msgid "Ubuntu 4.10 Updates"
msgstr ""
#. Description
-#: ../data/templates/Ubuntu.info.in:1151
+#: ../data/templates/Ubuntu.info.in:1269
msgid "Ubuntu 4.10 Backports"
msgstr ""
@@ -410,7 +410,7 @@ msgid "Non-DFSG-compatible Software"
msgstr ""
#. TRANSLATORS: %s is a country
-#: ../aptsources/distro.py:206 ../aptsources/distro.py:434
+#: ../aptsources/distro.py:206 ../aptsources/distro.py:436
#, python-format
msgid "Server for %s"
msgstr ""
@@ -455,11 +455,11 @@ msgstr ""
msgid "Invalid unicode in description for '%s' (%s). Please report."
msgstr ""
-#: ../apt/package.py:1085 ../apt/package.py:1191
+#: ../apt/package.py:1088 ../apt/package.py:1194
msgid "The list of changes is not available"
msgstr ""
-#: ../apt/package.py:1197
+#: ../apt/package.py:1200
#, python-format
msgid ""
"The list of changes is not available yet.\n"
@@ -468,7 +468,7 @@ msgid ""
"until the changes become available or try again later."
msgstr ""
-#: ../apt/package.py:1204
+#: ../apt/package.py:1207
msgid ""
"Failed to download the list of changes. \n"
"Please check your Internet connection."
@@ -606,6 +606,6 @@ msgstr ""
msgid "Please insert a Disc in the drive and press enter"
msgstr ""
-#: ../apt/cache.py:158
+#: ../apt/cache.py:157
msgid "Building data structures"
msgstr ""
diff --git a/tests/data/misc/foo_Release b/tests/data/misc/foo_Release
new file mode 100644
index 00000000..0f42220c
--- /dev/null
+++ b/tests/data/misc/foo_Release
@@ -0,0 +1,492 @@
+Origin: Ubuntu
+Label: Ubuntu
+Suite: precise
+Version: 12.04
+Codename: precise
+Date: Wed, 25 Apr 2012 22:49:23 UTC
+Architectures: amd64 armel armhf i386 powerpc
+Components: main restricted universe multiverse
+Description: Ubuntu Precise 12.04
+MD5Sum:
+ 6a815674c5b3178152d449a9396cb2e5 1640344 main/binary-amd64/Packages.gz
+ 98140fa3444c9e945f6944acbb9ddcff 7818931 main/binary-amd64/Packages
+ 846e0e856bcbf9b64d9119c8727cda8c 97 main/binary-amd64/Release
+ cfd5f57de107941bbe661ffada4dce88 1272844 main/binary-amd64/Packages.bz2
+ 5b220aea8056a900c8eaf28e79cdd64a 97 main/binary-armel/Release
+ 92e3160bbb664f8b5d7d4f2d161dd81c 1619078 main/binary-armel/Packages.gz
+ 28fbf69ee965639c92c8a54256cd6ba1 1257389 main/binary-armel/Packages.bz2
+ 4e3ba67129f73f8afe28186b31eb3112 7743353 main/binary-armel/Packages
+ 81cfd32bf54d2b007542e14e09953bae 97 main/binary-armhf/Release
+ ed404b1123d1497cb09aceae8850fc06 7620333 main/binary-armhf/Packages
+ 64156d29df19fdaa36fa4eafd4c17dc1 1257653 main/binary-armhf/Packages.bz2
+ 3d3238bd89cb1e8e23a1a4a5bf574739 1617483 main/binary-armhf/Packages.gz
+ dc2fe62f05e29f36ffe4e58499796ae6 1273857 main/binary-i386/Packages.bz2
+ 7c678c50ce682e9f5cc5ba8f8eb2d6ad 1641082 main/binary-i386/Packages.gz
+ b6aa9a96c765bbd4202dae7dbaf18cc2 96 main/binary-i386/Release
+ eb3b4870b877863fecf1d3307c3beb54 7816415 main/binary-i386/Packages
+ 54658d89b612a38592431fe6b8a780a1 1627734 main/binary-powerpc/Packages.gz
+ 4185aca6984f00fd65aa0c0de12367d4 99 main/binary-powerpc/Release
+ fc9bf1959082733fc42c682285bf46e7 1263942 main/binary-powerpc/Packages.bz2
+ c32afd79c9163cffe013f98669deb727 7661552 main/binary-powerpc/Packages
+ ff5434612595a569236f7ba4990a3b63 62166 main/debian-installer/binary-amd64/Packages.gz
+ 7dd470290bacbacc7bec24830100aade 234592 main/debian-installer/binary-amd64/Packages
+ 013d9839e9c8f8c102daf6eb77841bf7 48784 main/debian-installer/binary-amd64/Packages.bz2
+ 08608ef832f2410970d07fdd802fc4e4 47964 main/debian-installer/binary-armel/Packages.bz2
+ 0a0a559023aac4096a38e2fb51870ddf 230310 main/debian-installer/binary-armel/Packages
+ f79f29b841a05b971ac318a9e0a396e0 61118 main/debian-installer/binary-armel/Packages.gz
+ 20a72276b6607fa58f52fcc5b7742ff4 62777 main/debian-installer/binary-armhf/Packages.gz
+ 8da4a15400cec4b06e2aa1bba6cfc2c3 49051 main/debian-installer/binary-armhf/Packages.bz2
+ 49f9f82a7c7e9e13c399d15df43148f1 238862 main/debian-installer/binary-armhf/Packages
+ 3dd181be504206f7abb41039dc508ed9 52279 main/debian-installer/binary-i386/Packages.bz2
+ 5c2c6ca586bb6ffb2de414e2cd063c70 259996 main/debian-installer/binary-i386/Packages
+ ca1b7db323ebef593617ef0a7c833dfb 67180 main/debian-installer/binary-i386/Packages.gz
+ 876f115ee26518319458fc26ec785485 246636 main/debian-installer/binary-powerpc/Packages
+ 49402b5b12b10804abfae14629d23f1c 50309 main/debian-installer/binary-powerpc/Packages.bz2
+ 29010a7ba3ac1e60a0efaef04f6f2e42 64468 main/debian-installer/binary-powerpc/Packages.gz
+ adf74189a01512a8f68d4bfc411dc692 3706 main/i18n/Index
+ 2f2ddab9be4ecc2c9e190bb639304943 4356187 main/source/Sources
+ 5c2893c352ebbf3ee380ebdab6b5e487 933770 main/source/Sources.bz2
+ 323e5ca1ba86c7a503c4c7b0772749b1 1174967 main/source/Sources.gz
+ 3c3104465b2c7e54f4b8f566ac825339 98 main/source/Release
+ f75f8a98e9e952194046da388a11c42a 119109 multiverse/binary-amd64/Packages.bz2
+ c2df9a9ff319486e3d6f46d9c35a8530 151924 multiverse/binary-amd64/Packages.gz
+ ece719c6a770134150f158cdb65ca6fc 581550 multiverse/binary-amd64/Packages
+ d3f34ec2fc86c95e4d3bc4606d751c66 103 multiverse/binary-amd64/Release
+ f296954282382f88b12dd8c64d813f5c 136295 multiverse/binary-armel/Packages.gz
+ d0da88f8a408fba12d44d5b6e107cfc0 519605 multiverse/binary-armel/Packages
+ 6d0c32b1cae4bdcfd6f18fd2d6fbf31f 103 multiverse/binary-armel/Release
+ 6744aaa8a3457d139348ea18379781ce 106873 multiverse/binary-armel/Packages.bz2
+ 1cc2613becf46fd578aa6d52ab12db94 104529 multiverse/binary-armhf/Packages.bz2
+ b0f8df0c9d700a1f7d295be4d4c03788 505901 multiverse/binary-armhf/Packages
+ 73cb5bc3d0c5021e5a4a413a73bcefce 103 multiverse/binary-armhf/Release
+ 00c07f1601226b8387fe4c9afaf2b044 133117 multiverse/binary-armhf/Packages.gz
+ bf0237c8c5d06a6df172db28710b8a36 121196 multiverse/binary-i386/Packages.bz2
+ cf110f58668bf5731e593ed78af54c27 591662 multiverse/binary-i386/Packages
+ 8a915986a504c0f3eb95b61ae909c9a4 102 multiverse/binary-i386/Release
+ c6d89a2752d1154a219c295e6d70b697 154762 multiverse/binary-i386/Packages.gz
+ ae93681c6b316c95207091b3c91042a7 105 multiverse/binary-powerpc/Release
+ ec463c2070c515de099f8baa3a4b5993 107209 multiverse/binary-powerpc/Packages.bz2
+ 675204a2b4aabeb9e99e406070b2af9b 520882 multiverse/binary-powerpc/Packages
+ c806ea7584c782d57363df12ddb28839 136930 multiverse/binary-powerpc/Packages.gz
+ d41d8cd98f00b204e9800998ecf8427e 0 multiverse/debian-installer/binary-amd64/Packages
+ 4a4dd3598707603b3f76a2378a4504aa 20 multiverse/debian-installer/binary-amd64/Packages.gz
+ 4059d198768f9f8dc9372dc1c54bc3c3 14 multiverse/debian-installer/binary-amd64/Packages.bz2
+ 4059d198768f9f8dc9372dc1c54bc3c3 14 multiverse/debian-installer/binary-armel/Packages.bz2
+ d41d8cd98f00b204e9800998ecf8427e 0 multiverse/debian-installer/binary-armel/Packages
+ 4a4dd3598707603b3f76a2378a4504aa 20 multiverse/debian-installer/binary-armel/Packages.gz
+ 4a4dd3598707603b3f76a2378a4504aa 20 multiverse/debian-installer/binary-armhf/Packages.gz
+ d41d8cd98f00b204e9800998ecf8427e 0 multiverse/debian-installer/binary-armhf/Packages
+ 4059d198768f9f8dc9372dc1c54bc3c3 14 multiverse/debian-installer/binary-armhf/Packages.bz2
+ 4059d198768f9f8dc9372dc1c54bc3c3 14 multiverse/debian-installer/binary-i386/Packages.bz2
+ 4a4dd3598707603b3f76a2378a4504aa 20 multiverse/debian-installer/binary-i386/Packages.gz
+ d41d8cd98f00b204e9800998ecf8427e 0 multiverse/debian-installer/binary-i386/Packages
+ 4a4dd3598707603b3f76a2378a4504aa 20 multiverse/debian-installer/binary-powerpc/Packages.gz
+ d41d8cd98f00b204e9800998ecf8427e 0 multiverse/debian-installer/binary-powerpc/Packages
+ 4059d198768f9f8dc9372dc1c54bc3c3 14 multiverse/debian-installer/binary-powerpc/Packages.bz2
+ a2bcfa86da39328db94629011506a877 2676 multiverse/i18n/Index
+ c2ffda2a848000b71573dbc3dc7d4402 154990 multiverse/source/Sources.bz2
+ f1d64bb88933686a71108de73b1f2262 628753 multiverse/source/Sources
+ 3d35747578528fa13640b98184120e51 188325 multiverse/source/Sources.gz
+ c9828946b46ac900fec682369c52bfa7 104 multiverse/source/Release
+ 5644835af0d1ed82cc7c14e34c2a543f 9098 restricted/binary-amd64/Packages.gz
+ d3058923c862e74c2c08b9a4ad7ec51e 134705 restricted/binary-amd64/Packages
+ 97ecff09a695f1460177843ff5d2b3e6 103 restricted/binary-amd64/Release
+ f8ed966e5400930411a32a7183357810 8452 restricted/binary-amd64/Packages.bz2
+ 60e74c701a6e40b7f869dd83b335ec5c 103 restricted/binary-armel/Release
+ 4a4dd3598707603b3f76a2378a4504aa 20 restricted/binary-armel/Packages.gz
+ 4059d198768f9f8dc9372dc1c54bc3c3 14 restricted/binary-armel/Packages.bz2
+ d41d8cd98f00b204e9800998ecf8427e 0 restricted/binary-armel/Packages
+ 55c08a48fc4b3370acc95a391bde1189 103 restricted/binary-armhf/Release
+ ce2da4621bbbaf55d858ae4243e17715 1103 restricted/binary-armhf/Packages.bz2
+ b26814493282faf0c5b269c44b799653 2477 restricted/binary-armhf/Packages
+ 784050b4fd16ea71e10cf130e47132d9 941 restricted/binary-armhf/Packages.gz
+ c4280a67444afbb8e2564d6f2249d397 9108 restricted/binary-i386/Packages.gz
+ 6dfd90555b37a912f82894b4ec3b63a0 8431 restricted/binary-i386/Packages.bz2
+ 48d3e36bf54be9b3fc7576cfcd0aac79 134582 restricted/binary-i386/Packages
+ e49b38cbf4dc409e8c25f6ab4b32fbe4 102 restricted/binary-i386/Release
+ 4a4dd3598707603b3f76a2378a4504aa 20 restricted/binary-powerpc/Packages.gz
+ 4059d198768f9f8dc9372dc1c54bc3c3 14 restricted/binary-powerpc/Packages.bz2
+ d41d8cd98f00b204e9800998ecf8427e 0 restricted/binary-powerpc/Packages
+ edb68a453747a9faa9e98389787fb79d 105 restricted/binary-powerpc/Release
+ d41d8cd98f00b204e9800998ecf8427e 0 restricted/debian-installer/binary-amd64/Packages
+ 4059d198768f9f8dc9372dc1c54bc3c3 14 restricted/debian-installer/binary-amd64/Packages.bz2
+ 4a4dd3598707603b3f76a2378a4504aa 20 restricted/debian-installer/binary-amd64/Packages.gz
+ 4a4dd3598707603b3f76a2378a4504aa 20 restricted/debian-installer/binary-armel/Packages.gz
+ 4059d198768f9f8dc9372dc1c54bc3c3 14 restricted/debian-installer/binary-armel/Packages.bz2
+ d41d8cd98f00b204e9800998ecf8427e 0 restricted/debian-installer/binary-armel/Packages
+ 4059d198768f9f8dc9372dc1c54bc3c3 14 restricted/debian-installer/binary-armhf/Packages.bz2
+ 4a4dd3598707603b3f76a2378a4504aa 20 restricted/debian-installer/binary-armhf/Packages.gz
+ d41d8cd98f00b204e9800998ecf8427e 0 restricted/debian-installer/binary-armhf/Packages
+ 4a4dd3598707603b3f76a2378a4504aa 20 restricted/debian-installer/binary-i386/Packages.gz
+ 4059d198768f9f8dc9372dc1c54bc3c3 14 restricted/debian-installer/binary-i386/Packages.bz2
+ d41d8cd98f00b204e9800998ecf8427e 0 restricted/debian-installer/binary-i386/Packages
+ 4a4dd3598707603b3f76a2378a4504aa 20 restricted/debian-installer/binary-powerpc/Packages.gz
+ 4059d198768f9f8dc9372dc1c54bc3c3 14 restricted/debian-installer/binary-powerpc/Packages.bz2
+ d41d8cd98f00b204e9800998ecf8427e 0 restricted/debian-installer/binary-powerpc/Packages
+ 39ef6c1d54f83252b07406f9cc3e9204 2596 restricted/i18n/Index
+ a76089a7a653d4f2196c38093058d1aa 19001 restricted/source/Sources
+ 3990b36e6ef2846251b58a58cde3768d 5470 restricted/source/Sources.bz2
+ f0a32107aaf12daf3e64b4dc3ee11321 5306 restricted/source/Sources.gz
+ 7871a3f6f83e033ab93c06bf886e305d 104 restricted/source/Release
+ 3464b1b15950e714151f8bb43982951e 25546870 universe/binary-amd64/Packages
+ 9340d5c4051da92820bb5bd5ba05f7a7 4785960 universe/binary-amd64/Packages.bz2
+ 1f6974aea9904921afdb4d1c5d0e8578 6166988 universe/binary-amd64/Packages.gz
+ 75ea366982b4862a41d9640687778dd2 101 universe/binary-amd64/Release
+ 5492f7f7183461d52f8d58871026c3e8 101 universe/binary-armel/Release
+ 420abe7ca02b5cb2abcd1b273efcfea9 4667308 universe/binary-armel/Packages.bz2
+ 4da3448f54e710222b26646b0bee14e8 6009219 universe/binary-armel/Packages.gz
+ e99405db74ba425a3f898fdda0a42113 24901082 universe/binary-armel/Packages
+ d0545845bbcff572a5c852b80582b269 5948128 universe/binary-armhf/Packages.gz
+ 8f0d262f1eb03fc3523cd80b3112a7e0 101 universe/binary-armhf/Release
+ a10169d0cc23f526bcee5769d27778b0 4618508 universe/binary-armhf/Packages.bz2
+ 952259d2cdb2c85df177702ac92075a0 24642528 universe/binary-armhf/Packages
+ df43c3b4ec37e79a00023475a09e2bfa 6179579 universe/binary-i386/Packages.gz
+ cc44a3e2ad759febb38ef2bec15ab29e 25568759 universe/binary-i386/Packages
+ 826b1d8609f0944a6d2ae95617e4d05a 100 universe/binary-i386/Release
+ 50690005918dd03ad9b71ffffa678d6f 4795820 universe/binary-i386/Packages.bz2
+ 8a1f21204f4178574251a2238c00f317 25188905 universe/binary-powerpc/Packages
+ 7409876b9e1238d5a147720b41233a26 6080488 universe/binary-powerpc/Packages.gz
+ 9bcc15c59aa3fbbd15f0d187fe90b353 4716652 universe/binary-powerpc/Packages.bz2
+ c3bdb05d2be1efa2dca9d2bac4e85b13 103 universe/binary-powerpc/Release
+ f8259410f0e1ad66324dbce895fdde2d 15255 universe/debian-installer/binary-amd64/Packages.bz2
+ ce60affbf23a069735c29951bfb0b818 17243 universe/debian-installer/binary-amd64/Packages.gz
+ 13ce59ecd4540ddef3670dbbed73cdbc 61801 universe/debian-installer/binary-amd64/Packages
+ 988da583db40ce21d400926641fe6ed8 113584 universe/debian-installer/binary-armel/Packages
+ 75381e3ed15a3a2fa1480fdea72cfd24 23193 universe/debian-installer/binary-armel/Packages.bz2
+ 4a8e6a98277f254660e8690fd050b232 27397 universe/debian-installer/binary-armel/Packages.gz
+ 02e7128ef42cd61e66c768520961fb11 20065 universe/debian-installer/binary-armhf/Packages.gz
+ 851afb686177a6819b291a714fa15813 17619 universe/debian-installer/binary-armhf/Packages.bz2
+ ce3b6645e37226c4047546a40675ecdd 76034 universe/debian-installer/binary-armhf/Packages
+ 229235ad9979a343e3bea9aedb5af8da 17260 universe/debian-installer/binary-i386/Packages.gz
+ 8065c9994844e578af00ef8794709b18 15272 universe/debian-installer/binary-i386/Packages.bz2
+ f28d6328611ab1e382fb0d0e798aca97 61718 universe/debian-installer/binary-i386/Packages
+ 60f54adbd38213dbbfe5d638f98a17e9 61121 universe/debian-installer/binary-powerpc/Packages
+ 1d48a07b3f4214200ff3eb1c5894e4a1 15024 universe/debian-installer/binary-powerpc/Packages.bz2
+ 51eb13c4b9baf089e4e8b0e85556b90e 16860 universe/debian-installer/binary-powerpc/Packages.gz
+ 155e0b646671f37a7fe235c4579e59f2 2922 universe/i18n/Index
+ 2ef7ccbe106edb394dc69d8511775122 21256524 universe/source/Sources
+ e52b7cb491cc6a950cd11fa6263d7330 5019105 universe/source/Sources.bz2
+ c722166709cfe9c398643b9c1a443610 102 universe/source/Release
+ 5ddd8bd0dda063b203d1a1da150983a0 6238766 universe/source/Sources.gz
+SHA1:
+ 0b326daa3b2ac8748ca10942aaec15ebdcc78b36 1640344 main/binary-amd64/Packages.gz
+ 8a6068a75feb86e12b088dad2478600f6670f2d7 7818931 main/binary-amd64/Packages
+ 19655f20d48d9819ad95f2c9ecc59e5b1d94c3d0 97 main/binary-amd64/Release
+ f9761ecf8536859ef38b670a7f17d83febec4a37 1272844 main/binary-amd64/Packages.bz2
+ a3a5faadbdf0a49d1587f07181b9eca870cb24ce 97 main/binary-armel/Release
+ 3c5d8f3a401427110adfd7f7d65513bfa47b933a 1619078 main/binary-armel/Packages.gz
+ 4d54e387978fdf829b4ff7336ed4d02e61c54d6a 1257389 main/binary-armel/Packages.bz2
+ 969dfd243cc3f514eea9914de571db28621cd9bd 7743353 main/binary-armel/Packages
+ f8f33265eab2ff9fd8a6353e014e36a9d318a54d 97 main/binary-armhf/Release
+ 1d210f8ad3547b771bc8c8d2a9eb5ee99d437d81 7620333 main/binary-armhf/Packages
+ 5057a8b2d11d2325bb2546ad6613517b208fff18 1257653 main/binary-armhf/Packages.bz2
+ 25fc010c2789028727308fbf6132a8da387423b8 1617483 main/binary-armhf/Packages.gz
+ 79369a31bc481f7f9f71f666906c3bdb356c44d8 1273857 main/binary-i386/Packages.bz2
+ aaadaa6eaf0b7e73b0d371cdebae573f28833a43 1641082 main/binary-i386/Packages.gz
+ 6f8e5e9dd04a2379a7c6d8dc23b4ff8df5584741 96 main/binary-i386/Release
+ 8509eead0c5e9410e23d4226ee5d190220db1275 7816415 main/binary-i386/Packages
+ 7da3fd8ad7102912a4cc9882c66fbb1b65edd4c0 1627734 main/binary-powerpc/Packages.gz
+ 8a0c3b7757b738a89644e8c5a3b9afed806d2f83 99 main/binary-powerpc/Release
+ 4063338a28f6504f7bc2f9c00fc34ac26fc5a1fa 1263942 main/binary-powerpc/Packages.bz2
+ 81844e44aaf0ed255ca200e7316bc9279ef238b6 7661552 main/binary-powerpc/Packages
+ d17439034551742aaa4762b4c174c1d72881f49f 62166 main/debian-installer/binary-amd64/Packages.gz
+ 05e024776b06a40253b9e252caad6dc4a13a90b9 234592 main/debian-installer/binary-amd64/Packages
+ fa692a307ecab69c106a5253107f980527cf58a9 48784 main/debian-installer/binary-amd64/Packages.bz2
+ fb8be98ef08265d2f101cf265b9bf37654d750ac 47964 main/debian-installer/binary-armel/Packages.bz2
+ 8953964fd2b54539e8276237cd5e4e2d4f9dc2ab 230310 main/debian-installer/binary-armel/Packages
+ cfdde60bbcbfb25c66fa474d28217e03a4c06789 61118 main/debian-installer/binary-armel/Packages.gz
+ 468306dc06acc828c50196427ba324c8ce225c79 62777 main/debian-installer/binary-armhf/Packages.gz
+ 17e7331a837675de31c365529ea9454cc48baf98 49051 main/debian-installer/binary-armhf/Packages.bz2
+ 3404140163a5acece9a054912abf72d11a5591d0 238862 main/debian-installer/binary-armhf/Packages
+ 2bb7e052999eadc333a9f6481bdc20acb238d4c1 52279 main/debian-installer/binary-i386/Packages.bz2
+ b2ad69cd6759724461c3566d91c1c5ec209eba07 259996 main/debian-installer/binary-i386/Packages
+ ebd0ab3923b3df4eca53eb863773bf0a9a4c3a67 67180 main/debian-installer/binary-i386/Packages.gz
+ eff551b62b72a1c0b183d4903a1452f2be08f3da 246636 main/debian-installer/binary-powerpc/Packages
+ 5c8aa09d48d7a792d555e7b16f4c89733e8441af 50309 main/debian-installer/binary-powerpc/Packages.bz2
+ 582a86208e89e77a7f284e10a50b9cceaf4358ee 64468 main/debian-installer/binary-powerpc/Packages.gz
+ f426621b1015147e766dc003d1d2f140dc9c062d 3706 main/i18n/Index
+ b22a946cdae39d29535a63b020c0f2ad74c3c992 4356187 main/source/Sources
+ 711225fd252e77d85c7bb992aeb5aa5e45414ae1 933770 main/source/Sources.bz2
+ a8807bf20dbaceb9d408f959840951131fd7d9f9 1174967 main/source/Sources.gz
+ cc2d2f6ce53597666df1a5ab216a08f08995f43f 98 main/source/Release
+ 06b070fc1ae771806c65e791742832320cc588e7 119109 multiverse/binary-amd64/Packages.bz2
+ ae591617f4b6f988d6534270d4c32e3f0876166b 151924 multiverse/binary-amd64/Packages.gz
+ a28786a87a6136fb74a005c480c78a152123b9c0 581550 multiverse/binary-amd64/Packages
+ 3860a3ce6d87bb8a43803a1048cc96d4de3ae8a7 103 multiverse/binary-amd64/Release
+ 4bae80c3f5270e45f825141bcadb94d7dd82cd0e 136295 multiverse/binary-armel/Packages.gz
+ 9534dfc2e4a40386f48eff79062ee1742212b7d3 519605 multiverse/binary-armel/Packages
+ 92d1536ae99c958afd74299ffe30bdc6800cd8d0 103 multiverse/binary-armel/Release
+ 8e3ec557dc8f750e82e8ed5cbb0c509182feba79 106873 multiverse/binary-armel/Packages.bz2
+ 009531e7cfb08701883a9e7a5f50235325e109cd 104529 multiverse/binary-armhf/Packages.bz2
+ 596a666233560852574d9bca0109f4933a12c949 505901 multiverse/binary-armhf/Packages
+ eca4ab620c41d76c00a9615d8530db5a9c918fe8 103 multiverse/binary-armhf/Release
+ 53916a24cff0523e218bfee2c5464866d2099042 133117 multiverse/binary-armhf/Packages.gz
+ a7518b6b3e693d840a49b125020785d2049e75b9 121196 multiverse/binary-i386/Packages.bz2
+ 84069f1643bd0092f4ec1b24eb921310532d72b2 591662 multiverse/binary-i386/Packages
+ 1d42b054d297b33cf69af011fa91f601c6b1a1b9 102 multiverse/binary-i386/Release
+ 8eae892b29234e9aac4c58a7098b097fe5ebde16 154762 multiverse/binary-i386/Packages.gz
+ 873bc8f864de428a4a47a3afaf53bc3a3a6e81c0 105 multiverse/binary-powerpc/Release
+ 665942774934afa56721d082a398735a067afe91 107209 multiverse/binary-powerpc/Packages.bz2
+ c965416be0f7bf88c78394becf4a72aee342b829 520882 multiverse/binary-powerpc/Packages
+ e304951d28df0b75065fd3ef8166c65415a3cad2 136930 multiverse/binary-powerpc/Packages.gz
+ da39a3ee5e6b4b0d3255bfef95601890afd80709 0 multiverse/debian-installer/binary-amd64/Packages
+ a0fddd5458378c1bf3c10dd2f5c060d1347741ed 20 multiverse/debian-installer/binary-amd64/Packages.gz
+ 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 multiverse/debian-installer/binary-amd64/Packages.bz2
+ 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 multiverse/debian-installer/binary-armel/Packages.bz2
+ da39a3ee5e6b4b0d3255bfef95601890afd80709 0 multiverse/debian-installer/binary-armel/Packages
+ a0fddd5458378c1bf3c10dd2f5c060d1347741ed 20 multiverse/debian-installer/binary-armel/Packages.gz
+ a0fddd5458378c1bf3c10dd2f5c060d1347741ed 20 multiverse/debian-installer/binary-armhf/Packages.gz
+ da39a3ee5e6b4b0d3255bfef95601890afd80709 0 multiverse/debian-installer/binary-armhf/Packages
+ 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 multiverse/debian-installer/binary-armhf/Packages.bz2
+ 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 multiverse/debian-installer/binary-i386/Packages.bz2
+ a0fddd5458378c1bf3c10dd2f5c060d1347741ed 20 multiverse/debian-installer/binary-i386/Packages.gz
+ da39a3ee5e6b4b0d3255bfef95601890afd80709 0 multiverse/debian-installer/binary-i386/Packages
+ a0fddd5458378c1bf3c10dd2f5c060d1347741ed 20 multiverse/debian-installer/binary-powerpc/Packages.gz
+ da39a3ee5e6b4b0d3255bfef95601890afd80709 0 multiverse/debian-installer/binary-powerpc/Packages
+ 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 multiverse/debian-installer/binary-powerpc/Packages.bz2
+ 09a8aff01c419e0eae19749acf3b223e1f95eccc 2676 multiverse/i18n/Index
+ a088c61bca210afebf4c53904049e2a969d8ece3 154990 multiverse/source/Sources.bz2
+ df4078a91645024ce93b1ee363003c83ffa2aa84 628753 multiverse/source/Sources
+ e6ec0430d594fa7fa2c98cb9a5fa8ac7ed0d506d 188325 multiverse/source/Sources.gz
+ 0750588f28b1c2cf6a005501c7d027cfa663cce1 104 multiverse/source/Release
+ 200fdeee1984ac78b6fdabfad34d2b485512ca2d 9098 restricted/binary-amd64/Packages.gz
+ 0e7ebd3d2690c7f89d19f8b337cf292cac913c18 134705 restricted/binary-amd64/Packages
+ c968d68baa554ffc7009688ee7d0d3e70663243c 103 restricted/binary-amd64/Release
+ 4185a5b6c2e702ea4754437ebfef23d828ec67a0 8452 restricted/binary-amd64/Packages.bz2
+ 27886dcc6c7d08369cc65d4c35f26b806f57be56 103 restricted/binary-armel/Release
+ a0fddd5458378c1bf3c10dd2f5c060d1347741ed 20 restricted/binary-armel/Packages.gz
+ 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 restricted/binary-armel/Packages.bz2
+ da39a3ee5e6b4b0d3255bfef95601890afd80709 0 restricted/binary-armel/Packages
+ d83803a5f6c2f5c7321d68d126733b6015c8e2a9 103 restricted/binary-armhf/Release
+ 6607111b78dcd3de05cb88692c1e2142abf9a4c1 1103 restricted/binary-armhf/Packages.bz2
+ b9f55d161632f89b5125a638ca6ad4fe5e9d11fe 2477 restricted/binary-armhf/Packages
+ d0c0a616aeac580d13256693cfbd507ae7c9b280 941 restricted/binary-armhf/Packages.gz
+ f3e483bbe77cbf0f64accbd0291df19b4e4d694b 9108 restricted/binary-i386/Packages.gz
+ 48d76b03a19e4d66d6f7a20339dab91acebaba99 8431 restricted/binary-i386/Packages.bz2
+ 3ca46ea8f32b7cbc49ce76dd1c1ab91589900fd7 134582 restricted/binary-i386/Packages
+ 2aad61f5084ecdd64ff520520d77e980e8b21f81 102 restricted/binary-i386/Release
+ a0fddd5458378c1bf3c10dd2f5c060d1347741ed 20 restricted/binary-powerpc/Packages.gz
+ 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 restricted/binary-powerpc/Packages.bz2
+ da39a3ee5e6b4b0d3255bfef95601890afd80709 0 restricted/binary-powerpc/Packages
+ 6b0a230bbf47463e3d7e88f535e210aaa96a1251 105 restricted/binary-powerpc/Release
+ da39a3ee5e6b4b0d3255bfef95601890afd80709 0 restricted/debian-installer/binary-amd64/Packages
+ 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 restricted/debian-installer/binary-amd64/Packages.bz2
+ a0fddd5458378c1bf3c10dd2f5c060d1347741ed 20 restricted/debian-installer/binary-amd64/Packages.gz
+ a0fddd5458378c1bf3c10dd2f5c060d1347741ed 20 restricted/debian-installer/binary-armel/Packages.gz
+ 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 restricted/debian-installer/binary-armel/Packages.bz2
+ da39a3ee5e6b4b0d3255bfef95601890afd80709 0 restricted/debian-installer/binary-armel/Packages
+ 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 restricted/debian-installer/binary-armhf/Packages.bz2
+ a0fddd5458378c1bf3c10dd2f5c060d1347741ed 20 restricted/debian-installer/binary-armhf/Packages.gz
+ da39a3ee5e6b4b0d3255bfef95601890afd80709 0 restricted/debian-installer/binary-armhf/Packages
+ a0fddd5458378c1bf3c10dd2f5c060d1347741ed 20 restricted/debian-installer/binary-i386/Packages.gz
+ 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 restricted/debian-installer/binary-i386/Packages.bz2
+ da39a3ee5e6b4b0d3255bfef95601890afd80709 0 restricted/debian-installer/binary-i386/Packages
+ a0fddd5458378c1bf3c10dd2f5c060d1347741ed 20 restricted/debian-installer/binary-powerpc/Packages.gz
+ 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2 14 restricted/debian-installer/binary-powerpc/Packages.bz2
+ da39a3ee5e6b4b0d3255bfef95601890afd80709 0 restricted/debian-installer/binary-powerpc/Packages
+ d59f5ac2532dcc7cb2f1e5b788c700bf8ab13b66 2596 restricted/i18n/Index
+ 8a80cdcf50cdcabcf4f47c772d7b252587cc9dc1 19001 restricted/source/Sources
+ ff7d82cf1d965953c745d224a1d4adc67b586528 5470 restricted/source/Sources.bz2
+ f64da9da2038712c5d73ce3337e91d92ee39cd30 5306 restricted/source/Sources.gz
+ 5c963f5f4d4720afa5fbb914375d0033bcd50078 104 restricted/source/Release
+ 10c6989f4a241aabe00146905e776391fc4d9ac0 25546870 universe/binary-amd64/Packages
+ f6900616102430e0eafa8ac89795efff7edc0710 4785960 universe/binary-amd64/Packages.bz2
+ 4f938bde9dff32a49bccd917613666017185882d 6166988 universe/binary-amd64/Packages.gz
+ 9d6cba1ed46b5eee1f6c065934e5f4854b3efee5 101 universe/binary-amd64/Release
+ 3573e863c714c0a083f9c962ea9136916f796e92 101 universe/binary-armel/Release
+ bb8f53ead3723737c13950e5343327884f737da9 4667308 universe/binary-armel/Packages.bz2
+ 43d9a98706b6e50c21092ce35313b5b034f30d01 6009219 universe/binary-armel/Packages.gz
+ 7f97dcbe710882d281efcfd2f8d70ca7d4e47265 24901082 universe/binary-armel/Packages
+ 8f6d42d7f8178a51a7065d7bf3234eecbca12810 5948128 universe/binary-armhf/Packages.gz
+ ea648f433d0edd47de820582fa6a1cd89ef66681 101 universe/binary-armhf/Release
+ e6ad9bdb18ce9e09e262b9e6f85b0b307a3456f1 4618508 universe/binary-armhf/Packages.bz2
+ ba55530da6c3a9604977ea4a37b4b4d8943ff994 24642528 universe/binary-armhf/Packages
+ 05de59263866a33c104787943347164e7b124aba 6179579 universe/binary-i386/Packages.gz
+ 286a3dd2fda0d98d2ff14eafee0bba5c912d6df2 25568759 universe/binary-i386/Packages
+ 839529b6f6e2a64465e4a825fa5ad46a36f1c73d 100 universe/binary-i386/Release
+ 70c27be4d8bc87dc26bbe6f21fbb7328dc1c4d01 4795820 universe/binary-i386/Packages.bz2
+ 06af7fdef1a54920a7667728a7b810553d00a9c8 25188905 universe/binary-powerpc/Packages
+ 4df1b07075b25ccae6e60d26d5a5761444ece689 6080488 universe/binary-powerpc/Packages.gz
+ 15d041ad1284527b07f75218cf6eb32322092f84 4716652 universe/binary-powerpc/Packages.bz2
+ 42d6a46ed2e525b219f8f6dc076dadbd06fc7f1b 103 universe/binary-powerpc/Release
+ 92c3bef6ad40051021a4e9dadb16e5edc7410b57 15255 universe/debian-installer/binary-amd64/Packages.bz2
+ 31d8725b0d238c282d9b572bb56b7e45c0ff53f8 17243 universe/debian-installer/binary-amd64/Packages.gz
+ e334a7c80e14dae3055950d9e45213db65d4087b 61801 universe/debian-installer/binary-amd64/Packages
+ 1fd1ae2b87eb85525b173ea982d15f3c98e6e33d 113584 universe/debian-installer/binary-armel/Packages
+ c56579feb77b5aac2d261abbbb6c89a1458ca4d9 23193 universe/debian-installer/binary-armel/Packages.bz2
+ e4b08e57397f3ab0599e0bf6a2fbcba3aed438b5 27397 universe/debian-installer/binary-armel/Packages.gz
+ 5a9608213061eab983392258288e8aec36d006f0 20065 universe/debian-installer/binary-armhf/Packages.gz
+ dc558d56aef72991a3188909a14f752aabdee325 17619 universe/debian-installer/binary-armhf/Packages.bz2
+ c6afa0e14c706aceea60aad033b6a067320fc165 76034 universe/debian-installer/binary-armhf/Packages
+ f359cf916a19055133546a7b7f3e35c7c260488e 17260 universe/debian-installer/binary-i386/Packages.gz
+ 23920ee4974d88ba824b0e884f8df6e2711a20db 15272 universe/debian-installer/binary-i386/Packages.bz2
+ 21cfd020eefc848307fac14b8f0efe0d6cd9c6ea 61718 universe/debian-installer/binary-i386/Packages
+ f2ff72c8f1fe4ce40ccf44f8ccd6623cedf4e6f0 61121 universe/debian-installer/binary-powerpc/Packages
+ bd9c731941b261b22c022d97ca139bfeb1ad70ba 15024 universe/debian-installer/binary-powerpc/Packages.bz2
+ e173071bda799068783c9192bff6536db9790a27 16860 universe/debian-installer/binary-powerpc/Packages.gz
+ 59a86abaed7cab292600b6766b18752b7e7c3d49 2922 universe/i18n/Index
+ 4b0ed5f327b0fa9b3f9d9410933a3d2afe467a7e 21256524 universe/source/Sources
+ d0525203f9ad5ec9183996e6765d0ef9a024691f 5019105 universe/source/Sources.bz2
+ 00847d46051ba44d436000b0394b218503de125b 102 universe/source/Release
+ d9706a8ab2ffeadb51b50d042712536a95dc4343 6238766 universe/source/Sources.gz
+SHA256:
+ 0d61aacd269015c0abfe01fe7f90a4f534c368e9c513f7e90d3111af82656b3d 1640344 main/binary-amd64/Packages.gz
+ a1bc8d839ca9966a0b924e4a4c60f1c23b4d431deb81e1bc529edf95f30fc29d 7818931 main/binary-amd64/Packages
+ a55d3b2e6e2a175529d73e6ca92989018cf57745e705f7ff675b05f80e5141f7 97 main/binary-amd64/Release
+ cc0d3a19c51188b4b4acb80e3013264462c6e0f60759bfd46206c60681bd4ba9 1272844 main/binary-amd64/Packages.bz2
+ a841750f49bd11f99b9dae6941d2fa6ec1fd87906139d0ceeacf0d4df57a87cf 97 main/binary-armel/Release
+ e80eaf12c1aa520b353de8ad97e79364779e82ef011cb93db372edc900eb7be9 1619078 main/binary-armel/Packages.gz
+ 0ab0929c3c44837886e532f8ec4bee77f3664bdcc2cc3192a02b991c52b156ce 1257389 main/binary-armel/Packages.bz2
+ ea400cf67f84c12265e4bf419de442a38880fab37d76999985972fc6df3e13b3 7743353 main/binary-armel/Packages
+ f3c40f057bb085f28ef2ed950f62366483d2a418571435c355dc27c0912dccff 97 main/binary-armhf/Release
+ cde037224f43e4619213c5195f2ea5c2f91d078f449579652dbd4128793d5062 7620333 main/binary-armhf/Packages
+ 7c6ea67e609b96dec6f2185df4cd81160e37ba467f9132a9bfb101da3f9a0468 1257653 main/binary-armhf/Packages.bz2
+ 2b83bf5501ecae3347e5c96658edae7d48eef42108b4786471a3de241e75e7d3 1617483 main/binary-armhf/Packages.gz
+ 4d74c53917b84d37cb3277e2b755672a8733e2cfaf949f6e644e6e88094cdaa2 1273857 main/binary-i386/Packages.bz2
+ 07f33bddfefdb4a0c44ddee59fd3eca497df2ad0456e0eeade136e4f0302ee3c 1641082 main/binary-i386/Packages.gz
+ 5182e22f799fe66c8db6dfb073fb040e9e583d88bb9d4d77e058b2afb87e9479 96 main/binary-i386/Release
+ 4cecfc8c0d2113d51b03afa8fdcdcc963d9ad74474696472ec1cdbdb38b856e2 7816415 main/binary-i386/Packages
+ 2795904625f466b4a2fb96d41c00b000ab7f2bdc7f288b0c9ef1283d7e110f87 1627734 main/binary-powerpc/Packages.gz
+ a9247e6d8b0c5977bc1e72be09b1f42a83b5f5a6a70b17f4fef35a0657e3c206 99 main/binary-powerpc/Release
+ 6e745b7edcd67755fa09f54cc3afdd0ffbd0475302a74293472e97e46ba75ddc 1263942 main/binary-powerpc/Packages.bz2
+ 8b953dbae4a14e7ab47151044a47c7b0f0e1dd2a6480170b8172e00d9dad7a2a 7661552 main/binary-powerpc/Packages
+ a5bdf4116ecfeda052d5b3751138c6153e814ac58b2f551503f3ed90e6c3510c 62166 main/debian-installer/binary-amd64/Packages.gz
+ 6a9a4837a4a7df3e7e0566b354b7f1dd2dcf46254335ae3d06a72538f85e410a 234592 main/debian-installer/binary-amd64/Packages
+ 0da4f8190eebfef22103f1f6f7051adbe9489d454ab7224f09d05646407881e8 48784 main/debian-installer/binary-amd64/Packages.bz2
+ ea01244357deb22c2a4bd7eaa34a1635c0915b89ce174f312c0e0a4b081eaf30 47964 main/debian-installer/binary-armel/Packages.bz2
+ 4177b0519c75f7f950e5a0f0d72d40cc0c4ccf29ebe89fbb9bc1f11a80874526 230310 main/debian-installer/binary-armel/Packages
+ 2b6f81ef9fa687bfb2eb56bb3e90faef0c012351d096b141caa710fd50846043 61118 main/debian-installer/binary-armel/Packages.gz
+ 52c834247ff3a5475466e647802f6eff393f85589e5da5fd3e5b497669b8b49c 62777 main/debian-installer/binary-armhf/Packages.gz
+ 7090f1ad1307a012fbfff883885f16099ed66ebffdeece356f837e632b177a4f 49051 main/debian-installer/binary-armhf/Packages.bz2
+ 4bae13f507993e977c279937406fc03e37fede7805a92508f6d3cba76f1aaf95 238862 main/debian-installer/binary-armhf/Packages
+ d1d23926ff15cfaa6160c5fd0327d181721093fbd2f2e8125be5559a991a81a8 52279 main/debian-installer/binary-i386/Packages.bz2
+ 30e0ec7a2c3d47d5501de8414b436482ff523e9c4983b536b2c9911a30618b98 259996 main/debian-installer/binary-i386/Packages
+ 7a4dcb001ed4bb5fa2458af901de312e11a745bc86a0f877e47567d0f911bc0d 67180 main/debian-installer/binary-i386/Packages.gz
+ 30c2f590c2dedc9f78dfc7f0026b51bc9baa712ac8c9310404d9d6577af77d90 246636 main/debian-installer/binary-powerpc/Packages
+ 6c53fab780cf774c5cabb1788eea1e3446c528cde4352d106907f4ec22449370 50309 main/debian-installer/binary-powerpc/Packages.bz2
+ b003f3fbf2fa6dbf7d47cf3fbd029ecd86b316ec497a9ac4eea3614cf4ec76af 64468 main/debian-installer/binary-powerpc/Packages.gz
+ fefed230e286d832ab6eb0fb7b72442165b50df23a68402ae6e9d265a31920a2 3706 main/i18n/Index
+ bb618cebb361a2a7148be0bad9af012c8d9de23dbc32d6d9ba035fa6ee0078ab 4356187 main/source/Sources
+ 0aeef2c2258136f9f774c36a158cf759389acf6a35a3153a03d3fa41d4f346d5 933770 main/source/Sources.bz2
+ 4a058ba65244e8eaf17d159b72edebe4e621d54c274a82d4a973b358b4af9a28 1174967 main/source/Sources.gz
+ 864ba9a26e348c6297c08c047d8c228e5ed031ec3d46ef7aad93c3fa550395a8 98 main/source/Release
+ 85477d2b2e7ea2f46b6a059f7526cf52d75fea1a5120aa3b256c576e904d40ff 119109 multiverse/binary-amd64/Packages.bz2
+ 2967ae6c1cc065bec03225d808b4511b138cc13b8de801a0562fec6e30710f36 151924 multiverse/binary-amd64/Packages.gz
+ 18fcf61bb74ef2a01c3d4a8d4646a75836f43244168b43d6ae202f368167b224 581550 multiverse/binary-amd64/Packages
+ fbc4931ef84d50a39da65d110f787aee274df8819a758a3c0aa1ff13f0ba6ee0 103 multiverse/binary-amd64/Release
+ 49f48a34696d08a13a0fdc19a0f6896af2cb477e72860a8880954926c7d45e60 136295 multiverse/binary-armel/Packages.gz
+ f20d7f0bc32b5b2fbcb442f7c128aaad7e18aece3781d53f560932bb191d6830 519605 multiverse/binary-armel/Packages
+ f7ea72b2c07af81f2e342414025dce7a658a6a9915c4d8adc13b992cb3b9fd2f 103 multiverse/binary-armel/Release
+ dd3d4e8a6ec9055d5b553af49822de74648f071ceb0fd314d6cd1aaf7ad6882b 106873 multiverse/binary-armel/Packages.bz2
+ 567c1f9d30a4d6650552d66c5fb43d2d8910d3fed69793daed622d2c699f4bc8 104529 multiverse/binary-armhf/Packages.bz2
+ a47ef2c0a68adeb70a0bc6b22c94b08402396ff6f5c77664e06c2fb7ee0e7ab0 505901 multiverse/binary-armhf/Packages
+ 6b95e8edaa2bb799f6e15a4a6aaf223da0faea670cd03340395bdcea90205afc 103 multiverse/binary-armhf/Release
+ 14721b333f19a6344addb185f161d1cd14e04ac284c8fa9d726064ec228269a8 133117 multiverse/binary-armhf/Packages.gz
+ 454436f374186007075445c1f206ba5c926f30609baa732c495f1ba456d71e59 121196 multiverse/binary-i386/Packages.bz2
+ 9fabd7bfdbfd216968f7a17265e5609cdd72f1ea7c8f50941e294694e76b180d 591662 multiverse/binary-i386/Packages
+ 7141881b898ac6a78f1ca6f3e81481ee6657f6762fa22768816ab39f6b17e695 102 multiverse/binary-i386/Release
+ 3f4cae31df741f55d523ecea758d05a7e012a205bb03974ee20eb09e3f4fa63b 154762 multiverse/binary-i386/Packages.gz
+ 332dde644a8467496eb5f45ffd2d735ca61ea781da21cd205b3267cd83fa0563 105 multiverse/binary-powerpc/Release
+ 99ef0a611aa32ffa4f16a006d641fbd8dd9e3e73bde3c93b831cd6583746e64b 107209 multiverse/binary-powerpc/Packages.bz2
+ 60f2431dab7bd02fe2c2428bf400c3535be49641cc9d5645a8f1b4fd44f5086f 520882 multiverse/binary-powerpc/Packages
+ cacfd10b40992a617ce32c479f9505531c8cc57e4cf964687d663a5f41f8dcbd 136930 multiverse/binary-powerpc/Packages.gz
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 multiverse/debian-installer/binary-amd64/Packages
+ f61f27bd17de546264aa58f40f3aafaac7021e0ef69c17f6b1b4cd7664a037ec 20 multiverse/debian-installer/binary-amd64/Packages.gz
+ d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 multiverse/debian-installer/binary-amd64/Packages.bz2
+ d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 multiverse/debian-installer/binary-armel/Packages.bz2
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 multiverse/debian-installer/binary-armel/Packages
+ f61f27bd17de546264aa58f40f3aafaac7021e0ef69c17f6b1b4cd7664a037ec 20 multiverse/debian-installer/binary-armel/Packages.gz
+ f61f27bd17de546264aa58f40f3aafaac7021e0ef69c17f6b1b4cd7664a037ec 20 multiverse/debian-installer/binary-armhf/Packages.gz
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 multiverse/debian-installer/binary-armhf/Packages
+ d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 multiverse/debian-installer/binary-armhf/Packages.bz2
+ d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 multiverse/debian-installer/binary-i386/Packages.bz2
+ f61f27bd17de546264aa58f40f3aafaac7021e0ef69c17f6b1b4cd7664a037ec 20 multiverse/debian-installer/binary-i386/Packages.gz
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 multiverse/debian-installer/binary-i386/Packages
+ f61f27bd17de546264aa58f40f3aafaac7021e0ef69c17f6b1b4cd7664a037ec 20 multiverse/debian-installer/binary-powerpc/Packages.gz
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 multiverse/debian-installer/binary-powerpc/Packages
+ d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 multiverse/debian-installer/binary-powerpc/Packages.bz2
+ f0b16a5cfd2d633c9ddecfadfa6742544b18c23ed30023286e2b20ef29f33c73 2676 multiverse/i18n/Index
+ faa0360612fc00453dfdd55b6a1bb20e4f876e041ad6fca410d5da65608ab31e 154990 multiverse/source/Sources.bz2
+ 2f0deae62e2cf7e5257bbd858cb0bf2a94122c4eb82be13e13768d0b9ce84c9e 628753 multiverse/source/Sources
+ 28f6d95fcba03e442cf24dc547653d5ec60177a29d7cfea771efcc5501077747 188325 multiverse/source/Sources.gz
+ f35f721bf16691842cc916c3563fab535f6bb83329f40c33ac02f4ba637707d3 104 multiverse/source/Release
+ 3e872fa356cbce4dfd75a88caa4fc6b47616e1fc7d224f4fc2123650fd7f4be3 9098 restricted/binary-amd64/Packages.gz
+ 459a26c3ef3cb5db8c8355ea6abfa8cfe0a7a266a197929d86d37686daf8a337 134705 restricted/binary-amd64/Packages
+ ea47572182da041b46543e471cb7a6fcc4e001fbe19a27740085ebf5d77252a9 103 restricted/binary-amd64/Release
+ adb08d7f0fa444f2869e8d932db7adb1515839f11af6032284cf1e20060e2dd6 8452 restricted/binary-amd64/Packages.bz2
+ 65a5ac0820d61383f7dcf33699aa029b5965b7906bc8341f94f8f7f354cdcd83 103 restricted/binary-armel/Release
+ f61f27bd17de546264aa58f40f3aafaac7021e0ef69c17f6b1b4cd7664a037ec 20 restricted/binary-armel/Packages.gz
+ d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 restricted/binary-armel/Packages.bz2
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 restricted/binary-armel/Packages
+ ee447ce81793bd3bc8c127d4e065c6ec24e5901573dffb7cc5abedfbcb86592c 103 restricted/binary-armhf/Release
+ d88ed7df97cd60cdce35c3ca81de66e2bedf0f22e67ec8922dbd5eca545b5e50 1103 restricted/binary-armhf/Packages.bz2
+ 9ade66f4a49598fb371705a79244e5f3abb74c04467f9f9954641ae5acec6766 2477 restricted/binary-armhf/Packages
+ 03d8b64c445f327ce9e369bca815652844bd6aafb344d0287fb4e71f321d0414 941 restricted/binary-armhf/Packages.gz
+ 07e344ed07234876c3fddd9aa763e04bfc2e013fc18428738be71abfb9e1ca77 9108 restricted/binary-i386/Packages.gz
+ 8061335b923c49e72a2b60b437d5bbad1b98a45ac178a68fd8359cec9fad27ec 8431 restricted/binary-i386/Packages.bz2
+ 122336146860047af3d5817dbc423f01d57a90cbf41db1ee0ad9235c0559a43e 134582 restricted/binary-i386/Packages
+ 58634ed42b6fadb280d48f419b960e28151320a62b4486e520ca327719db554a 102 restricted/binary-i386/Release
+ f61f27bd17de546264aa58f40f3aafaac7021e0ef69c17f6b1b4cd7664a037ec 20 restricted/binary-powerpc/Packages.gz
+ d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 restricted/binary-powerpc/Packages.bz2
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 restricted/binary-powerpc/Packages
+ d9bce398e46f0eac57d1d33fd8a6caa0bd7ab6334508c0640956cb7adbe1eba1 105 restricted/binary-powerpc/Release
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 restricted/debian-installer/binary-amd64/Packages
+ d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 restricted/debian-installer/binary-amd64/Packages.bz2
+ f61f27bd17de546264aa58f40f3aafaac7021e0ef69c17f6b1b4cd7664a037ec 20 restricted/debian-installer/binary-amd64/Packages.gz
+ f61f27bd17de546264aa58f40f3aafaac7021e0ef69c17f6b1b4cd7664a037ec 20 restricted/debian-installer/binary-armel/Packages.gz
+ d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 restricted/debian-installer/binary-armel/Packages.bz2
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 restricted/debian-installer/binary-armel/Packages
+ d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 restricted/debian-installer/binary-armhf/Packages.bz2
+ f61f27bd17de546264aa58f40f3aafaac7021e0ef69c17f6b1b4cd7664a037ec 20 restricted/debian-installer/binary-armhf/Packages.gz
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 restricted/debian-installer/binary-armhf/Packages
+ f61f27bd17de546264aa58f40f3aafaac7021e0ef69c17f6b1b4cd7664a037ec 20 restricted/debian-installer/binary-i386/Packages.gz
+ d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 restricted/debian-installer/binary-i386/Packages.bz2
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 restricted/debian-installer/binary-i386/Packages
+ f61f27bd17de546264aa58f40f3aafaac7021e0ef69c17f6b1b4cd7664a037ec 20 restricted/debian-installer/binary-powerpc/Packages.gz
+ d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058 14 restricted/debian-installer/binary-powerpc/Packages.bz2
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 restricted/debian-installer/binary-powerpc/Packages
+ 17dde58abfdb4dfdad9c8a82db09c9dbc3d8a7cd84b51dd9167579d6899e9ff5 2596 restricted/i18n/Index
+ ee3655459e45778fdfa06fb649565e66b25d2dd0870c75890005fb3597bb71d7 19001 restricted/source/Sources
+ cff18d2ad74ead8712f1b77a23b32e84e54269b03ba2a409ae4227860d1181f5 5470 restricted/source/Sources.bz2
+ cf085bdcb323dd2c2a599ddb7a9b3ae7bd37121f42024d68b367a4f735df900f 5306 restricted/source/Sources.gz
+ 9137393fc24cf64808d55ca7665bc5a7bd46b48918e6720a95ba239a8fab092e 104 restricted/source/Release
+ 901469729d2354891be94c192dabd8c1d0bc31e1497ea8360b70d2e847c1f3c1 25546870 universe/binary-amd64/Packages
+ 799347395d4e011a215aa5ce0c9006449d8af884795ffbce7a35767a55f99074 4785960 universe/binary-amd64/Packages.bz2
+ 68b08847604c4efe7d6f56ba79f923ce0ab82127dfcc6e8cffaf12af25d7adba 6166988 universe/binary-amd64/Packages.gz
+ 52ffdd1777a886edc5e1e1ef430b03a72937920f9722fd453ee8243cb0aac860 101 universe/binary-amd64/Release
+ a78a1304e105b2fe4c950c77c1794f715c1256d14d8541cca8f5cd13db48119e 101 universe/binary-armel/Release
+ d6d4bfa5d0891086f5a4f2aabfaecd7a1e0c0d8b46aef33b3470e349e7a9210e 4667308 universe/binary-armel/Packages.bz2
+ 374d50d0335c655da46f9cd54cd00d9a20058d2fe7c56989aa121b49883cfb88 6009219 universe/binary-armel/Packages.gz
+ ab5073e90417b729d1fe3b68052e6a8e66e48986c35470944f6a58676e967450 24901082 universe/binary-armel/Packages
+ af74034d1a3e1f90745dc48b996a98c471d997b12a1d810eb8754088540591d7 5948128 universe/binary-armhf/Packages.gz
+ 6697d196b35850817476e884fdc013d9670b4bac73310c54a4d62cd810f02c70 101 universe/binary-armhf/Release
+ 1ca17d3aecec2325cba53e1c299aeb6a1fed01d7acbc40163595de9e651abdeb 4618508 universe/binary-armhf/Packages.bz2
+ 2b422ffa77d4374650d4cc543c5a1123b2535effb2c8cdaf25fd77d1dde632c4 24642528 universe/binary-armhf/Packages
+ cd6b5cb8165553482abee1bf85e5cd3288abadccb6acf34239ec45f79a090784 6179579 universe/binary-i386/Packages.gz
+ 8ef7db20ba08cf1b4d98a618189c615c69865f4da025ac654e3e6b8a4382a3ae 25568759 universe/binary-i386/Packages
+ 06af492500145bd64762d885417d167269db6ea03022c6968f1a5d0515ac55dd 100 universe/binary-i386/Release
+ 530a2efb8051a63ed17431ae0c7243df79ecb418acf1dadc2487cd6fd79fb420 4795820 universe/binary-i386/Packages.bz2
+ 1e8fa52a64292d2c73cee0645d0eed5583ea7cc1138af4744838c6833716d638 25188905 universe/binary-powerpc/Packages
+ 5d2b8e23e0a16f13e25595b63807fb64afd9074aadf7a37b8e238b2011e894b8 6080488 universe/binary-powerpc/Packages.gz
+ eb482b008c8c882b349230abaa812ed6e545a2ef9132bb0d3d3bffa74da0c6c7 4716652 universe/binary-powerpc/Packages.bz2
+ 98d44cc7544f79c18b8e8ea697d476e9b85d91088385b643c82d4064b21f4657 103 universe/binary-powerpc/Release
+ 3da2d1e57aaca628148e2688a951cbb784a9a54b7f6b1f84d530add1b66fcceb 15255 universe/debian-installer/binary-amd64/Packages.bz2
+ 43f891ac590f44fde5854de9ba15222c088b70562f5dc4ff26064909e60cf62e 17243 universe/debian-installer/binary-amd64/Packages.gz
+ 3084a8a441e961eeb3865ff411557166ec105be86a55df268cdb6725f49e1f67 61801 universe/debian-installer/binary-amd64/Packages
+ a1ff01f18766744f36d0774a68d8a89355246c585c4b28ee18e5e139fafae530 113584 universe/debian-installer/binary-armel/Packages
+ e0713f86f5f5121deb60ce61d774951468625184a7ae9576f81d70202ef585b7 23193 universe/debian-installer/binary-armel/Packages.bz2
+ 5a8411e2b0648e553fa25ac82ea83fb17dd2d2a77bd10cec14cab12f5582d4c4 27397 universe/debian-installer/binary-armel/Packages.gz
+ b79c86d926c3129f5c27e50185157a78d85abde8ada90a9910338e660c4318be 20065 universe/debian-installer/binary-armhf/Packages.gz
+ b2113b25380423be8f6202a4860479e44a00072e46fa035f0da2f3a5a280de20 17619 universe/debian-installer/binary-armhf/Packages.bz2
+ 3f023d2cc55d6ebab883f6f2d7305a4e3564f918f63ca4f745d6fd1318e67ab7 76034 universe/debian-installer/binary-armhf/Packages
+ 5ea61a62a3e8fc755c22e23c9d87b20924707c0986a490458472a3d7e9cbe117 17260 universe/debian-installer/binary-i386/Packages.gz
+ 7a90b014c655311e92de1ea4cf24e100665c564a2ed699df63d17c82ad9e1349 15272 universe/debian-installer/binary-i386/Packages.bz2
+ 7e39417ce073e3a35d048847a29a0414af69c4e923c018dc22438319c79adea5 61718 universe/debian-installer/binary-i386/Packages
+ cdf17a791544d0c522fa853a23b317deffa76ac643e88bec0b84b0aa5afe957b 61121 universe/debian-installer/binary-powerpc/Packages
+ b470146da791dc4f4593d2bb00ea4e305d6f55f346a5f3ac6755d890a3318080 15024 universe/debian-installer/binary-powerpc/Packages.bz2
+ 810d1590d1cd7298e1fd5465f85ba49b6ae79780b42d8e8b68aebb42283785ea 16860 universe/debian-installer/binary-powerpc/Packages.gz
+ 563a55a892e1ec8bf565e3294c033b4e8dbbbe4651e73733eac7338db77282f7 2922 universe/i18n/Index
+ 7bc01d4f10bbcf882ce6931aa9371b2de6b35277efc2ae52e233280dcd12a18d 21256524 universe/source/Sources
+ 95135631873f4dce05ba657478475033d02462bbb8f7263832585d1decb5c9b8 5019105 universe/source/Sources.bz2
+ 0fd2ae580be352cb8ab4bb87e5504b78f78bcb7249b644719b3c2db3b5d3ca8c 102 universe/source/Release
+ d1dd96015e24dd369ea22413a2b876686a60c5d9d91958a5df3745a66289910f 6238766 universe/source/Sources.gz
diff --git a/tests/fakeroot-apt-key b/tests/fakeroot-apt-key
new file mode 100755
index 00000000..7be99711
--- /dev/null
+++ b/tests/fakeroot-apt-key
@@ -0,0 +1,2 @@
+#!/bin/sh
+fakeroot /usr/bin/apt-key $*
diff --git a/tests/test_auth.py b/tests/test_auth.py
new file mode 100644
index 00000000..f975c670
--- /dev/null
+++ b/tests/test_auth.py
@@ -0,0 +1,223 @@
+#!/usr/bin/env python
+
+import os
+import shutil
+import sys
+import tempfile
+import time
+import unittest
+
+if sys.version_info.major > 2:
+ from http.server import HTTPServer
+ from http.server import SimpleHTTPRequestHandler as HTTPRequestHandler
+else:
+ from BaseHTTPServer import HTTPServer
+ from SimpleHTTPServer import SimpleHTTPRequestHandler as HTTPRequestHandler
+
+import apt_pkg
+import apt.auth
+
+WHEEZY_KEY = """-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.12 (GNU/Linux)
+
+mQINBE+a7rUBEADQiEKtLOgqiq8YY/p7IFODMqGPR+o1vtXaksie8iTOh3Vxab38
+cA3kK1iB5XYElbZ5b/x3vWiufHK2semOpn5MG2GRJUwmKxZbt3HLZiHtAadkby2l
+rnMxeIzfxcTxloxsQ02TMRalq89Xvy6P7lgedcW5ujcMR6JbE6uL1c/jNlkIPNuN
+9paZsNJWXnZ03R+NrAJLjOPUZKZRPYgIwEci2sVNA/autsJL+HuW6X8PfldvMe5h
+SdWelOoXMsZMX04JP8Efq8a09yIgKBfuXjoHJbtK0rTr9tjFKt/VM6MejLdJf4Dl
+r6Zhx2ygmjcvj+FlWFoxDlPHdqfZ6mGsKR4eWDRu3bZtalDNvhZKvecwf0KaAWVU
+M+GxkR+Ol3TsQ0tLbjbwZhWMioipR8Lsp6kZ1tLUjM0aOR3Mw/csyFJYKFiCo3GR
+QSGY0++cDrfhQRwOJ9s2eeGGS1/I95vJZA5zZnx1ksnO0W2fHVBavICR821EBAEZ
+slLzr+IOrbB16YE/aN2iA9nTcQVk69XeEh5gaeiCZ7JhA2nkAg8a/H1r4BVBC/cL
+egzhUvP90kk94MmL1D2gY6UlyK4yTnHgVfjsQw6u2sPDlramyXBZehnKabIndM1P
+368IbW8GTNo0gNwg/oC/vENwYnAuX+S96/O/1XfQoBNr+epTVdS4VQHICQARAQAB
+tEhEZWJpYW4gQXJjaGl2ZSBBdXRvbWF0aWMgU2lnbmluZyBLZXkgKDcuMC93aGVl
+enkpIDxmdHBtYXN0ZXJAZGViaWFuLm9yZz6JAj4EEwEIACgFAk+a7rUCGwMFCQ8J
+nAAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEItIrWJGklVTdQEQAMLCmMQr
+7SxFULYgprbr5eO6uAs/8nkIBhJBzUnenOUnwsOR3Io9/sHc8Cq/xv1DTsY5G5Qj
+ojywslbeF44TxBZ0j3UwPU437bfNs7yTRkgPVhHK/rZ9ApbnZdCmud+BUkDOChLV
+8fzCZ17Pa5eMr5E4WI0bLM5AA3vVFLBgHFqJUgE7mSn95vA1S881/xOQ4lT1WHfa
+O9K96X6ekn2zpPu/G8aq+oDyVGfo1AKQCPBJ3OCX0WB3GNWbcCb850gy9vtKlWDu
+yAh1a9Cl5OPHlYqz8q+Hqj4ZeRgJiDgCgm8YAlKEooEG/vJzswaY+C3nz6uNfBeq
+60QhPfgaO8qGlriChGAFqzD68ZQ53NApJw/OuwV2p5CgnkyGAVGZ1WuYcXz/wHyU
+awnXq3Bf69RJssbab6SqptJyYuiY8T/2vWRgQxej18KAZ0v1Vr/MC1azp6TWgfSl
+s2fvGvPf9vEbKyBR3YFa5msRKGpRauv4wWmcLfZ+jMLbSAWBfILPK+fGLtRGz4AX
+hRht9rX7c4neQvlBNDDgR3tuaE3s0B1B6gTcvq7EhuuP4pAzkBLhpuzolvw+ZFOV
+5mElfScYi8QbQgT9t2XjUDU1oz1ewviNhynpsxh51t5qxP5ETDGKvEx7RMv4S08p
+5VGG4Y+kjcsQWfAdVAGuLqWOI0sGzUzKYZppiEYEExECAAYFAk+a8vAACgkQcV7W
+oH57isk7FACcCIOIMr39LUSv16Ec9V102uheqlsAnRqdAADYF7iJIrfqyb72s/54
+3JFaiQJGBBMBCAAwBQJPmvMiBxpzdHJpbmchGmh0dHA6Ly9ncGcuZ2FubmVmZi5k
+ZS9wb2xpY3kudHh0AAoJENsWz1uxJSXEhEYP/in+rib86H2vPG+ALZ35o4eh1+9P
+KLtUwgHB3Wr/rmPuPY5uB02H/p3PxgJHXUXUPAleN6uajZvReO1wWLTYspPAK8ZF
+6p52vuyHgOZl+VmGkLgYKOG/cckqQqTTaHwQj0O8pllJjOJYVdt5iWAHkf1N1UAA
+nXC2GdxV+ZVGvZjjCDL8WFWCfoY4HznslcEHQKxg7vzZvVMTjY6L+8NmWkVoD4JL
+kYtQOrId1wWYInJiQRtilyn7n9mJ+rTBSETB9Evs3x+zmNa3ntY1/U8XINgxVA5U
+GYyUfUug2DjZ90LfXyZUOXVLE5yM1x7oOpyg/1mMtl5xkmuqJHOTeVEjQBYfMRHi
+sS4ainR5AoD1Z5KV4S0opt198LDMXGLNjUdJEG24QEK5tfgTFRgFRJYiufxDelI3
+Aq5uGVRrBJygjwaQiJLUVlMqBGHJi++zeWr767pHVWB1XqdmPRvvOqH2v/ez4bSW
+zIkUDTr947qmjyAqNNmCv/jgV5viqbj5LNslBkFg8OS+6O7na2gU5ldXfBoC0nso
+3pdsCuOYUIrHyP/GjT1gvG0m+jZ/15bvoWvUv4Buh+3gYVyLwrgbq7UISRfwQEah
+yzIrO5MvgS0MTIlOgO7Lxog2XMEkQ1ZCbLu5Rvm/8LC0UlSxW9aOIKBSC3hi7U8E
+BuA24Mv5Iz7QvO+giQEcBBABAgAGBQJPmwDBAAoJEF7K+wCjrkSkkq8H/3M/M+Xb
+vI0cY3MOkFMtyG7xmxPcny1/arnQDvjvpv1BhRBnVTstMxHWzAFQf3M8KttARWo4
+C6U5Cbc0Jx6avqXZwop91a8tQORErC9Kcrr27FJfNAOP5AVzXAofpZyXvouFYBig
+ikHdRJlFrn9rydvK9Z5vg63ZzsRB7hTtHi/j1o7d0IpVmR2iTnbWGiUxpnRdLhEF
+AnUU+TDFVg6EoJ6aeKsLa43UPHizq12WZPd72cJNSLMk/u+UZvg4sa7pOrkJNYN1
+jL7BSphwKCuA8vBc2lLO14uYDO8LHjd4opatMWCEEvnJQS98JytIkYcwJhJ/IgCz
+tqAUo44SUcOodNGJAhwEEAECAAYFAk+bA/IACgkQvDciUsoc+WRWgA/9FYi1aqas
+fJyRV4pfe90KhJ4uOO17ivnjULIDU4QFSdJpkCPznxadlDeyRbX/FhVu3RMzldIu
+ZVly+VPqWwubudj9SVnqJxGkua2kEz8u3X96zif+nSB4wQuWLi4GOG9AYTnuNnZI
+hO4RctYpEi9duBsPeewNi2zjUe8akhJacMhJflbW/XGsRf4goeL3WrB+k5DiDphm
+nw2dge96uhZhM+Ih4hSoD9d+YLZbTqXX4L93jELE72UF4qnrZjYJtx8TSto9W2bj
+sGFmpUB41viFtdnABLv5MhMsvlM37w8HTbKzzCYImgzBJNZ8Wr+VAeeQ/uB+izVv
+Ls6aVKcwH2r8D+MMvh5d160lAJSUDXvZ0kdzawtBMzaNOIEYuQqoQxQGXvSAMRDV
+2xFEn/XRT4iRl1stLvX86SMpLksbBfxZnrV9Q+OfTpar5O21sb1dpkgfWoF6W0kc
+rjuAAsI3EbMuX3eK8r5SjWCLfIaU9ton+CdeJjJipEsEox7Rlq075t+6S4LL4wqq
+dJPX4Rcuwx4LPXi9NKZAuQHisp1nuVV4luXttMdYfFq5QtokhjUaedAOORDy4gsC
+mAMyLWgU/2r0grK7+AVLfn1p9wFb9FoBGFILcjVMAiY3OE5tNVPay9wGoD6n/h0O
+cteh2rBrB7kEpXjRqasNfRl8vvlz7nWhTIKJAhwEEAEIAAYFAk+bAq8ACgkQEbTl
+/xWw/YKuew/9Fub3t/nejgJ5KkjhfFppQQkE1yg2VJP3cbnrrhrAYZX6E6jN7dAI
+MlpKqm4YR6FFe5bkra61TeXd2CI5E/MDdW4Q+AD66tA0xKRm5RzVuPvWoR9vyCx/
+fPlRuVZptwczeV5bKTFyflICV3Z/R5llq2aT6M+MZdBL4AHs5yuspkYa5f8EESi6
+pTJW0sXacjRSZyznQOZ2fMKn0LZnefSWjWoAB252hS27WW9kwpniJhUOzrrLuAWF
+wnv6jfahNH14BCbNB7Q0DhcCeYnFocRv/NH8oipTrwfJ+IIMDDOcJvCbgv23w9DJ
+Ynv2BaaJrbk04jux71vhaZUC0xTkE/b+rNZGnPaFnjqWBGN3s+RVZ0SHMQUzdl73
+dH3lL98mULzmf1uD7fPIrF/EYrSvFcsV7mnpFmHOd3ApY6QugmakQOLVaIpi18N4
+hJoEPBwSQ91eriieobRhjGs7LRnfmvkuQIlsQx82eycd1IV6Gp2cqzAb1qPzcaYh
+TskU93Mj9OwmlqETB9FH7w7OvumQUjhHQCASeCGDeFJacZkwohWcxWkB0DUPWGgh
+jnsiInTBzE/+nFsUthVlkh0Bki0BLy3gOUAgldvq3apw73OCsxjd2ORdGpFvvU2v
+Xzogb+aanfTVniIfYDaJ3KHq+rF5WiVogJrK3TxsyuTAh3jFjEKNjVqJAhwEEAEI
+AAYFAk+bo7wACgkQwktlomcsixJuOg/+PZqllY05fJhC5F8UzGpHDIsrokHNAc4L
+xMgcudYoMwsK3NDxfXdKhfBgQqAsToSNpSYE4eNFcUF8yetdJbgoCWJOBIP1LCiy
+dKXpH5mKy1PCQ+2FBb1mtKiGl1nIu1hgOx29R2ATGGSpGwbgm1Q8+cpM/nRVv7Hl
+5e6uPZWkAu0MBUL9RbVSMQRpK6DUCKhLX4Loc3OS4rNjQkGnWyPtqlmU4bmRZ3R2
+INaONb4tnLkjdBhAqhgaMneEGt07nI2GBaVhdTKoI2/aDBADhuSkHomD/euiDLAF
+/gqvG6ir6akBaKiaZlDyFSAdI62gQ4DZqZF0ddGcyUfyWCgAIWxBLf6RX7yDsu5L
+uCT7ppkogHYpxjGdRlUhu9tBukZNqN1BEDbywUu2oHus+XjCr+AKThY2eglRTiVw
+SUo6KX8xBmRoo1W32pk5t9I8uMWMVc3cVh4QhqlKmcjtTJkRIVCNCXZl5JN2Uw8q
+uP6thFNCsJx6g8UwaHRXJZNKyANfe8CFGuNO0/9i8sMP/lRxmhxb5+CgZQKmCBjq
+eL/TOavRJVXbilVsU4j9OFlqx9ptGHfPlfjnIq2Bf9VWJQyS6E64ecqaqc+yqaVf
+hd0FMz9hq067VITuG50JeVnmSJK/EVjSgMvxWlSNinMgUjNetrkQTO9OQ0caAGFq
+DHcut3Yey8o=
+=id4q
+-----END PGP PUBLIC KEY BLOCK-----"""
+
+
+class TestAuthKeys(unittest.TestCase):
+
+ """Test handling of keys for signed repositories."""
+
+ def setUp(self):
+ # reset any config manipulations done in the individual tests
+ apt_pkg.init_config()
+ # save the apt config to restore later
+ cnf = {}
+ for item in apt_pkg.config.keys():
+ cnf[item] = apt_pkg.config.find(item)
+ self.addCleanup(self._restore_apt_config, cnf)
+
+ self.tmpdir = tempfile.mkdtemp()
+ self.addCleanup(shutil.rmtree, self.tmpdir)
+ apt_pkg.config.set("Dir", self.tmpdir)
+ apt_pkg.config.set("Dir::Bin::Apt-key", "fakeroot-apt-key")
+ apt_pkg.config.set("Dir::Etc", "etc/apt/")
+ trustedparts_dir = apt_pkg.config.find_dir("Dir::Etc::Trustedparts")
+ confparts_dir = apt_pkg.config.find_dir("Dir::Etc::parts")
+ self.assertTrue(trustedparts_dir.startswith(self.tmpdir))
+ os.makedirs(trustedparts_dir)
+ os.makedirs(confparts_dir)
+ shutil.copy("fakeroot-apt-key", self.tmpdir)
+
+ def _restore_apt_config(self, cnf):
+ """Restore previous apt configuration."""
+ for item in cnf:
+ apt_pkg.config.set(item, cnf[item])
+
+ def testAddAndExportKey(self):
+ """Add an example key."""
+ apt.auth.add_key(WHEEZY_KEY)
+ # Strip the headers from the keys to avoid test errors because
+ # the exported key used a differenct GnuPG version than the
+ # original example key
+ self.assertEqual(apt.auth.export_key("46925553").split("\n")[2:],
+ WHEEZY_KEY.split("\n")[2:])
+
+ def testAddAndListKey(self):
+ """Add an example key and test if it is correctly returned by
+ list_keys()
+ """
+ apt.auth.add_key(WHEEZY_KEY)
+ ret = apt.auth.list_keys()
+ self.assertEqual(len(ret), 1)
+ key = ret[0]
+ self.assertEqual(key.name,
+ "Debian Archive Automatic Signing Key (7.0/wheezy) "
+ "<ftpmaster@debian.org>")
+ self.assertEqual(key.keyid, "46925553")
+ self.assertEqual(key.date, "2012-04-27")
+
+ def testAddKeyFromFile(self):
+ """Test adding a key from file."""
+ keyfd, keyname = tempfile.mkstemp()
+ self.addCleanup(os.close, keyfd)
+ os.write(keyfd, WHEEZY_KEY.encode("UTF-8"))
+
+ apt.auth.add_key_from_file(keyname)
+
+ ret = apt.auth.list_keys()
+ self.assertEqual(len(ret), 1)
+ key = ret[0]
+ self.assertEqual(key.name,
+ "Debian Archive Automatic Signing Key (7.0/wheezy) "
+ "<ftpmaster@debian.org>")
+ self.assertEqual(key.keyid, "46925553")
+ self.assertEqual(key.date, "2012-04-27")
+
+ def testAddKeyFromServer(self):
+ """Install a GnuPG key from a remote server."""
+ self._start_keyserver()
+ self.addCleanup(self._stop_keyserver)
+
+ apt.auth.add_key_from_keyserver("46925553", "hkp://localhost:19191")
+
+ ret = apt.auth.list_keys()
+ self.assertEqual(len(ret), 1)
+ key = ret[0]
+ self.assertEqual(key.name,
+ "Debian Archive Automatic Signing Key (7.0/wheezy) "
+ "<ftpmaster@debian.org>")
+ self.assertEqual(key.keyid, "46925553")
+ self.assertEqual(key.date, "2012-04-27")
+
+ def _start_keyserver(self):
+ """Start a fake keyserver on http://localhost:19191
+ Thanks pitti.
+ """
+ dir = tempfile.mkdtemp()
+ self.addCleanup(shutil.rmtree, dir)
+ os.mkdir(os.path.join(dir, "pks"))
+ with open(os.path.join(dir, "pks", "lookup"), "w") as key_file:
+ key_file.write(WHEEZY_KEY)
+
+ self.keyserver_pid = os.fork()
+ if self.keyserver_pid == 0:
+ # quiesce server log
+ os.dup2(os.open('/dev/null', os.O_WRONLY), sys.stderr.fileno())
+ os.chdir(dir)
+ httpd = HTTPServer(('localhost', 19191), HTTPRequestHandler)
+ httpd.serve_forever()
+ os._exit(0)
+
+ # wait a bit until server is ready
+ time.sleep(0.5)
+
+ def _stop_keyserver(self):
+ '''Stop fake keyserver'''
+ assert self.keyserver_pid
+
+ os.kill(self.keyserver_pid, 15)
+ os.wait()
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/tests/test_utils.py b/tests/test_utils.py
index 26ee0bff..2676bb98 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -6,17 +6,29 @@
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.
+import datetime
+import os
import sys
+import unittest
+
import apt_pkg
import apt.utils
-import datetime
-import unittest
+
+from apt.utils import (
+ get_maintenance_end_date,
+ get_release_date_from_release_file,
+ )
class TestUtils(unittest.TestCase):
+ def test_get_release_date_from_release_file(self):
+ path = os.path.join(os.path.dirname(__file__),
+ "data", "misc", "foo_Release")
+ t = get_release_date_from_release_file(path)
+ self.assertEqual(str(datetime.datetime.utcfromtimestamp(t)),
+ "2012-04-25 22:49:23")
def test_maintenance_time(self):
- from apt.utils import get_maintenance_end_date
months_of_support = 18
# test historic releases, jaunty
release_date = datetime.datetime(2009, 4, 23)