From fce726023f703c369ae030684e75ed03c7544d6b Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 21 Dec 2007 13:56:19 +0100 Subject: implement AptAuthenticationReliabtlity spec --- ..._apt_auth-test-suit_gpg-package-broken_Packages | 25 ++++++ ...o_apt_auth-test-suit_gpg-package-broken_Release | 13 +++ ...t_auth-test-suit_gpg-package-broken_Release.gpg | 7 ++ ...emvo_apt_auth-test-suit_gpg-package-ok_Packages | 25 ++++++ ...7emvo_apt_auth-test-suit_gpg-package-ok_Release | 13 +++ ...o_apt_auth-test-suit_gpg-package-ok_Release.gpg | 7 ++ test/authReliability/sources.list.failure | 2 + test/pre-upload-check.py | 94 +++++++++++++++++++++- 8 files changed, 183 insertions(+), 3 deletions(-) create mode 100644 test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages create mode 100644 test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release create mode 100644 test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg create mode 100644 test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages create mode 100644 test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release create mode 100644 test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg create mode 100644 test/authReliability/sources.list.failure (limited to 'test') 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 +Original-Maintainer: Loic Minier +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 +Original-Maintainer: Loic Minier +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/pre-upload-check.py b/test/pre-upload-check.py index 268b3d672..75a726808 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,92 @@ 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" + + def setUp(self): + pass + 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" + ] + 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") + # 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" + ] + 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") + 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, 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, 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): @@ -149,6 +236,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() - - -- cgit v1.2.3 From f3224a73ec718a5f4e4404cd716e4b7c2702bb8b Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 2 Jan 2008 13:50:56 +0100 Subject: test/authReliability/sources.list.good: - add missing file to make the test/pre-upload-check.py work again apt-pkg/acquire-item.cc: - fix auth-reliable code when file:// uris are used test/pre-upload-check.py: - use the standard apt, not "../bin/apt-get" by default - make the error messages more useful on test-failure --- test/authReliability/sources.list.good | 2 ++ test/pre-upload-check.py | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 test/authReliability/sources.list.good (limited to 'test') 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/pre-upload-check.py b/test/pre-upload-check.py index 75a726808..ca44ec726 100755 --- a/test/pre-upload-check.py +++ b/test/pre-upload-check.py @@ -21,7 +21,8 @@ class testAptAuthenticationReliability(unittest.TestCase): test if the spec https://wiki.ubuntu.com/AptAuthenticationReliability is properly implemented """ - apt = "../bin/apt-get" + #apt = "../bin/apt-get" + apt = "apt-get" def setUp(self): pass @@ -68,7 +69,7 @@ class testAptAuthenticationReliability(unittest.TestCase): ] + 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") + "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/ @@ -82,7 +83,7 @@ class testAptAuthenticationReliability(unittest.TestCase): ] + 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") + "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 -- cgit v1.2.3 From 5d149bfc7f34bc39e0edf8d9d98786cadefeeedf Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 4 Feb 2008 14:15:17 +0100 Subject: add APT::Update::Auth-Failure script --- test/pre-upload-check.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'test') diff --git a/test/pre-upload-check.py b/test/pre-upload-check.py index ca44ec726..de43122ce 100755 --- a/test/pre-upload-check.py +++ b/test/pre-upload-check.py @@ -25,7 +25,8 @@ class testAptAuthenticationReliability(unittest.TestCase): apt = "apt-get" def setUp(self): - pass + if os.path.exists("/tmp/autFailure"): + os.unlink("/tmp/authFailure"); def testRepositorySigFailure(self): """ test if a repository that used to be authenticated and fails on @@ -39,26 +40,33 @@ class testAptAuthenticationReliability(unittest.TestCase): 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","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") + os.unlink("/tmp/authFailure"); # 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","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") def testRepositorySigGood(self): """ test that a regular repository with good data stays good @@ -239,5 +247,5 @@ if __name__ == "__main__": stderr = sys.stderr # run only one for now - #unittest.main(defaultTest="testAptAuthenticationReliability") - unittest.main() + unittest.main(defaultTest="testAptAuthenticationReliability") + #unittest.main() -- cgit v1.2.3 From d54385388a0773fada9e44c5d1cf020488047884 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 8 Feb 2008 14:30:39 +0100 Subject: make the test-suit more reliable --- test/pre-upload-check.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'test') diff --git a/test/pre-upload-check.py b/test/pre-upload-check.py index de43122ce..9c2e1916c 100755 --- a/test/pre-upload-check.py +++ b/test/pre-upload-check.py @@ -27,6 +27,8 @@ class testAptAuthenticationReliability(unittest.TestCase): 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 @@ -49,8 +51,7 @@ class testAptAuthenticationReliability(unittest.TestCase): 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") - os.unlink("/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") @@ -58,15 +59,15 @@ class testAptAuthenticationReliability(unittest.TestCase): res = call([self.apt, "update", "-o","Dir::Etc::sourcelist=./authReliability/sources.list.failure", - "-o",'APT::Update::Auth-Failure::=touch /tmp/authFailure', + "-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/authFailure"), - "The APT::Update::Auth-Failure script did not run") + 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 -- cgit v1.2.3 From 45df0ad2aab7d019cec855ba2cfe7ecdd0f8c7c8 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 26 Nov 2009 22:23:08 +0100 Subject: [BREAK] add possibility to download and use multiply Translation files, configurable with Acquire::Languages accessable with APT::Configuration::getLanguages() and as always with documentation in apt.conf. The commit also includes a very very simple testapp. --- test/libapt/getlanguages_test.cc | 91 ++++++++++++++++++++++++++++++++++++++++ test/libapt/makefile | 13 ++++++ 2 files changed, 104 insertions(+) create mode 100644 test/libapt/getlanguages_test.cc create mode 100644 test/libapt/makefile (limited to 'test') diff --git a/test/libapt/getlanguages_test.cc b/test/libapt/getlanguages_test.cc new file mode 100644 index 000000000..f3629df68 --- /dev/null +++ b/test/libapt/getlanguages_test.cc @@ -0,0 +1,91 @@ +#include +#include + +#include +#include +#include + +#include + +// simple helper to quickly output a vector of strings +void dumpVector(std::vector vec) { + for (std::vector::const_iterator v = vec.begin(); + v != vec.end(); v++) + std::cout << *v << std::endl; +} + +int main(int argc,char *argv[]) +{ + std::vector vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); + assert(vec.size() == 2); + assert(vec[0] == "de"); + assert(vec[1] == "en"); + + // Special: Check if the cache is actually in use + vec = APT::Configuration::getLanguages(false, true, "en_GB.UTF-8"); + assert(vec.size() == 2); + assert(vec[0] == "de"); + assert(vec[1] == "en"); + + vec = APT::Configuration::getLanguages(false, false, "en_GB.UTF-8"); + assert(vec.size() == 2); + assert(vec[0] == "en_GB"); + assert(vec[1] == "en"); + + vec = APT::Configuration::getLanguages(false, false, "pt_PR.UTF-8"); + assert(vec.size() == 3); + assert(vec[0] == "pt_PR"); + assert(vec[1] == "pt"); + assert(vec[2] == "en"); + + vec = APT::Configuration::getLanguages(false, false, "ast_DE.UTF-8"); // bogus, but syntactical correct + assert(vec.size() == 2); + assert(vec[0] == "ast"); + assert(vec[1] == "en"); + + vec = APT::Configuration::getLanguages(false, false, "C"); + assert(vec.size() == 1); + assert(vec[0] == "en"); + + _config->Set("Acquire::Languages::1", "environment"); + _config->Set("Acquire::Languages::2", "en"); + vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); + assert(vec.size() == 2); + assert(vec[0] == "de"); + assert(vec[1] == "en"); + + _config->Set("Acquire::Languages::3", "de"); + vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); + assert(vec.size() == 2); + assert(vec[0] == "de"); + assert(vec[1] == "en"); + + _config->Set("Acquire::Languages::1", "none"); + vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); + assert(vec.size() == 0); + vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8"); + assert(vec[0] == "en"); + assert(vec[1] == "de"); + + _config->Set("Acquire::Languages::1", "fr"); + _config->Set("Acquire::Languages", "de_DE"); + vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); + assert(vec.size() == 1); + assert(vec[0] == "de_DE"); + + _config->Set("Acquire::Languages", "none"); + vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8"); + assert(vec.size() == 0); + + _config->Set("Acquire::Languages", ""); + //FIXME: Remove support for this deprecated setting + _config->Set("APT::Acquire::Translation", "ast_DE"); + vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8"); + assert(vec.size() == 1); + assert(vec[0] == "ast_DE"); + _config->Set("APT::Acquire::Translation", "none"); + vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8"); + assert(vec.size() == 0); + + return 0; +} diff --git a/test/libapt/makefile b/test/libapt/makefile new file mode 100644 index 000000000..f61a95f3d --- /dev/null +++ b/test/libapt/makefile @@ -0,0 +1,13 @@ +# -*- 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) -- cgit v1.2.3 From e4a30974d7b3fa092d962682e22c5a8171cf3407 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 26 Nov 2009 22:24:03 +0100 Subject: Add a very simple test runner --- test/libapt/run-tests.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100755 test/libapt/run-tests.sh (limited to 'test') diff --git a/test/libapt/run-tests.sh b/test/libapt/run-tests.sh new file mode 100755 index 000000000..365bbe215 --- /dev/null +++ b/test/libapt/run-tests.sh @@ -0,0 +1,10 @@ +#!/bin/sh +echo "Compiling the tests ..." +make +echo "Running all testcases ..." +PATH=$(pwd)/../../build/bin +for testapp in $(/bin/ls ${PATH}/*_libapt_test) +do + echo -n "Testing with \033[1;35m$(/usr/bin/basename ${testapp})\033[0m ... " + LD_LIBRARY_PATH=${PATH} ${testapp} && echo "\033[1;32mOKAY\033[0m" || echo "\033[1;31mFAILED\033[0m" +done -- cgit v1.2.3 From cefb7c1f24b3b8c12898f1c8c042970b7a429dca Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 28 Nov 2009 23:27:11 +0100 Subject: add our own equals method as assert doesn't really show the offending values which causes the failure. --- test/libapt/assert.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 test/libapt/assert.h (limited to 'test') 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 + +#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(expect, get, line); +} -- cgit v1.2.3 From 9c562bc9357c1e5bf566110fe30265dcdfd815fd Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 28 Nov 2009 23:30:02 +0100 Subject: convert getlanguages_test to our new equals() --- test/libapt/getlanguages_test.cc | 68 ++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 34 deletions(-) (limited to 'test') diff --git a/test/libapt/getlanguages_test.cc b/test/libapt/getlanguages_test.cc index f3629df68..fd3c8269f 100644 --- a/test/libapt/getlanguages_test.cc +++ b/test/libapt/getlanguages_test.cc @@ -1,7 +1,7 @@ #include #include -#include +#include "assert.h" #include #include @@ -17,75 +17,75 @@ void dumpVector(std::vector vec) { int main(int argc,char *argv[]) { std::vector vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); - assert(vec.size() == 2); - assert(vec[0] == "de"); - assert(vec[1] == "en"); + equals(vec.size(), 2); + equals(vec[0], "de"); + equals(vec[1], "en"); // Special: Check if the cache is actually in use vec = APT::Configuration::getLanguages(false, true, "en_GB.UTF-8"); - assert(vec.size() == 2); - assert(vec[0] == "de"); - assert(vec[1] == "en"); + equals(vec.size(), 2); + equals(vec[0], "de"); + equals(vec[1], "en"); vec = APT::Configuration::getLanguages(false, false, "en_GB.UTF-8"); - assert(vec.size() == 2); - assert(vec[0] == "en_GB"); - assert(vec[1] == "en"); + equals(vec.size(), 2); + equals(vec[0], "en_GB"); + equals(vec[1], "en"); vec = APT::Configuration::getLanguages(false, false, "pt_PR.UTF-8"); - assert(vec.size() == 3); - assert(vec[0] == "pt_PR"); - assert(vec[1] == "pt"); - assert(vec[2] == "en"); + equals(vec.size(), 3); + equals(vec[0], "pt_PR"); + equals(vec[1], "pt"); + equals(vec[2], "en"); vec = APT::Configuration::getLanguages(false, false, "ast_DE.UTF-8"); // bogus, but syntactical correct - assert(vec.size() == 2); - assert(vec[0] == "ast"); - assert(vec[1] == "en"); + equals(vec.size(), 2); + equals(vec[0], "ast"); + equals(vec[1], "en"); vec = APT::Configuration::getLanguages(false, false, "C"); - assert(vec.size() == 1); - assert(vec[0] == "en"); + equals(vec.size(), 1); + equals(vec[0], "en"); _config->Set("Acquire::Languages::1", "environment"); _config->Set("Acquire::Languages::2", "en"); vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); - assert(vec.size() == 2); - assert(vec[0] == "de"); - assert(vec[1] == "en"); + equals(vec.size(), 2); + equals(vec[0], "de"); + equals(vec[1], "en"); _config->Set("Acquire::Languages::3", "de"); vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); - assert(vec.size() == 2); - assert(vec[0] == "de"); - assert(vec[1] == "en"); + equals(vec.size(), 2); + equals(vec[0], "de"); + equals(vec[1], "en"); _config->Set("Acquire::Languages::1", "none"); vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); - assert(vec.size() == 0); + equals(vec.size(), 0); vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8"); - assert(vec[0] == "en"); - assert(vec[1] == "de"); + equals(vec[0], "en"); + equals(vec[1], "de"); _config->Set("Acquire::Languages::1", "fr"); _config->Set("Acquire::Languages", "de_DE"); vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); - assert(vec.size() == 1); - assert(vec[0] == "de_DE"); + equals(vec.size(), 1); + equals(vec[0], "de_DE"); _config->Set("Acquire::Languages", "none"); vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8"); - assert(vec.size() == 0); + equals(vec.size(), 0); _config->Set("Acquire::Languages", ""); //FIXME: Remove support for this deprecated setting _config->Set("APT::Acquire::Translation", "ast_DE"); vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8"); - assert(vec.size() == 1); - assert(vec[0] == "ast_DE"); + equals(vec.size(), 1); + equals(vec[0], "ast_DE"); _config->Set("APT::Acquire::Translation", "none"); vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8"); - assert(vec.size() == 0); + equals(vec.size(), 0); return 0; } -- cgit v1.2.3 From 41c81fd85d43ed747375d8f1ee7a9b71fb3c7016 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 29 Nov 2009 00:23:26 +0100 Subject: Ignore :qualifiers after package name in build dependencies for now as long we don't understand them (Closes: #558103) --- test/libapt/makefile | 6 ++ test/libapt/parsedepends_test.cc | 128 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 test/libapt/parsedepends_test.cc (limited to 'test') diff --git a/test/libapt/makefile b/test/libapt/makefile index f61a95f3d..5712c025a 100644 --- a/test/libapt/makefile +++ b/test/libapt/makefile @@ -11,3 +11,9 @@ PROGRAM = getLanguages${BASENAME} SLIBS = -lapt-pkg SOURCE = getlanguages_test.cc include $(PROGRAM_H) + +# Program for testing ParseDepends +PROGRAM = ParseDepends${BASENAME} +SLIBS = -lapt-pkg +SOURCE = parsedepends_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..b7befa561 --- /dev/null +++ b/test/libapt/parsedepends_test.cc @@ -0,0 +1,128 @@ +#include +#include + +#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 ], " + "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++; + } + + 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; +} -- cgit v1.2.3 From e29a6bb14dcc004d174ad8502b76623139fbee06 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 16 Jan 2010 23:09:42 +0100 Subject: Fix the newly introduced method GetListOfFilesInDir to not accept every file if no extension is enforced (= restore old behaviour). (Closes: #565213) This commit includes also: * apt-pkg/policy.cc: - accept also partfiles with "pref" file extension as valid * apt-pkg/contrib/configuration.cc: - accept also partfiles with "conf" file extension as valid * doc/apt.conf.5.xml: - reorder description and split out syntax - add partfile name convention (Closes: #558348) * doc/apt_preferences.conf.5.xml: - describe partfile name convention also here And a lovely test application of course. --- test/libapt/getlistoffilesindir_test.cc | 82 +++++++++++++++++++++++++++++++++ test/libapt/makefile | 6 +++ test/libapt/run-tests.sh | 50 ++++++++++++++++++-- 3 files changed, 134 insertions(+), 4 deletions(-) create mode 100644 test/libapt/getlistoffilesindir_test.cc (limited to 'test') diff --git a/test/libapt/getlistoffilesindir_test.cc b/test/libapt/getlistoffilesindir_test.cc new file mode 100644 index 000000000..ed8d2dad6 --- /dev/null +++ b/test/libapt/getlistoffilesindir_test.cc @@ -0,0 +1,82 @@ +#include + +#include "assert.h" +#include +#include + +#include +#include + +// simple helper to quickly output a vector of strings +void dumpVector(std::vector vec) { + for (std::vector::const_iterator v = vec.begin(); + v != vec.end(); v++) + std::cout << *v << std::endl; +} + +#define P(x) string(argv[1]).append("/").append(x) + +int main(int argc,char *argv[]) +{ + if (argc != 2) { + std::cout << "One parameter expected - given " << argc << std::endl; + return 100; + } + + // Files with no extension + std::vector files = GetListOfFilesInDir(argv[1], "", true); + equals(files.size(), 2); + equals(files[0], P("01yet-anothernormalfile")); + equals(files[1], P("anormalfile")); + + // Files with no extension - should be the same as above + files = GetListOfFilesInDir(argv[1], "", true, true); + equals(files.size(), 2); + equals(files[0], P("01yet-anothernormalfile")); + equals(files[1], P("anormalfile")); + + // Files with impossible extension + files = GetListOfFilesInDir(argv[1], "impossible", true); + equals(files.size(), 0); + + // Files with impossible or no extension + files = GetListOfFilesInDir(argv[1], "impossible", true, true); + equals(files.size(), 2); + equals(files[0], P("01yet-anothernormalfile")); + equals(files[1], P("anormalfile")); + + // Files with list extension - nothing more + files = GetListOfFilesInDir(argv[1], "list", true); + equals(files.size(), 4); + equals(files[0], P("01yet-anotherapt.list")); + equals(files[1], P("anormalapt.list")); + equals(files[2], P("linkedfile.list")); + equals(files[3], P("multi.dot.list")); + + // Files with conf or no extension + files = GetListOfFilesInDir(argv[1], "conf", true, true); + equals(files.size(), 5); + equals(files[0], P("01yet-anotherapt.conf")); + equals(files[1], P("01yet-anothernormalfile")); + equals(files[2], P("anormalapt.conf")); + equals(files[3], P("anormalfile")); + equals(files[4], P("multi.dot.conf")); + + // Files with disabled extension - nothing more + files = GetListOfFilesInDir(argv[1], "disabled", true); + equals(files.size(), 3); + equals(files[0], P("disabledfile.conf.disabled")); + equals(files[1], P("disabledfile.disabled")); + equals(files[2], P("disabledfile.list.disabled")); + + // Files with disabled or no extension + files = GetListOfFilesInDir(argv[1], "disabled", true, true); + equals(files.size(), 5); + equals(files[0], P("01yet-anothernormalfile")); + equals(files[1], P("anormalfile")); + equals(files[2], P("disabledfile.conf.disabled")); + equals(files[3], P("disabledfile.disabled")); + equals(files[4], P("disabledfile.list.disabled")); + + return 0; +} diff --git a/test/libapt/makefile b/test/libapt/makefile index 5712c025a..08f581e6d 100644 --- a/test/libapt/makefile +++ b/test/libapt/makefile @@ -17,3 +17,9 @@ 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) diff --git a/test/libapt/run-tests.sh b/test/libapt/run-tests.sh index 365bbe215..1fcfb6861 100755 --- a/test/libapt/run-tests.sh +++ b/test/libapt/run-tests.sh @@ -1,10 +1,52 @@ #!/bin/sh +set -e + echo "Compiling the tests ..." make echo "Running all testcases ..." -PATH=$(pwd)/../../build/bin -for testapp in $(/bin/ls ${PATH}/*_libapt_test) +LDPATH=$(pwd)/../../build/bin +EXT="_libapt_test" +for testapp in $(ls ${LDPATH}/*$EXT) do - echo -n "Testing with \033[1;35m$(/usr/bin/basename ${testapp})\033[0m ... " - LD_LIBRARY_PATH=${PATH} ${testapp} && echo "\033[1;32mOKAY\033[0m" || echo "\033[1;31mFAILED\033[0m" + name=$(basename ${testapp}) + tmppath="" + + if [ $name = "GetListOfFilesInDir${EXT}" ]; then + # TODO: very-low: move env creation to the actual test-app + echo "Prepare Testarea for \033[1;35m$name\033[0m ..." + tmppath=$(mktemp -d) + touch "${tmppath}/anormalfile" \ + "${tmppath}/01yet-anothernormalfile" \ + "${tmppath}/anormalapt.conf" \ + "${tmppath}/01yet-anotherapt.conf" \ + "${tmppath}/anormalapt.list" \ + "${tmppath}/01yet-anotherapt.list" \ + "${tmppath}/wrongextension.wron" \ + "${tmppath}/wrong-extension.wron" \ + "${tmppath}/strangefile." \ + "${tmppath}/s.t.r.a.n.g.e.f.i.l.e" \ + "${tmppath}/.hiddenfile" \ + "${tmppath}/.hiddenfile.conf" \ + "${tmppath}/.hiddenfile.list" \ + "${tmppath}/multi..dot" \ + "${tmppath}/multi.dot.conf" \ + "${tmppath}/multi.dot.list" \ + "${tmppath}/disabledfile.disabled" \ + "${tmppath}/disabledfile.conf.disabled" \ + "${tmppath}/disabledfile.list.disabled" \ + "${tmppath}/invälid.conf" \ + "${tmppath}/invalíd" \ + "${tmppath}/01invalíd" + ln -s "${tmppath}/anormalfile" "${tmppath}/linkedfile.list" + ln -s "${tmppath}/non-existing-file" "${tmppath}/brokenlink.list" + fi + + echo -n "Testing with \033[1;35m${name}\033[0m ... " + LD_LIBRARY_PATH=${LDPATH} ${testapp} ${tmppath} && echo "\033[1;32mOKAY\033[0m" || echo "\033[1;31mFAILED\033[0m" + + if [ -n "$tmppath" -a -d "$tmppath" ]; then + echo "Cleanup Testarea after \033[1;35m$name\033[0m ..." + rm -rf "$tmppath" + fi + done -- cgit v1.2.3 From 5c0d3668dd2b6852812502f33d64b1644c2b137a Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 30 Jan 2010 22:19:57 +0100 Subject: * apt-pkg/contrib/macros.h: - move the header system.h with a new name to the public domain, to be able to use it in other headers (Closes: #567662) --- test/versiontest.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test') diff --git a/test/versiontest.cc b/test/versiontest.cc index 5438eb4de..4ede4b280 100644 --- a/test/versiontest.cc +++ b/test/versiontest.cc @@ -14,7 +14,7 @@ ##################################################################### */ /*}}}*/ -#include +#include #include #include #include -- cgit v1.2.3 From d7cf5923a093e89ab5aac0bf8cd1c3042997990c Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 18 Feb 2010 00:30:51 +0100 Subject: dd support for the LANGUAGE environment variable --- test/libapt/getlanguages_test.cc | 61 +++++++++++++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 14 deletions(-) (limited to 'test') diff --git a/test/libapt/getlanguages_test.cc b/test/libapt/getlanguages_test.cc index fd3c8269f..fb7afb4ef 100644 --- a/test/libapt/getlanguages_test.cc +++ b/test/libapt/getlanguages_test.cc @@ -16,75 +16,108 @@ void dumpVector(std::vector vec) { int main(int argc,char *argv[]) { - std::vector vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); + char const* env[2]; + env[0] = "de_DE.UTF-8"; + env[1] = ""; + std::vector 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 - vec = APT::Configuration::getLanguages(false, true, "en_GB.UTF-8"); + 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"); - vec = APT::Configuration::getLanguages(false, false, "en_GB.UTF-8"); + 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"); - vec = APT::Configuration::getLanguages(false, false, "pt_PR.UTF-8"); + 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"); - vec = APT::Configuration::getLanguages(false, false, "ast_DE.UTF-8"); // bogus, but syntactical correct + 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"); - vec = APT::Configuration::getLanguages(false, false, "C"); + 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"); - vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); + 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"); - vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); + 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::1", "none"); - vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(false, false, env); equals(vec.size(), 0); - vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8"); + 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"); - vec = APT::Configuration::getLanguages(false, false, "de_DE.UTF-8"); + 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"); - vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8"); + 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"); - vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(true, false, env); equals(vec.size(), 1); equals(vec[0], "ast_DE"); _config->Set("APT::Acquire::Translation", "none"); - vec = APT::Configuration::getLanguages(true, false, "de_DE.UTF-8"); + env[0] = "de_DE.UTF-8"; + vec = APT::Configuration::getLanguages(true, false, env); equals(vec.size(), 0); return 0; -- cgit v1.2.3 From 3f2d77b5e02c5749a78ad9852c01cfad4ce0fda1 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 18 Feb 2010 00:35:25 +0100 Subject: * aptconfiguration.cc: - include all existing Translation files in the Cache (Closes: 564137) Previously if APT was executed with a different LC_* all these invocations needed to rebuild the Cache as too many files were included or missing: Now the lists-directory is checked for Translation-files and all these will be included in getLanguages() regardless of the environment setting (after a "none" so APT will not use them for displaying information). --- test/libapt/getlanguages_test.cc | 22 ++++++++++++++++++++-- test/libapt/run-tests.sh | 7 +++++++ 2 files changed, 27 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/libapt/getlanguages_test.cc b/test/libapt/getlanguages_test.cc index fb7afb4ef..0db190b50 100644 --- a/test/libapt/getlanguages_test.cc +++ b/test/libapt/getlanguages_test.cc @@ -16,9 +16,15 @@ void dumpVector(std::vector vec) { 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 vec = APT::Configuration::getLanguages(false, false, env); equals(vec.size(), 2); equals(vec[0], "de"); @@ -87,6 +93,16 @@ int main(int argc,char *argv[]) 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); @@ -113,12 +129,14 @@ int main(int argc,char *argv[]) _config->Set("APT::Acquire::Translation", "ast_DE"); env[0] = "de_DE.UTF-8"; vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 1); + 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(), 0); + equals(vec.size(), 1); + equals(vec[0], "en"); return 0; } diff --git a/test/libapt/run-tests.sh b/test/libapt/run-tests.sh index 1fcfb6861..f9df1af5f 100755 --- a/test/libapt/run-tests.sh +++ b/test/libapt/run-tests.sh @@ -39,6 +39,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 ... " -- cgit v1.2.3 From 2bb255740bf18b5e0524fe833523303abb5c9051 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 12 Mar 2010 19:41:30 +0100 Subject: * apt-pkg/deb/dpkgpm.cc: - if available store the Commandline in the history * apt-pkg/contrib/cmndline.cc: - save Commandline in Commandline::AsString for logging --- test/libapt/commandlineasstring_test.cc | 39 +++++++++++++++++++++++++++++++++ test/libapt/makefile | 6 +++++ 2 files changed, 45 insertions(+) create mode 100644 test/libapt/commandlineasstring_test.cc (limited to 'test') 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 +#include + +#include + +#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/makefile b/test/libapt/makefile index 08f581e6d..cb76d5ee6 100644 --- a/test/libapt/makefile +++ b/test/libapt/makefile @@ -23,3 +23,9 @@ 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) -- cgit v1.2.3 From ea5624c3d04c35f5a269b6f7431c135330c9b9b5 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 13 Mar 2010 14:11:22 +0100 Subject: * apt-pkg/deb/debversion.cc: - consider absent of debian revision equivalent to 0 (Closes: #573592) This moves the existing testcase for version comparison to "my" directory, adds a few more tests (e.g. the tests used in cupt) and rewrites the testcases runner: The runner does now call dpkg --compare-versions to check what dpkg thinks about the comparison - all done in less code ;) --- test/libapt/compareversion_test.cc | 123 ++++++++++++++++++++ test/libapt/makefile | 6 + test/makefile | 7 -- test/versions.lst | 64 +++++++++- test/versiontest.cc | 233 ------------------------------------- 5 files changed, 189 insertions(+), 244 deletions(-) create mode 100644 test/libapt/compareversion_test.cc delete mode 100644 test/versiontest.cc (limited to 'test') 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 +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +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/makefile b/test/libapt/makefile index cb76d5ee6..98bdb3348 100644 --- a/test/libapt/makefile +++ b/test/libapt/makefile @@ -29,3 +29,9 @@ 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) diff --git a/test/makefile b/test/makefile index fb9123d0a..b8c104eae 100644 --- a/test/makefile +++ b/test/makefile @@ -24,13 +24,6 @@ LIB_MAKES = apt-pkg/makefile apt-inst/makefile 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 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 -#include -#include -#include -#include -#include - -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; - } -} -- cgit v1.2.3 From a722b2c5c935768efbdd5b23eed7ce32ccd60908 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 9 Apr 2010 15:38:48 +0200 Subject: * apt-pkg/acquire-item.cc: - Acquire::ForceHash to force method for expected hash - display MD5Sum in --print-uris if not forced to use another method instead of displaying the strongest available (Closes: #576420) --- test/makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/makefile b/test/makefile index b8c104eae..52adb96a2 100644 --- a/test/makefile +++ b/test/makefile @@ -68,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) -- cgit v1.2.3 From 3152f4aa4a97ad06ef1073aabe137f999f787ee1 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 28 May 2010 23:11:36 +0200 Subject: * apt-pkg/aptconfiguration.cc: - remove duplicate architectures in getArchitectures() --- test/libapt/getarchitectures_test.cc | 61 ++++++++++++++++++++++++++++++++++++ test/libapt/makefile | 5 +++ 2 files changed, 66 insertions(+) create mode 100644 test/libapt/getarchitectures_test.cc (limited to 'test') 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 +#include + +#include "assert.h" +#include +#include + +#include + +// simple helper to quickly output a vector of strings +void dumpVector(std::vector vec) { + for (std::vector::const_iterator v = vec.begin(); + v != vec.end(); v++) + std::cout << *v << std::endl; +} + +int main(int argc,char *argv[]) +{ + std::vector 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/makefile b/test/libapt/makefile index 98bdb3348..ee3401b35 100644 --- a/test/libapt/makefile +++ b/test/libapt/makefile @@ -12,6 +12,11 @@ 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 -- cgit v1.2.3 From 8fa7eefb8a320e8fa4a26c4718fa606d4d27a56f Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 28 May 2010 23:40:08 +0200 Subject: create the bin-test directory automatic in the runner --- test/libapt/run-tests.sh | 1 + 1 file changed, 1 insertion(+) (limited to 'test') diff --git a/test/libapt/run-tests.sh b/test/libapt/run-tests.sh index f9df1af5f..cb7769e4a 100755 --- a/test/libapt/run-tests.sh +++ b/test/libapt/run-tests.sh @@ -2,6 +2,7 @@ set -e echo "Compiling the tests ..." +test -d '../../build/obj/test/libapt/' || mkdir -p '../../build/obj/test/libapt/' make echo "Running all testcases ..." LDPATH=$(pwd)/../../build/bin -- cgit v1.2.3 From 1ddb859611d2e0f3d9ea12085001810f689e8c99 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 8 Jun 2010 19:27:49 +0200 Subject: * apt-pkg/indexrecords.cc: - backport forgotten Valid-Until patch from the obsolete experimental branch to prevent replay attacks better, thanks to Thomas Viehmann for the initial patch! (Closes: #499897) --- test/pre-upload-check.py | 14 ++++++++++++++ test/testsources.list/sources.list.all-validuntil-broken | 1 + 2 files changed, 15 insertions(+) create mode 100644 test/testsources.list/sources.list.all-validuntil-broken (limited to 'test') diff --git a/test/pre-upload-check.py b/test/pre-upload-check.py index 268b3d672..e2dfecbd3 100755 --- a/test/pre-upload-check.py +++ b/test/pre-upload-check.py @@ -95,6 +95,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 " 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/ / -- cgit v1.2.3 From 31e1187be48846395cb3b57f0e9a731261a1484c Mon Sep 17 00:00:00 2001 From: "martin@piware.de" <> Date: Thu, 10 Jun 2010 15:19:10 +0200 Subject: * Add test/test-indexes.sh: - Test behaviour of index retrieval and usage, in particular with uncompressed and gzip compressed indexes. --- test/test-indexes.sh | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100755 test/test-indexes.sh (limited to 'test') diff --git a/test/test-indexes.sh b/test/test-indexes.sh new file mode 100755 index 000000000..d3f5e7cd3 --- /dev/null +++ b/test/test-indexes.sh @@ -0,0 +1,106 @@ +#!/bin/sh -e + +# Test behaviour of index retrieval and usage, in particular with uncompressed +# and gzip compressed indexes. +# Author: Martin Pitt +# (C) 2010 Canonical Ltd. + +BUILDDIR=$(readlink -f $(dirname $0)/../build) + +TEST_SOURCE="deb http://ftp.debian.org/debian unstable contrib" +TEST_SOURCE_KEYID=55BE302B +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="-o RootDir=. -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" + +[ -x "$BUILDDIR/bin/apt-get" ] || { + echo "please build the tree first" >&2 + exit 1 +} + +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 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 "$TEST_SOURCE" > etc/apt/sources.list + +# get keyring +gpg --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 $TEST_SOURCE_KEYID + +echo "---- uncompressed update ----" +$APT_GET update +test -e var/lib/apt/lists/*_Packages +! test -e var/lib/apt/lists/*_Packages.gz + +echo "---- uncompressed cache ----" +$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 | grep -q '500 http://' +# again (with cache) +$APT_CACHE policy $TEST_PKG | grep -q '500 http://' + +echo "---- uncompressed 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 + +echo "----- uncompressed update with preexisting indexes, no pdiff ----" +$APT_GET -o Acquire::PDiffs=false update +test -e var/lib/apt/lists/*_Packages +! test -e var/lib/apt/lists/*_Packages.gz + +echo "----- uncompressed update with preexisting indexes, with pdiff ----" +$APT_GET -o Acquire::PDiffs=true update +test -e var/lib/apt/lists/*_Packages +! test -e var/lib/apt/lists/*_Packages.gz + +echo "----- compressed update ----" +find var/lib/apt/lists/ -type f | xargs -r rm +$APT_GET -o Acquire::GzipIndexes=true update +! test -e var/lib/apt/lists/*_Packages +test -e var/lib/apt/lists/*_Packages.gz + +echo "---- compressed cache ----" +$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 | grep -q '500 http://' +# again (with cache) +$APT_CACHE policy $TEST_PKG | grep -q '500 http://' + +echo "---- compressed install ----" +$APT_GET install -d $TEST_PKG +! test -e var/cache/apt/archives/$TEST_PKG*.deb + +echo "----- compressed update with preexisting indexes, no pdiff ----" +$APT_GET -o Acquire::PDiffs=false -o Acquire::GzipIndexes=true update +! test -e var/lib/apt/lists/*_Packages +test -e var/lib/apt/lists/*_Packages.gz + +echo "----- compressed update with preexisting indexes, with pdiff ----" +$APT_GET -o Acquire::PDiffs=true -o Acquire::GzipIndexes=true update +! test -e var/lib/apt/lists/*_Packages +test -e var/lib/apt/lists/*_Packages.gz + +echo "---- ALL TESTS PASSED ----" -- cgit v1.2.3 From f4782b42840c1f86c40a59690698ccf6920e990a Mon Sep 17 00:00:00 2001 From: "martin@piware.de" <> Date: Fri, 11 Jun 2010 18:22:48 +0200 Subject: test-indexes.sh: Add source related tests, which uncovers two regressions --- test/test-indexes.sh | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/test-indexes.sh b/test/test-indexes.sh index d3f5e7cd3..e82633022 100755 --- a/test/test-indexes.sh +++ b/test/test-indexes.sh @@ -7,7 +7,7 @@ BUILDDIR=$(readlink -f $(dirname $0)/../build) -TEST_SOURCE="deb http://ftp.debian.org/debian unstable contrib" +TEST_SOURCE="http://ftp.debian.org/debian unstable contrib" TEST_SOURCE_KEYID=55BE302B GPG_KEYSERVER=gpg-keyserver.de # should be a small package with dependencies satisfiable in TEST_SOURCE, i. e. @@ -39,7 +39,8 @@ ln -s /home home mkdir -p etc/apt/preferences.d etc/apt/trusted.gpg.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 "$TEST_SOURCE" > etc/apt/sources.list +echo "deb $TEST_SOURCE" > etc/apt/sources.list +echo "deb-src $TEST_SOURCE" >> etc/apt/sources.list # get keyring gpg --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 $TEST_SOURCE_KEYID @@ -47,7 +48,9 @@ gpg --no-options --no-default-keyring --secret-keyring etc/apt/secring.gpg --tru echo "---- uncompressed update ----" $APT_GET update test -e var/lib/apt/lists/*_Packages +test -e var/lib/apt/lists/*_Sources ! test -e var/lib/apt/lists/*_Packages.gz +! test -e var/lib/apt/lists/*_Sources.gz echo "---- uncompressed cache ----" $APT_CACHE show $TEST_PKG | grep -q ^Version: @@ -58,27 +61,45 @@ $APT_CACHE policy $TEST_PKG | grep -q '500 http://' # again (with cache) $APT_CACHE policy $TEST_PKG | grep -q '500 http://' +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: + echo "---- uncompressed 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 +echo "---- uncompressed get source ----" +$APT_GET source $TEST_PKG +test -f $TEST_SRC_*.dsc +test -d $TEST_SRC-* +rm -r $TEST_SRC* + echo "----- uncompressed update with preexisting indexes, no pdiff ----" $APT_GET -o Acquire::PDiffs=false update test -e var/lib/apt/lists/*_Packages +test -e var/lib/apt/lists/*_Sources ! test -e var/lib/apt/lists/*_Packages.gz +! test -e var/lib/apt/lists/*_Sources.gz echo "----- uncompressed update with preexisting indexes, with pdiff ----" $APT_GET -o Acquire::PDiffs=true update test -e var/lib/apt/lists/*_Packages +test -e var/lib/apt/lists/*_Sources ! test -e var/lib/apt/lists/*_Packages.gz +! test -e var/lib/apt/lists/*_Sources.gz echo "----- compressed update ----" find var/lib/apt/lists/ -type f | xargs -r rm $APT_GET -o Acquire::GzipIndexes=true update ! test -e var/lib/apt/lists/*_Packages +! test -e var/lib/apt/lists/*_Sources test -e var/lib/apt/lists/*_Packages.gz +test -e var/lib/apt/lists/*_Sources.gz echo "---- compressed cache ----" $APT_CACHE show $TEST_PKG | grep -q ^Version: @@ -89,18 +110,34 @@ $APT_CACHE policy $TEST_PKG | grep -q '500 http://' # again (with cache) $APT_CACHE policy $TEST_PKG | grep -q '500 http://' +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: + echo "---- compressed install ----" $APT_GET install -d $TEST_PKG ! test -e var/cache/apt/archives/$TEST_PKG*.deb +echo "---- compressed get source ----" +$APT_GET source $TEST_PKG +test -f $TEST_SRC_*.dsc +test -d $TEST_SRC-* +rm -r $TEST_SRC* + echo "----- compressed update with preexisting indexes, no pdiff ----" $APT_GET -o Acquire::PDiffs=false -o Acquire::GzipIndexes=true update ! test -e var/lib/apt/lists/*_Packages +! test -e var/lib/apt/lists/*_Sources test -e var/lib/apt/lists/*_Packages.gz +test -e var/lib/apt/lists/*_Sources.gz echo "----- compressed update with preexisting indexes, with pdiff ----" $APT_GET -o Acquire::PDiffs=true -o Acquire::GzipIndexes=true update ! test -e var/lib/apt/lists/*_Packages +! test -e var/lib/apt/lists/*_Sources test -e var/lib/apt/lists/*_Packages.gz +test -e var/lib/apt/lists/*_Sources.gz echo "---- ALL TESTS PASSED ----" -- cgit v1.2.3 From 8d48388ebfb69ab21a50d068275d2f6b7abffb87 Mon Sep 17 00:00:00 2001 From: "martin@piware.de" <> Date: Tue, 15 Jun 2010 13:17:33 +0200 Subject: test/test-indexes.sh: Stop hardcoding archive gpg key ID, get it from first failed apt-get update output --- test/test-indexes.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/test-indexes.sh b/test/test-indexes.sh index e82633022..58b9cff72 100755 --- a/test/test-indexes.sh +++ b/test/test-indexes.sh @@ -8,7 +8,6 @@ BUILDDIR=$(readlink -f $(dirname $0)/../build) TEST_SOURCE="http://ftp.debian.org/debian unstable contrib" -TEST_SOURCE_KEYID=55BE302B GPG_KEYSERVER=gpg-keyserver.de # should be a small package with dependencies satisfiable in TEST_SOURCE, i. e. # ideally no depends at all @@ -42,11 +41,15 @@ touch var/lib/dpkg/status echo "deb $TEST_SOURCE" > etc/apt/sources.list echo "deb-src $TEST_SOURCE" >> etc/apt/sources.list -# get keyring -gpg --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 $TEST_SOURCE_KEYID - echo "---- uncompressed update ----" +# 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 --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 $APT_GET update + test -e var/lib/apt/lists/*_Packages test -e var/lib/apt/lists/*_Sources ! test -e var/lib/apt/lists/*_Packages.gz -- cgit v1.2.3 From 8d60bef0c235f86772686df1499ae5e9593437e2 Mon Sep 17 00:00:00 2001 From: "martin@piware.de" <> Date: Thu, 17 Jun 2010 11:17:13 +0200 Subject: test-indexes.sh: More verbose failures on wrong/missing indexes --- test/test-indexes.sh | 53 +++++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 25 deletions(-) (limited to 'test') diff --git a/test/test-indexes.sh b/test/test-indexes.sh index 58b9cff72..d79e9e7e4 100755 --- a/test/test-indexes.sh +++ b/test/test-indexes.sh @@ -27,6 +27,28 @@ APT_CACHE="$BUILDDIR/bin/apt-cache $OPTS $DEBUG" exit 1 } +# if $1 == "compressed", check that we have compressed indexes, otherwise +# uncompressed ones +check_indexes() { + 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 -l var/lib/apt/lists/ + exit 1 + fi +} + echo "---- building sandbox----" WORKDIR=$(mktemp -d) trap "cd /; rm -rf $WORKDIR" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM @@ -49,11 +71,7 @@ key=$(echo "$out" | sed -n '/NO_PUBKEY/ { s/^.*NO_PUBKEY \([[:alnum:]]\+\)$/\1/; # get keyring gpg --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 $APT_GET update - -test -e var/lib/apt/lists/*_Packages -test -e var/lib/apt/lists/*_Sources -! test -e var/lib/apt/lists/*_Packages.gz -! test -e var/lib/apt/lists/*_Sources.gz +check_indexes echo "---- uncompressed cache ----" $APT_CACHE show $TEST_PKG | grep -q ^Version: @@ -84,25 +102,16 @@ rm -r $TEST_SRC* echo "----- uncompressed update with preexisting indexes, no pdiff ----" $APT_GET -o Acquire::PDiffs=false update -test -e var/lib/apt/lists/*_Packages -test -e var/lib/apt/lists/*_Sources -! test -e var/lib/apt/lists/*_Packages.gz -! test -e var/lib/apt/lists/*_Sources.gz +check_indexes echo "----- uncompressed update with preexisting indexes, with pdiff ----" $APT_GET -o Acquire::PDiffs=true update -test -e var/lib/apt/lists/*_Packages -test -e var/lib/apt/lists/*_Sources -! test -e var/lib/apt/lists/*_Packages.gz -! test -e var/lib/apt/lists/*_Sources.gz +check_indexes echo "----- compressed update ----" find var/lib/apt/lists/ -type f | xargs -r rm $APT_GET -o Acquire::GzipIndexes=true update -! test -e var/lib/apt/lists/*_Packages -! test -e var/lib/apt/lists/*_Sources -test -e var/lib/apt/lists/*_Packages.gz -test -e var/lib/apt/lists/*_Sources.gz +check_indexes compressed echo "---- compressed cache ----" $APT_CACHE show $TEST_PKG | grep -q ^Version: @@ -131,16 +140,10 @@ rm -r $TEST_SRC* echo "----- compressed update with preexisting indexes, no pdiff ----" $APT_GET -o Acquire::PDiffs=false -o Acquire::GzipIndexes=true update -! test -e var/lib/apt/lists/*_Packages -! test -e var/lib/apt/lists/*_Sources -test -e var/lib/apt/lists/*_Packages.gz -test -e var/lib/apt/lists/*_Sources.gz +check_indexes compressed echo "----- compressed update with preexisting indexes, with pdiff ----" $APT_GET -o Acquire::PDiffs=true -o Acquire::GzipIndexes=true update -! test -e var/lib/apt/lists/*_Packages -! test -e var/lib/apt/lists/*_Sources -test -e var/lib/apt/lists/*_Packages.gz -test -e var/lib/apt/lists/*_Sources.gz +check_indexes compressed echo "---- ALL TESTS PASSED ----" -- cgit v1.2.3 From 2aab191f2a87d4d33a78d76e3c2978689c142190 Mon Sep 17 00:00:00 2001 From: "martin@piware.de" <> Date: Thu, 17 Jun 2010 11:47:51 +0200 Subject: test-indexes.sh: Refactor common code into functions --- test/test-indexes.sh | 155 +++++++++++++++++++++++++++------------------------ 1 file changed, 81 insertions(+), 74 deletions(-) (limited to 'test') diff --git a/test/test-indexes.sh b/test/test-indexes.sh index d79e9e7e4..fdc1a698a 100755 --- a/test/test-indexes.sh +++ b/test/test-indexes.sh @@ -15,7 +15,7 @@ TEST_PKG="python-psyco-doc" export LD_LIBRARY_PATH=$BUILDDIR/bin -OPTS="-o RootDir=. -o Dir::Bin::Methods=$BUILDDIR/bin/methods -o Debug::NoLocking=true" +OPTS="-qq -o RootDir=. -o Dir::Bin::Methods=$BUILDDIR/bin/methods -o Debug::NoLocking=true" DEBUG="" #DEBUG="-o Debug::pkgCacheGen=true" #DEBUG="-o Debug::pkgAcquire=true" @@ -27,9 +27,25 @@ APT_CACHE="$BUILDDIR/bin/apt-cache $OPTS $DEBUG" 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 + 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 + + echo "--- apt-get update $@ (with trusted keys)" + $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 @@ -44,12 +60,54 @@ check_indexes() { fi if [ -n "$F" ]; then - ls -l var/lib/apt/lists/ + ls -laR var/lib/apt/lists/ exit 1 fi } -echo "---- building sandbox----" +# 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 | grep -q '500 http://' + # again (with cache) + $APT_CACHE policy $TEST_PKG | grep -q '500 http://' + + 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" + $APT_GET source $TEST_PKG + 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 @@ -63,87 +121,36 @@ touch var/lib/dpkg/status echo "deb $TEST_SOURCE" > etc/apt/sources.list echo "deb-src $TEST_SOURCE" >> etc/apt/sources.list -echo "---- uncompressed update ----" +echo "===== uncompressed indexes =====" # 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 --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 -$APT_GET update +check_update check_indexes +check_cache +check_install +check_get_source -echo "---- uncompressed cache ----" -$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 | grep -q '500 http://' -# again (with cache) -$APT_CACHE policy $TEST_PKG | grep -q '500 http://' - -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: - -echo "---- uncompressed 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 - -echo "---- uncompressed get source ----" -$APT_GET source $TEST_PKG -test -f $TEST_SRC_*.dsc -test -d $TEST_SRC-* -rm -r $TEST_SRC* - -echo "----- uncompressed update with preexisting indexes, no pdiff ----" -$APT_GET -o Acquire::PDiffs=false update +echo "--- apt-get update with preexisting indexes" +$APT_GET update check_indexes -echo "----- uncompressed update with preexisting indexes, with pdiff ----" +echo "--- apt-get update with preexisting indexes and pdiff mode" $APT_GET -o Acquire::PDiffs=true update check_indexes -echo "----- compressed update ----" +echo "===== compressed indexes =====" find var/lib/apt/lists/ -type f | xargs -r rm -$APT_GET -o Acquire::GzipIndexes=true update +check_update -o Acquire::GzipIndexes=true check_indexes compressed +check_cache +check_install +check_get_source -echo "---- compressed cache ----" -$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 | grep -q '500 http://' -# again (with cache) -$APT_CACHE policy $TEST_PKG | grep -q '500 http://' - -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: - -echo "---- compressed install ----" -$APT_GET install -d $TEST_PKG -! test -e var/cache/apt/archives/$TEST_PKG*.deb - -echo "---- compressed get source ----" -$APT_GET source $TEST_PKG -test -f $TEST_SRC_*.dsc -test -d $TEST_SRC-* -rm -r $TEST_SRC* - -echo "----- compressed update with preexisting indexes, no pdiff ----" -$APT_GET -o Acquire::PDiffs=false -o Acquire::GzipIndexes=true update -check_indexes compressed +echo "--- apt-get update with preexisting indexes" +check_update -o Acquire::GzipIndexes=true +check_indexes -echo "----- compressed update with preexisting indexes, with pdiff ----" -$APT_GET -o Acquire::PDiffs=true -o Acquire::GzipIndexes=true update -check_indexes compressed +echo "--- apt-get update with preexisting indexes and pdiff mode" +check_update -o Acquire::GzipIndexes=true -o Acquire::PDiffs=true update +check_indexes -echo "---- ALL TESTS PASSED ----" +echo "===== ALL TESTS PASSED =====" -- cgit v1.2.3 From 81563bc11a6491b85d55dbefa9f25f8035ab187e Mon Sep 17 00:00:00 2001 From: "martin@piware.de" <> Date: Thu, 17 Jun 2010 12:18:54 +0200 Subject: test-indexes: Use /etc/apt from temporary work dir, not from system --- test/test-indexes.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/test-indexes.sh b/test/test-indexes.sh index fdc1a698a..452b0cc7a 100755 --- a/test/test-indexes.sh +++ b/test/test-indexes.sh @@ -15,7 +15,7 @@ TEST_PKG="python-psyco-doc" export LD_LIBRARY_PATH=$BUILDDIR/bin -OPTS="-qq -o RootDir=. -o Dir::Bin::Methods=$BUILDDIR/bin/methods -o Debug::NoLocking=true" +OPTS="-qq -o Dir::Bin::Methods=$BUILDDIR/bin/methods -o Debug::NoLocking=true" DEBUG="" #DEBUG="-o Debug::pkgCacheGen=true" #DEBUG="-o Debug::pkgAcquire=true" @@ -115,12 +115,18 @@ cd $WORKDIR rm -fr etc var rm -f home ln -s /home home -mkdir -p etc/apt/preferences.d etc/apt/trusted.gpg.d var/cache/apt/archives/partial var/lib/apt/lists/partial var/lib/dpkg +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 ".";' > apt_config +export APT_CONFIG=`pwd`/apt_config + echo "===== uncompressed indexes =====" # first attempt should fail, no trusted GPG key check_update -- cgit v1.2.3 From 08abac551a4bd4a26be4935d6f0707855f166da0 Mon Sep 17 00:00:00 2001 From: "martin@piware.de" <> Date: Thu, 17 Jun 2010 13:18:19 +0200 Subject: test-indexes.sh: Actually test for non/pre-existing indexes in compressed mode --- test/test-indexes.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/test/test-indexes.sh b/test/test-indexes.sh index 452b0cc7a..514e82534 100755 --- a/test/test-indexes.sh +++ b/test/test-indexes.sh @@ -32,6 +32,7 @@ check_update() { 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 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}') @@ -39,6 +40,7 @@ check_update() { 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 echo "--- apt-get update $@ (with trusted keys)" + find var/lib/apt/lists/ -type f | xargs -r rm $APT_GET "$@" update } @@ -144,7 +146,6 @@ $APT_GET -o Acquire::PDiffs=true update check_indexes echo "===== compressed indexes =====" -find var/lib/apt/lists/ -type f | xargs -r rm check_update -o Acquire::GzipIndexes=true check_indexes compressed check_cache @@ -152,11 +153,11 @@ check_install check_get_source echo "--- apt-get update with preexisting indexes" -check_update -o Acquire::GzipIndexes=true +$APT_GET -o Acquire::GzipIndexes=true update check_indexes echo "--- apt-get update with preexisting indexes and pdiff mode" -check_update -o Acquire::GzipIndexes=true -o Acquire::PDiffs=true update +$APT_GET -o Acquire::GzipIndexes=true -o Acquire::PDiffs=true update check_indexes echo "===== ALL TESTS PASSED =====" -- cgit v1.2.3 From 321798bedb529edf914f2c884e4d38363c908315 Mon Sep 17 00:00:00 2001 From: "martin@piware.de" <> Date: Thu, 17 Jun 2010 13:35:23 +0200 Subject: test-indexes.sh: fix check_indexes call in compressed mode --- test/test-indexes.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/test-indexes.sh b/test/test-indexes.sh index 514e82534..2c6ccfedf 100755 --- a/test/test-indexes.sh +++ b/test/test-indexes.sh @@ -154,10 +154,10 @@ check_get_source echo "--- apt-get update with preexisting indexes" $APT_GET -o Acquire::GzipIndexes=true update -check_indexes +check_indexes compressed echo "--- apt-get update with preexisting indexes and pdiff mode" $APT_GET -o Acquire::GzipIndexes=true -o Acquire::PDiffs=true update -check_indexes +check_indexes compressed echo "===== ALL TESTS PASSED =====" -- cgit v1.2.3 From eee5ab3cb4a20a26468e6a0dc78ca0706b2b4ec6 Mon Sep 17 00:00:00 2001 From: "martin@piware.de" <> Date: Thu, 17 Jun 2010 13:38:42 +0200 Subject: test-indexes.sh: Just for paranoia, test that apt-cache is still working after apt-get update with previously existing indexes --- test/test-indexes.sh | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'test') diff --git a/test/test-indexes.sh b/test/test-indexes.sh index 2c6ccfedf..84413d2dd 100755 --- a/test/test-indexes.sh +++ b/test/test-indexes.sh @@ -140,10 +140,12 @@ 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 =====" check_update -o Acquire::GzipIndexes=true @@ -155,9 +157,11 @@ 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 "===== ALL TESTS PASSED =====" -- cgit v1.2.3 From 0311890f60a1075222acf066a6405cb452b475d0 Mon Sep 17 00:00:00 2001 From: "martin@piware.de" <> Date: Thu, 17 Jun 2010 13:41:48 +0200 Subject: test-indexes.sh: Also test compressed index mode with apt.conf.d file --- test/test-indexes.sh | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/test-indexes.sh b/test/test-indexes.sh index 84413d2dd..ce2c36481 100755 --- a/test/test-indexes.sh +++ b/test/test-indexes.sh @@ -33,12 +33,16 @@ check_update() { 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 @@ -130,7 +134,6 @@ echo 'RootDir ".";' > apt_config export APT_CONFIG=`pwd`/apt_config echo "===== uncompressed indexes =====" -# first attempt should fail, no trusted GPG key check_update check_indexes check_cache @@ -147,7 +150,7 @@ $APT_GET -o Acquire::PDiffs=true update check_indexes check_cache -echo "===== compressed indexes =====" +echo "===== compressed indexes (CLI option) =====" check_update -o Acquire::GzipIndexes=true check_indexes compressed check_cache @@ -164,4 +167,26 @@ $APT_GET -o Acquire::GzipIndexes=true -o Acquire::PDiffs=true update check_indexes compressed check_cache +echo "===== compressed indexes (apt.conf.d option) =====" +cat < 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 + echo "===== ALL TESTS PASSED =====" -- cgit v1.2.3 From 594bfe6a9f11e393469522fdea54444488d6f8a3 Mon Sep 17 00:00:00 2001 From: "martin@piware.de" <> Date: Thu, 17 Jun 2010 13:58:39 +0200 Subject: test-indexes.sh: quiesce apt-get source; we know that we cannot verify package signatures --- test/test-indexes.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/test-indexes.sh b/test/test-indexes.sh index ce2c36481..916532183 100755 --- a/test/test-indexes.sh +++ b/test/test-indexes.sh @@ -103,7 +103,8 @@ check_install() { # test apt-get source check_get_source() { echo "--- apt-get source" - $APT_GET source $TEST_PKG + # 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* -- cgit v1.2.3 From c19625e7dc99caea960c91b1ce6dc999ec6f4ed4 Mon Sep 17 00:00:00 2001 From: "martin@piware.de" <> Date: Thu, 24 Jun 2010 21:27:59 +0200 Subject: test-indexes.sh: Test handling of local file:// archives --- test/test-indexes.sh | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/test/test-indexes.sh b/test/test-indexes.sh index 916532183..b0ae4dcd4 100755 --- a/test/test-indexes.sh +++ b/test/test-indexes.sh @@ -21,6 +21,7 @@ DEBUG="" #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 @@ -79,9 +80,9 @@ check_cache() { # again (with cache) $APT_CACHE show $TEST_PKG | grep -q ^Version: rm var/cache/apt/*.bin - $APT_CACHE policy $TEST_PKG | grep -q '500 http://' + $APT_CACHE policy $TEST_PKG | egrep -q '500 (http://|file:/)' # again (with cache) - $APT_CACHE policy $TEST_PKG | grep -q '500 http://' + $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 @@ -131,7 +132,7 @@ 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 ".";' > apt_config +echo "RootDir \"$WORKDIR\";" > apt_config export APT_CONFIG=`pwd`/apt_config echo "===== uncompressed indexes =====" @@ -190,4 +191,34 @@ $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 +check_indexes compressed +check_cache +check_get_source + echo "===== ALL TESTS PASSED =====" -- cgit v1.2.3 From 9a3a552a2859040ffc587a4e5d8d96311038e680 Mon Sep 17 00:00:00 2001 From: "martin@piware.de" <> Date: Thu, 24 Jun 2010 22:59:48 +0200 Subject: test-indexes.sh: EXFAIL: file:/ URIs currently decompress even with the GzipIndexes option; not a big deal for now --- test/test-indexes.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/test-indexes.sh b/test/test-indexes.sh index b0ae4dcd4..dad3e1fb2 100755 --- a/test/test-indexes.sh +++ b/test/test-indexes.sh @@ -217,7 +217,9 @@ check_get_source echo "==== compressed indexes from local file:// archive ====" echo "--- apt-get update" $APT_GET -o Acquire::GzipIndexes=true update -check_indexes compressed +# EXFAIL: file:/ URIs currently decompress even with above option +#check_indexes compressed +check_indexes check_cache check_get_source -- cgit v1.2.3 From c4ba7c44ff03d67ff982bbab26dc48d796041e02 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 25 Jun 2010 19:16:12 +0200 Subject: add a simple stack handling to be able to delay error handling --- test/libapt/globalerror_test.cc | 77 +++++++++++++++++++++++++++++++++++++++++ test/libapt/makefile | 10 ++++-- 2 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 test/libapt/globalerror_test.cc (limited to 'test') 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 + +#include "assert.h" +#include + +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 index ee3401b35..50058262e 100644 --- a/test/libapt/makefile +++ b/test/libapt/makefile @@ -30,13 +30,19 @@ SOURCE = getlistoffilesindir_test.cc include $(PROGRAM_H) # Program for testing CommandLine reconstruction -PROGRAM = commandlineasstring${BASENAME} +PROGRAM = CommandlineAsString${BASENAME} SLIBS = -lapt-pkg SOURCE = commandlineasstring_test.cc include $(PROGRAM_H) # Program for testing debians version comparing -PROGRAM = compareversion${BASENAME} +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) -- cgit v1.2.3 From af5cf9299fb60c255d4c1c30ca9a97e7e6acfef0 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 5 Jul 2010 12:12:40 +0200 Subject: extends the ParseDepends testcase to have a look also at the Wildcards --- test/libapt/parsedepends_test.cc | 68 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) (limited to 'test') diff --git a/test/libapt/parsedepends_test.cc b/test/libapt/parsedepends_test.cc index b7befa561..7b496878d 100644 --- a/test/libapt/parsedepends_test.cc +++ b/test/libapt/parsedepends_test.cc @@ -21,6 +21,12 @@ int main(int argc,char *argv[]) { "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), " ; @@ -100,6 +106,68 @@ test: 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); -- cgit v1.2.3 From 8d87641558a7e0ee53b03e325614532aa686e01b Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 25 Jul 2010 19:51:53 +0200 Subject: - prefer non-virtual packages in FindPreferredPkg (Closes: #590041) * test/integration/*: - add with bug#590041 testcase a small test "framework" --- test/integration/framework | 170 +++++++++++++++++++++ test/integration/run-tests | 8 + .../test-bug-590041-prefer-non-virtual-packages | 51 +++++++ 3 files changed, 229 insertions(+) create mode 100644 test/integration/framework create mode 100755 test/integration/run-tests create mode 100755 test/integration/test-bug-590041-prefer-non-virtual-packages (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework new file mode 100644 index 000000000..97dce1e19 --- /dev/null +++ b/test/integration/framework @@ -0,0 +1,170 @@ +#!/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 +msginfo() { true; } +msgdebug() { true; } +msgninfo() { true; } +msgndebug() { true; } +msgdone() { if [ "$1" = "debug" -o "$1" = "info" ]; then true; else echo "${CDONE}DONE${CNORMAL}" >&2; fi } + +runapt() { + msgdebug "Executing: ${CCMD}$*${CDEBUG} " + APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$* +} +aptconfig() { runapt apt-config $*; } +aptcache() { runapt apt-cache $*; } +aptget() { runapt apt-get $*; } +aptftparchive() { runapt apt-ftparchive $*; } + +setupenvironment() { + local TMPWORKINGDIRECTORY=$(mktemp -d) + msgninfo "Preparing environment for ${CCMD}$0${CINFO} in ${TMPWORKINGDIRECTORY}… " + BUILDDIRECTORY=$(readlink -f $(dirname $0)/../../build/bin) + test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first" + local OLDWORKINGDIRECTORY=$(pwd) + trap "cd /; rm -rf $TMPWORKINGDIRECTORY; cd $OLDWORKINGDIRECTORY" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM + cd $TMPWORKINGDIRECTORY + mkdir rootdir aptarchive + cd rootdir + mkdir -p etc/apt/apt.conf.d etc/apt/sources.list.d etc/apt/trusted.gpg.d etc/apt/preferences.d var/cache var/lib/dpkg + mkdir -p var/cache/apt/archives/partial var/lib/apt/lists/partial + touch var/lib/dpkg/status + mkdir -p usr/lib/apt + ln -s ${BUILDDIRECTORY}/methods usr/lib/apt/methods + cd .. + echo "RootDir \"${TMPWORKINGDIRECTORY}/rootdir\";" > aptconfig.conf + echo "Debug::NoLocking \"true\";" >> aptconfig.conf + echo "APT::Get::Show-User-Simulation-Note \"false\";" >> 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 +} + +buildflataptarchive() { + msginfo "Build APT archive for ${CCMD}$0${CINFO}…" + cd aptarchive + APTARCHIVE=$(readlink -f .) + 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 + cd .. + aptftparchive release . > Release +} + +setupflataptarchive() { + buildflataptarchive + 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 + aptget update -qq +} + +diff() { + 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 +} + +testequal() { + local COMPAREFILE=$(mktemp) + echo "$1" > $COMPAREFILE + shift + msgtest "Test for equality of" "$*" + $* 2>&1 | diff $COMPAREFILE - && msgpass || msgfail +} + +testshowvirtual() { + local VIRTUAL="E: Can't select versions from package '$1' as it purely virtual" + local PACKAGE="$1" + shift + while [ -n "$1" ]; do + VIRTUAL="${VIRTUAL} +E: 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} +E: 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 $PACKAGE 2>&1 | diff $COMPAREFILE - && msgpass || msgfail +} + +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/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/test-bug-590041-prefer-non-virtual-packages b/test/integration/test-bug-590041-prefer-non-virtual-packages new file mode 100755 index 000000000..aa9e487e1 --- /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 +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 +Priority: extra +SHA1: b9396fdd2e3e8d1d4ba9e74e7346075852d85666 +SHA256: f17decaa28d1db3eeb9eb17bebe50d437d293a509bcdd7cdfd3ebb56f5de3cea +Section: oldlibs +Size: 44168 +" + +cat <<-EOF >aptarchive/Packages +$pkglibc6 +$pkglibdb1 +EOF + +setupflataptarchive + +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 -- cgit v1.2.3 From f6bfb482a32543deed925b127c972a7c258df4a1 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 25 Jul 2010 20:04:16 +0200 Subject: Strip the .sh extension from the libapt testrunner and make it a bit more robust against calling from outside --- test/libapt/run-tests | 61 ++++++++++++++++++++++++++++++++++++++++++++++++ test/libapt/run-tests.sh | 60 ----------------------------------------------- 2 files changed, 61 insertions(+), 60 deletions(-) create mode 100755 test/libapt/run-tests delete mode 100755 test/libapt/run-tests.sh (limited to 'test') diff --git a/test/libapt/run-tests b/test/libapt/run-tests new file mode 100755 index 000000000..0f55f7386 --- /dev/null +++ b/test/libapt/run-tests @@ -0,0 +1,61 @@ +#!/bin/sh +set -e + +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 + name=$(basename ${testapp}) + tmppath="" + + if [ $name = "GetListOfFilesInDir${EXT}" ]; then + # TODO: very-low: move env creation to the actual test-app + echo "Prepare Testarea for \033[1;35m$name\033[0m ..." + tmppath=$(mktemp -d) + touch "${tmppath}/anormalfile" \ + "${tmppath}/01yet-anothernormalfile" \ + "${tmppath}/anormalapt.conf" \ + "${tmppath}/01yet-anotherapt.conf" \ + "${tmppath}/anormalapt.list" \ + "${tmppath}/01yet-anotherapt.list" \ + "${tmppath}/wrongextension.wron" \ + "${tmppath}/wrong-extension.wron" \ + "${tmppath}/strangefile." \ + "${tmppath}/s.t.r.a.n.g.e.f.i.l.e" \ + "${tmppath}/.hiddenfile" \ + "${tmppath}/.hiddenfile.conf" \ + "${tmppath}/.hiddenfile.list" \ + "${tmppath}/multi..dot" \ + "${tmppath}/multi.dot.conf" \ + "${tmppath}/multi.dot.list" \ + "${tmppath}/disabledfile.disabled" \ + "${tmppath}/disabledfile.conf.disabled" \ + "${tmppath}/disabledfile.list.disabled" \ + "${tmppath}/invälid.conf" \ + "${tmppath}/invalíd" \ + "${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 ... " + LD_LIBRARY_PATH=${LDPATH} ${testapp} ${tmppath} && echo "\033[1;32mOKAY\033[0m" || echo "\033[1;31mFAILED\033[0m" + + if [ -n "$tmppath" -a -d "$tmppath" ]; then + echo "Cleanup Testarea after \033[1;35m$name\033[0m ..." + rm -rf "$tmppath" + fi + +done diff --git a/test/libapt/run-tests.sh b/test/libapt/run-tests.sh deleted file mode 100755 index cb7769e4a..000000000 --- a/test/libapt/run-tests.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh -set -e - -echo "Compiling the tests ..." -test -d '../../build/obj/test/libapt/' || mkdir -p '../../build/obj/test/libapt/' -make -echo "Running all testcases ..." -LDPATH=$(pwd)/../../build/bin -EXT="_libapt_test" -for testapp in $(ls ${LDPATH}/*$EXT) -do - name=$(basename ${testapp}) - tmppath="" - - if [ $name = "GetListOfFilesInDir${EXT}" ]; then - # TODO: very-low: move env creation to the actual test-app - echo "Prepare Testarea for \033[1;35m$name\033[0m ..." - tmppath=$(mktemp -d) - touch "${tmppath}/anormalfile" \ - "${tmppath}/01yet-anothernormalfile" \ - "${tmppath}/anormalapt.conf" \ - "${tmppath}/01yet-anotherapt.conf" \ - "${tmppath}/anormalapt.list" \ - "${tmppath}/01yet-anotherapt.list" \ - "${tmppath}/wrongextension.wron" \ - "${tmppath}/wrong-extension.wron" \ - "${tmppath}/strangefile." \ - "${tmppath}/s.t.r.a.n.g.e.f.i.l.e" \ - "${tmppath}/.hiddenfile" \ - "${tmppath}/.hiddenfile.conf" \ - "${tmppath}/.hiddenfile.list" \ - "${tmppath}/multi..dot" \ - "${tmppath}/multi.dot.conf" \ - "${tmppath}/multi.dot.list" \ - "${tmppath}/disabledfile.disabled" \ - "${tmppath}/disabledfile.conf.disabled" \ - "${tmppath}/disabledfile.list.disabled" \ - "${tmppath}/invälid.conf" \ - "${tmppath}/invalíd" \ - "${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 ... " - LD_LIBRARY_PATH=${LDPATH} ${testapp} ${tmppath} && echo "\033[1;32mOKAY\033[0m" || echo "\033[1;31mFAILED\033[0m" - - if [ -n "$tmppath" -a -d "$tmppath" ]; then - echo "Cleanup Testarea after \033[1;35m$name\033[0m ..." - rm -rf "$tmppath" - fi - -done -- cgit v1.2.3 From 8f8169ac464249c8a2b35b13f9c5278d4c9e5a46 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 28 Jul 2010 21:47:42 +0200 Subject: auto-install Packages and status file of the testcase --- test/integration/framework | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index 97dce1e19..7e0d4b902 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -45,8 +45,9 @@ aptftparchive() { runapt apt-ftparchive $*; } setupenvironment() { local TMPWORKINGDIRECTORY=$(mktemp -d) + local TESTDIR=$(readlink -f $(dirname $0)) msgninfo "Preparing environment for ${CCMD}$0${CINFO} in ${TMPWORKINGDIRECTORY}… " - BUILDDIRECTORY=$(readlink -f $(dirname $0)/../../build/bin) + BUILDDIRECTORY="${TESTDIR}/../../build/bin" test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first" local OLDWORKINGDIRECTORY=$(pwd) trap "cd /; rm -rf $TMPWORKINGDIRECTORY; cd $OLDWORKINGDIRECTORY" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM @@ -55,10 +56,21 @@ setupenvironment() { cd rootdir mkdir -p etc/apt/apt.conf.d etc/apt/sources.list.d etc/apt/trusted.gpg.d etc/apt/preferences.d var/cache var/lib/dpkg mkdir -p var/cache/apt/archives/partial var/lib/apt/lists/partial - touch var/lib/dpkg/status + local STATUSFILE=$(echo "$(basename $0)" | sed 's/^test-/status-/') + if [ -f "${TESTDIR}/${STATUSFILE}" ]; then + cp "${TESTDIR}/${STATUSFILE}" var/lib/dpkg/status + else + touch var/lib/dpkg/status + fi mkdir -p usr/lib/apt ln -s ${BUILDDIRECTORY}/methods usr/lib/apt/methods cd .. + local PACKAGESFILE=$(echo "$(basename $0)" | sed 's/^test-/Packages-/') + if [ -f "${TESTDIR}/${PACKAGESFILE}" ]; then + cp "${TESTDIR}/${PACKAGESFILE}" aptarchive/Packages + else + touch var/lib/dpkg/status + fi echo "RootDir \"${TMPWORKINGDIRECTORY}/rootdir\";" > aptconfig.conf echo "Debug::NoLocking \"true\";" >> aptconfig.conf echo "APT::Get::Show-User-Simulation-Note \"false\";" >> aptconfig.conf -- cgit v1.2.3 From 966640d8fd2feac29909a22415955b3ce5779dcd Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 28 Jul 2010 21:53:17 +0200 Subject: * apt-pkg/orderlist.cc: - try to install another or-group member in DepRemove before breaking the or group (Closes: #590438) --- ...g-590438-broken-provides-thanks-to-remove-order | 35 ++++++++ ...g-590438-broken-provides-thanks-to-remove-order | 97 ++++++++++++++++++++++ ...g-590438-broken-provides-thanks-to-remove-order | 59 +++++++++++++ 3 files changed, 191 insertions(+) create mode 100644 test/integration/Packages-bug-590438-broken-provides-thanks-to-remove-order create mode 100644 test/integration/status-bug-590438-broken-provides-thanks-to-remove-order create mode 100755 test/integration/test-bug-590438-broken-provides-thanks-to-remove-order (limited to 'test') 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..16bf008f6 --- /dev/null +++ b/test/integration/Packages-bug-590438-broken-provides-thanks-to-remove-order @@ -0,0 +1,35 @@ +Package: gawk +Priority: optional +Section: interpreters +Installed-Size: 2084 +Maintainer: Arthur Loiret +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 +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 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 +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 +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 +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 +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 +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/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..bb10c4f73 --- /dev/null +++ b/test/integration/test-bug-590438-broken-provides-thanks-to-remove-order @@ -0,0 +1,59 @@ +#!/bin/sh +set -e + +local TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework + +setupenvironment +configarchitecture "i386" +setupflataptarchive + +pkgbasefile="Package: base-files +Status: install ok installed +Essential: yes +Priority: required +Section: admin +Installed-Size: 472 +Maintainer: Santiago Vila +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" + +predependstest() { +# 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') +} + +predependstest "gawk | mawk" +predependstest "mawk | gawk" + +predependstest "aawk | mawk | gawk" +predependstest "aawk | gawk | mawk" + +predependstest "gawk | awk" +predependstest "aawk | gawk | awk" + +predependstest "mawk | awk" + +predependstest "awk | gawk" +predependstest "awk | gawk | aawk" + +predependstest "awk | mawk" + +predependstest "aawk | awk" +predependstest "awk | aawk" + +predependstest "awk" + +# aptget install gawk mawk- -sqq -o Debug::pkgOrderList=1 #-o Debug::pkgPackageManager=1 -- cgit v1.2.3 From 685625bd308f62a382aaf61f1621a18b9441edfd Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 29 Jul 2010 12:26:26 +0200 Subject: configure also the replacement before remove by adding Immediate flag --- ...g-590438-broken-provides-thanks-to-remove-order | 32 ++++++++++ test/integration/framework | 16 +++++ ...g-590438-broken-provides-thanks-to-remove-order | 69 +++++++++++++++++----- 3 files changed, 102 insertions(+), 15 deletions(-) (limited to 'test') 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 index 16bf008f6..75a769e1a 100644 --- a/test/integration/Packages-bug-590438-broken-provides-thanks-to-remove-order +++ b/test/integration/Packages-bug-590438-broken-provides-thanks-to-remove-order @@ -33,3 +33,35 @@ 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 +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 +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/framework b/test/integration/framework index 7e0d4b902..7b323fdb5 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -149,6 +149,22 @@ testequal() { $* 2>&1 | diff $COMPAREFILE - && msgpass || msgfail } +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 + (diff $COMPAREFILE1 $COMPAREAGAINST 1> /dev/null || + diff $COMPAREFILE2 $COMPAREAGAINST 1> /dev/null) && msgpass || + ( echo "\n${CINFO}Diff against OR 1${CNORMAL}" "$(diff $COMPAREFILE1 $COMPAREAGAINST)" \ + "\n${CINFO}Diff against OR 2${CNORMAL}" "$(diff $COMPAREFILE2 $COMPAREAGAINST)" && + msgfail ) +} + testshowvirtual() { local VIRTUAL="E: Can't select versions from package '$1' as it purely virtual" local PACKAGE="$1" 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 index bb10c4f73..17ce50295 100755 --- a/test/integration/test-bug-590438-broken-provides-thanks-to-remove-order +++ b/test/integration/test-bug-590438-broken-provides-thanks-to-remove-order @@ -24,7 +24,7 @@ Size: 73986 MD5sum: 8489687ce10e656babd467c9ee389349 Description-de: Verschiedene Dateien für das Basis-System von Debian" -predependstest() { +predependsgawk() { # rm rootdir/var/cache/apt/*.bin cp $TESTDIR/$(echo "$(basename $0)" | sed 's/test-/status-/') rootdir/var/lib/dpkg/status echo "$pkgbasefile @@ -35,25 +35,64 @@ 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') } -predependstest "gawk | mawk" -predependstest "mawk | gawk" +predependsgawk "gawk | mawk" +predependsgawk "mawk | gawk" -predependstest "aawk | mawk | gawk" -predependstest "aawk | gawk | mawk" +predependsgawk "aawk | mawk | gawk" +predependsgawk "aawk | gawk | mawk" -predependstest "gawk | awk" -predependstest "aawk | gawk | awk" +predependsgawk "gawk | awk" +predependsgawk "aawk | gawk | awk" -predependstest "mawk | awk" +predependsgawk "mawk | awk" -predependstest "awk | gawk" -predependstest "awk | gawk | aawk" +predependsgawk "awk | gawk" +predependsgawk "awk | gawk | aawk" -predependstest "awk | mawk" +predependsgawk "awk | mawk" -predependstest "aawk | awk" -predependstest "awk | aawk" +predependsgawk "aawk | awk" +predependsgawk "awk | aawk" -predependstest "awk" +predependsgawk "awk" -# aptget install gawk mawk- -sqq -o Debug::pkgOrderList=1 #-o Debug::pkgPackageManager=1 +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 -- cgit v1.2.3 From 8e86786b2f0002a7512f97d0f9b5ef3e4794e26e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 29 Jul 2010 15:09:18 +0200 Subject: remove the temporary compare files we create --- test/integration/framework | 3 +++ 1 file changed, 3 insertions(+) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index 7b323fdb5..b4e9302e8 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -147,6 +147,7 @@ testequal() { shift msgtest "Test for equality of" "$*" $* 2>&1 | diff $COMPAREFILE - && msgpass || msgfail + rm $COMPAREFILE } testequalor2() { @@ -163,6 +164,7 @@ testequalor2() { ( echo "\n${CINFO}Diff against OR 1${CNORMAL}" "$(diff $COMPAREFILE1 $COMPAREAGAINST)" \ "\n${CINFO}Diff against OR 2${CNORMAL}" "$(diff $COMPAREFILE2 $COMPAREAGAINST)" && msgfail ) + rm $COMPAREFILE1 $COMPAREFILE2 $COMPAREAGAINST } testshowvirtual() { @@ -183,6 +185,7 @@ E: No packages found" eval `apt-config shell ARCH APT::Architecture` echo "$VIRTUAL" | sed -e "s/:$ARCH//" -e 's/:all//' > $COMPAREFILE aptcache show $PACKAGE 2>&1 | diff $COMPAREFILE - && msgpass || msgfail + rm $COMPAREFILE } testnopackage() { -- cgit v1.2.3 From 7d0627b62aa24b970f18d52be8576c314556b680 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 14 Aug 2010 00:25:57 +0200 Subject: add a small script to automate the task of creating Packages and status files for tests with "real" problems --- test/integration/create-test-data | 33 +++++++++++++++++++++++++++++++++ test/integration/framework | 6 +++++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100755 test/integration/create-test-data (limited to 'test') 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 index b4e9302e8..f01bb989b 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -36,7 +36,11 @@ msgdone() { if [ "$1" = "debug" -o "$1" = "info" ]; then true; else echo "${CDON runapt() { msgdebug "Executing: ${CCMD}$*${CDEBUG} " - APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$* + 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 $*; } -- cgit v1.2.3 From 4bec02c237e8e218bc7d4bcf7142e0450480138b Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 14 Aug 2010 01:18:11 +0200 Subject: fix testcase framework to test correctly for virtual packages --- test/integration/framework | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index f01bb989b..5e6c5427f 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -73,7 +73,7 @@ setupenvironment() { if [ -f "${TESTDIR}/${PACKAGESFILE}" ]; then cp "${TESTDIR}/${PACKAGESFILE}" aptarchive/Packages else - touch var/lib/dpkg/status + touch aptarchive/Packages fi echo "RootDir \"${TMPWORKINGDIRECTORY}/rootdir\";" > aptconfig.conf echo "Debug::NoLocking \"true\";" >> aptconfig.conf @@ -172,18 +172,18 @@ testequalor2() { } testshowvirtual() { - local VIRTUAL="E: Can't select versions from package '$1' as it purely virtual" + local VIRTUAL="N: Can't select versions from package '$1' as it purely virtual" local PACKAGE="$1" shift while [ -n "$1" ]; do VIRTUAL="${VIRTUAL} -E: Can't select versions from package '$1' as it purely 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} -E: No packages found" +N: No packages found" local COMPAREFILE=$(mktemp) local ARCH=$(dpkg-architecture -qDEB_HOST_ARCH_CPU) eval `apt-config shell ARCH APT::Architecture` -- cgit v1.2.3 From f107544e43fc3d262d9df5bde6eb430b7008825f Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 15 Aug 2010 19:12:35 +0200 Subject: add finally my very small testcase for the conkeror problem resulting in the FixByInstall code we currently "experiment" with --- test/integration/Packages-bug-591882-conkeror | 1787 +++++++++++++++++++++++++ test/integration/status-bug-591882-conkeror | 1357 +++++++++++++++++++ test/integration/test-bug-591882-conkeror | 75 ++ 3 files changed, 3219 insertions(+) create mode 100644 test/integration/Packages-bug-591882-conkeror create mode 100644 test/integration/status-bug-591882-conkeror create mode 100755 test/integration/test-bug-591882-conkeror (limited to 'test') 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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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) +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ý +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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/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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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) +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ý +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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-bug-591882-conkeror b/test/integration/test-bug-591882-conkeror new file mode 100755 index 000000000..cba7e7665 --- /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" +setupflataptarchive + +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 -- cgit v1.2.3 From ce9864a8bfdfc7f5380b3335a6a14f305d372d45 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 18 Aug 2010 12:56:57 +0200 Subject: implement the first round of automated dummy package building and archive building --- test/integration/framework | 129 +++++++++++++++++++-- .../test-bug-590041-prefer-non-virtual-packages | 2 +- ...g-590438-broken-provides-thanks-to-remove-order | 2 +- test/integration/test-bug-591882-conkeror | 2 +- 4 files changed, 125 insertions(+), 10 deletions(-) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index 5e6c5427f..e3d77c5cd 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -92,10 +92,124 @@ configarchitecture() { done } -buildflataptarchive() { - msginfo "Build APT archive for ${CCMD}$0${CINFO}…" +buildsimplenativepackage() { + local NAME="$1" + local ARCH="$2" + local VERSION="$3" + local RELEASE="${4:-unstable}" + local DEPENDENCIES="$5" + local DESCRIPTION="$6" + msgndebug "Build package ${CCMD}${NAME}=${VERSION}/${RELEASE}${CDEBUG}… " + 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 $(date -R)" > debian/changelog) + test -e debian/control || (echo "Source: $NAME +Section: admin +Priority: optional +Maintainer: Joe Sixpack +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 + dpkg-buildpackage -uc -us -a$ARCH > /dev/null 2> /dev/null + cd - > /dev/null + rm -rf $BUILDDIR + msgdone "debug" +} + +buildaptarchive() { + msgninfo "Build APT archive for ${CCMD}$0${CINFO} based on " + 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' ' ')" + 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 '"; +}; +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 + if [ -z "$1" ]; then + echo -n 'tree "dists/unstable" { + Architectures "' >> ftparchive.conf + echo -n "$ARCHS" >> ftparchive.conf + echo 'source"; + Sections "main"; +};' >> ftparchive.conf + fi +} + +buildaptftparchivedirectorystructure() { + 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#')" + for arch in $ARCHS; do + mkdir -p dists/unstable/main/binary-${arch} + done + mkdir -p dists/unstable/main/source + mkdir -p dists/unstable/main/i18n +} + +buildaptarchivefromincoming() { + msginfo "incoming packages…" + cd aptarchive + [ -e pool ] || ln -s ../incoming pool + [ -e ftparchive.conf ] || createaptftparchiveconfig + [ -e dists ] || buildaptftparchivedirectorystructure + aptftparchive -qq generate ftparchive.conf + for dir in $(find ./dists -mindepth 1 -maxdepth 1 -type d); do + aptftparchive -qq release $dir > $dir/Release + sed -i -e '/0 Release$/ d' $dir/Release # remove the self reference + done + cd - > /dev/null + msgdone "info" +} + +buildaptarchivefromfiles() { + msginfo "prebuild files…" cd aptarchive - APTARCHIVE=$(readlink -f .) if [ -f Packages ]; then msgninfo "\tPackages file… " cat Packages | gzip > Packages.gz @@ -110,13 +224,14 @@ buildflataptarchive() { cat Sources | lzma > Sources.lzma msgdone "info" fi + aptftparchive -qq release . > Release + sed -i -e '/0 Release$/ d' Release # remove the self reference cd .. - aptftparchive release . > Release } -setupflataptarchive() { - buildflataptarchive - APTARCHIVE=$(readlink -f ./aptarchive) +setupaptarchive() { + buildaptarchive + 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 diff --git a/test/integration/test-bug-590041-prefer-non-virtual-packages b/test/integration/test-bug-590041-prefer-non-virtual-packages index aa9e487e1..3e2693f85 100755 --- a/test/integration/test-bug-590041-prefer-non-virtual-packages +++ b/test/integration/test-bug-590041-prefer-non-virtual-packages @@ -41,7 +41,7 @@ $pkglibc6 $pkglibdb1 EOF -setupflataptarchive +setupaptarchive testshowvirtual libc6:i386 testequal "$pkglibc6" aptcache show libc6:armel 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 index 17ce50295..9fd7741f4 100755 --- a/test/integration/test-bug-590438-broken-provides-thanks-to-remove-order +++ b/test/integration/test-bug-590438-broken-provides-thanks-to-remove-order @@ -6,7 +6,7 @@ local TESTDIR=$(readlink -f $(dirname $0)) setupenvironment configarchitecture "i386" -setupflataptarchive +setupaptarchive pkgbasefile="Package: base-files Status: install ok installed diff --git a/test/integration/test-bug-591882-conkeror b/test/integration/test-bug-591882-conkeror index cba7e7665..b1dbb3a0a 100755 --- a/test/integration/test-bug-591882-conkeror +++ b/test/integration/test-bug-591882-conkeror @@ -5,7 +5,7 @@ local TESTDIR=$(readlink -f $(dirname $0)) . $TESTDIR/framework setupenvironment configarchitecture "i386" -setupflataptarchive +setupaptarchive UPGRADEFAIL="Reading package lists... Building dependency tree... -- cgit v1.2.3 From fc89263e0dc1eceb016d52f2007a458b2dc5afaf Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 18 Aug 2010 13:20:16 +0200 Subject: add proper MSGLEVEL handling by overriding methods dynamic --- test/integration/framework | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index e3d77c5cd..a4c857f17 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -28,11 +28,37 @@ msgskip() { echo "${CWARNING}SKIP${CNORMAL}" >&2; } msgfail() { echo "${CFAIL}FAIL${CNORMAL}" >&2; } # enable / disable Debugging -msginfo() { true; } -msgdebug() { true; } -msgninfo() { true; } -msgndebug() { true; } -msgdone() { if [ "$1" = "debug" -o "$1" = "info" ]; then true; else echo "${CDONE}DONE${CNORMAL}" >&2; fi } +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} " -- cgit v1.2.3 From b7899b004710a0050407d4c6cdfc792110dd03cd Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 18 Aug 2010 18:21:34 +0200 Subject: extend the magic which creates the test archive by using FileLists to ship the build packages in the correct distribution and section --- test/integration/framework | 119 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 91 insertions(+), 28 deletions(-) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index a4c857f17..66a0b5dc7 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -125,26 +125,33 @@ buildsimplenativepackage() { 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 msgndebug "Build package ${CCMD}${NAME}=${VERSION}/${RELEASE}${CDEBUG}… " 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 + 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 $(date -R)" > debian/changelog) - test -e debian/control || (echo "Source: $NAME -Section: admin + -- Joe Sixpack $(date -R)" > debian/changelog + test -e debian/control || echo "Source: $NAME +Section: $SECTION Priority: optional Maintainer: Joe Sixpack Build-Depends: debhelper (>= 7) Standards-Version: 3.9.1 Package: $NAME -Architecture: $ARCH" > debian/control) +Architecture: $ARCH" > debian/control test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> debian/control if [ -z "$DESCRIPTION" ]; then echo "Description: an autogenerated dummy ${NAME}=${VERSION}/${RELEASE} @@ -154,17 +161,24 @@ Architecture: $ARCH" > 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/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 - dpkg-buildpackage -uc -us -a$ARCH > /dev/null 2> /dev/null + 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}" >> ./incoming/${RELEASE}.${DISTSECTION}.pkglist + done + for SRC in $SRCS; do + echo "pool/${SRC}" >> ./incoming/${RELEASE}.${DISTSECTION}.srclist + done rm -rf $BUILDDIR msgdone "debug" } buildaptarchive() { - msgninfo "Build APT archive for ${CCMD}$0${CINFO} based on " if [ -d incoming ]; then buildaptarchivefromincoming $* else @@ -181,6 +195,14 @@ createaptftparchiveconfig() { 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/"; @@ -199,42 +221,61 @@ APT { }; }; };' >> ftparchive.conf - if [ -z "$1" ]; then - echo -n 'tree "dists/unstable" { + 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 'source"; - Sections "main"; + 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 - fi + done + less ftparchive.conf } buildaptftparchivedirectorystructure() { - 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#')" - for arch in $ARCHS; do - mkdir -p dists/unstable/main/binary-${arch} + 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 - mkdir -p dists/unstable/main/source - mkdir -p dists/unstable/main/i18n } buildaptarchivefromincoming() { - msginfo "incoming packages…" + msginfo "Build APT archive for ${CCMD}$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 > $dir/Release - sed -i -e '/0 Release$/ d' $dir/Release # remove the self reference + aptftparchive -qq release $dir | sed -e '/0 Release$/ d' > $dir/Release # remove the self reference done cd - > /dev/null msgdone "info" } buildaptarchivefromfiles() { - msginfo "prebuild files…" + msginfo "Build APT archive for ${CCMD}$0${CINFO} based on prebuild files…" cd aptarchive if [ -f Packages ]; then msgninfo "\tPackages file… " @@ -250,13 +291,26 @@ buildaptarchivefromfiles() { cat Sources | lzma > Sources.lzma msgdone "info" fi - aptftparchive -qq release . > Release - sed -i -e '/0 Release$/ d' Release # remove the self reference + msgninfo "\tRelease file… " + aptftparchive -qq release . | sed -e '/0 Release$/ d' > Release # remove the self reference + msgdone "info" cd .. } -setupaptarchive() { - buildaptarchive +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… " @@ -272,6 +326,15 @@ setupaptarchive() { 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 aptget update -qq } -- cgit v1.2.3 From cffea9af1a8819e7caf6d8655318867660a05bec Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 18 Aug 2010 21:03:50 +0200 Subject: setup the environment correctly for dpkg, too --- test/integration/framework | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index 66a0b5dc7..e964235b0 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -84,14 +84,16 @@ setupenvironment() { cd $TMPWORKINGDIRECTORY mkdir rootdir aptarchive cd rootdir - mkdir -p etc/apt/apt.conf.d etc/apt/sources.list.d etc/apt/trusted.gpg.d etc/apt/preferences.d var/cache var/lib/dpkg - mkdir -p var/cache/apt/archives/partial var/lib/apt/lists/partial + mkdir -p etc/apt/apt.conf.d etc/apt/sources.list.d etc/apt/trusted.gpg.d etc/apt/preferences.d var/cache + mkdir -p var/log/apt var/lib/apt + mkdir -p var/lib/dpkg/info var/lib/dpkg/updates var/lib/dpkg/triggers local STATUSFILE=$(echo "$(basename $0)" | sed 's/^test-/status-/') if [ -f "${TESTDIR}/${STATUSFILE}" ]; then cp "${TESTDIR}/${STATUSFILE}" var/lib/dpkg/status else touch var/lib/dpkg/status fi + touch var/lib/apt/extended_states var/lib/dpkg/available mkdir -p usr/lib/apt ln -s ${BUILDDIRECTORY}/methods usr/lib/apt/methods cd .. @@ -101,9 +103,15 @@ setupenvironment() { else touch aptarchive/Packages fi - echo "RootDir \"${TMPWORKINGDIRECTORY}/rootdir\";" > aptconfig.conf + 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" } @@ -132,7 +140,7 @@ buildsimplenativepackage() { else DISTSECTION="$(echo "$SECTION" | cut -d'/' -f 1)" fi - msgndebug "Build package ${CCMD}${NAME}=${VERSION}/${RELEASE}${CDEBUG}… " + msgninfo "Build package ${CCMD}${NAME}=${VERSION}/${RELEASE}${CINFO}… " local BUILDDIR=incoming/${NAME}-${VERSION} mkdir -p ${BUILDDIR}/debian/source cd ${BUILDDIR} @@ -175,7 +183,7 @@ Architecture: $ARCH" > debian/control echo "pool/${SRC}" >> ./incoming/${RELEASE}.${DISTSECTION}.srclist done rm -rf $BUILDDIR - msgdone "debug" + msgdone "info" } buildaptarchive() { @@ -239,7 +247,6 @@ APT { echo '"; };' >> ftparchive.conf done - less ftparchive.conf } buildaptftparchivedirectorystructure() { -- cgit v1.2.3 From cd725954f6df5b809fe8d90ee135e222d1cef30e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 19 Aug 2010 00:32:56 +0200 Subject: sign the created Release files with our own dummy key "Joe Sixpack" --- test/integration/framework | 15 ++++++++++++--- test/integration/joesixpack.pub | Bin 0 -> 639 bytes test/integration/joesixpack.sec | Bin 0 -> 1290 bytes 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 test/integration/joesixpack.pub create mode 100644 test/integration/joesixpack.sec (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index e964235b0..01b795ba9 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -82,7 +82,7 @@ setupenvironment() { local OLDWORKINGDIRECTORY=$(pwd) trap "cd /; rm -rf $TMPWORKINGDIRECTORY; cd $OLDWORKINGDIRECTORY" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM cd $TMPWORKINGDIRECTORY - mkdir rootdir aptarchive + 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 var/cache mkdir -p var/log/apt var/lib/apt @@ -93,7 +93,7 @@ setupenvironment() { else touch var/lib/dpkg/status fi - touch var/lib/apt/extended_states var/lib/dpkg/available + touch var/lib/dpkg/available mkdir -p usr/lib/apt ln -s ${BUILDDIRECTORY}/methods usr/lib/apt/methods cd .. @@ -103,6 +103,8 @@ setupenvironment() { 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 @@ -275,7 +277,7 @@ buildaptarchivefromincoming() { msgdone "info" msgninfo "\tGenerate Release files… " for dir in $(find ./dists -mindepth 1 -maxdepth 1 -type d); do - aptftparchive -qq release $dir | sed -e '/0 Release$/ d' > $dir/Release # remove the self reference + 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" @@ -342,7 +344,14 @@ setupaptarchive() { else setupflataptarchive fi + msgninfo "\tSign archive with Joe Sixpack key… " + for RELEASE in $(find aptarchive/ -name Release); do + gpg --no-default-keyring --secret-keyring ./keys/joesixpack.sec --keyring ./keys/joesixpack.pub --default-key Joe -abs -o ${RELEASE}.gpg ${RELEASE} + done + msgdone "info" + msgninfo "\tSync APT's cache with the archive… " aptget update -qq + msgdone "info" } diff() { diff --git a/test/integration/joesixpack.pub b/test/integration/joesixpack.pub new file mode 100644 index 000000000..2b40b97b6 Binary files /dev/null and b/test/integration/joesixpack.pub differ diff --git a/test/integration/joesixpack.sec b/test/integration/joesixpack.sec new file mode 100644 index 000000000..92aaada76 Binary files /dev/null and b/test/integration/joesixpack.sec differ -- cgit v1.2.3 From 75954ae2420ae7755d8482f2f1eecc03595a5153 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 20 Aug 2010 19:09:16 +0200 Subject: * apt-pkg/deb/dpkgpm.cc: - use the InstVer instead of the CurrentVer for the autobit transfer Add also a small testcase to check the handling automatical --- test/integration/framework | 54 +++++++++++++++++++++++++---- test/integration/test-disappearing-packages | 54 +++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+), 7 deletions(-) create mode 100755 test/integration/test-disappearing-packages (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index 01b795ba9..82fca2046 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -74,13 +74,13 @@ aptget() { runapt apt-get $*; } aptftparchive() { runapt apt-ftparchive $*; } setupenvironment() { - local TMPWORKINGDIRECTORY=$(mktemp -d) + TMPWORKINGDIRECTORY=$(mktemp -d) local TESTDIR=$(readlink -f $(dirname $0)) msgninfo "Preparing environment for ${CCMD}$0${CINFO} in ${TMPWORKINGDIRECTORY}… " BUILDDIRECTORY="${TESTDIR}/../../build/bin" test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first" local OLDWORKINGDIRECTORY=$(pwd) - trap "cd /; rm -rf $TMPWORKINGDIRECTORY; cd $OLDWORKINGDIRECTORY" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM +# trap "cd /; rm -rf $TMPWORKINGDIRECTORY; cd $OLDWORKINGDIRECTORY" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM cd $TMPWORKINGDIRECTORY mkdir rootdir aptarchive keys cd rootdir @@ -128,7 +128,7 @@ configarchitecture() { done } -buildsimplenativepackage() { +setupsimplenativepackage() { local NAME="$1" local ARCH="$2" local VERSION="$3" @@ -142,7 +142,6 @@ buildsimplenativepackage() { else DISTSECTION="$(echo "$SECTION" | cut -d'/' -f 1)" fi - msgninfo "Build package ${CCMD}${NAME}=${VERSION}/${RELEASE}${CINFO}… " local BUILDDIR=incoming/${NAME}-${VERSION} mkdir -p ${BUILDDIR}/debian/source cd ${BUILDDIR} @@ -174,17 +173,47 @@ Architecture: $ARCH" > debian/control 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}" >> ./incoming/${RELEASE}.${DISTSECTION}.pkglist + echo "pool/${PKG}" >> ${TMPWORKINGDIRECTORY}/incoming/${RELEASE}.${SECTION}.pkglist done for SRC in $SRCS; do - echo "pool/${SRC}" >> ./incoming/${RELEASE}.${DISTSECTION}.srclist + echo "pool/${SRC}" >> ${TMPWORKINGDIRECTORY}/incoming/${RELEASE}.${SECTION}.srclist done - rm -rf $BUILDDIR msgdone "info" } @@ -365,6 +394,17 @@ diff() { fi } +testfileequal() { + local FILE="$1" + shift + msgtest "Test for correctness of file" "$FILE" + if [ -z "$*" ]; then + echo -n "" | diff $FILE - && msgpass || msgfail + else + echo "$*" | diff $FILE - && msgpass || msgfail + fi +} + testequal() { local COMPAREFILE=$(mktemp) echo "$1" > $COMPAREFILE 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 -- cgit v1.2.3 From f213b6ea7397f2ba5b770e1a30e57dc8438bf61e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 21 Aug 2010 22:19:56 +0200 Subject: * apt-pkg/acquire-item.cc: - don't use ReadOnlyGzip mode for PDiffs as this mode doesn't work in combination with the AddFd methods of our hashclasses Add also 2 testcases: one to test pdiffs in general and one to test the handling of compressed indexes. --- test/integration/Packages-pdiff-usage | 34 ++++++++ test/integration/Packages-pdiff-usage-new | 37 +++++++++ test/integration/framework | 58 +++++++++---- test/integration/test-compressed-indexes | 131 ++++++++++++++++++++++++++++++ test/integration/test-pdiff-usage | 51 ++++++++++++ 5 files changed, 296 insertions(+), 15 deletions(-) create mode 100644 test/integration/Packages-pdiff-usage create mode 100644 test/integration/Packages-pdiff-usage-new create mode 100755 test/integration/test-compressed-indexes create mode 100755 test/integration/test-pdiff-usage (limited to 'test') 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 +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 +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 +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 +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/framework b/test/integration/framework index 82fca2046..8efe47330 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -80,7 +80,8 @@ setupenvironment() { BUILDDIRECTORY="${TESTDIR}/../../build/bin" test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first" local OLDWORKINGDIRECTORY=$(pwd) -# trap "cd /; rm -rf $TMPWORKINGDIRECTORY; cd $OLDWORKINGDIRECTORY" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM + 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 @@ -373,17 +374,44 @@ setupaptarchive() { else setupflataptarchive fi - msgninfo "\tSign archive with Joe Sixpack key… " - for RELEASE in $(find aptarchive/ -name Release); do - gpg --no-default-keyring --secret-keyring ./keys/joesixpack.sec --keyring ./keys/joesixpack.pub --default-key Joe -abs -o ${RELEASE}.gpg ${RELEASE} - done - msgdone "info" + signreleasefiles msgninfo "\tSync APT's cache with the archive… " aptget update -qq msgdone "info" } -diff() { +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 @@ -399,9 +427,9 @@ testfileequal() { shift msgtest "Test for correctness of file" "$FILE" if [ -z "$*" ]; then - echo -n "" | diff $FILE - && msgpass || msgfail + echo -n "" | checkdiff $FILE - && msgpass || msgfail else - echo "$*" | diff $FILE - && msgpass || msgfail + echo "$*" | checkdiff $FILE - && msgpass || msgfail fi } @@ -410,7 +438,7 @@ testequal() { echo "$1" > $COMPAREFILE shift msgtest "Test for equality of" "$*" - $* 2>&1 | diff $COMPAREFILE - && msgpass || msgfail + $* 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail rm $COMPAREFILE } @@ -423,10 +451,10 @@ testequalor2() { shift 2 msgtest "Test for equality OR of" "$*" $* 2>&1 1> $COMPAREAGAINST - (diff $COMPAREFILE1 $COMPAREAGAINST 1> /dev/null || - diff $COMPAREFILE2 $COMPAREAGAINST 1> /dev/null) && msgpass || - ( echo "\n${CINFO}Diff against OR 1${CNORMAL}" "$(diff $COMPAREFILE1 $COMPAREAGAINST)" \ - "\n${CINFO}Diff against OR 2${CNORMAL}" "$(diff $COMPAREFILE2 $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 } @@ -448,7 +476,7 @@ N: No packages found" 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 $PACKAGE 2>&1 | diff $COMPAREFILE - && msgpass || msgfail + aptcache show $PACKAGE 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail rm $COMPAREFILE } 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-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 -- cgit v1.2.3 From b093a199056673b55e6467ab9e22e8af15183c43 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 28 Aug 2010 22:26:32 +0200 Subject: * apt-pkg/contrib/configuration.cc: - fix autoremove by using correct config-option name and don't make faulty assumptions in error handling (Closes: #594689) --- test/integration/test-autoremove | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 test/integration/test-autoremove (limited to 'test') 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)' -- cgit v1.2.3 From 158fda31be7d4ae1c80a56223faa8d01efc25acc Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 2 Sep 2010 12:22:33 +0200 Subject: add wrapper around dpkg to be able to use it easily in the tests --- test/integration/framework | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index 8efe47330..ba5f9dfa3 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -72,6 +72,9 @@ 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) @@ -228,6 +231,10 @@ buildaptarchive() { 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 -- cgit v1.2.3 From b29c37128c2c77490f5851158a7631ed107c79fc Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 2 Sep 2010 12:47:48 +0200 Subject: * apt-pkg/deb/dpkgpm.cc: - create Dir::Log if needed to support /var/log as tmpfs or similar, inspired by Thomas Bechtold, thanks! (Closes: #523919, LP: #220239) Easily done by moving a private method from pkgAcquire into the public area of fileutl.cc to be able to use it also in here --- test/integration/framework | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index ba5f9dfa3..2b26fc8f7 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -88,8 +88,8 @@ setupenvironment() { 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 var/cache - mkdir -p var/log/apt var/lib/apt + 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 's/^test-/status-/') if [ -f "${TESTDIR}/${STATUSFILE}" ]; then -- cgit v1.2.3 From e8379ba3b9e4d5ab3e2225252ca6fde1217fac28 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 2 Sep 2010 12:52:04 +0200 Subject: set the quiet value for apt-cache so the tests will actually see the notices as they will not be shown otherwise --- test/integration/framework | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index 2b26fc8f7..b5fc46865 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -483,7 +483,7 @@ N: No packages found" 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 $PACKAGE 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail + aptcache show -q=0 $PACKAGE 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail rm $COMPAREFILE } -- cgit v1.2.3 From 3cbbda3c5af73f73b2d32b34078c4e6b9fef8a6e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 2 Sep 2010 13:03:38 +0200 Subject: show only the basename of the running test --- test/integration/framework | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index b5fc46865..e55563544 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -79,7 +79,7 @@ dpkg() { setupenvironment() { TMPWORKINGDIRECTORY=$(mktemp -d) local TESTDIR=$(readlink -f $(dirname $0)) - msgninfo "Preparing environment for ${CCMD}$0${CINFO} in ${TMPWORKINGDIRECTORY}… " + 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) @@ -304,7 +304,7 @@ buildaptftparchivedirectorystructure() { } buildaptarchivefromincoming() { - msginfo "Build APT archive for ${CCMD}$0${CINFO} based on incoming packages…" + 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 @@ -321,7 +321,7 @@ buildaptarchivefromincoming() { } buildaptarchivefromfiles() { - msginfo "Build APT archive for ${CCMD}$0${CINFO} based on prebuild files…" + msginfo "Build APT archive for ${CCMD}$(basename $0)${CINFO} based on prebuild files…" cd aptarchive if [ -f Packages ]; then msgninfo "\tPackages file… " -- cgit v1.2.3 From 2c6baa5a1f935eb3b8d4eb9fdef62e696416e27a Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 2 Sep 2010 15:24:44 +0200 Subject: do the right thing(TM) even if the (unfinished) testcase is named skip-* instead of test-* to avoid calling him with run-tests --- test/integration/framework | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/integration/framework b/test/integration/framework index e55563544..d832bedbe 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -91,7 +91,7 @@ setupenvironment() { 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 's/^test-/status-/') + 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 @@ -101,7 +101,7 @@ setupenvironment() { mkdir -p usr/lib/apt ln -s ${BUILDDIRECTORY}/methods usr/lib/apt/methods cd .. - local PACKAGESFILE=$(echo "$(basename $0)" | sed 's/^test-/Packages-/') + 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 -- cgit v1.2.3