summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2010-09-03 14:04:50 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2010-09-03 14:04:50 +0200
commit0205540433440a9ff4ad4ea4cce44c700a4b401c (patch)
tree97809e2e38482d3d7f124b30552a0936adf4d405 /test
parent24baab5c477bf1e57a0b169a7bac1d2e9ab0c974 (diff)
parent2c6baa5a1f935eb3b8d4eb9fdef62e696416e27a (diff)
merged from lp:~donkult/apt/sid
Diffstat (limited to 'test')
-rw-r--r--test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages25
-rw-r--r--test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release13
-rw-r--r--test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg7
-rw-r--r--test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages25
-rw-r--r--test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release13
-rw-r--r--test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg7
-rw-r--r--test/authReliability/sources.list.failure2
-rw-r--r--test/authReliability/sources.list.good2
-rw-r--r--test/integration/Packages-bug-590438-broken-provides-thanks-to-remove-order67
-rw-r--r--test/integration/Packages-bug-591882-conkeror1787
-rw-r--r--test/integration/Packages-pdiff-usage34
-rw-r--r--test/integration/Packages-pdiff-usage-new37
-rwxr-xr-xtest/integration/create-test-data33
-rw-r--r--test/integration/framework500
-rw-r--r--test/integration/joesixpack.pubbin0 -> 639 bytes
-rw-r--r--test/integration/joesixpack.secbin0 -> 1290 bytes
-rwxr-xr-xtest/integration/run-tests8
-rw-r--r--test/integration/status-bug-590438-broken-provides-thanks-to-remove-order97
-rw-r--r--test/integration/status-bug-591882-conkeror1357
-rwxr-xr-xtest/integration/test-autoremove31
-rwxr-xr-xtest/integration/test-bug-590041-prefer-non-virtual-packages51
-rwxr-xr-xtest/integration/test-bug-590438-broken-provides-thanks-to-remove-order98
-rwxr-xr-xtest/integration/test-bug-591882-conkeror75
-rwxr-xr-xtest/integration/test-compressed-indexes131
-rwxr-xr-xtest/integration/test-disappearing-packages54
-rwxr-xr-xtest/integration/test-pdiff-usage51
-rw-r--r--test/libapt/assert.h21
-rw-r--r--test/libapt/commandlineasstring_test.cc39
-rw-r--r--test/libapt/compareversion_test.cc123
-rw-r--r--test/libapt/getarchitectures_test.cc61
-rw-r--r--test/libapt/getlanguages_test.cc149
-rw-r--r--test/libapt/globalerror_test.cc77
-rw-r--r--test/libapt/makefile48
-rw-r--r--test/libapt/parsedepends_test.cc196
-rwxr-xr-xtest/libapt/run-tests (renamed from test/libapt/run-tests.sh)17
-rw-r--r--test/makefile15
-rwxr-xr-xtest/pre-upload-check.py118
-rwxr-xr-xtest/test-indexes.sh226
-rw-r--r--test/testsources.list/sources.list.all-validuntil-broken1
-rw-r--r--test/versions.lst64
-rw-r--r--test/versiontest.cc233
41 files changed, 5638 insertions, 255 deletions
diff --git a/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages
new file mode 100644
index 000000000..3e7265438
--- /dev/null
+++ b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages
@@ -0,0 +1,25 @@
+Package: libglib2.0-data
+Priority: optional
+Section: misc
+Installed-Size: 2288
+Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com>
+Original-Maintainer: Loic Minier <lool@dooz.org>
+Architecture: all
+Source: glib2.0
+Version: 2.13.6-1ubuntu1
+Replaces: libglib1.3, libglib1.3-data
+Depends: libglib2.0-0 (>= 2.13.6-1ubuntu1)
+Conflicts: libglib1.3-data
+Filename: ./libglib2.0-data_2.13.6-1ubuntu1_all.deb
+Size: 958
+MD5sum: 803fc5e2e31a4345b3e9c771e1eae49f
+SHA1: 75b2c62b21bae60c58e694dd40ed6d4df946e304
+SHA256: 142d8466eac252f06bc957d76fe1bb87f86f2d3512b99c8d4b08c1ad79fbe59e
+Description: Common files for GLib library
+ GLib is a library containing many useful C routines for things such
+ as trees, hashes, lists, and strings. It is a useful general-purpose
+ C library used by projects such as GTK+, GIMP, and GNOME.
+ .
+ This package is needed for the runtime libraries to display messages in
+ languages other than English.
+
diff --git a/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release
new file mode 100644
index 000000000..7ecd4cd19
--- /dev/null
+++ b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release
@@ -0,0 +1,13 @@
+Date: Fri, 27 Jul 2007 14:39:41 UTC
+MD5Sum:
+ 4672dadea6a144839f823c9f3d5fd44b 934 Packages
+ 82ebcf09a8d78a2b9cf7759349da4936 603 Packages.gz
+ d41d8cd98f00b204e9800998ecf8427e 0 Release
+SHA1:
+ fa0f294aa30789529371066b10e9497be1284d26 934 Packages
+ f4032808663b2810d87b4a4dab6f5ae4a1e8fa8e 603 Packages.gz
+ da39a3ee5e6b4b0d3255bfef95601890afd80709 0 Release
+SHA256:
+ 92c9b605480dc74e6be79c0ddc24738bfcbd6dd3148af531acd68717de528049 934 Packages
+ 659ccc0d07ff21f0247f9fa5abe149221c90d5e17da52c7afddb035b93c23d39 603 Packages.gz
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 Release
diff --git a/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg
new file mode 100644
index 000000000..85c356e6f
--- /dev/null
+++ b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.6 (GNU/Linux)
+
+iD8DBQBGqgOwliSD4VZixzQRAs6jAJ9p7Aiob9gzkUNCtoW8UPrBo0E/YwCdEaz0
+CQJszU6fRYX5jGWXSWzfc5c=
+=ugH0
+-----END PGP SIGNATURE-----
diff --git a/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages
new file mode 100644
index 000000000..3e7265438
--- /dev/null
+++ b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages
@@ -0,0 +1,25 @@
+Package: libglib2.0-data
+Priority: optional
+Section: misc
+Installed-Size: 2288
+Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com>
+Original-Maintainer: Loic Minier <lool@dooz.org>
+Architecture: all
+Source: glib2.0
+Version: 2.13.6-1ubuntu1
+Replaces: libglib1.3, libglib1.3-data
+Depends: libglib2.0-0 (>= 2.13.6-1ubuntu1)
+Conflicts: libglib1.3-data
+Filename: ./libglib2.0-data_2.13.6-1ubuntu1_all.deb
+Size: 958
+MD5sum: 803fc5e2e31a4345b3e9c771e1eae49f
+SHA1: 75b2c62b21bae60c58e694dd40ed6d4df946e304
+SHA256: 142d8466eac252f06bc957d76fe1bb87f86f2d3512b99c8d4b08c1ad79fbe59e
+Description: Common files for GLib library
+ GLib is a library containing many useful C routines for things such
+ as trees, hashes, lists, and strings. It is a useful general-purpose
+ C library used by projects such as GTK+, GIMP, and GNOME.
+ .
+ This package is needed for the runtime libraries to display messages in
+ languages other than English.
+
diff --git a/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release
new file mode 100644
index 000000000..7ecd4cd19
--- /dev/null
+++ b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release
@@ -0,0 +1,13 @@
+Date: Fri, 27 Jul 2007 14:39:41 UTC
+MD5Sum:
+ 4672dadea6a144839f823c9f3d5fd44b 934 Packages
+ 82ebcf09a8d78a2b9cf7759349da4936 603 Packages.gz
+ d41d8cd98f00b204e9800998ecf8427e 0 Release
+SHA1:
+ fa0f294aa30789529371066b10e9497be1284d26 934 Packages
+ f4032808663b2810d87b4a4dab6f5ae4a1e8fa8e 603 Packages.gz
+ da39a3ee5e6b4b0d3255bfef95601890afd80709 0 Release
+SHA256:
+ 92c9b605480dc74e6be79c0ddc24738bfcbd6dd3148af531acd68717de528049 934 Packages
+ 659ccc0d07ff21f0247f9fa5abe149221c90d5e17da52c7afddb035b93c23d39 603 Packages.gz
+ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 Release
diff --git a/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg
new file mode 100644
index 000000000..85c356e6f
--- /dev/null
+++ b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.6 (GNU/Linux)
+
+iD8DBQBGqgOwliSD4VZixzQRAs6jAJ9p7Aiob9gzkUNCtoW8UPrBo0E/YwCdEaz0
+CQJszU6fRYX5jGWXSWzfc5c=
+=ugH0
+-----END PGP SIGNATURE-----
diff --git a/test/authReliability/sources.list.failure b/test/authReliability/sources.list.failure
new file mode 100644
index 000000000..110f31884
--- /dev/null
+++ b/test/authReliability/sources.list.failure
@@ -0,0 +1,2 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/gpg-package-broken/ /
+
diff --git a/test/authReliability/sources.list.good b/test/authReliability/sources.list.good
new file mode 100644
index 000000000..2e9a4458a
--- /dev/null
+++ b/test/authReliability/sources.list.good
@@ -0,0 +1,2 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/gpg-package-ok/ /
+
diff --git a/test/integration/Packages-bug-590438-broken-provides-thanks-to-remove-order b/test/integration/Packages-bug-590438-broken-provides-thanks-to-remove-order
new file mode 100644
index 000000000..75a769e1a
--- /dev/null
+++ b/test/integration/Packages-bug-590438-broken-provides-thanks-to-remove-order
@@ -0,0 +1,67 @@
+Package: gawk
+Priority: optional
+Section: interpreters
+Installed-Size: 2084
+Maintainer: Arthur Loiret <aloiret@debian.org>
+Architecture: i386
+Version: 1:3.1.7.dfsg-5
+Provides: awk
+Pre-Depends: libc6 (>= 2.3)
+Filename: pool/main/g/gawk/gawk_3.1.7.dfsg-5_i386.deb
+Size: 766008
+MD5sum: 6459a02cfc1b9eafb3c0415e4ff4e252
+SHA1: ac033488dae4b7e8167d610e490319c047edf7e4
+SHA256: a2337dfe1cc82aeae46f2c722e5cc7be9ecefdea4aaf13f540cfe70bd8b1d627
+Description-de: GNU awk, eine Mustererkennungs- und Verarbeitungssprache
+Homepage: http://www.gnu.org/software/gawk/
+Tag: devel::interpreter, implemented-in::c, interface::commandline, role::program, scope::utility, suite::gnu, use::filtering, use::scanning, works-with::text
+
+Package: aawk
+Priority: optional
+Section: interpreters
+Installed-Size: 2084
+Maintainer: Arthur Loiret <aloiret@debian.org>
+Architecture: i386
+Version: 1:3.1.7.dfsg-5
+Provides: awk
+Pre-Depends: libc6 (>= 2.3)
+Filename: pool/main/a/aawk/aawk_3.1.7.dfsg-5_i386.deb
+Size: 766008
+MD5sum: 6459a02cfc1b9eafb3c0415e4ff4e252
+SHA1: ac033488dae4b7e8167d610e490319c047edf7e4
+SHA256: a2337dfe1cc82aeae46f2c722e5cc7be9ecefdea4aaf13f540cfe70bd8b1d627
+Description-de: GNU awk, eine Mustererkennungs- und Verarbeitungssprache
+Homepage: http://www.gnu.org/software/gawk/
+Tag: devel::interpreter, implemented-in::c, interface::commandline, role::program, scope::utility, suite::gnu, use::filtering, use::scanning, works-with::text
+
+Package: gawk2
+Priority: optional
+Section: interpreters
+Installed-Size: 2084
+Maintainer: Arthur Loiret <aloiret@debian.org>
+Architecture: i386
+Version: 1:3.1.7.dfsg-5
+Provides: awk
+Pre-Depends: libc6 (>= 2.3)
+Depends: coolstuff
+Filename: pool/main/g/gawk/gawk_3.1.7.dfsg-5_i386.deb
+Size: 766008
+MD5sum: 6459a02cfc1b9eafb3c0415e4ff4e252
+SHA1: ac033488dae4b7e8167d610e490319c047edf7e4
+SHA256: a2337dfe1cc82aeae46f2c722e5cc7be9ecefdea4aaf13f540cfe70bd8b1d627
+Description-de: GNU awk, eine Mustererkennungs- und Verarbeitungssprache
+Homepage: http://www.gnu.org/software/gawk/
+Tag: devel::interpreter, implemented-in::c, interface::commandline, role::program, scope::utility, suite::gnu, use::filtering, use::scanning, works-with::text
+
+Package: coolstuff
+Priority: optional
+Section: cool
+Installed-Size: 10
+Maintainer: David Kalnischkies <kalnischkies+debian@gmail.com>
+Architecture: all
+Version: 1-1
+Filename: pool/main/c/coolstuff/coolstuff_1-1_all.deb
+Size: 7608
+MD5sum: 6459aa2efc139eafb323ac3f4f5aeb22
+Description: We all need cool stuff
+
diff --git a/test/integration/Packages-bug-591882-conkeror b/test/integration/Packages-bug-591882-conkeror
new file mode 100644
index 000000000..05eac8987
--- /dev/null
+++ b/test/integration/Packages-bug-591882-conkeror
@@ -0,0 +1,1787 @@
+Package: conkeror
+Priority: extra
+Section: web
+Installed-Size: 1488
+Maintainer: Axel Beckert <abe@debian.org>
+Architecture: all
+Version: 0.9.2+git100804-1
+Provides: www-browser
+Depends: xulrunner-1.9.1 | xulrunner-1.9.2 | xulrunner-1.9 | xulrunner (>= 1.9~)
+Recommends: conkeror-spawn-process-helper
+Suggests: emacs | emacsen
+Breaks: conkeror-spawn-process-helper (<< 0.9~git080901-1)
+Filename: pool/main/c/conkeror/conkeror_0.9.2+git100804-1_all.deb
+Size: 233068
+MD5Sum: e7bce631fe421938f2dc7a2042497e21
+Description: keyboard focused web browser with Emacs look and feel
+
+Package: coreutils
+Essential: yes
+Priority: required
+Section: utils
+Installed-Size: 12188
+Maintainer: Michael Stone <mstone@debian.org>
+Architecture: i386
+Version: 8.5-1
+Replaces: mktemp, timeout
+Pre-Depends: libacl1 (>= 2.2.11-1), libattr1 (>= 2.4.41-1), libc6 (>= 2.6), libselinux1 (>= 1.32)
+Conflicts: timeout
+Filename: pool/main/c/coreutils/coreutils_8.5-1_i386.deb
+Size: 4608374
+MD5Sum: de7f2ef8769cc38e64774102708ce1ae
+Description: GNU core utilities
+
+Package: debconf-i18n
+Priority: required
+Section: localization
+Installed-Size: 1208
+Maintainer: Debconf Developers <debconf-devel@lists.alioth.debian.org>
+Architecture: all
+Source: debconf
+Version: 1.5.35
+Replaces: debconf (<< 1.3.0), debconf-utils (<< 1.3.22)
+Depends: debconf, liblocale-gettext-perl, libtext-iconv-perl, libtext-wrapi18n-perl, libtext-charwidth-perl
+Conflicts: debconf-english, debconf-utils (<< 1.3.22)
+Filename: pool/main/d/debconf/debconf-i18n_1.5.35_all.deb
+Size: 210348
+MD5Sum: 03d76e5a5fc733cffc54c4b3b14dbcd4
+Description: full internationalization support for debconf
+
+Package: debconf
+Priority: required
+Section: admin
+Installed-Size: 1560
+Maintainer: Debconf Developers <debconf-devel@lists.alioth.debian.org>
+Architecture: all
+Version: 1.5.35
+Replaces: debconf-tiny
+Provides: debconf-2.0
+Depends: debconf-i18n | debconf-english
+Pre-Depends: perl-base (>= 5.6.1-4)
+Recommends: apt-utils (>= 0.5.1)
+Suggests: debconf-doc, debconf-utils, whiptail | dialog | gnome-utils, libterm-readline-gnu-perl, libgnome2-perl, libnet-ldap-perl, perl, libqtgui4-perl, libqtcore4-perl
+Conflicts: apt (<< 0.3.12.1), cdebconf (<< 0.96), debconf-tiny, debconf-utils (<< 1.3.22), dialog (<< 0.9b-20020814-1), menu (<= 2.1.3-1), whiptail (<< 0.51.4-11), whiptail-utf8 (<= 0.50.17-13)
+Filename: pool/main/d/debconf/debconf_1.5.35_all.deb
+Size: 158120
+MD5Sum: 5a64e8e187984ed4eca44bf13eae8ea0
+Description: Debian configuration management system
+Python-Version: 2.4, 2.5, 2.6
+
+Package: debianutils
+Essential: yes
+Priority: required
+Section: utils
+Installed-Size: 216
+Maintainer: Clint Adams <schizo@debian.org>
+Architecture: i386
+Version: 3.4
+Depends: sensible-utils
+Pre-Depends: libc6 (>= 2.7)
+Filename: pool/main/d/debianutils/debianutils_3.4_i386.deb
+Size: 49888
+MD5Sum: 32eb3eebd4c9e58aadd418ca95b23904
+Description: Miscellaneous utilities specific to Debian
+
+Package: defoma
+Priority: optional
+Section: admin
+Installed-Size: 564
+Maintainer: Debian QA Group <packages@qa.debian.org>
+Architecture: all
+Version: 0.11.11
+Depends: whiptail | dialog, file, perl
+Recommends: libfont-freetype-perl
+Suggests: defoma-doc, psfontmgr, x-ttcidfont-conf, dfontmgr
+Conflicts: defoma-gs, defoma-ps, defoma-x, dfontmgr (<< 0.10.0), psfontmgr (<< 0.5.0), x-ttcidfont-conf (<< 5)
+Filename: pool/main/d/defoma/defoma_0.11.11_all.deb
+Size: 101104
+MD5Sum: ee11d3bc1a0275473d5c1feba846ff3e
+Description: Debian Font Manager -- automatic font configuration framework
+Enhances: debhelper
+
+Package: dpkg
+Essential: yes
+Priority: required
+Section: admin
+Installed-Size: 5628
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: i386
+Version: 1.15.8.3
+Pre-Depends: libbz2-1.0, libc6 (>= 2.3), libselinux1 (>= 1.32), zlib1g (>= 1:1.1.4), coreutils (>= 5.93-1), xz-utils
+Suggests: apt
+Breaks: apt (<< 0.7.7), aptitude (<< 0.4.7-1), dpkg-dev (<< 1.14.16), emacs21 (<< 21.4a+1-5.7), emacs21-nox (<< 21.4a+1-5.7), emacs22 (<= 22.3+1-1), emacs22-gtk (<= 22.3+1-1), emacs22-nox (<= 22.3+1-1), jed (<< 1:0.99.18+dfsg.1-13), jed-extra (<= 2.5.3-2), konqueror (<= 4:4.2.96-1), libdpkg-perl (<< 1.15.8), pinfo (<< 0.6.9-3.1), tkinfo (<< 2.8-3.1), xemacs21-support (<< 21.4.22-2), xjed (<< 1:0.99.18+dfsg.1-13)
+Filename: pool/main/d/dpkg/dpkg_1.15.8.3_i386.deb
+Size: 1866568
+MD5Sum: fa4bf565ebbfde6558d70b071f6abe42
+Description: Debian package management system
+Origin: debian
+Bugs: debbugs://bugs.debian.org
+
+Package: file
+Priority: standard
+Section: utils
+Installed-Size: 136
+Maintainer: Daniel Baumann <daniel@lists.debian-maintainers.org>
+Architecture: i386
+Version: 5.04-5
+Depends: libc6 (>= 2.1), libmagic1 (= 5.04-5), zlib1g (>= 1:1.1.4)
+Filename: pool/main/f/file/file_5.04-5_i386.deb
+Size: 49134
+MD5Sum: 716b1c307166650f247e0a2e07cdd3b1
+Description: Determines file type using "magic" numbers
+
+Package: fontconfig-config
+Priority: optional
+Section: fonts
+Installed-Size: 440
+Maintainer: Keith Packard <keithp@debian.org>
+Architecture: all
+Source: fontconfig
+Version: 2.8.0-2.1
+Replaces: fontconfig (<< 2.3.2-2)
+Depends: debconf (>= 0.5) | debconf-2.0, ucf (>= 0.29), ttf-dejavu-core | ttf-bitstream-vera | ttf-freefont | gsfonts-x11
+Conflicts: fontconfig (<< 2.3.2-2)
+Filename: pool/main/f/fontconfig/fontconfig-config_2.8.0-2.1_all.deb
+Size: 217150
+MD5Sum: c2dd70d32fa8e5c0588cff16efbbf614
+Description: generic font configuration library - configuration
+
+Package: fontconfig
+Priority: optional
+Section: fonts
+Installed-Size: 520
+Maintainer: Keith Packard <keithp@debian.org>
+Architecture: i386
+Version: 2.8.0-2.1
+Replaces: fontconfig-config (<< 2.5.93-1)
+Depends: libc6 (>= 2.0), libexpat1 (>= 1.95.8), libfontconfig1 (>= 2.8.0), libfreetype6 (>= 2.2.1), zlib1g (>= 1:1.1.4), fontconfig-config
+Suggests: defoma (>= 0.7.0)
+Filename: pool/main/f/fontconfig/fontconfig_2.8.0-2.1_i386.deb
+Size: 333180
+MD5Sum: 67aeeda05141d4fe477c041c12daad1e
+Description: generic font configuration library - support binaries
+
+Package: gcc-4.4-base
+Priority: required
+Section: libs
+Installed-Size: 172
+Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
+Architecture: i386
+Source: gcc-4.4
+Version: 4.4.4-8
+Filename: pool/main/g/gcc-4.4/gcc-4.4-base_4.4.4-8_i386.deb
+Size: 118346
+MD5Sum: 5e35b249b1af8edd9e85932575f6af92
+Description: The GNU Compiler Collection (base package)
+
+Package: libacl1
+Priority: required
+Section: libs
+Installed-Size: 88
+Maintainer: Nathan Scott <nathans@debian.org>
+Architecture: i386
+Source: acl
+Version: 2.2.49-3
+Depends: libattr1 (>= 2.4.41-1), libc6 (>= 2.2)
+Conflicts: acl (<< 2.0.0), libacl1-kerberos4kth
+Filename: pool/main/a/acl/libacl1_2.2.49-3_i386.deb
+Size: 27146
+MD5Sum: 99c1bd61d4f26b1f3a072b490d3daef5
+Description: Access control list shared library
+
+Package: libasound2
+Priority: optional
+Section: libs
+Installed-Size: 1236
+Maintainer: Debian ALSA Maintainers <pkg-alsa-devel@lists.alioth.debian.org>
+Architecture: i386
+Source: alsa-lib
+Version: 1.0.23-1
+Depends: libc6 (>= 2.3.6-6~)
+Suggests: libasound2-plugins (>= 1.0.18)
+Conflicts: libasound2-plugins (<< 1.0.18)
+Filename: pool/main/a/alsa-lib/libasound2_1.0.23-1_i386.deb
+Size: 377718
+MD5Sum: 14a1674ebd84f30080d42c4f86f2533d
+Description: shared library for ALSA applications
+
+Package: libatk1.0-0
+Priority: optional
+Section: libs
+Installed-Size: 208
+Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
+Architecture: i386
+Source: atk1.0
+Version: 1.30.0-1
+Depends: libc6 (>= 2.2), libglib2.0-0 (>= 2.16.0)
+Recommends: libatk1.0-data
+Filename: pool/main/a/atk1.0/libatk1.0-0_1.30.0-1_i386.deb
+Size: 82402
+MD5Sum: 27d2b5e1b0ca90254f54dfe2bf056527
+Description: The ATK accessibility toolkit
+
+Package: libattr1
+Priority: required
+Section: libs
+Installed-Size: 64
+Maintainer: Nathan Scott <nathans@debian.org>
+Architecture: i386
+Source: attr
+Version: 1:2.4.44-2
+Depends: libc6 (>= 2.2.3)
+Conflicts: attr (<< 2.0.0)
+Filename: pool/main/a/attr/libattr1_2.4.44-2_i386.deb
+Size: 11902
+MD5Sum: 1e08d3be5e8d55515e7b3fa6fc76a022
+Description: Extended attribute shared library
+
+Package: libavahi-client3
+Priority: optional
+Section: libs
+Installed-Size: 148
+Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@lists.alioth.debian.org>
+Architecture: i386
+Source: avahi
+Version: 0.6.27-1
+Depends: libavahi-common3 (>= 0.6.22), libc6 (>= 2.4), libdbus-1-3 (>= 1.1.1)
+Filename: pool/main/a/avahi/libavahi-client3_0.6.27-1_i386.deb
+Size: 54328
+MD5Sum: 07bc086292d59fb7465eedb8c59d0c31
+Description: Avahi client library
+
+Package: libavahi-common-data
+Priority: optional
+Section: libs
+Installed-Size: 728
+Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@lists.alioth.debian.org>
+Architecture: i386
+Source: avahi
+Version: 0.6.27-1
+Filename: pool/main/a/avahi/libavahi-common-data_0.6.27-1_i386.deb
+Size: 111952
+MD5Sum: ebc4f7471f8e8ffea1526e1894c283a7
+Description: Avahi common data files
+
+Package: libavahi-common3
+Priority: optional
+Section: libs
+Installed-Size: 132
+Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@lists.alioth.debian.org>
+Architecture: i386
+Source: avahi
+Version: 0.6.27-1
+Depends: libc6 (>= 2.4), libavahi-common-data
+Filename: pool/main/a/avahi/libavahi-common3_0.6.27-1_i386.deb
+Size: 50538
+MD5Sum: 6e5bb85c3665bd26cdcb12c41eb9787e
+Description: Avahi common library
+
+Package: libbz2-1.0
+Priority: important
+Section: libs
+Installed-Size: 128
+Maintainer: Anibal Monsalve Salazar <anibal@debian.org>
+Architecture: i386
+Source: bzip2
+Version: 1.0.5-4
+Depends: libc6 (>= 2.3)
+Filename: pool/main/b/bzip2/libbz2-1.0_1.0.5-4_i386.deb
+Size: 45118
+MD5Sum: f067ae75bce5ef991b3d0574bf541ddb
+Description: high-quality block-sorting file compressor library - runtime
+
+Package: libc-bin
+Priority: required
+Section: libs
+Installed-Size: 1516
+Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
+Architecture: i386
+Source: eglibc
+Version: 2.11.2-2
+Replaces: libc0.1, libc0.3, libc6, libc6.1
+Breaks: libc0.1 (<< 2.10), libc0.3 (<< 2.10), libc6 (<< 2.10), libc6.1 (<< 2.10)
+Filename: pool/main/e/eglibc/libc-bin_2.11.2-2_i386.deb
+Size: 703542
+MD5Sum: f554ec34c092bb8e52e3d917bec7b46c
+Description: Embedded GNU C Library: Binaries
+
+Package: libc6
+Priority: required
+Section: libs
+Installed-Size: 9340
+Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
+Architecture: i386
+Source: eglibc
+Version: 2.11.2-2
+Provides: glibc-2.11-1
+Depends: libc-bin (= 2.11.2-2), libgcc1
+Recommends: libc6-i686
+Suggests: glibc-doc, debconf | debconf-2.0, locales
+Conflicts: tzdata (<< 2007k-1), tzdata-etch
+Breaks: locales (<< 2.11), locales-all (<< 2.11), nscd (<< 2.11)
+Filename: pool/main/e/eglibc/libc6_2.11.2-2_i386.deb
+Size: 3877166
+MD5Sum: 3d8fe972a359ad362ac1957c2687e5c2
+Description: Embedded GNU C Library: Shared libraries
+
+Package: libcairo2
+Priority: optional
+Section: libs
+Installed-Size: 824
+Maintainer: Dave Beckett <dajobe@debian.org>
+Architecture: i386
+Source: cairo
+Version: 1.8.10-4
+Depends: libc6 (>= 2.3), libfontconfig1 (>= 2.8.0), libfreetype6 (>= 2.2.1), libpixman-1-0 (>= 0.15.16), libpng12-0 (>= 1.2.13-4), libx11-6 (>= 0), libxcb-render-util0 (>= 0.3.6), libxcb-render0 (>= 0), libxcb1 (>= 0), libxrender1, zlib1g (>= 1:1.1.4)
+Breaks: iceape-browser (<= 2.0.3-3), libgtk-directfb-2.0-0, xulrunner-1.9, xulrunner-1.9.1 (<= 1.9.1.8-3)
+Filename: pool/main/c/cairo/libcairo2_1.8.10-4_i386.deb
+Size: 508814
+MD5Sum: 51f8838a83d46b5cf590338bcc3c6d73
+Description: The Cairo 2D vector graphics library
+
+Package: libcomerr2
+Priority: required
+Section: libs
+Installed-Size: 104
+Maintainer: Theodore Y. Ts'o <tytso@mit.edu>
+Architecture: i386
+Source: e2fsprogs
+Version: 1.41.12-2
+Replaces: e2fsprogs (<< 1.34-1)
+Provides: libcomerr-kth-compat
+Depends: libc6 (>= 2.3.6-6~)
+Filename: pool/main/e/e2fsprogs/libcomerr2_1.41.12-2_i386.deb
+Size: 48508
+MD5Sum: 8fe610cf3b2f82f2a681ba196e91d883
+Description: common error description library
+
+Package: libcups2
+Priority: optional
+Section: libs
+Installed-Size: 468
+Maintainer: Debian CUPS Maintainers <pkg-cups-devel@lists.alioth.debian.org>
+Architecture: i386
+Source: cups
+Version: 1.4.4-3
+Provides: libcupsys2
+Depends: libavahi-client3 (>= 0.6.16), libavahi-common3 (>= 0.6.16), libc6 (>= 2.4), libgcrypt11 (>= 1.4.2), libgnutls26 (>= 2.7.14-0), libgssapi-krb5-2 (>= 1.7+dfsg), zlib1g (>= 1:1.1.4)
+Suggests: cups-common
+Breaks: cups (<< 1.4.4)
+Filename: pool/main/c/cups/libcups2_1.4.4-3_i386.deb
+Size: 225696
+MD5Sum: f78acda030eece301cd5e0c94ea3492b
+Description: Common UNIX Printing System(tm) - Core library
+
+Package: libdatrie1
+Priority: optional
+Section: libs
+Installed-Size: 92
+Maintainer: Theppitak Karoonboonyanan <thep@debian.org>
+Architecture: i386
+Source: libdatrie
+Version: 0.2.4-1
+Depends: libc6 (>= 2.1.3)
+Filename: pool/main/libd/libdatrie/libdatrie1_0.2.4-1_i386.deb
+Size: 26184
+MD5Sum: 305e5beace09f16bf9b0a568e8df7920
+Description: Double-array trie library
+
+Package: libdb4.7
+Priority: standard
+Section: libs
+Installed-Size: 1432
+Maintainer: Debian Berkeley DB Maintainers <pkg-db-devel@lists.alioth.debian.org>
+Architecture: i386
+Source: db4.7
+Version: 4.7.25-9
+Depends: libc6 (>= 2.3.6-6~)
+Conflicts: libdb2 (<< 2:2.7.7-3)
+Filename: pool/main/d/db4.7/libdb4.7_4.7.25-9_i386.deb
+Size: 644290
+MD5Sum: 694cced529f6249607c523765aa1e482
+Description: Berkeley v4.7 Database Libraries [runtime]
+
+Package: libdb4.8
+Priority: standard
+Section: libs
+Installed-Size: 1488
+Maintainer: Clint Adams <schizo@debian.org>
+Architecture: i386
+Source: db4.8
+Version: 4.8.30-1
+Depends: libc6 (>= 2.3.6-6~)
+Conflicts: libdb2 (<< 2:2.7.7-3)
+Filename: pool/main/d/db4.8/libdb4.8_4.8.30-1_i386.deb
+Size: 681682
+MD5Sum: c8f9b6dd1cc49dac5d3319a5ac0d22fc
+Description: Berkeley v4.8 Database Libraries [runtime]
+
+Package: libdbus-1-3
+Priority: optional
+Section: libs
+Installed-Size: 328
+Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@lists.alioth.debian.org>
+Architecture: i386
+Source: dbus
+Version: 1.2.24-3
+Depends: libc6 (>= 2.3.6-6~)
+Recommends: dbus
+Filename: pool/main/d/dbus/libdbus-1-3_1.2.24-3_i386.deb
+Size: 129632
+MD5Sum: 620b2226a4cad34ed86931132fa09ea6
+Description: simple interprocess messaging system
+
+Package: libexpat1
+Priority: optional
+Section: libs
+Installed-Size: 368
+Maintainer: Debian XML/SGML Group <debian-xml-sgml-pkgs@lists.alioth.debian.org>
+Architecture: i386
+Source: expat
+Version: 2.0.1-7
+Depends: libc6 (>= 2.1.3)
+Conflicts: wink (<= 1.5.1060-4)
+Filename: pool/main/e/expat/libexpat1_2.0.1-7_i386.deb
+Size: 138122
+MD5Sum: 4607c75c6b55d92ac517fd0fb8543587
+Description: XML parsing C library - runtime library
+
+Package: libfontconfig1
+Priority: optional
+Section: libs
+Installed-Size: 412
+Maintainer: Keith Packard <keithp@debian.org>
+Architecture: i386
+Source: fontconfig
+Version: 2.8.0-2.1
+Provides: libfontconfig
+Depends: libc6 (>= 2.7), libexpat1 (>= 1.95.8), libfreetype6 (>= 2.2.1), zlib1g (>= 1:1.1.4), fontconfig-config (= 2.8.0-2.1)
+Filename: pool/main/f/fontconfig/libfontconfig1_2.8.0-2.1_i386.deb
+Size: 273878
+MD5Sum: fd6d6426df7bc1330b064a7d45a85d84
+Description: generic font configuration library - runtime
+
+Package: libfreetype6
+Priority: optional
+Section: libs
+Installed-Size: 668
+Maintainer: Steve Langasek <vorlon@debian.org>
+Architecture: i386
+Source: freetype
+Version: 2.4.2-1
+Depends: libc6 (>= 2.1.3), zlib1g (>= 1:1.1.4)
+Conflicts: freetype, xpdf-reader (<< 1.00-4)
+Filename: pool/main/f/freetype/libfreetype6_2.4.2-1_i386.deb
+Size: 360632
+MD5Sum: f9c333d2643d186685a77d1072db5425
+Description: FreeType 2 font engine, shared library files
+
+Package: libgcc1
+Priority: required
+Section: libs
+Installed-Size: 156
+Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
+Architecture: i386
+Source: gcc-4.4 (4.4.4-8)
+Version: 1:4.4.4-8
+Depends: gcc-4.4-base (= 4.4.4-8), libc6 (>= 2.2.4)
+Filename: pool/main/g/gcc-4.4/libgcc1_4.4.4-8_i386.deb
+Size: 55180
+MD5Sum: c92a5656f20caa7d50bd425f2b1f25d8
+Description: GCC support library
+
+Package: libgcrypt11
+Priority: standard
+Section: libs
+Installed-Size: 556
+Maintainer: Debian GnuTLS Maintainers <pkg-gnutls-maint@lists.alioth.debian.org>
+Architecture: i386
+Version: 1.4.5-2
+Depends: libc6 (>= 2.3), libgpg-error0 (>= 1.6-1)
+Suggests: rng-tools
+Filename: pool/main/libg/libgcrypt11/libgcrypt11_1.4.5-2_i386.deb
+Size: 266444
+MD5Sum: 6b687ecf0284d5efe44115c07198b159
+Description: LGPL Crypto library - runtime library
+
+Package: libgdbm3
+Priority: important
+Section: libs
+Installed-Size: 120
+Maintainer: Anibal Monsalve Salazar <anibal@debian.org>
+Architecture: i386
+Source: gdbm
+Version: 1.8.3-9
+Depends: libc6 (>= 2.1.3), dpkg (>= 1.15.4) | install-info
+Filename: pool/main/g/gdbm/libgdbm3_1.8.3-9_i386.deb
+Size: 44940
+MD5Sum: cc0859fd9c0ea0a211e7f1a0da09ddc0
+Description: GNU dbm database routines (runtime version)
+
+Package: libglib2.0-0
+Priority: optional
+Section: libs
+Installed-Size: 2212
+Maintainer: Loic Minier <lool@dooz.org>
+Architecture: i386
+Source: glib2.0
+Version: 2.24.1-1
+Replaces: libglib2.0-dev (<< 2.23.2-2)
+Depends: libc6 (>= 2.9), libpcre3 (>= 7.7), libselinux1 (>= 1.32), zlib1g (>= 1:1.1.4)
+Recommends: libglib2.0-data, shared-mime-info
+Conflicts: libpango1.0-0 (<< 1.11)
+Filename: pool/main/g/glib2.0/libglib2.0-0_2.24.1-1_i386.deb
+Size: 1024782
+MD5Sum: e0f853cbcba1c8a132fc07c303c31ea9
+Description: The GLib library of C routines
+
+Package: libgnutls26
+Priority: standard
+Section: libs
+Installed-Size: 1268
+Maintainer: Debian GnuTLS Maintainers <pkg-gnutls-maint@lists.alioth.debian.org>
+Architecture: i386
+Source: gnutls26
+Version: 2.8.6-1
+Replaces: gnutls0, gnutls0.4, gnutls3
+Depends: libc6 (>= 2.3), libgcrypt11 (>= 1.4.2), libtasn1-3 (>= 1.6-0), zlib1g (>= 1:1.1.4)
+Suggests: gnutls-bin
+Conflicts: gnutls0, gnutls0.4
+Filename: pool/main/g/gnutls26/libgnutls26_2.8.6-1_i386.deb
+Size: 528314
+MD5Sum: 9c585b48d4a4e8de856b70a3350037de
+Description: the GNU TLS library - runtime library
+
+Package: libgpg-error0
+Priority: standard
+Section: libs
+Installed-Size: 228
+Maintainer: Jose Carlos Garcia Sogo <jsogo@debian.org>
+Architecture: i386
+Source: libgpg-error
+Version: 1.6-1
+Depends: libc6 (>= 2.1.3)
+Filename: pool/main/libg/libgpg-error/libgpg-error0_1.6-1_i386.deb
+Size: 43118
+MD5Sum: be3a76a7176e38cb1f0464be1f21d4d4
+Description: library for common error values and messages in GnuPG components
+
+Package: libgssapi-krb5-2
+Priority: standard
+Section: libs
+Installed-Size: 1604
+Maintainer: Sam Hartman <hartmans@debian.org>
+Architecture: i386
+Source: krb5
+Version: 1.8.3+dfsg~beta1-1
+Replaces: libkrb53 (<< 1.6.dfsg.4~beta1-7)
+Depends: libc6 (>= 2.7), libcomerr2 (>= 1.34), libk5crypto3 (>= 1.8+dfsg), libkeyutils1, libkrb5-3 (= 1.8.3+dfsg~beta1-1), libkrb5support0 (>= 1.7dfsg~beta2)
+Suggests: krb5-doc, krb5-user
+Breaks: libkrb53
+Filename: pool/main/k/krb5/libgssapi-krb5-2_1.8.3+dfsg~beta1-1_i386.deb
+Size: 1463772
+MD5Sum: 80f3ffe8e30991723a8009829e2aef10
+Description: MIT Kerberos runtime libraries - krb5 GSS-API Mechanism
+
+Package: libgtk2.0-0
+Priority: optional
+Section: libs
+Installed-Size: 5864
+Maintainer: Sebastien Bacher <seb128@debian.org>
+Architecture: i386
+Source: gtk+2.0
+Version: 2.20.1-1
+Provides: gtk2.0-binver-2.10.0
+Depends: libgtk2.0-common, libatk1.0-0 (>= 1.29.3), libc6 (>= 2.7), libcairo2 (>= 1.6.4-6.1), libcups2 (>= 1.4.0), libfontconfig1 (>= 2.8.0), libfreetype6 (>= 2.2.1), libglib2.0-0 (>= 2.24.0), libgnutls26 (>= 2.7.14-0), libgssapi-krb5-2 (>= 1.6.dfsg.2), libjasper1 (>= 1.900.1), libjpeg62, libpango1.0-0 (>= 1.20.0), libpng12-0 (>= 1.2.13-4), libtiff4, libx11-6 (>= 0), libxcomposite1 (>= 1:0.3-1), libxcursor1 (>> 1.1.2), libxdamage1 (>= 1:1.1), libxext6 (>= 0), libxfixes3 (>= 1:4.0.1), libxi6 (>= 0), libxinerama1, libxrandr2 (>= 2:1.2.99.3), libxrender1, zlib1g (>= 1:1.1.4), shared-mime-info
+Recommends: hicolor-icon-theme, libgtk2.0-bin
+Suggests: librsvg2-common, gvfs
+Filename: pool/main/g/gtk+2.0/libgtk2.0-0_2.20.1-1_i386.deb
+Size: 2503890
+MD5Sum: fc1fc5987ae2be51e9b4bcc4b57fc472
+Description: The GTK+ graphical user interface library
+
+Package: libgtk2.0-common
+Priority: optional
+Section: misc
+Installed-Size: 21484
+Maintainer: Sebastien Bacher <seb128@debian.org>
+Architecture: all
+Source: gtk+2.0
+Version: 2.20.1-1
+Recommends: libgtk2.0-0
+Filename: pool/main/g/gtk+2.0/libgtk2.0-common_2.20.1-1_all.deb
+Size: 7104864
+MD5Sum: 68cf4472a1e7bed64241f466d6830bbc
+Description: Common files for the GTK+ graphical user interface library
+
+Package: libhunspell-1.2-0
+Priority: optional
+Section: libs
+Installed-Size: 376
+Maintainer: Debian OpenOffice Team <debian-openoffice@lists.debian.org>
+Architecture: i386
+Source: hunspell
+Version: 1.2.11-1
+Depends: libc6 (>= 2.1.3), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.1.1)
+Recommends: hunspell-en-us | hunspell-dictionary | myspell-dictionary
+Conflicts: openoffice.org-core (= 2.2.0~rc2-1)
+Filename: pool/main/h/hunspell/libhunspell-1.2-0_1.2.11-1_i386.deb
+Size: 154502
+MD5Sum: b8b8e5d0805a5e00b4cfdd64128d8054
+Description: spell checker and morphological analyzer (shared library)
+
+Package: libice6
+Priority: optional
+Section: libs
+Installed-Size: 204
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libice
+Version: 2:1.0.6-1
+Depends: libc6 (>= 2.3), x11-common
+Filename: pool/main/libi/libice/libice6_1.0.6-1_i386.deb
+Size: 50284
+MD5Sum: 7052cd2a95caeee0f83d0f1950fd5d42
+Description: X11 Inter-Client Exchange library
+
+Package: libjasper1
+Priority: optional
+Section: libs
+Installed-Size: 340
+Maintainer: Roland Stigge <stigge@antcom.de>
+Architecture: i386
+Source: jasper
+Version: 1.900.1-7
+Replaces: libjasper-1.700-2
+Depends: libc6 (>= 2.7), libjpeg62
+Suggests: libjasper-runtime
+Conflicts: libjasper-1.700-2
+Filename: pool/main/j/jasper/libjasper1_1.900.1-7_i386.deb
+Size: 145186
+MD5Sum: 1df984b14ac57be23d5a5ad0c40ab6cf
+Description: The JasPer JPEG-2000 runtime library
+
+Package: libjpeg62
+Priority: optional
+Section: libs
+Installed-Size: 204
+Maintainer: Bill Allombert <ballombe@debian.org>
+Architecture: i386
+Source: libjpeg6b
+Version: 6b1-1
+Depends: libc6 (>= 2.7)
+Filename: pool/main/libj/libjpeg6b/libjpeg62_6b1-1_i386.deb
+Size: 87974
+MD5Sum: ab36968379a350bdae98a3bf58aeda84
+Description: The Independent JPEG Group's JPEG runtime library (version 6.2)
+
+Package: libk5crypto3
+Priority: standard
+Section: libs
+Installed-Size: 1556
+Maintainer: Sam Hartman <hartmans@debian.org>
+Architecture: i386
+Source: krb5
+Version: 1.8.3+dfsg~beta1-1
+Replaces: libkrb53 (<< 1.6.dfsg.4~beta1-7)
+Depends: libc6 (>= 2.4), libkeyutils1, libkrb5support0 (>= 1.7dfsg~beta2)
+Suggests: krb5-doc, krb5-user
+Breaks: libgssapi-krb5-2 (<= 1.8~aa), libkrb5-3 (<= 1.8~aa), libkrb53 (<< 1.6.dfsg.4~beta1-9)
+Filename: pool/main/k/krb5/libk5crypto3_1.8.3+dfsg~beta1-1_i386.deb
+Size: 1439050
+MD5Sum: 463e89d5a6eacaa55f377575eb6f0a7c
+Description: MIT Kerberos runtime libraries - Crypto Library
+
+Package: libkeyutils1
+Priority: standard
+Section: libs
+Installed-Size: 56
+Maintainer: Daniel Baumann <daniel@lists.debian-maintainers.org>
+Architecture: i386
+Source: keyutils
+Version: 1.4-1
+Depends: libc6 (>= 2.1.3)
+Filename: pool/main/k/keyutils/libkeyutils1_1.4-1_i386.deb
+Size: 6640
+MD5Sum: bc6dbf8f320151e67995e55c3e358b89
+Description: Linux Key Management Utilities (library)
+
+Package: libkrb5-3
+Priority: standard
+Section: libs
+Installed-Size: 2204
+Maintainer: Sam Hartman <hartmans@debian.org>
+Architecture: i386
+Source: krb5
+Version: 1.8.3+dfsg~beta1-1
+Replaces: libkrb53 (<< 1.6.dfsg.4~beta1-7)
+Depends: libc6 (>= 2.9), libcomerr2 (>= 1.34), libk5crypto3 (>= 1.8+dfsg), libkeyutils1, libkrb5support0 (= 1.8.3+dfsg~beta1-1)
+Suggests: krb5-doc, krb5-user
+Conflicts: libapache-mod-auth-kerb (<= 4.996-5.0-rc6-2), libapache2-mod-auth-kerb (<= 4.996-5.0-rc6-2), ssh-krb5 (<< 3.8.1p1-10)
+Breaks: libkrb53 (<< 1.6.dfsg.4~beta1-9)
+Filename: pool/main/k/krb5/libkrb5-3_1.8.3+dfsg~beta1-1_i386.deb
+Size: 1697246
+MD5Sum: 8894886ff9537684ef338ac9ab510467
+Description: MIT Kerberos runtime libraries
+
+Package: libkrb5support0
+Priority: standard
+Section: libs
+Installed-Size: 1436
+Maintainer: Sam Hartman <hartmans@debian.org>
+Architecture: i386
+Source: krb5
+Version: 1.8.3+dfsg~beta1-1
+Replaces: libkrb53 (<< 1.6.dfsg.4~beta1-7)
+Depends: libc6 (>= 2.3.4), libkeyutils1
+Suggests: krb5-doc, krb5-user
+Breaks: libkrb53 (<< 1.6.dfsg.4~beta1-9)
+Filename: pool/main/k/krb5/libkrb5support0_1.8.3+dfsg~beta1-1_i386.deb
+Size: 1385290
+MD5Sum: 5a9f10f57f35e8f34b4a7b7052244c14
+Description: MIT Kerberos runtime libraries - Support library
+
+Package: liblocale-gettext-perl
+Priority: required
+Section: perl
+Installed-Size: 104
+Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
+Architecture: i386
+Version: 1.05-6
+Depends: libc6 (>= 2.2)
+Pre-Depends: perl-base (>= 5.10.0-25), perlapi-5.10.0
+Filename: pool/main/libl/liblocale-gettext-perl/liblocale-gettext-perl_1.05-6_i386.deb
+Size: 21596
+MD5Sum: a71c3dadecdf1b64b4cb050f91e032b5
+Description: Using libc functions for internationalization in Perl
+
+Package: liblzma2
+Priority: required
+Section: libs
+Installed-Size: 308
+Maintainer: Jonathan Nieder <jrnieder@gmail.com>
+Architecture: i386
+Source: xz-utils
+Version: 4.999.9beta+20100713-1
+Depends: libc6 (>= 2.3.6-6~)
+Filename: pool/main/x/xz-utils/liblzma2_4.999.9beta+20100713-1_i386.deb
+Size: 171540
+MD5Sum: fe14361cc247e9bb11b98e31e47cfbbe
+Description: XZ-format compression library
+
+Package: libmagic1
+Priority: standard
+Section: libs
+Installed-Size: 2032
+Maintainer: Daniel Baumann <daniel@lists.debian-maintainers.org>
+Architecture: i386
+Source: file
+Version: 5.04-5
+Depends: libc6 (>= 2.3.4), zlib1g (>= 1:1.1.4)
+Suggests: file
+Conflicts: file (<< 5.04-2)
+Filename: pool/main/f/file/libmagic1_5.04-5_i386.deb
+Size: 233668
+MD5Sum: def2786d4289068336826c75c514b2bc
+Description: File type determination library using "magic" numbers
+
+Package: libmozjs2d
+Priority: optional
+Section: libs
+Installed-Size: 948
+Maintainer: Maintainers of Mozilla-related packages <pkg-mozilla-maintainers@lists.alioth.debian.org>
+Architecture: i386
+Source: xulrunner
+Version: 1.9.1.11-1
+Depends: libc6 (>= 2.3.6-6~), libgcc1 (>= 1:4.1.1), libnspr4-0d (>= 1.8.0.10), libstdc++6 (>= 4.1.1)
+Breaks: xulrunner-1.9.1 (<< 1.9.1.10~)
+Filename: pool/main/x/xulrunner/libmozjs2d_1.9.1.11-1_i386.deb
+Size: 474718
+MD5Sum: 6a9032247eceb71c9b472bd6fc9961e2
+Description: The Mozilla SpiderMonkey JavaScript library
+
+Package: libncurses5
+Priority: required
+Section: libs
+Installed-Size: 592
+Maintainer: Craig Small <csmall@debian.org>
+Architecture: i386
+Source: ncurses
+Version: 5.7+20100313-2
+Depends: libc6 (>= 2.3.4)
+Recommends: libgpm2
+Filename: pool/main/n/ncurses/libncurses5_5.7+20100313-2_i386.deb
+Size: 347766
+MD5Sum: f82378f1792c81e380689b932ea26c21
+Description: shared libraries for terminal handling
+
+Package: libnewt0.52
+Priority: important
+Section: libs
+Installed-Size: 960
+Maintainer: Alastair McKinstry <mckinstry@debian.org>
+Architecture: i386
+Source: newt
+Version: 0.52.11-1
+Replaces: libnewt-utf8, libnewt0, libnewt0.51
+Depends: libc6 (>= 2.3), libslang2 (>= 2.0.7-1)
+Recommends: libfribidi0
+Conflicts: libnewt0.51
+Filename: pool/main/n/newt/libnewt0.52_0.52.11-1_i386.deb
+Size: 68022
+MD5Sum: be04bedb79431088f0ed072317143fdd
+Description: Not Erik's Windowing Toolkit - text mode windowing with slang
+
+Package: libnspr4-0d
+Priority: optional
+Section: libs
+Installed-Size: 340
+Maintainer: Maintainers of Mozilla-related packages <pkg-mozilla-maintainers@lists.alioth.debian.org>
+Architecture: i386
+Source: nspr
+Version: 4.8.6-1
+Depends: libc6 (>= 2.3.6-6~)
+Filename: pool/main/n/nspr/libnspr4-0d_4.8.6-1_i386.deb
+Size: 125500
+MD5Sum: 4f3c6c3c19b2f24a1734bd084b34f6f5
+Description: NetScape Portable Runtime Library
+
+Package: libnss3-1d
+Priority: optional
+Section: libs
+Installed-Size: 2324
+Maintainer: Maintainers of Mozilla-related packages <pkg-mozilla-maintainers@lists.alioth.debian.org>
+Architecture: i386
+Source: nss
+Version: 3.12.7-1
+Depends: libc6 (>= 2.3.6-6~), libnspr4-0d (>= 4.8.6), libsqlite3-0 (>= 3.7.0), zlib1g (>= 1:1.1.4)
+Filename: pool/main/n/nss/libnss3-1d_3.12.7-1_i386.deb
+Size: 986188
+MD5Sum: 3dbaa9f3c493b2e6bac6dccce0a56dc2
+Description: Network Security Service libraries
+
+Package: libpam-modules
+Priority: required
+Section: admin
+Installed-Size: 996
+Maintainer: Steve Langasek <vorlon@debian.org>
+Architecture: i386
+Source: pam
+Version: 1.1.1-3
+Replaces: libpam-umask, libpam0g-util
+Provides: libpam-mkhomedir, libpam-motd, libpam-umask
+Pre-Depends: libc6 (>= 2.4), libdb4.8, libpam0g (>= 1.1.0), libselinux1 (>= 2.0.85), debconf (>= 0.5) | debconf-2.0
+Conflicts: libpam-mkhomedir, libpam-motd, libpam-umask
+Filename: pool/main/p/pam/libpam-modules_1.1.1-3_i386.deb
+Size: 344512
+MD5Sum: d55b046bb3da59da7fb94c7325bc07d1
+Description: Pluggable Authentication Modules for PAM
+
+Package: libpam0g
+Priority: required
+Section: libs
+Installed-Size: 244
+Maintainer: Steve Langasek <vorlon@debian.org>
+Architecture: i386
+Source: pam
+Version: 1.1.1-3
+Replaces: libpam0g-util
+Depends: libc6 (>= 2.3), debconf (>= 0.5) | debconf-2.0
+Suggests: libpam-doc
+Filename: pool/main/p/pam/libpam0g_1.1.1-3_i386.deb
+Size: 114334
+MD5Sum: 4850e1ffc833914e164f0c14ceb91010
+Description: Pluggable Authentication Modules library
+
+Package: libpango1.0-0
+Priority: optional
+Section: libs
+Installed-Size: 836
+Maintainer: Sebastien Bacher <seb128@debian.org>
+Architecture: i386
+Source: pango1.0
+Version: 1.28.1-1
+Provides: pango1.0-modver-1.6.0
+Depends: libpango1.0-common (>= 1.28.1-1), libc6 (>= 2.3.6-6~), libcairo2 (>= 1.8.10-3), libfontconfig1 (>= 2.8.0), libfreetype6 (>= 2.2.1), libglib2.0-0 (>= 2.24.0), libthai0 (>= 0.1.12), libx11-6, libxft2 (>> 2.1.1), libxrender1, zlib1g (>= 1:1.1.4)
+Conflicts: pango-libthai
+Filename: pool/main/p/pango1.0/libpango1.0-0_1.28.1-1_i386.deb
+Size: 303342
+MD5Sum: fdc1d8650b049d88bb7cdc2f7af425f0
+Description: Layout and rendering of internationalized text
+
+Package: libpango1.0-common
+Priority: optional
+Section: misc
+Installed-Size: 252
+Maintainer: Sebastien Bacher <seb128@debian.org>
+Architecture: all
+Source: pango1.0
+Version: 1.28.1-1
+Replaces: libpango-common (<< 1.0.0), libpango0
+Depends: debconf | debconf-2.0, defoma (>= 0.11.1), fontconfig (>= 2.1.91)
+Recommends: x-ttcidfont-conf, libpango1.0-0
+Suggests: ttf-japanese-gothic, ttf-japanese-mincho, ttf-thryomanes, ttf-baekmuk, ttf-arphic-gbsn00lp, ttf-arphic-bsmi00lp, ttf-arphic-gkai00mp, ttf-arphic-bkai00mp
+Conflicts: pango-libthai (<< 0.1.6-2)
+Filename: pool/main/p/pango1.0/libpango1.0-common_1.28.1-1_all.deb
+Size: 112638
+MD5Sum: 521e4171155dd465866ff400cb9a37bc
+Description: Modules and configuration files for the Pango
+
+Package: libpcre3
+Priority: standard
+Section: libs
+Installed-Size: 480
+Maintainer: Mark Baker <mark@mnb.org.uk>
+Architecture: i386
+Source: pcre3
+Version: 8.02-1.1
+Depends: libc6 (>= 2.3)
+Conflicts: libpcre3-dev (<= 4.3-3)
+Breaks: approx (<< 4.4-1~), cduce (<< 0.5.3-2~), cmigrep (<< 1.5-7~), galax (<< 1.1-7~), libpcre-ocaml (<< 6.0.1~), liquidsoap (<< 0.9.2-3~), ocsigen (<< 1.3.3-1~)
+Filename: pool/main/p/pcre3/libpcre3_8.02-1.1_i386.deb
+Size: 231418
+MD5Sum: 3be0351b7ecd8a5e2140318237d923d0
+Description: Perl 5 Compatible Regular Expression Library - runtime files
+
+Package: libpixman-1-0
+Priority: optional
+Section: libs
+Installed-Size: 508
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: pixman
+Version: 0.16.4-1
+Depends: libc6 (>= 2.1.3)
+Filename: pool/main/p/pixman/libpixman-1-0_0.16.4-1_i386.deb
+Size: 236004
+MD5Sum: 46f6f180adfbbeabc95c774386c3006f
+Description: pixel-manipulation library for X and cairo
+
+Package: libpng12-0
+Priority: optional
+Section: libs
+Installed-Size: 320
+Maintainer: Anibal Monsalve Salazar <anibal@debian.org>
+Architecture: i386
+Source: libpng
+Version: 1.2.44-1
+Replaces: libpng12-dev (<= 1.2.8rel-7)
+Depends: libc6 (>= 2.1.3), zlib1g (>= 1:1.1.4)
+Conflicts: libpng12-dev (<= 1.2.8rel-7), mzscheme (<= 1:209-5), pngcrush (<= 1.5.10-2), pngmeta (<= 1.11-3), povray-3.5 (<= 3.5.0c-10), qemacs (<= 0.3.1-5)
+Filename: pool/main/libp/libpng/libpng12-0_1.2.44-1_i386.deb
+Size: 175970
+MD5Sum: e871ef14b295cad4ac8ceedbce00c818
+Description: PNG library - runtime
+
+Package: libpopt0
+Priority: important
+Section: libs
+Installed-Size: 208
+Maintainer: Paul Martin <pm@debian.org>
+Architecture: i386
+Source: popt
+Version: 1.16-1
+Replaces: popt
+Depends: libc6 (>= 2.3)
+Conflicts: libpopt-dev (<= 1.4-1), popt, rpm (<= 4.0.2-3)
+Filename: pool/main/p/popt/libpopt0_1.16-1_i386.deb
+Size: 52890
+MD5Sum: 935b9a8eea67b75326002f75b374383d
+Description: lib for parsing cmdline parameters
+
+Package: libreadline6
+Priority: important
+Section: libs
+Installed-Size: 356
+Maintainer: Matthias Klose <doko@debian.org>
+Architecture: i386
+Source: readline6
+Version: 6.1-3
+Depends: readline-common, libc6 (>= 2.3), libncurses5 (>= 5.7+20100313)
+Filename: pool/main/r/readline6/libreadline6_6.1-3_i386.deb
+Size: 145914
+MD5Sum: 63c3a619ef1fd5ec1c04fd0992f3f71f
+Description: GNU readline and history libraries, run-time libraries
+
+Package: libselinux1
+Priority: required
+Section: libs
+Installed-Size: 216
+Maintainer: Manoj Srivastava <srivasta@debian.org>
+Architecture: i386
+Source: libselinux
+Version: 2.0.96-1
+Depends: libc6 (>= 2.3.4)
+Filename: pool/main/libs/libselinux/libselinux1_2.0.96-1_i386.deb
+Size: 82752
+MD5Sum: 65c82e5ad1ebe75c056eeb33147e1eeb
+Description: SELinux runtime shared libraries
+
+Package: libslang2
+Priority: important
+Section: libs
+Installed-Size: 1264
+Maintainer: Alastair McKinstry <mckinstry@debian.org>
+Architecture: i386
+Source: slang2
+Version: 2.2.2-4
+Depends: libc6 (>= 2.3)
+Recommends: libpng12-0
+Filename: pool/main/s/slang2/libslang2_2.2.2-4_i386.deb
+Size: 507014
+MD5Sum: 2cd4ae18b2f0e4a04c0e98d4913d5fd7
+Description: The S-Lang programming library - runtime version
+
+Package: libsm6
+Priority: optional
+Section: libs
+Installed-Size: 144
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libsm
+Version: 2:1.1.1-1
+Depends: libc6 (>= 2.1.3), libice6 (>= 1:1.0.0), libuuid1 (>= 2.16)
+Filename: pool/main/libs/libsm/libsm6_1.1.1-1_i386.deb
+Size: 23976
+MD5Sum: eda3e07bf434262ba270bb1ae12e71e0
+Description: X11 Session Management library
+
+Package: libsqlite3-0
+Priority: standard
+Section: libs
+Installed-Size: 684
+Maintainer: Laszlo Boszormenyi (GCS) <gcs@debian.hu>
+Architecture: i386
+Source: sqlite3
+Version: 3.7.0-1.1
+Depends: libc6 (>= 2.3.6-6~)
+Filename: pool/main/s/sqlite3/libsqlite3-0_3.7.0-1.1_i386.deb
+Size: 380004
+MD5Sum: 4706e644e7f3f2b183db0ce001a7bbaa
+Description: SQLite 3 shared library
+
+Package: libstartup-notification0
+Priority: optional
+Section: libs
+Installed-Size: 92
+Maintainer: Ondřej Surý <ondrej@debian.org>
+Architecture: i386
+Source: startup-notification
+Version: 0.10-1
+Depends: libc6 (>= 2.1.3), libice6 (>= 1:1.0.0), libsm6, libx11-6, libxcb-atom1 (>= 0.3.3), libxcb-aux0 (>= 0.3.3), libxcb-event1 (>= 0.3.3), libxcb1 (>= 1.1.92)
+Filename: pool/main/s/startup-notification/libstartup-notification0_0.10-1_i386.deb
+Size: 21230
+MD5Sum: 0e62e87fe56b93c30e7dee751fc7a59f
+Description: library for program launch feedback (shared library)
+
+Package: libstdc++6
+Priority: required
+Section: libs
+Installed-Size: 1204
+Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
+Architecture: i386
+Source: gcc-4.4
+Version: 4.4.4-8
+Depends: gcc-4.4-base (= 4.4.4-8), libc6 (>= 2.3.2), libgcc1
+Conflicts: scim (<< 1.4.2-1)
+Filename: pool/main/g/gcc-4.4/libstdc++6_4.4.4-8_i386.deb
+Size: 347294
+MD5Sum: c5ad981710bbe349c2847b1cc00cafc1
+Description: The GNU Standard C++ Library v3
+
+Package: libtasn1-3
+Priority: important
+Section: libs
+Installed-Size: 152
+Maintainer: Debian GnuTLS Maintainers <pkg-gnutls-maint@lists.alioth.debian.org>
+Architecture: i386
+Version: 2.7-1
+Depends: libc6 (>= 2.3)
+Conflicts: libtasn1-2 (= 0.3.1-1)
+Filename: pool/main/libt/libtasn1-3/libtasn1-3_2.7-1_i386.deb
+Size: 61424
+MD5Sum: 0120dbb8123bef3fe7cb4155e95e4307
+Description: Manage ASN.1 structures (runtime)
+
+Package: libtext-charwidth-perl
+Priority: required
+Section: perl
+Installed-Size: 92
+Maintainer: Anibal Monsalve Salazar <anibal@debian.org>
+Architecture: i386
+Version: 0.04-6
+Depends: libc6 (>= 2.1.3), perl-base (>= 5.10.0-23), perlapi-5.10.0
+Filename: pool/main/libt/libtext-charwidth-perl/libtext-charwidth-perl_0.04-6_i386.deb
+Size: 11582
+MD5Sum: 6aa5a252db205de6817ee954f5193fbf
+Description: get display widths of characters on the terminal
+
+Package: libtext-iconv-perl
+Priority: required
+Section: perl
+Installed-Size: 104
+Maintainer: Anibal Monsalve Salazar <anibal@debian.org>
+Architecture: i386
+Version: 1.7-2
+Depends: libc6 (>= 2.1.3), perl-base (>= 5.10.0-23), perlapi-5.10.0
+Filename: pool/main/libt/libtext-iconv-perl/libtext-iconv-perl_1.7-2_i386.deb
+Size: 18076
+MD5Sum: 707f244dc1df10391dd9679b2645a911
+Description: converts between character sets in Perl
+
+Package: libtext-wrapi18n-perl
+Priority: required
+Section: perl
+Installed-Size: 28
+Maintainer: Anibal Monsalve Salazar <anibal@debian.org>
+Architecture: all
+Version: 0.06-7
+Depends: libtext-charwidth-perl
+Filename: pool/main/libt/libtext-wrapi18n-perl/libtext-wrapi18n-perl_0.06-7_all.deb
+Size: 9004
+MD5Sum: 5608c08e10e79269e391f02856f96ec5
+Description: internationalized substitute of Text::Wrap
+
+Package: libthai-data
+Priority: optional
+Section: libs
+Installed-Size: 596
+Maintainer: Theppitak Karoonboonyanan <thep@debian.org>
+Architecture: all
+Source: libthai
+Version: 0.1.14-2
+Conflicts: libthai0 (<< 0.1.10)
+Filename: pool/main/libt/libthai/libthai-data_0.1.14-2_all.deb
+Size: 198282
+MD5Sum: 201f73aac77afd1eef48bbf858964586
+Description: Data files for Thai language support library
+
+Package: libthai0
+Priority: optional
+Section: libs
+Installed-Size: 108
+Maintainer: Theppitak Karoonboonyanan <thep@debian.org>
+Architecture: i386
+Source: libthai
+Version: 0.1.14-2
+Depends: libc6 (>= 2.1.3), libdatrie1 (>= 0.2.0), libthai-data (>= 0.1.10)
+Conflicts: libdatrie0 (<< 0.1.4)
+Filename: pool/main/libt/libthai/libthai0_0.1.14-2_i386.deb
+Size: 40222
+MD5Sum: 7f65a895b5a232442969584c8aa6635d
+Description: Thai language support library
+Enhances: kdelibs5
+
+Package: libtiff4
+Priority: optional
+Section: libs
+Installed-Size: 488
+Maintainer: Jay Berkenbilt <qjb@debian.org>
+Architecture: i386
+Source: tiff
+Version: 3.9.4-1
+Depends: libc6 (>= 2.3), libjpeg62, zlib1g (>= 1:1.1.4)
+Filename: pool/main/t/tiff/libtiff4_3.9.4-1_i386.deb
+Size: 182070
+MD5Sum: 4438501f82789f341c245d79b40c175f
+Description: Tag Image File Format (TIFF) library
+
+Package: libuuid1
+Priority: required
+Section: libs
+Installed-Size: 112
+Maintainer: LaMont Jones <lamont@debian.org>
+Architecture: i386
+Source: util-linux
+Version: 2.17.2-3.1
+Replaces: e2fsprogs (<< 1.34-1)
+Depends: passwd, libc6 (>= 2.3)
+Recommends: uuid-runtime
+Filename: pool/main/u/util-linux/libuuid1_2.17.2-3.1_i386.deb
+Size: 58126
+MD5Sum: cea424e8f6340a5ee8d4e64da2d6c953
+Description: Universally Unique ID library
+
+Package: libx11-6
+Priority: optional
+Section: libs
+Installed-Size: 1356
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libx11
+Version: 2:1.3.3-3
+Depends: libc6 (>= 2.3.2), libxcb1 (>= 1.2), libx11-data
+Conflicts: xlibs-data (<< 1:7.0.0)
+Filename: pool/main/libx/libx11/libx11-6_1.3.3-3_i386.deb
+Size: 816814
+MD5Sum: 40f5b42f6af2ad1550d3a2d6f634218f
+Description: X11 client-side library
+
+Package: libx11-data
+Priority: optional
+Section: x11
+Installed-Size: 2504
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: all
+Source: libx11
+Version: 2:1.3.3-3
+Replaces: libx11-6 (<= 2:1.0.0-1)
+Filename: pool/main/libx/libx11/libx11-data_1.3.3-3_all.deb
+Size: 232336
+MD5Sum: 5f5b2da7a114ada3bb7310f2b40cce51
+Description: X11 client-side library
+
+Package: libxau6
+Priority: optional
+Section: libs
+Installed-Size: 64
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxau
+Version: 1:1.0.6-1
+Depends: libc6 (>= 2.1.3)
+Filename: pool/main/libx/libxau/libxau6_1.0.6-1_i386.deb
+Size: 16144
+MD5Sum: ad33495d6208f5dd07bee9cdb07b29d1
+Description: X11 authorisation library
+
+Package: libxcb-atom1
+Priority: extra
+Section: libs
+Installed-Size: 64
+Maintainer: Julien Danjou <acid@debian.org>
+Architecture: i386
+Source: xcb-util
+Version: 0.3.6-1
+Depends: libc6 (>= 2.1.3), libxcb1
+Filename: pool/main/x/xcb-util/libxcb-atom1_0.3.6-1_i386.deb
+Size: 9526
+MD5Sum: 79337f41329668bc137a7e4e2f273dd8
+Description: utility libraries for X C Binding -- atom
+
+Package: libxcb-aux0
+Priority: extra
+Section: libs
+Installed-Size: 64
+Maintainer: Julien Danjou <acid@debian.org>
+Architecture: i386
+Source: xcb-util
+Version: 0.3.6-1
+Depends: libc6 (>= 2.1.3), libxcb1
+Filename: pool/main/x/xcb-util/libxcb-aux0_0.3.6-1_i386.deb
+Size: 8472
+MD5Sum: 88d95e67be4ca3a7601db394241ab486
+Description: utility libraries for X C Binding -- aux
+
+Package: libxcb-event1
+Priority: extra
+Section: libs
+Installed-Size: 64
+Maintainer: Julien Danjou <acid@debian.org>
+Architecture: i386
+Source: xcb-util
+Version: 0.3.6-1
+Depends: libc6 (>= 2.1.3), libxcb1
+Filename: pool/main/x/xcb-util/libxcb-event1_0.3.6-1_i386.deb
+Size: 8514
+MD5Sum: 8dc0f269f8b0cea17f6207cce0964a51
+Description: utility libraries for X C Binding -- event
+
+Package: libxcb-render-util0
+Priority: extra
+Section: libs
+Installed-Size: 64
+Maintainer: Julien Danjou <acid@debian.org>
+Architecture: i386
+Source: xcb-util
+Version: 0.3.6-1
+Depends: libc6 (>= 2.1.3), libxcb-render0, libxcb1
+Filename: pool/main/x/xcb-util/libxcb-render-util0_0.3.6-1_i386.deb
+Size: 9334
+MD5Sum: 8f0afaba8747efba1ae99d995e03b7c5
+Description: utility libraries for X C Binding -- render-util
+
+Package: libxcb-render0
+Priority: optional
+Section: libs
+Installed-Size: 84
+Maintainer: XCB Developers <xcb@lists.freedesktop.org>
+Architecture: i386
+Source: libxcb
+Version: 1.6-1
+Depends: libc6 (>= 2.1.3), libxcb1 (>= 0)
+Filename: pool/main/libx/libxcb/libxcb-render0_1.6-1_i386.deb
+Size: 14916
+MD5Sum: 882950cf440b422d17fe5f784745c3fb
+Description: X C Binding, render extension
+
+Package: libxcb1
+Priority: optional
+Section: libs
+Installed-Size: 164
+Maintainer: XCB Developers <xcb@lists.freedesktop.org>
+Architecture: i386
+Source: libxcb
+Version: 1.6-1
+Depends: libc6 (>= 2.3.2), libxau6, libxdmcp6
+Breaks: libxcb-xlib0
+Filename: pool/main/libx/libxcb/libxcb1_1.6-1_i386.deb
+Size: 40500
+MD5Sum: 8b1bd1c23264932b7e2c639302366a06
+Description: X C Binding
+
+Package: libxcomposite1
+Priority: optional
+Section: libs
+Installed-Size: 64
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxcomposite
+Version: 1:0.4.2-1
+Depends: libc6 (>= 2.1.3), libx11-6, libxext6, libxfixes3 (>= 1:4.0.1)
+Filename: pool/main/libx/libxcomposite/libxcomposite1_0.4.2-1_i386.deb
+Size: 15116
+MD5Sum: 43b75f3d05d774ae791977cd20ce1624
+Description: X11 Composite extension library
+
+Package: libxcursor1
+Priority: optional
+Section: libs
+Installed-Size: 88
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxcursor
+Version: 1:1.1.10-2
+Depends: libc6 (>= 2.3), libx11-6 (>= 0), libxfixes3 (>= 1:4.0.1), libxrender1
+Filename: pool/main/libx/libxcursor/libxcursor1_1.1.10-2_i386.deb
+Size: 24942
+MD5Sum: 8aadf2988320b81f3422bddd68c97f1b
+Description: X cursor management library
+
+Package: libxdamage1
+Priority: optional
+Section: libs
+Installed-Size: 64
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxdamage
+Version: 1:1.1.3-1
+Depends: libc6 (>= 2.1.3), libx11-6, libxfixes3 (>= 1:4.0.1)
+Filename: pool/main/libx/libxdamage/libxdamage1_1.1.3-1_i386.deb
+Size: 13568
+MD5Sum: 7b5b7a9937adff801f15857d2e1c7bce
+Description: X11 damaged region extension library
+
+Package: libxdmcp6
+Priority: optional
+Section: libs
+Installed-Size: 76
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxdmcp
+Version: 1:1.0.3-2
+Depends: libc6 (>= 2.1.3)
+Filename: pool/main/libx/libxdmcp/libxdmcp6_1.0.3-2_i386.deb
+Size: 18426
+MD5Sum: cecbdad4e8a639735cf7e148681fb667
+Description: X11 Display Manager Control Protocol library
+
+Package: libxext6
+Priority: optional
+Section: libs
+Installed-Size: 132
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxext
+Version: 2:1.1.2-1
+Depends: libc6 (>= 2.1.3), libx11-6
+Filename: pool/main/libx/libxext/libxext6_1.1.2-1_i386.deb
+Size: 41694
+MD5Sum: 9c8bc9d73ed6ad2697df80f72edfd3c3
+Description: X11 miscellaneous extension library
+
+Package: libxfixes3
+Priority: optional
+Section: libs
+Installed-Size: 72
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxfixes
+Version: 1:4.0.5-1
+Depends: libc6 (>= 2.1.3), libx11-6
+Filename: pool/main/libx/libxfixes/libxfixes3_4.0.5-1_i386.deb
+Size: 17976
+MD5Sum: 8e0bf9a4ed5a0b6361085795e69ae248
+Description: X11 miscellaneous 'fixes' extension library
+
+Package: libxft2
+Priority: optional
+Section: libs
+Installed-Size: 140
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: xft
+Version: 2.1.14-2
+Depends: libc6 (>= 2.3), libfontconfig1 (>= 2.8.0), libfreetype6 (>= 2.2.1), libx11-6 (>= 0), libxrender1
+Filename: pool/main/x/xft/libxft2_2.1.14-2_i386.deb
+Size: 52030
+MD5Sum: 23a966a6319e50b8b8b9857da75cae5b
+Description: FreeType-based font drawing library for X
+
+Package: libxi6
+Priority: optional
+Section: libs
+Installed-Size: 132
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxi
+Version: 2:1.3-4
+Depends: libc6 (>= 2.1.3), libx11-6 (>= 2:1.2.99.901), libxext6 (>= 0)
+Filename: pool/main/libx/libxi/libxi6_1.3-4_i386.deb
+Size: 53936
+MD5Sum: 83cac8ca145398686339817466e11ffd
+Description: X11 Input extension library
+
+Package: libxinerama1
+Priority: optional
+Section: libs
+Installed-Size: 64
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxinerama
+Version: 2:1.1-3
+Depends: libc6 (>= 2.1.3), libx11-6 (>= 0), libxext6 (>= 0)
+Filename: pool/main/libx/libxinerama/libxinerama1_1.1-3_i386.deb
+Size: 12186
+MD5Sum: 1fbe54b8d05b1096a4ea70cd50e1510b
+Description: X11 Xinerama extension library
+
+Package: libxml2
+Priority: standard
+Section: libs
+Installed-Size: 1588
+Maintainer: Debian XML/SGML Group <debian-xml-sgml-pkgs@lists.alioth.debian.org>
+Architecture: i386
+Version: 2.7.7.dfsg-4
+Depends: libc6 (>= 2.7), zlib1g (>= 1:1.2.3.3.dfsg)
+Recommends: xml-core
+Filename: pool/main/libx/libxml2/libxml2_2.7.7.dfsg-4_i386.deb
+Size: 826866
+MD5Sum: 7153d99951b5d33f66eaa20a657e033b
+Description: GNOME XML library
+
+Package: libxrandr2
+Priority: optional
+Section: libs
+Installed-Size: 92
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxrandr
+Version: 2:1.3.0-3
+Depends: libc6 (>= 2.1.3), libx11-6 (>= 0), libxext6 (>= 0), libxrender1
+Filename: pool/main/libx/libxrandr/libxrandr2_1.3.0-3_i386.deb
+Size: 26618
+MD5Sum: ccd579d696aad72be69bdf1be92541f4
+Description: X11 RandR extension library
+
+Package: libxrender1
+Priority: optional
+Section: libs
+Installed-Size: 92
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxrender
+Version: 1:0.9.6-1
+Depends: libc6 (>= 2.1.3), libx11-6
+Filename: pool/main/libx/libxrender/libxrender1_0.9.6-1_i386.deb
+Size: 29280
+MD5Sum: ef296f771209c82ed1245c67798b6081
+Description: X Rendering Extension client library
+
+Package: libxt6
+Priority: optional
+Section: libs
+Installed-Size: 452
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxt
+Version: 1:1.0.7-1
+Depends: libc6 (>= 2.7), libice6 (>= 1:1.0.0), libsm6, libx11-6 (>= 0)
+Filename: pool/main/libx/libxt/libxt6_1.0.7-1_i386.deb
+Size: 171518
+MD5Sum: aa8e8f0a7ee7b57c2d58786af72da142
+Description: X11 toolkit intrinsics library
+
+Package: lsb-base
+Priority: required
+Section: misc
+Installed-Size: 72
+Maintainer: Chris Lawrence <lawrencc@debian.org>
+Architecture: all
+Source: lsb
+Version: 3.2-23.1
+Replaces: lsb (<< 2.0-6), lsb-core (<< 2.0-6)
+Depends: sed, ncurses-bin
+Conflicts: lsb (<< 2.0-6), lsb-core (<< 2.0-6)
+Filename: pool/main/l/lsb/lsb-base_3.2-23.1_all.deb
+Size: 20462
+MD5Sum: 60637dd487aedfaa48e3a38bc1a0ea4c
+Description: Linux Standard Base 3.2 init script functionality
+
+Package: ncurses-bin
+Essential: yes
+Priority: required
+Section: utils
+Installed-Size: 500
+Maintainer: Craig Small <csmall@debian.org>
+Architecture: i386
+Source: ncurses
+Version: 5.7+20100313-2
+Pre-Depends: libc6 (>= 2.3), libncurses5 (>= 5.7+20100313)
+Filename: pool/main/n/ncurses/ncurses-bin_5.7+20100313-2_i386.deb
+Size: 314788
+MD5Sum: 408a001ec8f30f40e19caa35772c3e3b
+Description: terminal-related programs and man pages
+
+Package: passwd
+Priority: required
+Section: admin
+Installed-Size: 2208
+Maintainer: Shadow package maintainers <pkg-shadow-devel@lists.alioth.debian.org>
+Architecture: i386
+Source: shadow
+Version: 1:4.1.4.2-1
+Replaces: manpages-tr (<< 1.0.5), manpages-zh (<< 1.5.1-1)
+Depends: libc6 (>= 2.3), libpam0g (>= 0.99.7.1), libselinux1 (>= 2.0.82), libpam-modules, debianutils (>= 2.15.2)
+Filename: pool/main/s/shadow/passwd_4.1.4.2-1_i386.deb
+Size: 975188
+MD5Sum: 2ae7b750afe852093fd38009f054b9f7
+Description: change and administer password and group data
+
+Package: perl-base
+Essential: yes
+Priority: required
+Section: perl
+Installed-Size: 4488
+Maintainer: Niko Tyni <ntyni@debian.org>
+Architecture: i386
+Source: perl
+Version: 5.10.1-14
+Replaces: libperl5.8 (<< 5.8.0-20), libscalar-list-utils-perl, libxsloader-perl, perl (<< 5.10.1-12), perl-modules (<< 5.10.1-1)
+Provides: libscalar-list-utils-perl, libxsloader-perl, perl5-base, perlapi-5.10.0, perlapi-5.10.1
+Pre-Depends: libc6 (>= 2.4), dpkg (>= 1.14.20)
+Suggests: perl
+Conflicts: autoconf2.13 (<< 2.13-45), libfile-spec-perl (<< 3.30), libscalar-list-utils-perl (<< 1:1.21), libxsloader-perl (<< 0.10), safe-rm (<< 0.8)
+Filename: pool/main/p/perl/perl-base_5.10.1-14_i386.deb
+Size: 985868
+MD5Sum: 4f62d14690a767e771baf2cffca803a5
+Description: minimal Perl system
+
+Package: perl-modules
+Priority: standard
+Section: perl
+Installed-Size: 15856
+Maintainer: Niko Tyni <ntyni@debian.org>
+Architecture: all
+Source: perl
+Version: 5.10.1-14
+Replaces: libansicolor-perl, libarchive-tar-perl, libattribute-handlers-perl, libautodie-perl, libcgi-pm-perl, libclass-isa-perl, libcpanplus-perl, libextutils-cbuilder-perl, libextutils-parsexs-perl, libfile-spec-perl, libfile-temp-perl, libi18n-langtags-perl, libio-zlib-perl, liblocale-codes-perl, liblocale-maketext-perl, liblocale-maketext-simple-perl, libmath-bigint-perl, libmodule-build-perl, libmodule-corelist-perl, libmodule-load-conditional-perl, libmodule-load-perl, libmodule-pluggable-perl, libnet-perl, libnet-ping-perl, libparams-check-perl, libparent-perl, libparse-cpan-meta-perl, libpod-escapes-perl, libpod-parser-perl, libpod-plainer-perl, libpod-simple-perl, libswitch-perl, libtest-harness-perl, libtest-simple-perl, libthread-queue-perl, libtime-local-perl, libversion-perl, podlators-perl
+Provides: libansicolor-perl, libarchive-tar-perl, libattribute-handlers-perl, libautodie-perl, libcgi-pm-perl, libclass-isa-perl, libcpanplus-perl, libextutils-cbuilder-perl, libextutils-parsexs-perl, libfile-spec-perl, libfile-temp-perl, libi18n-langtags-perl, libio-zlib-perl, liblocale-codes-perl, liblocale-maketext-perl, liblocale-maketext-simple-perl, libmath-bigint-perl, libmodule-build-perl, libmodule-corelist-perl, libmodule-load-conditional-perl, libmodule-load-perl, libmodule-pluggable-perl, libnet-perl, libnet-ping-perl, libparams-check-perl, libparent-perl, libparse-cpan-meta-perl, libpod-escapes-perl, libpod-parser-perl, libpod-plainer-perl, libpod-simple-perl, libswitch-perl, libtest-harness-perl, libtest-simple-perl, libthread-queue-perl, libtime-local-perl, libversion-perl, podlators-perl
+Depends: perl (>= 5.10.1-1)
+Conflicts: libansicolor-perl (<< 1.10-1), libarchive-tar-perl (<< 1.52), libattribute-handlers-perl (<< 0.85), libautodie-perl (<< 2.06.01), libcgi-pm-perl (<< 3.43), libclass-isa-perl (<< 0.33), libcpanplus-perl (<< 0.88), libextutils-cbuilder-perl (<< 0.2602), libextutils-parsexs-perl (<< 2.2002), libfile-spec-perl (<< 3.30), libfile-temp-perl (<< 0.22), libi18n-langtags-perl (<< 0.35-1), libio-zlib-perl (<< 1.09), liblocale-codes-perl (<< 2.07), liblocale-maketext-perl (<< 1.13), liblocale-maketext-simple-perl (<< 0.18-1), libmath-bigint-perl (<< 1.89), libmodule-build-perl (<< 0.340201), libmodule-corelist-perl (<< 2.18), libmodule-load-conditional-perl (<< 0.30), libmodule-load-perl (<< 0.16), libmodule-pluggable-perl (<< 3.9), libnet-perl (<= 1:1.22), libnet-ping-perl (<< 2.36), libparams-check-perl (<< 0.26-1), libparent-perl (<< 0.221), libparse-cpan-meta-perl (<< 1.39), libpod-escapes-perl (<< 1.04), libpod-parser-perl (<< 1.37), libpod-plainer-perl (<< 0.01), libpod-simple-perl (<< 3.07), libswitch-perl (<< 2.14), libtest-harness-perl (<< 3.17), libtest-simple-perl (<< 0.92), libthread-queue-perl (<< 2.11), libtime-local-perl (<< 1.1901), libversion-perl (<< 1:0.7700), podlators-perl (<= 2.2.2-1)
+Filename: pool/main/p/perl/perl-modules_5.10.1-14_all.deb
+Size: 3481026
+MD5Sum: c502e5cc355cd19e5d264ae74f3595e2
+Description: Core Perl modules
+Build-Essential: yes
+
+Package: perl
+Priority: standard
+Section: perl
+Installed-Size: 13168
+Maintainer: Niko Tyni <ntyni@debian.org>
+Architecture: i386
+Version: 5.10.1-14
+Replaces: libarchive-tar-perl (<= 1.38-2), libcompress-raw-bzip2-perl, libcompress-raw-zlib-perl, libcompress-zlib-perl, libdigest-md5-perl, libdigest-sha-perl, libio-compress-base-perl, libio-compress-bzip2-perl, libio-compress-perl, libio-compress-zlib-perl, libmime-base64-perl, libmodule-corelist-perl (<< 2.14-2), libstorable-perl, libsys-syslog-perl, libthreads-perl, libthreads-shared-perl, libtime-hires-perl, libtime-piece-perl, perl-base (<< 5.10.1-12), perl-doc (<< 5.8.0-1), perl-modules (<< 5.8.1-1)
+Provides: data-dumper, libcompress-raw-bzip2-perl, libcompress-raw-zlib-perl, libcompress-zlib-perl, libdigest-md5-perl, libdigest-sha-perl, libio-compress-base-perl, libio-compress-bzip2-perl, libio-compress-perl, libio-compress-zlib-perl, libmime-base64-perl, libstorable-perl, libsys-syslog-perl, libthreads-perl, libthreads-shared-perl, libtime-hires-perl, libtime-piece-perl, perl5
+Depends: perl-base (= 5.10.1-14), perl-modules (>= 5.10.1-14), libbz2-1.0, libc6 (>= 2.4), libdb4.7, libgdbm3 (>= 1.8.3), zlib1g (>= 1:1.2.3.3.dfsg)
+Recommends: netbase, make
+Suggests: perl-doc, libterm-readline-gnu-perl | libterm-readline-perl-perl
+Conflicts: libcompress-raw-bzip2-perl (<< 2.020), libcompress-raw-zlib-perl (<< 2.020), libcompress-zlib-perl (<< 2.020), libdigest-md5-perl (<< 2.39), libdigest-sha-perl (<< 5.47), libio-compress-base-perl (<< 2.020), libio-compress-bzip2-perl (<< 2.020), libio-compress-perl (<< 2.020), libio-compress-zlib-perl (<< 2.020), libmime-base64-perl (<< 3.08), libstorable-perl (<< 2.20), libsys-syslog-perl (<< 0.27), libthreads-perl (<< 1.72), libthreads-shared-perl (<< 1.29), libtime-hires-perl (<< 1.9719), libtime-piece-perl (<< 1.15), perl-doc (<< 5.10.1-1)
+Filename: pool/main/p/perl/perl_5.10.1-14_i386.deb
+Size: 3767054
+MD5Sum: c402cd511260c137a795afaeb6125876
+Description: Larry Wall's Practical Extraction and Report Language
+Build-Essential: yes
+
+Package: readline-common
+Priority: important
+Section: utils
+Installed-Size: 92
+Maintainer: Matthias Klose <doko@debian.org>
+Architecture: all
+Source: readline6
+Version: 6.1-3
+Replaces: libreadline-common, libreadline4 (<< 4.3-16), libreadline5 (<< 5.0-11)
+Depends: dpkg (>= 1.15.4) | install-info
+Conflicts: libreadline-common, libreadline5 (<< 5.0-11)
+Filename: pool/main/r/readline6/readline-common_6.1-3_all.deb
+Size: 54028
+MD5Sum: 1ddfb1a719db7f302abe921e261b0288
+Description: GNU readline and history libraries, common files
+
+Package: sed
+Essential: yes
+Priority: required
+Section: utils
+Installed-Size: 956
+Maintainer: Clint Adams <schizo@debian.org>
+Architecture: i386
+Version: 4.2.1-7
+Depends: dpkg (>= 1.15.4) | install-info
+Pre-Depends: libc6 (>= 2.3), libselinux1 (>= 1.32)
+Filename: pool/main/s/sed/sed_4.2.1-7_i386.deb
+Size: 245832
+MD5Sum: 76a28a89a0684b09abd4c9622f9b0b5f
+Description: The GNU sed stream editor
+
+Package: sensible-utils
+Priority: required
+Section: utils
+Installed-Size: 112
+Maintainer: Clint Adams <schizo@debian.org>
+Architecture: all
+Version: 0.0.4
+Replaces: debianutils (<= 2.32.3), manpages-pl (<= 20060617-3~)
+Filename: pool/main/s/sensible-utils/sensible-utils_0.0.4_all.deb
+Size: 5408
+MD5Sum: 6e1c38bc8506fb23d949a4df7e07d5e2
+Description: Utilities for sensible alternative selection
+
+Package: shared-mime-info
+Priority: optional
+Section: misc
+Installed-Size: 3348
+Maintainer: Filip Van Raemdonck <mechanix@debian.org>
+Architecture: i386
+Version: 0.71-3
+Depends: libc6 (>= 2.3), libglib2.0-0 (>= 2.24.0), libxml2 (>= 2.7.4)
+Conflicts: libglib2.0-0 (<< 2.17.2), libgnomevfs2-0 (<< 1:2.24.0), tracker (<< 0.6.90)
+Filename: pool/main/s/shared-mime-info/shared-mime-info_0.71-3_i386.deb
+Size: 842486
+MD5Sum: 783a1538ac9561e082a8dc67f29df778
+Description: FreeDesktop.org shared MIME database and spec
+
+Package: ttf-dejavu-core
+Priority: optional
+Section: fonts
+Installed-Size: 2592
+Maintainer: Debian Fonts Task Force <pkg-fonts-devel@lists.alioth.debian.org>
+Architecture: all
+Source: ttf-dejavu
+Version: 2.31-1
+Replaces: ttf-dejavu (<< 2.20-1)
+Conflicts: ttf-dejavu (<< 2.20-1)
+Filename: pool/main/t/ttf-dejavu/ttf-dejavu-core_2.31-1_all.deb
+Size: 1451418
+MD5Sum: d3d8850ec0ef68d9b7655545ce0b2b22
+Description: Vera font family derivate with additional characters
+
+Package: ucf
+Priority: standard
+Section: utils
+Installed-Size: 260
+Maintainer: Manoj Srivastava <srivasta@debian.org>
+Architecture: all
+Version: 3.0025
+Depends: debconf (>= 1.5.19), coreutils (>= 5.91)
+Filename: pool/main/u/ucf/ucf_3.0025_all.deb
+Size: 65960
+MD5Sum: 6e664d04fea09239d450ae9f3d246a0f
+Description: Update Configuration File: preserve user changes to config files.
+
+Package: whiptail
+Priority: important
+Section: utils
+Installed-Size: 100
+Maintainer: Alastair McKinstry <mckinstry@debian.org>
+Architecture: i386
+Source: newt
+Version: 0.52.11-1
+Replaces: newt0.10, newt0.21 (<< 0.21-4), whiptail-utf8
+Provides: whiptail-provider, whiptail-utf8
+Depends: libc6 (>= 2.1), libnewt0.52 (>= 0.52.11), libpopt0 (>= 1.16), libslang2 (>= 2.0.7-1)
+Conflicts: whiptail-provider
+Filename: pool/main/n/newt/whiptail_0.52.11-1_i386.deb
+Size: 39118
+MD5Sum: cac6b0f08d25c91011d5c267e35cb0d2
+Description: Displays user-friendly dialog boxes from shell scripts
+
+Package: x11-common
+Priority: optional
+Section: x11
+Installed-Size: 568
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: all
+Source: xorg
+Version: 1:7.5+6
+Replaces: x-common, xfree86-common, xorg-common, xserver-common (<< 7)
+Depends: debconf (>= 0.5) | debconf-2.0, debianutils (>= 1.13), lsb-base (>= 1.3-9ubuntu2)
+Pre-Depends: debconf | debconf-2.0
+Conflicts: aee (<= 2.2.15b-1), ascd (<= 0.13.2-3), beaver (<= 0.2.5-2), bibview (<= 2.2-8), bugsx (<= 1.08-8), buici-clock (<= 0.4.5+b1), communicator-smotif-477, ctwm (<= 3.7-2), emelfm (<= 0.9.2-7), epan, fte-xwindow (<= 0.50.0-1.3), fvwm1 (<= 1.24r-46), fvwm95 (<= 2.0.43ba-23+b1), gerstensaft (<= 0.2-5.1), ghostview, gipsc (<= 0.4.3-2), grace (<= 1:5.1.18-1), grace6 (<= 5.99.0+final-4), gradio (<= 1.0.1-6), groff (<= 1.18.1.1-7), guitar (<= 0.1.4-11), hamsoft (<< 0.2.3-1), hanterm-classic (<= 3.1.6.0-4), hanterm-xf (<= 1:3.3.1p18-9.2), hfsutils-tcltk (<= 3.2.6-7), ibp (<= 0.21-4), isdnutils-xtools (<= 1:3.8.2005-12-06-4), ivtools-bin (<= 1.1.3-5), ivtools-dev (<= 1.1.3-5), kdrill (<= 6.4-2.1), kinput2-canna (<= 3.1-7), kinput2-canna-wnn (<= 3.1-7), kinput2-wnn (<= 3.1-7), kterm (<= 6.2.0-45), lbxproxy (<< 7.0), libmotif-dev (<= 2.2.3-1.3), libxft-dev (<= 2.1.8.2-5), lm-batmon (<= 0.96-3), login.app (<= 1.2.1-18), lsb-core (<= 3.1-4), lwm (<= 1.2.1-1), mctools-lite (<= 970129-16), mgp (<= 1.11b-6), motif-clients (<= 2.2.3-1.3), navigator-smotif-477, netscape-base-4, olvwm (<= 4.4.3.2p1.4-21), olwm (<= 3.2p1.4-21), oneko (<= 1.2.sakura.6-1), opera (<< 9.10-20060616), pgaccess (<= 1:0.98.8.20030520-2), phototk, pixmap (<= 2.6pl4-14.1), plotmtv (<= 1.4.4t-8.1), pmud (<= 0.10-9), ppxp (<= 0.2001080415-14), ppxp-x11 (<= 0.2001080415-14), procmeter (<= 2.5.1-11), propsel (<= 971130-5.3), proxymngr (<< 7.0), qcam (<= 0.91-11.1), regexplorer (<= 0.1.6-12), seyon (<= 2.20c-20), skkinput (<= 1:2.06.4-4), stella (<< 2.2-1), tkdesk (<= 2.0-5), tkseti (<= 3.06-1), tkworld, twlog (<= 1.3-4), twm (<< 7.0), ucbmpeg-play (<< 2.3p-13), vide (<= 1.21-3), videogen (<= 0.32-1), vtwm (<= 5.4.7-2), w9wm (<= 0.4.2-4), wdm (<= 1.28-1), wily (<= 0.13.41-6), wmavgload (<= 0.7.0-6.1), wmcpu (<= 1.3-4.1), wmdate (<= 0.5-7.1), wmnet (<= 1.05-12), wmnetselect (<= 0.85-5.5), wmscope (<= 3.0-9.1), wmsensors (<= 1.0.4-3.4), wmtv (<= 0.6.5-15), x-common, xautolock (<= 1:2.1-6), xbanner (<= 1.31-23), xbase-clients (<< 1:7.0), xbatt (<= 1.2.1-4), xbattbar (<= 1.4.2-3.1), xcal (<= 4.1-18.2), xcalendar-i18n (<= 4.0.0.i18p1-13.1), xcb (<= 2.4-4), xclip (<= 0.08-5), xclips (<= 6.21-6), xcolors (<= 1.5a-2), xcolorsel (<= 1.1a-11), xdkcal (<= 0.9d-2.1), xdm (<= 1:1.0.1-6), xdmx (<< 1:1.0), xdu (<= 3.0-14), xearth (<= 1.1-10.2), xengine (<= 1.11-9), xephem (<= 3.4-5), xext, xezmlm (<= 1.0.3-11), xfaces (<= 3.3-25), xfishtank (<= 2.2-23.1), xfm (<= 1.4.3-8), xfractint (<< 20.3.01-1), xfree86-common, xfs (<< 1:1.0), xfs-xtt (<= 1:1.4.1.xf430-6), xftp, xfwp (<< 7.0), xgdipc (<= 1.2-0.3), xgmod (<= 3.1-9), xgobi, xgraph (<= 12.1-3), xinput (<= 1.2-5.2), xipmsg (<= 0.8088-1.1), xisp, xlbiff (<< 4.1-4), xli (<= 1.17.0-21), xlockmore (<= 1:5.21-1), xlockmore-gl (<= 1:5.21-1), xlogmaster (<= 1.6.0-8), xmailbox (<= 2.5-9), xmem (<= 1.20-19), xmeter (<= 1.15-6), xmh (<= 6.8.2.dfsg.1-4), xmix (<= 2.1-5), xmon (<= 1.5.6-1.3), xnecview (<= 1.34-2), xnest (<< 1:1.0), xodo (<= 1.2-9.2), xorg-common, xpaste, xpmumon (<= 1.3.0), xpostit (<= 3.3.1-8.2), xpostitplus, xprint (<= 1:0.1.0.alpha1-13), xrn (<= 9.02-7.1), xserver-common (<< 7), xserver-xfree86 (<< 1:7.0), xserver-xfree86-dbg, xserver-xorg (<< 1:7.4~), xslideshow (<= 3.1-8.1), xsysinfo (<= 1.7-2), xtel (<= 3.3.0-5.4), xterm (<< 208-1), xtoolwait (<= 1.3-6), xtrkcad (<= 3.1.4-1), xtrlock (<= 2.0-11), xturqstat (<= 2.2.2sarge1), xutils (<< 1:7.0), xv (<= 3.10a-26), xvfb (<< 1:1.0), xview-clients (<= 3.2p1.4-21), xviewg (<= 3.2p1.4-21), xviewg-dev (<= 3.2p1.4-21), xvkbd (<= 2.6-2.1), xwit (<= 3.4-6), xxkb (<= 1.10-2.1), xzoom (<= 0.3-17), yank (<= 0.2.1-7.2)
+Breaks: gdm (<< 2.20.7-5)
+Filename: pool/main/x/xorg/x11-common_7.5+6_all.deb
+Size: 280238
+MD5Sum: 312093359c4f0f7decfb049768d6bb12
+Description: X Window System (X.Org) infrastructure
+
+Package: xulrunner-1.9.1
+Priority: optional
+Section: libs
+Installed-Size: 19060
+Maintainer: Maintainers of Mozilla-related packages <pkg-mozilla-maintainers@lists.alioth.debian.org>
+Architecture: i386
+Source: xulrunner
+Version: 1.9.1.11-1
+Replaces: xulrunner-1.9.1-gnome-support
+Depends: libasound2 (>> 1.0.18), libatk1.0-0 (>= 1.29.3), libbz2-1.0, libc6 (>= 2.3.6-6~), libcairo2 (>= 1.8.8), libdbus-1-3 (>= 1.0.2), libfontconfig1 (>= 2.8.0), libfreetype6 (>= 2.2.1), libgcc1 (>= 1:4.1.1), libglib2.0-0 (>= 2.24.0), libgtk2.0-0 (>= 2.18.0), libhunspell-1.2-0 (>= 1.2.11), libjpeg62 (>= 6b1), libmozjs2d (= 1.9.1.11-1), libnspr4-0d (>> 4.7.1-1), libnss3-1d (>= 3.12.6), libpango1.0-0 (>= 1.14.0), libpng12-0 (>= 1.2.13-4), libreadline6 (>= 6.0), libsqlite3-0 (>= 3.6.23.1), libstartup-notification0 (>= 0.10), libstdc++6 (>= 4.1.1), libx11-6, libxrender1, libxt6, zlib1g (>= 1:1.1.4)
+Suggests: libdbus-glib-1-2 (>= 0.78), libgconf2-4 (>= 2.27.0), libgnome2-0 (>= 2.17.3), libgnomevfs2-0 (>= 1:2.17.90), libgnomeui-0, libcanberra0
+Conflicts: j2re1.4, pango-graphite (<< 0.9.3), xulrunner-1.9.1-gnome-support
+Breaks: iceweasel (<< 3.5.5-1)
+Filename: pool/main/x/xulrunner/xulrunner-1.9.1_1.9.1.11-1_i386.deb
+Size: 7230878
+MD5Sum: d2b3c7b52aee7284290136e2c844ed7b
+Description: XUL + XPCOM application runner
+
+Package: xz-utils
+Priority: required
+Section: utils
+Installed-Size: 364
+Maintainer: Jonathan Nieder <jrnieder@gmail.com>
+Architecture: i386
+Version: 4.999.9beta+20100713-1
+Replaces: xz-lzma (<< 4.999.9beta+20091004-1)
+Depends: libc6 (>= 2.6), liblzma2 (>= 4.999.9beta+20100602)
+Suggests: xz-lzma
+Breaks: xz-lzma (<< 4.999.9beta+20091004-1)
+Filename: pool/main/x/xz-utils/xz-utils_4.999.9beta+20100713-1_i386.deb
+Size: 174098
+MD5Sum: a2a576f97035c84b78e7f269656cab86
+Description: XZ-format compression utilities
+
+Package: zlib1g
+Priority: required
+Section: libs
+Installed-Size: 160
+Maintainer: Mark Brown <broonie@debian.org>
+Architecture: i386
+Source: zlib
+Version: 1:1.2.3.4.dfsg-3
+Provides: libz1
+Depends: libc6 (>= 2.1.3)
+Conflicts: zlib1 (<= 1:1.0.4-7)
+Filename: pool/main/z/zlib/zlib1g_1.2.3.4.dfsg-3_i386.deb
+Size: 75952
+MD5Sum: 37246cd4fe5d4cb0f7c03ce3082164a3
+Description: compression library - runtime
+
diff --git a/test/integration/Packages-pdiff-usage b/test/integration/Packages-pdiff-usage
new file mode 100644
index 000000000..d1530a95c
--- /dev/null
+++ b/test/integration/Packages-pdiff-usage
@@ -0,0 +1,34 @@
+Package: apt
+Version: 0.7.25.3
+Architecture: i386
+Maintainer: APT Development Team <deity@lists.debian.org>
+Installed-Size: 5244
+Replaces: libapt-pkg-dev (<< 0.3.7), libapt-pkg-doc (<< 0.3.7)
+Provides: libapt-pkg-libc6.9-6-4.8
+Depends: libc6 (>= 2.3.4), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.4.0), debian-archive-keyring
+Suggests: aptitude | synaptic | wajig, dpkg-dev, apt-doc, bzip2, lzma, python-apt
+Filename: pool/main/a/apt/apt_0.7.25.3_i386.deb
+Size: 1750610
+MD5sum: 311aadc67d1b72428b54c9b4e1f76671
+SHA1: 3c695e028f74d5c55226f9ef30000bbbd881088c
+SHA256: b46fd1546151c545fe4bfa56a5cc0e7811a9f68826326a529777fd660f28f050
+Description: Advanced front-end for dpkg
+ This is Debian's next generation front-end for the dpkg package manager.
+ It provides the apt-get utility and APT dselect method that provides a
+ simpler, safer way to install and upgrade packages.
+ .
+ APT features complete installation ordering, multiple source capability
+ and several other unique features, see the Users Guide in apt-doc.
+
+Package: oldstuff
+Version: 1.0
+Architecture: i386
+Maintainer: Joe Sixpack <joe@example.org>
+Installed-Size: 100
+Filename: pool/oldstuff_1.0_i386.deb
+Size: 100000
+MD5sum: 311aeeadf78324aaff54c9b4e1f76671
+SHA1: 3c695e028f74d5c544deeddaaa1242desa81088c
+SHA256: b46fd1546151c545fe4bfa56a5cc0e7deaef23e2da3e4f129727fd660f28f050
+Description: some cool but old stuff
+ This package will disappear in the next mirror update
diff --git a/test/integration/Packages-pdiff-usage-new b/test/integration/Packages-pdiff-usage-new
new file mode 100644
index 000000000..9157596a7
--- /dev/null
+++ b/test/integration/Packages-pdiff-usage-new
@@ -0,0 +1,37 @@
+Package: newstuff
+Version: 1.0
+Architecture: i386
+Maintainer: Joe Sixpack <joe@example.org>
+Installed-Size: 101
+Filename: pool/newstuff_1.0_i386.deb
+Size: 101100
+MD5sum: 311aeeadf78324aaff1ceaf3e1f76671
+SHA1: 3c695e028f7a1ae324deeddaaa1242desa81088c
+SHA256: b46fd154615edefab321cc56a5cc0e7deaef23e2da3e4f129727fd660f28f050
+Description: some cool and shiny new stuff
+ This package will appear in the next mirror update
+
+Package: apt
+Priority: important
+Section: admin
+Installed-Size: 5672
+Maintainer: APT Development Team <deity@lists.debian.org>
+Architecture: i386
+Version: 0.8.0~pre1
+Replaces: manpages-pl (<< 20060617-3~)
+Provides: libapt-pkg4.10
+Depends: libc6 (>= 2.3.4), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.4.0), zlib1g (>= 1:1.1.4), debian-archive-keyring, gnupg
+Suggests: aptitude | synaptic | wajig, dpkg-dev, apt-doc, bzip2, lzma, python-apt
+Conflicts: python-apt (<< 0.7.93.2~)
+Filename: pool/main/a/apt/apt_0.8.0~pre1_i386.deb
+Size: 2013046
+MD5sum: 6786ca6270c988f2c201716ededaedec
+SHA1: fe26559e745d4c2c977c27170938852041c9adff
+SHA256: a12f968467e1e3cec24191b72bfe84f7aeed3ce422e1a60bb4f1454f2b89b8ee
+Description: Advanced front-end for dpkg
+ This is Debian's next generation front-end for the dpkg package manager.
+ It provides the apt-get utility and APT dselect method that provides a
+ simpler, safer way to install and upgrade packages.
+ .
+ APT features complete installation ordering, multiple source capability
+ and several other unique features, see the Users Guide in apt-doc.
diff --git a/test/integration/create-test-data b/test/integration/create-test-data
new file mode 100755
index 000000000..ff9405502
--- /dev/null
+++ b/test/integration/create-test-data
@@ -0,0 +1,33 @@
+#!/bin/sh
+set +e # its okay to fail in these script, most of the time the apt* stuff will generate errors
+
+local TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+BUILDDIRECTORY="${TESTDIR}/../../build/bin"
+
+GENERATE=$1
+CODENAME=$2
+shift 2
+
+WORKDIR=$(mktemp -d)
+trap "rm -rf $WORKDIR" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
+touch $WORKDIR/status
+TMPGEN=$WORKDIR/Packages
+export LANG=C
+
+LISTOFPKGS=$(aptget install $* -t $CODENAME -so Dir::state::status=$WORKDIR/status -o Dir::Cache::archives=$WORKDIR -o pkgCacheGen::Essential=none -o APT::Immediate-Configure=0 2> /dev/null | awk '/^Inst/ {print $2}' | sed -e "s#\$#/$CODENAME#")
+aptcache show $LISTOFPKGS --no-all-versions 2> /dev/null > $TMPGEN
+sed -i $TMPGEN \
+ -e '/^ / d' \
+ -e '/^SHA1: / d' -e '/^SHA256: / d' \
+ -e '/^Homepage: / d' -e '/^Tag: / d' \
+ -e '/^Xul-Appid: / d' \
+ -e '/^Status: / d'
+
+if echo "$GENERATE" | grep '^status-' > /dev/null; then
+ sed -i $TMPGEN -e '/^Package: / a\
+Status: install ok installed' \
+ -e '/^Filename: / d' -e '/^Size: / d' -e '/^MD5sum: / d'
+fi
+
+apt-sortpkgs $TMPGEN > $GENERATE
diff --git a/test/integration/framework b/test/integration/framework
new file mode 100644
index 000000000..d832bedbe
--- /dev/null
+++ b/test/integration/framework
@@ -0,0 +1,500 @@
+#!/bin/sh -- # no runable script, just for vi
+
+# we all like colorful messages
+CERROR="" # red
+CWARNING="" # yellow
+CMSG="" # green
+CINFO="" # light blue
+CDEBUG="" # blue
+CNORMAL="" # default system console color
+CDONE="" # green
+CPASS="" # green
+CFAIL="" # red
+CCMD="" # pink
+
+msgdie() { echo "${CERROR}E: $1${CNORMAL}" >&2; exit 1; }
+msgwarn() { echo "${CWARNING}W: $1${CNORMAL}" >&2; }
+msgmsg() { echo "${CMSG}$1${CNORMAL}" >&2; }
+msginfo() { echo "${CINFO}I: $1${CNORMAL}" >&2; }
+msgdebug() { echo "${CDEBUG}D: $1${CNORMAL}" >&2; }
+msgdone() { echo "${CDONE}DONE${CNORMAL}" >&2; }
+msgnwarn() { echo -n "${CWARNING}W: $1${CNORMAL}" >&2; }
+msgnmsg() { echo -n "${CMSG}$1${CNORMAL}" >&2; }
+msgninfo() { echo -n "${CINFO}I: $1${CNORMAL}" >&2; }
+msgndebug() { echo -n "${CDEBUG}D: $1${CNORMAL}" >&2; }
+msgtest() { echo -n "${CINFO}$1 ${CCMD}$(echo "$2" | sed -e 's/^aptc/apt-c/' -e 's/^aptg/apt-g/' -e 's/^aptf/apt-f/')${CINFO} …${CNORMAL} " >&2; }
+msgpass() { echo "${CPASS}PASS${CNORMAL}" >&2; }
+msgskip() { echo "${CWARNING}SKIP${CNORMAL}" >&2; }
+msgfail() { echo "${CFAIL}FAIL${CNORMAL}" >&2; }
+
+# enable / disable Debugging
+MSGLEVEL=${MSGLEVEL:-3}
+if [ $MSGLEVEL -le 0 ]; then
+ msgdie() { true; }
+fi
+if [ $MSGLEVEL -le 1 ]; then
+ msgwarn() { true; }
+ msgnwarn() { true; }
+fi
+if [ $MSGLEVEL -le 2 ]; then
+ msgmsg() { true; }
+ msgnmsg() { true; }
+fi
+if [ $MSGLEVEL -le 3 ]; then
+ msginfo() { true; }
+ msgninfo() { true; }
+fi
+if [ $MSGLEVEL -le 4 ]; then
+ msgdebug() { true; }
+ msgndebug() { true; }
+fi
+msgdone() {
+ if [ "$1" = "debug" -a $MSGLEVEL -le 4 ] ||
+ [ "$1" = "info" -a $MSGLEVEL -le 3 ] ||
+ [ "$1" = "msg" -a $MSGLEVEL -le 2 ] ||
+ [ "$1" = "warn" -a $MSGLEVEL -le 1 ] ||
+ [ "$1" = "die" -a $MSGLEVEL -le 0 ]; then
+ true;
+ else
+ echo "${CDONE}DONE${CNORMAL}" >&2;
+ fi
+}
+
+runapt() {
+ msgdebug "Executing: ${CCMD}$*${CDEBUG} "
+ if [ -f ./aptconfig.conf ]; then
+ APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$*
+ else
+ LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$*
+ fi
+}
+aptconfig() { runapt apt-config $*; }
+aptcache() { runapt apt-cache $*; }
+aptget() { runapt apt-get $*; }
+aptftparchive() { runapt apt-ftparchive $*; }
+dpkg() {
+ $(which dpkg) --root=${TMPWORKINGDIRECTORY}/rootdir --force-not-root --force-bad-path --log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log $*
+}
+
+setupenvironment() {
+ TMPWORKINGDIRECTORY=$(mktemp -d)
+ local TESTDIR=$(readlink -f $(dirname $0))
+ msgninfo "Preparing environment for ${CCMD}$(basename $0)${CINFO} in ${TMPWORKINGDIRECTORY}… "
+ BUILDDIRECTORY="${TESTDIR}/../../build/bin"
+ test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first"
+ local OLDWORKINGDIRECTORY=$(pwd)
+ CURRENTTRAP="cd /; rm -rf $TMPWORKINGDIRECTORY; cd $OLDWORKINGDIRECTORY"
+ trap "$CURRENTTRAP" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
+ cd $TMPWORKINGDIRECTORY
+ mkdir rootdir aptarchive keys
+ cd rootdir
+ mkdir -p etc/apt/apt.conf.d etc/apt/sources.list.d etc/apt/trusted.gpg.d etc/apt/preferences.d
+ mkdir -p var/cache var/lib var/log
+ mkdir -p var/lib/dpkg/info var/lib/dpkg/updates var/lib/dpkg/triggers
+ local STATUSFILE=$(echo "$(basename $0)" | sed -e 's/^test-/status-/' -e 's/^skip-/status-/')
+ if [ -f "${TESTDIR}/${STATUSFILE}" ]; then
+ cp "${TESTDIR}/${STATUSFILE}" var/lib/dpkg/status
+ else
+ touch var/lib/dpkg/status
+ fi
+ touch var/lib/dpkg/available
+ mkdir -p usr/lib/apt
+ ln -s ${BUILDDIRECTORY}/methods usr/lib/apt/methods
+ cd ..
+ local PACKAGESFILE=$(echo "$(basename $0)" | sed -e 's/^test-/Packages-/' -e 's/^skip-/Packages-/')
+ if [ -f "${TESTDIR}/${PACKAGESFILE}" ]; then
+ cp "${TESTDIR}/${PACKAGESFILE}" aptarchive/Packages
+ else
+ touch aptarchive/Packages
+ fi
+ cp $(find $TESTDIR -name '*.pub' -o -name '*.sec') keys/
+ ln -s ${TMPWORKINGDIRECTORY}/keys/joesixpack.pub rootdir/etc/apt/trusted.gpg.d/joesixpack.gpg
+ echo "Dir \"${TMPWORKINGDIRECTORY}/rootdir\";" > aptconfig.conf
+ echo "Debug::NoLocking \"true\";" >> aptconfig.conf
+ echo "APT::Get::Show-User-Simulation-Note \"false\";" >> aptconfig.conf
+ echo "Dir::Bin::dpkg \"fakeroot\";" >> aptconfig.conf
+ echo "DPKG::options:: \"dpkg\";" >> aptconfig.conf
+ echo "DPKG::options:: \"--root=${TMPWORKINGDIRECTORY}/rootdir\";" >> aptconfig.conf
+ echo "DPKG::options:: \"--force-not-root\";" >> aptconfig.conf
+ echo "DPKG::options:: \"--force-bad-path\";" >> aptconfig.conf
+ echo "DPKG::options:: \"--log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log\";" >> aptconfig.conf
+ export LC_ALL=C
+ msgdone "info"
+}
+
+configarchitecture() {
+ local CONFFILE=rootdir/etc/apt/apt.conf.d/01multiarch.conf
+ echo "APT::Architecture \"$1\";" > $CONFFILE
+ shift
+ while [ -n "$1" ]; do
+ echo "APT::Architectures:: \"$1\";" >> $CONFFILE
+ shift
+ done
+}
+
+setupsimplenativepackage() {
+ local NAME="$1"
+ local ARCH="$2"
+ local VERSION="$3"
+ local RELEASE="${4:-unstable}"
+ local DEPENDENCIES="$5"
+ local DESCRIPTION="$6"
+ local SECTION="${7:-others}"
+ local DISTSECTION
+ if [ "$SECTION" = "$(echo "$SECTION" | cut -d'/' -f 2)" ]; then
+ DISTSECTION="main"
+ else
+ DISTSECTION="$(echo "$SECTION" | cut -d'/' -f 1)"
+ fi
+ local BUILDDIR=incoming/${NAME}-${VERSION}
+ mkdir -p ${BUILDDIR}/debian/source
+ cd ${BUILDDIR}
+ echo "* most suckless software product ever" > FEATURES
+ test -e debian/copyright || echo "Copyleft by Joe Sixpack $(date +%Y)" > debian/copyright
+ test -e debian/changelog || echo "$NAME ($VERSION) $RELEASE; urgency=low
+
+ * Initial release
+
+ -- Joe Sixpack <joe@example.org> $(date -R)" > debian/changelog
+ test -e debian/control || echo "Source: $NAME
+Section: $SECTION
+Priority: optional
+Maintainer: Joe Sixpack <joe@example.org>
+Build-Depends: debhelper (>= 7)
+Standards-Version: 3.9.1
+
+Package: $NAME
+Architecture: $ARCH" > debian/control
+ test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> debian/control
+ if [ -z "$DESCRIPTION" ]; then
+ echo "Description: an autogenerated dummy ${NAME}=${VERSION}/${RELEASE}
+ If you find such a package installed on your system,
+ YOU did something horribly wrong! They are autogenerated
+ und used only by testcases for APT and surf no other propose…" >> debian/control
+ else
+ echo "Description: $DESCRIPTION" >> debian/control
+ fi
+ test -e debian/compat || echo "7" > debian/compat
+ test -e debian/source/format || echo "3.0 (native)" > debian/source/format
+ test -e debian/rules || cp /usr/share/doc/debhelper/examples/rules.tiny debian/rules
+ cd - > /dev/null
+}
+
+buildsimplenativepackage() {
+ local NAME="$1"
+ local ARCH="$2"
+ local VERSION="$3"
+ local RELEASE="${4:-unstable}"
+ local DEPENDENCIES="$5"
+ local DESCRIPTION="$6"
+ local SECTION="${7:-others}"
+ local DISTSECTION
+ if [ "$SECTION" = "$(echo "$SECTION" | cut -d'/' -f 2)" ]; then
+ DISTSECTION="main"
+ else
+ DISTSECTION="$(echo "$SECTION" | cut -d'/' -f 1)"
+ fi
+ setupsimplenativepackage "$NAME" "$ARCH" "$VERSION" "$RELEASE" "$DEPENDENCIES" "$DESCRIPTION" "$SECTION"
+ buildpackage "incoming/${NAME}-${VERSION}" "$RELEASE" "$DISTSECTION"
+ rm -rf "incoming/${NAME}-${VERSION}"
+}
+
+buildpackage() {
+ local BUILDDIR=$1
+ local RELEASE=$2
+ local SECTION=$3
+ msgninfo "Build package $(echo "$BUILDDIR" | grep -o '[^/]*$') for ${RELEASE} in ${SECTION}… "
+ cd $BUILDDIR
+ if [ "$ARCH" = "all" ]; then
+ ARCH="$(dpkg-architecture -qDEB_HOST_ARCH 2> /dev/null)"
+ fi
+ local BUILT="$(dpkg-buildpackage -uc -us -a$ARCH 2> /dev/null)"
+ local PKGS="$( echo "$BUILT" | grep '^dpkg-deb: building package' | cut -d'/' -f 2 | sed -e "s#'\.##")"
+ local SRCS="$( echo "$BUILT" | grep '^dpkg-source: info: building' | grep -o '[a-z0-9._-]*$')"
+ cd - > /dev/null
+ for PKG in $PKGS; do
+ echo "pool/${PKG}" >> ${TMPWORKINGDIRECTORY}/incoming/${RELEASE}.${SECTION}.pkglist
+ done
+ for SRC in $SRCS; do
+ echo "pool/${SRC}" >> ${TMPWORKINGDIRECTORY}/incoming/${RELEASE}.${SECTION}.srclist
+ done
+ msgdone "info"
+}
+
+buildaptarchive() {
+ if [ -d incoming ]; then
+ buildaptarchivefromincoming $*
+ else
+ buildaptarchivefromfiles $*
+ fi
+}
+
+createaptftparchiveconfig() {
+ local ARCHS="$(find pool/ -name '*.deb' | grep -oE '_[a-z0-9-]+\.deb$' | sort | uniq | sed -e '/^_all.deb$/ d' -e 's#^_\([a-z0-9-]*\)\.deb$#\1#' | tr '\n' ' ')"
+ if [ -z "$ARCHS" ]; then
+ # the pool is empty, so we will operate on faked packages - let us use the configured archs
+ ARCHS="$(aptconfig dump | grep APT::Architecture | cut -d'"' -f 2 | sed '/^$/ d' | sort | uniq | tr '\n' ' ')"
+ fi
+ echo -n 'Dir {
+ ArchiveDir "' >> ftparchive.conf
+ echo -n $(readlink -f .) >> ftparchive.conf
+ echo -n '";
+ CacheDir "' >> ftparchive.conf
+ echo -n $(readlink -f ..) >> ftparchive.conf
+ echo -n '";
+ FileListDir "' >> ftparchive.conf
+ echo -n $(readlink -f pool/) >> ftparchive.conf
+ echo -n '";
+};
+Default {
+ Packages::Compress ". gzip bzip2 lzma";
+ Sources::Compress ". gzip bzip2 lzma";
+ Contents::Compress ". gzip bzip2 lzma";
+};
+TreeDefault {
+ Directory "pool/";
+ SrcDirectory "pool/";
+};
+APT {
+ FTPArchive {
+ Release {
+ Origin "joesixpack";
+ Label "apttestcases";
+ Suite "unstable";
+ Description "repository with dummy packages";
+ Architectures "' >> ftparchive.conf
+ echo -n "$ARCHS" >> ftparchive.conf
+ echo 'source";
+ };
+ };
+};' >> ftparchive.conf
+ for DIST in $(find ./pool/ -maxdepth 1 -name '*.pkglist' -type f | cut -d'/' -f 3 | cut -d'.' -f 1 | sort | uniq); do
+ echo -n 'tree "dists/' >> ftparchive.conf
+ echo -n "$DIST" >> ftparchive.conf
+ echo -n '" {
+ Architectures "' >> ftparchive.conf
+ echo -n "$ARCHS" >> ftparchive.conf
+ echo -n 'source";
+ FileList "' >> ftparchive.conf
+ echo -n "${DIST}.\$(SECTION).pkglist" >> ftparchive.conf
+ echo -n '";
+ SourceFileList "' >> ftparchive.conf
+ echo -n "${DIST}.\$(SECTION).srclist" >> ftparchive.conf
+ echo -n '";
+ Sections "' >> ftparchive.conf
+ echo -n "$(find ./pool/ -maxdepth 1 -name "${DIST}.*.pkglist" -type f | cut -d'/' -f 3 | cut -d'.' -f 2 | sort | uniq | tr '\n' ' ')" >> ftparchive.conf
+ echo '";
+};' >> ftparchive.conf
+ done
+}
+
+buildaptftparchivedirectorystructure() {
+ local DISTS="$(grep -i '^tree ' ftparchive.conf | cut -d'/' -f 2 | sed -e 's#".*##')"
+ for DIST in $DISTS; do
+ local SECTIONS="$(grep -i -A 5 "dists/$DIST" ftparchive.conf | grep -i 'Sections' | cut -d'"' -f 2)"
+ for SECTION in $SECTIONS; do
+ local ARCHS="$(grep -A 5 "dists/$DIST" ftparchive.conf | grep Architectures | cut -d'"' -f 2 | sed -e 's#source##')"
+ for ARCH in $ARCHS; do
+ mkdir -p dists/${DIST}/${SECTION}/binary-${ARCH}
+ done
+ mkdir -p dists/${DIST}/${SECTION}/source
+ mkdir -p dists/${DIST}/${SECTION}/i18n
+ done
+ done
+}
+
+buildaptarchivefromincoming() {
+ msginfo "Build APT archive for ${CCMD}$(basename $0)${CINFO} based on incoming packages…"
+ cd aptarchive
+ [ -e pool ] || ln -s ../incoming pool
+ [ -e ftparchive.conf ] || createaptftparchiveconfig
+ [ -e dists ] || buildaptftparchivedirectorystructure
+ msgninfo "\tGenerate Packages, Sources and Contents files… "
+ aptftparchive -qq generate ftparchive.conf
+ msgdone "info"
+ msgninfo "\tGenerate Release files… "
+ for dir in $(find ./dists -mindepth 1 -maxdepth 1 -type d); do
+ aptftparchive -qq release $dir -o APT::FTPArchive::Release::Codename="$(echo "$dir" | cut -d'/' -f 3)" | sed -e '/0 Release$/ d' > $dir/Release # remove the self reference
+ done
+ cd - > /dev/null
+ msgdone "info"
+}
+
+buildaptarchivefromfiles() {
+ msginfo "Build APT archive for ${CCMD}$(basename $0)${CINFO} based on prebuild files…"
+ cd aptarchive
+ if [ -f Packages ]; then
+ msgninfo "\tPackages file… "
+ cat Packages | gzip > Packages.gz
+ cat Packages | bzip2 > Packages.bz2
+ cat Packages | lzma > Packages.lzma
+ msgdone "info"
+ fi
+ if [ -f Sources ]; then
+ msgninfo "\tSources file… "
+ cat Sources | gzip > Sources.gz
+ cat Sources | bzip2 > Sources.bz2
+ cat Sources | lzma > Sources.lzma
+ msgdone "info"
+ fi
+ msgninfo "\tRelease file… "
+ aptftparchive -qq release . | sed -e '/0 Release$/ d' > Release # remove the self reference
+ msgdone "info"
+ cd ..
+}
+
+setupdistsaptarchive() {
+ local APTARCHIVE=$(readlink -f ./aptarchive)
+ rm -f root/etc/apt/sources.list.d/apt-test-*-deb.list
+ rm -f root/etc/apt/sources.list.d/apt-test-*-deb-src.list
+ for DISTS in $(find ./aptarchive/dists/ -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f 4); do
+ SECTIONS=$(find ./aptarchive/dists/${DISTS}/ -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f 5 | tr '\n' ' ')
+ msgninfo "\tadd deb and deb-src sources.list lines for ${CCMD}${DISTS} ${SECTIONS}${CINFO}… "
+ echo "deb file://$APTARCHIVE $DISTS $SECTIONS" > rootdir/etc/apt/sources.list.d/apt-test-${DISTS}-deb.list
+ echo "deb-src file://$APTARCHIVE $DISTS $SECTIONS" > rootdir/etc/apt/sources.list.d/apt-test-${DISTS}-deb-src.list
+ msgdone "info"
+ done
+}
+
+setupflataptarchive() {
+ local APTARCHIVE=$(readlink -f ./aptarchive)
+ if [ -f ${APTARCHIVE}/Packages ]; then
+ msgninfo "\tadd deb sources.list line… "
+ echo "deb file://$APTARCHIVE /" > rootdir/etc/apt/sources.list.d/apt-test-archive-deb.list
+ msgdone "info"
+ else
+ rm -f rootdir/etc/apt/sources.list.d/apt-test-archive-deb.list
+ fi
+ if [ -f ${APTARCHIVE}/Sources ]; then
+ msgninfo "\tadd deb-src sources.list line… "
+ echo "deb-src file://$APTARCHIVE /" > rootdir/etc/apt/sources.list.d/apt-test-archive-deb-src.list
+ msgdone "info"
+ else
+ rm -f rootdir/etc/apt/sources.list.d/apt-test-archive-deb-src.list
+ fi
+}
+
+setupaptarchive() {
+ buildaptarchive
+ if [ -e aptarchive/dists ]; then
+ setupdistsaptarchive
+ else
+ setupflataptarchive
+ fi
+ signreleasefiles
+ msgninfo "\tSync APT's cache with the archive… "
+ aptget update -qq
+ msgdone "info"
+}
+
+signreleasefiles() {
+ local SIGNER="${1:-Joe Sixpack}"
+ msgninfo "\tSign archive with $SIGNER key… "
+ local SECKEYS=""
+ for KEY in $(find keys/ -name '*.sec'); do
+ SECKEYS="$SECKEYS --secret-keyring $KEY"
+ done
+ local PUBKEYS=""
+ for KEY in $(find keys/ -name '*.pub'); do
+ PUBKEYS="$PUBKEYS --keyring $KEY"
+ done
+ for RELEASE in $(find aptarchive/ -name Release); do
+ gpg --yes --no-default-keyring $SECKEYS $PUBKEYS --default-key "$SIGNER" -abs -o ${RELEASE}.gpg ${RELEASE}
+ done
+ msgdone "info"
+}
+
+changetowebserver() {
+ if which weborf > /dev/null; then
+ weborf -xb aptarchive/ 2>&1 > /dev/null &
+ CURRENTTRAP="kill $(ps | grep weborf | sed -e 's#^[ ]*##' | cut -d' ' -f 1); $CURRENTTRAP"
+ trap "$CURRENTTRAP" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
+ local APTARCHIVE="file://$(readlink -f ./aptarchive)"
+ for LIST in $(find rootdir/etc/apt/sources.list.d/ -name 'apt-test-*.list'); do
+ sed -i $LIST -e "s#$APTARCHIVE#http://localhost:8080/#"
+ done
+ return 0
+ fi
+ return 1
+}
+
+checkdiff() {
+ local DIFFTEXT="$($(which diff) -u $* | sed -e '/^---/ d' -e '/^+++/ d' -e '/^@@/ d')"
+ if [ -n "$DIFFTEXT" ]; then
+ echo
+ echo "$DIFFTEXT"
+ return 1
+ else
+ return 0
+ fi
+}
+
+testfileequal() {
+ local FILE="$1"
+ shift
+ msgtest "Test for correctness of file" "$FILE"
+ if [ -z "$*" ]; then
+ echo -n "" | checkdiff $FILE - && msgpass || msgfail
+ else
+ echo "$*" | checkdiff $FILE - && msgpass || msgfail
+ fi
+}
+
+testequal() {
+ local COMPAREFILE=$(mktemp)
+ echo "$1" > $COMPAREFILE
+ shift
+ msgtest "Test for equality of" "$*"
+ $* 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail
+ rm $COMPAREFILE
+}
+
+testequalor2() {
+ local COMPAREFILE1=$(mktemp)
+ local COMPAREFILE2=$(mktemp)
+ local COMPAREAGAINST=$(mktemp)
+ echo "$1" > $COMPAREFILE1
+ echo "$2" > $COMPAREFILE2
+ shift 2
+ msgtest "Test for equality OR of" "$*"
+ $* 2>&1 1> $COMPAREAGAINST
+ (checkdiff $COMPAREFILE1 $COMPAREAGAINST 1> /dev/null ||
+ checkdiff $COMPAREFILE2 $COMPAREAGAINST 1> /dev/null) && msgpass ||
+ ( echo "\n${CINFO}Diff against OR 1${CNORMAL}" "$(checkdiff $COMPAREFILE1 $COMPAREAGAINST)" \
+ "\n${CINFO}Diff against OR 2${CNORMAL}" "$(checkdiff $COMPAREFILE2 $COMPAREAGAINST)" &&
+ msgfail )
+ rm $COMPAREFILE1 $COMPAREFILE2 $COMPAREAGAINST
+}
+
+testshowvirtual() {
+ local VIRTUAL="N: Can't select versions from package '$1' as it purely virtual"
+ local PACKAGE="$1"
+ shift
+ while [ -n "$1" ]; do
+ VIRTUAL="${VIRTUAL}
+N: Can't select versions from package '$1' as it purely virtual"
+ PACKAGE="${PACKAGE} $1"
+ shift
+ done
+ msgtest "Test for virtual packages" "apt-cache show $PACKAGE"
+ VIRTUAL="${VIRTUAL}
+N: No packages found"
+ local COMPAREFILE=$(mktemp)
+ local ARCH=$(dpkg-architecture -qDEB_HOST_ARCH_CPU)
+ eval `apt-config shell ARCH APT::Architecture`
+ echo "$VIRTUAL" | sed -e "s/:$ARCH//" -e 's/:all//' > $COMPAREFILE
+ aptcache show -q=0 $PACKAGE 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail
+ rm $COMPAREFILE
+}
+
+testnopackage() {
+ msgtest "Test for non-existent packages" "apt-cache show $*"
+ local SHOWPKG="$(aptcache show $* 2>&1 | grep '^Package: ')"
+ if [ -n "$SHOWPKG" ]; then
+ echo
+ echo "$SHOWPKG"
+ msgfail
+ return 1
+ fi
+ msgpass
+}
diff --git a/test/integration/joesixpack.pub b/test/integration/joesixpack.pub
new file mode 100644
index 000000000..2b40b97b6
--- /dev/null
+++ b/test/integration/joesixpack.pub
Binary files differ
diff --git a/test/integration/joesixpack.sec b/test/integration/joesixpack.sec
new file mode 100644
index 000000000..92aaada76
--- /dev/null
+++ b/test/integration/joesixpack.sec
Binary files differ
diff --git a/test/integration/run-tests b/test/integration/run-tests
new file mode 100755
index 000000000..cb74f21e7
--- /dev/null
+++ b/test/integration/run-tests
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+local DIR=$(readlink -f $(dirname $0))
+for testcase in $(run-parts --list $DIR | grep '/test-'); do
+ echo "\033[1;32mRun Testcase \033[1;35m$(basename ${testcase})\033[0m"
+ ${testcase}
+done
diff --git a/test/integration/status-bug-590438-broken-provides-thanks-to-remove-order b/test/integration/status-bug-590438-broken-provides-thanks-to-remove-order
new file mode 100644
index 000000000..c2c03c0e4
--- /dev/null
+++ b/test/integration/status-bug-590438-broken-provides-thanks-to-remove-order
@@ -0,0 +1,97 @@
+Package: libc-bin
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 1516
+Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
+Architecture: i386
+Source: eglibc
+Version: 2.11.2-2
+Replaces: libc0.1, libc0.3, libc6, libc6.1
+Breaks: libc0.1 (<< 2.10), libc0.3 (<< 2.10), libc6 (<< 2.10), libc6.1 (<< 2.10)
+Filename: pool/main/e/eglibc/libc-bin_2.11.2-2_i386.deb
+Size: 703542
+MD5sum: f554ec34c092bb8e52e3d917bec7b46c
+SHA1: 4d5ba53b50937b1d50e3234e45335de5ea97b84b
+SHA256: 4f1e6430a730321209bb6b9cf89ba8a72c95f5c93f3e263a982251b3cc8beb14
+Description-de: Die »Embedded GNU C Library«: Binärdateien
+Homepage: http://www.eglibc.org
+Tag: devel::lang:c, devel::packaging, implemented-in::c, interface::commandline, role::program, scope::utility, special::auto-inst-parts, suite::gnu, works-with::text, works-with::unicode
+
+Package: libc6
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 9340
+Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
+Architecture: i386
+Source: eglibc
+Version: 2.11.2-2
+Provides: glibc-2.11-1
+Depends: libc-bin (= 2.11.2-2), libgcc1
+Recommends: libc6-i686
+Suggests: glibc-doc, debconf | debconf-2.0, locales
+Conflicts: tzdata (<< 2007k-1), tzdata-etch
+Breaks: locales (<< 2.11), locales-all (<< 2.11), nscd (<< 2.11)
+Filename: pool/main/e/eglibc/libc6_2.11.2-2_i386.deb
+Size: 3877166
+MD5sum: 3d8fe972a359ad362ac1957c2687e5c2
+SHA1: cd901f3265254e40ad198b935877f546eeaa8403
+SHA256: e1bc3da1e11f9b742d05f927362e2079482db4186ff45af9f937d284e112e7e5
+Description-de: Die »Embedded GNU C Library«: Laufzeitbibliotheken
+Homepage: http://www.eglibc.org
+Tag: devel::lang:c, devel::library, implemented-in::c, protocol::ipv6, role::shared-lib, suite::gnu
+
+Package: mawk
+Status: install ok installed
+Priority: required
+Section: utils
+Installed-Size: 228
+Maintainer: Steve Langasek <vorlon@debian.org>
+Architecture: i386
+Version: 1.3.3-15
+Provides: awk
+Pre-Depends: libc6 (>= 2.1)
+Filename: pool/main/m/mawk/mawk_1.3.3-15_i386.deb
+Size: 81430
+MD5sum: e0f9e9903a862a52b5f107d560c4d8e0
+SHA1: cca3b3ea3a57b9c3c136fb538a4fb06a99d1a33e
+SHA256: 7449b10ffb6a8636a249ad6866188cad0040a6a446fb4a3a71d81fd136297ee6
+Description-de: Eine Muster- und Textverarbeitungssprache
+Tag: devel::interpreter, implemented-in::c, interface::commandline, role::program, scope::utility, use::filtering, use::scanning, works-with::text
+
+Package: gcc-4.5-base
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 172
+Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
+Architecture: i386
+Source: gcc-4.5
+Version: 4.5.0-8
+Filename: pool/main/g/gcc-4.5/gcc-4.5-base_4.5.0-8_i386.deb
+Size: 117894
+MD5sum: f5850c42681fcfee3429a1b43da68433
+SHA1: 0548343feba69c4c01d5dbf147393d8dc27605ac
+SHA256: 04b60f5fe24b7397e3be233051615ff9addb66d4581578f67fde76f5d7f69f7a
+Description: The GNU Compiler Collection (base package)
+Homepage: http://gcc.gnu.org/
+
+Package: libgcc1
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 148
+Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
+Architecture: i386
+Source: gcc-4.5 (4.5.0-8)
+Version: 1:4.5.0-8
+Depends: gcc-4.5-base (= 4.5.0-8), libc6 (>= 2.2.4)
+Filename: pool/main/g/gcc-4.5/libgcc1_4.5.0-8_i386.deb
+Size: 52190
+MD5sum: beda956a1dcdeffed11072c2d0f3eb83
+SHA1: 7117ec43eec7982a030fcc9a12d4772de3fcdba0
+SHA256: 1d10bd532adce8683b475fcc60c22300f717ef19bf84dc5bf43b07e504f85dcb
+Description: GCC support library
+Homepage: http://gcc.gnu.org/
+
diff --git a/test/integration/status-bug-591882-conkeror b/test/integration/status-bug-591882-conkeror
new file mode 100644
index 000000000..658114d4a
--- /dev/null
+++ b/test/integration/status-bug-591882-conkeror
@@ -0,0 +1,1357 @@
+Package: conkeror
+Status: install ok installed
+Priority: extra
+Section: web
+Installed-Size: 1044
+Maintainer: Axel Beckert <abe@deuxchevaux.org>
+Architecture: all
+Version: 0.9~git080629-2
+Provides: www-browser
+Depends: xulrunner (>= 1.9~) | xulrunner-1.9
+Recommends: conkeror-spawn-process-helper
+Suggests: emacs | emacsen
+Description: keyboard focused web browser with Emacs look and feel
+
+Package: coreutils
+Essential: yes
+Status: install ok installed
+Priority: required
+Section: utils
+Installed-Size: 10032
+Maintainer: Michael Stone <mstone@debian.org>
+Architecture: i386
+Version: 6.10-6
+Replaces: textutils, shellutils, fileutils, stat, debianutils (<= 2.3.1), dpkg (<< 1.13.2)
+Provides: textutils, shellutils, fileutils
+Pre-Depends: libacl1 (>= 2.2.11-1), libc6 (>= 2.6.1-1), libselinux1 (>= 2.0.15)
+Conflicts: stat
+Description: The GNU core utilities
+
+Package: debconf-i18n
+Status: install ok installed
+Priority: required
+Section: admin
+Installed-Size: 1100
+Maintainer: Debconf Developers <debconf-devel@lists.alioth.debian.org>
+Architecture: all
+Source: debconf
+Version: 1.5.24
+Replaces: debconf (<< 1.3.0), debconf-utils (<< 1.3.22)
+Depends: debconf, liblocale-gettext-perl, libtext-iconv-perl, libtext-wrapi18n-perl, libtext-charwidth-perl
+Conflicts: debconf-english, debconf-utils (<< 1.3.22)
+Description: full internationalization support for debconf
+
+Package: debconf
+Status: install ok installed
+Priority: required
+Section: admin
+Installed-Size: 1508
+Maintainer: Debconf Developers <debconf-devel@lists.alioth.debian.org>
+Architecture: all
+Version: 1.5.24
+Replaces: debconf-tiny
+Provides: debconf-2.0
+Depends: debconf-i18n | debconf-english
+Pre-Depends: perl-base (>= 5.6.1-4)
+Recommends: apt-utils (>= 0.5.1)
+Suggests: debconf-doc, debconf-utils, whiptail | dialog | gnome-utils, libterm-readline-gnu-perl, libgnome2-perl, libqt-perl, libnet-ldap-perl, perl
+Conflicts: apt (<< 0.3.12.1), cdebconf (<< 0.96), debconf-tiny, debconf-utils (<< 1.3.22), dialog (<< 0.9b-20020814-1), menu (<= 2.1.3-1), whiptail (<< 0.51.4-11), whiptail-utf8 (<= 0.50.17-13)
+Description: Debian configuration management system
+
+Package: debianutils
+Essential: yes
+Status: install ok installed
+Priority: required
+Section: utils
+Installed-Size: 272
+Maintainer: Clint Adams <schizo@debian.org>
+Architecture: i386
+Version: 2.30
+Pre-Depends: libc6 (>= 2.7-1)
+Description: Miscellaneous utilities specific to Debian
+
+Package: defoma
+Status: install ok installed
+Priority: optional
+Section: admin
+Installed-Size: 449
+Maintainer: Angus Lees <gus@debian.org>
+Architecture: all
+Version: 0.11.10-0.2
+Depends: file, perl (>= 5.6.0-16), whiptail | dialog
+Recommends: libft-perl
+Suggests: defoma-doc, dfontmgr, psfontmgr, x-ttcidfont-conf
+Conflicts: defoma-gs, defoma-ps, defoma-x, dfontmgr (<< 0.10.0), psfontmgr (<< 0.5.0), x-ttcidfont-conf (<< 5)
+Description: Debian Font Manager -- automatic font configuration framework
+Enhances: debhelper
+
+Package: dpkg
+Essential: yes
+Status: install ok installed
+Priority: required
+Section: admin
+Installed-Size: 7276
+Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
+Architecture: i386
+Version: 1.14.29
+Replaces: manpages-de (<= 0.4-3), manpages-pl (<= 20051117-1)
+Pre-Depends: libc6 (>= 2.7-1), coreutils (>= 5.93-1), lzma
+Suggests: apt
+Conflicts: apt (<< 0.7.7), aptitude (<< 0.4.7-1), dpkg-dev (<< 1.14.16), dpkg-iasearch (<< 0.11), sysvinit (<< 2.82-1)
+Description: Debian package management system
+Origin: debian
+Bugs: debbugs://bugs.debian.org
+
+Package: file
+Status: install ok installed
+Priority: standard
+Section: utils
+Installed-Size: 136
+Maintainer: Daniel Baumann <daniel@debian.org>
+Architecture: i386
+Version: 4.26-1
+Depends: libc6 (>= 2.7-1), libmagic1 (= 4.26-1), zlib1g (>= 1:1.1.4)
+Description: Determines file type using "magic" numbers
+
+Package: fontconfig-config
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 250
+Maintainer: Keith Packard <keithp@debian.org>
+Architecture: all
+Source: fontconfig
+Version: 2.6.0-3
+Replaces: fontconfig (<< 2.3.2-2)
+Depends: debconf (>= 0.5) | debconf-2.0, ucf (>= 0.29), ttf-dejavu | ttf-bitstream-vera | ttf-freefont | gsfonts-x11
+Conflicts: fontconfig (<< 2.3.2-2)
+Description: generic font configuration library - configuration
+
+Package: fontconfig
+Status: install ok installed
+Priority: optional
+Section: utils
+Installed-Size: 384
+Maintainer: Keith Packard <keithp@debian.org>
+Architecture: i386
+Version: 2.6.0-3
+Replaces: fontconfig-config (<< 2.5.93-1)
+Depends: libc6 (>= 2.7-1), libfontconfig1 (>= 2.4.0), fontconfig-config
+Suggests: defoma (>= 0.7.0)
+Description: generic font configuration library - support binaries
+
+Package: gcc-4.3-base
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 160
+Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
+Architecture: i386
+Source: gcc-4.3
+Version: 4.3.2-1.1
+Replaces: cpp-4.3 (<< 4.3.2)
+Description: The GNU Compiler Collection (base package)
+
+Package: libacl1
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 48
+Maintainer: Nathan Scott <nathans@debian.org>
+Architecture: i386
+Source: acl
+Version: 2.2.47-2
+Depends: libattr1 (>= 2.4.41-1), libc6 (>= 2.7-1)
+Conflicts: acl (<< 2.0.0), libacl1-kerberos4kth
+Description: Access control list shared library
+
+Package: libatk1.0-0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 168
+Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
+Architecture: i386
+Source: atk1.0
+Version: 1.22.0-1
+Depends: libc6 (>= 2.7-1), libglib2.0-0 (>= 2.16.0)
+Recommends: libatk1.0-data
+Description: The ATK accessibility toolkit
+
+Package: libattr1
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 36
+Maintainer: Nathan Scott <nathans@debian.org>
+Architecture: i386
+Source: attr
+Version: 1:2.4.43-2
+Depends: libc6 (>= 2.7-1)
+Conflicts: attr (<< 2.0.0)
+Description: Extended attribute shared library
+
+Package: libbz2-1.0
+Status: install ok installed
+Priority: important
+Section: libs
+Installed-Size: 92
+Maintainer: Anibal Monsalve Salazar <anibal@debian.org>
+Architecture: i386
+Source: bzip2
+Version: 1.0.5-1
+Depends: libc6 (>= 2.7-1)
+Description: high-quality block-sorting file compressor library - runtime
+
+Package: libc6
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 10756
+Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
+Architecture: i386
+Source: glibc
+Version: 2.7-18lenny4
+Provides: glibc-2.7-1
+Depends: libgcc1
+Suggests: locales, glibc-doc, libc6-i686
+Conflicts: libterm-readline-gnu-perl (<< 1.15-2), tzdata (<< 2007k-1), tzdata-etch
+Description: GNU C Library: Shared libraries
+
+Package: libcairo2
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 844
+Maintainer: Dave Beckett <dajobe@debian.org>
+Architecture: i386
+Source: cairo
+Version: 1.6.4-7
+Replaces: libcairo0.5.1, libcairo0.6.0, libcairo0.9.0, libcairo1
+Provides: libcairo
+Depends: libc6 (>= 2.7-1), libdirectfb-1.0-0, libfontconfig1 (>= 2.4.0), libfreetype6 (>= 2.3.5), libpixman-1-0 (>= 0.10.0), libpng12-0 (>= 1.2.13-4), libx11-6, libxcb-render-util0 (>= 0.2.1+git1), libxcb-render0, libxcb1, libxrender1, zlib1g (>= 1:1.1.4)
+Conflicts: libcairo1
+Description: The Cairo 2D vector graphics library
+
+Package: libcomerr2
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 96
+Maintainer: Theodore Y. Ts'o <tytso@mit.edu>
+Architecture: i386
+Source: e2fsprogs
+Version: 1.41.3-1
+Replaces: e2fsprogs (<< 1.34-1)
+Provides: libcomerr-kth-compat
+Depends: libc6 (>= 2.7-1)
+Description: common error description library
+
+Package: libcups2
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 364
+Maintainer: Debian CUPS Maintainers <pkg-cups-devel@lists.alioth.debian.org>
+Architecture: i386
+Source: cups
+Version: 1.3.8-1+lenny8
+Replaces: libcupsys2 (<< 1.3.7-6)
+Provides: libcupsys2
+Depends: libc6 (>= 2.7-1), libcomerr2 (>= 1.01), libgnutls26 (>= 2.4.0-0), libkrb53 (>= 1.6.dfsg.2), zlib1g (>= 1:1.1.4)
+Suggests: cups-common
+Conflicts: libcupsys2 (<< 1.3.7-6)
+Description: Common UNIX Printing System(tm) - libs
+
+Package: libdatrie0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 60
+Maintainer: Theppitak Karoonboonyanan <thep@linux.thai.net>
+Architecture: i386
+Source: libdatrie
+Version: 0.1.3-2
+Depends: libc6 (>= 2.7-1)
+Description: Double-array trie library
+
+Package: libdb4.6
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 1248
+Maintainer: Debian Berkeley DB Maintainers <pkg-db-devel@lists.alioth.debian.org>
+Architecture: i386
+Source: db4.6
+Version: 4.6.21-11
+Depends: libc6 (>= 2.7-1)
+Conflicts: libdb2 (<< 2:2.7.7-3)
+Description: Berkeley v4.6 Database Libraries [runtime]
+
+Package: libdirectfb-1.0-0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 2140
+Maintainer: Debian DirectFB Team <pkg-directfb-devel@lists.alioth.debian.org>
+Architecture: i386
+Source: directfb
+Version: 1.0.1-11
+Depends: libc6 (>= 2.7-1), libsysfs2, libts-0.0-0 (>= 1.0)
+Description: direct frame buffer graphics - shared libraries
+
+Package: libexpat1
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 364
+Maintainer: Debian XML/SGML Group <debian-xml-sgml-pkgs@lists.alioth.debian.org>
+Architecture: i386
+Source: expat
+Version: 2.0.1-4+lenny3
+Depends: libc6 (>= 2.7-1)
+Conflicts: wink (<= 1.5.1060-4)
+Description: XML parsing C library - runtime library
+
+Package: libfontconfig1
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 336
+Maintainer: Keith Packard <keithp@debian.org>
+Architecture: i386
+Source: fontconfig
+Version: 2.6.0-3
+Depends: libc6 (>= 2.7-1), libexpat1 (>= 1.95.8), libfreetype6 (>= 2.3.5), zlib1g (>= 1:1.1.4), fontconfig-config (= 2.6.0-3)
+Description: generic font configuration library - runtime
+
+Package: libfreetype6
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 672
+Maintainer: Steve Langasek <vorlon@debian.org>
+Architecture: i386
+Source: freetype
+Version: 2.3.7-2+lenny1
+Replaces: freetype0, freetype1
+Depends: libc6 (>= 2.7-1), zlib1g (>= 1:1.1.4)
+Suggests: libfreetype6-dev
+Conflicts: freetype, xpdf-reader (<< 1.00-4)
+Description: FreeType 2 font engine, shared library files
+
+Package: libgcc1
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 88
+Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
+Architecture: i386
+Source: gcc-4.3 (4.3.2-1.1)
+Version: 1:4.3.2-1.1
+Depends: gcc-4.3-base (= 4.3.2-1.1), libc6 (>= 2.7-1)
+Description: GCC support library
+
+Package: libgcrypt11
+Status: install ok installed
+Priority: important
+Section: libs
+Installed-Size: 508
+Maintainer: Debian GnuTLS Maintainers <pkg-gnutls-maint@lists.alioth.debian.org>
+Architecture: i386
+Version: 1.4.1-1
+Depends: libc6 (>= 2.7-1), libgpg-error0 (>= 1.4)
+Suggests: rng-tools
+Description: LGPL Crypto library - runtime library
+
+Package: libgdbm3
+Status: install ok installed
+Priority: important
+Section: libs
+Installed-Size: 80
+Maintainer: James Troup <james@nocrew.org>
+Architecture: i386
+Source: gdbm
+Version: 1.8.3-3
+Depends: libc6 (>= 2.3.6-6)
+Description: GNU dbm database routines (runtime version)
+
+Package: libglib2.0-0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 1732
+Maintainer: Loic Minier <lool@dooz.org>
+Architecture: i386
+Source: glib2.0
+Version: 2.16.6-3
+Depends: libc6 (>= 2.7-1), libpcre3 (>= 7.4), libselinux1 (>= 2.0.59)
+Recommends: libglib2.0-data
+Conflicts: libpango1.0-0 (<< 1.11)
+Description: The GLib library of C routines
+
+Package: libgnutls26
+Status: install ok installed
+Priority: important
+Section: libs
+Installed-Size: 1100
+Maintainer: Debian GnuTLS Maintainers <pkg-gnutls-maint@lists.alioth.debian.org>
+Architecture: i386
+Source: gnutls26
+Version: 2.4.2-6+lenny2
+Replaces: gnutls0, gnutls0.4, gnutls3
+Depends: libc6 (>= 2.7-1), libgcrypt11 (>= 1.4.0), libgpg-error0 (>= 1.4), libtasn1-3 (>= 0.3.4), zlib1g (>= 1:1.1.4)
+Suggests: gnutls-bin
+Conflicts: gnutls0, gnutls0.4
+Description: the GNU TLS library - runtime library
+
+Package: libgpg-error0
+Status: install ok installed
+Priority: important
+Section: libs
+Installed-Size: 196
+Maintainer: Jose Carlos Garcia Sogo <jsogo@debian.org>
+Architecture: i386
+Source: libgpg-error
+Version: 1.4-2
+Depends: libc6 (>= 2.3.6-6)
+Description: library for common error values and messages in GnuPG components
+
+Package: libgtk2.0-0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 5084
+Maintainer: Sebastien Bacher <seb128@debian.org>
+Architecture: i386
+Source: gtk+2.0
+Version: 2.12.12-1~lenny2
+Replaces: libgtk2.0-0png3
+Provides: gtk2.0-binver-2.10.0
+Depends: libgtk2.0-common, libatk1.0-0 (>= 1.20.0), libc6 (>= 2.7-1), libcairo2 (>= 1.6.4-6.1), libcomerr2 (>= 1.01), libcups2 (>= 1.3.8), libfontconfig1 (>= 2.4.0), libglib2.0-0 (>= 2.16.0), libgnutls26 (>= 2.4.0-0), libjpeg62, libkrb53 (>= 1.6.dfsg.2), libpango1.0-0 (>= 1.20.3), libpng12-0 (>= 1.2.13-4), libtiff4, libx11-6, libxcomposite1 (>= 1:0.3-1), libxcursor1 (>> 1.1.2), libxdamage1 (>= 1:1.1), libxext6, libxfixes3 (>= 1:4.0.1), libxi6, libxinerama1, libxrandr2, libxrender1, zlib1g (>= 1:1.1.4)
+Recommends: hicolor-icon-theme, libgtk2.0-bin
+Suggests: librsvg2-common
+Conflicts: celestia (<< 1.2.4-4), eog2 (<< 1.0.1-4), gcin (<< 1.3.4-2), gimp1.3 (<< 1.3.7-1.1), glabels (<< 2.1.3-3), gnome-panel2 (<< 2.0.4-1), gnome-themes (<< 2.6), gtk-im-libthai (<< 0.1.4-3), gtk-qt-engine (<< 1:0.8~svn-rev36-1), gtk2-engines (<< 1:2.8.2-2), gtk2-engines-cleanice (<< 2.4.0-1.1), gtk2-engines-crux (<< 2.6), gtk2-engines-gtk-qt (<< 1:0.7-2), gtk2-engines-highcontrast (<< 2.6), gtk2-engines-industrial (<< 0.2.32-5), gtk2-engines-lighthouseblue (<< 2.6), gtk2-engines-magicchicken (<< 1.1.1-7.1), gtk2-engines-metal (<< 2.2.0-2.1), gtk2-engines-mist (<< 2.6), gtk2-engines-pixbuf (<= 2.10), gtk2-engines-qtpixmap (<< 0.28-1.2), gtk2-engines-redmond95 (<< 2.2.0-2.1), gtk2-engines-smooth (<< 0.5.6-3), gtk2-engines-thinice (<< 2.6), gtk2-engines-ubuntulooks (<= 0.9.11-1), gtk2-engines-wonderland (<< 1.0-4), gtk2-engines-xfce (<< 2.4.0-1), gtk2.0-examples (<< 2.2.0), iiimf-client-gtk (<< 12.3.91-4), iiimgcf (<= 11.4.1870-7.3), imhangul (<< 0.9.13-5), libeel2-2.18, libgdkxft0, libginspx0 (<< 20050529-1.1), libgnomeui-0 (<= 2.14.1-3), libgtk2.0-0png3, librsvg2-common (<= 2.14.4-2), libwmf-dev (<< 0.2.8.4-5), libwmf0.2-7 (<< 0.2.8.4-5), libwxgtk2.6-0 (<< 2.6.3.2.2-1), metacity (<< 1:2.20.0-1), metatheme (<< 0.9.7-3), openoffice.org-core (<< 2.2.1-8), scim-bridge (<= 0.2.4-1), scim-bridge-client-gtk (<< 0.4.10-1.1), scim-gtk2-immodule (<< 1.4.4-8), swf-player (<< 0.3.6-2.3), tamil-gtk2im (<< 2.2-4.4), uim-gtk2.0 (<< 1:1.4.1-3), xfwm4 (<< 4.4.1-3)
+Description: The GTK+ graphical user interface library
+
+Package: libgtk2.0-common
+Status: install ok installed
+Priority: optional
+Section: misc
+Installed-Size: 15934
+Maintainer: Sebastien Bacher <seb128@debian.org>
+Architecture: all
+Source: gtk+2.0
+Version: 2.12.12-1~lenny2
+Replaces: libgtk1.3-common, libgtk2.0-data
+Recommends: libgtk2.0-0
+Conflicts: libgtk1.3-common, libgtk2.0-data
+Description: Common files for the GTK+ graphical user interface library
+
+Package: libhunspell-1.2-0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 336
+Maintainer: Debian OpenOffice Team <debian-openoffice@lists.debian.org>
+Architecture: i386
+Source: hunspell
+Version: 1.2.6-1
+Depends: libc6 (>= 2.7-1), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.1.1)
+Recommends: myspell-en-us | myspell-dictionary | hunspell-dictionary
+Conflicts: openoffice.org-core (= 2.2.0~rc2-1)
+Description: spell checker and morphological analyzer (shared library)
+
+Package: libice6
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 140
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libice
+Version: 2:1.0.4-1
+Depends: libc6 (>= 2.6-1), x11-common
+Description: X11 Inter-Client Exchange library
+
+Package: libjpeg62
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 164
+Maintainer: Bill Allombert <ballombe@debian.org>
+Architecture: i386
+Source: libjpeg6b
+Version: 6b-14
+Depends: libc6 (>= 2.6.1-1)
+Description: The Independent JPEG Group's JPEG runtime library
+
+Package: libkeyutils1
+Status: install ok installed
+Priority: standard
+Section: misc
+Installed-Size: 56
+Maintainer: Daniel Baumann <daniel@debian.org>
+Architecture: i386
+Source: keyutils
+Version: 1.2-9
+Depends: libc6 (>= 2.7-1)
+Description: Linux Key Management Utilities (library)
+
+Package: libkrb53
+Status: install ok installed
+Priority: standard
+Section: libs
+Installed-Size: 1188
+Maintainer: Sam Hartman <hartmans@debian.org>
+Architecture: i386
+Source: krb5
+Version: 1.6.dfsg.4~beta1-5lenny4
+Depends: libc6 (>= 2.7-1), libcomerr2 (>= 1.34), libkeyutils1
+Suggests: krb5-doc, krb5-user
+Conflicts: libapache-mod-auth-kerb (<= 4.996-5.0-rc6-2), libapache2-mod-auth-kerb (<= 4.996-5.0-rc6-2), ssh-krb5 (<< 3.8.1p1-10)
+Description: MIT Kerberos runtime libraries
+
+Package: liblcms1
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 260
+Maintainer: Oleksandr Moskalenko <malex@debian.org>
+Architecture: i386
+Source: lcms
+Version: 1.17.dfsg-1+lenny2
+Replaces: liblcms
+Provides: liblcms
+Depends: libc6 (>= 2.7-1)
+Suggests: liblcms-utils
+Conflicts: liblcms
+Description: Color management library
+
+Package: liblocale-gettext-perl
+Status: install ok installed
+Priority: required
+Section: perl
+Installed-Size: 104
+Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
+Architecture: i386
+Version: 1.05-4
+Depends: libc6 (>= 2.7-1)
+Pre-Depends: perl-base (>= 5.10.0-9), perlapi-5.10.0
+Description: Using libc functions for internationalization in Perl
+
+Package: libmagic1
+Status: install ok installed
+Priority: standard
+Section: libs
+Installed-Size: 2412
+Maintainer: Daniel Baumann <daniel@debian.org>
+Architecture: i386
+Source: file
+Version: 4.26-1
+Depends: libc6 (>= 2.7-1), zlib1g (>= 1:1.1.4)
+Suggests: file
+Description: File type determination library using "magic" numbers
+
+Package: libmozjs1d
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 736
+Maintainer: Mike Hommey <glandium@debian.org>
+Architecture: i386
+Source: xulrunner
+Version: 1.9.0.19-1
+Depends: libc6 (>= 2.7-1), libnspr4-0d (>= 1.8.0.10)
+Description: The Mozilla SpiderMonkey JavaScript library
+
+Package: libncurses5
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 584
+Maintainer: Daniel Baumann <daniel@debian.org>
+Architecture: i386
+Source: ncurses
+Version: 5.7+20081213-1
+Depends: libc6 (>= 2.7-1)
+Recommends: libgpm2
+Description: shared libraries for terminal handling
+
+Package: libnewt0.52
+Status: install ok installed
+Priority: important
+Section: libs
+Installed-Size: 820
+Maintainer: Alastair McKinstry <mckinstry@debian.org>
+Architecture: i386
+Source: newt
+Version: 0.52.2-11.3+lenny1
+Replaces: libnewt-utf8, libnewt0, libnewt0.51
+Depends: libc6 (>= 2.7-1), libslang2 (>= 2.0.7-1)
+Recommends: libfribidi0
+Conflicts: libnewt0.51
+Description: Not Erik's Windowing Toolkit - text mode windowing with slang
+
+Package: libnspr4-0d
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 328
+Maintainer: Maintainers of Mozilla-related packages <pkg-mozilla-maintainers@lists.alioth.debian.org>
+Architecture: i386
+Source: nspr
+Version: 4.7.1-5
+Depends: libc6 (>= 2.7-1)
+Conflicts: libnspr4, libnspr4-dev (<= 4.7.1-1)
+Description: NetScape Portable Runtime Library
+
+Package: libnss3-1d
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 2292
+Maintainer: Maintainers of Mozilla-related packages <pkg-mozilla-maintainers@lists.alioth.debian.org>
+Architecture: i386
+Source: nss
+Version: 3.12.3.1-0lenny1
+Depends: libc6 (>= 2.7-1), libnspr4-0d (>= 1.8.0.10), libsqlite3-0 (>= 3.5.9), dpkg (<< 1.14.8) | dpkg (>= 1.14.18)
+Conflicts: libnss3, libnss3-0d (>= 3.11.5), libnss3-dev (<= 3.12.0~rc3-1)
+Description: Network Security Service libraries
+
+Package: libpango1.0-0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 780
+Maintainer: Sebastien Bacher <seb128@debian.org>
+Architecture: i386
+Source: pango1.0
+Version: 1.20.5-5+lenny1
+Provides: pango1.0-modver-1.6.0
+Depends: libpango1.0-common (>= 1.20.5-5+lenny1), libc6 (>= 2.7-1), libcairo2 (>= 1.6.4-6.1), libdatrie0 (>= 0.1.2), libfontconfig1 (>= 2.4.0), libfreetype6 (>= 2.3.5), libglib2.0-0 (>= 2.16.0), libthai0 (>= 0.1.9), libx11-6, libxft2 (>> 2.1.1), libxrender1, zlib1g (>= 1:1.1.4)
+Conflicts: pango-libthai
+Description: Layout and rendering of internationalized text
+
+Package: libpango1.0-common
+Status: install ok installed
+Priority: optional
+Section: misc
+Installed-Size: 204
+Maintainer: Sebastien Bacher <seb128@debian.org>
+Architecture: all
+Source: pango1.0
+Version: 1.20.5-5+lenny1
+Replaces: libpango-common (<< 1.0.0), libpango0
+Depends: debconf | debconf-2.0, defoma (>= 0.11.1), fontconfig (>= 2.1.91)
+Recommends: x-ttcidfont-conf, libpango1.0-0
+Suggests: ttf-kochi-gothic, ttf-kochi-mincho, ttf-thryomanes, ttf-baekmuk, ttf-arphic-gbsn00lp, ttf-arphic-bsmi00lp, ttf-arphic-gkai00mp, ttf-arphic-bkai00mp
+Conflicts: pango-libthai (<< 0.1.6-2)
+Description: Modules and configuration files for the Pango
+
+Package: libpcre3
+Status: install ok installed
+Priority: standard
+Section: libs
+Installed-Size: 356
+Maintainer: Mark Baker <mark@mnb.org.uk>
+Architecture: i386
+Source: pcre3
+Version: 7.6-2.1
+Depends: libc6 (>= 2.7-1)
+Conflicts: libpcre3-dev (<= 4.3-3)
+Description: Perl 5 Compatible Regular Expression Library - runtime files
+
+Package: libpixman-1-0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 220
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: pixman
+Version: 0.10.0-2
+Depends: libc6 (>= 2.7-1)
+Description: pixel-manipulation library for X and cairo
+
+Package: libpng12-0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 316
+Maintainer: Anibal Monsalve Salazar <anibal@debian.org>
+Architecture: i386
+Source: libpng
+Version: 1.2.27-2+lenny3
+Replaces: libpng12-dev (<= 1.2.8rel-7)
+Depends: libc6 (>= 2.7-1), zlib1g (>= 1:1.1.4)
+Conflicts: libpng12-dev (<= 1.2.8rel-7), mzscheme (<= 1:209-5), pngcrush (<= 1.5.10-2), pngmeta (<= 1.11-3), povray-3.5 (<= 3.5.0c-10), qemacs (<= 0.3.1-5)
+Description: PNG library - runtime
+
+Package: libpopt0
+Status: install ok installed
+Priority: important
+Section: libs
+Installed-Size: 192
+Maintainer: Paul Martin <pm@debian.org>
+Architecture: i386
+Source: popt
+Version: 1.14-4
+Replaces: popt
+Depends: libc6 (>= 2.7-1)
+Conflicts: libpopt-dev (<= 1.4-1), popt, rpm (<= 4.0.2-3)
+Description: lib for parsing cmdline parameters
+
+Package: libreadline5
+Status: install ok installed
+Priority: important
+Section: libs
+Installed-Size: 320
+Maintainer: Matthias Klose <doko@debian.org>
+Architecture: i386
+Source: readline5
+Version: 5.2-3.1
+Depends: readline-common, libc6 (>= 2.7-1), libncurses5 (>= 5.6+20071006-3)
+Description: GNU readline and history libraries, run-time libraries
+
+Package: libselinux1
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 148
+Maintainer: Manoj Srivastava <srivasta@debian.org>
+Architecture: i386
+Source: libselinux
+Version: 2.0.65-5
+Depends: libc6 (>= 2.7-1)
+Description: SELinux shared libraries
+
+Package: libslang2
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 1104
+Maintainer: Alastair McKinstry <mckinstry@debian.org>
+Architecture: i386
+Source: slang2
+Version: 2.1.3-3
+Depends: libc6 (>= 2.7-1)
+Recommends: libpng12-0
+Description: The S-Lang programming library - runtime version
+
+Package: libsm6
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 84
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libsm
+Version: 2:1.0.3-2
+Depends: libc6 (>= 2.7-1), libice6 (>= 1:1.0.0), x11-common
+Description: X11 Session Management library
+
+Package: libsqlite3-0
+Status: install ok installed
+Priority: standard
+Section: libs
+Installed-Size: 468
+Maintainer: Laszlo Boszormenyi (GCS) <gcs@debian.hu>
+Architecture: i386
+Source: sqlite3
+Version: 3.5.9-6
+Depends: libc6 (>= 2.7-1)
+Description: SQLite 3 shared library
+
+Package: libstartup-notification0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 92
+Maintainer: Ondřej Surý <ondrej@debian.org>
+Architecture: i386
+Source: startup-notification
+Version: 0.9-1
+Depends: libc6 (>= 2.3.6-6), libice6 (>= 1:1.0.0), libsm6, libx11-6
+Description: library for program launch feedback (shared library)
+
+Package: libstdc++6
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 1168
+Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
+Architecture: i386
+Source: gcc-4.3
+Version: 4.3.2-1.1
+Depends: gcc-4.3-base (= 4.3.2-1.1), libc6 (>= 2.7-1), libgcc1 (>= 1:4.1.1)
+Conflicts: scim (<< 1.4.2-1)
+Description: The GNU Standard C++ Library v3
+
+Package: libsysfs2
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 112
+Maintainer: Martin Pitt <mpitt@debian.org>
+Architecture: i386
+Source: sysfsutils
+Version: 2.1.0-5
+Depends: libc6 (>= 2.7-1)
+Description: interface library to sysfs
+
+Package: libtasn1-3
+Status: install ok installed
+Priority: important
+Section: libs
+Installed-Size: 164
+Maintainer: Debian GnuTLS Maintainers <pkg-gnutls-maint@lists.alioth.debian.org>
+Architecture: i386
+Version: 1.4-1
+Depends: libc6 (>= 2.7-1)
+Conflicts: libtasn1-2 (= 0.3.1-1)
+Description: Manage ASN.1 structures (runtime)
+
+Package: libtext-charwidth-perl
+Status: install ok installed
+Priority: required
+Section: perl
+Installed-Size: 36
+Maintainer: Anibal Monsalve Salazar <anibal@debian.org>
+Architecture: i386
+Source: libtext-charwidth-perl (0.04-5)
+Version: 0.04-5+b1
+Depends: libc6 (>= 2.7-1), perl-base (>= 5.10.0-9), perlapi-5.10.0
+Description: get display widths of characters on the terminal
+
+Package: libtext-iconv-perl
+Status: install ok installed
+Priority: required
+Section: perl
+Installed-Size: 44
+Maintainer: Anibal Monsalve Salazar <anibal@debian.org>
+Architecture: i386
+Source: libtext-iconv-perl (1.7-1)
+Version: 1.7-1+b1
+Depends: libc6 (>= 2.7-1), perl-base (>= 5.10.0-9), perlapi-5.10.0
+Description: converts between character sets in Perl
+
+Package: libtext-wrapi18n-perl
+Status: install ok installed
+Priority: required
+Section: perl
+Installed-Size: 28
+Maintainer: Anibal Monsalve Salazar <anibal@debian.org>
+Architecture: all
+Version: 0.06-6
+Depends: libtext-charwidth-perl
+Description: internationalized substitute of Text::Wrap
+
+Package: libthai-data
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 340
+Maintainer: Theppitak Karoonboonyanan <thep@linux.thai.net>
+Architecture: all
+Source: libthai
+Version: 0.1.9-4+lenny1
+Description: Data files for Thai language support library
+
+Package: libthai0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 100
+Maintainer: Theppitak Karoonboonyanan <thep@linux.thai.net>
+Architecture: i386
+Source: libthai
+Version: 0.1.9-4+lenny1
+Depends: libc6 (>= 2.7-1), libdatrie0 (>= 0.1.2), libthai-data
+Description: Thai language support library
+
+Package: libtiff4
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 456
+Maintainer: Jay Berkenbilt <qjb@debian.org>
+Architecture: i386
+Source: tiff
+Version: 3.8.2-11.2
+Depends: libc6 (>= 2.7-1), libjpeg62, zlib1g (>= 1:1.1.4)
+Description: Tag Image File Format (TIFF) library
+
+Package: libts-0.0-0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 108
+Maintainer: Neil Williams <codehelp@debian.org>
+Architecture: i386
+Source: tslib
+Version: 1.0-4
+Replaces: libts0, tslib
+Provides: libts0, tslib
+Depends: libc6 (>= 2.7-1)
+Conflicts: libts0, tslib
+Description: touch screen library
+
+Package: libx11-6
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 1240
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libx11
+Version: 2:1.1.5-2
+Depends: libc6 (>= 2.7-1), libxcb-xlib0, libxcb1, libx11-data
+Conflicts: xlibs-data (<< 1:7.0.0)
+Description: X11 client-side library
+
+Package: libx11-data
+Status: install ok installed
+Priority: optional
+Section: x11
+Installed-Size: 3108
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: all
+Source: libx11
+Version: 2:1.1.5-2
+Replaces: libx11-6 (<= 2:1.0.0-1)
+Description: X11 client-side library
+
+Package: libxau6
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 64
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxau
+Version: 1:1.0.3-3
+Depends: libc6 (>= 2.7-1)
+Description: X11 authorisation library
+
+Package: libxcb-render-util0
+Status: install ok installed
+Priority: extra
+Section: libs
+Installed-Size: 40
+Maintainer: Julien Danjou <acid@debian.org>
+Architecture: i386
+Source: xcb-util
+Version: 0.2.1+git1-1
+Depends: libc6 (>= 2.7-1), libxcb-render0, libxcb1
+Description: utility libraries for X C Binding -- render-util
+
+Package: libxcb-render0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 88
+Maintainer: XCB Developers <xcb@lists.freedesktop.org>
+Architecture: i386
+Source: libxcb
+Version: 1.1-1.2
+Depends: libc6 (>= 2.7-1), libxcb1
+Description: X C Binding, render extension
+
+Package: libxcb-xlib0
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 68
+Maintainer: XCB Developers <xcb@lists.freedesktop.org>
+Architecture: i386
+Source: libxcb
+Version: 1.1-1.2
+Depends: libc6 (>= 2.7-1), libxcb1
+Description: X C Binding, Xlib/XCB interface library
+
+Package: libxcb1
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 160
+Maintainer: XCB Developers <xcb@lists.freedesktop.org>
+Architecture: i386
+Source: libxcb
+Version: 1.1-1.2
+Depends: libc6 (>= 2.7-1), libxau6, libxdmcp6
+Description: X C Binding
+
+Package: libxcomposite1
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 60
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxcomposite
+Version: 1:0.4.0-3
+Depends: libc6 (>= 2.7-1), libx11-6, libxext6, libxfixes3 (>= 1:4.0.1)
+Description: X11 Composite extension library
+
+Package: libxcursor1
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 80
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxcursor
+Version: 1:1.1.9-1
+Depends: libc6 (>= 2.6-1), libx11-6, libxfixes3 (>= 1:4.0.1), libxrender1
+Description: X cursor management library
+
+Package: libxdamage1
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 60
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxdamage
+Version: 1:1.1.1-4
+Depends: libc6 (>= 2.7-1), libx11-6, libxfixes3 (>= 1:4.0.1)
+Description: X11 damaged region extension library
+
+Package: libxdmcp6
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 76
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxdmcp
+Version: 1:1.0.2-3
+Depends: libc6 (>= 2.7-1)
+Description: X11 Display Manager Control Protocol library
+
+Package: libxext6
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 184
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxext
+Version: 2:1.0.4-2
+Depends: libc6 (>= 2.7-1), libx11-6, libxau6, x11-common
+Description: X11 miscellaneous extension library
+
+Package: libxfixes3
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 64
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxfixes
+Version: 1:4.0.3-2
+Depends: libc6 (>= 2.3.6-6), libx11-6
+Pre-Depends: x11-common (>= 1:7.0.0)
+Description: X11 miscellaneous 'fixes' extension library
+
+Package: libxft2
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 132
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: xft
+Version: 2.1.12-3
+Depends: libc6 (>= 2.7-1), libfontconfig1 (>= 2.4.0), libfreetype6 (>= 2.3.5), libx11-6, libxrender1, zlib1g (>= 1:1.1.4)
+Description: FreeType-based font drawing library for X
+
+Package: libxi6
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 148
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxi
+Version: 2:1.1.4-1
+Depends: libc6 (>= 2.7-1), libx11-6, libxext6, x11-common
+Description: X11 Input extension library
+
+Package: libxinerama1
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 60
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxinerama
+Version: 2:1.0.3-2
+Depends: libc6 (>= 2.7-1), libx11-6, libxext6
+Description: X11 Xinerama extension library
+
+Package: libxrandr2
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 84
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxrandr
+Version: 2:1.2.3-1
+Depends: libc6 (>= 2.7-1), libx11-6, libxext6, libxrender1
+Description: X11 RandR extension library
+
+Package: libxrender1
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 88
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxrender
+Version: 1:0.9.4-2
+Depends: libc6 (>= 2.7-1), libx11-6
+Description: X Rendering Extension client library
+
+Package: libxt6
+Status: install ok installed
+Priority: optional
+Section: libs
+Installed-Size: 380
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: i386
+Source: libxt
+Version: 1:1.0.5-3
+Depends: libc6 (>= 2.5-5), libice6 (>= 1:1.0.0), libsm6, libx11-6
+Pre-Depends: x11-common (>= 1:7.0.0)
+Description: X11 toolkit intrinsics library
+
+Package: lsb-base
+Status: install ok installed
+Priority: required
+Section: misc
+Installed-Size: 72
+Maintainer: Chris Lawrence <lawrencc@debian.org>
+Architecture: all
+Source: lsb
+Version: 3.2-20
+Replaces: lsb (<< 2.0-6), lsb-core (<< 2.0-6)
+Depends: sed, ncurses-bin
+Conflicts: lsb (<< 2.0-6), lsb-core (<< 2.0-6)
+Description: Linux Standard Base 3.2 init script functionality
+
+Package: lzma
+Status: install ok installed
+Priority: optional
+Section: utils
+Installed-Size: 124
+Maintainer: Mohammed Adnène Trojette <adn+deb@diwi.org>
+Architecture: i386
+Version: 4.43-14
+Depends: libc6 (>= 2.7-1), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.2.1)
+Description: Compression method of 7z format in 7-Zip program
+
+Package: ncurses-bin
+Essential: yes
+Status: install ok installed
+Priority: required
+Section: utils
+Installed-Size: 480
+Maintainer: Daniel Baumann <daniel@debian.org>
+Architecture: i386
+Source: ncurses
+Version: 5.7+20081213-1
+Provides: tput
+Pre-Depends: libc6 (>= 2.7-1), libncurses5 (>= 5.6+20071006-3)
+Conflicts: ncurses, tput
+Description: terminal-related programs and man pages
+
+Package: perl-base
+Essential: yes
+Status: install ok installed
+Priority: required
+Section: perl
+Installed-Size: 4316
+Maintainer: Brendan O'Dea <bod@debian.org>
+Architecture: i386
+Source: perl
+Version: 5.10.0-19lenny2
+Replaces: libclass-multimethods-perl (<< 1.70-4), libperl5.8 (<< 5.8.0-20), libscalar-list-utils-perl, libxsloader-perl, perl (<= 5.10.0-9), perl-modules (<< 5.10.0-12)
+Provides: libscalar-list-utils-perl, libxsloader-perl, perl5-base, perlapi-5.10.0
+Pre-Depends: libc6 (>= 2.7-1), dpkg (>= 1.14.20)
+Suggests: perl
+Conflicts: autoconf2.13 (<< 2.13-45), findimagedupes (<< 2.11-2), icheck (<< 0.9.7-6.1), libcflow-perl (<< 1:0.68-11.1), libclass-methodmaker-perl (<< 2.10-1), libclearsilver-perl (<< 0.10.4-1.1), libcrypt-openssl-bignum-perl (<< 0.04-1), libcrypt-openssl-dsa-perl (<< 0.13-3), libcrypt-openssl-random-perl (<< 0.04-1), libcrypt-openssl-rsa-perl (<< 0.25-1), libhamlib2-perl (<< 1.2.6.2-6), libqt-perl (<< 3.008-3), libscalar-list-utils-perl (<< 1:1.18-1), libsufary-perl (<< 2.1.1-8), libsys-cpu-perl (<< 0.40-2.1), libterm-size-perl (<< 0.2-4), libvideo-ivtv-perl (<< 0.13-6), libxsloader-perl (<< 0.08-1), megahal (<< 9.1.1a-5), razor (<< 1:2.84-6)
+Description: minimal Perl system
+
+Package: perl-modules
+Status: install ok installed
+Priority: standard
+Section: perl
+Installed-Size: 14520
+Maintainer: Brendan O'Dea <bod@debian.org>
+Architecture: all
+Source: perl
+Version: 5.10.0-19lenny2
+Replaces: libansicolor-perl, libarchive-tar-perl, libattribute-handlers-perl, libcgi-pm-perl, libcpanplus-perl, libextutils-cbuilder-perl, libextutils-parsexs-perl, libfile-temp-perl, libi18n-langtags-perl, libio-zlib-perl, liblocale-codes-perl, liblocale-maketext-perl, liblocale-maketext-simple-perl, libmath-bigint-perl, libmodule-build-perl, libmodule-corelist-perl, libmodule-load-conditional-perl, libmodule-load-perl, libmodule-pluggable-perl, libnet-perl, libnet-ping-perl, libparams-check-perl, libpod-parser-perl, libpod-simple-perl, libtest-harness-perl, libtest-simple-perl, libversion-perl, podlators-perl
+Provides: libansicolor-perl, libarchive-tar-perl, libattribute-handlers-perl, libcgi-pm-perl, libcpanplus-perl, libextutils-cbuilder-perl, libextutils-parsexs-perl, libfile-temp-perl, libi18n-langtags-perl, libio-zlib-perl, liblocale-codes-perl, liblocale-maketext-perl, liblocale-maketext-simple-perl, libmath-bigint-perl, libmodule-build-perl, libmodule-corelist-perl, libmodule-load-conditional-perl, libmodule-load-perl, libmodule-pluggable-perl, libnet-perl, libnet-ping-perl, libparams-check-perl, libpod-parser-perl, libpod-simple-perl, libtest-harness-perl, libtest-simple-perl, libversion-perl, podlators-perl
+Depends: perl (>= 5.10.0-1)
+Conflicts: libansicolor-perl (<< 1.10-1), libarchive-tar-perl (<= 1.38-2), libattribute-handlers-perl (<< 0.78.02-1), libcgi-pm-perl (<< 3.15-1), libcpanplus-perl (<< 0.83.09-1), libextutils-cbuilder-perl (<< 0.21-1), libextutils-parsexs-perl (<= 2.18), libfile-temp-perl (<< 0.18), libi18n-langtags-perl (<< 0.35-1), libio-zlib-perl (<< 1.07-1), liblocale-codes-perl (<< 2.06.1-1), liblocale-maketext-perl (<< 1.08-1), liblocale-maketext-simple-perl (<< 0.18-1), libmath-bigint-perl (<< 1.77-1), libmodule-build-perl (<< 0.2808.1-1), libmodule-corelist-perl (<< 2.13-1), libmodule-load-conditional-perl (<< 0.22-1), libmodule-load-perl (<< 0.12-1), libmodule-pluggable-perl (<< 3.6-1), libnet-perl (<= 1:1.19-3), libnet-ping-perl (<< 2.31-1), libparams-check-perl (<< 0.26-1), libpod-parser-perl (<< 1.32-1), libpod-simple-perl (<< 3.05-2), libtest-harness-perl (<< 2.56-1), libtest-simple-perl (<< 0.62-1), libversion-perl (<< 1:0.7400-2), podlators-perl (<< 2.2.0)
+Description: Core Perl modules
+Build-Essential: yes
+
+Package: perl
+Status: install ok installed
+Priority: standard
+Section: perl
+Installed-Size: 13524
+Maintainer: Brendan O'Dea <bod@debian.org>
+Architecture: i386
+Version: 5.10.0-19lenny2
+Replaces: libarchive-tar-perl (<= 1.38-2), libdigest-md5-perl, libdigest-sha-perl, libmime-base64-perl, libmodule-corelist-perl (<< 2.14-2), libstorable-perl, libtime-hires-perl, libtime-piece-perl, perl-base (<< 5.8.8-1), perl-doc (<< 5.8.0-1), perl-modules (<< 5.8.1-1)
+Provides: data-dumper, libdigest-md5-perl, libdigest-sha-perl, libmime-base64-perl, libstorable-perl, libtime-hires-perl, libtime-piece-perl, perl5
+Depends: perl-base (= 5.10.0-19lenny2), perl-modules (>= 5.10.0-19lenny2), libc6 (>= 2.7-1), libdb4.6, libgdbm3
+Recommends: netbase
+Suggests: perl-doc, libterm-readline-gnu-perl | libterm-readline-perl-perl
+Conflicts: libdigest-md5-perl (<< 3.07-1), libdigest-sha-perl (<< 5.45-1), libmime-base64-perl (<< 3.07-1), libstorable-perl (<< 2.15-1), libtime-hires-perl (<< 1.86-1), libtime-piece-perl (<< 1.12-1), perl-doc (<< 5.10.0-1)
+Description: Larry Wall's Practical Extraction and Report Language
+Build-Essential: yes
+
+Package: readline-common
+Status: install ok installed
+Priority: important
+Section: utils
+Installed-Size: 136
+Maintainer: Matthias Klose <doko@debian.org>
+Architecture: all
+Source: readline5
+Version: 5.2-3.1
+Replaces: libreadline-common, libreadline4 (<< 4.3-16), libreadline5 (<< 5.0-11)
+Conflicts: libreadline-common, libreadline5 (<< 5.0-11)
+Description: GNU readline and history libraries, common files
+
+Package: sed
+Essential: yes
+Status: install ok installed
+Priority: required
+Section: utils
+Installed-Size: 628
+Maintainer: Clint Adams <schizo@debian.org>
+Architecture: i386
+Version: 4.1.5-6
+Replaces: ssed (<< 3.59)
+Pre-Depends: libc6 (>= 2.7-1)
+Description: The GNU sed stream editor
+
+Package: ttf-dejavu-core
+Status: install ok installed
+Priority: optional
+Section: x11
+Installed-Size: 2488
+Maintainer: Debian Fonts Task Force <pkg-fonts-devel@lists.alioth.debian.org>
+Architecture: all
+Source: ttf-dejavu
+Version: 2.25-3
+Replaces: ttf-dejavu (<< 2.20-1)
+Depends: defoma
+Conflicts: ttf-dejavu (<< 2.20-1)
+Description: Vera font family derivate with additional characters
+
+Package: ttf-dejavu-extra
+Status: install ok installed
+Priority: optional
+Section: x11
+Installed-Size: 5504
+Maintainer: Debian Fonts Task Force <pkg-fonts-devel@lists.alioth.debian.org>
+Architecture: all
+Source: ttf-dejavu
+Version: 2.25-3
+Replaces: ttf-dejavu (<< 2.20-1)
+Depends: defoma, ttf-dejavu-core
+Conflicts: ttf-dejavu (<< 2.20-1)
+Description: Vera font family derivate with additional characters
+
+Package: ttf-dejavu
+Status: install ok installed
+Priority: optional
+Section: x11
+Installed-Size: 68
+Maintainer: Debian Fonts Task Force <pkg-fonts-devel@lists.alioth.debian.org>
+Architecture: all
+Version: 2.25-3
+Depends: ttf-dejavu-core, ttf-dejavu-extra
+Conflicts: ttf-dejavu (<< 2.20-1)
+Description: Metapackage to pull in ttf-dejavu-core and ttf-dejavu-extra
+Task: bulgarian-desktop, hungarian-desktop, kurdish-desktop, macedonian-desktop, romanian-desktop, ukrainian-desktop
+
+Package: ucf
+Status: install ok installed
+Priority: standard
+Section: utils
+Installed-Size: 256
+Maintainer: Manoj Srivastava <srivasta@debian.org>
+Architecture: all
+Version: 3.0016
+Depends: debconf (>= 1.5.19), coreutils (>= 5.91)
+Description: Update Configuration File: preserve user changes to config files.
+
+Package: whiptail
+Status: install ok installed
+Priority: important
+Section: utils
+Installed-Size: 96
+Maintainer: Alastair McKinstry <mckinstry@debian.org>
+Architecture: i386
+Source: newt
+Version: 0.52.2-11.3+lenny1
+Replaces: newt0.10, newt0.21 (<< 0.21-4), whiptail-utf8
+Provides: whiptail-provider, whiptail-utf8
+Depends: libc6 (>= 2.7-1), libnewt0.52 (>= 0.52.2), libpopt0 (>= 1.14), libslang2 (>= 2.0.7-1)
+Conflicts: whiptail-provider
+Description: Displays user-friendly dialog boxes from shell scripts
+
+Package: x11-common
+Status: install ok installed
+Priority: optional
+Section: x11
+Installed-Size: 696
+Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
+Architecture: all
+Source: xorg
+Version: 1:7.3+20
+Replaces: x-common, xfree86-common, xorg-common, xserver-common (<< 7)
+Depends: debconf (>= 0.5) | debconf-2.0, debianutils (>= 1.13), lsb-base (>= 1.3-9ubuntu2)
+Pre-Depends: debconf | debconf-2.0
+Conflicts: aee (<= 2.2.15b-1), ascd (<= 0.13.2-3), beaver (<= 0.2.5-2), bibview (<= 2.2-8), bugsx (<= 1.08-8), buici-clock (<= 0.4.5+b1), communicator-smotif-477, ctwm (<= 3.7-2), emelfm (<= 0.9.2-7), epan, fte-xwindow (<= 0.50.0-1.3), fvwm1 (<= 1.24r-46), fvwm95 (<= 2.0.43ba-23+b1), gerstensaft (<= 0.2-5.1), ghostview, gipsc (<= 0.4.3-2), grace (<= 1:5.1.18-1), grace6 (<= 5.99.0+final-4), gradio (<= 1.0.1-6), groff (<= 1.18.1.1-7), guitar (<= 0.1.4-11), hamsoft (<< 0.2.3-1), hanterm-classic (<= 3.1.6.0-4), hanterm-xf (<= 1:3.3.1p18-9.2), hfsutils-tcltk (<= 3.2.6-7), ibp (<= 0.21-4), isdnutils-xtools (<= 1:3.8.2005-12-06-4), ivtools-bin (<= 1.1.3-5), ivtools-dev (<= 1.1.3-5), kdrill (<= 6.4-2.1), kinput2-canna (<= 3.1-7), kinput2-canna-wnn (<= 3.1-7), kinput2-wnn (<= 3.1-7), kterm (<= 6.2.0-45), lbxproxy (<< 7.0), libmotif-dev (<= 2.2.3-1.3), libxft-dev (<= 2.1.8.2-5), lm-batmon (<= 0.96-3), login.app (<= 1.2.1-18), lsb-core (<= 3.1-4), lwm (<= 1.2.1-1), mctools-lite (<= 970129-16), mgp (<= 1.11b-6), motif-clients (<= 2.2.3-1.3), navigator-smotif-477, netscape-base-4, olvwm (<= 4.4.3.2p1.4-21), olwm (<= 3.2p1.4-21), oneko (<= 1.2.sakura.6-1), opera (<< 9.10-20060616), pgaccess (<= 1:0.98.8.20030520-2), phototk, pixmap (<= 2.6pl4-14.1), plotmtv (<= 1.4.4t-8.1), pmud (<= 0.10-9), ppxp (<= 0.2001080415-14), ppxp-x11 (<= 0.2001080415-14), procmeter (<= 2.5.1-11), propsel (<= 971130-5.3), proxymngr (<< 7.0), qcam (<= 0.91-11.1), regexplorer (<= 0.1.6-12), seyon (<= 2.20c-20), skkinput (<= 1:2.06.4-4), stella (<< 2.2-1), tkdesk (<= 2.0-5), tkseti (<= 3.06-1), tkworld, twlog (<= 1.3-4), twm (<< 7.0), ucbmpeg-play (<< 2.3p-13), vide (<= 1.21-3), videogen (<= 0.32-1), vtwm (<= 5.4.7-2), w9wm (<= 0.4.2-4), wdm (<= 1.28-1), wily (<= 0.13.41-6), wmavgload (<= 0.7.0-6.1), wmcpu (<= 1.3-4.1), wmdate (<= 0.5-7.1), wmnet (<= 1.05-12), wmnetselect (<= 0.85-5.5), wmscope (<= 3.0-9.1), wmsensors (<= 1.0.4-3.4), wmtv (<= 0.6.5-15), x-common, xautolock (<= 1:2.1-6), xbanner (<= 1.31-23), xbase-clients (<< 1:7.0), xbatt (<= 1.2.1-4), xbattbar (<= 1.4.2-3.1), xcal (<= 4.1-18.2), xcalendar-i18n (<= 4.0.0.i18p1-13.1), xcb (<= 2.4-4), xclip (<= 0.08-5), xclips (<= 6.21-6), xcolors (<= 1.5a-2), xcolorsel (<= 1.1a-11), xdkcal (<= 0.9d-2.1), xdm (<= 1:1.0.1-6), xdmx (<< 1:1.0), xdu (<= 3.0-14), xearth (<= 1.1-10.2), xengine (<= 1.11-9), xephem (<= 3.4-5), xext, xezmlm (<= 1.0.3-11), xfaces (<= 3.3-25), xfishtank (<= 2.2-23.1), xfm (<= 1.4.3-8), xfractint (<< 20.3.01-1), xfree86-common, xfs (<< 1:1.0), xfs-xtt (<= 1:1.4.1.xf430-6), xftp, xfwp (<< 7.0), xgdipc (<= 1.2-0.3), xgmod (<= 3.1-9), xgobi, xgraph (<= 12.1-3), xinput (<= 1.2-5.2), xipmsg (<= 0.8088-1.1), xisp, xlbiff (<< 4.1-4), xli (<= 1.17.0-21), xlockmore (<= 1:5.21-1), xlockmore-gl (<= 1:5.21-1), xlogmaster (<= 1.6.0-8), xmailbox (<= 2.5-9), xmem (<= 1.20-19), xmeter (<= 1.15-6), xmh (<= 6.8.2.dfsg.1-4), xmix (<= 2.1-5), xmon (<= 1.5.6-1.3), xnecview (<= 1.34-2), xnest (<< 1:1.0), xodo (<= 1.2-9.2), xorg-common, xpaste, xpmumon (<= 1.3.0), xpostit (<= 3.3.1-8.2), xpostitplus, xprint (<= 1:0.1.0.alpha1-13), xrn (<= 9.02-7.1), xserver-common (<< 7), xserver-xfree86 (<< 1:7.0), xserver-xfree86-dbg, xserver-xorg (<< 1:7.3+11), xslideshow (<= 3.1-8.1), xsysinfo (<= 1.7-2), xtel (<= 3.3.0-5.4), xterm (<< 208-1), xtoolwait (<= 1.3-6), xtrkcad (<= 3.1.4-1), xtrlock (<= 2.0-11), xturqstat (<= 2.2.2sarge1), xutils (<< 1:7.0), xv (<= 3.10a-26), xvfb (<< 1:1.0), xview-clients (<= 3.2p1.4-21), xviewg (<= 3.2p1.4-21), xviewg-dev (<= 3.2p1.4-21), xvkbd (<= 2.6-2.1), xwit (<= 3.4-6), xxkb (<= 1.10-2.1), xzoom (<= 0.3-17), yank (<= 0.2.1-7.2)
+Description: X Window System (X.Org) infrastructure
+
+Package: xulrunner-1.9
+Status: install ok installed
+Priority: optional
+Section: devel
+Installed-Size: 17800
+Maintainer: Mike Hommey <glandium@debian.org>
+Architecture: i386
+Source: xulrunner
+Version: 1.9.0.19-1
+Replaces: xulrunner-1.9-common
+Depends: libatk1.0-0 (>= 1.20.0), libbz2-1.0, libc6 (>= 2.7-1), libcairo2 (>= 1.6.0), libfontconfig1 (>= 2.4.0), libfreetype6 (>= 2.3.5), libgcc1 (>= 1:4.1.1), libglib2.0-0 (>= 2.16.0), libgtk2.0-0 (>= 2.12.0), libhunspell-1.2-0 (>= 1.2.4), libjpeg62, liblcms1 (>= 1.15-1), libmozjs1d (>= 1.9.0.15), libnspr4-0d (>> 4.7.1-1), libnss3-1d (>= 3.12.3), libpango1.0-0 (>= 1.20.3), libpng12-0 (>= 1.2.13-4), libreadline5 (>= 5.2), libsqlite3-0 (>= 3.5.9), libstartup-notification0 (>= 0.8-1), libstdc++6 (>= 4.1.1), libx11-6, libxrender1, libxt6, zlib1g (>= 1:1.1.4)
+Suggests: xulrunner-1.9-gnome-support
+Conflicts: j2re1.4, pango-graphite
+Description: XUL + XPCOM application runner
+
+Package: zlib1g
+Status: install ok installed
+Priority: required
+Section: libs
+Installed-Size: 128
+Maintainer: Mark Brown <broonie@debian.org>
+Architecture: i386
+Source: zlib
+Version: 1:1.2.3.3.dfsg-12
+Provides: libz1
+Depends: libc6 (>= 2.7-1)
+Conflicts: zlib1 (<= 1:1.0.4-7)
+Description: compression library - runtime
+
diff --git a/test/integration/test-autoremove b/test/integration/test-autoremove
new file mode 100755
index 000000000..fb39e979a
--- /dev/null
+++ b/test/integration/test-autoremove
@@ -0,0 +1,31 @@
+#!/bin/sh
+set -e
+
+local TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture "i386"
+
+buildsimplenativepackage "unrelated" "all" "1" "unstable"
+buildsimplenativepackage "po-debconf" "all" "1.0.16" "unstable"
+buildsimplenativepackage "debhelper" "all" "8.0.0" "unstable" "Depends: po-debconf"
+setupaptarchive
+
+aptget install unrelated debhelper -qq 2>&1 > /dev/null
+
+testfileequal "rootdir/var/lib/apt/extended_states" "Package: po-debconf
+Architecture: i386
+Auto-Installed: 1
+"
+aptget remove debhelper -y -qq 2>&1 > /dev/null
+aptget autoremove -y -qq 2>&1 > /dev/null
+
+testfileequal "rootdir/var/lib/apt/extended_states" ""
+
+sed -i rootdir/var/log/apt/history.log -e '/^Commandline: / d' -e '/^Start-Date: / d' -e '/^End-Date: / d'
+testfileequal "rootdir/var/log/apt/history.log" '
+Install: unrelated:i386 (1), debhelper:i386 (8.0.0), po-debconf:i386 (1.0.16, automatic)
+
+Remove: debhelper:i386 (8.0.0)
+
+Remove: po-debconf:i386 (1.0.16)'
diff --git a/test/integration/test-bug-590041-prefer-non-virtual-packages b/test/integration/test-bug-590041-prefer-non-virtual-packages
new file mode 100755
index 000000000..3e2693f85
--- /dev/null
+++ b/test/integration/test-bug-590041-prefer-non-virtual-packages
@@ -0,0 +1,51 @@
+#!/bin/sh
+set -e
+
+. $(readlink -f $(dirname $0))/framework
+setupenvironment
+configarchitecture "i386" "armel"
+
+pkglibc6="Package: libc6
+Architecture: armel
+Version: 2.11.2-2~0.3
+Description: Embedded GNU C Library: Shared libraries
+Filename: pool/main/e/eglibc/libc6_2.11.2-2_armel.deb
+Installed-Size: 9740
+MD5sum: f5b878ce5fb8aa01a7927fa1460df537
+Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
+Priority: required
+SHA1: 0464d597dfbf949e8c17a42325b1f93fb4914afd
+SHA256: faca4a3d9ccff57568abf41f6cb81ddd835be7b5d8b0161e2d5f9a7f26aae3c0
+Section: libs
+Size: 4178958
+"
+
+pkglibdb1="Package: libdb1
+Architecture: i386
+Version: 2.1.3-13~0.3
+Replaces: libc6 (<< 2.2.5-13~0.3)
+Description: The Berkeley database routines [glibc 2.0/2.1 compatibility]
+Filename: pool/main/d/db1-compat/libdb1-compat_2.1.3-13_armel.deb
+Installed-Size: 136
+MD5sum: 4043f176ab2b40b0c01bc1211b8c103c
+Maintainer: Colin Watson <cjwatson@debian.org>
+Priority: extra
+SHA1: b9396fdd2e3e8d1d4ba9e74e7346075852d85666
+SHA256: f17decaa28d1db3eeb9eb17bebe50d437d293a509bcdd7cdfd3ebb56f5de3cea
+Section: oldlibs
+Size: 44168
+"
+
+cat <<-EOF >aptarchive/Packages
+$pkglibc6
+$pkglibdb1
+EOF
+
+setupaptarchive
+
+testshowvirtual libc6:i386
+testequal "$pkglibc6" aptcache show libc6:armel
+testequal "$pkglibc6" aptcache show libc6
+testequal "$pkglibdb1" aptcache show libdb1:i386
+testnopackage libdb1:armel
+testequal "$pkglibdb1" aptcache show libdb1
diff --git a/test/integration/test-bug-590438-broken-provides-thanks-to-remove-order b/test/integration/test-bug-590438-broken-provides-thanks-to-remove-order
new file mode 100755
index 000000000..9fd7741f4
--- /dev/null
+++ b/test/integration/test-bug-590438-broken-provides-thanks-to-remove-order
@@ -0,0 +1,98 @@
+#!/bin/sh
+set -e
+
+local TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+
+setupenvironment
+configarchitecture "i386"
+setupaptarchive
+
+pkgbasefile="Package: base-files
+Status: install ok installed
+Essential: yes
+Priority: required
+Section: admin
+Installed-Size: 472
+Maintainer: Santiago Vila <sanvila@debian.org>
+Architecture: i386
+Version: 5.8
+Replaces: base, dpkg (<= 1.15.0), miscutils
+Provides: base
+Filename: pool/main/b/base-files/base-files_5.8_i386.deb
+Size: 73986
+MD5sum: 8489687ce10e656babd467c9ee389349
+Description-de: Verschiedene Dateien für das Basis-System von Debian"
+
+predependsgawk() {
+# rm rootdir/var/cache/apt/*.bin
+ cp $TESTDIR/$(echo "$(basename $0)" | sed 's/test-/status-/') rootdir/var/lib/dpkg/status
+ echo "$pkgbasefile
+Pre-Depends: $1
+" >> rootdir/var/lib/dpkg/status
+ testequal "Inst gawk (1:3.1.7.dfsg-5 localhost [i386])
+Conf gawk (1:3.1.7.dfsg-5 localhost [i386])
+Remv mawk [1.3.3-15]" aptget install gawk mawk- -sqq -o PreDepends=$(echo "$1" | sed 's/ //g')
+}
+
+predependsgawk "gawk | mawk"
+predependsgawk "mawk | gawk"
+
+predependsgawk "aawk | mawk | gawk"
+predependsgawk "aawk | gawk | mawk"
+
+predependsgawk "gawk | awk"
+predependsgawk "aawk | gawk | awk"
+
+predependsgawk "mawk | awk"
+
+predependsgawk "awk | gawk"
+predependsgawk "awk | gawk | aawk"
+
+predependsgawk "awk | mawk"
+
+predependsgawk "aawk | awk"
+predependsgawk "awk | aawk"
+
+predependsgawk "awk"
+
+predependsgawk2() {
+# rm rootdir/var/cache/apt/*.bin
+ cp $TESTDIR/$(echo "$(basename $0)" | sed 's/test-/status-/') rootdir/var/lib/dpkg/status
+ echo "$pkgbasefile
+Pre-Depends: $1
+" >> rootdir/var/lib/dpkg/status
+ testequalor2 "Inst coolstuff (1-1 localhost [all])
+Conf coolstuff (1-1 localhost [all])
+Inst gawk2 (1:3.1.7.dfsg-5 localhost [i386])
+Conf gawk2 (1:3.1.7.dfsg-5 localhost [i386])
+Remv mawk [1.3.3-15]" "Inst coolstuff (1-1 localhost [all])
+Inst gawk2 (1:3.1.7.dfsg-5 localhost [i386])
+Conf coolstuff (1-1 localhost [all])
+Conf gawk2 (1:3.1.7.dfsg-5 localhost [i386])
+Remv mawk [1.3.3-15]" aptget install gawk2 mawk- -sqq -o PreDepends=$(echo "$1" | sed 's/ //g')
+}
+
+predependsgawk2 "gawk2 | mawk"
+predependsgawk2 "mawk | gawk2"
+
+predependsgawk2 "aawk | mawk | gawk2"
+predependsgawk2 "aawk | gawk2 | mawk"
+
+predependsgawk2 "gawk2 | awk"
+predependsgawk2 "aawk | gawk2 | awk"
+
+predependsgawk2 "mawk | awk"
+
+predependsgawk2 "awk | gawk2"
+predependsgawk2 "awk | gawk2 | aawk"
+
+predependsgawk2 "awk | mawk"
+
+predependsgawk2 "aawk | awk"
+predependsgawk2 "awk | aawk"
+
+predependsgawk2 "awk"
+
+
+# aptget install gawk2 mawk- -s #-o Debug::pkgOrderList=1 #-o Debug::pkgPackageManager=1
diff --git a/test/integration/test-bug-591882-conkeror b/test/integration/test-bug-591882-conkeror
new file mode 100755
index 000000000..b1dbb3a0a
--- /dev/null
+++ b/test/integration/test-bug-591882-conkeror
@@ -0,0 +1,75 @@
+#!/bin/sh
+set -e
+
+local TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture "i386"
+setupaptarchive
+
+UPGRADEFAIL="Reading package lists...
+Building dependency tree...
+The following packages will be REMOVED:
+ conkeror libdatrie0 libkrb53 libxcb-xlib0 xulrunner-1.9
+The following NEW packages will be installed:
+ gcc-4.4-base libavahi-client3 libavahi-common-data libavahi-common3 libc-bin
+ libdatrie1 libdb4.7 libdb4.8 libdbus-1-3 libgssapi-krb5-2 libjasper1
+ libk5crypto3 libkrb5-3 libkrb5support0 liblzma2 libpam-modules libpam0g
+ libuuid1 libxcb-atom1 libxcb-aux0 libxcb-event1 libxml2 passwd
+ sensible-utils shared-mime-info xz-utils
+The following packages will be upgraded:
+ coreutils debconf debconf-i18n debianutils defoma dpkg file fontconfig
+ fontconfig-config libacl1 libatk1.0-0 libattr1 libbz2-1.0 libc6 libcairo2
+ libcomerr2 libcups2 libexpat1 libfontconfig1 libfreetype6 libgcc1
+ libgcrypt11 libgdbm3 libglib2.0-0 libgnutls26 libgpg-error0 libgtk2.0-0
+ libgtk2.0-common libhunspell-1.2-0 libice6 libjpeg62 libkeyutils1
+ liblocale-gettext-perl libmagic1 libncurses5 libnewt0.52 libnspr4-0d
+ libnss3-1d libpango1.0-0 libpango1.0-common libpcre3 libpixman-1-0
+ libpng12-0 libpopt0 libselinux1 libslang2 libsm6 libsqlite3-0
+ libstartup-notification0 libstdc++6 libtasn1-3 libtext-charwidth-perl
+ libtext-iconv-perl libtext-wrapi18n-perl libthai-data libthai0 libtiff4
+ libx11-6 libx11-data libxau6 libxcb-render-util0 libxcb-render0 libxcb1
+ libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxft2
+ libxi6 libxinerama1 libxrandr2 libxrender1 libxt6 lsb-base ncurses-bin perl
+ perl-base perl-modules readline-common sed ttf-dejavu-core ucf whiptail
+ x11-common zlib1g
+87 upgraded, 26 newly installed, 5 to remove and 0 not upgraded.
+Need to get 0B/54.4MB of archives.
+After this operation, 12.4MB of additional disk space will be used.
+E: Trivial Only specified but this is not a trivial operation."
+
+UPGRADESUCCESS="Reading package lists...
+Building dependency tree...
+The following packages will be REMOVED:
+ libdatrie0 libkrb53 libxcb-xlib0 xulrunner-1.9
+The following NEW packages will be installed:
+ gcc-4.4-base libasound2 libavahi-client3 libavahi-common-data
+ libavahi-common3 libc-bin libdatrie1 libdb4.7 libdb4.8 libdbus-1-3
+ libgssapi-krb5-2 libjasper1 libk5crypto3 libkrb5-3 libkrb5support0 liblzma2
+ libmozjs2d libpam-modules libpam0g libreadline6 libuuid1 libxcb-atom1
+ libxcb-aux0 libxcb-event1 libxml2 passwd sensible-utils shared-mime-info
+ xulrunner-1.9.1 xz-utils
+The following packages will be upgraded:
+ conkeror coreutils debconf debconf-i18n debianutils defoma dpkg file
+ fontconfig fontconfig-config libacl1 libatk1.0-0 libattr1 libbz2-1.0 libc6
+ libcairo2 libcomerr2 libcups2 libexpat1 libfontconfig1 libfreetype6 libgcc1
+ libgcrypt11 libgdbm3 libglib2.0-0 libgnutls26 libgpg-error0 libgtk2.0-0
+ libgtk2.0-common libhunspell-1.2-0 libice6 libjpeg62 libkeyutils1
+ liblocale-gettext-perl libmagic1 libncurses5 libnewt0.52 libnspr4-0d
+ libnss3-1d libpango1.0-0 libpango1.0-common libpcre3 libpixman-1-0
+ libpng12-0 libpopt0 libselinux1 libslang2 libsm6 libsqlite3-0
+ libstartup-notification0 libstdc++6 libtasn1-3 libtext-charwidth-perl
+ libtext-iconv-perl libtext-wrapi18n-perl libthai-data libthai0 libtiff4
+ libx11-6 libx11-data libxau6 libxcb-render-util0 libxcb-render0 libxcb1
+ libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxft2
+ libxi6 libxinerama1 libxrandr2 libxrender1 libxt6 lsb-base ncurses-bin perl
+ perl-base perl-modules readline-common sed ttf-dejavu-core ucf whiptail
+ x11-common zlib1g
+88 upgraded, 30 newly installed, 4 to remove and 0 not upgraded.
+Need to get 0B/62.9MB of archives.
+After this operation, 36.0MB of additional disk space will be used.
+E: Trivial Only specified but this is not a trivial operation."
+
+# Test that the old behavior can be restored with the option
+testequal "$UPGRADEFAIL" aptget dist-upgrade --trivial-only -o pkgProblemResolver::FixByInstall=0
+testequal "$UPGRADESUCCESS" aptget dist-upgrade --trivial-only #-o pkgProblemResolver::FixByInstall=0
diff --git a/test/integration/test-compressed-indexes b/test/integration/test-compressed-indexes
new file mode 100755
index 000000000..0b73f4c35
--- /dev/null
+++ b/test/integration/test-compressed-indexes
@@ -0,0 +1,131 @@
+#!/bin/sh
+set -e
+
+local TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+
+setupenvironment
+configarchitecture "i386"
+
+buildsimplenativepackage "testpkg" "i386" "1.0"
+setupaptarchive
+
+local GOODSHOW="$(aptcache show testpkg)
+"
+local GOODPOLICY="$(aptcache policy testpkg)"
+local GOODSHOWSRC="$(aptcache showsrc testpkg)
+"
+
+test $(echo "$GOODSHOW" | grep -e '^Package: testpkg' -e '^Version: 1.0' -e '^Architecture: i386' | wc -l) -eq 3
+testequal "$GOODSHOW" aptcache show testpkg
+test $(echo "$GOODPOLICY" | grep -e '^testpkg:' -e '^ Candidate:' -e '^ Installed: (none)' -e '500 file:/' | wc -l) -eq 4
+testequal "$GOODPOLICY" aptcache policy testpkg
+test $(echo "$GOODSHOWSRC" | grep -e '^Package: testpkg' -e '^Format: 3.0 (native)' -e '^Files:' -e '^Checksums-Sha256:' | wc -l) -eq 4
+testequal "$GOODSHOWSRC" aptcache showsrc testpkg
+
+
+testrun() {
+ local F
+ if [ -e rootdir/var/lib/apt/lists/*localhost*Release ]; then
+ msgtest "Check if all index files are" "${1:-uncompressed}"
+ if [ "$1" = "compressed" ]; then
+ ! test -e rootdir/var/lib/apt/lists/*_Packages || F=1
+ ! test -e rootdir/var/lib/apt/lists/*_Sources || F=1
+ test -e rootdir/var/lib/apt/lists/*_Packages.gz || F=1
+ test -e rootdir/var/lib/apt/lists/*_Sources.gz || F=1
+ else
+ test -e rootdir/var/lib/apt/lists/*_Packages || F=1
+ test -e rootdir/var/lib/apt/lists/*_Sources || F=1
+ ! test -e rootdir/var/lib/apt/lists/*_Packages.gz || F=1
+ ! test -e rootdir/var/lib/apt/lists/*_Sources.gz || F=1
+ fi
+ if [ -n "$F" ]; then
+ ls -laR rootdir/var/lib/apt/lists/
+ msgfail
+ else
+ msgpass
+ fi
+ msgtest "Check if package is downloadable"
+ aptget install -d testpkg -qq && msgpass || msgfail
+ msgtest "\tdeb file is present"; test -f rootdir/var/cache/apt/archives/testpkg_1.0_i386.deb && msgpass || msgfail
+ aptget clean
+ msgtest "\tdeb file is gone"; ! test -f rootdir/var/cache/apt/archives/testpkg_1.0_i386.deb && msgpass || msgfail
+ fi
+ rm rootdir/var/cache/apt/pkgcache.bin rootdir/var/cache/apt/srcpkgcache.bin
+ testequal "$GOODSHOW" aptcache show testpkg
+ testequal "$GOODSHOW" aptcache show testpkg
+ rm rootdir/var/cache/apt/pkgcache.bin rootdir/var/cache/apt/srcpkgcache.bin
+ testequal "$GOODPOLICY" aptcache policy testpkg
+ testequal "$GOODPOLICY" aptcache policy testpkg
+ rm rootdir/var/cache/apt/pkgcache.bin rootdir/var/cache/apt/srcpkgcache.bin
+ testequal "$GOODSHOWSRC" aptcache showsrc testpkg
+ testequal "$GOODSHOWSRC" aptcache showsrc testpkg
+ rm -f rootdir/var/cache/apt/pkgcache.bin rootdir/var/cache/apt/srcpkgcache.bin
+ rm -rf rootdir/var/cache/apt/archives
+ msgtest "Check if the source is aptgetable"
+ aptget source testpkg -qq 2> /dev/null > /dev/null && msgpass || msgfail
+ msgtest "\tdsc file is present"; test -f testpkg_1.0.dsc && msgpass || msgfail
+ msgtest "\tdirectory is present"; test -d testpkg-1.0 && msgpass || msgfail
+ rm -rf testpkg-1.0
+}
+
+msgmsg "File: Test with uncompressed indexes"
+testrun
+
+aptget update -qq -o Acquire::Pdiffs=1
+msgmsg "File: Test with uncompressed indexes (update unchanged with pdiffs)"
+testrun
+
+aptget update -qq -o Acquire::Pdiffs=0
+msgmsg "File: Test with uncompressed indexes (update unchanged without pdiffs)"
+testrun
+
+rm -rf rootdir/var/lib/apt/lists
+echo 'Acquire::CompressionTypes::Order:: "gz";
+Acquire::GzipIndexes "true";' > rootdir/etc/apt/apt.conf.d/02compressindex
+
+aptget update -qq
+msgmsg "File: Test with compressed indexes"
+testrun "compressed"
+
+aptget update -qq -o Acquire::Pdiffs=1
+msgmsg "File: Test with compressed indexes (update unchanged with pdiffs)"
+testrun "compressed"
+
+aptget update -qq -o Acquire::Pdiffs=0
+msgmsg "File: Test with compressed indexes (update unchanged without pdiffs)"
+testrun "compressed"
+
+rm rootdir/etc/apt/apt.conf.d/02compressindex
+changetowebserver
+aptget update -qq
+local GOODPOLICY="$(aptcache policy testpkg)"
+test $(echo "$GOODPOLICY" | grep -e '^testpkg:' -e '^ Candidate:' -e '^ Installed: (none)' -e '500 http://' | wc -l) -eq 4
+testequal "$GOODPOLICY" aptcache policy testpkg
+
+msgmsg "HTTP: Test with uncompressed indexes"
+testrun
+
+aptget update -qq -o Acquire::Pdiffs=1
+msgmsg "HTTP: Test with uncompressed indexes (update unchanged with pdiffs)"
+testrun
+
+aptget update -qq -o Acquire::Pdiffs=0
+msgmsg "HTTP: Test with uncompressed indexes (update unchanged without pdiffs)"
+testrun
+
+rm -rf rootdir/var/lib/apt/lists
+echo 'Acquire::CompressionTypes::Order:: "gz";
+Acquire::GzipIndexes "true";' > rootdir/etc/apt/apt.conf.d/02compressindex
+
+aptget update -qq
+msgmsg "HTTP: Test with compressed indexes"
+testrun "compressed"
+
+aptget update -qq -o Acquire::Pdiffs=1
+msgmsg "HTTP: Test with compressed indexes (update unchanged with pdiffs)"
+testrun "compressed"
+
+aptget update -qq -o Acquire::Pdiffs=0
+msgmsg "HTTP: Test with compressed indexes (update unchanged without pdiffs)"
+testrun "compressed"
diff --git a/test/integration/test-disappearing-packages b/test/integration/test-disappearing-packages
new file mode 100755
index 000000000..ebf2bb14f
--- /dev/null
+++ b/test/integration/test-disappearing-packages
@@ -0,0 +1,54 @@
+#!/bin/sh
+set -e
+
+local TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture "i386"
+
+buildsimplenativepackage "old-pkg" "i386" "1.0" "stable"
+buildsimplenativepackage "unrelated" "all" "0.5" "unstable"
+
+setupsimplenativepackage "new-pkg" "i386" "2.0" "unstable" "Provides: old-pkg
+Replaces: old-pkg
+Conflicts: old-pkg (<< 2.0)"
+local BUILDDIR="incoming/new-pkg-2.0"
+echo "/usr/share/doc/new-pkg /usr/share/doc/old-pkg" > ${BUILDDIR}/debian/new-pkg.links
+buildpackage "$BUILDDIR" "unstable" "main"
+rm -rf "$BUILDDIR"
+
+setupsimplenativepackage "old-pkg" "all" "2.0" "unstable" "Depends: new-pkg"
+local BUILDDIR="incoming/old-pkg-2.0"
+echo "/usr/share/doc/new-pkg /usr/share/doc/old-pkg" > ${BUILDDIR}/debian/old-pkg.links
+echo "
+override_dh_link:
+ rm -rf debian/old-pkg/usr/share/doc/old-pkg/
+ dh_link" >> ${BUILDDIR}/debian/rules
+buildpackage "$BUILDDIR" "unstable" "main"
+rm -rf "$BUILDDIR"
+
+setupaptarchive
+
+aptget install old-pkg=1.0 --trivial-only -qq 2>&1 > /dev/null
+
+testfileequal "rootdir/var/lib/apt/extended_states" "" # old-pkg is manual installed
+
+local CMD="aptget dist-upgrade -y -q=0"
+msgtest "Test for equality of" "$CMD"
+local COMPAREFILE=$(mktemp)
+echo "The following package disappeared from your system as
+all files have been overwritten by other packages:
+ old-pkg
+Note: This is done automatic and on purpose by dpkg." > $COMPAREFILE
+$CMD 2>&1 | tail -n 4 | diff $COMPAREFILE - && msgpass || msgfail
+rm $COMPAREFILE
+
+sed -i rootdir/var/log/apt/history.log -e '/^Commandline: / d' -e '/^Start-Date: / d' -e '/^End-Date: / d'
+testfileequal "rootdir/var/log/apt/history.log" "
+Install: old-pkg:i386 (1.0)
+
+Install: new-pkg:i386 (2.0, automatic)
+Upgrade: old-pkg:i386 (1.0, 2.0)
+Disappeared: old-pkg (1.0)"
+
+testfileequal "rootdir/var/lib/apt/extended_states" "" # new-pkg should have get the manual flag from old-pkg
diff --git a/test/integration/test-pdiff-usage b/test/integration/test-pdiff-usage
new file mode 100755
index 000000000..85cbe9082
--- /dev/null
+++ b/test/integration/test-pdiff-usage
@@ -0,0 +1,51 @@
+#!/bin/sh
+set -e
+
+local TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+
+setupenvironment
+configarchitecture "i386"
+
+buildaptarchive
+setupflataptarchive
+changetowebserver
+signreleasefiles
+aptget update -qq
+
+testnopackage newstuff
+PKGFILE="${TESTDIR}/$(echo "$(basename $0)" | sed 's#^test-#Packages-#')"
+testequal "$(cat ${PKGFILE})
+" aptcache show apt oldstuff
+
+cp ${PKGFILE}-new aptarchive/Packages
+cat aptarchive/Packages | gzip > aptarchive/Packages.gz
+cat aptarchive/Packages | bzip2 > aptarchive/Packages.bz2
+cat aptarchive/Packages | lzma > aptarchive/Packages.lzma
+rm -rf aptarchive/Packages.diff
+aptftparchive release aptarchive/ > aptarchive/Release
+mkdir -p aptarchive/Packages.diff
+PATCHFILE="aptarchive/Packages.diff/$(date +%Y-%m-%d-%H%M.%S)"
+diff -e ${PKGFILE} ${PKGFILE}-new > ${PATCHFILE} || true
+cat $PATCHFILE | gzip > ${PATCHFILE}.gz
+PATCHINDEX="aptarchive/Packages.diff/Index"
+echo "SHA1-Current: $(sha1sum ${PKGFILE}-new | cut -d' ' -f 1) $(stat -c%s ${PKGFILE}-new)
+SHA1-History:
+ 9f4148e06d7faa37062994ff10d0c842d7017513 33053002 2010-08-18-2013.28
+ $(sha1sum $PKGFILE | cut -d' ' -f 1) $(stat -c%s $PKGFILE) $(basename $PATCHFILE)
+SHA1-Patches:
+ 7651fc0ac57cd83d41c63195a9342e2db5650257 19722 2010-08-18-0814.28
+ $(sha1sum $PATCHFILE | cut -d' ' -f 1) $(stat -c%s $PATCHFILE) $(basename $PATCHFILE)" > $PATCHINDEX
+sed -i aptarchive/Release \
+ -e "/^MD5Sum:/ a\
+ \ $(md5sum $PATCHINDEX | cut -d' ' -f 1) $(stat -c%s $PATCHINDEX) Packages.diff/Index" \
+ -e "/^SHA1:/ a\
+ \ $(sha1sum $PATCHINDEX | cut -d' ' -f 1) $(stat -c%s $PATCHINDEX) Packages.diff/Index" \
+ -e "/^SHA256:/ a\
+ \ $(sha256sum $PATCHINDEX | cut -d' ' -f 1) $(stat -c%s $PATCHINDEX) Packages.diff/Index"
+signreleasefiles
+aptget update -qq
+
+testnopackage oldstuff
+testequal "$(cat ${PKGFILE}-new)
+" aptcache show apt newstuff
diff --git a/test/libapt/assert.h b/test/libapt/assert.h
new file mode 100644
index 000000000..5da76ae0a
--- /dev/null
+++ b/test/libapt/assert.h
@@ -0,0 +1,21 @@
+#include <iostream>
+
+#define equals(x,y) assertEquals(x, y, __LINE__)
+
+template < typename X, typename Y >
+void OutputAssert(X expect, char const* compare, Y get, unsigned long const &line) {
+ std::cerr << "Test FAILED: »" << expect << "« " << compare << " »" << get << "« at line " << line << std::endl;
+}
+
+template < typename X, typename Y >
+void assertEquals(X expect, Y get, unsigned long const &line) {
+ if (expect == get)
+ return;
+ OutputAssert(expect, "==", get, line);
+}
+
+void assertEquals(unsigned int const &expect, int const &get, unsigned long const &line) {
+ if (get < 0)
+ OutputAssert(expect, "==", get, line);
+ assertEquals<unsigned int const&, unsigned int const&>(expect, get, line);
+}
diff --git a/test/libapt/commandlineasstring_test.cc b/test/libapt/commandlineasstring_test.cc
new file mode 100644
index 000000000..a38957d7e
--- /dev/null
+++ b/test/libapt/commandlineasstring_test.cc
@@ -0,0 +1,39 @@
+#include <apt-pkg/cmndline.h>
+#include <apt-pkg/configuration.h>
+
+#include <string>
+
+#include "assert.h"
+
+class CLT: public CommandLine {
+
+ public:
+ std::string static AsString(const char * const * const argv,
+ unsigned int const argc) {
+ std::string const static conf = "Commandline::AsString";
+ _config->Clear(conf);
+ SaveInConfig(argc, argv);
+ return _config->Find(conf);
+ }
+};
+
+#define CMD(y,z) equals(CLT::AsString(argv, y), z);
+
+int main() {
+ {
+ const char* const argv[] = {"apt-get", "install", "-sf"};
+ CMD(3, "apt-get install -sf");
+ }
+ {
+ const char* const argv[] = {"apt-cache", "-s", "apt", "-so", "Debug::test=Test"};
+ CMD(5, "apt-cache -s apt -so Debug::test=Test");
+ }
+ {
+ const char* const argv[] = {"apt-cache", "-s", "apt", "-so", "Debug::test=Das ist ein Test"};
+ CMD(5, "apt-cache -s apt -so Debug::test=\"Das ist ein Test\"");
+ }
+ {
+ const char* const argv[] = {"apt-cache", "-s", "apt", "--hallo", "test=1.0"};
+ CMD(5, "apt-cache -s apt --hallo test=1.0");
+ }
+}
diff --git a/test/libapt/compareversion_test.cc b/test/libapt/compareversion_test.cc
new file mode 100644
index 000000000..b6213e84c
--- /dev/null
+++ b/test/libapt/compareversion_test.cc
@@ -0,0 +1,123 @@
+// -*- mode: cpp; mode: fold -*-
+// Description /*{{{*/
+/* ######################################################################
+
+ Version Test - Simple program to run through a file and comare versions.
+
+ Each version is compared and the result is checked against an expected
+ result in the file. The format of the file is
+ a b Res
+ Where Res is -1, 1, 0. dpkg -D=1 --compare-versions a "<" b can be
+ used to determine what Res should be. # at the start of the line
+ is a comment and blank lines are skipped
+
+ The runner will also call dpkg --compare-versions to check if APT and
+ dpkg have (still) the same idea.
+
+ ##################################################################### */
+ /*}}}*/
+#include <apt-pkg/macros.h>
+#include <apt-pkg/error.h>
+#include <apt-pkg/version.h>
+#include <apt-pkg/debversion.h>
+#include <apt-pkg/fileutl.h>
+#include <iostream>
+#include <fstream>
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+
+using namespace std;
+
+bool callDPkg(const char *val, const char *ref, const char &op) {
+ pid_t Process = ExecFork();
+ if (Process == 0)
+ {
+ const char * args[6];
+ args[0] = "/usr/bin/dpkg";
+ args[1] = "--compare-versions";
+ args[2] = val;
+ args[3] = (op == 1) ? ">>" : ( (op == 0) ? "=" : "<<");
+ args[4] = ref;
+ args[5] = 0;
+ execv(args[0], (char**) args);
+ exit(1);
+ }
+ int Ret;
+ waitpid(Process, &Ret, 0);
+ return WIFEXITED(Ret) == true && WEXITSTATUS(Ret) == 0;
+}
+
+void assertVersion(int const &CurLine, string const &A, string const &B, int const &Expected) {
+ int Res = debVS.CmpVersion(A.c_str(), B.c_str());
+ bool const dpkg = callDPkg(A.c_str(),B.c_str(), Expected);
+ Res = (Res < 0) ? -1 : ( (Res > 0) ? 1 : Res);
+
+ if (Res != Expected)
+ _error->Error("Comparison failed on line %u. '%s' '%s' '%s' %i != %i",CurLine,A.c_str(),((Expected == 1) ? "<<" : ( (Expected == 0) ? "=" : ">>")) ,B.c_str(),Res,Expected);
+ if (dpkg == false)
+ _error->Error("DPkg differ with line: %u. '%s' '%s' '%s' == false",CurLine,A.c_str(),((Expected == 1) ? "<<" : ( (Expected == 0) ? "=" : ">>")),B.c_str());
+}
+
+bool RunTest(const char *File)
+{
+ ifstream F(File,ios::in);
+ if (!F != 0)
+ return false;
+
+ char Buffer[300];
+ int CurLine = 0;
+
+ while (1)
+ {
+ F.getline(Buffer,sizeof(Buffer));
+ CurLine++;
+ if (F.eof() != 0)
+ return true;
+ if (!F != 0)
+ return _error->Error("Line %u in %s is too long",CurLine,File);
+
+ // Comment
+ if (Buffer[0] == '#' || Buffer[0] == 0)
+ continue;
+
+ // First version
+ char *I;
+ char *Start = Buffer;
+ for (I = Buffer; *I != 0 && *I != ' '; I++);
+ string A(Start, I - Start);
+
+ if (*I == 0)
+ return _error->Error("Invalid line %u",CurLine);
+
+ // Second version
+ I++;
+ Start = I;
+ for (I = Start; *I != 0 && *I != ' '; I++);
+ string B(Start,I - Start);
+
+ if (*I == 0 || I[1] == 0)
+ return _error->Error("Invalid line %u",CurLine);
+
+ // Result
+ I++;
+ int const Expected = atoi(I);
+ assertVersion(CurLine, A, B, Expected);
+ // Check the reverse as well
+ assertVersion(CurLine, B, A, Expected*-1);
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ if (argc <= 1)
+ RunTest("../versions.lst");
+ else
+ RunTest(argv[1]);
+
+ // Print any errors or warnings found
+ _error->DumpErrors();
+ return 0;
+}
diff --git a/test/libapt/getarchitectures_test.cc b/test/libapt/getarchitectures_test.cc
new file mode 100644
index 000000000..1500caeed
--- /dev/null
+++ b/test/libapt/getarchitectures_test.cc
@@ -0,0 +1,61 @@
+#include <apt-pkg/aptconfiguration.h>
+#include <apt-pkg/configuration.h>
+
+#include "assert.h"
+#include <string>
+#include <vector>
+
+#include <iostream>
+
+// simple helper to quickly output a vector of strings
+void dumpVector(std::vector<std::string> vec) {
+ for (std::vector<std::string>::const_iterator v = vec.begin();
+ v != vec.end(); v++)
+ std::cout << *v << std::endl;
+}
+
+int main(int argc,char *argv[])
+{
+ std::vector<std::string> vec;
+
+ _config->Set("APT::Architectures::1", "i386");
+ _config->Set("APT::Architectures::2", "amd64");
+ vec = APT::Configuration::getArchitectures(false);
+ equals(vec.size(), 2);
+ equals(vec[0], "i386");
+ equals(vec[1], "amd64");
+
+ _config->Set("APT::Architecture", "i386");
+ vec = APT::Configuration::getArchitectures(false);
+ equals(vec.size(), 2);
+ equals(vec[0], "i386");
+ equals(vec[1], "amd64");
+
+ _config->Set("APT::Architectures::2", "");
+ vec = APT::Configuration::getArchitectures(false);
+ equals(vec.size(), 1);
+ equals(vec[0], "i386");
+
+ _config->Set("APT::Architecture", "armel");
+ vec = APT::Configuration::getArchitectures(false);
+ equals(vec.size(), 2);
+ equals(vec[0], "i386");
+ equals(vec[1], "armel");
+
+ _config->Set("APT::Architectures::2", "amd64");
+ _config->Set("APT::Architectures::3", "i386");
+ _config->Set("APT::Architectures::4", "armel");
+ _config->Set("APT::Architectures::5", "i386");
+ _config->Set("APT::Architectures::6", "amd64");
+ _config->Set("APT::Architectures::7", "armel");
+ _config->Set("APT::Architectures::8", "armel");
+ _config->Set("APT::Architectures::9", "amd64");
+ _config->Set("APT::Architectures::10", "amd64");
+ vec = APT::Configuration::getArchitectures(false);
+ equals(vec.size(), 3);
+ equals(vec[0], "i386");
+ equals(vec[1], "amd64");
+ equals(vec[2], "armel");
+
+ return 0;
+}
diff --git a/test/libapt/getlanguages_test.cc b/test/libapt/getlanguages_test.cc
new file mode 100644
index 000000000..9a8910b58
--- /dev/null
+++ b/test/libapt/getlanguages_test.cc
@@ -0,0 +1,149 @@
+#include <apt-pkg/aptconfiguration.h>
+#include <apt-pkg/configuration.h>
+
+#include "assert.h"
+#include <string>
+#include <vector>
+
+#include <iostream>
+
+// simple helper to quickly output a vector of strings
+void dumpVector(std::vector<std::string> vec) {
+ for (std::vector<std::string>::const_iterator v = vec.begin();
+ v != vec.end(); v++)
+ std::cout << *v << std::endl;
+}
+
+int main(int argc,char *argv[])
+{
+ if (argc != 2) {
+ std::cout << "One parameter expected - given " << argc << std::endl;
+ return 100;
+ }
+
+ char const* env[2];
+ env[0] = "de_DE.UTF-8";
+ env[1] = "";
+
+ std::vector<std::string> vec = APT::Configuration::getLanguages(false, false, env);
+ equals(vec.size(), 2);
+ equals(vec[0], "de");
+ equals(vec[1], "en");
+
+ // Special: Check if the cache is actually in use
+ env[0] = "en_GB.UTF-8";
+ vec = APT::Configuration::getLanguages(false, true, env);
+ equals(vec.size(), 2);
+ equals(vec[0], "de");
+ equals(vec[1], "en");
+
+ env[0] = "en_GB.UTF-8";
+ vec = APT::Configuration::getLanguages(false, false, env);
+ equals(vec.size(), 2);
+ equals(vec[0], "en_GB");
+ equals(vec[1], "en");
+
+ // esperanto
+ env[0] = "eo.UTF-8";
+ vec = APT::Configuration::getLanguages(false, false, env);
+ equals(vec.size(), 2);
+ equals(vec[0], "eo");
+ equals(vec[1], "en");
+
+ env[0] = "tr_DE@euro";
+ vec = APT::Configuration::getLanguages(false, false, env);
+ equals(vec.size(), 2);
+ equals(vec[0], "tr");
+ equals(vec[1], "en");
+
+ env[0] = "de_NO";
+ env[1] = "se_NO:en_GB:nb_NO:nb:no_NO:no:nn_NO:nn:da:sv:en";
+ vec = APT::Configuration::getLanguages(false, false, env);
+ equals(vec.size(), 5);
+ equals(vec[0], "de");
+ equals(vec[1], "en_GB");
+ equals(vec[2], "nb");
+ equals(vec[3], "no");
+ equals(vec[4], "en");
+
+ env[0] = "pt_PR.UTF-8";
+ env[1] = "";
+ vec = APT::Configuration::getLanguages(false, false, env);
+ equals(vec.size(), 3);
+ equals(vec[0], "pt_PR");
+ equals(vec[1], "pt");
+ equals(vec[2], "en");
+
+ env[0] = "ast_DE.UTF-8";
+ vec = APT::Configuration::getLanguages(false, false, env); // bogus, but syntactical correct
+ equals(vec.size(), 2);
+ equals(vec[0], "ast");
+ equals(vec[1], "en");
+
+ env[0] = "C";
+ vec = APT::Configuration::getLanguages(false, false, env);
+ equals(vec.size(), 1);
+ equals(vec[0], "en");
+
+ _config->Set("Acquire::Languages::1", "environment");
+ _config->Set("Acquire::Languages::2", "en");
+ env[0] = "de_DE.UTF-8";
+ vec = APT::Configuration::getLanguages(false, false, env);
+ equals(vec.size(), 2);
+ equals(vec[0], "de");
+ equals(vec[1], "en");
+
+ _config->Set("Acquire::Languages::3", "de");
+ env[0] = "de_DE.UTF-8";
+ vec = APT::Configuration::getLanguages(false, false, env);
+ equals(vec.size(), 2);
+ equals(vec[0], "de");
+ equals(vec[1], "en");
+
+ _config->Set("Dir::State::lists", argv[1]);
+ vec = APT::Configuration::getLanguages(true, false, env);
+ equals(vec.size(), 5);
+ equals(vec[0], "de");
+ equals(vec[1], "en");
+ equals(vec[2], "none");
+ equals(vec[3], "pt");
+ equals(vec[4], "tr");
+
+ _config->Set("Dir::State::lists", "/non-existing-dir");
+ _config->Set("Acquire::Languages::1", "none");
+ env[0] = "de_DE.UTF-8";
+ vec = APT::Configuration::getLanguages(false, false, env);
+ equals(vec.size(), 0);
+ env[0] = "de_DE.UTF-8";
+ vec = APT::Configuration::getLanguages(true, false, env);
+ equals(vec[0], "en");
+ equals(vec[1], "de");
+
+ _config->Set("Acquire::Languages::1", "fr");
+ _config->Set("Acquire::Languages", "de_DE");
+ env[0] = "de_DE.UTF-8";
+ vec = APT::Configuration::getLanguages(false, false, env);
+ equals(vec.size(), 1);
+ equals(vec[0], "de_DE");
+
+ _config->Set("Acquire::Languages", "none");
+ env[0] = "de_DE.UTF-8";
+ vec = APT::Configuration::getLanguages(true, false, env);
+ equals(vec.size(), 0);
+
+ _config->Set("Acquire::Languages", "");
+ //FIXME: Remove support for this deprecated setting
+ _config->Set("APT::Acquire::Translation", "ast_DE");
+ env[0] = "de_DE.UTF-8";
+ vec = APT::Configuration::getLanguages(true, false, env);
+ equals(vec.size(), 2);
+ equals(vec[0], "ast_DE");
+ equals(vec[1], "en");
+ _config->Set("APT::Acquire::Translation", "none");
+ env[0] = "de_DE.UTF-8";
+ vec = APT::Configuration::getLanguages(true, false, env);
+ equals(vec.size(), 1);
+ equals(vec[0], "en");
+
+ return 0;
+}
diff --git a/test/libapt/globalerror_test.cc b/test/libapt/globalerror_test.cc
new file mode 100644
index 000000000..b2752255f
--- /dev/null
+++ b/test/libapt/globalerror_test.cc
@@ -0,0 +1,77 @@
+#include <apt-pkg/error.h>
+
+#include "assert.h"
+#include <string>
+
+int main(int argc,char *argv[])
+{
+ equals(_error->empty(), true);
+ equals(_error->PendingError(), false);
+ equals(_error->Notice("%s Notice", "A"), false);
+ equals(_error->empty(), true);
+ equals(_error->empty(GlobalError::DEBUG), false);
+ equals(_error->PendingError(), false);
+ equals(_error->Error("%s horrible %s %d times", "Something", "happend", 2), false);
+ equals(_error->PendingError(), true);
+ std::string text;
+ equals(_error->PopMessage(text), false);
+ equals(_error->PendingError(), true);
+ equals(text, "A Notice");
+ equals(_error->PopMessage(text), true);
+ equals(text, "Something horrible happend 2 times");
+ equals(_error->empty(GlobalError::DEBUG), true);
+ equals(_error->PendingError(), false);
+ equals(_error->Error("%s horrible %s %d times", "Something", "happend", 2), false);
+ equals(_error->PendingError(), true);
+ equals(_error->empty(GlobalError::FATAL), false);
+ _error->Discard();
+
+ equals(_error->empty(), true);
+ equals(_error->PendingError(), false);
+ equals(_error->Notice("%s Notice", "A"), false);
+ equals(_error->Error("%s horrible %s %d times", "Something", "happend", 2), false);
+ equals(_error->PendingError(), true);
+ equals(_error->empty(GlobalError::NOTICE), false);
+ _error->PushToStack();
+ equals(_error->empty(GlobalError::NOTICE), true);
+ equals(_error->PendingError(), false);
+ equals(_error->Warning("%s Warning", "A"), false);
+ equals(_error->empty(GlobalError::ERROR), true);
+ equals(_error->PendingError(), false);
+ _error->RevertToStack();
+ equals(_error->empty(GlobalError::ERROR), false);
+ equals(_error->PendingError(), true);
+ equals(_error->PopMessage(text), false);
+ equals(_error->PendingError(), true);
+ equals(text, "A Notice");
+ equals(_error->PopMessage(text), true);
+ equals(text, "Something horrible happend 2 times");
+ equals(_error->PendingError(), false);
+ equals(_error->empty(), true);
+
+ equals(_error->Notice("%s Notice", "A"), false);
+ equals(_error->Error("%s horrible %s %d times", "Something", "happend", 2), false);
+ equals(_error->PendingError(), true);
+ equals(_error->empty(GlobalError::NOTICE), false);
+ _error->PushToStack();
+ equals(_error->empty(GlobalError::NOTICE), true);
+ equals(_error->PendingError(), false);
+ equals(_error->Warning("%s Warning", "A"), false);
+ equals(_error->empty(GlobalError::ERROR), true);
+ equals(_error->PendingError(), false);
+ _error->MergeWithStack();
+ equals(_error->empty(GlobalError::ERROR), false);
+ equals(_error->PendingError(), true);
+ equals(_error->PopMessage(text), false);
+ equals(_error->PendingError(), true);
+ equals(text, "A Notice");
+ equals(_error->PopMessage(text), true);
+ equals(text, "Something horrible happend 2 times");
+ equals(_error->PendingError(), false);
+ equals(_error->empty(), false);
+ equals(_error->PopMessage(text), false);
+ equals(text, "A Warning");
+ equals(_error->empty(), true);
+
+ return 0;
+}
diff --git a/test/libapt/makefile b/test/libapt/makefile
new file mode 100644
index 000000000..50058262e
--- /dev/null
+++ b/test/libapt/makefile
@@ -0,0 +1,48 @@
+# -*- make -*-
+BASE=../..
+SUBDIR=test/libapt
+BASENAME=_libapt_test
+
+# Bring in the default rules
+include ../../buildlib/defaults.mak
+
+# Program for testing getLanguageCode
+PROGRAM = getLanguages${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = getlanguages_test.cc
+include $(PROGRAM_H)
+
+PROGRAM = getArchitectures${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = getarchitectures_test.cc
+include $(PROGRAM_H)
+
+# Program for testing ParseDepends
+PROGRAM = ParseDepends${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = parsedepends_test.cc
+include $(PROGRAM_H)
+
+# Program for testing GetListOfFilesInDir
+PROGRAM = GetListOfFilesInDir${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = getlistoffilesindir_test.cc
+include $(PROGRAM_H)
+
+# Program for testing CommandLine reconstruction
+PROGRAM = CommandlineAsString${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = commandlineasstring_test.cc
+include $(PROGRAM_H)
+
+# Program for testing debians version comparing
+PROGRAM = CompareVersion${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = compareversion_test.cc
+include $(PROGRAM_H)
+
+# test the GlobalError stack class
+PROGRAM = GlobalError${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = globalerror_test.cc
+include $(PROGRAM_H)
diff --git a/test/libapt/parsedepends_test.cc b/test/libapt/parsedepends_test.cc
new file mode 100644
index 000000000..7b496878d
--- /dev/null
+++ b/test/libapt/parsedepends_test.cc
@@ -0,0 +1,196 @@
+#include <apt-pkg/deblistparser.h>
+#include <apt-pkg/configuration.h>
+
+#include "assert.h"
+
+int main(int argc,char *argv[]) {
+ string Package;
+ string Version;
+ unsigned int Op = 5;
+ unsigned int Null = 0;
+ bool StripMultiArch = true;
+ bool ParseArchFlags = false;
+ _config->Set("APT::Architecture","dsk");
+
+ const char* Depends =
+ "debhelper:any (>= 5.0), "
+ "libdb-dev:any, "
+ "gettext:native (<= 0.12), "
+ "libcurl4-gnutls-dev:native | libcurl3-gnutls-dev (>> 7.15.5), "
+ "debiandoc-sgml, "
+ "apt (>= 0.7.25), "
+ "not-for-me [ !dsk ], "
+ "only-for-me [ dsk ], "
+ "any-for-me [ any ], "
+ "not-for-darwin [ !darwin-any ], "
+ "cpu-for-me [ any-dsk ], "
+ "os-for-me [ linux-any ], "
+ "cpu-not-for-me [ any-amd64 ], "
+ "os-not-for-me [ kfreebsd-any ], "
+ "overlord-dev:any (= 7.15.3~) | overlord-dev:native (>> 7.15.5), "
+ ;
+
+ unsigned short runner = 0;
+test:
+// std::clog << (StripMultiArch ? "NO-Multi" : "Multi") << " " << (ParseArchFlags ? "Flags" : "NO-Flags") << std::endl;
+
+ // Stripping MultiArch is currently the default setting to not confuse
+ // non-MultiArch capable users of the library with "strange" extensions.
+ const char* Start = Depends;
+ const char* End = Depends + strlen(Depends);
+
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ if (StripMultiArch == true)
+ equals("debhelper", Package);
+ else
+ equals("debhelper:any", Package);
+ equals("5.0", Version);
+ equals(Null | pkgCache::Dep::GreaterEq, Op);
+
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ if (StripMultiArch == true)
+ equals("libdb-dev", Package);
+ else
+ equals("libdb-dev:any", Package);
+ equals("", Version);
+ equals(Null | pkgCache::Dep::NoOp, Op);
+
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ if (StripMultiArch == true)
+ equals("gettext", Package);
+ else
+ equals("gettext:native", Package);
+ equals("0.12", Version);
+ equals(Null | pkgCache::Dep::LessEq, Op);
+
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ if (StripMultiArch == true)
+ equals("libcurl4-gnutls-dev", Package);
+ else
+ equals("libcurl4-gnutls-dev:native", Package);
+ equals("", Version);
+ equals(Null | pkgCache::Dep::Or, Op);
+
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ equals("libcurl3-gnutls-dev", Package);
+ equals("7.15.5", Version);
+ equals(Null | pkgCache::Dep::Greater, Op);
+
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ equals("debiandoc-sgml", Package);
+ equals("", Version);
+ equals(Null | pkgCache::Dep::NoOp, Op);
+
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ equals("apt", Package);
+ equals("0.7.25", Version);
+ equals(Null | pkgCache::Dep::GreaterEq, Op);
+
+ if (ParseArchFlags == true) {
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ equals("", Package); // not-for-me
+ } else {
+ equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch));
+ Start = strstr(Start, ",");
+ Start++;
+ }
+
+ if (ParseArchFlags == true) {
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ equals("only-for-me", Package);
+ equals("", Version);
+ equals(Null | pkgCache::Dep::NoOp, Op);
+ } else {
+ equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch));
+ Start = strstr(Start, ",");
+ Start++;
+ }
+
+ if (ParseArchFlags == true) {
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ equals("any-for-me", Package);
+ equals("", Version);
+ equals(Null | pkgCache::Dep::NoOp, Op);
+ } else {
+ equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch));
+ Start = strstr(Start, ",");
+ Start++;
+ }
+
+ if (ParseArchFlags == true) {
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ equals("not-for-darwin", Package);
+ equals("", Version);
+ equals(Null | pkgCache::Dep::NoOp, Op);
+ } else {
+ equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch));
+ Start = strstr(Start, ",");
+ Start++;
+ }
+
+ if (ParseArchFlags == true) {
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ equals("cpu-for-me", Package);
+ equals("", Version);
+ equals(Null | pkgCache::Dep::NoOp, Op);
+ } else {
+ equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch));
+ Start = strstr(Start, ",");
+ Start++;
+ }
+
+ if (ParseArchFlags == true) {
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ equals("os-for-me", Package);
+ equals("", Version);
+ equals(Null | pkgCache::Dep::NoOp, Op);
+ } else {
+ equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch));
+ Start = strstr(Start, ",");
+ Start++;
+ }
+
+ if (ParseArchFlags == true) {
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ equals("", Package); // cpu-not-for-me
+ } else {
+ equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch));
+ Start = strstr(Start, ",");
+ Start++;
+ }
+
+ if (ParseArchFlags == true) {
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ equals("", Package); // os-not-for-me
+ } else {
+ equals(true, 0 == debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch));
+ Start = strstr(Start, ",");
+ Start++;
+ }
+
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ if (StripMultiArch == true)
+ equals("overlord-dev", Package);
+ else
+ equals("overlord-dev:any", Package);
+ equals("7.15.3~", Version);
+ equals(Null | pkgCache::Dep::Equals | pkgCache::Dep::Or, Op);
+
+ Start = debListParser::ParseDepends(Start, End, Package, Version, Op, ParseArchFlags, StripMultiArch);
+ if (StripMultiArch == true)
+ equals("overlord-dev", Package);
+ else
+ equals("overlord-dev:native", Package);
+ equals("7.15.5", Version);
+ equals(Null | pkgCache::Dep::Greater, Op);
+
+ if (StripMultiArch == false)
+ ParseArchFlags = true;
+ StripMultiArch = !StripMultiArch;
+
+ runner++;
+ if (runner < 4)
+ goto test; // this is the prove: tests are really evil ;)
+
+ return 0;
+}
diff --git a/test/libapt/run-tests.sh b/test/libapt/run-tests
index 1fcfb6861..0f55f7386 100755
--- a/test/libapt/run-tests.sh
+++ b/test/libapt/run-tests
@@ -1,10 +1,12 @@
#!/bin/sh
set -e
-echo "Compiling the tests ..."
-make
-echo "Running all testcases ..."
-LDPATH=$(pwd)/../../build/bin
+local DIR=$(readlink -f $(dirname $0))
+echo "Compiling the tests …"
+test -d "$DIR/../../build/obj/test/libapt/" || mkdir -p "$DIR/../../build/obj/test/libapt/"
+$(cd $DIR && make)
+echo "Running all testcases …"
+LDPATH="$DIR/../../build/bin"
EXT="_libapt_test"
for testapp in $(ls ${LDPATH}/*$EXT)
do
@@ -39,6 +41,13 @@ do
"${tmppath}/01invalíd"
ln -s "${tmppath}/anormalfile" "${tmppath}/linkedfile.list"
ln -s "${tmppath}/non-existing-file" "${tmppath}/brokenlink.list"
+ elif [ $name = "getLanguages${EXT}" ]; then
+ echo "Prepare Testarea for \033[1;35m$name\033[0m ..."
+ tmppath=$(mktemp -d)
+ touch "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-tr" \
+ "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-pt" \
+ "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-se~" \
+ "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-st.bak"
fi
echo -n "Testing with \033[1;35m${name}\033[0m ... "
diff --git a/test/makefile b/test/makefile
index fb9123d0a..52adb96a2 100644
--- a/test/makefile
+++ b/test/makefile
@@ -25,13 +25,6 @@ SOURCE = scratch.cc
include $(PROGRAM_H)
# Version compare tester
-PROGRAM=versiontest
-SLIBS = -lapt-pkg
-LIB_MAKES = apt-pkg/makefile
-SOURCE = versiontest.cc
-include $(PROGRAM_H)
-
-# Version compare tester
PROGRAM=testextract
SLIBS = -lapt-pkg -lapt-inst
LIB_MAKES = apt-pkg/makefile apt-inst/makefile
@@ -75,7 +68,7 @@ SOURCE = test_udevcdrom.cc
include $(PROGRAM_H)
# Program for checking rpm versions
-PROGRAM=rpmver
-SLIBS = -lapt-pkg -lrpm
-SOURCE = rpmver.cc
-include $(PROGRAM_H)
+#PROGRAM=rpmver
+#SLIBS = -lapt-pkg -lrpm
+#SOURCE = rpmver.cc
+#include $(PROGRAM_H)
diff --git a/test/pre-upload-check.py b/test/pre-upload-check.py
index 268b3d672..f9da8f941 100755
--- a/test/pre-upload-check.py
+++ b/test/pre-upload-check.py
@@ -4,6 +4,8 @@ import sys
import os
import glob
import os.path
+import shutil
+import time
from subprocess import call, PIPE
import unittest
@@ -11,7 +13,102 @@ import unittest
stdout = os.open("/dev/null",0) #sys.stdout
stderr = os.open("/dev/null",0) # sys.stderr
-apt_args = [] # ["-o","Debug::pkgAcquire::Auth=true"]
+apt_args = []
+#apt_args = ["-o","Debug::pkgAcquire::Auth=true"]
+
+class testAptAuthenticationReliability(unittest.TestCase):
+ """
+ test if the spec https://wiki.ubuntu.com/AptAuthenticationReliability
+ is properly implemented
+ """
+ #apt = "../bin/apt-get"
+ apt = "apt-get"
+
+ def setUp(self):
+ if os.path.exists("/tmp/autFailure"):
+ os.unlink("/tmp/authFailure");
+ if os.path.exists("/tmp/autFailure2"):
+ os.unlink("/tmp/authFailure2");
+ def testRepositorySigFailure(self):
+ """
+ test if a repository that used to be authenticated and fails on
+ apt-get update refuses to update and uses the old state
+ """
+ # copy valid signatures into lists (those are ok, even
+ # if the name is "-broken-" ...
+ for f in glob.glob("./authReliability/lists/*"):
+ shutil.copy(f,"/var/lib/apt/lists")
+ # ensure we do *not* get a I-M-S hit
+ os.utime("/var/lib/apt/lists/%s" % os.path.basename(f), (0,0))
+ res = call([self.apt,
+ "update",
+ "-o","Dir::Etc::sourcelist=./authReliability/sources.list.failure",
+ "-o",'APT::Update::Auth-Failure::=touch /tmp/authFailure',
+ ] + apt_args,
+ stdout=stdout, stderr=stderr)
+ self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg"),
+ "The gpg file disappeared, this should not happen")
+ self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages"),
+ "The Packages file disappeared, this should not happen")
+ self.assert_(os.path.exists("/tmp/authFailure"),
+ "The APT::Update::Auth-Failure script did not run (1)")
+ # the same with i-m-s hit this time
+ for f in glob.glob("./authReliability/lists/*"):
+ shutil.copy(f,"/var/lib/apt/lists")
+ os.utime("/var/lib/apt/lists/%s" % os.path.basename(f), (time.time(),time.time()))
+ res = call([self.apt,
+ "update",
+ "-o","Dir::Etc::sourcelist=./authReliability/sources.list.failure",
+ "-o",'APT::Update::Auth-Failure::=touch /tmp/authFailure2',
+ ] + apt_args,
+ stdout=stdout, stderr=stderr)
+ self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg"),
+ "The gpg file disappeared, this should not happen")
+ self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages"),
+ "The Packages file disappeared, this should not happen")
+ self.assert_(os.path.exists("/tmp/authFailure2"),
+ "The APT::Update::Auth-Failure script did not run (2)")
+ def testRepositorySigGood(self):
+ """
+ test that a regular repository with good data stays good
+ """
+ res = call([self.apt,
+ "update",
+ "-o","Dir::Etc::sourcelist=./authReliability/sources.list.good"
+ ] + apt_args,
+ stdout=stdout, stderr=stderr)
+ self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg"),
+ "The gpg file disappeared after a regular download, this should not happen")
+ self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages"),
+ "The Packages file disappeared, this should not happen")
+ # test good is still good after non I-M-S hit and a previous files in lists/
+ for f in glob.glob("./authReliability/lists/*"):
+ shutil.copy(f,"/var/lib/apt/lists")
+ # ensure we do *not* get a I-M-S hit
+ os.utime("/var/lib/apt/lists/%s" % os.path.basename(f), (0,0))
+ res = call([self.apt,
+ "update",
+ "-o","Dir::Etc::sourcelist=./authReliability/sources.list.good"
+ ] + apt_args,
+ stdout=stdout, stderr=stderr)
+ self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg"),
+ "The gpg file disappeared after a I-M-S hit, this should not happen")
+ self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages"),
+ "The Packages file disappeared, this should not happen")
+ # test good is still good after I-M-S hit
+ for f in glob.glob("./authReliability/lists/*"):
+ shutil.copy(f,"/var/lib/apt/lists")
+ # ensure we do get a I-M-S hit
+ os.utime("/var/lib/apt/lists/%s" % os.path.basename(f), (time.time(),time.time()))
+ res = call([self.apt,
+ "update",
+ "-o","Dir::Etc::sourcelist=./authReliability/sources.list.good"
+ ] + apt_args,
+ stdout=stdout, stderr=stderr)
+ self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg"),
+ "The gpg file disappeared, this should not happen")
+ self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages"),
+ "The Packages file disappeared, this should not happen")
class testAuthentication(unittest.TestCase):
@@ -95,6 +192,20 @@ class testAuthentication(unittest.TestCase):
self.assert_(len(glob.glob("/var/lib/apt/lists/partial/*")) == 0,
"partial/ dir has leftover files: %s" % glob.glob("/var/lib/apt/lists/partial/*"))
+ def testValid(self):
+ for f in glob.glob("testsources.list/sources.list*validuntil*"):
+ self._cleanup()
+ (prefix, testtype, result) = f.split("-")
+ expected_res = self._expectedRes(result)
+ cmd = ["update"]
+ res = call([self.apt,"-o","Dir::Etc::sourcelist=./%s" % f]+cmd+apt_args,
+ stdout=stdout, stderr=stderr)
+ self.assert_(res == expected_res,
+ "test '%s' failed (got %s expected %s" % (f,res,expected_res))
+ if expected_res == 0:
+ self.assert_(len(glob.glob("/var/lib/apt/lists/partial/*")) == 0,
+ "partial/ dir has leftover files: %s" % glob.glob("/var/lib/apt/lists/partial/*"))
+
class testLocalRepositories(unittest.TestCase):
" test local repository regressions "
@@ -149,6 +260,7 @@ if __name__ == "__main__":
if len(sys.argv) > 1 and sys.argv[1] == "-v":
stdout = sys.stdout
stderr = sys.stderr
+
+ # run only one for now
+ #unittest.main(defaultTest="testAptAuthenticationReliability")
unittest.main()
-
-
diff --git a/test/test-indexes.sh b/test/test-indexes.sh
new file mode 100755
index 000000000..dad3e1fb2
--- /dev/null
+++ b/test/test-indexes.sh
@@ -0,0 +1,226 @@
+#!/bin/sh -e
+
+# Test behaviour of index retrieval and usage, in particular with uncompressed
+# and gzip compressed indexes.
+# Author: Martin Pitt <martin.pitt@ubuntu.com>
+# (C) 2010 Canonical Ltd.
+
+BUILDDIR=$(readlink -f $(dirname $0)/../build)
+
+TEST_SOURCE="http://ftp.debian.org/debian unstable contrib"
+GPG_KEYSERVER=gpg-keyserver.de
+# should be a small package with dependencies satisfiable in TEST_SOURCE, i. e.
+# ideally no depends at all
+TEST_PKG="python-psyco-doc"
+
+export LD_LIBRARY_PATH=$BUILDDIR/bin
+
+OPTS="-qq -o Dir::Bin::Methods=$BUILDDIR/bin/methods -o Debug::NoLocking=true"
+DEBUG=""
+#DEBUG="-o Debug::pkgCacheGen=true"
+#DEBUG="-o Debug::pkgAcquire=true"
+APT_GET="$BUILDDIR/bin/apt-get $OPTS $DEBUG"
+APT_CACHE="$BUILDDIR/bin/apt-cache $OPTS $DEBUG"
+APT_FTPARCHIVE="$BUILDDIR/bin/apt-ftparchive"
+
+[ -x "$BUILDDIR/bin/apt-get" ] || {
+ echo "please build the tree first" >&2
+ exit 1
+}
+
+check_update() {
+ echo "--- apt-get update $@ (no trusted keys)"
+
+ rm -f etc/apt/trusted.gpg etc/apt/secring.gpg
+ touch etc/apt/trusted.gpg etc/apt/secring.gpg
+ find var/lib/apt/lists/ -type f | xargs -r rm
+
+ # first attempt should fail, no trusted GPG key
+ out=$($APT_GET "$@" update 2>&1)
+ echo "$out" | grep -q NO_PUBKEY
+ key=$(echo "$out" | sed -n '/NO_PUBKEY/ { s/^.*NO_PUBKEY \([[:alnum:]]\+\)$/\1/; p}')
+
+ # get keyring
+ gpg -q --no-options --no-default-keyring --secret-keyring etc/apt/secring.gpg --trustdb-name etc/apt/trustdb.gpg --keyring etc/apt/trusted.gpg --primary-keyring etc/apt/trusted.gpg --keyserver $GPG_KEYSERVER --recv-keys $key
+
+ # now it should work
+ echo "--- apt-get update $@ (with trusted keys)"
+ find var/lib/apt/lists/ -type f | xargs -r rm
+ $APT_GET "$@" update
+}
+
+# if $1 == "compressed", check that we have compressed indexes, otherwise
+# uncompressed ones
+check_indexes() {
+ echo "--- only ${1:-uncompressed} index files present"
+ local F
+ if [ "$1" = "compressed" ]; then
+ ! test -e var/lib/apt/lists/*_Packages || F=1
+ ! test -e var/lib/apt/lists/*_Sources || F=1
+ test -e var/lib/apt/lists/*_Packages.gz || F=1
+ test -e var/lib/apt/lists/*_Sources.gz || F=1
+ else
+ test -e var/lib/apt/lists/*_Packages || F=1
+ test -e var/lib/apt/lists/*_Sources || F=1
+ ! test -e var/lib/apt/lists/*_Packages.gz || F=1
+ ! test -e var/lib/apt/lists/*_Sources.gz || F=1
+ fi
+
+ if [ -n "$F" ]; then
+ ls -laR var/lib/apt/lists/
+ exit 1
+ fi
+}
+
+# test apt-cache commands
+check_cache() {
+ echo "--- apt-cache commands"
+
+ $APT_CACHE show $TEST_PKG | grep -q ^Version:
+ # again (with cache)
+ $APT_CACHE show $TEST_PKG | grep -q ^Version:
+ rm var/cache/apt/*.bin
+ $APT_CACHE policy $TEST_PKG | egrep -q '500 (http://|file:/)'
+ # again (with cache)
+ $APT_CACHE policy $TEST_PKG | egrep -q '500 (http://|file:/)'
+
+ TEST_SRC=`$APT_CACHE show $TEST_PKG | grep ^Source: | awk '{print $2}'`
+ rm var/cache/apt/*.bin
+ $APT_CACHE showsrc $TEST_SRC | grep -q ^Binary:
+ # again (with cache)
+ $APT_CACHE showsrc $TEST_SRC | grep -q ^Binary:
+}
+
+# test apt-get install
+check_install() {
+ echo "--- apt-get install"
+
+ $APT_GET install -d $TEST_PKG
+ test -e var/cache/apt/archives/$TEST_PKG*.deb
+ $APT_GET clean
+ ! test -e var/cache/apt/archives/$TEST_PKG*.deb
+}
+
+# test apt-get source
+check_get_source() {
+ echo "--- apt-get source"
+ # quiesce: it'll complain about not being able to verify the signature
+ $APT_GET source $TEST_PKG >/dev/null 2>&1
+ test -f $TEST_SRC_*.dsc
+ test -d $TEST_SRC-*
+ rm -r $TEST_SRC*
+}
+
+############################################################################
+# main
+############################################################################
+
+echo "===== building sandbox ====="
+WORKDIR=$(mktemp -d)
+trap "cd /; rm -rf $WORKDIR" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
+cd $WORKDIR
+
+rm -fr etc var
+rm -f home
+ln -s /home home
+mkdir -p etc/apt/preferences.d etc/apt/trusted.gpg.d etc/apt/apt.conf.d var/cache/apt/archives/partial var/lib/apt/lists/partial var/lib/dpkg
+cp /etc/apt/trusted.gpg etc/apt
+touch var/lib/dpkg/status
+echo "deb $TEST_SOURCE" > etc/apt/sources.list
+echo "deb-src $TEST_SOURCE" >> etc/apt/sources.list
+
+# specifying -o RootDir at the command line does not work for
+# etc/apt/apt.conf.d/ since it is parsed after pkgInitConfig(); $APT_CONFIG is
+# checked first, so this works
+echo "RootDir \"$WORKDIR\";" > apt_config
+export APT_CONFIG=`pwd`/apt_config
+
+echo "===== uncompressed indexes ====="
+check_update
+check_indexes
+check_cache
+check_install
+check_get_source
+
+echo "--- apt-get update with preexisting indexes"
+$APT_GET update
+check_indexes
+check_cache
+
+echo "--- apt-get update with preexisting indexes and pdiff mode"
+$APT_GET -o Acquire::PDiffs=true update
+check_indexes
+check_cache
+
+echo "===== compressed indexes (CLI option) ====="
+check_update -o Acquire::GzipIndexes=true
+check_indexes compressed
+check_cache
+check_install
+check_get_source
+
+echo "--- apt-get update with preexisting indexes"
+$APT_GET -o Acquire::GzipIndexes=true update
+check_indexes compressed
+check_cache
+
+echo "--- apt-get update with preexisting indexes and pdiff mode"
+$APT_GET -o Acquire::GzipIndexes=true -o Acquire::PDiffs=true update
+check_indexes compressed
+check_cache
+
+echo "===== compressed indexes (apt.conf.d option) ====="
+cat <<EOF > etc/apt/apt.conf.d/02compress-indexes
+Acquire::GzipIndexes "true";
+Acquire::CompressionTypes::Order:: "gz";
+EOF
+
+check_update
+check_indexes compressed
+check_cache
+check_install
+check_get_source
+
+echo "--- apt-get update with preexisting indexes"
+$APT_GET update
+check_indexes compressed
+check_cache
+
+echo "--- apt-get update with preexisting indexes and pdiff mode"
+$APT_GET -o Acquire::PDiffs=true update
+check_indexes compressed
+check_cache
+
+rm etc/apt/apt.conf.d/02compress-indexes
+
+echo "==== apt-ftparchive ===="
+mkdir arch
+$APT_GET install -d $TEST_PKG
+cp var/cache/apt/archives/$TEST_PKG*.deb arch/
+cd arch
+$APT_GET source -d $TEST_PKG >/dev/null 2>&1
+$APT_FTPARCHIVE packages . | gzip -9 > Packages.gz
+$APT_FTPARCHIVE sources . | gzip -9 > Sources.gz
+cd ..
+
+echo "deb file://$WORKDIR/arch /
+deb-src file://$WORKDIR/arch /" > etc/apt/sources.list
+$APT_GET clean
+
+echo "==== uncompressed indexes from local file:// archive ===="
+echo "--- apt-get update"
+$APT_GET update
+check_indexes
+check_cache
+check_get_source
+
+echo "==== compressed indexes from local file:// archive ===="
+echo "--- apt-get update"
+$APT_GET -o Acquire::GzipIndexes=true update
+# EXFAIL: file:/ URIs currently decompress even with above option
+#check_indexes compressed
+check_indexes
+check_cache
+check_get_source
+
+echo "===== ALL TESTS PASSED ====="
diff --git a/test/testsources.list/sources.list.all-validuntil-broken b/test/testsources.list/sources.list.all-validuntil-broken
new file mode 100644
index 000000000..bab59bb81
--- /dev/null
+++ b/test/testsources.list/sources.list.all-validuntil-broken
@@ -0,0 +1 @@
+deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/all-validuntil-broken/ /
diff --git a/test/versions.lst b/test/versions.lst
index efc19c4f0..517214151 100644
--- a/test/versions.lst
+++ b/test/versions.lst
@@ -10,10 +10,11 @@
1.3 1.2.2 1
# Important attributes
-- . -1
-p - -1
-a - -1
-z - -1
+# disabled as dpkg --compare-versions doesn't like them…
+#- . -1
+#p - -1
+#a - -1
+#z - -1
a . -1
z . -1
@@ -22,6 +23,10 @@ z . -1
1:1.25-4 1:1.25-8 -1
0:1.18.36 1.18.36 0
+# native version
+1.18.36 1.18.35 1
+0:1.18.36 1.18.35 1
+
# Funky, but allowed, characters in upstream version
9:1.18.36:5.4-20 10:0.5.1-22 -1
9:1.18.36:5.4-20 9:1.18.36:5.5-1 -1
@@ -49,3 +54,54 @@ III-alpha9.8 III-alpha9.8-1.5 -1
# #205960
3.0~rc1-1 3.0-1 -1
+
+# #573592 - debian policy 5.6.12
+1.0 1.0-0 0
+0.2 1.0-0 -1
+1.0 1.0-0+b1 -1
+1.0 1.0-0~ 1
+
+# if a version includes a dash
+# it should be the debrev dash - policy says so…
+0:0-0-0 0-0 1
+
+# do we like strange versions? Yes we like strange versions…
+0 0 0
+0 00 0
+
+# "steal" the testcases from cupt
+1.2.3 1.2.3 0 # identical
+4.4.3-2 4.4.3-2 0 # identical
+1:2ab:5 1:2ab:5 0 # this is correct...
+7:1-a:b-5 7:1-a:b-5 0 # and this
+57:1.2.3abYZ+~-4-5 57:1.2.3abYZ+~-4-5 0 # and those too
+1.2.3 0:1.2.3 0 # zero epoch
+1.2.3 1.2.3-0 0 # zero revision
+009 9 0 # zeroes...
+009ab5 9ab5 0 # there as well
+1.2.3 1.2.3-1 -1 # added non-zero revision
+1.2.3 1.2.4 -1 # just bigger
+1.2.4 1.2.3 1 # order doesn't matter
+1.2.24 1.2.3 1 # bigger, eh?
+0.10.0 0.8.7 1 # bigger, eh?
+3.2 2.3 1 # major number rocks
+1.3.2a 1.3.2 1 # letters rock
+0.5.0~git 0.5.0~git2 -1 # numbers rock
+2a 21 -1 # but not in all places
+1.3.2a 1.3.2b -1 # but there is another letter
+1:1.2.3 1.2.4 1 # epoch rocks
+1:1.2.3 1:1.2.4 -1 # bigger anyway
+1.2a+~bCd3 1.2a++ -1 # tilde doesn't rock
+1.2a+~bCd3 1.2a+~ 1 # but first is longer!
+5:2 304-2 1 # epoch rocks
+5:2 304:2 -1 # so big epoch?
+25:2 3:2 1 # 25 > 3, obviously
+1:2:123 1:12:3 -1 # 12 > 2
+1.2-5 1.2-3-5 -1 # 1.2 < 1.2-3
+5.10.0 5.005 1 # preceding zeroes don't matters
+3a9.8 3.10.2 -1 # letters are before all letter symbols
+3a9.8 3~10 1 # but after the tilde
+1.4+OOo3.0.0~ 1.4+OOo3.0.0-4 -1 # another tilde check
+2.4.7-1 2.4.7-z -1 # revision comparing
+1.002-1+b2 1.00 1 # whatever...
+2.2.4-47978_Debian_lenny 2.2.4-47978_Debian_lenny 0 # and underscore...
diff --git a/test/versiontest.cc b/test/versiontest.cc
deleted file mode 100644
index 4ede4b280..000000000
--- a/test/versiontest.cc
+++ /dev/null
@@ -1,233 +0,0 @@
-// -*- mode: cpp; mode: fold -*-
-// Description /*{{{*/
-// $Id: versiontest.cc,v 1.5 2003/08/18 15:55:19 mdz Exp $
-/* ######################################################################
-
- Version Test - Simple program to run through a file and comare versions.
-
- Each version is compared and the result is checked against an expected
- result in the file. The format of the file is
- a b Res
- Where Res is -1, 1, 0. dpkg -D=1 --compare-versions a "<" b can be
- used to determine what Res should be. # at the start of the line
- is a comment and blank lines are skipped
-
- ##################################################################### */
- /*}}}*/
-#include <apt-pkg/macros.h>
-#include <apt-pkg/error.h>
-#include <apt-pkg/version.h>
-#include <apt-pkg/debversion.h>
-#include <iostream>
-#include <fstream>
-
-using namespace std;
-
- static int verrevcmp(const char *val, const char *ref)
-{
- int vc, rc;
- long vl, rl;
- const char *vp, *rp;
-
- if (!val)
- val = "";
- if (!ref)
- ref = "";
- for (;;)
- {
- vp = val;
- while (*vp && !isdigit(*vp))
- vp++;
- rp = ref;
- while (*rp && !isdigit(*rp))
- rp++;
- for (;;)
- {
- vc= val == vp ? 0 : *val++;
- rc= ref == rp ? 0 : *ref++;
- if (!rc && !vc)
- break;
- if (vc && !isalpha(vc))
- vc += 256; /* assumes ASCII character set */
- if (rc && !isalpha(rc))
- rc += 256;
- if (vc != rc)
- return vc - rc;
- }
- val = vp;
- ref = rp;
- vl = 0;
- if (isdigit(*vp))
- vl = strtol(val,(char**)&val,10);
- rl = 0;
- if (isdigit(*rp))
- rl = strtol(ref,(char**)&ref,10);
- if (vl != rl)
- return vl - rl;
- if (!*val && !*ref)
- return 0;
- if (!*val)
- return -1;
- if (!*ref)
- return +1;
- }
-}
-
-#if 0
-static int verrevcmp(const char *val, const char *ref)
-{
- int vc, rc;
- long vl, rl;
- const char *vp, *rp;
-
- if (!val) val= "";
- if (!ref) ref= "";
- for (;;)
- {
- vp= val; while (*vp && !isdigit(*vp) && *vp != '~') vp++;
- rp= ref; while (*rp && !isdigit(*rp) && *rp != '~') rp++;
- for (;;)
- {
- vc= val == vp ? 0 : *val++;
- rc= ref == rp ? 0 : *ref++;
- if (!rc && !vc) break;
- if (vc && !isalpha(vc)) vc += 256; /* assumes ASCII character set */
- if (rc && !isalpha(rc)) rc += 256;
- if (vc != rc) return vc - rc;
- }
-
- val= vp;
- ref= rp;
- if (*vp == '~') val++;
- if (*rp == '~') ref++;
- vl=0; if (isdigit(*val)) vl= strtol(val,(char**)&val,10);
- rl=0; if (isdigit(*ref)) rl= strtol(ref,(char**)&ref,10);
- if (vl == 0 && rl == 0)
- {
- if (*vp == '~' && *rp != '~') return -1;
- if (*vp != '~' && *rp == '~') return +1;
- }
- if (*vp == '~')
- vl *= -1;
- if (*rp == '~')
- rl *= -1;
- if (vl != rl) return vl - rl;
- if (!*val && !*ref) return 0;
- if (!*val)
- {
- if (*ref == '~')
- return +1;
- else
- return -1;
- }
-
- if (!*ref)
- {
- if (*val == '~')
- return -1;
- else
- return +1;
- }
- }
-}
-#endif
-
-bool RunTest(const char *File)
-{
- ifstream F(File,ios::in);
- if (!F != 0)
- return false;
-
- char Buffer[300];
- int CurLine = 0;
-
- while (1)
- {
- F.getline(Buffer,sizeof(Buffer));
- CurLine++;
- if (F.eof() != 0)
- return true;
- if (!F != 0)
- return _error->Error("Line %u in %s is too long",CurLine,File);
-
- // Comment
- if (Buffer[0] == '#' || Buffer[0] == 0)
- continue;
-
- // First version
- char *I;
- char *Start = Buffer;
- for (I = Buffer; *I != 0 && *I != ' '; I++);
- string A(Start, I - Start);
-
- if (*I == 0)
- return _error->Error("Invalid line %u",CurLine);
-
- // Second version
- I++;
- Start = I;
- for (I = Start; *I != 0 && *I != ' '; I++);
- string B(Start,I - Start);
-
- if (*I == 0 || I[1] == 0)
- return _error->Error("Invalid line %u",CurLine);
-
- // Result
- I++;
- int Expected = atoi(I);
- int Res = debVS.CmpVersion(A.c_str(), B.c_str());
- int Res2 = verrevcmp(A.c_str(),B.c_str());
- cout << "'" << A << "' ? '" << B << "' = " << Res << " (= " << Expected << ") " << Res2 << endl;
-
- if (Res < 0)
- Res = -1;
- else if (Res > 0)
- Res = 1;
-
- if (Res != Expected)
- _error->Error("Comparison failed on line %u. '%s' ? '%s' %i != %i",CurLine,A.c_str(),B.c_str(),Res,Expected);
-
- // Check the reverse as well
- Expected = -1*Expected;
- Res = debVS.CmpVersion(B.c_str(), A.c_str());
- Res2 = verrevcmp(B.c_str(),A.c_str());
-
- cout << "'" << B << "' ? '" << A << "' = " << Res << " (= " << Expected << ") " << Res2 << endl;
-
- if (Res < 0)
- Res = -1;
- else if (Res > 0)
- Res = 1;
-
- if (Res != Expected)
- _error->Error("Comparison failed on line %u. '%s' ? '%s' %i != %i",CurLine,B.c_str(),A.c_str(),Res,Expected);
- }
-}
-
-int main(int argc, char *argv[])
-{
- if (argc <= 1)
- {
- cerr << "You must specify a test file" << endl;
- return 0;
- }
-
- RunTest(argv[1]);
-
- // Print any errors or warnings found
- if (_error->empty() == false)
- {
- string Err;
- while (_error->empty() == false)
- {
-
- bool Type = _error->PopMessage(Err);
- if (Type == true)
- cout << "E: " << Err << endl;
- else
- cout << "W: " << Err << endl;
- }
-
- return 0;
- }
-}