]> git.saurik.com Git - apt.git/commitdiff
enable APT in unpack/configure ordering to handle loops as well
authorDavid Kalnischkies <kalnischkies@gmail.com>
Wed, 14 Sep 2011 18:22:31 +0000 (20:22 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Wed, 14 Sep 2011 18:22:31 +0000 (20:22 +0200)
as tight dependencies between immediate packages better
enabling also the possibility to mark all packages as immediate
(at least Closes: #353290, #540227, #559733, #621836, #639290)

335 files changed:
Makefile
apt-inst/contrib/arfile.cc
apt-inst/contrib/arfile.h
apt-inst/contrib/extracttar.cc
apt-inst/database.cc
apt-inst/deb/debfile.cc
apt-inst/deb/dpkgdb.cc
apt-inst/dirstream.cc
apt-inst/extract.cc
apt-inst/filelist.cc
apt-inst/makefile
apt-pkg/acquire-item.cc
apt-pkg/acquire-item.h
apt-pkg/acquire-method.cc
apt-pkg/acquire-method.h
apt-pkg/acquire-worker.cc
apt-pkg/acquire-worker.h
apt-pkg/acquire.cc
apt-pkg/acquire.h
apt-pkg/algorithms.cc
apt-pkg/algorithms.h
apt-pkg/aptconfiguration.cc
apt-pkg/aptconfiguration.h
apt-pkg/cachefile.cc
apt-pkg/cachefile.h
apt-pkg/cachefilter.cc
apt-pkg/cachefilter.h
apt-pkg/cacheiterators.h
apt-pkg/cacheset.cc
apt-pkg/cacheset.h
apt-pkg/cdrom.cc
apt-pkg/cdrom.h
apt-pkg/clean.cc
apt-pkg/clean.h
apt-pkg/contrib/cdromutl.cc
apt-pkg/contrib/cmndline.cc
apt-pkg/contrib/configuration.cc
apt-pkg/contrib/configuration.h
apt-pkg/contrib/crc-16.cc
apt-pkg/contrib/crc-16.h
apt-pkg/contrib/error.cc
apt-pkg/contrib/fileutl.cc
apt-pkg/contrib/fileutl.h
apt-pkg/contrib/hashes.cc
apt-pkg/contrib/hashes.h
apt-pkg/contrib/hashsum.cc [new file with mode: 0644]
apt-pkg/contrib/hashsum_template.h [new file with mode: 0644]
apt-pkg/contrib/md5.cc
apt-pkg/contrib/md5.h
apt-pkg/contrib/mmap.cc
apt-pkg/contrib/mmap.h
apt-pkg/contrib/netrc.cc
apt-pkg/contrib/progress.cc
apt-pkg/contrib/progress.h
apt-pkg/contrib/sha1.cc
apt-pkg/contrib/sha1.h
apt-pkg/contrib/sha2.h [new file with mode: 0644]
apt-pkg/contrib/sha256.cc [deleted file]
apt-pkg/contrib/sha256.h
apt-pkg/contrib/sha2_internal.cc [new file with mode: 0644]
apt-pkg/contrib/sha2_internal.h [new file with mode: 0644]
apt-pkg/contrib/strutl.cc
apt-pkg/contrib/strutl.h
apt-pkg/deb/debindexfile.cc
apt-pkg/deb/debindexfile.h
apt-pkg/deb/deblistparser.cc
apt-pkg/deb/deblistparser.h
apt-pkg/deb/debmetaindex.cc
apt-pkg/deb/debmetaindex.h
apt-pkg/deb/debrecords.cc
apt-pkg/deb/debrecords.h
apt-pkg/deb/debsrcrecords.cc
apt-pkg/deb/debsrcrecords.h
apt-pkg/deb/debsystem.cc
apt-pkg/deb/debsystem.h
apt-pkg/deb/debversion.cc
apt-pkg/deb/dpkgpm.cc
apt-pkg/deb/dpkgpm.h
apt-pkg/depcache.cc
apt-pkg/depcache.h
apt-pkg/edsp.cc [new file with mode: 0644]
apt-pkg/edsp.h [new file with mode: 0644]
apt-pkg/edsp/edspindexfile.cc [new file with mode: 0644]
apt-pkg/edsp/edspindexfile.h [new file with mode: 0644]
apt-pkg/edsp/edsplistparser.cc [new file with mode: 0644]
apt-pkg/edsp/edsplistparser.h [new file with mode: 0644]
apt-pkg/edsp/edspsystem.cc [new file with mode: 0644]
apt-pkg/edsp/edspsystem.h [new file with mode: 0644]
apt-pkg/indexcopy.cc
apt-pkg/indexcopy.h
apt-pkg/indexfile.cc
apt-pkg/indexrecords.cc
apt-pkg/indexrecords.h
apt-pkg/init.cc
apt-pkg/init.h
apt-pkg/makefile
apt-pkg/metaindex.h
apt-pkg/orderlist.cc
apt-pkg/orderlist.h
apt-pkg/packagemanager.cc
apt-pkg/pkgcache.cc
apt-pkg/pkgcache.h
apt-pkg/pkgcachegen.cc
apt-pkg/pkgcachegen.h
apt-pkg/pkgrecords.cc
apt-pkg/pkgrecords.h
apt-pkg/pkgsystem.cc
apt-pkg/policy.cc
apt-pkg/policy.h
apt-pkg/sourcelist.cc
apt-pkg/sourcelist.h
apt-pkg/srcrecords.cc
apt-pkg/srcrecords.h
apt-pkg/tagfile.cc
apt-pkg/tagfile.h
apt-pkg/vendor.cc
apt-pkg/vendorlist.cc
apt-pkg/version.cc
apt-pkg/versionmatch.cc
buildlib/config.h.in
buildlib/defaults.mak
cmdline/acqprogress.cc
cmdline/apt-cache.cc
cmdline/apt-cdrom.cc
cmdline/apt-config.cc
cmdline/apt-dump-solver.cc [new file with mode: 0644]
cmdline/apt-extracttemplates.cc
cmdline/apt-get.cc
cmdline/apt-internal-solver.cc [new file with mode: 0644]
cmdline/apt-key
cmdline/apt-mark.cc
cmdline/apt-sortpkgs.cc
cmdline/makefile
configure.in
debian/apt-doc.docs
debian/apt-utils.dirs
debian/apt-utils.install
debian/apt-utils.links [new file with mode: 0644]
debian/apt-utils.symbols [deleted file]
debian/apt.dirs
debian/apt.install
debian/apt.postinst
debian/apt.symbols [deleted file]
debian/changelog
debian/control
debian/libapt-inst1.4.install [new file with mode: 0644]
debian/libapt-inst1.4.symbols [new file with mode: 0644]
debian/libapt-pkg4.12.install [new file with mode: 0644]
debian/libapt-pkg4.12.symbols [new file with mode: 0644]
debian/rules
doc/apt-cache.8.xml
doc/apt-get.8.xml
doc/apt.conf.5.xml
doc/examples/configure-index
doc/external-dependency-solver-protocol.txt [new file with mode: 0644]
doc/po/apt-doc.pot
doc/po/de.po
doc/po/es.po
doc/po/fr.po
doc/po/it.po
doc/po/ja.po
doc/po/pl.po
doc/po/pt.po
doc/po/pt_BR.po
doc/sources.list.5.xml
ftparchive/apt-ftparchive.cc
ftparchive/cachedb.cc
ftparchive/cachedb.h
ftparchive/contents.cc
ftparchive/contents.h
ftparchive/multicompress.cc
ftparchive/multicompress.h
ftparchive/override.cc
ftparchive/writer.cc
ftparchive/writer.h
methods/bzip2.cc
methods/cdrom.cc
methods/connect.cc
methods/copy.cc
methods/file.cc
methods/ftp.cc
methods/ftp.h
methods/gpgv.cc
methods/gzip.cc
methods/http.cc
methods/http.h
methods/http_main.cc
methods/https.cc
methods/mirror.cc
methods/rfc2553emu.cc
methods/rred.cc
methods/rsh.cc
methods/rsh.h
po/apt-all.pot
po/ar.po
po/ast.po
po/bg.po
po/bs.po
po/ca.po
po/cs.po
po/cy.po
po/da.po
po/de.po
po/dz.po
po/el.po
po/es.po
po/eu.po
po/fi.po
po/fr.po
po/gl.po
po/hu.po
po/it.po
po/ja.po
po/km.po
po/ko.po
po/ku.po
po/lt.po
po/mr.po
po/nb.po
po/ne.po
po/nl.po
po/nn.po
po/pl.po
po/pt.po
po/pt_BR.po
po/ro.po
po/ru.po
po/sk.po
po/sl.po
po/sv.po
po/th.po
po/tl.po
po/uk.po
po/vi.po
po/zh_CN.po
po/zh_TW.po
test/Makefile [new file with mode: 0644]
test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages [deleted file]
test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release [deleted file]
test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg [deleted file]
test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages [deleted file]
test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release [deleted file]
test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg [deleted file]
test/authReliability/sources.list.failure [deleted file]
test/authReliability/sources.list.good [deleted file]
test/conf.cc [deleted file]
test/conf_clear.cc [deleted file]
test/extract-control.cc [deleted file]
test/fake-status [deleted file]
test/hash.cc [deleted file]
test/integration/Packages-hashsum-verification [new file with mode: 0644]
test/integration/framework
test/integration/makefile [new file with mode: 0644]
test/integration/run-tests
test/integration/test-bug-254770-segfault-if-cache-not-buildable
test/integration/test-bug-407511-fail-invalid-default-release [new file with mode: 0755]
test/integration/test-bug-590438-broken-provides-thanks-to-remove-order
test/integration/test-bug-595691-empty-and-broken-archive-files
test/integration/test-bug-596498-trusted-unsigned-repo [new file with mode: 0755]
test/integration/test-bug-601016-description-translation
test/integration/test-bug-618288-multiarch-same-lockstep
test/integration/test-bug-632221-cross-dependency-satisfaction [new file with mode: 0755]
test/integration/test-bug-633350-do-not-kill-last-char-in-Release [new file with mode: 0755]
test/integration/test-compressed-indexes
test/integration/test-disappearing-packages
test/integration/test-handling-broken-orgroups
test/integration/test-hashsum-verification [new file with mode: 0755]
test/integration/test-policy-pinning
test/integration/test-release-candidate-switching
test/integration/test-releasefile-valid-until [new file with mode: 0755]
test/integration/test-releasefile-verification
test/integration/test-resolve-by-keep-new-recommends [new file with mode: 0755]
test/integration/test-ubuntu-bug-784473-InRelease-one-message-only [new file with mode: 0755]
test/integration/test-ubuntu-bug-802901-multiarch-early-remove [new file with mode: 0755]
test/integration/test-ubuntu-bug-806274-install-suggests [new file with mode: 0755]
test/integration/test-ubuntu-bug-835625-multiarch-lockstep-installed-first [new file with mode: 0755]
test/interactive-helper/extract-control.cc [new file with mode: 0644]
test/interactive-helper/makefile [new file with mode: 0644]
test/interactive-helper/mthdcat.cc [new file with mode: 0644]
test/interactive-helper/networkless-install-fixes/README [new file with mode: 0644]
test/interactive-helper/networkless-install-fixes/sources.test.list [new file with mode: 0644]
test/interactive-helper/networkless-install-fixes/test.sh [new file with mode: 0755]
test/interactive-helper/rpmver.cc [new file with mode: 0644]
test/interactive-helper/test_udevcdrom.cc [new file with mode: 0644]
test/interactive-helper/testdeb.cc [new file with mode: 0644]
test/interactive-helper/testextract.cc [new file with mode: 0644]
test/libapt/assert.h
test/libapt/compareversion_test.cc
test/libapt/configuration_test.cc [new file with mode: 0644]
test/libapt/getarchitectures_test.cc
test/libapt/getlanguages_test.cc
test/libapt/getlistoffilesindir_test.cc
test/libapt/globalerror_test.cc
test/libapt/hashsums_test.cc [new file with mode: 0644]
test/libapt/makefile
test/libapt/run-tests
test/libapt/strutil_test.cc [new file with mode: 0644]
test/libapt/uri_test.cc [new file with mode: 0644]
test/libapt/versions.lst [new file with mode: 0644]
test/local-repo/Packages [deleted file]
test/local-repo/Packages.gz [deleted file]
test/local-repo/Packages.gz.save [deleted file]
test/local-repo/Release [deleted file]
test/local-repo/Release.gpg [deleted file]
test/local-repo/gdebi-test4.deb [deleted file]
test/makefile [deleted file]
test/mthdcat.cc [deleted file]
test/networkless-install-fixes/README [deleted file]
test/networkless-install-fixes/sources.test.list [deleted file]
test/networkless-install-fixes/test.sh [deleted file]
test/pre-upload-check.py [deleted file]
test/rpmver.cc [deleted file]
test/scratch.cc [deleted file]
test/test-indexes.sh [deleted file]
test/test_udevcdrom.cc [deleted file]
test/testdeb.cc [deleted file]
test/testextract.cc [deleted file]
test/testkeys/mvo.key [deleted file]
test/testsources.list/sources.list.all-gpg-broken [deleted file]
test/testsources.list/sources.list.all-gpg-ok [deleted file]
test/testsources.list/sources.list.all-release-broken [deleted file]
test/testsources.list/sources.list.all-release-ok [deleted file]
test/testsources.list/sources.list.all-validuntil-broken [deleted file]
test/testsources.list/sources.list.md5-package-broken [deleted file]
test/testsources.list/sources.list.md5-package-ok [deleted file]
test/testsources.list/sources.list.md5-release-broken [deleted file]
test/testsources.list/sources.list.md5-release-ok [deleted file]
test/testsources.list/sources.list.sha1-release-broken [deleted file]
test/testsources.list/sources.list.sha1-release-ok [deleted file]
test/testsources.list/sources.list.sha256-package-broken [deleted file]
test/testsources.list/sources.list.sha256-package-ok [deleted file]
test/testsources.list/sources.list.sha256-release-broken [deleted file]
test/testsources.list/sources.list.sha256-release-ok [deleted file]
test/uri.cc [deleted file]
test/versions.lst [deleted file]

index 664caca41f2d9d67a63f1aeb4f170b9b3c00f4b5..9a47014c3ccb0fb1d840bb619bb5e6479acba539 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -9,8 +9,8 @@ endif
 .PHONY: default
 default: startup all
 
-.PHONY: headers library clean veryclean all binary program doc
-all headers library clean veryclean binary program doc dirs:
+.PHONY: headers library clean veryclean all binary program doc test
+all headers library clean veryclean binary program doc dirs test:
        $(MAKE) -C apt-pkg $@
        $(MAKE) -C apt-inst $@
        $(MAKE) -C methods $@
@@ -19,6 +19,7 @@ all headers library clean veryclean binary program doc dirs:
        $(MAKE) -C dselect $@
        $(MAKE) -C doc $@
        $(MAKE) -C po $@
+       $(MAKE) -C test $@
 
 # Some very common aliases
 .PHONY: maintainer-clean dist-clean distclean pristine sanity 
index 8018f4d30792dd99a4fc67da30850f05081edce1..533c563f9a05ff5418353570e0ca6f803e8169e4 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/arfile.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/error.h>
 
 #include <stdlib.h>
-                                                                       /*}}}*/
+
 #include <apti18n.h>
+                                                                       /*}}}*/
 
 struct ARArchive::MemberHeader
 {
index 7f6c683024a3a36d5ea87eda0fcec972e16f3416..e2063cd716a6430c9eb3acc7919df05c9f7cb29e 100644 (file)
@@ -54,7 +54,7 @@ struct ARArchive::Member
    unsigned long UID;
    unsigned long GID;
    unsigned long Mode;
-   unsigned long Size;
+   unsigned long long Size;
    
    // Location of the data.
    unsigned long Start;
index 01b6b38360bd61dd1dcfe505aed9a9312b0dc47f..487027c3daccf16bcba2291f89a53adef758764a 100644 (file)
@@ -16,8 +16,9 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#include <apt-pkg/extracttar.h>
+#include<config.h>
 
+#include <apt-pkg/extracttar.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/configuration.h>
@@ -28,6 +29,7 @@
 #include <signal.h>
 #include <fcntl.h>
 #include <iostream>
+
 #include <apti18n.h>
                                                                        /*}}}*/
 
index a5020f3d76c2c4025b6948141ae04c327c1b1141..0647959a9ffc2f1566b1c20cf3c66a5f1260599b 100644 (file)
@@ -8,6 +8,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/database.h>
                                                                        /*}}}*/
 
index a40cd1ae81fdb62cf25d185b8c3107f134e129ff..e80d8c73581a664c54e9a1414b69f0b6a69f2317 100644 (file)
@@ -16,6 +16,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/debfile.h>
 #include <apt-pkg/extracttar.h>
 #include <apt-pkg/error.h>
index a75cf59ca5858ab533de5f203c9222b1e02f0563..3112acdbd22c201e72239cc25708859b9896059d 100644 (file)
@@ -13,6 +13,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/dpkgdb.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/error.h>
index 9b6a568482a5206af9dc9a84b6a6dec305be9cd9..bb0bf96c18a480bdaa32727b73637224a85f2b92 100644 (file)
@@ -11,6 +11,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/dirstream.h>
 #include <apt-pkg/error.h>
 
index cd8edb27aaab462b52b6061529ab23edcb5584d0..d48ff63ac3a40271a56f19b498876fe4556fa3bc 100644 (file)
@@ -44,6 +44,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/extract.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/debversion.h>
index 060aa53d76007587cbe814d6fc8b9d88f2141fba..879c07855b7b2e36754fb3584dba2adcee6696d1 100644 (file)
@@ -32,6 +32,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/filelist.h>
 #include <apt-pkg/mmap.h>
 #include <apt-pkg/error.h>
index 785dc62baf82b3dd01008f500f13839058161d1f..1b9cc2676bb95f3f29784d35fc99568143997cde 100644 (file)
@@ -14,7 +14,7 @@ include ../buildlib/libversion.mak
 
 # The library name
 LIBRARY=apt-inst
-MAJOR=1.2
+MAJOR=1.4
 MINOR=0
 SLIBS=$(PTHREADLIB) -lapt-pkg
 APT_DOMAIN:=libapt-inst$(MAJOR)
index c3817f6ee08231591dea0e4212e1d0f8ff5e2535..b46489f87d7bd92df7723a420c99fedfdf0e9880 100644 (file)
@@ -13,6 +13,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/acquire-item.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/aptconfiguration.h>
@@ -24,8 +26,6 @@
 #include <apt-pkg/sha1.h>
 #include <apt-pkg/tagfile.h>
 
-#include <apti18n.h>
-    
 #include <sys/stat.h>
 #include <unistd.h>
 #include <errno.h>
@@ -33,6 +33,8 @@
 #include <sstream>
 #include <stdio.h>
 #include <ctime>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
@@ -94,7 +96,7 @@ void pkgAcquire::Item::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
 // ---------------------------------------------------------------------
 /* Stash status and the file size. Note that setting Complete means 
    sub-phases of the acquire process such as decompresion are operating */
-void pkgAcquire::Item::Start(string /*Message*/,unsigned long Size)
+void pkgAcquire::Item::Start(string /*Message*/,unsigned long long Size)
 {
    Status = StatFetching;
    if (FileSize == 0 && Complete == false)
@@ -104,7 +106,7 @@ void pkgAcquire::Item::Start(string /*Message*/,unsigned long Size)
 // Acquire::Item::Done - Item downloaded OK                            /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-void pkgAcquire::Item::Done(string Message,unsigned long Size,string Hash,
+void pkgAcquire::Item::Done(string Message,unsigned long long Size,string Hash,
                            pkgAcquire::MethodConfig *Cnf)
 {
    // We just downloaded something..
@@ -245,7 +247,7 @@ void pkgAcqSubIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf)   /*{{{*
    }
 }
                                                                        /*}}}*/
-void pkgAcqSubIndex::Done(string Message,unsigned long Size,string Md5Hash,    /*{{{*/
+void pkgAcqSubIndex::Done(string Message,unsigned long long Size,string Md5Hash,       /*{{{*/
                           pkgAcquire::MethodConfig *Cnf)
 {
    if(Debug)
@@ -544,7 +546,7 @@ void pkgAcqDiffIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf)  /*{{{
    Dequeue();
 }
                                                                        /*}}}*/
-void pkgAcqDiffIndex::Done(string Message,unsigned long Size,string Md5Hash,   /*{{{*/
+void pkgAcqDiffIndex::Done(string Message,unsigned long long Size,string Md5Hash,      /*{{{*/
                           pkgAcquire::MethodConfig *Cnf)
 {
    if(Debug)
@@ -681,17 +683,17 @@ bool pkgAcqIndexDiffs::QueueNextDiff()                                    /*{{{*/
    // remove all patches until the next matching patch is found
    // this requires the Index file to be ordered
    for(vector<DiffInfo>::iterator I=available_patches.begin();
-       available_patches.size() > 0 && 
+       available_patches.empty() == false &&
          I != available_patches.end() &&
-         (*I).sha1 != local_sha1; 
-       I++) 
+         I->sha1 != local_sha1;
+       ++I)
    {
       available_patches.erase(I);
    }
 
    // error checking and falling back if no patch was found
-   if(available_patches.size() == 0) 
-   { 
+   if(available_patches.empty() == true)
+   {
       Failed("", NULL);
       return false;
    }
@@ -710,7 +712,7 @@ bool pkgAcqIndexDiffs::QueueNextDiff()                                      /*{{{*/
    return true;
 }
                                                                        /*}}}*/
-void pkgAcqIndexDiffs::Done(string Message,unsigned long Size,string Md5Hash,  /*{{{*/
+void pkgAcqIndexDiffs::Done(string Message,unsigned long long Size,string Md5Hash,     /*{{{*/
                            pkgAcquire::MethodConfig *Cnf)
 {
    if(Debug)
@@ -756,7 +758,7 @@ void pkgAcqIndexDiffs::Done(string Message,unsigned long Size,string Md5Hash,       /*
       chmod(FinalFile.c_str(),0644);
 
       // see if there is more to download
-      if(available_patches.size() > 0) {
+      if(available_patches.empty() == false) {
         new pkgAcqIndexDiffs(Owner, RealURI, Description, Desc.ShortDesc,
                              ExpectedHash, ServerSha1, available_patches);
         return Finish();
@@ -808,6 +810,13 @@ pkgAcqIndex::pkgAcqIndex(pkgAcquire *Owner, IndexTarget const *Target,
    if (CompressionExtension.empty() == false)
       CompressionExtension.erase(CompressionExtension.end()-1);
 
+   // only verify non-optional targets, see acquire-item.h for a FIXME
+   // to make this more flexible
+   if (Target->IsOptional())
+     Verify = false;
+   else
+     Verify = true;
+
    Init(Target->URI, Target->Description, Target->ShortDesc);
 }
                                                                        /*}}}*/
@@ -881,7 +890,7 @@ void pkgAcqIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf)      /*{{{*/
    to the uncompressed version of the file. If this is so the file
    is copied into the partial directory. In all other cases the file
    is decompressed with a gzip uri. */
-void pkgAcqIndex::Done(string Message,unsigned long Size,string Hash,
+void pkgAcqIndex::Done(string Message,unsigned long long Size,string Hash,
                       pkgAcquire::MethodConfig *Cfg)
 {
    Item::Done(Message,Size,Hash,Cfg);
@@ -905,6 +914,7 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string Hash,
 
       /* Verify the index file for correctness (all indexes must
        * have a Package field) (LP: #346386) (Closes: #627642) */
+      if (Verify == true)
       {
         FileFd fd(DestFile, FileFd::ReadOnly);
         pkgTagSection sec;
@@ -1123,7 +1133,7 @@ string pkgAcqMetaSig::Custom600Headers()
    return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime);
 }
 
-void pkgAcqMetaSig::Done(string Message,unsigned long Size,string MD5,
+void pkgAcqMetaSig::Done(string Message,unsigned long long Size,string MD5,
                         pkgAcquire::MethodConfig *Cfg)
 {
    Item::Done(Message,Size,MD5,Cfg);
@@ -1232,7 +1242,7 @@ string pkgAcqMetaIndex::Custom600Headers()
    return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime);
 }
                                                                        /*}}}*/
-void pkgAcqMetaIndex::Done(string Message,unsigned long Size,string Hash,      /*{{{*/
+void pkgAcqMetaIndex::Done(string Message,unsigned long long Size,string Hash, /*{{{*/
                           pkgAcquire::MethodConfig *Cfg)
 {
    Item::Done(Message,Size,Hash,Cfg);
@@ -1258,7 +1268,8 @@ void pkgAcqMetaIndex::Done(string Message,unsigned long Size,string Hash, /*{{{*
       if (SigFile == "")
       {
          // There was no signature file, so we are finished.  Download
-         // the indexes without verification.
+         // the indexes and do only hashsum verification if possible
+         MetaIndexParser->Load(DestFile);
          QueueIndexes(false);
       }
       else
@@ -1374,35 +1385,33 @@ void pkgAcqMetaIndex::QueueIndexes(bool verify)                         /*{{{*/
 #endif
    for (vector <struct IndexTarget*>::const_iterator Target = IndexTargets->begin();
         Target != IndexTargets->end();
-        Target++)
+        ++Target)
    {
       HashString ExpectedIndexHash;
-      if (verify)
+      const indexRecords::checkSum *Record = MetaIndexParser->Lookup((*Target)->MetaKey);
+      if (Record == NULL)
       {
-        const indexRecords::checkSum *Record = MetaIndexParser->Lookup((*Target)->MetaKey);
-        if (Record == NULL)
+        if (verify == true && (*Target)->IsOptional() == false)
         {
-           if ((*Target)->IsOptional() == false)
-           {
-              Status = StatAuthError;
-              strprintf(ErrorText, _("Unable to find expected entry '%s' in Release file (Wrong sources.list entry or malformed file)"), (*Target)->MetaKey.c_str());
-              return;
-           }
+           Status = StatAuthError;
+           strprintf(ErrorText, _("Unable to find expected entry '%s' in Release file (Wrong sources.list entry or malformed file)"), (*Target)->MetaKey.c_str());
+           return;
         }
-        else
+      }
+      else
+      {
+        ExpectedIndexHash = Record->Hash;
+        if (_config->FindB("Debug::pkgAcquire::Auth", false))
         {
-           ExpectedIndexHash = Record->Hash;
-           if (_config->FindB("Debug::pkgAcquire::Auth", false))
-           {
-              std::cerr << "Queueing: " << (*Target)->URI << std::endl;
-              std::cerr << "Expected Hash: " << ExpectedIndexHash.toStr() << std::endl;
-           }
-           if (ExpectedIndexHash.empty() == true && (*Target)->IsOptional() == false)
-           {
-              Status = StatAuthError;
-              strprintf(ErrorText, _("Unable to find hash sum for '%s' in Release file"), (*Target)->MetaKey.c_str());
-              return;
-           }
+           std::cerr << "Queueing: " << (*Target)->URI << std::endl;
+           std::cerr << "Expected Hash: " << ExpectedIndexHash.toStr() << std::endl;
+           std::cerr << "For: " << Record->MetaKeyFilename << std::endl;
+        }
+        if (verify == true && ExpectedIndexHash.empty() == true && (*Target)->IsOptional() == false)
+        {
+           Status = StatAuthError;
+           strprintf(ErrorText, _("Unable to find hash sum for '%s' in Release file"), (*Target)->MetaKey.c_str());
+           return;
         }
       }
 
@@ -1473,8 +1482,10 @@ bool pkgAcqMetaIndex::VerifyVendor(string Message)                       /*{{{*/
         // TRANSLATOR: The first %s is the URL of the bad Release file, the second is
         // the time since then the file is invalid - formated in the same way as in
         // the download progress display (e.g. 7d 3h 42min 1s)
-        return _error->Error(_("Release file expired, ignoring %s (invalid since %s)"),
-                             RealURI.c_str(), TimeToStr(invalid_since).c_str());
+        return _error->Error(
+            _("Release file for %s is expired (invalid since %s). "
+              "Updates for this repository will not be applied."),
+            RealURI.c_str(), TimeToStr(invalid_since).c_str());
    }
 
    if (_config->FindB("Debug::pkgAcquire::Auth", false)) 
@@ -1669,7 +1680,7 @@ pkgAcqArchive::pkgAcqArchive(pkgAcquire *Owner,pkgSourceList *Sources,
 
    // check if we have one trusted source for the package. if so, switch
    // to "TrustedOnly" mode
-   for (pkgCache::VerFileIterator i = Version.FileList(); i.end() == false; i++)
+   for (pkgCache::VerFileIterator i = Version.FileList(); i.end() == false; ++i)
    {
       pkgIndexFile *Index;
       if (Sources->FindIndex(i.File(),Index) == false)
@@ -1706,7 +1717,7 @@ pkgAcqArchive::pkgAcqArchive(pkgAcquire *Owner,pkgSourceList *Sources,
 bool pkgAcqArchive::QueueNext()
 {
    string const ForceHash = _config->Find("Acquire::ForceHash");
-   for (; Vf.end() == false; Vf++)
+   for (; Vf.end() == false; ++Vf)
    {
       // Ignore not source sources
       if ((Vf.File()->Flags & pkgCache::Flag::NotSource) != 0)
@@ -1730,6 +1741,8 @@ bool pkgAcqArchive::QueueNext()
       string PkgFile = Parse.FileName();
       if (ForceHash.empty() == false)
       {
+        if(stringcasecmp(ForceHash, "sha512") == 0)
+           ExpectedHash = HashString("SHA512", Parse.SHA512Hash());
         if(stringcasecmp(ForceHash, "sha256") == 0)
            ExpectedHash = HashString("SHA256", Parse.SHA256Hash());
         else if (stringcasecmp(ForceHash, "sha1") == 0)
@@ -1740,7 +1753,9 @@ bool pkgAcqArchive::QueueNext()
       else
       {
         string Hash;
-        if ((Hash = Parse.SHA256Hash()).empty() == false)
+        if ((Hash = Parse.SHA512Hash()).empty() == false)
+           ExpectedHash = HashString("SHA512", Hash);
+        else if ((Hash = Parse.SHA256Hash()).empty() == false)
            ExpectedHash = HashString("SHA256", Hash);
         else if ((Hash = Parse.SHA1Hash()).empty() == false)
            ExpectedHash = HashString("SHA1", Hash);
@@ -1764,7 +1779,7 @@ bool pkgAcqArchive::QueueNext()
       if (stat(FinalFile.c_str(),&Buf) == 0)
       {
         // Make sure the size matches
-        if ((unsigned)Buf.st_size == Version->Size)
+        if ((unsigned long long)Buf.st_size == Version->Size)
         {
            Complete = true;
            Local = true;
@@ -1783,7 +1798,7 @@ bool pkgAcqArchive::QueueNext()
       if (stat(FinalFile.c_str(),&Buf) == 0)
       {
         // Make sure the size matches
-        if ((unsigned)Buf.st_size == Version->Size)
+        if ((unsigned long long)Buf.st_size == Version->Size)
         {
            Complete = true;
            Local = true;
@@ -1803,7 +1818,7 @@ bool pkgAcqArchive::QueueNext()
       if (stat(DestFile.c_str(),&Buf) == 0)
       {
         // Hmm, the partial file is too big, erase it
-        if ((unsigned)Buf.st_size > Version->Size)
+        if ((unsigned long long)Buf.st_size > Version->Size)
            unlink(DestFile.c_str());
         else
            PartialSize = Buf.st_size;
@@ -1817,7 +1832,7 @@ bool pkgAcqArchive::QueueNext()
       Desc.ShortDesc = Version.ParentPkg().Name();
       QueueURI(Desc);
 
-      Vf++;
+      ++Vf;
       return true;
    }
    return false;
@@ -1826,7 +1841,7 @@ bool pkgAcqArchive::QueueNext()
 // AcqArchive::Done - Finished fetching                                        /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-void pkgAcqArchive::Done(string Message,unsigned long Size,string CalcHash,
+void pkgAcqArchive::Done(string Message,unsigned long long Size,string CalcHash,
                         pkgAcquire::MethodConfig *Cfg)
 {
    Item::Done(Message,Size,CalcHash,Cfg);
@@ -1891,7 +1906,7 @@ void pkgAcqArchive::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
        StringToBool(LookupTag(Message,"Transient-Failure"),false) == true)
    {
       // Vf = Version.FileList();
-      while (Vf.end() == false) Vf++;
+      while (Vf.end() == false) ++Vf;
       StoreFilename = string();
       Item::Failed(Message,Cnf);
       return;
@@ -1937,7 +1952,7 @@ void pkgAcqArchive::Finished()
 // ---------------------------------------------------------------------
 /* The file is added to the queue */
 pkgAcqFile::pkgAcqFile(pkgAcquire *Owner,string URI,string Hash,
-                      unsigned long Size,string Dsc,string ShortDesc,
+                      unsigned long long Size,string Dsc,string ShortDesc,
                       const string &DestDir, const string &DestFilename,
                        bool IsIndexFile) :
                        Item(Owner), ExpectedHash(Hash), IsIndexFile(IsIndexFile)
@@ -1965,7 +1980,7 @@ pkgAcqFile::pkgAcqFile(pkgAcquire *Owner,string URI,string Hash,
    if (stat(DestFile.c_str(),&Buf) == 0)
    {
       // Hmm, the partial file is too big, erase it
-      if ((unsigned)Buf.st_size > Size)
+      if ((unsigned long long)Buf.st_size > Size)
         unlink(DestFile.c_str());
       else
         PartialSize = Buf.st_size;
@@ -1977,7 +1992,7 @@ pkgAcqFile::pkgAcqFile(pkgAcquire *Owner,string URI,string Hash,
 // AcqFile::Done - Item downloaded OK                                  /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-void pkgAcqFile::Done(string Message,unsigned long Size,string CalcHash,
+void pkgAcqFile::Done(string Message,unsigned long long Size,string CalcHash,
                      pkgAcquire::MethodConfig *Cnf)
 {
    Item::Done(Message,Size,CalcHash,Cnf);
@@ -2065,13 +2080,3 @@ string pkgAcqFile::Custom600Headers()
    return "";
 }
                                                                        /*}}}*/
-bool IndexTarget::IsOptional() const {
-   if (strncmp(ShortDesc.c_str(), "Translation", 11) != 0)
-      return false;
-   return true;
-}
-bool IndexTarget::IsSubIndex() const {
-   if (ShortDesc != "TranslationIndex")
-      return false;
-   return true;
-}
index f763577ee8ee11eacd0d60bfaff172c9f533e9a2..13be17a017096ac4fc8c4b42a70a143fd6bbef9c 100644 (file)
@@ -194,7 +194,7 @@ class pkgAcquire::Item : public WeakPointable
     *
     *  \sa pkgAcqMethod
     */
-   virtual void Done(string Message,unsigned long Size,string Hash,
+   virtual void Done(string Message,unsigned long long Size,string Hash,
                     pkgAcquire::MethodConfig *Cnf);
 
    /** \brief Invoked when the worker starts to fetch this object.
@@ -206,7 +206,7 @@ class pkgAcquire::Item : public WeakPointable
     *
     *  \sa pkgAcqMethod
     */
-   virtual void Start(string Message,unsigned long Size);
+   virtual void Start(string Message,unsigned long long Size);
 
    /** \brief Custom headers to be sent to the fetch process.
     *
@@ -309,7 +309,7 @@ class pkgAcqSubIndex : public pkgAcquire::Item
  public:
    // Specialized action members
    virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
-   virtual void Done(string Message,unsigned long Size,string Md5Hash,
+   virtual void Done(string Message,unsigned long long Size,string Md5Hash,
                     pkgAcquire::MethodConfig *Cnf);
    virtual string DescURI() {return Desc.URI;};
    virtual string Custom600Headers();
@@ -372,7 +372,7 @@ class pkgAcqDiffIndex : public pkgAcquire::Item
  public:
    // Specialized action members
    virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
-   virtual void Done(string Message,unsigned long Size,string Md5Hash,
+   virtual void Done(string Message,unsigned long long Size,string Md5Hash,
                     pkgAcquire::MethodConfig *Cnf);
    virtual string DescURI() {return RealURI + "Index";};
    virtual string Custom600Headers();
@@ -508,7 +508,7 @@ class pkgAcqIndexDiffs : public pkgAcquire::Item
     */
    virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
 
-   virtual void Done(string Message,unsigned long Size,string Md5Hash,
+   virtual void Done(string Message,unsigned long long Size,string Md5Hash,
                     pkgAcquire::MethodConfig *Cnf);
    virtual string DescURI() {return RealURI + "Index";};
 
@@ -559,6 +559,16 @@ class pkgAcqIndex : public pkgAcquire::Item
     */
    bool Erase;
 
+   /** \brief Verify for correctness by checking if a "Package"
+    *         tag is found in the index. This can be set to
+    *         false for optional index targets
+    *       
+    */
+   // FIXME: instead of a bool it should use a verify string that will
+   //        then be used in the pkgAcqIndex::Done method to ensure that
+   //        the downloaded file contains the expected tag
+   bool Verify;
+
    /** \brief The download request that is currently being
     *   processed.
     */
@@ -581,7 +591,7 @@ class pkgAcqIndex : public pkgAcquire::Item
    
    // Specialized action members
    virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
-   virtual void Done(string Message,unsigned long Size,string Md5Hash,
+   virtual void Done(string Message,unsigned long long Size,string Md5Hash,
                     pkgAcquire::MethodConfig *Cnf);
    virtual string Custom600Headers();
    virtual string DescURI() {return Desc.URI;};
@@ -646,8 +656,9 @@ class pkgAcqIndexTrans : public pkgAcqIndex
 };
                                                                        /*}}}*/
 /** \brief Information about an index file. */                         /*{{{*/
-struct IndexTarget
+class IndexTarget
 {
+ public:
    /** \brief A URI from which the index file can be downloaded. */
    string URI;
 
@@ -662,14 +673,28 @@ struct IndexTarget
     */
    string MetaKey;
 
-   //FIXME: We should use virtual methods here instead…
-   bool IsOptional() const;
-   bool IsSubIndex() const;
+   virtual bool IsOptional() const {
+      return false;
+   }
+   virtual bool IsSubIndex() const {
+      return false;
+   }
 };
                                                                        /*}}}*/
 /** \brief Information about an optional index file. */                        /*{{{*/
-struct OptionalIndexTarget : public IndexTarget
+class OptionalIndexTarget : public IndexTarget
+{
+   virtual bool IsOptional() const {
+      return true;
+   }
+};
+                                                                       /*}}}*/
+/** \brief Information about an subindex index file. */                        /*{{{*/
+class SubIndexTarget : public IndexTarget
 {
+   virtual bool IsSubIndex() const {
+      return true;
+   }
 };
                                                                        /*}}}*/
 
@@ -723,7 +748,7 @@ class pkgAcqMetaSig : public pkgAcquire::Item
    
    // Specialized action members
    virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
-   virtual void Done(string Message,unsigned long Size,string Md5Hash,
+   virtual void Done(string Message,unsigned long long Size,string Md5Hash,
                     pkgAcquire::MethodConfig *Cnf);
    virtual string Custom600Headers();
    virtual string DescURI() {return RealURI; };
@@ -818,7 +843,7 @@ class pkgAcqMetaIndex : public pkgAcquire::Item
    
    // Specialized action members
    virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
-   virtual void Done(string Message,unsigned long Size, string Hash,
+   virtual void Done(string Message,unsigned long long Size, string Hash,
                     pkgAcquire::MethodConfig *Cnf);
    virtual string Custom600Headers();
    virtual string DescURI() {return RealURI; };
@@ -918,7 +943,7 @@ class pkgAcqArchive : public pkgAcquire::Item
    public:
    
    virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
-   virtual void Done(string Message,unsigned long Size,string Hash,
+   virtual void Done(string Message,unsigned long long Size,string Hash,
                     pkgAcquire::MethodConfig *Cnf);
    virtual string DescURI() {return Desc.URI;};
    virtual string ShortDesc() {return Desc.ShortDesc;};
@@ -975,7 +1000,7 @@ class pkgAcqFile : public pkgAcquire::Item
    
    // Specialized action members
    virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
-   virtual void Done(string Message,unsigned long Size,string CalcHash,
+   virtual void Done(string Message,unsigned long long Size,string CalcHash,
                     pkgAcquire::MethodConfig *Cnf);
    virtual string DescURI() {return Desc.URI;};
    virtual string HashSum() {return ExpectedHash.toStr(); };
@@ -1012,7 +1037,7 @@ class pkgAcqFile : public pkgAcquire::Item
     * is the absolute name to which the file should be downloaded.
     */
 
-   pkgAcqFile(pkgAcquire *Owner, string URI, string Hash, unsigned long Size,
+   pkgAcqFile(pkgAcquire *Owner, string URI, string Hash, unsigned long long Size,
              string Desc, string ShortDesc,
              const string &DestDir="", const string &DestFilename="",
              bool IsIndexFile=false);
index e9e102488739df093d096e32800244692fe43b4d..1ae139b4099605cb4cb872770427fff1802e64a6 100644 (file)
@@ -15,6 +15,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/acquire-method.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/configuration.h>
@@ -81,7 +83,7 @@ void pkgAcqMethod::Fail(bool Transient)
 void pkgAcqMethod::Fail(string Err,bool Transient)
 {
    // Strip out junk from the error messages
-   for (string::iterator I = Err.begin(); I != Err.end(); I++)
+   for (string::iterator I = Err.begin(); I != Err.end(); ++I)
    {
       if (*I == '\r') 
         *I = ' ';
@@ -166,6 +168,8 @@ void pkgAcqMethod::URIDone(FetchResult &Res, FetchResult *Alt)
       std::cout << "SHA1-Hash: " << Res.SHA1Sum << "\n";
    if (Res.SHA256Sum.empty() == false)
       std::cout << "SHA256-Hash: " << Res.SHA256Sum << "\n";
+   if (Res.SHA512Sum.empty() == false)
+      std::cout << "SHA512-Hash: " << Res.SHA512Sum << "\n";
    if (UsedMirror.empty() == false)
       std::cout << "UsedMirror: " << UsedMirror << "\n";
    if (Res.GPGVOutput.empty() == false)
@@ -199,7 +203,9 @@ void pkgAcqMethod::URIDone(FetchResult &Res, FetchResult *Alt)
         std::cout << "Alt-SHA1-Hash: " << Alt->SHA1Sum << "\n";
       if (Alt->SHA256Sum.empty() == false)
         std::cout << "Alt-SHA256-Hash: " << Alt->SHA256Sum << "\n";
-
+      if (Alt->SHA512Sum.empty() == false)
+         std::cout << "Alt-SHA512-Hash: " << Alt->SHA512Sum << "\n";
+     
       if (Alt->IMSHit == true)
         std::cout << "Alt-IMS-Hit: true\n";
    }
@@ -421,12 +427,8 @@ void pkgAcqMethod::Status(const char *Format,...)
    to keep the pipeline synchronized. */
 void pkgAcqMethod::Redirect(const string &NewURI)
 {
-   std::cout << "103 Redirect\nURI: ";
-   if (Queue != 0)
-      std::cout << Queue->Uri << "\n";
-   else
-      std::cout << "<UNKNOWN>\n";
-   std::cout << "New-URI: " << NewURI << "\n"
+   std::cout << "103 Redirect\nURI: " << Queue->Uri << "\n"
+            << "New-URI: " << NewURI << "\n"
             << "\n" << std::flush;
 
    // Change the URI for the request.
@@ -460,5 +462,6 @@ void pkgAcqMethod::FetchResult::TakeHashes(Hashes &Hash)
    MD5Sum = Hash.MD5.Result();
    SHA1Sum = Hash.SHA1.Result();
    SHA256Sum = Hash.SHA256.Result();
+   SHA512Sum = Hash.SHA512.Result();
 }
                                                                        /*}}}*/
index 72efa8065491e644370363a2fa7e97f1797c5f67..6551170c4b943008f84453aa1bfd8e57f7509c76 100644 (file)
@@ -46,12 +46,13 @@ class pkgAcqMethod
       string MD5Sum;
       string SHA1Sum;
       string SHA256Sum;
+      string SHA512Sum;
       vector<string> GPGVOutput;
       time_t LastModified;
       bool IMSHit;
       string Filename;
-      unsigned long Size;
-      unsigned long ResumePoint;
+      unsigned long long Size;
+      unsigned long long ResumePoint;
       
       void TakeHashes(Hashes &Hash);
       FetchResult();
index 75e03232a1de76a28ed2e57de03159542d6a28d0..3bb977e1403f42a3920463f771f0a956024e9200 100644 (file)
@@ -12,6 +12,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/acquire-worker.h>
 #include <apt-pkg/acquire-item.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/strutl.h>
 
-#include <apti18n.h>
-
 #include <iostream>
 #include <sstream>
 #include <fstream>
-    
+
 #include <sys/stat.h>
 #include <unistd.h>
 #include <fcntl.h>
 #include <signal.h>
 #include <stdio.h>
 #include <errno.h>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
@@ -256,9 +258,9 @@ bool pkgAcquire::Worker::RunMessages()
            
            CurrentItem = Itm;
            CurrentSize = 0;
-           TotalSize = atoi(LookupTag(Message,"Size","0").c_str());
-           ResumePoint = atoi(LookupTag(Message,"Resume-Point","0").c_str());
-           Itm->Owner->Start(Message,atoi(LookupTag(Message,"Size","0").c_str()));
+           TotalSize = strtoull(LookupTag(Message,"Size","0").c_str(), NULL, 10);
+           ResumePoint = strtoull(LookupTag(Message,"Resume-Point","0").c_str(), NULL, 10);
+           Itm->Owner->Start(Message,strtoull(LookupTag(Message,"Size","0").c_str(), NULL, 10));
 
            // Display update before completion
            if (Log != 0 && Log->MorePulses == true)
@@ -287,9 +289,9 @@ bool pkgAcquire::Worker::RunMessages()
               Log->Pulse(Owner->GetOwner());
            
            OwnerQ->ItemDone(Itm);
-           unsigned long const ServerSize = atol(LookupTag(Message,"Size","0").c_str());
+           unsigned long long const ServerSize = strtoull(LookupTag(Message,"Size","0").c_str(), NULL, 10);
            if (TotalSize != 0 && ServerSize != TotalSize)
-              _error->Warning("Size of file %s is not what the server reported %s %lu",
+              _error->Warning("Size of file %s is not what the server reported %s %llu",
                               Owner->DestFile.c_str(), LookupTag(Message,"Size","0").c_str(),TotalSize);
 
            // see if there is a hash to verify
index 06283922e5e4dbe41c951b083d2eefd866ee68e7..ce19091e431ea8f12eb20812bb19fc582974228f 100644 (file)
@@ -44,6 +44,9 @@
  */
 class pkgAcquire::Worker : public WeakPointable
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+  
    friend class pkgAcquire;
    
    protected:
@@ -244,17 +247,17 @@ class pkgAcquire::Worker : public WeakPointable
    /** \brief How many bytes of the file have been downloaded.  Zero
     *  if the current progress of the file cannot be determined.
     */
-   unsigned long CurrentSize;
+   unsigned long long CurrentSize;
 
    /** \brief The total number of bytes to be downloaded.  Zero if the
     *  total size of the final is unknown.
     */
-   unsigned long TotalSize;
+   unsigned long long TotalSize;
 
    /** \brief How much of the file was already downloaded prior to
     *  starting this worker.
     */
-   unsigned long ResumePoint;
+   unsigned long long ResumePoint;
    
    /** \brief Tell the subprocess to download the given item.
     *
@@ -314,7 +317,7 @@ class pkgAcquire::Worker : public WeakPointable
     *  Closes the file descriptors; if MethodConfig::NeedsCleanup is
     *  \b false, also rudely interrupts the worker with a SIGINT.
     */
-   ~Worker();
+   virtual ~Worker();
 };
 
 /** @} */
index 9478cdfb424aa8d66b88e9e924733472c5ab00e3..cdc3fba4b8059994fa3251953d159a102830569b 100644 (file)
@@ -13,6 +13,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/acquire.h>
 #include <apt-pkg/acquire-item.h>
 #include <apt-pkg/acquire-worker.h>
@@ -21,8 +23,6 @@
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/fileutl.h>
 
-#include <apti18n.h>
-
 #include <iostream>
 #include <sstream>
 #include <stdio.h>
@@ -30,6 +30,8 @@
 #include <dirent.h>
 #include <sys/time.h>
 #include <errno.h>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
@@ -37,9 +39,9 @@ using namespace std;
 // Acquire::pkgAcquire - Constructor                                   /*{{{*/
 // ---------------------------------------------------------------------
 /* We grab some runtime state from the configuration space */
-pkgAcquire::pkgAcquire() : Queues(0), Workers(0), Configs(0), Log(NULL), ToFetch(0),
+pkgAcquire::pkgAcquire() : LockFD(-1), Queues(0), Workers(0), Configs(0), Log(NULL), ToFetch(0),
                           Debug(_config->FindB("Debug::pkgAcquire",false)),
-                          Running(false), LockFD(-1)
+                          Running(false)
 {
    string const Mode = _config->Find("Acquire::Queue-Mode","host");
    if (strcasecmp(Mode.c_str(),"host") == 0)
@@ -47,10 +49,10 @@ pkgAcquire::pkgAcquire() : Queues(0), Workers(0), Configs(0), Log(NULL), ToFetch
    if (strcasecmp(Mode.c_str(),"access") == 0)
       QueueMode = QueueAccess;
 }
-pkgAcquire::pkgAcquire(pkgAcquireStatus *Progress) : Queues(0), Workers(0),
+pkgAcquire::pkgAcquire(pkgAcquireStatus *Progress) :  LockFD(-1), Queues(0), Workers(0),
                           Configs(0), Log(Progress), ToFetch(0),
                           Debug(_config->FindB("Debug::pkgAcquire",false)),
-                          Running(false), LockFD(-1)
+                          Running(false)
 {
    string const Mode = _config->Find("Acquire::Queue-Mode","host");
    if (strcasecmp(Mode.c_str(),"host") == 0)
@@ -116,7 +118,7 @@ pkgAcquire::~pkgAcquire()
 /* */
 void pkgAcquire::Shutdown()
 {
-   while (Items.size() != 0)
+   while (Items.empty() == false)
    {
       if (Items[0]->Status == Item::StatFetching)
          Items[0]->Status = Item::StatError;
@@ -155,7 +157,7 @@ void pkgAcquire::Remove(Item *Itm)
         I = Items.begin();
       }      
       else 
-        I++;
+        ++I;
    }
 }
                                                                        /*}}}*/
@@ -411,7 +413,7 @@ pkgAcquire::RunResult pkgAcquire::Run(int PulseIntervall)
       I->Shutdown(false);
 
    // Shut down the items
-   for (ItemIterator I = Items.begin(); I != Items.end(); I++)
+   for (ItemIterator I = Items.begin(); I != Items.end(); ++I)
       (*I)->Finished(); 
    
    if (_error->PendingError())
@@ -445,6 +447,10 @@ pkgAcquire::Worker *pkgAcquire::WorkerStep(Worker *I)
    if it is part of the download set. */
 bool pkgAcquire::Clean(string Dir)
 {
+   // non-existing directories are by definition clean…
+   if (DirectoryExists(Dir) == false)
+      return true;
+
    DIR *D = opendir(Dir.c_str());   
    if (D == 0)
       return _error->Errno("opendir",_("Unable to read %s"),Dir.c_str());
@@ -467,7 +473,7 @@ bool pkgAcquire::Clean(string Dir)
       
       // Look in the get list
       ItemCIterator I = Items.begin();
-      for (; I != Items.end(); I++)
+      for (; I != Items.end(); ++I)
         if (flNotDir((*I)->DestFile) == Dir->d_name)
            break;
       
@@ -488,7 +494,7 @@ bool pkgAcquire::Clean(string Dir)
 unsigned long long pkgAcquire::TotalNeeded()
 {
    unsigned long long Total = 0;
-   for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); I++)
+   for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); ++I)
       Total += (*I)->FileSize;
    return Total;
 }
@@ -499,7 +505,7 @@ unsigned long long pkgAcquire::TotalNeeded()
 unsigned long long pkgAcquire::FetchNeeded()
 {
    unsigned long long Total = 0;
-   for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); I++)
+   for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); ++I)
       if ((*I)->Local == false)
         Total += (*I)->FileSize;
    return Total;
@@ -511,7 +517,7 @@ unsigned long long pkgAcquire::FetchNeeded()
 unsigned long long pkgAcquire::PartialPresent()
 {
   unsigned long long Total = 0;
-   for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); I++)
+   for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); ++I)
       if ((*I)->Local == false)
         Total += (*I)->PartialSize;
    return Total;
@@ -781,11 +787,11 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner)
    unsigned int Unknown = 0;
    unsigned int Count = 0;
    for (pkgAcquire::ItemCIterator I = Owner->ItemsBegin(); I != Owner->ItemsEnd();
-       I++, Count++)
+       ++I, ++Count)
    {
       TotalItems++;
       if ((*I)->Status == pkgAcquire::Item::StatDone)
-        CurrentItems++;
+        ++CurrentItems;
       
       // Totally ignore local items
       if ((*I)->Local == true)
@@ -795,11 +801,11 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner)
       if ((*I)->Complete == true)
         CurrentBytes += (*I)->FileSize;
       if ((*I)->FileSize == 0 && (*I)->Complete == false)
-        Unknown++;
+        ++Unknown;
    }
    
    // Compute the current completion
-   unsigned long ResumeSize = 0;
+   unsigned long long ResumeSize = 0;
    for (pkgAcquire::Worker *I = Owner->WorkersBegin(); I != 0;
        I = Owner->WorkerStep(I))
       if (I->CurrentItem != 0 && I->CurrentItem->Owner->Complete == false)
@@ -838,7 +844,7 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner)
       else
         CurrentCPS = ((CurrentBytes - ResumeSize) - LastBytes)/Delta;
       LastBytes = CurrentBytes - ResumeSize;
-      ElapsedTime = (unsigned long)Delta;
+      ElapsedTime = (unsigned long long)Delta;
       Time = NewTime;
    }
 
@@ -849,8 +855,9 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner)
 
       char msg[200];
       long i = CurrentItems < TotalItems ? CurrentItems + 1 : CurrentItems;
-      unsigned long ETA =
-        (unsigned long)((TotalBytes - CurrentBytes) / CurrentCPS);
+      unsigned long long ETA = 0;
+      if(CurrentCPS > 0)
+         ETA = (TotalBytes - CurrentBytes) / CurrentCPS;
 
       // only show the ETA if it makes sense
       if (ETA > 0 && ETA < 172800 /* two days */ )
@@ -906,13 +913,13 @@ void pkgAcquireStatus::Stop()
    else
       CurrentCPS = FetchedBytes/Delta;
    LastBytes = CurrentBytes;
-   ElapsedTime = (unsigned int)Delta;
+   ElapsedTime = (unsigned long long)Delta;
 }
                                                                        /*}}}*/
 // AcquireStatus::Fetched - Called when a byte set has been fetched    /*{{{*/
 // ---------------------------------------------------------------------
 /* This is used to get accurate final transfer rate reporting. */
-void pkgAcquireStatus::Fetched(unsigned long Size,unsigned long Resume)
+void pkgAcquireStatus::Fetched(unsigned long long Size,unsigned long long Resume)
 {   
    FetchedBytes += Size - Resume;
 }
index e3a4435b8d7d913d7a37706d1ebf5dd9d387989e..ae555df2206df439e2b42e88277abd913f8526b4 100644 (file)
@@ -91,6 +91,12 @@ class pkgAcquireStatus;
  */
 class pkgAcquire
 {   
+   private:
+   /** \brief FD of the Lock file we acquire in Setup (if any) */
+   int LockFD;
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
    public:
    
    class Item;
@@ -142,12 +148,7 @@ class pkgAcquire
    /** \brief The progress indicator for this download. */
    pkgAcquireStatus *Log;
 
-   /** \brief The total size of the files which are to be fetched.
-    *
-    *  This is not necessarily the total number of bytes to download
-    *  when, e.g., download resumption and list updates via patches
-    *  are taken into account.
-    */
+   /** \brief The number of files which are to be fetched. */
    unsigned long ToFetch;
 
    // Configurable parameters for the scheduler
@@ -348,6 +349,8 @@ class pkgAcquire
     */
    bool Setup(pkgAcquireStatus *Progress = NULL, string const &Lock = "");
 
+   void SetLog(pkgAcquireStatus *Progress) { Log = Progress; }
+
    /** \brief Construct a new pkgAcquire. */
    pkgAcquire(pkgAcquireStatus *Log) __deprecated;
    pkgAcquire();
@@ -359,9 +362,6 @@ class pkgAcquire
     */
    virtual ~pkgAcquire();
 
-   private:
-   /** \brief FD of the Lock file we acquire in Setup (if any) */
-   int LockFD;
 };
 
 /** \brief Represents a single download source from which an item
@@ -391,6 +391,9 @@ class pkgAcquire::Queue
    friend class pkgAcquire::UriIterator;
    friend class pkgAcquire::Worker;
 
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
    /** \brief The next queue in the pkgAcquire object's list of queues. */
    Queue *Next;
    
@@ -478,7 +481,7 @@ class pkgAcquire::Queue
     *
     *  \todo Unimplemented.  Implement it or remove?
     */
-   bool ItemStart(QItem *Itm,unsigned long Size);
+   bool ItemStart(QItem *Itm,unsigned long long Size);
 
    /** \brief Remove the given item from this queue and set its state
     *  to pkgAcquire::Item::StatDone.
@@ -540,12 +543,15 @@ class pkgAcquire::Queue
    /** Shut down all the worker processes associated with this queue
     *  and empty the queue.
     */
-   ~Queue();
+   virtual ~Queue();
 };
                                                                        /*}}}*/
 /** \brief Iterates over all the URIs being fetched by a pkgAcquire object.    {{{*/
 class pkgAcquire::UriIterator
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
    /** The next queue to iterate over. */
    pkgAcquire::Queue *CurQ;
    /** The item that we currently point at. */
@@ -581,11 +587,15 @@ class pkgAcquire::UriIterator
         CurQ = CurQ->Next;
       }
    }   
+   virtual ~UriIterator() {};
 };
                                                                        /*}}}*/
 /** \brief Information about the properties of a single acquire method.        {{{*/
 struct pkgAcquire::MethodConfig
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+   
    /** \brief The next link on the acquire method list.
     *
     *  \todo Why not an STL container?
@@ -634,16 +644,20 @@ struct pkgAcquire::MethodConfig
     *  appropriate.
     */
    MethodConfig();
+
+   /* \brief Destructor, empty currently */
+   virtual ~MethodConfig() {};
 };
                                                                        /*}}}*/
 /** \brief A monitor object for downloads controlled by the pkgAcquire class.  {{{
  *
  *  \todo Why protected members?
- *
- *  \todo Should the double members be uint64_t?
  */
 class pkgAcquireStatus
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
    protected:
    
    /** \brief The last time at which this monitor object was updated. */
@@ -655,34 +669,34 @@ class pkgAcquireStatus
    /** \brief The number of bytes fetched as of the previous call to
     *  pkgAcquireStatus::Pulse, including local items.
     */
-   double LastBytes;
+   unsigned long long LastBytes;
 
    /** \brief The current rate of download as of the most recent call
     *  to pkgAcquireStatus::Pulse, in bytes per second.
     */
-   double CurrentCPS;
+   unsigned long long CurrentCPS;
 
    /** \brief The number of bytes fetched as of the most recent call
     *  to pkgAcquireStatus::Pulse, including local items.
     */
-   double CurrentBytes;
+   unsigned long long CurrentBytes;
 
    /** \brief The total number of bytes that need to be fetched.
     *
     *  \warning This member is inaccurate, as new items might be
     *  enqueued while the download is in progress!
     */
-   double TotalBytes;
+   unsigned long long TotalBytes;
 
    /** \brief The total number of bytes accounted for by items that
     *  were successfully fetched.
     */
-   double FetchedBytes;
+   unsigned long long FetchedBytes;
 
    /** \brief The amount of time that has elapsed since the download
     *   started.
     */
-   unsigned long ElapsedTime;
+   unsigned long long ElapsedTime;
 
    /** \brief The total number of items that need to be fetched.
     *
@@ -715,7 +729,7 @@ class pkgAcquireStatus
     *
     *  \param ResumePoint How much of the file was already fetched.
     */
-   virtual void Fetched(unsigned long Size,unsigned long ResumePoint);
+   virtual void Fetched(unsigned long long Size,unsigned long long ResumePoint);
    
    /** \brief Invoked when the user should be prompted to change the
     *         inserted removable media.
index 2dae4258a964c1935201235e7c3a72c1f26172d4..40368c91f1dc2e49b08571b9a3458f91dbfbb3fe 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/algorithms.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/version.h>
 #include <apt-pkg/sptr.h>
 #include <apt-pkg/acquire-item.h>
-    
-#include <apti18n.h>
+#include <apt-pkg/edsp.h>
+
 #include <sys/types.h>
 #include <cstdlib>
 #include <algorithm>
 #include <iostream>
+#include <stdio.h>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 using namespace std;
 
@@ -91,7 +96,7 @@ bool pkgSimulate::Install(PkgIterator iPkg,string /*File*/)
    Sim.MarkInstall(Pkg,false);
 
    // Look for broken conflicts+predepends.
-   for (PkgIterator I = Sim.PkgBegin(); I.end() == false; I++)
+   for (PkgIterator I = Sim.PkgBegin(); I.end() == false; ++I)
    {
       if (Sim[I].InstallVer == 0)
         continue;
@@ -140,7 +145,7 @@ bool pkgSimulate::Configure(PkgIterator iPkg)
       Sim.Update();
       
       // Print out each package and the failed dependencies
-      for (pkgCache::DepIterator D = Sim[Pkg].InstVerIter(Sim).DependsList(); D.end() == false; D++)
+      for (pkgCache::DepIterator D = Sim[Pkg].InstVerIter(Sim).DependsList(); D.end() == false; ++D)
       {
         if (Sim.IsImportantDep(D) == false || 
             (Sim[D] & pkgDepCache::DepInstall) != 0)
@@ -204,7 +209,7 @@ bool pkgSimulate::Remove(PkgIterator iPkg,bool Purge)
 void pkgSimulate::ShortBreaks()
 {
    cout << " [";
-   for (PkgIterator I = Sim.PkgBegin(); I.end() == false; I++)
+   for (PkgIterator I = Sim.PkgBegin(); I.end() == false; ++I)
    {
       if (Sim[I].InstBroken() == true)
       {
@@ -226,7 +231,7 @@ bool pkgApplyStatus(pkgDepCache &Cache)
 {
    pkgDepCache::ActionGroup group(Cache);
 
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
    {
       if (I->VersionList == 0)
         continue;
@@ -295,13 +300,13 @@ bool pkgFixBroken(pkgDepCache &Cache)
    pkgDepCache::ActionGroup group(Cache);
 
    // Auto upgrade all broken packages
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
       if (Cache[I].NowBroken() == true)
         Cache.MarkInstall(I, true, 0, false);
    
    /* Fix packages that are in a NeedArchive state but don't have a
       downloadable install version */
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
    {
       if (I.State() != pkgCache::PkgIterator::NeedsUnpack ||
          Cache[I].Delete() == true)
@@ -327,6 +332,12 @@ bool pkgFixBroken(pkgDepCache &Cache)
  */
 bool pkgDistUpgrade(pkgDepCache &Cache)
 {
+   std::string const solver = _config->Find("APT::Solver", "internal");
+   if (solver != "internal") {
+      OpTextProgress Prog(*_config);
+      return EDSP::ResolveExternal(solver.c_str(), Cache, false, true, false, &Prog);
+   }
+
    pkgDepCache::ActionGroup group(Cache);
 
    /* Upgrade all installed packages first without autoinst to help the resolver
@@ -338,19 +349,19 @@ bool pkgDistUpgrade(pkgDepCache &Cache)
 
    /* Auto upgrade all installed packages, this provides the basis 
       for the installation */
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
       if (I->CurrentVer != 0)
         Cache.MarkInstall(I, true, 0, false);
 
    /* Now, auto upgrade all essential packages - this ensures that
       the essential packages are present and working */
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
       if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential)
         Cache.MarkInstall(I, true, 0, false);
    
    /* We do it again over all previously installed packages to force 
       conflict resolution on them all. */
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
       if (I->CurrentVer != 0)
         Cache.MarkInstall(I, false, 0, false);
 
@@ -359,7 +370,7 @@ bool pkgDistUpgrade(pkgDepCache &Cache)
    // Hold back held packages.
    if (_config->FindB("APT::Ignore-Hold",false) == false)
    {
-      for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+      for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
       {
         if (I->SelectedState == pkgCache::State::Hold)
         {
@@ -379,6 +390,12 @@ bool pkgDistUpgrade(pkgDepCache &Cache)
    to install packages not marked for install */
 bool pkgAllUpgrade(pkgDepCache &Cache)
 {
+   std::string const solver = _config->Find("APT::Solver", "internal");
+   if (solver != "internal") {
+      OpTextProgress Prog(*_config);
+      return EDSP::ResolveExternal(solver.c_str(), Cache, true, false, false, &Prog);
+   }
+
    pkgDepCache::ActionGroup group(Cache);
 
    pkgProblemResolver Fix(&Cache);
@@ -387,7 +404,7 @@ bool pkgAllUpgrade(pkgDepCache &Cache)
       return false;
    
    // Upgrade all installed packages
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
    {
       if (Cache[I].Install() == true)
         Fix.Protect(I);
@@ -421,7 +438,7 @@ bool pkgMinimizeUpgrade(pkgDepCache &Cache)
    do
    {
       Change = false;
-      for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+      for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
       {
         // Not interesting
         if (Cache[I].Upgrade() == false || Cache[I].NewInstall() == true)
@@ -438,7 +455,7 @@ bool pkgMinimizeUpgrade(pkgDepCache &Cache)
               Change = true;
         }       
       }      
-      Count++;
+      ++Count;
    }
    while (Change == true && Count < 10);
 
@@ -525,7 +542,7 @@ void pkgProblemResolver::MakeScores()
          << "  AddEssential => " << AddEssential << endl;
 
    // Generate the base scores for a package based on its properties
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
    {
       if (Cache[I].InstallVer == 0)
         continue;
@@ -552,12 +569,12 @@ void pkgProblemResolver::MakeScores()
    }
 
    // Now that we have the base scores we go and propogate dependencies
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
    {
       if (Cache[I].InstallVer == 0)
         continue;
       
-      for (pkgCache::DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); D.end() == false; D++)
+      for (pkgCache::DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); D.end() == false; ++D)
       {
         if (D->Type == pkgCache::Dep::Depends || 
             D->Type == pkgCache::Dep::PreDepends)
@@ -574,12 +591,12 @@ void pkgProblemResolver::MakeScores()
    /* Now we cause 1 level of dependency inheritance, that is we add the 
       score of the packages that depend on the target Package. This 
       fortifies high scoring packages */
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
    {
       if (Cache[I].InstallVer == 0)
         continue;
       
-      for (pkgCache::DepIterator D = I.RevDependsList(); D.end() == false; D++)
+      for (pkgCache::DepIterator D = I.RevDependsList(); D.end() == false; ++D)
       {
         // Only do it for the install version
         if ((pkgCache::Version *)D.ParentVer() != Cache[D.ParentPkg()].InstallVer ||
@@ -594,9 +611,9 @@ void pkgProblemResolver::MakeScores()
 
    /* Now we propogate along provides. This makes the packages that 
       provide important packages extremely important */
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
    {
-      for (pkgCache::PrvIterator P = I.ProvidesList(); P.end() == false; P++)
+      for (pkgCache::PrvIterator P = I.ProvidesList(); P.end() == false; ++P)
       {
         // Only do it once per package
         if ((pkgCache::Version *)P.OwnerVer() != Cache[P.OwnerPkg()].InstallVer)
@@ -607,7 +624,7 @@ void pkgProblemResolver::MakeScores()
 
    /* Protected things are pushed really high up. This number should put them
       ahead of everything */
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
    {
       if ((Flags[I->ID] & Protected) != 0)
         Scores[I->ID] += AddProtected;
@@ -704,7 +721,7 @@ bool pkgProblemResolver::DoUpgrade(pkgCache::PkgIterator Pkg)
         
         if (Start == End)
            break;
-        Start++;
+        ++Start;
       }
       if (Fail == true)
         break;
@@ -725,7 +742,20 @@ bool pkgProblemResolver::DoUpgrade(pkgCache::PkgIterator Pkg)
    return true;
 }
                                                                        /*}}}*/
-// ProblemResolver::Resolve - Run the resolution pass                  /*{{{*/
+// ProblemResolver::Resolve - calls a resolver to fix the situation    /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+bool pkgProblemResolver::Resolve(bool BrokenFix)
+{
+   std::string const solver = _config->Find("APT::Solver", "internal");
+   if (solver != "internal") {
+      OpTextProgress Prog(*_config);
+      return EDSP::ResolveExternal(solver.c_str(), Cache, false, false, false, &Prog);
+   }
+   return ResolveInternal(BrokenFix);
+}
+                                                                       /*}}}*/
+// ProblemResolver::ResolveInternal - Run the resolution pass          /*{{{*/
 // ---------------------------------------------------------------------
 /* This routines works by calculating a score for each package. The score
    is derived by considering the package's priority and all reverse 
@@ -739,18 +769,16 @@ bool pkgProblemResolver::DoUpgrade(pkgCache::PkgIterator Pkg)
  
    The BrokenFix flag enables a mode where the algorithm tries to 
    upgrade packages to advoid problems. */
-bool pkgProblemResolver::Resolve(bool BrokenFix)
+bool pkgProblemResolver::ResolveInternal(bool const BrokenFix)
 {
    pkgDepCache::ActionGroup group(Cache);
 
-   unsigned long Size = Cache.Head().PackageCount;
-
    // Record which packages are marked for install
    bool Again = false;
    do
    {
       Again = false;
-      for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+      for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
       {
         if (Cache[I].Install() == true)
            Flags[I->ID] |= PreInstalled;
@@ -774,14 +802,16 @@ bool pkgProblemResolver::Resolve(bool BrokenFix)
       clog << "Starting" << endl;
    
    MakeScores();
-   
+
+   unsigned long const Size = Cache.Head().PackageCount;
+
    /* We have to order the packages so that the broken fixing pass 
       operates from highest score to lowest. This prevents problems when
       high score packages cause the removal of lower score packages that
       would cause the removal of even lower score packages. */
    SPtrArray<pkgCache::Package *> PList = new pkgCache::Package *[Size];
    pkgCache::Package **PEnd = PList;
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
       *PEnd++ = I;
    This = this;
    qsort(PList,PEnd - PList,sizeof(*PList),&ScoreSort);
@@ -901,7 +931,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix)
            }
            else
             {
-              Start++;
+              ++Start;
               // We only worry about critical deps.
               if (Start.IsCritical() != true)
                   continue;
@@ -1150,7 +1180,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix)
    {
       // See if this is the result of a hold
       pkgCache::PkgIterator I = Cache.PkgBegin();
-      for (;I.end() != true; I++)
+      for (;I.end() != true; ++I)
       {
         if (Cache[I].InstBroken() == false)
            continue;
@@ -1162,7 +1192,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix)
    
    // set the auto-flags (mvo: I'm not sure if we _really_ need this)
    pkgCache::PkgIterator I = Cache.PkgBegin();
-   for (;I.end() != true; I++) {
+   for (;I.end() != true; ++I) {
       if (Cache[I].NewInstall() && !(Flags[I->ID] & PreInstalled)) {
         if(_config->FindI("Debug::pkgAutoRemove",false)) {
            std::clog << "Resolve installed new pkg: " << I.FullName(false) 
@@ -1176,12 +1206,52 @@ bool pkgProblemResolver::Resolve(bool BrokenFix)
    return true;
 }
                                                                        /*}}}*/
+
+// ProblemResolver::BreaksInstOrPolicy - Check if the given pkg is broken/*{{{*/
+// ---------------------------------------------------------------------
+/* This checks if the given package is broken either by a hard dependency
+   (InstBroken()) or by introducing a new policy breakage e.g. new
+   unsatisfied recommends for a package that was in "policy-good" state
+
+   Note that this is not perfect as it will ignore further breakage
+   for already broken policy (recommends)
+*/
+bool pkgProblemResolver::InstOrNewPolicyBroken(pkgCache::PkgIterator I)
+{
+   
+   // a broken install is always a problem
+   if (Cache[I].InstBroken() == true)
+      return true;
+
+   // a newly broken policy (recommends/suggests) is a problem
+   if (Cache[I].NowPolicyBroken() == false &&
+       Cache[I].InstPolicyBroken() == true)
+      return true;
+       
+   return false;
+}
+
 // ProblemResolver::ResolveByKeep - Resolve problems using keep                /*{{{*/
 // ---------------------------------------------------------------------
 /* This is the work horse of the soft upgrade routine. It is very gental 
    in that it does not install or remove any packages. It is assumed that the
    system was non-broken previously. */
 bool pkgProblemResolver::ResolveByKeep()
+{
+   std::string const solver = _config->Find("APT::Solver", "internal");
+   if (solver != "internal") {
+      OpTextProgress Prog(*_config);
+      return EDSP::ResolveExternal(solver.c_str(), Cache, true, false, false, &Prog);
+   }
+   return ResolveByKeepInternal();
+}
+                                                                       /*}}}*/
+// ProblemResolver::ResolveByKeepInternal - Resolve problems using keep        /*{{{*/
+// ---------------------------------------------------------------------
+/* This is the work horse of the soft upgrade routine. It is very gental
+   in that it does not install or remove any packages. It is assumed that the
+   system was non-broken previously. */
+bool pkgProblemResolver::ResolveByKeepInternal()
 {
    pkgDepCache::ActionGroup group(Cache);
 
@@ -1195,7 +1265,7 @@ bool pkgProblemResolver::ResolveByKeep()
       would cause the removal of even lower score packages. */
    pkgCache::Package **PList = new pkgCache::Package *[Size];
    pkgCache::Package **PEnd = PList;
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
       *PEnd++ = I;
    This = this;
    qsort(PList,PEnd - PList,sizeof(*PList),&ScoreSort);
@@ -1220,9 +1290,12 @@ bool pkgProblemResolver::ResolveByKeep()
    {
       pkgCache::PkgIterator I(Cache,*K);
 
-      if (Cache[I].InstallVer == 0 || Cache[I].InstBroken() == false)
+      if (Cache[I].InstallVer == 0)
         continue;
 
+      if (InstOrNewPolicyBroken(I) == false)
+         continue;
+
       /* Keep the package. If this works then great, otherwise we have
                 to be significantly more agressive and manipulate its dependencies */
       if ((Flags[I->ID] & Protected) == 0)
@@ -1230,7 +1303,7 @@ bool pkgProblemResolver::ResolveByKeep()
         if (Debug == true)
            clog << "Keeping package " << I.FullName(false) << endl;
         Cache.MarkKeep(I, false, false);
-        if (Cache[I].InstBroken() == false)
+        if (InstOrNewPolicyBroken(I) == false)
         {
            K = PList - 1;
            continue;
@@ -1280,23 +1353,23 @@ bool pkgProblemResolver::ResolveByKeep()
                  Cache.MarkKeep(Pkg, false, false);
               }
               
-              if (Cache[I].InstBroken() == false)
+              if (InstOrNewPolicyBroken(I) == false)
                  break;
            }
            
-           if (Cache[I].InstBroken() == false)
+           if (InstOrNewPolicyBroken(I) == false)
               break;
 
            if (Start == End)
               break;
-           Start++;
+           ++Start;
         }
              
-        if (Cache[I].InstBroken() == false)
+        if (InstOrNewPolicyBroken(I) == false)
            break;
       }
 
-      if (Cache[I].InstBroken() == true)
+      if (InstOrNewPolicyBroken(I) == true)
         continue;
       
       // Restart again.
@@ -1316,7 +1389,7 @@ void pkgProblemResolver::InstallProtect()
 {
    pkgDepCache::ActionGroup group(Cache);
 
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
    {
       if ((Flags[I->ID] & Protected) == Protected)
       {
@@ -1396,7 +1469,7 @@ bool ListUpdate(pkgAcquireStatus &Stat,
    bool Failed = false;
    bool TransientNetworkFailure = false;
    for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); 
-       I != Fetcher.ItemsEnd(); I++)
+       I != Fetcher.ItemsEnd(); ++I)
    {
       if ((*I)->Status == pkgAcquire::Item::StatDone)
         continue;
index ebe31cc103024ab08124cb57bf5d8b400cbf7329..86d5fbd5309d28439680524258fb0167b52aaf56 100644 (file)
@@ -78,6 +78,9 @@ private:
                                                                        /*}}}*/
 class pkgProblemResolver                                               /*{{{*/
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
    pkgDepCache &Cache;
    typedef pkgCache::PkgIterator PkgIterator;
    typedef pkgCache::VerIterator VerIterator;
@@ -105,7 +108,13 @@ class pkgProblemResolver                                           /*{{{*/
 
    void MakeScores();
    bool DoUpgrade(pkgCache::PkgIterator Pkg);
+
+   bool ResolveInternal(bool const BrokenFix = false);
+   bool ResolveByKeepInternal();
    
+   protected:
+   bool InstOrNewPolicyBroken(pkgCache::PkgIterator Pkg);
+
    public:
    
    inline void Protect(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] |= Protected; Cache.MarkProtected(Pkg);};
index e8c8e73d0b042919e408beb77f9f91d355323daf..e1bc94f31302230051edd4986274a9c8d4da78e6 100644 (file)
@@ -8,6 +8,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/aptconfiguration.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/error.h>
@@ -53,7 +55,7 @@ const Configuration::getCompressionTypes(bool const &Cached) {
        // load the order setting into our vector
        std::vector<std::string> const order = _config->FindVector("Acquire::CompressionTypes::Order");
        for (std::vector<std::string>::const_iterator o = order.begin();
-            o != order.end(); o++) {
+            o != order.end(); ++o) {
                if ((*o).empty() == true)
                        continue;
                // ignore types we have no method ready to use
@@ -274,7 +276,7 @@ std::vector<std::string> const Configuration::getLanguages(bool const &All,
        // then needed and ensure the codes are not listed twice.
        bool noneSeen = false;
        for (std::vector<string>::const_iterator l = lang.begin();
-            l != lang.end(); l++) {
+            l != lang.end(); ++l) {
                if (*l == "environment") {
                        for (std::vector<string>::const_iterator e = environment.begin();
                             e != environment.end(); ++e) {
@@ -352,7 +354,7 @@ std::vector<std::string> const Configuration::getArchitectures(bool const &Cache
 
        if (archs.empty() == true ||
            std::find(archs.begin(), archs.end(), arch) == archs.end())
-               archs.push_back(arch);
+               archs.insert(archs.begin(), arch);
 
        // erase duplicates and empty strings
        for (std::vector<string>::reverse_iterator a = archs.rbegin();
index 815db6caee0fb4929cc5a9f7f1bedef8ff7ab465..e098d0fd6f4ea9d3921cd1cb0a77e9e128e9f5d8 100644 (file)
@@ -13,6 +13,7 @@
 // Include Files                                                       /*{{{*/
 #include <string>
 #include <vector>
+#include <limits>
                                                                        /*}}}*/
 namespace APT {
 class Configuration {                                                  /*{{{*/
@@ -36,7 +37,7 @@ public:                                                                       /*{{{*/
         *  \param Cached saves the result so we need to calculated it only once
         *                this parameter should ony be used for testing purposes.
         *
-        *  \return a vector of (all) Language Codes in the prefered usage order
+        *  \return a vector of the compression types in the prefered usage order
         */
        std::vector<std::string> static const getCompressionTypes(bool const &Cached = true);
 
@@ -94,7 +95,7 @@ public:                                                                       /*{{{*/
                Compressor(char const *name, char const *extension, char const *binary,
                           char const *compressArg, char const *uncompressArg,
                           unsigned short const cost);
-               Compressor() {};
+               Compressor() : Cost(std::numeric_limits<unsigned short>::max()) {};
        };
 
        /** \brief Return a vector of Compressors supported for data.tar's
index 964c5bd8bc9ad486472ea3854947bac4fc809874..f38dfc58199e5e1ce6359c8a4784005cff0917ec 100644 (file)
@@ -12,6 +12,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/cachefile.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/sourcelist.h>
@@ -21,7 +23,7 @@
 #include <apt-pkg/pkgsystem.h>
 #include <apt-pkg/acquire-item.h>
 #include <apt-pkg/fileutl.h>
-    
+
 #include <apti18n.h>
                                                                        /*}}}*/
 // CacheFile::CacheFile - Constructor                                  /*{{{*/
@@ -163,6 +165,20 @@ bool pkgCacheFile::Open(OpProgress *Progress, bool WithLock)
    return true;
 }
                                                                        /*}}}*/
+// CacheFile::RemoveCaches - remove all cache files from disk          /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+void pkgCacheFile::RemoveCaches()
+{
+   std::string const pkgcache = _config->FindFile("Dir::cache::pkgcache");
+   std::string const srcpkgcache = _config->FindFile("Dir::cache::srcpkgcache");
+
+   if (pkgcache.empty() == false && RealFileExists(pkgcache) == true)
+      unlink(pkgcache.c_str());
+   if (srcpkgcache.empty() == false && RealFileExists(srcpkgcache) == true)
+      unlink(srcpkgcache.c_str());
+}
+                                                                       /*}}}*/
 // CacheFile::Close - close the cache files                            /*{{{*/
 // ---------------------------------------------------------------------
 /* */
index 09d3ec2676675c3063f32f5cc016b11eb7d245fe..243061f0fb24caf5a57acd4e403ed04d5678b92f 100644 (file)
@@ -25,6 +25,9 @@
 
 class pkgCacheFile
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
    protected:
    
    MMap *Map;
@@ -57,6 +60,7 @@ class pkgCacheFile
    bool Open(OpProgress *Progress = NULL, bool WithLock = true);
    inline bool ReadOnlyOpen(OpProgress *Progress = NULL) { return Open(Progress, false); };
    __deprecated bool Open(OpProgress &Progress,bool const &WithLock = true) { return Open(&Progress, WithLock); };
+   static void RemoveCaches();
    void Close();
 
    inline pkgCache* GetPkgCache() { BuildCaches(NULL, false); return Cache; };
index 8f0725ea3fd98271b413b3c251cfc885c117c2f9..210a9a9ab8f2eac5047500daabe5c31aedc55bf8 100644 (file)
@@ -4,6 +4,8 @@
     Collection of functor classes */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/cachefilter.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/pkgcache.h>
index e7ab1723fe992e0b54e4e49b1be06d3053688aae..5d426008b26288abb9f83a2f1d671fedfe8ead51 100644 (file)
@@ -16,6 +16,8 @@ namespace APT {
 namespace CacheFilter {
 // PackageNameMatchesRegEx                                             /*{{{*/
 class PackageNameMatchesRegEx {
+         /** \brief dpointer placeholder (for later in case we need it) */
+         void *d;
        regex_t* pattern;
 public:
        PackageNameMatchesRegEx(std::string const &Pattern);
index 0c9813c6d470c460f74d38800ef47b4a37c3df41..b97a1a5894888b530fab5ed3165023d852bad4e3 100644 (file)
@@ -206,15 +206,10 @@ class pkgCache::VerIterator : public Iterator<Version, VerIterator> {
        inline const char *VerStr() const {return S->VerStr == 0?0:Owner->StrP + S->VerStr;};
        inline const char *Section() const {return S->Section == 0?0:Owner->StrP + S->Section;};
        inline const char *Arch() const {
-               if (S->MultiArch == pkgCache::Version::All ||
-                   S->MultiArch == pkgCache::Version::AllForeign ||
-                   S->MultiArch == pkgCache::Version::AllAllowed)
+               if (S->MultiArch == pkgCache::Version::All)
                        return "all";
                return S->ParentPkg == 0?0:Owner->StrP + ParentPkg()->Arch;
        };
-       __deprecated inline const char *Arch(bool const pseudo) const {
-               return S->ParentPkg == 0?0:Owner->StrP + ParentPkg()->Arch;
-       };
        inline PkgIterator ParentPkg() const {return PkgIterator(*Owner,Owner->PkgP + S->ParentPkg);};
 
        inline DescIterator DescriptionList() const;
@@ -227,7 +222,6 @@ class pkgCache::VerIterator : public Iterator<Version, VerIterator> {
        string RelStr() const;
 
        bool Automatic() const;
-       __deprecated bool Pseudo() const;
        VerFileIterator NewestFile() const;
 
        inline VerIterator(pkgCache &Owner,Version *Trg = 0) : Iterator<Version, VerIterator>(Owner, Trg) {
index a1de613e2636c6e65b5fa94f4634c47edbd6e194..386ecfb5fad83f4f7106348c6c79a7ba2e3dfec0 100644 (file)
@@ -9,6 +9,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/aptconfiguration.h>
 #include <apt-pkg/cachefilter.h>
 #include <apt-pkg/cacheset.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/versionmatch.h>
 
-#include <apti18n.h>
-
 #include <vector>
 
 #include <regex.h>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 namespace APT {
 // FromTask - Return all packages in the cache from a specific task    /*{{{*/
index eb4f04d7262c2e029c01c754d23e66b61c053d34..061d0a2f49583e7944237aff12992da33de56f50 100644 (file)
@@ -257,7 +257,6 @@ public:                                                                     /*{{{*/
                inline const char *VerStr() const { return (**this).VerStr(); };
                inline const char *Section() const { return (**this).Section(); };
                inline const char *Arch() const { return (**this).Arch(); };
-               __deprecated inline const char *Arch(bool const pseudo) const { return (**this).Arch(); };
                inline pkgCache::PkgIterator ParentPkg() const { return (**this).ParentPkg(); };
                inline pkgCache::DescIterator DescriptionList() const { return (**this).DescriptionList(); };
                inline pkgCache::DescIterator TranslatedDescription() const { return (**this).TranslatedDescription(); };
@@ -268,7 +267,6 @@ public:                                                                     /*{{{*/
                inline const char *PriorityType() const { return (**this).PriorityType(); };
                inline string RelStr() const { return (**this).RelStr(); };
                inline bool Automatic() const { return (**this).Automatic(); };
-               __deprecated inline bool Pseudo() const { return false; };
                inline pkgCache::VerFileIterator NewestFile() const { return (**this).NewestFile(); };
        };
                                                                        /*}}}*/
index 2a914c6654d6dec1f7b1979c1259aaa03b1aaabb..392cd890e648d0d520741277f886ffc05ff0419a 100644 (file)
@@ -1,5 +1,6 @@
 /*
  */
+#include<config.h>
 
 #include<apt-pkg/init.h>
 #include<apt-pkg/error.h>
@@ -10,8 +11,6 @@
 
 #include<sstream>
 #include<fstream>
-#include<config.h>
-#include<apti18n.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <dirent.h>
@@ -22,6 +21,8 @@
 
 #include "indexcopy.h"
 
+#include<apti18n.h>
+
 using namespace std;
 
 // FindPackages - Find the package files on the CDROM                  /*{{{*/
@@ -310,7 +311,7 @@ void pkgCdrom::ReduceSourcelist(string CD,vector<string> &List)
    sort(List.begin(),List.end());
    
    // Collect similar entries
-   for (vector<string>::iterator I = List.begin(); I != List.end(); I++)
+   for (vector<string>::iterator I = List.begin(); I != List.end(); ++I)
    {
       // Find a space..
       string::size_type Space = (*I).find(' ');
@@ -322,7 +323,7 @@ void pkgCdrom::ReduceSourcelist(string CD,vector<string> &List)
 
       string Word1 = string(*I,Space,SSpace-Space);
       string Prefix = string(*I,0,Space);
-      for (vector<string>::iterator J = List.begin(); J != I; J++)
+      for (vector<string>::iterator J = List.begin(); J != I; ++J)
       {
         // Find a space..
         string::size_type Space2 = (*J).find(' ');
@@ -405,7 +406,7 @@ bool pkgCdrom::WriteDatabase(Configuration &Cnf)
    that were the same. */
 bool pkgCdrom::WriteSourceList(string Name,vector<string> &List,bool Source)
 {
-   if (List.size() == 0)
+   if (List.empty() == true)
       return true;
 
    string File = _config->FindFile("Dir::Etc::sourcelist");
@@ -455,7 +456,7 @@ bool pkgCdrom::WriteSourceList(string Name,vector<string> &List,bool Source)
 
       if (First == true)
       {
-        for (vector<string>::iterator I = List.begin(); I != List.end(); I++)
+        for (vector<string>::iterator I = List.begin(); I != List.end(); ++I)
         {
            string::size_type Space = (*I).find(' ');
            if (Space == string::npos)
@@ -489,7 +490,7 @@ bool pkgCdrom::WriteSourceList(string Name,vector<string> &List,bool Source)
    // Just in case the file was empty
    if (First == true)
    {
-      for (vector<string>::iterator I = List.begin(); I != List.end(); I++)
+      for (vector<string>::iterator I = List.begin(); I != List.end(); ++I)
       {
         string::size_type Space = (*I).find(' ');
         if (Space == string::npos)
@@ -661,13 +662,13 @@ bool pkgCdrom::Add(pkgCdromStatus *log)                                   /*{{{*/
    if (_config->FindB("Debug::aptcdrom",false) == true)
    {
       cout << "I found (binary):" << endl;
-      for (vector<string>::iterator I = List.begin(); I != List.end(); I++)
+      for (vector<string>::iterator I = List.begin(); I != List.end(); ++I)
         cout << *I << endl;
       cout << "I found (source):" << endl;
-      for (vector<string>::iterator I = SourceList.begin(); I != SourceList.end(); I++)
+      for (vector<string>::iterator I = SourceList.begin(); I != SourceList.end(); ++I)
         cout << *I << endl;
       cout << "I found (Signatures):" << endl;
-      for (vector<string>::iterator I = SigList.begin(); I != SigList.end(); I++)
+      for (vector<string>::iterator I = SigList.begin(); I != SigList.end(); ++I)
         cout << *I << endl;
    }   
 
@@ -688,7 +689,7 @@ bool pkgCdrom::Add(pkgCdromStatus *log)                                     /*{{{*/
       log->Update(msg.str(), STEP_SCAN);
    }
 
-   if (List.size() == 0 && SourceList.size() == 0
+   if (List.empty() == true && SourceList.empty() == true
    {
       if (_config->FindB("APT::CDROM::NoMount",false) == false) 
         UnmountCdrom(CDROM);
@@ -712,7 +713,7 @@ bool pkgCdrom::Add(pkgCdromStatus *log)                                     /*{{{*/
         {
            // Escape special characters
            string::iterator J = Name.begin();
-           for (; J != Name.end(); J++)
+           for (; J != Name.end(); ++J)
               if (*J == '"' || *J == ']' || *J == '[')
                  *J = '_';
            
@@ -757,7 +758,7 @@ bool pkgCdrom::Add(pkgCdromStatus *log)                                     /*{{{*/
 
    // Escape special characters
    string::iterator J = Name.begin();
-   for (; J != Name.end(); J++)
+   for (; J != Name.end(); ++J)
       if (*J == '"' || *J == ']' || *J == '[')
         *J = '_';
    
@@ -804,7 +805,7 @@ bool pkgCdrom::Add(pkgCdromStatus *log)                                     /*{{{*/
    if(log != NULL)
       log->Update(_("Source list entries for this disc are:\n"));
 
-   for (vector<string>::iterator I = List.begin(); I != List.end(); I++)
+   for (vector<string>::iterator I = List.begin(); I != List.end(); ++I)
    {
       string::size_type Space = (*I).find(' ');
       if (Space == string::npos)
@@ -823,7 +824,7 @@ bool pkgCdrom::Add(pkgCdromStatus *log)                                     /*{{{*/
       }
    }
 
-   for (vector<string>::iterator I = SourceList.begin(); I != SourceList.end(); I++)
+   for (vector<string>::iterator I = SourceList.begin(); I != SourceList.end(); ++I)
    {
       string::size_type Space = (*I).find(' ');
       if (Space == string::npos)
@@ -874,9 +875,7 @@ pkgUdevCdromDevices::Dlopen()                                       /*{{{*/
    libudev_handle = h;
    udev_new = (udev* (*)(void)) dlsym(h, "udev_new");
    udev_enumerate_add_match_property = (int (*)(udev_enumerate*, const char*, const char*))dlsym(h, "udev_enumerate_add_match_property");
-#if 0 // FIXME: uncomment on next ABI break
    udev_enumerate_add_match_sysattr = (int (*)(udev_enumerate*, const char*, const char*))dlsym(h, "udev_enumerate_add_match_sysattr");
-#endif
    udev_enumerate_scan_devices = (int (*)(udev_enumerate*))dlsym(h, "udev_enumerate_scan_devices");
    udev_enumerate_get_list_entry = (udev_list_entry* (*)(udev_enumerate*))dlsym(h, "udev_enumerate_get_list_entry");
    udev_device_new_from_syspath = (udev_device* (*)(udev*, const char*))dlsym(h, "udev_device_new_from_syspath");
@@ -890,10 +889,8 @@ pkgUdevCdromDevices::Dlopen()                                      /*{{{*/
    return true;
 }
                                                                        /*}}}*/
-
                                                                         /*{{{*/
-// compatiblity only with the old API/ABI, can be removed on the next
-// ABI break
+// convenience interface, this will just call ScanForRemovable
 vector<CdromDevice>
 pkgUdevCdromDevices::Scan()
 { 
@@ -918,10 +915,6 @@ pkgUdevCdromDevices::ScanForRemovable(bool CdromOnly)
    if (CdromOnly)
       udev_enumerate_add_match_property(enumerate, "ID_CDROM", "1");
    else {
-#if 1 // FIXME: remove the next two lines on the next ABI break
-      int (*udev_enumerate_add_match_sysattr)(struct udev_enumerate *udev_enumerate, const char *property, const char *value);
-      udev_enumerate_add_match_sysattr = (int (*)(udev_enumerate*, const char*, const char*))dlsym(libudev_handle, "udev_enumerate_add_match_sysattr");
-#endif
       udev_enumerate_add_match_sysattr(enumerate, "removable", "1");
    }
 
index e83c385829bfc965fb3279ff440118198ac371ce..614062cbb3293787de26f6fa6be2e530b82f991f 100644 (file)
@@ -92,9 +92,7 @@ class pkgUdevCdromDevices                                             /*{{{*/
    struct udev_enumerate *(*udev_enumerate_new) (struct udev *udev);
    struct udev_list_entry *(*udev_list_entry_get_next)(struct udev_list_entry *list_entry);
    const char* (*udev_device_get_property_value)(struct udev_device *udev_device, const char *key);
-#if 0 // FIXME: uncomment on next ABI break
    int (*udev_enumerate_add_match_sysattr)(struct udev_enumerate *udev_enumerate, const char *property, const char *value);
-#endif 
    // end libudev dlopen
    
  public:
@@ -104,11 +102,11 @@ class pkgUdevCdromDevices                                         /*{{{*/
    // try to open 
    bool Dlopen();
 
-   // this is the new interface
-   vector<CdromDevice> ScanForRemovable(bool CdromOnly);
-   // FIXME: compat with the old interface/API/ABI only
+   // convenience interface, this will just call ScanForRemovable
+   // with "APT::cdrom::CdromOnly"
    vector<CdromDevice> Scan();
 
+   vector<CdromDevice> ScanForRemovable(bool CdromOnly);
 };
                                                                        /*}}}*/
 
index 629afd7cf2a7849e4b8ff2798a39698e5a0c7019..1f96e941b22ef4e333ad240ba5f4f8bbc961892b 100644 (file)
@@ -8,17 +8,19 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Includes                                                            /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/clean.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/aptconfiguration.h>
 
-#include <apti18n.h>    
-
 #include <dirent.h>
 #include <sys/stat.h>
 #include <unistd.h>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 // ArchiveCleaner::Go - Perform smart cleanup of the archive           /*{{{*/
 // ---------------------------------------------------------------------
@@ -85,12 +87,12 @@ bool pkgArchiveCleaner::Go(string Dir,pkgCache &Cache)
       if (P.end() != true)
       {
         pkgCache::VerIterator V = P.VersionList();
-        for (; V.end() == false; V++)
+        for (; V.end() == false; ++V)
         {
            // See if we can fetch this version at all
            bool IsFetchable = false;
            for (pkgCache::VerFileIterator J = V.FileList(); 
-                J.end() == false; J++)
+                J.end() == false; ++J)
            {
               if (CleanInstalled == true &&
                   (J.File()->Flags & pkgCache::Flag::NotSource) != 0)
index 2aee2bf54fe31dbd61fe917a50f966653d5cabc3..1ebf68dc94d91fab50a46d3f43457daa45e9735d 100644 (file)
@@ -15,6 +15,9 @@
 
 class pkgArchiveCleaner
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
    protected:
    
    virtual void Erase(const char * /*File*/,string /*Pkg*/,string /*Ver*/,struct stat & /*St*/) {};
index 821e6d688e45b2fd083ffea530de738dd0101dbd..9de795b60d92e25a212fa2e0bf5ac5bfac6b4d6e 100644 (file)
@@ -10,6 +10,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/cdromutl.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/md5.h>
@@ -17,8 +19,6 @@
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/strutl.h>
 
-#include <apti18n.h>
-    
 #include <sys/wait.h>
 #include <sys/statvfs.h>
 #include <dirent.h>
@@ -26,6 +26,8 @@
 #include <sys/stat.h>
 #include <unistd.h>
 #include <stdio.h>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 // IsMounted - Returns true if the mount point is mounted              /*{{{*/
@@ -258,7 +260,9 @@ string FindMountPointForDevice(const char *devnode)
                if(TokSplitString(' ', buf, out, 10))
                {
                   fclose(f);
-                  return string(out[1]);
+                  // unescape the \0XXX chars in the path
+                  string mount_point = out[1];
+                  return DeEscapeString(mount_point);
                }
             }
          }
index 5a994409663e299b6e4ca6991f1a13ba28950709..34e90da207c0578cf02d4368f4de066f0b4fa33e 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Include files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/cmndline.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/strutl.h>
 
-#include <apti18n.h>    
+#include <apti18n.h>
                                                                        /*}}}*/
 using namespace std;
 
index cc7093fe2cf4146c1574dcd38f03fead67ed2dc6..0f7b37ee9964d0592b09806da07fdf50a44fc5d3 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Include files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/fileutl.h>
-#include <apti18n.h>
 
 #include <vector>
 #include <fstream>
 #include <iostream>
 
+#include <apti18n.h>
+
 using namespace std;
                                                                        /*}}}*/
 
@@ -318,6 +321,19 @@ void Configuration::CndSet(const char *Name,const string &Value)
       Itm->Value = Value;
 }
                                                                        /*}}}*/
+// Configuration::Set - Set an integer value                           /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+void Configuration::CndSet(const char *Name,int const Value)
+{
+   Item *Itm = Lookup(Name,true);
+   if (Itm == 0 || Itm->Value.empty() == false)
+      return;
+   char S[300];
+   snprintf(S,sizeof(S),"%i",Value);
+   Itm->Value = S;
+}
+                                                                       /*}}}*/
 // Configuration::Set - Set a value                                    /*{{{*/
 // ---------------------------------------------------------------------
 /* */
@@ -659,9 +675,9 @@ bool ReadConfigFile(Configuration &Conf,const string &FName,bool const &AsSectio
            // Put the last fragment into the buffer
            std::string::const_iterator NonWhitespaceStart = Start;
            std::string::const_iterator NonWhitespaceStop = I;
-           for (; NonWhitespaceStart != I && isspace(*NonWhitespaceStart) != 0; NonWhitespaceStart++)
+           for (; NonWhitespaceStart != I && isspace(*NonWhitespaceStart) != 0; ++NonWhitespaceStart)
              ;
-           for (; NonWhitespaceStop != NonWhitespaceStart && isspace(NonWhitespaceStop[-1]) != 0; NonWhitespaceStop--)
+           for (; NonWhitespaceStop != NonWhitespaceStart && isspace(NonWhitespaceStop[-1]) != 0; --NonWhitespaceStop)
              ;
            if (LineBuffer.empty() == false && NonWhitespaceStop - NonWhitespaceStart != 0)
               LineBuffer += ' ';
@@ -837,7 +853,7 @@ bool ReadConfigDir(Configuration &Conf,const string &Dir,
    vector<string> const List = GetListOfFilesInDir(Dir, "conf", true, true);
 
    // Read the files
-   for (vector<string>::const_iterator I = List.begin(); I != List.end(); I++)
+   for (vector<string>::const_iterator I = List.begin(); I != List.end(); ++I)
       if (ReadConfigFile(Conf,*I,AsSectional,Depth) == false)
         return false;
    return true;
index 71e5a0e47b3f61dc40eb006661e945265bb8d863..2844ec0977c7b9478384accf2d3a49ee03c59697 100644 (file)
@@ -82,6 +82,7 @@ class Configuration
              
    inline void Set(const string &Name,const string &Value) {Set(Name.c_str(),Value);};
    void CndSet(const char *Name,const string &Value);
+   void CndSet(const char *Name,const int Value);
    void Set(const char *Name,const string &Value);
    void Set(const char *Name,const int &Value);
    
index b300ed67e48275ff9dffc81ad6de90d1b2f89956..4058821f9f9ea11be10d0ebf1cccf35a0703f17a 100644 (file)
@@ -15,6 +15,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/crc-16.h>
                                                                        /*}}}*/
 
@@ -63,7 +65,7 @@ static unsigned short const crc16_table[256] =
 /* Recompute the FCS with one more character appended. */
 #define CalcFCS(fcs, c) (((fcs) >> 8) ^ crc16_table[((fcs) ^ (c)) & 0xff])
 unsigned short AddCRC16(unsigned short fcs, void const *Buf,
-                       unsigned long len) 
+                       unsigned long long len)
 {
    unsigned char const *buf = (unsigned char const *)Buf;
    while (len--)
index f30678bac6c6d6efd2f93c30c2861744e28a5ae2..702de40b21135a0596b6802465d6660704f15a30 100644 (file)
@@ -12,6 +12,6 @@
 
 #define INIT_FCS  0xffff
 unsigned short AddCRC16(unsigned short fcs, void const *buf,
-                       unsigned long len);
+                       unsigned long long len);
 
 #endif
index 18810d2a47f6234dbcbf2c90f3eb0678224fa567..122e2c8098eb6b063b87bdbcc0ef576b3bbc2c8c 100644 (file)
@@ -13,6 +13,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/error.h>
 
 #include <iostream>
@@ -24,8 +26,7 @@
 #include <string>
 #include <cstring>
 
-#include "config.h"
-                                                                       /*}}}*/
+                                                                       /*}}}*/
 
 // Global Error Object                                                 /*{{{*/
 /* If the implementation supports posix threads then the accessor function
@@ -193,7 +194,7 @@ bool GlobalError::PopMessage(std::string &Text) {
 
        // check if another error message is pending
        for (std::list<Item>::const_iterator m = Messages.begin();
-            m != Messages.end(); m++)
+            m != Messages.end(); ++m)
                if (m->Type == ERROR || m->Type == FATAL)
                        return Ret;
 
@@ -210,7 +211,7 @@ void GlobalError::DumpErrors(std::ostream &out, MsgType const &threshold,
                        Messages.insert(Messages.begin(), s->Messages.begin(), s->Messages.end());
 
        for (std::list<Item>::const_iterator m = Messages.begin();
-            m != Messages.end(); m++)
+            m != Messages.end(); ++m)
                if (m->Type >= threshold)
                        out << (*m) << std::endl;
        Discard();
@@ -231,7 +232,7 @@ bool GlobalError::empty(MsgType const &trashhold) const {
                return true;
 
        for (std::list<Item>::const_iterator m = Messages.begin();
-            m != Messages.end(); m++)
+            m != Messages.end(); ++m)
                if (m->Type >= trashhold)
                        return false;
 
index 50019872e3d3e16fbe81df2698025644e5eac4b3..95058cbdee77b036c42aaabfb6cbe0222259fd7a 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/sptr.h>
 #include <apt-pkg/configuration.h>
 
-#include <apti18n.h>
-
 #include <cstdlib>
 #include <cstring>
 #include <cstdio>
 #include <set>
 #include <algorithm>
 
-#include <config.h>
 #ifdef WORDS_BIGENDIAN
 #include <inttypes.h>
 #endif
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
@@ -132,10 +133,10 @@ bool CopyFile(FileFd &From,FileFd &To)
    
    // Buffered copy between fds
    SPtrArray<unsigned char> Buf = new unsigned char[64000];
-   unsigned long Size = From.Size();
+   unsigned long long Size = From.Size();
    while (Size != 0)
    {
-      unsigned long ToRead = Size;
+      unsigned long long ToRead = Size;
       if (Size > 64000)
         ToRead = 64000;
       
@@ -446,6 +447,17 @@ string SafeGetCWD()
    return S;
 }
                                                                        /*}}}*/
+// GetModificationTime - Get the mtime of the given file or -1 on error /*{{{*/
+// ---------------------------------------------------------------------
+/* We return / on failure. */
+time_t GetModificationTime(string const &Path)
+{
+   struct stat St;
+   if (stat(Path.c_str(), &St) < 0)
+      return -1;
+   return  St.st_mtime;
+}
+                                                                       /*}}}*/
 // flNotDir - Strip the directory from the filename                    /*{{{*/
 // ---------------------------------------------------------------------
 /* */
@@ -799,7 +811,7 @@ FileFd::~FileFd()
 // ---------------------------------------------------------------------
 /* We are carefull to handle interruption by a signal while reading 
    gracefully. */
-bool FileFd::Read(void *To,unsigned long Size,unsigned long *Actual)
+bool FileFd::Read(void *To,unsigned long long Size,unsigned long long *Actual)
 {
    int Res;
    errno = 0;
@@ -838,13 +850,13 @@ bool FileFd::Read(void *To,unsigned long Size,unsigned long *Actual)
    }
    
    Flags |= Fail;
-   return _error->Error(_("read, still have %lu to read but none left"),Size);
+   return _error->Error(_("read, still have %llu to read but none left"), Size);
 }
                                                                        /*}}}*/
 // FileFd::Write - Write to the file                                   /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-bool FileFd::Write(const void *From,unsigned long Size)
+bool FileFd::Write(const void *From,unsigned long long Size)
 {
    int Res;
    errno = 0;
@@ -871,13 +883,13 @@ bool FileFd::Write(const void *From,unsigned long Size)
       return true;
    
    Flags |= Fail;
-   return _error->Error(_("write, still have %lu to write but couldn't"),Size);
+   return _error->Error(_("write, still have %llu to write but couldn't"), Size);
 }
                                                                        /*}}}*/
 // FileFd::Seek - Seek in the file                                     /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-bool FileFd::Seek(unsigned long To)
+bool FileFd::Seek(unsigned long long To)
 {
    int res;
    if (gz)
@@ -887,7 +899,7 @@ bool FileFd::Seek(unsigned long To)
    if (res != (signed)To)
    {
       Flags |= Fail;
-      return _error->Error("Unable to seek to %lu",To);
+      return _error->Error("Unable to seek to %llu", To);
    }
    
    return true;
@@ -896,7 +908,7 @@ bool FileFd::Seek(unsigned long To)
 // FileFd::Skip - Seek in the file                                     /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-bool FileFd::Skip(unsigned long Over)
+bool FileFd::Skip(unsigned long long Over)
 {
    int res;
    if (gz)
@@ -906,7 +918,7 @@ bool FileFd::Skip(unsigned long Over)
    if (res < 0)
    {
       Flags |= Fail;
-      return _error->Error("Unable to seek ahead %lu",Over);
+      return _error->Error("Unable to seek ahead %llu",Over);
    }
    
    return true;
@@ -915,7 +927,7 @@ bool FileFd::Skip(unsigned long Over)
 // FileFd::Truncate - Truncate the file                                /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-bool FileFd::Truncate(unsigned long To)
+bool FileFd::Truncate(unsigned long long To)
 {
    if (gz)
    {
@@ -925,7 +937,7 @@ bool FileFd::Truncate(unsigned long To)
    if (ftruncate(iFd,To) != 0)
    {
       Flags |= Fail;
-      return _error->Error("Unable to truncate to %lu",To);
+      return _error->Error("Unable to truncate to %llu",To);
    }
    
    return true;
@@ -934,7 +946,7 @@ bool FileFd::Truncate(unsigned long To)
 // FileFd::Tell - Current seek position                                        /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-unsigned long FileFd::Tell()
+unsigned long long FileFd::Tell()
 {
    off_t Res;
    if (gz)
@@ -949,7 +961,7 @@ unsigned long FileFd::Tell()
 // FileFd::FileSize - Return the size of the file                      /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-unsigned long FileFd::FileSize()
+unsigned long long FileFd::FileSize()
 {
    struct stat Buf;
 
@@ -961,9 +973,9 @@ unsigned long FileFd::FileSize()
 // FileFd::Size - Return the size of the content in the file           /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-unsigned long FileFd::Size()
+unsigned long long FileFd::Size()
 {
-   unsigned long size = FileSize();
+   unsigned long long size = FileSize();
 
    // only check gzsize if we are actually a gzip file, just checking for
    // "gz" is not sufficient as uncompressed files will be opened with
@@ -973,6 +985,7 @@ unsigned long FileFd::Size()
        /* unfortunately zlib.h doesn't provide a gzsize(), so we have to do
        * this ourselves; the original (uncompressed) file size is the last 32
        * bits of the file */
+       // FIXME: Size for gz-files is limited by 32bit… no largefile support
        off_t orig_pos = lseek(iFd, 0, SEEK_CUR);
        if (lseek(iFd, -4, SEEK_END) < 0)
           return _error->Errno("lseek","Unable to seek to end of gzipped file");
index cde288ad20e7787dc2993a07844f42a5d918fd92..973a38cff6841cf22834c4a7243df74bb8565086 100644 (file)
@@ -49,21 +49,36 @@ class FileFd
    enum OpenMode {ReadOnly,WriteEmpty,WriteExists,WriteAny,WriteTemp,ReadOnlyGzip,
                   WriteAtomic};
    
-   inline bool Read(void *To,unsigned long Size,bool AllowEof)
+   inline bool Read(void *To,unsigned long long Size,bool AllowEof)
    {
-      unsigned long Jnk;
+      unsigned long long Jnk;
       if (AllowEof)
         return Read(To,Size,&Jnk);
       return Read(To,Size);
    }   
-   bool Read(void *To,unsigned long Size,unsigned long *Actual = 0);
-   bool Write(const void *From,unsigned long Size);
-   bool Seek(unsigned long To);
-   bool Skip(unsigned long To);
-   bool Truncate(unsigned long To);
-   unsigned long Tell();
-   unsigned long Size();
-   unsigned long FileSize();
+   bool Read(void *To,unsigned long long Size,unsigned long long *Actual = 0);
+   bool Write(const void *From,unsigned long long Size);
+   bool Seek(unsigned long long To);
+   bool Skip(unsigned long long To);
+   bool Truncate(unsigned long long To);
+   unsigned long long Tell();
+   unsigned long long Size();
+   unsigned long long FileSize();
+
+   /* You want to use 'unsigned long long' if you are talking about a file
+      to be able to support large files (>2 or >4 GB) properly.
+      This shouldn't happen all to often for the indexes, but deb's might be…
+      And as the auto-conversation converts a 'unsigned long *' to a 'bool'
+      instead of 'unsigned long long *' we need to provide this explicitely -
+      otherwise applications magically start to fail… */
+   __deprecated bool Read(void *To,unsigned long long Size,unsigned long *Actual)
+   {
+       unsigned long long R;
+       bool const T = Read(To, Size, &R);
+       *Actual = R;
+       return T;
+   }
+
    bool Open(string FileName,OpenMode Mode,unsigned long Perms = 0666);
    bool OpenDescriptor(int Fd, OpenMode Mode, bool AutoClose=false);
    bool Close();
@@ -97,6 +112,7 @@ bool FileExists(string File);
 bool RealFileExists(string File);
 bool DirectoryExists(string const &Path) __attrib_const;
 bool CreateDirectory(string const &Parent, string const &Path);
+time_t GetModificationTime(string const &Path);
 
 /** \brief Ensure the existence of the given Path
  *
index 985d89d903ea502c448d28aa2bb819c121d8eb64..fd76bf22998c44e764b78306d1fa17d8140da42e 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/hashes.h>
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/macros.h>
 
-#include <unistd.h>    
+#include <unistd.h>
 #include <string>
 #include <iostream>
                                                                        /*}}}*/
 
 const char* HashString::_SupportedHashes[] = 
 {
-   "SHA256", "SHA1", "MD5Sum", NULL
+   "SHA512", "SHA256", "SHA1", "MD5Sum", NULL
 };
 
 HashString::HashString()
@@ -53,28 +55,33 @@ HashString::HashString(string StringedHash)                         /*{{{*/
                                                                        /*}}}*/
 bool HashString::VerifyFile(string filename) const                     /*{{{*/
 {
-   FileFd fd;
-   MD5Summation MD5;
-   SHA1Summation SHA1;
-   SHA256Summation SHA256;
    string fileHash;
 
    FileFd Fd(filename, FileFd::ReadOnly);
-   if(Type == "MD5Sum") 
+   if(Type == "MD5Sum")
    {
+      MD5Summation MD5;
       MD5.AddFD(Fd.Fd(), Fd.Size());
       fileHash = (string)MD5.Result();
-   } 
+   }
    else if (Type == "SHA1")
    {
+      SHA1Summation SHA1;
       SHA1.AddFD(Fd.Fd(), Fd.Size());
       fileHash = (string)SHA1.Result();
-   } 
-   else if (Type == "SHA256") 
+   }
+   else if (Type == "SHA256")
    {
+      SHA256Summation SHA256;
       SHA256.AddFD(Fd.Fd(), Fd.Size());
       fileHash = (string)SHA256.Result();
    }
+   else if (Type == "SHA512")
+   {
+      SHA512Summation SHA512;
+      SHA512.AddFD(Fd.Fd(), Fd.Size());
+      fileHash = (string)SHA512.Result();
+   }
    Fd.Close();
 
    if(_config->FindB("Debug::Hashes",false) == true)
@@ -101,24 +108,30 @@ string HashString::toStr() const
 // Hashes::AddFD - Add the contents of the FD                          /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-bool Hashes::AddFD(int Fd,unsigned long Size)
+bool Hashes::AddFD(int const Fd,unsigned long long Size, bool const addMD5,
+                  bool const addSHA1, bool const addSHA256, bool const addSHA512)
 {
    unsigned char Buf[64*64];
-   int Res = 0;
+   ssize_t Res = 0;
    int ToEOF = (Size == 0);
    while (Size != 0 || ToEOF)
    {
-      unsigned n = sizeof(Buf);
-      if (!ToEOF) n = min(Size,(unsigned long)n);
+      unsigned long long n = sizeof(Buf);
+      if (!ToEOF) n = min(Size, n);
       Res = read(Fd,Buf,n);
-      if (Res < 0 || (!ToEOF && (unsigned) Res != n)) // error, or short read
-         return false;
+      if (Res < 0 || (!ToEOF && Res != (ssize_t) n)) // error, or short read
+        return false;
       if (ToEOF && Res == 0) // EOF
-         break;
+        break;
       Size -= Res;
-      MD5.Add(Buf,Res);
-      SHA1.Add(Buf,Res);
-      SHA256.Add(Buf,Res);
+      if (addMD5 == true)
+        MD5.Add(Buf,Res);
+      if (addSHA1 == true)
+        SHA1.Add(Buf,Res);
+      if (addSHA256 == true)
+        SHA256.Add(Buf,Res);
+      if (addSHA512 == true)
+        SHA512.Add(Buf,Res);
    }
    return true;
 }
index 264f7fe904434d2cd2dd995311405cda3d6f9291..40c2ad064f5b286d5cd95c99a050579ef55599e5 100644 (file)
@@ -16,7 +16,7 @@
 
 #include <apt-pkg/md5.h>
 #include <apt-pkg/sha1.h>
-#include <apt-pkg/sha256.h>
+#include <apt-pkg/sha2.h>
 
 #include <algorithm>
 #include <vector>
@@ -60,13 +60,17 @@ class Hashes
    MD5Summation MD5;
    SHA1Summation SHA1;
    SHA256Summation SHA256;
+   SHA512Summation SHA512;
    
-   inline bool Add(const unsigned char *Data,unsigned long Size)
+   inline bool Add(const unsigned char *Data,unsigned long long Size)
    {
-      return MD5.Add(Data,Size) && SHA1.Add(Data,Size) && SHA256.Add(Data,Size);
+      return MD5.Add(Data,Size) && SHA1.Add(Data,Size) && SHA256.Add(Data,Size) && SHA512.Add(Data,Size);
    };
    inline bool Add(const char *Data) {return Add((unsigned char *)Data,strlen(Data));};
-   bool AddFD(int Fd,unsigned long Size);
+   inline bool AddFD(int const Fd,unsigned long long Size = 0)
+   { return AddFD(Fd, Size, true, true, true, true); };
+   bool AddFD(int const Fd, unsigned long long Size, bool const addMD5,
+             bool const addSHA1, bool const addSHA256, bool const addSHA512);
    inline bool Add(const unsigned char *Beg,const unsigned char *End) 
                   {return Add(Beg,End-Beg);};
 };
diff --git a/apt-pkg/contrib/hashsum.cc b/apt-pkg/contrib/hashsum.cc
new file mode 100644 (file)
index 0000000..0edcbb3
--- /dev/null
@@ -0,0 +1,28 @@
+// Cryptographic API Base
+#include <config.h>
+
+#include <unistd.h>
+#include "hashsum_template.h"
+
+// Summation::AddFD - Add content of file into the checksum            /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+bool SummationImplementation::AddFD(int const Fd, unsigned long long Size) {
+   unsigned char Buf[64 * 64];
+   ssize_t Res = 0;
+   int ToEOF = (Size == 0);
+   while (Size != 0 || ToEOF)
+   {
+      unsigned long long n = sizeof(Buf);
+      if (!ToEOF) n = min(Size, n);
+      Res = read(Fd, Buf, n);
+      if (Res < 0 || (!ToEOF && Res != (ssize_t) n)) // error, or short read
+        return false;
+      if (ToEOF && Res == 0) // EOF
+        break;
+      Size -= Res;
+      Add(Buf,Res);
+   }
+   return true;
+}
+                                                                       /*}}}*/
diff --git a/apt-pkg/contrib/hashsum_template.h b/apt-pkg/contrib/hashsum_template.h
new file mode 100644 (file)
index 0000000..9157754
--- /dev/null
@@ -0,0 +1,107 @@
+// -*- mode: cpp; mode: fold -*-
+// Description                                                          /*{{{*/
+// $Id: hashsum_template.h,v 1.3 2001/05/07 05:05:47 jgg Exp $
+/* ######################################################################
+
+   HashSumValueTemplate - Generic Storage for a hash value
+   
+   ##################################################################### */
+                                                                        /*}}}*/
+#ifndef APTPKG_HASHSUM_TEMPLATE_H
+#define APTPKG_HASHSUM_TEMPLATE_H
+
+#include <string>
+#include <cstring>
+#include <algorithm>
+#include <stdint.h>
+
+using std::string;
+using std::min;
+
+template<int N>
+class HashSumValue
+{
+   unsigned char Sum[N/8];
+   
+   public:
+
+   // Accessors
+   bool operator ==(const HashSumValue &rhs) const
+   {
+      return memcmp(Sum,rhs.Sum,sizeof(Sum)) == 0;
+   }; 
+
+   string Value() const
+   {
+      char Conv[16] =
+      { '0','1','2','3','4','5','6','7','8','9','a','b',
+        'c','d','e','f'
+      };
+      char Result[((N/8)*2)+1];
+      Result[(N/8)*2] = 0;
+      
+      // Convert each char into two letters
+      int J = 0;
+      int I = 0;
+      for (; I != (N/8)*2; J++,I += 2)
+      {
+         Result[I] = Conv[Sum[J] >> 4];
+         Result[I + 1] = Conv[Sum[J] & 0xF];
+      }
+      return string(Result);
+   };
+   
+   inline void Value(unsigned char S[N/8])
+   {
+      for (int I = 0; I != sizeof(Sum); I++) 
+         S[I] = Sum[I];
+   };
+
+   inline operator string() const 
+   {
+      return Value();
+   };
+
+   bool Set(string Str) 
+   {
+      return Hex2Num(Str,Sum,sizeof(Sum));
+   };
+
+   inline void Set(unsigned char S[N/8]) 
+   {
+      for (int I = 0; I != sizeof(Sum); I++) 
+         Sum[I] = S[I];
+   };
+
+   HashSumValue(string Str) 
+   {
+         memset(Sum,0,sizeof(Sum));
+         Set(Str);
+   }
+   HashSumValue()
+   {
+      memset(Sum,0,sizeof(Sum));
+   }
+};
+
+class SummationImplementation
+{
+   public:
+   virtual bool Add(const unsigned char *inbuf, unsigned long long inlen) = 0;
+   inline bool Add(const char *inbuf, unsigned long long const inlen)
+   { return Add((unsigned char *)inbuf, inlen); };
+
+   inline bool Add(const unsigned char *Data)
+   { return Add(Data, strlen((const char *)Data)); };
+   inline bool Add(const char *Data)
+   { return Add((const unsigned char *)Data, strlen((const char *)Data)); };
+
+   inline bool Add(const unsigned char *Beg, const unsigned char *End)
+   { return Add(Beg, End - Beg); };
+   inline bool Add(const char *Beg, const char *End)
+   { return Add((const unsigned char *)Beg, End - Beg); };
+
+   bool AddFD(int Fd, unsigned long long Size = 0);
+};
+
+#endif
index c0fa8493dff2e161099c57ad2ac7377a0006139f..4351aeb22f23d6b0d17e7b54cf5c4e066798ad6e 100644 (file)
@@ -35,6 +35,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/md5.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/macros.h>
@@ -43,7 +45,6 @@
 #include <unistd.h>
 #include <netinet/in.h>                          // For htonl
 #include <inttypes.h>
-#include <config.h>
                                                                        /*}}}*/
 
 // byteSwap - Swap bytes in a buffer                                   /*{{{*/
@@ -165,61 +166,6 @@ static void MD5Transform(uint32_t buf[4], uint32_t const in[16])
    buf[3] += d;
 }
                                                                        /*}}}*/
-// MD5SumValue::MD5SumValue - Constructs the summation from a string   /*{{{*/
-// ---------------------------------------------------------------------
-/* The string form of a MD5 is a 32 character hex number */
-MD5SumValue::MD5SumValue(string Str)
-{
-   memset(Sum,0,sizeof(Sum));
-   Set(Str);
-}
-                                                                       /*}}}*/
-// MD5SumValue::MD5SumValue - Default constructor                      /*{{{*/
-// ---------------------------------------------------------------------
-/* Sets the value to 0 */
-MD5SumValue::MD5SumValue()
-{
-   memset(Sum,0,sizeof(Sum));
-}
-                                                                       /*}}}*/
-// MD5SumValue::Set - Set the sum from a string                                /*{{{*/
-// ---------------------------------------------------------------------
-/* Converts the hex string into a set of chars */
-bool MD5SumValue::Set(string Str)
-{
-   return Hex2Num(Str,Sum,sizeof(Sum));
-}
-                                                                       /*}}}*/
-// MD5SumValue::Value - Convert the number into a string               /*{{{*/
-// ---------------------------------------------------------------------
-/* Converts the set of chars into a hex string in lower case */
-string MD5SumValue::Value() const
-{
-   char Conv[16] = {'0','1','2','3','4','5','6','7','8','9','a','b',
-                    'c','d','e','f'};
-   char Result[33];
-   Result[32] = 0;
-   
-   // Convert each char into two letters
-   int J = 0;
-   int I = 0;
-   for (; I != 32; J++, I += 2)
-   {
-      Result[I] = Conv[Sum[J] >> 4];
-      Result[I + 1] = Conv[Sum[J] & 0xF];
-   } 
-
-   return string(Result);
-}
-                                                                       /*}}}*/
-// MD5SumValue::operator == - Comparitor                               /*{{{*/
-// ---------------------------------------------------------------------
-/* Call memcmp on the buffer */
-bool MD5SumValue::operator ==(const MD5SumValue &rhs) const
-{
-   return memcmp(Sum,rhs.Sum,sizeof(Sum)) == 0;
-}
-                                                                       /*}}}*/
 // MD5Summation::MD5Summation - Initialize the summer                  /*{{{*/
 // ---------------------------------------------------------------------
 /* This assigns the deep magic initial values */
@@ -241,7 +187,7 @@ MD5Summation::MD5Summation()
 // MD5Summation::Add - 'Add' a data set to the hash                    /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-bool MD5Summation::Add(const unsigned char *data,unsigned long len)
+bool MD5Summation::Add(const unsigned char *data,unsigned long long len)
 {
    if (Done == true)
       return false;
@@ -286,29 +232,6 @@ bool MD5Summation::Add(const unsigned char *data,unsigned long len)
    return true;   
 }
                                                                        /*}}}*/
-// MD5Summation::AddFD - Add the contents of a FD to the hash          /*{{{*/
-// ---------------------------------------------------------------------
-/* */
-bool MD5Summation::AddFD(int Fd,unsigned long Size)
-{
-   unsigned char Buf[64*64];
-   int Res = 0;
-   int ToEOF = (Size == 0);
-   while (Size != 0 || ToEOF)
-   {
-      unsigned n = sizeof(Buf);
-      if (!ToEOF) n = min(Size,(unsigned long)n);
-      Res = read(Fd,Buf,n);
-      if (Res < 0 || (!ToEOF && (unsigned) Res != n)) // error, or short read
-         return false;
-      if (ToEOF && Res == 0) // EOF
-         break;
-      Size -= Res;
-      Add(Buf,Res);
-   }
-   return true;
-}
-                                                                       /*}}}*/
 // MD5Summation::Result - Returns the value of the sum                 /*{{{*/
 // ---------------------------------------------------------------------
 /* Because this must add in the last bytes of the series it prevents anyone
@@ -353,7 +276,7 @@ MD5SumValue MD5Summation::Result()
    }
    
    MD5SumValue V;
-   memcpy(V.Sum,buf,16);
+   V.Set((unsigned char *)buf);
    return V;
 }
                                                                        /*}}}*/
index 96c8975b46f6cc165b257f889bd1bb2f56ac5168..305cdb20df2018c293b2e705738c58f52e77a7e3 100644 (file)
 using std::string;
 using std::min;
 
-class MD5Summation;
+#include "hashsum_template.h"
 
-class MD5SumValue
-{
-   friend class MD5Summation;
-   unsigned char Sum[4*4];
-   
-   public:
-
-   // Accessors
-   bool operator ==(const MD5SumValue &rhs) const; 
-   string Value() const;
-   inline void Value(unsigned char S[16]) 
-         {for (int I = 0; I != sizeof(Sum); I++) S[I] = Sum[I];};
-   inline operator string() const {return Value();};
-   bool Set(string Str);
-   inline void Set(unsigned char S[16]) 
-         {for (int I = 0; I != sizeof(Sum); I++) Sum[I] = S[I];};
-
-   MD5SumValue(string Str);
-   MD5SumValue();
-};
+typedef HashSumValue<128> MD5SumValue;
 
-class MD5Summation
+class MD5Summation : public SummationImplementation
 {
    uint32_t Buf[4];
    unsigned char Bytes[2*4];
    unsigned char In[16*4];
    bool Done;
-   
+
    public:
 
-   bool Add(const unsigned char *Data,unsigned long Size);
-   inline bool Add(const char *Data) {return Add((unsigned char *)Data,strlen(Data));};
-   bool AddFD(int Fd,unsigned long Size);
-   inline bool Add(const unsigned char *Beg,const unsigned char *End) 
-                  {return Add(Beg,End-Beg);};
+   bool Add(const unsigned char *inbuf, unsigned long long inlen);
+   using SummationImplementation::Add;
+
    MD5SumValue Result();
-   
+
    MD5Summation();
 };
 
index 19381ae4719ea7005ac338463bdbe7e4a5e3cd95..a110a70195cd39783705f2f6096dbd69645f609f 100644 (file)
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
 #define _BSD_SOURCE
+#include <config.h>
+
 #include <apt-pkg/mmap.h>
 #include <apt-pkg/error.h>
 
-#include <apti18n.h>
-
 #include <sys/mman.h>
 #include <sys/stat.h>
 #include <unistd.h>
 #include <fcntl.h>
 #include <stdlib.h>
 #include <errno.h>
-
 #include <cstring>
-                                                                       /*}}}*/
+
+#include <apti18n.h>
+                                                                       /*}}}*/
 
 // MMap::MMap - Constructor                                            /*{{{*/
 // ---------------------------------------------------------------------
@@ -94,7 +95,7 @@ bool MMap::Map(FileFd &Fd)
            return false;
       }
       else
-        return _error->Errno("mmap",_("Couldn't make mmap of %lu bytes"),
+        return _error->Errno("mmap",_("Couldn't make mmap of %llu bytes"),
                              iSize);
      }
 
@@ -165,7 +166,7 @@ bool MMap::Sync(unsigned long Start,unsigned long Stop)
       return true;
    
 #ifdef _POSIX_SYNCHRONIZED_IO
-   unsigned long PSize = sysconf(_SC_PAGESIZE);
+   unsigned long long PSize = sysconf(_SC_PAGESIZE);
    if ((Flags & ReadOnly) != ReadOnly)
    {
       if (SyncToFd != 0)
@@ -176,7 +177,7 @@ bool MMap::Sync(unsigned long Start,unsigned long Stop)
       }
       else
       {
-        if (msync((char *)Base+(int)(Start/PSize)*PSize,Stop - Start,MS_SYNC) < 0)
+        if (msync((char *)Base+(unsigned long long)(Start/PSize)*PSize,Stop - Start,MS_SYNC) < 0)
            return _error->Errno("msync", _("Unable to synchronize mmap"));
       }
    }
@@ -196,7 +197,7 @@ DynamicMMap::DynamicMMap(FileFd &F,unsigned long Flags,unsigned long const &Work
    if (_error->PendingError() == true)
       return;
    
-   unsigned long EndOfFile = Fd->Size();
+   unsigned long long EndOfFile = Fd->Size();
    if (EndOfFile > WorkSpace)
       WorkSpace = EndOfFile;
    else if(WorkSpace > 0)
@@ -284,7 +285,7 @@ DynamicMMap::~DynamicMMap()
       return;
    }
    
-   unsigned long EndOfFile = iSize;
+   unsigned long long EndOfFile = iSize;
    iSize = WorkSpace;
    Close(false);
    if(ftruncate(Fd->Fd(),EndOfFile) < 0)
@@ -294,9 +295,9 @@ DynamicMMap::~DynamicMMap()
 // DynamicMMap::RawAllocate - Allocate a raw chunk of unaligned space  /*{{{*/
 // ---------------------------------------------------------------------
 /* This allocates a block of memory aligned to the given size */
-unsigned long DynamicMMap::RawAllocate(unsigned long Size,unsigned long Aln)
+unsigned long DynamicMMap::RawAllocate(unsigned long long Size,unsigned long Aln)
 {
-   unsigned long Result = iSize;
+   unsigned long long Result = iSize;
    if (Aln != 0)
       Result += Aln - (iSize%Aln);
 
@@ -411,7 +412,7 @@ bool DynamicMMap::Grow() {
        if (GrowFactor <= 0)
                return _error->Error(_("Unable to increase size of the MMap as automatic growing is disabled by user."));
 
-       unsigned long const newSize = WorkSpace + GrowFactor;
+       unsigned long long const newSize = WorkSpace + GrowFactor;
 
        if(Fd != 0) {
                Fd->Seek(newSize - 1);
index 2bf2c15408319b3693a1e6b4dcf87e82e6ddb073..e0ff8db95049f494299a5a835c1caba9cd9463cc 100644 (file)
@@ -41,7 +41,7 @@ class MMap
    protected:
    
    unsigned long Flags;
-   unsigned long iSize;
+   unsigned long long iSize;
    void *Base;
 
    // In case mmap can not be used, we keep a dup of the file
@@ -60,8 +60,8 @@ class MMap
    // Simple accessors
    inline operator void *() {return Base;};
    inline void *Data() {return Base;}; 
-   inline unsigned long Size() {return iSize;};
-   inline void AddSize(unsigned long const size) {iSize += size;};
+   inline unsigned long long Size() {return iSize;};
+   inline void AddSize(unsigned long long const size) {iSize += size;};
    inline bool validData() const { return Base != (void *)-1 && Base != 0; };
    
    // File manipulators
@@ -99,7 +99,7 @@ class DynamicMMap : public MMap
    public:
 
    // Allocation
-   unsigned long RawAllocate(unsigned long Size,unsigned long Aln = 0);
+   unsigned long RawAllocate(unsigned long long Size,unsigned long Aln = 0);
    unsigned long Allocate(unsigned long ItemSize);
    unsigned long WriteString(const char *String,unsigned long Len = (unsigned long)-1);
    inline unsigned long WriteString(const string &S) {return WriteString(S.c_str(),S.length());};
index 34f472ee1b619c1bc85e860c1d1148126c492f45..b9d0749e2b8dc9c5baddb080f1f660d6eda9bec0 100644 (file)
@@ -11,6 +11,7 @@
 
    ##################################################################### */
                                                                        /*}}}*/
+#include <config.h>
 
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/fileutl.h>
@@ -47,10 +48,7 @@ int parsenetrc (char *host, char *login, char *password, char *netrcfile = NULL)
   int specific_login = (login[0] != 0);
   char *home = NULL;
   bool netrc_alloc = false;
-  int state = NOTHING;
 
-  char state_login = 0;        /* Found a login keyword */
-  char state_password = 0;     /* Found a password keyword */
   int state_our_login = false;  /* With specific_login,
                                    found *our* login name */
 
@@ -81,6 +79,10 @@ int parsenetrc (char *host, char *login, char *password, char *netrcfile = NULL)
     bool done = false;
     char netrcbuffer[256];
 
+    int state = NOTHING;
+    char state_login = 0;        /* Found a login keyword */
+    char state_password = 0;     /* Found a password keyword */
+
     while (!done && fgets(netrcbuffer, sizeof (netrcbuffer), file)) {
       tok = strtok_r (netrcbuffer, " \t\n", &tok_buf);
       while (!done && tok) {
index 45e81edcb3ca3ab7b7f877f799cf7fb1aa9b9633..317048845c1a89fb9a1ee0d8941ad413d0b05518 100644 (file)
@@ -8,15 +8,17 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/progress.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/configuration.h>
 
-#include <apti18n.h>
-
 #include <iostream>
 #include <stdio.h>
 #include <cstring>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
@@ -35,7 +37,7 @@ OpProgress::OpProgress() : Current(0), Total(0), Size(0), SubTotal(1),
 /* Current is the Base Overall progress in units of Total. Cur is the sub
    progress in units of SubTotal. Size is a scaling factor that says what
    percent of Total SubTotal is. */
-void OpProgress::Progress(unsigned long Cur)
+void OpProgress::Progress(unsigned long long Cur)
 {
    if (Total == 0 || Size == 0 || SubTotal == 0)
       Percent = 0;
@@ -47,8 +49,8 @@ void OpProgress::Progress(unsigned long Cur)
 // OpProgress::OverallProgress - Set the overall progress              /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-void OpProgress::OverallProgress(unsigned long Current, unsigned long Total,
-                                unsigned long Size,const string &Op)
+void OpProgress::OverallProgress(unsigned long long Current, unsigned long long Total,
+                                unsigned long long Size,const string &Op)
 {
    this->Current = Current;
    this->Total = Total;
@@ -65,27 +67,18 @@ void OpProgress::OverallProgress(unsigned long Current, unsigned long Total,
 // OpProgress::SubProgress - Set the sub progress state                        /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-void OpProgress::SubProgress(unsigned long SubTotal,const string &Op)
-{
-   this->SubTotal = SubTotal;
-   SubOp = Op;
-   if (Total == 0)
-      Percent = 0;
-   else
-      Percent = Current*100.0/Total;
-   Update();
-}
-                                                                       /*}}}*/
-// OpProgress::SubProgress - Set the sub progress state                        /*{{{*/
-// ---------------------------------------------------------------------
-/* */
-void OpProgress::SubProgress(unsigned long SubTotal)
+void OpProgress::SubProgress(unsigned long long SubTotal,const string &Op,
+                            float const Percent)
 {
    this->SubTotal = SubTotal;
-   if (Total == 0)
-      Percent = 0;
+   if (Op.empty() == false)
+      SubOp = Op;
+   if (Total == 0 || Percent == 0)
+      this->Percent = 0;
+   else if (Percent != -1)
+      this->Percent = this->Current += (Size*Percent)/SubTotal;
    else
-      Percent = Current*100.0/Total;
+      this->Percent = Current*100.0/Total;
    Update();
 }
                                                                        /*}}}*/
index 7dd004f7e6fa2a3e305fae960968ea4877573600..5344323f6379e3953d3eebf682c03c34bad960fe 100644 (file)
@@ -30,10 +30,10 @@ using std::string;
 class Configuration;
 class OpProgress
 {
-   unsigned long Current;
-   unsigned long Total;
-   unsigned long Size;
-   unsigned long SubTotal;
+   unsigned long long Current;
+   unsigned long long Total;
+   unsigned long long Size;
+   unsigned long long SubTotal;
    float LastPercent;
    
    // Change reduction code
@@ -54,11 +54,10 @@ class OpProgress
    
    public:
    
-   void Progress(unsigned long Current);
-   void SubProgress(unsigned long SubTotal);
-   void SubProgress(unsigned long SubTotal,const string &Op);
-   void OverallProgress(unsigned long Current,unsigned long Total,
-                       unsigned long Size,const string &Op);
+   void Progress(unsigned long long Current);
+   void SubProgress(unsigned long long SubTotal, const string &Op = "", float const Percent = -1);
+   void OverallProgress(unsigned long long Current,unsigned long long Total,
+                       unsigned long long Size,const string &Op);
    virtual void Done() {};
    
    OpProgress();
index eae52d52f6341ea22abdb3ee3493bd48c3407316..b5a6a244064f21dbc2200cb8b1b51b39df929914 100644 (file)
@@ -29,6 +29,8 @@
  */
                                                                        /*}}} */
 // Include Files                                                        /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/sha1.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/macros.h>
@@ -36,7 +38,6 @@
 #include <string.h>
 #include <unistd.h>
 #include <inttypes.h>
-#include <config.h>
                                                                        /*}}}*/
 
 // SHA1Transform - Alters an existing SHA-1 hash                       /*{{{*/
@@ -74,10 +75,9 @@ static void SHA1Transform(uint32_t state[5],uint8_t const buffer[64])
       uint32_t l[16];
    }
    CHAR64LONG16;
-   CHAR64LONG16 *block;
+   CHAR64LONG16 workspace, *block;
 
-   uint8_t workspace[64];
-   block = (CHAR64LONG16 *)workspace;
+   block = &workspace;
    memcpy(block,buffer,sizeof(workspace));
 
    /* Copy context->state[] to working vars */
@@ -178,67 +178,6 @@ static void SHA1Transform(uint32_t state[5],uint8_t const buffer[64])
 }
                                                                        /*}}}*/
 
-// SHA1SumValue::SHA1SumValue - Constructs the summation from a string  /*{{{*/
-// ---------------------------------------------------------------------
-/* The string form of a SHA1 is a 40 character hex number */
-SHA1SumValue::SHA1SumValue(string Str)
-{
-   memset(Sum,0,sizeof(Sum));
-   Set(Str);
-}
-
-                                                                       /*}}} */
-// SHA1SumValue::SHA1SumValue - Default constructor                     /*{{{*/
-// ---------------------------------------------------------------------
-/* Sets the value to 0 */
-SHA1SumValue::SHA1SumValue()
-{
-   memset(Sum,0,sizeof(Sum));
-}
-
-                                                                       /*}}} */
-// SHA1SumValue::Set - Set the sum from a string                        /*{{{*/
-// ---------------------------------------------------------------------
-/* Converts the hex string into a set of chars */
-bool SHA1SumValue::Set(string Str)
-{
-   return Hex2Num(Str,Sum,sizeof(Sum));
-}
-
-                                                                       /*}}} */
-// SHA1SumValue::Value - Convert the number into a string               /*{{{*/
-// ---------------------------------------------------------------------
-/* Converts the set of chars into a hex string in lower case */
-string SHA1SumValue::Value() const
-{
-   char Conv[16] =
-      { '0','1','2','3','4','5','6','7','8','9','a','b',
-      'c','d','e','f'
-   };
-   char Result[41];
-   Result[40] = 0;
-
-   // Convert each char into two letters
-   int J = 0;
-   int I = 0;
-   for (; I != 40; J++,I += 2)
-   {
-      Result[I] = Conv[Sum[J] >> 4];
-      Result[I + 1] = Conv[Sum[J] & 0xF];
-   }
-
-   return string(Result);
-}
-
-                                                                       /*}}} */
-// SHA1SumValue::operator == - Comparator                               /*{{{*/
-// ---------------------------------------------------------------------
-/* Call memcmp on the buffer */
-bool SHA1SumValue::operator == (const SHA1SumValue & rhs) const
-{
-   return memcmp(Sum,rhs.Sum,sizeof(Sum)) == 0;
-}
-                                                                       /*}}}*/
 // SHA1Summation::SHA1Summation - Constructor                           /*{{{*/
 // ---------------------------------------------------------------------
 /* */
@@ -290,18 +229,20 @@ SHA1SumValue SHA1Summation::Result()
 
    // Transfer over the result
    SHA1SumValue Value;
+   unsigned char res[20];
    for (unsigned i = 0; i < 20; i++)
    {
-      Value.Sum[i] = (unsigned char)
+      res[i] = (unsigned char)
         ((state[i >> 2] >> ((3 - (i & 3)) * 8)) & 255);
    }
+   Value.Set(res);
    return Value;
 }
                                                                        /*}}}*/
 // SHA1Summation::Add - Adds content of buffer into the checksum        /*{{{*/
 // ---------------------------------------------------------------------
 /* May not be called after Result() is called */
-bool SHA1Summation::Add(const unsigned char *data,unsigned long len)
+bool SHA1Summation::Add(const unsigned char *data,unsigned long long len)
 {
    if (Done)
       return false;
@@ -332,26 +273,3 @@ bool SHA1Summation::Add(const unsigned char *data,unsigned long len)
    return true;
 }
                                                                        /*}}}*/
-// SHA1Summation::AddFD - Add content of file into the checksum         /*{{{*/
-// ---------------------------------------------------------------------
-/* */
-bool SHA1Summation::AddFD(int Fd,unsigned long Size)
-{
-   unsigned char Buf[64 * 64];
-   int Res = 0;
-   int ToEOF = (Size == 0);
-   while (Size != 0 || ToEOF)
-   {
-      unsigned n = sizeof(Buf);
-      if (!ToEOF) n = min(Size,(unsigned long)n);
-      Res = read(Fd,Buf,n);
-      if (Res < 0 || (!ToEOF && (unsigned) Res != n)) // error, or short read
-        return false;
-      if (ToEOF && Res == 0) // EOF
-         break;
-      Size -= Res;
-      Add(Buf,Res);
-   }
-   return true;
-}
-                                                                       /*}}}*/
index 8ddd889f18a22a70b2ac9015e4772fbc195ce3a1..916faec1bca5cd9e5d3b9adf968ae0a62e44becf 100644 (file)
 using std::string;
 using std::min;
 
-class SHA1Summation;
+#include "hashsum_template.h"
 
-class SHA1SumValue
-{
-   friend class SHA1Summation;
-   unsigned char Sum[20];
-   
-   public:
-
-   // Accessors
-   bool operator ==(const SHA1SumValue &rhs) const; 
-   string Value() const;
-   inline void Value(unsigned char S[20])
-         {for (int I = 0; I != sizeof(Sum); I++) S[I] = Sum[I];};
-   inline operator string() const {return Value();};
-   bool Set(string Str);
-   inline void Set(unsigned char S[20]) 
-         {for (int I = 0; I != sizeof(Sum); I++) Sum[I] = S[I];};
-
-   SHA1SumValue(string Str);
-   SHA1SumValue();
-};
+typedef  HashSumValue<160> SHA1SumValue;
 
-class SHA1Summation
+class SHA1Summation : public SummationImplementation
 {
    /* assumes 64-bit alignment just in case */
    unsigned char Buffer[64] __attribute__((aligned(8)));
@@ -53,12 +34,9 @@ class SHA1Summation
    bool Done;
    
    public:
+   bool Add(const unsigned char *inbuf, unsigned long long inlen);
+   using SummationImplementation::Add;
 
-   bool Add(const unsigned char *inbuf,unsigned long inlen);
-   inline bool Add(const char *Data) {return Add((unsigned char *)Data,strlen(Data));};
-   bool AddFD(int Fd,unsigned long Size);
-   inline bool Add(const unsigned char *Beg,const unsigned char *End) 
-                  {return Add(Beg,End-Beg);};
    SHA1SumValue Result();
    
    SHA1Summation();
diff --git a/apt-pkg/contrib/sha2.h b/apt-pkg/contrib/sha2.h
new file mode 100644 (file)
index 0000000..51c921d
--- /dev/null
@@ -0,0 +1,103 @@
+// -*- mode: cpp; mode: fold -*-
+// Description                                                          /*{{{*/
+// $Id: sha512.h,v 1.3 2001/05/07 05:05:47 jgg Exp $
+/* ######################################################################
+
+   SHA{512,256}SumValue - Storage for a SHA-{512,256} hash.
+   SHA{512,256}Summation - SHA-{512,256} Secure Hash Algorithm.
+   
+   This is a C++ interface to a set of SHA{512,256}Sum functions, that mirrors
+   the equivalent MD5 & SHA1 classes. 
+
+   ##################################################################### */
+                                                                        /*}}}*/
+#ifndef APTPKG_SHA2_H
+#define APTPKG_SHA2_H
+
+#include <string>
+#include <cstring>
+#include <algorithm>
+#include <stdint.h>
+
+#include "sha2_internal.h"
+#include "hashsum_template.h"
+
+typedef HashSumValue<512> SHA512SumValue;
+typedef HashSumValue<256> SHA256SumValue;
+
+class SHA2SummationBase : public SummationImplementation
+{
+ protected:
+   bool Done;
+ public:
+   bool Add(const unsigned char *inbuf, unsigned long long len) = 0;
+
+   void Result();
+};
+
+class SHA256Summation : public SHA2SummationBase
+{
+   SHA256_CTX ctx;
+   unsigned char Sum[32];
+
+   public:
+   bool Add(const unsigned char *inbuf, unsigned long long len)
+   {
+      if (Done) 
+         return false;
+      SHA256_Update(&ctx, inbuf, len);
+      return true;
+   };
+   using SummationImplementation::Add;
+
+   SHA256SumValue Result()
+   {
+      if (!Done) {
+         SHA256_Final(Sum, &ctx);
+         Done = true;
+      }
+      SHA256SumValue res;
+      res.Set(Sum);
+      return res;
+   };
+   SHA256Summation() 
+   {
+      SHA256_Init(&ctx);
+      Done = false;
+   };
+};
+
+class SHA512Summation : public SHA2SummationBase
+{
+   SHA512_CTX ctx;
+   unsigned char Sum[64];
+
+   public:
+   bool Add(const unsigned char *inbuf, unsigned long long len)
+   {
+      if (Done) 
+         return false;
+      SHA512_Update(&ctx, inbuf, len);
+      return true;
+   };
+   using SummationImplementation::Add;
+
+   SHA512SumValue Result()
+   {
+      if (!Done) {
+         SHA512_Final(Sum, &ctx);
+         Done = true;
+      }
+      SHA512SumValue res;
+      res.Set(Sum);
+      return res;
+   };
+   SHA512Summation()
+   {
+      SHA512_Init(&ctx);
+      Done = false;
+   };
+};
+
+
+#endif
diff --git a/apt-pkg/contrib/sha256.cc b/apt-pkg/contrib/sha256.cc
deleted file mode 100644 (file)
index e380c13..0000000
+++ /dev/null
@@ -1,424 +0,0 @@
-/*
- * Cryptographic API.                                                  {{{
- *
- * SHA-256, as specified in
- * http://csrc.nist.gov/cryptval/shs/sha256-384-512.pdf
- *
- * SHA-256 code by Jean-Luc Cooke <jlcooke@certainkey.com>.
- *
- * Copyright (c) Jean-Luc Cooke <jlcooke@certainkey.com>
- * Copyright (c) Andrew McDonald <andrew@mcdonald.org.uk>
- * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
- *
- * Ported from the Linux kernel to Apt by Anthony Towns <ajt@debian.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option) 
- * any later version.
- *
- */                                                                    /*}}}*/
-
-#ifdef __GNUG__
-#pragma implementation "apt-pkg/sha256.h"
-#endif
-
-
-#define SHA256_DIGEST_SIZE      32
-#define SHA256_HMAC_BLOCK_SIZE  64
-
-#define ror32(value,bits) (((value) >> (bits)) | ((value) << (32 - (bits))))
-
-#include <apt-pkg/sha256.h>
-#include <apt-pkg/strutl.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <arpa/inet.h>
-
-typedef uint32_t u32;
-typedef uint8_t  u8;
-
-static inline u32 Ch(u32 x, u32 y, u32 z)
-{
-        return z ^ (x & (y ^ z));
-}
-
-static inline u32 Maj(u32 x, u32 y, u32 z)
-{
-        return (x & y) | (z & (x | y));
-}
-
-#define e0(x)       (ror32(x, 2) ^ ror32(x,13) ^ ror32(x,22))
-#define e1(x)       (ror32(x, 6) ^ ror32(x,11) ^ ror32(x,25))
-#define s0(x)       (ror32(x, 7) ^ ror32(x,18) ^ (x >> 3))
-#define s1(x)       (ror32(x,17) ^ ror32(x,19) ^ (x >> 10))
-
-#define H0         0x6a09e667
-#define H1         0xbb67ae85
-#define H2         0x3c6ef372
-#define H3         0xa54ff53a
-#define H4         0x510e527f
-#define H5         0x9b05688c
-#define H6         0x1f83d9ab
-#define H7         0x5be0cd19
-
-static inline void LOAD_OP(int I, u32 *W, const u8 *input)             /*{{{*/
-{
-       W[I] = (  ((u32) input[I * 4 + 0] << 24)
-               | ((u32) input[I * 4 + 1] << 16)
-               | ((u32) input[I * 4 + 2] << 8)
-               | ((u32) input[I * 4 + 3]));
-}
-                                                                       /*}}}*/
-static inline void BLEND_OP(int I, u32 *W)
-{
-        W[I] = s1(W[I-2]) + W[I-7] + s0(W[I-15]) + W[I-16];
-}
-
-static void sha256_transform(u32 *state, const u8 *input)              /*{{{*/
-{
-        u32 a, b, c, d, e, f, g, h, t1, t2;
-        u32 W[64];
-        int i;
-
-        /* load the input */
-        for (i = 0; i < 16; i++)
-                LOAD_OP(i, W, input);
-
-        /* now blend */
-        for (i = 16; i < 64; i++)
-                BLEND_OP(i, W);
-    
-        /* load the state into our registers */
-        a=state[0];  b=state[1];  c=state[2];  d=state[3];
-        e=state[4];  f=state[5];  g=state[6];  h=state[7];
-
-        /* now iterate */
-        t1 = h + e1(e) + Ch(e,f,g) + 0x428a2f98 + W[ 0];
-        t2 = e0(a) + Maj(a,b,c);    d+=t1;    h=t1+t2;
-        t1 = g + e1(d) + Ch(d,e,f) + 0x71374491 + W[ 1];
-        t2 = e0(h) + Maj(h,a,b);    c+=t1;    g=t1+t2;
-        t1 = f + e1(c) + Ch(c,d,e) + 0xb5c0fbcf + W[ 2];
-        t2 = e0(g) + Maj(g,h,a);    b+=t1;    f=t1+t2;
-        t1 = e + e1(b) + Ch(b,c,d) + 0xe9b5dba5 + W[ 3];
-        t2 = e0(f) + Maj(f,g,h);    a+=t1;    e=t1+t2;
-        t1 = d + e1(a) + Ch(a,b,c) + 0x3956c25b + W[ 4];
-        t2 = e0(e) + Maj(e,f,g);    h+=t1;    d=t1+t2;
-        t1 = c + e1(h) + Ch(h,a,b) + 0x59f111f1 + W[ 5];
-        t2 = e0(d) + Maj(d,e,f);    g+=t1;    c=t1+t2;
-        t1 = b + e1(g) + Ch(g,h,a) + 0x923f82a4 + W[ 6];
-        t2 = e0(c) + Maj(c,d,e);    f+=t1;    b=t1+t2;
-        t1 = a + e1(f) + Ch(f,g,h) + 0xab1c5ed5 + W[ 7];
-        t2 = e0(b) + Maj(b,c,d);    e+=t1;    a=t1+t2;
-
-        t1 = h + e1(e) + Ch(e,f,g) + 0xd807aa98 + W[ 8];
-        t2 = e0(a) + Maj(a,b,c);    d+=t1;    h=t1+t2;
-        t1 = g + e1(d) + Ch(d,e,f) + 0x12835b01 + W[ 9];
-        t2 = e0(h) + Maj(h,a,b);    c+=t1;    g=t1+t2;
-        t1 = f + e1(c) + Ch(c,d,e) + 0x243185be + W[10];
-        t2 = e0(g) + Maj(g,h,a);    b+=t1;    f=t1+t2;
-        t1 = e + e1(b) + Ch(b,c,d) + 0x550c7dc3 + W[11];
-        t2 = e0(f) + Maj(f,g,h);    a+=t1;    e=t1+t2;
-        t1 = d + e1(a) + Ch(a,b,c) + 0x72be5d74 + W[12];
-        t2 = e0(e) + Maj(e,f,g);    h+=t1;    d=t1+t2;
-        t1 = c + e1(h) + Ch(h,a,b) + 0x80deb1fe + W[13];
-        t2 = e0(d) + Maj(d,e,f);    g+=t1;    c=t1+t2;
-        t1 = b + e1(g) + Ch(g,h,a) + 0x9bdc06a7 + W[14];
-        t2 = e0(c) + Maj(c,d,e);    f+=t1;    b=t1+t2;
-        t1 = a + e1(f) + Ch(f,g,h) + 0xc19bf174 + W[15];
-        t2 = e0(b) + Maj(b,c,d);    e+=t1;    a=t1+t2;
-
-        t1 = h + e1(e) + Ch(e,f,g) + 0xe49b69c1 + W[16];
-        t2 = e0(a) + Maj(a,b,c);    d+=t1;    h=t1+t2;
-        t1 = g + e1(d) + Ch(d,e,f) + 0xefbe4786 + W[17];
-        t2 = e0(h) + Maj(h,a,b);    c+=t1;    g=t1+t2;
-        t1 = f + e1(c) + Ch(c,d,e) + 0x0fc19dc6 + W[18];
-        t2 = e0(g) + Maj(g,h,a);    b+=t1;    f=t1+t2;
-        t1 = e + e1(b) + Ch(b,c,d) + 0x240ca1cc + W[19];
-        t2 = e0(f) + Maj(f,g,h);    a+=t1;    e=t1+t2;
-        t1 = d + e1(a) + Ch(a,b,c) + 0x2de92c6f + W[20];
-        t2 = e0(e) + Maj(e,f,g);    h+=t1;    d=t1+t2;
-        t1 = c + e1(h) + Ch(h,a,b) + 0x4a7484aa + W[21];
-        t2 = e0(d) + Maj(d,e,f);    g+=t1;    c=t1+t2;
-        t1 = b + e1(g) + Ch(g,h,a) + 0x5cb0a9dc + W[22];
-        t2 = e0(c) + Maj(c,d,e);    f+=t1;    b=t1+t2;
-        t1 = a + e1(f) + Ch(f,g,h) + 0x76f988da + W[23];
-        t2 = e0(b) + Maj(b,c,d);    e+=t1;    a=t1+t2;
-
-        t1 = h + e1(e) + Ch(e,f,g) + 0x983e5152 + W[24];
-        t2 = e0(a) + Maj(a,b,c);    d+=t1;    h=t1+t2;
-        t1 = g + e1(d) + Ch(d,e,f) + 0xa831c66d + W[25];
-        t2 = e0(h) + Maj(h,a,b);    c+=t1;    g=t1+t2;
-        t1 = f + e1(c) + Ch(c,d,e) + 0xb00327c8 + W[26];
-        t2 = e0(g) + Maj(g,h,a);    b+=t1;    f=t1+t2;
-        t1 = e + e1(b) + Ch(b,c,d) + 0xbf597fc7 + W[27];
-        t2 = e0(f) + Maj(f,g,h);    a+=t1;    e=t1+t2;
-        t1 = d + e1(a) + Ch(a,b,c) + 0xc6e00bf3 + W[28];
-        t2 = e0(e) + Maj(e,f,g);    h+=t1;    d=t1+t2;
-        t1 = c + e1(h) + Ch(h,a,b) + 0xd5a79147 + W[29];
-        t2 = e0(d) + Maj(d,e,f);    g+=t1;    c=t1+t2;
-        t1 = b + e1(g) + Ch(g,h,a) + 0x06ca6351 + W[30];
-        t2 = e0(c) + Maj(c,d,e);    f+=t1;    b=t1+t2;
-        t1 = a + e1(f) + Ch(f,g,h) + 0x14292967 + W[31];
-        t2 = e0(b) + Maj(b,c,d);    e+=t1;    a=t1+t2;
-
-        t1 = h + e1(e) + Ch(e,f,g) + 0x27b70a85 + W[32];
-        t2 = e0(a) + Maj(a,b,c);    d+=t1;    h=t1+t2;
-        t1 = g + e1(d) + Ch(d,e,f) + 0x2e1b2138 + W[33];
-        t2 = e0(h) + Maj(h,a,b);    c+=t1;    g=t1+t2;
-        t1 = f + e1(c) + Ch(c,d,e) + 0x4d2c6dfc + W[34];
-        t2 = e0(g) + Maj(g,h,a);    b+=t1;    f=t1+t2;
-        t1 = e + e1(b) + Ch(b,c,d) + 0x53380d13 + W[35];
-        t2 = e0(f) + Maj(f,g,h);    a+=t1;    e=t1+t2;
-        t1 = d + e1(a) + Ch(a,b,c) + 0x650a7354 + W[36];
-        t2 = e0(e) + Maj(e,f,g);    h+=t1;    d=t1+t2;
-        t1 = c + e1(h) + Ch(h,a,b) + 0x766a0abb + W[37];
-        t2 = e0(d) + Maj(d,e,f);    g+=t1;    c=t1+t2;
-        t1 = b + e1(g) + Ch(g,h,a) + 0x81c2c92e + W[38];
-        t2 = e0(c) + Maj(c,d,e);    f+=t1;    b=t1+t2;
-        t1 = a + e1(f) + Ch(f,g,h) + 0x92722c85 + W[39];
-        t2 = e0(b) + Maj(b,c,d);    e+=t1;    a=t1+t2;
-
-        t1 = h + e1(e) + Ch(e,f,g) + 0xa2bfe8a1 + W[40];
-        t2 = e0(a) + Maj(a,b,c);    d+=t1;    h=t1+t2;
-        t1 = g + e1(d) + Ch(d,e,f) + 0xa81a664b + W[41];
-        t2 = e0(h) + Maj(h,a,b);    c+=t1;    g=t1+t2;
-        t1 = f + e1(c) + Ch(c,d,e) + 0xc24b8b70 + W[42];
-        t2 = e0(g) + Maj(g,h,a);    b+=t1;    f=t1+t2;
-        t1 = e + e1(b) + Ch(b,c,d) + 0xc76c51a3 + W[43];
-        t2 = e0(f) + Maj(f,g,h);    a+=t1;    e=t1+t2;
-        t1 = d + e1(a) + Ch(a,b,c) + 0xd192e819 + W[44];
-        t2 = e0(e) + Maj(e,f,g);    h+=t1;    d=t1+t2;
-        t1 = c + e1(h) + Ch(h,a,b) + 0xd6990624 + W[45];
-        t2 = e0(d) + Maj(d,e,f);    g+=t1;    c=t1+t2;
-        t1 = b + e1(g) + Ch(g,h,a) + 0xf40e3585 + W[46];
-        t2 = e0(c) + Maj(c,d,e);    f+=t1;    b=t1+t2;
-        t1 = a + e1(f) + Ch(f,g,h) + 0x106aa070 + W[47];
-        t2 = e0(b) + Maj(b,c,d);    e+=t1;    a=t1+t2;
-
-        t1 = h + e1(e) + Ch(e,f,g) + 0x19a4c116 + W[48];
-        t2 = e0(a) + Maj(a,b,c);    d+=t1;    h=t1+t2;
-        t1 = g + e1(d) + Ch(d,e,f) + 0x1e376c08 + W[49];
-        t2 = e0(h) + Maj(h,a,b);    c+=t1;    g=t1+t2;
-        t1 = f + e1(c) + Ch(c,d,e) + 0x2748774c + W[50];
-        t2 = e0(g) + Maj(g,h,a);    b+=t1;    f=t1+t2;
-        t1 = e + e1(b) + Ch(b,c,d) + 0x34b0bcb5 + W[51];
-        t2 = e0(f) + Maj(f,g,h);    a+=t1;    e=t1+t2;
-        t1 = d + e1(a) + Ch(a,b,c) + 0x391c0cb3 + W[52];
-        t2 = e0(e) + Maj(e,f,g);    h+=t1;    d=t1+t2;
-        t1 = c + e1(h) + Ch(h,a,b) + 0x4ed8aa4a + W[53];
-        t2 = e0(d) + Maj(d,e,f);    g+=t1;    c=t1+t2;
-        t1 = b + e1(g) + Ch(g,h,a) + 0x5b9cca4f + W[54];
-        t2 = e0(c) + Maj(c,d,e);    f+=t1;    b=t1+t2;
-        t1 = a + e1(f) + Ch(f,g,h) + 0x682e6ff3 + W[55];
-        t2 = e0(b) + Maj(b,c,d);    e+=t1;    a=t1+t2;
-
-        t1 = h + e1(e) + Ch(e,f,g) + 0x748f82ee + W[56];
-        t2 = e0(a) + Maj(a,b,c);    d+=t1;    h=t1+t2;
-        t1 = g + e1(d) + Ch(d,e,f) + 0x78a5636f + W[57];
-        t2 = e0(h) + Maj(h,a,b);    c+=t1;    g=t1+t2;
-        t1 = f + e1(c) + Ch(c,d,e) + 0x84c87814 + W[58];
-        t2 = e0(g) + Maj(g,h,a);    b+=t1;    f=t1+t2;
-        t1 = e + e1(b) + Ch(b,c,d) + 0x8cc70208 + W[59];
-        t2 = e0(f) + Maj(f,g,h);    a+=t1;    e=t1+t2;
-        t1 = d + e1(a) + Ch(a,b,c) + 0x90befffa + W[60];
-        t2 = e0(e) + Maj(e,f,g);    h+=t1;    d=t1+t2;
-        t1 = c + e1(h) + Ch(h,a,b) + 0xa4506ceb + W[61];
-        t2 = e0(d) + Maj(d,e,f);    g+=t1;    c=t1+t2;
-        t1 = b + e1(g) + Ch(g,h,a) + 0xbef9a3f7 + W[62];
-        t2 = e0(c) + Maj(c,d,e);    f+=t1;    b=t1+t2;
-        t1 = a + e1(f) + Ch(f,g,h) + 0xc67178f2 + W[63];
-        t2 = e0(b) + Maj(b,c,d);    e+=t1;    a=t1+t2;
-
-        state[0] += a; state[1] += b; state[2] += c; state[3] += d;
-        state[4] += e; state[5] += f; state[6] += g; state[7] += h;
-
-        /* clear any sensitive info... */
-        a = b = c = d = e = f = g = h = t1 = t2 = 0;
-        memset(W, 0, 64 * sizeof(u32));
-}
-                                                                       /*}}}*/
-SHA256Summation::SHA256Summation()                                     /*{{{*/
-{
-        Sum.state[0] = H0;
-        Sum.state[1] = H1;
-        Sum.state[2] = H2;
-        Sum.state[3] = H3;
-        Sum.state[4] = H4;
-        Sum.state[5] = H5;
-        Sum.state[6] = H6;
-        Sum.state[7] = H7;
-        Sum.count[0] = Sum.count[1] = 0;
-        memset(Sum.buf, 0, sizeof(Sum.buf));
-        Done = false;
-}
-                                                                       /*}}}*/
-bool SHA256Summation::Add(const u8 *data, unsigned long len)           /*{{{*/
-{
-        struct sha256_ctx *sctx = &Sum;
-        unsigned int i, index, part_len;
-
-        if (Done) return false;
-
-        /* Compute number of bytes mod 128 */
-        index = (unsigned int)((sctx->count[0] >> 3) & 0x3f);
-
-        /* Update number of bits */
-        if ((sctx->count[0] += (len << 3)) < (len << 3)) {
-                sctx->count[1]++;
-                sctx->count[1] += (len >> 29);
-        }
-
-        part_len = 64 - index;
-
-        /* Transform as many times as possible. */
-        if (len >= part_len) {
-                memcpy(&sctx->buf[index], data, part_len);
-                sha256_transform(sctx->state, sctx->buf);
-
-                for (i = part_len; i + 63 < len; i += 64)
-                        sha256_transform(sctx->state, &data[i]);
-                index = 0;
-        } else {
-                i = 0;
-        }
-
-        /* Buffer remaining input */
-        memcpy(&sctx->buf[index], &data[i], len-i);
-
-        return true;
-}
-                                                                       /*}}}*/
-SHA256SumValue SHA256Summation::Result()                               /*{{{*/
-{
-   struct sha256_ctx *sctx = &Sum;
-   if (!Done) {
-        u8 bits[8];
-        unsigned int index, pad_len, t;
-        static const u8 padding[64] = { 0x80, };
-
-        /* Save number of bits */
-        t = sctx->count[0];
-        bits[7] = t; t >>= 8;
-        bits[6] = t; t >>= 8;
-        bits[5] = t; t >>= 8;
-        bits[4] = t;
-        t = sctx->count[1];
-        bits[3] = t; t >>= 8;
-        bits[2] = t; t >>= 8;
-        bits[1] = t; t >>= 8;
-        bits[0] = t;
-
-        /* Pad out to 56 mod 64. */
-        index = (sctx->count[0] >> 3) & 0x3f;
-        pad_len = (index < 56) ? (56 - index) : ((64+56) - index);
-        Add(padding, pad_len);
-
-        /* Append length (before padding) */
-        Add(bits, 8);
-   }
-
-   Done = true;
-
-   /* Store state in digest */
-
-   SHA256SumValue res;
-   u8 *out = res.Sum;
-
-   int i, j;
-   unsigned int t;
-   for (i = j = 0; i < 8; i++, j += 4) {
-      t = sctx->state[i];
-      out[j+3] = t; t >>= 8;
-      out[j+2] = t; t >>= 8;
-      out[j+1] = t; t >>= 8;
-      out[j  ] = t;
-   }
-
-   return res;
-}
-                                                                       /*}}}*/
-// SHA256SumValue::SHA256SumValue - Constructs the sum from a string   /*{{{*/
-// ---------------------------------------------------------------------
-/* The string form of a SHA256 is a 64 character hex number */
-SHA256SumValue::SHA256SumValue(string Str)
-{
-   memset(Sum,0,sizeof(Sum));
-   Set(Str);
-}
-                                                                       /*}}}*/
-// SHA256SumValue::SHA256SumValue - Default constructor                /*{{{*/
-// ---------------------------------------------------------------------
-/* Sets the value to 0 */
-SHA256SumValue::SHA256SumValue()
-{
-   memset(Sum,0,sizeof(Sum));
-}
-                                                                       /*}}}*/
-// SHA256SumValue::Set - Set the sum from a string                     /*{{{*/
-// ---------------------------------------------------------------------
-/* Converts the hex string into a set of chars */
-bool SHA256SumValue::Set(string Str)
-{
-   return Hex2Num(Str,Sum,sizeof(Sum));
-}
-                                                                       /*}}}*/
-// SHA256SumValue::Value - Convert the number into a string            /*{{{*/
-// ---------------------------------------------------------------------
-/* Converts the set of chars into a hex string in lower case */
-string SHA256SumValue::Value() const
-{
-   char Conv[16] =
-      { '0','1','2','3','4','5','6','7','8','9','a','b',
-      'c','d','e','f'
-   };
-   char Result[65];
-   Result[64] = 0;
-
-   // Convert each char into two letters
-   int J = 0;
-   int I = 0;
-   for (; I != 64; J++,I += 2)
-   {
-      Result[I] = Conv[Sum[J] >> 4];
-      Result[I + 1] = Conv[Sum[J] & 0xF];
-   }
-
-   return string(Result);
-}
-                                                                       /*}}}*/
-// SHA256SumValue::operator == - Comparator                            /*{{{*/
-// ---------------------------------------------------------------------
-/* Call memcmp on the buffer */
-bool SHA256SumValue::operator == (const SHA256SumValue & rhs) const
-{
-   return memcmp(Sum,rhs.Sum,sizeof(Sum)) == 0;
-}
-                                                                       /*}}}*/
-// SHA256Summation::AddFD - Add content of file into the checksum      /*{{{*/
-// ---------------------------------------------------------------------
-/* */
-bool SHA256Summation::AddFD(int Fd,unsigned long Size)
-{
-   unsigned char Buf[64 * 64];
-   int Res = 0;
-   int ToEOF = (Size == 0);
-   while (Size != 0 || ToEOF)
-   {
-      unsigned n = sizeof(Buf);
-      if (!ToEOF) n = min(Size,(unsigned long)n);
-      Res = read(Fd,Buf,n);
-      if (Res < 0 || (!ToEOF && (unsigned) Res != n)) // error, or short read
-         return false;
-      if (ToEOF && Res == 0) // EOF
-         break;
-      Size -= Res;
-      Add(Buf,Res);
-   }
-   return true;
-}
-                                                                       /*}}}*/
-
index 5934b5641dccba20c896252cc460f29f49d74091..15146c94870ee6d064d07e8690605e4d88c0fc0c 100644 (file)
@@ -1,72 +1,8 @@
-// -*- mode: cpp; mode: fold -*-
-// Description                                                          /*{{{*/
-// $Id: sha1.h,v 1.3 2001/05/07 05:05:47 jgg Exp $
-/* ######################################################################
-
-   SHA256SumValue - Storage for a SHA-256 hash.
-   SHA256Summation - SHA-256 Secure Hash Algorithm.
-   
-   This is a C++ interface to a set of SHA256Sum functions, that mirrors
-   the equivalent MD5 & SHA1 classes. 
-
-   ##################################################################### */
-                                                                        /*}}}*/
 #ifndef APTPKG_SHA256_H
 #define APTPKG_SHA256_H
 
-#include <string>
-#include <cstring>
-#include <algorithm>
-#include <stdint.h>
-
-using std::string;
-using std::min;
-
-class SHA256Summation;
-
-class SHA256SumValue
-{
-   friend class SHA256Summation;
-   unsigned char Sum[32];
-   
-   public:
-
-   // Accessors
-   bool operator ==(const SHA256SumValue &rhs) const; 
-   string Value() const;
-   inline void Value(unsigned char S[32])
-         {for (int I = 0; I != sizeof(Sum); I++) S[I] = Sum[I];};
-   inline operator string() const {return Value();};
-   bool Set(string Str);
-   inline void Set(unsigned char S[32]) 
-         {for (int I = 0; I != sizeof(Sum); I++) Sum[I] = S[I];};
-
-   SHA256SumValue(string Str);
-   SHA256SumValue();
-};
-
-struct sha256_ctx {
-    uint32_t count[2];
-    uint32_t state[8];
-    uint8_t buf[128];
-};
-
-class SHA256Summation
-{
-   struct sha256_ctx Sum;
-
-   bool Done;
-
-   public:
+#include "sha2.h"
 
-   bool Add(const unsigned char *inbuf,unsigned long inlen);
-   inline bool Add(const char *Data) {return Add((unsigned char *)Data,strlen(Data));};
-   bool AddFD(int Fd,unsigned long Size);
-   inline bool Add(const unsigned char *Beg,const unsigned char *End) 
-                  {return Add(Beg,End-Beg);};
-   SHA256SumValue Result();
-   
-   SHA256Summation();
-};
+#warning "This header is deprecated, please include sha2.h instead"
 
 #endif
diff --git a/apt-pkg/contrib/sha2_internal.cc b/apt-pkg/contrib/sha2_internal.cc
new file mode 100644 (file)
index 0000000..ff995cd
--- /dev/null
@@ -0,0 +1,1066 @@
+/*
+ * FILE:       sha2.c
+ * AUTHOR:     Aaron D. Gifford - http://www.aarongifford.com/
+ * 
+ * Copyright (c) 2000-2001, Aaron D. Gifford
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTOR(S) ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTOR(S) BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $Id: sha2.c,v 1.1 2001/11/08 00:01:51 adg Exp adg $
+ */
+#include <config.h>
+
+#include <string.h>    /* memcpy()/memset() or bcopy()/bzero() */
+#include <assert.h>    /* assert() */
+#include "sha2_internal.h"
+
+/*
+ * ASSERT NOTE:
+ * Some sanity checking code is included using assert().  On my FreeBSD
+ * system, this additional code can be removed by compiling with NDEBUG
+ * defined.  Check your own systems manpage on assert() to see how to
+ * compile WITHOUT the sanity checking code on your system.
+ *
+ * UNROLLED TRANSFORM LOOP NOTE:
+ * You can define SHA2_UNROLL_TRANSFORM to use the unrolled transform
+ * loop version for the hash transform rounds (defined using macros
+ * later in this file).  Either define on the command line, for example:
+ *
+ *   cc -DSHA2_UNROLL_TRANSFORM -o sha2 sha2.c sha2prog.c
+ *
+ * or define below:
+ *
+ *   #define SHA2_UNROLL_TRANSFORM
+ *
+ */
+
+
+/*** SHA-256/384/512 Machine Architecture Definitions *****************/
+/*
+ * BYTE_ORDER NOTE:
+ *
+ * Please make sure that your system defines BYTE_ORDER.  If your
+ * architecture is little-endian, make sure it also defines
+ * LITTLE_ENDIAN and that the two (BYTE_ORDER and LITTLE_ENDIAN) are
+ * equivilent.
+ *
+ * If your system does not define the above, then you can do so by
+ * hand like this:
+ *
+ *   #define LITTLE_ENDIAN 1234
+ *   #define BIG_ENDIAN    4321
+ *
+ * And for little-endian machines, add:
+ *
+ *   #define BYTE_ORDER LITTLE_ENDIAN 
+ *
+ * Or for big-endian machines:
+ *
+ *   #define BYTE_ORDER BIG_ENDIAN
+ *
+ * The FreeBSD machine this was written on defines BYTE_ORDER
+ * appropriately by including <sys/types.h> (which in turn includes
+ * <machine/endian.h> where the appropriate definitions are actually
+ * made).
+ */
+#if !defined(BYTE_ORDER) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN)
+#error Define BYTE_ORDER to be equal to either LITTLE_ENDIAN or BIG_ENDIAN
+#endif
+
+/*
+ * Define the followingsha2_* types to types of the correct length on
+ * the native archtecture.   Most BSD systems and Linux define u_intXX_t
+ * types.  Machines with very recent ANSI C headers, can use the
+ * uintXX_t definintions from inttypes.h by defining SHA2_USE_INTTYPES_H
+ * during compile or in the sha.h header file.
+ *
+ * Machines that support neither u_intXX_t nor inttypes.h's uintXX_t
+ * will need to define these three typedefs below (and the appropriate
+ * ones in sha.h too) by hand according to their system architecture.
+ *
+ * Thank you, Jun-ichiro itojun Hagino, for suggesting using u_intXX_t
+ * types and pointing out recent ANSI C support for uintXX_t in inttypes.h.
+ */
+#ifdef SHA2_USE_INTTYPES_H
+
+typedef uint8_t  sha2_byte;    /* Exactly 1 byte */
+typedef uint32_t sha2_word32;  /* Exactly 4 bytes */
+typedef uint64_t sha2_word64;  /* Exactly 8 bytes */
+
+#else /* SHA2_USE_INTTYPES_H */
+
+typedef u_int8_t  sha2_byte;   /* Exactly 1 byte */
+typedef u_int32_t sha2_word32; /* Exactly 4 bytes */
+typedef u_int64_t sha2_word64; /* Exactly 8 bytes */
+
+#endif /* SHA2_USE_INTTYPES_H */
+
+
+/*** SHA-256/384/512 Various Length Definitions ***********************/
+/* NOTE: Most of these are in sha2.h */
+#define SHA256_SHORT_BLOCK_LENGTH      (SHA256_BLOCK_LENGTH - 8)
+#define SHA384_SHORT_BLOCK_LENGTH      (SHA384_BLOCK_LENGTH - 16)
+#define SHA512_SHORT_BLOCK_LENGTH      (SHA512_BLOCK_LENGTH - 16)
+
+
+/*** ENDIAN REVERSAL MACROS *******************************************/
+#if BYTE_ORDER == LITTLE_ENDIAN
+#define REVERSE32(w,x) { \
+       sha2_word32 tmp = (w); \
+       tmp = (tmp >> 16) | (tmp << 16); \
+       (x) = ((tmp & 0xff00ff00UL) >> 8) | ((tmp & 0x00ff00ffUL) << 8); \
+}
+#define REVERSE64(w,x) { \
+       sha2_word64 tmp = (w); \
+       tmp = (tmp >> 32) | (tmp << 32); \
+       tmp = ((tmp & 0xff00ff00ff00ff00ULL) >> 8) | \
+             ((tmp & 0x00ff00ff00ff00ffULL) << 8); \
+       (x) = ((tmp & 0xffff0000ffff0000ULL) >> 16) | \
+             ((tmp & 0x0000ffff0000ffffULL) << 16); \
+}
+#endif /* BYTE_ORDER == LITTLE_ENDIAN */
+
+/*
+ * Macro for incrementally adding the unsigned 64-bit integer n to the
+ * unsigned 128-bit integer (represented using a two-element array of
+ * 64-bit words):
+ */
+#define ADDINC128(w,n) { \
+       (w)[0] += (sha2_word64)(n); \
+       if ((w)[0] < (n)) { \
+               (w)[1]++; \
+       } \
+}
+
+/*
+ * Macros for copying blocks of memory and for zeroing out ranges
+ * of memory.  Using these macros makes it easy to switch from
+ * using memset()/memcpy() and using bzero()/bcopy().
+ *
+ * Please define either SHA2_USE_MEMSET_MEMCPY or define
+ * SHA2_USE_BZERO_BCOPY depending on which function set you
+ * choose to use:
+ */
+#if !defined(SHA2_USE_MEMSET_MEMCPY) && !defined(SHA2_USE_BZERO_BCOPY)
+/* Default to memset()/memcpy() if no option is specified */
+#define        SHA2_USE_MEMSET_MEMCPY  1
+#endif
+#if defined(SHA2_USE_MEMSET_MEMCPY) && defined(SHA2_USE_BZERO_BCOPY)
+/* Abort with an error if BOTH options are defined */
+#error Define either SHA2_USE_MEMSET_MEMCPY or SHA2_USE_BZERO_BCOPY, not both!
+#endif
+
+#ifdef SHA2_USE_MEMSET_MEMCPY
+#define MEMSET_BZERO(p,l)      memset((p), 0, (l))
+#define MEMCPY_BCOPY(d,s,l)    memcpy((d), (s), (l))
+#endif
+#ifdef SHA2_USE_BZERO_BCOPY
+#define MEMSET_BZERO(p,l)      bzero((p), (l))
+#define MEMCPY_BCOPY(d,s,l)    bcopy((s), (d), (l))
+#endif
+
+
+/*** THE SIX LOGICAL FUNCTIONS ****************************************/
+/*
+ * Bit shifting and rotation (used by the six SHA-XYZ logical functions:
+ *
+ *   NOTE:  The naming of R and S appears backwards here (R is a SHIFT and
+ *   S is a ROTATION) because the SHA-256/384/512 description document
+ *   (see http://csrc.nist.gov/cryptval/shs/sha256-384-512.pdf) uses this
+ *   same "backwards" definition.
+ */
+/* Shift-right (used in SHA-256, SHA-384, and SHA-512): */
+#define R(b,x)                 ((x) >> (b))
+/* 32-bit Rotate-right (used in SHA-256): */
+#define S32(b,x)       (((x) >> (b)) | ((x) << (32 - (b))))
+/* 64-bit Rotate-right (used in SHA-384 and SHA-512): */
+#define S64(b,x)       (((x) >> (b)) | ((x) << (64 - (b))))
+
+/* Two of six logical functions used in SHA-256, SHA-384, and SHA-512: */
+#define Ch(x,y,z)      (((x) & (y)) ^ ((~(x)) & (z)))
+#define Maj(x,y,z)     (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
+
+/* Four of six logical functions used in SHA-256: */
+#define Sigma0_256(x)  (S32(2,  (x)) ^ S32(13, (x)) ^ S32(22, (x)))
+#define Sigma1_256(x)  (S32(6,  (x)) ^ S32(11, (x)) ^ S32(25, (x)))
+#define sigma0_256(x)  (S32(7,  (x)) ^ S32(18, (x)) ^ R(3 ,   (x)))
+#define sigma1_256(x)  (S32(17, (x)) ^ S32(19, (x)) ^ R(10,   (x)))
+
+/* Four of six logical functions used in SHA-384 and SHA-512: */
+#define Sigma0_512(x)  (S64(28, (x)) ^ S64(34, (x)) ^ S64(39, (x)))
+#define Sigma1_512(x)  (S64(14, (x)) ^ S64(18, (x)) ^ S64(41, (x)))
+#define sigma0_512(x)  (S64( 1, (x)) ^ S64( 8, (x)) ^ R( 7,   (x)))
+#define sigma1_512(x)  (S64(19, (x)) ^ S64(61, (x)) ^ R( 6,   (x)))
+
+/*** INTERNAL FUNCTION PROTOTYPES *************************************/
+/* NOTE: These should not be accessed directly from outside this
+ * library -- they are intended for private internal visibility/use
+ * only.
+ */
+static void SHA512_Last(SHA512_CTX*);
+static void SHA256_Transform(SHA256_CTX*, const sha2_word32*);
+static void SHA512_Transform(SHA512_CTX*, const sha2_word64*);
+
+
+/*** SHA-XYZ INITIAL HASH VALUES AND CONSTANTS ************************/
+/* Hash constant words K for SHA-256: */
+const static sha2_word32 K256[64] = {
+       0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL,
+       0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL,
+       0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL,
+       0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL,
+       0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL,
+       0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL,
+       0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL,
+       0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL,
+       0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL,
+       0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL,
+       0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL,
+       0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL,
+       0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL,
+       0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL,
+       0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL,
+       0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL
+};
+
+/* Initial hash value H for SHA-256: */
+const static sha2_word32 sha256_initial_hash_value[8] = {
+       0x6a09e667UL,
+       0xbb67ae85UL,
+       0x3c6ef372UL,
+       0xa54ff53aUL,
+       0x510e527fUL,
+       0x9b05688cUL,
+       0x1f83d9abUL,
+       0x5be0cd19UL
+};
+
+/* Hash constant words K for SHA-384 and SHA-512: */
+const static sha2_word64 K512[80] = {
+       0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL,
+       0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL,
+       0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL,
+       0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL,
+       0xd807aa98a3030242ULL, 0x12835b0145706fbeULL,
+       0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL,
+       0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL,
+       0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL,
+       0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL,
+       0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL,
+       0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL,
+       0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL,
+       0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL,
+       0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL,
+       0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL,
+       0x06ca6351e003826fULL, 0x142929670a0e6e70ULL,
+       0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL,
+       0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL,
+       0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL,
+       0x81c2c92e47edaee6ULL, 0x92722c851482353bULL,
+       0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL,
+       0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL,
+       0xd192e819d6ef5218ULL, 0xd69906245565a910ULL,
+       0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL,
+       0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL,
+       0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL,
+       0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL,
+       0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL,
+       0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL,
+       0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL,
+       0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL,
+       0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL,
+       0xca273eceea26619cULL, 0xd186b8c721c0c207ULL,
+       0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL,
+       0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL,
+       0x113f9804bef90daeULL, 0x1b710b35131c471bULL,
+       0x28db77f523047d84ULL, 0x32caab7b40c72493ULL,
+       0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL,
+       0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL,
+       0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL
+};
+
+/* Initial hash value H for SHA-384 */
+const static sha2_word64 sha384_initial_hash_value[8] = {
+       0xcbbb9d5dc1059ed8ULL,
+       0x629a292a367cd507ULL,
+       0x9159015a3070dd17ULL,
+       0x152fecd8f70e5939ULL,
+       0x67332667ffc00b31ULL,
+       0x8eb44a8768581511ULL,
+       0xdb0c2e0d64f98fa7ULL,
+       0x47b5481dbefa4fa4ULL
+};
+
+/* Initial hash value H for SHA-512 */
+const static sha2_word64 sha512_initial_hash_value[8] = {
+       0x6a09e667f3bcc908ULL,
+       0xbb67ae8584caa73bULL,
+       0x3c6ef372fe94f82bULL,
+       0xa54ff53a5f1d36f1ULL,
+       0x510e527fade682d1ULL,
+       0x9b05688c2b3e6c1fULL,
+       0x1f83d9abfb41bd6bULL,
+       0x5be0cd19137e2179ULL
+};
+
+/*
+ * Constant used by SHA256/384/512_End() functions for converting the
+ * digest to a readable hexadecimal character string:
+ */
+static const char *sha2_hex_digits = "0123456789abcdef";
+
+
+/*** SHA-256: *********************************************************/
+void SHA256_Init(SHA256_CTX* context) {
+       if (context == (SHA256_CTX*)0) {
+               return;
+       }
+       MEMCPY_BCOPY(context->state, sha256_initial_hash_value, SHA256_DIGEST_LENGTH);
+       MEMSET_BZERO(context->buffer, SHA256_BLOCK_LENGTH);
+       context->bitcount = 0;
+}
+
+#ifdef SHA2_UNROLL_TRANSFORM
+
+/* Unrolled SHA-256 round macros: */
+
+#if BYTE_ORDER == LITTLE_ENDIAN
+
+#define ROUND256_0_TO_15(a,b,c,d,e,f,g,h)      \
+       REVERSE32(*data++, W256[j]); \
+       T1 = (h) + Sigma1_256(e) + Ch((e), (f), (g)) + \
+             K256[j] + W256[j]; \
+       (d) += T1; \
+       (h) = T1 + Sigma0_256(a) + Maj((a), (b), (c)); \
+       j++
+
+
+#else /* BYTE_ORDER == LITTLE_ENDIAN */
+
+#define ROUND256_0_TO_15(a,b,c,d,e,f,g,h)      \
+       T1 = (h) + Sigma1_256(e) + Ch((e), (f), (g)) + \
+            K256[j] + (W256[j] = *data++); \
+       (d) += T1; \
+       (h) = T1 + Sigma0_256(a) + Maj((a), (b), (c)); \
+       j++
+
+#endif /* BYTE_ORDER == LITTLE_ENDIAN */
+
+#define ROUND256(a,b,c,d,e,f,g,h)      \
+       s0 = W256[(j+1)&0x0f]; \
+       s0 = sigma0_256(s0); \
+       s1 = W256[(j+14)&0x0f]; \
+       s1 = sigma1_256(s1); \
+       T1 = (h) + Sigma1_256(e) + Ch((e), (f), (g)) + K256[j] + \
+            (W256[j&0x0f] += s1 + W256[(j+9)&0x0f] + s0); \
+       (d) += T1; \
+       (h) = T1 + Sigma0_256(a) + Maj((a), (b), (c)); \
+       j++
+
+static void SHA256_Transform(SHA256_CTX* context, const sha2_word32* data) {
+       sha2_word32     a, b, c, d, e, f, g, h, s0, s1;
+       sha2_word32     T1, *W256;
+       int             j;
+
+       W256 = (sha2_word32*)context->buffer;
+
+       /* Initialize registers with the prev. intermediate value */
+       a = context->state[0];
+       b = context->state[1];
+       c = context->state[2];
+       d = context->state[3];
+       e = context->state[4];
+       f = context->state[5];
+       g = context->state[6];
+       h = context->state[7];
+
+       j = 0;
+       do {
+               /* Rounds 0 to 15 (unrolled): */
+               ROUND256_0_TO_15(a,b,c,d,e,f,g,h);
+               ROUND256_0_TO_15(h,a,b,c,d,e,f,g);
+               ROUND256_0_TO_15(g,h,a,b,c,d,e,f);
+               ROUND256_0_TO_15(f,g,h,a,b,c,d,e);
+               ROUND256_0_TO_15(e,f,g,h,a,b,c,d);
+               ROUND256_0_TO_15(d,e,f,g,h,a,b,c);
+               ROUND256_0_TO_15(c,d,e,f,g,h,a,b);
+               ROUND256_0_TO_15(b,c,d,e,f,g,h,a);
+       } while (j < 16);
+
+       /* Now for the remaining rounds to 64: */
+       do {
+               ROUND256(a,b,c,d,e,f,g,h);
+               ROUND256(h,a,b,c,d,e,f,g);
+               ROUND256(g,h,a,b,c,d,e,f);
+               ROUND256(f,g,h,a,b,c,d,e);
+               ROUND256(e,f,g,h,a,b,c,d);
+               ROUND256(d,e,f,g,h,a,b,c);
+               ROUND256(c,d,e,f,g,h,a,b);
+               ROUND256(b,c,d,e,f,g,h,a);
+       } while (j < 64);
+
+       /* Compute the current intermediate hash value */
+       context->state[0] += a;
+       context->state[1] += b;
+       context->state[2] += c;
+       context->state[3] += d;
+       context->state[4] += e;
+       context->state[5] += f;
+       context->state[6] += g;
+       context->state[7] += h;
+
+       /* Clean up */
+       a = b = c = d = e = f = g = h = T1 = 0;
+}
+
+#else /* SHA2_UNROLL_TRANSFORM */
+
+static void SHA256_Transform(SHA256_CTX* context, const sha2_word32* data) {
+       sha2_word32     a, b, c, d, e, f, g, h, s0, s1;
+       sha2_word32     T1, T2, *W256;
+       int             j;
+
+       W256 = (sha2_word32*)context->buffer;
+
+       /* Initialize registers with the prev. intermediate value */
+       a = context->state[0];
+       b = context->state[1];
+       c = context->state[2];
+       d = context->state[3];
+       e = context->state[4];
+       f = context->state[5];
+       g = context->state[6];
+       h = context->state[7];
+
+       j = 0;
+       do {
+#if BYTE_ORDER == LITTLE_ENDIAN
+               /* Copy data while converting to host byte order */
+               REVERSE32(*data++,W256[j]);
+               /* Apply the SHA-256 compression function to update a..h */
+               T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + W256[j];
+#else /* BYTE_ORDER == LITTLE_ENDIAN */
+               /* Apply the SHA-256 compression function to update a..h with copy */
+               T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + (W256[j] = *data++);
+#endif /* BYTE_ORDER == LITTLE_ENDIAN */
+               T2 = Sigma0_256(a) + Maj(a, b, c);
+               h = g;
+               g = f;
+               f = e;
+               e = d + T1;
+               d = c;
+               c = b;
+               b = a;
+               a = T1 + T2;
+
+               j++;
+       } while (j < 16);
+
+       do {
+               /* Part of the message block expansion: */
+               s0 = W256[(j+1)&0x0f];
+               s0 = sigma0_256(s0);
+               s1 = W256[(j+14)&0x0f]; 
+               s1 = sigma1_256(s1);
+
+               /* Apply the SHA-256 compression function to update a..h */
+               T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + 
+                    (W256[j&0x0f] += s1 + W256[(j+9)&0x0f] + s0);
+               T2 = Sigma0_256(a) + Maj(a, b, c);
+               h = g;
+               g = f;
+               f = e;
+               e = d + T1;
+               d = c;
+               c = b;
+               b = a;
+               a = T1 + T2;
+
+               j++;
+       } while (j < 64);
+
+       /* Compute the current intermediate hash value */
+       context->state[0] += a;
+       context->state[1] += b;
+       context->state[2] += c;
+       context->state[3] += d;
+       context->state[4] += e;
+       context->state[5] += f;
+       context->state[6] += g;
+       context->state[7] += h;
+
+       /* Clean up */
+       a = b = c = d = e = f = g = h = T1 = T2 = 0;
+}
+
+#endif /* SHA2_UNROLL_TRANSFORM */
+
+void SHA256_Update(SHA256_CTX* context, const sha2_byte *data, size_t len) {
+       unsigned int    freespace, usedspace;
+
+       if (len == 0) {
+               /* Calling with no data is valid - we do nothing */
+               return;
+       }
+
+       /* Sanity check: */
+       assert(context != (SHA256_CTX*)0 && data != (sha2_byte*)0);
+
+       usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH;
+       if (usedspace > 0) {
+               /* Calculate how much free space is available in the buffer */
+               freespace = SHA256_BLOCK_LENGTH - usedspace;
+
+               if (len >= freespace) {
+                       /* Fill the buffer completely and process it */
+                       MEMCPY_BCOPY(&context->buffer[usedspace], data, freespace);
+                       context->bitcount += freespace << 3;
+                       len -= freespace;
+                       data += freespace;
+                       SHA256_Transform(context, (sha2_word32*)context->buffer);
+               } else {
+                       /* The buffer is not yet full */
+                       MEMCPY_BCOPY(&context->buffer[usedspace], data, len);
+                       context->bitcount += len << 3;
+                       /* Clean up: */
+                       usedspace = freespace = 0;
+                       return;
+               }
+       }
+       while (len >= SHA256_BLOCK_LENGTH) {
+               /* Process as many complete blocks as we can */
+               SHA256_Transform(context, (sha2_word32*)data);
+               context->bitcount += SHA256_BLOCK_LENGTH << 3;
+               len -= SHA256_BLOCK_LENGTH;
+               data += SHA256_BLOCK_LENGTH;
+       }
+       if (len > 0) {
+               /* There's left-overs, so save 'em */
+               MEMCPY_BCOPY(context->buffer, data, len);
+               context->bitcount += len << 3;
+       }
+       /* Clean up: */
+       usedspace = freespace = 0;
+}
+
+void SHA256_Final(sha2_byte digest[], SHA256_CTX* context) {
+       sha2_word32     *d = (sha2_word32*)digest;
+       unsigned int    usedspace;
+
+       /* Sanity check: */
+       assert(context != (SHA256_CTX*)0);
+
+       /* If no digest buffer is passed, we don't bother doing this: */
+       if (digest != (sha2_byte*)0) {
+               usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH;
+#if BYTE_ORDER == LITTLE_ENDIAN
+               /* Convert FROM host byte order */
+               REVERSE64(context->bitcount,context->bitcount);
+#endif
+               if (usedspace > 0) {
+                       /* Begin padding with a 1 bit: */
+                       context->buffer[usedspace++] = 0x80;
+
+                       if (usedspace <= SHA256_SHORT_BLOCK_LENGTH) {
+                               /* Set-up for the last transform: */
+                               MEMSET_BZERO(&context->buffer[usedspace], SHA256_SHORT_BLOCK_LENGTH - usedspace);
+                       } else {
+                               if (usedspace < SHA256_BLOCK_LENGTH) {
+                                       MEMSET_BZERO(&context->buffer[usedspace], SHA256_BLOCK_LENGTH - usedspace);
+                               }
+                               /* Do second-to-last transform: */
+                               SHA256_Transform(context, (sha2_word32*)context->buffer);
+
+                               /* And set-up for the last transform: */
+                               MEMSET_BZERO(context->buffer, SHA256_SHORT_BLOCK_LENGTH);
+                       }
+               } else {
+                       /* Set-up for the last transform: */
+                       MEMSET_BZERO(context->buffer, SHA256_SHORT_BLOCK_LENGTH);
+
+                       /* Begin padding with a 1 bit: */
+                       *context->buffer = 0x80;
+               }
+               /* Set the bit count: */
+               *(sha2_word64*)&context->buffer[SHA256_SHORT_BLOCK_LENGTH] = context->bitcount;
+
+               /* Final transform: */
+               SHA256_Transform(context, (sha2_word32*)context->buffer);
+
+#if BYTE_ORDER == LITTLE_ENDIAN
+               {
+                       /* Convert TO host byte order */
+                       int     j;
+                       for (j = 0; j < 8; j++) {
+                               REVERSE32(context->state[j],context->state[j]);
+                               *d++ = context->state[j];
+                       }
+               }
+#else
+               MEMCPY_BCOPY(d, context->state, SHA256_DIGEST_LENGTH);
+#endif
+       }
+
+       /* Clean up state data: */
+       MEMSET_BZERO(context, sizeof(context));
+       usedspace = 0;
+}
+
+char *SHA256_End(SHA256_CTX* context, char buffer[]) {
+       sha2_byte       digest[SHA256_DIGEST_LENGTH], *d = digest;
+       int             i;
+
+       /* Sanity check: */
+       assert(context != (SHA256_CTX*)0);
+
+       if (buffer != (char*)0) {
+               SHA256_Final(digest, context);
+
+               for (i = 0; i < SHA256_DIGEST_LENGTH; i++) {
+                       *buffer++ = sha2_hex_digits[(*d & 0xf0) >> 4];
+                       *buffer++ = sha2_hex_digits[*d & 0x0f];
+                       d++;
+               }
+               *buffer = (char)0;
+       } else {
+               MEMSET_BZERO(context, sizeof(context));
+       }
+       MEMSET_BZERO(digest, SHA256_DIGEST_LENGTH);
+       return buffer;
+}
+
+char* SHA256_Data(const sha2_byte* data, size_t len, char digest[SHA256_DIGEST_STRING_LENGTH]) {
+       SHA256_CTX      context;
+
+       SHA256_Init(&context);
+       SHA256_Update(&context, data, len);
+       return SHA256_End(&context, digest);
+}
+
+
+/*** SHA-512: *********************************************************/
+void SHA512_Init(SHA512_CTX* context) {
+       if (context == (SHA512_CTX*)0) {
+               return;
+       }
+       MEMCPY_BCOPY(context->state, sha512_initial_hash_value, SHA512_DIGEST_LENGTH);
+       MEMSET_BZERO(context->buffer, SHA512_BLOCK_LENGTH);
+       context->bitcount[0] = context->bitcount[1] =  0;
+}
+
+#ifdef SHA2_UNROLL_TRANSFORM
+
+/* Unrolled SHA-512 round macros: */
+#if BYTE_ORDER == LITTLE_ENDIAN
+
+#define ROUND512_0_TO_15(a,b,c,d,e,f,g,h)      \
+       REVERSE64(*data++, W512[j]); \
+       T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + \
+             K512[j] + W512[j]; \
+       (d) += T1, \
+       (h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)), \
+       j++
+
+
+#else /* BYTE_ORDER == LITTLE_ENDIAN */
+
+#define ROUND512_0_TO_15(a,b,c,d,e,f,g,h)      \
+       T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + \
+             K512[j] + (W512[j] = *data++); \
+       (d) += T1; \
+       (h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)); \
+       j++
+
+#endif /* BYTE_ORDER == LITTLE_ENDIAN */
+
+#define ROUND512(a,b,c,d,e,f,g,h)      \
+       s0 = W512[(j+1)&0x0f]; \
+       s0 = sigma0_512(s0); \
+       s1 = W512[(j+14)&0x0f]; \
+       s1 = sigma1_512(s1); \
+       T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + K512[j] + \
+             (W512[j&0x0f] += s1 + W512[(j+9)&0x0f] + s0); \
+       (d) += T1; \
+       (h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)); \
+       j++
+
+static void SHA512_Transform(SHA512_CTX* context, const sha2_word64* data) {
+       sha2_word64     a, b, c, d, e, f, g, h, s0, s1;
+       sha2_word64     T1, *W512 = (sha2_word64*)context->buffer;
+       int             j;
+
+       /* Initialize registers with the prev. intermediate value */
+       a = context->state[0];
+       b = context->state[1];
+       c = context->state[2];
+       d = context->state[3];
+       e = context->state[4];
+       f = context->state[5];
+       g = context->state[6];
+       h = context->state[7];
+
+       j = 0;
+       do {
+               ROUND512_0_TO_15(a,b,c,d,e,f,g,h);
+               ROUND512_0_TO_15(h,a,b,c,d,e,f,g);
+               ROUND512_0_TO_15(g,h,a,b,c,d,e,f);
+               ROUND512_0_TO_15(f,g,h,a,b,c,d,e);
+               ROUND512_0_TO_15(e,f,g,h,a,b,c,d);
+               ROUND512_0_TO_15(d,e,f,g,h,a,b,c);
+               ROUND512_0_TO_15(c,d,e,f,g,h,a,b);
+               ROUND512_0_TO_15(b,c,d,e,f,g,h,a);
+       } while (j < 16);
+
+       /* Now for the remaining rounds up to 79: */
+       do {
+               ROUND512(a,b,c,d,e,f,g,h);
+               ROUND512(h,a,b,c,d,e,f,g);
+               ROUND512(g,h,a,b,c,d,e,f);
+               ROUND512(f,g,h,a,b,c,d,e);
+               ROUND512(e,f,g,h,a,b,c,d);
+               ROUND512(d,e,f,g,h,a,b,c);
+               ROUND512(c,d,e,f,g,h,a,b);
+               ROUND512(b,c,d,e,f,g,h,a);
+       } while (j < 80);
+
+       /* Compute the current intermediate hash value */
+       context->state[0] += a;
+       context->state[1] += b;
+       context->state[2] += c;
+       context->state[3] += d;
+       context->state[4] += e;
+       context->state[5] += f;
+       context->state[6] += g;
+       context->state[7] += h;
+
+       /* Clean up */
+       a = b = c = d = e = f = g = h = T1 = 0;
+}
+
+#else /* SHA2_UNROLL_TRANSFORM */
+
+static void SHA512_Transform(SHA512_CTX* context, const sha2_word64* data) {
+       sha2_word64     a, b, c, d, e, f, g, h, s0, s1;
+       sha2_word64     T1, T2, *W512 = (sha2_word64*)context->buffer;
+       int             j;
+
+       /* Initialize registers with the prev. intermediate value */
+       a = context->state[0];
+       b = context->state[1];
+       c = context->state[2];
+       d = context->state[3];
+       e = context->state[4];
+       f = context->state[5];
+       g = context->state[6];
+       h = context->state[7];
+
+       j = 0;
+       do {
+#if BYTE_ORDER == LITTLE_ENDIAN
+               /* Convert TO host byte order */
+               REVERSE64(*data++, W512[j]);
+               /* Apply the SHA-512 compression function to update a..h */
+               T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + W512[j];
+#else /* BYTE_ORDER == LITTLE_ENDIAN */
+               /* Apply the SHA-512 compression function to update a..h with copy */
+               T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + (W512[j] = *data++);
+#endif /* BYTE_ORDER == LITTLE_ENDIAN */
+               T2 = Sigma0_512(a) + Maj(a, b, c);
+               h = g;
+               g = f;
+               f = e;
+               e = d + T1;
+               d = c;
+               c = b;
+               b = a;
+               a = T1 + T2;
+
+               j++;
+       } while (j < 16);
+
+       do {
+               /* Part of the message block expansion: */
+               s0 = W512[(j+1)&0x0f];
+               s0 = sigma0_512(s0);
+               s1 = W512[(j+14)&0x0f];
+               s1 =  sigma1_512(s1);
+
+               /* Apply the SHA-512 compression function to update a..h */
+               T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] +
+                    (W512[j&0x0f] += s1 + W512[(j+9)&0x0f] + s0);
+               T2 = Sigma0_512(a) + Maj(a, b, c);
+               h = g;
+               g = f;
+               f = e;
+               e = d + T1;
+               d = c;
+               c = b;
+               b = a;
+               a = T1 + T2;
+
+               j++;
+       } while (j < 80);
+
+       /* Compute the current intermediate hash value */
+       context->state[0] += a;
+       context->state[1] += b;
+       context->state[2] += c;
+       context->state[3] += d;
+       context->state[4] += e;
+       context->state[5] += f;
+       context->state[6] += g;
+       context->state[7] += h;
+
+       /* Clean up */
+       a = b = c = d = e = f = g = h = T1 = T2 = 0;
+}
+
+#endif /* SHA2_UNROLL_TRANSFORM */
+
+void SHA512_Update(SHA512_CTX* context, const sha2_byte *data, size_t len) {
+       unsigned int    freespace, usedspace;
+
+       if (len == 0) {
+               /* Calling with no data is valid - we do nothing */
+               return;
+       }
+
+       /* Sanity check: */
+       assert(context != (SHA512_CTX*)0 && data != (sha2_byte*)0);
+
+       usedspace = (context->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH;
+       if (usedspace > 0) {
+               /* Calculate how much free space is available in the buffer */
+               freespace = SHA512_BLOCK_LENGTH - usedspace;
+
+               if (len >= freespace) {
+                       /* Fill the buffer completely and process it */
+                       MEMCPY_BCOPY(&context->buffer[usedspace], data, freespace);
+                       ADDINC128(context->bitcount, freespace << 3);
+                       len -= freespace;
+                       data += freespace;
+                       SHA512_Transform(context, (sha2_word64*)context->buffer);
+               } else {
+                       /* The buffer is not yet full */
+                       MEMCPY_BCOPY(&context->buffer[usedspace], data, len);
+                       ADDINC128(context->bitcount, len << 3);
+                       /* Clean up: */
+                       usedspace = freespace = 0;
+                       return;
+               }
+       }
+       while (len >= SHA512_BLOCK_LENGTH) {
+               /* Process as many complete blocks as we can */
+               SHA512_Transform(context, (sha2_word64*)data);
+               ADDINC128(context->bitcount, SHA512_BLOCK_LENGTH << 3);
+               len -= SHA512_BLOCK_LENGTH;
+               data += SHA512_BLOCK_LENGTH;
+       }
+       if (len > 0) {
+               /* There's left-overs, so save 'em */
+               MEMCPY_BCOPY(context->buffer, data, len);
+               ADDINC128(context->bitcount, len << 3);
+       }
+       /* Clean up: */
+       usedspace = freespace = 0;
+}
+
+static void SHA512_Last(SHA512_CTX* context) {
+       unsigned int    usedspace;
+
+       usedspace = (context->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH;
+#if BYTE_ORDER == LITTLE_ENDIAN
+       /* Convert FROM host byte order */
+       REVERSE64(context->bitcount[0],context->bitcount[0]);
+       REVERSE64(context->bitcount[1],context->bitcount[1]);
+#endif
+       if (usedspace > 0) {
+               /* Begin padding with a 1 bit: */
+               context->buffer[usedspace++] = 0x80;
+
+               if (usedspace <= SHA512_SHORT_BLOCK_LENGTH) {
+                       /* Set-up for the last transform: */
+                       MEMSET_BZERO(&context->buffer[usedspace], SHA512_SHORT_BLOCK_LENGTH - usedspace);
+               } else {
+                       if (usedspace < SHA512_BLOCK_LENGTH) {
+                               MEMSET_BZERO(&context->buffer[usedspace], SHA512_BLOCK_LENGTH - usedspace);
+                       }
+                       /* Do second-to-last transform: */
+                       SHA512_Transform(context, (sha2_word64*)context->buffer);
+
+                       /* And set-up for the last transform: */
+                       MEMSET_BZERO(context->buffer, SHA512_BLOCK_LENGTH - 2);
+               }
+       } else {
+               /* Prepare for final transform: */
+               MEMSET_BZERO(context->buffer, SHA512_SHORT_BLOCK_LENGTH);
+
+               /* Begin padding with a 1 bit: */
+               *context->buffer = 0x80;
+       }
+       /* Store the length of input data (in bits): */
+       *(sha2_word64*)&context->buffer[SHA512_SHORT_BLOCK_LENGTH] = context->bitcount[1];
+       *(sha2_word64*)&context->buffer[SHA512_SHORT_BLOCK_LENGTH+8] = context->bitcount[0];
+
+       /* Final transform: */
+       SHA512_Transform(context, (sha2_word64*)context->buffer);
+}
+
+void SHA512_Final(sha2_byte digest[], SHA512_CTX* context) {
+       sha2_word64     *d = (sha2_word64*)digest;
+
+       /* Sanity check: */
+       assert(context != (SHA512_CTX*)0);
+
+       /* If no digest buffer is passed, we don't bother doing this: */
+       if (digest != (sha2_byte*)0) {
+               SHA512_Last(context);
+
+               /* Save the hash data for output: */
+#if BYTE_ORDER == LITTLE_ENDIAN
+               {
+                       /* Convert TO host byte order */
+                       int     j;
+                       for (j = 0; j < 8; j++) {
+                               REVERSE64(context->state[j],context->state[j]);
+                               *d++ = context->state[j];
+                       }
+               }
+#else
+               MEMCPY_BCOPY(d, context->state, SHA512_DIGEST_LENGTH);
+#endif
+       }
+
+       /* Zero out state data */
+       MEMSET_BZERO(context, sizeof(context));
+}
+
+char *SHA512_End(SHA512_CTX* context, char buffer[]) {
+       sha2_byte       digest[SHA512_DIGEST_LENGTH], *d = digest;
+       int             i;
+
+       /* Sanity check: */
+       assert(context != (SHA512_CTX*)0);
+
+       if (buffer != (char*)0) {
+               SHA512_Final(digest, context);
+
+               for (i = 0; i < SHA512_DIGEST_LENGTH; i++) {
+                       *buffer++ = sha2_hex_digits[(*d & 0xf0) >> 4];
+                       *buffer++ = sha2_hex_digits[*d & 0x0f];
+                       d++;
+               }
+               *buffer = (char)0;
+       } else {
+               MEMSET_BZERO(context, sizeof(context));
+       }
+       MEMSET_BZERO(digest, SHA512_DIGEST_LENGTH);
+       return buffer;
+}
+
+char* SHA512_Data(const sha2_byte* data, size_t len, char digest[SHA512_DIGEST_STRING_LENGTH]) {
+       SHA512_CTX      context;
+
+       SHA512_Init(&context);
+       SHA512_Update(&context, data, len);
+       return SHA512_End(&context, digest);
+}
+
+
+/*** SHA-384: *********************************************************/
+void SHA384_Init(SHA384_CTX* context) {
+       if (context == (SHA384_CTX*)0) {
+               return;
+       }
+       MEMCPY_BCOPY(context->state, sha384_initial_hash_value, SHA512_DIGEST_LENGTH);
+       MEMSET_BZERO(context->buffer, SHA384_BLOCK_LENGTH);
+       context->bitcount[0] = context->bitcount[1] = 0;
+}
+
+void SHA384_Update(SHA384_CTX* context, const sha2_byte* data, size_t len) {
+       SHA512_Update((SHA512_CTX*)context, data, len);
+}
+
+void SHA384_Final(sha2_byte digest[], SHA384_CTX* context) {
+       sha2_word64     *d = (sha2_word64*)digest;
+
+       /* Sanity check: */
+       assert(context != (SHA384_CTX*)0);
+
+       /* If no digest buffer is passed, we don't bother doing this: */
+       if (digest != (sha2_byte*)0) {
+               SHA512_Last((SHA512_CTX*)context);
+
+               /* Save the hash data for output: */
+#if BYTE_ORDER == LITTLE_ENDIAN
+               {
+                       /* Convert TO host byte order */
+                       int     j;
+                       for (j = 0; j < 6; j++) {
+                               REVERSE64(context->state[j],context->state[j]);
+                               *d++ = context->state[j];
+                       }
+               }
+#else
+               MEMCPY_BCOPY(d, context->state, SHA384_DIGEST_LENGTH);
+#endif
+       }
+
+       /* Zero out state data */
+       MEMSET_BZERO(context, sizeof(context));
+}
+
+char *SHA384_End(SHA384_CTX* context, char buffer[]) {
+       sha2_byte       digest[SHA384_DIGEST_LENGTH], *d = digest;
+       int             i;
+
+       /* Sanity check: */
+       assert(context != (SHA384_CTX*)0);
+
+       if (buffer != (char*)0) {
+               SHA384_Final(digest, context);
+
+               for (i = 0; i < SHA384_DIGEST_LENGTH; i++) {
+                       *buffer++ = sha2_hex_digits[(*d & 0xf0) >> 4];
+                       *buffer++ = sha2_hex_digits[*d & 0x0f];
+                       d++;
+               }
+               *buffer = (char)0;
+       } else {
+               MEMSET_BZERO(context, sizeof(context));
+       }
+       MEMSET_BZERO(digest, SHA384_DIGEST_LENGTH);
+       return buffer;
+}
+
+char* SHA384_Data(const sha2_byte* data, size_t len, char digest[SHA384_DIGEST_STRING_LENGTH]) {
+       SHA384_CTX      context;
+
+       SHA384_Init(&context);
+       SHA384_Update(&context, data, len);
+       return SHA384_End(&context, digest);
+}
+
diff --git a/apt-pkg/contrib/sha2_internal.h b/apt-pkg/contrib/sha2_internal.h
new file mode 100644 (file)
index 0000000..d9d429c
--- /dev/null
@@ -0,0 +1,188 @@
+/*
+ * FILE:       sha2.h
+ * AUTHOR:     Aaron D. Gifford - http://www.aarongifford.com/
+ * 
+ * Copyright (c) 2000-2001, Aaron D. Gifford
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the copyright holder nor the names of contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTOR(S) ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTOR(S) BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $Id: sha2.h,v 1.1 2001/11/08 00:02:01 adg Exp adg $
+ */
+
+#ifndef __SHA2_H__
+#define __SHA2_H__
+
+/*
+ * Import u_intXX_t size_t type definitions from system headers.  You
+ * may need to change this, or define these things yourself in this
+ * file.
+ */
+#include <sys/types.h>
+
+#ifdef SHA2_USE_INTTYPES_H
+
+#include <inttypes.h>
+
+#endif /* SHA2_USE_INTTYPES_H */
+
+
+/*** SHA-256/384/512 Various Length Definitions ***********************/
+#define SHA256_BLOCK_LENGTH            64
+#define SHA256_DIGEST_LENGTH           32
+#define SHA256_DIGEST_STRING_LENGTH    (SHA256_DIGEST_LENGTH * 2 + 1)
+#define SHA384_BLOCK_LENGTH            128
+#define SHA384_DIGEST_LENGTH           48
+#define SHA384_DIGEST_STRING_LENGTH    (SHA384_DIGEST_LENGTH * 2 + 1)
+#define SHA512_BLOCK_LENGTH            128
+#define SHA512_DIGEST_LENGTH           64
+#define SHA512_DIGEST_STRING_LENGTH    (SHA512_DIGEST_LENGTH * 2 + 1)
+
+
+/*** SHA-256/384/512 Context Structures *******************************/
+/* NOTE: If your architecture does not define either u_intXX_t types or
+ * uintXX_t (from inttypes.h), you may need to define things by hand
+ * for your system:
+ */
+#if 0
+typedef unsigned char u_int8_t;                /* 1-byte  (8-bits)  */
+typedef unsigned int u_int32_t;                /* 4-bytes (32-bits) */
+typedef unsigned long long u_int64_t;  /* 8-bytes (64-bits) */
+#endif
+/*
+ * Most BSD systems already define u_intXX_t types, as does Linux.
+ * Some systems, however, like Compaq's Tru64 Unix instead can use
+ * uintXX_t types defined by very recent ANSI C standards and included
+ * in the file:
+ *
+ *   #include <inttypes.h>
+ *
+ * If you choose to use <inttypes.h> then please define: 
+ *
+ *   #define SHA2_USE_INTTYPES_H
+ *
+ * Or on the command line during compile:
+ *
+ *   cc -DSHA2_USE_INTTYPES_H ...
+ */
+#ifdef SHA2_USE_INTTYPES_H
+
+typedef struct _SHA256_CTX {
+       uint32_t        state[8];
+       uint64_t        bitcount;
+       uint8_t buffer[SHA256_BLOCK_LENGTH];
+} SHA256_CTX;
+typedef struct _SHA512_CTX {
+       uint64_t        state[8];
+       uint64_t        bitcount[2];
+       uint8_t buffer[SHA512_BLOCK_LENGTH];
+} SHA512_CTX;
+
+#else /* SHA2_USE_INTTYPES_H */
+
+typedef struct _SHA256_CTX {
+       u_int32_t       state[8];
+       u_int64_t       bitcount;
+       u_int8_t        buffer[SHA256_BLOCK_LENGTH];
+} SHA256_CTX;
+typedef struct _SHA512_CTX {
+       u_int64_t       state[8];
+       u_int64_t       bitcount[2];
+       u_int8_t        buffer[SHA512_BLOCK_LENGTH];
+} SHA512_CTX;
+
+#endif /* SHA2_USE_INTTYPES_H */
+
+typedef SHA512_CTX SHA384_CTX;
+
+
+/*** SHA-256/384/512 Function Prototypes ******************************/
+#ifndef NOPROTO
+#ifdef SHA2_USE_INTTYPES_H
+
+void SHA256_Init(SHA256_CTX *);
+void SHA256_Update(SHA256_CTX*, const uint8_t*, size_t);
+void SHA256_Final(uint8_t[SHA256_DIGEST_LENGTH], SHA256_CTX*);
+char* SHA256_End(SHA256_CTX*, char[SHA256_DIGEST_STRING_LENGTH]);
+char* SHA256_Data(const uint8_t*, size_t, char[SHA256_DIGEST_STRING_LENGTH]);
+
+void SHA384_Init(SHA384_CTX*);
+void SHA384_Update(SHA384_CTX*, const uint8_t*, size_t);
+void SHA384_Final(uint8_t[SHA384_DIGEST_LENGTH], SHA384_CTX*);
+char* SHA384_End(SHA384_CTX*, char[SHA384_DIGEST_STRING_LENGTH]);
+char* SHA384_Data(const uint8_t*, size_t, char[SHA384_DIGEST_STRING_LENGTH]);
+
+void SHA512_Init(SHA512_CTX*);
+void SHA512_Update(SHA512_CTX*, const uint8_t*, size_t);
+void SHA512_Final(uint8_t[SHA512_DIGEST_LENGTH], SHA512_CTX*);
+char* SHA512_End(SHA512_CTX*, char[SHA512_DIGEST_STRING_LENGTH]);
+char* SHA512_Data(const uint8_t*, size_t, char[SHA512_DIGEST_STRING_LENGTH]);
+
+#else /* SHA2_USE_INTTYPES_H */
+
+void SHA256_Init(SHA256_CTX *);
+void SHA256_Update(SHA256_CTX*, const u_int8_t*, size_t);
+void SHA256_Final(u_int8_t[SHA256_DIGEST_LENGTH], SHA256_CTX*);
+char* SHA256_End(SHA256_CTX*, char[SHA256_DIGEST_STRING_LENGTH]);
+char* SHA256_Data(const u_int8_t*, size_t, char[SHA256_DIGEST_STRING_LENGTH]);
+
+void SHA384_Init(SHA384_CTX*);
+void SHA384_Update(SHA384_CTX*, const u_int8_t*, size_t);
+void SHA384_Final(u_int8_t[SHA384_DIGEST_LENGTH], SHA384_CTX*);
+char* SHA384_End(SHA384_CTX*, char[SHA384_DIGEST_STRING_LENGTH]);
+char* SHA384_Data(const u_int8_t*, size_t, char[SHA384_DIGEST_STRING_LENGTH]);
+
+void SHA512_Init(SHA512_CTX*);
+void SHA512_Update(SHA512_CTX*, const u_int8_t*, size_t);
+void SHA512_Final(u_int8_t[SHA512_DIGEST_LENGTH], SHA512_CTX*);
+char* SHA512_End(SHA512_CTX*, char[SHA512_DIGEST_STRING_LENGTH]);
+char* SHA512_Data(const u_int8_t*, size_t, char[SHA512_DIGEST_STRING_LENGTH]);
+
+#endif /* SHA2_USE_INTTYPES_H */
+
+#else /* NOPROTO */
+
+void SHA256_Init();
+void SHA256_Update();
+void SHA256_Final();
+char* SHA256_End();
+char* SHA256_Data();
+
+void SHA384_Init();
+void SHA384_Update();
+void SHA384_Final();
+char* SHA384_End();
+char* SHA384_Data();
+
+void SHA512_Init();
+void SHA512_Update();
+void SHA512_Final();
+char* SHA512_End();
+char* SHA512_Data();
+
+#endif /* NOPROTO */
+
+#endif /* __SHA2_H__ */
+
index 072dda3ac3b1f74b76f403c4d79bbaffdc5fbbae..aaf44b7ff95fff6601300c06f6a1c0a4bc4b9ac5 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Includes                                                            /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/error.h>
 
-#include <apti18n.h>
-    
 #include <ctype.h>
 #include <string.h>
 #include <stdio.h>
@@ -31,7 +31,7 @@
 #include <stdarg.h>
 #include <iconv.h>
 
-#include "config.h"
+#include <apti18n.h>
 
 using namespace std;
                                                                        /*}}}*/
@@ -271,7 +271,7 @@ bool ParseCWord(const char *&String,string &Res)
 string QuoteString(const string &Str, const char *Bad)
 {
    string Res;
-   for (string::const_iterator I = Str.begin(); I != Str.end(); I++)
+   for (string::const_iterator I = Str.begin(); I != Str.end(); ++I)
    {
       if (strchr(Bad,*I) != 0 || isprint(*I) == 0 || 
          *I == 0x25 || // percent '%' char
@@ -298,7 +298,7 @@ string DeQuoteString(string::const_iterator const &begin,
                        string::const_iterator const &end)
 {
    string Res;
-   for (string::const_iterator I = begin; I != end; I++)
+   for (string::const_iterator I = begin; I != end; ++I)
    {
       if (*I == '%' && I + 2 < end &&
          isxdigit(I[1]) && isxdigit(I[2]))
@@ -632,7 +632,7 @@ string LookupTag(const string &Message,const char *Tag,const char *Default)
 {
    // Look for a matching tag.
    int Length = strlen(Tag);
-   for (string::const_iterator I = Message.begin(); I + Length < Message.end(); I++)
+   for (string::const_iterator I = Message.begin(); I + Length < Message.end(); ++I)
    {
       // Found the tag
       if (I[Length] == ':' && stringcasecmp(I,I+Length,Tag) == 0)
@@ -640,14 +640,14 @@ string LookupTag(const string &Message,const char *Tag,const char *Default)
         // Find the end of line and strip the leading/trailing spaces
         string::const_iterator J;
         I += Length + 1;
-        for (; isspace(*I) != 0 && I < Message.end(); I++);
-        for (J = I; *J != '\n' && J < Message.end(); J++);
-        for (; J > I && isspace(J[-1]) != 0; J--);
+        for (; isspace(*I) != 0 && I < Message.end(); ++I);
+        for (J = I; *J != '\n' && J < Message.end(); ++J);
+        for (; J > I && isspace(J[-1]) != 0; --J);
         
         return string(I,J);
       }
       
-      for (; *I != '\n' && I < Message.end(); I++);
+      for (; *I != '\n' && I < Message.end(); ++I);
    }   
    
    // Failed to find a match
@@ -970,6 +970,34 @@ bool StrToNum(const char *Str,unsigned long &Res,unsigned Len,unsigned Base)
    return true;
 }
                                                                        /*}}}*/
+// StrToNum - Convert a fixed length string to a number                        /*{{{*/
+// ---------------------------------------------------------------------
+/* This is used in decoding the crazy fixed length string headers in 
+   tar and ar files. */
+bool StrToNum(const char *Str,unsigned long long &Res,unsigned Len,unsigned Base)
+{
+   char S[30];
+   if (Len >= sizeof(S))
+      return false;
+   memcpy(S,Str,Len);
+   S[Len] = 0;
+   
+   // All spaces is a zero
+   Res = 0;
+   unsigned I;
+   for (I = 0; S[I] == ' '; I++);
+   if (S[I] == 0)
+      return true;
+   
+   char *End;
+   Res = strtoull(S,&End,Base);
+   if (End == S)
+      return false;
+   
+   return true;
+}
+                                                                       /*}}}*/
+
 // Base256ToNum - Convert a fixed length binary to a number             /*{{{*/
 // ---------------------------------------------------------------------
 /* This is used in decoding the 256bit encoded fixed length fields in
@@ -1224,7 +1252,7 @@ int tolower_ascii(int const c)
 bool CheckDomainList(const string &Host,const string &List)
 {
    string::const_iterator Start = List.begin();
-   for (string::const_iterator Cur = List.begin(); Cur <= List.end(); Cur++)
+   for (string::const_iterator Cur = List.begin(); Cur <= List.end(); ++Cur)
    {
       if (Cur < List.end() && *Cur != ',')
         continue;
@@ -1240,7 +1268,68 @@ bool CheckDomainList(const string &Host,const string &List)
    return false;
 }
                                                                        /*}}}*/
+// DeEscapeString - unescape (\0XX and \xXX) from a string             /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+string DeEscapeString(const string &input)
+{
+   char tmp[3];
+   string::const_iterator it, escape_start;
+   string output, octal, hex;
+   for (it = input.begin(); it != input.end(); ++it)
+   {
+      // just copy non-escape chars
+      if (*it != '\\')
+      {
+         output += *it;
+         continue;
+      }
+
+      // deal with double escape
+      if (*it == '\\' && 
+          (it + 1 < input.end()) &&  it[1] == '\\')
+      {
+         // copy
+         output += *it;
+         // advance iterator one step further
+         ++it;
+         continue;
+      }
+        
+      // ensure we have a char to read
+      if (it + 1 == input.end())
+         continue;
 
+      // read it
+      ++it;
+      switch (*it)
+      {
+         case '0':
+            if (it + 2 <= input.end()) {
+               tmp[0] = it[1];
+               tmp[1] = it[2];
+               tmp[2] = 0;
+               output += (char)strtol(tmp, 0, 8);
+               it += 2;
+            }
+            break;
+         case 'x':
+            if (it + 2 <= input.end()) {
+               tmp[0] = it[1];
+               tmp[1] = it[2];
+               tmp[2] = 0;
+               output += (char)strtol(tmp, 0, 16);
+               it += 2;
+            }
+            break;
+         default:
+            // FIXME: raise exception here?
+            break;
+      }
+   }
+   return output;
+}
+                                                                       /*}}}*/
 // URI::CopyFrom - Copy from an object                                 /*{{{*/
 // ---------------------------------------------------------------------
 /* This parses the URI into all of its components */
@@ -1249,7 +1338,7 @@ void URI::CopyFrom(const string &U)
    string::const_iterator I = U.begin();
 
    // Locate the first colon, this separates the scheme
-   for (; I < U.end() && *I != ':' ; I++);
+   for (; I < U.end() && *I != ':' ; ++I);
    string::const_iterator FirstColon = I;
 
    /* Determine if this is a host type URI with a leading double //
@@ -1261,7 +1350,7 @@ void URI::CopyFrom(const string &U)
    /* Find the / indicating the end of the hostname, ignoring /'s in the
       square brackets */
    bool InBracket = false;
-   for (; SingleSlash < U.end() && (*SingleSlash != '/' || InBracket == true); SingleSlash++)
+   for (; SingleSlash < U.end() && (*SingleSlash != '/' || InBracket == true); ++SingleSlash)
    {
       if (*SingleSlash == '[')
         InBracket = true;
@@ -1294,11 +1383,11 @@ void URI::CopyFrom(const string &U)
    I = FirstColon + 1;
    if (I > SingleSlash)
       I = SingleSlash;
-   for (; I < SingleSlash && *I != ':'; I++);
+   for (; I < SingleSlash && *I != ':'; ++I);
    string::const_iterator SecondColon = I;
    
    // Search for the @ after the colon
-   for (; I < SingleSlash && *I != '@'; I++);
+   for (; I < SingleSlash && *I != '@'; ++I);
    string::const_iterator At = I;
    
    // Now write the host and user/pass
index 89cbf0370008f6c7db8c0909d159321811e6a66b..ab4b547225676252de0c1f2e47a52658a7afe0df 100644 (file)
@@ -39,6 +39,10 @@ bool ParseCWord(const char *&String,string &Res);
 string QuoteString(const string &Str,const char *Bad);
 string DeQuoteString(const string &Str);
 string DeQuoteString(string::const_iterator const &begin, string::const_iterator const &end);
+
+// unescape (\0XX and \xXX) from a string
+string DeEscapeString(const string &input);
+
 string SizeToStr(double Bytes);
 string TimeToStr(unsigned long Sec);
 string Base64Encode(const string &Str);
@@ -52,6 +56,7 @@ string LookupTag(const string &Message,const char *Tag,const char *Default = 0);
 int StringToBool(const string &Text,int Default = -1);
 bool ReadMessages(int Fd, vector<string> &List);
 bool StrToNum(const char *Str,unsigned long &Res,unsigned Len,unsigned Base = 0);
+bool StrToNum(const char *Str,unsigned long long &Res,unsigned Len,unsigned Base = 0);
 bool Base256ToNum(const char *Str,unsigned long &Res,unsigned int Len);
 bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length);
 bool TokSplitString(char Tok,char *Input,char **List,
index c9e7f11767f295c48937759ccebaad49f4abc5bd..27c1f7f3222b9b3b255841e7ba2d7b925b3ac4a7 100644 (file)
@@ -9,6 +9,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/debindexfile.h>
 #include <apt-pkg/debsrcrecords.h>
 #include <apt-pkg/deblistparser.h>
@@ -352,7 +354,7 @@ pkgCache::PkgFileIterator debPackagesIndex::FindInCache(pkgCache &Cache) const
 {
    string FileName = IndexFile("Packages");
    pkgCache::PkgFileIterator File = Cache.FileBegin();
-   for (; File.end() == false; File++)
+   for (; File.end() == false; ++File)
    {
        if (File.FileName() == NULL || FileName != File.FileName())
         continue;
@@ -540,7 +542,7 @@ pkgCache::PkgFileIterator debTranslationsIndex::FindInCache(pkgCache &Cache) con
    string FileName = IndexFile(Language);
    
    pkgCache::PkgFileIterator File = Cache.FileBegin();
-   for (; File.end() == false; File++)
+   for (; File.end() == false; ++File)
    {
       if (FileName != File.FileName())
         continue;
@@ -620,7 +622,7 @@ bool debStatusIndex::Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const
 pkgCache::PkgFileIterator debStatusIndex::FindInCache(pkgCache &Cache) const
 {
    pkgCache::PkgFileIterator File = Cache.FileBegin();
-   for (; File.end() == false; File++)
+   for (; File.end() == false; ++File)
    {
       if (this->File != File.FileName())
         continue;
index b5085992dacd83492b0342fc1027a9a145058a96..678c22473253f7415709891ef4ce4091f0609dc0 100644 (file)
 
 class debStatusIndex : public pkgIndexFile
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
+   protected:
    string File;
-   
+
    public:
 
    virtual const Type *GetType() const;
@@ -36,13 +40,18 @@ class debStatusIndex : public pkgIndexFile
    virtual bool HasPackages() const {return true;};
    virtual unsigned long Size() const;
    virtual bool Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const;
+   bool Merge(pkgCacheGenerator &Gen,OpProgress *Prog, unsigned long const Flag) const;
    virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const;
 
    debStatusIndex(string File);
+   virtual ~debStatusIndex() {};
 };
     
 class debPackagesIndex : public pkgIndexFile
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
    string URI;
    string Dist;
    string Section;
@@ -72,10 +81,14 @@ class debPackagesIndex : public pkgIndexFile
 
    debPackagesIndex(string const &URI, string const &Dist, string const &Section,
                        bool const &Trusted, string const &Arch = "native");
+   virtual ~debPackagesIndex() {};
 };
 
 class debTranslationsIndex : public pkgIndexFile
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
    string URI;
    string Dist;
    string Section;
@@ -103,10 +116,14 @@ class debTranslationsIndex : public pkgIndexFile
    virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const;
 
    debTranslationsIndex(string URI,string Dist,string Section, char const * const Language);
+   virtual ~debTranslationsIndex() {};
 };
 
 class debSourcesIndex : public pkgIndexFile
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
    string URI;
    string Dist;
    string Section;
@@ -136,6 +153,7 @@ class debSourcesIndex : public pkgIndexFile
    virtual unsigned long Size() const;
    
    debSourcesIndex(string URI,string Dist,string Section,bool Trusted);
+   virtual ~debSourcesIndex() {};
 };
 
 #endif
index 9ae1065a4047f72bb57b213b833a7b482b6e9b94..a4a974897f94d64611be4a71b87affbfd4eabbf8 100644 (file)
@@ -10,6 +10,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/deblistparser.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/configuration.h>
@@ -128,12 +130,7 @@ bool debListParser::NewVersion(pkgCache::VerIterator &Ver)
    }
 
    if (ArchitectureAll() == true)
-      switch (Ver->MultiArch)
-      {
-        case pkgCache::Version::Foreign: Ver->MultiArch = pkgCache::Version::AllForeign; break;
-        case pkgCache::Version::Allowed: Ver->MultiArch = pkgCache::Version::AllAllowed; break;
-        default: Ver->MultiArch = pkgCache::Version::All;
-      }
+      Ver->MultiArch |= pkgCache::Version::All;
 
    // Archive Size
    Ver->Size = Section.FindULL("Size");
@@ -203,7 +200,7 @@ string debListParser::DescriptionLanguage()
 
    std::vector<string> const lang = APT::Configuration::getLanguages(true);
    for (std::vector<string>::const_iterator l = lang.begin();
-       l != lang.end(); l++)
+       l != lang.end(); ++l)
       if (Section.FindS(string("Description-").append(*l).c_str()).empty() == false)
         return *l;
 
@@ -461,7 +458,7 @@ const char *debListParser::ConvertRelation(const char *I,unsigned int &Op)
  *
  * The complete architecture, consisting of <kernel>-<cpu>.
  */
-static string CompleteArch(std::stringarch) {
+static string CompleteArch(std::string const &arch) {
     if (arch == "armel")              return "linux-arm";
     if (arch == "armhf")              return "linux-arm";
     if (arch == "lpia")               return "linux-i386";
@@ -500,9 +497,13 @@ const char *debListParser::ParseDepends(const char *Start,const char *Stop,
    Package.assign(Start,I - Start);
 
    // We don't want to confuse library users which can't handle MultiArch
+   string const arch = _config->Find("APT::Architecture");
    if (StripMultiArch == true) {
       size_t const found = Package.rfind(':');
-      if (found != string::npos)
+      if (found != string::npos &&
+         (strcmp(Package.c_str() + found, ":any") == 0 ||
+          strcmp(Package.c_str() + found, ":native") == 0 ||
+          strcmp(Package.c_str() + found + 1, arch.c_str()) == 0))
         Package = Package.substr(0,found);
    }
 
@@ -543,7 +544,6 @@ const char *debListParser::ParseDepends(const char *Start,const char *Stop,
 
    if (ParseArchFlags == true)
    {
-      string arch = _config->Find("APT::Architecture");
       string completeArch = CompleteArch(arch);
 
       // Parse an architecture
@@ -687,12 +687,12 @@ bool debListParser::ParseProvides(pkgCache::VerIterator &Ver)
 
    if (MultiArchEnabled == false)
       return true;
-   else if (Ver->MultiArch == pkgCache::Version::Allowed || Ver->MultiArch == pkgCache::Version::AllAllowed)
+   else if ((Ver->MultiArch & pkgCache::Version::Allowed) == pkgCache::Version::Allowed)
    {
       string const Package = string(Ver.ParentPkg().Name()).append(":").append("any");
       return NewProvidesAllArch(Ver, Package, Ver.VerStr());
    }
-   else if (Ver->MultiArch == pkgCache::Version::Foreign || Ver->MultiArch == pkgCache::Version::AllForeign)
+   else if ((Ver->MultiArch & pkgCache::Version::Foreign) == pkgCache::Version::Foreign)
       return NewProvidesAllArch(Ver, Ver.ParentPkg().Name(), Ver.VerStr());
 
    return true;
@@ -781,7 +781,9 @@ bool debListParser::LoadReleaseInfo(pkgCache::PkgFileIterator &FileI,
       size_t len = 0;
 
       // Skip empty lines
-      for (; buffer[len] == '\r' && buffer[len] == '\n'; ++len);
+      for (; buffer[len] == '\r' && buffer[len] == '\n'; ++len)
+         /* nothing */
+         ;
       if (buffer[len] == '\0')
         continue;
 
@@ -795,13 +797,25 @@ bool debListParser::LoadReleaseInfo(pkgCache::PkgFileIterator &FileI,
       }
 
       // seperate the tag from the data
-      for (; buffer[len] != ':' && buffer[len] != '\0'; ++len);
+      for (; buffer[len] != ':' && buffer[len] != '\0'; ++len)
+         /* nothing */
+         ;
       if (buffer[len] == '\0')
         continue;
       char* dataStart = buffer + len;
-      for (++dataStart; *dataStart == ' '; ++dataStart);
+      for (++dataStart; *dataStart == ' '; ++dataStart)
+         /* nothing */
+         ;
       char* dataEnd = dataStart;
-      for (++dataEnd; *dataEnd != '\0'; ++dataEnd);
+      for (++dataEnd; *dataEnd != '\0'; ++dataEnd)
+         /* nothing */
+         ;
+      // The last char should be a newline, but we can never be sure: #633350
+      char* lineEnd = dataEnd;
+      for (--lineEnd; *lineEnd == '\r' || *lineEnd == '\n'; --lineEnd)
+         /* nothing */
+         ;
+      ++lineEnd;
 
       // which datastorage need to be updated
       map_ptrloc* writeTo = NULL;
@@ -816,7 +830,7 @@ bool debListParser::LoadReleaseInfo(pkgCache::PkgFileIterator &FileI,
       APT_PARSER_WRITETO(FileI->Label, "Label")
       #undef APT_PARSER_WRITETO
       #define APT_PARSER_FLAGIT(X) else if (strncmp(#X, buffer, len) == 0) \
-        pkgTagSection::FindFlag(FileI->Flags, pkgCache::Flag:: X, dataStart, dataEnd-1);
+        pkgTagSection::FindFlag(FileI->Flags, pkgCache::Flag:: X, dataStart, lineEnd);
       APT_PARSER_FLAGIT(NotAutomatic)
       APT_PARSER_FLAGIT(ButAutomaticUpgrades)
       #undef APT_PARSER_FLAGIT
index d62ce641cc59888427c3683abf8907eba4e8f59e..41d712fbfac6b194af4b9983a17f95e6a6c61852 100644 (file)
@@ -25,9 +25,12 @@ class debListParser : public pkgCacheGenerator::ListParser
       const char *Str;
       unsigned char Val;
    };
-   
+
    private:
-   
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
+   protected:
    pkgTagFile Tags;
    pkgTagSection Section;
    unsigned long iOffset;
@@ -36,7 +39,7 @@ class debListParser : public pkgCacheGenerator::ListParser
    bool MultiArchEnabled;
 
    unsigned long UniqFindTagWrite(const char *Tag);
-   bool ParseStatus(pkgCache::PkgIterator &Pkg,pkgCache::VerIterator &Ver);
+   virtual bool ParseStatus(pkgCache::PkgIterator &Pkg,pkgCache::VerIterator &Ver);
    bool ParseDepends(pkgCache::VerIterator &Ver,const char *Tag,
                     unsigned int Type);
    bool ParseProvides(pkgCache::VerIterator &Ver);
@@ -74,6 +77,7 @@ class debListParser : public pkgCacheGenerator::ListParser
    static const char *ConvertRelation(const char *I,unsigned int &Op);
 
    debListParser(FileFd *File, string const &Arch = "");
+   virtual ~debListParser() {};
 };
 
 #endif
index a91cc34e9b826b31aa99f733897342f90550aef7..1d3754b0054b5add45b76a782df0fef77ee72ee3 100644 (file)
@@ -1,4 +1,5 @@
 // ijones, walters
+#include <config.h>
 
 #include <apt-pkg/debmetaindex.h>
 #include <apt-pkg/debindexfile.h>
@@ -142,11 +143,13 @@ string debReleaseIndex::TranslationIndexURI(const char *Type, const string &Sect
       return URI + "dists/" + Dist + "/" + TranslationIndexURISuffix(Type, Section);
 }
 
-debReleaseIndex::debReleaseIndex(string const &URI, string const &Dist) {
-       this->URI = URI;
-       this->Dist = Dist;
-       this->Indexes = NULL;
-       this->Type = "deb";
+debReleaseIndex::debReleaseIndex(string const &URI, string const &Dist) :
+                                       metaIndex(URI, Dist, "deb"), Trusted(CHECK_TRUST)
+{}
+
+debReleaseIndex::debReleaseIndex(string const &URI, string const &Dist, bool const Trusted) :
+                                       metaIndex(URI, Dist, "deb") {
+       SetTrusted(Trusted);
 }
 
 debReleaseIndex::~debReleaseIndex() {
@@ -206,7 +209,7 @@ vector <struct IndexTarget *>* debReleaseIndex::ComputeIndexTargets() const {
                for (std::set<std::string>::const_iterator s = sections.begin();
                     s != sections.end(); ++s) {
                        for (std::vector<std::string>::const_iterator l = lang.begin();
-                            l != lang.end(); l++) {
+                            l != lang.end(); ++l) {
                                if (*l == "none") continue;
                                IndexTarget * Target = new OptionalIndexTarget();
                                Target->ShortDesc = "Translation-" + *l;
@@ -236,7 +239,7 @@ bool debReleaseIndex::GetIndexes(pkgAcquire *Owner, bool const &GetAll) const
    // special case for --print-uris
    if (GetAll) {
       vector <struct IndexTarget *> *targets = ComputeIndexTargets();
-      for (vector <struct IndexTarget*>::const_iterator Target = targets->begin(); Target != targets->end(); Target++) {
+      for (vector <struct IndexTarget*>::const_iterator Target = targets->begin(); Target != targets->end(); ++Target) {
         new pkgAcqIndex(Owner, (*Target)->URI, (*Target)->Description,
                         (*Target)->ShortDesc, HashString());
       }
@@ -252,8 +255,22 @@ bool debReleaseIndex::GetIndexes(pkgAcquire *Owner, bool const &GetAll) const
        return true;
 }
 
+void debReleaseIndex::SetTrusted(bool const Trusted)
+{
+       if (Trusted == true)
+               this->Trusted = ALWAYS_TRUSTED;
+       else
+               this->Trusted = NEVER_TRUSTED;
+}
+
 bool debReleaseIndex::IsTrusted() const
 {
+   if (Trusted == ALWAYS_TRUSTED)
+      return true;
+   else if (Trusted == NEVER_TRUSTED)
+      return false;
+
+
    if(_config->FindB("APT::Authentication::TrustCDROM", false))
       if(URI.substr(0,strlen("cdrom:")) == "cdrom:")
         return true;
@@ -279,7 +296,7 @@ vector <pkgIndexFile *> *debReleaseIndex::GetIndexFiles() {
        if (src != ArchEntries.end()) {
                vector<debSectionEntry const*> const SectionEntries = src->second;
                for (vector<debSectionEntry const*>::const_iterator I = SectionEntries.begin();
-                    I != SectionEntries.end(); I++)
+                    I != SectionEntries.end(); ++I)
                        Indexes->push_back(new debSourcesIndex (URI, Dist, (*I)->Section, IsTrusted()));
        }
 
@@ -294,7 +311,7 @@ vector <pkgIndexFile *> *debReleaseIndex::GetIndexFiles() {
                if (a->first == "source")
                        continue;
                for (vector<debSectionEntry const*>::const_iterator I = a->second.begin();
-                    I != a->second.end(); I++) {
+                    I != a->second.end(); ++I) {
                        Indexes->push_back(new debPackagesIndex (URI, Dist, (*I)->Section, IsTrusted(), a->first));
                        sections[(*I)->Section].insert(lang.begin(), lang.end());
                }
@@ -303,7 +320,7 @@ vector <pkgIndexFile *> *debReleaseIndex::GetIndexFiles() {
        for (map<string, set<string> >::const_iterator s = sections.begin();
             s != sections.end(); ++s)
                for (set<string>::const_iterator l = s->second.begin();
-                    l != s->second.end(); l++) {
+                    l != s->second.end(); ++l) {
                        if (*l == "none") continue;
                        Indexes->push_back(new debTranslationsIndex(URI,Dist,s->first,(*l).c_str()));
                }
@@ -349,15 +366,19 @@ class debSLTypeDebian : public pkgSourceList::Type
       vector<string> const Archs =
                (arch != Options.end()) ? VectorizeString(arch->second, ',') :
                                APT::Configuration::getArchitectures();
+      map<string, string>::const_iterator const trusted = Options.find("trusted");
 
       for (vector<metaIndex *>::const_iterator I = List.begin();
-          I != List.end(); I++)
+          I != List.end(); ++I)
       {
         // We only worry about debian entries here
         if (strcmp((*I)->GetType(), "deb") != 0)
            continue;
 
         debReleaseIndex *Deb = (debReleaseIndex *) (*I);
+        if (trusted != Options.end())
+           Deb->SetTrusted(StringToBool(trusted->second, false));
+
         /* This check insures that there will be only one Release file
            queued for all the Packages files and Sources files it
            corresponds to. */
@@ -375,9 +396,14 @@ class debSLTypeDebian : public pkgSourceList::Type
            return true;
         }
       }
+
       // No currently created Release file indexes this entry, so we create a new one.
-      // XXX determine whether this release is trusted or not
-      debReleaseIndex *Deb = new debReleaseIndex(URI, Dist);
+      debReleaseIndex *Deb;
+      if (trusted != Options.end())
+        Deb = new debReleaseIndex(URI, Dist, StringToBool(trusted->second, false));
+      else
+        Deb = new debReleaseIndex(URI, Dist);
+
       if (IsSrc == true)
         Deb->PushSectionEntry ("source", new debReleaseIndex::debSectionEntry(Section, IsSrc));
       else
index 1561c6e009341a364ab9fd401c47fefd32ec9874..695cfa7cc35d6880e64f30de1387ca46cb19538e 100644 (file)
@@ -19,12 +19,16 @@ class debReleaseIndex : public metaIndex {
    };
 
    private:
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
    std::map<string, vector<debSectionEntry const*> > ArchEntries;
+   enum { ALWAYS_TRUSTED, NEVER_TRUSTED, CHECK_TRUST } Trusted;
 
    public:
 
    debReleaseIndex(string const &URI, string const &Dist);
-   ~debReleaseIndex();
+   debReleaseIndex(string const &URI, string const &Dist, bool const Trusted);
+   virtual ~debReleaseIndex();
 
    virtual string ArchiveURI(string const &File) const {return URI + File;};
    virtual bool GetIndexes(pkgAcquire *Owner, bool const &GetAll=false) const;
@@ -41,6 +45,7 @@ class debReleaseIndex : public metaIndex {
    string TranslationIndexURISuffix(const char *Type, const string &Section) const;
    virtual vector <pkgIndexFile *> *GetIndexFiles();
 
+   void SetTrusted(bool const Trusted);
    virtual bool IsTrusted() const;
 
    void PushSectionEntry(vector<string> const &Archs, const debSectionEntry *Entry);
index ec9e395ef9d1e636d5456affc2e28941fea55257..4dfc8b56a8a5103fd6a30a8314b7ce3e5b519647 100644 (file)
@@ -8,6 +8,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/debrecords.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/error.h>
@@ -77,7 +79,7 @@ string debRecordParser::SHA1Hash()
    return Section.FindS("SHA1");
 }
                                                                        /*}}}*/
-// RecordParser::SHA1Hash - Return the archive hash                    /*{{{*/
+// RecordParser::SHA256Hash - Return the archive hash                  /*{{{*/
 // ---------------------------------------------------------------------
 /* */
 string debRecordParser::SHA256Hash()
@@ -85,6 +87,14 @@ string debRecordParser::SHA256Hash()
    return Section.FindS("SHA256");
 }
                                                                        /*}}}*/
+// RecordParser::SHA512Hash - Return the archive hash                  /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+string debRecordParser::SHA512Hash()
+{
+   return Section.FindS("SHA512");
+}
+                                                                       /*}}}*/
 // RecordParser::Maintainer - Return the maintainer email              /*{{{*/
 // ---------------------------------------------------------------------
 /* */
@@ -93,6 +103,15 @@ string debRecordParser::Maintainer()
    return Section.FindS("Maintainer");
 }
                                                                        /*}}}*/
+// RecordParser::RecordField - Return the value of an arbitrary field       /*{{*/
+// ---------------------------------------------------------------------
+/* */
+string debRecordParser::RecordField(const char *fieldName)
+{
+   return Section.FindS(fieldName);
+}
+
+                                                                        /*}}}*/
 // RecordParser::ShortDesc - Return a 1 line description               /*{{{*/
 // ---------------------------------------------------------------------
 /* */
@@ -118,7 +137,7 @@ string debRecordParser::LongDesc()
   {
      vector<string> const lang = APT::Configuration::getLanguages();
      for (vector<string>::const_iterator l = lang.begin();
-         orig.empty() && l != lang.end(); l++)
+         orig.empty() && l != lang.end(); ++l)
        orig = Section.FindS(string("Description-").append(*l).c_str());
   }
 
index 6f358abfa3225b5a2034fbb88ea1de20a63a689d..7868bfa3d5410b3f6f65ebb2ff2612a9489249e0 100644 (file)
@@ -20,6 +20,9 @@
 
 class debRecordParser : public pkgRecords::Parser
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
    FileFd File;
    pkgTagFile Tags;
    pkgTagSection Section;
@@ -36,6 +39,7 @@ class debRecordParser : public pkgRecords::Parser
    virtual string MD5Hash();
    virtual string SHA1Hash();
    virtual string SHA256Hash();
+   virtual string SHA512Hash();
    virtual string SourcePkg();
    virtual string SourceVer();
    
@@ -46,9 +50,13 @@ class debRecordParser : public pkgRecords::Parser
    virtual string Name();
    virtual string Homepage();
 
+   // An arbitrary custom field
+   virtual string RecordField(const char *fieldName);
+
    virtual void GetRec(const char *&Start,const char *&Stop);
    
    debRecordParser(string FileName,pkgCache &Cache);
+   virtual ~debRecordParser() {};
 };
 
 #endif
index 749305005f46730ccdfbb110312a4890e585ce69..c9c20267b8ed7ee9998e0022a84446003909dab0 100644 (file)
@@ -9,6 +9,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/deblistparser.h>
 #include <apt-pkg/debsrcrecords.h>
 #include <apt-pkg/error.h>
index 905264daa0608a7665a5fde3c688f6d14ee292b9..aa859b0e6378f088b4200637be5ff2245107192c 100644 (file)
@@ -18,6 +18,9 @@
 
 class debSrcRecordParser : public pkgSrcRecords::Parser
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
    FileFd Fd;
    pkgTagFile Tags;
    pkgTagSection Sect;
@@ -50,7 +53,7 @@ class debSrcRecordParser : public pkgSrcRecords::Parser
    debSrcRecordParser(string const &File,pkgIndexFile const *Index) 
       : Parser(Index), Fd(File,FileFd::ReadOnlyGzip), Tags(&Fd,102400), 
         Buffer(0), BufSize(0) {}
-   ~debSrcRecordParser();
+   virtual ~debSrcRecordParser();
 };
 
 #endif
index 8619822dffc5e713b34cdeeb88e46a5ca30adbe2..080af5659d778ed61ce932df3eb0680c59e0fb55 100644 (file)
@@ -10,6 +10,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/debsystem.h>
 #include <apt-pkg/debversion.h>
 #include <apt-pkg/debindexfile.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/fileutl.h>
-#include <apti18n.h>
 #include <sys/types.h>
 #include <unistd.h>
 #include <dirent.h>
 #include <errno.h>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 debSystem debSys;
 
+class debSystemPrivate {
+public:
+   debSystemPrivate() : LockFD(-1), LockCount(0), StatusFile(0)
+   {
+   }
+   // For locking support
+   int LockFD;
+   unsigned LockCount;
+   
+   debStatusIndex *StatusFile;
+};
+
 // System::debSystem - Constructor                                     /*{{{*/
 // ---------------------------------------------------------------------
 /* */
 debSystem::debSystem()
 {
-   LockFD = -1;
-   LockCount = 0;
-   StatusFile = 0;
-   
+   d = new debSystemPrivate();
    Label = "Debian dpkg interface";
    VS = &debVS;
 }
@@ -44,7 +56,8 @@ debSystem::debSystem()
 /* */
 debSystem::~debSystem()
 {
-   delete StatusFile;
+   delete d->StatusFile;
+   delete d;
 }
                                                                        /*}}}*/
 // System::Lock - Get the lock                                         /*{{{*/
@@ -54,16 +67,16 @@ debSystem::~debSystem()
 bool debSystem::Lock()
 {
    // Disable file locking
-   if (_config->FindB("Debug::NoLocking",false) == true || LockCount > 1)
+   if (_config->FindB("Debug::NoLocking",false) == true || d->LockCount > 1)
    {
-      LockCount++;
+      d->LockCount++;
       return true;
    }
 
    // Create the lockfile
    string AdminDir = flNotFile(_config->Find("Dir::State::status"));
-   LockFD = GetLock(AdminDir + "lock");
-   if (LockFD == -1)
+   d->LockFD = GetLock(AdminDir + "lock");
+   if (d->LockFD == -1)
    {
       if (errno == EACCES || errno == EAGAIN)
         return _error->Error(_("Unable to lock the administration directory (%s), "
@@ -76,8 +89,8 @@ bool debSystem::Lock()
    // See if we need to abort with a dirty journal
    if (CheckUpdates() == true)
    {
-      close(LockFD);
-      LockFD = -1;
+      close(d->LockFD);
+      d->LockFD = -1;
       const char *cmd;
       if (getenv("SUDO_USER") != NULL)
         cmd = "sudo dpkg --configure -a";
@@ -89,7 +102,7 @@ bool debSystem::Lock()
                              "run '%s' to correct the problem. "), cmd);
    }
 
-        LockCount++;
+        d->LockCount++;
       
    return true;
 }
@@ -99,15 +112,15 @@ bool debSystem::Lock()
 /* */
 bool debSystem::UnLock(bool NoErrors)
 {
-   if (LockCount == 0 && NoErrors == true)
+   if (d->LockCount == 0 && NoErrors == true)
       return false;
    
-   if (LockCount < 1)
+   if (d->LockCount < 1)
       return _error->Error(_("Not locked"));
-   if (--LockCount == 0)
+   if (--d->LockCount == 0)
    {
-      close(LockFD);
-      LockCount = 0;
+      close(d->LockFD);
+      d->LockCount = 0;
    }
    
    return true;
@@ -168,9 +181,9 @@ bool debSystem::Initialize(Configuration &Cnf)
    Cnf.CndSet("Dir::State::status","/var/lib/dpkg/status");
    Cnf.CndSet("Dir::Bin::dpkg","/usr/bin/dpkg");
 
-   if (StatusFile) {
-     delete StatusFile;
-     StatusFile = 0;
+   if (d->StatusFile) {
+     delete d->StatusFile;
+     d->StatusFile = 0;
    }
 
    return true;
@@ -208,9 +221,9 @@ signed debSystem::Score(Configuration const &Cnf)
 /* */
 bool debSystem::AddStatusFiles(vector<pkgIndexFile *> &List)
 {
-   if (StatusFile == 0)
-      StatusFile = new debStatusIndex(_config->FindFile("Dir::State::status"));
-   List.push_back(StatusFile);
+   if (d->StatusFile == 0)
+      d->StatusFile = new debStatusIndex(_config->FindFile("Dir::State::status"));
+   List.push_back(d->StatusFile);
    return true;
 }
                                                                        /*}}}*/
@@ -220,11 +233,11 @@ bool debSystem::AddStatusFiles(vector<pkgIndexFile *> &List)
 bool debSystem::FindIndex(pkgCache::PkgFileIterator File,
                          pkgIndexFile *&Found) const
 {
-   if (StatusFile == 0)
+   if (d->StatusFile == 0)
       return false;
-   if (StatusFile->FindInCache(*File.Cache()) == File)
+   if (d->StatusFile->FindInCache(*File.Cache()) == File)
    {
-      Found = StatusFile;
+      Found = d->StatusFile;
       return true;
    }
    
index 5f9995e5dc7c9716cc0d97ee09fdb0469c778235..23215525675761dbdb81552bb276e34efb374786 100644 (file)
 
 #include <apt-pkg/pkgsystem.h>
 
+class debSystemPrivate;
+
 class debStatusIndex;
 class debSystem : public pkgSystem
 {
-   // For locking support
-   int LockFD;
-   unsigned LockCount;
+   // private d-pointer
+   debSystemPrivate *d;
    bool CheckUpdates();
-   
-   debStatusIndex *StatusFile;
-   
+
    public:
 
    virtual bool Lock();
@@ -35,7 +34,7 @@ class debSystem : public pkgSystem
                          pkgIndexFile *&Found) const;
 
    debSystem();
-   ~debSystem();
+   virtual ~debSystem();
 };
 
 extern debSystem debSys;
index 755ffbe96036b40370c09f3ce35a043a987fdeef..ba32b2dd4d0757d482889d0f6f8f675b929bb9bb 100644 (file)
@@ -11,6 +11,7 @@
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
 #define APT_COMPATIBILITY 986
+#include <config.h>
 
 #include <apt-pkg/debversion.h>
 #include <apt-pkg/pkgcache.h>
index 57361ccdc3e2d93f8e797488a91f64037463cbf4..0cc21f322003d35413e7ec8fa530511a72e3133a 100644 (file)
@@ -8,6 +8,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Includes                                                            /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/dpkgpm.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/configuration.h>
 #include <sys/ioctl.h>
 #include <pty.h>
 
-#include <config.h>
 #include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
 
+class pkgDPkgPMPrivate 
+{
+public:
+   pkgDPkgPMPrivate() : dpkgbuf_pos(0), term_out(NULL), history_out(NULL)
+   {
+   }
+   bool stdin_is_dev_null;
+   // the buffer we use for the dpkg status-fd reading
+   char dpkgbuf[1024];
+   int dpkgbuf_pos;
+   FILE *term_out;
+   FILE *history_out;
+   string dpkg_error;
+};
+
 namespace
 {
   // Maps the dpkg "processing" info to human readable names.  Entry 0
@@ -111,9 +127,9 @@ ionice(int PID)
 // ---------------------------------------------------------------------
 /* */
 pkgDPkgPM::pkgDPkgPM(pkgDepCache *Cache) 
-   : pkgPackageManager(Cache), dpkgbuf_pos(0),
-     term_out(NULL), history_out(NULL), PackagesDone(0), PackagesTotal(0)
+   : pkgPackageManager(Cache), PackagesDone(0), PackagesTotal(0)
 {
+   d = new pkgDPkgPMPrivate();
 }
                                                                        /*}}}*/
 // DPkgPM::pkgDPkgPM - Destructor                                      /*{{{*/
@@ -121,6 +137,7 @@ pkgDPkgPM::pkgDPkgPM(pkgDepCache *Cache)
 /* */
 pkgDPkgPM::~pkgDPkgPM()
 {
+   delete d;
 }
                                                                        /*}}}*/
 // DPkgPM::Install - Install a package                                 /*{{{*/
@@ -214,7 +231,7 @@ bool pkgDPkgPM::SendV2Pkgs(FILE *F)
    fprintf(F,"\n");
  
    // Write out the package actions in order.
-   for (vector<Item>::iterator I = List.begin(); I != List.end(); I++)
+   for (vector<Item>::iterator I = List.begin(); I != List.end(); ++I)
    {
       if(I->Pkg.end() == true)
         continue;
@@ -336,7 +353,7 @@ bool pkgDPkgPM::RunScriptsWithPkgs(const char *Cnf)
       // Feed it the filenames.
       if (Version <= 1)
       {
-        for (vector<Item>::iterator I = List.begin(); I != List.end(); I++)
+        for (vector<Item>::iterator I = List.begin(); I != List.end(); ++I)
         {
            // Only deal with packages to be installed from .deb
            if (I->Op != Item::Install)
@@ -377,7 +394,7 @@ void pkgDPkgPM::DoStdin(int master)
    if (len)
       write(master, input_buf, len);
    else
-      stdin_is_dev_null = true;
+      d->stdin_is_dev_null = true;
 }
                                                                        /*}}}*/
 // DPkgPM::DoTerminalPty - Read the terminal pty and write log         /*{{{*/
@@ -402,8 +419,8 @@ void pkgDPkgPM::DoTerminalPty(int master)
    if(len <= 0) 
       return;
    write(1, term_buf, len);
-   if(term_out)
-      fwrite(term_buf, len, sizeof(char), term_out);
+   if(d->term_out)
+      fwrite(term_buf, len, sizeof(char), d->term_out);
 }
                                                                        /*}}}*/
 // DPkgPM::ProcessDpkgStatusBuf                                                /*{{{*/
@@ -607,14 +624,14 @@ void pkgDPkgPM::DoDpkgStatusFd(int statusfd, int OutStatusFd)
    char *p, *q;
    int len;
 
-   len=read(statusfd, &dpkgbuf[dpkgbuf_pos], sizeof(dpkgbuf)-dpkgbuf_pos);
-   dpkgbuf_pos += len;
+   len=read(statusfd, &d->dpkgbuf[d->dpkgbuf_pos], sizeof(d->dpkgbuf)-d->dpkgbuf_pos);
+   d->dpkgbuf_pos += len;
    if(len <= 0)
       return;
 
    // process line by line if we have a buffer
-   p = q = dpkgbuf;
-   while((q=(char*)memchr(p, '\n', dpkgbuf+dpkgbuf_pos-p)) != NULL)
+   p = q = d->dpkgbuf;
+   while((q=(char*)memchr(p, '\n', d->dpkgbuf+d->dpkgbuf_pos-p)) != NULL)
    {
       *q = 0;
       ProcessDpkgStatusLine(OutStatusFd, p);
@@ -622,8 +639,8 @@ void pkgDPkgPM::DoDpkgStatusFd(int statusfd, int OutStatusFd)
    }
 
    // now move the unprocessed bits (after the final \n that is now a 0x0) 
-   // to the start and update dpkgbuf_pos
-   p = (char*)memrchr(dpkgbuf, 0, dpkgbuf_pos);
+   // to the start and update d->dpkgbuf_pos
+   p = (char*)memrchr(d->dpkgbuf, 0, d->dpkgbuf_pos);
    if(p == NULL)
       return;
 
@@ -631,8 +648,8 @@ void pkgDPkgPM::DoDpkgStatusFd(int statusfd, int OutStatusFd)
    p++;
 
    // move the unprocessed tail to the start and update pos
-   memmove(dpkgbuf, p, p-dpkgbuf);
-   dpkgbuf_pos = dpkgbuf+dpkgbuf_pos-p;
+   memmove(d->dpkgbuf, p, p-d->dpkgbuf);
+   d->dpkgbuf_pos = d->dpkgbuf+d->dpkgbuf_pos-p;
 }
                                                                        /*}}}*/
 // DPkgPM::WriteHistoryTag                                             /*{{{*/
@@ -644,7 +661,7 @@ void pkgDPkgPM::WriteHistoryTag(string const &tag, string value)
    // poor mans rstrip(", ")
    if (value[length-2] == ',' && value[length-1] == ' ')
       value.erase(length - 2, 2);
-   fprintf(history_out, "%s: %s\n", tag.c_str(), value.c_str());
+   fprintf(d->history_out, "%s: %s\n", tag.c_str(), value.c_str());
 }                                                                      /*}}}*/
 // DPkgPM::OpenLog                                                     /*{{{*/
 bool pkgDPkgPM::OpenLog()
@@ -665,11 +682,11 @@ bool pkgDPkgPM::OpenLog()
                                   _config->Find("Dir::Log::Terminal"));
    if (!logfile_name.empty())
    {
-      term_out = fopen(logfile_name.c_str(),"a");
-      if (term_out == NULL)
+      d->term_out = fopen(logfile_name.c_str(),"a");
+      if (d->term_out == NULL)
         return _error->WarningE("OpenLog", _("Could not open file '%s'"), logfile_name.c_str());
-      setvbuf(term_out, NULL, _IONBF, 0);
-      SetCloseExec(fileno(term_out), true);
+      setvbuf(d->term_out, NULL, _IONBF, 0);
+      SetCloseExec(fileno(d->term_out), true);
       struct passwd *pw;
       struct group *gr;
       pw = getpwnam("root");
@@ -677,7 +694,7 @@ bool pkgDPkgPM::OpenLog()
       if (pw != NULL && gr != NULL)
          chown(logfile_name.c_str(), pw->pw_uid, gr->gr_gid);
       chmod(logfile_name.c_str(), 0644);
-      fprintf(term_out, "\nLog started: %s\n", timestr);
+      fprintf(d->term_out, "\nLog started: %s\n", timestr);
    }
 
    // write your history
@@ -685,13 +702,13 @@ bool pkgDPkgPM::OpenLog()
                                   _config->Find("Dir::Log::History"));
    if (!history_name.empty())
    {
-      history_out = fopen(history_name.c_str(),"a");
-      if (history_out == NULL)
+      d->history_out = fopen(history_name.c_str(),"a");
+      if (d->history_out == NULL)
         return _error->WarningE("OpenLog", _("Could not open file '%s'"), history_name.c_str());
       chmod(history_name.c_str(), 0644);
-      fprintf(history_out, "\nStart-Date: %s\n", timestr);
+      fprintf(d->history_out, "\nStart-Date: %s\n", timestr);
       string remove, purge, install, reinstall, upgrade, downgrade;
-      for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+      for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
       {
         enum { CANDIDATE, CANDIDATE_AUTO, CURRENT_CANDIDATE, CURRENT } infostring;
         string *line = NULL;
@@ -730,7 +747,7 @@ bool pkgDPkgPM::OpenLog()
       WriteHistoryTag("Downgrade",downgrade);
       WriteHistoryTag("Remove",remove);
       WriteHistoryTag("Purge",purge);
-      fflush(history_out);
+      fflush(d->history_out);
    }
    
    return true;
@@ -744,16 +761,16 @@ bool pkgDPkgPM::CloseLog()
    struct tm *tmp = localtime(&t);
    strftime(timestr, sizeof(timestr), "%F  %T", tmp);
 
-   if(term_out)
+   if(d->term_out)
    {
-      fprintf(term_out, "Log ended: ");
-      fprintf(term_out, "%s", timestr);
-      fprintf(term_out, "\n");
-      fclose(term_out);
+      fprintf(d->term_out, "Log ended: ");
+      fprintf(d->term_out, "%s", timestr);
+      fprintf(d->term_out, "\n");
+      fclose(d->term_out);
    }
-   term_out = NULL;
+   d->term_out = NULL;
 
-   if(history_out)
+   if(d->history_out)
    {
       if (disappearedPkgs.empty() == false)
       {
@@ -770,12 +787,12 @@ bool pkgDPkgPM::CloseLog()
         }
         WriteHistoryTag("Disappeared", disappear);
       }
-      if (dpkg_error.empty() == false)
-        fprintf(history_out, "Error: %s\n", dpkg_error.c_str());
-      fprintf(history_out, "End-Date: %s\n", timestr);
-      fclose(history_out);
+      if (d->dpkg_error.empty() == false)
+        fprintf(d->history_out, "Error: %s\n", d->dpkg_error.c_str());
+      fprintf(d->history_out, "End-Date: %s\n", timestr);
+      fclose(d->history_out);
    }
-   history_out = NULL;
+   d->history_out = NULL;
 
    return true;
 }
@@ -869,21 +886,21 @@ bool pkgDPkgPM::Go(int OutStatusFd)
    // that will be [installed|configured|removed|purged] and add
    // them to the PackageOps map (the dpkg states it goes through)
    // and the PackageOpsTranslations (human readable strings)
-   for (vector<Item>::const_iterator I = List.begin(); I != List.end();I++)
+   for (vector<Item>::const_iterator I = List.begin(); I != List.end(); ++I)
    {
       if((*I).Pkg.end() == true)
         continue;
 
       string const name = (*I).Pkg.Name();
       PackageOpsDone[name] = 0;
-      for(int i=0; (DpkgStatesOpMap[(*I).Op][i]).state != NULL;  i++) 
+      for(int i=0; (DpkgStatesOpMap[(*I).Op][i]).state != NULL; ++i)
       {
         PackageOps[name].push_back(DpkgStatesOpMap[(*I).Op][i]);
         PackagesTotal++;
       }
    }
 
-   stdin_is_dev_null = false;
+   d->stdin_is_dev_null = false;
 
    // create log
    OpenLog();
@@ -894,7 +911,7 @@ bool pkgDPkgPM::Go(int OutStatusFd)
       // Do all actions with the same Op in one run
       vector<Item>::const_iterator J = I;
       if (TriggersPending == true)
-        for (; J != List.end(); J++)
+        for (; J != List.end(); ++J)
         {
            if (J->Op == I->Op)
               continue;
@@ -906,7 +923,7 @@ bool pkgDPkgPM::Go(int OutStatusFd)
            break;
         }
       else
-        for (; J != List.end() && J->Op == I->Op; J++)
+        for (; J != List.end() && J->Op == I->Op; ++J)
            /* nothing */;
 
       // Generate the argument list
@@ -1014,7 +1031,7 @@ bool pkgDPkgPM::Go(int OutStatusFd)
       // Write in the file or package names
       if (I->Op == Item::Install)
       {
-        for (;I != J && Size < MaxArgBytes; I++)
+        for (;I != J && Size < MaxArgBytes; ++I)
         {
            if (I->File[0] != '/')
               return _error->Error("Internal Error, Pathname to install is not absolute '%s'",I->File.c_str());
@@ -1026,7 +1043,7 @@ bool pkgDPkgPM::Go(int OutStatusFd)
       {
         string const nativeArch = _config->Find("APT::Architecture");
         unsigned long const oldSize = I->Op == Item::Configure ? Size : 0;
-        for (;I != J && Size < MaxArgBytes; I++)
+        for (;I != J && Size < MaxArgBytes; ++I)
         {
            if((*I).Pkg.end() == true)
               continue;
@@ -1090,8 +1107,8 @@ bool pkgDPkgPM::Go(int OutStatusFd)
            const char *s = _("Can not write log, openpty() "
                              "failed (/dev/pts not mounted?)\n");
            fprintf(stderr, "%s",s);
-            if(term_out)
-              fprintf(term_out, "%s",s);
+            if(d->term_out)
+              fprintf(d->term_out, "%s",s);
            master = slave = -1;
         }  else {
            struct termios rtt;
@@ -1221,7 +1238,7 @@ bool pkgDPkgPM::Go(int OutStatusFd)
 
         // wait for input or output here
         FD_ZERO(&rfds);
-        if (master >= 0 && !stdin_is_dev_null)
+        if (master >= 0 && !d->stdin_is_dev_null)
            FD_SET(0, &rfds); 
         FD_SET(_dpkgin, &rfds);
         if(master >= 0)
@@ -1276,14 +1293,14 @@ bool pkgDPkgPM::Go(int OutStatusFd)
            RunScripts("DPkg::Post-Invoke");
 
         if (WIFSIGNALED(Status) != 0 && WTERMSIG(Status) == SIGSEGV) 
-           strprintf(dpkg_error, "Sub-process %s received a segmentation fault.",Args[0]);
+           strprintf(d->dpkg_error, "Sub-process %s received a segmentation fault.",Args[0]);
         else if (WIFEXITED(Status) != 0)
-           strprintf(dpkg_error, "Sub-process %s returned an error code (%u)",Args[0],WEXITSTATUS(Status));
+           strprintf(d->dpkg_error, "Sub-process %s returned an error code (%u)",Args[0],WEXITSTATUS(Status));
         else 
-           strprintf(dpkg_error, "Sub-process %s exited unexpectedly",Args[0]);
+           strprintf(d->dpkg_error, "Sub-process %s exited unexpectedly",Args[0]);
 
-        if(dpkg_error.size() > 0)
-           _error->Error("%s", dpkg_error.c_str());
+        if(d->dpkg_error.size() > 0)
+           _error->Error("%s", d->dpkg_error.c_str());
 
         if(stopOnError) 
         {
@@ -1455,8 +1472,8 @@ void pkgDPkgPM::WriteApportReport(const char *pkgpath, const char *errormsg)
    fprintf(report, "ErrorMessage:\n %s\n", errormsg);
 
    // ensure that the log is flushed
-   if(term_out)
-      fflush(term_out);
+   if(d->term_out)
+      fflush(d->term_out);
 
    // attach terminal log it if we have it
    string logfile_name = _config->FindFile("Dir::Log::Terminal");
@@ -1478,7 +1495,7 @@ void pkgDPkgPM::WriteApportReport(const char *pkgpath, const char *errormsg)
    // log the ordering 
    const char *ops_str[] = {"Install", "Configure","Remove","Purge"};
    fprintf(report, "AptOrdering:\n");
-   for (vector<Item>::iterator I = List.begin(); I != List.end(); I++)
+   for (vector<Item>::iterator I = List.begin(); I != List.end(); ++I)
       fprintf(report, " %s: %s\n", (*I).Pkg.Name(), ops_str[(*I).Op]);
 
    // attach dmesg log (to learn about segfaults)
index fb92c58ea98258fa84186773c696cbdf39e9d75b..3f95c51dc9cd37f72806c21708f99b97ec87bc1d 100644 (file)
 using std::vector;
 using std::map;
 
+class pkgDPkgPMPrivate;
 
 class pkgDPkgPM : public pkgPackageManager
 {
    private:
-
-   bool stdin_is_dev_null;
-
-   // the buffer we use for the dpkg status-fd reading
-   char dpkgbuf[1024];
-   int dpkgbuf_pos;
-   FILE *term_out;
-   FILE *history_out;
-   string dpkg_error;
+   pkgDPkgPMPrivate *d;
 
    /** \brief record the disappear action and handle accordingly
 
index e9fa097aaf11e8aa32fdfc274059daf46c9a9eea..f816630aef900a0a4b4813175e733d2b2e9e4e92 100644 (file)
@@ -8,6 +8,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/depcache.h>
 #include <apt-pkg/version.h>
 #include <apt-pkg/versionmatch.h>
 #include <apt-pkg/tagfile.h>
 
 #include <iostream>
-#include <sstream>    
+#include <sstream>
 #include <set>
 
 #include <sys/stat.h>
 
-#include <apti18n.h>    
+#include <apti18n.h>
                                                                        /*}}}*/
 // helper for Install-Recommends-Sections and Never-MarkAuto-Sections  /*{{{*/
 static bool 
@@ -129,7 +131,7 @@ bool pkgDepCache::Init(OpProgress *Prog)
    /* Set the current state of everything. In this state all of the
       packages are kept exactly as is. See AllUpgrade */
    int Done = 0;
-   for (PkgIterator I = PkgBegin(); I.end() != true; I++,Done++)
+   for (PkgIterator I = PkgBegin(); I.end() != true; ++I, ++Done)
    {
       if (Prog != 0 && Done%20 == 0)
         Prog->Progress(Done);
@@ -169,14 +171,14 @@ bool pkgDepCache::readStateFile(OpProgress *Prog)                 /*{{{*/
    string const state = _config->FindFile("Dir::State::extended_states");
    if(RealFileExists(state)) {
       state_file.Open(state, FileFd::ReadOnly);
-      int const file_size = state_file.Size();
+      off_t const file_size = state_file.Size();
       if(Prog != NULL)
         Prog->OverallProgress(0, file_size, 1, 
                               _("Reading state information"));
 
       pkgTagFile tagfile(&state_file);
       pkgTagSection section;
-      int amt = 0;
+      off_t amt = 0;
       bool const debug_autoremove = _config->FindB("Debug::pkgAutoRemove",false);
       while(tagfile.Step(section)) {
         string const pkgname = section.FindS("Package");
@@ -292,7 +294,7 @@ bool pkgDepCache::writeStateFile(OpProgress *prog, bool InstalledOnly)      /*{{{*/
    
    // then write the ones we have not seen yet
    std::ostringstream ostr;
-   for(pkgCache::PkgIterator pkg=Cache->PkgBegin(); !pkg.end(); pkg++) {
+   for(pkgCache::PkgIterator pkg=Cache->PkgBegin(); !pkg.end(); ++pkg) {
       StateCache const &P = PkgState[pkg->ID];
       if(P.Flags & Flag::Auto) {
         if (pkgs_seen.find(pkg.FullName()) != pkgs_seen.end()) {
@@ -365,7 +367,7 @@ bool pkgDepCache::CheckDep(DepIterator Dep,int Type,PkgIterator &Res)
    // Check the providing packages
    PrvIterator P = Dep.TargetPkg().ProvidesList();
    PkgIterator Pkg = Dep.ParentPkg();
-   for (; P.end() != true; P++)
+   for (; P.end() != true; ++P)
    {
       /* Provides may never be applied against the same package (or group)
          if it is a conflicts. See the comment above. */
@@ -406,60 +408,8 @@ bool pkgDepCache::CheckDep(DepIterator Dep,int Type,PkgIterator &Res)
                                                                        /*}}}*/
 // DepCache::AddSizes - Add the packages sizes to the counters         /*{{{*/
 // ---------------------------------------------------------------------
-/* Call with Mult = -1 to preform the inverse opration
-   The Mult increases the complexity of the calulations here and is unused -
-   or do we really have a usecase for removing the size of a package two
-   times? So let us replace it with a simple bool and be done with it… */
-__deprecated void pkgDepCache::AddSizes(const PkgIterator &Pkg,signed long Mult)
-{
-   StateCache &P = PkgState[Pkg->ID];
-   
-   if (Pkg->VersionList == 0)
-      return;
-   
-   if (Pkg.State() == pkgCache::PkgIterator::NeedsConfigure && 
-       P.Keep() == true)
-      return;
-   
-   // Compute the size data
-   if (P.NewInstall() == true)
-   {
-      iUsrSize += (signed long long)(Mult*P.InstVerIter(*this)->InstalledSize);
-      iDownloadSize += (signed long long)(Mult*P.InstVerIter(*this)->Size);
-      return;
-   }
-   
-   // Upgrading
-   if (Pkg->CurrentVer != 0 && 
-       (P.InstallVer != (Version *)Pkg.CurrentVer() || 
-       (P.iFlags & ReInstall) == ReInstall) && P.InstallVer != 0)
-   {
-      iUsrSize += (signed long long)(Mult*((signed long long)P.InstVerIter(*this)->InstalledSize - 
-                       (signed long long)Pkg.CurrentVer()->InstalledSize));
-      iDownloadSize += (signed long long)(Mult*P.InstVerIter(*this)->Size);
-      return;
-   }
-   
-   // Reinstall
-   if (Pkg.State() == pkgCache::PkgIterator::NeedsUnpack &&
-       P.Delete() == false)
-   {
-      iDownloadSize += (signed long long)(Mult*P.InstVerIter(*this)->Size);
-      return;
-   }
-   
-   // Removing
-   if (Pkg->CurrentVer != 0 && P.InstallVer == 0)
-   {
-      iUsrSize -= (signed long long)(Mult*Pkg.CurrentVer()->InstalledSize);
-      return;
-   }   
-}
-                                                                       /*}}}*/
-// DepCache::AddSizes - Add the packages sizes to the counters         /*{{{*/
-// ---------------------------------------------------------------------
 /* Call with Inverse = true to preform the inverse opration */
-void pkgDepCache::AddSizes(const PkgIterator &Pkg, bool const &Inverse)
+void pkgDepCache::AddSizes(const PkgIterator &Pkg, bool const Inverse)
 {
    StateCache &P = PkgState[Pkg->ID];
    
@@ -530,8 +480,9 @@ void pkgDepCache::AddSizes(const PkgIterator &Pkg, bool const &Inverse)
    calld Remove/Add itself. Remember, dependencies can be circular so
    while processing a dep for Pkg it is possible that Add/Remove
    will be called on Pkg */
-void pkgDepCache::AddStates(const PkgIterator &Pkg,int Add)
+void pkgDepCache::AddStates(const PkgIterator &Pkg, bool const Invert)
 {
+   signed char const Add = (Invert == false) ? 1 : -1;
    StateCache &State = PkgState[Pkg->ID];
    
    // The Package is broken (either minimal dep or policy dep)
@@ -585,7 +536,7 @@ void pkgDepCache::BuildGroupOrs(VerIterator const &V)
 {
    unsigned char Group = 0;
    
-   for (DepIterator D = V.DependsList(); D.end() != true; D++)
+   for (DepIterator D = V.DependsList(); D.end() != true; ++D)
    {
       // Build the dependency state.
       unsigned char &State = DepState[D->ID];
@@ -625,7 +576,7 @@ unsigned char pkgDepCache::VersionState(DepIterator D,unsigned char Check,
       // Compute a single dependency element (glob or)
       DepIterator Start = D;
       unsigned char State = 0;
-      for (bool LastOR = true; D.end() == false && LastOR == true; D++)
+      for (bool LastOR = true; D.end() == false && LastOR == true; ++D)
       {
         State |= DepState[D->ID];
         LastOR = (D->CompareOp & Dep::Or) == Dep::Or;
@@ -715,15 +666,15 @@ void pkgDepCache::Update(OpProgress *Prog)
 
    // Perform the depends pass
    int Done = 0;
-   for (PkgIterator I = PkgBegin(); I.end() != true; I++,Done++)
+   for (PkgIterator I = PkgBegin(); I.end() != true; ++I, ++Done)
    {
       if (Prog != 0 && Done%20 == 0)
         Prog->Progress(Done);
-      for (VerIterator V = I.VersionList(); V.end() != true; V++)
+      for (VerIterator V = I.VersionList(); V.end() != true; ++V)
       {
         unsigned char Group = 0;
 
-        for (DepIterator D = V.DependsList(); D.end() != true; D++)
+        for (DepIterator D = V.DependsList(); D.end() != true; ++D)
         {
            // Build the dependency state.
            unsigned char &State = DepState[D->ID];
@@ -760,7 +711,7 @@ void pkgDepCache::Update(OpProgress *Prog)
 void pkgDepCache::Update(DepIterator D)
 {
    // Update the reverse deps
-   for (;D.end() != true; D++)
+   for (;D.end() != true; ++D)
    {      
       unsigned char &State = DepState[D->ID];
       State = DependencyState(D);
@@ -793,30 +744,30 @@ void pkgDepCache::Update(PkgIterator const &Pkg)
    // Update the provides map for the current ver
    if (Pkg->CurrentVer != 0)
       for (PrvIterator P = Pkg.CurrentVer().ProvidesList(); 
-          P.end() != true; P++)
+          P.end() != true; ++P)
         Update(P.ParentPkg().RevDependsList());
 
    // Update the provides map for the candidate ver
    if (PkgState[Pkg->ID].CandidateVer != 0)
       for (PrvIterator P = PkgState[Pkg->ID].CandidateVerIter(*this).ProvidesList();
-          P.end() != true; P++)
+          P.end() != true; ++P)
         Update(P.ParentPkg().RevDependsList());
 }
                                                                        /*}}}*/
 // DepCache::MarkKeep - Put the package in the keep state              /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser,
+bool pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser,
                            unsigned long Depth)
 {
    if (IsModeChangeOk(ModeKeep, Pkg, Depth, FromUser) == false)
-      return;
+      return false;
 
    /* Reject an attempt to keep a non-source broken installed package, those
       must be upgraded */
    if (Pkg.State() == PkgIterator::NeedsUnpack && 
        Pkg.CurrentVer().Downloadable() == false)
-      return;
+      return false;
 
    /* We changed the soft state all the time so the UI is a bit nicer
       to use */
@@ -824,7 +775,7 @@ void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser,
 
    // Check that it is not already kept
    if (P.Mode == ModeKeep)
-      return;
+      return true;
 
    if (Soft == true)
       P.iFlags |= AutoKept;
@@ -857,31 +808,31 @@ void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser,
       P.InstallVer = Pkg.CurrentVer();
 
    AddStates(Pkg);
-
    Update(Pkg);
-
    AddSizes(Pkg);
+
+   return true;
 }
                                                                        /*}}}*/
 // DepCache::MarkDelete - Put the package in the delete state          /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-void pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge,
+bool pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge,
                              unsigned long Depth, bool FromUser)
 {
    if (IsModeChangeOk(ModeDelete, Pkg, Depth, FromUser) == false)
-      return;
+      return false;
 
    StateCache &P = PkgState[Pkg->ID];
 
    // Check that it is not already marked for delete
    if ((P.Mode == ModeDelete || P.InstallVer == 0) && 
        (Pkg.Purge() == true || rPurge == false))
-      return;
+      return true;
 
    // check if we are allowed to remove the package
    if (IsDeleteOk(Pkg,rPurge,Depth,FromUser) == false)
-      return;
+      return false;
 
    P.iFlags &= ~(AutoKept | Purge);
    if (rPurge == true)
@@ -905,6 +856,7 @@ void pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge,
    Update(Pkg);
    AddSizes(Pkg);
 
+   return true;
 }
                                                                        /*}}}*/
 // DepCache::IsDeleteOk - check if it is ok to remove this package     /*{{{*/
@@ -985,18 +937,18 @@ bool pkgDepCache::IsModeChangeOk(ModeList const mode, PkgIterator const &Pkg,
 // DepCache::MarkInstall - Put the package in the install state                /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
+bool pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
                              unsigned long Depth, bool FromUser,
                              bool ForceImportantDeps)
 {
    if (IsModeChangeOk(ModeInstall, Pkg, Depth, FromUser) == false)
-      return;
+      return false;
 
    StateCache &P = PkgState[Pkg->ID];
 
    // See if there is even any possible instalation candidate
    if (P.CandidateVer == 0)
-      return;
+      return false;
 
    /* Check that it is not already marked for install and that it can be 
       installed */
@@ -1005,13 +957,13 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
        P.CandidateVer == (Version *)Pkg.CurrentVer()))
    {
       if (P.CandidateVer == (Version *)Pkg.CurrentVer() && P.InstallVer == 0)
-        MarkKeep(Pkg, false, FromUser, Depth+1);
-      return;
+        return MarkKeep(Pkg, false, FromUser, Depth+1);
+      return true;
    }
 
    // check if we are allowed to install the package
    if (IsInstallOk(Pkg,AutoInst,Depth,FromUser) == false)
-      return;
+      return false;
 
    ActionGroup group(*this);
    P.iFlags &= ~AutoKept;
@@ -1046,8 +998,8 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
    Update(Pkg);
    AddSizes(Pkg);
 
-   if (AutoInst == false)
-      return;
+   if (AutoInst == false || _config->Find("APT::Solver", "internal") != "internal")
+      return true;
 
    if (DebugMarker == true)
       std::clog << OutputInDepth(Depth) << "MarkInstall " << Pkg << " FU=" << FromUser << std::endl;
@@ -1059,7 +1011,7 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
       DepIterator Start = Dep;
       bool Result = true;
       unsigned Ors = 0;
-      for (bool LastOR = true; Dep.end() == false && LastOR == true; Dep++,Ors++)
+      for (bool LastOR = true; Dep.end() == false && LastOR == true; ++Dep, ++Ors)
       {
         LastOR = (Dep->CompareOp & Dep::Or) == Dep::Or;
 
@@ -1091,7 +1043,7 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
            continue;
         // if the dependency was critical, we can't install it, so remove it again
         MarkDelete(Pkg,false,Depth + 1, false);
-        return;
+        return false;
       }
 
       /* Check if any ImportantDep() (but not Critical) were added
@@ -1222,14 +1174,17 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
               continue;
 
            if (PkgState[Pkg->ID].CandidateVer != *I &&
-               Start->Type == Dep::DpkgBreaks)
-              MarkInstall(Pkg,true,Depth + 1, false, ForceImportantDeps);
-           else
-              MarkDelete(Pkg,false,Depth + 1, false);
+               Start->Type == Dep::DpkgBreaks &&
+               MarkInstall(Pkg,true,Depth + 1, false, ForceImportantDeps) == true)
+              continue;
+           else if (MarkDelete(Pkg,false,Depth + 1, false) == false)
+              break;
         }
         continue;
       }      
    }
+
+   return Dep.end() == true;
 }
                                                                        /*}}}*/
 // DepCache::IsInstallOk - check if it is ok to install this package   /*{{{*/
@@ -1268,7 +1223,7 @@ void pkgDepCache::SetReInstall(PkgIterator const &Pkg,bool To)
 // DepCache::SetCandidateVersion - Change the candidate version                /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-void pkgDepCache::SetCandidateVersion(VerIterator TargetVer, bool const &Pseudo)
+void pkgDepCache::SetCandidateVersion(VerIterator TargetVer)
 {
    pkgCache::PkgIterator Pkg = TargetVer.ParentPkg();
    StateCache &P = PkgState[Pkg->ID];
@@ -1522,12 +1477,12 @@ pkgCache::VerIterator pkgDepCache::Policy::GetCandidateVer(PkgIterator const &Pk
       unless they are already installed */
    VerIterator Last(*(pkgCache *)this,0);
    
-   for (VerIterator I = Pkg.VersionList(); I.end() == false; I++)
+   for (VerIterator I = Pkg.VersionList(); I.end() == false; ++I)
    {
       if (Pkg.CurrentVer() == I)
         return I;
       
-      for (VerFileIterator J = I.FileList(); J.end() == false; J++)
+      for (VerFileIterator J = I.FileList(); J.end() == false; ++J)
       {
         if ((J.File()->Flags & Flag::NotSource) != 0)
            continue;
@@ -1558,7 +1513,7 @@ bool pkgDepCache::Policy::IsImportantDep(DepIterator const &Dep)
       return true;
    else if(Dep->Type == pkgCache::Dep::Recommends) 
    {
-      if ( _config->FindB("APT::Install-Recommends", false))
+      if (InstallRecommends)
         return true;
       // we suport a special mode to only install-recommends for certain
       // sections
@@ -1569,11 +1524,17 @@ bool pkgDepCache::Policy::IsImportantDep(DepIterator const &Dep)
         return true;
    }
    else if(Dep->Type == pkgCache::Dep::Suggests)
-     return _config->FindB("APT::Install-Suggests", false);
+      return InstallSuggests;
 
    return false;
 }
                                                                        /*}}}*/
+// Policy::GetPriority - Get the priority of the package pin           /*{{{*/
+signed short pkgDepCache::Policy::GetPriority(pkgCache::PkgIterator const &Pkg)
+{ return 0; };
+signed short pkgDepCache::Policy::GetPriority(pkgCache::PkgFileIterator const &File)
+{ return 0; };
+                                                                       /*}}}*/
 pkgDepCache::InRootSetFunc *pkgDepCache::GetRootSetFunc()              /*{{{*/
 {
   DefaultRootSetFunc *f = new DefaultRootSetFunc;
@@ -1593,12 +1554,15 @@ bool pkgDepCache::MarkFollowsRecommends()
 
 bool pkgDepCache::MarkFollowsSuggests()
 {
-  return _config->FindB("APT::AutoRemove::SuggestsImportant", false);
+  return _config->FindB("APT::AutoRemove::SuggestsImportant", true);
 }
 
 // pkgDepCache::MarkRequired - the main mark algorithm                 /*{{{*/
 bool pkgDepCache::MarkRequired(InRootSetFunc &userFunc)
 {
+   if (_config->Find("APT::Solver", "internal") != "internal")
+      return true;
+
    bool follow_recommends;
    bool follow_suggests;
    bool debug_autoremove = _config->FindB("Debug::pkgAutoRemove",false);
index 9efe110f530f33231c4d12204ed6dd8129e84fdc..66cb7dbababebcf43bfe678adb5d3ec79557a1a5 100644 (file)
@@ -233,6 +233,7 @@ class pkgDepCache : protected pkgCache::Namespace
       inline bool Delete() const {return Mode == ModeDelete;};
       inline bool Purge() const {return Delete() == true && (iFlags & pkgDepCache::Purge) == pkgDepCache::Purge; };
       inline bool Keep() const {return Mode == ModeKeep;};
+      inline bool Protect() const {return (iFlags & Protected) == Protected;};
       inline bool Upgrade() const {return Status > 0 && Mode == ModeInstall;};
       inline bool Upgradable() const {return Status >= 1;};
       inline bool Downgrade() const {return Status < 0 && Mode == ModeInstall;};
@@ -257,11 +258,21 @@ class pkgDepCache : protected pkgCache::Namespace
    class Policy
    {
       public:
-      
+      Policy() {
+         InstallRecommends = _config->FindB("APT::Install-Recommends", false);
+         InstallSuggests = _config->FindB("APT::Install-Suggests", false);
+      }
+
       virtual VerIterator GetCandidateVer(PkgIterator const &Pkg);
       virtual bool IsImportantDep(DepIterator const &Dep);
-      
+      virtual signed short GetPriority(PkgIterator const &Pkg);
+      virtual signed short GetPriority(PkgFileIterator const &File);
+
       virtual ~Policy() {};
+
+      private:
+      bool InstallRecommends;
+      bool InstallSuggests;
    };
 
    private:
@@ -315,11 +326,10 @@ class pkgDepCache : protected pkgCache::Namespace
    void Update(PkgIterator const &P);
    
    // Count manipulators
-   void AddSizes(const PkgIterator &Pkg, bool const &Invert = false);
+   void AddSizes(const PkgIterator &Pkg, bool const Invert = false);
    inline void RemoveSizes(const PkgIterator &Pkg) {AddSizes(Pkg, true);};
-   void AddSizes(const PkgIterator &Pkg,signed long Mult) __deprecated;
-   void AddStates(const PkgIterator &Pkg,int Add = 1);
-   inline void RemoveStates(const PkgIterator &Pkg) {AddStates(Pkg,-1);};
+   void AddStates(const PkgIterator &Pkg, bool const Invert = false);
+   inline void RemoveStates(const PkgIterator &Pkg) {AddStates(Pkg,true);};
    
    public:
 
@@ -388,18 +398,17 @@ class pkgDepCache : protected pkgCache::Namespace
    /** \name State Manipulators
     */
    // @{
-   void MarkKeep(PkgIterator const &Pkg, bool Soft = false,
+   bool MarkKeep(PkgIterator const &Pkg, bool Soft = false,
                 bool FromUser = true, unsigned long Depth = 0);
-   void MarkDelete(PkgIterator const &Pkg, bool Purge = false,
+   bool MarkDelete(PkgIterator const &Pkg, bool MarkPurge = false,
                    unsigned long Depth = 0, bool FromUser = true);
-   void MarkInstall(PkgIterator const &Pkg,bool AutoInst = true,
+   bool MarkInstall(PkgIterator const &Pkg,bool AutoInst = true,
                    unsigned long Depth = 0, bool FromUser = true,
                    bool ForceImportantDeps = false);
    void MarkProtected(PkgIterator const &Pkg) { PkgState[Pkg->ID].iFlags |= Protected; };
 
    void SetReInstall(PkgIterator const &Pkg,bool To);
-   // FIXME: Remove the unused boolean parameter on abi break
-   void SetCandidateVersion(VerIterator TargetVer, bool const &Pseudo = true);
+   void SetCandidateVersion(VerIterator TargetVer);
    bool SetCandidateRelease(pkgCache::VerIterator TargetVer,
                                std::string const &TargetRel);
    /** Set the candidate version for dependencies too if needed.
@@ -459,7 +468,7 @@ class pkgDepCache : protected pkgCache::Namespace
     *  \param Depth     recursive deep of this Marker call
     *  \param FromUser  was the remove requested by the user?
     */
-   virtual bool IsDeleteOk(const PkgIterator &Pkg,bool Purge = false,
+   virtual bool IsDeleteOk(const PkgIterator &Pkg,bool MarkPurge = false,
                            unsigned long Depth = 0, bool FromUser = true);
 
    // read persistent states
@@ -484,13 +493,6 @@ class pkgDepCache : protected pkgCache::Namespace
    virtual ~pkgDepCache();
 
    private:
-   // Helper for Update(OpProgress) to remove pseudoinstalled arch all packages
-   // FIXME: they are private so shouldn't affect abi, but just in case…
-   __deprecated bool RemovePseudoInstalledPkg(PkgIterator &Pkg, std::set<unsigned long> &recheck) { return true; };
-   __deprecated bool ReInstallPseudoForGroup(unsigned long const &Grp, std::set<unsigned long> &recheck) { return true; };
-   __deprecated bool ReInstallPseudoForGroup(pkgCache::PkgIterator const &P, std::set<unsigned long> &recheck) { return true; };
-
-
    bool IsModeChangeOk(ModeList const mode, PkgIterator const &Pkg,
                        unsigned long const Depth, bool const FromUser);
 };
diff --git a/apt-pkg/edsp.cc b/apt-pkg/edsp.cc
new file mode 100644 (file)
index 0000000..44f7dbf
--- /dev/null
@@ -0,0 +1,566 @@
+// -*- mode: cpp; mode: fold -*-
+// Description                                                         /*{{{*/
+/* ######################################################################
+   Set of methods to help writing and reading everything needed for EDSP
+   ##################################################################### */
+                                                                       /*}}}*/
+// Include Files                                                       /*{{{*/
+#include <config.h>
+
+#include <apt-pkg/edsp.h>
+#include <apt-pkg/error.h>
+#include <apt-pkg/configuration.h>
+#include <apt-pkg/version.h>
+#include <apt-pkg/policy.h>
+#include <apt-pkg/tagfile.h>
+
+#include <limits>
+#include <stdio.h>
+
+#include <apti18n.h>
+                                                                       /*}}}*/
+
+// we could use pkgCache::DepType and ::Priority, but these would be localized strings…
+const char * const EDSP::PrioMap[] = {0, "important", "required", "standard",
+                                     "optional", "extra"};
+const char * const EDSP::DepMap[] = {"", "Depends", "Pre-Depends", "Suggests",
+                                    "Recommends" , "Conflicts", "Replaces",
+                                    "Obsoletes", "Breaks", "Enhances"};
+
+// EDSP::WriteScenario - to the given file descriptor                  /*{{{*/
+bool EDSP::WriteScenario(pkgDepCache &Cache, FILE* output, OpProgress *Progress)
+{
+   if (Progress != NULL)
+      Progress->SubProgress(Cache.Head().VersionCount, _("Send scenario to solver"));
+   unsigned long p = 0;
+   for (pkgCache::PkgIterator Pkg = Cache.PkgBegin(); Pkg.end() == false; ++Pkg)
+      for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() == false; ++Ver, ++p)
+      {
+        WriteScenarioVersion(Cache, output, Pkg, Ver);
+        WriteScenarioDependency(Cache, output, Pkg, Ver);
+        fprintf(output, "\n");
+        if (Progress != NULL && p % 100 == 0)
+           Progress->Progress(p);
+      }
+   return true;
+}
+                                                                       /*}}}*/
+// EDSP::WriteLimitedScenario - to the given file descriptor           /*{{{*/
+bool EDSP::WriteLimitedScenario(pkgDepCache &Cache, FILE* output,
+                               APT::PackageSet const &pkgset,
+                               OpProgress *Progress)
+{
+   if (Progress != NULL)
+      Progress->SubProgress(Cache.Head().VersionCount, _("Send scenario to solver"));
+   unsigned long p  = 0;
+   for (APT::PackageSet::const_iterator Pkg = pkgset.begin(); Pkg != pkgset.end(); ++Pkg, ++p)
+      for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() == false; ++Ver)
+      {
+        WriteScenarioVersion(Cache, output, Pkg, Ver);
+        WriteScenarioLimitedDependency(Cache, output, Pkg, Ver, pkgset);
+        fprintf(output, "\n");
+        if (Progress != NULL && p % 100 == 0)
+           Progress->Progress(p);
+      }
+   if (Progress != NULL)
+      Progress->Done();
+   return true;
+}
+                                                                       /*}}}*/
+// EDSP::WriteScenarioVersion                                          /*{{{*/
+void EDSP::WriteScenarioVersion(pkgDepCache &Cache, FILE* output, pkgCache::PkgIterator const &Pkg,
+                               pkgCache::VerIterator const &Ver)
+{
+   fprintf(output, "Package: %s\n", Pkg.Name());
+   fprintf(output, "Architecture: %s\n", Ver.Arch());
+   fprintf(output, "Version: %s\n", Ver.VerStr());
+   if (Pkg.CurrentVer() == Ver)
+      fprintf(output, "Installed: yes\n");
+   if (Pkg->SelectedState == pkgCache::State::Hold ||
+       (Cache[Pkg].Keep() == true && Cache[Pkg].Protect() == true))
+      fprintf(output, "Hold: yes\n");
+   fprintf(output, "APT-ID: %d\n", Ver->ID);
+   fprintf(output, "Priority: %s\n", PrioMap[Ver->Priority]);
+   if ((Pkg->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential)
+      fprintf(output, "Essential: yes\n");
+   fprintf(output, "Section: %s\n", Ver.Section());
+   if ((Ver->MultiArch & pkgCache::Version::Allowed) == pkgCache::Version::Allowed)
+      fprintf(output, "Multi-Arch: allowed\n");
+   else if ((Ver->MultiArch & pkgCache::Version::Foreign) == pkgCache::Version::Foreign)
+      fprintf(output, "Multi-Arch: foreign\n");
+   else if ((Ver->MultiArch & pkgCache::Version::Same) == pkgCache::Version::Same)
+      fprintf(output, "Multi-Arch: same\n");
+   signed short Pin = std::numeric_limits<signed short>::min();
+   for (pkgCache::VerFileIterator File = Ver.FileList(); File.end() == false; ++File) {
+      signed short const p = Cache.GetPolicy().GetPriority(File.File());
+      if (Pin < p)
+        Pin = p;
+   }
+   fprintf(output, "APT-Pin: %d\n", Pin);
+   if (Cache.GetCandidateVer(Pkg) == Ver)
+      fprintf(output, "APT-Candidate: yes\n");
+   if ((Cache[Pkg].Flags & pkgCache::Flag::Auto) == pkgCache::Flag::Auto)
+      fprintf(output, "APT-Automatic: yes\n");
+}
+                                                                       /*}}}*/
+// EDSP::WriteScenarioDependency                                       /*{{{*/
+void EDSP::WriteScenarioDependency(pkgDepCache &Cache, FILE* output, pkgCache::PkgIterator const &Pkg,
+                               pkgCache::VerIterator const &Ver)
+{
+   std::string dependencies[pkgCache::Dep::Enhances + 1];
+   bool orGroup = false;
+   for (pkgCache::DepIterator Dep = Ver.DependsList(); Dep.end() == false; ++Dep)
+   {
+      // Ignore implicit dependencies for multiarch here
+      if (strcmp(Pkg.Arch(), Dep.TargetPkg().Arch()) != 0)
+        continue;
+      if (orGroup == false)
+        dependencies[Dep->Type].append(", ");
+      dependencies[Dep->Type].append(Dep.TargetPkg().Name());
+      if (Dep->Version != 0)
+        dependencies[Dep->Type].append(" (").append(pkgCache::CompTypeDeb(Dep->CompareOp)).append(" ").append(Dep.TargetVer()).append(")");
+      if ((Dep->CompareOp & pkgCache::Dep::Or) == pkgCache::Dep::Or)
+      {
+        dependencies[Dep->Type].append(" | ");
+        orGroup = true;
+      }
+      else
+        orGroup = false;
+   }
+   for (int i = 1; i < pkgCache::Dep::Enhances + 1; ++i)
+      if (dependencies[i].empty() == false)
+        fprintf(output, "%s: %s\n", DepMap[i], dependencies[i].c_str()+2);
+   string provides;
+   for (pkgCache::PrvIterator Prv = Ver.ProvidesList(); Prv.end() == false; ++Prv)
+   {
+      // Ignore implicit provides for multiarch here
+      if (strcmp(Pkg.Arch(), Prv.ParentPkg().Arch()) != 0 || strcmp(Pkg.Name(),Prv.Name()) == 0)
+        continue;
+      provides.append(", ").append(Prv.Name());
+   }
+   if (provides.empty() == false)
+      fprintf(output, "Provides: %s\n", provides.c_str()+2);
+}
+                                                                       /*}}}*/
+// EDSP::WriteScenarioLimitedDependency                                        /*{{{*/
+void EDSP::WriteScenarioLimitedDependency(pkgDepCache &Cache, FILE* output,
+                                         pkgCache::PkgIterator const &Pkg,
+                                         pkgCache::VerIterator const &Ver,
+                                         APT::PackageSet const &pkgset)
+{
+   std::string dependencies[pkgCache::Dep::Enhances + 1];
+   bool orGroup = false;
+   for (pkgCache::DepIterator Dep = Ver.DependsList(); Dep.end() == false; ++Dep)
+   {
+      // Ignore implicit dependencies for multiarch here
+      if (strcmp(Pkg.Arch(), Dep.TargetPkg().Arch()) != 0)
+        continue;
+      if (orGroup == false)
+      {
+        if (pkgset.find(Dep.TargetPkg()) == pkgset.end())
+           continue;
+        dependencies[Dep->Type].append(", ");
+      }
+      else if (pkgset.find(Dep.TargetPkg()) == pkgset.end())
+      {
+        if ((Dep->CompareOp & pkgCache::Dep::Or) == pkgCache::Dep::Or)
+           continue;
+        dependencies[Dep->Type].erase(dependencies[Dep->Type].end()-3, dependencies[Dep->Type].end());
+        orGroup = false;
+        continue;
+      }
+      dependencies[Dep->Type].append(Dep.TargetPkg().Name());
+      if (Dep->Version != 0)
+        dependencies[Dep->Type].append(" (").append(pkgCache::CompTypeDeb(Dep->CompareOp)).append(" ").append(Dep.TargetVer()).append(")");
+      if ((Dep->CompareOp & pkgCache::Dep::Or) == pkgCache::Dep::Or)
+      {
+        dependencies[Dep->Type].append(" | ");
+        orGroup = true;
+      }
+      else
+        orGroup = false;
+   }
+   for (int i = 1; i < pkgCache::Dep::Enhances + 1; ++i)
+      if (dependencies[i].empty() == false)
+        fprintf(output, "%s: %s\n", DepMap[i], dependencies[i].c_str()+2);
+   string provides;
+   for (pkgCache::PrvIterator Prv = Ver.ProvidesList(); Prv.end() == false; ++Prv)
+   {
+      // Ignore implicit provides for multiarch here
+      if (strcmp(Pkg.Arch(), Prv.ParentPkg().Arch()) != 0 || strcmp(Pkg.Name(),Prv.Name()) == 0)
+        continue;
+      if (pkgset.find(Prv.ParentPkg()) == pkgset.end())
+        continue;
+      provides.append(", ").append(Prv.Name());
+   }
+   if (provides.empty() == false)
+      fprintf(output, "Provides: %s\n", provides.c_str()+2);
+}
+                                                                       /*}}}*/
+// EDSP::WriteRequest - to the given file descriptor                   /*{{{*/
+bool EDSP::WriteRequest(pkgDepCache &Cache, FILE* output, bool const Upgrade,
+                       bool const DistUpgrade, bool const AutoRemove,
+                       OpProgress *Progress)
+{
+   if (Progress != NULL)
+      Progress->SubProgress(Cache.Head().PackageCount, _("Send request to solver"));
+   unsigned long p = 0;
+   string del, inst;
+   for (pkgCache::PkgIterator Pkg = Cache.PkgBegin(); Pkg.end() == false; ++Pkg, ++p)
+   {
+      if (Progress != NULL && p % 100 == 0)
+         Progress->Progress(p);
+      string* req;
+      if (Cache[Pkg].Delete() == true)
+        req = &del;
+      else if (Cache[Pkg].NewInstall() == true || Cache[Pkg].Upgrade() == true)
+        req = &inst;
+      else
+        continue;
+      req->append(" ").append(Pkg.FullName());
+   }
+   fprintf(output, "Request: EDSP 0.4\n");
+   if (del.empty() == false)
+      fprintf(output, "Remove: %s\n", del.c_str()+1);
+   if (inst.empty() == false)
+      fprintf(output, "Install: %s\n", inst.c_str()+1);
+   if (Upgrade == true)
+      fprintf(output, "Upgrade: yes\n");
+   if (DistUpgrade == true)
+      fprintf(output, "Dist-Upgrade: yes\n");
+   if (AutoRemove == true)
+      fprintf(output, "Autoremove: yes\n");
+   if (_config->FindB("APT::Solver::Strict-Pinning", true) == false)
+      fprintf(output, "Strict-Pinning: no\n");
+   string solverpref("APT::Solver::");
+   solverpref.append(_config->Find("APT::Solver", "internal")).append("::Preferences");
+   if (_config->Exists(solverpref) == true)
+      fprintf(output, "Preferences: %s\n", _config->Find(solverpref,"").c_str());
+   fprintf(output, "\n");
+
+   return true;
+}
+                                                                       /*}}}*/
+// EDSP::ReadResponse - from the given file descriptor                 /*{{{*/
+bool EDSP::ReadResponse(int const input, pkgDepCache &Cache, OpProgress *Progress) {
+       /* We build an map id to mmap offset here
+          In theory we could use the offset as ID, but then VersionCount
+          couldn't be used to create other versionmappings anymore and it
+          would be too easy for a (buggy) solver to segfault APT… */
+       unsigned long long const VersionCount = Cache.Head().VersionCount;
+       unsigned long VerIdx[VersionCount];
+       for (pkgCache::PkgIterator P = Cache.PkgBegin(); P.end() == false; ++P) {
+               for (pkgCache::VerIterator V = P.VersionList(); V.end() == false; ++V)
+                       VerIdx[V->ID] = V.Index();
+               Cache[P].Marked = true;
+               Cache[P].Garbage = false;
+       }
+
+       FileFd in;
+       in.OpenDescriptor(input, FileFd::ReadOnly);
+       pkgTagFile response(&in, 100);
+       pkgTagSection section;
+
+       while (response.Step(section) == true) {
+               std::string type;
+               if (section.Exists("Install") == true)
+                       type = "Install";
+               else if (section.Exists("Remove") == true)
+                       type = "Remove";
+               else if (section.Exists("Progress") == true) {
+                       if (Progress != NULL) {
+                               string msg = section.FindS("Message");
+                               if (msg.empty() == true)
+                                       msg = _("Prepare for receiving solution");
+                               Progress->SubProgress(100, msg, section.FindI("Percentage", 0));
+                       }
+                       continue;
+               } else if (section.Exists("Error") == true) {
+                       std::string msg = SubstVar(SubstVar(section.FindS("Message"), "\n .\n", "\n\n"), "\n ", "\n");
+                       if (msg.empty() == true) {
+                               msg = _("External solver failed without a proper error message");
+                               _error->Error(msg.c_str());
+                       } else
+                               _error->Error("External solver failed with: %s", msg.substr(0,msg.find('\n')).c_str());
+                       if (Progress != NULL)
+                               Progress->Done();
+                       std::cerr << "The solver encountered an error of type: " << section.FindS("Error") << std::endl;
+                       std::cerr << "The following information might help you to understand what is wrong:" << std::endl;
+                       std::cerr << msg << std::endl << std::endl;
+                       return false;
+               } else if (section.Exists("Autoremove") == true)
+                       type = "Autoremove";
+               else
+                       continue;
+
+               size_t const id = section.FindULL(type.c_str(), VersionCount);
+               if (id == VersionCount) {
+                       _error->Warning("Unable to parse %s request with id value '%s'!", type.c_str(), section.FindS(type.c_str()).c_str());
+                       continue;
+               } else if (id > Cache.Head().VersionCount) {
+                       _error->Warning("ID value '%s' in %s request stanza is to high to refer to a known version!", section.FindS(type.c_str()).c_str(), type.c_str());
+                       continue;
+               }
+
+               pkgCache::VerIterator Ver(Cache.GetCache(), Cache.GetCache().VerP + VerIdx[id]);
+               Cache.SetCandidateVersion(Ver);
+               if (type == "Install")
+                       Cache.MarkInstall(Ver.ParentPkg(), false, 0, false);
+               else if (type == "Remove")
+                       Cache.MarkDelete(Ver.ParentPkg(), false);
+               else if (type == "Autoremove") {
+                       Cache[Ver.ParentPkg()].Marked = false;
+                       Cache[Ver.ParentPkg()].Garbage = true;
+               }
+       }
+       return true;
+}
+                                                                       /*}}}*/
+// EDSP::ReadLine - first line from the given file descriptor          /*{{{*/
+// ---------------------------------------------------------------------
+/* Little helper method to read a complete line into a string. Similar to
+   fgets but we need to use the low-level read() here as otherwise the
+   listparser will be confused later on as mixing of fgets and read isn't
+   a supported action according to the manpages and results are undefined */
+bool EDSP::ReadLine(int const input, std::string &line) {
+       char one;
+       ssize_t data = 0;
+       line.erase();
+       line.reserve(100);
+       while ((data = read(input, &one, sizeof(one))) != -1) {
+               if (data != 1)
+                       continue;
+               if (one == '\n')
+                       return true;
+               if (one == '\r')
+                       continue;
+               if (line.empty() == true && isblank(one) != 0)
+                       continue;
+               line += one;
+       }
+       return false;
+}
+                                                                       /*}}}*/
+// EDSP::StringToBool - convert yes/no to bool                         /*{{{*/
+// ---------------------------------------------------------------------
+/* we are not as lazy as we are in the global StringToBool as we really
+   only accept yes/no here - but we will ignore leading spaces */
+bool EDSP::StringToBool(char const *answer, bool const defValue) {
+   for (; isspace(*answer) != 0; ++answer);
+   if (strncasecmp(answer, "yes", 3) == 0)
+      return true;
+   else if (strncasecmp(answer, "no", 2) == 0)
+      return false;
+   else
+      _error->Warning("Value '%s' is not a boolean 'yes' or 'no'!", answer);
+   return defValue;
+}
+                                                                       /*}}}*/
+// EDSP::ReadRequest - first stanza from the given file descriptor     /*{{{*/
+bool EDSP::ReadRequest(int const input, std::list<std::string> &install,
+                       std::list<std::string> &remove, bool &upgrade,
+                       bool &distUpgrade, bool &autoRemove)
+{
+   install.clear();
+   remove.clear();
+   upgrade = false;
+   distUpgrade = false;
+   autoRemove = false;
+   std::string line;
+   while (ReadLine(input, line) == true)
+   {
+      // Skip empty lines before request
+      if (line.empty() == true)
+        continue;
+      // The first Tag must be a request, so search for it
+      if (line.compare(0, 8, "Request:") != 0)
+        continue;
+
+      while (ReadLine(input, line) == true)
+      {
+        // empty lines are the end of the request
+        if (line.empty() == true)
+           return true;
+
+        std::list<std::string> *request = NULL;
+        if (line.compare(0, 8, "Install:") == 0)
+        {
+           line.erase(0, 8);
+           request = &install;
+        }
+        else if (line.compare(0, 7, "Remove:") == 0)
+        {
+           line.erase(0, 7);
+           request = &remove;
+        }
+        else if (line.compare(0, 8, "Upgrade:") == 0)
+           upgrade = EDSP::StringToBool(line.c_str() + 9, false);
+        else if (line.compare(0, 13, "Dist-Upgrade:") == 0)
+           distUpgrade = EDSP::StringToBool(line.c_str() + 14, false);
+        else if (line.compare(0, 11, "Autoremove:") == 0)
+           autoRemove = EDSP::StringToBool(line.c_str() + 12, false);
+        else
+           _error->Warning("Unknown line in EDSP Request stanza: %s", line.c_str());
+
+        if (request == NULL)
+           continue;
+        size_t end = line.length();
+        do {
+           size_t begin = line.rfind(' ');
+           if (begin == std::string::npos)
+           {
+              request->push_back(line.substr(0, end));
+              break;
+           }
+           else if (begin < end)
+              request->push_back(line.substr(begin + 1, end));
+           line.erase(begin);
+           end = line.find_last_not_of(' ');
+        } while (end != std::string::npos);
+      }
+   }
+   return false;
+}
+                                                                       /*}}}*/
+// EDSP::ApplyRequest - first stanza from the given file descriptor    /*{{{*/
+bool EDSP::ApplyRequest(std::list<std::string> const &install,
+                        std::list<std::string> const &remove,
+                        pkgDepCache &Cache)
+{
+       for (std::list<std::string>::const_iterator i = install.begin();
+            i != install.end(); ++i) {
+               pkgCache::PkgIterator P = Cache.FindPkg(*i);
+               if (P.end() == true)
+                       _error->Warning("Package %s is not known, so can't be installed", i->c_str());
+               else
+                       Cache.MarkInstall(P, false);
+       }
+
+       for (std::list<std::string>::const_iterator i = remove.begin();
+            i != remove.end(); ++i) {
+               pkgCache::PkgIterator P = Cache.FindPkg(*i);
+               if (P.end() == true)
+                       _error->Warning("Package %s is not known, so can't be installed", i->c_str());
+               else
+                       Cache.MarkDelete(P);
+       }
+       return true;
+}
+                                                                       /*}}}*/
+// EDSP::WriteSolution - to the given file descriptor                  /*{{{*/
+bool EDSP::WriteSolution(pkgDepCache &Cache, FILE* output)
+{
+   bool const Debug = _config->FindB("Debug::EDSP::WriteSolution", false);
+   for (pkgCache::PkgIterator Pkg = Cache.PkgBegin(); Pkg.end() == false; ++Pkg)
+   {
+      if (Cache[Pkg].Delete() == true)
+      {
+        fprintf(output, "Remove: %d\n", Pkg.CurrentVer()->ID);
+        if (Debug == true)
+           fprintf(output, "Package: %s\nVersion: %s\n", Pkg.FullName().c_str(), Pkg.CurrentVer().VerStr());
+      }
+      else if (Cache[Pkg].NewInstall() == true || Cache[Pkg].Upgrade() == true)
+      {
+        fprintf(output, "Install: %d\n", Cache.GetCandidateVer(Pkg)->ID);
+        if (Debug == true)
+           fprintf(output, "Package: %s\nVersion: %s\n", Pkg.FullName().c_str(), Cache.GetCandidateVer(Pkg).VerStr());
+      }
+      else if (Cache[Pkg].Garbage == true)
+      {
+        fprintf(output, "Autoremove: %d\n", Pkg.CurrentVer()->ID);
+        if (Debug == true)
+           fprintf(output, "Package: %s\nVersion: %s\n", Pkg.FullName().c_str(), Pkg.CurrentVer().VerStr());
+           fprintf(stderr, "Autoremove: %s\nVersion: %s\n", Pkg.FullName().c_str(), Pkg.CurrentVer().VerStr());
+      }
+      else
+        continue;
+      fprintf(output, "\n");
+   }
+
+   return true;
+}
+                                                                       /*}}}*/
+// EDSP::WriteProgess - pulse to the given file descriptor             /*{{{*/
+bool EDSP::WriteProgress(unsigned short const percent, const char* const message, FILE* output) {
+       fprintf(output, "Progress: %s\n", TimeRFC1123(time(NULL)).c_str());
+       fprintf(output, "Percentage: %d\n", percent);
+       fprintf(output, "Message: %s\n\n", message);
+       fflush(output);
+       return true;
+}
+                                                                       /*}}}*/
+// EDSP::WriteError - format an error message to be send to file descriptor /*{{{*/
+bool EDSP::WriteError(char const * const uuid, std::string const &message, FILE* output) {
+       fprintf(output, "Error: %s\n", uuid);
+       fprintf(output, "Message: %s\n\n", SubstVar(SubstVar(message, "\n\n", "\n.\n"), "\n", "\n ").c_str());
+       return true;
+}
+                                                                       /*}}}*/
+// EDSP::ExecuteSolver - fork requested solver and setup ipc pipes     {{{*/
+bool EDSP::ExecuteSolver(const char* const solver, int *solver_in, int *solver_out) {
+       std::vector<std::string> const solverDirs = _config->FindVector("Dir::Bin::Solvers");
+       std::string file;
+       for (std::vector<std::string>::const_iterator dir = solverDirs.begin();
+            dir != solverDirs.end(); ++dir) {
+               file = flCombine(*dir, solver);
+               if (RealFileExists(file.c_str()) == true)
+                       break;
+               file.clear();
+       }
+
+       if (file.empty() == true)
+               return _error->Error("Can't call external solver '%s' as it is not in a configured directory!", solver);
+       int external[4] = {-1, -1, -1, -1};
+       if (pipe(external) != 0 || pipe(external + 2) != 0)
+               return _error->Errno("Resolve", "Can't create needed IPC pipes for EDSP");
+       for (int i = 0; i < 4; ++i)
+               SetCloseExec(external[i], true);
+
+       pid_t Solver = ExecFork();
+       if (Solver == 0) {
+               dup2(external[0], STDIN_FILENO);
+               dup2(external[3], STDOUT_FILENO);
+               const char* calling[2] = { file.c_str(), 0 };
+               execv(calling[0], (char**) calling);
+               std::cerr << "Failed to execute solver '" << solver << "'!" << std::endl;
+               _exit(100);
+       }
+       close(external[0]);
+       close(external[3]);
+
+       if (WaitFd(external[1], true, 5) == false)
+               return _error->Errno("Resolve", "Timed out while Waiting on availability of solver stdin");
+
+       *solver_in = external[1];
+       *solver_out = external[2];
+       return true;
+}
+                                                                       /*}}}*/
+// EDSP::ResolveExternal - resolve problems by asking external for help        {{{*/
+bool EDSP::ResolveExternal(const char* const solver, pkgDepCache &Cache,
+                        bool const upgrade, bool const distUpgrade,
+                        bool const autoRemove, OpProgress *Progress) {
+       int solver_in, solver_out;
+       if (EDSP::ExecuteSolver(solver, &solver_in, &solver_out) == false)
+               return false;
+
+       FILE* output = fdopen(solver_in, "w");
+       if (output == NULL)
+               return _error->Errno("Resolve", "fdopen on solver stdin failed");
+
+       if (Progress != NULL)
+               Progress->OverallProgress(0, 100, 5, _("Execute external solver"));
+       EDSP::WriteRequest(Cache, output, upgrade, distUpgrade, autoRemove, Progress);
+       if (Progress != NULL)
+               Progress->OverallProgress(5, 100, 20, _("Execute external solver"));
+       EDSP::WriteScenario(Cache, output, Progress);
+       fclose(output);
+
+       if (Progress != NULL)
+               Progress->OverallProgress(25, 100, 75, _("Execute external solver"));
+       if (EDSP::ReadResponse(solver_out, Cache, Progress) == false)
+               return false;
+
+       return true;
+}
+                                                                       /*}}}*/
diff --git a/apt-pkg/edsp.h b/apt-pkg/edsp.h
new file mode 100644 (file)
index 0000000..743c3f5
--- /dev/null
@@ -0,0 +1,222 @@
+// -*- mode: cpp; mode: fold -*-
+/** Description \file edsp.h                                           {{{
+   ######################################################################
+   Set of methods to help writing and reading everything needed for EDSP
+   with the noteable exception of reading a scenario for conversion into
+   a Cache as this is handled by edsp interface for listparser and friends
+   ##################################################################### */
+                                                                       /*}}}*/
+#ifndef PKGLIB_EDSP_H
+#define PKGLIB_EDSP_H
+
+#include <apt-pkg/depcache.h>
+#include <apt-pkg/cacheset.h>
+#include <apt-pkg/progress.h>
+
+#include <string>
+
+class EDSP                                                             /*{{{*/
+{
+       // we could use pkgCache::DepType and ::Priority, but these would be localized strings…
+       static const char * const PrioMap[];
+       static const char * const DepMap[];
+
+       bool static ReadLine(int const input, std::string &line);
+       bool static StringToBool(char const *answer, bool const defValue);
+
+       void static WriteScenarioVersion(pkgDepCache &Cache, FILE* output,
+                                        pkgCache::PkgIterator const &Pkg,
+                                        pkgCache::VerIterator const &Ver);
+       void static WriteScenarioDependency(pkgDepCache &Cache, FILE* output,
+                                           pkgCache::PkgIterator const &Pkg,
+                                           pkgCache::VerIterator const &Ver);
+       void static WriteScenarioLimitedDependency(pkgDepCache &Cache, FILE* output,
+                                                  pkgCache::PkgIterator const &Pkg,
+                                                  pkgCache::VerIterator const &Ver,
+                                                  APT::PackageSet const &pkgset);
+public:
+       /** \brief creates the EDSP request stanza
+        *
+        *  In the EDSP protocol the first thing send to the resolver is a stanza
+        *  encoding the request. This method will write this stanza by looking at
+        *  the given Cache and requests the installation of all packages which were
+        *  marked for installation in it (equally for remove).
+        *
+        *  \param Cache in which the request is encoded
+        *  \param output is written to this "file"
+        *  \param upgrade is true if it is an request like apt-get upgrade
+        *  \param distUpgrade is true if it is a request like apt-get dist-upgrade
+        *  \param autoRemove is true if removal of unneeded packages should be performed
+        *  \param Progress is an instance to report progress to
+        *
+        *  \return true if request was composed successfully, otherwise false
+        */
+       bool static WriteRequest(pkgDepCache &Cache, FILE* output,
+                                bool const upgrade = false,
+                                bool const distUpgrade = false,
+                                bool const autoRemove = false,
+                               OpProgress *Progress = NULL);
+
+       /** \brief creates the scenario representing the package universe
+        *
+        *  After the request all known information about a package are send
+        *  to the solver. The output looks similar to a Packages or status file
+        *
+        *  All packages and version included in this Cache are send, even if
+        *  it doesn't make sense from an APT resolver point of view like versions
+        *  with a negative pin to enable the solver to propose even that as a
+        *  solution or at least to be able to give a hint what can be done to
+        *  statisfy a request.
+        *
+        *  \param Cache is the known package universe
+        *  \param output is written to this "file"
+        *  \param Progress is an instance to report progress to
+        *
+        *  \return true if universe was composed successfully, otherwise false
+        */
+       bool static WriteScenario(pkgDepCache &Cache, FILE* output, OpProgress *Progress = NULL);
+
+       /** \brief creates a limited scenario representing the package universe
+        *
+        *  This method works similar to #WriteScenario as it works in the same
+        *  way but doesn't send the complete universe to the solver but only
+        *  packages included in the pkgset which will have only dependencies
+        *  on packages which are in the given set. All other dependencies will
+        *  be removed, so that this method can be used to create testcases
+        *
+        *  \param Cache is the known package universe
+        *  \param output is written to this "file"
+        *  \param pkgset is a set of packages the universe should be limited to
+        *  \param Progress is an instance to report progress to
+        *
+        *  \return true if universe was composed successfully, otherwise false
+        */
+       bool static WriteLimitedScenario(pkgDepCache &Cache, FILE* output,
+                                        APT::PackageSet const &pkgset,
+                                        OpProgress *Progress = NULL);
+
+       /** \brief waits and acts on the information returned from the solver
+        *
+        *  This method takes care of interpreting whatever the solver sends
+        *  through the standard output like a solution, progress or an error.
+        *  The main thread should handle his control over to this method to
+        *  wait for the solver to finish the given task
+        *
+        *  \param input file descriptor with the response from the solver
+        *  \param Cache the solution should be applied on if any
+        *  \param Progress is an instance to report progress to
+        *
+        *  \return true if a solution is found and applied correctly, otherwise false
+        */
+       bool static ReadResponse(int const input, pkgDepCache &Cache, OpProgress *Progress = NULL);
+
+       /** \brief search and read the request stanza for action later
+        *
+        *  This method while ignore the input up to the point it finds the
+        *  Request: line as an indicator for the Request stanza.
+        *  The request is stored in the parameters install and remove then,
+        *  as the cache isn't build yet as the scenario follows the request.
+        *
+        *  \param input file descriptor with the edsp input for the solver
+        *  \param[out] install is a list which gets populated with requested installs
+        *  \param[out] remove is a list which gets populated with requested removals
+        *  \param[out] upgrade is true if it is a request like apt-get upgrade
+        *  \param[out] distUpgrade is true if it is a request like apt-get dist-upgrade
+        *  \param[out] autoRemove is true if removal of uneeded packages should be performed
+        *
+        *  \return true if the request could be found and worked on, otherwise false
+        */
+       bool static ReadRequest(int const input, std::list<std::string> &install,
+                       std::list<std::string> &remove, bool &upgrade,
+                       bool &distUpgrade, bool &autoRemove);
+
+       /** \brief takes the request lists and applies it on the cache
+        *
+        *  The lists as created by #ReadRequest will be used to find the
+        *  packages in question and mark them for install/remove.
+        *  No solving is done and no auto-install/-remove.
+        *
+        *  \param install is a list of packages to mark for installation
+        *  \param remove is a list of packages to mark for removal
+        *  \param Cache is there the markers should be set
+        *
+        *  \return false if the request couldn't be applied, true otherwise
+        */
+       bool static ApplyRequest(std::list<std::string> const &install,
+                                std::list<std::string> const &remove,
+                                pkgDepCache &Cache);
+
+       /** \brief encodes the changes in the Cache as a EDSP solution
+        *
+        *  The markers in the Cache are observed and send to given
+        *  file. The solution isn't checked for consistency or alike,
+        *  so even broken solutions can be written successfully,
+        *  but the front-end revicing it will properly fail then.
+        *
+        *  \param Cache which represents the solution
+        *  \param output to write the stanzas forming the solution to
+        *
+        *  \return true if solution could be written, otherwise false
+        */
+       bool static WriteSolution(pkgDepCache &Cache, FILE* output);
+
+       /** \brief sends a progress report
+        *
+        *  \param percent of the solving completed
+        *  \param message the solver wants the user to see
+        *  \param output the front-end listens for progress report
+        */
+       bool static WriteProgress(unsigned short const percent, const char* const message, FILE* output);
+
+       /** \brief sends an error report
+        *
+        *  Solvers are expected to execute successfully even if
+        *  they were unable to calculate a solution for a given task.
+        *  Obviously they can't send a solution through, so this
+        *  methods deals with formatting an error message correctly
+        *  so that the front-ends can recieve and display it.
+        *
+        *  The first line of the message should be a short description
+        *  of the error so it can be used for dialog titles or alike
+        *
+        *  \param uuid of this error message
+        *  \param message is free form text to discribe the error
+        *  \param output the front-end listens for error messages
+        */
+       bool static WriteError(char const * const uuid, std::string const &message, FILE* output);
+
+
+       /** \brief executes the given solver and returns the pipe ends
+        *
+        *  The given solver is executed if it can be found in one of the
+        *  configured directories and setup for it is performed.
+        *
+        *  \param solver to execute
+        *  \param[out] solver_in will be the stdin of the solver
+        *  \param[out] solver_out will be the stdout of the solver
+        *
+        *  \return true if the solver could be started and the pipes
+        *  are set up correctly, otherwise false and the pipes are invalid
+        */
+       bool static ExecuteSolver(const char* const solver, int *solver_in, int *solver_out);
+
+       /** \brief call an external resolver to handle the request
+        *
+        *  This method wraps all the methods above to call an external solver
+        *
+        *  \param solver to execute
+        *  \param Cache with the problem and as universe to work in
+        *  \param upgrade is true if it is a request like apt-get upgrade
+        *  \param distUpgrade is true if it is a request like apt-get dist-upgrade
+        *  \param autoRemove is true if unneeded packages should be removed
+        *  \param Progress is an instance to report progress to
+        *
+        *  \return true if the solver has successfully solved the problem,
+        *  otherwise false
+        */
+       bool static ResolveExternal(const char* const solver, pkgDepCache &Cache,
+                                   bool const upgrade, bool const distUpgrade,
+                                   bool const autoRemove, OpProgress *Progress = NULL);
+};
+                                                                       /*}}}*/
+#endif
diff --git a/apt-pkg/edsp/edspindexfile.cc b/apt-pkg/edsp/edspindexfile.cc
new file mode 100644 (file)
index 0000000..b417a75
--- /dev/null
@@ -0,0 +1,80 @@
+// -*- mode: cpp; mode: fold -*-
+// Description                                                         /*{{{*/
+/* ######################################################################
+   The scenario file is designed to work as an intermediate file between
+   APT and the resolver. Its on propose very similar to a dpkg status file
+   ##################################################################### */
+                                                                       /*}}}*/
+// Include Files                                                       /*{{{*/
+#include <config.h>
+
+#include <apt-pkg/edspindexfile.h>
+#include <apt-pkg/edsplistparser.h>
+#include <apt-pkg/sourcelist.h>
+#include <apt-pkg/configuration.h>
+#include <apt-pkg/progress.h>
+#include <apt-pkg/error.h>
+#include <apt-pkg/strutl.h>
+#include <apt-pkg/acquire-item.h>
+
+#include <sys/stat.h>
+                                                                       /*}}}*/
+
+// edspIndex::edspIndex - Constructor                                  /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+edspIndex::edspIndex(string File) : debStatusIndex(File)
+{
+}
+                                                                       /*}}}*/
+// StatusIndex::Merge - Load the index file into a cache               /*{{{*/
+bool edspIndex::Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const
+{
+   FileFd Pkg;
+   if (File != "stdin")
+      Pkg.Open(File, FileFd::ReadOnly);
+   else
+      Pkg.OpenDescriptor(STDIN_FILENO, FileFd::ReadOnly);
+   if (_error->PendingError() == true)
+      return false;
+   edspListParser Parser(&Pkg);
+   if (_error->PendingError() == true)
+      return false;
+
+   if (Prog != NULL)
+      Prog->SubProgress(0,File);
+   if (Gen.SelectFile(File,string(),*this) == false)
+      return _error->Error("Problem with SelectFile %s",File.c_str());
+
+   // Store the IMS information
+   pkgCache::PkgFileIterator CFile = Gen.GetCurFile();
+   struct stat St;
+   if (fstat(Pkg.Fd(),&St) != 0)
+      return _error->Errno("fstat","Failed to stat");
+   CFile->Size = St.st_size;
+   CFile->mtime = St.st_mtime;
+   CFile->Archive = Gen.WriteUniqString("edsp::scenario");
+
+   if (Gen.MergeList(Parser) == false)
+      return _error->Error("Problem with MergeList %s",File.c_str());
+   return true;
+}
+                                                                       /*}}}*/
+// Index File types for APT                                            /*{{{*/
+class edspIFType: public pkgIndexFile::Type
+{
+   public:
+   virtual pkgRecords::Parser *CreatePkgParser(pkgCache::PkgFileIterator File) const
+   {
+      // we don't have a record parser for this type as the file is not presistent
+      return NULL;
+   };
+   edspIFType() {Label = "EDSP scenario file";};
+};
+static edspIFType _apt_Universe;
+
+const pkgIndexFile::Type *edspIndex::GetType() const
+{
+   return &_apt_Universe;
+}
+                                                                       /*}}}*/
diff --git a/apt-pkg/edsp/edspindexfile.h b/apt-pkg/edsp/edspindexfile.h
new file mode 100644 (file)
index 0000000..0053388
--- /dev/null
@@ -0,0 +1,28 @@
+// -*- mode: cpp; mode: fold -*-
+// Description                                                         /*{{{*/
+/* ######################################################################
+   The scenario file is designed to work as an intermediate file between
+   APT and the resolver. Its on propose very similar to a dpkg status file
+   ##################################################################### */
+                                                                       /*}}}*/
+#ifndef PKGLIB_EDSPINDEXFILE_H
+#define PKGLIB_EDSPINDEXFILE_H
+
+#include <apt-pkg/indexfile.h>
+#include <apt-pkg/debindexfile.h>
+
+class edspIndex : public debStatusIndex
+{
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
+   public:
+
+   virtual const Type *GetType() const;
+
+   virtual bool Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const;
+
+   edspIndex(string File);
+};
+
+#endif
diff --git a/apt-pkg/edsp/edsplistparser.cc b/apt-pkg/edsp/edsplistparser.cc
new file mode 100644 (file)
index 0000000..e00abdb
--- /dev/null
@@ -0,0 +1,92 @@
+// -*- mode: cpp; mode: fold -*-
+// Description                                                         /*{{{*/
+/* ######################################################################
+
+   Package Cache Generator - Generator for the cache structure.
+
+   This builds the cache structure from the abstract package list parser.
+
+   ##################################################################### */
+                                                                       /*}}}*/
+// Include Files                                                       /*{{{*/
+#include <config.h>
+
+#include <apt-pkg/edsplistparser.h>
+#include <apt-pkg/error.h>
+#include <apt-pkg/configuration.h>
+#include <apt-pkg/strutl.h>
+#include <apt-pkg/md5.h>
+#include <apt-pkg/macros.h>
+                                                                       /*}}}*/
+
+// ListParser::edspListParser - Constructor                            /*{{{*/
+edspListParser::edspListParser(FileFd *File, string const &Arch) : debListParser(File, Arch)
+{}
+                                                                       /*}}}*/
+// ListParser::NewVersion - Fill in the version structure              /*{{{*/
+bool edspListParser::NewVersion(pkgCache::VerIterator &Ver)
+{
+   Ver->ID = Section.FindI("APT-ID", Ver->ID);
+   return debListParser::NewVersion(Ver);
+}
+                                                                       /*}}}*/
+// ListParser::Description - Return the description string             /*{{{*/
+// ---------------------------------------------------------------------
+/* Sorry, no description for the resolvers… */
+string edspListParser::Description()
+{
+   return "";
+}
+string edspListParser::DescriptionLanguage()
+{
+   return "";
+}
+MD5SumValue edspListParser::Description_md5()
+{
+   return MD5SumValue("");
+}
+                                                                       /*}}}*/
+// ListParser::VersionHash - Compute a unique hash for this version    /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+unsigned short edspListParser::VersionHash()
+{
+   if (Section.Exists("APT-Hash") == true)
+      return Section.FindI("APT-Hash");
+   else if (Section.Exists("APT-ID") == true)
+      return Section.FindI("APT-ID");
+   return 0;
+}
+                                                                       /*}}}*/
+// ListParser::ParseStatus - Parse the status field                    /*{{{*/
+// ---------------------------------------------------------------------
+/* The Status: line here is not a normal dpkg one but just one which tells
+   use if the package is installed or not, where missing means not. */
+bool edspListParser::ParseStatus(pkgCache::PkgIterator &Pkg,
+                               pkgCache::VerIterator &Ver)
+{
+   unsigned long state = 0;
+   if (Section.FindFlag("Hold",state,pkgCache::State::Hold) == false)
+      return false;
+   if (state != 0)
+      Pkg->SelectedState = pkgCache::State::Hold;
+
+   state = 0;
+   if (Section.FindFlag("Installed",state,pkgCache::State::Installed) == false)
+      return false;
+   if (state != 0)
+   {
+      Pkg->CurrentState = pkgCache::State::Installed;
+      Pkg->CurrentVer = Ver.Index();
+   }
+
+   return true;
+}
+                                                                       /*}}}*/
+// ListParser::LoadReleaseInfo - Load the release information          /*{{{*/
+bool edspListParser::LoadReleaseInfo(pkgCache::PkgFileIterator &FileI,
+                                   FileFd &File, string component)
+{
+   return true;
+}
+                                                                       /*}}}*/
diff --git a/apt-pkg/edsp/edsplistparser.h b/apt-pkg/edsp/edsplistparser.h
new file mode 100644 (file)
index 0000000..ec9f099
--- /dev/null
@@ -0,0 +1,38 @@
+// -*- mode: cpp; mode: fold -*-
+// Description                                                         /*{{{*/
+/* ######################################################################
+
+   EDSP Package List Parser - This implements the abstract parser
+   interface for the APT specific intermediate format which is passed
+   to external resolvers
+
+   ##################################################################### */
+                                                                       /*}}}*/
+#ifndef PKGLIB_EDSPLISTPARSER_H
+#define PKGLIB_EDSPLISTPARSER_H
+
+#include <apt-pkg/deblistparser.h>
+#include <apt-pkg/pkgcachegen.h>
+#include <apt-pkg/indexfile.h>
+#include <apt-pkg/tagfile.h>
+
+class edspListParser : public debListParser
+{
+   public:
+   virtual bool NewVersion(pkgCache::VerIterator &Ver);
+   virtual string Description();
+   virtual string DescriptionLanguage();
+   virtual MD5SumValue Description_md5();
+   virtual unsigned short VersionHash();
+
+   bool LoadReleaseInfo(pkgCache::PkgFileIterator &FileI,FileFd &File,
+                       string section);
+
+   edspListParser(FileFd *File, string const &Arch = "");
+
+   protected:
+   virtual bool ParseStatus(pkgCache::PkgIterator &Pkg,pkgCache::VerIterator &Ver);
+
+};
+
+#endif
diff --git a/apt-pkg/edsp/edspsystem.cc b/apt-pkg/edsp/edspsystem.cc
new file mode 100644 (file)
index 0000000..10d7577
--- /dev/null
@@ -0,0 +1,127 @@
+// -*- mode: cpp; mode: fold -*-
+// Description                                                         /*{{{*/
+/* ######################################################################
+
+   This system provides the abstraction to use the scenario file as the
+   only source of package information to be able to feed the created file
+   back to APT for its own consumption (eat your own dogfood).
+
+   ##################################################################### */
+                                                                       /*}}}*/
+// Include Files                                                       /*{{{*/
+#include <config.h>
+
+#include <apt-pkg/edspsystem.h>
+#include <apt-pkg/debversion.h>
+#include <apt-pkg/edspindexfile.h>
+#include <apt-pkg/configuration.h>
+#include <apt-pkg/error.h>
+#include <apt-pkg/fileutl.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <dirent.h>
+#include <errno.h>
+
+#include <apti18n.h>
+                                                                       /*}}}*/
+
+edspSystem edspSys;
+
+// System::debSystem - Constructor                                     /*{{{*/
+edspSystem::edspSystem()
+{
+   StatusFile = 0;
+
+   Label = "Debian APT solver interface";
+   VS = &debVS;
+}
+                                                                       /*}}}*/
+// System::~debSystem - Destructor                                     /*{{{*/
+edspSystem::~edspSystem()
+{
+   delete StatusFile;
+}
+                                                                       /*}}}*/
+// System::Lock - Get the lock                                         /*{{{*/
+bool edspSystem::Lock()
+{
+   return true;
+}
+                                                                       /*}}}*/
+// System::UnLock - Drop a lock                                                /*{{{*/
+bool edspSystem::UnLock(bool NoErrors)
+{
+   return true;
+}
+                                                                       /*}}}*/
+// System::CreatePM - Create the underlying package manager            /*{{{*/
+// ---------------------------------------------------------------------
+/* we can't use edsp input as input for real installations - just a
+   simulation can work, but everything else will fail bigtime */
+pkgPackageManager *edspSystem::CreatePM(pkgDepCache *Cache) const
+{
+   return NULL;
+}
+                                                                       /*}}}*/
+// System::Initialize - Setup the configuration space..                        /*{{{*/
+bool edspSystem::Initialize(Configuration &Cnf)
+{
+   Cnf.Set("Dir::State::extended_states", "/dev/null");
+   Cnf.Set("Dir::State::status","/dev/null");
+   Cnf.Set("Dir::State::lists","/dev/null");
+
+   Cnf.Set("Debug::NoLocking", "true");
+   Cnf.Set("APT::Get::Simulate", "true");
+
+   if (StatusFile) {
+     delete StatusFile;
+     StatusFile = 0;
+   }
+   return true;
+}
+                                                                       /*}}}*/
+// System::ArchiveSupported - Is a file format supported               /*{{{*/
+bool edspSystem::ArchiveSupported(const char *Type)
+{
+   return false;
+}
+                                                                       /*}}}*/
+// System::Score - Determine if we should use the edsp system          /*{{{*/
+signed edspSystem::Score(Configuration const &Cnf)
+{
+   if (Cnf.Find("edsp::scenario", "") == "stdin")
+      return 1000;
+   if (FileExists(Cnf.FindFile("edsp::scenario","")) == true)
+      return 1000;
+   return -1000;
+}
+                                                                       /*}}}*/
+// System::AddStatusFiles - Register the status files                  /*{{{*/
+bool edspSystem::AddStatusFiles(vector<pkgIndexFile *> &List)
+{
+   if (StatusFile == 0)
+   {
+      if (_config->Find("edsp::scenario", "") == "stdin")
+        StatusFile = new edspIndex("stdin");
+      else
+        StatusFile = new edspIndex(_config->FindFile("edsp::scenario"));
+   }
+   List.push_back(StatusFile);
+   return true;
+}
+                                                                       /*}}}*/
+// System::FindIndex - Get an index file for status files              /*{{{*/
+bool edspSystem::FindIndex(pkgCache::PkgFileIterator File,
+                         pkgIndexFile *&Found) const
+{
+   if (StatusFile == 0)
+      return false;
+   if (StatusFile->FindInCache(*File.Cache()) == File)
+   {
+      Found = StatusFile;
+      return true;
+   }
+
+   return false;
+}
+                                                                       /*}}}*/
diff --git a/apt-pkg/edsp/edspsystem.h b/apt-pkg/edsp/edspsystem.h
new file mode 100644 (file)
index 0000000..ca703fa
--- /dev/null
@@ -0,0 +1,41 @@
+// -*- mode: cpp; mode: fold -*-
+// Description                                                         /*{{{*/
+// $Id: debsystem.h,v 1.4 2003/01/11 07:16:33 jgg Exp $
+/* ######################################################################
+
+   System - Debian version of the  System Class
+
+   ##################################################################### */
+                                                                       /*}}}*/
+#ifndef PKGLIB_EDSPSYSTEM_H
+#define PKGLIB_EDSPSYSTEM_H
+
+#include <apt-pkg/pkgsystem.h>
+
+class edspIndex;
+class edspSystem : public pkgSystem
+{
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
+   edspIndex *StatusFile;
+
+   public:
+
+   virtual bool Lock();
+   virtual bool UnLock(bool NoErrors = false);
+   virtual pkgPackageManager *CreatePM(pkgDepCache *Cache) const;
+   virtual bool Initialize(Configuration &Cnf);
+   virtual bool ArchiveSupported(const char *Type);
+   virtual signed Score(Configuration const &Cnf);
+   virtual bool AddStatusFiles(std::vector<pkgIndexFile *> &List);
+   virtual bool FindIndex(pkgCache::PkgFileIterator File,
+                         pkgIndexFile *&Found) const;
+
+   edspSystem();
+   ~edspSystem();
+};
+
+extern edspSystem edspSys;
+
+#endif
index 064fb007c9decc7f9670b185d827a4886fc0ca5a..4df018ef45512c26244a16bbf175db24be81ffa6 100644 (file)
@@ -10,7 +10,7 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#include "indexcopy.h"
+#include<config.h>
 
 #include <apt-pkg/error.h>
 #include <apt-pkg/progress.h>
@@ -21,7 +21,6 @@
 #include <apt-pkg/indexrecords.h>
 #include <apt-pkg/md5.h>
 #include <apt-pkg/cdrom.h>
-#include <apti18n.h>
 
 #include <iostream>
 #include <sstream>
 #include <sys/types.h>
 #include <fcntl.h>
 #include <stdio.h>
+#include <stdlib.h>
+
+#include "indexcopy.h"
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
@@ -43,7 +46,7 @@ bool IndexCopy::CopyPackages(string CDROM,string Name,vector<string> &List,
                             pkgCdromStatus *log)
 {
    OpProgress *Progress = NULL;
-   if (List.size() == 0)
+   if (List.empty() == true)
       return true;
    
    if(log) 
@@ -53,8 +56,8 @@ bool IndexCopy::CopyPackages(string CDROM,string Name,vector<string> &List,
    bool Debug = _config->FindB("Debug::aptcdrom",false);
    
    // Prepare the progress indicator
-   unsigned long TotalSize = 0;
-   for (vector<string>::iterator I = List.begin(); I != List.end(); I++)
+   off_t TotalSize = 0;
+   for (vector<string>::iterator I = List.begin(); I != List.end(); ++I)
    {
       struct stat Buf;
       if (stat(string(*I + GetFileName()).c_str(),&Buf) != 0 &&
@@ -64,14 +67,14 @@ bool IndexCopy::CopyPackages(string CDROM,string Name,vector<string> &List,
       TotalSize += Buf.st_size;
    }   
 
-   unsigned long CurrentSize = 0;
+   off_t CurrentSize = 0;
    unsigned int NotFound = 0;
    unsigned int WrongSize = 0;
    unsigned int Packages = 0;
-   for (vector<string>::iterator I = List.begin(); I != List.end(); I++)
+   for (vector<string>::iterator I = List.begin(); I != List.end(); ++I)
    {      
       string OrigPath = string(*I,CDROM.length());
-      unsigned long FileSize = 0;
+      off_t FileSize = 0;
       
       // Open the package file
       FileFd Pkg;
@@ -164,7 +167,7 @@ bool IndexCopy::CopyPackages(string CDROM,string Name,vector<string> &List,
         if(Progress)
            Progress->Progress(Parser.Offset());
         string File;
-        unsigned long Size;
+        unsigned long long Size;
         if (GetFile(File,Size) == false)
         {
            fclose(TargetFl);
@@ -219,7 +222,7 @@ bool IndexCopy::CopyPackages(string CDROM,string Name,vector<string> &List,
            }       
                                            
            // Size match
-           if ((unsigned)Buf.st_size != Size)
+           if ((unsigned long long)Buf.st_size != Size)
            {
               if (Debug == true)
                  clog << "Wrong Size: " << File << endl;
@@ -453,7 +456,7 @@ bool IndexCopy::GrabFirst(string Path,string &To,unsigned int Depth)
 // PackageCopy::GetFile - Get the file information from the section    /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-bool PackageCopy::GetFile(string &File,unsigned long &Size)
+bool PackageCopy::GetFile(string &File,unsigned long long &Size)
 {
    File = Section->FindS("Filename");
    Size = Section->FindI("Size");
@@ -479,7 +482,7 @@ bool PackageCopy::RewriteEntry(FILE *Target,string File)
 // SourceCopy::GetFile - Get the file information from the section     /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-bool SourceCopy::GetFile(string &File,unsigned long &Size)
+bool SourceCopy::GetFile(string &File,unsigned long long &Size)
 {
    string Files = Section->FindS("Files");
    if (Files.empty() == true)
@@ -502,7 +505,7 @@ bool SourceCopy::GetFile(string &File,unsigned long &Size)
       return _error->Error("Error parsing file record");
    
    // Parse the size and append the directory
-   Size = atoi(sSize.c_str());
+   Size = strtoull(sSize.c_str(), NULL, 10);
    File = Base + File;
    return true;
 }
@@ -583,13 +586,13 @@ bool SigVerify::CopyMetaIndex(string CDROM, string CDName,                /*{{{*/
 bool SigVerify::CopyAndVerify(string CDROM,string Name,vector<string> &SigList,        /*{{{*/
                              vector<string> PkgList,vector<string> SrcList)
 {
-   if (SigList.size() == 0)
+   if (SigList.empty() == true)
       return true;
 
    bool Debug = _config->FindB("Debug::aptcdrom",false);
 
    // Read all Release files
-   for (vector<string>::iterator I = SigList.begin(); I != SigList.end(); I++)
+   for (vector<string>::iterator I = SigList.begin(); I != SigList.end(); ++I)
    { 
       if(Debug)
         cout << "Signature verify for: " << *I << endl;
@@ -633,7 +636,7 @@ bool SigVerify::CopyAndVerify(string CDROM,string Name,vector<string> &SigList,
       // go over the Indexfiles and see if they verify
       // if so, remove them from our copy of the lists
       vector<string> keys = MetaIndex->MetaKeys();
-      for (vector<string>::iterator I = keys.begin(); I != keys.end(); I++)
+      for (vector<string>::iterator I = keys.begin(); I != keys.end(); ++I)
       { 
         if(!Verify(prefix,*I, MetaIndex)) {
            // something went wrong, don't copy the Release.gpg
@@ -664,6 +667,21 @@ bool SigVerify::CopyAndVerify(string CDROM,string Name,vector<string> &SigList,
 bool SigVerify::RunGPGV(std::string const &File, std::string const &FileGPG,
                        int const &statusfd, int fd[2])
 {
+   if (File == FileGPG)
+   {
+      #define SIGMSG "-----BEGIN PGP SIGNED MESSAGE-----\n"
+      char buffer[sizeof(SIGMSG)];
+      FILE* gpg = fopen(File.c_str(), "r");
+      if (gpg == NULL)
+        return _error->Errno("RunGPGV", _("Could not open file %s"), File.c_str());
+      char const * const test = fgets(buffer, sizeof(buffer), gpg);
+      fclose(gpg);
+      if (test == NULL || strcmp(buffer, SIGMSG) != 0)
+        return _error->Error(_("File %s doesn't start with a clearsigned message"), File.c_str());
+      #undef SIGMSG
+   }
+
+
    string const gpgvpath = _config->Find("Dir::Bin::gpg", "/usr/bin/gpgv");
    // FIXME: remove support for deprecated APT::GPGV setting
    string const trustedFile = _config->Find("APT::GPGV::TrustedKeyring", _config->FindFile("Dir::Etc::Trusted"));
@@ -688,7 +706,11 @@ bool SigVerify::RunGPGV(std::string const &File, std::string const &FileGPG,
    Args.reserve(30);
 
    if (keyrings.empty() == true)
-      return false;
+   {
+      // TRANSLATOR: %s is the trusted keyring parts directory
+      return _error->Error(_("No keyring installed in %s."),
+                          _config->FindDir("Dir::Etc::TrustedParts").c_str());
+   }
 
    Args.push_back(gpgvpath.c_str());
    Args.push_back("--ignore-time-conflict");
@@ -757,7 +779,7 @@ bool TranslationsCopy::CopyTranslations(string CDROM,string Name,   /*{{{*/
                                vector<string> &List, pkgCdromStatus *log)
 {
    OpProgress *Progress = NULL;
-   if (List.size() == 0)
+   if (List.empty() == true)
       return true;
    
    if(log) 
@@ -766,8 +788,8 @@ bool TranslationsCopy::CopyTranslations(string CDROM,string Name,   /*{{{*/
    bool Debug = _config->FindB("Debug::aptcdrom",false);
    
    // Prepare the progress indicator
-   unsigned long TotalSize = 0;
-   for (vector<string>::iterator I = List.begin(); I != List.end(); I++)
+   off_t TotalSize = 0;
+   for (vector<string>::iterator I = List.begin(); I != List.end(); ++I)
    {
       struct stat Buf;
       if (stat(string(*I).c_str(),&Buf) != 0 &&
@@ -777,14 +799,14 @@ bool TranslationsCopy::CopyTranslations(string CDROM,string Name, /*{{{*/
       TotalSize += Buf.st_size;
    }   
 
-   unsigned long CurrentSize = 0;
+   off_t CurrentSize = 0;
    unsigned int NotFound = 0;
    unsigned int WrongSize = 0;
    unsigned int Packages = 0;
-   for (vector<string>::iterator I = List.begin(); I != List.end(); I++)
+   for (vector<string>::iterator I = List.begin(); I != List.end(); ++I)
    {      
       string OrigPath = string(*I,CDROM.length());
-      unsigned long FileSize = 0;
+      off_t FileSize = 0;
       
       // Open the package file
       FileFd Pkg;
@@ -866,7 +888,6 @@ bool TranslationsCopy::CopyTranslations(string CDROM,string Name,   /*{{{*/
       this->Section = &Section;
       string Prefix;
       unsigned long Hits = 0;
-      unsigned long Chop = 0;
       while (Parser.Step(Section) == true)
       {
         if(Progress)
@@ -884,7 +905,7 @@ bool TranslationsCopy::CopyTranslations(string CDROM,string Name,   /*{{{*/
       fclose(TargetFl);
 
       if (Debug == true)
-        cout << " Processed by using Prefix '" << Prefix << "' and chop " << Chop << endl;
+        cout << " Processed by using Prefix '" << Prefix << "' and chop " << endl;
         
       if (_config->FindB("APT::CDROM::NoAct",false) == false)
       {
index 6fcd3b8ce4e1a110c9efd9639931d5233de0f78e..60c90dd4a2d9fdc1eb1de72f0476fbd517e93ad0 100644 (file)
@@ -24,6 +24,9 @@ class pkgCdromStatus;
 
 class IndexCopy                                                                /*{{{*/
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
    protected:
    
    pkgTagSection *Section;
@@ -34,7 +37,7 @@ class IndexCopy                                                               /*{{{*/
    bool ReconstructChop(unsigned long &Chop,string Dir,string File);
    void ConvertToSourceList(string CD,string &Path);
    bool GrabFirst(string Path,string &To,unsigned int Depth);
-   virtual bool GetFile(string &Filename,unsigned long &Size) = 0;
+   virtual bool GetFile(string &Filename,unsigned long long &Size) = 0;
    virtual bool RewriteEntry(FILE *Target,string File) = 0;
    virtual const char *GetFileName() = 0;
    virtual const char *Type() = 0;
@@ -50,24 +53,22 @@ class PackageCopy : public IndexCopy                                        /*{{{*/
 {
    protected:
    
-   virtual bool GetFile(string &Filename,unsigned long &Size);
+   virtual bool GetFile(string &Filename,unsigned long long &Size);
    virtual bool RewriteEntry(FILE *Target,string File);
    virtual const char *GetFileName() {return "Packages";};
    virtual const char *Type() {return "Package";};
    
-   public:
 };
                                                                        /*}}}*/
 class SourceCopy : public IndexCopy                                    /*{{{*/
 {
    protected:
    
-   virtual bool GetFile(string &Filename,unsigned long &Size);
+   virtual bool GetFile(string &Filename,unsigned long long &Size);
    virtual bool RewriteEntry(FILE *Target,string File);
    virtual const char *GetFileName() {return "Sources";};
    virtual const char *Type() {return "Source";};
    
-   public:
 };
                                                                        /*}}}*/
 class TranslationsCopy                                                 /*{{{*/
@@ -82,6 +83,9 @@ class TranslationsCopy                                                        /*{{{*/
                                                                        /*}}}*/
 class SigVerify                                                                /*{{{*/
 {
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
+
    bool Verify(string prefix,string file, indexRecords *records);
    bool CopyMetaIndex(string CDROM, string CDName, 
                      string prefix, string file);
index 37be87055367d8eb02ba3135f0315976a4de1df3..68e9df4c8bf2142edfa2f2f9819bf3ada9a81dd3 100644 (file)
@@ -8,6 +8,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/indexfile.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/aptconfiguration.h>
@@ -27,7 +29,8 @@ unsigned long pkgIndexFile::Type::GlobalListLen = 0;
 pkgIndexFile::Type::Type()
 {
    ItmList[GlobalListLen] = this;
-   GlobalListLen++;   
+   GlobalListLen++;
+   Label = NULL;
 }
                                                                        /*}}}*/
 // Type::GetType - Locate the type by name                             /*{{{*/
index 10e154ad2305b33c1887bace3777d846d61604b5..448a76c27eea7dd1945bd28a490aeac9d586f1a8 100644 (file)
@@ -3,15 +3,17 @@
 // $Id: indexrecords.cc,v 1.1.2.4 2003/12/30 02:11:43 mdz Exp $
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/indexrecords.h>
 #include <apt-pkg/tagfile.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/configuration.h>
-#include <apti18n.h>
 #include <sys/stat.h>
 #include <clocale>
 
+#include <apti18n.h>
                                                                        /*}}}*/
 string indexRecords::GetDist() const
 {
@@ -78,7 +80,7 @@ bool indexRecords::Load(const string Filename)                                /*{{{*/
 
       string Name;
       string Hash;
-      size_t Size;
+      unsigned long long Size;
       while (Start < End)
       {
         if (!parseSumData(Start, End, Name, Hash, Size))
@@ -113,10 +115,14 @@ bool indexRecords::Load(const string Filename)                            /*{{{*/
    }
    // get the user settings for this archive and use what expires earlier
    int MaxAge = _config->FindI("Acquire::Max-ValidTime", 0);
-   if (Label.empty() == true)
+   if (Label.empty() == false)
       MaxAge = _config->FindI(string("Acquire::Max-ValidTime::" + Label).c_str(), MaxAge);
+   int MinAge = _config->FindI("Acquire::Min-ValidTime", 0);
+   if (Label.empty() == false)
+      MinAge = _config->FindI(string("Acquire::Min-ValidTime::" + Label).c_str(), MinAge);
 
-   if(MaxAge == 0) // No user settings, use the one from the Release file
+   if(MaxAge == 0 &&
+      (MinAge == 0 || ValidUntil == 0)) // No user settings, use the one from the Release file
       return true;
 
    time_t date;
@@ -125,10 +131,17 @@ bool indexRecords::Load(const string Filename)                            /*{{{*/
       strprintf(ErrorText, _("Invalid 'Date' entry in Release file %s"), Filename.c_str());
       return false;
    }
-   date += 24*60*60*MaxAge;
 
-   if (ValidUntil == 0 || ValidUntil > date)
-      ValidUntil = date;
+   if (MinAge != 0 && ValidUntil != 0) {
+      time_t const min_date = date + MinAge;
+      if (ValidUntil < min_date)
+        ValidUntil = min_date;
+   }
+   if (MaxAge != 0) {
+      time_t const max_date = date + MaxAge;
+      if (ValidUntil == 0 || ValidUntil > max_date)
+        ValidUntil = max_date;
+   }
 
    return true;
 }
@@ -145,7 +158,7 @@ vector<string> indexRecords::MetaKeys()                                     /*{{{*/
 }
                                                                        /*}}}*/
 bool indexRecords::parseSumData(const char *&Start, const char *End,   /*{{{*/
-                                  string &Name, string &Hash, size_t &Size)
+                                  string &Name, string &Hash, unsigned long long &Size)
 {
    Name = "";
    Hash = "";
@@ -182,7 +195,7 @@ bool indexRecords::parseSumData(const char *&Start, const char *End,        /*{{{*/
    if (EntryEnd == End)
       return false;
    
-   Size = strtol (Start, NULL, 10);
+   Size = strtoull (Start, NULL, 10);
       
    /* Skip over intermediate blanks */
    Start = EntryEnd;
index 5b532c1a528790e57727138490f9b46fa423e16d..0f933b93caa75d0f8ce7fcff19d58566428db56d 100644 (file)
@@ -17,7 +17,7 @@
 class indexRecords
 {
    bool parseSumData(const char *&Start, const char *End, string &Name,
-                    string &Hash, size_t &Size);
+                    string &Hash, unsigned long long &Size);
    public:
    struct checkSum;
    string ErrorText;
@@ -53,7 +53,7 @@ struct indexRecords::checkSum
 {
    string MetaKeyFilename;
    HashString Hash;
-   size_t Size;      
+   unsigned long long Size;
 };
 
 #endif
index 31b2d9ccd163f7606797da2bf8669049fa440ed8..97a39e96e8831318a7c189ed6979558749249d32 100644 (file)
@@ -8,14 +8,16 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/init.h>
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/error.h>
 
-#include <apti18n.h>
-#include <config.h>
 #include <cstdlib>
 #include <sys/stat.h>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 #define Stringfy_(x) # x
@@ -33,60 +35,65 @@ const char *pkgLibVersion = Stringfy(APT_PKG_MAJOR) "."
 bool pkgInitConfig(Configuration &Cnf)
 {
    // General APT things
-   Cnf.Set("APT::Architecture", COMMON_ARCH);
-   Cnf.Set("APT::Build-Essential::", "build-essential");
-   Cnf.Set("APT::Install-Recommends", true);
-   Cnf.Set("APT::Install-Suggests", false);
-   Cnf.Set("Dir","/");
+   Cnf.CndSet("APT::Architecture", COMMON_ARCH);
+   if (Cnf.Exists("APT::Build-Essential") == false)
+      Cnf.Set("APT::Build-Essential::", "build-essential");
+   Cnf.CndSet("APT::Install-Recommends", true);
+   Cnf.CndSet("APT::Install-Suggests", false);
+   Cnf.CndSet("Dir","/");
    
    // State   
-   Cnf.Set("Dir::State","var/lib/apt/");
+   Cnf.CndSet("Dir::State","var/lib/apt/");
    
    /* Just in case something goes horribly wrong, we can fall back to the
       old /var/state paths.. */
    struct stat St;   
    if (stat("/var/lib/apt/.",&St) != 0 &&
        stat("/var/state/apt/.",&St) == 0)
-      Cnf.Set("Dir::State","var/state/apt/");
+      Cnf.CndSet("Dir::State","var/state/apt/");
        
-   Cnf.Set("Dir::State::lists","lists/");
-   Cnf.Set("Dir::State::cdroms","cdroms.list");
-   Cnf.Set("Dir::State::mirrors","mirrors/");
+   Cnf.CndSet("Dir::State::lists","lists/");
+   Cnf.CndSet("Dir::State::cdroms","cdroms.list");
+   Cnf.CndSet("Dir::State::mirrors","mirrors/");
 
    // Cache
-   Cnf.Set("Dir::Cache","var/cache/apt/");
-   Cnf.Set("Dir::Cache::archives","archives/");
-   Cnf.Set("Dir::Cache::srcpkgcache","srcpkgcache.bin");
-   Cnf.Set("Dir::Cache::pkgcache","pkgcache.bin");
+   Cnf.CndSet("Dir::Cache","var/cache/apt/");
+   Cnf.CndSet("Dir::Cache::archives","archives/");
+   Cnf.CndSet("Dir::Cache::srcpkgcache","srcpkgcache.bin");
+   Cnf.CndSet("Dir::Cache::pkgcache","pkgcache.bin");
    
    // Configuration
-   Cnf.Set("Dir::Etc","etc/apt/");
-   Cnf.Set("Dir::Etc::sourcelist","sources.list");
-   Cnf.Set("Dir::Etc::sourceparts","sources.list.d");
-   Cnf.Set("Dir::Etc::vendorlist","vendors.list");
-   Cnf.Set("Dir::Etc::vendorparts","vendors.list.d");
-   Cnf.Set("Dir::Etc::main","apt.conf");
-   Cnf.Set("Dir::Etc::netrc", "auth.conf");
-   Cnf.Set("Dir::Etc::parts","apt.conf.d");
-   Cnf.Set("Dir::Etc::preferences","preferences");
-   Cnf.Set("Dir::Etc::preferencesparts","preferences.d");
-   Cnf.Set("Dir::Etc::trusted", "trusted.gpg");
-   Cnf.Set("Dir::Etc::trustedparts","trusted.gpg.d");
-   Cnf.Set("Dir::Bin::methods","/usr/lib/apt/methods");
-   Cnf.Set("Dir::Media::MountPath","/media/apt");
+   Cnf.CndSet("Dir::Etc","etc/apt/");
+   Cnf.CndSet("Dir::Etc::sourcelist","sources.list");
+   Cnf.CndSet("Dir::Etc::sourceparts","sources.list.d");
+   Cnf.CndSet("Dir::Etc::vendorlist","vendors.list");
+   Cnf.CndSet("Dir::Etc::vendorparts","vendors.list.d");
+   Cnf.CndSet("Dir::Etc::main","apt.conf");
+   Cnf.CndSet("Dir::Etc::netrc", "auth.conf");
+   Cnf.CndSet("Dir::Etc::parts","apt.conf.d");
+   Cnf.CndSet("Dir::Etc::preferences","preferences");
+   Cnf.CndSet("Dir::Etc::preferencesparts","preferences.d");
+   Cnf.CndSet("Dir::Etc::trusted", "trusted.gpg");
+   Cnf.CndSet("Dir::Etc::trustedparts","trusted.gpg.d");
+   Cnf.CndSet("Dir::Bin::methods","/usr/lib/apt/methods");
+   Cnf.CndSet("Dir::Bin::solvers::","/usr/lib/apt/solvers");
+   Cnf.CndSet("Dir::Media::MountPath","/media/apt");
 
    // State   
-   Cnf.Set("Dir::Log","var/log/apt");
-   Cnf.Set("Dir::Log::Terminal","term.log");
-   Cnf.Set("Dir::Log::History","history.log");
+   Cnf.CndSet("Dir::Log","var/log/apt");
+   Cnf.CndSet("Dir::Log::Terminal","term.log");
+   Cnf.CndSet("Dir::Log::History","history.log");
 
-   Cnf.Set("Dir::Ignore-Files-Silently::", "~$");
-   Cnf.Set("Dir::Ignore-Files-Silently::", "\\.disabled$");
-   Cnf.Set("Dir::Ignore-Files-Silently::", "\\.bak$");
-   Cnf.Set("Dir::Ignore-Files-Silently::", "\\.dpkg-[a-z]+$");
+   if (Cnf.Exists("Dir::Ignore-Files-Silently") == false)
+   {
+      Cnf.Set("Dir::Ignore-Files-Silently::", "~$");
+      Cnf.Set("Dir::Ignore-Files-Silently::", "\\.disabled$");
+      Cnf.Set("Dir::Ignore-Files-Silently::", "\\.bak$");
+      Cnf.Set("Dir::Ignore-Files-Silently::", "\\.dpkg-[a-z]+$");
+   }
 
    // Default cdrom mount point
-   Cnf.Set("Acquire::cdrom::mount", "/media/cdrom/");
+   Cnf.CndSet("Acquire::cdrom::mount", "/media/cdrom/");
 
    bool Res = true;
    
index 15a1165b9e597954daa0388380fa7018e725d754..4cee1001a6b94b32fdf863fa5d86bf834cae3bbd 100644 (file)
@@ -22,8 +22,8 @@
 // Non-ABI-Breaks should only increase RELEASE number.
 // See also buildlib/libversion.mak
 #define APT_PKG_MAJOR 4
-#define APT_PKG_MINOR 10
-#define APT_PKG_RELEASE 1
+#define APT_PKG_MINOR 12
+#define APT_PKG_RELEASE 0
     
 extern const char *pkgVersion;
 extern const char *pkgLibVersion;
index 4e5ec107f09b73af7f7c74c9184ef069f972a445..e1f69dd655d6d52acf5580fb7334677abd44fe8e 100644 (file)
@@ -3,7 +3,7 @@ BASE=..
 SUBDIR=apt-pkg
 
 # Header location
-SUBDIRS = deb contrib
+SUBDIRS = deb edsp contrib
 HEADER_TARGETDIRS = apt-pkg
 
 # Bring in the default rules
@@ -20,11 +20,15 @@ APT_DOMAIN:=libapt-pkg$(LIBAPTPKG_MAJOR)
 # Source code for the contributed non-core things
 SOURCE = contrib/mmap.cc contrib/error.cc contrib/strutl.cc \
          contrib/configuration.cc contrib/progress.cc contrib/cmndline.cc \
-        contrib/md5.cc contrib/sha1.cc contrib/sha256.cc contrib/hashes.cc \
+        contrib/hashsum.cc contrib/md5.cc contrib/sha1.cc \
+        contrib/sha2_internal.cc\
+         contrib/hashes.cc \
         contrib/cdromutl.cc contrib/crc-16.cc contrib/netrc.cc \
         contrib/fileutl.cc 
 HEADERS = mmap.h error.h configuration.h fileutl.h  cmndline.h netrc.h\
-         md5.h crc-16.h cdromutl.h strutl.h sptr.h sha1.h sha256.h hashes.h \
+         md5.h crc-16.h cdromutl.h strutl.h sptr.h sha1.h sha2.h sha256.h\
+         sha2_internal.h \
+          hashes.h hashsum_template.h\
          macros.h weakptr.h
 
 # Source code for the core main library
@@ -35,7 +39,7 @@ SOURCE+= pkgcache.cc version.cc depcache.cc \
         srcrecords.cc cachefile.cc versionmatch.cc policy.cc \
         pkgsystem.cc indexfile.cc pkgcachegen.cc acquire-item.cc \
         indexrecords.cc vendor.cc vendorlist.cc cdrom.cc indexcopy.cc \
-        aptconfiguration.cc cachefilter.cc cacheset.cc
+        aptconfiguration.cc cachefilter.cc cacheset.cc edsp.cc
 HEADERS+= algorithms.h depcache.h pkgcachegen.h cacheiterators.h \
          orderlist.h sourcelist.h packagemanager.h tagfile.h \
          init.h pkgcache.h version.h progress.h pkgrecords.h \
@@ -43,7 +47,7 @@ HEADERS+= algorithms.h depcache.h pkgcachegen.h cacheiterators.h \
          clean.h srcrecords.h cachefile.h versionmatch.h policy.h \
          pkgsystem.h indexfile.h metaindex.h indexrecords.h vendor.h \
          vendorlist.h cdrom.h indexcopy.h aptconfiguration.h \
-         cachefilter.h cacheset.h
+         cachefilter.h cacheset.h edsp.h
 
 # Source code for the debian specific components
 # In theory the deb headers do not need to be exported..
@@ -53,6 +57,10 @@ SOURCE+= deb/deblistparser.cc deb/debrecords.cc deb/dpkgpm.cc \
 HEADERS+= debversion.h debsrcrecords.h dpkgpm.h debrecords.h \
          deblistparser.h debsystem.h debindexfile.h debmetaindex.h
 
+# Source code for the APT resolver interface specific components
+SOURCE+= edsp/edsplistparser.cc edsp/edspindexfile.cc edsp/edspsystem.cc
+HEADERS+= edsplistparser.h edspindexfile.h edspsystem.h
+
 HEADERS := $(addprefix apt-pkg/,$(HEADERS))
 
 include $(LIBRARY_H)
index 1d2140799ba792b9b9c980c9a7f5576ba965e729..f60235a5d161384da4c7c362d27cb812e50850d3 100644 (file)
@@ -39,6 +39,10 @@ class metaIndex
    virtual vector<pkgIndexFile *> *GetIndexFiles() = 0; 
    virtual bool IsTrusted() const = 0;
 
+   metaIndex(string const &URI, string const &Dist, char const * const Type) :
+               Indexes(NULL), Type(Type), URI(URI), Dist(Dist) {
+   }
+
    virtual ~metaIndex() {
       if (Indexes == 0)
         return;
index 1e412ead52bbb4a0beb1884974346ba8f91b6a37..0ac9a83e3b14c1971e7dc863022d00279ad2d042 100644 (file)
@@ -63,6 +63,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/orderlist.h>
 #include <apt-pkg/depcache.h>
 #include <apt-pkg/error.h>
@@ -145,14 +147,14 @@ bool pkgOrderList::DoRun()
    Depth = 0;
    WipeFlags(Added | AddPending | Loop | InList);
 
-   for (iterator I = List; I != End; I++)
+   for (iterator I = List; I != End; ++I)
       Flag(*I,InList);
 
    // Rebuild the main list into the temp list.
    iterator OldEnd = End;
    End = NList;
-   for (iterator I = List; I != OldEnd; I++)
-      if (VisitNode(PkgIterator(Cache,*I)) == false)
+   for (iterator I = List; I != OldEnd; ++I)
+      if (VisitNode(PkgIterator(Cache,*I), "DoRun") == false)
       {
         End = OldEnd;
         return false;
@@ -197,7 +199,7 @@ bool pkgOrderList::OrderCritical()
    {
       clog << "** Critical Unpack ordering done" << endl;
 
-      for (iterator I = List; I != End; I++)
+      for (iterator I = List; I != End; ++I)
       {
         PkgIterator P(Cache,*I);
         if (IsNow(P) == true)
@@ -222,7 +224,7 @@ bool pkgOrderList::OrderUnpack(string *FileList)
       WipeFlags(After);
 
       // Set the inlist flag
-      for (iterator I = List; I != End; I++)
+      for (iterator I = List; I != End; ++I)
       {
         PkgIterator P(Cache,*I);
         if (IsMissing(P) == true && IsNow(P) == true)
@@ -270,7 +272,7 @@ bool pkgOrderList::OrderUnpack(string *FileList)
    {
       clog << "** Unpack ordering done" << endl;
 
-      for (iterator I = List; I != End; I++)
+      for (iterator I = List; I != End; ++I)
       {
         PkgIterator P(Cache,*I);
         if (IsNow(P) == true)
@@ -323,7 +325,7 @@ int pkgOrderList::Score(PkgIterator Pkg)
       Score += ScoreImmediate;
 
    for (DepIterator D = Cache[Pkg].InstVerIter(Cache).DependsList();
-       D.end() == false; D++)
+       D.end() == false; ++D)
       if (D->Type == pkgCache::Dep::PreDepends)
       {
         Score += ScorePreDepends;
@@ -488,40 +490,76 @@ bool pkgOrderList::VisitRProvides(DepFunc F,VerIterator Ver)
       return true;
    
    bool Res = true;
-   for (PrvIterator P = Ver.ProvidesList(); P.end() == false; P++)
+   for (PrvIterator P = Ver.ProvidesList(); P.end() == false; ++P)
       Res &= (this->*F)(P.ParentPkg().RevDependsList());
    return Res;
 }
                                                                        /*}}}*/
 // OrderList::VisitProvides - Visit all of the providing packages      /*{{{*/
 // ---------------------------------------------------------------------
-/* This routine calls visit on all providing packages. */
+/* This routine calls visit on all providing packages.
+
+   If the dependency is negative it first visits packages which are
+   intended to be removed and after that all other packages.
+   It does so to avoid situations in which this package is used to
+   satisfy a (or-group/provides) dependency of another package which
+   could have been satisfied also by upgrading another package -
+   otherwise we have more broken packages dpkg needs to auto-
+   deconfigure and in very complicated situations it even decides
+   against it! */
 bool pkgOrderList::VisitProvides(DepIterator D,bool Critical)
-{   
+{
    SPtrArray<Version *> List = D.AllTargets();
-   for (Version **I = List; *I != 0; I++)
+   for (Version **I = List; *I != 0; ++I)
    {
       VerIterator Ver(Cache,*I);
       PkgIterator Pkg = Ver.ParentPkg();
 
+      if (D.IsNegative() == true && Cache[Pkg].Delete() == false)
+        continue;
+
       if (Cache[Pkg].Keep() == true && Pkg.State() == PkgIterator::NeedsNothing)
         continue;
-      
+
       if (D.IsNegative() == false &&
          Cache[Pkg].InstallVer != *I)
         continue;
-      
+
       if (D.IsNegative() == true &&
          (Version *)Pkg.CurrentVer() != *I)
         continue;
-      
+
       // Skip over missing files
       if (Critical == false && IsMissing(D.ParentPkg()) == true)
         continue;
 
-      if (VisitNode(Pkg) == false)
+      if (VisitNode(Pkg, "Provides-1") == false)
         return false;
    }
+   if (D.IsNegative() == false)
+      return true;
+   for (Version **I = List; *I != 0; ++I)
+   {
+      VerIterator Ver(Cache,*I);
+      PkgIterator Pkg = Ver.ParentPkg();
+
+      if (Cache[Pkg].Delete() == true)
+        continue;
+
+      if (Cache[Pkg].Keep() == true && Pkg.State() == PkgIterator::NeedsNothing)
+        continue;
+
+      if ((Version *)Pkg.CurrentVer() != *I)
+        continue;
+
+      // Skip over missing files
+      if (Critical == false && IsMissing(D.ParentPkg()) == true)
+        continue;
+
+      if (VisitNode(Pkg, "Provides-2") == false)
+        return false;
+   }
+
    return true;
 }
                                                                        /*}}}*/
@@ -530,7 +568,7 @@ bool pkgOrderList::VisitProvides(DepIterator D,bool Critical)
 /* This is the core ordering routine. It calls the set dependency
    consideration functions which then potentialy call this again. Finite
    depth is achived through the colouring mechinism. */
-bool pkgOrderList::VisitNode(PkgIterator Pkg)
+bool pkgOrderList::VisitNode(PkgIterator Pkg, char const* from)
 {
    // Looping or irrelevent.
    // This should probably trancend not installed packages
@@ -541,7 +579,7 @@ bool pkgOrderList::VisitNode(PkgIterator Pkg)
    if (Debug == true)
    {
       for (int j = 0; j != Depth; j++) clog << ' ';
-      clog << "Visit " << Pkg.FullName() << endl;
+      clog << "Visit " << Pkg.FullName() << " from " << from << endl;
    }
    
    Depth++;
@@ -615,7 +653,7 @@ bool pkgOrderList::VisitNode(PkgIterator Pkg)
    Loops are preprocessed and logged. */
 bool pkgOrderList::DepUnPackCrit(DepIterator D)
 {
-   for (; D.end() == false; D++)
+   for (; D.end() == false; ++D)
    {
       if (D.Reverse() == true)
       {
@@ -636,7 +674,7 @@ bool pkgOrderList::DepUnPackCrit(DepIterator D)
         if (CheckDep(D) == true)
            continue;
 
-        if (VisitNode(D.ParentPkg()) == false)
+        if (VisitNode(D.ParentPkg(), "UnPackCrit") == false)
            return false;
       }
       else
@@ -693,7 +731,7 @@ bool pkgOrderList::DepUnPackPreD(DepIterator D)
    if (D.Reverse() == true)
       return DepUnPackCrit(D);
    
-   for (; D.end() == false; D++)
+   for (; D.end() == false; ++D)
    {
       if (D.IsCritical() == false)
         continue;
@@ -736,7 +774,7 @@ bool pkgOrderList::DepUnPackPre(DepIterator D)
    if (D.Reverse() == true)
       return true;
    
-   for (; D.end() == false; D++)
+   for (; D.end() == false; ++D)
    {
       /* Only consider the PreDepends or Depends. Depends are only
                 considered at the lowest depth or in the case of immediate
@@ -791,7 +829,7 @@ bool pkgOrderList::DepUnPackPre(DepIterator D)
 bool pkgOrderList::DepUnPackDep(DepIterator D)
 {
    
-   for (; D.end() == false; D++)
+   for (; D.end() == false; ++D)
       if (D.IsCritical() == true)
       {
         if (D.Reverse() == true)
@@ -811,7 +849,7 @@ bool pkgOrderList::DepUnPackDep(DepIterator D)
            if (IsMissing(D.ParentPkg()) == true)
               continue;
            
-           if (VisitNode(D.ParentPkg()) == false)
+           if (VisitNode(D.ParentPkg(), "UnPackDep-Parent") == false)
               return false;
         }
         else
@@ -825,7 +863,7 @@ bool pkgOrderList::DepUnPackDep(DepIterator D)
               if (CheckDep(D) == true)
                 continue;
 
-              if (VisitNode(D.TargetPkg()) == false)
+              if (VisitNode(D.TargetPkg(), "UnPackDep-Target") == false)
                 return false;
            }
         }
@@ -846,7 +884,7 @@ bool pkgOrderList::DepConfigure(DepIterator D)
    if (D.Reverse() == true)
       return true;
    
-   for (; D.end() == false; D++)
+   for (; D.end() == false; ++D)
       if (D->Type == pkgCache::Dep::Depends)
         if (VisitProvides(D,false) == false)
            return false;
@@ -868,7 +906,7 @@ bool pkgOrderList::DepRemove(DepIterator D)
 {
    if (D.Reverse() == false)
       return true;
-   for (; D.end() == false; D++)
+   for (; D.end() == false; ++D)
       if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends)
       {
         // Duplication elimination, consider the current version only
@@ -924,7 +962,7 @@ bool pkgOrderList::DepRemove(DepIterator D)
                        if (IsFlag(P, InList) == true &&
                            IsFlag(P, AddPending) == false &&
                            Cache[P].InstallVer != 0 &&
-                           VisitNode(P) == true)
+                           VisitNode(P, "Remove-P") == true)
                        {
                           Flag(P, Immediate);
                           tryFixDeps = false;
@@ -960,7 +998,7 @@ bool pkgOrderList::DepRemove(DepIterator D)
                  if (IsFlag(F.TargetPkg(), InList) == true &&
                      IsFlag(F.TargetPkg(), AddPending) == false &&
                      Cache[F.TargetPkg()].InstallVer != 0 &&
-                     VisitNode(F.TargetPkg()) == true)
+                     VisitNode(F.TargetPkg(), "Remove-Target") == true)
                  {
                     Flag(F.TargetPkg(), Immediate);
                     tryFixDeps = false;
@@ -974,7 +1012,7 @@ bool pkgOrderList::DepRemove(DepIterator D)
                        if (IsFlag(Prv.OwnerPkg(), InList) == true &&
                            IsFlag(Prv.OwnerPkg(), AddPending) == false &&
                            Cache[Prv.OwnerPkg()].InstallVer != 0 &&
-                           VisitNode(Prv.OwnerPkg()) == true)
+                           VisitNode(Prv.OwnerPkg(), "Remove-Owner") == true)
                        {
                           Flag(Prv.OwnerPkg(), Immediate);
                           tryFixDeps = false;
@@ -994,7 +1032,7 @@ bool pkgOrderList::DepRemove(DepIterator D)
         if (IsMissing(D.ParentPkg()) == true)
            continue;
         
-        if (VisitNode(D.ParentPkg()) == false)
+        if (VisitNode(D.ParentPkg(), "Remove-Parent") == false)
            return false;
       }
    
index 4e5ea16542e3186cee5b690fee3dd9202a08e227..9588d30a57a58be117559899af3b874c7b8626d4 100644 (file)
@@ -18,6 +18,7 @@
 
 
 #include <apt-pkg/pkgcache.h>
+#include <apt-pkg/macros.h>
 
 class pkgDepCache;
 class pkgOrderList : protected pkgCache::Namespace
@@ -45,7 +46,8 @@ class pkgOrderList : protected pkgCache::Namespace
    bool Debug;
    
    // Main visit function
-   bool VisitNode(PkgIterator Pkg);
+   __deprecated bool VisitNode(PkgIterator Pkg) { return VisitNode(Pkg, "UNKNOWN"); };
+   bool VisitNode(PkgIterator Pkg, char const* from);
    bool VisitDeps(DepFunc F,PkgIterator Pkg);
    bool VisitRDeps(DepFunc F,PkgIterator Pkg);
    bool VisitRProvides(DepFunc F,VerIterator Ver);
index b5d353602c13776c19dc6aa8710ad20d7535025c..3cd9f6f0009bb3c9996ae9b7c473440d129de0b4 100644 (file)
@@ -13,6 +13,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/packagemanager.h>
 #include <apt-pkg/orderlist.h>
 #include <apt-pkg/depcache.h>
 #include <apt-pkg/algorithms.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/sptr.h>
-    
-#include <apti18n.h>    
+
+#include <apti18n.h>
 #include <iostream>
-#include <fcntl.h> 
+#include <fcntl.h>
                                                                        /*}}}*/
 using namespace std;
 
@@ -65,7 +67,7 @@ bool pkgPackageManager::GetArchives(pkgAcquire *Owner,pkgSourceList *Sources,
    if (ordering == false)
       return _error->Error("Internal ordering error");
 
-   for (pkgOrderList::iterator I = List->begin(); I != List->end(); I++)
+   for (pkgOrderList::iterator I = List->begin(); I != List->end(); ++I)
    {
       PkgIterator Pkg(Cache,*I);
       FileNames[Pkg->ID] = string();
@@ -101,7 +103,7 @@ bool pkgPackageManager::FixMissing()
    List->SetFileList(FileNames);
 
    bool Bad = false;
-   for (PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
    {
       if (List->IsMissing(I) == false)
         continue;
@@ -142,7 +144,7 @@ void pkgPackageManager::ImmediateAdd(PkgIterator I, bool UseInstallVer, unsigned
       D = I.CurrentVer().DependsList(); 
    }
 
-   for ( /* nothing */  ; D.end() == false; D++)
+   for ( /* nothing */  ; D.end() == false; ++D)
       if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends)
       {
         if(!List->IsFlag(D.TargetPkg(), pkgOrderList::Immediate))
@@ -175,7 +177,7 @@ bool pkgPackageManager::CreateOrderList()
       clog << "CreateOrderList(): Adding Immediate flag for all packages because of APT::Immediate-Configure-All" << endl;
    
    // Generate the list of affected packages and sort it
-   for (PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
+   for (PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
    {
       // Ignore no-version packages
       if (I->VersionList == 0)
@@ -237,7 +239,7 @@ bool pkgPackageManager::DepAlwaysTrue(DepIterator D)
 bool pkgPackageManager::CheckRConflicts(PkgIterator Pkg,DepIterator D,
                                        const char *Ver)
 {
-   for (;D.end() == false; D++)
+   for (;D.end() == false; ++D)
    {
       if (D->Type != pkgCache::Dep::Conflicts &&
          D->Type != pkgCache::Dep::Obsoletes)
@@ -271,7 +273,7 @@ bool pkgPackageManager::ConfigureAll()
    pkgOrderList OList(&Cache);
    
    // Populate the order list
-   for (pkgOrderList::iterator I = List->begin(); I != List->end(); I++)
+   for (pkgOrderList::iterator I = List->begin(); I != List->end(); ++I)
       if (List->IsFlag(pkgCache::PkgIterator(Cache,*I),
                       pkgOrderList::UnPacked) == true)
         OList.push_back(*I);
@@ -283,7 +285,7 @@ bool pkgPackageManager::ConfigureAll()
    bool const ConfigurePkgs = (conf == "all");
 
    // Perform the configuring
-   for (pkgOrderList::iterator I = OList.begin(); I != OList.end(); I++)
+   for (pkgOrderList::iterator I = OList.begin(); I != OList.end(); ++I)
    {
       PkgIterator Pkg(Cache,*I);
       
@@ -441,10 +443,10 @@ bool pkgPackageManager::SmartConfigure(PkgIterator Pkg, int const Depth)
 
    if (ConfigurePkgs == true && Configure(Pkg) == false)
       return false;
-      
+
    List->Flag(Pkg,pkgOrderList::Configured,pkgOrderList::States);
 
-   if (Cache[Pkg].InstVerIter(Cache)->MultiArch == pkgCache::Version::Same)
+   if ((Cache[Pkg].InstVerIter(Cache)->MultiArch & pkgCache::Version::Same) == pkgCache::Version::Same)
       for (PkgIterator P = Pkg.Group().PackageList();
           P.end() == false; P = Pkg.Group().NextPkg(P))
       {
@@ -488,7 +490,7 @@ bool pkgPackageManager::EarlyRemove(PkgIterator Pkg)
    if (Pkg->CurrentVer != 0)
    {
       for (DepIterator D = Pkg.RevDependsList(); D.end() == false &&
-          IsEssential == false; D++)
+          IsEssential == false; ++D)
         if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends)
            if ((D.ParentPkg()->Flags & pkgCache::Flag::Essential) != 0)
               IsEssential = true;
@@ -627,7 +629,7 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
               return _error->Error("Couldn't configure pre-depend %s for %s, "
                                    "probably a dependency cycle.",
                                    End.TargetPkg().Name(),Pkg.Name());
-           Start++;
+           ++Start;
         }
         else 
            break;
@@ -725,25 +727,48 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
                          return false;
    
    for (PrvIterator P = instVer.ProvidesList();
-         P.end() == false; P++)
-        CheckRConflicts(Pkg,P.ParentPkg().RevDependsList(),P.ProvideVersion());
+       P.end() == false; ++P)
+      if (Pkg->Group != P.OwnerPkg()->Group)
+        CheckRConflicts(Pkg,P.ParentPkg().RevDependsList(),P.ProvideVersion());
 
-   if (PkgLoop) return true;
+   if (PkgLoop)
+      return true;
 
    List->Flag(Pkg,pkgOrderList::UnPacked,pkgOrderList::States);
 
-   if (instVer->MultiArch == pkgCache::Version::Same)
+   if (Immediate == true && instVer->MultiArch == pkgCache::Version::Same)
+   {
+      /* Do lockstep M-A:same unpacking in two phases:
+        First unpack all installed architectures, then the not installed.
+        This way we avoid that M-A: enabled packages are installed before
+        their older non-M-A enabled packages are replaced by newer versions */
+      bool const installed = Pkg->CurrentVer != 0;
+      if (installed == true && Install(Pkg,FileNames[Pkg->ID]) == false)
+        return false;
+      for (PkgIterator P = Pkg.Group().PackageList();
+          P.end() == false; P = Pkg.Group().NextPkg(P))
+      {
+        if (P->CurrentVer == 0 || P == Pkg || List->IsFlag(P,pkgOrderList::UnPacked) == true ||
+            Cache[P].InstallVer == 0 || (P.CurrentVer() == Cache[P].InstallVer &&
+             (Cache[Pkg].iFlags & pkgDepCache::ReInstall) != pkgDepCache::ReInstall))
+           continue;
+        if (SmartUnPack(P, false, Depth + 1) == false)
+           return false;
+      }
+      if (installed == false && Install(Pkg,FileNames[Pkg->ID]) == false)
+        return false;
       for (PkgIterator P = Pkg.Group().PackageList();
-         P.end() == false; P = Pkg.Group().NextPkg(P))
+          P.end() == false; P = Pkg.Group().NextPkg(P))
       {
-         if (Pkg == P || List->IsFlag(P,pkgOrderList::UnPacked) == true ||
-              Cache[P].InstallVer == 0 || (P.CurrentVer() == Cache[P].InstallVer &&
-               (Cache[Pkg].iFlags & pkgDepCache::ReInstall) != pkgDepCache::ReInstall))
-          continue;
-          SmartUnPack(P, false, Depth + 1);
+        if (P->CurrentVer != 0 || P == Pkg || List->IsFlag(P,pkgOrderList::UnPacked) == true ||
+            Cache[P].InstallVer == 0 || (P.CurrentVer() == Cache[P].InstallVer &&
+             (Cache[Pkg].iFlags & pkgDepCache::ReInstall) != pkgDepCache::ReInstall))
+           continue;
+        if (SmartUnPack(P, false, Depth + 1) == false)
+           return false;
       }
-
-   if(Install(Pkg,FileNames[Pkg->ID]) == false)
+   }
+   else if (Install(Pkg,FileNames[Pkg->ID]) == false)
       return false;
 
    if (Immediate == true) {
@@ -782,7 +807,7 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall()
       clog << "Done ordering" << endl;
 
    bool DoneSomething = false;
-   for (pkgOrderList::iterator I = List->begin(); I != List->end(); I++)
+   for (pkgOrderList::iterator I = List->begin(); I != List->end(); ++I)
    {
       PkgIterator Pkg(Cache,*I);
       
@@ -845,7 +870,7 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall()
       return Failed;
 
    // Sanity check
-   for (pkgOrderList::iterator I = List->begin(); I != List->end(); I++)
+   for (pkgOrderList::iterator I = List->begin(); I != List->end(); ++I)
    {
       if (List->IsFlag(*I,pkgOrderList::Configured) == false)
       {
index 38e4e904ed41133ae2feb07b9bdd94fad8584354..0896482718ded11540ea3f33cb8ea53fad41d562 100644 (file)
@@ -20,6 +20,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/pkgcache.h>
 #include <apt-pkg/policy.h>
 #include <apt-pkg/version.h>
 #include <apt-pkg/aptconfiguration.h>
 #include <apt-pkg/macros.h>
 
-#include <apti18n.h>
-    
 #include <string>
 #include <sys/stat.h>
 #include <unistd.h>
-
 #include <ctype.h>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using std::string;
@@ -84,6 +85,8 @@ pkgCache::Header::Header()
    memset(PkgHashTable,0,sizeof(PkgHashTable));
    memset(GrpHashTable,0,sizeof(GrpHashTable));
    memset(Pools,0,sizeof(Pools));
+
+   CacheFileSize = 0;
 }
                                                                        /*}}}*/
 // Cache::Header::CheckSizes - Check if the two headers have same *sz  /*{{{*/
@@ -155,6 +158,9 @@ bool pkgCache::ReMap(bool const &Errorchecks)
        HeaderP->CheckSizes(DefHeader) == false)
       return _error->Error(_("The package cache file is an incompatible version"));
 
+   if (Map.Size() < HeaderP->CacheFileSize)
+      return _error->Error(_("The package cache file is corrupted, it is too small"));
+
    // Locate our VS..
    if (HeaderP->VerSysName == 0 ||
        (VS = pkgVersioningSystem::GetVS(StrP + HeaderP->VerSysName)) == 0)
@@ -175,7 +181,7 @@ bool pkgCache::ReMap(bool const &Errorchecks)
 unsigned long pkgCache::sHash(const string &Str) const
 {
    unsigned long Hash = 0;
-   for (string::const_iterator I = Str.begin(); I != Str.end(); I++)
+   for (string::const_iterator I = Str.begin(); I != Str.end(); ++I)
       Hash = 5*Hash + tolower_ascii(*I);
    return Hash % _count(HeaderP->PkgHashTable);
 }
@@ -183,7 +189,7 @@ unsigned long pkgCache::sHash(const string &Str) const
 unsigned long pkgCache::sHash(const char *Str) const
 {
    unsigned long Hash = 0;
-   for (const char *I = Str; *I != 0; I++)
+   for (const char *I = Str; *I != 0; ++I)
       Hash = 5*Hash + tolower_ascii(*I);
    return Hash % _count(HeaderP->PkgHashTable);
 }
@@ -569,7 +575,7 @@ bool pkgCache::DepIterator::SmartTargetPkg(PkgIterator &Result) const
       virtual package libc-dev which is provided by libc5-dev and libc6-dev
       we must ignore libc5-dev when considering the provides list. */ 
    PrvIterator PStart = Result.ProvidesList();
-   for (; PStart.end() != true && PStart.OwnerPkg() == ParentPkg(); PStart++);
+   for (; PStart.end() != true && PStart.OwnerPkg() == ParentPkg(); ++PStart);
 
    // Nothing but indirect self provides
    if (PStart.end() == true)
@@ -577,7 +583,7 @@ bool pkgCache::DepIterator::SmartTargetPkg(PkgIterator &Result) const
    
    // Check for single packages in the provides list
    PrvIterator P = PStart;
-   for (; P.end() != true; P++)
+   for (; P.end() != true; ++P)
    {
       // Skip over self provides
       if (P.OwnerPkg() == ParentPkg())
@@ -611,7 +617,7 @@ pkgCache::Version **pkgCache::DepIterator::AllTargets() const
       PkgIterator DPkg = TargetPkg();
 
       // Walk along the actual package providing versions
-      for (VerIterator I = DPkg.VersionList(); I.end() == false; I++)
+      for (VerIterator I = DPkg.VersionList(); I.end() == false; ++I)
       {
         if (Owner->VS->CheckDep(I.VerStr(),S->CompareOp,TargetVer()) == false)
            continue;
@@ -626,13 +632,13 @@ pkgCache::Version **pkgCache::DepIterator::AllTargets() const
       }
       
       // Follow all provides
-      for (PrvIterator I = DPkg.ProvidesList(); I.end() == false; I++)
+      for (PrvIterator I = DPkg.ProvidesList(); I.end() == false; ++I)
       {
         if (Owner->VS->CheckDep(I.ProvideVersion(),S->CompareOp,TargetVer()) == false)
            continue;
         
         if (IsNegative() == true &&
-            ParentPkg() == I.OwnerPkg())
+            ParentPkg()->Group == I.OwnerPkg()->Group)
            continue;
         
         Size++;
@@ -717,7 +723,7 @@ int pkgCache::VerIterator::CompareVer(const VerIterator &B) const
    /* Start at A and look for B. If B is found then A > B otherwise
       B was before A so A < B */
    VerIterator I = *this;
-   for (;I.end() == false; I++)
+   for (;I.end() == false; ++I)
       if (I == B)
         return 1;
    return -1;
@@ -729,7 +735,7 @@ int pkgCache::VerIterator::CompareVer(const VerIterator &B) const
 bool pkgCache::VerIterator::Downloadable() const
 {
    VerFileIterator Files = FileList();
-   for (; Files.end() == false; Files++)
+   for (; Files.end() == false; ++Files)
       if ((Files.File()->Flags & pkgCache::Flag::NotSource) != pkgCache::Flag::NotSource)
         return true;
    return false;
@@ -742,16 +748,13 @@ bool pkgCache::VerIterator::Downloadable() const
 bool pkgCache::VerIterator::Automatic() const
 {
    VerFileIterator Files = FileList();
-   for (; Files.end() == false; Files++)
+   for (; Files.end() == false; ++Files)
       // Do not check ButAutomaticUpgrades here as it is kind of automatic…
       if ((Files.File()->Flags & pkgCache::Flag::NotAutomatic) != pkgCache::Flag::NotAutomatic)
         return true;
    return false;
 }
                                                                        /*}}}*/
-// VerIterator::Pseudo - deprecated no-op method                       /*{{{*/
-bool pkgCache::VerIterator::Pseudo() const { return false; }
-                                                                       /*}}}*/
 // VerIterator::NewestFile - Return the newest file version relation   /*{{{*/
 // ---------------------------------------------------------------------
 /* This looks at the version numbers associated with all of the sources
@@ -760,7 +763,7 @@ pkgCache::VerFileIterator pkgCache::VerIterator::NewestFile() const
 {
    VerFileIterator Files = FileList();
    VerFileIterator Highest = Files;
-   for (; Files.end() == false; Files++)
+   for (; Files.end() == false; ++Files)
    {
       if (Owner->VS->CmpReleaseVer(Files.File().Version(),Highest.File().Version()) > 0)
         Highest = Files;
@@ -777,7 +780,7 @@ string pkgCache::VerIterator::RelStr() const
 {
    bool First = true;
    string Res;
-   for (pkgCache::VerFileIterator I = this->FileList(); I.end() == false; I++)
+   for (pkgCache::VerFileIterator I = this->FileList(); I.end() == false; ++I)
    {
       // Do not print 'not source' entries'
       pkgCache::PkgFileIterator File = I.File();
@@ -786,7 +789,7 @@ string pkgCache::VerIterator::RelStr() const
 
       // See if we have already printed this out..
       bool Seen = false;
-      for (pkgCache::VerFileIterator J = this->FileList(); I != J; J++)
+      for (pkgCache::VerFileIterator J = this->FileList(); I != J; ++J)
       {
         pkgCache::PkgFileIterator File2 = J.File();
         if (File2->Label == 0 || File->Label == 0)
@@ -887,7 +890,7 @@ pkgCache::DescIterator pkgCache::VerIterator::TranslatedDescription() const
 {
    std::vector<string> const lang = APT::Configuration::getLanguages();
    for (std::vector<string>::const_iterator l = lang.begin();
-       l != lang.end(); l++)
+       l != lang.end(); ++l)
    {
       pkgCache::DescIterator Desc = DescriptionList();
       for (; Desc.end() == false; ++Desc)
index 1b174372481f0a1a7a43a4ce1fb24c3f7a4d29de..87912aead18ee59ad8114793c819a3dfdd5bc3d1 100644 (file)
@@ -314,6 +314,9 @@ struct pkgCache::Header
    map_ptrloc PkgHashTable[2*1048];
    map_ptrloc GrpHashTable[2*1048];
 
+   /** \brief Size of the complete cache file */
+   unsigned long  CacheFileSize;
+
    bool CheckSizes(Header &Against) const;
    Header();
 };
@@ -500,15 +503,20 @@ struct pkgCache::Version
    map_ptrloc VerStr;            // StringItem
    /** \brief section this version is filled in */
    map_ptrloc Section;           // StringItem
+
+   /** \brief Multi-Arch capabilities of a package version */
+   enum VerMultiArch { None = 0, /*!< is the default and doesn't trigger special behaviour */
+                      All = (1<<0), /*!< will cause that Ver.Arch() will report "all" */
+                      Foreign = (1<<1), /*!< can satisfy dependencies in another architecture */
+                      Same = (1<<2), /*!< can be co-installed with itself from other architectures */
+                      Allowed = (1<<3), /*!< other packages are allowed to depend on thispkg:any */
+                      AllForeign = All | Foreign,
+                      AllAllowed = All | Allowed };
    /** \brief stores the MultiArch capabilities of this version
 
-       None is the default and doesn't trigger special behaviour,
-       Foreign means that this version can fulfill dependencies even
-       if it is built for another architecture as the requester.
-       Same indicates that builds for different architectures can
-       be co-installed on the system */
-   /* FIXME: A bitflag would be better with the next abibreak… */
-   enum {None, All, Foreign, Same, Allowed, AllForeign, AllAllowed} MultiArch;
+       Flags used are defined in pkgCache::Version::VerMultiArch
+   */
+   unsigned char MultiArch;
 
    /** \brief references all the PackageFile's that this version came from
 
index 9820fde81996c413494970f74f4eb57834b8cba9..a39aa9f5969b929110976ac1eff7ec5876735dca 100644 (file)
@@ -11,6 +11,7 @@
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
 #define APT_COMPATIBILITY 986
+#include <config.h>
 
 #include <apt-pkg/pkgcachegen.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/sptr.h>
 #include <apt-pkg/pkgsystem.h>
 #include <apt-pkg/macros.h>
-
 #include <apt-pkg/tagfile.h>
 
-#include <apti18n.h>
-
 #include <vector>
-
 #include <sys/stat.h>
 #include <unistd.h>
 #include <errno.h>
 #include <stdio.h>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 typedef vector<pkgIndexFile *>::iterator FileIterator;
 template <typename Iter> std::vector<Iter*> pkgCacheGenerator::Dynamic<Iter>::toReMap;
@@ -98,6 +97,7 @@ pkgCacheGenerator::~pkgCacheGenerator()
       return;
    
    Cache.HeaderP->Dirty = false;
+   Cache.HeaderP->CacheFileSize = Map.Size();
    Map.Sync(0,sizeof(pkgCache::Header));
 }
                                                                        /*}}}*/
@@ -105,6 +105,9 @@ void pkgCacheGenerator::ReMap(void const * const oldMap, void const * const newM
    if (oldMap == newMap)
       return;
 
+   if (_config->FindB("Debug::pkgCacheGen", false))
+      std::clog << "Remaping from " << oldMap << " to " << newMap << std::endl;
+
    Cache.ReMap(false);
 
    CurrentFile += (pkgCache::PackageFile*) newMap - (pkgCache::PackageFile*) oldMap;
@@ -217,7 +220,7 @@ bool pkgCacheGenerator::MergeList(ListParser &List,
 
            // don't add a new description if we have one for the given
            // md5 && language
-           for ( ; Desc.end() == false; Desc++)
+           for ( ; Desc.end() == false; ++Desc)
               if (MD5SumValue(Desc.md5()) == CurMd5 && 
                   Desc.LanguageCode() == List.DescriptionLanguage())
                  duplicate=true;
@@ -226,7 +229,7 @@ bool pkgCacheGenerator::MergeList(ListParser &List,
            
            for (Desc = Ver.DescriptionList();
                 Desc.end() == false;
-                LastDesc = &Desc->NextDesc, Desc++)
+                LastDesc = &Desc->NextDesc, ++Desc)
            {
               if (MD5SumValue(Desc.md5()) == CurMd5) 
                {
@@ -392,7 +395,7 @@ bool pkgCacheGenerator::MergeFileProvides(ListParser &List)
       unsigned long Hash = List.VersionHash();
       pkgCache::VerIterator Ver = Pkg.VersionList();
       Dynamic<pkgCache::VerIterator> DynVer(Ver);
-      for (; Ver.end() == false; Ver++)
+      for (; Ver.end() == false; ++Ver)
       {
         if (Ver->Hash == Hash && Version.c_str() == Ver.VerStr())
         {
@@ -508,7 +511,7 @@ bool pkgCacheGenerator::NewFileVer(pkgCache::VerIterator &Ver,
    
    // Link it to the end of the list
    map_ptrloc *Last = &Ver->FileList;
-   for (pkgCache::VerFileIterator V = Ver.FileList(); V.end() == false; V++)
+   for (pkgCache::VerFileIterator V = Ver.FileList(); V.end() == false; ++V)
       Last = &V->NextFile;
    VF->NextFile = *Last;
    *Last = VF.Index();
@@ -565,7 +568,7 @@ bool pkgCacheGenerator::NewFileDesc(pkgCache::DescIterator &Desc,
 
    // Link it to the end of the list
    map_ptrloc *Last = &Desc->FileList;
-   for (pkgCache::DescFileIterator D = Desc.FileList(); D.end() == false; D++)
+   for (pkgCache::DescFileIterator D = Desc.FileList(); D.end() == false; ++D)
       Last = &D->NextFile;
 
    DF->NextFile = *Last;
@@ -620,7 +623,7 @@ bool pkgCacheGenerator::FinishCache(OpProgress *Progress)
       // Create Conflicts in between the group
       pkgCache::GrpIterator G = GetCache().GrpBegin();
       Dynamic<pkgCache::GrpIterator> DynG(G);
-      for (; G.end() != true; G++)
+      for (; G.end() != true; ++G)
       {
         string const PkgName = G.Name();
         pkgCache::PkgIterator P = G.PackageList();
@@ -631,9 +634,11 @@ bool pkgCacheGenerator::FinishCache(OpProgress *Progress)
            Dynamic<pkgCache::PkgIterator> DynallPkg(allPkg);
            pkgCache::VerIterator V = P.VersionList();
            Dynamic<pkgCache::VerIterator> DynV(V);
-           for (; V.end() != true; V++)
+           for (; V.end() != true; ++V)
            {
-              char const * const Arch = P.Arch();
+               // copy P.Arch() into a string here as a cache remap
+               // in NewDepends() later may alter the pointer location
+              string Arch = P.Arch() == NULL ? "" : P.Arch();
               map_ptrloc *OldDepLast = NULL;
               /* MultiArch handling introduces a lot of implicit Dependencies:
                - MultiArch: same → Co-Installable if they have the same version
@@ -684,7 +689,7 @@ bool pkgCacheGenerator::NewDepends(pkgCache::PkgIterator &Pkg,
                                   string const &Version,
                                   unsigned int const &Op,
                                   unsigned int const &Type,
-                                  map_ptrloc *OldDepLast)
+                                  map_ptrloc* &OldDepLast)
 {
    void const * const oldMap = Map.Data();
    // Get a structure
@@ -723,7 +728,7 @@ bool pkgCacheGenerator::NewDepends(pkgCache::PkgIterator &Pkg,
    if (OldDepLast == NULL)
    {
       OldDepLast = &Ver->DependsList;
-      for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false; D++)
+      for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false; ++D)
         OldDepLast = &D->NextDepends;
    } else if (oldMap != Map.Data())
       OldDepLast += (map_ptrloc*) Map.Data() - (map_ptrloc*) oldMap;
@@ -915,8 +920,11 @@ unsigned long pkgCacheGenerator::WriteUniqString(const char *S,
 /* This just verifies that each file in the list of index files exists,
    has matching attributes with the cache and the cache does not have
    any extra files. */
-static bool CheckValidity(const string &CacheFile, FileIterator Start, 
-                          FileIterator End,MMap **OutMap = 0)
+static bool CheckValidity(const string &CacheFile, 
+                          pkgSourceList &List,
+                          FileIterator Start, 
+                          FileIterator End,
+                          MMap **OutMap = 0)
 {
    bool const Debug = _config->FindB("Debug::pkgCacheGen", false);
    // No file, certainly invalid
@@ -927,6 +935,13 @@ static bool CheckValidity(const string &CacheFile, FileIterator Start,
       return false;
    }
 
+   if (List.GetLastModifiedTime() > GetModificationTime(CacheFile))
+   {
+      if (Debug == true)
+        std::clog << "sources.list is newer than the cache" << std::endl;
+      return false;
+   }
+
    // Map it
    FileFd CacheF(CacheFile,FileFd::ReadOnly);
    SPtr<MMap> Map = new MMap(CacheF,0);
@@ -943,7 +958,7 @@ static bool CheckValidity(const string &CacheFile, FileIterator Start,
       verify the IMS data and check that it is on the disk too.. */
    SPtrArray<bool> Visited = new bool[Cache.HeaderP->PackageFileCount];
    memset(Visited,0,sizeof(*Visited)*Cache.HeaderP->PackageFileCount);
-   for (; Start != End; Start++)
+   for (; Start != End; ++Start)
    {
       if (Debug == true)
         std::clog << "Checking PkgFile " << (*Start)->Describe() << ": ";
@@ -1010,7 +1025,7 @@ static bool CheckValidity(const string &CacheFile, FileIterator Start,
 static unsigned long ComputeSize(FileIterator Start,FileIterator End)
 {
    unsigned long TotalSize = 0;
-   for (; Start != End; Start++)
+   for (; Start != End; ++Start)
    {
       if ((*Start)->HasPackages() == false)
         continue;      
@@ -1028,7 +1043,7 @@ static bool BuildCache(pkgCacheGenerator &Gen,
                       FileIterator Start, FileIterator End)
 {
    FileIterator I;
-   for (I = Start; I != End; I++)
+   for (I = Start; I != End; ++I)
    {
       if ((*I)->HasPackages() == false)
         continue;
@@ -1058,7 +1073,7 @@ static bool BuildCache(pkgCacheGenerator &Gen,
         Progress->Done();
       TotalSize = ComputeSize(Start, End);
       CurrentSize = 0;
-      for (I = Start; I != End; I++)
+      for (I = Start; I != End; ++I)
       {
         unsigned long Size = (*I)->Size();
         if (Progress != NULL)
@@ -1105,12 +1120,12 @@ bool pkgCacheGenerator::MakeStatusCache(pkgSourceList &List,OpProgress *Progress
    vector<pkgIndexFile *> Files;
    for (vector<metaIndex *>::const_iterator i = List.begin();
         i != List.end();
-        i++)
+        ++i)
    {
       vector <pkgIndexFile *> *Indexes = (*i)->GetIndexFiles();
       for (vector<pkgIndexFile *>::const_iterator j = Indexes->begin();
           j != Indexes->end();
-          j++)
+          ++j)
          Files.push_back (*j);
    }
    
@@ -1152,7 +1167,7 @@ bool pkgCacheGenerator::MakeStatusCache(pkgSourceList &List,OpProgress *Progress
       Progress->OverallProgress(0,1,1,_("Reading package lists"));
 
    // Cache is OK, Fin.
-   if (CheckValidity(CacheFile,Files.begin(),Files.end(),OutMap) == true)
+   if (CheckValidity(CacheFile, List, Files.begin(),Files.end(),OutMap) == true)
    {
       if (Progress != NULL)
         Progress->OverallProgress(1,1,1,_("Reading package lists"));
@@ -1169,16 +1184,32 @@ bool pkgCacheGenerator::MakeStatusCache(pkgSourceList &List,OpProgress *Progress
    SPtr<DynamicMMap> Map;
    if (Writeable == true && CacheFile.empty() == false)
    {
+      _error->PushToStack();
       unlink(CacheFile.c_str());
       CacheF = new FileFd(CacheFile,FileFd::WriteAtomic);
       fchmod(CacheF->Fd(),0644);
       Map = CreateDynamicMMap(CacheF, MMap::Public);
       if (_error->PendingError() == true)
-        return false;
-      if (Debug == true)
+      {
+        delete CacheF.UnGuard();
+        delete Map.UnGuard();
+        if (Debug == true)
+           std::clog << "Open filebased MMap FAILED" << std::endl;
+        Writeable = false;
+        if (AllowMem == false)
+        {
+           _error->MergeWithStack();
+           return false;
+        }
+        _error->RevertToStack();
+      }
+      else if (Debug == true)
+      {
+        _error->MergeWithStack();
         std::clog << "Open filebased MMap" << std::endl;
+      }
    }
-   else
+   if (Writeable == false || CacheFile.empty() == true)
    {
       // Just build it in memory..
       Map = CreateDynamicMMap(NULL);
@@ -1189,7 +1220,7 @@ bool pkgCacheGenerator::MakeStatusCache(pkgSourceList &List,OpProgress *Progress
    // Lets try the source cache.
    unsigned long CurrentSize = 0;
    unsigned long TotalSize = 0;
-   if (CheckValidity(SrcCacheFile,Files.begin(),
+   if (CheckValidity(SrcCacheFile, List, Files.begin(),
                     Files.begin()+EndOfSource) == true)
    {
       if (Debug == true)
index ff198833a801f9cd601e25980ff5470d303b5128..c260511826ab36dc94472aedc3b66d713d982712 100644 (file)
@@ -75,7 +75,7 @@ class pkgCacheGenerator                                                       /*{{{*/
    bool NewFileDesc(pkgCache::DescIterator &Desc,ListParser &List);
    bool NewDepends(pkgCache::PkgIterator &Pkg, pkgCache::VerIterator &Ver,
                   string const &Version, unsigned int const &Op,
-                  unsigned int const &Type, map_ptrloc *OldDepLast);
+                  unsigned int const &Type, map_ptrloc* &OldDepLast);
    unsigned long NewVersion(pkgCache::VerIterator &Ver,const string &VerStr,unsigned long Next);
    map_ptrloc NewDescription(pkgCache::DescIterator &Desc,const string &Lang,const MD5SumValue &md5sum,map_ptrloc Next);
 
index e506de73a63863a6e2d60e1737be8249d29f8198..7709f133a9148f1d672144ef35fff249bcb33286 100644 (file)
@@ -9,12 +9,14 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/pkgrecords.h>
 #include <apt-pkg/indexfile.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/configuration.h>
-    
-#include <apti18n.h>   
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 // Records::pkgRecords - Constructor                                   /*{{{*/
@@ -24,7 +26,7 @@ pkgRecords::pkgRecords(pkgCache &Cache) : Cache(Cache),
   Files(Cache.HeaderP->PackageFileCount)
 {
    for (pkgCache::PkgFileIterator I = Cache.FileBegin();
-        I.end() == false; I++)
+        I.end() == false; ++I)
    {
       const pkgIndexFile::Type *Type = pkgIndexFile::Type::GetType(I.IndexType());
       if (Type == 0)
index c2c98188a7e12fce76b512c767e56f1c9b256c21..8741533b99dcc0ebeca9db63d5894037cfdd546b 100644 (file)
@@ -19,7 +19,6 @@
 
 
 #include <apt-pkg/pkgcache.h>
-#include <apt-pkg/fileutl.h>
 #include <vector>
 
 class pkgRecords                                                       /*{{{*/
@@ -28,12 +27,13 @@ class pkgRecords                                                    /*{{{*/
    class Parser;
    
    private:
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
    
    pkgCache &Cache;
    std::vector<Parser *>Files;
 
-   public:
-
+    public:
    // Lookup function
    Parser &Lookup(pkgCache::VerFileIterator const &Ver);
    Parser &Lookup(pkgCache::DescFileIterator const &Desc);
@@ -58,6 +58,7 @@ class pkgRecords::Parser                                              /*{{{*/
    virtual string MD5Hash() {return string();};
    virtual string SHA1Hash() {return string();};
    virtual string SHA256Hash() {return string();};
+   virtual string SHA512Hash() {return string();};
    virtual string SourcePkg() {return string();};
    virtual string SourceVer() {return string();};
 
@@ -67,7 +68,10 @@ class pkgRecords::Parser                                             /*{{{*/
    virtual string LongDesc() {return string();};
    virtual string Name() {return string();};
    virtual string Homepage() {return string();}
-   
+
+   // An arbitrary custom field
+   virtual string RecordField(const char *fieldName) { return string();};
+
    // The record in binary form
    virtual void GetRec(const char *&Start,const char *&Stop) {Start = Stop = 0;};
    
index 6dd2d3ee4df348eab8e2e05c3f3d5beff22126be..f61c140facec1926a4f27a472b1866ac824abdee 100644 (file)
@@ -10,6 +10,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/pkgsystem.h>
 #include <apt-pkg/policy.h>
 #include <cassert>
index bd213e0ce59f0a47b8a0fba056652efe7b381ebb..e6c44ebe27e5e075553b2505020dc025383581f9 100644 (file)
@@ -23,6 +23,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/policy.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/tagfile.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/sptr.h>
 
-#include <apti18n.h>
-
 #include <iostream>
 #include <sstream>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
@@ -56,8 +58,22 @@ pkgPolicy::pkgPolicy(pkgCache *Owner) : Pins(0), PFPriority(0), Cache(Owner)
    // The config file has a master override.
    string DefRel = _config->Find("APT::Default-Release");
    if (DefRel.empty() == false)
-      CreatePin(pkgVersionMatch::Release,"",DefRel,990);
-      
+   {
+      bool found = false;
+      // FIXME: make ExpressionMatches static to use it here easily
+      pkgVersionMatch vm("", pkgVersionMatch::None);
+      for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F != Cache->FileEnd(); ++F)
+      {
+        if ((F->Archive != 0 && vm.ExpressionMatches(DefRel, F.Archive()) == true) ||
+            (F->Codename != 0 && vm.ExpressionMatches(DefRel, F.Codename()) == true) ||
+            (F->Version != 0 && vm.ExpressionMatches(DefRel, F.Version()) == true))
+           found = true;
+      }
+      if (found == false)
+        _error->Error(_("The value '%s' is invalid for APT::Default-Release as such a release is not available in the sources"), DefRel.c_str());
+      else
+        CreatePin(pkgVersionMatch::Release,"",DefRel,990);
+   }
    InitDefaults();
 }
                                                                        /*}}}*/
@@ -67,7 +83,7 @@ pkgPolicy::pkgPolicy(pkgCache *Owner) : Pins(0), PFPriority(0), Cache(Owner)
 bool pkgPolicy::InitDefaults()
 {   
    // Initialize the priorities based on the status of the package file
-   for (pkgCache::PkgFileIterator I = Cache->FileBegin(); I != Cache->FileEnd(); I++)
+   for (pkgCache::PkgFileIterator I = Cache->FileBegin(); I != Cache->FileEnd(); ++I)
    {
       PFPriority[I->ID] = 500;
       if ((I->Flags & pkgCache::Flag::NotSource) == pkgCache::Flag::NotSource)
@@ -84,10 +100,10 @@ bool pkgPolicy::InitDefaults()
    signed Cur = 989;
    StatusOverride = false;
    for (vector<Pin>::const_iterator I = Defaults.begin(); I != Defaults.end();
-       I++, Cur--)
+       ++I, --Cur)
    {
       pkgVersionMatch Match(I->Data,I->Type);
-      for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F != Cache->FileEnd(); F++)
+      for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F != Cache->FileEnd(); ++F)
       {
         if (Match.FileMatch(F) == true && Fixed[F->ID] == false)
         {
@@ -108,7 +124,7 @@ bool pkgPolicy::InitDefaults()
    }
 
    if (_config->FindB("Debug::pkgPolicy",false) == true)
-      for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F != Cache->FileEnd(); F++)
+      for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F != Cache->FileEnd(); ++F)
         std::clog << "Prio of " << F.FileName() << ' ' << PFPriority[F->ID] << std::endl; 
    
    return true;   
@@ -148,12 +164,12 @@ pkgCache::VerIterator pkgPolicy::GetCandidateVer(pkgCache::PkgIterator const &Pk
       tracks the default when the default is taken away, and a permanent
       pin that stays at that setting.
     */
-   for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() == false; Ver++)
+   for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() == false; ++Ver)
    {
       /* Lets see if this version is the installed version */
       bool instVer = (Pkg.CurrentVer() == Ver);
 
-      for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false; VF++)
+      for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false; ++VF)
       {
         /* If this is the status file, and the current version is not the
            version in the status file (ie it is not installed, or somesuch)
@@ -305,6 +321,10 @@ signed short pkgPolicy::GetPriority(pkgCache::PkgIterator const &Pkg)
    }
    
    return 0;
+}
+signed short pkgPolicy::GetPriority(pkgCache::PkgFileIterator const &File)
+{
+   return PFPriority[File->ID];
 }
                                                                        /*}}}*/
 // PreferenceSection class - Overriding the default TrimRecord method  /*{{{*/
@@ -342,7 +362,7 @@ bool ReadPinDir(pkgPolicy &Plcy,string Dir)
    vector<string> const List = GetListOfFilesInDir(Dir, "pref", true, true);
 
    // Read the files
-   for (vector<string>::const_iterator I = List.begin(); I != List.end(); I++)
+   for (vector<string>::const_iterator I = List.begin(); I != List.end(); ++I)
       if (ReadPinFile(Plcy, *I) == false)
         return false;
    return true;
index a5e6c6048020ba2c4c89d6c24832a726a68179fa..92d32728f7a27392b99f4d90b9ea89e88f954eeb 100644 (file)
@@ -70,14 +70,13 @@ class pkgPolicy : public pkgDepCache::Policy
    // Things for manipulating pins
    void CreatePin(pkgVersionMatch::MatchType Type,string Pkg,
                  string Data,signed short Priority);
-   inline signed short GetPriority(pkgCache::PkgFileIterator const &File) 
-       {return PFPriority[File->ID];};
-   signed short GetPriority(pkgCache::PkgIterator const &Pkg);
    pkgCache::VerIterator GetMatch(pkgCache::PkgIterator const &Pkg);
 
    // Things for the cache interface.
    virtual pkgCache::VerIterator GetCandidateVer(pkgCache::PkgIterator const &Pkg);
-   virtual bool IsImportantDep(pkgCache::DepIterator const &Dep) {return pkgDepCache::Policy::IsImportantDep(Dep);};
+   virtual signed short GetPriority(pkgCache::PkgIterator const &Pkg);
+   virtual signed short GetPriority(pkgCache::PkgFileIterator const &File);
+
    bool InitDefaults();
    
    pkgPolicy(pkgCache *Owner);
index 851eefdfe7547c1090172685fd74cd3787fabeae..e20ec4704fff8a7387dd9e9c1db3e50d6bf4a25f 100644 (file)
@@ -8,15 +8,17 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/sourcelist.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/configuration.h>
 
-#include <apti18n.h>
-
 #include <fstream>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
@@ -173,7 +175,7 @@ pkgSourceList::pkgSourceList(string File)
 /* */
 pkgSourceList::~pkgSourceList()
 {
-   for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++)
+   for (const_iterator I = SrcList.begin(); I != SrcList.end(); ++I)
       delete *I;
 }
                                                                        /*}}}*/
@@ -218,7 +220,7 @@ bool pkgSourceList::ReadMainList()
 /* */
 void pkgSourceList::Reset()
 {
-   for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++)
+   for (const_iterator I = SrcList.begin(); I != SrcList.end(); ++I)
       delete *I;
    SrcList.erase(SrcList.begin(),SrcList.end());
 }
@@ -296,11 +298,11 @@ bool pkgSourceList::ReadAppend(string File)
 bool pkgSourceList::FindIndex(pkgCache::PkgFileIterator File,
                              pkgIndexFile *&Found) const
 {
-   for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++)
+   for (const_iterator I = SrcList.begin(); I != SrcList.end(); ++I)
    {
       vector<pkgIndexFile *> *Indexes = (*I)->GetIndexFiles();
       for (vector<pkgIndexFile *>::const_iterator J = Indexes->begin();
-          J != Indexes->end(); J++)
+          J != Indexes->end(); ++J)
       {
          if ((*J)->FindInCache(*File.Cache()) == File)
          {
@@ -318,7 +320,7 @@ bool pkgSourceList::FindIndex(pkgCache::PkgFileIterator File,
 /* */
 bool pkgSourceList::GetIndexes(pkgAcquire *Owner, bool GetAll) const
 {
-   for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++)
+   for (const_iterator I = SrcList.begin(); I != SrcList.end(); ++I)
       if ((*I)->GetIndexes(Owner,GetAll) == false)
         return false;
    return true;
@@ -334,11 +336,33 @@ bool pkgSourceList::ReadSourceDir(string Dir)
    vector<string> const List = GetListOfFilesInDir(Dir, "list", true);
 
    // Read the files
-   for (vector<string>::const_iterator I = List.begin(); I != List.end(); I++)
+   for (vector<string>::const_iterator I = List.begin(); I != List.end(); ++I)
       if (ReadAppend(*I) == false)
         return false;
    return true;
 
 }
                                                                        /*}}}*/
+// GetLastModified()                                           /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+time_t pkgSourceList::GetLastModifiedTime()
+{
+   vector<string> List;
+
+   string Main = _config->FindFile("Dir::Etc::sourcelist");
+   string Parts = _config->FindDir("Dir::Etc::sourceparts");
+
+   // go over the parts
+   if (DirectoryExists(Parts) == true)
+      List = GetListOfFilesInDir(Parts, "list", true);
+
+   // calculate the time
+   time_t mtime_sources = GetModificationTime(Main);
+   for (vector<string>::const_iterator I = List.begin(); I != List.end(); ++I)
+      mtime_sources = std::max(mtime_sources, GetModificationTime(*I));
+
+   return mtime_sources;
+}
+                                                                       /*}}}*/
 
index e15314a5e796fbd87a7eb1ded8101e6790bbdc8e..7b473ee64b453187a4f72a91267bfb5f586b7451 100644 (file)
@@ -92,6 +92,9 @@ class pkgSourceList
                  pkgIndexFile *&Found) const;
    bool GetIndexes(pkgAcquire *Owner, bool GetAll=false) const;
    
+   // query last-modified time
+   time_t GetLastModifiedTime();
+
    pkgSourceList();
    pkgSourceList(string File);
    ~pkgSourceList();      
index 46a02b55c3592abb483d0a4274918e4eff75c604..8c1de2ea5da1a3e7d25860713c3b803b5a5fe949 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/srcrecords.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/sourcelist.h>
 #include <apt-pkg/strutl.h>
-    
-#include <apti18n.h>    
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 // SrcRecords::pkgSrcRecords - Constructor                             /*{{{*/
 /* Open all the source index files */
 pkgSrcRecords::pkgSrcRecords(pkgSourceList &List) : Files(0), Current(0)
 {
-   for (pkgSourceList::const_iterator I = List.begin(); I != List.end(); I++)
+   for (pkgSourceList::const_iterator I = List.begin(); I != List.end(); ++I)
    {
       vector<pkgIndexFile *> *Indexes = (*I)->GetIndexFiles();
       for (vector<pkgIndexFile *>::const_iterator J = Indexes->begin();
-          J != Indexes->end(); J++)
+          J != Indexes->end(); ++J)
       {
          Parser* P = (*J)->CreateSrcParser();
         if (_error->PendingError() == true)
@@ -66,7 +68,7 @@ bool pkgSrcRecords::Restart()
 {
    Current = Files.begin();
    for (vector<Parser*>::iterator I = Files.begin();
-        I != Files.end(); I++)
+        I != Files.end(); ++I)
       (*I)->Restart();
    
    return true;
@@ -89,7 +91,7 @@ pkgSrcRecords::Parser *pkgSrcRecords::Find(const char *Package,bool const &SrcOn
       {
         if (_error->PendingError() == true)
            return 0;
-        Current++;
+        ++Current;
         if (Current == Files.end())
            return 0;
       }
@@ -107,7 +109,7 @@ pkgSrcRecords::Parser *pkgSrcRecords::Find(const char *Package,bool const &SrcOn
       
       // Check for a binary hit
       const char **I = (*Current)->Binaries();
-      for (; I != 0 && *I != 0; I++)
+      for (; I != 0 && *I != 0; ++I)
         if (strcmp(Package,*I) == 0)
            return *Current;
    }
index a495338648f324de010f985d6c60f67eb965f84c..8a78d77112258eaddf567ab45c377973313d67ae 100644 (file)
@@ -79,6 +79,8 @@ class pkgSrcRecords
    };
    
    private:
+   /** \brief dpointer placeholder (for later in case we need it) */
+   void *d;
    
    // The list of files and the current parser pointer
    vector<Parser*> Files;
@@ -93,7 +95,7 @@ class pkgSrcRecords
    Parser *Find(const char *Package,bool const &SrcOnly = false);
    
    pkgSrcRecords(pkgSourceList &List);
-   ~pkgSrcRecords();
+   virtual ~pkgSrcRecords();
 };
 
 #endif
index 4a2f3f7e6ed76e3063f64142bb88ff0d1d6320bf..418e6bed81569d4e10e536d6d0bc0fd5c719587a 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/tagfile.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/strutl.h>
 
-#include <apti18n.h>
-    
 #include <string>
 #include <stdio.h>
 #include <ctype.h>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using std::string;
 
+class pkgTagFilePrivate
+{
+public:
+   pkgTagFilePrivate(FileFd *pFd, unsigned long long Size) : Fd(*pFd), Size(Size)
+   {
+   }
+   FileFd &Fd;
+   char *Buffer;
+   char *Start;
+   char *End;
+   bool Done;
+   unsigned long long iOffset;
+   unsigned long long Size;
+};
+
 // TagFile::pkgTagFile - Constructor                                   /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-pkgTagFile::pkgTagFile(FileFd *pFd,unsigned long Size) :
-     Fd(*pFd),
-     Size(Size)
+pkgTagFile::pkgTagFile(FileFd *pFd,unsigned long long Size)
 {
-   if (Fd.IsOpen() == false)
+   d = new pkgTagFilePrivate(pFd, Size);
+
+   if (d->Fd.IsOpen() == false)
    {
-      Buffer = 0;
-      Start = End = Buffer = 0;
-      Done = true;
-      iOffset = 0;
+      d->Start = d->End = d->Buffer = 0;
+      d->Done = true;
+      d->iOffset = 0;
       return;
    }
    
-   Buffer = new char[Size];
-   Start = End = Buffer;
-   Done = false;
-   iOffset = 0;
+   d->Buffer = new char[Size];
+   d->Start = d->End = d->Buffer;
+   d->Done = false;
+   d->iOffset = 0;
    Fill();
 }
                                                                        /*}}}*/
@@ -52,7 +68,14 @@ pkgTagFile::pkgTagFile(FileFd *pFd,unsigned long Size) :
 /* */
 pkgTagFile::~pkgTagFile()
 {
-   delete [] Buffer;
+   delete [] d->Buffer;
+   delete d;
+}
+                                                                       /*}}}*/
+// TagFile::Offset - Return the current offset in the buffer           /*{{{*/
+unsigned long pkgTagFile::Offset()
+{
+   return d->iOffset;
 }
                                                                        /*}}}*/
 // TagFile::Resize - Resize the internal buffer                                /*{{{*/
@@ -63,22 +86,22 @@ pkgTagFile::~pkgTagFile()
 bool pkgTagFile::Resize()
 {
    char *tmp;
-   unsigned long EndSize = End - Start;
+   unsigned long long EndSize = d->End - d->Start;
 
    // fail is the buffer grows too big
-   if(Size > 1024*1024+1)
+   if(d->Size > 1024*1024+1)
       return false;
 
    // get new buffer and use it
-   tmp = new char[2*Size];
-   memcpy(tmp, Buffer, Size);
-   Size = Size*2;
-   delete [] Buffer;
-   Buffer = tmp;
+   tmp = new char[2*d->Size];
+   memcpy(tmp, d->Buffer, d->Size);
+   d->Size = d->Size*2;
+   delete [] d->Buffer;
+   d->Buffer = tmp;
 
    // update the start/end pointers to the new buffer
-   Start = Buffer;
-   End = Start + EndSize;
+   d->Start = d->Buffer;
+   d->End = d->Start + EndSize;
    return true;
 }
                                                                        /*}}}*/
@@ -90,20 +113,20 @@ bool pkgTagFile::Resize()
  */
 bool pkgTagFile::Step(pkgTagSection &Tag)
 {
-   while (Tag.Scan(Start,End - Start) == false)
+   while (Tag.Scan(d->Start,d->End - d->Start) == false)
    {
       if (Fill() == false)
         return false;
       
-      if(Tag.Scan(Start,End - Start))
+      if(Tag.Scan(d->Start,d->End - d->Start))
         break;
 
       if (Resize() == false)
         return _error->Error(_("Unable to parse package file %s (1)"),
-                                Fd.Name().c_str());
+                              d->Fd.Name().c_str());
    }
-   Start += Tag.size();
-   iOffset += Tag.size();
+   d->Start += Tag.size();
+   d->iOffset += Tag.size();
 
    Tag.Trim();
    return true;
@@ -115,37 +138,37 @@ bool pkgTagFile::Step(pkgTagSection &Tag)
    then fills the rest from the file */
 bool pkgTagFile::Fill()
 {
-   unsigned long EndSize = End - Start;
-   unsigned long Actual = 0;
+   unsigned long long EndSize = d->End - d->Start;
+   unsigned long long Actual = 0;
    
-   memmove(Buffer,Start,EndSize);
-   Start = Buffer;
-   End = Buffer + EndSize;
+   memmove(d->Buffer,d->Start,EndSize);
+   d->Start = d->Buffer;
+   d->End = d->Buffer + EndSize;
    
-   if (Done == false)
+   if (d->Done == false)
    {
       // See if only a bit of the file is left
-      if (Fd.Read(End,Size - (End - Buffer),&Actual) == false)
+      if (d->Fd.Read(d->End, d->Size - (d->End - d->Buffer),&Actual) == false)
         return false;
-      if (Actual != Size - (End - Buffer))
-        Done = true;
-      End += Actual;
+      if (Actual != d->Size - (d->End - d->Buffer))
+        d->Done = true;
+      d->End += Actual;
    }
    
-   if (Done == true)
+   if (d->Done == true)
    {
       if (EndSize <= 3 && Actual == 0)
         return false;
-      if (Size - (End - Buffer) < 4)
+      if (d->Size - (d->End - d->Buffer) < 4)
         return true;
       
       // Append a double new line if one does not exist
       unsigned int LineCount = 0;
-      for (const char *E = End - 1; E - End < 6 && (*E == '\n' || *E == '\r'); E--)
+      for (const char *E = d->End - 1; E - d->End < 6 && (*E == '\n' || *E == '\r'); E--)
         if (*E == '\n')
            LineCount++;
       for (; LineCount < 2; LineCount++)
-        *End++ = '\n';
+        *d->End++ = '\n';
       
       return true;
    }
@@ -157,36 +180,36 @@ bool pkgTagFile::Fill()
 // ---------------------------------------------------------------------
 /* This jumps to a pre-recorded file location and reads the record
    that is there */
-bool pkgTagFile::Jump(pkgTagSection &Tag,unsigned long Offset)
+bool pkgTagFile::Jump(pkgTagSection &Tag,unsigned long long Offset)
 {
    // We are within a buffer space of the next hit..
-   if (Offset >= iOffset && iOffset + (End - Start) > Offset)
+   if (Offset >= d->iOffset && d->iOffset + (d->End - d->Start) > Offset)
    {
-      unsigned long Dist = Offset - iOffset;
-      Start += Dist;
-      iOffset += Dist;
+      unsigned long long Dist = Offset - d->iOffset;
+      d->Start += Dist;
+      d->iOffset += Dist;
       return Step(Tag);
    }
 
    // Reposition and reload..
-   iOffset = Offset;
-   Done = false;
-   if (Fd.Seek(Offset) == false)
+   d->iOffset = Offset;
+   d->Done = false;
+   if (d->Fd.Seek(Offset) == false)
       return false;
-   End = Start = Buffer;
+   d->End = d->Start = d->Buffer;
    
    if (Fill() == false)
       return false;
 
-   if (Tag.Scan(Start,End - Start) == true)
+   if (Tag.Scan(d->Start, d->End - d->Start) == true)
       return true;
    
    // This appends a double new line (for the real eof handling)
    if (Fill() == false)
       return false;
    
-   if (Tag.Scan(Start,End - Start) == false)
-      return _error->Error(_("Unable to parse package file %s (2)"),Fd.Name().c_str());
+   if (Tag.Scan(d->Start, d->End - d->Start) == false)
+      return _error->Error(_("Unable to parse package file %s (2)"),d->Fd.Name().c_str());
    
    return true;
 }
@@ -457,6 +480,7 @@ static const char *iTFRewritePackageOrder[] = {
                           "MD5Sum",
                           "SHA1",
                           "SHA256",
+                          "SHA512",
                            "MSDOS-Filename",   // Obsolete
                           "Description",
                           0};
index 61491aa047adeb5572835cc9f7a9ef0b2931c52b..28f7fcc243e0cd4c9f3f77e33a8c13889fc9d90f 100644 (file)
 
 #include <apt-pkg/fileutl.h>
 #include <stdio.h>
-    
+
 class pkgTagSection
 {
    const char *Section;
-   
    // We have a limit of 256 tags per section.
    unsigned int Indexes[256];
    unsigned int AlphaIndexes[0x100];
-   
    unsigned int TagCount;
+   // dpointer placeholder (for later in case we need it)
+   void *d;
 
    /* This very simple hash function for the last 8 letters gives
       very good performance on the debian package files */
@@ -44,7 +44,6 @@ class pkgTagSection
       return Res & 0xFF;
    }
 
-
    protected:
    const char *Stop;
 
@@ -79,18 +78,14 @@ class pkgTagSection
       Stop = this->Stop;
    };
    
-   pkgTagSection() : Section(0), Stop(0) {};
+   pkgTagSection() : Section(0), TagCount(0), Stop(0) {};
+   virtual ~pkgTagSection() {};
 };
 
+class pkgTagFilePrivate;
 class pkgTagFile
 {
-   FileFd &Fd;
-   char *Buffer;
-   char *Start;
-   char *End;
-   bool Done;
-   unsigned long iOffset;
-   unsigned long Size;
+   pkgTagFilePrivate *d;
 
    bool Fill();
    bool Resize();
@@ -98,11 +93,11 @@ class pkgTagFile
    public:
 
    bool Step(pkgTagSection &Section);
-   inline unsigned long Offset() {return iOffset;};
-   bool Jump(pkgTagSection &Tag,unsigned long Offset);
+   unsigned long Offset();
+   bool Jump(pkgTagSection &Tag,unsigned long long Offset);
 
-   pkgTagFile(FileFd *F,unsigned long Size = 32*1024);
-   ~pkgTagFile();
+   pkgTagFile(FileFd *F,unsigned long long Size = 32*1024);
+   virtual ~pkgTagFile();
 };
 
 /* This is the list of things to rewrite. The rewriter
index 2350afe693f2d1ca3ac47a0f1fcfd7e3f1b4671b..eab6d448fc3ece7e793636c95984a8affbda6381 100644 (file)
@@ -1,3 +1,5 @@
+#include<config.h>
+
 #include <iostream>
 #include <apt-pkg/error.h>
 #include <apt-pkg/vendor.h>
index 48ac12cee286982e2a627babf73e64cb5b34739c..731f11acf52a43bc27c15ff43fca71953e5de517 100644 (file)
@@ -1,3 +1,5 @@
+#include<config.h>
+
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/error.h>
 #include <apti18n.h>
@@ -11,7 +13,7 @@
 pkgVendorList::~pkgVendorList()
 {
    for (vector<const Vendor *>::const_iterator I = VendorList.begin(); 
-        I != VendorList.end(); I++)
+        I != VendorList.end(); ++I)
       delete *I;
 }
 
@@ -49,7 +51,7 @@ bool pkgVendorList::Read(string File)                                 /*{{{*/
 bool pkgVendorList::CreateList(Configuration& Cnf)                     /*{{{*/
 {
    for (vector<const Vendor *>::const_iterator I = VendorList.begin(); 
-       I != VendorList.end(); I++)
+       I != VendorList.end(); ++I)
       delete *I;
    VendorList.erase(VendorList.begin(),VendorList.end());
 
@@ -129,7 +131,7 @@ const Vendor* pkgVendorList::LookupFingerprint(string Fingerprint)  /*{{{*/
                                                                        /*}}}*/
 const Vendor* pkgVendorList::FindVendor(const std::vector<string> GPGVOutput)  /*{{{*/
 {
-   for (std::vector<string>::const_iterator I = GPGVOutput.begin(); I != GPGVOutput.end(); I++)
+   for (std::vector<string>::const_iterator I = GPGVOutput.begin(); I != GPGVOutput.end(); ++I)
    {
       string::size_type pos = (*I).find("VALIDSIG ");
       if (_config->FindB("Debug::Vendor", false))
index 42e449d36b7d063060fc7335f175f53f4814573d..a9d4fb763d12c0fc15e7645b7dfc1217fa17ad4f 100644 (file)
@@ -8,6 +8,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/version.h>
 #include <apt-pkg/pkgcache.h>
 
index c40b1fdbc859b0875192ac79ca55a3d461fc6e43..f336b3c3525c92079514a2d2056ace0124a1af85 100644 (file)
@@ -11,8 +11,9 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#include <apt-pkg/versionmatch.h>
+#include<config.h>
 
+#include <apt-pkg/versionmatch.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/error.h>
 
@@ -21,7 +22,6 @@
 #include <fnmatch.h>
 #include <sys/types.h>
 #include <regex.h>
-
                                                                        /*}}}*/
 
 // VersionMatch::pkgVersionMatch - Constructor                         /*{{{*/
@@ -60,7 +60,7 @@ pkgVersionMatch::pkgVersionMatch(string Data,MatchType Type) : Type(Type)
       
       // Are we a simple specification?
       string::const_iterator I = Data.begin();
-      for (; I != Data.end() && *I != '='; I++);
+      for (; I != Data.end() && *I != '='; ++I);
       if (I == Data.end())
       {
         // Temporary
@@ -152,7 +152,7 @@ bool pkgVersionMatch::MatchVer(const char *A,string B,bool Prefix)
 pkgCache::VerIterator pkgVersionMatch::Find(pkgCache::PkgIterator Pkg)
 {
    pkgCache::VerIterator Ver = Pkg.VersionList();
-   for (; Ver.end() == false; Ver++)
+   for (; Ver.end() == false; ++Ver)
    {
       if (Type == Version)
       {
@@ -163,7 +163,7 @@ pkgCache::VerIterator pkgVersionMatch::Find(pkgCache::PkgIterator Pkg)
         continue;
       }
       
-      for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false; VF++)
+      for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false; ++VF)
         if (FileMatch(VF.File()) == true)
            return Ver;
    }
index b3609a7005e80959d629728319bb5e038455aa3a..256911231c1bac1c7136084265d0ac3963662a6f 100644 (file)
@@ -33,6 +33,9 @@
 /* If there is no socklen_t, define this for the netdb shim */
 #undef NEED_SOCKLEN_T_DEFINE
 
+/* Define to the size of the filesize containing structures */
+#undef _FILE_OFFSET_BITS
+
 /* Define the arch name string */
 #undef COMMON_ARCH
 
index bf93bd2eec3ae3151bbdfdda4769e8b10992e56d..edb08916037d46152f3fe18f5ef0ea5a6e678382 100644 (file)
@@ -118,10 +118,10 @@ MKDIRS := $(BIN)
 # list
 .PHONY: headers library clean veryclean all binary program doc dirs
 .PHONY: maintainer-clean dist-clean distclean pristine sanity
-all: binary doc
+all: dirs binary doc
 binary: library program
 maintainer-clean dist-clean distclean pristine sanity: veryclean
-headers library clean veryclean program:
+headers library clean veryclean program test:
 
 veryclean:
        echo Very Clean done for $(SUBDIR)
index ba334ce05737c7057707239a0f12dcb54dc74da9..1ccb088040ff01e262039a12839c38fa287d6211 100644 (file)
@@ -8,19 +8,21 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include files                                                       /*{{{*/
-#include "acqprogress.h"
+#include<config.h>
+
 #include <apt-pkg/acquire-item.h>
 #include <apt-pkg/acquire-worker.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/error.h>
 
-#include <apti18n.h>
-    
 #include <stdio.h>
 #include <signal.h>
 #include <iostream>
 #include <unistd.h>
+
+#include "acqprogress.h"
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
@@ -161,7 +163,7 @@ bool AcqTextStatus::Pulse(pkgAcquire *Owner)
       ScreenWidth = sizeof(Buffer)-1;
 
    // Put in the percent done
-   sprintf(S,"%ld%%",long(double((CurrentBytes + CurrentItems)*100.0)/double(TotalBytes+TotalItems)));
+   sprintf(S,"%.0f%%",((CurrentBytes + CurrentItems)*100.0)/(TotalBytes+TotalItems));
 
    bool Shown = false;
    for (pkgAcquire::Worker *I = Owner->WorkersBegin(); I != 0;
@@ -200,7 +202,7 @@ bool AcqTextStatus::Pulse(pkgAcquire *Owner)
             
       // Add the current progress
       if (Mode == Long)
-        snprintf(S,End-S," %lu",I->CurrentSize);
+        snprintf(S,End-S," %llu",I->CurrentSize);
       else
       {
         if (Mode == Medium || I->TotalSize == 0)
@@ -212,11 +214,11 @@ bool AcqTextStatus::Pulse(pkgAcquire *Owner)
       if (I->TotalSize > 0 && I->CurrentItem->Owner->Complete == false)
       {
         if (Mode == Short)
-           snprintf(S,End-S," %lu%%",
-                    long(double(I->CurrentSize*100.0)/double(I->TotalSize)));
+           snprintf(S,End-S," %.0f%%",
+                    (I->CurrentSize*100.0)/I->TotalSize);
         else
-           snprintf(S,End-S,"/%sB %lu%%",SizeToStr(I->TotalSize).c_str(),
-                    long(double(I->CurrentSize*100.0)/double(I->TotalSize)));
+           snprintf(S,End-S,"/%sB %.0f%%",SizeToStr(I->TotalSize).c_str(),
+                    (I->CurrentSize*100.0)/I->TotalSize);
       }      
       S += strlen(S);
       snprintf(S,End-S,"]");
@@ -236,7 +238,7 @@ bool AcqTextStatus::Pulse(pkgAcquire *Owner)
    if (CurrentCPS != 0)
    {      
       char Tmp[300];
-      unsigned long ETA = (unsigned long)((TotalBytes - CurrentBytes)/CurrentCPS);
+      unsigned long long ETA = (TotalBytes - CurrentBytes)/CurrentCPS;
       sprintf(Tmp," %sB/s %s",SizeToStr(CurrentCPS).c_str(),TimeToStr(ETA).c_str());
       unsigned int Len = strlen(Buffer);
       unsigned int LenT = strlen(Tmp);
index 232bb93ec670eafd23b432248c1c631af00f8a71..a4cdf784e29c959c4be8012a727029f7e68980b2 100644 (file)
@@ -13,8 +13,9 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/error.h>
-#include <cassert>
 #include <apt-pkg/pkgcachegen.h>
 #include <apt-pkg/cachefile.h>
 #include <apt-pkg/cacheset.h>
 #include <apt-pkg/algorithms.h>
 #include <apt-pkg/sptr.h>
 
-#include <config.h>
-#include <apti18n.h>
-
+#include <cassert>
 #include <locale.h>
 #include <iostream>
 #include <unistd.h>
 #include <errno.h>
 #include <regex.h>
 #include <stdio.h>
-
 #include <iomanip>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
@@ -141,7 +141,7 @@ bool ShowUnMet(pkgCache::VerIterator const &V, bool const &Important)
               
               if (Start == End)
                  break;
-              Start++;
+              ++Start;
            }
            while (1);
 
@@ -169,7 +169,7 @@ bool ShowUnMet(pkgCache::VerIterator const &V, bool const &Important)
               if (Start == End)
                  break;
               cout << " | ";
-              Start++;
+              ++Start;
            }
            while (1);
            
@@ -187,7 +187,7 @@ bool UnMet(CommandLine &CmdL)
 
    if (CmdL.FileSize() <= 1)
    {
-      for (pkgCache::PkgIterator P = CacheFile.GetPkgCache()->PkgBegin(); P.end() == false; P++)
+      for (pkgCache::PkgIterator P = CacheFile.GetPkgCache()->PkgBegin(); P.end() == false; ++P)
         for (pkgCache::VerIterator V = P.VersionList(); V.end() == false; ++V)
            if (ShowUnMet(V, Important) == false)
               return false;
@@ -217,13 +217,13 @@ bool DumpPackage(CommandLine &CmdL)
    {
       cout << "Package: " << Pkg.FullName(true) << endl;
       cout << "Versions: " << endl;
-      for (pkgCache::VerIterator Cur = Pkg.VersionList(); Cur.end() != true; Cur++)
+      for (pkgCache::VerIterator Cur = Pkg.VersionList(); Cur.end() != true; ++Cur)
       {
         cout << Cur.VerStr();
-        for (pkgCache::VerFileIterator Vf = Cur.FileList(); Vf.end() == false; Vf++)
+        for (pkgCache::VerFileIterator Vf = Cur.FileList(); Vf.end() == false; ++Vf)
            cout << " (" << Vf.File().FileName() << ")";
         cout << endl;
-        for (pkgCache::DescIterator D = Cur.DescriptionList(); D.end() == false; D++)
+        for (pkgCache::DescIterator D = Cur.DescriptionList(); D.end() == false; ++D)
         {
            cout << " Description Language: " << D.LanguageCode() << endl
                 << "                 File: " << D.FileList().File().FileName() << endl
@@ -235,7 +235,7 @@ bool DumpPackage(CommandLine &CmdL)
       cout << endl;
       
       cout << "Reverse Depends: " << endl;
-      for (pkgCache::DepIterator D = Pkg.RevDependsList(); D.end() != true; D++)
+      for (pkgCache::DepIterator D = Pkg.RevDependsList(); D.end() != true; ++D)
       {
         cout << "  " << D.ParentPkg().FullName(true) << ',' << D.TargetPkg().FullName(true);
         if (D->Version != 0)
@@ -245,24 +245,24 @@ bool DumpPackage(CommandLine &CmdL)
       }
       
       cout << "Dependencies: " << endl;
-      for (pkgCache::VerIterator Cur = Pkg.VersionList(); Cur.end() != true; Cur++)
+      for (pkgCache::VerIterator Cur = Pkg.VersionList(); Cur.end() != true; ++Cur)
       {
         cout << Cur.VerStr() << " - ";
-        for (pkgCache::DepIterator Dep = Cur.DependsList(); Dep.end() != true; Dep++)
+        for (pkgCache::DepIterator Dep = Cur.DependsList(); Dep.end() != true; ++Dep)
            cout << Dep.TargetPkg().FullName(true) << " (" << (int)Dep->CompareOp << " " << DeNull(Dep.TargetVer()) << ") ";
         cout << endl;
       }      
 
       cout << "Provides: " << endl;
-      for (pkgCache::VerIterator Cur = Pkg.VersionList(); Cur.end() != true; Cur++)
+      for (pkgCache::VerIterator Cur = Pkg.VersionList(); Cur.end() != true; ++Cur)
       {
         cout << Cur.VerStr() << " - ";
-        for (pkgCache::PrvIterator Prv = Cur.ProvidesList(); Prv.end() != true; Prv++)
+        for (pkgCache::PrvIterator Prv = Cur.ProvidesList(); Prv.end() != true; ++Prv)
            cout << Prv.ParentPkg().FullName(true) << " ";
         cout << endl;
       }
       cout << "Reverse Provides: " << endl;
-      for (pkgCache::PrvIterator Prv = Pkg.ProvidesList(); Prv.end() != true; Prv++)
+      for (pkgCache::PrvIterator Prv = Pkg.ProvidesList(); Prv.end() != true; ++Prv)
         cout << Prv.OwnerPkg().FullName(true) << " " << Prv.OwnerVer().VerStr() << endl;
    }
 
@@ -290,7 +290,7 @@ bool Stats(CommandLine &Cmd)
    int DVirt = 0;
    int Missing = 0;
    pkgCache::PkgIterator I = Cache->PkgBegin();
-   for (;I.end() != true; I++)
+   for (;I.end() != true; ++I)
    {
       if (I->VersionList != 0 && I->ProvidesList == 0)
       {
@@ -353,11 +353,11 @@ bool Stats(CommandLine &Cmd)
    cout << _("Total globbed strings: ") << Count << " (" << SizeToStr(Size) << ')' << endl;
 
    unsigned long DepVerSize = 0;
-   for (pkgCache::PkgIterator P = Cache->PkgBegin(); P.end() == false; P++)
+   for (pkgCache::PkgIterator P = Cache->PkgBegin(); P.end() == false; ++P)
    {
-      for (pkgCache::VerIterator V = P.VersionList(); V.end() == false; V++)
+      for (pkgCache::VerIterator V = P.VersionList(); V.end() == false; ++V)
       {
-        for (pkgCache::DepIterator D = V.DependsList(); D.end() == false; D++)
+        for (pkgCache::DepIterator D = V.DependsList(); D.end() == false; ++D)
         {
            if (D->Version != 0)
               DepVerSize += strlen(D.TargetVer()) + 1;
@@ -394,17 +394,17 @@ bool Dump(CommandLine &Cmd)
 
    cout << "Using Versioning System: " << Cache->VS->Label << endl;
    
-   for (pkgCache::PkgIterator P = Cache->PkgBegin(); P.end() == false; P++)
+   for (pkgCache::PkgIterator P = Cache->PkgBegin(); P.end() == false; ++P)
    {
       cout << "Package: " << P.FullName(true) << endl;
-      for (pkgCache::VerIterator V = P.VersionList(); V.end() == false; V++)
+      for (pkgCache::VerIterator V = P.VersionList(); V.end() == false; ++V)
       {
         cout << " Version: " << V.VerStr() << endl;
         cout << "     File: " << V.FileList().File().FileName() << endl;
-        for (pkgCache::DepIterator D = V.DependsList(); D.end() == false; D++)
+        for (pkgCache::DepIterator D = V.DependsList(); D.end() == false; ++D)
            cout << "  Depends: " << D.TargetPkg().FullName(true) << ' ' << 
                             DeNull(D.TargetVer()) << endl;
-        for (pkgCache::DescIterator D = V.DescriptionList(); D.end() == false; D++)
+        for (pkgCache::DescIterator D = V.DescriptionList(); D.end() == false; ++D)
         {
            cout << " Description Language: " << D.LanguageCode() << endl
                 << "                 File: " << D.FileList().File().FileName() << endl
@@ -413,7 +413,7 @@ bool Dump(CommandLine &Cmd)
       }      
    }
 
-   for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F.end() == false; F++)
+   for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F.end() == false; ++F)
    {
       cout << "File: " << F.FileName() << endl;
       cout << " Type: " << F.IndexType() << endl;
@@ -449,7 +449,7 @@ bool DumpAvail(CommandLine &Cmd)
    memset(VFList,0,sizeof(*VFList)*Count);
    
    // Map versions that we want to write out onto the VerList array.
-   for (pkgCache::PkgIterator P = Cache->PkgBegin(); P.end() == false; P++)
+   for (pkgCache::PkgIterator P = Cache->PkgBegin(); P.end() == false; ++P)
    {    
       if (P->VersionList == 0)
         continue;
@@ -466,7 +466,7 @@ bool DumpAvail(CommandLine &Cmd)
       }
       
       pkgCache::VerFileIterator VF = V.FileList();
-      for (; VF.end() == false ; VF++)
+      for (; VF.end() == false ; ++VF)
         if ((VF.File()->Flags & pkgCache::Flag::NotSource) == 0)
            break;
       
@@ -480,9 +480,9 @@ bool DumpAvail(CommandLine &Cmd)
          handling works OK. */
       if (VF.end() == true)
       {
-        for (pkgCache::VerIterator Cur = P.VersionList(); Cur.end() != true; Cur++)
+        for (pkgCache::VerIterator Cur = P.VersionList(); Cur.end() != true; ++Cur)
         {
-           for (VF = Cur.FileList(); VF.end() == false; VF++)
+           for (VF = Cur.FileList(); VF.end() == false; ++VF)
            {    
               if ((VF.File()->Flags & pkgCache::Flag::NotSource) == 0)
               {
@@ -615,7 +615,7 @@ bool ShowDepends(CommandLine &CmdL, bool const RevDepends)
         if (RevDepends == true)
            cout << "Reverse Depends:" << endl;
         for (pkgCache::DepIterator D = RevDepends ? Pkg.RevDependsList() : Ver.DependsList();
-             D.end() == false; D++)
+             D.end() == false; ++D)
         {
            switch (D->Type) {
            case pkgCache::Dep::PreDepends: if (!ShowPreDepends) continue; break;
@@ -741,7 +741,7 @@ bool XVcg(CommandLine &CmdL)
    memset(Flags,0,sizeof(*Flags)*Cache->Head().PackageCount);
    
    // Map the shapes
-   for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++)
+   for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); Pkg.end() == false; ++Pkg)
    {   
       if (Pkg->VersionList == 0)
       {
@@ -788,7 +788,7 @@ bool XVcg(CommandLine &CmdL)
    while (Act == true)
    {
       Act = false;
-      for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++)
+      for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); Pkg.end() == false; ++Pkg)
       {
         // See we need to show this package
         if (Show[Pkg->ID] == None || Show[Pkg->ID] >= DoneNR)
@@ -814,14 +814,14 @@ bool XVcg(CommandLine &CmdL)
            continue;
         
         pkgCache::VerIterator Ver = Pkg.VersionList();
-        for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false; D++)
+        for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false; ++D)
         {
            // See if anything can meet this dep
            // Walk along the actual package providing versions
            bool Hit = false;
            pkgCache::PkgIterator DPkg = D.TargetPkg();
            for (pkgCache::VerIterator I = DPkg.VersionList();
-                     I.end() == false && Hit == false; I++)
+                     I.end() == false && Hit == false; ++I)
            {
               if (Cache->VS->CheckDep(I.VerStr(),D->CompareOp,D.TargetVer()) == true)
                  Hit = true;
@@ -829,7 +829,7 @@ bool XVcg(CommandLine &CmdL)
            
            // Follow all provides
            for (pkgCache::PrvIterator I = DPkg.ProvidesList(); 
-                     I.end() == false && Hit == false; I++)
+                     I.end() == false && Hit == false; ++I)
            {
               if (Cache->VS->CheckDep(I.ProvideVersion(),D->CompareOp,D.TargetVer()) == false)
                  Hit = true;
@@ -889,7 +889,7 @@ bool XVcg(CommandLine &CmdL)
    
    /* Draw the box colours after the fact since we can not tell what colour
       they should be until everything is finished drawing */
-   for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++)
+   for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); Pkg.end() == false; ++Pkg)
    {
       if (Show[Pkg->ID] < DoneNR)
         continue;
@@ -953,7 +953,7 @@ bool Dotty(CommandLine &CmdL)
    memset(Flags,0,sizeof(*Flags)*Cache->Head().PackageCount);
    
    // Map the shapes
-   for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++)
+   for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); Pkg.end() == false; ++Pkg)
    {   
       if (Pkg->VersionList == 0)
       {
@@ -1000,7 +1000,7 @@ bool Dotty(CommandLine &CmdL)
    while (Act == true)
    {
       Act = false;
-      for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++)
+      for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); Pkg.end() == false; ++Pkg)
       {
         // See we need to show this package
         if (Show[Pkg->ID] == None || Show[Pkg->ID] >= DoneNR)
@@ -1024,14 +1024,14 @@ bool Dotty(CommandLine &CmdL)
            continue;
         
         pkgCache::VerIterator Ver = Pkg.VersionList();
-        for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false; D++)
+        for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false; ++D)
         {
            // See if anything can meet this dep
            // Walk along the actual package providing versions
            bool Hit = false;
            pkgCache::PkgIterator DPkg = D.TargetPkg();
            for (pkgCache::VerIterator I = DPkg.VersionList();
-                     I.end() == false && Hit == false; I++)
+                     I.end() == false && Hit == false; ++I)
            {
               if (Cache->VS->CheckDep(I.VerStr(),D->CompareOp,D.TargetVer()) == true)
                  Hit = true;
@@ -1039,7 +1039,7 @@ bool Dotty(CommandLine &CmdL)
            
            // Follow all provides
            for (pkgCache::PrvIterator I = DPkg.ProvidesList(); 
-                     I.end() == false && Hit == false; I++)
+                     I.end() == false && Hit == false; ++I)
            {
               if (Cache->VS->CheckDep(I.ProvideVersion(),D->CompareOp,D.TargetVer()) == false)
                  Hit = true;
@@ -1094,7 +1094,7 @@ bool Dotty(CommandLine &CmdL)
    
    /* Draw the box colours after the fact since we can not tell what colour
       they should be until everything is finished drawing */
-   for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++)
+   for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); Pkg.end() == false; ++Pkg)
    {
       if (Show[Pkg->ID] < DoneNR)
         continue;
@@ -1127,7 +1127,7 @@ bool DisplayRecord(pkgCacheFile &CacheFile, pkgCache::VerIterator V)
 
    // Find an appropriate file
    pkgCache::VerFileIterator Vf = V.FileList();
-   for (; Vf.end() == false; Vf++)
+   for (; Vf.end() == false; ++Vf)
       if ((Vf.File()->Flags & pkgCache::Flag::NotSource) == 0)
         break;
    if (Vf.end() == true)
@@ -1272,7 +1272,7 @@ bool Search(CommandLine &CmdL)
         continue;
 
       // Include all the packages that provide matching names too
-      for (pkgCache::PrvIterator Prv = P.ProvidesList() ; Prv.end() == false; Prv++)
+      for (pkgCache::PrvIterator Prv = P.ProvidesList() ; Prv.end() == false; ++Prv)
       {
         pkgCache::VerIterator V = Plcy->GetCandidateVer(Prv.OwnerPkg());
         if (V.end() == true)
@@ -1341,13 +1341,13 @@ bool ShowAuto(CommandLine &CmdL)
    std::vector<string> packages;
    packages.reserve(Cache->HeaderP->PackageCount / 3);
    
-   for (pkgCache::PkgIterator P = Cache->PkgBegin(); P.end() == false; P++)
+   for (pkgCache::PkgIterator P = Cache->PkgBegin(); P.end() == false; ++P)
       if ((*DepCache)[P].Flags & pkgCache::Flag::Auto)
          packages.push_back(P.Name());
 
     std::sort(packages.begin(), packages.end());
     
-    for (vector<string>::iterator I = packages.begin(); I != packages.end(); I++)
+    for (vector<string>::iterator I = packages.begin(); I != packages.end(); ++I)
             cout << *I << "\n";
 
    _error->Notice(_("This command is deprecated. Please use 'apt-mark showauto' instead."));
@@ -1391,7 +1391,7 @@ bool ShowPkgNames(CommandLine &CmdL)
 
    if (CmdL.FileList[1] != 0)
    {
-      for (;I.end() != true; I++)
+      for (;I.end() != true; ++I)
       {
         if (All == false && I->FirstPackage == 0)
            continue;
@@ -1405,7 +1405,7 @@ bool ShowPkgNames(CommandLine &CmdL)
    }
    
    // Show all pkgs
-   for (;I.end() != true; I++)
+   for (;I.end() != true; ++I)
    {
       if (All == false && I->FirstPackage == 0)
         continue;
@@ -1476,7 +1476,7 @@ bool Policy(CommandLine &CmdL)
    if (CmdL.FileList[1] == 0)
    {
       cout << _("Package files:") << endl;   
-      for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F.end() == false; F++)
+      for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F.end() == false; ++F)
       {
         // Locate the associated index files so we can derive a description
         pkgIndexFile *Indx;
@@ -1498,7 +1498,7 @@ bool Policy(CommandLine &CmdL)
       // Show any packages have explicit pins
       cout << _("Pinned packages:") << endl;
       pkgCache::PkgIterator I = Cache->PkgBegin();
-      for (;I.end() != true; I++)
+      for (;I.end() != true; ++I)
       {
         if (Plcy->GetPriority(I) == 0)
            continue;
@@ -1560,14 +1560,14 @@ bool Policy(CommandLine &CmdL)
       
       // Show the priority tables
       cout << _("  Version table:") << endl;
-      for (V = Pkg.VersionList(); V.end() == false; V++)
+      for (V = Pkg.VersionList(); V.end() == false; ++V)
       {
         if (Pkg.CurrentVer() == V)
            cout << " *** " << V.VerStr();
         else
            cout << "     " << V.VerStr();
         cout << " " << Plcy->GetPriority(Pkg) << endl;
-        for (pkgCache::VerFileIterator VF = V.FileList(); VF.end() == false; VF++)
+        for (pkgCache::VerFileIterator VF = V.FileList(); VF.end() == false; ++VF)
         {
            // Locate the associated index files so we can derive a description
            pkgIndexFile *Indx;
@@ -1607,9 +1607,9 @@ bool Madison(CommandLine &CmdL)
       APT::PackageSet pkgset = APT::PackageSet::FromString(CacheFile, *I, helper);
       for (APT::PackageSet::const_iterator Pkg = pkgset.begin(); Pkg != pkgset.end(); ++Pkg)
       {
-         for (pkgCache::VerIterator V = Pkg.VersionList(); V.end() == false; V++)
+         for (pkgCache::VerIterator V = Pkg.VersionList(); V.end() == false; ++V)
          {
-            for (pkgCache::VerFileIterator VF = V.FileList(); VF.end() == false; VF++)
+            for (pkgCache::VerFileIterator VF = V.FileList(); VF.end() == false; ++VF)
             {
 // This might be nice, but wouldn't uniquely identify the source -mdz
 //                if (VF.File().Archive() != 0)
@@ -1619,11 +1619,11 @@ bool Madison(CommandLine &CmdL)
 //                }
 
                // Locate the associated index files so we can derive a description
-               for (pkgSourceList::const_iterator S = SrcList->begin(); S != SrcList->end(); S++)
+               for (pkgSourceList::const_iterator S = SrcList->begin(); S != SrcList->end(); ++S)
                {
                     vector<pkgIndexFile *> *Indexes = (*S)->GetIndexFiles();
                     for (vector<pkgIndexFile *>::const_iterator IF = Indexes->begin();
-                         IF != Indexes->end(); IF++)
+                         IF != Indexes->end(); ++IF)
                     {
                          if ((*IF)->FindInCache(*(VF.File().Cache())) == VF.File())
                          {
index d1268edf9a239358db91d9d9746667fa159c8ef5..8608b1215e74ec16e2744e8277b0123da15fbaeb 100644 (file)
@@ -11,6 +11,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/cmndline.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/init.h>
 #include <apt-pkg/acquire.h>
 #include <apt-pkg/acquire-item.h>
 #include <apt-pkg/cdrom.h>
-#include <config.h>
-#include <apti18n.h>
-    
-//#include "indexcopy.h"
 
 #include <locale.h>
 #include <iostream>
@@ -36,6 +34,8 @@
 #include <dirent.h>
 #include <unistd.h>
 #include <stdio.h>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
index 589ee7ada62a5d68cc3b47676d2f5ae7e9110a63..df29589751e2763b6fbbc5ed961a12bdd2874a7f 100644 (file)
@@ -16,6 +16,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/cmndline.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/init.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/aptconfiguration.h>
 
-#include <config.h>
-#include <apti18n.h>
-
 #include <locale.h>
 #include <iostream>
 #include <string>
 #include <vector>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 using namespace std;
 
diff --git a/cmdline/apt-dump-solver.cc b/cmdline/apt-dump-solver.cc
new file mode 100644 (file)
index 0000000..dab0cc6
--- /dev/null
@@ -0,0 +1,50 @@
+// -*- mode: cpp; mode: fold -*-
+// Description                                                         /*{{{*/
+/* #####################################################################
+
+   dummy solver to get quickly a scenario file out of APT
+
+   ##################################################################### */
+                                                                       /*}}}*/
+// Include Files                                                       /*{{{*/
+#include <apt-pkg/edsp.h>
+
+#include <config.h>
+
+#include <cstdio>
+                                                                       /*}}}*/
+
+// ShowHelp - Show a help screen                                       /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+bool ShowHelp() {
+
+       std::cout <<
+               PACKAGE " " VERSION " for " COMMON_ARCH " compiled on " __DATE__ " " __TIME__ << std::endl <<
+               "Usage: apt-dump-resolver\n"
+               "\n"
+               "apt-dump-resolver is a dummy solver who just dumps its input to the\n"
+               "file /tmp/dump.edsp and exists with a proper EDSP error.\n"
+               "\n"
+               "                       This dump has lost Super Cow Powers.\n";
+       return true;
+}
+                                                                       /*}}}*/
+int main(int argc,const char *argv[])                                  /*{{{*/
+{
+       if (argc > 1 && (strcmp(argv[1], "--help") == 0 || strcmp(argv[1],"-h") == 0 ||
+           strcmp(argv[1],"-v") == 0 || strcmp(argv[1],"--version") == 0)) {
+               ShowHelp();
+               return 0;
+       }
+
+       FILE* input = fdopen(STDIN_FILENO, "r");
+       FILE* output = fopen("/tmp/dump.edsp", "w");
+       char buffer[400];
+       while (fgets(buffer, sizeof(buffer), input) != NULL)
+               fputs(buffer, output);
+       fclose(output);
+       fclose(input);
+
+       EDSP::WriteError("ERR_JUST_DUMPING", "I am too dumb, i can just dump!\nPlease use one of my friends instead!", stdout);
+}
index 07bc0c25d053d6a17453d67e3d84d87078211bf5..5d7b76c23e33b2804e9775f36807efc9314f80c8 100644 (file)
@@ -13,6 +13,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include<config.h>
+
 #include <apt-pkg/init.h>
 #include <apt-pkg/cmndline.h>
 #include <apt-pkg/pkgcache.h>
@@ -28,7 +30,7 @@
 #include <apt-pkg/error.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/fileutl.h>
-       
+
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
@@ -36,7 +38,6 @@
 #include <fstream>
 
 #include <locale.h>
-#include <config.h>
 #include <apti18n.h>
 #include "apt-extracttemplates.h"
                                                                        /*}}}*/
index 845c92026b66602e3f9799e0b634451d23f823f8..d8f207f0aebe36eb62ab2a26a58ec779efc28cbb 100644 (file)
@@ -25,8 +25,7 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#define _LARGEFILE_SOURCE
-#define _LARGEFILE64_SOURCE
+#include <config.h>
 
 #include <apt-pkg/aptconfiguration.h>
 #include <apt-pkg/error.h>
@@ -46,9 +45,6 @@
 #include <apt-pkg/md5.h>
 #include <apt-pkg/versionmatch.h>
 
-#include <config.h>
-#include <apti18n.h>
-
 #include "acqprogress.h"
 
 #include <set>
@@ -68,8 +64,7 @@
 #include <sys/wait.h>
 #include <sstream>
 
-#define statfs statfs64
-#define statvfs statvfs64
+#include <apti18n.h>
                                                                        /*}}}*/
 
 #define RAMFS_MAGIC     0x858458f6
@@ -135,6 +130,11 @@ bool YnPrompt(bool Default=true)
       c1out << _("Y") << endl;
       return true;
    }
+   else if (_config->FindB("APT::Get::Assume-No",false) == true)
+   {
+      c1out << _("N") << endl;
+      return false;
+   }
 
    char response[1024] = "";
    cin.getline(response, sizeof(response));
@@ -363,7 +363,7 @@ void ShowBroken(ostream &out,CacheFile &Cache,bool Now)
            
            if (Start == End)
               break;
-           Start++;
+           ++Start;
         }       
       }            
    }   
@@ -537,7 +537,7 @@ bool ShowEssential(ostream &out,CacheFile &Cache)
         continue;
 
       // Print out any essential package depenendents that are to be removed
-      for (pkgCache::DepIterator D = I.CurrentVer().DependsList(); D.end() == false; D++)
+      for (pkgCache::DepIterator D = I.CurrentVer().DependsList(); D.end() == false; ++D)
       {
         // Skip everything but depends
         if (D->Type != pkgCache::Dep::PreDepends &&
@@ -574,7 +574,7 @@ void Stats(ostream &out,pkgDepCache &Dep)
    unsigned long Downgrade = 0;
    unsigned long Install = 0;
    unsigned long ReInstall = 0;
-   for (pkgCache::PkgIterator I = Dep.PkgBegin(); I.end() == false; I++)
+   for (pkgCache::PkgIterator I = Dep.PkgBegin(); I.end() == false; ++I)
    {
       if (Dep[I].NewInstall() == true)
         Install++;
@@ -666,7 +666,7 @@ public:
                                }
                                // if we found no candidate which provide this package, show non-candidates
                                if (provider == 0)
-                                       for (I = Pkg.ProvidesList(); I.end() == false; I++)
+                                       for (I = Pkg.ProvidesList(); I.end() == false; ++I)
                                                out << "  " << I.OwnerPkg().FullName(true) << " " << I.OwnerVer().VerStr()
                                                    << _(" [Not candidate version]") << endl;
                                else
@@ -682,7 +682,7 @@ public:
                                SPtrArray<bool> Seen = new bool[Cache.GetPkgCache()->Head().PackageCount];
                                memset(Seen,0,Cache.GetPkgCache()->Head().PackageCount*sizeof(*Seen));
                                for (pkgCache::DepIterator Dep = Pkg.RevDependsList();
-                                    Dep.end() == false; Dep++) {
+                                    Dep.end() == false; ++Dep) {
                                        if (Dep->Type != pkgCache::Dep::Replaces)
                                                continue;
                                        if (Seen[Dep.ParentPkg()->ID] == true)
@@ -869,9 +869,7 @@ struct TryToInstall {
 struct TryToRemove {
    pkgCacheFile* Cache;
    pkgProblemResolver* Fix;
-   bool FixBroken;
    bool PurgePkgs;
-   unsigned long AutoMarkChanged;
 
    TryToRemove(pkgCacheFile &Cache, pkgProblemResolver *PM) : Cache(&Cache), Fix(PM),
                                PurgePkgs(_config->FindB("APT::Get::Purge", false)) {};
@@ -923,7 +921,7 @@ void CacheFile::Sort()
    List = new pkgCache::Package *[Cache->Head().PackageCount];
    memset(List,0,sizeof(*List)*Cache->Head().PackageCount);
    pkgCache::PkgIterator I = Cache->PkgBegin();
-   for (;I.end() != true; I++)
+   for (;I.end() != true; ++I)
       List[I->ID] = I;
 
    SortCache = *this;
@@ -955,7 +953,7 @@ bool CacheFile::CheckDeps(bool AllowBroken)
       if ((DCache->PolicyBrokenCount() > 0))
       {
         // upgrade all policy-broken packages with ForceImportantDeps=True
-        for (pkgCache::PkgIterator I = Cache->PkgBegin(); !I.end(); I++)
+        for (pkgCache::PkgIterator I = Cache->PkgBegin(); !I.end(); ++I)
            if ((*DCache)[I].NowPolicyBroken() == true) 
               DCache->MarkInstall(I,true,0, false, true);
       }
@@ -1046,7 +1044,7 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true,
    if (_config->FindB("APT::Get::Purge",false) == true)
    {
       pkgCache::PkgIterator I = Cache->PkgBegin();
-      for (; I.end() == false; I++)
+      for (; I.end() == false; ++I)
       {
         if (I.Purge() == false && Cache[I].Mode == pkgDepCache::ModeDelete)
            Cache->MarkDelete(I,true);
@@ -1240,7 +1238,7 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true,
    if (_config->FindB("APT::Get::Print-URIs") == true)
    {
       pkgAcquire::UriIterator I = Fetcher.UriBegin();
-      for (; I != Fetcher.UriEnd(); I++)
+      for (; I != Fetcher.UriEnd(); ++I)
         cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << 
               I->Owner->FileSize << ' ' << I->Owner->HashSum() << endl;
       return true;
@@ -1264,7 +1262,7 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true,
         {
            if ((*I)->Local == true)
            {
-              I++;
+              ++I;
               continue;
            }
 
@@ -1284,7 +1282,7 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true,
       
       // Print out errors
       bool Failed = false;
-      for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); I++)
+      for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); ++I)
       {
         if ((*I)->Status == pkgAcquire::Item::StatDone &&
             (*I)->Complete == true)
@@ -1388,6 +1386,14 @@ bool TryToInstallBuildDep(pkgCache::PkgIterator Pkg,pkgCacheFile &Cache,
         return AllowFail;
    }
 
+   if (_config->FindB("Debug::BuildDeps",false) == true)
+   {
+      if (Remove == true)
+        cout << "  Trying to remove " << Pkg << endl;
+      else
+        cout << "  Trying to install " << Pkg << endl;
+   }
+
    if (Remove == true)
    {
       TryToRemove RemoveAction(Cache, &Fix);
@@ -1436,7 +1442,7 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
         // we have a default release, try to locate the pkg. we do it like
         // this because GetCandidateVer() will not "downgrade", that means
         // "apt-get source -t stable apt" won't work on a unstable system
-        for (pkgCache::VerIterator Ver = Pkg.VersionList();; Ver++)
+        for (pkgCache::VerIterator Ver = Pkg.VersionList();; ++Ver)
         {
            // try first only exact matches, later fuzzy matches
            if (Ver.end() == true)
@@ -1457,7 +1463,7 @@ pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
               continue;
 
            for (pkgCache::VerFileIterator VF = Ver.FileList();
-                VF.end() == false; VF++) 
+                VF.end() == false; ++VF)
            {
               /* If this is the status file, and the current version is not the
                  version in the status file (ie it is not installed, or somesuch)
@@ -1609,7 +1615,7 @@ bool DoUpdate(CommandLine &CmdL)
         return false;
 
       pkgAcquire::UriIterator I = Fetcher.UriBegin();
-      for (; I != Fetcher.UriEnd(); I++)
+      for (; I != Fetcher.UriEnd(); ++I)
         cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << 
               I->Owner->FileSize << ' ' << I->Owner->HashSum() << endl;
       return true;
@@ -1619,7 +1625,8 @@ bool DoUpdate(CommandLine &CmdL)
    if (_config->FindB("APT::Get::Download",true) == true)
        ListUpdate(Stat, *List);
 
-   // Rebuild the cache.   
+   // Rebuild the cache.
+   pkgCacheFile::RemoveCaches();
    if (Cache.BuildCaches() == false)
       return false;
    
@@ -1697,7 +1704,7 @@ bool DoAutomaticRemove(CacheFile &Cache)
 
    // we could have removed a new dependency of a garbage package,
    // so check if a reverse depends is broken and if so install it again.
-   if (tooMuch.empty() == false && Cache->BrokenCount() != 0)
+   if (tooMuch.empty() == false && (Cache->BrokenCount() != 0 || Cache->PolicyBrokenCount() != 0))
    {
       bool Changed;
       do {
@@ -1708,8 +1715,8 @@ bool DoAutomaticRemove(CacheFile &Cache)
            for (pkgCache::DepIterator R = P.RevDependsList();
                 R.end() == false; ++R)
            {
-              if (R->Type != pkgCache::Dep::Depends &&
-                  R->Type != pkgCache::Dep::PreDepends)
+              if (R.IsNegative() == true ||
+                  Cache->IsImportantDep(R) == false)
                  continue;
               pkgCache::PkgIterator N = R.ParentPkg();
               if (N.end() == true || (N->CurrentVer == 0 && (*Cache)[N].Install() == false))
@@ -1886,8 +1893,7 @@ bool DoInstall(CommandLine &CmdL)
       {
         // Call the scored problem resolver
         Fix->InstallProtect();
-        if (Fix->Resolve(true) == false)
-           _error->Discard();
+        Fix->Resolve(true);
         delete Fix;
       }
 
@@ -1913,8 +1919,11 @@ bool DoInstall(CommandLine &CmdL)
         c1out << _("The following information may help to resolve the situation:") << endl;
         c1out << endl;
         ShowBroken(c1out,Cache,false);
-        return _error->Error(_("Broken packages"));
-      }   
+        if (_error->PendingError() == true)
+           return false;
+        else
+           return _error->Error(_("Broken packages"));
+      }
    }
    if (!DoAutomaticRemove(Cache)) 
       return false;
@@ -1992,7 +2001,7 @@ bool DoInstall(CommandLine &CmdL)
               if(Start.TargetPkg().ProvidesList() != 0)
               {
                  pkgCache::PrvIterator I = Start.TargetPkg().ProvidesList();
-                 for (; I.end() == false; I++)
+                 for (; I.end() == false; ++I)
                  {
                     pkgCache::PkgIterator Pkg = I.OwnerPkg();
                     if (Cache[Pkg].CandidateVerIter(Cache) == I.OwnerVer() && 
@@ -2015,7 +2024,7 @@ bool DoInstall(CommandLine &CmdL)
 
               if (Start >= End)
                  break;
-              Start++;
+              ++Start;
            }
            
            if(foundInstalledInOrGroup == false)
@@ -2129,7 +2138,7 @@ bool DoDSelectUpgrade(CommandLine &CmdL)
 
    // Install everything with the install flag set
    pkgCache::PkgIterator I = Cache->PkgBegin();
-   for (;I.end() != true; I++)
+   for (;I.end() != true; ++I)
    {
       /* Install the package only if it is a new install, the autoupgrader
          will deal with the rest */
@@ -2139,7 +2148,7 @@ bool DoDSelectUpgrade(CommandLine &CmdL)
 
    /* Now install their deps too, if we do this above then order of
       the status file is significant for | groups */
-   for (I = Cache->PkgBegin();I.end() != true; I++)
+   for (I = Cache->PkgBegin();I.end() != true; ++I)
    {
       /* Install the package only if it is a new install, the autoupgrader
          will deal with the rest */
@@ -2148,7 +2157,7 @@ bool DoDSelectUpgrade(CommandLine &CmdL)
    }
    
    // Apply erasures now, they override everything else.
-   for (I = Cache->PkgBegin();I.end() != true; I++)
+   for (I = Cache->PkgBegin();I.end() != true; ++I)
    {
       // Remove packages 
       if (I->SelectedState == pkgCache::State::DeInstall ||
@@ -2165,7 +2174,7 @@ bool DoDSelectUpgrade(CommandLine &CmdL)
       // Hold back held packages.
       if (_config->FindB("APT::Ignore-Hold",false) == false)
       {
-        for (pkgCache::PkgIterator I = Cache->PkgBegin(); I.end() == false; I++)
+        for (pkgCache::PkgIterator I = Cache->PkgBegin(); I.end() == false; ++I)
         {
            if (I->SelectedState == pkgCache::State::Hold)
            {
@@ -2197,10 +2206,14 @@ bool DoDSelectUpgrade(CommandLine &CmdL)
 /* */
 bool DoClean(CommandLine &CmdL)
 {
+   std::string const archivedir = _config->FindDir("Dir::Cache::archives");
+   std::string const pkgcache = _config->FindFile("Dir::cache::pkgcache");
+   std::string const srcpkgcache = _config->FindFile("Dir::cache::srcpkgcache");
+
    if (_config->FindB("APT::Get::Simulate") == true)
    {
-      cout << "Del " << _config->FindDir("Dir::Cache::archives") << "* " <<
-        _config->FindDir("Dir::Cache::archives") << "partial/*" << endl;
+      cout << "Del " << archivedir << "* " << archivedir << "partial/*"<< endl
+          << "Del " << pkgcache << " " << srcpkgcache << endl;
       return true;
    }
    
@@ -2208,14 +2221,17 @@ bool DoClean(CommandLine &CmdL)
    FileFd Lock;
    if (_config->FindB("Debug::NoLocking",false) == false)
    {
-      Lock.Fd(GetLock(_config->FindDir("Dir::Cache::Archives") + "lock"));
+      Lock.Fd(GetLock(archivedir + "lock"));
       if (_error->PendingError() == true)
         return _error->Error(_("Unable to lock the download directory"));
    }
    
    pkgAcquire Fetcher;
-   Fetcher.Clean(_config->FindDir("Dir::Cache::archives"));
-   Fetcher.Clean(_config->FindDir("Dir::Cache::archives") + "partial/");
+   Fetcher.Clean(archivedir);
+   Fetcher.Clean(archivedir + "partial/");
+
+   pkgCacheFile::RemoveCaches();
+
    return true;
 }
                                                                        /*}}}*/
@@ -2273,7 +2289,7 @@ bool DoDownload(CommandLine &CmdL)
 
    pkgAcquire Fetcher;
    AcqTextStatus Stat(ScreenWidth, _config->FindI("quiet",0));
-   if (_config->FindB("APT::Get::Print-URIs") == true)
+   if (_config->FindB("APT::Get::Print-URIs") == false)
       Fetcher.Setup(&Stat);
 
    pkgRecords Recs(Cache);
@@ -2297,6 +2313,8 @@ bool DoDownload(CommandLine &CmdL)
       strprintf(descr, _("Downloading %s %s"), Pkg.Name(), Ver.VerStr());
       // get the most appropriate hash
       HashString hash;
+      if (rec.SHA512Hash() != "")
+         hash = HashString("sha512", rec.SHA512Hash());
       if (rec.SHA256Hash() != "")
          hash = HashString("sha256", rec.SHA256Hash());
       else if (rec.SHA1Hash() != "")
@@ -2311,7 +2329,7 @@ bool DoDownload(CommandLine &CmdL)
    if (_config->FindB("APT::Get::Print-URIs") == true)
    {
       pkgAcquire::UriIterator I = Fetcher.UriBegin();
-      for (; I != Fetcher.UriEnd(); I++)
+      for (; I != Fetcher.UriEnd(); ++I)
         cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << 
               I->Owner->FileSize << ' ' << I->Owner->HashSum() << endl;
       return true;
@@ -2366,8 +2384,7 @@ bool DoSource(CommandLine &CmdL)
    // Create the download object
    AcqTextStatus Stat(ScreenWidth,_config->FindI("quiet",0));   
    pkgAcquire Fetcher;
-   if (Fetcher.Setup(&Stat) == false)
-      return false;
+   Fetcher.SetLog(&Stat);
 
    DscFile *Dsc = new DscFile[CmdL.FileSize()];
    
@@ -2430,7 +2447,7 @@ bool DoSource(CommandLine &CmdL)
 
       // Load them into the fetcher
       for (vector<pkgSrcRecords::File>::const_iterator I = Lst.begin();
-          I != Lst.end(); I++)
+          I != Lst.end(); ++I)
       {
         // Try to guess what sort of file it is we are getting.
         if (I->Type == "dsc")
@@ -2532,7 +2549,7 @@ bool DoSource(CommandLine &CmdL)
    if (_config->FindB("APT::Get::Print-URIs") == true)
    {
       pkgAcquire::UriIterator I = Fetcher.UriBegin();
-      for (; I != Fetcher.UriEnd(); I++)
+      for (; I != Fetcher.UriEnd(); ++I)
         cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << 
               I->Owner->FileSize << ' ' << I->Owner->HashSum() << endl;
       delete[] Dsc;
@@ -2548,7 +2565,7 @@ bool DoSource(CommandLine &CmdL)
 
    // Print error messages
    bool Failed = false;
-   for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); I++)
+   for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); ++I)
    {
       if ((*I)->Status == pkgAcquire::Item::StatDone &&
          (*I)->Complete == true)
@@ -2577,7 +2594,7 @@ bool DoSource(CommandLine &CmdL)
    if (Process == 0)
    {
       bool const fixBroken = _config->FindB("APT::Get::Fix-Broken", false);
-      for (unsigned I = 0; I != J; I++)
+      for (unsigned I = 0; I != J; ++I)
       {
         string Dir = Dsc[I].Package + '-' + Cache->VS().UpstreamVersion(Dsc[I].Version.c_str());
         
@@ -2613,12 +2630,17 @@ bool DoSource(CommandLine &CmdL)
         // Try to compile it with dpkg-buildpackage
         if (_config->FindB("APT::Get::Compile",false) == true)
         {
+           string buildopts = _config->Find("APT::Get::Host-Architecture");
+           if (buildopts.empty() == false)
+              buildopts = "-a " + buildopts + " ";
+           buildopts.append(_config->Find("DPkg::Build-Options","-b -uc"));
+
            // Call dpkg-buildpackage
            char S[500];
            snprintf(S,sizeof(S),"cd %s && %s %s",
                     Dir.c_str(),
                     _config->Find("Dir::Bin::dpkg-buildpackage","dpkg-buildpackage").c_str(),
-                    _config->Find("DPkg::Build-Options","-b -uc").c_str());
+                    buildopts.c_str());
            
            if (system(S) != 0)
            {
@@ -2680,8 +2702,19 @@ bool DoBuildDep(CommandLine &CmdL)
    if (Fetcher.Setup(&Stat) == false)
       return false;
 
+   bool StripMultiArch;
+   string hostArch = _config->Find("APT::Get::Host-Architecture");
+   if (hostArch.empty() == false)
+   {
+      std::vector<std::string> archs = APT::Configuration::getArchitectures();
+      if (std::find(archs.begin(), archs.end(), hostArch) == archs.end())
+        return _error->Error(_("No architecture information available for %s. See apt.conf(5) APT::Architectures for setup"), hostArch.c_str());
+      StripMultiArch = false;
+   }
+   else
+      StripMultiArch = true;
+
    unsigned J = 0;
-   bool const StripMultiArch = APT::Configuration::getArchitectures().size() <= 1;
    for (const char **I = CmdL.FileList + 1; *I != 0; I++, J++)
    {
       string Src;
@@ -2710,22 +2743,32 @@ bool DoBuildDep(CommandLine &CmdL)
         BuildDeps.push_back(rec);
       }
 
-      if (BuildDeps.size() == 0)
+      if (BuildDeps.empty() == true)
       {
         ioprintf(c1out,_("%s has no build depends.\n"),Src.c_str());
         continue;
       }
-      
+
       // Install the requested packages
       vector <pkgSrcRecords::Parser::BuildDepRec>::iterator D;
       pkgProblemResolver Fix(Cache);
       bool skipAlternatives = false; // skip remaining alternatives in an or group
-      for (D = BuildDeps.begin(); D != BuildDeps.end(); D++)
+      for (D = BuildDeps.begin(); D != BuildDeps.end(); ++D)
       {
          bool hasAlternatives = (((*D).Op & pkgCache::Dep::Or) == pkgCache::Dep::Or);
 
          if (skipAlternatives == true)
          {
+            /*
+             * if there are alternatives, we've already picked one, so skip
+             * the rest
+             *
+             * TODO: this means that if there's a build-dep on A|B and B is
+             * installed, we'll still try to install A; more importantly,
+             * if A is currently broken, we cannot go back and try B. To fix 
+             * this would require we do a Resolve cycle for each package we 
+             * add to the install list. Ugh
+             */
             if (!hasAlternatives)
                skipAlternatives = false; // end of or group
             continue;
@@ -2734,27 +2777,117 @@ bool DoBuildDep(CommandLine &CmdL)
          if ((*D).Type == pkgSrcRecords::Parser::BuildConflict ||
             (*D).Type == pkgSrcRecords::Parser::BuildConflictIndep)
          {
-            pkgCache::PkgIterator Pkg = Cache->FindPkg((*D).Package);
+            pkgCache::GrpIterator Grp = Cache->FindGrp((*D).Package);
             // Build-conflicts on unknown packages are silently ignored
-            if (Pkg.end() == true)
+            if (Grp.end() == true)
                continue;
 
-            pkgCache::VerIterator IV = (*Cache)[Pkg].InstVerIter(*Cache);
-
-            /* 
-             * Remove if we have an installed version that satisfies the 
-             * version criteria
-             */
-            if (IV.end() == false && 
-                Cache->VS().CheckDep(IV.VerStr(),(*D).Op,(*D).Version.c_str()) == true)
-               TryToInstallBuildDep(Pkg,Cache,Fix,true,false);
+           for (pkgCache::PkgIterator Pkg = Grp.PackageList(); Pkg.end() == false; Pkg = Grp.NextPkg(Pkg))
+           {
+              pkgCache::VerIterator IV = (*Cache)[Pkg].InstVerIter(*Cache);
+              /*
+               * Remove if we have an installed version that satisfies the
+               * version criteria
+               */
+              if (IV.end() == false &&
+                  Cache->VS().CheckDep(IV.VerStr(),(*D).Op,(*D).Version.c_str()) == true)
+                 TryToInstallBuildDep(Pkg,Cache,Fix,true,false);
+           }
          }
         else // BuildDep || BuildDepIndep
          {
-           pkgCache::PkgIterator Pkg = Cache->FindPkg((*D).Package);
             if (_config->FindB("Debug::BuildDeps",false) == true)
                  cout << "Looking for " << (*D).Package << "...\n";
 
+           pkgCache::PkgIterator Pkg;
+
+           // Cross-Building?
+           if (StripMultiArch == false)
+           {
+              size_t const colon = D->Package.find(":");
+              if (colon != string::npos &&
+                  (strcmp(D->Package.c_str() + colon, ":any") == 0 || strcmp(D->Package.c_str() + colon, ":native") == 0))
+                 Pkg = Cache->FindPkg(D->Package.substr(0,colon));
+              else
+                 Pkg = Cache->FindPkg(D->Package);
+
+              // We need to decide if host or build arch, so find a version we can look at
+              pkgCache::VerIterator Ver;
+
+              // a bad version either is invalid or doesn't satify dependency
+              #define BADVER(Ver) Ver.end() == true || \
+                                  (Ver.end() == false && D->Version.empty() == false && \
+                                   Cache->VS().CheckDep(Ver.VerStr(),D->Op,D->Version.c_str()) == false)
+
+              if (Pkg.end() == false)
+              {
+                 Ver = (*Cache)[Pkg].InstVerIter(*Cache);
+                 if (BADVER(Ver))
+                    Ver = (*Cache)[Pkg].CandidateVerIter(*Cache);
+              }
+              if (BADVER(Ver))
+              {
+                 pkgCache::PkgIterator HostPkg = Cache->FindPkg(D->Package, hostArch);
+                 if (HostPkg.end() == false)
+                 {
+                    Ver = (*Cache)[HostPkg].InstVerIter(*Cache);
+                    if (BADVER(Ver))
+                       Ver = (*Cache)[HostPkg].CandidateVerIter(*Cache);
+                 }
+              }
+              if ((BADVER(Ver)) == false)
+              {
+                 string forbidden;
+                 if (Ver->MultiArch == pkgCache::Version::None || Ver->MultiArch == pkgCache::Version::All);
+                 else if (Ver->MultiArch == pkgCache::Version::Same)
+                 {
+                    if (colon != string::npos)
+                       Pkg = Ver.ParentPkg().Group().FindPkg(hostArch);
+                    else if (strcmp(D->Package.c_str() + colon, ":any") == 0)
+                       forbidden = "Multi-Arch: same";
+                    // :native gets the buildArch
+                 }
+                 else if (Ver->MultiArch == pkgCache::Version::Foreign || Ver->MultiArch == pkgCache::Version::AllForeign)
+                 {
+                    if (colon != string::npos)
+                       forbidden = "Multi-Arch: foreign";
+                 }
+                 else if (Ver->MultiArch == pkgCache::Version::Allowed || Ver->MultiArch == pkgCache::Version::AllAllowed)
+                 {
+                    if (colon == string::npos)
+                       Pkg = Ver.ParentPkg().Group().FindPkg(hostArch);
+                    else if (strcmp(D->Package.c_str() + colon, ":any") == 0)
+                    {
+                       // prefer any installed over preferred non-installed architectures
+                       pkgCache::GrpIterator Grp = Ver.ParentPkg().Group();
+                       // we don't check for version here as we are better of with upgrading than remove and install
+                       for (Pkg = Grp.PackageList(); Pkg.end() == false; Pkg = Grp.NextPkg(Pkg))
+                          if (Pkg.CurrentVer().end() == false)
+                             break;
+                       if (Pkg.end() == true)
+                          Pkg = Grp.FindPreferredPkg(true);
+                    }
+                    // native gets buildArch
+                 }
+                 if (forbidden.empty() == false)
+                 {
+                    if (_config->FindB("Debug::BuildDeps",false) == true)
+                       cout << " :any is not allowed from M-A: same package " << (*D).Package << endl;
+                    if (hasAlternatives)
+                       continue;
+                    return _error->Error(_("%s dependency for %s can't be satisfied "
+                                           "because %s is not allowed on '%s' packages"),
+                                         Last->BuildDepType(D->Type), Src.c_str(),
+                                         D->Package.c_str(), "Multi-Arch: same");
+                 }
+              }
+              else if (_config->FindB("Debug::BuildDeps",false) == true)
+                 cout << " No multiarch info as we have no satisfying installed nor candidate for " << D->Package << " on build or host arch" << endl;
+              #undef BADVER
+           }
+           else
+              Pkg = Cache->FindPkg(D->Package);
+
            if (Pkg.end() == true)
             {
                if (_config->FindB("Debug::BuildDeps",false) == true)
@@ -2769,99 +2902,74 @@ bool DoBuildDep(CommandLine &CmdL)
                                     (*D).Package.c_str());
             }
 
-            /*
-             * if there are alternatives, we've already picked one, so skip
-             * the rest
-             *
-             * TODO: this means that if there's a build-dep on A|B and B is
-             * installed, we'll still try to install A; more importantly,
-             * if A is currently broken, we cannot go back and try B. To fix 
-             * this would require we do a Resolve cycle for each package we 
-             * add to the install list. Ugh
-             */
-                       
-           /* 
-            * If this is a virtual package, we need to check the list of
-            * packages that provide it and see if any of those are
-            * installed
-            */
-            pkgCache::PrvIterator Prv = Pkg.ProvidesList();
-            for (; Prv.end() != true; Prv++)
-           {
-               if (_config->FindB("Debug::BuildDeps",false) == true)
-                    cout << "  Checking provider " << Prv.OwnerPkg().FullName() << endl;
-
-              if ((*Cache)[Prv.OwnerPkg()].InstVerIter(*Cache).end() == false)
-                 break;
-            }
-            
-            // Get installed version and version we are going to install
            pkgCache::VerIterator IV = (*Cache)[Pkg].InstVerIter(*Cache);
+           if (IV.end() == false)
+           {
+              if (_config->FindB("Debug::BuildDeps",false) == true)
+                 cout << "  Is installed\n";
 
-            if ((*D).Version[0] != '\0') {
-                 // Versioned dependency
-
-                 pkgCache::VerIterator CV = (*Cache)[Pkg].CandidateVerIter(*Cache);
-
-                 for (; CV.end() != true; CV++)
-                 {
-                      if (Cache->VS().CheckDep(CV.VerStr(),(*D).Op,(*D).Version.c_str()) == true)
-                           break;
-                 }
-                 if (CV.end() == true)
-                {
-                  if (hasAlternatives)
-                  {
-                     continue;
-                  }
-                  else
-                  {
-                      return _error->Error(_("%s dependency for %s cannot be satisfied "
-                                             "because no available versions of package %s "
-                                             "can satisfy version requirements"),
-                                           Last->BuildDepType((*D).Type),Src.c_str(),
-                                           (*D).Package.c_str());
-                  }
-                }
-            }
-            else
-            {
-               // Only consider virtual packages if there is no versioned dependency
-               if (Prv.end() == false)
-               {
-                  if (_config->FindB("Debug::BuildDeps",false) == true)
-                     cout << "  Is provided by installed package " << Prv.OwnerPkg().FullName() << endl;
-                  skipAlternatives = hasAlternatives;
-                  continue;
-               }
-            }
+              if (D->Version.empty() == true ||
+                  Cache->VS().CheckDep(IV.VerStr(),(*D).Op,(*D).Version.c_str()) == true)
+              {
+                 skipAlternatives = hasAlternatives;
+                 continue;
+              }
 
-            if (IV.end() == false)
-            {
-               if (_config->FindB("Debug::BuildDeps",false) == true)
-                  cout << "  Is installed\n";
+              if (_config->FindB("Debug::BuildDeps",false) == true)
+                 cout << "    ...but the installed version doesn't meet the version requirement\n";
 
-               if (Cache->VS().CheckDep(IV.VerStr(),(*D).Op,(*D).Version.c_str()) == true)
-               {
-                  skipAlternatives = hasAlternatives;
-                  continue;
-               }
+              if (((*D).Op & pkgCache::Dep::LessEq) == pkgCache::Dep::LessEq)
+                 return _error->Error(_("Failed to satisfy %s dependency for %s: Installed package %s is too new"),
+                                       Last->BuildDepType((*D).Type), Src.c_str(), Pkg.FullName(true).c_str());
+           }
 
-               if (_config->FindB("Debug::BuildDeps",false) == true)
-                  cout << "    ...but the installed version doesn't meet the version requirement\n";
-
-               if (((*D).Op & pkgCache::Dep::LessEq) == pkgCache::Dep::LessEq)
-               {
-                  return _error->Error(_("Failed to satisfy %s dependency for %s: Installed package %s is too new"),
-                                       Last->BuildDepType((*D).Type),
-                                       Src.c_str(),
-                                       Pkg.FullName(true).c_str());
-               }
-            }
+           // Only consider virtual packages if there is no versioned dependency
+           if ((*D).Version.empty() == true)
+           {
+              /*
+               * If this is a virtual package, we need to check the list of
+               * packages that provide it and see if any of those are
+               * installed
+               */
+              pkgCache::PrvIterator Prv = Pkg.ProvidesList();
+              for (; Prv.end() != true; ++Prv)
+              {
+                 if (_config->FindB("Debug::BuildDeps",false) == true)
+                    cout << "  Checking provider " << Prv.OwnerPkg().FullName() << endl;
 
+                 if ((*Cache)[Prv.OwnerPkg()].InstVerIter(*Cache).end() == false)
+                    break;
+              }
 
-            if (_config->FindB("Debug::BuildDeps",false) == true)
-               cout << "  Trying to install " << (*D).Package << endl;
+              if (Prv.end() == false)
+              {
+                 if (_config->FindB("Debug::BuildDeps",false) == true)
+                    cout << "  Is provided by installed package " << Prv.OwnerPkg().FullName() << endl;
+                 skipAlternatives = hasAlternatives;
+                 continue;
+              }
+           }
+           else // versioned dependency
+           {
+              pkgCache::VerIterator CV = (*Cache)[Pkg].CandidateVerIter(*Cache);
+              if (CV.end() == true ||
+                  Cache->VS().CheckDep(CV.VerStr(),(*D).Op,(*D).Version.c_str()) == false)
+              {
+                 if (hasAlternatives)
+                    continue;
+                 else if (CV.end() == false)
+                    return _error->Error(_("%s dependency for %s cannot be satisfied "
+                                           "because candidate version of package %s "
+                                           "can't satisfy version requirements"),
+                                         Last->BuildDepType(D->Type), Src.c_str(),
+                                         D->Package.c_str());
+                 else
+                    return _error->Error(_("%s dependency for %s cannot be satisfied "
+                                           "because package %s has no candidate version"),
+                                         Last->BuildDepType(D->Type), Src.c_str(),
+                                         D->Package.c_str());
+              }
+           }
 
             if (TryToInstallBuildDep(Pkg,Cache,Fix,false,false) == true)
             {
@@ -3241,12 +3349,14 @@ int main(int argc,const char *argv[])                                   /*{{{*/
       {'s',"dry-run","APT::Get::Simulate",0},
       {'s',"no-act","APT::Get::Simulate",0},
       {'y',"yes","APT::Get::Assume-Yes",0},
-      {'y',"assume-yes","APT::Get::Assume-Yes",0},      
+      {'y',"assume-yes","APT::Get::Assume-Yes",0},
+      {0,"assume-no","APT::Get::Assume-No",0},
       {'f',"fix-broken","APT::Get::Fix-Broken",0},
       {'u',"show-upgraded","APT::Get::Show-Upgraded",0},
       {'m',"ignore-missing","APT::Get::Fix-Missing",0},
       {'t',"target-release","APT::Default-Release",CommandLine::HasArg},
       {'t',"default-release","APT::Default-Release",CommandLine::HasArg},
+      {'a',"host-architecture","APT::Get::Host-Architecture",CommandLine::HasArg},
       {0,"download","APT::Get::Download",0},
       {0,"fix-missing","APT::Get::Fix-Missing",0},
       {0,"ignore-hold","APT::Ignore-Hold",0},      
@@ -3270,6 +3380,7 @@ int main(int argc,const char *argv[])                                     /*{{{*/
       {0,"install-recommends","APT::Install-Recommends",CommandLine::Boolean},
       {0,"install-suggests","APT::Install-Suggests",CommandLine::Boolean},
       {0,"fix-policy","APT::Get::Fix-Policy-Broken",0},
+      {0,"solver","APT::Solver",CommandLine::HasArg},
       {'c',"config-file",0,CommandLine::ConfigFile},
       {'o',"option",0,CommandLine::ArbItem},
       {0,0,0,0}};
diff --git a/cmdline/apt-internal-solver.cc b/cmdline/apt-internal-solver.cc
new file mode 100644 (file)
index 0000000..ef6c688
--- /dev/null
@@ -0,0 +1,190 @@
+// -*- mode: cpp; mode: fold -*-
+// Description                                                         /*{{{*/
+/* #####################################################################
+
+   cover around the internal solver to be able to run it like an external
+
+   ##################################################################### */
+                                                                       /*}}}*/
+// Include Files                                                       /*{{{*/
+#include <apt-pkg/error.h>
+#include <apt-pkg/cmndline.h>
+#include <apt-pkg/init.h>
+#include <apt-pkg/cachefile.h>
+#include <apt-pkg/strutl.h>
+#include <apt-pkg/edsp.h>
+#include <apt-pkg/algorithms.h>
+#include <apt-pkg/fileutl.h>
+
+#include <config.h>
+#include <apti18n.h>
+
+#include <unistd.h>
+#include <cstdio>
+                                                                       /*}}}*/
+
+// ShowHelp - Show a help screen                                       /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+bool ShowHelp(CommandLine &CmdL) {
+       ioprintf(std::cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION,
+                COMMON_ARCH,__DATE__,__TIME__);
+
+       std::cout <<
+               _("Usage: apt-internal-resolver\n"
+               "\n"
+               "apt-internal-resolver is an interface to use the current internal\n"
+               "like an external resolver for the APT family for debugging or alike\n"
+               "\n"
+               "Options:\n"
+               "  -h  This help text.\n"
+               "  -q  Loggable output - no progress indicator\n"
+               "  -c=? Read this configuration file\n"
+               "  -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
+               "apt.conf(5) manual pages for more information and options.\n"
+               "                       This APT has Super Cow Powers.\n");
+       return true;
+}
+                                                                       /*}}}*/
+int main(int argc,const char *argv[])                                  /*{{{*/
+{
+       CommandLine::Args Args[] = {
+               {'h',"help","help",0},
+               {'v',"version","version",0},
+               {'q',"quiet","quiet",CommandLine::IntLevel},
+               {'q',"silent","quiet",CommandLine::IntLevel},
+               {'c',"config-file",0,CommandLine::ConfigFile},
+               {'o',"option",0,CommandLine::ArbItem},
+               {0,0,0,0}};
+
+       CommandLine CmdL(Args,_config);
+       if (pkgInitConfig(*_config) == false ||
+           CmdL.Parse(argc,argv) == false) {
+               _error->DumpErrors();
+               return 2;
+       }
+
+       // See if the help should be shown
+       if (_config->FindB("help") == true ||
+           _config->FindB("version") == true) {
+               ShowHelp(CmdL);
+               return 1;
+       }
+
+       if (CmdL.FileList[0] != 0 && strcmp(CmdL.FileList[0], "scenario") == 0)
+       {
+               if (pkgInitSystem(*_config,_system) == false) {
+                       std::cerr << "System could not be initialized!" << std::endl;
+                       return 1;
+               }
+               pkgCacheFile CacheFile;
+               CacheFile.Open(NULL, false);
+               APT::PackageSet pkgset = APT::PackageSet::FromCommandLine(CacheFile, CmdL.FileList + 1);
+               FILE* output = stdout;
+               if (pkgset.empty() == true)
+                       EDSP::WriteScenario(CacheFile, output);
+               else
+                       EDSP::WriteLimitedScenario(CacheFile, output, pkgset);
+               fclose(output);
+               _error->DumpErrors(std::cerr);
+               return 0;
+       }
+
+       // Deal with stdout not being a tty
+       if (!isatty(STDOUT_FILENO) && _config->FindI("quiet", -1) == -1)
+               _config->Set("quiet","1");
+
+       if (_config->FindI("quiet", 0) < 1)
+               _config->Set("Debug::EDSP::WriteSolution", true);
+
+       _config->Set("APT::Solver", "internal");
+       _config->Set("edsp::scenario", "stdin");
+       int input = STDIN_FILENO;
+       FILE* output = stdout;
+       SetNonBlock(input, false);
+
+       EDSP::WriteProgress(0, "Start up solver…", output);
+
+       if (pkgInitSystem(*_config,_system) == false) {
+               std::cerr << "System could not be initialized!" << std::endl;
+               return 1;
+       }
+
+       EDSP::WriteProgress(1, "Read request…", output);
+
+       if (WaitFd(input, false, 5) == false)
+               std::cerr << "WAIT timed out in the resolver" << std::endl;
+
+       std::list<std::string> install, remove;
+       bool upgrade, distUpgrade, autoRemove;
+       if (EDSP::ReadRequest(input, install, remove, upgrade, distUpgrade, autoRemove) == false) {
+               std::cerr << "Parsing the request failed!" << std::endl;
+               return 2;
+       }
+
+       EDSP::WriteProgress(5, "Read scenario…", output);
+
+       pkgCacheFile CacheFile;
+       CacheFile.Open(NULL, false);
+
+       EDSP::WriteProgress(50, "Apply request on scenario…", output);
+
+       if (EDSP::ApplyRequest(install, remove, CacheFile) == false) {
+               std::cerr << "Failed to apply request to depcache!" << std::endl;
+               return 3;
+       }
+
+       pkgProblemResolver Fix(CacheFile);
+       for (std::list<std::string>::const_iterator i = remove.begin();
+            i != remove.end(); ++i) {
+               pkgCache::PkgIterator P = CacheFile->FindPkg(*i);
+               Fix.Clear(P);
+               Fix.Protect(P);
+               Fix.Remove(P);
+       }
+
+       for (std::list<std::string>::const_iterator i = install.begin();
+            i != install.end(); ++i) {
+               pkgCache::PkgIterator P = CacheFile->FindPkg(*i);
+               Fix.Clear(P);
+               Fix.Protect(P);
+       }
+
+       for (std::list<std::string>::const_iterator i = install.begin();
+            i != install.end(); ++i)
+               CacheFile->MarkInstall(CacheFile->FindPkg(*i), true);
+
+       EDSP::WriteProgress(60, "Call problemresolver on current scenario…", output);
+
+       if (upgrade == true) {
+               if (pkgAllUpgrade(CacheFile) == false) {
+                       EDSP::WriteError("ERR_UNSOLVABLE_UPGRADE", "An upgrade error occured", output);
+                       return 0;
+               }
+       } else if (distUpgrade == true) {
+               if (pkgDistUpgrade(CacheFile) == false) {
+                       EDSP::WriteError("ERR_UNSOLVABLE_DIST_UPGRADE", "An dist-upgrade error occured", output);
+                       return 0;
+               }
+       } else if (Fix.Resolve() == false) {
+               EDSP::WriteError("ERR_UNSOLVABLE", "An error occured", output);
+               return 0;
+       }
+
+       EDSP::WriteProgress(95, "Write solution…", output);
+
+       if (EDSP::WriteSolution(CacheFile, output) == false) {
+               std::cerr << "Failed to output the solution!" << std::endl;
+               return 4;
+       }
+
+       EDSP::WriteProgress(100, "Done", output);
+
+       bool const Errors = _error->PendingError();
+       if (_config->FindI("quiet",0) > 0)
+               _error->DumpErrors(std::cerr);
+       else
+               _error->DumpErrors(std::cerr, GlobalError::DEBUG);
+       return Errors == true ? 100 : 0;
+}
+                                                                       /*}}}*/
index 843163f82c5fc3367f9a4d023817763888af8312..97d6e03235ea6738dd2074d58e27f508fa3c9c91 100755 (executable)
@@ -5,9 +5,12 @@ unset GREP_OPTIONS
 
 # We don't use a secret keyring, of course, but gpg panics and
 # implodes if there isn't one available
-GPG_CMD='gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg'
+SECRETKEYRING="$(mktemp)"
+trap "rm -f '${SECRETKEYRING}'" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
+GPG_CMD="gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring ${SECRETKEYRING}"
 
 if [ "$(id -u)" -eq 0 ]; then
+       # we could use a tmpfile here too, but creation of this tends to be time-consuming
        GPG_CMD="$GPG_CMD --trustdb-name /etc/apt/trustdb.gpg"
 fi
 
@@ -149,7 +152,7 @@ if [ "$1" = "--keyring" ]; then
         #echo "keyfile given"
        shift
        TRUSTEDFILE="$1"
-       if [ -r "$TRUSTEDFILE" ]; then
+       if [ -r "$TRUSTEDFILE" ] || [ "$2" = 'add' ]; then
                GPG="$GPG --keyring $TRUSTEDFILE --primary-keyring $TRUSTEDFILE"
        else
                echo >&2 "Error: The specified keyring »$TRUSTEDFILE« is missing or not readable"
index b2c6649793b09f566d0b8f934082ae27e1604188..8c9a47913e2d2854b05fa688b02e9866ac50a6d5 100644 (file)
@@ -5,6 +5,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/cachefile.h>
 #include <apt-pkg/cacheset.h>
 #include <apt-pkg/cmndline.h>
 #include <apt-pkg/init.h>
 #include <apt-pkg/strutl.h>
 
-#include <config.h>
-#include <apti18n.h>
-
 #include <algorithm>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 using namespace std;
 
index 171b0ba13d86ca2d9808320a59847af03afb94ad..44b74cf6c0901fcd3af204e2cb5fb1b07cddb425 100644 (file)
@@ -12,6 +12,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/tagfile.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/init.h>
 #include <apt-pkg/strutl.h>
 
-#include <config.h>
-#include <apti18n.h>
-    
 #include <vector>
 #include <algorithm>
 
 #include <locale.h>
 #include <unistd.h>
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
@@ -106,7 +107,7 @@ bool DoIt(string InFile)
    
    // Emit
    unsigned char *Buffer = new unsigned char[Largest+1];
-   for (vector<PkgName>::iterator I = List.begin(); I != List.end(); I++)
+   for (vector<PkgName>::iterator I = List.begin(); I != List.end(); ++I)
    {
       // Read in the Record.
       if (Fd.Seek(I->Offset) == false || Fd.Read(Buffer,I->Length) == false)
index e867dae73654fb573bdcaabc09ddf2fe5795261e..07e9eb8ca7c76cfbff0f588c2de0047f068135bf 100644 (file)
@@ -65,3 +65,17 @@ include $(PROGRAM_H)
 #TO=$(BIN)
 #TARGET=program
 #include $(COPY_H)
+
+# The internal solver acting as an external
+PROGRAM=apt-internal-solver
+SLIBS = -lapt-pkg $(INTLLIBS)
+LIB_MAKES = apt-pkg/makefile
+SOURCE = apt-internal-solver.cc
+include $(PROGRAM_H)
+
+# This just dumps out the state
+PROGRAM=apt-dump-solver
+SLIBS = -lapt-pkg $(INTLLIBS)
+LIB_MAKES = apt-pkg/makefile
+SOURCE = apt-dump-solver.cc
+include $(PROGRAM_H)
index 3bf7f853d79c7187f0dcfb93aefa502bdf885d62..c2602cf3651d893b8bf3ac73842e412b780cc34a 100644 (file)
@@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib)
 AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
 
 dnl -- SET THIS TO THE RELEASE VERSION --
-AC_DEFINE_UNQUOTED(VERSION,"0.8.15.1")
+AC_DEFINE_UNQUOTED(VERSION,"0.8.16~exp6")
 PACKAGE="apt"
 AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
 AC_SUBST(PACKAGE)
@@ -31,6 +31,10 @@ AC_CHECK_TOOL_PREFIX
 AC_PROG_CC
 AC_ISC_POSIX
 
+dnl check for large file support and enable it if possible
+dnl do this early as other stuff might depend on it
+AC_SYS_LARGEFILE
+
 dnl Check for other programs
 AC_PROG_CXX
 AC_PROG_CPP
@@ -151,7 +155,7 @@ if test "$cross_compiling" = "yes" -a "x$archline" = "x"; then
   AC_MSG_ERROR(When cross compiling, architecture must be present in sizetable)
 fi
 AC_C_BIGENDIAN
-   
+
 dnl We do not need this if we have inttypes!
 HAVE_C9X=yes
 if test x"$apt_cv_c9x_ints" = x"no"; then
index 86aa69cebe9d1951df090a02cd1fd52c0d893b6f..4ec23f55db945c1b379f4165c73aaa3c930440e8 100644 (file)
@@ -1,2 +1,3 @@
 README.progress-reporting
 README.MultiArch
+doc/external-dependency-solver-protocol.txt
index 14f5b95d7f480e37c9af9aebb8b7f3c5167e58e8..681e55192bd8aaab19b6d05d127d411cfe50b0be 100644 (file)
@@ -1,2 +1,2 @@
-usr/lib
+usr/lib/apt/solvers
 usr/bin
index d947f26d4b0bfdafc5173eba66461432d863fdfa..8b137891791fe96927ad78e64b0aad7bded08bdc 100644 (file)
@@ -1 +1 @@
-bin/libapt-inst*.so.* usr/lib/
+
diff --git a/debian/apt-utils.links b/debian/apt-utils.links
new file mode 100644 (file)
index 0000000..5bf138c
--- /dev/null
@@ -0,0 +1 @@
+usr/bin/apt-internal-solver usr/lib/apt/solvers/apt
diff --git a/debian/apt-utils.symbols b/debian/apt-utils.symbols
deleted file mode 100644 (file)
index 9ba283a..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-libapt-inst.so.1.2 libapt-inst1.2
-| apt-utils #MINVER#
-* Build-Depends-Package: libapt-pkg-dev
- (c++)"ExtractTar::Done(bool)@Base" 0.8.0
- (c++)"ExtractTar::Go(pkgDirStream&)@Base" 0.8.0
- (c++)"ExtractTar::StartGzip()@Base" 0.8.0
- (c++)"ExtractTar::ExtractTar(FileFd&, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"ExtractTar::~ExtractTar()@Base" 0.8.0
- (c++)"debDebFile::GotoMember(char const*)@Base" 0.8.0
- (c++)"debDebFile::CheckMember(char const*)@Base" 0.8.0
- (c++)"debDebFile::MergeControl(pkgDataBase&)@Base" 0.8.0
- (c++)"debDebFile::ControlExtract::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0
- (c++)"debDebFile::ControlExtract::~ControlExtract()@Base" 0.8.0
- (c++)"debDebFile::ExtractArchive(pkgDirStream&)@Base" 0.8.0
- (c++)"debDebFile::ExtractControl(pkgDataBase&)@Base" 0.8.0
- (c++)"debDebFile::MemControlExtract::TakeControl(void const*, unsigned long)@Base" 0.8.0
- (c++)"debDebFile::MemControlExtract::Read(debDebFile&)@Base" 0.8.0
- (c++)"debDebFile::MemControlExtract::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0
- (c++)"debDebFile::MemControlExtract::Process(pkgDirStream::Item&, unsigned char const*, unsigned long, unsigned long)@Base" 0.8.0
- (c++)"debDebFile::MemControlExtract::~MemControlExtract()@Base" 0.8.0
- (c++)"debDebFile::debDebFile(FileFd&)@Base" 0.8.0
- (c++)"pkgExtract::FinishedFile(pkgDirStream::Item&, int)@Base" 0.8.0
- (c++)"pkgExtract::CheckDirReplace(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int)@Base" 0.8.0
- (c++)"pkgExtract::HandleOverwrites(pkgFLCache::NodeIterator, bool)@Base" 0.8.0
- (c++)"pkgExtract::Fail(pkgDirStream::Item&, int)@Base" 0.8.0
- (c++)"pkgExtract::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0
- (c++)"pkgExtract::Aborted()@Base" 0.8.0
- (c++)"pkgExtract::Finished()@Base" 0.8.0
- (c++)"pkgExtract::pkgExtract(pkgFLCache&, pkgCache::VerIterator)@Base" 0.8.0
- (c++)"pkgExtract::~pkgExtract()@Base" 0.8.0
- (c++)"pkgFLCache::TreeLookup(unsigned int*, char const*, char const*, unsigned long, unsigned int*, bool)@Base" 0.8.0
- (c++)"pkgFLCache::AddConfFile(char const*, char const*, pkgFLCache::PkgIterator const&, unsigned char const*)@Base" 0.8.0
- (c++)"pkgFLCache::AddDiversion(pkgFLCache::PkgIterator const&, char const*, char const*)@Base" 0.8.0
- (c++)"pkgFLCache::BeginDiverLoad()@Base" 0.8.0
- (c++)"pkgFLCache::FinishDiverLoad()@Base" 0.8.0
- (c++)"pkgFLCache::GetPkg(char const*, char const*, bool)@Base" 0.8.0
- (c++)"pkgFLCache::Header::Header()@Base" 0.8.0
- (c++)"pkgFLCache::GetNode(char const*, char const*, unsigned int, bool, bool)@Base" 0.8.0
- (c++)"pkgFLCache::DropNode(unsigned int)@Base" 0.8.0
- (c++)"pkgFLCache::HashNode(pkgFLCache::NodeIterator const&)@Base" 0.8.0
- (c++)"pkgFLCache::PrintTree(unsigned int, unsigned long)@Base" 0.8.0
- (c++)"pkgFLCache::pkgFLCache(DynamicMMap&)@Base" 0.8.0
- (c++)"pkgDataBase::GetMetaTmp(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
- (c++)"pkgDataBase::~pkgDataBase()@Base" 0.8.0
- (c++)"pkgDirStream::FinishedFile(pkgDirStream::Item&, int)@Base" 0.8.0
- (c++)"pkgDirStream::Fail(pkgDirStream::Item&, int)@Base" 0.8.0
- (c++)"pkgDirStream::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0
- (c++)"pkgDirStream::Process(pkgDirStream::Item&, unsigned char const*, unsigned long, unsigned long)@Base" 0.8.0
- (c++)"pkgDirStream::~pkgDirStream()@Base" 0.8.0
- (c++|optional)"debListParser::~debListParser()@Base" 0.8.0
- (c++|optional)"pkgCacheGenerator::ListParser::CollectFileProvides(pkgCache&, pkgCache::VerIterator&)@Base" 0.8.0
- (c++|optional)"pkgCacheGenerator::ListParser::~ListParser()@Base" 0.8.0
- (c++|optional)"pkgCache::DepIterator::operator++(int)@Base" 0.8.0
- (c++|optional)"pkgCache::DepIterator::operator++()@Base" 0.8.0
- (c++|optional)"pkgCache::VerIterator::operator++(int)@Base" 0.8.0
- (c++|optional)"pkgCache::VerIterator::operator++()@Base" 0.8.0
- (c++)"ARArchive::LoadHeaders()@Base" 0.8.0
- (c++)"ARArchive::ARArchive(FileFd&)@Base" 0.8.0
- (c++)"ARArchive::~ARArchive()@Base" 0.8.0
- (c++)"debDpkgDB::InitMetaTmp(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
- (c++)"debDpkgDB::LoadChanges()@Base" 0.8.0
- (c++)"debDpkgDB::ReadConfFiles()@Base" 0.8.0
- (c++)"debDpkgDB::ReadyFileList(OpProgress&)@Base" 0.8.0
- (c++)"debDpkgDB::ReadyPkgCache(OpProgress&)@Base" 0.8.0
- (c++)"debDpkgDB::ReadDiversions()@Base" 0.8.0
- (c++)"debDpkgDB::ReadFList(OpProgress&)@Base" 0.8.0
- (c++)"debDpkgDB::debDpkgDB()@Base" 0.8.0
- (c++)"debDpkgDB::~debDpkgDB()@Base" 0.8.0
- (c++)"pkgFLCache::NodeIterator::RealPackage() const@Base" 0.8.0
- (c++)"pkgFLCache::Header::CheckSizes(pkgFLCache::Header&) const@Base" 0.8.0
- (c++|optional)"pkgCache::DepIterator::OwnerPointer() const@Base" 0.8.0
- (c++|optional)"pkgCache::VerIterator::OwnerPointer() const@Base" 0.8.0
- (c++)"ARArchive::FindMember(char const*) const@Base" 0.8.0
- (c++)"typeinfo for ExtractTar@Base" 0.8.0
- (c++)"typeinfo for pkgExtract@Base" 0.8.0
- (c++)"typeinfo for pkgDataBase@Base" 0.8.0
- (c++)"typeinfo for pkgDirStream@Base" 0.8.0
- (c++)"typeinfo for debDpkgDB@Base" 0.8.0
- (c++)"typeinfo for debDebFile::ControlExtract@Base" 0.8.0
- (c++)"typeinfo for debDebFile::MemControlExtract@Base" 0.8.0
- (c++|optional)"typeinfo for pkgCacheGenerator::ListParser@Base" 0.8.0
- (c++|optional)"typeinfo for pkgCache::DepIterator@Base" 0.8.0
- (c++|optional)"typeinfo for pkgCache::VerIterator@Base" 0.8.0
- (c++|optional)"typeinfo for pkgCache::Iterator<pkgCache::Dependency, pkgCache::DepIterator>@Base" 0.8.0
- (c++|optional)"typeinfo for pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>@Base" 0.8.0
- (c++|optional)"typeinfo for pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>@Base" 0.8.0
- (c++)"typeinfo name for ExtractTar@Base" 0.8.0
- (c++)"typeinfo name for pkgExtract@Base" 0.8.0
- (c++)"typeinfo name for pkgDataBase@Base" 0.8.0
- (c++)"typeinfo name for pkgDirStream@Base" 0.8.0
- (c++)"typeinfo name for debDpkgDB@Base" 0.8.0
- (c++)"typeinfo name for debDebFile::ControlExtract@Base" 0.8.0
- (c++)"typeinfo name for debDebFile::MemControlExtract@Base" 0.8.0
- (c++|optional)"typeinfo name for pkgCacheGenerator::ListParser@Base" 0.8.0
- (c++|optional)"typeinfo name for pkgCache::DepIterator@Base" 0.8.0
- (c++|optional)"typeinfo name for pkgCache::VerIterator@Base" 0.8.0
- (c++|optional)"typeinfo name for pkgCache::Iterator<pkgCache::Dependency, pkgCache::DepIterator>@Base" 0.8.0
- (c++|optional)"typeinfo name for pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>@Base" 0.8.0
- (c++|optional)"typeinfo name for pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>@Base" 0.8.0
- (c++)"vtable for ExtractTar@Base" 0.8.0
- (c++)"vtable for pkgExtract@Base" 0.8.0
- (c++)"vtable for pkgDataBase@Base" 0.8.0
- (c++)"vtable for pkgDirStream@Base" 0.8.0
- (c++)"vtable for debDpkgDB@Base" 0.8.0
- (c++)"vtable for debDebFile::ControlExtract@Base" 0.8.0
- (c++)"vtable for debDebFile::MemControlExtract@Base" 0.8.0
- (c++|optional)"vtable for pkgCacheGenerator::ListParser@Base" 0.8.0
- (c++|optional)"vtable for pkgCache::DepIterator@Base" 0.8.0
- (c++|optional)"vtable for pkgCache::VerIterator@Base" 0.8.0
- (c++|optional)"vtable for pkgCache::Iterator<pkgCache::Dependency, pkgCache::DepIterator>@Base" 0.8.0
- (c++|optional)"vtable for pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>@Base" 0.8.0
- (c++|optional)"vtable for pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>@Base" 0.8.0
-### gcc-4.4 specific
-# (c++|regex|optional=std)"^char\* std::[^ ]+<.+ >::_.+@Base$" 0.8.0
-# (c++|optional=std)"std::basic_string<char, std::char_traits<char>, std::allocator<char> >& std::basic_string<char, std::char_traits<char>, std::allocator<char> >::append<unsigned char*>(unsigned char*, unsigned char*)@Base" 0.8.0
-### gcc-4.6 specific
- (c++|optional=std)"std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::~vector()@Base" 0.8.12 1
- (c++|optional=std)"std::basic_string<char, std::char_traits<char>, std::allocator<char> >& std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_dispatch<unsigned char*>(__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, unsigned char*, unsigned char*, std::__false_type)@Base" 0.8.0
-### try to ignore std:: template instances
- (c++|regex|optional=std)"^std::basic_string<.+ >\(.+\)@Base$" 0.8.0
- (c++|regex|optional=std)"^typeinfo name for std::iterator<.*>@Base$" 0.8.0
- (c++|regex|optional=std)"^typeinfo for std::iterator<.*>@Base$" 0.8.0
-###
index 2770d79bb630f6c7d50ec7fd1604937465ca4dc2..f9c0b6c3e54b7487d0a09cff219d691424c2558b 100644 (file)
@@ -1,5 +1,6 @@
 usr/bin
 usr/lib/apt/methods
+usr/lib/apt/solvers
 usr/lib/dpkg/methods/apt
 etc/apt
 etc/apt/apt.conf.d
index 979e04ce2036e3b1096cc009da0f0d26bbe29b2f..9d4008fabfd5a1c84effd29d1e5648cb13d850a3 100644 (file)
@@ -1,5 +1,4 @@
 bin/apt-* usr/bin/
-bin/libapt-pkg*.so.* usr/lib/
 bin/methods/* usr/lib/apt/methods/
 scripts/dselect/* usr/lib/dpkg/methods/apt/
-locale usr/share/
+usr/share/locale/*/*/apt.mo
index cc0d8b1fec4ef94f8edfbb6584e26704a2aa8e4e..4d87c4e256f8ab3ee936a6037a6f0b748ef53580 100644 (file)
@@ -15,6 +15,11 @@ set -e
 
 case "$1" in
     configure)
+       SECRING='/etc/apt/secring.gpg'
+       # test if secring is an empty normal file
+       if test -f $SECRING -a ! -s $SECRING; then
+               rm -f $SECRING
+       fi
        apt-key update
     ;;
 
diff --git a/debian/apt.symbols b/debian/apt.symbols
deleted file mode 100644 (file)
index 04e13ed..0000000
+++ /dev/null
@@ -1,1330 +0,0 @@
-libapt-pkg.so.4.10 libapt-pkg4.10
-| apt #MINVER#
-* Build-Depends-Package: libapt-pkg-dev
- TFRewritePackageOrder@Base 0.8.0
- TFRewriteSourceOrder@Base 0.8.0
- (c++)"FileExists(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"IdentCdrom(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int)@Base" 0.8.0
- (c++)"ListUpdate(pkgAcquireStatus&, pkgSourceList&, int)@Base" 0.8.0
- (c++)"MountCdrom(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"ParseCWord(char const*&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
- (c++)"ReadPinDir(pkgPolicy&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"RunScripts(char const*)@Base" 0.8.0
- (c++)"SafeGetCWD()@Base" 0.8.0
- (c++)"parsenetrc(char*, char*, char*, char*)@Base" 0.8.0
- (c++)"QuoteString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@Base" 0.8.0
- (c++)"ReadPinFile(pkgPolicy&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"RegexChoice(RxChoiceList*, char const**, char const**)@Base" 0.8.0
- (c++)"SetNonBlock(int, bool)@Base" 0.8.0
- (c++)"TimeRFC1123(long)@Base" 0.8.0
- (c++)"flExtension(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"Base64Encode(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"ReadMessages(int, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)@Base" 0.8.0
- (c++)"SetCloseExec(int, bool)@Base" 0.8.0
- (c++)"StringToBool(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)@Base" 0.8.0
- (c++)"UnmountCdrom(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"_GetErrorObj()@Base" 0.8.0
- (c++)"pkgFixBroken(pkgDepCache&)@Base" 0.8.0
- (c++)"DeQuoteString(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&)@Base" 0.8.0
- (c++)"DeQuoteString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"OutputInDepth(unsigned long, char const*)@Base" 0.8.0
- (c++)"ReadConfigDir(Configuration&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, unsigned int const&)@Base" 0.8.0
- (c++)"URItoFileName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"UTF8ToCodeset(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)@Base" 0.8.0
- (c++)"pkgAllUpgrade(pkgDepCache&)@Base" 0.8.0
- (c++)"pkgInitConfig(Configuration&)@Base" 0.8.0
- (c++)"pkgInitSystem(Configuration&, pkgSystem*&)@Base" 0.8.0
- (c++)"safe_snprintf(char*, char*, char const*, ...)@Base" 0.8.0
- (c++)"stringcasecmp(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char const*, char const*)@Base" 0.8.0
- (c++)"stringcasecmp(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >)@Base" 0.8.0
- (c++)"stringcasecmp(char const*, char const*, char const*, char const*)@Base" 0.8.0
- (c++)"tolower_ascii(int)@Base" 0.8.0
- (c++)"ParseQuoteWord(char const*&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
- (c++)"ReadConfigFile(Configuration&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, unsigned int const&)@Base" 0.8.0
- (c++)"TokSplitString(char, char*, char**, unsigned long)@Base" 0.8.0
- (c++)"maybe_add_auth(URI&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgApplyStatus(pkgDepCache&)@Base" 0.8.0
- (c++)"pkgDistUpgrade(pkgDepCache&)@Base" 0.8.0
- (c++)"CheckDomainList(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"CreateDirectory(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"DirectoryExists(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"VectorizeString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const&)@Base" 0.8.0
- (c++)"pkgPrioSortList(pkgCache&, pkgCache::Version**)@Base" 0.8.0
- (c++)"FTPMDTMStrToTime(char const*, long&)@Base" 0.8.0
- (c++)"RFC1123StrToTime(char const*, long&)@Base" 0.8.0
- (c++)"pkgMakeStatusCache(pkgSourceList&, OpProgress&, MMap**, bool)@Base" 0.8.0
- (c++)"pkgMinimizeUpgrade(pkgDepCache&)@Base" 0.8.0
- (c++)"GetListOfFilesInDir(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool const&)@Base" 0.8.0
- (c++)"GetListOfFilesInDir(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, bool const&)@Base" 0.8.0
- (c++)"pkgMakeStatusCacheMem(pkgSourceList&, OpProgress&)@Base" 0.8.0
- (c++)"pkgMakeOnlyStatusCache(OpProgress&, DynamicMMap**)@Base" 0.8.0
- (c++)"WaitFd(int, bool, unsigned long)@Base" 0.8.0
- (c++)"GetLock(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@Base" 0.8.0
- (c++)"Hex2Num(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned char*, unsigned int)@Base" 0.8.0
- (c++)"AddCRC16(unsigned short, void const*, unsigned long)@Base" 0.8.0
- (c++)"CopyFile(FileFd&, FileFd&)@Base" 0.8.0
- (c++)"ExecFork()@Base" 0.8.0
- (c++)"ExecWait(int, char const*, bool)@Base" 0.8.0
- (c++)"StrToNum(char const*, unsigned long&, unsigned int, unsigned int)@Base" 0.8.0
- (c++)"SubstVar(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"SubstVar(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, SubstVar const*)@Base" 0.8.0
- (c++)"flNoLink(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"flNotDir(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"ioprintf(std::basic_ostream<char, std::char_traits<char> >&, char const*, ...)@Base" 0.8.0
- (c++)"IsMounted(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
- (c++)"LookupTag(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, char const*)@Base" 0.8.0
- (c++)"SizeToStr(double)@Base" 0.8.0
- (c++)"StrToTime(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long&)@Base" 0.8.0
- (c++)"TFRewrite(_IO_FILE*, pkgTagSection const&, char const**, TFRewriteData*)@Base" 0.8.0
- (c++)"TimeToStr(unsigned long)@Base" 0.8.0
- (c++)"_strstrip(char*)@Base" 0.8.0
- (c++)"flCombine(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"flNotFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"stringcmp(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char const*, char const*)@Base" 0.8.0
- (c++)"stringcmp(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >)@Base" 0.8.0
- (c++)"stringcmp(char const*, char const*, char const*, char const*)@Base" 0.8.0
- (c++)"strprintf(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const*, ...)@Base" 0.8.0
- (c++)"guard variable for pkgCacheGenerator::Dynamic<pkgCache::DepIterator>::toReMap@Base" 0.8.0
- (c++)"guard variable for pkgCacheGenerator::Dynamic<pkgCache::GrpIterator>::toReMap@Base" 0.8.0
- (c++)"guard variable for pkgCacheGenerator::Dynamic<pkgCache::PkgIterator>::toReMap@Base" 0.8.0
- (c++)"guard variable for pkgCacheGenerator::Dynamic<pkgCache::PrvIterator>::toReMap@Base" 0.8.0
- (c++)"guard variable for pkgCacheGenerator::Dynamic<pkgCache::VerIterator>::toReMap@Base" 0.8.0
- (c++)"guard variable for pkgCacheGenerator::Dynamic<pkgCache::DescIterator>::toReMap@Base" 0.8.0
- (c++)"guard variable for pkgCacheGenerator::Dynamic<pkgCache::PkgFileIterator>::toReMap@Base" 0.8.0
- (c++)"HashString::SupportedHashes()@Base" 0.8.0
- (c++)"HashString::_SupportedHashes@Base" 0.8.0
- (c++)"HashString::HashString(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"HashString::HashString(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"HashString::HashString()@Base" 0.8.0
- (c++)"HashString::~HashString()@Base" 0.8.0
- (c++)"OpProgress::CheckChange(float)@Base" 0.8.0
- (c++)"OpProgress::SubProgress(unsigned long)@Base" 0.8.0
- (c++)"OpProgress::SubProgress(unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"OpProgress::OverallProgress(unsigned long, unsigned long, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"OpProgress::Done()@Base" 0.8.0
- (c++)"OpProgress::Update()@Base" 0.8.0
- (c++)"OpProgress::Progress(unsigned long)@Base" 0.8.0
- (c++)"OpProgress::OpProgress()@Base" 0.8.0
- (c++)"OpProgress::~OpProgress()@Base" 0.8.0
- (c++)"SourceCopy::GetFileName()@Base" 0.8.0
- (c++)"SourceCopy::RewriteEntry(_IO_FILE*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"SourceCopy::Type()@Base" 0.8.0
- (c++)"SourceCopy::GetFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&)@Base" 0.8.0
- (c++)"SourceCopy::~SourceCopy()@Base" 0.8.0
- (c++)"pkgAcqFile::Custom600Headers()@Base" 0.8.0
- (c++)"pkgAcqFile::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqFile::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqFile::DescURI()@Base" 0.8.0
- (c++)"pkgAcqFile::HashSum()@Base" 0.8.0
- (c++)"pkgAcqFile::pkgAcqFile(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@Base" 0.8.0
- (c++)"pkgAcqFile::~pkgAcqFile()@Base" 0.8.0
- (c++)"pkgAcquire::WorkerStep(pkgAcquire::Worker*)@Base" 0.8.0
- (c++)"pkgAcquire::FetchNeeded()@Base" 0.8.0
- (c++)"pkgAcquire::TotalNeeded()@Base" 0.8.0
- (c++)"pkgAcquire::MethodConfig::MethodConfig()@Base" 0.8.0
- (c++)"pkgAcquire::PartialPresent()@Base" 0.8.0
- (c++)"pkgAcquire::Add(pkgAcquire::Item*)@Base" 0.8.0
- (c++)"pkgAcquire::Add(pkgAcquire::Worker*)@Base" 0.8.0
- (c++)"pkgAcquire::Run(int)@Base" 0.8.0
- (c++)"pkgAcquire::Bump()@Base" 0.8.0
- (c++)"pkgAcquire::Item::Custom600Headers()@Base" 0.8.0
- (c++)"pkgAcquire::Item::ReportMirrorFailure(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgAcquire::Item::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcquire::Item::Start(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long)@Base" 0.8.0
- (c++)"pkgAcquire::Item::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcquire::Item::Rename(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgAcquire::Item::HashSum()@Base" 0.8.0
- (c++)"pkgAcquire::Item::Finished()@Base" 0.8.0
- (c++)"pkgAcquire::Item::IsTrusted()@Base" 0.8.0
- (c++)"pkgAcquire::Item::ShortDesc()@Base" 0.8.0
- (c++)"pkgAcquire::Item::Item(pkgAcquire*)@Base" 0.8.0
- (c++)"pkgAcquire::Item::~Item()@Base" 0.8.0
- (c++)"pkgAcquire::Clean(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgAcquire::Queue::Bump()@Base" 0.8.0
- (c++)"pkgAcquire::Queue::Cycle()@Base" 0.8.0
- (c++)"pkgAcquire::Queue::Dequeue(pkgAcquire::Item*)@Base" 0.8.0
- (c++)"pkgAcquire::Queue::Enqueue(pkgAcquire::ItemDesc&)@Base" 0.8.0
- (c++)"pkgAcquire::Queue::Startup()@Base" 0.8.0
- (c++)"pkgAcquire::Queue::FindItem(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::Worker*)@Base" 0.8.0
- (c++)"pkgAcquire::Queue::ItemDone(pkgAcquire::Queue::QItem*)@Base" 0.8.0
- (c++)"pkgAcquire::Queue::Shutdown(bool)@Base" 0.8.0
- (c++)"pkgAcquire::Queue::Queue(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire*)@Base" 0.8.0
- (c++)"pkgAcquire::Queue::~Queue()@Base" 0.8.0
- (c++)"pkgAcquire::Setup(pkgAcquireStatus*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"pkgAcquire::Remove(pkgAcquire::Item*)@Base" 0.8.0
- (c++)"pkgAcquire::Remove(pkgAcquire::Worker*)@Base" 0.8.0
- (c++)"pkgAcquire::RunFds(fd_set*, fd_set*)@Base" 0.8.0
- (c++)"pkgAcquire::SetFds(int&, fd_set*, fd_set*)@Base" 0.8.0
- (c++)"pkgAcquire::UriEnd()@Base" 0.8.0
- (c++)"pkgAcquire::Worker::OutFdReady()@Base" 0.8.0
- (c++)"pkgAcquire::Worker::MediaChange(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgAcquire::Worker::RunMessages()@Base" 0.8.0
- (c++)"pkgAcquire::Worker::Capabilities(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgAcquire::Worker::ReadMessages()@Base" 0.8.0
- (c++)"pkgAcquire::Worker::MethodFailure()@Base" 0.8.0
- (c++)"pkgAcquire::Worker::SendConfiguration()@Base" 0.8.0
- (c++)"pkgAcquire::Worker::Pulse()@Base" 0.8.0
- (c++)"pkgAcquire::Worker::Start()@Base" 0.8.0
- (c++)"pkgAcquire::Worker::ItemDone()@Base" 0.8.0
- (c++)"pkgAcquire::Worker::Construct()@Base" 0.8.0
- (c++)"pkgAcquire::Worker::InFdReady()@Base" 0.8.0
- (c++)"pkgAcquire::Worker::QueueItem(pkgAcquire::Queue::QItem*)@Base" 0.8.0
- (c++)"pkgAcquire::Worker::Worker(pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcquire::Worker::Worker(pkgAcquire::Queue*, pkgAcquire::MethodConfig*, pkgAcquireStatus*)@Base" 0.8.0
- (c++)"pkgAcquire::Worker::~Worker()@Base" 0.8.0
- (c++)"pkgAcquire::Dequeue(pkgAcquire::Item*)@Base" 0.8.0
- (c++)"pkgAcquire::Enqueue(pkgAcquire::ItemDesc&)@Base" 0.8.0
- (c++)"pkgAcquire::ItemDesc::~ItemDesc()@Base" 0.8.0
- (c++)"pkgAcquire::Shutdown()@Base" 0.8.0
- (c++)"pkgAcquire::UriBegin()@Base" 0.8.0
- (c++)"pkgAcquire::GetConfig(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgAcquire::QueueName(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig const*&)@Base" 0.8.0
- (c++)"pkgAcquire::pkgAcquire(pkgAcquireStatus*)@Base" 0.8.0
- (c++)"pkgAcquire::pkgAcquire()@Base" 0.8.0
- (c++)"pkgAcquire::~pkgAcquire()@Base" 0.8.0
- (c++)"pkgRecords::Lookup(pkgCache::VerFileIterator const&)@Base" 0.8.0
- (c++)"pkgRecords::Lookup(pkgCache::DescFileIterator const&)@Base" 0.8.0
- (c++)"pkgRecords::Parser::Maintainer()@Base" 0.8.0
- (c++)"pkgRecords::Parser::SHA256Hash()@Base" 0.8.0
- (c++)"pkgRecords::Parser::Name()@Base" 0.8.0
- (c++)"pkgRecords::Parser::GetRec(char const*&, char const*&)@Base" 0.8.0
- (c++)"pkgRecords::Parser::MD5Hash()@Base" 0.8.0
- (c++)"pkgRecords::Parser::FileName()@Base" 0.8.0
- (c++)"pkgRecords::Parser::Homepage()@Base" 0.8.0
- (c++)"pkgRecords::Parser::LongDesc()@Base" 0.8.0
- (c++)"pkgRecords::Parser::SHA1Hash()@Base" 0.8.0
- (c++)"pkgRecords::Parser::ShortDesc()@Base" 0.8.0
- (c++)"pkgRecords::Parser::SourcePkg()@Base" 0.8.0
- (c++)"pkgRecords::Parser::SourceVer()@Base" 0.8.0
- (c++)"pkgRecords::Parser::~Parser()@Base" 0.8.0
- (c++)"pkgRecords::pkgRecords(pkgCache&)@Base" 0.8.0
- (c++)"pkgRecords::~pkgRecords()@Base" 0.8.0
- (c++)"pkgTagFile::Fill()@Base" 0.8.0
- (c++)"pkgTagFile::Jump(pkgTagSection&, unsigned long)@Base" 0.8.0
- (c++)"pkgTagFile::Step(pkgTagSection&)@Base" 0.8.0
- (c++)"pkgTagFile::Resize()@Base" 0.8.0
- (c++)"pkgTagFile::pkgTagFile(FileFd*, unsigned long)@Base" 0.8.0
- (c++)"pkgTagFile::~pkgTagFile()@Base" 0.8.0
- (c++)"CdromDevice::~CdromDevice()@Base" 0.8.0
- (c++)"CommandLine::DispatchArg(CommandLine::Dispatch*, bool)@Base" 0.8.0
- (c++)"CommandLine::SaveInConfig(unsigned int const&, char const* const*)@Base" 0.8.0
- (c++)"CommandLine::Parse(int, char const**)@Base" 0.8.0
- (c++)"CommandLine::HandleOpt(int&, int, char const**, char const*&, CommandLine::Args*, bool)@Base" 0.8.0
- (c++)"CommandLine::CommandLine(CommandLine::Args*, Configuration*)@Base" 0.8.0
- (c++)"CommandLine::~CommandLine()@Base" 0.8.0
- (c++)"DynamicMMap::RawAllocate(unsigned long, unsigned long)@Base" 0.8.0
- (c++)"DynamicMMap::WriteString(char const*, unsigned long)@Base" 0.8.0
- (c++)"DynamicMMap::Grow()@Base" 0.8.0
- (c++)"DynamicMMap::Allocate(unsigned long)@Base" 0.8.0
- (c++)"DynamicMMap::DynamicMMap(FileFd&, unsigned long, unsigned long const&, unsigned long const&, unsigned long const&)@Base" 0.8.0
- (c++)"DynamicMMap::DynamicMMap(unsigned long, unsigned long const&, unsigned long const&, unsigned long const&)@Base" 0.8.0
- (c++)"DynamicMMap::~DynamicMMap()@Base" 0.8.0
- (c++)"GlobalError::DumpErrors(std::basic_ostream<char, std::char_traits<char> >&, GlobalError::MsgType const&, bool const&)@Base" 0.8.0
- (c++)"GlobalError::PopMessage(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
- (c++)"GlobalError::InsertErrno(GlobalError::MsgType const&, char const*, char const*, ...)@Base" 0.8.0
- (c++)"GlobalError::PushToStack()@Base" 0.8.0
- (c++)"GlobalError::RevertToStack()@Base" 0.8.0
- (c++)"GlobalError::MergeWithStack()@Base" 0.8.0
- (c++)"GlobalError::Debug(char const*, ...)@Base" 0.8.0
- (c++)"GlobalError::Errno(char const*, char const*, ...)@Base" 0.8.0
- (c++)"GlobalError::Error(char const*, ...)@Base" 0.8.0
- (c++)"GlobalError::Fatal(char const*, ...)@Base" 0.8.0
- (c++)"GlobalError::DebugE(char const*, char const*, ...)@Base" 0.8.0
- (c++)"GlobalError::FatalE(char const*, char const*, ...)@Base" 0.8.0
- (c++)"GlobalError::Insert(GlobalError::MsgType const&, char const*, ...)@Base" 0.8.0
- (c++)"GlobalError::Notice(char const*, ...)@Base" 0.8.0
- (c++)"GlobalError::Discard()@Base" 0.8.0
- (c++)"GlobalError::NoticeE(char const*, char const*, ...)@Base" 0.8.0
- (c++)"GlobalError::Warning(char const*, ...)@Base" 0.8.0
- (c++)"GlobalError::WarningE(char const*, char const*, ...)@Base" 0.8.0
- (c++)"GlobalError::GlobalError()@Base" 0.8.0
- (c++)"MD5SumValue::Set(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"MD5SumValue::MD5SumValue(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"MD5SumValue::MD5SumValue()@Base" 0.8.0
- (c++)"PackageCopy::GetFileName()@Base" 0.8.0
- (c++)"PackageCopy::RewriteEntry(_IO_FILE*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"PackageCopy::Type()@Base" 0.8.0
- (c++)"PackageCopy::GetFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&)@Base" 0.8.0
- (c++)"PackageCopy::~PackageCopy()@Base" 0.8.0
- (c++)"pkgAcqIndex::Custom600Headers()@Base" 0.8.0
- (c++)"pkgAcqIndex::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqIndex::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqIndex::DescURI()@Base" 0.8.0
- (c++)"pkgAcqIndex::HashSum()@Base" 0.8.0
- (c++)"pkgAcqIndex::pkgAcqIndex(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, HashString, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgAcqIndex::~pkgAcqIndex()@Base" 0.8.0
- (c++)"pkgDepCache::IsDeleteOk(pkgCache::PkgIterator const&, bool, unsigned long, bool)@Base" 0.8.0
- (c++)"pkgDepCache::MarkDelete(pkgCache::PkgIterator const&, bool, unsigned long, bool)@Base" 0.8.0
- (c++)"pkgDepCache::StateCache::StripEpoch(char const*)@Base" 0.8.0
- (c++)"pkgDepCache::StateCache::Update(pkgCache::PkgIterator, pkgCache&)@Base" 0.8.0
- (c++)"pkgDepCache::ActionGroup::release()@Base" 0.8.0
- (c++)"pkgDepCache::ActionGroup::ActionGroup(pkgDepCache&)@Base" 0.8.0
- (c++)"pkgDepCache::ActionGroup::~ActionGroup()@Base" 0.8.0
- (c++)"pkgDepCache::IsInstallOk(pkgCache::PkgIterator const&, bool, unsigned long, bool)@Base" 0.8.0
- (c++)"pkgDepCache::MarkInstall(pkgCache::PkgIterator const&, bool, unsigned long, bool, bool)@Base" 0.8.0
- (c++)"pkgDepCache::MarkPackage(pkgCache::PkgIterator const&, pkgCache::VerIterator const&, bool const&, bool const&)@Base" 0.8.0
- (c++)"pkgDepCache::MarkRequired(pkgDepCache::InRootSetFunc&)@Base" 0.8.0
- (c++)"pkgDepCache::SetReInstall(pkgCache::PkgIterator const&, bool)@Base" 0.8.0
- (c++)"pkgDepCache::VersionState(pkgCache::DepIterator, unsigned char, unsigned char, unsigned char)@Base" 0.8.0
- (c++)"pkgDepCache::BuildGroupOrs(pkgCache::VerIterator const&)@Base" 0.8.0
- (c++)"pkgDepCache::InRootSetFunc::InRootSet(pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"pkgDepCache::InRootSetFunc::~InRootSetFunc()@Base" 0.8.0
- (c++)"pkgDepCache::readStateFile(OpProgress*)@Base" 0.8.0
- (c++)"pkgDepCache::GetRootSetFunc()@Base" 0.8.0
- (c++)"pkgDepCache::UpdateVerState(pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgDepCache::writeStateFile(OpProgress*, bool)@Base" 0.8.0
- (c++)"pkgDepCache::DependencyState(pkgCache::DepIterator&)@Base" 0.8.0
- (c++)"pkgDepCache::DefaultRootSetFunc::InRootSet(pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"pkgDepCache::DefaultRootSetFunc::~DefaultRootSetFunc()@Base" 0.8.0
- (c++)"pkgDepCache::MarkFollowsSuggests()@Base" 0.8.0
- (c++)"pkgDepCache::MarkFollowsRecommends()@Base" 0.8.0
- (c++)"pkgDepCache::Init(OpProgress*)@Base" 0.8.0
- (c++)"pkgDepCache::Sweep()@Base" 0.8.0
- (c++)"pkgDepCache::Policy::IsImportantDep(pkgCache::DepIterator const&)@Base" 0.8.0
- (c++)"pkgDepCache::Policy::GetCandidateVer(pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"pkgDepCache::Policy::~Policy()@Base" 0.8.0
- (c++)"pkgDepCache::Update(pkgCache::DepIterator)@Base" 0.8.0
- (c++)"pkgDepCache::Update(OpProgress*)@Base" 0.8.0
- (c++)"pkgDepCache::Update(pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"pkgDepCache::AddSizes(pkgCache::PkgIterator const&, bool const&)@Base" 0.8.0
- (c++)"pkgDepCache::AddSizes(pkgCache::PkgIterator const&, long)@Base" 0.8.0
- (c++)"pkgDepCache::CheckDep(pkgCache::DepIterator, int, pkgCache::PkgIterator&)@Base" 0.8.0
- (c++)"pkgDepCache::MarkAuto(pkgCache::PkgIterator const&, bool)@Base" 0.8.0
- (c++)"pkgDepCache::MarkKeep(pkgCache::PkgIterator const&, bool, bool, unsigned long)@Base" 0.8.0
- (c++)"pkgDepCache::AddStates(pkgCache::PkgIterator const&, int)@Base" 0.8.0
- (c++)"pkgDepCache::pkgDepCache(pkgCache*, pkgDepCache::Policy*)@Base" 0.8.0
- (c++)"pkgDepCache::~pkgDepCache()@Base" 0.8.0
- (c++)"pkgSimulate::ShortBreaks()@Base" 0.8.0
- (c++)"pkgSimulate::Policy::GetCandidateVer(pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"pkgSimulate::Policy::~Policy()@Base" 0.8.0
- (c++)"pkgSimulate::Remove(pkgCache::PkgIterator, bool)@Base" 0.8.0
- (c++)"pkgSimulate::Install(pkgCache::PkgIterator, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgSimulate::Describe(pkgCache::PkgIterator, std::basic_ostream<char, std::char_traits<char> >&, bool, bool)@Base" 0.8.0
- (c++)"pkgSimulate::Configure(pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgSimulate::pkgSimulate(pkgDepCache*)@Base" 0.8.0
- (c++)"pkgSimulate::~pkgSimulate()@Base" 0.8.0
- (c++)"MD5Summation::Add(unsigned char const*, unsigned long)@Base" 0.8.0
- (c++)"MD5Summation::AddFD(int, unsigned long)@Base" 0.8.0
- (c++)"MD5Summation::Result()@Base" 0.8.0
- (c++)"MD5Summation::MD5Summation()@Base" 0.8.0
- (c++)"SHA1SumValue::Set(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"SHA1SumValue::SHA1SumValue(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"SHA1SumValue::SHA1SumValue()@Base" 0.8.0
- (c++)"debIFTypePkg::~debIFTypePkg()@Base" 0.8.0
- (c++)"debIFTypeSrc::~debIFTypeSrc()@Base" 0.8.0
- (c++)"debSLTypeDeb::~debSLTypeDeb()@Base" 0.8.0
- (c++)"indexRecords::Load(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"indexRecords::Lookup(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"indexRecords::MetaKeys()@Base" 0.8.0
- (c++)"indexRecords::indexRecords(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"indexRecords::indexRecords()@Base" 0.8.0
- (c++)"indexRecords::~indexRecords()@Base" 0.8.0
- (c++)"pkgAcqMethod::FetchResult::TakeHashes(Hashes&)@Base" 0.8.0
- (c++)"pkgAcqMethod::FetchResult::FetchResult()@Base" 0.8.0
- (c++)"pkgAcqMethod::Configuration(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgAcqMethod::Log(char const*, ...)@Base" 0.8.0
- (c++)"pkgAcqMethod::Run(bool)@Base" 0.8.0
- (c++)"pkgAcqMethod::Exit()@Base" 0.8.0
- (c++)"pkgAcqMethod::Fail(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@Base" 0.8.0
- (c++)"pkgAcqMethod::Fail(bool)@Base" 0.8.0
- (c++)"pkgAcqMethod::Fetch(pkgAcqMethod::FetchItem*)@Base" 0.8.0
- (c++)"pkgAcqMethod::Status(char const*, ...)@Base" 0.8.0
- (c++)"pkgAcqMethod::URIDone(pkgAcqMethod::FetchResult&, pkgAcqMethod::FetchResult*)@Base" 0.8.0
- (c++)"pkgAcqMethod::Redirect(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"pkgAcqMethod::URIStart(pkgAcqMethod::FetchResult&)@Base" 0.8.0
- (c++)"pkgAcqMethod::MediaFail(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgAcqMethod::pkgAcqMethod(char const*, unsigned long)@Base" 0.8.0
- (c++)"pkgAcqMethod::~pkgAcqMethod()@Base" 0.8.0
- (c++)"pkgCacheFile::BuildCaches(OpProgress*, bool)@Base" 0.8.0
- (c++)"pkgCacheFile::BuildPolicy(OpProgress*)@Base" 0.8.0
- (c++)"pkgCacheFile::BuildDepCache(OpProgress*)@Base" 0.8.0
- (c++)"pkgCacheFile::BuildSourceList(OpProgress*)@Base" 0.8.0
- (c++)"pkgCacheFile::Open(OpProgress*, bool)@Base" 0.8.0
- (c++)"pkgCacheFile::Close()@Base" 0.8.0
- (c++)"pkgCacheFile::pkgCacheFile()@Base" 0.8.0
- (c++)"pkgCacheFile::~pkgCacheFile()@Base" 0.8.0
- (c++)"pkgIndexFile::LanguageCode()@Base" 0.8.0
- (c++)"pkgIndexFile::CheckLanguageCode(char const*)@Base" 0.8.0
- (c++)"pkgIndexFile::TranslationsAvailable()@Base" 0.8.0
- (c++)"pkgIndexFile::Type::GlobalList@Base" 0.8.0
- (c++)"pkgIndexFile::Type::GlobalListLen@Base" 0.8.0
- (c++)"pkgIndexFile::Type::GetType(char const*)@Base" 0.8.0
- (c++)"pkgIndexFile::Type::Type()@Base" 0.8.0
- (c++)"pkgIndexFile::Type::~Type()@Base" 0.8.0
- (c++)"pkgIndexFile::~pkgIndexFile()@Base" 0.8.0
- (c++)"pkgOrderList::VisitRDeps(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgOrderList::OrderUnpack(std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)@Base" 0.8.0
- (c++)"pkgOrderList::DepConfigure(pkgCache::DepIterator)@Base" 0.8.0
- (c++)"pkgOrderList::DepUnPackDep(pkgCache::DepIterator)@Base" 0.8.0
- (c++)"pkgOrderList::DepUnPackPre(pkgCache::DepIterator)@Base" 0.8.0
- (c++)"pkgOrderList::DepUnPackCrit(pkgCache::DepIterator)@Base" 0.8.0
- (c++)"pkgOrderList::DepUnPackPreD(pkgCache::DepIterator)@Base" 0.8.0
- (c++)"pkgOrderList::OrderCompareA(void const*, void const*)@Base" 0.8.0
- (c++)"pkgOrderList::OrderCompareB(void const*, void const*)@Base" 0.8.0
- (c++)"pkgOrderList::OrderCritical()@Base" 0.8.0
- (c++)"pkgOrderList::VisitProvides(pkgCache::DepIterator, bool)@Base" 0.8.0
- (c++)"pkgOrderList::OrderConfigure()@Base" 0.8.0
- (c++)"pkgOrderList::VisitRProvides(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::VerIterator)@Base" 0.8.0
- (c++)"pkgOrderList::Me@Base" 0.8.0
- (c++)"pkgOrderList::DoRun()@Base" 0.8.0
- (c++)"pkgOrderList::Score(pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgOrderList::AddLoop(pkgCache::DepIterator)@Base" 0.8.0
- (c++)"pkgOrderList::FileCmp(pkgCache::PkgIterator, pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgOrderList::CheckDep(pkgCache::DepIterator)@Base" 0.8.0
- (c++)"pkgOrderList::DepRemove(pkgCache::DepIterator)@Base" 0.8.0
- (c++)"pkgOrderList::IsMissing(pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgOrderList::VisitDeps(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgOrderList::VisitNode(pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgOrderList::WipeFlags(unsigned long)@Base" 0.8.0
- (c++)"pkgOrderList::pkgOrderList(pkgDepCache*)@Base" 0.8.0
- (c++)"pkgOrderList::~pkgOrderList()@Base" 0.8.0
- (c++)"Configuration::MatchAgainstConfig::MatchAgainstConfig(char const*)@Base" 0.8.0
- (c++)"Configuration::MatchAgainstConfig::~MatchAgainstConfig()@Base" 0.8.0
- (c++)"Configuration::Set(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"Configuration::Set(char const*, int const&)@Base" 0.8.0
- (c++)"Configuration::Dump(std::basic_ostream<char, std::char_traits<char> >&)@Base" 0.8.0
- (c++)"Configuration::Clear(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"Configuration::Clear(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int const&)@Base" 0.8.0
- (c++)"Configuration::Clear(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"Configuration::CndSet(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"Configuration::Lookup(char const*, bool const&)@Base" 0.8.0
- (c++)"Configuration::Lookup(Configuration::Item*, char const*, unsigned long const&, bool const&)@Base" 0.8.0
- (c++)"Configuration::Configuration(Configuration::Item const*)@Base" 0.8.0
- (c++)"Configuration::Configuration()@Base" 0.8.0
- (c++)"Configuration::~Configuration()@Base" 0.8.0
- (c++)"SHA1Summation::Add(unsigned char const*, unsigned long)@Base" 0.8.0
- (c++)"SHA1Summation::AddFD(int, unsigned long)@Base" 0.8.0
- (c++)"SHA1Summation::Result()@Base" 0.8.0
- (c++)"SHA1Summation::SHA1Summation()@Base" 0.8.0
- (c++)"WeakPointable::~WeakPointable()@Base" 0.8.0
- (c++)"debListParser::NewVersion(pkgCache::VerIterator&)@Base" 0.8.0
- (c++)"debListParser::UsePackage(pkgCache::PkgIterator&, pkgCache::VerIterator&)@Base" 0.8.0
- (c++)"debListParser::Description()@Base" 0.8.0
- (c++)"debListParser::ParseStatus(pkgCache::PkgIterator&, pkgCache::VerIterator&)@Base" 0.8.0
- (c++)"debListParser::VersionHash()@Base" 0.8.0
- (c++)"debListParser::Architecture()@Base" 0.8.0
- (c++)"debListParser::ParseDepends(char const*, char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&, bool const&, bool const&)@Base" 0.8.0
- (c++)"debListParser::ParseDepends(pkgCache::VerIterator&, char const*, unsigned int)@Base" 0.8.0
- (c++)"debListParser::ParseProvides(pkgCache::VerIterator&)@Base" 0.8.0
- (c++)"debListParser::ArchitectureAll()@Base" 0.8.0
- (c++)"debListParser::ConvertRelation(char const*, unsigned int&)@Base" 0.8.0
- (c++)"debListParser::Description_md5()@Base" 0.8.0
- (c++)"debListParser::LoadReleaseInfo(pkgCache::PkgFileIterator&, FileFd&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"debListParser::UniqFindTagWrite(char const*)@Base" 0.8.0
- (c++)"debListParser::DescriptionLanguage()@Base" 0.8.0
- (c++)"debListParser::Size()@Base" 0.8.0
- (c++)"debListParser::Step()@Base" 0.8.0
- (c++)"debListParser::Offset()@Base" 0.8.0
- (c++)"debListParser::GetPrio(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"debListParser::Package()@Base" 0.8.0
- (c++)"debListParser::Version()@Base" 0.8.0
- (c++)"debListParser::GrabWord(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, debListParser::WordList*, unsigned char&)@Base" 0.8.0
- (c++)"debListParser::debListParser(FileFd*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"debListParser::~debListParser()@Base" 0.8.0
- (c++)"pkgAcqArchive::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqArchive::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqArchive::DescURI()@Base" 0.8.0
- (c++)"pkgAcqArchive::HashSum()@Base" 0.8.0
- (c++)"pkgAcqArchive::Finished()@Base" 0.8.0
- (c++)"pkgAcqArchive::IsTrusted()@Base" 0.8.0
- (c++)"pkgAcqArchive::QueueNext()@Base" 0.8.0
- (c++)"pkgAcqArchive::ShortDesc()@Base" 0.8.0
- (c++)"pkgAcqArchive::pkgAcqArchive(pkgAcquire*, pkgSourceList*, pkgRecords*, pkgCache::VerIterator const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
- (c++)"pkgAcqArchive::~pkgAcqArchive()@Base" 0.8.0
- (c++)"pkgAcqMetaSig::Custom600Headers()@Base" 0.8.0
- (c++)"pkgAcqMetaSig::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqMetaSig::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqMetaSig::DescURI()@Base" 0.8.0
- (c++)"pkgAcqMetaSig::~pkgAcqMetaSig()@Base" 0.8.0
- (c++)"pkgSourceList::ReadAppend(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgSourceList::ReadMainList()@Base" 0.8.0
- (c++)"pkgSourceList::ReadSourceDir(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgSourceList::Read(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgSourceList::Type::GlobalList@Base" 0.8.0
- (c++)"pkgSourceList::Type::GlobalListLen@Base" 0.8.0
- (c++)"pkgSourceList::Type::GetType(char const*)@Base" 0.8.0
- (c++)"pkgSourceList::Type::Type()@Base" 0.8.0
- (c++)"pkgSourceList::Type::~Type()@Base" 0.8.0
- (c++)"pkgSourceList::Reset()@Base" 0.8.0
- (c++)"pkgSourceList::pkgSourceList(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgSourceList::pkgSourceList()@Base" 0.8.0
- (c++)"pkgSourceList::~pkgSourceList()@Base" 0.8.0
- (c++)"pkgSrcRecords::File::~File()@Base" 0.8.0
- (c++)"pkgSrcRecords::Find(char const*, bool const&)@Base" 0.8.0
- (c++)"pkgSrcRecords::Parser::BuildDepRec::~BuildDepRec()@Base" 0.8.0
- (c++)"pkgSrcRecords::Parser::BuildDepType(unsigned char const&)@Base" 0.8.0
- (c++)"pkgSrcRecords::Parser::~Parser()@Base" 0.8.0
- (c++)"pkgSrcRecords::Restart()@Base" 0.8.0
- (c++)"pkgSrcRecords::pkgSrcRecords(pkgSourceList&)@Base" 0.8.0
- (c++)"pkgSrcRecords::~pkgSrcRecords()@Base" 0.8.0
- (c++)"pkgTagSection::TrimRecord(bool, char const*&)@Base" 0.8.0
- (c++)"pkgTagSection::Scan(char const*, unsigned long)@Base" 0.8.0
- (c++)"pkgTagSection::Trim()@Base" 0.8.0
- (c++)"pkgVendorList::CreateList(Configuration&)@Base" 0.8.0
- (c++)"pkgVendorList::FindVendor(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)@Base" 0.8.0
- (c++)"pkgVendorList::ReadMainList()@Base" 0.8.0
- (c++)"pkgVendorList::LookupFingerprint(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgVendorList::Read(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgVendorList::~pkgVendorList()@Base" 0.8.0
- (c++)"OpTextProgress::Done()@Base" 0.8.0
- (c++)"OpTextProgress::Write(char const*)@Base" 0.8.0
- (c++)"OpTextProgress::Update()@Base" 0.8.0
- (c++)"OpTextProgress::OpTextProgress(Configuration&)@Base" 0.8.0
- (c++)"OpTextProgress::~OpTextProgress()@Base" 0.8.0
- (c++)"SHA256SumValue::Set(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"SHA256SumValue::SHA256SumValue(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"SHA256SumValue::SHA256SumValue()@Base" 0.8.0
- (c++)"debIFTypeTrans::~debIFTypeTrans()@Base" 0.8.0
- (c++)"debStatusIndex::debStatusIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"debStatusIndex::~debStatusIndex()@Base" 0.8.0
- (c++)"SHA256Summation::Add(unsigned char const*, unsigned long)@Base" 0.8.0
- (c++)"SHA256Summation::AddFD(int, unsigned long)@Base" 0.8.0
- (c++)"SHA256Summation::Result()@Base" 0.8.0
- (c++)"SHA256Summation::SHA256Summation()@Base" 0.8.0
- (c++)"debIFTypeStatus::~debIFTypeStatus()@Base" 0.8.0
- (c++)"debRecordParser::Maintainer()@Base" 0.8.0
- (c++)"debRecordParser::SHA256Hash()@Base" 0.8.0
- (c++)"debRecordParser::Jump(pkgCache::VerFileIterator const&)@Base" 0.8.0
- (c++)"debRecordParser::Jump(pkgCache::DescFileIterator const&)@Base" 0.8.0
- (c++)"debRecordParser::Name()@Base" 0.8.0
- (c++)"debRecordParser::GetRec(char const*&, char const*&)@Base" 0.8.0
- (c++)"debRecordParser::MD5Hash()@Base" 0.8.0
- (c++)"debRecordParser::FileName()@Base" 0.8.0
- (c++)"debRecordParser::Homepage()@Base" 0.8.0
- (c++)"debRecordParser::LongDesc()@Base" 0.8.0
- (c++)"debRecordParser::SHA1Hash()@Base" 0.8.0
- (c++)"debRecordParser::ShortDesc()@Base" 0.8.0
- (c++)"debRecordParser::SourcePkg()@Base" 0.8.0
- (c++)"debRecordParser::SourceVer()@Base" 0.8.0
- (c++)"debRecordParser::debRecordParser(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgCache&)@Base" 0.8.0
- (c++)"debRecordParser::~debRecordParser()@Base" 0.8.0
- (c++)"debReleaseIndex::GetIndexFiles()@Base" 0.8.0
- (c++)"debReleaseIndex::debSectionEntry::debSectionEntry(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&)@Base" 0.8.0
- (c++)"debReleaseIndex::PushSectionEntry(debReleaseIndex::debSectionEntry const*)@Base" 0.8.0
- (c++)"debReleaseIndex::PushSectionEntry(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, debReleaseIndex::debSectionEntry const*)@Base" 0.8.0
- (c++)"debReleaseIndex::PushSectionEntry(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, debReleaseIndex::debSectionEntry const*)@Base" 0.8.0
- (c++)"debReleaseIndex::debReleaseIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"debReleaseIndex::~debReleaseIndex()@Base" 0.8.0
- (c++)"debSLTypeDebSrc::~debSLTypeDebSrc()@Base" 0.8.0
- (c++)"debSLTypeDebian::~debSLTypeDebian()@Base" 0.8.0
- (c++)"debSourcesIndex::debSourcesIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@Base" 0.8.0
- (c++)"debSourcesIndex::~debSourcesIndex()@Base" 0.8.0
- (c++)"pkgAcqDiffIndex::ParseDiffIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgAcqDiffIndex::Custom600Headers()@Base" 0.8.0
- (c++)"pkgAcqDiffIndex::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqDiffIndex::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqDiffIndex::DescURI()@Base" 0.8.0
- (c++)"pkgAcqDiffIndex::pkgAcqDiffIndex(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, HashString)@Base" 0.8.0
- (c++)"pkgAcqDiffIndex::~pkgAcqDiffIndex()@Base" 0.8.0
- (c++)"pkgAcqMetaIndex::QueueIndexes(bool)@Base" 0.8.0
- (c++)"pkgAcqMetaIndex::VerifyVendor(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgAcqMetaIndex::RetrievalDone(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgAcqMetaIndex::Custom600Headers()@Base" 0.8.0
- (c++)"pkgAcqMetaIndex::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqMetaIndex::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqMetaIndex::DescURI()@Base" 0.8.0
- (c++)"pkgAcqMetaIndex::AuthDone(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgAcqMetaIndex::pkgAcqMetaIndex(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<IndexTarget*, std::allocator<IndexTarget*> > const*, indexRecords*)@Base" 0.8.0
- (c++)"pkgAcqMetaIndex::~pkgAcqMetaIndex()@Base" 0.8.0
- (c++)"pkgVersionMatch::ExpressionMatches(char const*, char const*)@Base" 0.8.0
- (c++)"pkgVersionMatch::ExpressionMatches(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@Base" 0.8.0
- (c++)"pkgVersionMatch::Find(pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgVersionMatch::MatchVer(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@Base" 0.8.0
- (c++)"pkgVersionMatch::FileMatch(pkgCache::PkgFileIterator)@Base" 0.8.0
- (c++)"pkgVersionMatch::pkgVersionMatch(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgVersionMatch::MatchType)@Base" 0.8.0
- (c++)"pkgVersionMatch::~pkgVersionMatch()@Base" 0.8.0
- (c++)"TranslationsCopy::CopyTranslations(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, pkgCdromStatus*)@Base" 0.8.0
- (c++)"debPackagesIndex::debPackagesIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"debPackagesIndex::~debPackagesIndex()@Base" 0.8.0
- (c++)"pkgAcqIndexDiffs::QueueNextDiff()@Base" 0.8.0
- (c++)"pkgAcqIndexDiffs::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqIndexDiffs::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqIndexDiffs::Finish(bool)@Base" 0.8.0
- (c++)"pkgAcqIndexDiffs::DescURI()@Base" 0.8.0
- (c++)"pkgAcqIndexDiffs::pkgAcqIndexDiffs(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, HashString, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<DiffInfo, std::allocator<DiffInfo> >)@Base" 0.8.0
- (c++)"pkgAcqIndexDiffs::~pkgAcqIndexDiffs()@Base" 0.8.0
- (c++)"pkgAcqIndexTrans::Custom600Headers()@Base" 0.8.0
- (c++)"pkgAcqIndexTrans::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
- (c++)"pkgAcqIndexTrans::pkgAcqIndexTrans(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgAcqIndexTrans::~pkgAcqIndexTrans()@Base" 0.8.0
- (c++)"pkgAcquireStatus::Done(pkgAcquire::ItemDesc&)@Base" 0.8.0
- (c++)"pkgAcquireStatus::Fail(pkgAcquire::ItemDesc&)@Base" 0.8.0
- (c++)"pkgAcquireStatus::Stop()@Base" 0.8.0
- (c++)"pkgAcquireStatus::Fetch(pkgAcquire::ItemDesc&)@Base" 0.8.0
- (c++)"pkgAcquireStatus::Pulse(pkgAcquire*)@Base" 0.8.0
- (c++)"pkgAcquireStatus::Start()@Base" 0.8.0
- (c++)"pkgAcquireStatus::IMSHit(pkgAcquire::ItemDesc&)@Base" 0.8.0
- (c++)"pkgAcquireStatus::Fetched(unsigned long, unsigned long)@Base" 0.8.0
- (c++)"pkgAcquireStatus::pkgAcquireStatus()@Base" 0.8.0
- (c++)"pkgAcquireStatus::~pkgAcquireStatus()@Base" 0.8.0
- (c++)"PreferenceSection::TrimRecord(bool, char const*&)@Base" 0.8.0
- (c++)"pkgArchiveCleaner::Go(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgCache&)@Base" 0.8.0
- (c++)"pkgCacheGenerator::ListParser::NewDepends(pkgCache::VerIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)@Base" 0.8.0
- (c++)"pkgCacheGenerator::ListParser::NewProvides(pkgCache::VerIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"pkgCacheGenerator::ListParser::CollectFileProvides(pkgCache&, pkgCache::VerIterator&)@Base" 0.8.0
- (c++)"pkgCacheGenerator::ListParser::~ListParser()@Base" 0.8.0
- (c++)"pkgCacheGenerator::NewDepends(pkgCache::PkgIterator&, pkgCache::VerIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int const&, unsigned int const&, unsigned int*)@Base" 0.8.0
- (c++)"pkgCacheGenerator::NewFileVer(pkgCache::VerIterator&, pkgCacheGenerator::ListParser&)@Base" 0.8.0
- (c++)"pkgCacheGenerator::NewPackage(pkgCache::PkgIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"pkgCacheGenerator::NewVersion(pkgCache::VerIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long)@Base" 0.8.0
- (c++)"pkgCacheGenerator::SelectFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgIndexFile const&, unsigned long)@Base" 0.8.0
- (c++)"pkgCacheGenerator::FinishCache(OpProgress*)@Base" 0.8.0
- (c++)"pkgCacheGenerator::NewFileDesc(pkgCache::DescIterator&, pkgCacheGenerator::ListParser&)@Base" 0.8.0
- (c++)"pkgCacheGenerator::AllocateInMap(unsigned long const&)@Base" 0.8.0
- (c++)"pkgCacheGenerator::NewDescription(pkgCache::DescIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, MD5SumValue const&, unsigned int)@Base" 0.8.0
- (c++)"pkgCacheGenerator::MakeStatusCache(pkgSourceList&, OpProgress*, MMap**, bool)@Base" 0.8.0
- (c++)"pkgCacheGenerator::WriteUniqString(char const*, unsigned int)@Base" 0.8.0
- (c++)"pkgCacheGenerator::WriteStringInMap(char const*)@Base" 0.8.0
- (c++)"pkgCacheGenerator::WriteStringInMap(char const*, unsigned long const&)@Base" 0.8.0
- (c++)"pkgCacheGenerator::CreateDynamicMMap(FileFd*, unsigned long)@Base" 0.8.0
- (c++)"pkgCacheGenerator::MergeFileProvides(pkgCacheGenerator::ListParser&)@Base" 0.8.0
- (c++)"pkgCacheGenerator::MakeOnlyStatusCache(OpProgress*, DynamicMMap**)@Base" 0.8.0
- (c++)"pkgCacheGenerator::ReMap(void const*, void const*)@Base" 0.8.0
- (c++)"pkgCacheGenerator::Dynamic<pkgCache::DepIterator>::toReMap@Base" 0.8.0
- (c++)"pkgCacheGenerator::Dynamic<pkgCache::GrpIterator>::toReMap@Base" 0.8.0
- (c++)"pkgCacheGenerator::Dynamic<pkgCache::PkgIterator>::toReMap@Base" 0.8.0
- (c++)"pkgCacheGenerator::Dynamic<pkgCache::PrvIterator>::toReMap@Base" 0.8.0
- (c++)"pkgCacheGenerator::Dynamic<pkgCache::VerIterator>::toReMap@Base" 0.8.0
- (c++)"pkgCacheGenerator::Dynamic<pkgCache::DescIterator>::toReMap@Base" 0.8.0
- (c++)"pkgCacheGenerator::Dynamic<pkgCache::PkgFileIterator>::toReMap@Base" 0.8.0
- (c++)"pkgCacheGenerator::NewGroup(pkgCache::GrpIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"pkgCacheGenerator::MergeList(pkgCacheGenerator::ListParser&, pkgCache::VerIterator*)@Base" 0.8.0
- (c++)"pkgCacheGenerator::pkgCacheGenerator(DynamicMMap*, OpProgress*)@Base" 0.8.0
- (c++)"pkgCacheGenerator::~pkgCacheGenerator()@Base" 0.8.0
- (c++)"pkgPackageManager::FixMissing()@Base" 0.8.0
- (c++)"pkgPackageManager::EarlyRemove(pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgPackageManager::GetArchives(pkgAcquire*, pkgSourceList*, pkgRecords*)@Base" 0.8.0
- (c++)"pkgPackageManager::SmartRemove(pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgPackageManager::SmartUnPack(pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgPackageManager::ConfigureAll()@Base" 0.8.0
- (c++)"pkgPackageManager::ImmediateAdd(pkgCache::PkgIterator, bool, unsigned int const&)@Base" 0.8.0
- (c++)"pkgPackageManager::OrderInstall()@Base" 0.8.0
- (c++)"pkgPackageManager::DepAlwaysTrue(pkgCache::DepIterator)@Base" 0.8.0
- (c++)"pkgPackageManager::SmartConfigure(pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgPackageManager::CheckRConflicts(pkgCache::PkgIterator, pkgCache::DepIterator, char const*)@Base" 0.8.0
- (c++)"pkgPackageManager::CreateOrderList()@Base" 0.8.0
- (c++)"pkgPackageManager::DoInstallPostFork(int)@Base" 0.8.0
- (c++)"pkgPackageManager::Go(int)@Base" 0.8.0
- (c++)"pkgPackageManager::Reset()@Base" 0.8.0
- (c++)"pkgPackageManager::DepAdd(pkgOrderList&, pkgCache::PkgIterator, int)@Base" 0.8.0
- (c++)"pkgPackageManager::Remove(pkgCache::PkgIterator, bool)@Base" 0.8.0
- (c++)"pkgPackageManager::Install(pkgCache::PkgIterator, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgPackageManager::Configure(pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgPackageManager::DoInstall(int)@Base" 0.8.0
- (c++)"pkgPackageManager::pkgPackageManager(pkgDepCache*)@Base" 0.8.0
- (c++)"pkgPackageManager::~pkgPackageManager()@Base" 0.8.0
- (c++)"debSrcRecordParser::BuildDepends(std::vector<pkgSrcRecords::Parser::BuildDepRec, std::allocator<pkgSrcRecords::Parser::BuildDepRec> >&, bool const&, bool const&)@Base" 0.8.0
- (c++)"debSrcRecordParser::Jump(unsigned long const&)@Base" 0.8.0
- (c++)"debSrcRecordParser::Step()@Base" 0.8.0
- (c++)"debSrcRecordParser::AsStr()@Base" 0.8.0
- (c++)"debSrcRecordParser::Files(std::vector<pkgSrcRecords::File, std::allocator<pkgSrcRecords::File> >&)@Base" 0.8.0
- (c++)"debSrcRecordParser::Offset()@Base" 0.8.0
- (c++)"debSrcRecordParser::Restart()@Base" 0.8.0
- (c++)"debSrcRecordParser::Binaries()@Base" 0.8.0
- (c++)"debSrcRecordParser::~debSrcRecordParser()@Base" 0.8.0
- (c++)"pkgProblemResolver::MakeScores()@Base" 0.8.0
- (c++)"pkgProblemResolver::ResolveByKeep()@Base" 0.8.0
- (c++)"pkgProblemResolver::InstallProtect()@Base" 0.8.0
- (c++)"pkgProblemResolver::This@Base" 0.8.0
- (c++)"pkgProblemResolver::Resolve(bool)@Base" 0.8.0
- (c++)"pkgProblemResolver::DoUpgrade(pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgProblemResolver::ScoreSort(void const*, void const*)@Base" 0.8.0
- (c++)"pkgProblemResolver::pkgProblemResolver(pkgDepCache*)@Base" 0.8.0
- (c++)"pkgProblemResolver::~pkgProblemResolver()@Base" 0.8.0
- (c++)"debVersioningSystem::CmpFragment(char const*, char const*, char const*, char const*)@Base" 0.8.0
- (c++)"debVersioningSystem::DoCmpVersion(char const*, char const*, char const*, char const*)@Base" 0.8.0
- (c++)"debVersioningSystem::DoCmpReleaseVer(char const*, char const*, char const*, char const*)@Base" 0.8.0
- (c++)"debVersioningSystem::UpstreamVersion(char const*)@Base" 0.8.0
- (c++)"debVersioningSystem::CheckDep(char const*, int, char const*)@Base" 0.8.0
- (c++)"debVersioningSystem::debVersioningSystem()@Base" 0.8.0
- (c++)"debVersioningSystem::~debVersioningSystem()@Base" 0.8.0
- (c++)"pkgUdevCdromDevices::Scan()@Base" 0.8.0
- (c++)"pkgUdevCdromDevices::Dlopen()@Base" 0.8.0
- (c++)"pkgUdevCdromDevices::pkgUdevCdromDevices()@Base" 0.8.0
- (c++)"pkgUdevCdromDevices::~pkgUdevCdromDevices()@Base" 0.8.0
- (c++)"pkgVersioningSystem::GlobalList@Base" 0.8.0
- (c++)"pkgVersioningSystem::GlobalListLen@Base" 0.8.0
- (c++)"pkgVersioningSystem::TestCompatibility(pkgVersioningSystem const&)@Base" 0.8.0
- (c++)"pkgVersioningSystem::GetVS(char const*)@Base" 0.8.0
- (c++)"pkgVersioningSystem::pkgVersioningSystem()@Base" 0.8.0
- (c++)"pkgVersioningSystem::~pkgVersioningSystem()@Base" 0.8.0
- (c++)"debTranslationsIndex::debTranslationsIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const*)@Base" 0.8.0
- (c++)"debTranslationsIndex::~debTranslationsIndex()@Base" 0.8.0
- (c++)"APT::PackageSet::FromString(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, APT::CacheSetHelper&)@Base" 0.8.0
- (c++)"APT::PackageSet::FromCommandLine(pkgCacheFile&, char const**, APT::CacheSetHelper&)@Base" 0.8.0
- (c++)"APT::PackageSet::GroupedFromCommandLine(pkgCacheFile&, char const**, std::list<APT::PackageSet::Modifier, std::allocator<APT::PackageSet::Modifier> > const&, unsigned short const&, APT::CacheSetHelper&)@Base" 0.8.0
- (c++)"APT::PackageSet::FromName(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, APT::CacheSetHelper&)@Base" 0.8.0
- (c++)"APT::PackageSet::FromTask(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@Base" 0.8.0
- (c++)"APT::PackageSet::FromRegEx(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@Base" 0.8.0
- (c++)"APT::PackageSet::~PackageSet()@Base" 0.8.0
- (c++)"APT::VersionSet::FromString(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::VersionSet::Version const&, APT::CacheSetHelper&, bool const&)@Base" 0.8.0
- (c++)"APT::VersionSet::FromPackage(pkgCacheFile&, pkgCache::PkgIterator const&, APT::VersionSet::Version const&, APT::CacheSetHelper&)@Base" 0.8.0
- (c++)"APT::VersionSet::FromCommandLine(pkgCacheFile&, char const**, APT::VersionSet::Version const&, APT::CacheSetHelper&)@Base" 0.8.0
- (c++)"APT::VersionSet::getCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@Base" 0.8.0
- (c++)"APT::VersionSet::getInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@Base" 0.8.0
- (c++)"APT::VersionSet::GroupedFromCommandLine(pkgCacheFile&, char const**, std::list<APT::VersionSet::Modifier, std::allocator<APT::VersionSet::Modifier> > const&, unsigned short const&, APT::CacheSetHelper&)@Base" 0.8.0
- (c++)"APT::VersionSet::~VersionSet()@Base" 0.8.0
- (c++)"APT::CacheFilter::PackageNameMatchesRegEx::PackageNameMatchesRegEx(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"APT::CacheFilter::PackageNameMatchesRegEx::~PackageNameMatchesRegEx()@Base" 0.8.0
- (c++)"APT::CacheFilter::PackageNameMatchesRegEx::operator()(pkgCache::GrpIterator const&)@Base" 0.8.0
- (c++)"APT::CacheFilter::PackageNameMatchesRegEx::operator()(pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"APT::Configuration::getLanguages(bool const&, bool const&, char const**)@Base" 0.8.0
- (c++)"APT::Configuration::getArchitectures(bool const&)@Base" 0.8.0
- (c++)"APT::Configuration::checkArchitecture(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"APT::Configuration::getCompressionTypes(bool const&)@Base" 0.8.0
- (c++)"APT::CacheSetHelper::canNotFindTask(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"APT::CacheSetHelper::canNotFindRegEx(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"APT::CacheSetHelper::canNotFindAllVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"APT::CacheSetHelper::canNotFindPackage(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"APT::CacheSetHelper::canNotFindPkgName(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"APT::CacheSetHelper::showTaskSelection(APT::PackageSet const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"APT::CacheSetHelper::showRegExSelection(APT::PackageSet const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"APT::CacheSetHelper::canNotFindNewestVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"APT::CacheSetHelper::showSelectedVersion(pkgCache::PkgIterator const&, pkgCache::VerIterator, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&)@Base" 0.8.0
- (c++)"APT::CacheSetHelper::canNotFindCandInstVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"APT::CacheSetHelper::canNotFindInstCandVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"APT::CacheSetHelper::canNotFindCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"APT::CacheSetHelper::canNotFindInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"APT::CacheSetHelper::~CacheSetHelper()@Base" 0.8.0
- (c++)"URI::NoUserPassword(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"URI::CopyFrom(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"URI::SiteOnly(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"URI::~URI()@Base" 0.8.0
- (c++)"URI::operator std::basic_string<char, std::char_traits<char>, std::allocator<char> >()@Base" 0.8.0
- (c++)"MMap::Map(FileFd&)@Base" 0.8.0
- (c++)"MMap::Sync(unsigned long, unsigned long)@Base" 0.8.0
- (c++)"MMap::Sync()@Base" 0.8.0
- (c++)"MMap::Close(bool)@Base" 0.8.0
- (c++)"MMap::MMap(FileFd&, unsigned long)@Base" 0.8.0
- (c++)"MMap::MMap(unsigned long)@Base" 0.8.0
- (c++)"MMap::~MMap()@Base" 0.8.0
- (c++)"FileFd::OpenDescriptor(int, FileFd::OpenMode, bool)@Base" 0.8.0
- (c++)"FileFd::Open(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, FileFd::OpenMode, unsigned long)@Base" 0.8.0
- (c++)"FileFd::Read(void*, unsigned long, unsigned long*)@Base" 0.8.0
- (c++)"FileFd::Seek(unsigned long)@Base" 0.8.0
- (c++)"FileFd::Size()@Base" 0.8.0
- (c++)"FileFd::Skip(unsigned long)@Base" 0.8.0
- (c++)"FileFd::Sync()@Base" 0.8.0
- (c++)"FileFd::Tell()@Base" 0.8.0
- (c++)"FileFd::Close()@Base" 0.8.0
- (c++)"FileFd::Write(void const*, unsigned long)@Base" 0.8.0
- (c++)"FileFd::Truncate(unsigned long)@Base" 0.8.0
- (c++)"FileFd::~FileFd()@Base" 0.8.0
- (c++)"Hashes::AddFD(int, unsigned long)@Base" 0.8.0
- (c++)"Vendor::CheckDist(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"Vendor::Vendor(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<Vendor::Fingerprint*, std::allocator<Vendor::Fingerprint*> >*)@Base" 0.8.0
- (c++)"Vendor::~Vendor()@Base" 0.8.0
- (c++)"DiffInfo::~DiffInfo()@Base" 0.8.0
- (c++)"pkgCache::CompTypeDeb(unsigned char)@Base" 0.8.0
- (c++)"pkgCache::DepIterator::GlobOr(pkgCache::DepIterator&, pkgCache::DepIterator&)@Base" 0.8.0
- (c++)"pkgCache::DepIterator::operator++(int)@Base" 0.8.0
- (c++)"pkgCache::DepIterator::operator++()@Base" 0.8.0
- (c++)"pkgCache::GrpIterator::operator++(int)@Base" 0.8.0
- (c++)"pkgCache::GrpIterator::operator++()@Base" 0.8.0
- (c++)"pkgCache::PkgIterator::operator++(int)@Base" 0.8.0
- (c++)"pkgCache::PkgIterator::operator++()@Base" 0.8.0
- (c++)"pkgCache::PrvIterator::operator++(int)@Base" 0.8.0
- (c++)"pkgCache::PrvIterator::operator++()@Base" 0.8.0
- (c++)"pkgCache::VerIterator::operator++(int)@Base" 0.8.0
- (c++)"pkgCache::VerIterator::operator++()@Base" 0.8.0
- (c++)"pkgCache::DescIterator::operator++(int)@Base" 0.8.0
- (c++)"pkgCache::DescIterator::operator++()@Base" 0.8.0
- (c++)"pkgCache::PkgFileIterator::IsOk()@Base" 0.8.0
- (c++)"pkgCache::PkgFileIterator::RelStr()@Base" 0.8.0
- (c++)"pkgCache::PkgFileIterator::operator++(int)@Base" 0.8.0
- (c++)"pkgCache::PkgFileIterator::operator++()@Base" 0.8.0
- (c++)"pkgCache::VerFileIterator::operator++(int)@Base" 0.8.0
- (c++)"pkgCache::VerFileIterator::operator++()@Base" 0.8.0
- (c++)"pkgCache::DescFileIterator::operator++(int)@Base" 0.8.0
- (c++)"pkgCache::DescFileIterator::operator++()@Base" 0.8.0
- (c++)"pkgCache::SingleArchFindPkg(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"pkgCache::ReMap(bool const&)@Base" 0.8.0
- (c++)"pkgCache::Header::Header()@Base" 0.8.0
- (c++)"pkgCache::DepType(unsigned char)@Base" 0.8.0
- (c++)"pkgCache::FindGrp(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"pkgCache::FindPkg(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"pkgCache::FindPkg(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"pkgCache::CompType(unsigned char)@Base" 0.8.0
- (c++)"pkgCache::Priority(unsigned char)@Base" 0.8.0
- (c++)"pkgCache::pkgCache(MMap*, bool)@Base" 0.8.0
- (c++)"pkgCache::~pkgCache()@Base" 0.8.0
- (c++)"pkgCdrom::DropRepeats(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, char const*)@Base" 0.8.0
- (c++)"pkgCdrom::FindPackages(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, pkgCdromStatus*, unsigned int)@Base" 0.8.0
- (c++)"pkgCdrom::WriteDatabase(Configuration&)@Base" 0.8.0
- (c++)"pkgCdrom::DropBinaryArch(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)@Base" 0.8.0
- (c++)"pkgCdrom::WriteSourceList(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool)@Base" 0.8.0
- (c++)"pkgCdrom::ReduceSourcelist(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)@Base" 0.8.0
- (c++)"pkgCdrom::Add(pkgCdromStatus*)@Base" 0.8.0
- (c++)"pkgCdrom::Ident(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, pkgCdromStatus*)@Base" 0.8.0
- (c++)"pkgCdrom::Score(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"IndexCopy::CopyPackages(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, pkgCdromStatus*)@Base" 0.8.0
- (c++)"IndexCopy::ReconstructChop(unsigned long&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"IndexCopy::ReconstructPrefix(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"IndexCopy::ConvertToSourceList(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
- (c++)"IndexCopy::ChopDirs(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int)@Base" 0.8.0
- (c++)"IndexCopy::GrabFirst(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int)@Base" 0.8.0
- (c++)"IndexCopy::~IndexCopy()@Base" 0.8.0
- (c++)"SigVerify::CopyAndVerify(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)@Base" 0.8.0
- (c++)"SigVerify::CopyMetaIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"SigVerify::Verify(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, indexRecords*)@Base" 0.8.0
- (c++)"SigVerify::RunGPGV(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int const&, int*)@Base" 0.8.0
- (c++)"debSystem::Initialize(Configuration&)@Base" 0.8.0
- (c++)"debSystem::CheckUpdates()@Base" 0.8.0
- (c++)"debSystem::AddStatusFiles(std::vector<pkgIndexFile*, std::allocator<pkgIndexFile*> >&)@Base" 0.8.0
- (c++)"debSystem::ArchiveSupported(char const*)@Base" 0.8.0
- (c++)"debSystem::Lock()@Base" 0.8.0
- (c++)"debSystem::Score(Configuration const&)@Base" 0.8.0
- (c++)"debSystem::UnLock(bool)@Base" 0.8.0
- (c++)"debSystem::debSystem()@Base" 0.8.0
- (c++)"debSystem::~debSystem()@Base" 0.8.0
- (c++)"metaIndex::~metaIndex()@Base" 0.8.0
- (c++)"pkgDPkgPM::SendV2Pkgs(_IO_FILE*)@Base" 0.8.0
- (c++)"pkgDPkgPM::DoTerminalPty(int)@Base" 0.8.0
- (c++)"pkgDPkgPM::DoDpkgStatusFd(int, int)@Base" 0.8.0
- (c++)"pkgDPkgPM::WriteHistoryTag(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgDPkgPM::WriteApportReport(char const*, char const*)@Base" 0.8.0
- (c++)"pkgDPkgPM::RunScriptsWithPkgs(char const*)@Base" 0.8.0
- (c++)"pkgDPkgPM::ProcessDpkgStatusLine(int, char*)@Base" 0.8.0
- (c++)"pkgDPkgPM::handleDisappearAction(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
- (c++)"pkgDPkgPM::Go(int)@Base" 0.8.0
- (c++)"pkgDPkgPM::Reset()@Base" 0.8.0
- (c++)"pkgDPkgPM::Remove(pkgCache::PkgIterator, bool)@Base" 0.8.0
- (c++)"pkgDPkgPM::DoStdin(int)@Base" 0.8.0
- (c++)"pkgDPkgPM::Install(pkgCache::PkgIterator, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
- (c++)"pkgDPkgPM::OpenLog()@Base" 0.8.0
- (c++)"pkgDPkgPM::CloseLog()@Base" 0.8.0
- (c++)"pkgDPkgPM::Configure(pkgCache::PkgIterator)@Base" 0.8.0
- (c++)"pkgDPkgPM::pkgDPkgPM(pkgDepCache*)@Base" 0.8.0
- (c++)"pkgDPkgPM::~pkgDPkgPM()@Base" 0.8.0
- (c++)"pkgPolicy::GetPriority(pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"pkgPolicy::InitDefaults()@Base" 0.8.0
- (c++)"pkgPolicy::IsImportantDep(pkgCache::DepIterator const&)@Base" 0.8.0
- (c++)"pkgPolicy::GetCandidateVer(pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"pkgPolicy::PkgPin::~PkgPin()@Base" 0.8.0
- (c++)"pkgPolicy::GetMatch(pkgCache::PkgIterator const&)@Base" 0.8.0
- (c++)"pkgPolicy::CreatePin(pkgVersionMatch::MatchType, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, short)@Base" 0.8.0
- (c++)"pkgPolicy::pkgPolicy(pkgCache*)@Base" 0.8.0
- (c++)"pkgPolicy::~pkgPolicy()@Base" 0.8.0
- (c++)"pkgSystem::GlobalList@Base" 0.8.0
- (c++)"pkgSystem::Initialize(Configuration&)@Base" 0.8.0
- (c++)"pkgSystem::GlobalListLen@Base" 0.8.0
- (c++)"pkgSystem::Score(Configuration const&)@Base" 0.8.0
- (c++)"pkgSystem::GetSystem(char const*)@Base" 0.8.0
- (c++)"pkgSystem::pkgSystem()@Base" 0.8.0
- (c++)"pkgSystem::~pkgSystem()@Base" 0.8.0
- (c++)"HashString::VerifyFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.8.0
- (c++)"HashString::empty() const@Base" 0.8.0
- (c++)"HashString::toStr() const@Base" 0.8.0
- (c++)"CommandLine::FileSize() const@Base" 0.8.0
- (c++)"GlobalError::empty(GlobalError::MsgType const&) const@Base" 0.8.0
- (c++)"MD5SumValue::Value() const@Base" 0.8.0
- (c++)"MD5SumValue::operator==(MD5SumValue const&) const@Base" 0.8.0
- (c++)"SHA1SumValue::Value() const@Base" 0.8.0
- (c++)"SHA1SumValue::operator==(SHA1SumValue const&) const@Base" 0.8.0
- (c++)"debIFTypePkg::CreatePkgParser(pkgCache::PkgFileIterator) const@Base" 0.8.0
- (c++)"debSLTypeDeb::CreateItem(std::vector<metaIndex*, std::allocator<metaIndex*> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const@Base" 0.8.0
- (c++)"indexRecords::GetValidUntil() const@Base" 0.8.0
- (c++)"indexRecords::GetExpectedDist() const@Base" 0.8.0
- (c++)"indexRecords::Exists(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
- (c++)"indexRecords::GetDist() const@Base" 0.8.0
- (c++)"indexRecords::CheckDist(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.8.0
- (c++)"pkgIndexFile::ArchiveURI(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.8.0
- (c++)"pkgIndexFile::SourceInfo(pkgSrcRecords::Parser const&, pkgSrcRecords::File const&) const@Base" 0.8.0
- (c++)"pkgIndexFile::ArchiveInfo(pkgCache::VerIterator) const@Base" 0.8.0
- (c++)"pkgIndexFile::FindInCache(pkgCache&) const@Base" 0.8.0
- (c++)"pkgIndexFile::CreateSrcParser() const@Base" 0.8.0
- (c++)"pkgIndexFile::MergeFileProvides(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0
- (c++)"pkgIndexFile::MergeFileProvides(pkgCacheGenerator&, OpProgress&) const@Base" 0.8.0
- (c++)"pkgIndexFile::Type::CreatePkgParser(pkgCache::PkgFileIterator) const@Base" 0.8.0
- (c++)"pkgIndexFile::Merge(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0
- (c++)"pkgIndexFile::Merge(pkgCacheGenerator&, OpProgress&) const@Base" 0.8.0
- (c++)"Configuration::FindVector(char const*) const@Base" 0.8.0
- (c++)"Configuration::MatchAgainstConfig::Match(char const*) const@Base" 0.8.0
- (c++)"Configuration::Find(char const*, char const*) const@Base" 0.8.0
- (c++)"Configuration::Item::FullTag(Configuration::Item const*) const@Base" 0.8.0
- (c++)"Configuration::FindB(char const*, bool const&) const@Base" 0.8.0
- (c++)"Configuration::FindI(char const*, int const&) const@Base" 0.8.0
- (c++)"Configuration::Exists(char const*) const@Base" 0.8.0
- (c++)"Configuration::FindAny(char const*, char const*) const@Base" 0.8.0
- (c++)"Configuration::FindDir(char const*, char const*) const@Base" 0.8.0
- (c++)"Configuration::FindFile(char const*, char const*) const@Base" 0.8.0
- (c++)"Configuration::ExistsAny(char const*) const@Base" 0.8.0
- (c++)"pkgSourceList::GetIndexes(pkgAcquire*, bool) const@Base" 0.8.0
- (c++)"pkgSourceList::Type::FixupURI(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) const@Base" 0.8.0
- (c++)"pkgSourceList::Type::ParseLine(std::vector<metaIndex*, std::allocator<metaIndex*> >&, char const*, unsigned long const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
- (c++)"pkgSourceList::FindIndex(pkgCache::PkgFileIterator, pkgIndexFile*&) const@Base" 0.8.0
- (c++)"pkgTagSection::Find(char const*, char const*&, char const*&) const@Base" 0.8.0
- (c++)"pkgTagSection::Find(char const*, unsigned int&) const@Base" 0.8.0
- (c++)"pkgTagSection::FindI(char const*, long) const@Base" 0.8.0
- (c++)"pkgTagSection::FindS(char const*) const@Base" 0.8.0
- (c++)"pkgTagSection::FindULL(char const*, unsigned long long const&) const@Base" 0.8.0
- (c++)"pkgTagSection::FindFlag(char const*, unsigned long&, unsigned long) const@Base" 0.8.0
- (c++)"SHA256SumValue::Value() const@Base" 0.8.0
- (c++)"SHA256SumValue::operator==(SHA256SumValue const&) const@Base" 0.8.0
- (c++)"debStatusIndex::FindInCache(pkgCache&) const@Base" 0.8.0
- (c++)"debStatusIndex::HasPackages() const@Base" 0.8.0
- (c++)"debStatusIndex::Size() const@Base" 0.8.0
- (c++)"debStatusIndex::Merge(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0
- (c++)"debStatusIndex::Exists() const@Base" 0.8.0
- (c++)"debStatusIndex::GetType() const@Base" 0.8.0
- (c++)"debStatusIndex::Describe(bool) const@Base" 0.8.0
- (c++)"debIFTypeStatus::CreatePkgParser(pkgCache::PkgFileIterator) const@Base" 0.8.0
- (c++)"debReleaseIndex::ArchiveURI(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
- (c++)"debReleaseIndex::GetIndexes(pkgAcquire*, bool const&) const@Base" 0.8.0
- (c++)"debReleaseIndex::MetaIndexURI(char const*) const@Base" 0.8.0
- (c++)"debReleaseIndex::MetaIndexFile(char const*) const@Base" 0.8.0
- (c++)"debReleaseIndex::MetaIndexInfo(char const*) const@Base" 0.8.0
- (c++)"debReleaseIndex::IndexURISuffix(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
- (c++)"debReleaseIndex::SourceIndexURI(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
- (c++)"debReleaseIndex::ComputeIndexTargets() const@Base" 0.8.0
- (c++)"debReleaseIndex::SourceIndexURISuffix(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
- (c++)"debReleaseIndex::Info(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
- (c++)"debReleaseIndex::IndexURI(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
- (c++)"debReleaseIndex::IsTrusted() const@Base" 0.8.0
- (c++)"debSLTypeDebSrc::CreateItem(std::vector<metaIndex*, std::allocator<metaIndex*> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const@Base" 0.8.0
- (c++)"debSLTypeDebian::CreateItemInternal(std::vector<metaIndex*, std::allocator<metaIndex*> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const@Base" 0.8.0
- (c++)"debSourcesIndex::ArchiveURI(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.8.0
- (c++)"debSourcesIndex::SourceInfo(pkgSrcRecords::Parser const&, pkgSrcRecords::File const&) const@Base" 0.8.0
- (c++)"debSourcesIndex::HasPackages() const@Base" 0.8.0
- (c++)"debSourcesIndex::CreateSrcParser() const@Base" 0.8.0
- (c++)"debSourcesIndex::Info(char const*) const@Base" 0.8.0
- (c++)"debSourcesIndex::Size() const@Base" 0.8.0
- (c++)"debSourcesIndex::Exists() const@Base" 0.8.0
- (c++)"debSourcesIndex::GetType() const@Base" 0.8.0
- (c++)"debSourcesIndex::Describe(bool) const@Base" 0.8.0
- (c++)"debSourcesIndex::IndexURI(char const*) const@Base" 0.8.0
- (c++)"debPackagesIndex::ArchiveURI(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.8.0
- (c++)"debPackagesIndex::ArchiveInfo(pkgCache::VerIterator) const@Base" 0.8.0
- (c++)"debPackagesIndex::FindInCache(pkgCache&) const@Base" 0.8.0
- (c++)"debPackagesIndex::HasPackages() const@Base" 0.8.0
- (c++)"debPackagesIndex::Info(char const*) const@Base" 0.8.0
- (c++)"debPackagesIndex::Size() const@Base" 0.8.0
- (c++)"debPackagesIndex::Merge(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0
- (c++)"debPackagesIndex::Exists() const@Base" 0.8.0
- (c++)"debPackagesIndex::GetType() const@Base" 0.8.0
- (c++)"debPackagesIndex::Describe(bool) const@Base" 0.8.0
- (c++)"debPackagesIndex::IndexURI(char const*) const@Base" 0.8.0
- (c++)"debSrcRecordParser::Maintainer() const@Base" 0.8.0
- (c++)"debSrcRecordParser::Package() const@Base" 0.8.0
- (c++)"debSrcRecordParser::Section() const@Base" 0.8.0
- (c++)"debSrcRecordParser::Version() const@Base" 0.8.0
- (c++)"debTranslationsIndex::GetIndexes(pkgAcquire*) const@Base" 0.8.0
- (c++)"debTranslationsIndex::FindInCache(pkgCache&) const@Base" 0.8.0
- (c++)"debTranslationsIndex::HasPackages() const@Base" 0.8.0
- (c++)"debTranslationsIndex::Info(char const*) const@Base" 0.8.0
- (c++)"debTranslationsIndex::Size() const@Base" 0.8.0
- (c++)"debTranslationsIndex::Merge(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0
- (c++)"debTranslationsIndex::Exists() const@Base" 0.8.0
- (c++)"debTranslationsIndex::GetType() const@Base" 0.8.0
- (c++)"debTranslationsIndex::Describe(bool) const@Base" 0.8.0
- (c++)"debTranslationsIndex::IndexURI(char const*) const@Base" 0.8.0
- (c++)"Vendor::GetVendorID() const@Base" 0.8.0
- (c++)"Vendor::LookupFingerprint(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.8.0
- (c++)"pkgCache::DepIterator::AllTargets() const@Base" 0.8.0
- (c++)"pkgCache::DepIterator::IsCritical() const@Base" 0.8.0
- (c++)"pkgCache::DepIterator::OwnerPointer() const@Base" 0.8.0
- (c++)"pkgCache::DepIterator::SmartTargetPkg(pkgCache::PkgIterator&) const@Base" 0.8.0
- (c++)"pkgCache::GrpIterator::OwnerPointer() const@Base" 0.8.0
- (c++)"pkgCache::GrpIterator::FindPreferredPkg(bool const&) const@Base" 0.8.0
- (c++)"pkgCache::GrpIterator::FindPkg(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.8.0
- (c++)"pkgCache::GrpIterator::NextPkg(pkgCache::PkgIterator const&) const@Base" 0.8.0
- (c++)"pkgCache::PkgIterator::CurVersion() const@Base" 0.8.0
- (c++)"pkgCache::PkgIterator::CandVersion() const@Base" 0.8.0
- (c++)"pkgCache::PkgIterator::OwnerPointer() const@Base" 0.8.0
- (c++)"pkgCache::PkgIterator::State() const@Base" 0.8.0
- (c++)"pkgCache::PkgIterator::FullName(bool const&) const@Base" 0.8.0
- (c++)"pkgCache::PrvIterator::OwnerPointer() const@Base" 0.8.0
- (c++)"pkgCache::VerIterator::CompareVer(pkgCache::VerIterator const&) const@Base" 0.8.0
- (c++)"pkgCache::VerIterator::NewestFile() const@Base" 0.8.0
- (c++)"pkgCache::VerIterator::Downloadable() const@Base" 0.8.0
- (c++)"pkgCache::VerIterator::OwnerPointer() const@Base" 0.8.0
- (c++)"pkgCache::VerIterator::TranslatedDescription() const@Base" 0.8.0
- (c++)"pkgCache::VerIterator::Pseudo() const@Base" 0.8.0
- (c++)"pkgCache::VerIterator::RelStr() const@Base" 0.8.0
- (c++)"pkgCache::VerIterator::Automatic() const@Base" 0.8.0
- (c++)"pkgCache::DescIterator::OwnerPointer() const@Base" 0.8.0
- (c++)"pkgCache::PkgFileIterator::OwnerPointer() const@Base" 0.8.0
- (c++)"pkgCache::VerFileIterator::OwnerPointer() const@Base" 0.8.0
- (c++)"pkgCache::DescFileIterator::OwnerPointer() const@Base" 0.8.0
- (c++)"pkgCache::sHash(char const*) const@Base" 0.8.0
- (c++)"pkgCache::sHash(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
- (c++)"pkgCache::Header::CheckSizes(pkgCache::Header&) const@Base" 0.8.0
- (c++)"debSystem::CreatePM(pkgDepCache*) const@Base" 0.8.0
- (c++)"debSystem::FindIndex(pkgCache::PkgFileIterator, pkgIndexFile*&) const@Base" 0.8.0
- (c++)"metaIndex::GetURI() const@Base" 0.8.0
- (c++)"metaIndex::GetDist() const@Base" 0.8.0
- (c++)"metaIndex::GetType() const@Base" 0.8.0
- (c++)"typeinfo for OpProgress@Base" 0.8.0
- (c++)"typeinfo for SourceCopy@Base" 0.8.0
- (c++)"typeinfo for pkgAcqFile@Base" 0.8.0
- (c++)"typeinfo for pkgAcquire@Base" 0.8.0
- (c++)"typeinfo for DynamicMMap@Base" 0.8.0
- (c++)"typeinfo for PackageCopy@Base" 0.8.0
- (c++)"typeinfo for pkgAcqIndex@Base" 0.8.0
- (c++)"typeinfo for pkgDepCache@Base" 0.8.0
- (c++)"typeinfo for pkgSimulate@Base" 0.8.0
- (c++)"typeinfo for debIFTypePkg@Base" 0.8.0
- (c++)"typeinfo for debIFTypeSrc@Base" 0.8.0
- (c++)"typeinfo for debSLTypeDeb@Base" 0.8.0
- (c++)"typeinfo for indexRecords@Base" 0.8.0
- (c++)"typeinfo for pkgAcqMethod@Base" 0.8.0
- (c++)"typeinfo for pkgCacheFile@Base" 0.8.0
- (c++)"typeinfo for pkgIndexFile@Base" 0.8.0
- (c++)"typeinfo for WeakPointable@Base" 0.8.0
- (c++)"typeinfo for debListParser@Base" 0.8.0
- (c++)"typeinfo for pkgAcqArchive@Base" 0.8.0
- (c++)"typeinfo for pkgAcqMetaSig@Base" 0.8.0
- (c++)"typeinfo for pkgTagSection@Base" 0.8.0
- (c++)"typeinfo for OpTextProgress@Base" 0.8.0
- (c++)"typeinfo for debIFTypeTrans@Base" 0.8.0
- (c++)"typeinfo for debStatusIndex@Base" 0.8.0
- (c++)"typeinfo for debIFTypeStatus@Base" 0.8.0
- (c++)"typeinfo for debRecordParser@Base" 0.8.0
- (c++)"typeinfo for debReleaseIndex@Base" 0.8.0
- (c++)"typeinfo for debSLTypeDebSrc@Base" 0.8.0
- (c++)"typeinfo for debSLTypeDebian@Base" 0.8.0
- (c++)"typeinfo for debSourcesIndex@Base" 0.8.0
- (c++)"typeinfo for pkgAcqDiffIndex@Base" 0.8.0
- (c++)"typeinfo for pkgAcqMetaIndex@Base" 0.8.0
- (c++)"typeinfo for debPackagesIndex@Base" 0.8.0
- (c++)"typeinfo for pkgAcqIndexDiffs@Base" 0.8.0
- (c++)"typeinfo for pkgAcqIndexTrans@Base" 0.8.0
- (c++)"typeinfo for pkgAcquireStatus@Base" 0.8.0
- (c++)"typeinfo for PreferenceSection@Base" 0.8.0
- (c++)"typeinfo for pkgPackageManager@Base" 0.8.0
- (c++)"typeinfo for debSrcRecordParser@Base" 0.8.0
- (c++)"typeinfo for debVersioningSystem@Base" 0.8.0
- (c++)"typeinfo for pkgUdevCdromDevices@Base" 0.8.0
- (c++)"typeinfo for pkgVersioningSystem@Base" 0.8.0
- (c++)"typeinfo for debTranslationsIndex@Base" 0.8.0
- (c++)"typeinfo for MMap@Base" 0.8.0
- (c++)"typeinfo for FileFd@Base" 0.8.0
- (c++)"typeinfo for Vendor@Base" 0.8.0
- (c++)"typeinfo for pkgCache@Base" 0.8.0
- (c++)"typeinfo for IndexCopy@Base" 0.8.0
- (c++)"typeinfo for debSystem@Base" 0.8.0
- (c++)"typeinfo for metaIndex@Base" 0.8.0
- (c++)"typeinfo for pkgDPkgPM@Base" 0.8.0
- (c++)"typeinfo for pkgPolicy@Base" 0.8.0
- (c++)"typeinfo for pkgSystem@Base" 0.8.0
- (c++)"typeinfo for pkgAcquire::Item@Base" 0.8.0
- (c++)"typeinfo for pkgRecords::Parser@Base" 0.8.0
- (c++)"typeinfo for pkgDepCache::InRootSetFunc@Base" 0.8.0
- (c++)"typeinfo for pkgDepCache::DefaultRootSetFunc@Base" 0.8.0
- (c++)"typeinfo for pkgDepCache::Policy@Base" 0.8.0
- (c++)"typeinfo for pkgSimulate::Policy@Base" 0.8.0
- (c++)"typeinfo for pkgIndexFile::Type@Base" 0.8.0
- (c++)"typeinfo for Configuration::MatchAgainstConfig@Base" 0.8.0
- (c++)"typeinfo for pkgSourceList::Type@Base" 0.8.0
- (c++)"typeinfo for pkgSrcRecords::Parser@Base" 0.8.0
- (c++)"typeinfo for pkgCacheGenerator::ListParser@Base" 0.8.0
- (c++)"typeinfo for APT::CacheSetHelper@Base" 0.8.0
- (c++)"typeinfo for pkgCache::DepIterator@Base" 0.8.0
- (c++)"typeinfo for pkgCache::GrpIterator@Base" 0.8.0
- (c++)"typeinfo for pkgCache::PkgIterator@Base" 0.8.0
- (c++)"typeinfo for pkgCache::PrvIterator@Base" 0.8.0
- (c++)"typeinfo for pkgCache::VerIterator@Base" 0.8.0
- (c++)"typeinfo for pkgCache::DescIterator@Base" 0.8.0
- (c++)"typeinfo for pkgCache::PkgFileIterator@Base" 0.8.0
- (c++)"typeinfo for pkgCache::VerFileIterator@Base" 0.8.0
- (c++)"typeinfo for pkgCache::DescFileIterator@Base" 0.8.0
- (c++)"typeinfo for pkgCache::Iterator<pkgCache::Dependency, pkgCache::DepIterator>@Base" 0.8.0
- (c++)"typeinfo for pkgCache::Iterator<pkgCache::Description, pkgCache::DescIterator>@Base" 0.8.0
- (c++)"typeinfo for pkgCache::Iterator<pkgCache::PackageFile, pkgCache::PkgFileIterator>@Base" 0.8.0
- (c++)"typeinfo for pkgCache::Iterator<pkgCache::Group, pkgCache::GrpIterator>@Base" 0.8.0
- (c++)"typeinfo for pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>@Base" 0.8.0
- (c++)"typeinfo for pkgCache::Iterator<pkgCache::VerFile, pkgCache::VerFileIterator>@Base" 0.8.0
- (c++)"typeinfo for pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>@Base" 0.8.0
- (c++)"typeinfo for pkgCache::Iterator<pkgCache::DescFile, pkgCache::DescFileIterator>@Base" 0.8.0
- (c++)"typeinfo for pkgCache::Iterator<pkgCache::Provides, pkgCache::PrvIterator>@Base" 0.8.0
- (c++)"typeinfo for pkgCache::Namespace@Base" 0.8.0
- (c++)"typeinfo name for OpProgress@Base" 0.8.0
- (c++)"typeinfo name for SourceCopy@Base" 0.8.0
- (c++)"typeinfo name for pkgAcqFile@Base" 0.8.0
- (c++)"typeinfo name for pkgAcquire@Base" 0.8.0
- (c++)"typeinfo name for DynamicMMap@Base" 0.8.0
- (c++)"typeinfo name for PackageCopy@Base" 0.8.0
- (c++)"typeinfo name for pkgAcqIndex@Base" 0.8.0
- (c++)"typeinfo name for pkgDepCache@Base" 0.8.0
- (c++)"typeinfo name for pkgSimulate@Base" 0.8.0
- (c++)"typeinfo name for debIFTypePkg@Base" 0.8.0
- (c++)"typeinfo name for debIFTypeSrc@Base" 0.8.0
- (c++)"typeinfo name for debSLTypeDeb@Base" 0.8.0
- (c++)"typeinfo name for indexRecords@Base" 0.8.0
- (c++)"typeinfo name for pkgAcqMethod@Base" 0.8.0
- (c++)"typeinfo name for pkgCacheFile@Base" 0.8.0
- (c++)"typeinfo name for pkgIndexFile@Base" 0.8.0
- (c++)"typeinfo name for WeakPointable@Base" 0.8.0
- (c++)"typeinfo name for debListParser@Base" 0.8.0
- (c++)"typeinfo name for pkgAcqArchive@Base" 0.8.0
- (c++)"typeinfo name for pkgAcqMetaSig@Base" 0.8.0
- (c++)"typeinfo name for pkgTagSection@Base" 0.8.0
- (c++)"typeinfo name for OpTextProgress@Base" 0.8.0
- (c++)"typeinfo name for debIFTypeTrans@Base" 0.8.0
- (c++)"typeinfo name for debStatusIndex@Base" 0.8.0
- (c++)"typeinfo name for debIFTypeStatus@Base" 0.8.0
- (c++)"typeinfo name for debRecordParser@Base" 0.8.0
- (c++)"typeinfo name for debReleaseIndex@Base" 0.8.0
- (c++)"typeinfo name for debSLTypeDebSrc@Base" 0.8.0
- (c++)"typeinfo name for debSLTypeDebian@Base" 0.8.0
- (c++)"typeinfo name for debSourcesIndex@Base" 0.8.0
- (c++)"typeinfo name for pkgAcqDiffIndex@Base" 0.8.0
- (c++)"typeinfo name for pkgAcqMetaIndex@Base" 0.8.0
- (c++)"typeinfo name for debPackagesIndex@Base" 0.8.0
- (c++)"typeinfo name for pkgAcqIndexDiffs@Base" 0.8.0
- (c++)"typeinfo name for pkgAcqIndexTrans@Base" 0.8.0
- (c++)"typeinfo name for pkgAcquireStatus@Base" 0.8.0
- (c++)"typeinfo name for PreferenceSection@Base" 0.8.0
- (c++)"typeinfo name for pkgPackageManager@Base" 0.8.0
- (c++)"typeinfo name for debSrcRecordParser@Base" 0.8.0
- (c++)"typeinfo name for debVersioningSystem@Base" 0.8.0
- (c++)"typeinfo name for pkgUdevCdromDevices@Base" 0.8.0
- (c++)"typeinfo name for pkgVersioningSystem@Base" 0.8.0
- (c++)"typeinfo name for debTranslationsIndex@Base" 0.8.0
- (c++)"typeinfo name for MMap@Base" 0.8.0
- (c++)"typeinfo name for FileFd@Base" 0.8.0
- (c++)"typeinfo name for Vendor@Base" 0.8.0
- (c++)"typeinfo name for pkgCache@Base" 0.8.0
- (c++)"typeinfo name for IndexCopy@Base" 0.8.0
- (c++)"typeinfo name for debSystem@Base" 0.8.0
- (c++)"typeinfo name for metaIndex@Base" 0.8.0
- (c++)"typeinfo name for pkgDPkgPM@Base" 0.8.0
- (c++)"typeinfo name for pkgPolicy@Base" 0.8.0
- (c++)"typeinfo name for pkgSystem@Base" 0.8.0
- (c++)"typeinfo name for pkgAcquire::Item@Base" 0.8.0
- (c++)"typeinfo name for pkgRecords::Parser@Base" 0.8.0
- (c++)"typeinfo name for pkgDepCache::InRootSetFunc@Base" 0.8.0
- (c++)"typeinfo name for pkgDepCache::DefaultRootSetFunc@Base" 0.8.0
- (c++)"typeinfo name for pkgDepCache::Policy@Base" 0.8.0
- (c++)"typeinfo name for pkgSimulate::Policy@Base" 0.8.0
- (c++)"typeinfo name for pkgIndexFile::Type@Base" 0.8.0
- (c++)"typeinfo name for Configuration::MatchAgainstConfig@Base" 0.8.0
- (c++)"typeinfo name for pkgSourceList::Type@Base" 0.8.0
- (c++)"typeinfo name for pkgSrcRecords::Parser@Base" 0.8.0
- (c++)"typeinfo name for pkgCacheGenerator::ListParser@Base" 0.8.0
- (c++)"typeinfo name for APT::CacheSetHelper@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::DepIterator@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::GrpIterator@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::PkgIterator@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::PrvIterator@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::VerIterator@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::DescIterator@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::PkgFileIterator@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::VerFileIterator@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::DescFileIterator@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::Iterator<pkgCache::Dependency, pkgCache::DepIterator>@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::Iterator<pkgCache::Description, pkgCache::DescIterator>@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::Iterator<pkgCache::PackageFile, pkgCache::PkgFileIterator>@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::Iterator<pkgCache::Group, pkgCache::GrpIterator>@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::Iterator<pkgCache::VerFile, pkgCache::VerFileIterator>@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::Iterator<pkgCache::DescFile, pkgCache::DescFileIterator>@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::Iterator<pkgCache::Provides, pkgCache::PrvIterator>@Base" 0.8.0
- (c++)"typeinfo name for pkgCache::Namespace@Base" 0.8.0
- (c++)"vtable for OpProgress@Base" 0.8.0
- (c++)"vtable for SourceCopy@Base" 0.8.0
- (c++)"vtable for pkgAcqFile@Base" 0.8.0
- (c++)"vtable for pkgAcquire@Base" 0.8.0
- (c++)"vtable for DynamicMMap@Base" 0.8.0
- (c++)"vtable for PackageCopy@Base" 0.8.0
- (c++)"vtable for pkgAcqIndex@Base" 0.8.0
- (c++)"vtable for pkgDepCache@Base" 0.8.0
- (c++)"vtable for pkgSimulate@Base" 0.8.0
- (c++)"vtable for debIFTypePkg@Base" 0.8.0
- (c++)"vtable for debIFTypeSrc@Base" 0.8.0
- (c++)"vtable for debSLTypeDeb@Base" 0.8.0
- (c++)"vtable for indexRecords@Base" 0.8.0
- (c++)"vtable for pkgAcqMethod@Base" 0.8.0
- (c++)"vtable for pkgCacheFile@Base" 0.8.0
- (c++)"vtable for pkgIndexFile@Base" 0.8.0
- (c++)"vtable for debListParser@Base" 0.8.0
- (c++)"vtable for pkgAcqArchive@Base" 0.8.0
- (c++)"vtable for pkgAcqMetaSig@Base" 0.8.0
- (c++)"vtable for pkgTagSection@Base" 0.8.0
- (c++)"vtable for OpTextProgress@Base" 0.8.0
- (c++)"vtable for debIFTypeTrans@Base" 0.8.0
- (c++)"vtable for debStatusIndex@Base" 0.8.0
- (c++)"vtable for debIFTypeStatus@Base" 0.8.0
- (c++)"vtable for debRecordParser@Base" 0.8.0
- (c++)"vtable for debReleaseIndex@Base" 0.8.0
- (c++)"vtable for debSLTypeDebSrc@Base" 0.8.0
- (c++)"vtable for debSLTypeDebian@Base" 0.8.0
- (c++)"vtable for debSourcesIndex@Base" 0.8.0
- (c++)"vtable for pkgAcqDiffIndex@Base" 0.8.0
- (c++)"vtable for pkgAcqMetaIndex@Base" 0.8.0
- (c++)"vtable for debPackagesIndex@Base" 0.8.0
- (c++)"vtable for pkgAcqIndexDiffs@Base" 0.8.0
- (c++)"vtable for pkgAcqIndexTrans@Base" 0.8.0
- (c++)"vtable for pkgAcquireStatus@Base" 0.8.0
- (c++)"vtable for PreferenceSection@Base" 0.8.0
- (c++)"vtable for pkgPackageManager@Base" 0.8.0
- (c++)"vtable for debSrcRecordParser@Base" 0.8.0
- (c++)"vtable for debVersioningSystem@Base" 0.8.0
- (c++)"vtable for pkgUdevCdromDevices@Base" 0.8.0
- (c++)"vtable for pkgVersioningSystem@Base" 0.8.0
- (c++)"vtable for debTranslationsIndex@Base" 0.8.0
- (c++)"vtable for MMap@Base" 0.8.0
- (c++)"vtable for FileFd@Base" 0.8.0
- (c++)"vtable for Vendor@Base" 0.8.0
- (c++)"vtable for pkgCache@Base" 0.8.0
- (c++)"vtable for IndexCopy@Base" 0.8.0
- (c++)"vtable for debSystem@Base" 0.8.0
- (c++)"vtable for metaIndex@Base" 0.8.0
- (c++)"vtable for pkgDPkgPM@Base" 0.8.0
- (c++)"vtable for pkgPolicy@Base" 0.8.0
- (c++)"vtable for pkgSystem@Base" 0.8.0
- (c++)"vtable for pkgAcquire::Item@Base" 0.8.0
- (c++)"vtable for pkgRecords::Parser@Base" 0.8.0
- (c++)"vtable for pkgDepCache::InRootSetFunc@Base" 0.8.0
- (c++)"vtable for pkgDepCache::DefaultRootSetFunc@Base" 0.8.0
- (c++)"vtable for pkgDepCache::Policy@Base" 0.8.0
- (c++)"vtable for pkgSimulate::Policy@Base" 0.8.0
- (c++)"vtable for pkgIndexFile::Type@Base" 0.8.0
- (c++)"vtable for Configuration::MatchAgainstConfig@Base" 0.8.0
- (c++)"vtable for pkgSourceList::Type@Base" 0.8.0
- (c++)"vtable for pkgSrcRecords::Parser@Base" 0.8.0
- (c++)"vtable for pkgCacheGenerator::ListParser@Base" 0.8.0
- (c++)"vtable for APT::CacheSetHelper@Base" 0.8.0
- (c++)"vtable for pkgCache::DepIterator@Base" 0.8.0
- (c++)"vtable for pkgCache::GrpIterator@Base" 0.8.0
- (c++)"vtable for pkgCache::PkgIterator@Base" 0.8.0
- (c++)"vtable for pkgCache::PrvIterator@Base" 0.8.0
- (c++)"vtable for pkgCache::VerIterator@Base" 0.8.0
- (c++)"vtable for pkgCache::DescIterator@Base" 0.8.0
- (c++)"vtable for pkgCache::PkgFileIterator@Base" 0.8.0
- (c++)"vtable for pkgCache::VerFileIterator@Base" 0.8.0
- (c++)"vtable for pkgCache::DescFileIterator@Base" 0.8.0
- (c++)"vtable for pkgCache::Iterator<pkgCache::Dependency, pkgCache::DepIterator>@Base" 0.8.0
- (c++)"vtable for pkgCache::Iterator<pkgCache::Description, pkgCache::DescIterator>@Base" 0.8.0
- (c++)"vtable for pkgCache::Iterator<pkgCache::PackageFile, pkgCache::PkgFileIterator>@Base" 0.8.0
- (c++)"vtable for pkgCache::Iterator<pkgCache::Group, pkgCache::GrpIterator>@Base" 0.8.0
- (c++)"vtable for pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>@Base" 0.8.0
- (c++)"vtable for pkgCache::Iterator<pkgCache::VerFile, pkgCache::VerFileIterator>@Base" 0.8.0
- (c++)"vtable for pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>@Base" 0.8.0
- (c++)"vtable for pkgCache::Iterator<pkgCache::DescFile, pkgCache::DescFileIterator>@Base" 0.8.0
- (c++)"vtable for pkgCache::Iterator<pkgCache::Provides, pkgCache::PrvIterator>@Base" 0.8.0
- (c++)"non-virtual thunk to pkgDepCache::DefaultRootSetFunc::~DefaultRootSetFunc()@Base" 0.8.0
- (c++)"operator<<(std::basic_ostream<char, std::char_traits<char> >&, pkgCache::DepIterator)@Base" 0.8.0
- (c++)"operator<<(std::basic_ostream<char, std::char_traits<char> >&, pkgCache::PkgIterator)@Base" 0.8.0
- _apt_DebSrcType@Base 0.8.0
- _apt_DebType@Base 0.8.0
- _config@Base 0.8.0
- _system@Base 0.8.0
- debSys@Base 0.8.0
- debVS@Base 0.8.0
- pkgLibVersion@Base 0.8.0
- pkgVersion@Base 0.8.0
-### demangle strangeness - buildd report it as MISSING and as new…
- (c++)"pkgAcqMetaSig::pkgAcqMetaSig(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<IndexTarget*, std::allocator<IndexTarget*> > const*, indexRecords*)@Base" 0.8.0
-### gcc-4.4 specific
-# (c++|optional=inherent)"APT::PackageSet::PackageSet(APT::PackageSet const&)@Base" 0.8.0
-# (c++|optional=inline)"stringcasecmp(char const*, char const*, char const*)@Base" 0.8.0
-# (arch=armel|c++|optional=inline)"stringcasecmp(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@Base" 0.8.0
-# (c++|optional=inherent)"APT::VersionSet::insert(pkgCache::VerIterator const&)@Base" 0.8.0
-# (c++|optional=inline)"APT::VersionSet::insert(APT::VersionSet const&)@Base" 0.8.0
-# (c++|optional=private)"debTranslationsIndex::IndexFile(char const*) const@Base" 0.8.0
-# (c++|optional=inline)"pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>::end() const@Base" 0.8.0
-# (c++|optional=inherent)"HashString::operator=(HashString const&)@Base" 0.8.0
-# (c++|regex|optional=std)"^std::less<[^ ]+>::operator\(\)\(.+\) const@Base$" 0.8.0
-# (c++|regex|optional=std)"^std::vector<.+ >::(vector|push_back|erase|_[^ ]+)\(.+\)( const|)@Base$" 0.8.0
-# (c++|regex|optional=std)"^pkgCache::(Dep|Pkg|Ver|Grp|Prv|Desc|PkgFile)Iterator\*\* std::_.+@Base$" 0.8.0
-### gcc-4.5 specific
-# (c++|regex|optional=std)"^char\* std::[^ ]+<.+ >::_.+@Base$" 0.8.0
-# (c++|optional=inline)"FileFd::FileFd(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, FileFd::OpenMode, unsigned long)@Base" 0.8.0
-# (c++|regex|optional=template)"^SPtrArray<[^ ]+>::~SPtrArray\(\)@Base$" 0.8.0
-# (c++|optional=template)"SPtrArray<unsigned char>::~SPtrArray()@Base" 0.8.0
-### gcc-4.6 specific
- (c++|optional=template)"SPtrArray<pkgCache::Version*>::~SPtrArray()@Base" 0.8.0
- (c++|regex|optional=std)"^std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char( const|)\*>\(.+\)@Base$" 0.8.0
- (c++|regex|optional=std)"^std::vector<DiffInfo, .+@Base$" 0.8.0
- (c++|regex|optional=std)"^std::vector<.+ >::(vector|push_back|erase|_[^ ]+)\(.+\)( const|)@Base$" 0.8.0
-# (c++|optional=strange)"pkgCache::VerIterator::VerIterator(pkgCache&, pkgCache::Version*)@Base" 0.8.0
-### architecture specific: va_list
- (arch=armel armhf|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, std::__va_list&) const@Base" 0.8.15~exp1 1
- (arch=i386 hurd-i386 kfreebsd-i386|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, char*&) const@Base" 0.8.15~exp1 1
- (arch=hppa ia64 mips mipsel sparc sparc64|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, void*&) const@Base" 0.8.15~exp1 1
- (arch=amd64 kfreebsd-amd64 powerpc powerpcspe s390|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, __va_list_tag (&) [1]) const@Base" 0.8.15~exp1 1
- (arch=sh4|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, __builtin_va_list&) const@Base" 0.8.15~exp1 1
- (arch=alpha|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, __va_list_tag&) const@Base" 0.8.15~exp1 1
-### architecture specific: va_list & size_t
- (arch=i386 hurd-i386 kfreebsd-i386|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, char*&, unsigned int&)@Base" 0.8.11.4 1
- (arch=armel armhf|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, std::__va_list&, unsigned int&)@Base" 0.8.11.4 1
- (arch=alpha|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, __va_list_tag&, unsigned long&)@Base" 0.8.11.4 1
- (arch=powerpc powerpcspe|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, __va_list_tag (&) [1], unsigned int&)@Base" 0.8.11.4 1
- (arch=amd64 kfreebsd-amd64 s390|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, __va_list_tag (&) [1], unsigned long&)@Base" 0.8.11.4 1
- (arch=hppa mips mipsel sparc|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, void*&, unsigned int&)@Base" 0.8.11.4 1
- (arch=ia64 sparc64|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, void*&, unsigned long&)@Base" 0.8.11.4 1
- (arch=sh4|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, __builtin_va_list&, unsigned int&)@Base" 0.8.11.4 1
-
- (arch=i386 hurd-i386 kfreebsd-i386|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, char*&, int, unsigned int&)@Base" 0.8.11.4 1
- (arch=armel armhf|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, std::__va_list&, int, unsigned int&)@Base" 0.8.11.4 1
- (arch=alpha|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __va_list_tag&, int, unsigned long&)@Base" 0.8.11.4 1
- (arch=powerpc powerpcspe|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __va_list_tag (&) [1], int, unsigned int&)@Base" 0.8.11.4 1
- (arch=amd64 kfreebsd-amd64 s390|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __va_list_tag (&) [1], int, unsigned long&)@Base" 0.8.11.4 1
- (arch=hppa mips mipsel sparc|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, void*&, int, unsigned int&)@Base" 0.8.11.4 1
- (arch=ia64 sparc64|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, void*&, int, unsigned long&)@Base" 0.8.11.4 1
- (arch=sh4|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __builtin_va_list&, int, unsigned int&)@Base" 0.8.11.4 1
-### architecture specific: size_t
- (arch=i386 armel armhf hppa hurd-i386 kfreebsd-i386 mips mipsel powerpc powerpcspe sh4 sparc|c++)"_strtabexpand(char*, unsigned int)@Base" 0.8.0
- (arch=alpha amd64 ia64 kfreebsd-amd64 s390 sparc64|c++)"_strtabexpand(char*, unsigned long)@Base" 0.8.0
- (arch=i386 armel armhf hppa hurd-i386 kfreebsd-i386 mips mipsel powerpc powerpcspe sh4 sparc|c++)"indexRecords::parseSumData(char const*&, char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&)@Base" 0.8.0
- (arch=alpha amd64 ia64 kfreebsd-amd64 s390 sparc64|c++)"indexRecords::parseSumData(char const*&, char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long&)@Base" 0.8.0
-### try to ignore std:: template instances
- (c++|regex|optional=std)"^(void |)std::[^ ]+<.+ >::(_|~).+\(.*\)@Base$" 0.8.0
- (c++|regex|optional=std)"^std::[^ ]+<.+ >::(append|insert|reserve|operator[^ ]+)\(.*\)@Base$" 0.8.0
- (c++|regex|optional=std)"^(void |DiffInfo\* |)std::_.*@Base$" 0.8.0
- (c++|regex|optional=std)"^(bool|void) std::(operator|sort_heap|make_heap)[^ ]+<.+ >\(.+\)@Base$" 0.8.0
- (c++|regex|optional=std)"^std::reverse_iterator<.+ > std::__.+@Base$" 0.8.0
- (c++|regex|optional=std)"^std::basic_string<.+ >\(.+\)@Base$" 0.8.0
- (c++|regex|optional=std)"^__gnu_cxx::__[^ ]+<.*@Base$" 0.8.0
- (c++|regex|optional=std)"^typeinfo name for std::iterator<.*>@Base$" 0.8.0
- (c++|regex|optional=std)"^typeinfo for std::iterator<.*>@Base$" 0.8.0
-###
- (c++)"Configuration::MatchAgainstConfig::clearPatterns()@Base" 0.8.1 1
- (c++)"CreateAPTDirectoryIfNeeded(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.2 1
- (c++)"FileFd::FileSize()@Base" 0.8.8 1
- (c++)"Base256ToNum(char const*, unsigned long&, unsigned int)@Base" 0.8.11 1
- (c++)"pkgDepCache::SetCandidateRelease(pkgCache::VerIterator, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::list<std::pair<pkgCache::VerIterator, pkgCache::VerIterator>, std::allocator<std::pair<pkgCache::VerIterator, pkgCache::VerIterator> > >&)@Base" 0.8.11 1
- (c++)"pkgDepCache::SetCandidateRelease(pkgCache::VerIterator, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.11 1
- (c++)"RealFileExists(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.11 1
- (c++)"StripEpoch(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.11 1
- (c++)"IndexTarget::~IndexTarget()@Base" 0.8.11 1
- (c++)"pkgAcqIndex::Init(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.11 1
- (c++)"pkgAcqIndex::pkgAcqIndex(pkgAcquire*, IndexTarget const*, HashString const&, indexRecords const*)@Base" 0.8.11 1
- (c++)"pkgTagSection::FindFlag(unsigned long&, unsigned long, char const*, char const*)@Base" 0.8.11 1
- (c++)"pkgAcqSubIndex::ParseIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.11 1
- (c++)"pkgAcqSubIndex::Custom600Headers()@Base" 0.8.11 1
- (c++)"pkgAcqSubIndex::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.11 1
- (c++)"pkgAcqSubIndex::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.11 1
- (c++)"pkgAcqSubIndex::DescURI()@Base" 0.8.11 1
- (c++)"pkgAcqSubIndex::pkgAcqSubIndex(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashString const&)@Base" 0.8.11 1
- (c++)"pkgAcqSubIndex::~pkgAcqSubIndex()@Base" 0.8.11 1
- (c++)"pkgAcqMetaClearSig::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.11 1
- (c++)"pkgAcqMetaClearSig::pkgAcqMetaClearSig(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<IndexTarget*, std::allocator<IndexTarget*> > const*, indexRecords*)@Base" 0.8.11 1
- (c++)"pkgAcqMetaClearSig::~pkgAcqMetaClearSig()@Base" 0.8.11 1
- (c++)"pkgAcqIndexTrans::pkgAcqIndexTrans(pkgAcquire*, IndexTarget const*, HashString const&, indexRecords const*)@Base" 0.8.11 1
- (c++)"IndexTarget::IsOptional() const@Base" 0.8.11 1
- (c++)"IndexTarget::IsSubIndex() const@Base" 0.8.11 1
- (c++)"debReleaseIndex::TranslationIndexURI(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.11 1
- (c++)"debReleaseIndex::TranslationIndexURISuffix(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.11 1
- (c++)"typeinfo for pkgAcqSubIndex@Base" 0.8.11 1
- (c++)"typeinfo for pkgAcqMetaClearSig@Base" 0.8.11 1
- (c++)"typeinfo name for pkgAcqSubIndex@Base" 0.8.11 1
- (c++)"typeinfo name for pkgAcqMetaClearSig@Base" 0.8.11 1
- (c++)"vtable for pkgAcqSubIndex@Base" 0.8.11 1
- (c++)"vtable for pkgAcqMetaClearSig@Base" 0.8.11 1
- (c++)"FindMountPointForDevice(char const*)@Base" 0.8.12 1
- (c++)"pkgUdevCdromDevices::ScanForRemovable(bool)@Base" 0.8.12 1
- (c++)"APT::Configuration::Compressor::Compressor(char const*, char const*, char const*, char const*, char const*, unsigned short)@Base" 0.8.12 1
- (c++)"APT::Configuration::Compressor::~Compressor()@Base" 0.8.12 1
- (c++)"APT::Configuration::getCompressors(bool)@Base" 0.8.12 1
- (c++)"APT::Configuration::getCompressorExtensions()@Base" 0.8.12 1
- (c++)"APT::Configuration::setDefaultConfigurationForCompressors()@Base" 0.8.12 1
- (c++)"pkgDepCache::SetCandidateVersion(pkgCache::VerIterator, bool const&)@Base" 0.8.12 1
- (c++)"pkgAcqMetaClearSig::Custom600Headers()@Base" 0.8.13 1
- (c++|optional=private)"debListParser::NewProvidesAllArch(pkgCache::VerIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.13.2 1
- (c++|optional=private)"PrintMode(char)@Base" 0.8.13.2 1
- (c++)"pkgDepCache::IsModeChangeOk(pkgDepCache::ModeList, pkgCache::PkgIterator const&, unsigned long, bool)@Base" 0.8.13.2 1
- (c++)"pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool)@Base" 0.8.15~exp1 1
- (c++)"pkgCache::DepIterator::IsNegative() const@Base" 0.8.15~exp1 1
index 87d25e78ffdac0406c547b23928284ca2798bb53..444a99ba72187273b9a56ece9310b0f7031aaaba 100644 (file)
@@ -1,3 +1,286 @@
+apt (0.8.16~exp6) experimental; urgency=low
+
+  [ Christopher Baines ]
+  * enable APT in unpack/configure ordering to handle loops as well
+    as tight dependencies between immediate packages better
+    enabling also the possibility to mark all packages as immediate
+    (at least Closes: #353290, #540227, #559733, #621836, #639290)
+
+  [ David Kalnischkies ]
+  * [abi-break] Support large files in the complete toolset. Indexes of this
+    size are pretty unlikely for now, but we need it for deb
+    packages which could become bigger than 4GB now (LP: #815895)
+  * merged the debian-sid branch
+  
+  [ Michael Vogt ]
+  * bump ABI version
+
+ -- Michael Vogt <mvo@debian.org>  Wed, 14 Sep 2011 13:26:23 +0200
+
+apt (0.8.16~exp5) experimental; urgency=low
+
+  * merged the latest debian-sid fixes
+  * apt-pkg/makefile:
+    - install sha256.h compat header
+  * apt-pkg/pkgcachegen.{cc,h}:
+    - use ref-to-ptr semantic in NewDepends() to ensure that the   
+      libapt does not segfault if the cache is remapped in between
+      (LP: #812862)
+    - fix crash when P.Arch() was used but the cache got remapped
+  * apt-pkg/acquire-item.{cc,h}:
+    - do not check for a "Package" tag in optional index targets
+      like the translations index
+  * apt-pkg/acquire.cc:
+    - fix potential divide-by-zero
+  * methods/mirror.cc:
+    - include the architecture(s) in the query string as well so 
+      that the server can make better decisions
+
+ -- Michael Vogt <mvo@debian.org>  Mon, 15 Aug 2011 14:52:54 +0200
+
+apt (0.8.16~exp4) experimental; urgency=low
+
+  [ Julian Andres Klode ]
+  * apt-pkg/pkgcache.h:
+    - [ABI break] Add pkgCache::Header::CacheFileSize, storing the cache size
+  * apt-pkg/pkgcachegen.cc:
+    - Write the file size to the cache
+  * apt-pkg/pkgcache.cc:
+    - Check that cache is at least CacheFileSize bytes large (LP: #16467)
+  
+  [ Michael Vogt ]
+  * merged latest fixes from debian-sid
+  * apt-pkg/cdrom.{cc,h}:
+    - cleanup old ABI break avoidance hacks
+  * [ABI break] apt-pkg/acquire-item.{cc,h}:
+    - cleanup around OptionalIndexTarget and SubIndexTarget
+  * [ABI break] merged patch from Jonathan Thomas to have a new
+    RecordField() function in the pkgRecorder parser. Many thanks
+    Thomas
+  * [ABI break] merge patch from Jonathan Thomas to speed up the
+    depcache by caching the install-recommends and install-suggests
+    values
+  * apt-pkg/contrib/fileutl.{cc,h}:
+    - add GetModificationTime() helper
+  * apt-pkg/pkgcachegen.cc:
+    - regenerate the cache if the sources.list changes to ensure
+      that changes in the ordering there will be honored by apt
+  * apt-pkg/sourcelist.{cc,h}:
+    - add pkgSourceList::GetLastModifiedTime() helper
+
+ -- Michael Vogt <mvo@debian.org>  Thu, 28 Jul 2011 16:57:08 +0200
+
+apt (0.8.16~exp3) experimental; urgency=low
+
+  [ David Kalnischkies ]
+  * apt-pkg/pkgcache.h:
+    - readd All{Foreign,Allowed} as suggested by Julian to
+      remain strictly API compatible
+  * apt-pkg/acquire*.{cc,h}:
+    - try even harder to support really big files in the fetcher by
+      converting (hopefully) everything to 'long long' (Closes: #632271)
+  * ftparchive/writer.cc:
+    - generate all checksums in one run over the file for Release
+  * cmdline/apt-get.cc:
+    - add an --assume-no option for testing to say 'no' to everything
+  * apt-pkg/deb/debmetaindex.cc:
+    - add trusted=yes option to mark unsigned (local) repository as trusted
+      based on a patch from Ansgar Burchardt, thanks a lot! (Closes: #596498)
+
+  [ Michael Vogt ]
+  * merge fixes from the debian/unstable upload
+  * merge lp:~mvo/apt/sha512-template to get fixes for the 
+    sha1/md5 verifiation (closes: #632520)
+
+ -- Michael Vogt <mvo@debian.org>  Fri, 15 Jul 2011 09:56:17 +0200
+
+apt (0.8.16~exp2) experimental; urgency=low
+
+  [ David Kalnischkies ]
+  * [ABI-Break] Implement EDSP in libapt-pkg so that all front-ends which
+    use the internal resolver can now be used also with external
+    ones as the usage is hidden in between the old API
+  * provide two edsp solvers in apt-utils:
+    - 'dump' to quickly output a complete scenario and
+    - 'apt' to use the internal as an external resolver
+  * apt-pkg/pkgcache.h:
+    - clean up mess with the "all" handling in MultiArch to
+      fix LP: #733741 cleanly for everyone now
+  * apt-pkg/depcache.cc:
+    - use a boolean instead of an int for Add/Remove in AddStates
+      similar to how it works with AddSizes
+    - let the Mark methods return if their marking was successful
+    - if a Breaks can't be upgraded, remove it. If it or a Conflict
+      can't be removed the installation of the breaker fails.
+  * cmdline/apt-get.cc:
+    - do not discard the error messages from the resolver and instead
+      only show the general 'Broken packages' message if nothing else
+
+  [ Stefano Zacchiroli ]
+  * doc/external-dependency-solver-protocol.txt:
+    - describe EDSP and the configuration interface around it
+  
+  [ Michael Vogt ]
+  * [ABI-Break] merge lp:~mvo/apt/sha512-template to add support for sha512
+  * [ABI-Break] merge lp:~mvo/apt/dpointer to support easier extending
+    without breaking the ABI
+  * increase ABI version and update package names
+
+ -- Michael Vogt <mvo@debian.org>  Wed, 29 Jun 2011 13:57:28 +0200
+
+apt (0.8.16~exp1) experimental; urgency=low
+
+  * merged with the debian/unstable upload
+
+ -- Michael Vogt <mvo@debian.org>  Wed, 29 Jun 2011 12:40:31 +0200
+
+apt (0.8.15.7) unstable; urgency=low
+
+  [ David Kalnischkies ]
+  * apt-pkg/packagemanager.cc, apt-pkg/pkgcache.cc:
+    - ignore "self"-conflicts for all architectures of a package
+      instead of just for the architecture of the package look at
+      in the ordering of installations, too (LP: #802901)
+    - M-A:same lockstep unpack should operate on installed
+      packages first (LP: #835625)
+  * test/*
+    - reorganize the various testcases and helper we have and
+      integrate them better into the buildsystem
+    - run the test/libapt testcases at package build-time
+  * debian/apt.symbols:
+    - add the newly added symbols since 0.8.15.3
+  * cmdline/apt-get.cc:
+    - remove the binary caches in 'apt-get clean' as it is the first
+      thing recommend by many supporters in case of APT segfaults
+    - remove the caches in 'apt-get update', too, as they will be
+      invalid in most cases anyway
+  * apt-pkg/acquire-item.cc:
+    - if no Release.gpg file is found try to verify with hashes,
+      but do not fail if a hash can't be found
+  * apt-pkg/acquire.cc:
+    - non-existing directories are by definition clean
+  * cmdline/apt-key:
+    - if command is 'add' do not error out if the specified
+      keyring doesn't exist, it will be created by gpg
+  * apt-pkg/orderlist.cc:
+    - prefer visiting packages marked for deletion in VisitProvides
+      if we are operating on a negative dependency so that we can
+      deal early with the fallout of this remove
+  * apt-pkg/indexrecords.cc:
+    - fix Acquire::Max-ValidTime option by interpreting it really
+      as seconds as specified in the manpage and not as days
+    - add an Acquire::Min-ValidTime option (Closes: #640122)
+  * doc/apt.conf.5.xml:
+    - reword Acquire::Max-ValidTime documentation to make clear
+      that it doesn't provide the new Min-ValidTime functionality
+
+ -- Michael Vogt <mvo@debian.org>  Mon, 12 Sep 2011 16:38:46 +0200
+
+apt (0.8.15.6) unstable; urgency=low
+
+  [ Michael Vogt ]
+  * apt-pkg/contrib/fileutl.{cc,h}:
+    - add GetModificationTime() helper
+  * apt-pkg/pkgcachegen.cc:
+    - regenerate the cache if the sources.list changes to ensure
+      that changes in the ordering there will be honored by apt
+  * apt-pkg/sourcelist.{cc,h}:
+    - add pkgSourceList::GetLastModifiedTime() helper
+  * apt-pkg/pkgcachegen.{cc,h}:
+    - use ref-to-ptr semantic in NewDepends() to ensure that the   
+      libapt does not segfault if the cache is remapped in between
+      (LP: #812862)
+    - fix crash when P.Arch() was used but the cache got remapped
+  * test/integration/test-hashsum-verification:
+    - add regression test for hashsum verification
+  * apt-pkg/acquire-item.cc:
+    - if no Release.gpg file is found, still load the hashes for
+      verification (closes: #636314) and add test
+  
+  [ David Kalnischkies ]
+  * lots of cppcheck fixes
+
+ -- Michael Vogt <mvo@debian.org>  Mon, 15 Aug 2011 09:20:35 +0200
+
+apt (0.8.15.5) unstable; urgency=low
+
+  [ David Kalnischkies ]
+  * apt-pkg/deb/deblistparser.cc:
+    - do not assume that the last char on a line is a \n (Closes: #633350)
+
+ -- Michael Vogt <mvo@debian.org>  Thu, 28 Jul 2011 16:49:15 +0200
+
+apt (0.8.15.4) unstable; urgency=low
+
+  [ David Miller ]
+  * apt-pkg/contrib/sha1.cc:
+    - fix illegally casts of on-stack buffer to a type requiring more
+      alignment than it has resulting in segfaults on sparc (Closes: #634696)
+
+  [ Michael Vogt ]
+  * apt-pkg/contrib/cdromutl.cc:
+    - fix escape problem when looking for the mounted devices
+  * apt-pkg/contrib/strutl.{h,cc}, test/libapt/strutil_test.cc:
+    - add new DeEscapeString() similar to DeQuoteString but
+      unescape character escapes like \0XX and \xXX (plus added
+      test)
+  * refresh po/*
+  
+ -- Michael Vogt <mvo@debian.org>  Tue, 26 Jul 2011 12:12:27 +0200
+
+apt (0.8.15.3) unstable; urgency=low
+
+  [ Michael Vogt ]
+  * apt-pkg/acquire-item.cc:
+    - improve error message for a expired Release file
+  * apt-pkg/algorithms.cc:
+    - Hold back packages that would enter "policy-broken" state on upgrade
+      when doing a "apt-get upgrade"
+  * cmdline/apt-get.cc:
+    - fix missing download progress in apt-get download
+
+  [ David Kalnischkies ]
+  * apt-pkg/pkgcachegen.cc:
+    - fallback to memory if file is not writeable even if access()
+      told us the opposite before (e.g. in fakeroot 1.16) (Closes: #630591)
+  * doc/sources.list.5.xml:
+    - document available [options] for sources.list entries (Closes: 632441)
+  * doc/apt.conf.5.xml:
+    - document APT::Architectures list (Closes: #612102)
+  * cmdline/apt-get.cc:
+    - restore all important dependencies for garbage packages (LP: #806274)
+    - do not require unused partial dirs in 'source' (Closes: #633510)
+    - buildconflicts effect all architectures
+    - implement MultiarchCross for build-dep and source (Closes: #632221)
+  * apt-pkg/init.cc:
+    - use CndSet in pkgInitConfig (Closes: #629617)
+  * apt-pkg/depcache.cc:
+    - change default of APT::AutoRemove::SuggestsImportant to true
+  * cmdline/apt-key:
+    - use a tmpfile instead of /etc/apt/secring.gpg (Closes: #632596)
+  * debian/apt.postinst:
+    - remove /etc/apt/secring.gpg if it is an empty file
+  * doc/apt-cache.8.xml:
+    - apply madison typofix from John Feuerstein, thanks! (Closes: #633455)
+  * apt-pkg/policy.cc:
+    - emit an error on unknown APT::Default-Release value (Closes: #407511)
+  * apt-pkg/aptconfiguration.cc:
+    - ensure that native architecture is if not specified otherwise the
+      first architecture in the Architectures vector
+  * apt-pkg/deb/deblistparser.cc:
+    - Strip only :any and :native if MultiArch should be stripped as it is
+      save to ignore them in non-MultiArch contexts but if the dependency
+      is a specific architecture (and not the native) do not strip
+
+ -- Michael Vogt <mvo@debian.org>  Mon, 25 Jul 2011 15:04:43 +0200
+
+apt (0.8.15.2) unstable; urgency=high
+
+  * fix from David Kalnischkies for the InRelease gpg verification 
+    code (LP: #784473)
+
+ -- Michael Vogt <mvo@debian.org>  Tue, 12 Jul 2011 11:54:47 +0200
+
 apt (0.8.15.1) unstable; urgency=low
 
   [ David Kalnischkies ]
@@ -130,6 +413,185 @@ apt (0.8.15) unstable; urgency=low
 
  -- Michael Vogt <mvo@debian.org>  Tue, 28 Jun 2011 18:00:48 +0200
 
+apt (0.8.15~exp3) experimental; urgency=low
+
+  * debian/control:
+    - add Breaks: 0.8.15~exp3) for libapt-pkg4.10 and 
+     libapt-inst1.2 (thanks to Jonathan Nieder, closes: #630214)
+    - use depends for the ${shlibs:Depends} to make the breaks work
+
+ -- Michael Vogt <mvo@debian.org>  Fri, 17 Jun 2011 21:51:41 +0200
+
+apt (0.8.15~exp2) experimental; urgency=low
+
+  * debian/control:
+    - fix incorrect Replaces (closes: #630204) for libapt-inst1.2
+
+ -- Michael Vogt <mvo@debian.org>  Wed, 15 Jun 2011 16:51:14 +0200
+
+apt (0.8.15~exp1) experimental; urgency=low
+
+  [ Julian Andres Klode ]
+  * apt-pkg/depcache.cc:
+    - Really release action groups only once (Closes: #622744)
+    - Make purge work again for config-files (LP: #244598) (Closes: #150831)
+  * apt-pkg/acquire-item.cc:
+    - Reject files known to be invalid (LP: #346386) (Closes: #627642)
+  * debian/apt.cron.daily:
+    - Check power after wait, patch by manuel-soto (LP: #705269)
+  * debian/control:
+    - Move ${shlibs:Depends} to Pre-Depends, as we do not want APT
+      unpacked if a library is too old and thus break upgrades
+  * doc/apt-key.8.xml:
+    - Document apt-key net-update (LP: #192810)
+
+  [ Christian Perrier ]
+  * Galician translation update (Miguel Anxo Bouzada). Closes: #626505
+  * Italian translation update (Milo Casagrande). Closes: #627834
+  * German documentation translation update (Chris Leick). Closes: #629949
+
+  [ David Kalnischkies ]
+  * fix a bunch of cppcheck warnings/errors based on a patch by
+    Niels Thykier, thanks! (Closes: #622805)
+  * apt-pkg/depcache.cc:
+    - really include 'rc' packages in the delete count by fixing a
+      typo which exists since 1999 in the source… (LP: #761175)
+    - if critical or-group can't be satisfied, exit directly.
+  * apt-pkg/acquire-method.cc:
+    - write directly to stdout instead of creating the message in
+      memory first before writing to avoid hitting limits
+    - fix order of CurrentURI and UsedMirror in Status() and Log()
+  * apt-pkg/orderlist.cc:
+    - let VisitRProvides report if the calls were successful
+  * apt-pkg/deb/dpkgpm.cc:
+    - replace obsolete usleep with nanosleep
+  * debian/apt{,-utils}.symbols:
+    - update both experimental symbol-files to reflect 0.8.14 state
+  * debian/rules:
+    - remove unused embedded jquery by doxygen from libapt-pkg-doc
+  * cmdline/apt-mark.cc:
+    - reimplement apt-mark in c++
+    - provide a 'showmanual' command (Closes: #582791)
+    - provide a 'dpkg --set-selections' wrapper to set/release holds
+  * cmdline/apt-get.cc:
+    - deprecate mostly undocumented 'markauto' in favor of 'apt-mark'
+  * cmdline/apt-cache.cc:
+    - deprecate mostly undocumented 'showauto' in favor of 'apt-mark'
+  * apt-pkg/pkgcache.cc:
+    - really ignore :arch in FindPkg() in non-multiarch environment
+  * doc/po/de.po:
+    - undo the translation of the command 'dump' in manpage of apt-config
+      as report by Burghard Grossmann on debian-l10n-german, thanks!
+  * apt-pkg/deb/debmetaindex.cc:
+    - do not download TranslationIndex if no Translation-* will be
+      downloaded later on anyway (Closes: #624218)
+  * test/versions.lst:
+    - disable obscure version number tests with versions dpkg doesn't
+      allow any more as they don't start with a number
+  * apt-pkg/acquire-worker.cc:
+    - print filename in the unmatching size warning (Closes: #623137)
+  * apt-pkg/acquire-item.cc:
+    - apply fix for poorly worded 'locate file' error message from
+      Ben Finney, thanks! (Closes: #623171)
+  * methods/http.cc:
+    - add config option to ignore a closed stdin to be able to easily
+      use the method as a simple standalone downloader
+    - Location header in redirects should be absolute URI, but some
+      servers just send an absolute path so still deal with it properly
+    - dequote URL taken from Location in redirects as we will otherwise
+      quote an already quoted string in the request later (Closes: #602412)
+  * apt-pkg/contrib/netrc.cc:
+    - replace non-posix gnu-extension strdupa with strdup
+  * apt-pkg/packagemanager.cc:
+    - ensure for Multi-Arch:same packages that they are unpacked in
+      lock step even in immediate configuration (Closes: #618288)
+
+  [ Michael Vogt ]
+  * methods/mirror.cc:
+    - ignore lines starting with "#" in the mirror file
+    - ignore non http urls in the mirrors
+    - append the dist (e.g. sid, wheezy) as a query string when
+      asking for a suitable mirror 
+  * debian/control:
+    - add libapt-pkg4.10 and libapt-inst1.2 library packages
+
+ -- Michael Vogt <mvo@debian.org>  Fri, 10 Jun 2011 15:32:07 +0200
+
+apt (0.8.14.2) UNRELEASED; urgency=low
+
+  [ Julian Andres Klode ]
+  * apt-pkg/depcache.cc:
+    - Really release action groups only once (Closes: #622744)
+    - Make purge work again for config-files (LP: #244598) (Closes: #150831)
+  * debian/apt.cron.daily:
+    - Check power after wait, patch by manuel-soto (LP: #705269)
+  * debian/control:
+    - Move ${shlibs:Depends} to Pre-Depends, as we do not want APT
+      unpacked if a library is too old and thus break upgrades
+  * doc/apt-key.8.xml:
+    - Document apt-key net-update (LP: #192810)
+
+  [ Christian Perrier ]
+  * Galician translation update (Miguel Anxo Bouzada). Closes: #626505
+
+  [ David Kalnischkies ]
+  * fix a bunch of cppcheck warnings/errors based on a patch by
+    Niels Thykier, thanks! (Closes: #622805)
+  * apt-pkg/depcache.cc:
+    - really include 'rc' packages in the delete count by fixing a
+      typo which exists since 1999 in the source… (LP: #761175)
+    - if critical or-group can't be satisfied, exit directly.
+  * apt-pkg/acquire-method.cc:
+    - write directly to stdout instead of creating the message in
+      memory first before writing to avoid hitting limits
+    - fix order of CurrentURI and UsedMirror in Status() and Log()
+  * apt-pkg/orderlist.cc:
+    - let VisitRProvides report if the calls were successful
+  * apt-pkg/deb/dpkgpm.cc:
+    - replace obsolete usleep with nanosleep
+  * debian/apt{,-utils}.symbols:
+    - update both experimental symbol-files to reflect 0.8.14 state
+  * debian/rules:
+    - remove unused embedded jquery by doxygen from libapt-pkg-doc
+  * cmdline/apt-mark.cc:
+    - reimplement apt-mark in c++
+    - provide a 'showmanual' command (Closes: #582791)
+    - provide a 'dpkg --set-selections' wrapper to set/release holds
+  * cmdline/apt-get.cc:
+    - deprecate mostly undocumented 'markauto' in favor of 'apt-mark'
+  * cmdline/apt-cache.cc:
+    - deprecate mostly undocumented 'showauto' in favor of 'apt-mark'
+  * apt-pkg/pkgcache.cc:
+    - really ignore :arch in FindPkg() in non-multiarch environment
+  * doc/po/de.po:
+    - undo the translation of the command 'dump' in manpage of apt-config
+      as report by Burghard Grossmann on debian-l10n-german, thanks!
+  * apt-pkg/deb/debmetaindex.cc:
+    - do not download TranslationIndex if no Translation-* will be
+      downloaded later on anyway (Closes: #624218)
+  * test/versions.lst:
+    - disable obscure version number tests with versions dpkg doesn't
+      allow any more as they don't start with a number
+  * apt-pkg/acquire-worker.cc:
+    - print filename in the unmatching size warning (Closes: #623137)
+  * apt-pkg/acquire-item.cc:
+    - apply fix for poorly worded 'locate file' error message from
+      Ben Finney, thanks! (Closes: #623171)
+  * methods/http.cc:
+    - add config option to ignore a closed stdin to be able to easily
+      use the method as a simple standalone downloader
+    - Location header in redirects should be absolute URI, but some
+      servers just send an absolute path so still deal with it properly
+    - dequote URL taken from Location in redirects as we will otherwise
+      quote an already quoted string in the request later (Closes: #602412)
+  * apt-pkg/contrib/netrc.cc:
+    - replace non-posix gnu-extension strdupa with strdup
+  * apt-pkg/packagemanager.cc:
+    - ensure for Multi-Arch:same packages that they are unpacked in
+      lock step even in immediate configuration (Closes: #618288)
+
+ -- Michael Vogt <mvo@debian.org>  Mon, 16 May 2011 14:57:52 +0200
+
 apt (0.8.14.1) unstable; urgency=low
 
   * apt-pkg/acquire-item.cc:
index 6d0f16b7096d209c1d2ce04d5f97657374370086..7efb6ca8ab980ffa982655b5342f071b4657f54c 100644 (file)
@@ -6,26 +6,61 @@ Uploaders: Michael Vogt <mvo@debian.org>, Otavio Salvador <otavio@debian.org>,
  Christian Perrier <bubulle@debian.org>, Daniel Burrows <dburrows@debian.org>,
  Julian Andres Klode <jak@debian.org>
 Standards-Version: 3.9.2
-Build-Depends: dpkg-dev (>= 1.15.8), debhelper (>= 7.2.3~), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.0), zlib1g-dev | libz-dev, debiandoc-sgml, xsltproc, docbook-xsl, docbook-xml, po4a (>= 0.34-2), autotools-dev, autoconf, automake, doxygen
+Build-Depends: dpkg-dev (>= 1.15.8), debhelper (>= 7.2.3~), libdb-dev,
+ gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.0), 
+ zlib1g-dev | libz-dev, debiandoc-sgml, xsltproc, docbook-xsl, docbook-xml, 
+ po4a (>= 0.34-2), autotools-dev, autoconf, automake, doxygen
 Build-Conflicts: autoconf2.13, automake1.4
 Vcs-Bzr: http://bzr.debian.org/apt/debian-sid/
 Vcs-Browser: http://bzr.debian.org/loggerhead/apt/debian-sid/
 
 Package: apt
 Architecture: any
-Pre-Depends: ${shlibs:Depends}
-Depends: debian-archive-keyring, ${misc:Depends}, gnupg
+Depends: ${shlibs:Depends}, ${misc:Depends}, debian-archive-keyring, gnupg
 Replaces: manpages-pl (<< 20060617-3~)
-Provides: ${libapt-pkg:provides}
 Conflicts: python-apt (<< 0.7.93.2~)
 Suggests: aptitude | synaptic | wajig, dpkg-dev, apt-doc, bzip2, lzma, python-apt
-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.
+Description: APT's commandline package manager
+ This package provides commandline tools for searching and
+ managing as well as querying information about packages
as a low-level access to all features of the libapt-pkg library.
  .
- APT features complete installation ordering, multiple source capability
- and several other unique features, see the Users Guide in apt-doc.
+ These include:
+  * apt-get for retrieval of packages and information about them
+    from authenticated sources and for installation, upgrade and
+    removal of packages together with their dependencies
+  * apt-cache for querying available information about installed
+    as well as installable packages
+  * apt-cdrom to use removable media as a source for packages
+  * apt-config as an interface to the configuration settings
+  * apt-key as an interface to manage authentication keys
+
+Package: libapt-pkg4.12
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: APT's package managment runtime library
+ This library provides the common functionality for searching and
+ managing packages as well as information about packages.
+ Higher-level package managers can depend upon this library.
+ .
+ This includes:
+  * retrieval of information about packages from multiple sources
+  * retrieval of packages and all dependent packages
+    needed to satisfy a request either through an internal
+    solver or by interfacing with an external one
+  * authenticating the sources and validating the retrieved data
+  * installation and removal of packages in the system
+  * providing different transports to retrieve data over cdrom, ftp,
+    http, rsh as well as an interface to add more transports like
+    https (apt-transport-https) and debtorrent (apt-transport-debtorrent).
+
+Package: libapt-inst1.4
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: APT's deb package format runtime library
+ This library provides methods to query and extract information 
+ from deb packages. This includes the control data and the package
+ file content.
 
 Package: apt-doc
 Architecture: all
@@ -33,13 +68,13 @@ Priority: optional
 Depends: ${misc:Depends}
 Section: doc
 Description: Documentation for APT
- This package contains the user guide and offline guide, for APT, an
- Advanced Package Tool.
+ This package contains the user guide and offline guide for various
+ APT tools which are provided in a html and a text-only version.
 
 Package: libapt-pkg-dev
 Architecture: any
 Priority: optional
-Depends: apt (= ${binary:Version}), apt-utils (= ${binary:Version}), ${libapt-pkg:provides}, ${libapt-inst:provides}, ${misc:Depends}, zlib1g-dev | zlib-dev
+Depends: ${libapt-pkg-name} (= ${binary:Version}), ${libapt-inst-name} (= ${binary:Version}), ${misc:Depends}, zlib1g-dev | zlib-dev
 Section: libdevel
 Description: Development files for APT's libapt-pkg and libapt-inst
  This package contains the header files and libraries for
@@ -61,19 +96,25 @@ Description: Documentation for APT development
 Package: apt-utils
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
-Provides: ${libapt-inst:provides}
 Description: APT utility programs
- This package contains some APT utility programs such as apt-ftparchive,
apt-sortpkgs and apt-extracttemplates.
+ This package contains some less used commandline utilities related
to package managment with APT.
  .
- apt-extracttemplates is used by debconf to prompt for configuration 
- questions before installation. apt-ftparchive is used to create Package
- and other index files. apt-sortpkgs is a Package/Source file normalizer.
+  * apt-extracttemplates is used by debconf to prompt for configuration
+    questions before installation.
+  * apt-ftparchive is used to create Packages and other index files
+    needed to publish an archive of debian packages
+  * apt-sortpkgs is a Packages/Sources file normalizer.
 
 Package: apt-transport-https
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Priority: optional
-Description: APT https transport
- This package contains a APT https transport. It makes it possible to
- use 'deb https://foo distro main' lines in the sources.list.
+Description: https download transport for APT
+ This package enables the usage of 'deb https://foo distro main' lines
+ in the /etc/apt/sources.list so that all package managers using the
+ libapt-pkg library can access metadata and packages available in sources
+ accessable over https (Hypertext Transfer Protocol Secure).
+ .
+ This transport supports server as well as client authenification
+ with certificates.
diff --git a/debian/libapt-inst1.4.install b/debian/libapt-inst1.4.install
new file mode 100644 (file)
index 0000000..b7b63be
--- /dev/null
@@ -0,0 +1,2 @@
+bin/libapt-inst*.so.* usr/lib/
+usr/share/locale/*/*/libapt-inst*.mo
diff --git a/debian/libapt-inst1.4.symbols b/debian/libapt-inst1.4.symbols
new file mode 100644 (file)
index 0000000..bba2cb6
--- /dev/null
@@ -0,0 +1,122 @@
+libapt-inst.so.1.4 libapt-inst1.4 #MINVER#
+* Build-Depends-Package: libapt-pkg-dev
+ (c++)"ExtractTar::Done(bool)@Base" 0.8.0
+ (c++)"ExtractTar::Go(pkgDirStream&)@Base" 0.8.0
+ (c++)"ExtractTar::StartGzip()@Base" 0.8.0
+ (c++)"ExtractTar::ExtractTar(FileFd&, unsigned long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"ExtractTar::~ExtractTar()@Base" 0.8.0
+ (c++)"debDebFile::GotoMember(char const*)@Base" 0.8.0
+ (c++)"debDebFile::CheckMember(char const*)@Base" 0.8.0
+ (c++)"debDebFile::MergeControl(pkgDataBase&)@Base" 0.8.0
+ (c++)"debDebFile::ControlExtract::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0
+ (c++)"debDebFile::ControlExtract::~ControlExtract()@Base" 0.8.0
+ (c++)"debDebFile::ExtractArchive(pkgDirStream&)@Base" 0.8.0
+ (c++)"debDebFile::ExtractControl(pkgDataBase&)@Base" 0.8.0
+ (c++)"debDebFile::MemControlExtract::TakeControl(void const*, unsigned long)@Base" 0.8.0
+ (c++)"debDebFile::MemControlExtract::Read(debDebFile&)@Base" 0.8.0
+ (c++)"debDebFile::MemControlExtract::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0
+ (c++)"debDebFile::MemControlExtract::Process(pkgDirStream::Item&, unsigned char const*, unsigned long, unsigned long)@Base" 0.8.0
+ (c++)"debDebFile::MemControlExtract::~MemControlExtract()@Base" 0.8.0
+ (c++)"debDebFile::debDebFile(FileFd&)@Base" 0.8.0
+ (c++)"pkgExtract::FinishedFile(pkgDirStream::Item&, int)@Base" 0.8.0
+ (c++)"pkgExtract::CheckDirReplace(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int)@Base" 0.8.0
+ (c++)"pkgExtract::HandleOverwrites(pkgFLCache::NodeIterator, bool)@Base" 0.8.0
+ (c++)"pkgExtract::Fail(pkgDirStream::Item&, int)@Base" 0.8.0
+ (c++)"pkgExtract::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0
+ (c++)"pkgExtract::Aborted()@Base" 0.8.0
+ (c++)"pkgExtract::Finished()@Base" 0.8.0
+ (c++)"pkgExtract::pkgExtract(pkgFLCache&, pkgCache::VerIterator)@Base" 0.8.0
+ (c++)"pkgExtract::~pkgExtract()@Base" 0.8.0
+ (c++)"pkgFLCache::TreeLookup(unsigned int*, char const*, char const*, unsigned long, unsigned int*, bool)@Base" 0.8.0
+ (c++)"pkgFLCache::AddConfFile(char const*, char const*, pkgFLCache::PkgIterator const&, unsigned char const*)@Base" 0.8.0
+ (c++)"pkgFLCache::AddDiversion(pkgFLCache::PkgIterator const&, char const*, char const*)@Base" 0.8.0
+ (c++)"pkgFLCache::BeginDiverLoad()@Base" 0.8.0
+ (c++)"pkgFLCache::FinishDiverLoad()@Base" 0.8.0
+ (c++)"pkgFLCache::GetPkg(char const*, char const*, bool)@Base" 0.8.0
+ (c++)"pkgFLCache::Header::Header()@Base" 0.8.0
+ (c++)"pkgFLCache::GetNode(char const*, char const*, unsigned int, bool, bool)@Base" 0.8.0
+ (c++)"pkgFLCache::DropNode(unsigned int)@Base" 0.8.0
+ (c++)"pkgFLCache::HashNode(pkgFLCache::NodeIterator const&)@Base" 0.8.0
+ (c++)"pkgFLCache::PrintTree(unsigned int, unsigned long)@Base" 0.8.0
+ (c++)"pkgFLCache::pkgFLCache(DynamicMMap&)@Base" 0.8.0
+ (c++)"pkgDataBase::GetMetaTmp(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
+ (c++)"pkgDataBase::~pkgDataBase()@Base" 0.8.0
+ (c++)"pkgDirStream::FinishedFile(pkgDirStream::Item&, int)@Base" 0.8.0
+ (c++)"pkgDirStream::Fail(pkgDirStream::Item&, int)@Base" 0.8.0
+ (c++)"pkgDirStream::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0
+ (c++)"pkgDirStream::Process(pkgDirStream::Item&, unsigned char const*, unsigned long, unsigned long)@Base" 0.8.0
+ (c++)"pkgDirStream::~pkgDirStream()@Base" 0.8.0
+ (c++|optional)"debListParser::~debListParser()@Base" 0.8.0
+ (c++|optional)"pkgCacheGenerator::ListParser::CollectFileProvides(pkgCache&, pkgCache::VerIterator&)@Base" 0.8.0
+ (c++|optional)"pkgCacheGenerator::ListParser::~ListParser()@Base" 0.8.0
+ (c++|optional)"pkgCache::DepIterator::operator++(int)@Base" 0.8.0
+ (c++|optional)"pkgCache::DepIterator::operator++()@Base" 0.8.0
+ (c++|optional)"pkgCache::VerIterator::operator++(int)@Base" 0.8.0
+ (c++|optional)"pkgCache::VerIterator::operator++()@Base" 0.8.0
+ (c++)"ARArchive::LoadHeaders()@Base" 0.8.0
+ (c++)"ARArchive::ARArchive(FileFd&)@Base" 0.8.0
+ (c++)"ARArchive::~ARArchive()@Base" 0.8.0
+ (c++)"debDpkgDB::InitMetaTmp(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
+ (c++)"debDpkgDB::LoadChanges()@Base" 0.8.0
+ (c++)"debDpkgDB::ReadConfFiles()@Base" 0.8.0
+ (c++)"debDpkgDB::ReadyFileList(OpProgress&)@Base" 0.8.0
+ (c++)"debDpkgDB::ReadyPkgCache(OpProgress&)@Base" 0.8.0
+ (c++)"debDpkgDB::ReadDiversions()@Base" 0.8.0
+ (c++)"debDpkgDB::ReadFList(OpProgress&)@Base" 0.8.0
+ (c++)"debDpkgDB::debDpkgDB()@Base" 0.8.0
+ (c++)"debDpkgDB::~debDpkgDB()@Base" 0.8.0
+ (c++)"pkgFLCache::NodeIterator::RealPackage() const@Base" 0.8.0
+ (c++)"pkgFLCache::Header::CheckSizes(pkgFLCache::Header&) const@Base" 0.8.0
+ (c++|optional)"pkgCache::DepIterator::OwnerPointer() const@Base" 0.8.0
+ (c++|optional)"pkgCache::VerIterator::OwnerPointer() const@Base" 0.8.0
+ (c++)"ARArchive::FindMember(char const*) const@Base" 0.8.0
+ (c++)"typeinfo for ExtractTar@Base" 0.8.0
+ (c++)"typeinfo for pkgExtract@Base" 0.8.0
+ (c++)"typeinfo for pkgDataBase@Base" 0.8.0
+ (c++)"typeinfo for pkgDirStream@Base" 0.8.0
+ (c++)"typeinfo for debDpkgDB@Base" 0.8.0
+ (c++)"typeinfo for debDebFile::ControlExtract@Base" 0.8.0
+ (c++)"typeinfo for debDebFile::MemControlExtract@Base" 0.8.0
+ (c++|optional)"typeinfo for pkgCacheGenerator::ListParser@Base" 0.8.0
+ (c++|optional)"typeinfo for pkgCache::DepIterator@Base" 0.8.0
+ (c++|optional)"typeinfo for pkgCache::VerIterator@Base" 0.8.0
+ (c++|optional)"typeinfo for pkgCache::Iterator<pkgCache::Dependency, pkgCache::DepIterator>@Base" 0.8.0
+ (c++|optional)"typeinfo for pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>@Base" 0.8.0
+ (c++|optional)"typeinfo for pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>@Base" 0.8.0
+ (c++)"typeinfo name for ExtractTar@Base" 0.8.0
+ (c++)"typeinfo name for pkgExtract@Base" 0.8.0
+ (c++)"typeinfo name for pkgDataBase@Base" 0.8.0
+ (c++)"typeinfo name for pkgDirStream@Base" 0.8.0
+ (c++)"typeinfo name for debDpkgDB@Base" 0.8.0
+ (c++)"typeinfo name for debDebFile::ControlExtract@Base" 0.8.0
+ (c++)"typeinfo name for debDebFile::MemControlExtract@Base" 0.8.0
+ (c++|optional)"typeinfo name for pkgCacheGenerator::ListParser@Base" 0.8.0
+ (c++|optional)"typeinfo name for pkgCache::DepIterator@Base" 0.8.0
+ (c++|optional)"typeinfo name for pkgCache::VerIterator@Base" 0.8.0
+ (c++|optional)"typeinfo name for pkgCache::Iterator<pkgCache::Dependency, pkgCache::DepIterator>@Base" 0.8.0
+ (c++|optional)"typeinfo name for pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>@Base" 0.8.0
+ (c++|optional)"typeinfo name for pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>@Base" 0.8.0
+ (c++)"vtable for ExtractTar@Base" 0.8.0
+ (c++)"vtable for pkgExtract@Base" 0.8.0
+ (c++)"vtable for pkgDataBase@Base" 0.8.0
+ (c++)"vtable for pkgDirStream@Base" 0.8.0
+ (c++)"vtable for debDpkgDB@Base" 0.8.0
+ (c++)"vtable for debDebFile::ControlExtract@Base" 0.8.0
+ (c++)"vtable for debDebFile::MemControlExtract@Base" 0.8.0
+ (c++|optional)"vtable for pkgCacheGenerator::ListParser@Base" 0.8.0
+ (c++|optional)"vtable for pkgCache::DepIterator@Base" 0.8.0
+ (c++|optional)"vtable for pkgCache::VerIterator@Base" 0.8.0
+ (c++|optional)"vtable for pkgCache::Iterator<pkgCache::Dependency, pkgCache::DepIterator>@Base" 0.8.0
+ (c++|optional)"vtable for pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>@Base" 0.8.0
+ (c++|optional)"vtable for pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>@Base" 0.8.0
+### gcc-4.4 specific
+# (c++|regex|optional=std)"^char\* std::[^ ]+<.+ >::_.+@Base$" 0.8.0
+# (c++|optional=std)"std::basic_string<char, std::char_traits<char>, std::allocator<char> >& std::basic_string<char, std::char_traits<char>, std::allocator<char> >::append<unsigned char*>(unsigned char*, unsigned char*)@Base" 0.8.0
+### gcc-4.6 specific
+ (c++|optional=std)"std::vector<APT::Configuration::Compressor, std::allocator<APT::Configuration::Compressor> >::~vector()@Base" 0.8.12
+ (c++|optional=std)"std::basic_string<char, std::char_traits<char>, std::allocator<char> >& std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_dispatch<unsigned char*>(__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, unsigned char*, unsigned char*, std::__false_type)@Base" 0.8.0
+### try to ignore std:: template instances
+ (c++|regex|optional=std)"^std::basic_string<.+ >\(.+\)@Base$" 0.8.0
+ (c++|regex|optional=std)"^typeinfo name for std::iterator<.*>@Base$" 0.8.0
+ (c++|regex|optional=std)"^typeinfo for std::iterator<.*>@Base$" 0.8.0
+###
diff --git a/debian/libapt-pkg4.12.install b/debian/libapt-pkg4.12.install
new file mode 100644 (file)
index 0000000..91b39a3
--- /dev/null
@@ -0,0 +1,2 @@
+bin/libapt-pkg*.so.* usr/lib/
+usr/share/locale/*/*/libapt-pkg*.mo
diff --git a/debian/libapt-pkg4.12.symbols b/debian/libapt-pkg4.12.symbols
new file mode 100644 (file)
index 0000000..8d2bc4a
--- /dev/null
@@ -0,0 +1,1447 @@
+libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER#
+* Build-Depends-Package: libapt-pkg-dev
+ TFRewritePackageOrder@Base 0.8.0
+ TFRewriteSourceOrder@Base 0.8.0
+ (c++)"FileExists(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"IdentCdrom(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int)@Base" 0.8.0
+ (c++)"ListUpdate(pkgAcquireStatus&, pkgSourceList&, int)@Base" 0.8.0
+ (c++)"MountCdrom(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"ParseCWord(char const*&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
+ (c++)"ReadPinDir(pkgPolicy&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"RunScripts(char const*)@Base" 0.8.0
+ (c++)"SafeGetCWD()@Base" 0.8.0
+ (c++)"parsenetrc(char*, char*, char*, char*)@Base" 0.8.0
+ (c++)"QuoteString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@Base" 0.8.0
+ (c++)"ReadPinFile(pkgPolicy&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"RegexChoice(RxChoiceList*, char const**, char const**)@Base" 0.8.0
+ (c++)"SetNonBlock(int, bool)@Base" 0.8.0
+ (c++)"TimeRFC1123(long)@Base" 0.8.0
+ (c++)"flExtension(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"Base64Encode(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"ReadMessages(int, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)@Base" 0.8.0
+ (c++)"SetCloseExec(int, bool)@Base" 0.8.0
+ (c++)"StringToBool(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)@Base" 0.8.0
+ (c++)"UnmountCdrom(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"_GetErrorObj()@Base" 0.8.0
+ (c++)"pkgFixBroken(pkgDepCache&)@Base" 0.8.0
+ (c++)"DeQuoteString(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&)@Base" 0.8.0
+ (c++)"DeQuoteString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"OutputInDepth(unsigned long, char const*)@Base" 0.8.0
+ (c++)"ReadConfigDir(Configuration&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, unsigned int const&)@Base" 0.8.0
+ (c++)"URItoFileName(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"UTF8ToCodeset(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)@Base" 0.8.0
+ (c++)"pkgAllUpgrade(pkgDepCache&)@Base" 0.8.0
+ (c++)"pkgInitConfig(Configuration&)@Base" 0.8.0
+ (c++)"pkgInitSystem(Configuration&, pkgSystem*&)@Base" 0.8.0
+ (c++)"safe_snprintf(char*, char*, char const*, ...)@Base" 0.8.0
+ (c++)"stringcasecmp(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char const*, char const*)@Base" 0.8.0
+ (c++)"stringcasecmp(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >)@Base" 0.8.0
+ (c++)"stringcasecmp(char const*, char const*, char const*, char const*)@Base" 0.8.0
+ (c++)"tolower_ascii(int)@Base" 0.8.0
+ (c++)"ParseQuoteWord(char const*&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
+ (c++)"ReadConfigFile(Configuration&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, unsigned int const&)@Base" 0.8.0
+ (c++)"TokSplitString(char, char*, char**, unsigned long)@Base" 0.8.0
+ (c++)"maybe_add_auth(URI&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgApplyStatus(pkgDepCache&)@Base" 0.8.0
+ (c++)"pkgDistUpgrade(pkgDepCache&)@Base" 0.8.0
+ (c++)"CheckDomainList(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"CreateDirectory(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"DirectoryExists(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"VectorizeString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const&)@Base" 0.8.0
+ (c++)"pkgPrioSortList(pkgCache&, pkgCache::Version**)@Base" 0.8.0
+ (c++)"FTPMDTMStrToTime(char const*, long&)@Base" 0.8.0
+ (c++)"RFC1123StrToTime(char const*, long&)@Base" 0.8.0
+ (c++)"pkgMakeStatusCache(pkgSourceList&, OpProgress&, MMap**, bool)@Base" 0.8.0
+ (c++)"pkgMinimizeUpgrade(pkgDepCache&)@Base" 0.8.0
+ (c++)"GetListOfFilesInDir(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool const&)@Base" 0.8.0
+ (c++)"GetListOfFilesInDir(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, bool const&)@Base" 0.8.0
+ (c++)"pkgMakeStatusCacheMem(pkgSourceList&, OpProgress&)@Base" 0.8.0
+ (c++)"pkgMakeOnlyStatusCache(OpProgress&, DynamicMMap**)@Base" 0.8.0
+ (c++)"WaitFd(int, bool, unsigned long)@Base" 0.8.0
+ (c++)"GetLock(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@Base" 0.8.0
+ (c++)"Hex2Num(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned char*, unsigned int)@Base" 0.8.0
+ (c++)"CopyFile(FileFd&, FileFd&)@Base" 0.8.0
+ (c++)"ExecFork()@Base" 0.8.0
+ (c++)"ExecWait(int, char const*, bool)@Base" 0.8.0
+ (c++)"StrToNum(char const*, unsigned long&, unsigned int, unsigned int)@Base" 0.8.0
+ (c++)"SubstVar(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"SubstVar(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, SubstVar const*)@Base" 0.8.0
+ (c++)"flNoLink(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"flNotDir(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"ioprintf(std::basic_ostream<char, std::char_traits<char> >&, char const*, ...)@Base" 0.8.0
+ (c++)"IsMounted(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
+ (c++)"LookupTag(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, char const*)@Base" 0.8.0
+ (c++)"SizeToStr(double)@Base" 0.8.0
+ (c++)"StrToTime(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long&)@Base" 0.8.0
+ (c++)"TFRewrite(_IO_FILE*, pkgTagSection const&, char const**, TFRewriteData*)@Base" 0.8.0
+ (c++)"TimeToStr(unsigned long)@Base" 0.8.0
+ (c++)"_strstrip(char*)@Base" 0.8.0
+ (c++)"flCombine(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"flNotFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"stringcmp(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char const*, char const*)@Base" 0.8.0
+ (c++)"stringcmp(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >)@Base" 0.8.0
+ (c++)"stringcmp(char const*, char const*, char const*, char const*)@Base" 0.8.0
+ (c++)"strprintf(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const*, ...)@Base" 0.8.0
+ (c++)"guard variable for pkgCacheGenerator::Dynamic<pkgCache::DepIterator>::toReMap@Base" 0.8.0
+ (c++)"guard variable for pkgCacheGenerator::Dynamic<pkgCache::GrpIterator>::toReMap@Base" 0.8.0
+ (c++)"guard variable for pkgCacheGenerator::Dynamic<pkgCache::PkgIterator>::toReMap@Base" 0.8.0
+ (c++)"guard variable for pkgCacheGenerator::Dynamic<pkgCache::PrvIterator>::toReMap@Base" 0.8.0
+ (c++)"guard variable for pkgCacheGenerator::Dynamic<pkgCache::VerIterator>::toReMap@Base" 0.8.0
+ (c++)"guard variable for pkgCacheGenerator::Dynamic<pkgCache::DescIterator>::toReMap@Base" 0.8.0
+ (c++)"guard variable for pkgCacheGenerator::Dynamic<pkgCache::PkgFileIterator>::toReMap@Base" 0.8.0
+ (c++)"HashString::SupportedHashes()@Base" 0.8.0
+ (c++)"HashString::_SupportedHashes@Base" 0.8.0
+ (c++)"HashString::HashString(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"HashString::HashString(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"HashString::HashString()@Base" 0.8.0
+ (c++)"HashString::~HashString()@Base" 0.8.0
+ (c++)"OpProgress::CheckChange(float)@Base" 0.8.0
+ (c++)"OpProgress::Done()@Base" 0.8.0
+ (c++)"OpProgress::Update()@Base" 0.8.0
+ (c++)"OpProgress::OpProgress()@Base" 0.8.0
+ (c++)"OpProgress::~OpProgress()@Base" 0.8.0
+ (c++)"SourceCopy::GetFileName()@Base" 0.8.0
+ (c++)"SourceCopy::RewriteEntry(_IO_FILE*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"SourceCopy::Type()@Base" 0.8.0
+ (c++)"SourceCopy::~SourceCopy()@Base" 0.8.0
+ (c++)"pkgAcqFile::Custom600Headers()@Base" 0.8.0
+ (c++)"pkgAcqFile::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
+ (c++)"pkgAcqFile::DescURI()@Base" 0.8.0
+ (c++)"pkgAcqFile::HashSum()@Base" 0.8.0
+ (c++)"pkgAcqFile::~pkgAcqFile()@Base" 0.8.0
+ (c++)"pkgAcquire::WorkerStep(pkgAcquire::Worker*)@Base" 0.8.0
+ (c++)"pkgAcquire::FetchNeeded()@Base" 0.8.0
+ (c++)"pkgAcquire::TotalNeeded()@Base" 0.8.0
+ (c++)"pkgAcquire::MethodConfig::MethodConfig()@Base" 0.8.0
+ (c++)"pkgAcquire::PartialPresent()@Base" 0.8.0
+ (c++)"pkgAcquire::Add(pkgAcquire::Item*)@Base" 0.8.0
+ (c++)"pkgAcquire::Add(pkgAcquire::Worker*)@Base" 0.8.0
+ (c++)"pkgAcquire::Run(int)@Base" 0.8.0
+ (c++)"pkgAcquire::Bump()@Base" 0.8.0
+ (c++)"pkgAcquire::Item::Custom600Headers()@Base" 0.8.0
+ (c++)"pkgAcquire::Item::ReportMirrorFailure(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgAcquire::Item::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
+ (c++)"pkgAcquire::Item::Rename(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgAcquire::Item::HashSum()@Base" 0.8.0
+ (c++)"pkgAcquire::Item::Finished()@Base" 0.8.0
+ (c++)"pkgAcquire::Item::IsTrusted()@Base" 0.8.0
+ (c++)"pkgAcquire::Item::ShortDesc()@Base" 0.8.0
+ (c++)"pkgAcquire::Item::Item(pkgAcquire*)@Base" 0.8.0
+ (c++)"pkgAcquire::Item::~Item()@Base" 0.8.0
+ (c++)"pkgAcquire::Clean(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgAcquire::Queue::Bump()@Base" 0.8.0
+ (c++)"pkgAcquire::Queue::Cycle()@Base" 0.8.0
+ (c++)"pkgAcquire::Queue::Dequeue(pkgAcquire::Item*)@Base" 0.8.0
+ (c++)"pkgAcquire::Queue::Enqueue(pkgAcquire::ItemDesc&)@Base" 0.8.0
+ (c++)"pkgAcquire::Queue::Startup()@Base" 0.8.0
+ (c++)"pkgAcquire::Queue::FindItem(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::Worker*)@Base" 0.8.0
+ (c++)"pkgAcquire::Queue::ItemDone(pkgAcquire::Queue::QItem*)@Base" 0.8.0
+ (c++)"pkgAcquire::Queue::Shutdown(bool)@Base" 0.8.0
+ (c++)"pkgAcquire::Queue::Queue(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire*)@Base" 0.8.0
+ (c++)"pkgAcquire::Queue::~Queue()@Base" 0.8.0
+ (c++)"pkgAcquire::Setup(pkgAcquireStatus*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"pkgAcquire::Remove(pkgAcquire::Item*)@Base" 0.8.0
+ (c++)"pkgAcquire::Remove(pkgAcquire::Worker*)@Base" 0.8.0
+ (c++)"pkgAcquire::RunFds(fd_set*, fd_set*)@Base" 0.8.0
+ (c++)"pkgAcquire::SetFds(int&, fd_set*, fd_set*)@Base" 0.8.0
+ (c++)"pkgAcquire::UriEnd()@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::OutFdReady()@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::MediaChange(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::RunMessages()@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::Capabilities(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::ReadMessages()@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::MethodFailure()@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::SendConfiguration()@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::Pulse()@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::Start()@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::ItemDone()@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::Construct()@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::InFdReady()@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::QueueItem(pkgAcquire::Queue::QItem*)@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::Worker(pkgAcquire::MethodConfig*)@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::Worker(pkgAcquire::Queue*, pkgAcquire::MethodConfig*, pkgAcquireStatus*)@Base" 0.8.0
+ (c++)"pkgAcquire::Worker::~Worker()@Base" 0.8.0
+ (c++)"pkgAcquire::Dequeue(pkgAcquire::Item*)@Base" 0.8.0
+ (c++)"pkgAcquire::Enqueue(pkgAcquire::ItemDesc&)@Base" 0.8.0
+ (c++)"pkgAcquire::ItemDesc::~ItemDesc()@Base" 0.8.0
+ (c++)"pkgAcquire::Shutdown()@Base" 0.8.0
+ (c++)"pkgAcquire::UriBegin()@Base" 0.8.0
+ (c++)"pkgAcquire::GetConfig(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgAcquire::QueueName(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig const*&)@Base" 0.8.0
+ (c++)"pkgAcquire::pkgAcquire(pkgAcquireStatus*)@Base" 0.8.0
+ (c++)"pkgAcquire::pkgAcquire()@Base" 0.8.0
+ (c++)"pkgAcquire::~pkgAcquire()@Base" 0.8.0
+ (c++)"pkgRecords::Lookup(pkgCache::VerFileIterator const&)@Base" 0.8.0
+ (c++)"pkgRecords::Lookup(pkgCache::DescFileIterator const&)@Base" 0.8.0
+ (c++)"pkgRecords::Parser::Maintainer()@Base" 0.8.0
+ (c++)"pkgRecords::Parser::SHA256Hash()@Base" 0.8.0
+ (c++)"pkgRecords::Parser::Name()@Base" 0.8.0
+ (c++)"pkgRecords::Parser::GetRec(char const*&, char const*&)@Base" 0.8.0
+ (c++)"pkgRecords::Parser::MD5Hash()@Base" 0.8.0
+ (c++)"pkgRecords::Parser::FileName()@Base" 0.8.0
+ (c++)"pkgRecords::Parser::Homepage()@Base" 0.8.0
+ (c++)"pkgRecords::Parser::LongDesc()@Base" 0.8.0
+ (c++)"pkgRecords::Parser::SHA1Hash()@Base" 0.8.0
+ (c++)"pkgRecords::Parser::ShortDesc()@Base" 0.8.0
+ (c++)"pkgRecords::Parser::SourcePkg()@Base" 0.8.0
+ (c++)"pkgRecords::Parser::SourceVer()@Base" 0.8.0
+ (c++)"pkgRecords::Parser::~Parser()@Base" 0.8.0
+ (c++)"pkgRecords::pkgRecords(pkgCache&)@Base" 0.8.0
+ (c++)"pkgRecords::~pkgRecords()@Base" 0.8.0
+ (c++)"pkgTagFile::Fill()@Base" 0.8.0
+ (c++)"pkgTagFile::Step(pkgTagSection&)@Base" 0.8.0
+ (c++)"pkgTagFile::Resize()@Base" 0.8.0
+ (c++)"pkgTagFile::~pkgTagFile()@Base" 0.8.0
+ (c++)"CdromDevice::~CdromDevice()@Base" 0.8.0
+ (c++)"CommandLine::DispatchArg(CommandLine::Dispatch*, bool)@Base" 0.8.0
+ (c++)"CommandLine::SaveInConfig(unsigned int const&, char const* const*)@Base" 0.8.0
+ (c++)"CommandLine::Parse(int, char const**)@Base" 0.8.0
+ (c++)"CommandLine::HandleOpt(int&, int, char const**, char const*&, CommandLine::Args*, bool)@Base" 0.8.0
+ (c++)"CommandLine::CommandLine(CommandLine::Args*, Configuration*)@Base" 0.8.0
+ (c++)"CommandLine::~CommandLine()@Base" 0.8.0
+ (c++)"DynamicMMap::WriteString(char const*, unsigned long)@Base" 0.8.0
+ (c++)"DynamicMMap::Grow()@Base" 0.8.0
+ (c++)"DynamicMMap::Allocate(unsigned long)@Base" 0.8.0
+ (c++)"DynamicMMap::DynamicMMap(FileFd&, unsigned long, unsigned long const&, unsigned long const&, unsigned long const&)@Base" 0.8.0
+ (c++)"DynamicMMap::DynamicMMap(unsigned long, unsigned long const&, unsigned long const&, unsigned long const&)@Base" 0.8.0
+ (c++)"DynamicMMap::~DynamicMMap()@Base" 0.8.0
+ (c++)"GlobalError::DumpErrors(std::basic_ostream<char, std::char_traits<char> >&, GlobalError::MsgType const&, bool const&)@Base" 0.8.0
+ (c++)"GlobalError::PopMessage(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
+ (c++)"GlobalError::InsertErrno(GlobalError::MsgType const&, char const*, char const*, ...)@Base" 0.8.0
+ (c++)"GlobalError::PushToStack()@Base" 0.8.0
+ (c++)"GlobalError::RevertToStack()@Base" 0.8.0
+ (c++)"GlobalError::MergeWithStack()@Base" 0.8.0
+ (c++)"GlobalError::Debug(char const*, ...)@Base" 0.8.0
+ (c++)"GlobalError::Errno(char const*, char const*, ...)@Base" 0.8.0
+ (c++)"GlobalError::Error(char const*, ...)@Base" 0.8.0
+ (c++)"GlobalError::Fatal(char const*, ...)@Base" 0.8.0
+ (c++)"GlobalError::DebugE(char const*, char const*, ...)@Base" 0.8.0
+ (c++)"GlobalError::FatalE(char const*, char const*, ...)@Base" 0.8.0
+ (c++)"GlobalError::Insert(GlobalError::MsgType const&, char const*, ...)@Base" 0.8.0
+ (c++)"GlobalError::Notice(char const*, ...)@Base" 0.8.0
+ (c++)"GlobalError::Discard()@Base" 0.8.0
+ (c++)"GlobalError::NoticeE(char const*, char const*, ...)@Base" 0.8.0
+ (c++)"GlobalError::Warning(char const*, ...)@Base" 0.8.0
+ (c++)"GlobalError::WarningE(char const*, char const*, ...)@Base" 0.8.0
+ (c++)"GlobalError::GlobalError()@Base" 0.8.0
+ (c++)"PackageCopy::GetFileName()@Base" 0.8.0
+ (c++)"PackageCopy::RewriteEntry(_IO_FILE*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"PackageCopy::Type()@Base" 0.8.0
+ (c++)"PackageCopy::~PackageCopy()@Base" 0.8.0
+ (c++)"pkgAcqIndex::Custom600Headers()@Base" 0.8.0
+ (c++)"pkgAcqIndex::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
+ (c++)"pkgAcqIndex::DescURI()@Base" 0.8.0
+ (c++)"pkgAcqIndex::HashSum()@Base" 0.8.0
+ (c++)"pkgAcqIndex::pkgAcqIndex(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, HashString, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgAcqIndex::~pkgAcqIndex()@Base" 0.8.0
+ (c++)"pkgDepCache::IsDeleteOk(pkgCache::PkgIterator const&, bool, unsigned long, bool)@Base" 0.8.0
+ (c++)"pkgDepCache::MarkDelete(pkgCache::PkgIterator const&, bool, unsigned long, bool)@Base" 0.8.0
+ (c++)"pkgDepCache::StateCache::StripEpoch(char const*)@Base" 0.8.0
+ (c++)"pkgDepCache::StateCache::Update(pkgCache::PkgIterator, pkgCache&)@Base" 0.8.0
+ (c++)"pkgDepCache::ActionGroup::release()@Base" 0.8.0
+ (c++)"pkgDepCache::ActionGroup::ActionGroup(pkgDepCache&)@Base" 0.8.0
+ (c++)"pkgDepCache::ActionGroup::~ActionGroup()@Base" 0.8.0
+ (c++)"pkgDepCache::IsInstallOk(pkgCache::PkgIterator const&, bool, unsigned long, bool)@Base" 0.8.0
+ (c++)"pkgDepCache::MarkInstall(pkgCache::PkgIterator const&, bool, unsigned long, bool, bool)@Base" 0.8.0
+ (c++)"pkgDepCache::MarkPackage(pkgCache::PkgIterator const&, pkgCache::VerIterator const&, bool const&, bool const&)@Base" 0.8.0
+ (c++)"pkgDepCache::MarkRequired(pkgDepCache::InRootSetFunc&)@Base" 0.8.0
+ (c++)"pkgDepCache::SetReInstall(pkgCache::PkgIterator const&, bool)@Base" 0.8.0
+ (c++)"pkgDepCache::VersionState(pkgCache::DepIterator, unsigned char, unsigned char, unsigned char)@Base" 0.8.0
+ (c++)"pkgDepCache::BuildGroupOrs(pkgCache::VerIterator const&)@Base" 0.8.0
+ (c++)"pkgDepCache::InRootSetFunc::InRootSet(pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"pkgDepCache::InRootSetFunc::~InRootSetFunc()@Base" 0.8.0
+ (c++)"pkgDepCache::readStateFile(OpProgress*)@Base" 0.8.0
+ (c++)"pkgDepCache::GetRootSetFunc()@Base" 0.8.0
+ (c++)"pkgDepCache::UpdateVerState(pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgDepCache::writeStateFile(OpProgress*, bool)@Base" 0.8.0
+ (c++)"pkgDepCache::DependencyState(pkgCache::DepIterator&)@Base" 0.8.0
+ (c++)"pkgDepCache::DefaultRootSetFunc::InRootSet(pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"pkgDepCache::DefaultRootSetFunc::~DefaultRootSetFunc()@Base" 0.8.0
+ (c++)"pkgDepCache::MarkFollowsSuggests()@Base" 0.8.0
+ (c++)"pkgDepCache::MarkFollowsRecommends()@Base" 0.8.0
+ (c++)"pkgDepCache::Init(OpProgress*)@Base" 0.8.0
+ (c++)"pkgDepCache::Sweep()@Base" 0.8.0
+ (c++)"pkgDepCache::Policy::IsImportantDep(pkgCache::DepIterator const&)@Base" 0.8.0
+ (c++)"pkgDepCache::Policy::GetCandidateVer(pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"pkgDepCache::Policy::~Policy()@Base" 0.8.0
+ (c++)"pkgDepCache::Update(pkgCache::DepIterator)@Base" 0.8.0
+ (c++)"pkgDepCache::Update(OpProgress*)@Base" 0.8.0
+ (c++)"pkgDepCache::Update(pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"pkgDepCache::CheckDep(pkgCache::DepIterator, int, pkgCache::PkgIterator&)@Base" 0.8.0
+ (c++)"pkgDepCache::MarkAuto(pkgCache::PkgIterator const&, bool)@Base" 0.8.0
+ (c++)"pkgDepCache::MarkKeep(pkgCache::PkgIterator const&, bool, bool, unsigned long)@Base" 0.8.0
+ (c++)"pkgDepCache::pkgDepCache(pkgCache*, pkgDepCache::Policy*)@Base" 0.8.0
+ (c++)"pkgDepCache::~pkgDepCache()@Base" 0.8.0
+ (c++)"pkgSimulate::ShortBreaks()@Base" 0.8.0
+ (c++)"pkgSimulate::Policy::GetCandidateVer(pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"pkgSimulate::Policy::~Policy()@Base" 0.8.0
+ (c++)"pkgSimulate::Remove(pkgCache::PkgIterator, bool)@Base" 0.8.0
+ (c++)"pkgSimulate::Install(pkgCache::PkgIterator, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgSimulate::Describe(pkgCache::PkgIterator, std::basic_ostream<char, std::char_traits<char> >&, bool, bool)@Base" 0.8.0
+ (c++)"pkgSimulate::Configure(pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgSimulate::pkgSimulate(pkgDepCache*)@Base" 0.8.0
+ (c++)"pkgSimulate::~pkgSimulate()@Base" 0.8.0
+ (c++)"debIFTypePkg::~debIFTypePkg()@Base" 0.8.0
+ (c++)"debIFTypeSrc::~debIFTypeSrc()@Base" 0.8.0
+ (c++)"debSLTypeDeb::~debSLTypeDeb()@Base" 0.8.0
+ (c++)"indexRecords::Load(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"indexRecords::Lookup(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"indexRecords::MetaKeys()@Base" 0.8.0
+ (c++)"indexRecords::indexRecords(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"indexRecords::indexRecords()@Base" 0.8.0
+ (c++)"indexRecords::~indexRecords()@Base" 0.8.0
+ (c++)"pkgAcqMethod::FetchResult::TakeHashes(Hashes&)@Base" 0.8.0
+ (c++)"pkgAcqMethod::FetchResult::FetchResult()@Base" 0.8.0
+ (c++)"pkgAcqMethod::Configuration(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgAcqMethod::Log(char const*, ...)@Base" 0.8.0
+ (c++)"pkgAcqMethod::Run(bool)@Base" 0.8.0
+ (c++)"pkgAcqMethod::Exit()@Base" 0.8.0
+ (c++)"pkgAcqMethod::Fail(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@Base" 0.8.0
+ (c++)"pkgAcqMethod::Fail(bool)@Base" 0.8.0
+ (c++)"pkgAcqMethod::Fetch(pkgAcqMethod::FetchItem*)@Base" 0.8.0
+ (c++)"pkgAcqMethod::Status(char const*, ...)@Base" 0.8.0
+ (c++)"pkgAcqMethod::URIDone(pkgAcqMethod::FetchResult&, pkgAcqMethod::FetchResult*)@Base" 0.8.0
+ (c++)"pkgAcqMethod::Redirect(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"pkgAcqMethod::URIStart(pkgAcqMethod::FetchResult&)@Base" 0.8.0
+ (c++)"pkgAcqMethod::MediaFail(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgAcqMethod::pkgAcqMethod(char const*, unsigned long)@Base" 0.8.0
+ (c++)"pkgAcqMethod::~pkgAcqMethod()@Base" 0.8.0
+ (c++)"pkgCacheFile::BuildCaches(OpProgress*, bool)@Base" 0.8.0
+ (c++)"pkgCacheFile::BuildPolicy(OpProgress*)@Base" 0.8.0
+ (c++)"pkgCacheFile::BuildDepCache(OpProgress*)@Base" 0.8.0
+ (c++)"pkgCacheFile::BuildSourceList(OpProgress*)@Base" 0.8.0
+ (c++)"pkgCacheFile::Open(OpProgress*, bool)@Base" 0.8.0
+ (c++)"pkgCacheFile::Close()@Base" 0.8.0
+ (c++)"pkgCacheFile::pkgCacheFile()@Base" 0.8.0
+ (c++)"pkgCacheFile::~pkgCacheFile()@Base" 0.8.0
+ (c++)"pkgIndexFile::LanguageCode()@Base" 0.8.0
+ (c++)"pkgIndexFile::CheckLanguageCode(char const*)@Base" 0.8.0
+ (c++)"pkgIndexFile::TranslationsAvailable()@Base" 0.8.0
+ (c++)"pkgIndexFile::Type::GlobalList@Base" 0.8.0
+ (c++)"pkgIndexFile::Type::GlobalListLen@Base" 0.8.0
+ (c++)"pkgIndexFile::Type::GetType(char const*)@Base" 0.8.0
+ (c++)"pkgIndexFile::Type::Type()@Base" 0.8.0
+ (c++)"pkgIndexFile::Type::~Type()@Base" 0.8.0
+ (c++)"pkgIndexFile::~pkgIndexFile()@Base" 0.8.0
+ (c++)"pkgOrderList::VisitRDeps(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgOrderList::OrderUnpack(std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)@Base" 0.8.0
+ (c++)"pkgOrderList::DepConfigure(pkgCache::DepIterator)@Base" 0.8.0
+ (c++)"pkgOrderList::DepUnPackDep(pkgCache::DepIterator)@Base" 0.8.0
+ (c++)"pkgOrderList::DepUnPackPre(pkgCache::DepIterator)@Base" 0.8.0
+ (c++)"pkgOrderList::DepUnPackCrit(pkgCache::DepIterator)@Base" 0.8.0
+ (c++)"pkgOrderList::DepUnPackPreD(pkgCache::DepIterator)@Base" 0.8.0
+ (c++)"pkgOrderList::OrderCompareA(void const*, void const*)@Base" 0.8.0
+ (c++)"pkgOrderList::OrderCompareB(void const*, void const*)@Base" 0.8.0
+ (c++)"pkgOrderList::OrderCritical()@Base" 0.8.0
+ (c++)"pkgOrderList::VisitProvides(pkgCache::DepIterator, bool)@Base" 0.8.0
+ (c++)"pkgOrderList::OrderConfigure()@Base" 0.8.0
+ (c++)"pkgOrderList::VisitRProvides(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::VerIterator)@Base" 0.8.0
+ (c++)"pkgOrderList::Me@Base" 0.8.0
+ (c++)"pkgOrderList::DoRun()@Base" 0.8.0
+ (c++)"pkgOrderList::Score(pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgOrderList::AddLoop(pkgCache::DepIterator)@Base" 0.8.0
+ (c++)"pkgOrderList::FileCmp(pkgCache::PkgIterator, pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgOrderList::CheckDep(pkgCache::DepIterator)@Base" 0.8.0
+ (c++)"pkgOrderList::DepRemove(pkgCache::DepIterator)@Base" 0.8.0
+ (c++)"pkgOrderList::IsMissing(pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgOrderList::VisitDeps(bool (pkgOrderList::*)(pkgCache::DepIterator), pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgOrderList::WipeFlags(unsigned long)@Base" 0.8.0
+ (c++)"pkgOrderList::pkgOrderList(pkgDepCache*)@Base" 0.8.0
+ (c++)"pkgOrderList::~pkgOrderList()@Base" 0.8.0
+ (c++)"Configuration::MatchAgainstConfig::MatchAgainstConfig(char const*)@Base" 0.8.0
+ (c++)"Configuration::MatchAgainstConfig::~MatchAgainstConfig()@Base" 0.8.0
+ (c++)"Configuration::Set(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"Configuration::Set(char const*, int const&)@Base" 0.8.0
+ (c++)"Configuration::Dump(std::basic_ostream<char, std::char_traits<char> >&)@Base" 0.8.0
+ (c++)"Configuration::Clear(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"Configuration::Clear(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int const&)@Base" 0.8.0
+ (c++)"Configuration::Clear(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"Configuration::CndSet(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"Configuration::Lookup(char const*, bool const&)@Base" 0.8.0
+ (c++)"Configuration::Lookup(Configuration::Item*, char const*, unsigned long const&, bool const&)@Base" 0.8.0
+ (c++)"Configuration::Configuration(Configuration::Item const*)@Base" 0.8.0
+ (c++)"Configuration::Configuration()@Base" 0.8.0
+ (c++)"Configuration::~Configuration()@Base" 0.8.0
+ (c++)"WeakPointable::~WeakPointable()@Base" 0.8.0
+ (c++)"debListParser::NewVersion(pkgCache::VerIterator&)@Base" 0.8.0
+ (c++)"debListParser::UsePackage(pkgCache::PkgIterator&, pkgCache::VerIterator&)@Base" 0.8.0
+ (c++)"debListParser::Description()@Base" 0.8.0
+ (c++)"debListParser::ParseStatus(pkgCache::PkgIterator&, pkgCache::VerIterator&)@Base" 0.8.0
+ (c++)"debListParser::VersionHash()@Base" 0.8.0
+ (c++)"debListParser::Architecture()@Base" 0.8.0
+ (c++)"debListParser::ParseDepends(char const*, char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&, bool const&, bool const&)@Base" 0.8.0
+ (c++)"debListParser::ParseDepends(pkgCache::VerIterator&, char const*, unsigned int)@Base" 0.8.0
+ (c++)"debListParser::ParseProvides(pkgCache::VerIterator&)@Base" 0.8.0
+ (c++)"debListParser::ArchitectureAll()@Base" 0.8.0
+ (c++)"debListParser::ConvertRelation(char const*, unsigned int&)@Base" 0.8.0
+ (c++)"debListParser::Description_md5()@Base" 0.8.0
+ (c++)"debListParser::LoadReleaseInfo(pkgCache::PkgFileIterator&, FileFd&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"debListParser::UniqFindTagWrite(char const*)@Base" 0.8.0
+ (c++)"debListParser::DescriptionLanguage()@Base" 0.8.0
+ (c++)"debListParser::Size()@Base" 0.8.0
+ (c++)"debListParser::Step()@Base" 0.8.0
+ (c++)"debListParser::Offset()@Base" 0.8.0
+ (c++)"debListParser::GetPrio(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"debListParser::Package()@Base" 0.8.0
+ (c++)"debListParser::Version()@Base" 0.8.0
+ (c++)"debListParser::GrabWord(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, debListParser::WordList*, unsigned char&)@Base" 0.8.0
+ (c++)"debListParser::debListParser(FileFd*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"debListParser::~debListParser()@Base" 0.8.0
+ (c++)"pkgAcqArchive::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
+ (c++)"pkgAcqArchive::DescURI()@Base" 0.8.0
+ (c++)"pkgAcqArchive::HashSum()@Base" 0.8.0
+ (c++)"pkgAcqArchive::Finished()@Base" 0.8.0
+ (c++)"pkgAcqArchive::IsTrusted()@Base" 0.8.0
+ (c++)"pkgAcqArchive::QueueNext()@Base" 0.8.0
+ (c++)"pkgAcqArchive::ShortDesc()@Base" 0.8.0
+ (c++)"pkgAcqArchive::pkgAcqArchive(pkgAcquire*, pkgSourceList*, pkgRecords*, pkgCache::VerIterator const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
+ (c++)"pkgAcqArchive::~pkgAcqArchive()@Base" 0.8.0
+ (c++)"pkgAcqMetaSig::Custom600Headers()@Base" 0.8.0
+ (c++)"pkgAcqMetaSig::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
+ (c++)"pkgAcqMetaSig::DescURI()@Base" 0.8.0
+ (c++)"pkgAcqMetaSig::~pkgAcqMetaSig()@Base" 0.8.0
+ (c++)"pkgSourceList::ReadAppend(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgSourceList::ReadMainList()@Base" 0.8.0
+ (c++)"pkgSourceList::ReadSourceDir(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgSourceList::Read(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgSourceList::Type::GlobalList@Base" 0.8.0
+ (c++)"pkgSourceList::Type::GlobalListLen@Base" 0.8.0
+ (c++)"pkgSourceList::Type::GetType(char const*)@Base" 0.8.0
+ (c++)"pkgSourceList::Type::Type()@Base" 0.8.0
+ (c++)"pkgSourceList::Type::~Type()@Base" 0.8.0
+ (c++)"pkgSourceList::Reset()@Base" 0.8.0
+ (c++)"pkgSourceList::pkgSourceList(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgSourceList::pkgSourceList()@Base" 0.8.0
+ (c++)"pkgSourceList::~pkgSourceList()@Base" 0.8.0
+ (c++)"pkgSrcRecords::File::~File()@Base" 0.8.0
+ (c++)"pkgSrcRecords::Find(char const*, bool const&)@Base" 0.8.0
+ (c++)"pkgSrcRecords::Parser::BuildDepRec::~BuildDepRec()@Base" 0.8.0
+ (c++)"pkgSrcRecords::Parser::BuildDepType(unsigned char const&)@Base" 0.8.0
+ (c++)"pkgSrcRecords::Parser::~Parser()@Base" 0.8.0
+ (c++)"pkgSrcRecords::Restart()@Base" 0.8.0
+ (c++)"pkgSrcRecords::pkgSrcRecords(pkgSourceList&)@Base" 0.8.0
+ (c++)"pkgSrcRecords::~pkgSrcRecords()@Base" 0.8.0
+ (c++)"pkgTagSection::TrimRecord(bool, char const*&)@Base" 0.8.0
+ (c++)"pkgTagSection::Scan(char const*, unsigned long)@Base" 0.8.0
+ (c++)"pkgTagSection::Trim()@Base" 0.8.0
+ (c++)"pkgVendorList::CreateList(Configuration&)@Base" 0.8.0
+ (c++)"pkgVendorList::FindVendor(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)@Base" 0.8.0
+ (c++)"pkgVendorList::ReadMainList()@Base" 0.8.0
+ (c++)"pkgVendorList::LookupFingerprint(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgVendorList::Read(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgVendorList::~pkgVendorList()@Base" 0.8.0
+ (c++)"OpTextProgress::Done()@Base" 0.8.0
+ (c++)"OpTextProgress::Write(char const*)@Base" 0.8.0
+ (c++)"OpTextProgress::Update()@Base" 0.8.0
+ (c++)"OpTextProgress::OpTextProgress(Configuration&)@Base" 0.8.0
+ (c++)"OpTextProgress::~OpTextProgress()@Base" 0.8.0
+ (c++)"debIFTypeTrans::~debIFTypeTrans()@Base" 0.8.0
+ (c++)"debStatusIndex::debStatusIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"debStatusIndex::~debStatusIndex()@Base" 0.8.0
+ (c++)"debIFTypeStatus::~debIFTypeStatus()@Base" 0.8.0
+ (c++)"debRecordParser::Maintainer()@Base" 0.8.0
+ (c++)"debRecordParser::SHA256Hash()@Base" 0.8.0
+ (c++)"debRecordParser::Jump(pkgCache::VerFileIterator const&)@Base" 0.8.0
+ (c++)"debRecordParser::Jump(pkgCache::DescFileIterator const&)@Base" 0.8.0
+ (c++)"debRecordParser::Name()@Base" 0.8.0
+ (c++)"debRecordParser::GetRec(char const*&, char const*&)@Base" 0.8.0
+ (c++)"debRecordParser::MD5Hash()@Base" 0.8.0
+ (c++)"debRecordParser::FileName()@Base" 0.8.0
+ (c++)"debRecordParser::Homepage()@Base" 0.8.0
+ (c++)"debRecordParser::LongDesc()@Base" 0.8.0
+ (c++)"debRecordParser::SHA1Hash()@Base" 0.8.0
+ (c++)"debRecordParser::ShortDesc()@Base" 0.8.0
+ (c++)"debRecordParser::SourcePkg()@Base" 0.8.0
+ (c++)"debRecordParser::SourceVer()@Base" 0.8.0
+ (c++)"debRecordParser::debRecordParser(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgCache&)@Base" 0.8.0
+ (c++)"debRecordParser::~debRecordParser()@Base" 0.8.0
+ (c++)"debReleaseIndex::GetIndexFiles()@Base" 0.8.0
+ (c++)"debReleaseIndex::debSectionEntry::debSectionEntry(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&)@Base" 0.8.0
+ (c++)"debReleaseIndex::PushSectionEntry(debReleaseIndex::debSectionEntry const*)@Base" 0.8.0
+ (c++)"debReleaseIndex::PushSectionEntry(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, debReleaseIndex::debSectionEntry const*)@Base" 0.8.0
+ (c++)"debReleaseIndex::PushSectionEntry(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, debReleaseIndex::debSectionEntry const*)@Base" 0.8.0
+ (c++)"debReleaseIndex::debReleaseIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"debReleaseIndex::~debReleaseIndex()@Base" 0.8.0
+ (c++)"debSLTypeDebSrc::~debSLTypeDebSrc()@Base" 0.8.0
+ (c++)"debSLTypeDebian::~debSLTypeDebian()@Base" 0.8.0
+ (c++)"debSourcesIndex::debSourcesIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@Base" 0.8.0
+ (c++)"debSourcesIndex::~debSourcesIndex()@Base" 0.8.0
+ (c++)"pkgAcqDiffIndex::ParseDiffIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgAcqDiffIndex::Custom600Headers()@Base" 0.8.0
+ (c++)"pkgAcqDiffIndex::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
+ (c++)"pkgAcqDiffIndex::DescURI()@Base" 0.8.0
+ (c++)"pkgAcqDiffIndex::pkgAcqDiffIndex(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, HashString)@Base" 0.8.0
+ (c++)"pkgAcqDiffIndex::~pkgAcqDiffIndex()@Base" 0.8.0
+ (c++)"pkgAcqMetaIndex::QueueIndexes(bool)@Base" 0.8.0
+ (c++)"pkgAcqMetaIndex::VerifyVendor(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgAcqMetaIndex::RetrievalDone(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgAcqMetaIndex::Custom600Headers()@Base" 0.8.0
+ (c++)"pkgAcqMetaIndex::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
+ (c++)"pkgAcqMetaIndex::DescURI()@Base" 0.8.0
+ (c++)"pkgAcqMetaIndex::AuthDone(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgAcqMetaIndex::pkgAcqMetaIndex(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<IndexTarget*, std::allocator<IndexTarget*> > const*, indexRecords*)@Base" 0.8.0
+ (c++)"pkgAcqMetaIndex::~pkgAcqMetaIndex()@Base" 0.8.0
+ (c++)"pkgVersionMatch::ExpressionMatches(char const*, char const*)@Base" 0.8.0
+ (c++)"pkgVersionMatch::ExpressionMatches(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@Base" 0.8.0
+ (c++)"pkgVersionMatch::Find(pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgVersionMatch::MatchVer(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@Base" 0.8.0
+ (c++)"pkgVersionMatch::FileMatch(pkgCache::PkgFileIterator)@Base" 0.8.0
+ (c++)"pkgVersionMatch::pkgVersionMatch(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgVersionMatch::MatchType)@Base" 0.8.0
+ (c++)"pkgVersionMatch::~pkgVersionMatch()@Base" 0.8.0
+ (c++)"TranslationsCopy::CopyTranslations(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, pkgCdromStatus*)@Base" 0.8.0
+ (c++)"debPackagesIndex::debPackagesIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"debPackagesIndex::~debPackagesIndex()@Base" 0.8.0
+ (c++)"pkgAcqIndexDiffs::QueueNextDiff()@Base" 0.8.0
+ (c++)"pkgAcqIndexDiffs::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
+ (c++)"pkgAcqIndexDiffs::Finish(bool)@Base" 0.8.0
+ (c++)"pkgAcqIndexDiffs::DescURI()@Base" 0.8.0
+ (c++)"pkgAcqIndexDiffs::pkgAcqIndexDiffs(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, HashString, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<DiffInfo, std::allocator<DiffInfo> >)@Base" 0.8.0
+ (c++)"pkgAcqIndexDiffs::~pkgAcqIndexDiffs()@Base" 0.8.0
+ (c++)"pkgAcqIndexTrans::Custom600Headers()@Base" 0.8.0
+ (c++)"pkgAcqIndexTrans::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.0
+ (c++)"pkgAcqIndexTrans::pkgAcqIndexTrans(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgAcqIndexTrans::~pkgAcqIndexTrans()@Base" 0.8.0
+ (c++)"pkgAcquireStatus::Done(pkgAcquire::ItemDesc&)@Base" 0.8.0
+ (c++)"pkgAcquireStatus::Fail(pkgAcquire::ItemDesc&)@Base" 0.8.0
+ (c++)"pkgAcquireStatus::Stop()@Base" 0.8.0
+ (c++)"pkgAcquireStatus::Fetch(pkgAcquire::ItemDesc&)@Base" 0.8.0
+ (c++)"pkgAcquireStatus::Pulse(pkgAcquire*)@Base" 0.8.0
+ (c++)"pkgAcquireStatus::Start()@Base" 0.8.0
+ (c++)"pkgAcquireStatus::IMSHit(pkgAcquire::ItemDesc&)@Base" 0.8.0
+ (c++)"pkgAcquireStatus::pkgAcquireStatus()@Base" 0.8.0
+ (c++)"pkgAcquireStatus::~pkgAcquireStatus()@Base" 0.8.0
+ (c++)"PreferenceSection::TrimRecord(bool, char const*&)@Base" 0.8.0
+ (c++)"pkgArchiveCleaner::Go(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgCache&)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::ListParser::NewDepends(pkgCache::VerIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::ListParser::NewProvides(pkgCache::VerIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::ListParser::CollectFileProvides(pkgCache&, pkgCache::VerIterator&)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::ListParser::~ListParser()@Base" 0.8.0
+ (c++)"pkgCacheGenerator::NewFileVer(pkgCache::VerIterator&, pkgCacheGenerator::ListParser&)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::NewPackage(pkgCache::PkgIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::NewVersion(pkgCache::VerIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::SelectFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgIndexFile const&, unsigned long)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::FinishCache(OpProgress*)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::NewFileDesc(pkgCache::DescIterator&, pkgCacheGenerator::ListParser&)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::AllocateInMap(unsigned long const&)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::MakeStatusCache(pkgSourceList&, OpProgress*, MMap**, bool)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::WriteUniqString(char const*, unsigned int)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::WriteStringInMap(char const*)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::WriteStringInMap(char const*, unsigned long const&)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::CreateDynamicMMap(FileFd*, unsigned long)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::MergeFileProvides(pkgCacheGenerator::ListParser&)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::MakeOnlyStatusCache(OpProgress*, DynamicMMap**)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::ReMap(void const*, void const*)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::Dynamic<pkgCache::DepIterator>::toReMap@Base" 0.8.0
+ (c++)"pkgCacheGenerator::Dynamic<pkgCache::GrpIterator>::toReMap@Base" 0.8.0
+ (c++)"pkgCacheGenerator::Dynamic<pkgCache::PkgIterator>::toReMap@Base" 0.8.0
+ (c++)"pkgCacheGenerator::Dynamic<pkgCache::PrvIterator>::toReMap@Base" 0.8.0
+ (c++)"pkgCacheGenerator::Dynamic<pkgCache::VerIterator>::toReMap@Base" 0.8.0
+ (c++)"pkgCacheGenerator::Dynamic<pkgCache::DescIterator>::toReMap@Base" 0.8.0
+ (c++)"pkgCacheGenerator::Dynamic<pkgCache::PkgFileIterator>::toReMap@Base" 0.8.0
+ (c++)"pkgCacheGenerator::NewGroup(pkgCache::GrpIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::MergeList(pkgCacheGenerator::ListParser&, pkgCache::VerIterator*)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::pkgCacheGenerator(DynamicMMap*, OpProgress*)@Base" 0.8.0
+ (c++)"pkgCacheGenerator::~pkgCacheGenerator()@Base" 0.8.0
+ (c++)"pkgPackageManager::FixMissing()@Base" 0.8.0
+ (c++)"pkgPackageManager::EarlyRemove(pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgPackageManager::GetArchives(pkgAcquire*, pkgSourceList*, pkgRecords*)@Base" 0.8.0
+ (c++)"pkgPackageManager::SmartRemove(pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgPackageManager::SmartUnPack(pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgPackageManager::ConfigureAll()@Base" 0.8.0
+ (c++)"pkgPackageManager::ImmediateAdd(pkgCache::PkgIterator, bool, unsigned int const&)@Base" 0.8.0
+ (c++)"pkgPackageManager::OrderInstall()@Base" 0.8.0
+ (c++)"pkgPackageManager::DepAlwaysTrue(pkgCache::DepIterator)@Base" 0.8.0
+ (c++)"pkgPackageManager::SmartConfigure(pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgPackageManager::CheckRConflicts(pkgCache::PkgIterator, pkgCache::DepIterator, char const*)@Base" 0.8.0
+ (c++)"pkgPackageManager::CreateOrderList()@Base" 0.8.0
+ (c++)"pkgPackageManager::DoInstallPostFork(int)@Base" 0.8.0
+ (c++)"pkgPackageManager::Go(int)@Base" 0.8.0
+ (c++)"pkgPackageManager::Reset()@Base" 0.8.0
+ (c++)"pkgPackageManager::DepAdd(pkgOrderList&, pkgCache::PkgIterator, int)@Base" 0.8.0
+ (c++)"pkgPackageManager::Remove(pkgCache::PkgIterator, bool)@Base" 0.8.0
+ (c++)"pkgPackageManager::Install(pkgCache::PkgIterator, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgPackageManager::Configure(pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgPackageManager::DoInstall(int)@Base" 0.8.0
+ (c++)"pkgPackageManager::pkgPackageManager(pkgDepCache*)@Base" 0.8.0
+ (c++)"pkgPackageManager::~pkgPackageManager()@Base" 0.8.0
+ (c++)"debSrcRecordParser::BuildDepends(std::vector<pkgSrcRecords::Parser::BuildDepRec, std::allocator<pkgSrcRecords::Parser::BuildDepRec> >&, bool const&, bool const&)@Base" 0.8.0
+ (c++)"debSrcRecordParser::Jump(unsigned long const&)@Base" 0.8.0
+ (c++)"debSrcRecordParser::Step()@Base" 0.8.0
+ (c++)"debSrcRecordParser::AsStr()@Base" 0.8.0
+ (c++)"debSrcRecordParser::Files(std::vector<pkgSrcRecords::File, std::allocator<pkgSrcRecords::File> >&)@Base" 0.8.0
+ (c++)"debSrcRecordParser::Offset()@Base" 0.8.0
+ (c++)"debSrcRecordParser::Restart()@Base" 0.8.0
+ (c++)"debSrcRecordParser::Binaries()@Base" 0.8.0
+ (c++)"debSrcRecordParser::~debSrcRecordParser()@Base" 0.8.0
+ (c++)"pkgProblemResolver::MakeScores()@Base" 0.8.0
+ (c++)"pkgProblemResolver::ResolveByKeep()@Base" 0.8.0
+ (c++)"pkgProblemResolver::InstallProtect()@Base" 0.8.0
+ (c++)"pkgProblemResolver::This@Base" 0.8.0
+ (c++)"pkgProblemResolver::Resolve(bool)@Base" 0.8.0
+ (c++)"pkgProblemResolver::DoUpgrade(pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgProblemResolver::ScoreSort(void const*, void const*)@Base" 0.8.0
+ (c++)"pkgProblemResolver::pkgProblemResolver(pkgDepCache*)@Base" 0.8.0
+ (c++)"pkgProblemResolver::~pkgProblemResolver()@Base" 0.8.0
+ (c++)"debVersioningSystem::CmpFragment(char const*, char const*, char const*, char const*)@Base" 0.8.0
+ (c++)"debVersioningSystem::DoCmpVersion(char const*, char const*, char const*, char const*)@Base" 0.8.0
+ (c++)"debVersioningSystem::DoCmpReleaseVer(char const*, char const*, char const*, char const*)@Base" 0.8.0
+ (c++)"debVersioningSystem::UpstreamVersion(char const*)@Base" 0.8.0
+ (c++)"debVersioningSystem::CheckDep(char const*, int, char const*)@Base" 0.8.0
+ (c++)"debVersioningSystem::debVersioningSystem()@Base" 0.8.0
+ (c++)"debVersioningSystem::~debVersioningSystem()@Base" 0.8.0
+ (c++)"pkgUdevCdromDevices::Scan()@Base" 0.8.0
+ (c++)"pkgUdevCdromDevices::Dlopen()@Base" 0.8.0
+ (c++)"pkgUdevCdromDevices::pkgUdevCdromDevices()@Base" 0.8.0
+ (c++)"pkgUdevCdromDevices::~pkgUdevCdromDevices()@Base" 0.8.0
+ (c++)"pkgVersioningSystem::GlobalList@Base" 0.8.0
+ (c++)"pkgVersioningSystem::GlobalListLen@Base" 0.8.0
+ (c++)"pkgVersioningSystem::TestCompatibility(pkgVersioningSystem const&)@Base" 0.8.0
+ (c++)"pkgVersioningSystem::GetVS(char const*)@Base" 0.8.0
+ (c++)"pkgVersioningSystem::pkgVersioningSystem()@Base" 0.8.0
+ (c++)"pkgVersioningSystem::~pkgVersioningSystem()@Base" 0.8.0
+ (c++)"debTranslationsIndex::debTranslationsIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const*)@Base" 0.8.0
+ (c++)"debTranslationsIndex::~debTranslationsIndex()@Base" 0.8.0
+ (c++)"APT::PackageSet::FromString(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, APT::CacheSetHelper&)@Base" 0.8.0
+ (c++)"APT::PackageSet::FromCommandLine(pkgCacheFile&, char const**, APT::CacheSetHelper&)@Base" 0.8.0
+ (c++)"APT::PackageSet::GroupedFromCommandLine(pkgCacheFile&, char const**, std::list<APT::PackageSet::Modifier, std::allocator<APT::PackageSet::Modifier> > const&, unsigned short const&, APT::CacheSetHelper&)@Base" 0.8.0
+ (c++)"APT::PackageSet::FromName(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, APT::CacheSetHelper&)@Base" 0.8.0
+ (c++)"APT::PackageSet::FromTask(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@Base" 0.8.0
+ (c++)"APT::PackageSet::FromRegEx(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@Base" 0.8.0
+ (c++)"APT::PackageSet::~PackageSet()@Base" 0.8.0
+ (c++)"APT::VersionSet::FromString(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::VersionSet::Version const&, APT::CacheSetHelper&, bool const&)@Base" 0.8.0
+ (c++)"APT::VersionSet::FromPackage(pkgCacheFile&, pkgCache::PkgIterator const&, APT::VersionSet::Version const&, APT::CacheSetHelper&)@Base" 0.8.0
+ (c++)"APT::VersionSet::FromCommandLine(pkgCacheFile&, char const**, APT::VersionSet::Version const&, APT::CacheSetHelper&)@Base" 0.8.0
+ (c++)"APT::VersionSet::getCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@Base" 0.8.0
+ (c++)"APT::VersionSet::getInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@Base" 0.8.0
+ (c++)"APT::VersionSet::GroupedFromCommandLine(pkgCacheFile&, char const**, std::list<APT::VersionSet::Modifier, std::allocator<APT::VersionSet::Modifier> > const&, unsigned short const&, APT::CacheSetHelper&)@Base" 0.8.0
+ (c++)"APT::VersionSet::~VersionSet()@Base" 0.8.0
+ (c++)"APT::CacheFilter::PackageNameMatchesRegEx::PackageNameMatchesRegEx(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"APT::CacheFilter::PackageNameMatchesRegEx::~PackageNameMatchesRegEx()@Base" 0.8.0
+ (c++)"APT::CacheFilter::PackageNameMatchesRegEx::operator()(pkgCache::GrpIterator const&)@Base" 0.8.0
+ (c++)"APT::CacheFilter::PackageNameMatchesRegEx::operator()(pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"APT::Configuration::getLanguages(bool const&, bool const&, char const**)@Base" 0.8.0
+ (c++)"APT::Configuration::getArchitectures(bool const&)@Base" 0.8.0
+ (c++)"APT::Configuration::checkArchitecture(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"APT::Configuration::getCompressionTypes(bool const&)@Base" 0.8.0
+ (c++)"APT::CacheSetHelper::canNotFindTask(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"APT::CacheSetHelper::canNotFindRegEx(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"APT::CacheSetHelper::canNotFindAllVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"APT::CacheSetHelper::canNotFindPackage(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"APT::CacheSetHelper::canNotFindPkgName(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"APT::CacheSetHelper::showTaskSelection(APT::PackageSet const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"APT::CacheSetHelper::showRegExSelection(APT::PackageSet const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"APT::CacheSetHelper::canNotFindNewestVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"APT::CacheSetHelper::showSelectedVersion(pkgCache::PkgIterator const&, pkgCache::VerIterator, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&)@Base" 0.8.0
+ (c++)"APT::CacheSetHelper::canNotFindCandInstVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"APT::CacheSetHelper::canNotFindInstCandVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"APT::CacheSetHelper::canNotFindCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"APT::CacheSetHelper::canNotFindInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"APT::CacheSetHelper::~CacheSetHelper()@Base" 0.8.0
+ (c++)"URI::NoUserPassword(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"URI::CopyFrom(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"URI::SiteOnly(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"URI::~URI()@Base" 0.8.0
+ (c++)"URI::operator std::basic_string<char, std::char_traits<char>, std::allocator<char> >()@Base" 0.8.0
+ (c++)"MMap::Map(FileFd&)@Base" 0.8.0
+ (c++)"MMap::Sync(unsigned long, unsigned long)@Base" 0.8.0
+ (c++)"MMap::Sync()@Base" 0.8.0
+ (c++)"MMap::Close(bool)@Base" 0.8.0
+ (c++)"MMap::MMap(FileFd&, unsigned long)@Base" 0.8.0
+ (c++)"MMap::MMap(unsigned long)@Base" 0.8.0
+ (c++)"MMap::~MMap()@Base" 0.8.0
+ (c++)"FileFd::OpenDescriptor(int, FileFd::OpenMode, bool)@Base" 0.8.0
+ (c++)"FileFd::Open(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, FileFd::OpenMode, unsigned long)@Base" 0.8.0
+ (c++)"FileFd::Size()@Base" 0.8.0
+ (c++)"FileFd::Sync()@Base" 0.8.0
+ (c++)"FileFd::Tell()@Base" 0.8.0
+ (c++)"FileFd::Close()@Base" 0.8.0
+ (c++)"FileFd::~FileFd()@Base" 0.8.0
+ (c++)"Vendor::CheckDist(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"Vendor::Vendor(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<Vendor::Fingerprint*, std::allocator<Vendor::Fingerprint*> >*)@Base" 0.8.0
+ (c++)"Vendor::~Vendor()@Base" 0.8.0
+ (c++)"DiffInfo::~DiffInfo()@Base" 0.8.0
+ (c++)"pkgCache::CompTypeDeb(unsigned char)@Base" 0.8.0
+ (c++)"pkgCache::DepIterator::GlobOr(pkgCache::DepIterator&, pkgCache::DepIterator&)@Base" 0.8.0
+ (c++)"pkgCache::DepIterator::operator++(int)@Base" 0.8.0
+ (c++)"pkgCache::DepIterator::operator++()@Base" 0.8.0
+ (c++)"pkgCache::GrpIterator::operator++(int)@Base" 0.8.0
+ (c++)"pkgCache::GrpIterator::operator++()@Base" 0.8.0
+ (c++)"pkgCache::PkgIterator::operator++(int)@Base" 0.8.0
+ (c++)"pkgCache::PkgIterator::operator++()@Base" 0.8.0
+ (c++)"pkgCache::PrvIterator::operator++(int)@Base" 0.8.0
+ (c++)"pkgCache::PrvIterator::operator++()@Base" 0.8.0
+ (c++)"pkgCache::VerIterator::operator++(int)@Base" 0.8.0
+ (c++)"pkgCache::VerIterator::operator++()@Base" 0.8.0
+ (c++)"pkgCache::DescIterator::operator++(int)@Base" 0.8.0
+ (c++)"pkgCache::DescIterator::operator++()@Base" 0.8.0
+ (c++)"pkgCache::PkgFileIterator::IsOk()@Base" 0.8.0
+ (c++)"pkgCache::PkgFileIterator::RelStr()@Base" 0.8.0
+ (c++)"pkgCache::PkgFileIterator::operator++(int)@Base" 0.8.0
+ (c++)"pkgCache::PkgFileIterator::operator++()@Base" 0.8.0
+ (c++)"pkgCache::VerFileIterator::operator++(int)@Base" 0.8.0
+ (c++)"pkgCache::VerFileIterator::operator++()@Base" 0.8.0
+ (c++)"pkgCache::DescFileIterator::operator++(int)@Base" 0.8.0
+ (c++)"pkgCache::DescFileIterator::operator++()@Base" 0.8.0
+ (c++)"pkgCache::SingleArchFindPkg(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"pkgCache::ReMap(bool const&)@Base" 0.8.0
+ (c++)"pkgCache::Header::Header()@Base" 0.8.0
+ (c++)"pkgCache::DepType(unsigned char)@Base" 0.8.0
+ (c++)"pkgCache::FindGrp(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"pkgCache::FindPkg(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"pkgCache::FindPkg(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"pkgCache::CompType(unsigned char)@Base" 0.8.0
+ (c++)"pkgCache::Priority(unsigned char)@Base" 0.8.0
+ (c++)"pkgCache::pkgCache(MMap*, bool)@Base" 0.8.0
+ (c++)"pkgCache::~pkgCache()@Base" 0.8.0
+ (c++)"pkgCdrom::DropRepeats(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, char const*)@Base" 0.8.0
+ (c++)"pkgCdrom::FindPackages(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, pkgCdromStatus*, unsigned int)@Base" 0.8.0
+ (c++)"pkgCdrom::WriteDatabase(Configuration&)@Base" 0.8.0
+ (c++)"pkgCdrom::DropBinaryArch(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)@Base" 0.8.0
+ (c++)"pkgCdrom::WriteSourceList(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool)@Base" 0.8.0
+ (c++)"pkgCdrom::ReduceSourcelist(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)@Base" 0.8.0
+ (c++)"pkgCdrom::Add(pkgCdromStatus*)@Base" 0.8.0
+ (c++)"pkgCdrom::Ident(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, pkgCdromStatus*)@Base" 0.8.0
+ (c++)"pkgCdrom::Score(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"IndexCopy::CopyPackages(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, pkgCdromStatus*)@Base" 0.8.0
+ (c++)"IndexCopy::ReconstructChop(unsigned long&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"IndexCopy::ReconstructPrefix(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"IndexCopy::ConvertToSourceList(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.0
+ (c++)"IndexCopy::ChopDirs(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int)@Base" 0.8.0
+ (c++)"IndexCopy::GrabFirst(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int)@Base" 0.8.0
+ (c++)"IndexCopy::~IndexCopy()@Base" 0.8.0
+ (c++)"SigVerify::CopyAndVerify(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)@Base" 0.8.0
+ (c++)"SigVerify::CopyMetaIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"SigVerify::Verify(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, indexRecords*)@Base" 0.8.0
+ (c++)"SigVerify::RunGPGV(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int const&, int*)@Base" 0.8.0
+ (c++)"debSystem::Initialize(Configuration&)@Base" 0.8.0
+ (c++)"debSystem::CheckUpdates()@Base" 0.8.0
+ (c++)"debSystem::AddStatusFiles(std::vector<pkgIndexFile*, std::allocator<pkgIndexFile*> >&)@Base" 0.8.0
+ (c++)"debSystem::ArchiveSupported(char const*)@Base" 0.8.0
+ (c++)"debSystem::Lock()@Base" 0.8.0
+ (c++)"debSystem::Score(Configuration const&)@Base" 0.8.0
+ (c++)"debSystem::UnLock(bool)@Base" 0.8.0
+ (c++)"debSystem::debSystem()@Base" 0.8.0
+ (c++)"debSystem::~debSystem()@Base" 0.8.0
+ (c++)"metaIndex::~metaIndex()@Base" 0.8.0
+ (c++)"pkgDPkgPM::SendV2Pkgs(_IO_FILE*)@Base" 0.8.0
+ (c++)"pkgDPkgPM::DoTerminalPty(int)@Base" 0.8.0
+ (c++)"pkgDPkgPM::DoDpkgStatusFd(int, int)@Base" 0.8.0
+ (c++)"pkgDPkgPM::WriteHistoryTag(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgDPkgPM::WriteApportReport(char const*, char const*)@Base" 0.8.0
+ (c++)"pkgDPkgPM::RunScriptsWithPkgs(char const*)@Base" 0.8.0
+ (c++)"pkgDPkgPM::ProcessDpkgStatusLine(int, char*)@Base" 0.8.0
+ (c++)"pkgDPkgPM::handleDisappearAction(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.0
+ (c++)"pkgDPkgPM::Go(int)@Base" 0.8.0
+ (c++)"pkgDPkgPM::Reset()@Base" 0.8.0
+ (c++)"pkgDPkgPM::Remove(pkgCache::PkgIterator, bool)@Base" 0.8.0
+ (c++)"pkgDPkgPM::DoStdin(int)@Base" 0.8.0
+ (c++)"pkgDPkgPM::Install(pkgCache::PkgIterator, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.0
+ (c++)"pkgDPkgPM::OpenLog()@Base" 0.8.0
+ (c++)"pkgDPkgPM::CloseLog()@Base" 0.8.0
+ (c++)"pkgDPkgPM::Configure(pkgCache::PkgIterator)@Base" 0.8.0
+ (c++)"pkgDPkgPM::pkgDPkgPM(pkgDepCache*)@Base" 0.8.0
+ (c++)"pkgDPkgPM::~pkgDPkgPM()@Base" 0.8.0
+ (c++)"pkgPolicy::GetPriority(pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"pkgPolicy::InitDefaults()@Base" 0.8.0
+ (c++)"pkgPolicy::GetCandidateVer(pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"pkgPolicy::PkgPin::~PkgPin()@Base" 0.8.0
+ (c++)"pkgPolicy::GetMatch(pkgCache::PkgIterator const&)@Base" 0.8.0
+ (c++)"pkgPolicy::CreatePin(pkgVersionMatch::MatchType, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, short)@Base" 0.8.0
+ (c++)"pkgPolicy::pkgPolicy(pkgCache*)@Base" 0.8.0
+ (c++)"pkgPolicy::~pkgPolicy()@Base" 0.8.0
+ (c++)"pkgSystem::GlobalList@Base" 0.8.0
+ (c++)"pkgSystem::Initialize(Configuration&)@Base" 0.8.0
+ (c++)"pkgSystem::GlobalListLen@Base" 0.8.0
+ (c++)"pkgSystem::Score(Configuration const&)@Base" 0.8.0
+ (c++)"pkgSystem::GetSystem(char const*)@Base" 0.8.0
+ (c++)"pkgSystem::pkgSystem()@Base" 0.8.0
+ (c++)"pkgSystem::~pkgSystem()@Base" 0.8.0
+ (c++)"HashString::VerifyFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.8.0
+ (c++)"HashString::empty() const@Base" 0.8.0
+ (c++)"HashString::toStr() const@Base" 0.8.0
+ (c++)"CommandLine::FileSize() const@Base" 0.8.0
+ (c++)"GlobalError::empty(GlobalError::MsgType const&) const@Base" 0.8.0
+ (c++)"debIFTypePkg::CreatePkgParser(pkgCache::PkgFileIterator) const@Base" 0.8.0
+ (c++)"debSLTypeDeb::CreateItem(std::vector<metaIndex*, std::allocator<metaIndex*> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const@Base" 0.8.0
+ (c++)"indexRecords::GetValidUntil() const@Base" 0.8.0
+ (c++)"indexRecords::GetExpectedDist() const@Base" 0.8.0
+ (c++)"indexRecords::Exists(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
+ (c++)"indexRecords::GetDist() const@Base" 0.8.0
+ (c++)"indexRecords::CheckDist(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.8.0
+ (c++)"pkgIndexFile::ArchiveURI(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.8.0
+ (c++)"pkgIndexFile::SourceInfo(pkgSrcRecords::Parser const&, pkgSrcRecords::File const&) const@Base" 0.8.0
+ (c++)"pkgIndexFile::ArchiveInfo(pkgCache::VerIterator) const@Base" 0.8.0
+ (c++)"pkgIndexFile::FindInCache(pkgCache&) const@Base" 0.8.0
+ (c++)"pkgIndexFile::CreateSrcParser() const@Base" 0.8.0
+ (c++)"pkgIndexFile::MergeFileProvides(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0
+ (c++)"pkgIndexFile::MergeFileProvides(pkgCacheGenerator&, OpProgress&) const@Base" 0.8.0
+ (c++)"pkgIndexFile::Type::CreatePkgParser(pkgCache::PkgFileIterator) const@Base" 0.8.0
+ (c++)"pkgIndexFile::Merge(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0
+ (c++)"pkgIndexFile::Merge(pkgCacheGenerator&, OpProgress&) const@Base" 0.8.0
+ (c++)"Configuration::FindVector(char const*) const@Base" 0.8.0
+ (c++)"Configuration::MatchAgainstConfig::Match(char const*) const@Base" 0.8.0
+ (c++)"Configuration::Find(char const*, char const*) const@Base" 0.8.0
+ (c++)"Configuration::Item::FullTag(Configuration::Item const*) const@Base" 0.8.0
+ (c++)"Configuration::FindB(char const*, bool const&) const@Base" 0.8.0
+ (c++)"Configuration::FindI(char const*, int const&) const@Base" 0.8.0
+ (c++)"Configuration::Exists(char const*) const@Base" 0.8.0
+ (c++)"Configuration::FindAny(char const*, char const*) const@Base" 0.8.0
+ (c++)"Configuration::FindDir(char const*, char const*) const@Base" 0.8.0
+ (c++)"Configuration::FindFile(char const*, char const*) const@Base" 0.8.0
+ (c++)"Configuration::ExistsAny(char const*) const@Base" 0.8.0
+ (c++)"pkgSourceList::GetIndexes(pkgAcquire*, bool) const@Base" 0.8.0
+ (c++)"pkgSourceList::Type::FixupURI(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) const@Base" 0.8.0
+ (c++)"pkgSourceList::Type::ParseLine(std::vector<metaIndex*, std::allocator<metaIndex*> >&, char const*, unsigned long const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
+ (c++)"pkgSourceList::FindIndex(pkgCache::PkgFileIterator, pkgIndexFile*&) const@Base" 0.8.0
+ (c++)"pkgTagSection::Find(char const*, char const*&, char const*&) const@Base" 0.8.0
+ (c++)"pkgTagSection::Find(char const*, unsigned int&) const@Base" 0.8.0
+ (c++)"pkgTagSection::FindI(char const*, long) const@Base" 0.8.0
+ (c++)"pkgTagSection::FindS(char const*) const@Base" 0.8.0
+ (c++)"pkgTagSection::FindULL(char const*, unsigned long long const&) const@Base" 0.8.0
+ (c++)"pkgTagSection::FindFlag(char const*, unsigned long&, unsigned long) const@Base" 0.8.0
+ (c++)"debStatusIndex::FindInCache(pkgCache&) const@Base" 0.8.0
+ (c++)"debStatusIndex::HasPackages() const@Base" 0.8.0
+ (c++)"debStatusIndex::Size() const@Base" 0.8.0
+ (c++)"debStatusIndex::Merge(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0
+ (c++)"debStatusIndex::Exists() const@Base" 0.8.0
+ (c++)"debStatusIndex::GetType() const@Base" 0.8.0
+ (c++)"debStatusIndex::Describe(bool) const@Base" 0.8.0
+ (c++)"debIFTypeStatus::CreatePkgParser(pkgCache::PkgFileIterator) const@Base" 0.8.0
+ (c++)"debReleaseIndex::ArchiveURI(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
+ (c++)"debReleaseIndex::GetIndexes(pkgAcquire*, bool const&) const@Base" 0.8.0
+ (c++)"debReleaseIndex::MetaIndexURI(char const*) const@Base" 0.8.0
+ (c++)"debReleaseIndex::MetaIndexFile(char const*) const@Base" 0.8.0
+ (c++)"debReleaseIndex::MetaIndexInfo(char const*) const@Base" 0.8.0
+ (c++)"debReleaseIndex::IndexURISuffix(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
+ (c++)"debReleaseIndex::SourceIndexURI(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
+ (c++)"debReleaseIndex::ComputeIndexTargets() const@Base" 0.8.0
+ (c++)"debReleaseIndex::SourceIndexURISuffix(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
+ (c++)"debReleaseIndex::Info(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
+ (c++)"debReleaseIndex::IndexURI(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
+ (c++)"debReleaseIndex::IsTrusted() const@Base" 0.8.0
+ (c++)"debSLTypeDebSrc::CreateItem(std::vector<metaIndex*, std::allocator<metaIndex*> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const@Base" 0.8.0
+ (c++)"debSLTypeDebian::CreateItemInternal(std::vector<metaIndex*, std::allocator<metaIndex*> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const@Base" 0.8.0
+ (c++)"debSourcesIndex::ArchiveURI(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.8.0
+ (c++)"debSourcesIndex::SourceInfo(pkgSrcRecords::Parser const&, pkgSrcRecords::File const&) const@Base" 0.8.0
+ (c++)"debSourcesIndex::HasPackages() const@Base" 0.8.0
+ (c++)"debSourcesIndex::CreateSrcParser() const@Base" 0.8.0
+ (c++)"debSourcesIndex::Info(char const*) const@Base" 0.8.0
+ (c++)"debSourcesIndex::Size() const@Base" 0.8.0
+ (c++)"debSourcesIndex::Exists() const@Base" 0.8.0
+ (c++)"debSourcesIndex::GetType() const@Base" 0.8.0
+ (c++)"debSourcesIndex::Describe(bool) const@Base" 0.8.0
+ (c++)"debSourcesIndex::IndexURI(char const*) const@Base" 0.8.0
+ (c++)"debPackagesIndex::ArchiveURI(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.8.0
+ (c++)"debPackagesIndex::ArchiveInfo(pkgCache::VerIterator) const@Base" 0.8.0
+ (c++)"debPackagesIndex::FindInCache(pkgCache&) const@Base" 0.8.0
+ (c++)"debPackagesIndex::HasPackages() const@Base" 0.8.0
+ (c++)"debPackagesIndex::Info(char const*) const@Base" 0.8.0
+ (c++)"debPackagesIndex::Size() const@Base" 0.8.0
+ (c++)"debPackagesIndex::Merge(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0
+ (c++)"debPackagesIndex::Exists() const@Base" 0.8.0
+ (c++)"debPackagesIndex::GetType() const@Base" 0.8.0
+ (c++)"debPackagesIndex::Describe(bool) const@Base" 0.8.0
+ (c++)"debPackagesIndex::IndexURI(char const*) const@Base" 0.8.0
+ (c++)"debSrcRecordParser::Maintainer() const@Base" 0.8.0
+ (c++)"debSrcRecordParser::Package() const@Base" 0.8.0
+ (c++)"debSrcRecordParser::Section() const@Base" 0.8.0
+ (c++)"debSrcRecordParser::Version() const@Base" 0.8.0
+ (c++)"debTranslationsIndex::GetIndexes(pkgAcquire*) const@Base" 0.8.0
+ (c++)"debTranslationsIndex::FindInCache(pkgCache&) const@Base" 0.8.0
+ (c++)"debTranslationsIndex::HasPackages() const@Base" 0.8.0
+ (c++)"debTranslationsIndex::Info(char const*) const@Base" 0.8.0
+ (c++)"debTranslationsIndex::Size() const@Base" 0.8.0
+ (c++)"debTranslationsIndex::Merge(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.0
+ (c++)"debTranslationsIndex::Exists() const@Base" 0.8.0
+ (c++)"debTranslationsIndex::GetType() const@Base" 0.8.0
+ (c++)"debTranslationsIndex::Describe(bool) const@Base" 0.8.0
+ (c++)"debTranslationsIndex::IndexURI(char const*) const@Base" 0.8.0
+ (c++)"Vendor::GetVendorID() const@Base" 0.8.0
+ (c++)"Vendor::LookupFingerprint(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.8.0
+ (c++)"pkgCache::DepIterator::AllTargets() const@Base" 0.8.0
+ (c++)"pkgCache::DepIterator::IsCritical() const@Base" 0.8.0
+ (c++)"pkgCache::DepIterator::OwnerPointer() const@Base" 0.8.0
+ (c++)"pkgCache::DepIterator::SmartTargetPkg(pkgCache::PkgIterator&) const@Base" 0.8.0
+ (c++)"pkgCache::GrpIterator::OwnerPointer() const@Base" 0.8.0
+ (c++)"pkgCache::GrpIterator::FindPreferredPkg(bool const&) const@Base" 0.8.0
+ (c++)"pkgCache::GrpIterator::FindPkg(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.8.0
+ (c++)"pkgCache::GrpIterator::NextPkg(pkgCache::PkgIterator const&) const@Base" 0.8.0
+ (c++)"pkgCache::PkgIterator::CurVersion() const@Base" 0.8.0
+ (c++)"pkgCache::PkgIterator::CandVersion() const@Base" 0.8.0
+ (c++)"pkgCache::PkgIterator::OwnerPointer() const@Base" 0.8.0
+ (c++)"pkgCache::PkgIterator::State() const@Base" 0.8.0
+ (c++)"pkgCache::PkgIterator::FullName(bool const&) const@Base" 0.8.0
+ (c++)"pkgCache::PrvIterator::OwnerPointer() const@Base" 0.8.0
+ (c++)"pkgCache::VerIterator::CompareVer(pkgCache::VerIterator const&) const@Base" 0.8.0
+ (c++)"pkgCache::VerIterator::NewestFile() const@Base" 0.8.0
+ (c++)"pkgCache::VerIterator::Downloadable() const@Base" 0.8.0
+ (c++)"pkgCache::VerIterator::OwnerPointer() const@Base" 0.8.0
+ (c++)"pkgCache::VerIterator::TranslatedDescription() const@Base" 0.8.0
+ (c++)"pkgCache::VerIterator::RelStr() const@Base" 0.8.0
+ (c++)"pkgCache::VerIterator::Automatic() const@Base" 0.8.0
+ (c++)"pkgCache::DescIterator::OwnerPointer() const@Base" 0.8.0
+ (c++)"pkgCache::PkgFileIterator::OwnerPointer() const@Base" 0.8.0
+ (c++)"pkgCache::VerFileIterator::OwnerPointer() const@Base" 0.8.0
+ (c++)"pkgCache::DescFileIterator::OwnerPointer() const@Base" 0.8.0
+ (c++)"pkgCache::sHash(char const*) const@Base" 0.8.0
+ (c++)"pkgCache::sHash(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.0
+ (c++)"pkgCache::Header::CheckSizes(pkgCache::Header&) const@Base" 0.8.0
+ (c++)"debSystem::CreatePM(pkgDepCache*) const@Base" 0.8.0
+ (c++)"debSystem::FindIndex(pkgCache::PkgFileIterator, pkgIndexFile*&) const@Base" 0.8.0
+ (c++)"metaIndex::GetURI() const@Base" 0.8.0
+ (c++)"metaIndex::GetDist() const@Base" 0.8.0
+ (c++)"metaIndex::GetType() const@Base" 0.8.0
+ (c++)"typeinfo for OpProgress@Base" 0.8.0
+ (c++)"typeinfo for SourceCopy@Base" 0.8.0
+ (c++)"typeinfo for pkgAcqFile@Base" 0.8.0
+ (c++)"typeinfo for pkgAcquire@Base" 0.8.0
+ (c++)"typeinfo for DynamicMMap@Base" 0.8.0
+ (c++)"typeinfo for PackageCopy@Base" 0.8.0
+ (c++)"typeinfo for pkgAcqIndex@Base" 0.8.0
+ (c++)"typeinfo for pkgDepCache@Base" 0.8.0
+ (c++)"typeinfo for pkgSimulate@Base" 0.8.0
+ (c++)"typeinfo for debIFTypePkg@Base" 0.8.0
+ (c++)"typeinfo for debIFTypeSrc@Base" 0.8.0
+ (c++)"typeinfo for debSLTypeDeb@Base" 0.8.0
+ (c++)"typeinfo for indexRecords@Base" 0.8.0
+ (c++)"typeinfo for pkgAcqMethod@Base" 0.8.0
+ (c++)"typeinfo for pkgCacheFile@Base" 0.8.0
+ (c++)"typeinfo for pkgIndexFile@Base" 0.8.0
+ (c++)"typeinfo for WeakPointable@Base" 0.8.0
+ (c++)"typeinfo for debListParser@Base" 0.8.0
+ (c++)"typeinfo for pkgAcqArchive@Base" 0.8.0
+ (c++)"typeinfo for pkgAcqMetaSig@Base" 0.8.0
+ (c++)"typeinfo for pkgTagSection@Base" 0.8.0
+ (c++)"typeinfo for OpTextProgress@Base" 0.8.0
+ (c++)"typeinfo for debIFTypeTrans@Base" 0.8.0
+ (c++)"typeinfo for debStatusIndex@Base" 0.8.0
+ (c++)"typeinfo for debIFTypeStatus@Base" 0.8.0
+ (c++)"typeinfo for debRecordParser@Base" 0.8.0
+ (c++)"typeinfo for debReleaseIndex@Base" 0.8.0
+ (c++)"typeinfo for debSLTypeDebSrc@Base" 0.8.0
+ (c++)"typeinfo for debSLTypeDebian@Base" 0.8.0
+ (c++)"typeinfo for debSourcesIndex@Base" 0.8.0
+ (c++)"typeinfo for pkgAcqDiffIndex@Base" 0.8.0
+ (c++)"typeinfo for pkgAcqMetaIndex@Base" 0.8.0
+ (c++)"typeinfo for debPackagesIndex@Base" 0.8.0
+ (c++)"typeinfo for pkgAcqIndexDiffs@Base" 0.8.0
+ (c++)"typeinfo for pkgAcqIndexTrans@Base" 0.8.0
+ (c++)"typeinfo for pkgAcquireStatus@Base" 0.8.0
+ (c++)"typeinfo for PreferenceSection@Base" 0.8.0
+ (c++)"typeinfo for pkgPackageManager@Base" 0.8.0
+ (c++)"typeinfo for debSrcRecordParser@Base" 0.8.0
+ (c++)"typeinfo for debVersioningSystem@Base" 0.8.0
+ (c++)"typeinfo for pkgUdevCdromDevices@Base" 0.8.0
+ (c++)"typeinfo for pkgVersioningSystem@Base" 0.8.0
+ (c++)"typeinfo for debTranslationsIndex@Base" 0.8.0
+ (c++)"typeinfo for MMap@Base" 0.8.0
+ (c++)"typeinfo for FileFd@Base" 0.8.0
+ (c++)"typeinfo for Vendor@Base" 0.8.0
+ (c++)"typeinfo for pkgCache@Base" 0.8.0
+ (c++)"typeinfo for IndexCopy@Base" 0.8.0
+ (c++)"typeinfo for debSystem@Base" 0.8.0
+ (c++)"typeinfo for metaIndex@Base" 0.8.0
+ (c++)"typeinfo for pkgDPkgPM@Base" 0.8.0
+ (c++)"typeinfo for pkgPolicy@Base" 0.8.0
+ (c++)"typeinfo for pkgSystem@Base" 0.8.0
+ (c++)"typeinfo for pkgAcquire::Item@Base" 0.8.0
+ (c++)"typeinfo for pkgRecords::Parser@Base" 0.8.0
+ (c++)"typeinfo for pkgDepCache::InRootSetFunc@Base" 0.8.0
+ (c++)"typeinfo for pkgDepCache::DefaultRootSetFunc@Base" 0.8.0
+ (c++)"typeinfo for pkgDepCache::Policy@Base" 0.8.0
+ (c++)"typeinfo for pkgSimulate::Policy@Base" 0.8.0
+ (c++)"typeinfo for pkgIndexFile::Type@Base" 0.8.0
+ (c++)"typeinfo for Configuration::MatchAgainstConfig@Base" 0.8.0
+ (c++)"typeinfo for pkgSourceList::Type@Base" 0.8.0
+ (c++)"typeinfo for pkgSrcRecords::Parser@Base" 0.8.0
+ (c++)"typeinfo for pkgCacheGenerator::ListParser@Base" 0.8.0
+ (c++)"typeinfo for APT::CacheSetHelper@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::DepIterator@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::GrpIterator@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::PkgIterator@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::PrvIterator@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::VerIterator@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::DescIterator@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::PkgFileIterator@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::VerFileIterator@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::DescFileIterator@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::Iterator<pkgCache::Dependency, pkgCache::DepIterator>@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::Iterator<pkgCache::Description, pkgCache::DescIterator>@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::Iterator<pkgCache::PackageFile, pkgCache::PkgFileIterator>@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::Iterator<pkgCache::Group, pkgCache::GrpIterator>@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::Iterator<pkgCache::VerFile, pkgCache::VerFileIterator>@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::Iterator<pkgCache::DescFile, pkgCache::DescFileIterator>@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::Iterator<pkgCache::Provides, pkgCache::PrvIterator>@Base" 0.8.0
+ (c++)"typeinfo for pkgCache::Namespace@Base" 0.8.0
+ (c++)"typeinfo name for OpProgress@Base" 0.8.0
+ (c++)"typeinfo name for SourceCopy@Base" 0.8.0
+ (c++)"typeinfo name for pkgAcqFile@Base" 0.8.0
+ (c++)"typeinfo name for pkgAcquire@Base" 0.8.0
+ (c++)"typeinfo name for DynamicMMap@Base" 0.8.0
+ (c++)"typeinfo name for PackageCopy@Base" 0.8.0
+ (c++)"typeinfo name for pkgAcqIndex@Base" 0.8.0
+ (c++)"typeinfo name for pkgDepCache@Base" 0.8.0
+ (c++)"typeinfo name for pkgSimulate@Base" 0.8.0
+ (c++)"typeinfo name for debIFTypePkg@Base" 0.8.0
+ (c++)"typeinfo name for debIFTypeSrc@Base" 0.8.0
+ (c++)"typeinfo name for debSLTypeDeb@Base" 0.8.0
+ (c++)"typeinfo name for indexRecords@Base" 0.8.0
+ (c++)"typeinfo name for pkgAcqMethod@Base" 0.8.0
+ (c++)"typeinfo name for pkgCacheFile@Base" 0.8.0
+ (c++)"typeinfo name for pkgIndexFile@Base" 0.8.0
+ (c++)"typeinfo name for WeakPointable@Base" 0.8.0
+ (c++)"typeinfo name for debListParser@Base" 0.8.0
+ (c++)"typeinfo name for pkgAcqArchive@Base" 0.8.0
+ (c++)"typeinfo name for pkgAcqMetaSig@Base" 0.8.0
+ (c++)"typeinfo name for pkgTagSection@Base" 0.8.0
+ (c++)"typeinfo name for OpTextProgress@Base" 0.8.0
+ (c++)"typeinfo name for debIFTypeTrans@Base" 0.8.0
+ (c++)"typeinfo name for debStatusIndex@Base" 0.8.0
+ (c++)"typeinfo name for debIFTypeStatus@Base" 0.8.0
+ (c++)"typeinfo name for debRecordParser@Base" 0.8.0
+ (c++)"typeinfo name for debReleaseIndex@Base" 0.8.0
+ (c++)"typeinfo name for debSLTypeDebSrc@Base" 0.8.0
+ (c++)"typeinfo name for debSLTypeDebian@Base" 0.8.0
+ (c++)"typeinfo name for debSourcesIndex@Base" 0.8.0
+ (c++)"typeinfo name for pkgAcqDiffIndex@Base" 0.8.0
+ (c++)"typeinfo name for pkgAcqMetaIndex@Base" 0.8.0
+ (c++)"typeinfo name for debPackagesIndex@Base" 0.8.0
+ (c++)"typeinfo name for pkgAcqIndexDiffs@Base" 0.8.0
+ (c++)"typeinfo name for pkgAcqIndexTrans@Base" 0.8.0
+ (c++)"typeinfo name for pkgAcquireStatus@Base" 0.8.0
+ (c++)"typeinfo name for PreferenceSection@Base" 0.8.0
+ (c++)"typeinfo name for pkgPackageManager@Base" 0.8.0
+ (c++)"typeinfo name for debSrcRecordParser@Base" 0.8.0
+ (c++)"typeinfo name for debVersioningSystem@Base" 0.8.0
+ (c++)"typeinfo name for pkgUdevCdromDevices@Base" 0.8.0
+ (c++)"typeinfo name for pkgVersioningSystem@Base" 0.8.0
+ (c++)"typeinfo name for debTranslationsIndex@Base" 0.8.0
+ (c++)"typeinfo name for MMap@Base" 0.8.0
+ (c++)"typeinfo name for FileFd@Base" 0.8.0
+ (c++)"typeinfo name for Vendor@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache@Base" 0.8.0
+ (c++)"typeinfo name for IndexCopy@Base" 0.8.0
+ (c++)"typeinfo name for debSystem@Base" 0.8.0
+ (c++)"typeinfo name for metaIndex@Base" 0.8.0
+ (c++)"typeinfo name for pkgDPkgPM@Base" 0.8.0
+ (c++)"typeinfo name for pkgPolicy@Base" 0.8.0
+ (c++)"typeinfo name for pkgSystem@Base" 0.8.0
+ (c++)"typeinfo name for pkgAcquire::Item@Base" 0.8.0
+ (c++)"typeinfo name for pkgRecords::Parser@Base" 0.8.0
+ (c++)"typeinfo name for pkgDepCache::InRootSetFunc@Base" 0.8.0
+ (c++)"typeinfo name for pkgDepCache::DefaultRootSetFunc@Base" 0.8.0
+ (c++)"typeinfo name for pkgDepCache::Policy@Base" 0.8.0
+ (c++)"typeinfo name for pkgSimulate::Policy@Base" 0.8.0
+ (c++)"typeinfo name for pkgIndexFile::Type@Base" 0.8.0
+ (c++)"typeinfo name for Configuration::MatchAgainstConfig@Base" 0.8.0
+ (c++)"typeinfo name for pkgSourceList::Type@Base" 0.8.0
+ (c++)"typeinfo name for pkgSrcRecords::Parser@Base" 0.8.0
+ (c++)"typeinfo name for pkgCacheGenerator::ListParser@Base" 0.8.0
+ (c++)"typeinfo name for APT::CacheSetHelper@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::DepIterator@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::GrpIterator@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::PkgIterator@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::PrvIterator@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::VerIterator@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::DescIterator@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::PkgFileIterator@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::VerFileIterator@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::DescFileIterator@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::Iterator<pkgCache::Dependency, pkgCache::DepIterator>@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::Iterator<pkgCache::Description, pkgCache::DescIterator>@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::Iterator<pkgCache::PackageFile, pkgCache::PkgFileIterator>@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::Iterator<pkgCache::Group, pkgCache::GrpIterator>@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::Iterator<pkgCache::VerFile, pkgCache::VerFileIterator>@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::Iterator<pkgCache::DescFile, pkgCache::DescFileIterator>@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::Iterator<pkgCache::Provides, pkgCache::PrvIterator>@Base" 0.8.0
+ (c++)"typeinfo name for pkgCache::Namespace@Base" 0.8.0
+ (c++)"vtable for OpProgress@Base" 0.8.0
+ (c++)"vtable for SourceCopy@Base" 0.8.0
+ (c++)"vtable for pkgAcqFile@Base" 0.8.0
+ (c++)"vtable for pkgAcquire@Base" 0.8.0
+ (c++)"vtable for DynamicMMap@Base" 0.8.0
+ (c++)"vtable for PackageCopy@Base" 0.8.0
+ (c++)"vtable for pkgAcqIndex@Base" 0.8.0
+ (c++)"vtable for pkgDepCache@Base" 0.8.0
+ (c++)"vtable for pkgSimulate@Base" 0.8.0
+ (c++)"vtable for debIFTypePkg@Base" 0.8.0
+ (c++)"vtable for debIFTypeSrc@Base" 0.8.0
+ (c++)"vtable for debSLTypeDeb@Base" 0.8.0
+ (c++)"vtable for indexRecords@Base" 0.8.0
+ (c++)"vtable for pkgAcqMethod@Base" 0.8.0
+ (c++)"vtable for pkgCacheFile@Base" 0.8.0
+ (c++)"vtable for pkgIndexFile@Base" 0.8.0
+ (c++)"vtable for debListParser@Base" 0.8.0
+ (c++)"vtable for pkgAcqArchive@Base" 0.8.0
+ (c++)"vtable for pkgAcqMetaSig@Base" 0.8.0
+ (c++)"vtable for pkgTagSection@Base" 0.8.0
+ (c++)"vtable for OpTextProgress@Base" 0.8.0
+ (c++)"vtable for debIFTypeTrans@Base" 0.8.0
+ (c++)"vtable for debStatusIndex@Base" 0.8.0
+ (c++)"vtable for debIFTypeStatus@Base" 0.8.0
+ (c++)"vtable for debRecordParser@Base" 0.8.0
+ (c++)"vtable for debReleaseIndex@Base" 0.8.0
+ (c++)"vtable for debSLTypeDebSrc@Base" 0.8.0
+ (c++)"vtable for debSLTypeDebian@Base" 0.8.0
+ (c++)"vtable for debSourcesIndex@Base" 0.8.0
+ (c++)"vtable for pkgAcqDiffIndex@Base" 0.8.0
+ (c++)"vtable for pkgAcqMetaIndex@Base" 0.8.0
+ (c++)"vtable for debPackagesIndex@Base" 0.8.0
+ (c++)"vtable for pkgAcqIndexDiffs@Base" 0.8.0
+ (c++)"vtable for pkgAcqIndexTrans@Base" 0.8.0
+ (c++)"vtable for pkgAcquireStatus@Base" 0.8.0
+ (c++)"vtable for PreferenceSection@Base" 0.8.0
+ (c++)"vtable for pkgPackageManager@Base" 0.8.0
+ (c++)"vtable for debSrcRecordParser@Base" 0.8.0
+ (c++)"vtable for debVersioningSystem@Base" 0.8.0
+ (c++)"vtable for pkgUdevCdromDevices@Base" 0.8.0
+ (c++)"vtable for pkgVersioningSystem@Base" 0.8.0
+ (c++)"vtable for debTranslationsIndex@Base" 0.8.0
+ (c++)"vtable for MMap@Base" 0.8.0
+ (c++)"vtable for FileFd@Base" 0.8.0
+ (c++)"vtable for Vendor@Base" 0.8.0
+ (c++)"vtable for pkgCache@Base" 0.8.0
+ (c++)"vtable for IndexCopy@Base" 0.8.0
+ (c++)"vtable for debSystem@Base" 0.8.0
+ (c++)"vtable for metaIndex@Base" 0.8.0
+ (c++)"vtable for pkgDPkgPM@Base" 0.8.0
+ (c++)"vtable for pkgPolicy@Base" 0.8.0
+ (c++)"vtable for pkgSystem@Base" 0.8.0
+ (c++)"vtable for pkgAcquire::Item@Base" 0.8.0
+ (c++)"vtable for pkgRecords::Parser@Base" 0.8.0
+ (c++)"vtable for pkgDepCache::InRootSetFunc@Base" 0.8.0
+ (c++)"vtable for pkgDepCache::DefaultRootSetFunc@Base" 0.8.0
+ (c++)"vtable for pkgDepCache::Policy@Base" 0.8.0
+ (c++)"vtable for pkgSimulate::Policy@Base" 0.8.0
+ (c++)"vtable for pkgIndexFile::Type@Base" 0.8.0
+ (c++)"vtable for Configuration::MatchAgainstConfig@Base" 0.8.0
+ (c++)"vtable for pkgSourceList::Type@Base" 0.8.0
+ (c++)"vtable for pkgSrcRecords::Parser@Base" 0.8.0
+ (c++)"vtable for pkgCacheGenerator::ListParser@Base" 0.8.0
+ (c++)"vtable for APT::CacheSetHelper@Base" 0.8.0
+ (c++)"vtable for pkgCache::DepIterator@Base" 0.8.0
+ (c++)"vtable for pkgCache::GrpIterator@Base" 0.8.0
+ (c++)"vtable for pkgCache::PkgIterator@Base" 0.8.0
+ (c++)"vtable for pkgCache::PrvIterator@Base" 0.8.0
+ (c++)"vtable for pkgCache::VerIterator@Base" 0.8.0
+ (c++)"vtable for pkgCache::DescIterator@Base" 0.8.0
+ (c++)"vtable for pkgCache::PkgFileIterator@Base" 0.8.0
+ (c++)"vtable for pkgCache::VerFileIterator@Base" 0.8.0
+ (c++)"vtable for pkgCache::DescFileIterator@Base" 0.8.0
+ (c++)"vtable for pkgCache::Iterator<pkgCache::Dependency, pkgCache::DepIterator>@Base" 0.8.0
+ (c++)"vtable for pkgCache::Iterator<pkgCache::Description, pkgCache::DescIterator>@Base" 0.8.0
+ (c++)"vtable for pkgCache::Iterator<pkgCache::PackageFile, pkgCache::PkgFileIterator>@Base" 0.8.0
+ (c++)"vtable for pkgCache::Iterator<pkgCache::Group, pkgCache::GrpIterator>@Base" 0.8.0
+ (c++)"vtable for pkgCache::Iterator<pkgCache::Package, pkgCache::PkgIterator>@Base" 0.8.0
+ (c++)"vtable for pkgCache::Iterator<pkgCache::VerFile, pkgCache::VerFileIterator>@Base" 0.8.0
+ (c++)"vtable for pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>@Base" 0.8.0
+ (c++)"vtable for pkgCache::Iterator<pkgCache::DescFile, pkgCache::DescFileIterator>@Base" 0.8.0
+ (c++)"vtable for pkgCache::Iterator<pkgCache::Provides, pkgCache::PrvIterator>@Base" 0.8.0
+ (c++)"non-virtual thunk to pkgDepCache::DefaultRootSetFunc::~DefaultRootSetFunc()@Base" 0.8.0
+ (c++)"operator<<(std::basic_ostream<char, std::char_traits<char> >&, pkgCache::DepIterator)@Base" 0.8.0
+ (c++)"operator<<(std::basic_ostream<char, std::char_traits<char> >&, pkgCache::PkgIterator)@Base" 0.8.0
+ _apt_DebSrcType@Base 0.8.0
+ _apt_DebType@Base 0.8.0
+ _config@Base 0.8.0
+ _system@Base 0.8.0
+ debSys@Base 0.8.0
+ debVS@Base 0.8.0
+ pkgLibVersion@Base 0.8.0
+ pkgVersion@Base 0.8.0
+### demangle strangeness - buildd report it as MISSING and as new…
+ (c++)"pkgAcqMetaSig::pkgAcqMetaSig(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<IndexTarget*, std::allocator<IndexTarget*> > const*, indexRecords*)@Base" 0.8.0
+### gcc-4.4 specific
+# (c++|optional=inherent)"APT::PackageSet::PackageSet(APT::PackageSet const&)@Base" 0.8.0
+# (c++|optional=inline)"stringcasecmp(char const*, char const*, char const*)@Base" 0.8.0
+# (arch=armel|c++|optional=inline)"stringcasecmp(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@Base" 0.8.0
+# (c++|optional=inherent)"APT::VersionSet::insert(pkgCache::VerIterator const&)@Base" 0.8.0
+# (c++|optional=inline)"APT::VersionSet::insert(APT::VersionSet const&)@Base" 0.8.0
+# (c++|optional=private)"debTranslationsIndex::IndexFile(char const*) const@Base" 0.8.0
+# (c++|optional=inline)"pkgCache::Iterator<pkgCache::Version, pkgCache::VerIterator>::end() const@Base" 0.8.0
+# (c++|optional=inherent)"HashString::operator=(HashString const&)@Base" 0.8.0
+# (c++|regex|optional=std)"^std::less<[^ ]+>::operator\(\)\(.+\) const@Base$" 0.8.0
+# (c++|regex|optional=std)"^std::vector<.+ >::(vector|push_back|erase|_[^ ]+)\(.+\)( const|)@Base$" 0.8.0
+# (c++|regex|optional=std)"^pkgCache::(Dep|Pkg|Ver|Grp|Prv|Desc|PkgFile)Iterator\*\* std::_.+@Base$" 0.8.0
+### gcc-4.5 specific
+# (c++|regex|optional=std)"^char\* std::[^ ]+<.+ >::_.+@Base$" 0.8.0
+# (c++|optional=inline)"FileFd::FileFd(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, FileFd::OpenMode, unsigned long)@Base" 0.8.0
+# (c++|regex|optional=template)"^SPtrArray<[^ ]+>::~SPtrArray\(\)@Base$" 0.8.0
+# (c++|optional=template)"SPtrArray<unsigned char>::~SPtrArray()@Base" 0.8.0
+### gcc-4.6 specific
+ (c++|optional=template)"SPtrArray<pkgCache::Version*>::~SPtrArray()@Base" 0.8.0
+ (c++|regex|optional=std)"^std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char( const|)\*>\(.+\)@Base$" 0.8.0
+ (c++|regex|optional=std)"^std::vector<DiffInfo, .+@Base$" 0.8.0
+ (c++|regex|optional=std)"^std::vector<.+ >::(vector|push_back|erase|_[^ ]+)\(.+\)( const|)@Base$" 0.8.0
+# (c++|optional=strange)"pkgCache::VerIterator::VerIterator(pkgCache&, pkgCache::Version*)@Base" 0.8.0
+### architecture specific: va_list
+ (arch=armel armhf|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, std::__va_list&) const@Base" 0.8.15~exp1
+ (arch=i386 hurd-i386 kfreebsd-i386|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, char*&) const@Base" 0.8.15~exp1
+ (arch=hppa ia64 mips mipsel sparc sparc64|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, void*&) const@Base" 0.8.15~exp1
+ (arch=amd64 kfreebsd-amd64 powerpc powerpcspe s390|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, __va_list_tag (&) [1]) const@Base" 0.8.15~exp1
+ (arch=sh4|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, __builtin_va_list&) const@Base" 0.8.15~exp1
+ (arch=alpha|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, __va_list_tag&) const@Base" 0.8.15~exp1
+### architecture specific: va_list & size_t
+ (arch=i386 hurd-i386 kfreebsd-i386|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, char*&, unsigned int&)@Base" 0.8.11.4
+ (arch=armel armhf|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, std::__va_list&, unsigned int&)@Base" 0.8.11.4
+ (arch=alpha|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, __va_list_tag&, unsigned long&)@Base" 0.8.11.4
+ (arch=powerpc powerpcspe|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, __va_list_tag (&) [1], unsigned int&)@Base" 0.8.11.4
+ (arch=amd64 kfreebsd-amd64 s390|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, __va_list_tag (&) [1], unsigned long&)@Base" 0.8.11.4
+ (arch=hppa mips mipsel sparc|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, void*&, unsigned int&)@Base" 0.8.11.4
+ (arch=ia64 sparc64|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, void*&, unsigned long&)@Base" 0.8.11.4
+ (arch=sh4|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, __builtin_va_list&, unsigned int&)@Base" 0.8.11.4
+ (arch=i386 hurd-i386 kfreebsd-i386|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, char*&, int, unsigned int&)@Base" 0.8.11.4
+ (arch=armel armhf|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, std::__va_list&, int, unsigned int&)@Base" 0.8.11.4
+ (arch=alpha|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __va_list_tag&, int, unsigned long&)@Base" 0.8.11.4
+ (arch=powerpc powerpcspe|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __va_list_tag (&) [1], int, unsigned int&)@Base" 0.8.11.4
+ (arch=amd64 kfreebsd-amd64 s390|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __va_list_tag (&) [1], int, unsigned long&)@Base" 0.8.11.4
+ (arch=hppa mips mipsel sparc|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, void*&, int, unsigned int&)@Base" 0.8.11.4
+ (arch=ia64 sparc64|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, void*&, int, unsigned long&)@Base" 0.8.11.4 1
+ (arch=sh4|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, __builtin_va_list&, int, unsigned int&)@Base" 0.8.11.4
+### architecture specific: size_t
+ (arch=i386 armel armhf hppa hurd-i386 kfreebsd-i386 mips mipsel powerpc powerpcspe sh4 sparc|c++)"_strtabexpand(char*, unsigned int)@Base" 0.8.0
+ (arch=alpha amd64 ia64 kfreebsd-amd64 s390 sparc64|c++)"_strtabexpand(char*, unsigned long)@Base" 0.8.0
+### try to ignore std:: template instances
+ (c++|regex|optional=std)"^(void |)std::[^ ]+<.+ >::(_|~).+\(.*\)@Base$" 0.8.0
+ (c++|regex|optional=std)"^std::[^ ]+<.+ >::(append|insert|reserve|operator[^ ]+)\(.*\)@Base$" 0.8.0
+ (c++|regex|optional=std)"^(void |DiffInfo\* |)std::_.*@Base$" 0.8.0
+ (c++|regex|optional=std)"^(bool|void) std::(operator|sort_heap|make_heap)[^ ]+<.+ >\(.+\)@Base$" 0.8.0
+ (c++|regex|optional=std)"^std::reverse_iterator<.+ > std::__.+@Base$" 0.8.0
+ (c++|regex|optional=std)"^std::basic_string<.+ >\(.+\)@Base$" 0.8.0
+ (c++|regex|optional=std)"^__gnu_cxx::__[^ ]+<.*@Base$" 0.8.0
+ (c++|regex|optional=std)"^typeinfo name for std::iterator<.*>@Base$" 0.8.0
+ (c++|regex|optional=std)"^typeinfo for std::iterator<.*>@Base$" 0.8.0
+###
+ (c++)"Configuration::MatchAgainstConfig::clearPatterns()@Base" 0.8.1
+ (c++)"CreateAPTDirectoryIfNeeded(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.2
+ (c++)"FileFd::FileSize()@Base" 0.8.8
+ (c++)"Base256ToNum(char const*, unsigned long&, unsigned int)@Base" 0.8.11
+ (c++)"pkgDepCache::SetCandidateRelease(pkgCache::VerIterator, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::list<std::pair<pkgCache::VerIterator, pkgCache::VerIterator>, std::allocator<std::pair<pkgCache::VerIterator, pkgCache::VerIterator> > >&)@Base" 0.8.11
+ (c++)"pkgDepCache::SetCandidateRelease(pkgCache::VerIterator, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.11
+ (c++)"RealFileExists(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.11
+ (c++)"StripEpoch(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.11
+ (c++)"IndexTarget::~IndexTarget()@Base" 0.8.11
+ (c++)"pkgAcqIndex::Init(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.11
+ (c++)"pkgAcqIndex::pkgAcqIndex(pkgAcquire*, IndexTarget const*, HashString const&, indexRecords const*)@Base" 0.8.11
+ (c++)"pkgTagSection::FindFlag(unsigned long&, unsigned long, char const*, char const*)@Base" 0.8.11
+ (c++)"pkgAcqSubIndex::ParseIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.11
+ (c++)"pkgAcqSubIndex::Custom600Headers()@Base" 0.8.11
+ (c++)"pkgAcqSubIndex::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.11
+ (c++)"pkgAcqSubIndex::DescURI()@Base" 0.8.11
+ (c++)"pkgAcqSubIndex::pkgAcqSubIndex(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashString const&)@Base" 0.8.11
+ (c++)"pkgAcqSubIndex::~pkgAcqSubIndex()@Base" 0.8.11
+ (c++)"pkgAcqMetaClearSig::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.11
+ (c++)"pkgAcqMetaClearSig::pkgAcqMetaClearSig(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<IndexTarget*, std::allocator<IndexTarget*> > const*, indexRecords*)@Base" 0.8.11
+ (c++)"pkgAcqMetaClearSig::~pkgAcqMetaClearSig()@Base" 0.8.11
+ (c++)"pkgAcqIndexTrans::pkgAcqIndexTrans(pkgAcquire*, IndexTarget const*, HashString const&, indexRecords const*)@Base" 0.8.11
+ (c++)"IndexTarget::IsOptional() const@Base" 0.8.11
+ (c++)"IndexTarget::IsSubIndex() const@Base" 0.8.11
+ (c++)"debReleaseIndex::TranslationIndexURI(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.11
+ (c++)"debReleaseIndex::TranslationIndexURISuffix(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 0.8.11
+ (c++)"typeinfo for pkgAcqSubIndex@Base" 0.8.11
+ (c++)"typeinfo for pkgAcqMetaClearSig@Base" 0.8.11
+ (c++)"typeinfo name for pkgAcqSubIndex@Base" 0.8.11
+ (c++)"typeinfo name for pkgAcqMetaClearSig@Base" 0.8.11
+ (c++)"vtable for pkgAcqSubIndex@Base" 0.8.11
+ (c++)"vtable for pkgAcqMetaClearSig@Base" 0.8.11
+ (c++)"FindMountPointForDevice(char const*)@Base" 0.8.12
+ (c++)"pkgUdevCdromDevices::ScanForRemovable(bool)@Base" 0.8.12
+ (c++)"APT::Configuration::Compressor::Compressor(char const*, char const*, char const*, char const*, char const*, unsigned short)@Base" 0.8.12
+ (c++)"APT::Configuration::Compressor::~Compressor()@Base" 0.8.12
+ (c++)"APT::Configuration::getCompressors(bool)@Base" 0.8.12
+ (c++)"APT::Configuration::getCompressorExtensions()@Base" 0.8.12
+ (c++)"APT::Configuration::setDefaultConfigurationForCompressors()@Base" 0.8.12
+ (c++)"pkgAcqMetaClearSig::Custom600Headers()@Base" 0.8.13
+ (c++|optional=private)"debListParser::NewProvidesAllArch(pkgCache::VerIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.13.2
+ (c++|optional=private)"PrintMode(char)@Base" 0.8.13.2
+ (c++)"pkgDepCache::IsModeChangeOk(pkgDepCache::ModeList, pkgCache::PkgIterator const&, unsigned long, bool)@Base" 0.8.13.2
+ (c++)"pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool)@Base" 0.8.15~exp1
+ (c++)"pkgCache::DepIterator::IsNegative() const@Base" 0.8.15~exp1
+ (c++)"Configuration::CndSet(char const*, int)@Base" 0.8.15.3
+ (c++)"pkgProblemResolver::InstOrNewPolicyBroken(pkgCache::PkgIterator)@Base" 0.8.15.3
+ (c++)"DeEscapeString(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.15.4
+ (c++)"GetModificationTime(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.15.6
+ (c++)"pkgSourceList::GetLastModifiedTime()@Base" 0.8.15.6
+ (c++)"pkgCacheGenerator::NewDepends(pkgCache::PkgIterator&, pkgCache::VerIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int const&, unsigned int const&, unsigned int*&)@Base" 0.8.15.6
+ (c++)"pkgCacheFile::RemoveCaches()@Base" 0.8.15.7
+ (c++)"pkgOrderList::VisitNode(pkgCache::PkgIterator, char const*)@Base" 0.8.15.7
+### external dependency resolver ###
+ (c++)"edspIFType::~edspIFType()@Base" 0.8.16~exp2
+ (c++)"edspSystem::Initialize(Configuration&)@Base" 0.8.16~exp2
+ (c++)"edspSystem::AddStatusFiles(std::vector<pkgIndexFile*, std::allocator<pkgIndexFile*> >&)@Base" 0.8.16~exp2
+ (c++)"edspSystem::ArchiveSupported(char const*)@Base" 0.8.16~exp2
+ (c++)"edspSystem::Lock()@Base" 0.8.16~exp2
+ (c++)"edspSystem::Score(Configuration const&)@Base" 0.8.16~exp2
+ (c++)"edspSystem::UnLock(bool)@Base" 0.8.16~exp2
+ (c++)"edspSystem::edspSystem()@Base" 0.8.16~exp2
+ (c++)"edspSystem::~edspSystem()@Base" 0.8.16~exp2
+ (c++)"edspListParser::NewVersion(pkgCache::VerIterator&)@Base" 0.8.16~exp2
+ (c++)"edspListParser::Description()@Base" 0.8.16~exp2
+ (c++)"edspListParser::ParseStatus(pkgCache::PkgIterator&, pkgCache::VerIterator&)@Base" 0.8.16~exp2
+ (c++)"edspListParser::VersionHash()@Base" 0.8.16~exp2
+ (c++)"edspListParser::Description_md5()@Base" 0.8.16~exp2
+ (c++)"edspListParser::LoadReleaseInfo(pkgCache::PkgFileIterator&, FileFd&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.16~exp2
+ (c++)"edspListParser::DescriptionLanguage()@Base" 0.8.16~exp2
+ (c++)"edspListParser::edspListParser(FileFd*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.16~exp2
+ (c++)"edspListParser::~edspListParser()@Base" 0.8.16~exp2
+ (c++)"edspIndex::edspIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.16~exp2
+ (c++)"edspIndex::~edspIndex()@Base" 0.8.16~exp2
+ (c++)"edspIFType::CreatePkgParser(pkgCache::PkgFileIterator) const@Base" 0.8.16~exp2
+ (c++)"edspSystem::CreatePM(pkgDepCache*) const@Base" 0.8.16~exp2
+ (c++)"edspSystem::FindIndex(pkgCache::PkgFileIterator, pkgIndexFile*&) const@Base" 0.8.16~exp2
+ (c++)"edspIndex::Merge(pkgCacheGenerator&, OpProgress*) const@Base" 0.8.16~exp2
+ (c++)"edspIndex::GetType() const@Base" 0.8.16~exp2
+ (c++)"EDSP::WriteError(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, _IO_FILE*)@Base" 0.8.16~exp2
+ (c++)"EDSP::ReadRequest(int, std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool&, bool&, bool&)@Base" 0.8.16~exp2
+ (c++)"EDSP::ApplyRequest(std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, pkgDepCache&)@Base" 0.8.16~exp2
+ (c++)"EDSP::ReadResponse(int, pkgDepCache&, OpProgress*)@Base" 0.8.16~exp2
+ (c++)"EDSP::StringToBool(char const*, bool)@Base" 0.8.16~exp2
+ (c++)"EDSP::WriteRequest(pkgDepCache&, _IO_FILE*, bool, bool, bool, OpProgress*)@Base" 0.8.16~exp2
+ (c++)"EDSP::ExecuteSolver(char const*, int*, int*)@Base" 0.8.16~exp2
+ (c++)"EDSP::WriteProgress(unsigned short, char const*, _IO_FILE*)@Base" 0.8.16~exp2
+ (c++)"EDSP::WriteScenario(pkgDepCache&, _IO_FILE*, OpProgress*)@Base" 0.8.16~exp2
+ (c++)"EDSP::WriteSolution(pkgDepCache&, _IO_FILE*)@Base" 0.8.16~exp2
+ (c++)"EDSP::ResolveExternal(char const*, pkgDepCache&, bool, bool, bool, OpProgress*)@Base" 0.8.16~exp2
+ (c++)"EDSP::WriteLimitedScenario(pkgDepCache&, _IO_FILE*, APT::PackageSet const&, OpProgress*)@Base" 0.8.16~exp2
+ (c++)"EDSP::WriteScenarioVersion(pkgDepCache&, _IO_FILE*, pkgCache::PkgIterator const&, pkgCache::VerIterator const&)@Base" 0.8.16~exp2
+ (c++)"EDSP::WriteScenarioDependency(pkgDepCache&, _IO_FILE*, pkgCache::PkgIterator const&, pkgCache::VerIterator const&)@Base" 0.8.16~exp2
+ (c++)"EDSP::WriteScenarioLimitedDependency(pkgDepCache&, _IO_FILE*, pkgCache::PkgIterator const&, pkgCache::VerIterator const&, APT::PackageSet const&)@Base" 0.8.16~exp2
+ (c++)"EDSP::DepMap@Base" 0.8.16~exp2
+ (c++)"EDSP::PrioMap@Base" 0.8.16~exp2
+ (c++)"EDSP::ReadLine(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 0.8.16~exp2
+ (c++)"pkgDepCache::Policy::GetPriority(pkgCache::PkgIterator const&)@Base" 0.8.16~exp6
+ (c++)"pkgDepCache::Policy::GetPriority(pkgCache::PkgFileIterator const&)@Base" 0.8.16~exp6
+ (c++)"typeinfo for edspIFType@Base" 0.8.16~exp2
+ (c++)"typeinfo for edspSystem@Base" 0.8.16~exp2
+ (c++)"typeinfo for edspListParser@Base" 0.8.16~exp2
+ (c++)"typeinfo for edspIndex@Base" 0.8.16~exp2
+ (c++)"typeinfo name for edspIFType@Base" 0.8.16~exp2
+ (c++)"typeinfo name for edspSystem@Base" 0.8.16~exp2
+ (c++)"typeinfo name for edspListParser@Base" 0.8.16~exp2
+ (c++)"typeinfo name for edspIndex@Base" 0.8.16~exp2
+ (c++)"vtable for edspIFType@Base" 0.8.16~exp2
+ (c++)"vtable for edspSystem@Base" 0.8.16~exp2
+ (c++)"vtable for edspListParser@Base" 0.8.16~exp2
+ (c++)"vtable for edspIndex@Base" 0.8.16~exp2
+ edspSys@Base 0.8.16~exp2
+### generalisation of checksums (with lfs) -- mostly api-compatible available (without sha512 in previous versions)
+ (c++)"SHA256_End(_SHA256_CTX*, char*)@Base" 0.8.16~exp2
+ (c++)"SHA384_End(_SHA512_CTX*, char*)@Base" 0.8.16~exp2
+ (c++)"SHA512_End(_SHA512_CTX*, char*)@Base" 0.8.16~exp2
+ (c++)"SHA256_Data(unsigned char const*, unsigned int, char*)@Base" 0.8.16~exp2
+ (c++)"SHA256_Init(_SHA256_CTX*)@Base" 0.8.16~exp2
+ (c++)"SHA384_Data(unsigned char const*, unsigned int, char*)@Base" 0.8.16~exp2
+ (c++)"SHA384_Init(_SHA512_CTX*)@Base" 0.8.16~exp2
+ (c++)"SHA512_Data(unsigned char const*, unsigned int, char*)@Base" 0.8.16~exp2
+ (c++)"SHA512_Init(_SHA512_CTX*)@Base" 0.8.16~exp2
+ (c++)"SHA256_Final(unsigned char*, _SHA256_CTX*)@Base" 0.8.16~exp2
+ (c++)"SHA384_Final(unsigned char*, _SHA512_CTX*)@Base" 0.8.16~exp2
+ (c++)"SHA512_Final(unsigned char*, _SHA512_CTX*)@Base" 0.8.16~exp2
+ (c++)"SHA256_Update(_SHA256_CTX*, unsigned char const*, unsigned int)@Base" 0.8.16~exp2
+ (c++)"SHA384_Update(_SHA512_CTX*, unsigned char const*, unsigned int)@Base" 0.8.16~exp2
+ (c++)"SHA512_Update(_SHA512_CTX*, unsigned char const*, unsigned int)@Base" 0.8.16~exp2
+ (c++)"AddCRC16(unsigned short, void const*, unsigned long long)@Base" 0.8.16~exp2
+ (c++)"MD5Summation::Add(unsigned char const*, unsigned long long)@Base" 0.8.16~exp6
+ (c++)"MD5Summation::Result()@Base" 0.8.16~exp2
+ (c++)"MD5Summation::MD5Summation()@Base" 0.8.16~exp2
+ (c++)"SHA1Summation::SHA1Summation()@Base" 0.8.16~exp2
+ (c++)"SHA1Summation::Add(unsigned char const*, unsigned long long)@Base" 0.8.16~exp6
+ (c++)"SHA1Summation::Result()@Base" 0.8.16~exp2
+ (c++)"SHA256Summation::Add(unsigned char const*, unsigned long long)@Base" 0.8.16~exp6
+ (c++)"SHA512Summation::Add(unsigned char const*, unsigned long long)@Base" 0.8.16~exp6
+ (c++)"debRecordParser::SHA512Hash()@Base" 0.8.16~exp2
+ (c++)"pkgRecords::Parser::SHA512Hash()@Base" 0.8.16~exp6
+ (c++)"Hashes::AddFD(int, unsigned long long, bool, bool, bool, bool)@Base" 0.8.16~exp6
+ (c++)"SummationImplementation::AddFD(int, unsigned long long)@Base" 0.8.16~exp6
+ (c++)"typeinfo for MD5Summation@Base" 0.8.16~exp6
+ (c++)"typeinfo for SHA1Summation@Base" 0.8.16~exp6
+ (c++)"typeinfo for SHA256Summation@Base" 0.8.16~exp6
+ (c++)"typeinfo for SHA512Summation@Base" 0.8.16~exp6
+ (c++)"typeinfo for SHA2SummationBase@Base" 0.8.16~exp6
+ (c++)"typeinfo for SummationImplementation@Base" 0.8.16~exp6
+ (c++)"typeinfo name for MD5Summation@Base" 0.8.16~exp6
+ (c++)"typeinfo name for SHA1Summation@Base" 0.8.16~exp6
+ (c++)"typeinfo name for SHA256Summation@Base" 0.8.16~exp6
+ (c++)"typeinfo name for SHA512Summation@Base" 0.8.16~exp6
+ (c++)"typeinfo name for SHA2SummationBase@Base" 0.8.16~exp6
+ (c++)"typeinfo name for SummationImplementation@Base" 0.8.16~exp6
+ (c++)"vtable for MD5Summation@Base" 0.8.16~exp6
+ (c++)"vtable for SHA1Summation@Base" 0.8.16~exp6
+ (c++)"vtable for SHA256Summation@Base" 0.8.16~exp6
+ (c++)"vtable for SHA512Summation@Base" 0.8.16~exp6
+ (c++)"vtable for SHA2SummationBase@Base" 0.8.16~exp6
+ (c++)"vtable for SummationImplementation@Base" 0.8.16~exp6
+### large file support - available in older api-compatible versions without lfs ###
+ (c++)"StrToNum(char const*, unsigned long long&, unsigned int, unsigned int)@Base" 0.8.16~exp6
+ (c++)"OpProgress::SubProgress(unsigned long long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, float)@Base" 0.8.16~exp6
+ (c++)"OpProgress::OverallProgress(unsigned long long, unsigned long long, unsigned long long, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.16~exp6
+ (c++)"OpProgress::Progress(unsigned long long)@Base" 0.8.16~exp6
+ (c++)"SourceCopy::GetFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long long&)@Base" 0.8.16~exp6
+ (c++)"pkgAcqFile::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.16~exp6
+ (c++)"pkgAcqFile::pkgAcqFile(pkgAcquire*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@Base" 0.8.16~exp6
+ (c++)"pkgAcquire::UriIterator::~UriIterator()@Base" 0.8.16~exp6
+ (c++)"pkgAcquire::MethodConfig::~MethodConfig()@Base" 0.8.16~exp6
+ (c++)"pkgAcquire::Item::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.16~exp6
+ (c++)"pkgAcquire::Item::Start(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long)@Base" 0.8.16~exp6
+ (c++)"pkgRecords::Parser::RecordField(char const*)@Base" 0.8.16~exp6
+ (c++)"pkgTagFile::Jump(pkgTagSection&, unsigned long long)@Base" 0.8.16~exp6
+ (c++)"pkgTagFile::Offset()@Base" 0.8.16~exp6
+ (c++)"pkgTagFile::pkgTagFile(FileFd*, unsigned long long)@Base" 0.8.16~exp6
+ (c++)"DynamicMMap::RawAllocate(unsigned long long, unsigned long)@Base" 0.8.16~exp6
+ (c++)"PackageCopy::GetFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long long&)@Base" 0.8.16~exp6
+ (c++)"pkgAcqIndex::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.16~exp6
+ (c++)"indexRecords::parseSumData(char const*&, char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned long long&)@Base" 0.8.16~exp6
+ (c++)"pkgAcqArchive::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.16~exp6
+ (c++)"pkgTagSection::~pkgTagSection()@Base" 0.8.16~exp6
+ (c++)"pkgAcqSubIndex::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.16~exp6
+ (c++)"debRecordParser::RecordField(char const*)@Base" 0.8.16~exp6
+ (c++)"debReleaseIndex::SetTrusted(bool)@Base" 0.8.16~exp6
+ (c++)"debReleaseIndex::debReleaseIndex(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@Base" 0.8.16~exp6
+ (c++)"pkgAcqMetaIndex::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.16~exp6
+ (c++)"pkgAcqIndexDiffs::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.16~exp6
+ (c++)"pkgAcqMetaSig::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.16~exp6
+ (c++)"pkgAcqDiffIndex::Done(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long long, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.8.16~exp6
+ (c++)"pkgAcquireStatus::Fetched(unsigned long long, unsigned long long)@Base" 0.8.16~exp6
+ (c++)"PreferenceSection::~PreferenceSection()@Base" 0.8.16~exp6
+ (c++)"pkgCacheGenerator::NewDescription(pkgCache::DescIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, HashSumValue<128> const&, unsigned int)@Base" 0.8.16~exp6
+ (c++)"pkgProblemResolver::ResolveInternal(bool)@Base" 0.8.16~exp6
+ (c++)"pkgProblemResolver::ResolveByKeepInternal()@Base" 0.8.16~exp6
+ (c++)"FileFd::Read(void*, unsigned long long, unsigned long long*)@Base" 0.8.16~exp6
+ (c++)"FileFd::Seek(unsigned long long)@Base" 0.8.16~exp6
+ (c++)"FileFd::Skip(unsigned long long)@Base" 0.8.16~exp6
+ (c++)"FileFd::Write(void const*, unsigned long long)@Base" 0.8.16~exp6
+ (c++)"FileFd::Truncate(unsigned long long)@Base" 0.8.16~exp6
+ (c++)"pkgCache::PkgIterator::PkgIterator(pkgCache&, pkgCache::Package*)@Base" 0.8.16~exp6
+ (c++)"pkgPolicy::GetPriority(pkgCache::PkgFileIterator const&)@Base" 0.8.16~exp6
+ (c++)"OptionalIndexTarget::IsOptional() const@Base" 0.8.16~exp6
+ (c++)"typeinfo for pkgTagFile@Base" 0.8.16~exp6
+ (c++)"typeinfo for IndexTarget@Base" 0.8.16~exp6
+ (c++)"typeinfo for pkgSrcRecords@Base" 0.8.16~exp6
+ (c++)"typeinfo for OptionalIndexTarget@Base" 0.8.16~exp6
+ (c++)"typeinfo for pkgAcquire::UriIterator@Base" 0.8.16~exp6
+ (c++)"typeinfo for pkgAcquire::MethodConfig@Base" 0.8.16~exp6
+ (c++)"typeinfo for pkgAcquire::Queue@Base" 0.8.16~exp6
+ (c++)"typeinfo for pkgAcquire::Worker@Base" 0.8.16~exp6
+ (c++)"typeinfo name for pkgTagFile@Base" 0.8.16~exp6
+ (c++)"typeinfo name for IndexTarget@Base" 0.8.16~exp6
+ (c++)"typeinfo name for pkgSrcRecords@Base" 0.8.16~exp6
+ (c++)"typeinfo name for OptionalIndexTarget@Base" 0.8.16~exp6
+ (c++)"typeinfo name for pkgAcquire::UriIterator@Base" 0.8.16~exp6
+ (c++)"typeinfo name for pkgAcquire::MethodConfig@Base" 0.8.16~exp6
+ (c++)"typeinfo name for pkgAcquire::Queue@Base" 0.8.16~exp6
+ (c++)"typeinfo name for pkgAcquire::Worker@Base" 0.8.16~exp6
+ (c++)"vtable for pkgTagFile@Base" 0.8.16~exp6
+ (c++)"vtable for IndexTarget@Base" 0.8.16~exp6
+ (c++)"vtable for pkgSrcRecords@Base" 0.8.16~exp6
+ (c++)"vtable for OptionalIndexTarget@Base" 0.8.16~exp6
+ (c++)"vtable for pkgAcquire::UriIterator@Base" 0.8.16~exp6
+ (c++)"vtable for pkgAcquire::MethodConfig@Base" 0.8.16~exp6
+ (c++)"vtable for pkgAcquire::Queue@Base" 0.8.16~exp6
+ (c++)"vtable for pkgAcquire::Worker@Base" 0.8.16~exp6
+### remove deprecated parameter
+ (c++)"pkgDepCache::SetCandidateVersion(pkgCache::VerIterator)@Base" 0.8.16~exp6
+ (c++)"pkgDepCache::AddSizes(pkgCache::PkgIterator const&, bool)@Base" 0.8.16~exp6
+ (c++)"pkgDepCache::AddStates(pkgCache::PkgIterator const&, bool)@Base" 0.8.16~exp6
index 0544b2b8e1c92cdea83e2715c28c7ed2c61a929d..30474c06b71fb4cd9ac6adbd7a70a45119e97e52 100755 (executable)
@@ -62,7 +62,7 @@ configure.in:
 endif
 
 # APT Programs in apt-utils
-APT_UTILS=ftparchive sortpkgs extracttemplates
+APT_UTILS=ftparchive sortpkgs extracttemplates internal-solver
 
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
@@ -70,9 +70,9 @@ APT_UTILS=ftparchive sortpkgs extracttemplates
 # Find the libapt-pkg major version for use in other control files
 include buildlib/libversion.mak
 
-# Determine which package we should provide in the control files
-LIBAPTPKG_PROVIDE=libapt-pkg$(LIBAPTPKG_MAJOR)
-LIBAPTINST_PROVIDE=libapt-inst$(LIBAPTINST_MAJOR)
+# Determine which library package names to use
+LIBAPT_PKG=libapt-pkg$(LIBAPTPKG_MAJOR)
+LIBAPT_INST=libapt-inst$(LIBAPTINST_MAJOR)
 
 # do not fail as we are just experimenting with symbol files for now
 export DPKG_GENSYMBOLS_CHECK_LEVEL=0
@@ -97,6 +97,15 @@ build/configure-stamp: configure
 build/build-stamp: build/configure-stamp
        # Add here commands to compile the package.
        $(MAKE) binary
+       # compat symlink for the locale split
+       mkdir -p build/usr/share 
+       cd build/usr/share && ln -f -s ../../locale .
+       # compile and run tests
+ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
+       $(MAKE) test
+else
+       @echo "Tests DISABLED"
+endif
        touch $@
 
 build/build-doc-stamp: build/configure-stamp
@@ -120,9 +129,6 @@ libapt-pkg-doc: build-doc
 #
 # libapt-pkg-doc install
 #
-       # remove doxygen's embedded jquery as we don't use it anyway (#622147)
-       rm -f $(BLD)/doc/doxygen/html/jquery.js
-
        dh_installdocs -p$@ $(BLD)/docs/design* \
                            $(BLD)/docs/dpkg-tech* \
                            $(BLD)/docs/files* \
@@ -137,7 +143,7 @@ libapt-pkg-doc: build-doc
        dh_compress -p$@
        dh_fixperms -p$@
        dh_installdeb -p$@
-       dh_gencontrol -p$@ -- -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE)
+       dh_gencontrol -p$@
        dh_md5sums -p$@
        dh_builddeb -p$@
 
@@ -165,7 +171,7 @@ apt-doc: build-doc
 
 # Build architecture-dependent files here.
 
-binary-arch: apt libapt-pkg-dev apt-utils apt-transport-https
+binary-arch: $(LIBAPT_PKG) $(LIBAPT_INST) apt libapt-pkg-dev apt-utils apt-transport-https
 apt_MANPAGES = apt-cache apt-cdrom apt-config apt-get apt-key apt-mark apt-secure apt apt.conf apt_preferences sources.list
 apt: build build-doc
        dh_testdir -p$@
@@ -185,7 +191,7 @@ apt: build build-doc
        dh_install -p$@ --sourcedir=$(BLD)
 
        # Remove the bits that are in apt-utils
-       rm $(addprefix debian/$@/usr/bin/apt-,$(APT_UTILS))
+       rm $(addprefix debian/$@/usr/bin/apt-,$(APT_UTILS) dump-solver)
 
        # https has its own package
        rm debian/$@/usr/lib/apt/methods/https
@@ -205,10 +211,9 @@ apt: build build-doc
        dh_strip -p$@
        dh_compress -p$@
        dh_fixperms -p$@
-       dh_makeshlibs -p$@
        dh_installdeb -p$@
-       dh_shlibdeps -p$@ -l$(CURDIR)/debian/apt/usr/lib:$(CURDIR)/debian/$@/usr/lib
-       dh_gencontrol -p$@ -- -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE)
+       dh_shlibdeps -p$@
+       dh_gencontrol -p$@
        dh_md5sums -p$@
        dh_builddeb -p$@
 
@@ -227,7 +232,7 @@ libapt-pkg-dev: build
        dh_compress -p$@
        dh_fixperms -p$@
        dh_installdeb -p$@
-       dh_gencontrol -p$@ -- -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE) -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE)
+       dh_gencontrol -p$@ -- -Vlibapt-pkg-name=$(LIBAPT_PKG) -Vlibapt-inst-name=$(LIBAPT_INST)
        dh_md5sums -p$@
        dh_builddeb -p$@
 
@@ -239,8 +244,10 @@ apt-utils: build
        dh_installdirs -p$@
 
        cp $(addprefix $(BLD)/bin/apt-,$(APT_UTILS)) debian/$@/usr/bin/
+       cp $(BLD)/bin/apt-dump-solver debian/$@/usr/lib/apt/solvers/dump
 
        dh_install -p$@ --sourcedir=$(BLD)
+       dh_link -p$@
        dh_installdocs -p$@
        dh_installexamples -p$@
 
@@ -253,8 +260,46 @@ apt-utils: build
        dh_fixperms -p$@
        dh_makeshlibs -p$@
        dh_installdeb -p$@
-       dh_shlibdeps -p$@ -l$(CURDIR)/debian/apt/usr/lib:$(CURDIR)/debian/$@/usr/lib
-       dh_gencontrol -p$@ -- -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE)
+       dh_shlibdeps -p$@
+       dh_gencontrol -p$@
+       dh_md5sums -p$@
+       dh_builddeb -p$@
+
+$(LIBAPT_PKG): build
+       dh_testdir -p$@
+       dh_testroot -p$@
+       dh_prep -p$@
+       dh_installdirs -p$@
+
+       dh_install -p$@ --sourcedir=$(BLD)
+       dh_installdocs -p$@
+       dh_installchangelogs -p$@
+       dh_strip -p$@
+       dh_compress -p$@
+       dh_fixperms -p$@
+       dh_makeshlibs -p$@
+       dh_installdeb -p$@
+       dh_shlibdeps -p$@ 
+       dh_gencontrol -p$@
+       dh_md5sums -p$@
+       dh_builddeb -p$@
+
+$(LIBAPT_INST): build
+       dh_testdir -p$@
+       dh_testroot -p$@
+       dh_prep -p$@
+       dh_installdirs -p$@
+
+       dh_install -p$@ --sourcedir=$(BLD)
+       dh_installdocs -p$@
+       dh_installchangelogs -p$@
+       dh_strip -p$@
+       dh_compress -p$@
+       dh_fixperms -p$@
+       dh_makeshlibs -p$@
+       dh_installdeb -p$@
+       dh_shlibdeps -p$@ 
+       dh_gencontrol -p$@
        dh_md5sums -p$@
        dh_builddeb -p$@
 
@@ -276,7 +321,7 @@ apt-transport-https: build libapt-pkg-dev
        dh_compress -p$@
        dh_fixperms -p$@
        dh_installdeb -p$@
-       dh_shlibdeps -p$@ -l$(CURDIR)/debian/apt/usr/lib:$(CURDIR)/debian/$@/usr/lib
+       dh_shlibdeps -p$@ 
        dh_gencontrol -p$@
        dh_md5sums -p$@
        dh_builddeb -p$@
index 431ef87044d24f32c0f564bd4a3a401db27aec8b..1393de015928c687de9ba7884521d2863332a252 100644 (file)
@@ -263,7 +263,7 @@ Reverse Provides:
      about the priority selection of the named package.</para></listitem>
      </varlistentry>
 
-     <varlistentry><term>madison <replaceable>/[ pkg(s) ]</replaceable></term>
+     <varlistentry><term>madison <replaceable>[ pkg(s) ]</replaceable></term>
      <listitem><para><literal>apt-cache</literal>'s <literal>madison</literal> command attempts to mimic
      the output format and a subset of the functionality of the Debian
      archive management tool, <literal>madison</literal>.  It displays
index 11b53e5e78ca2da47db546cc5abc5070f648e8f0..36a675bb0bc20fa247ff4fcc2831052237e47f67 100644 (file)
                        <replaceable>target_release</replaceable>
                </arg>
       </arg>
+      <arg>
+               <option>-a=</option>
+               <arg choice='plain'>
+                       <replaceable>default_architecture</replaceable>
+               </arg>
+      </arg>
+
 
       <group choice="req">
          <arg choice='plain'>update</arg>
 
      <para>If the <option>--compile</option> option is specified
      then the package will be compiled to a binary .deb using
-     <command>dpkg-buildpackage</command>, if <option>--download-only</option>
-     is specified then the source package will not be unpacked.</para>
+     <command>dpkg-buildpackage</command> for the architecture as
+     defined by the <command>--host-architecture</command> option.
+     If <option>--download-only</option> is specified then the source package
+     will not be unpacked.</para>
 
      <para>A specific source version can be retrieved by postfixing the source name
      with an equals and then the version to fetch, similar to the mechanism
 
      <varlistentry><term>build-dep</term>
      <listitem><para><literal>build-dep</literal> causes apt-get to install/remove packages in an 
-     attempt to satisfy the build dependencies for a source package.</para></listitem>
+     attempt to satisfy the build dependencies for a source package. By default the dependencies are
+     satisfied to build the package nativly. If desired a host-architecture can be specified
+     with the <option>--host-architecture</option> option instead.</para></listitem>
      </varlistentry>
 
      <varlistentry><term>check</term>
      Configuration Item: <literal>APT::Get::Assume-Yes</literal>.</para></listitem>
      </varlistentry>
 
+     <varlistentry><term><option>--assume-no</option></term>
+     <listitem><para>Automatic "no" to all prompts.
+     Configuration Item: <literal>APT::Get::Assume-No</literal>.</para></listitem>
+     </varlistentry>
+
      <varlistentry><term><option>-u</option></term><term><option>--show-upgraded</option></term>
      <listitem><para>Show upgraded packages; Print out a list of all packages that are to be
      upgraded. 
      Configuration Item: <literal>APT::Get::Show-Versions</literal>.</para></listitem>
      </varlistentry>
 
+     <varlistentry><term><option>-a</option></term>
+                   <term><option>--host-architecture</option></term>
+     <listitem><para>This option controls the architecture packages are built for
+     by <command>apt-get source --compile</command> and how cross-builddependencies
+     are satisfied. By default is not set which means that the host architecture
+     is the same as the build architecture (which is defined by <literal>APT::Architecture</literal>)
+     Configuration Item: <literal>APT::Get::Host-Architecture</literal>
+     </para></listitem>
+     </varlistentry>
+
      <varlistentry><term><option>-b</option></term><term><option>--compile</option></term>
                    <term><option>--build</option></term>
      <listitem><para>Compile source packages after downloading them.
index 02de89f3ba80e2d9273680b16fcb6613d5391f6e..1adc868e00721b63c1b6038a4e084162555014be 100644 (file)
@@ -153,7 +153,15 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      parsing package lists. The internal default is the architecture apt was 
      compiled for.</para></listitem>
      </varlistentry>
-     
+
+     <varlistentry><term>Architectures</term>
+     <listitem><para>All Architectures the system supports. Processors implementing the <literal>amd64</literal>
+     are e.g. also able to execute binaries compiled for <literal>i386</literal>; This list is use when fetching files and
+     parsing package lists. The internal default is always the native architecture (<literal>APT::Architecture</literal>)
+     and all foreign architectures it can retrieve by calling <command>dpkg --print-foreign-architectures</command>.
+     </para></listitem>
+     </varlistentry>
+
      <varlistentry><term>Default-Release</term>
      <listitem><para>Default release to install packages from if more than one
      version available. Contains release name, codename or release version. Examples: 'stable', 'testing',
@@ -259,14 +267,23 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
 
      <varlistentry><term>Max-ValidTime</term>
         <listitem><para>Seconds the Release file should be considered valid after
-        it was created. The default is "for ever" (0) if the Release file of the
-        archive doesn't include a <literal>Valid-Until</literal> header.
-        If it does then this date is the default. The date from the Release file or
-        the date specified by the creation time of the Release file
-        (<literal>Date</literal> header) plus the seconds specified with this
-        options are used to check if the validation of a file has expired by using
-        the earlier date of the two. Archive specific settings can be made by
-        appending the label of the archive to the option name.
+        it was created (indicated by the <literal>Date</literal> header).
+        If the Release file itself includes a <literal>Valid-Until</literal> header
+        the earlier date of the two is used as the expiration date.
+        The default value is <literal>0</literal> which stands for "for ever".
+        Archive specific settings can be made by appending the label of the archive
+        to the option name.
+        </para></listitem>
+     </varlistentry>
+
+     <varlistentry><term>Min-ValidTime</term>
+        <listitem><para>Minimum of seconds the Release file should be considered
+        valid after it was created (indicated by the <literal>Date</literal> header).
+        Use this if you need to use a seldomly updated (local) mirror of a more
+        regular updated archive with a <literal>Valid-Until</literal> header
+        instead of competely disabling the expiration date checking.
+        Archive specific settings can and should be used by appending the label of
+        the archive to the option name.
         </para></listitem>
      </varlistentry>
 
index 6884e06e32d82f3c6703aff7162f6957c787d092..49e803f9181175534845f6cd33f64c46d2d247a8 100644 (file)
@@ -23,6 +23,7 @@ quiet::NoUpdate "true"; // never update progress information - included in -q=1
 APT 
 {
   Architecture "i386";
+  Architectures { "amd64"; "armel"; };
   Build-Essential "build-essential";
 
   NeverAutoRemove  { "linux-image.*";  };  // packages that should never
@@ -31,6 +32,7 @@ APT
   // Options for apt-get
   Get 
   {
+     Host-Architecture "armel";
      Arch-Only "false";
      AllowUnauthenticated "false";
      AutomaticRemove "false";       
diff --git a/doc/external-dependency-solver-protocol.txt b/doc/external-dependency-solver-protocol.txt
new file mode 100644 (file)
index 0000000..7a124d8
--- /dev/null
@@ -0,0 +1,299 @@
+# APT External Dependency Solver Protocol (EDSP) - version 0.4
+
+This document describes the communication protocol between APT and
+external dependency solvers. The protocol is called APT EDSP, for "APT
+External Dependency Solver Protocol".
+
+
+## Components
+
+- **APT**: we know this one.
+- APT is equipped with its own **internal solver** for dependencies,
+  which is identified by the string `internal`.
+- **External solver**: an *external* software component able to resolve
+  dependencies on behalf of APT.
+  
+At each interaction with APT, a single solver is in use.  When there is
+a total of 2 or more solvers, internals or externals, the user can
+choose which one to use.
+
+Each solver is identified by an unique string, the **solver
+name**. Solver names must be formed using only alphanumeric ASCII
+characters, dashes, and underscores; solver names must start with a
+lowercase ASCII letter. The special name `internal` denotes APT's
+internal solver, is reserved, and cannot be used by external solvers.
+
+
+## Installation
+
+Each external solver is installed as a file under Dir::Bin::Solvers (see
+below), which defaults to `/usr/lib/apt/solvers`. We will assume in the
+remainder of this section that such a default value is in effect.
+
+The naming scheme is `/usr/lib/apt/solvers/NAME`, where `NAME` is the
+name of the external solver.
+
+Each file under `/usr/lib/apt/solvers` corresponding to an external
+solver must be executable.
+
+No non-solver files must be installed under `/usr/lib/apt/solvers`, so
+that an index of available external solvers can be obtained by listing
+the content of that directory.
+
+
+## Configuration
+
+Several APT options can be used to affect dependency solving in APT. An
+overview of them is given below. Please refer to proper APT
+configuration documentation for more, and more up to date, information.
+
+- **APT::Solver**: the name of the solver to be used for
+  dependency solving. Defaults to `internal`
+
+- **APT::Solver::Strict-Pinning**: whether pinning must be strictly
+  respected (as the internal solver does) or can be slightly deviated
+  from. Defaults to `yes`.
+
+- **APT::Solver::NAME::Preferences** (where NAME is a solver name):
+  solver-specific user preference string used during dependency solving,
+  when the solver NAME is in use. Check solver-specific documentation
+  for what is supported here. Defaults to the empty string.
+
+- **Dir::Bin::Solvers**: absolute path of the directory where to look for
+  external solvers. Defaults to `/usr/lib/apt/solvers`.
+
+## Protocol
+
+When configured to use an external solver, APT will resort to it to
+decide which packages should be installed or removed.
+
+The interaction happens **in batch**: APT will invoke the external
+solver passing the current status of installed and available packages,
+as well as the user request to alter the set of installed packages. The
+external solver will compute a new complete set of installed packages
+and gives APT a "diff" listing of which *additional* packages should be
+installed and of which currently installed packages should be
+*removed*. (Note: the order in which those actions have to be performed
+will be up to APT to decide.)
+
+External solvers are invoked by executing them. Communications happens
+via the file descriptors: **stdin** (standard input) and **stdout**
+(standard output). stderr is not used by the EDSP protocol. Solvers can
+therefore use stderr to dump debugging information that could be
+inspected separately.
+
+After invocation, the protocol passes through a sequence of phases:
+
+1. APT invokes the external solver
+2. APT send to the solver a dependency solving **scenario**
+3. The solver solves dependencies. During this phase the solver may
+   send, repeatedly, **progress** information to APT.
+4. The solver sends back to APT an **answer**, i.e. either a *solution*
+   or an *error* report.
+5. The external solver exits
+
+
+### Scenario
+
+A scenario is a text file encoded in a format very similar to the "Deb
+822" format (AKA "the format used by Debian `Packages` files"). A
+scenario consists of two distinct parts: a **request** and a **package
+universe**, occurring in that order. The request consists of a single
+Deb 822 stanza, while the package universe consists of several such
+stanzas. All stanzas occurring in a scenario are separated by an empty
+line.
+
+
+#### Request
+
+Within a dependency solving scenario, a request represents the action on
+installed packages requested by the user.
+
+A request is a single Deb 822 stanza opened by a mandatory Request field
+and followed by a mixture of action and preference fields.
+
+The value of the **Request:** field is a string describing the EDSP
+protocol which will be used to communicate. At present, the string must
+be `EDSP 0.4`.
+
+a unique request identifier, such as an
+UUID. Request fields are mainly used to identify the beginning of a
+request stanza; their actual values are otherwise not used by the EDSP
+protocol.
+
+The following **action fields** are supported in request stanzas:
+
+- **Install:** (optional, defaults to the empty string) A space
+  separated list of package names, with *no version attached*, to
+  install. This field denotes a list of packages that the user wants to
+  install, usually via an APT `install` request.
+
+- **Remove:** (optional, defaults to the empty string) Same syntax of
+  Install. This field denotes a list of packages that the user wants to
+  remove, usually via APT `remove` or `purge` requests.
+
+- **Upgrade:** (optional, defaults to `no`). Allowed values: `yes`,
+  `no`. When set to `yes`, an upgrade of all installed packages has been
+  requested, usually via an APT `upgrade` request.
+
+- **Dist-Upgrade:** (optional, defaults to `no`). Allowed values: `yes`,
+  `no`. Same as Upgrade, but for APT `dist-upgrade` requests.
+
+- **Autoremove:** (optional, defaults to `no`). Allowed values: `yes`,
+  `no`. When set to `yes`, a clean up of unused automatically installed
+  packages has been requested, usually via an APT `autoremove` request.
+
+The following **preference fields** are supported in request stanzas:
+
+- **Strict-Pinning:** (optional, defaults to `yes`). Allowed values:
+  `yes`, `no`. When set to `yes`, APT pinning is strict, in the sense
+  that the solver must not propose to install packages which are not APT
+  candidates (see the `APT-Pin` and `APT-Candidate` fields in the
+  package universe). When set to `no`, the solver does only a best
+  effort attempt to install APT candidates. Usually, the value of this
+  field comes from the `APT::Solver::Strict-Pinning` configuration
+  option.
+
+- **Preferences:** a solver-specific optimization string, usually coming
+  from the `APT::Solver::Preferences` configuration option.
+
+
+#### Package universe
+
+A package universe is a list of Deb 822 stanzas, one per package, called
+**package stanzas**. Each package stanzas starts with a Package
+field. The following fields are supported in package stanzas:
+
+- All fields contained in the dpkg database, with the exception of
+  fields marked as "internal" (see the manpage `dpkg-query (1)`). Among
+  those fields, the following are mandatory for all package stanzas:
+  Package, Version, Architecture.
+  
+  It is recommended not to pass the Description field to external
+  solvers or, alternatively, to trim it to the short description only.
+
+- **Installed:** (optional, defaults to `no`). Allowed values: `yes`,
+  `no`. When set to `yes`, the corresponding package is currently
+  installed.
+  
+  Note: the Status field present in the dpkg database must not be passed
+  to the external solver, as it's an internal dpkg field. Installed and
+  other fields permit to encode the most relevant aspects of Status in
+  communications with solvers.
+
+- **Hold:** (optional, defaults to `no`). Allowed values: `yes`,
+  `no`. When set to `yes`, the corresponding package is marked as "on
+  hold" by dpkg.
+
+- **APT-ID:** (mandatory). Unique package identifier, according to APT.
+
+- **APT-Pin:** (mandatory). Must be an integer. Package pin value,
+  according to APT policy.
+
+- **APT-Candidate:** (optional, defaults to `no`). Allowed values:
+  `yes`, `no`. When set to `yes`, the corresponding package is the APT
+  candidate for installation among all available packages with the same
+  name.
+
+- **APT-Automatic:** (optional, defaults to `no`). Allowed values:
+  `yes`, `no`. When set to `yes`, the corresponding package is marked by
+  APT as automatic installed. Note that automatic installed packages
+  should be removed by the solver only when the Autoremove action is
+  requested (see Request section).
+
+### Answer
+
+An answer from the external solver to APT is either a *solution* or an
+*error*.
+
+The following invariant on **exit codes** must hold true. When the
+external solver is *able to find a solution*, it will write the solution
+to standard output and then exit with an exit code of 0. When the
+external solver is *unable to find a solution* (and s aware of that), it
+will write an error to standard output and then exit with an exit code
+of 0. An exit code other than 0 will be interpreted as a solver crash
+with no meaningful error about dependency resolution to convey to the
+user.
+
+
+#### Solution
+
+A solution is a list of Deb 822 stanzas. Each of them could be an
+install stanza (telling APT to install a specific package), a remove
+stanza (telling APT to remove one), or an autoremove stanza (telling APT
+about the *future* possibility of removing a package using the
+Autoremove action).
+
+An **install stanza** starts with an Install field and supports the
+following fields:
+
+- **Install:** (mandatory). The value is a package identifier,
+  referencing one of the package stanzas of the package universe via its
+  APT-ID field.
+
+- All fields supported by package stanzas.
+
+**Remove stanzas** are similar to install stanzas, but have **Remove**
+fields instead of Install fields.
+
+**Autoremove stanzas** are similar to install stanzas, but have
+**Autoremove** fields instead of Install fields. Autoremove stanzas
+should be output so that APT can inform the user of which packages they
+can now autoremove, as a consequence of the executed action. However,
+this protocol makes no assumption on the fact that a subsequent
+invocation of an Autoremove action will actually remove the very same
+packages indicated by Autoremove stanzas in the former solution.
+
+In terms of expressivity, install and remove stanzas can carry one
+single field each, as APT-IDs are enough to pinpoint packages to be
+installed/removed. Nonetheless, for protocol readability, it is
+recommended that solvers either add unconditionally the fields Package,
+Version, and Architecture to all install/remove stanzas or,
+alternatively, that they support a `--verbose` command line flag that
+explicitly enables the output of those fields in solutions.
+
+
+#### Error
+
+An error is a single Deb 822 stanza, starting the field Error. The
+following fields are supported in error stanzas:
+
+- **Error:** (mandatory). The value of this field is ignored, although
+  it should be a unique error identifier, such as a UUID.
+
+- **Message:** (mandatory). The value of this field is a text string,
+  meant to be read by humans, that explains the cause of the solver
+  error. Message fields might be multi-line, like the Description field
+  in the dpkg database. The first line conveys a short message, which
+  can be explained in more details using subsequent lines.
+
+
+### Progress
+
+During dependency solving, an external solver may send progress
+information to APT using **progress stanzas**. A progress stanza starts
+with the Progress field and might contain the following fields:
+
+- **Progress:** (mandatory). The value of this field is a date and time
+  timestamp, in RFC 2822 format. The timestamp provides a time
+  annotation for the progress report.
+
+- **Percentage:** (optional). An integer from 0 to 100, representing the
+  completion of the dependency solving process, as declared by the
+  solver.
+
+- **Message:** (optional). A textual message, meant to be read by the
+  APT user, telling what is going on within the dependency solving
+  (e.g. the current phase of dependency solving, as declared by the
+  solver).
+
+
+# Future extensions
+
+Potential future extensions to this protocol, listed in no specific
+order, include:
+
+- fixed error types to identify common failures across solvers and
+  enable APT to translate error messages
+- structured error data to explain failures in terms of packages and
+  dependencies
index 12a7515dd014681750a1182c4beb851c422b303e..364dce12f821361f22df78f81181c9777660254d 100644 (file)
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2011-07-05 13:23+0200\n"
+"POT-Creation-Date: 2011-06-08 16:54+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -928,7 +928,7 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
 #: apt-cache.8.xml:266
-msgid "madison <replaceable>/[ pkg(s) ]</replaceable>"
+msgid "madison <replaceable>[ pkg(s) ]</replaceable>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
@@ -967,7 +967,7 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:288 apt-ftparchive.1.xml:572 apt-get.8.xml:393 apt-sortpkgs.1.xml:61
+#: apt-cache.8.xml:288 apt-ftparchive.1.xml:571 apt-get.8.xml:393 apt-sortpkgs.1.xml:61
 msgid "<option>-s</option>"
 msgstr ""
 
@@ -987,12 +987,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>-q</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>--quiet</option>"
 msgstr ""
 
@@ -1067,7 +1067,7 @@ msgstr ""
 #: apt-cache.8.xml:317
 msgid ""
 "Per default the <literal>depends</literal> and <literal>rdepends</literal> "
-"print all dependencies. This can be tweaked with these flags which will omit "
+"print all dependencies. This can be twicked with these flags which will omit "
 "the specified dependency type.  Configuration Item: "
 "<literal>APT::Cache::Show<replaceable>DependencyType</replaceable></literal> "
 "e.g. <literal>APT::Cache::ShowRecommends</literal>."
@@ -1091,7 +1091,7 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:584
+#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:583
 msgid "<option>-a</option>"
 msgstr ""
 
@@ -1187,12 +1187,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist>
-#: apt-cache.8.xml:367 apt-cdrom.8.xml:153 apt-config.8.xml:101 apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:612 apt-get.8.xml:570 apt-mark.8.xml:140 apt-sortpkgs.1.xml:67
+#: apt-cache.8.xml:367 apt-cdrom.8.xml:153 apt-config.8.xml:101 apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:611 apt-get.8.xml:570 apt-mark.8.xml:140 apt-sortpkgs.1.xml:67
 msgid "&apt-commonoptions;"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:175 apt-mark.8.xml:144 apt.conf.5.xml:1093 apt_preferences.5.xml:697
+#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:172 apt-mark.8.xml:144 apt.conf.5.xml:1093 apt_preferences.5.xml:697
 msgid "Files"
 msgstr ""
 
@@ -1202,7 +1202,7 @@ msgid "&file-sourceslist; &file-statelists;"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cache.8.xml:379 apt-cdrom.8.xml:158 apt-config.8.xml:106 apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:628 apt-get.8.xml:585 apt-key.8.xml:196 apt-mark.8.xml:150 apt-secure.8.xml:185 apt-sortpkgs.1.xml:72 apt.conf.5.xml:1099 apt_preferences.5.xml:704 sources.list.5.xml:234
+#: apt-cache.8.xml:379 apt-cdrom.8.xml:158 apt-config.8.xml:106 apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:627 apt-get.8.xml:585 apt-key.8.xml:193 apt-mark.8.xml:150 apt-secure.8.xml:185 apt-sortpkgs.1.xml:72 apt.conf.5.xml:1099 apt_preferences.5.xml:704 sources.list.5.xml:234
 msgid "See Also"
 msgstr ""
 
@@ -1212,7 +1212,7 @@ msgid "&apt-conf;, &sources-list;, &apt-get;"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cache.8.xml:384 apt-cdrom.8.xml:163 apt-config.8.xml:111 apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:632 apt-get.8.xml:591 apt-mark.8.xml:154 apt-sortpkgs.1.xml:76
+#: apt-cache.8.xml:384 apt-cdrom.8.xml:163 apt-config.8.xml:111 apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:631 apt-get.8.xml:591 apt-mark.8.xml:154 apt-sortpkgs.1.xml:76
 msgid "Diagnostics"
 msgstr ""
 
@@ -1311,12 +1311,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cdrom.8.xml:94 apt-key.8.xml:161
+#: apt-cdrom.8.xml:94 apt-key.8.xml:158
 msgid "Options"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:540 apt-get.8.xml:345
+#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:539 apt-get.8.xml:345
 msgid "<option>-d</option>"
 msgstr ""
 
@@ -1519,7 +1519,7 @@ msgid "Just show the contents of the configuration space."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:629 apt-sortpkgs.1.xml:73
+#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:628 apt-sortpkgs.1.xml:73
 msgid "&apt-conf;"
 msgstr ""
 
@@ -2443,28 +2443,26 @@ msgid ""
 "Configuration Items: "
 "<literal>APT::FTPArchive::<replaceable>Checksum</replaceable></literal> and "
 "<literal>APT::FTPArchive::<replaceable>Index</replaceable>::<replaceable>Checksum</replaceable></literal> "
-"where <literal><replaceable>Index</replaceable></literal> can be "
-"<literal>Packages</literal>, <literal>Sources</literal> or "
-"<literal>Release</literal> and "
-"<literal><replaceable>Checksum</replaceable></literal> can be "
-"<literal>MD5</literal>, <literal>SHA1</literal> or "
-"<literal>SHA256</literal>."
+"where <literal>Index</literal> can be <literal>Packages</literal>, "
+"<literal>Sources</literal> or <literal>Release</literal> and "
+"<literal>Checksum</literal> can be <literal>MD5</literal>, "
+"<literal>SHA1</literal> or <literal>SHA256</literal>."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:540
+#: apt-ftparchive.1.xml:539
 msgid "<option>--db</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:542
+#: apt-ftparchive.1.xml:541
 msgid ""
 "Use a binary caching DB. This has no effect on the generate command.  "
 "Configuration Item: <literal>APT::FTPArchive::DB</literal>."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:548
+#: apt-ftparchive.1.xml:547
 msgid ""
 "Quiet; produces output suitable for logging, omitting progress indicators.  "
 "More q's will produce more quiet up to a maximum of 2. You can also use "
@@ -2473,12 +2471,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:554
+#: apt-ftparchive.1.xml:553
 msgid "<option>--delink</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:556
+#: apt-ftparchive.1.xml:555
 msgid ""
 "Perform Delinking. If the <literal>External-Links</literal> setting is used "
 "then this option actually enables delinking of the files. It defaults to on "
@@ -2487,12 +2485,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:562
+#: apt-ftparchive.1.xml:561
 msgid "<option>--contents</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:564
+#: apt-ftparchive.1.xml:563
 msgid ""
 "Perform contents generation. When this option is set and package indexes are "
 "being generated with a cache DB then the file listing will also be extracted "
@@ -2502,12 +2500,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:572
+#: apt-ftparchive.1.xml:571
 msgid "<option>--source-override</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:574
+#: apt-ftparchive.1.xml:573
 msgid ""
 "Select the source override file to use with the <literal>sources</literal> "
 "command.  Configuration Item: "
@@ -2515,24 +2513,24 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:578
+#: apt-ftparchive.1.xml:577
 msgid "<option>--readonly</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:580
+#: apt-ftparchive.1.xml:579
 msgid ""
 "Make the caching databases read only.  Configuration Item: "
 "<literal>APT::FTPArchive::ReadOnlyDB</literal>."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:584
+#: apt-ftparchive.1.xml:583
 msgid "<option>--arch</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:585
+#: apt-ftparchive.1.xml:584
 msgid ""
 "Accept in the <literal>packages</literal> and <literal>contents</literal> "
 "commands only package files matching <literal>*_arch.deb</literal> or "
@@ -2541,12 +2539,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:591
+#: apt-ftparchive.1.xml:590
 msgid "<option>APT::FTPArchive::AlwaysStat</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:593
+#: apt-ftparchive.1.xml:592
 msgid ""
 "&apt-ftparchive; caches as much as possible of metadata in a cachedb. If "
 "packages are recompiled and/or republished with the same version again, this "
@@ -2560,12 +2558,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:603
+#: apt-ftparchive.1.xml:602
 msgid "<option>APT::FTPArchive::LongDescription</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:605
+#: apt-ftparchive.1.xml:604
 msgid ""
 "This configuration option defaults to \"<literal>true</literal>\" and should "
 "only be set to <literal>\"false\"</literal> if the Archive generated with "
@@ -2575,12 +2573,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-ftparchive.1.xml:617 apt.conf.5.xml:1087 apt_preferences.5.xml:544 sources.list.5.xml:198
+#: apt-ftparchive.1.xml:616 apt.conf.5.xml:1087 apt_preferences.5.xml:544 sources.list.5.xml:198
 msgid "Examples"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para><programlisting>
-#: apt-ftparchive.1.xml:623
+#: apt-ftparchive.1.xml:622
 #, no-wrap
 msgid ""
 "<command>apt-ftparchive</command> packages "
@@ -2589,14 +2587,14 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:619
+#: apt-ftparchive.1.xml:618
 msgid ""
 "To create a compressed Packages file for a directory containing binary "
 "packages (.deb): <placeholder type=\"programlisting\" id=\"0\"/>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:633
+#: apt-ftparchive.1.xml:632
 msgid ""
 "<command>apt-ftparchive</command> returns zero on normal operation, decimal "
 "100 on error."
@@ -2924,7 +2922,7 @@ msgstr ""
 #: apt-get.8.xml:282
 msgid ""
 "<literal>download</literal> will download the given binary package into the "
-"current directory."
+"current directoy."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
@@ -3614,43 +3612,38 @@ msgstr ""
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-key.8.xml:131
 msgid ""
-"Update the local keyring with the archive keyring and remove from the local "
-"keyring the archive keys which are no longer valid.  The archive keyring is "
-"shipped in the <literal>archive-keyring</literal> package of your "
-"distribution, e.g. the <literal>debian-archive-keyring</literal> package in "
-"Debian."
+"Update the local keyring with the keyring of Debian archive keys and removes "
+"from the keyring the archive keys which are no longer valid."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:141
+#: apt-key.8.xml:140
 msgid "net-update"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:145
+#: apt-key.8.xml:144
 msgid ""
-"Work similar to the <command>update</command> command above, but get the "
-"archive keyring from an URI instead and validate it against a master key.  "
-"This requires an installed &wget; and an APT build configured to have a "
-"server to fetch from and a master keyring to validate.  APT in Debian does "
-"not support this command and relies on <command>update</command> instead, "
-"but Ubuntu's APT does."
+"Update the local keyring with the keys of a key server and removes from the "
+"keyring the archive keys which are no longer valid. This requires an "
+"installed wget and an APT build configured to have a server to fetch "
+"from. APT in Debian does not support this command, but Ubuntu's APT does."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:162
+#: apt-key.8.xml:159
 msgid ""
 "Note that options need to be defined before the commands described in the "
 "previous section."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:164
+#: apt-key.8.xml:161
 msgid "--keyring <replaceable>filename</replaceable>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:165
+#: apt-key.8.xml:162
 msgid ""
 "With this option it is possible to specify a specific keyring file the "
 "command should operate on. The default is that a command is executed on the "
@@ -3661,42 +3654,42 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist>
-#: apt-key.8.xml:178
+#: apt-key.8.xml:175
 msgid "&file-trustedgpg;"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:180
+#: apt-key.8.xml:177
 msgid "<filename>/etc/apt/trustdb.gpg</filename>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:181
+#: apt-key.8.xml:178
 msgid "Local trust database of archive keys."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:184
+#: apt-key.8.xml:181
 msgid "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:185
+#: apt-key.8.xml:182
 msgid "Keyring of Debian archive trusted keys."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:188
+#: apt-key.8.xml:185
 msgid "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:189
+#: apt-key.8.xml:186
 msgid "Keyring of Debian archive removed trusted keys."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:198
+#: apt-key.8.xml:195
 msgid "&apt-get;, &apt-secure;"
 msgstr ""
 
@@ -4206,10 +4199,10 @@ msgstr ""
 #: apt.conf.5.xml:52
 msgid ""
 "all files in <literal>Dir::Etc::Parts</literal> in alphanumeric ascending "
-"order which have either no or \"<literal>conf</literal>\" as filename "
-"extension and which only contain alphanumeric, hyphen (-), underscore (_) "
-"and period (.) characters.  Otherwise APT will print a notice that it has "
-"ignored a file if the file doesn't match a pattern in the "
+"order which have no or \"<literal>conf</literal>\" as filename extension and "
+"which only contain alphanumeric, hyphen (-), underscore (_) and period (.) "
+"characters.  Otherwise APT will print a notice that it has ignored a file if "
+"the file doesn't match a pattern in the "
 "<literal>Dir::Ignore-Files-Silently</literal> configuration list - in this "
 "case it will be silently ignored."
 msgstr ""
@@ -4917,7 +4910,7 @@ msgid ""
 "Note that at run time the "
 "<literal>Dir::Bin::<replaceable>Methodname</replaceable></literal> will be "
 "checked: If this setting exists the method will only be used if this file "
-"exists, e.g. for the bzip2 method (the inbuilt) setting is: <placeholder "
+"exists, e.g. for the bzip2 method (the inbuilt) setting is <placeholder "
 "type=\"literallayout\" id=\"0\"/> Note also that list entries specified on "
 "the command line will be added at the end of the list specified in the "
 "configuration files, but before the default entries. To prefer a type in "
@@ -4930,7 +4923,7 @@ msgstr ""
 #: apt.conf.5.xml:449
 msgid ""
 "The special type <literal>uncompressed</literal> can be used to give "
-"uncompressed files a preference, but note that most archives don't provide "
+"uncompressed files a preference, but note that most archives doesn't provide "
 "uncompressed files so this is mostly only useable for local mirrors."
 msgstr ""
 
@@ -5872,8 +5865,8 @@ msgstr ""
 msgid ""
 "Note that the files in the <filename>/etc/apt/preferences.d</filename> "
 "directory are parsed in alphanumeric ascending order and need to obey the "
-"following naming convention: The files have either no or "
-"\"<literal>pref</literal>\" as filename extension and only contain "
+"following naming convention: The files have no or "
+"\"<literal>pref</literal>\" as filename extension and which only contain "
 "alphanumeric, hyphen (-), underscore (_) and period (.) characters.  "
 "Otherwise APT will print a notice that it has ignored a file if the file "
 "doesn't match a pattern in the <literal>Dir::Ignore-Files-Silently</literal> "
@@ -6205,8 +6198,8 @@ msgid ""
 "APT also supports pinning by glob() expressions and regular expressions "
 "surrounded by /. For example, the following example assigns the priority 500 "
 "to all packages from experimental where the name starts with gnome (as a "
-"glob()-like expression) or contains the word kde (as a POSIX extended "
-"regular expression surrounded by slashes)."
+"glob()-like expression or contains the word kde (as a POSIX extended regular "
+"expression surrounded by slashes)."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><programlisting>
@@ -6222,7 +6215,7 @@ msgstr ""
 #: apt_preferences.5.xml:279
 msgid ""
 "The rule for those expressions is that they can occur anywhere where a "
-"string can occur. Thus, the following pin assigns the priority 990 to all "
+"string can occur. Those, the following pin assigns the priority 990 to all "
 "packages from a release starting with karmic."
 msgstr ""
 
index 006a3b5de4a88813779ea220d8682ac336034cb9..6261a470ec6fd92af379f7845ef44c65deb180f4 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt-doc 0.8.14-1\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2011-07-05 13:23+0200\n"
+"POT-Creation-Date: 2011-06-08 16:54+0300\n"
 "PO-Revision-Date: 2011-05-31 21:00+0100\n"
 "Last-Translator: Chris Leick <c.leick@vollbio.de>\n"
 "Language-Team: German <debian-l10n-german@lists.debian.org>\n"
@@ -1230,8 +1230,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
 #: apt-cache.8.xml:266
-msgid "madison <replaceable>/[ pkg(s) ]</replaceable>"
-msgstr "madison <replaceable>/[ Paket(e) ]</replaceable>"
+msgid "madison <replaceable>[ pkg(s) ]</replaceable>"
+msgstr "madison <replaceable>[ Paket(e) ]</replaceable>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-cache.8.xml:267
@@ -1282,7 +1282,7 @@ msgstr ""
 "pkgcache</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:288 apt-ftparchive.1.xml:572 apt-get.8.xml:393
+#: apt-cache.8.xml:288 apt-ftparchive.1.xml:571 apt-get.8.xml:393
 #: apt-sortpkgs.1.xml:61
 msgid "<option>-s</option>"
 msgstr "<option>-s</option>"
@@ -1310,12 +1310,12 @@ msgstr ""
 "srcpkgcache</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>-q</option>"
 msgstr "<option>-q</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>--quiet</option>"
 msgstr "<option>--quiet</option>"
 
@@ -1394,18 +1394,12 @@ msgstr "<option>--no-replaces</option>"
 msgid "<option>--no-enhances</option>"
 msgstr "<option>--no-enhances</option>"
 
+# FIXME s/twicked/tricked/
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-cache.8.xml:317
-#, fuzzy
-#| msgid ""
-#| "Per default the <literal>depends</literal> and <literal>rdepends</"
-#| "literal> print all dependencies. This can be twicked with these flags "
-#| "which will omit the specified dependency type.  Configuration Item: "
-#| "<literal>APT::Cache::Show<replaceable>DependencyType</replaceable></"
-#| "literal> e.g. <literal>APT::Cache::ShowRecommends</literal>."
 msgid ""
 "Per default the <literal>depends</literal> and <literal>rdepends</literal> "
-"print all dependencies. This can be tweaked with these flags which will omit "
+"print all dependencies. This can be twicked with these flags which will omit "
 "the specified dependency type.  Configuration Item: <literal>APT::Cache::"
 "Show<replaceable>DependencyType</replaceable></literal> e.g. <literal>APT::"
 "Cache::ShowRecommends</literal>."
@@ -1436,7 +1430,7 @@ msgstr ""
 "Konfigurationselement: <literal>APT::Cache::ShowFull</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:584
+#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:583
 msgid "<option>-a</option>"
 msgstr "<option>-a</option>"
 
@@ -1553,13 +1547,13 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist>
 #: apt-cache.8.xml:367 apt-cdrom.8.xml:153 apt-config.8.xml:101
-#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:612 apt-get.8.xml:570
+#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:611 apt-get.8.xml:570
 #: apt-mark.8.xml:140 apt-sortpkgs.1.xml:67
 msgid "&apt-commonoptions;"
 msgstr "&apt-commonoptions;"
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:175 apt-mark.8.xml:144
+#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:172 apt-mark.8.xml:144
 #: apt.conf.5.xml:1093 apt_preferences.5.xml:697
 msgid "Files"
 msgstr "Dateien"
@@ -1571,8 +1565,8 @@ msgstr "&file-sourceslist; &file-statelists;"
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:379 apt-cdrom.8.xml:158 apt-config.8.xml:106
-#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:628 apt-get.8.xml:585
-#: apt-key.8.xml:196 apt-mark.8.xml:150 apt-secure.8.xml:185
+#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:627 apt-get.8.xml:585
+#: apt-key.8.xml:193 apt-mark.8.xml:150 apt-secure.8.xml:185
 #: apt-sortpkgs.1.xml:72 apt.conf.5.xml:1099 apt_preferences.5.xml:704
 #: sources.list.5.xml:234
 msgid "See Also"
@@ -1585,7 +1579,7 @@ msgstr "&apt-conf;, &sources-list;, &apt-get;"
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:384 apt-cdrom.8.xml:163 apt-config.8.xml:111
-#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:632 apt-get.8.xml:591
+#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:631 apt-get.8.xml:591
 #: apt-mark.8.xml:154 apt-sortpkgs.1.xml:76
 msgid "Diagnostics"
 msgstr "Diagnose"
@@ -1715,12 +1709,12 @@ msgstr ""
 "<placeholder type=\"variablelist\" id=\"0\"/>"
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cdrom.8.xml:94 apt-key.8.xml:161
+#: apt-cdrom.8.xml:94 apt-key.8.xml:158
 msgid "Options"
 msgstr "Optionen"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:540 apt-get.8.xml:345
+#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:539 apt-get.8.xml:345
 msgid "<option>-d</option>"
 msgstr "<option>-d</option>"
 
@@ -1974,7 +1968,7 @@ msgid "Just show the contents of the configuration space."
 msgstr "Nur der Inhalt des Konfigurationsbereichs wird angezeigt."
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:629
+#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:628
 #: apt-sortpkgs.1.xml:73
 msgid "&apt-conf;"
 msgstr "&apt-conf;"
@@ -3139,6 +3133,7 @@ msgid ""
 msgstr ""
 "<option>--md5</option>, <option>--sha1</option>, <option>--sha256</option>"
 
+# FIXME <literal>Checksum</literal> im letzten Abschnitt <replaceable>?
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-ftparchive.1.xml:531
 msgid ""
@@ -3147,30 +3142,29 @@ msgid ""
 "Configuration Items: <literal>APT::FTPArchive::<replaceable>Checksum</"
 "replaceable></literal> and <literal>APT::FTPArchive::<replaceable>Index</"
 "replaceable>::<replaceable>Checksum</replaceable></literal> where "
-"<literal><replaceable>Index</replaceable></literal> can be "
-"<literal>Packages</literal>, <literal>Sources</literal> or <literal>Release</"
-"literal> and <literal><replaceable>Checksum</replaceable></literal> can be "
-"<literal>MD5</literal>, <literal>SHA1</literal> or <literal>SHA256</literal>."
+"<literal>Index</literal> can be <literal>Packages</literal>, "
+"<literal>Sources</literal> or <literal>Release</literal> and "
+"<literal>Checksum</literal> can be <literal>MD5</literal>, <literal>SHA1</"
+"literal> or <literal>SHA256</literal>."
 msgstr ""
 "erzeugt die vorgegebene Prüfsumme. Diese Optionen sind standardmäßig "
 "aktiviert. Wenn sie deaktiviert sind, werden die erzeugten Indexdateien nach "
 "Möglichkeit keine Prüfsummenfelder erhalten. Konfigurationselemente: "
 "<literal>APT::FTPArchive::<replaceable>Prüfsumme</replaceable></literal> und "
 "<literal>APT::FTPArchive::<replaceable>Index</replaceable>::"
-"<replaceable>Prüfsumme</replaceable></literal>, wobei "
-"<literal><replaceable>Index</replaceable></literal> <literal>Packages</"
-"literal>, <literal>Sources</literal> oder <literal>Release</literal> sein "
-"kann und <literal><replaceable>Prüfsumme</replaceable></literal> "
+"<replaceable>Prüfsumme</replaceable></literal>, wobei <literal>Index</"
+"literal> <literal>Packages</literal>, <literal>Sources</literal> oder "
+"<literal>Release</literal> sein kann und <literal>Checksum</literal> "
 "<literal>MD5</literal>, <literal>SHA1</literal> oder <literal>SHA256</"
 "literal> sein kann."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:540
+#: apt-ftparchive.1.xml:539
 msgid "<option>--db</option>"
 msgstr "<option>--db</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:542
+#: apt-ftparchive.1.xml:541
 msgid ""
 "Use a binary caching DB. This has no effect on the generate command.  "
 "Configuration Item: <literal>APT::FTPArchive::DB</literal>."
@@ -3180,7 +3174,7 @@ msgstr ""
 "DB</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:548
+#: apt-ftparchive.1.xml:547
 msgid ""
 "Quiet; produces output suitable for logging, omitting progress indicators.  "
 "More q's will produce more quiet up to a maximum of 2. You can also use "
@@ -3194,12 +3188,12 @@ msgstr ""
 "Konfigurationselement: <literal>quiet</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:554
+#: apt-ftparchive.1.xml:553
 msgid "<option>--delink</option>"
 msgstr "<option>--delink</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:556
+#: apt-ftparchive.1.xml:555
 msgid ""
 "Perform Delinking. If the <literal>External-Links</literal> setting is used "
 "then this option actually enables delinking of the files. It defaults to on "
@@ -3213,12 +3207,12 @@ msgstr ""
 "DeLinkAct</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:562
+#: apt-ftparchive.1.xml:561
 msgid "<option>--contents</option>"
 msgstr "<option>--contents</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:564
+#: apt-ftparchive.1.xml:563
 msgid ""
 "Perform contents generation. When this option is set and package indexes are "
 "being generated with a cache DB then the file listing will also be extracted "
@@ -3234,12 +3228,12 @@ msgstr ""
 "Konfigurationselement: <literal>APT::FTPArchive::Contents</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:572
+#: apt-ftparchive.1.xml:571
 msgid "<option>--source-override</option>"
 msgstr "<option>--source-override</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:574
+#: apt-ftparchive.1.xml:573
 msgid ""
 "Select the source override file to use with the <literal>sources</literal> "
 "command.  Configuration Item: <literal>APT::FTPArchive::SourceOverride</"
@@ -3250,12 +3244,12 @@ msgstr ""
 "SourceOverride</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:578
+#: apt-ftparchive.1.xml:577
 msgid "<option>--readonly</option>"
 msgstr "<option>--readonly</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:580
+#: apt-ftparchive.1.xml:579
 msgid ""
 "Make the caching databases read only.  Configuration Item: <literal>APT::"
 "FTPArchive::ReadOnlyDB</literal>."
@@ -3264,12 +3258,12 @@ msgstr ""
 "<literal>APT::FTPArchive::ReadOnlyDB</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:584
+#: apt-ftparchive.1.xml:583
 msgid "<option>--arch</option>"
 msgstr "<option>--arch</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:585
+#: apt-ftparchive.1.xml:584
 msgid ""
 "Accept in the <literal>packages</literal> and <literal>contents</literal> "
 "commands only package files matching <literal>*_arch.deb</literal> or "
@@ -3283,12 +3277,12 @@ msgstr ""
 "Architecture</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:591
+#: apt-ftparchive.1.xml:590
 msgid "<option>APT::FTPArchive::AlwaysStat</option>"
 msgstr "<option>APT::FTPArchive::AlwaysStat</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:593
+#: apt-ftparchive.1.xml:592
 msgid ""
 "&apt-ftparchive; caches as much as possible of metadata in a cachedb. If "
 "packages are recompiled and/or republished with the same version again, this "
@@ -3312,12 +3306,12 @@ msgstr ""
 "haben sollte und all diese zusätzlichen Prüfungen daher nutzlos sind."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:603
+#: apt-ftparchive.1.xml:602
 msgid "<option>APT::FTPArchive::LongDescription</option>"
 msgstr "<option>APT::FTPArchive::LongDescription</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:605
+#: apt-ftparchive.1.xml:604
 msgid ""
 "This configuration option defaults to \"<literal>true</literal>\" and should "
 "only be set to <literal>\"false\"</literal> if the Archive generated with "
@@ -3333,19 +3327,19 @@ msgstr ""
 "werden kann."
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-ftparchive.1.xml:617 apt.conf.5.xml:1087 apt_preferences.5.xml:544
+#: apt-ftparchive.1.xml:616 apt.conf.5.xml:1087 apt_preferences.5.xml:544
 #: sources.list.5.xml:198
 msgid "Examples"
 msgstr "Beispiele"
 
 #. type: Content of: <refentry><refsect1><para><programlisting>
-#: apt-ftparchive.1.xml:623
+#: apt-ftparchive.1.xml:622
 #, no-wrap
 msgid "<command>apt-ftparchive</command> packages <replaceable>directory</replaceable> | <command>gzip</command> > <filename>Packages.gz</filename>\n"
 msgstr "<command>apt-ftparchive</command> Pakete <replaceable>Verzeichnis</replaceable> | <command>gzip</command> > <filename>Pakete.gz</filename>\n"
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:619
+#: apt-ftparchive.1.xml:618
 msgid ""
 "To create a compressed Packages file for a directory containing binary "
 "packages (.deb): <placeholder type=\"programlisting\" id=\"0\"/>"
@@ -3355,7 +3349,7 @@ msgstr ""
 ">"
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:633
+#: apt-ftparchive.1.xml:632
 msgid ""
 "<command>apt-ftparchive</command> returns zero on normal operation, decimal "
 "100 on error."
@@ -3827,11 +3821,12 @@ msgstr ""
 msgid "download"
 msgstr "download"
 
+# FIXME s/directoy/directory/
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-get.8.xml:282
 msgid ""
 "<literal>download</literal> will download the given binary package into the "
-"current directory."
+"current directoy."
 msgstr ""
 "<literal>download</literal> wird das angegebene Binärpaket in das aktuelle "
 "Verzeichnis herunterladen."
@@ -4717,33 +4712,31 @@ msgstr ""
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-key.8.xml:131
 msgid ""
-"Update the local keyring with the archive keyring and remove from the local "
-"keyring the archive keys which are no longer valid.  The archive keyring is "
-"shipped in the <literal>archive-keyring</literal> package of your "
-"distribution, e.g. the <literal>debian-archive-keyring</literal> package in "
-"Debian."
+"Update the local keyring with the keyring of Debian archive keys and removes "
+"from the keyring the archive keys which are no longer valid."
 msgstr ""
+"Den lokalen Schlüsselbund mit dem Schlüsselbund der Debian-Archivschlüssel "
+"aktualisieren und aus dem Schlüsselbund die Archivschlüssel entfernen, die "
+"nicht länger gültig sind."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:141
+#: apt-key.8.xml:140
 #, fuzzy
 #| msgid "update"
 msgid "net-update"
 msgstr "update"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:145
+#: apt-key.8.xml:144
 msgid ""
-"Work similar to the <command>update</command> command above, but get the "
-"archive keyring from an URI instead and validate it against a master key.  "
-"This requires an installed &wget; and an APT build configured to have a "
-"server to fetch from and a master keyring to validate.  APT in Debian does "
-"not support this command and relies on <command>update</command> instead, "
-"but Ubuntu's APT does."
+"Update the local keyring with the keys of a key server and removes from the "
+"keyring the archive keys which are no longer valid. This requires an "
+"installed wget and an APT build configured to have a server to fetch from. "
+"APT in Debian does not support this command, but Ubuntu's APT does."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:162
+#: apt-key.8.xml:159
 msgid ""
 "Note that options need to be defined before the commands described in the "
 "previous section."
@@ -4752,12 +4745,12 @@ msgstr ""
 "Befehlen definiert sein müssen."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:164
+#: apt-key.8.xml:161
 msgid "--keyring <replaceable>filename</replaceable>"
 msgstr "--keyring <replaceable>Dateiname</replaceable>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:165
+#: apt-key.8.xml:162
 msgid ""
 "With this option it is possible to specify a specific keyring file the "
 "command should operate on. The default is that a command is executed on the "
@@ -4774,45 +4767,45 @@ msgstr ""
 "Schlüssel werden zu diesem hinzugefügt."
 
 #. type: Content of: <refentry><refsect1><variablelist>
-#: apt-key.8.xml:178
+#: apt-key.8.xml:175
 msgid "&file-trustedgpg;"
 msgstr "&file-trustedgpg;"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:180
+#: apt-key.8.xml:177
 msgid "<filename>/etc/apt/trustdb.gpg</filename>"
 msgstr "<filename>/etc/apt/trustdb.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:181
+#: apt-key.8.xml:178
 msgid "Local trust database of archive keys."
 msgstr "Lokale Datenbank vertrauenswürdiger Archivschlüssel."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:184
+#: apt-key.8.xml:181
 msgid "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 msgstr "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:185
+#: apt-key.8.xml:182
 msgid "Keyring of Debian archive trusted keys."
 msgstr "Schlüsselbund vertrauenswürdiger Schlüssel des Debian-Archivs."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:188
+#: apt-key.8.xml:185
 msgid ""
 "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
 msgstr ""
 "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:189
+#: apt-key.8.xml:186
 msgid "Keyring of Debian archive removed trusted keys."
 msgstr ""
 "Schlüsselbund entfernter vertrauenswürdiger Schlüssel des Debian-Archivs."
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:198
+#: apt-key.8.xml:195
 msgid "&apt-get;, &apt-secure;"
 msgstr "&apt-get;, &apt-secure;"
 
@@ -5521,25 +5514,16 @@ msgstr ""
 "die Datei, die durch die Umgebungsvariable <envar>APT_CONFIG</envar> "
 "angegeben wird (falls gesetzt)"
 
+# FIXME s/no or/no/
 #. type: Content of: <refentry><refsect1><orderedlist><listitem><para>
 #: apt.conf.5.xml:52
-#, fuzzy
-#| msgid ""
-#| "all files in <literal>Dir::Etc::Parts</literal> in alphanumeric ascending "
-#| "order which have no or \"<literal>conf</literal>\" as filename extension "
-#| "and which only contain alphanumeric, hyphen (-), underscore (_) and "
-#| "period (.) characters.  Otherwise APT will print a notice that it has "
-#| "ignored a file if the file doesn't match a pattern in the <literal>Dir::"
-#| "Ignore-Files-Silently</literal> configuration list - in this case it will "
-#| "be silently ignored."
 msgid ""
 "all files in <literal>Dir::Etc::Parts</literal> in alphanumeric ascending "
-"order which have either no or \"<literal>conf</literal>\" as filename "
-"extension and which only contain alphanumeric, hyphen (-), underscore (_) "
-"and period (.) characters.  Otherwise APT will print a notice that it has "
-"ignored a file if the file doesn't match a pattern in the <literal>Dir::"
-"Ignore-Files-Silently</literal> configuration list - in this case it will be "
-"silently ignored."
+"order which have no or \"<literal>conf</literal>\" as filename extension and "
+"which only contain alphanumeric, hyphen (-), underscore (_) and period (.) "
+"characters.  Otherwise APT will print a notice that it has ignored a file if "
+"the file doesn't match a pattern in the <literal>Dir::Ignore-Files-Silently</"
+"literal> configuration list - in this case it will be silently ignored."
 msgstr ""
 "alle Dateien in <literal>Dir::Etc::Parts</literal> in aufsteigender "
 "alphanumerischer Reihenfolge, die kein »<literal>conf</literal>« als "
@@ -6577,27 +6561,16 @@ msgstr ""
 msgid "Dir::Bin::bzip2 \"/bin/bzip2\";"
 msgstr "Dir::Bin::bzip2 \"/bin/bzip2\";"
 
+# FIXME s/> Note/>. Note/
 #. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:442
-#, fuzzy
-#| msgid ""
-#| "Note that at run time the <literal>Dir::Bin::<replaceable>Methodname</"
-#| "replaceable></literal> will be checked: If this setting exists the method "
-#| "will only be used if this file exists, e.g. for the bzip2 method (the "
-#| "inbuilt) setting is <placeholder type=\"literallayout\" id=\"0\"/> Note "
-#| "also that list entries specified on the command line will be added at the "
-#| "end of the list specified in the configuration files, but before the "
-#| "default entries. To prefer a type in this case over the ones specified in "
-#| "the configuration files you can set the option direct - not in list "
-#| "style.  This will not override the defined list, it will only prefix the "
-#| "list with this type."
 msgid ""
 "Note that at run time the <literal>Dir::Bin::<replaceable>Methodname</"
 "replaceable></literal> will be checked: If this setting exists the method "
 "will only be used if this file exists, e.g. for the bzip2 method (the "
-"inbuilt) setting is: <placeholder type=\"literallayout\" id=\"0\"/> Note "
-"also that list entries specified on the command line will be added at the "
-"end of the list specified in the configuration files, but before the default "
+"inbuilt) setting is <placeholder type=\"literallayout\" id=\"0\"/> Note also "
+"that list entries specified on the command line will be added at the end of "
+"the list specified in the configuration files, but before the default "
 "entries. To prefer a type in this case over the ones specified in the "
 "configuration files you can set the option direct - not in list style.  This "
 "will not override the defined list, it will only prefix the list with this "
@@ -6615,11 +6588,12 @@ msgstr ""
 "nicht im Listenstil. Dies wird die definierte Liste nicht überschreiben, es "
 "wird diesen Typ nur vor die Liste setzen."
 
+# FIXME: s/doesn't provide/don't provide/
 #. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:449
 msgid ""
 "The special type <literal>uncompressed</literal> can be used to give "
-"uncompressed files a preference, but note that most archives don't provide "
+"uncompressed files a preference, but note that most archives doesn't provide "
 "uncompressed files so this is mostly only useable for local mirrors."
 msgstr ""
 "Der besondere Typ <literal>uncompressed</literal> kann benutzt werden, um "
@@ -7904,21 +7878,11 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
 #: apt_preferences.5.xml:70
-#, fuzzy
-#| msgid ""
-#| "Note that the files in the <filename>/etc/apt/preferences.d</filename> "
-#| "directory are parsed in alphanumeric ascending order and need to obey the "
-#| "following naming convention: The files have no or \"<literal>pref</"
-#| "literal>\" as filename extension and which only contain alphanumeric, "
-#| "hyphen (-), underscore (_) and period (.) characters.  Otherwise APT will "
-#| "print a notice that it has ignored a file if the file doesn't match a "
-#| "pattern in the <literal>Dir::Ignore-Files-Silently</literal> "
-#| "configuration list - in this case it will be silently ignored."
 msgid ""
 "Note that the files in the <filename>/etc/apt/preferences.d</filename> "
 "directory are parsed in alphanumeric ascending order and need to obey the "
-"following naming convention: The files have either no or \"<literal>pref</"
-"literal>\" as filename extension and only contain alphanumeric, hyphen (-), "
+"following naming convention: The files have no or \"<literal>pref</literal>"
+"\" as filename extension and which only contain alphanumeric, hyphen (-), "
 "underscore (_) and period (.) characters.  Otherwise APT will print a notice "
 "that it has ignored a file if the file doesn't match a pattern in the "
 "<literal>Dir::Ignore-Files-Silently</literal> configuration list - in this "
@@ -8387,13 +8351,14 @@ msgstr ""
 msgid "Regular expressions and glob() syntax"
 msgstr "Reguläre Ausdrücke und glob()-Syntax"
 
+# FIXME: s/expression or/expression) or/
 #. type: Content of: <refentry><refsect1><refsect2><para>
 #: apt_preferences.5.xml:264
 msgid ""
 "APT also supports pinning by glob() expressions and regular expressions "
 "surrounded by /. For example, the following example assigns the priority 500 "
 "to all packages from experimental where the name starts with gnome (as a glob"
-"()-like expression) or contains the word kde (as a POSIX extended regular "
+"()-like expression or contains the word kde (as a POSIX extended regular "
 "expression surrounded by slashes)."
 msgstr ""
 "APT unterstützt außerdem Pinning mittels glob()-Ausdrücken und regulären "
@@ -8415,11 +8380,12 @@ msgstr ""
 "Pin: release n=experimental\n"
 "Pin-Priority: 500\n"
 
+# FIXME: s/Those/Thus/
 #. type: Content of: <refentry><refsect1><refsect2><para>
 #: apt_preferences.5.xml:279
 msgid ""
 "The rule for those expressions is that they can occur anywhere where a "
-"string can occur. Thus, the following pin assigns the priority 990 to all "
+"string can occur. Those, the following pin assigns the priority 990 to all "
 "packages from a release starting with karmic."
 msgstr ""
 "Die Regel für diese Ausdrücke ist, dass sie überall dort auftreten können, "
@@ -11255,14 +11221,6 @@ msgstr "  # apt-get -o dir::cache::archives=\"/Platte/\" dist-upgrade"
 msgid "Which will use the already fetched archives on the disc."
 msgstr "Es wird die bereits auf die Platte heruntergeladenen Archive benutzen."
 
-#~ msgid ""
-#~ "Update the local keyring with the keyring of Debian archive keys and "
-#~ "removes from the keyring the archive keys which are no longer valid."
-#~ msgstr ""
-#~ "Den lokalen Schlüsselbund mit dem Schlüsselbund der Debian-"
-#~ "Archivschlüssel aktualisieren und aus dem Schlüsselbund die "
-#~ "Archivschlüssel entfernen, die nicht länger gültig sind."
-
 #~ msgid "<option>--md5</option>"
 #~ msgstr "<option>--md5</option>"
 
index 62e6453cdc45b775e3b023d268d636ab738204c7..3a21eeecbbea99c6943d176e7f98cdf71318940c 100644 (file)
@@ -36,7 +36,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.7.25\n"
-"POT-Creation-Date: 2011-07-05 13:23+0200\n"
+"POT-Creation-Date: 2011-06-08 16:54+0300\n"
 "PO-Revision-Date: 2010-08-25 03:25+0200\n"
 "Last-Translator: Omar Campagne <ocampagne@gmail.com>\n"
 "Language-Team: Debian l10n Spanish <debian-l10n-spanish@lists.debian.org>\n"
@@ -1303,7 +1303,7 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
 #: apt-cache.8.xml:266
-msgid "madison <replaceable>/[ pkg(s) ]</replaceable>"
+msgid "madison <replaceable>[ pkg(s) ]</replaceable>"
 msgstr "madison <replaceable>[ paquete(s) ]</replaceable>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
@@ -1354,7 +1354,7 @@ msgstr ""
 "configuración: <literal>Dir::Cache::pkgcache</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:288 apt-ftparchive.1.xml:572 apt-get.8.xml:393
+#: apt-cache.8.xml:288 apt-ftparchive.1.xml:571 apt-get.8.xml:393
 #: apt-sortpkgs.1.xml:61
 msgid "<option>-s</option>"
 msgstr "<option>-s</option>"
@@ -1380,12 +1380,12 @@ msgstr ""
 "Opción de configuración: <literal>Dir::Cache::srcpkgcache</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>-q</option>"
 msgstr "<option>-q</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>--quiet</option>"
 msgstr "<option>--quiet</option>"
 
@@ -1466,16 +1466,9 @@ msgstr "<option>--no-enhances</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-cache.8.xml:317
-#, fuzzy
-#| msgid ""
-#| "Per default the <literal>depends</literal> and <literal>rdepends</"
-#| "literal> print all dependencies. This can be twicked with these flags "
-#| "which will omit the specified dependency type.  Configuration Item: "
-#| "<literal>APT::Cache::Show<replaceable>DependencyType</replaceable></"
-#| "literal> e.g. <literal>APT::Cache::ShowRecommends</literal>."
 msgid ""
 "Per default the <literal>depends</literal> and <literal>rdepends</literal> "
-"print all dependencies. This can be tweaked with these flags which will omit "
+"print all dependencies. This can be twicked with these flags which will omit "
 "the specified dependency type.  Configuration Item: <literal>APT::Cache::"
 "Show<replaceable>DependencyType</replaceable></literal> e.g. <literal>APT::"
 "Cache::ShowRecommends</literal>."
@@ -1507,7 +1500,7 @@ msgstr ""
 "Opción de configuración: <literal>APT::Cache::ShowFull</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:584
+#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:583
 msgid "<option>-a</option>"
 msgstr "<option>-a</option>"
 
@@ -1624,13 +1617,13 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist>
 #: apt-cache.8.xml:367 apt-cdrom.8.xml:153 apt-config.8.xml:101
-#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:612 apt-get.8.xml:570
+#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:611 apt-get.8.xml:570
 #: apt-mark.8.xml:140 apt-sortpkgs.1.xml:67
 msgid "&apt-commonoptions;"
 msgstr "&apt-commonoptions;"
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:175 apt-mark.8.xml:144
+#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:172 apt-mark.8.xml:144
 #: apt.conf.5.xml:1093 apt_preferences.5.xml:697
 msgid "Files"
 msgstr "Ficheros"
@@ -1642,8 +1635,8 @@ msgstr "&file-sourceslist; &file-statelists;"
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:379 apt-cdrom.8.xml:158 apt-config.8.xml:106
-#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:628 apt-get.8.xml:585
-#: apt-key.8.xml:196 apt-mark.8.xml:150 apt-secure.8.xml:185
+#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:627 apt-get.8.xml:585
+#: apt-key.8.xml:193 apt-mark.8.xml:150 apt-secure.8.xml:185
 #: apt-sortpkgs.1.xml:72 apt.conf.5.xml:1099 apt_preferences.5.xml:704
 #: sources.list.5.xml:234
 msgid "See Also"
@@ -1656,7 +1649,7 @@ msgstr "&apt-conf;, &sources-list;, &apt-get;"
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:384 apt-cdrom.8.xml:163 apt-config.8.xml:111
-#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:632 apt-get.8.xml:591
+#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:631 apt-get.8.xml:591
 #: apt-mark.8.xml:154 apt-sortpkgs.1.xml:76
 msgid "Diagnostics"
 msgstr "Diagnósticos"
@@ -1786,12 +1779,12 @@ msgstr ""
 "option>. <placeholder type=\"variablelist\" id=\"0\"/>"
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cdrom.8.xml:94 apt-key.8.xml:161
+#: apt-cdrom.8.xml:94 apt-key.8.xml:158
 msgid "Options"
 msgstr "Opciones"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:540 apt-get.8.xml:345
+#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:539 apt-get.8.xml:345
 msgid "<option>-d</option>"
 msgstr "<option>-d</option>"
 
@@ -2048,7 +2041,7 @@ msgid "Just show the contents of the configuration space."
 msgstr "Sólo muestra el contenido del espacio de configuración."
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:629
+#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:628
 #: apt-sortpkgs.1.xml:73
 msgid "&apt-conf;"
 msgstr "&apt-conf;"
@@ -3205,25 +3198,43 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-ftparchive.1.xml:531
+#, fuzzy
+#| msgid ""
+#| "Values for the additional metadata fields in the Release file are taken "
+#| "from the corresponding variables under <literal>APT::FTPArchive::Release</"
+#| "literal>, e.g. <literal>APT::FTPArchive::Release::Origin</literal>.  The "
+#| "supported fields are: <literal>Origin</literal>, <literal>Label</"
+#| "literal>, <literal>Suite</literal>, <literal>Version</literal>, "
+#| "<literal>Codename</literal>, <literal>Date</literal>, <literal>Valid-"
+#| "Until</literal>, <literal>Architectures</literal>, <literal>Components</"
+#| "literal>, <literal>Description</literal>."
 msgid ""
 "Generate the given checksum. These options default to on, when turned off "
 "the generated index files will not have the checksum fields where possible.  "
 "Configuration Items: <literal>APT::FTPArchive::<replaceable>Checksum</"
 "replaceable></literal> and <literal>APT::FTPArchive::<replaceable>Index</"
 "replaceable>::<replaceable>Checksum</replaceable></literal> where "
-"<literal><replaceable>Index</replaceable></literal> can be "
-"<literal>Packages</literal>, <literal>Sources</literal> or <literal>Release</"
-"literal> and <literal><replaceable>Checksum</replaceable></literal> can be "
-"<literal>MD5</literal>, <literal>SHA1</literal> or <literal>SHA256</literal>."
+"<literal>Index</literal> can be <literal>Packages</literal>, "
+"<literal>Sources</literal> or <literal>Release</literal> and "
+"<literal>Checksum</literal> can be <literal>MD5</literal>, <literal>SHA1</"
+"literal> or <literal>SHA256</literal>."
 msgstr ""
+"Los valores para los campos de metadatos adicionales en el fichero «Release» "
+"se toman de las variables correspondientes en <literal>APT::FTPArchive::"
+"Release</literal>, por ejemplo <literal>APT::FTPArchive::Release::Origin</"
+"literal>. Los campos permitidos son: <literal>Origin</literal>, "
+"<literal>Label</literal>, <literal>Suite</literal>, <literal>Version</"
+"literal>, <literal>Codename</literal>, <literal>Date</literal>, "
+"<literal>Valid-Until</literal>, <literal>Architectures</literal>, "
+"<literal>Components</literal> y <literal>Description</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:540
+#: apt-ftparchive.1.xml:539
 msgid "<option>--db</option>"
 msgstr "<option>--db</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:542
+#: apt-ftparchive.1.xml:541
 msgid ""
 "Use a binary caching DB. This has no effect on the generate command.  "
 "Configuration Item: <literal>APT::FTPArchive::DB</literal>."
@@ -3232,7 +3243,7 @@ msgstr ""
 "«generate». Opción de configuración: <literal>APT::FTPArchive::DB</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:548
+#: apt-ftparchive.1.xml:547
 msgid ""
 "Quiet; produces output suitable for logging, omitting progress indicators.  "
 "More q's will produce more quiet up to a maximum of 2. You can also use "
@@ -3246,12 +3257,12 @@ msgstr ""
 "configuración. Opción de configuración: <literal>quiet</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:554
+#: apt-ftparchive.1.xml:553
 msgid "<option>--delink</option>"
 msgstr "<option>--delink</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:556
+#: apt-ftparchive.1.xml:555
 msgid ""
 "Perform Delinking. If the <literal>External-Links</literal> setting is used "
 "then this option actually enables delinking of the files. It defaults to on "
@@ -3264,12 +3275,12 @@ msgstr ""
 "Opción de configuración: <literal>APT::FTPArchive::DeLinkAct</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:562
+#: apt-ftparchive.1.xml:561
 msgid "<option>--contents</option>"
 msgstr "<option>--contents</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:564
+#: apt-ftparchive.1.xml:563
 msgid ""
 "Perform contents generation. When this option is set and package indexes are "
 "being generated with a cache DB then the file listing will also be extracted "
@@ -3286,12 +3297,12 @@ msgstr ""
 "Contents</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:572
+#: apt-ftparchive.1.xml:571
 msgid "<option>--source-override</option>"
 msgstr "<option>--source-override</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:574
+#: apt-ftparchive.1.xml:573
 msgid ""
 "Select the source override file to use with the <literal>sources</literal> "
 "command.  Configuration Item: <literal>APT::FTPArchive::SourceOverride</"
@@ -3302,12 +3313,12 @@ msgstr ""
 "FTPArchive::SourceOverride</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:578
+#: apt-ftparchive.1.xml:577
 msgid "<option>--readonly</option>"
 msgstr "<option>--readonly</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:580
+#: apt-ftparchive.1.xml:579
 msgid ""
 "Make the caching databases read only.  Configuration Item: <literal>APT::"
 "FTPArchive::ReadOnlyDB</literal>."
@@ -3316,12 +3327,12 @@ msgstr ""
 "Opción de configuración: <literal>APT::FTPArchive::ReadOnlyDB</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:584
+#: apt-ftparchive.1.xml:583
 msgid "<option>--arch</option>"
 msgstr "<option>--arch</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:585
+#: apt-ftparchive.1.xml:584
 msgid ""
 "Accept in the <literal>packages</literal> and <literal>contents</literal> "
 "commands only package files matching <literal>*_arch.deb</literal> or "
@@ -3335,12 +3346,12 @@ msgstr ""
 "FTPArchive::Architecture</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:591
+#: apt-ftparchive.1.xml:590
 msgid "<option>APT::FTPArchive::AlwaysStat</option>"
 msgstr "<option>APT::FTPArchive::AlwaysStat</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:593
+#: apt-ftparchive.1.xml:592
 msgid ""
 "&apt-ftparchive; caches as much as possible of metadata in a cachedb. If "
 "packages are recompiled and/or republished with the same version again, this "
@@ -3364,12 +3375,12 @@ msgstr ""
 "comprobaciones adicionales son innecesarias."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:603
+#: apt-ftparchive.1.xml:602
 msgid "<option>APT::FTPArchive::LongDescription</option>"
 msgstr "<option>APT::FTPArchive::LongDescription</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:605
+#: apt-ftparchive.1.xml:604
 msgid ""
 "This configuration option defaults to \"<literal>true</literal>\" and should "
 "only be set to <literal>\"false\"</literal> if the Archive generated with "
@@ -3385,19 +3396,19 @@ msgstr ""
 "con la orden «generate»."
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-ftparchive.1.xml:617 apt.conf.5.xml:1087 apt_preferences.5.xml:544
+#: apt-ftparchive.1.xml:616 apt.conf.5.xml:1087 apt_preferences.5.xml:544
 #: sources.list.5.xml:198
 msgid "Examples"
 msgstr "Ejemplos"
 
 #. type: Content of: <refentry><refsect1><para><programlisting>
-#: apt-ftparchive.1.xml:623
+#: apt-ftparchive.1.xml:622
 #, no-wrap
 msgid "<command>apt-ftparchive</command> packages <replaceable>directory</replaceable> | <command>gzip</command> > <filename>Packages.gz</filename>\n"
 msgstr "<command>apt-ftparchive</command> packages <replaceable>directorio</replaceable> | <command>gzip</command> > <filename>Packages.gz</filename>\n"
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:619
+#: apt-ftparchive.1.xml:618
 msgid ""
 "To create a compressed Packages file for a directory containing binary "
 "packages (.deb): <placeholder type=\"programlisting\" id=\"0\"/>"
@@ -3406,7 +3417,7 @@ msgstr ""
 "paquetes binarios («.deb»): <placeholder type=\"programlisting\" id=\"0\"/>"
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:633
+#: apt-ftparchive.1.xml:632
 msgid ""
 "<command>apt-ftparchive</command> returns zero on normal operation, decimal "
 "100 on error."
@@ -3879,7 +3890,7 @@ msgstr ""
 #: apt-get.8.xml:282
 msgid ""
 "<literal>download</literal> will download the given binary package into the "
-"current directory."
+"current directoy."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
@@ -4754,33 +4765,30 @@ msgstr ""
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-key.8.xml:131
 msgid ""
-"Update the local keyring with the archive keyring and remove from the local "
-"keyring the archive keys which are no longer valid.  The archive keyring is "
-"shipped in the <literal>archive-keyring</literal> package of your "
-"distribution, e.g. the <literal>debian-archive-keyring</literal> package in "
-"Debian."
+"Update the local keyring with the keyring of Debian archive keys and removes "
+"from the keyring the archive keys which are no longer valid."
 msgstr ""
+"Actualiza el registro de claves local con el registro de claves del archivo "
+"Debian, y elimina del registro las claves del archivo que ya no son válidas."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:141
+#: apt-key.8.xml:140
 #, fuzzy
 #| msgid "update"
 msgid "net-update"
 msgstr "update"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:145
+#: apt-key.8.xml:144
 msgid ""
-"Work similar to the <command>update</command> command above, but get the "
-"archive keyring from an URI instead and validate it against a master key.  "
-"This requires an installed &wget; and an APT build configured to have a "
-"server to fetch from and a master keyring to validate.  APT in Debian does "
-"not support this command and relies on <command>update</command> instead, "
-"but Ubuntu's APT does."
+"Update the local keyring with the keys of a key server and removes from the "
+"keyring the archive keys which are no longer valid. This requires an "
+"installed wget and an APT build configured to have a server to fetch from. "
+"APT in Debian does not support this command, but Ubuntu's APT does."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:162
+#: apt-key.8.xml:159
 msgid ""
 "Note that options need to be defined before the commands described in the "
 "previous section."
@@ -4789,12 +4797,12 @@ msgstr ""
 "descritas en el sección anterior."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:164
+#: apt-key.8.xml:161
 msgid "--keyring <replaceable>filename</replaceable>"
 msgstr "--keyring <replaceable>nombre-de-fichero</replaceable>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:165
+#: apt-key.8.xml:162
 msgid ""
 "With this option it is possible to specify a specific keyring file the "
 "command should operate on. The default is that a command is executed on the "
@@ -4811,44 +4819,44 @@ msgstr ""
 "esto es, por ejemplo, que las claves nuevas se añaden a este fichero."
 
 #. type: Content of: <refentry><refsect1><variablelist>
-#: apt-key.8.xml:178
+#: apt-key.8.xml:175
 msgid "&file-trustedgpg;"
 msgstr "&file-trustedgpg;"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:180
+#: apt-key.8.xml:177
 msgid "<filename>/etc/apt/trustdb.gpg</filename>"
 msgstr "<filename>/etc/apt/trustdb.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:181
+#: apt-key.8.xml:178
 msgid "Local trust database of archive keys."
 msgstr "Base de datos local de las claves de confianza de archivos Debian"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:184
+#: apt-key.8.xml:181
 msgid "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 msgstr "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:185
+#: apt-key.8.xml:182
 msgid "Keyring of Debian archive trusted keys."
 msgstr "Registro de las claves de confianza del archivo de Debian."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:188
+#: apt-key.8.xml:185
 msgid ""
 "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
 msgstr ""
 "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:189
+#: apt-key.8.xml:186
 msgid "Keyring of Debian archive removed trusted keys."
 msgstr "Registro de las claves de confianza eliminadas del archivo de Debian."
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:198
+#: apt-key.8.xml:195
 msgid "&apt-get;, &apt-secure;"
 msgstr "&apt-get;, &apt-secure;"
 
@@ -5574,12 +5582,11 @@ msgstr ""
 #| "period (.) characters - otherwise they will be silently ignored."
 msgid ""
 "all files in <literal>Dir::Etc::Parts</literal> in alphanumeric ascending "
-"order which have either no or \"<literal>conf</literal>\" as filename "
-"extension and which only contain alphanumeric, hyphen (-), underscore (_) "
-"and period (.) characters.  Otherwise APT will print a notice that it has "
-"ignored a file if the file doesn't match a pattern in the <literal>Dir::"
-"Ignore-Files-Silently</literal> configuration list - in this case it will be "
-"silently ignored."
+"order which have no or \"<literal>conf</literal>\" as filename extension and "
+"which only contain alphanumeric, hyphen (-), underscore (_) and period (.) "
+"characters.  Otherwise APT will print a notice that it has ignored a file if "
+"the file doesn't match a pattern in the <literal>Dir::Ignore-Files-Silently</"
+"literal> configuration list - in this case it will be silently ignored."
 msgstr ""
 "Todos los ficheros en <literal>Dir::Etc::Parts</literal> en orden "
 "alfanumérico ascendente que no tienen extensión o la extensión "
@@ -6608,9 +6615,9 @@ msgid ""
 "Note that at run time the <literal>Dir::Bin::<replaceable>Methodname</"
 "replaceable></literal> will be checked: If this setting exists the method "
 "will only be used if this file exists, e.g. for the bzip2 method (the "
-"inbuilt) setting is: <placeholder type=\"literallayout\" id=\"0\"/> Note "
-"also that list entries specified on the command line will be added at the "
-"end of the list specified in the configuration files, but before the default "
+"inbuilt) setting is <placeholder type=\"literallayout\" id=\"0\"/> Note also "
+"that list entries specified on the command line will be added at the end of "
+"the list specified in the configuration files, but before the default "
 "entries. To prefer a type in this case over the ones specified in the "
 "configuration files you can set the option direct - not in list style.  This "
 "will not override the defined list, it will only prefix the list with this "
@@ -6632,7 +6639,7 @@ msgstr ""
 #: apt.conf.5.xml:449
 msgid ""
 "The special type <literal>uncompressed</literal> can be used to give "
-"uncompressed files a preference, but note that most archives don't provide "
+"uncompressed files a preference, but note that most archives doesn't provide "
 "uncompressed files so this is mostly only useable for local mirrors."
 msgstr ""
 
@@ -7925,8 +7932,8 @@ msgstr ""
 msgid ""
 "Note that the files in the <filename>/etc/apt/preferences.d</filename> "
 "directory are parsed in alphanumeric ascending order and need to obey the "
-"following naming convention: The files have either no or \"<literal>pref</"
-"literal>\" as filename extension and only contain alphanumeric, hyphen (-), "
+"following naming convention: The files have no or \"<literal>pref</literal>"
+"\" as filename extension and which only contain alphanumeric, hyphen (-), "
 "underscore (_) and period (.) characters.  Otherwise APT will print a notice "
 "that it has ignored a file if the file doesn't match a pattern in the "
 "<literal>Dir::Ignore-Files-Silently</literal> configuration list - in this "
@@ -8394,7 +8401,7 @@ msgid ""
 "APT also supports pinning by glob() expressions and regular expressions "
 "surrounded by /. For example, the following example assigns the priority 500 "
 "to all packages from experimental where the name starts with gnome (as a glob"
-"()-like expression) or contains the word kde (as a POSIX extended regular "
+"()-like expression or contains the word kde (as a POSIX extended regular "
 "expression surrounded by slashes)."
 msgstr ""
 
@@ -8418,7 +8425,7 @@ msgstr ""
 #: apt_preferences.5.xml:279
 msgid ""
 "The rule for those expressions is that they can occur anywhere where a "
-"string can occur. Thus, the following pin assigns the priority 990 to all "
+"string can occur. Those, the following pin assigns the priority 990 to all "
 "packages from a release starting with karmic."
 msgstr ""
 
@@ -11240,14 +11247,6 @@ msgstr "  # apt-get -o dir::cache::archives=\"/disc/\" dist-upgrade"
 msgid "Which will use the already fetched archives on the disc."
 msgstr "Ésto usará los archivos del disco previamente obtenidos."
 
-#~ msgid ""
-#~ "Update the local keyring with the keyring of Debian archive keys and "
-#~ "removes from the keyring the archive keys which are no longer valid."
-#~ msgstr ""
-#~ "Actualiza el registro de claves local con el registro de claves del "
-#~ "archivo Debian, y elimina del registro las claves del archivo que ya no "
-#~ "son válidas."
-
 #~ msgid "<option>--md5</option>"
 #~ msgstr "<option>--md5</option>"
 
index c21d4bdab4df34056fa5bbefb4f3123ecbcc0e79..e4a5e1694d2122651ef808412438852959ab3217 100644 (file)
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0200\n"
+"POT-Creation-Date: 2011-06-08 16:54+0300\n"
 "PO-Revision-Date: 2011-02-17 07:50+0100\n"
 "Last-Translator: Christian Perrier <bubulle@debian.org>\n"
 "Language-Team: French <debian-l10n-french@lists.debian.org>\n"
@@ -1225,7 +1225,7 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
 #: apt-cache.8.xml:266
-msgid "madison <replaceable>/[ pkg(s) ]</replaceable>"
+msgid "madison <replaceable>[ pkg(s) ]</replaceable>"
 msgstr "madison <replaceable>[ paquet(s) ]</replaceable>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
@@ -1277,7 +1277,7 @@ msgstr ""
 "<literal>Dir::Cache::pkgcache</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:288 apt-ftparchive.1.xml:572 apt-get.8.xml:393
+#: apt-cache.8.xml:288 apt-ftparchive.1.xml:571 apt-get.8.xml:393
 #: apt-sortpkgs.1.xml:61
 msgid "<option>-s</option>"
 msgstr "<option>-s</option>"
@@ -1304,12 +1304,12 @@ msgstr ""
 "<literal>Dir::Cache::srcpkgcache</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>-q</option>"
 msgstr "<option>-q</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>--quiet</option>"
 msgstr "<option>--quiet</option>"
 
@@ -1391,16 +1391,9 @@ msgstr "<option>--no-enhances</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-cache.8.xml:317
-#, fuzzy
-#| msgid ""
-#| "Per default the <literal>depends</literal> and <literal>rdepends</"
-#| "literal> print all dependencies. This can be twicked with these flags "
-#| "which will omit the specified dependency type.  Configuration Item: "
-#| "<literal>APT::Cache::Show<replaceable>DependencyType</replaceable></"
-#| "literal> e.g. <literal>APT::Cache::ShowRecommends</literal>."
 msgid ""
 "Per default the <literal>depends</literal> and <literal>rdepends</literal> "
-"print all dependencies. This can be tweaked with these flags which will omit "
+"print all dependencies. This can be twicked with these flags which will omit "
 "the specified dependency type.  Configuration Item: <literal>APT::Cache::"
 "Show<replaceable>DependencyType</replaceable></literal> e.g. <literal>APT::"
 "Cache::ShowRecommends</literal>."
@@ -1432,7 +1425,7 @@ msgstr ""
 "literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:584
+#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:583
 msgid "<option>-a</option>"
 msgstr "<option>-a</option>"
 
@@ -1552,13 +1545,13 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist>
 #: apt-cache.8.xml:367 apt-cdrom.8.xml:153 apt-config.8.xml:101
-#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:612 apt-get.8.xml:570
+#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:611 apt-get.8.xml:570
 #: apt-mark.8.xml:140 apt-sortpkgs.1.xml:67
 msgid "&apt-commonoptions;"
 msgstr "&apt-commonoptions;"
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:175 apt-mark.8.xml:144
+#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:172 apt-mark.8.xml:144
 #: apt.conf.5.xml:1093 apt_preferences.5.xml:697
 msgid "Files"
 msgstr "Fichiers"
@@ -1570,8 +1563,8 @@ msgstr "&file-sourceslist; &file-statelists;"
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:379 apt-cdrom.8.xml:158 apt-config.8.xml:106
-#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:628 apt-get.8.xml:585
-#: apt-key.8.xml:196 apt-mark.8.xml:150 apt-secure.8.xml:185
+#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:627 apt-get.8.xml:585
+#: apt-key.8.xml:193 apt-mark.8.xml:150 apt-secure.8.xml:185
 #: apt-sortpkgs.1.xml:72 apt.conf.5.xml:1099 apt_preferences.5.xml:704
 #: sources.list.5.xml:234
 msgid "See Also"
@@ -1584,7 +1577,7 @@ msgstr "&apt-conf;, &sources-list;, &apt-get;."
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:384 apt-cdrom.8.xml:163 apt-config.8.xml:111
-#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:632 apt-get.8.xml:591
+#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:631 apt-get.8.xml:591
 #: apt-mark.8.xml:154 apt-sortpkgs.1.xml:76
 msgid "Diagnostics"
 msgstr "Diagnostics"
@@ -1714,12 +1707,12 @@ msgstr ""
 "\"variablelist\" id=\"0\"/>"
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cdrom.8.xml:94 apt-key.8.xml:161
+#: apt-cdrom.8.xml:94 apt-key.8.xml:158
 msgid "Options"
 msgstr "Options"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:540 apt-get.8.xml:345
+#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:539 apt-get.8.xml:345
 msgid "<option>-d</option>"
 msgstr "<option>-d</option>"
 
@@ -1976,7 +1969,7 @@ msgid "Just show the contents of the configuration space."
 msgstr "Affiche seulement le contenu de l'espace de configuration."
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:629
+#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:628
 #: apt-sortpkgs.1.xml:73
 msgid "&apt-conf;"
 msgstr "&apt-conf;"
@@ -3133,25 +3126,43 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-ftparchive.1.xml:531
+#, fuzzy
+#| msgid ""
+#| "Values for the additional metadata fields in the Release file are taken "
+#| "from the corresponding variables under <literal>APT::FTPArchive::Release</"
+#| "literal>, e.g. <literal>APT::FTPArchive::Release::Origin</literal>.  The "
+#| "supported fields are: <literal>Origin</literal>, <literal>Label</"
+#| "literal>, <literal>Suite</literal>, <literal>Version</literal>, "
+#| "<literal>Codename</literal>, <literal>Date</literal>, <literal>Valid-"
+#| "Until</literal>, <literal>Architectures</literal>, <literal>Components</"
+#| "literal>, <literal>Description</literal>."
 msgid ""
 "Generate the given checksum. These options default to on, when turned off "
 "the generated index files will not have the checksum fields where possible.  "
 "Configuration Items: <literal>APT::FTPArchive::<replaceable>Checksum</"
 "replaceable></literal> and <literal>APT::FTPArchive::<replaceable>Index</"
 "replaceable>::<replaceable>Checksum</replaceable></literal> where "
-"<literal><replaceable>Index</replaceable></literal> can be "
-"<literal>Packages</literal>, <literal>Sources</literal> or <literal>Release</"
-"literal> and <literal><replaceable>Checksum</replaceable></literal> can be "
-"<literal>MD5</literal>, <literal>SHA1</literal> or <literal>SHA256</literal>."
+"<literal>Index</literal> can be <literal>Packages</literal>, "
+"<literal>Sources</literal> or <literal>Release</literal> and "
+"<literal>Checksum</literal> can be <literal>MD5</literal>, <literal>SHA1</"
+"literal> or <literal>SHA256</literal>."
 msgstr ""
+"La valeur des autres champs de métadonnées du fichier Release sont tirées de "
+"la valeur correspondante dans <literal>APT::FTPArchive::Release</literal>, "
+"p. ex. <literal>APT::FTPArchive::Release::Origin</literal>.  Les champs "
+"reconnus sont : <literal>Origin</literal>, <literal>Label</literal>, "
+"<literal>Suite</literal>, <literal>Version</literal>, <literal>Codename</"
+"literal>, <literal>Date</literal>, <literal>Valid-Until</literal>, "
+"<literal>Architectures</literal>, <literal>Components</literal>, "
+"<literal>Description</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:540
+#: apt-ftparchive.1.xml:539
 msgid "<option>--db</option>"
 msgstr "<option>--db</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:542
+#: apt-ftparchive.1.xml:541
 msgid ""
 "Use a binary caching DB. This has no effect on the generate command.  "
 "Configuration Item: <literal>APT::FTPArchive::DB</literal>."
@@ -3161,7 +3172,7 @@ msgstr ""
 "literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:548
+#: apt-ftparchive.1.xml:547
 msgid ""
 "Quiet; produces output suitable for logging, omitting progress indicators.  "
 "More q's will produce more quiet up to a maximum of 2. You can also use "
@@ -3176,12 +3187,12 @@ msgstr ""
 "configuration : <literal>quiet</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:554
+#: apt-ftparchive.1.xml:553
 msgid "<option>--delink</option>"
 msgstr "<option>--delink</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:556
+#: apt-ftparchive.1.xml:555
 msgid ""
 "Perform Delinking. If the <literal>External-Links</literal> setting is used "
 "then this option actually enables delinking of the files. It defaults to on "
@@ -3195,12 +3206,12 @@ msgstr ""
 "literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:562
+#: apt-ftparchive.1.xml:561
 msgid "<option>--contents</option>"
 msgstr "<option>--contents</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:564
+#: apt-ftparchive.1.xml:563
 msgid ""
 "Perform contents generation. When this option is set and package indexes are "
 "being generated with a cache DB then the file listing will also be extracted "
@@ -3216,12 +3227,12 @@ msgstr ""
 "de configuration : <literal>APT::FTPArchive::Contents</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:572
+#: apt-ftparchive.1.xml:571
 msgid "<option>--source-override</option>"
 msgstr "<option>--source-override</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:574
+#: apt-ftparchive.1.xml:573
 msgid ""
 "Select the source override file to use with the <literal>sources</literal> "
 "command.  Configuration Item: <literal>APT::FTPArchive::SourceOverride</"
@@ -3232,12 +3243,12 @@ msgstr ""
 "FTPArchive::SourceOverride</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:578
+#: apt-ftparchive.1.xml:577
 msgid "<option>--readonly</option>"
 msgstr "<option>--readonly</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:580
+#: apt-ftparchive.1.xml:579
 msgid ""
 "Make the caching databases read only.  Configuration Item: <literal>APT::"
 "FTPArchive::ReadOnlyDB</literal>."
@@ -3246,12 +3257,12 @@ msgstr ""
 "configuration : <literal>APT::FTPArchive::ReadOnlyDB</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:584
+#: apt-ftparchive.1.xml:583
 msgid "<option>--arch</option>"
 msgstr "<option>--arch</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:585
+#: apt-ftparchive.1.xml:584
 msgid ""
 "Accept in the <literal>packages</literal> and <literal>contents</literal> "
 "commands only package files matching <literal>*_arch.deb</literal> or "
@@ -3265,12 +3276,12 @@ msgstr ""
 "<literal>APT::FTPArchive::Architecture</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:591
+#: apt-ftparchive.1.xml:590
 msgid "<option>APT::FTPArchive::AlwaysStat</option>"
 msgstr "<option>APT::FTPArchive::AlwaysStat</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:593
+#: apt-ftparchive.1.xml:592
 msgid ""
 "&apt-ftparchive; caches as much as possible of metadata in a cachedb. If "
 "packages are recompiled and/or republished with the same version again, this "
@@ -3293,12 +3304,12 @@ msgstr ""
 "survenir et l'ensemble de ces contrôles devient inutile."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:603
+#: apt-ftparchive.1.xml:602
 msgid "<option>APT::FTPArchive::LongDescription</option>"
 msgstr "<option>APT::FTPArchive::LongDescription</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:605
+#: apt-ftparchive.1.xml:604
 msgid ""
 "This configuration option defaults to \"<literal>true</literal>\" and should "
 "only be set to <literal>\"false\"</literal> if the Archive generated with "
@@ -3314,19 +3325,19 @@ msgstr ""
 "generate."
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-ftparchive.1.xml:617 apt.conf.5.xml:1087 apt_preferences.5.xml:544
+#: apt-ftparchive.1.xml:616 apt.conf.5.xml:1087 apt_preferences.5.xml:544
 #: sources.list.5.xml:198
 msgid "Examples"
 msgstr "Exemples"
 
 #. type: Content of: <refentry><refsect1><para><programlisting>
-#: apt-ftparchive.1.xml:623
+#: apt-ftparchive.1.xml:622
 #, no-wrap
 msgid "<command>apt-ftparchive</command> packages <replaceable>directory</replaceable> | <command>gzip</command> > <filename>Packages.gz</filename>\n"
 msgstr "<command>apt-ftparchive</command> packages <replaceable>répertoire</replaceable> | <command>gzip</command> > <filename>Packages.gz</filename>\n"
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:619
+#: apt-ftparchive.1.xml:618
 msgid ""
 "To create a compressed Packages file for a directory containing binary "
 "packages (.deb): <placeholder type=\"programlisting\" id=\"0\"/>"
@@ -3335,7 +3346,7 @@ msgstr ""
 "des paquets binaires (.deb): <placeholder type=\"programlisting\" id=\"0\"/>"
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:633
+#: apt-ftparchive.1.xml:632
 msgid ""
 "<command>apt-ftparchive</command> returns zero on normal operation, decimal "
 "100 on error."
@@ -3811,7 +3822,7 @@ msgstr "download"
 #: apt-get.8.xml:282
 msgid ""
 "<literal>download</literal> will download the given binary package into the "
-"current directory."
+"current directoy."
 msgstr ""
 "<literal>download</literal> télécharge le fichier binaire indiqué dans le "
 "répertoire courant."
@@ -4692,33 +4703,30 @@ msgstr ""
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-key.8.xml:131
 msgid ""
-"Update the local keyring with the archive keyring and remove from the local "
-"keyring the archive keys which are no longer valid.  The archive keyring is "
-"shipped in the <literal>archive-keyring</literal> package of your "
-"distribution, e.g. the <literal>debian-archive-keyring</literal> package in "
-"Debian."
+"Update the local keyring with the keyring of Debian archive keys and removes "
+"from the keyring the archive keys which are no longer valid."
 msgstr ""
+"Mettre à jour le trousseau de clés local avec le trousseau de clés de "
+"l'archive Debian et supprimer les clés qui y sont périmées."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:141
+#: apt-key.8.xml:140
 #, fuzzy
 #| msgid "update"
 msgid "net-update"
 msgstr "update"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:145
+#: apt-key.8.xml:144
 msgid ""
-"Work similar to the <command>update</command> command above, but get the "
-"archive keyring from an URI instead and validate it against a master key.  "
-"This requires an installed &wget; and an APT build configured to have a "
-"server to fetch from and a master keyring to validate.  APT in Debian does "
-"not support this command and relies on <command>update</command> instead, "
-"but Ubuntu's APT does."
+"Update the local keyring with the keys of a key server and removes from the "
+"keyring the archive keys which are no longer valid. This requires an "
+"installed wget and an APT build configured to have a server to fetch from. "
+"APT in Debian does not support this command, but Ubuntu's APT does."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:162
+#: apt-key.8.xml:159
 msgid ""
 "Note that options need to be defined before the commands described in the "
 "previous section."
@@ -4727,12 +4735,12 @@ msgstr ""
 "décrites dans la section suivante."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:164
+#: apt-key.8.xml:161
 msgid "--keyring <replaceable>filename</replaceable>"
 msgstr "--keyring <replaceable>fichier</replaceable>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:165
+#: apt-key.8.xml:162
 msgid ""
 "With this option it is possible to specify a specific keyring file the "
 "command should operate on. The default is that a command is executed on the "
@@ -4749,44 +4757,44 @@ msgstr ""
 "les nouvelles clés y seront ajoutées."
 
 #. type: Content of: <refentry><refsect1><variablelist>
-#: apt-key.8.xml:178
+#: apt-key.8.xml:175
 msgid "&file-trustedgpg;"
 msgstr "&file-trustedgpg;"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:180
+#: apt-key.8.xml:177
 msgid "<filename>/etc/apt/trustdb.gpg</filename>"
 msgstr "<filename>/etc/apt/trustdb.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:181
+#: apt-key.8.xml:178
 msgid "Local trust database of archive keys."
 msgstr "Base de données locale de fiabilité des clés de l'archive."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:184
+#: apt-key.8.xml:181
 msgid "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 msgstr "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:185
+#: apt-key.8.xml:182
 msgid "Keyring of Debian archive trusted keys."
 msgstr "Trousseau des clés fiables de l'archive Debian."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:188
+#: apt-key.8.xml:185
 msgid ""
 "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
 msgstr ""
 "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:189
+#: apt-key.8.xml:186
 msgid "Keyring of Debian archive removed trusted keys."
 msgstr "Trousseau des clés fiables supprimées de l'archive Debian."
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:198
+#: apt-key.8.xml:195
 msgid "&apt-get;, &apt-secure;"
 msgstr "&apt-get;, &apt-secure;"
 
@@ -5489,23 +5497,13 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><orderedlist><listitem><para>
 #: apt.conf.5.xml:52
-#, fuzzy
-#| msgid ""
-#| "all files in <literal>Dir::Etc::Parts</literal> in alphanumeric ascending "
-#| "order which have no or \"<literal>conf</literal>\" as filename extension "
-#| "and which only contain alphanumeric, hyphen (-), underscore (_) and "
-#| "period (.) characters.  Otherwise APT will print a notice that it has "
-#| "ignored a file if the file doesn't match a pattern in the <literal>Dir::"
-#| "Ignore-Files-Silently</literal> configuration list - in this case it will "
-#| "be silently ignored."
 msgid ""
 "all files in <literal>Dir::Etc::Parts</literal> in alphanumeric ascending "
-"order which have either no or \"<literal>conf</literal>\" as filename "
-"extension and which only contain alphanumeric, hyphen (-), underscore (_) "
-"and period (.) characters.  Otherwise APT will print a notice that it has "
-"ignored a file if the file doesn't match a pattern in the <literal>Dir::"
-"Ignore-Files-Silently</literal> configuration list - in this case it will be "
-"silently ignored."
+"order which have no or \"<literal>conf</literal>\" as filename extension and "
+"which only contain alphanumeric, hyphen (-), underscore (_) and period (.) "
+"characters.  Otherwise APT will print a notice that it has ignored a file if "
+"the file doesn't match a pattern in the <literal>Dir::Ignore-Files-Silently</"
+"literal> configuration list - in this case it will be silently ignored."
 msgstr ""
 "tous les fichiers de <literal>Dir::Etc::Parts</literal> dans l'ordre "
 "alphanumérique ascendant qui ont soit l'extension \"<literal>conf</literal>"
@@ -6541,25 +6539,13 @@ msgstr "Dir::Bin::bzip2 \"/bin/bzip2\";"
 
 #. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:442
-#, fuzzy
-#| msgid ""
-#| "Note that at run time the <literal>Dir::Bin::<replaceable>Methodname</"
-#| "replaceable></literal> will be checked: If this setting exists the method "
-#| "will only be used if this file exists, e.g. for the bzip2 method (the "
-#| "inbuilt) setting is <placeholder type=\"literallayout\" id=\"0\"/> Note "
-#| "also that list entries specified on the command line will be added at the "
-#| "end of the list specified in the configuration files, but before the "
-#| "default entries. To prefer a type in this case over the ones specified in "
-#| "the configuration files you can set the option direct - not in list "
-#| "style.  This will not override the defined list, it will only prefix the "
-#| "list with this type."
 msgid ""
 "Note that at run time the <literal>Dir::Bin::<replaceable>Methodname</"
 "replaceable></literal> will be checked: If this setting exists the method "
 "will only be used if this file exists, e.g. for the bzip2 method (the "
-"inbuilt) setting is: <placeholder type=\"literallayout\" id=\"0\"/> Note "
-"also that list entries specified on the command line will be added at the "
-"end of the list specified in the configuration files, but before the default "
+"inbuilt) setting is <placeholder type=\"literallayout\" id=\"0\"/> Note also "
+"that list entries specified on the command line will be added at the end of "
+"the list specified in the configuration files, but before the default "
 "entries. To prefer a type in this case over the ones specified in the "
 "configuration files you can set the option direct - not in list style.  This "
 "will not override the defined list, it will only prefix the list with this "
@@ -6581,7 +6567,7 @@ msgstr ""
 #: apt.conf.5.xml:449
 msgid ""
 "The special type <literal>uncompressed</literal> can be used to give "
-"uncompressed files a preference, but note that most archives don't provide "
+"uncompressed files a preference, but note that most archives doesn't provide "
 "uncompressed files so this is mostly only useable for local mirrors."
 msgstr ""
 "Le type spécial <literal>uncompressed</literal> peut servir à donner la "
@@ -7869,21 +7855,11 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
 #: apt_preferences.5.xml:70
-#, fuzzy
-#| msgid ""
-#| "Note that the files in the <filename>/etc/apt/preferences.d</filename> "
-#| "directory are parsed in alphanumeric ascending order and need to obey the "
-#| "following naming convention: The files have no or \"<literal>pref</"
-#| "literal>\" as filename extension and which only contain alphanumeric, "
-#| "hyphen (-), underscore (_) and period (.) characters.  Otherwise APT will "
-#| "print a notice that it has ignored a file if the file doesn't match a "
-#| "pattern in the <literal>Dir::Ignore-Files-Silently</literal> "
-#| "configuration list - in this case it will be silently ignored."
 msgid ""
 "Note that the files in the <filename>/etc/apt/preferences.d</filename> "
 "directory are parsed in alphanumeric ascending order and need to obey the "
-"following naming convention: The files have either no or \"<literal>pref</"
-"literal>\" as filename extension and only contain alphanumeric, hyphen (-), "
+"following naming convention: The files have no or \"<literal>pref</literal>"
+"\" as filename extension and which only contain alphanumeric, hyphen (-), "
 "underscore (_) and period (.) characters.  Otherwise APT will print a notice "
 "that it has ignored a file if the file doesn't match a pattern in the "
 "<literal>Dir::Ignore-Files-Silently</literal> configuration list - in this "
@@ -8349,7 +8325,7 @@ msgid ""
 "APT also supports pinning by glob() expressions and regular expressions "
 "surrounded by /. For example, the following example assigns the priority 500 "
 "to all packages from experimental where the name starts with gnome (as a glob"
-"()-like expression) or contains the word kde (as a POSIX extended regular "
+"()-like expression or contains the word kde (as a POSIX extended regular "
 "expression surrounded by slashes)."
 msgstr ""
 
@@ -8373,7 +8349,7 @@ msgstr ""
 #: apt_preferences.5.xml:279
 msgid ""
 "The rule for those expressions is that they can occur anywhere where a "
-"string can occur. Thus, the following pin assigns the priority 990 to all "
+"string can occur. Those, the following pin assigns the priority 990 to all "
 "packages from a release starting with karmic."
 msgstr ""
 
@@ -11209,13 +11185,6 @@ msgstr "  # apt-get -o dir::cache::archives=\"/disc/\" dist-upgrade"
 msgid "Which will use the already fetched archives on the disc."
 msgstr "Cette commande utilisera les fichiers récupérés sur le disque."
 
-#~ msgid ""
-#~ "Update the local keyring with the keyring of Debian archive keys and "
-#~ "removes from the keyring the archive keys which are no longer valid."
-#~ msgstr ""
-#~ "Mettre à jour le trousseau de clés local avec le trousseau de clés de "
-#~ "l'archive Debian et supprimer les clés qui y sont périmées."
-
 #~ msgid "<option>--md5</option>"
 #~ msgstr "<option>--md5</option>"
 
index c3efc5da73e2c4837b8fd56e66d31614d6b150fb..4571690e1c107d1d1952cc17d5c1abc4c4eaa5b5 100644 (file)
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0200\n"
+"POT-Creation-Date: 2011-06-08 16:54+0300\n"
 "PO-Revision-Date: 2003-04-26 23:26+0100\n"
 "Last-Translator: Traduzione di Eugenia Franzoni <eugenia@linuxcare.com>\n"
 "Language-Team: <debian-l10n-italian@lists.debian.org>\n"
@@ -893,7 +893,7 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
 #: apt-cache.8.xml:266
-msgid "madison <replaceable>/[ pkg(s) ]</replaceable>"
+msgid "madison <replaceable>[ pkg(s) ]</replaceable>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
@@ -934,7 +934,7 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:288 apt-ftparchive.1.xml:572 apt-get.8.xml:393
+#: apt-cache.8.xml:288 apt-ftparchive.1.xml:571 apt-get.8.xml:393
 #: apt-sortpkgs.1.xml:61
 msgid "<option>-s</option>"
 msgstr ""
@@ -955,12 +955,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>-q</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>--quiet</option>"
 msgstr ""
 
@@ -1035,7 +1035,7 @@ msgstr ""
 #: apt-cache.8.xml:317
 msgid ""
 "Per default the <literal>depends</literal> and <literal>rdepends</literal> "
-"print all dependencies. This can be tweaked with these flags which will omit "
+"print all dependencies. This can be twicked with these flags which will omit "
 "the specified dependency type.  Configuration Item: <literal>APT::Cache::"
 "Show<replaceable>DependencyType</replaceable></literal> e.g. <literal>APT::"
 "Cache::ShowRecommends</literal>."
@@ -1059,7 +1059,7 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:584
+#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:583
 msgid "<option>-a</option>"
 msgstr ""
 
@@ -1155,13 +1155,13 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist>
 #: apt-cache.8.xml:367 apt-cdrom.8.xml:153 apt-config.8.xml:101
-#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:612 apt-get.8.xml:570
+#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:611 apt-get.8.xml:570
 #: apt-mark.8.xml:140 apt-sortpkgs.1.xml:67
 msgid "&apt-commonoptions;"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:175 apt-mark.8.xml:144
+#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:172 apt-mark.8.xml:144
 #: apt.conf.5.xml:1093 apt_preferences.5.xml:697
 msgid "Files"
 msgstr ""
@@ -1173,8 +1173,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:379 apt-cdrom.8.xml:158 apt-config.8.xml:106
-#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:628 apt-get.8.xml:585
-#: apt-key.8.xml:196 apt-mark.8.xml:150 apt-secure.8.xml:185
+#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:627 apt-get.8.xml:585
+#: apt-key.8.xml:193 apt-mark.8.xml:150 apt-secure.8.xml:185
 #: apt-sortpkgs.1.xml:72 apt.conf.5.xml:1099 apt_preferences.5.xml:704
 #: sources.list.5.xml:234
 msgid "See Also"
@@ -1187,7 +1187,7 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:384 apt-cdrom.8.xml:163 apt-config.8.xml:111
-#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:632 apt-get.8.xml:591
+#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:631 apt-get.8.xml:591
 #: apt-mark.8.xml:154 apt-sortpkgs.1.xml:76
 msgid "Diagnostics"
 msgstr ""
@@ -1287,12 +1287,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cdrom.8.xml:94 apt-key.8.xml:161
+#: apt-cdrom.8.xml:94 apt-key.8.xml:158
 msgid "Options"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:540 apt-get.8.xml:345
+#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:539 apt-get.8.xml:345
 msgid "<option>-d</option>"
 msgstr ""
 
@@ -1496,7 +1496,7 @@ msgid "Just show the contents of the configuration space."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:629
+#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:628
 #: apt-sortpkgs.1.xml:73
 msgid "&apt-conf;"
 msgstr ""
@@ -2419,26 +2419,26 @@ msgid ""
 "Configuration Items: <literal>APT::FTPArchive::<replaceable>Checksum</"
 "replaceable></literal> and <literal>APT::FTPArchive::<replaceable>Index</"
 "replaceable>::<replaceable>Checksum</replaceable></literal> where "
-"<literal><replaceable>Index</replaceable></literal> can be "
-"<literal>Packages</literal>, <literal>Sources</literal> or <literal>Release</"
-"literal> and <literal><replaceable>Checksum</replaceable></literal> can be "
-"<literal>MD5</literal>, <literal>SHA1</literal> or <literal>SHA256</literal>."
+"<literal>Index</literal> can be <literal>Packages</literal>, "
+"<literal>Sources</literal> or <literal>Release</literal> and "
+"<literal>Checksum</literal> can be <literal>MD5</literal>, <literal>SHA1</"
+"literal> or <literal>SHA256</literal>."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:540
+#: apt-ftparchive.1.xml:539
 msgid "<option>--db</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:542
+#: apt-ftparchive.1.xml:541
 msgid ""
 "Use a binary caching DB. This has no effect on the generate command.  "
 "Configuration Item: <literal>APT::FTPArchive::DB</literal>."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:548
+#: apt-ftparchive.1.xml:547
 msgid ""
 "Quiet; produces output suitable for logging, omitting progress indicators.  "
 "More q's will produce more quiet up to a maximum of 2. You can also use "
@@ -2447,12 +2447,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:554
+#: apt-ftparchive.1.xml:553
 msgid "<option>--delink</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:556
+#: apt-ftparchive.1.xml:555
 msgid ""
 "Perform Delinking. If the <literal>External-Links</literal> setting is used "
 "then this option actually enables delinking of the files. It defaults to on "
@@ -2461,12 +2461,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:562
+#: apt-ftparchive.1.xml:561
 msgid "<option>--contents</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:564
+#: apt-ftparchive.1.xml:563
 msgid ""
 "Perform contents generation. When this option is set and package indexes are "
 "being generated with a cache DB then the file listing will also be extracted "
@@ -2476,12 +2476,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:572
+#: apt-ftparchive.1.xml:571
 msgid "<option>--source-override</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:574
+#: apt-ftparchive.1.xml:573
 msgid ""
 "Select the source override file to use with the <literal>sources</literal> "
 "command.  Configuration Item: <literal>APT::FTPArchive::SourceOverride</"
@@ -2489,24 +2489,24 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:578
+#: apt-ftparchive.1.xml:577
 msgid "<option>--readonly</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:580
+#: apt-ftparchive.1.xml:579
 msgid ""
 "Make the caching databases read only.  Configuration Item: <literal>APT::"
 "FTPArchive::ReadOnlyDB</literal>."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:584
+#: apt-ftparchive.1.xml:583
 msgid "<option>--arch</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:585
+#: apt-ftparchive.1.xml:584
 msgid ""
 "Accept in the <literal>packages</literal> and <literal>contents</literal> "
 "commands only package files matching <literal>*_arch.deb</literal> or "
@@ -2515,12 +2515,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:591
+#: apt-ftparchive.1.xml:590
 msgid "<option>APT::FTPArchive::AlwaysStat</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:593
+#: apt-ftparchive.1.xml:592
 msgid ""
 "&apt-ftparchive; caches as much as possible of metadata in a cachedb. If "
 "packages are recompiled and/or republished with the same version again, this "
@@ -2534,12 +2534,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:603
+#: apt-ftparchive.1.xml:602
 msgid "<option>APT::FTPArchive::LongDescription</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:605
+#: apt-ftparchive.1.xml:604
 msgid ""
 "This configuration option defaults to \"<literal>true</literal>\" and should "
 "only be set to <literal>\"false\"</literal> if the Archive generated with "
@@ -2549,26 +2549,26 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-ftparchive.1.xml:617 apt.conf.5.xml:1087 apt_preferences.5.xml:544
+#: apt-ftparchive.1.xml:616 apt.conf.5.xml:1087 apt_preferences.5.xml:544
 #: sources.list.5.xml:198
 msgid "Examples"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para><programlisting>
-#: apt-ftparchive.1.xml:623
+#: apt-ftparchive.1.xml:622
 #, no-wrap
 msgid "<command>apt-ftparchive</command> packages <replaceable>directory</replaceable> | <command>gzip</command> > <filename>Packages.gz</filename>\n"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:619
+#: apt-ftparchive.1.xml:618
 msgid ""
 "To create a compressed Packages file for a directory containing binary "
 "packages (.deb): <placeholder type=\"programlisting\" id=\"0\"/>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:633
+#: apt-ftparchive.1.xml:632
 msgid ""
 "<command>apt-ftparchive</command> returns zero on normal operation, decimal "
 "100 on error."
@@ -2897,7 +2897,7 @@ msgstr ""
 #: apt-get.8.xml:282
 msgid ""
 "<literal>download</literal> will download the given binary package into the "
-"current directory."
+"current directoy."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
@@ -3582,44 +3582,39 @@ msgstr ""
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-key.8.xml:131
 msgid ""
-"Update the local keyring with the archive keyring and remove from the local "
-"keyring the archive keys which are no longer valid.  The archive keyring is "
-"shipped in the <literal>archive-keyring</literal> package of your "
-"distribution, e.g. the <literal>debian-archive-keyring</literal> package in "
-"Debian."
+"Update the local keyring with the keyring of Debian archive keys and removes "
+"from the keyring the archive keys which are no longer valid."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:141
+#: apt-key.8.xml:140
 #, fuzzy
 msgid "net-update"
 msgstr "upgrade"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:145
+#: apt-key.8.xml:144
 msgid ""
-"Work similar to the <command>update</command> command above, but get the "
-"archive keyring from an URI instead and validate it against a master key.  "
-"This requires an installed &wget; and an APT build configured to have a "
-"server to fetch from and a master keyring to validate.  APT in Debian does "
-"not support this command and relies on <command>update</command> instead, "
-"but Ubuntu's APT does."
+"Update the local keyring with the keys of a key server and removes from the "
+"keyring the archive keys which are no longer valid. This requires an "
+"installed wget and an APT build configured to have a server to fetch from. "
+"APT in Debian does not support this command, but Ubuntu's APT does."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:162
+#: apt-key.8.xml:159
 msgid ""
 "Note that options need to be defined before the commands described in the "
 "previous section."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:164
+#: apt-key.8.xml:161
 msgid "--keyring <replaceable>filename</replaceable>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:165
+#: apt-key.8.xml:162
 msgid ""
 "With this option it is possible to specify a specific keyring file the "
 "command should operate on. The default is that a command is executed on the "
@@ -3630,43 +3625,43 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist>
-#: apt-key.8.xml:178
+#: apt-key.8.xml:175
 msgid "&file-trustedgpg;"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:180
+#: apt-key.8.xml:177
 msgid "<filename>/etc/apt/trustdb.gpg</filename>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:181
+#: apt-key.8.xml:178
 msgid "Local trust database of archive keys."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:184
+#: apt-key.8.xml:181
 msgid "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:185
+#: apt-key.8.xml:182
 msgid "Keyring of Debian archive trusted keys."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:188
+#: apt-key.8.xml:185
 msgid ""
 "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:189
+#: apt-key.8.xml:186
 msgid "Keyring of Debian archive removed trusted keys."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:198
+#: apt-key.8.xml:195
 msgid "&apt-get;, &apt-secure;"
 msgstr ""
 
@@ -4179,12 +4174,11 @@ msgstr ""
 #: apt.conf.5.xml:52
 msgid ""
 "all files in <literal>Dir::Etc::Parts</literal> in alphanumeric ascending "
-"order which have either no or \"<literal>conf</literal>\" as filename "
-"extension and which only contain alphanumeric, hyphen (-), underscore (_) "
-"and period (.) characters.  Otherwise APT will print a notice that it has "
-"ignored a file if the file doesn't match a pattern in the <literal>Dir::"
-"Ignore-Files-Silently</literal> configuration list - in this case it will be "
-"silently ignored."
+"order which have no or \"<literal>conf</literal>\" as filename extension and "
+"which only contain alphanumeric, hyphen (-), underscore (_) and period (.) "
+"characters.  Otherwise APT will print a notice that it has ignored a file if "
+"the file doesn't match a pattern in the <literal>Dir::Ignore-Files-Silently</"
+"literal> configuration list - in this case it will be silently ignored."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><orderedlist><listitem><para>
@@ -4882,9 +4876,9 @@ msgid ""
 "Note that at run time the <literal>Dir::Bin::<replaceable>Methodname</"
 "replaceable></literal> will be checked: If this setting exists the method "
 "will only be used if this file exists, e.g. for the bzip2 method (the "
-"inbuilt) setting is: <placeholder type=\"literallayout\" id=\"0\"/> Note "
-"also that list entries specified on the command line will be added at the "
-"end of the list specified in the configuration files, but before the default "
+"inbuilt) setting is <placeholder type=\"literallayout\" id=\"0\"/> Note also "
+"that list entries specified on the command line will be added at the end of "
+"the list specified in the configuration files, but before the default "
 "entries. To prefer a type in this case over the ones specified in the "
 "configuration files you can set the option direct - not in list style.  This "
 "will not override the defined list, it will only prefix the list with this "
@@ -4895,7 +4889,7 @@ msgstr ""
 #: apt.conf.5.xml:449
 msgid ""
 "The special type <literal>uncompressed</literal> can be used to give "
-"uncompressed files a preference, but note that most archives don't provide "
+"uncompressed files a preference, but note that most archives doesn't provide "
 "uncompressed files so this is mostly only useable for local mirrors."
 msgstr ""
 
@@ -5836,8 +5830,8 @@ msgstr ""
 msgid ""
 "Note that the files in the <filename>/etc/apt/preferences.d</filename> "
 "directory are parsed in alphanumeric ascending order and need to obey the "
-"following naming convention: The files have either no or \"<literal>pref</"
-"literal>\" as filename extension and only contain alphanumeric, hyphen (-), "
+"following naming convention: The files have no or \"<literal>pref</literal>"
+"\" as filename extension and which only contain alphanumeric, hyphen (-), "
 "underscore (_) and period (.) characters.  Otherwise APT will print a notice "
 "that it has ignored a file if the file doesn't match a pattern in the "
 "<literal>Dir::Ignore-Files-Silently</literal> configuration list - in this "
@@ -6165,7 +6159,7 @@ msgid ""
 "APT also supports pinning by glob() expressions and regular expressions "
 "surrounded by /. For example, the following example assigns the priority 500 "
 "to all packages from experimental where the name starts with gnome (as a glob"
-"()-like expression) or contains the word kde (as a POSIX extended regular "
+"()-like expression or contains the word kde (as a POSIX extended regular "
 "expression surrounded by slashes)."
 msgstr ""
 
@@ -6182,7 +6176,7 @@ msgstr ""
 #: apt_preferences.5.xml:279
 msgid ""
 "The rule for those expressions is that they can occur anywhere where a "
-"string can occur. Thus, the following pin assigns the priority 990 to all "
+"string can occur. Those, the following pin assigns the priority 990 to all "
 "packages from a release starting with karmic."
 msgstr ""
 
index 150c97219056926b151680b2defb9c9d81ddc354..607d7e64da6baa5fe79020957287f7ae981a0495 100644 (file)
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.7.25.3\n"
-"POT-Creation-Date: 2011-07-05 13:23+0200\n"
+"POT-Creation-Date: 2011-06-08 16:54+0300\n"
 "PO-Revision-Date: 2010-09-07 07:38+0900\n"
 "Last-Translator: KURASAWA Nozomu <nabetaro@caldron.jp>\n"
 "Language-Team: Debian Japanese List <debian-japanese@lists.debian.org>\n"
@@ -1304,8 +1304,8 @@ msgstr ""
 # type: Content of: <refentry><refsect1><refsect2><para><programlisting>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
 #: apt-cache.8.xml:266
-msgid "madison <replaceable>/[ pkg(s) ]</replaceable>"
-msgstr "madison <replaceable>/[ pkg(s) ]</replaceable>"
+msgid "madison <replaceable>[ pkg(s) ]</replaceable>"
+msgstr "madison <replaceable>[ pkg(s) ]</replaceable>"
 
 # type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
@@ -1357,7 +1357,7 @@ msgstr ""
 "pkgcache</literal>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:288 apt-ftparchive.1.xml:572 apt-get.8.xml:393
+#: apt-cache.8.xml:288 apt-ftparchive.1.xml:571 apt-get.8.xml:393
 #: apt-sortpkgs.1.xml:61
 msgid "<option>-s</option>"
 msgstr "<option>-s</option>"
@@ -1384,12 +1384,12 @@ msgstr ""
 "<literal>Dir::Cache::srcpkgcache</literal>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>-q</option>"
 msgstr "<option>-q</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>--quiet</option>"
 msgstr "<option>--quiet</option>"
 
@@ -1475,7 +1475,7 @@ msgstr "<option>--no-enhances</option>"
 #, fuzzy
 msgid ""
 "Per default the <literal>depends</literal> and <literal>rdepends</literal> "
-"print all dependencies. This can be tweaked with these flags which will omit "
+"print all dependencies. This can be twicked with these flags which will omit "
 "the specified dependency type.  Configuration Item: <literal>APT::Cache::"
 "Show<replaceable>DependencyType</replaceable></literal> e.g. <literal>APT::"
 "Cache::ShowRecommends</literal>."
@@ -1505,7 +1505,7 @@ msgstr ""
 "ShowFull</literal>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:584
+#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:583
 msgid "<option>-a</option>"
 msgstr "<option>-a</option>"
 
@@ -1627,14 +1627,14 @@ msgstr ""
 # type: Content of: <refentry><refsect1><para>
 #. type: Content of: <refentry><refsect1><variablelist>
 #: apt-cache.8.xml:367 apt-cdrom.8.xml:153 apt-config.8.xml:101
-#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:612 apt-get.8.xml:570
+#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:611 apt-get.8.xml:570
 #: apt-mark.8.xml:140 apt-sortpkgs.1.xml:67
 msgid "&apt-commonoptions;"
 msgstr "&apt-commonoptions;"
 
 # type: Content of: <refentry><refsect1><title>
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:175 apt-mark.8.xml:144
+#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:172 apt-mark.8.xml:144
 #: apt.conf.5.xml:1093 apt_preferences.5.xml:697
 msgid "Files"
 msgstr "ファイル"
@@ -1647,8 +1647,8 @@ msgstr "&file-sourceslist; &file-statelists;"
 # type: Content of: <refentry><refsect1><title>
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:379 apt-cdrom.8.xml:158 apt-config.8.xml:106
-#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:628 apt-get.8.xml:585
-#: apt-key.8.xml:196 apt-mark.8.xml:150 apt-secure.8.xml:185
+#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:627 apt-get.8.xml:585
+#: apt-key.8.xml:193 apt-mark.8.xml:150 apt-secure.8.xml:185
 #: apt-sortpkgs.1.xml:72 apt.conf.5.xml:1099 apt_preferences.5.xml:704
 #: sources.list.5.xml:234
 msgid "See Also"
@@ -1663,7 +1663,7 @@ msgstr "&apt-conf;, &sources-list;, &apt-get;"
 # type: Content of: <refentry><refsect1><title>
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:384 apt-cdrom.8.xml:163 apt-config.8.xml:111
-#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:632 apt-get.8.xml:591
+#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:631 apt-get.8.xml:591
 #: apt-mark.8.xml:154 apt-sortpkgs.1.xml:76
 msgid "Diagnostics"
 msgstr "診断メッセージ"
@@ -1800,12 +1800,12 @@ msgstr ""
 
 # type: Content of: <refentry><refsect1><title>
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cdrom.8.xml:94 apt-key.8.xml:161
+#: apt-cdrom.8.xml:94 apt-key.8.xml:158
 msgid "Options"
 msgstr "オプション"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:540 apt-get.8.xml:345
+#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:539 apt-get.8.xml:345
 msgid "<option>-d</option>"
 msgstr "<option>-d</option>"
 
@@ -2075,7 +2075,7 @@ msgstr "設定箇所の内容を表示するだけです。"
 
 # type: Content of: <refentry><refsect1><para>
 #. type: Content of: <refentry><refsect1><para>
-#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:629
+#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:628
 #: apt-sortpkgs.1.xml:73
 msgid "&apt-conf;"
 msgstr "&apt-conf;"
@@ -3292,26 +3292,43 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-ftparchive.1.xml:531
+#, fuzzy
+#| msgid ""
+#| "Values for the additional metadata fields in the Release file are taken "
+#| "from the corresponding variables under <literal>APT::FTPArchive::Release</"
+#| "literal>, e.g. <literal>APT::FTPArchive::Release::Origin</literal>.  The "
+#| "supported fields are: <literal>Origin</literal>, <literal>Label</"
+#| "literal>, <literal>Suite</literal>, <literal>Version</literal>, "
+#| "<literal>Codename</literal>, <literal>Date</literal>, <literal>Valid-"
+#| "Until</literal>, <literal>Architectures</literal>, <literal>Components</"
+#| "literal>, <literal>Description</literal>."
 msgid ""
 "Generate the given checksum. These options default to on, when turned off "
 "the generated index files will not have the checksum fields where possible.  "
 "Configuration Items: <literal>APT::FTPArchive::<replaceable>Checksum</"
 "replaceable></literal> and <literal>APT::FTPArchive::<replaceable>Index</"
 "replaceable>::<replaceable>Checksum</replaceable></literal> where "
-"<literal><replaceable>Index</replaceable></literal> can be "
-"<literal>Packages</literal>, <literal>Sources</literal> or <literal>Release</"
-"literal> and <literal><replaceable>Checksum</replaceable></literal> can be "
-"<literal>MD5</literal>, <literal>SHA1</literal> or <literal>SHA256</literal>."
+"<literal>Index</literal> can be <literal>Packages</literal>, "
+"<literal>Sources</literal> or <literal>Release</literal> and "
+"<literal>Checksum</literal> can be <literal>MD5</literal>, <literal>SHA1</"
+"literal> or <literal>SHA256</literal>."
 msgstr ""
+"Release ファイルの追加メタデータフィールドの値は、<literal>APT::FTPArchive::"
+"Release</literal> 以下の相当する値 (例: <literal>APT::FTPArchive::Release::"
+"Origin</literal>) をとります。サポートするフィールドは、<literal>Origin</"
+"literal>, <literal>Label</literal>, <literal>Suite</literal>, "
+"<literal>Version</literal>, <literal>Codename</literal>, <literal>Date</"
+"literal>, <literal>Valid-Until</literal>, <literal>Architectures</literal>, "
+"<literal>Components</literal>, <literal>Description</literal> です。"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:540
+#: apt-ftparchive.1.xml:539
 msgid "<option>--db</option>"
 msgstr "<option>--db</option>"
 
 # type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:542
+#: apt-ftparchive.1.xml:541
 msgid ""
 "Use a binary caching DB. This has no effect on the generate command.  "
 "Configuration Item: <literal>APT::FTPArchive::DB</literal>."
@@ -3321,7 +3338,7 @@ msgstr ""
 
 # type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:548
+#: apt-ftparchive.1.xml:547
 msgid ""
 "Quiet; produces output suitable for logging, omitting progress indicators.  "
 "More q's will produce more quiet up to a maximum of 2. You can also use "
@@ -3334,13 +3351,13 @@ msgstr ""
 "<literal>quiet</literal>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:554
+#: apt-ftparchive.1.xml:553
 msgid "<option>--delink</option>"
 msgstr "<option>--delink</option>"
 
 # type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:556
+#: apt-ftparchive.1.xml:555
 msgid ""
 "Perform Delinking. If the <literal>External-Links</literal> setting is used "
 "then this option actually enables delinking of the files. It defaults to on "
@@ -3353,13 +3370,13 @@ msgstr ""
 "<literal>APT::FTPArchive::DeLinkAct</literal>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:562
+#: apt-ftparchive.1.xml:561
 msgid "<option>--contents</option>"
 msgstr "<option>--contents</option>"
 
 # type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:564
+#: apt-ftparchive.1.xml:563
 msgid ""
 "Perform contents generation. When this option is set and package indexes are "
 "being generated with a cache DB then the file listing will also be extracted "
@@ -3374,13 +3391,13 @@ msgstr ""
 "<literal>APT::FTPArchive::Contents</literal>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:572
+#: apt-ftparchive.1.xml:571
 msgid "<option>--source-override</option>"
 msgstr "<option>--source-override</option>"
 
 # type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:574
+#: apt-ftparchive.1.xml:573
 msgid ""
 "Select the source override file to use with the <literal>sources</literal> "
 "command.  Configuration Item: <literal>APT::FTPArchive::SourceOverride</"
@@ -3390,13 +3407,13 @@ msgstr ""
 "選択します。設定項目 - <literal>APT::FTPArchive::SourceOverride</literal>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:578
+#: apt-ftparchive.1.xml:577
 msgid "<option>--readonly</option>"
 msgstr "<option>--readonly</option>"
 
 # type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:580
+#: apt-ftparchive.1.xml:579
 msgid ""
 "Make the caching databases read only.  Configuration Item: <literal>APT::"
 "FTPArchive::ReadOnlyDB</literal>."
@@ -3405,13 +3422,13 @@ msgstr ""
 "FTPArchive::ReadOnlyDB</literal>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:584
+#: apt-ftparchive.1.xml:583
 msgid "<option>--arch</option>"
 msgstr "<option>--arch</option>"
 
 # type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:585
+#: apt-ftparchive.1.xml:584
 #, fuzzy
 msgid ""
 "Accept in the <literal>packages</literal> and <literal>contents</literal> "
@@ -3425,12 +3442,12 @@ msgstr ""
 "literal>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:591
+#: apt-ftparchive.1.xml:590
 msgid "<option>APT::FTPArchive::AlwaysStat</option>"
 msgstr "<option>--version</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:593
+#: apt-ftparchive.1.xml:592
 msgid ""
 "&apt-ftparchive; caches as much as possible of metadata in a cachedb. If "
 "packages are recompiled and/or republished with the same version again, this "
@@ -3444,12 +3461,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:603
+#: apt-ftparchive.1.xml:602
 msgid "<option>APT::FTPArchive::LongDescription</option>"
 msgstr "<option>APT::FTPArchive::LongDescription</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:605
+#: apt-ftparchive.1.xml:604
 #, fuzzy
 msgid ""
 "This configuration option defaults to \"<literal>true</literal>\" and should "
@@ -3465,14 +3482,14 @@ msgstr ""
 
 # type: Content of: <refentry><refsect1><title>
 #. type: Content of: <refentry><refsect1><title>
-#: apt-ftparchive.1.xml:617 apt.conf.5.xml:1087 apt_preferences.5.xml:544
+#: apt-ftparchive.1.xml:616 apt.conf.5.xml:1087 apt_preferences.5.xml:544
 #: sources.list.5.xml:198
 msgid "Examples"
 msgstr "サンプル"
 
 # type: Content of: <refentry><refsect1><para><programlisting>
 #. type: Content of: <refentry><refsect1><para><programlisting>
-#: apt-ftparchive.1.xml:623
+#: apt-ftparchive.1.xml:622
 #, no-wrap
 msgid "<command>apt-ftparchive</command> packages <replaceable>directory</replaceable> | <command>gzip</command> > <filename>Packages.gz</filename>\n"
 msgstr ""
@@ -3481,7 +3498,7 @@ msgstr ""
 
 # type: Content of: <refentry><refsect1><para>
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:619
+#: apt-ftparchive.1.xml:618
 msgid ""
 "To create a compressed Packages file for a directory containing binary "
 "packages (.deb): <placeholder type=\"programlisting\" id=\"0\"/>"
@@ -3491,7 +3508,7 @@ msgstr ""
 
 # type: Content of: <refentry><refsect1><para>
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:633
+#: apt-ftparchive.1.xml:632
 msgid ""
 "<command>apt-ftparchive</command> returns zero on normal operation, decimal "
 "100 on error."
@@ -3967,7 +3984,7 @@ msgstr ""
 #: apt-get.8.xml:282
 msgid ""
 "<literal>download</literal> will download the given binary package into the "
-"current directory."
+"current directoy."
 msgstr ""
 
 # type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
@@ -4857,36 +4874,34 @@ msgstr ""
 "gpg に上級オプションを渡します。adv --recv-key とすると、公開鍵をダウンロード"
 "できます。"
 
+# type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-key.8.xml:131
 msgid ""
-"Update the local keyring with the archive keyring and remove from the local "
-"keyring the archive keys which are no longer valid.  The archive keyring is "
-"shipped in the <literal>archive-keyring</literal> package of your "
-"distribution, e.g. the <literal>debian-archive-keyring</literal> package in "
-"Debian."
+"Update the local keyring with the keyring of Debian archive keys and removes "
+"from the keyring the archive keys which are no longer valid."
 msgstr ""
+"Debian アーカイブキーで、ローカルキーリングを更新し、もう有効でないキーをキー"
+"リングから削除します。"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:141
+#: apt-key.8.xml:140
 #, fuzzy
 #| msgid "update"
 msgid "net-update"
 msgstr "update"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:145
+#: apt-key.8.xml:144
 msgid ""
-"Work similar to the <command>update</command> command above, but get the "
-"archive keyring from an URI instead and validate it against a master key.  "
-"This requires an installed &wget; and an APT build configured to have a "
-"server to fetch from and a master keyring to validate.  APT in Debian does "
-"not support this command and relies on <command>update</command> instead, "
-"but Ubuntu's APT does."
+"Update the local keyring with the keys of a key server and removes from the "
+"keyring the archive keys which are no longer valid. This requires an "
+"installed wget and an APT build configured to have a server to fetch from. "
+"APT in Debian does not support this command, but Ubuntu's APT does."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:162
+#: apt-key.8.xml:159
 msgid ""
 "Note that options need to be defined before the commands described in the "
 "previous section."
@@ -4896,12 +4911,12 @@ msgstr ""
 
 # type: Content of: <refentry><refsect1><refsect2><para><programlisting>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:164
+#: apt-key.8.xml:161
 msgid "--keyring <replaceable>filename</replaceable>"
 msgstr "--keyring <replaceable>filename</replaceable>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:165
+#: apt-key.8.xml:162
 msgid ""
 "With this option it is possible to specify a specific keyring file the "
 "command should operate on. The default is that a command is executed on the "
@@ -4917,35 +4932,35 @@ msgstr ""
 "加されます。"
 
 #. type: Content of: <refentry><refsect1><variablelist>
-#: apt-key.8.xml:178
+#: apt-key.8.xml:175
 msgid "&file-trustedgpg;"
 msgstr "&file-trustedgpg;"
 
 # type: Content of: <refentry><refsect1><para>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:180
+#: apt-key.8.xml:177
 msgid "<filename>/etc/apt/trustdb.gpg</filename>"
 msgstr "<filename>/etc/apt/trustdb.gpg</filename>"
 
 # type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:181
+#: apt-key.8.xml:178
 msgid "Local trust database of archive keys."
 msgstr "アーカイブキーのローカル信頼データベースです。"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:184
+#: apt-key.8.xml:181
 msgid "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 msgstr "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 
 # type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:185
+#: apt-key.8.xml:182
 msgid "Keyring of Debian archive trusted keys."
 msgstr "Debian アーカイブ信頼キーのキーリングです。"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:188
+#: apt-key.8.xml:185
 msgid ""
 "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
 msgstr ""
@@ -4953,13 +4968,13 @@ msgstr ""
 
 # type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:189
+#: apt-key.8.xml:186
 msgid "Keyring of Debian archive removed trusted keys."
 msgstr "削除された Debian アーカイブ信頼キーのキーリングです。"
 
 # type: Content of: <refentry><refsect1><para>
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:198
+#: apt-key.8.xml:195
 msgid "&apt-get;, &apt-secure;"
 msgstr "&apt-get;, &apt-secure;"
 
@@ -5715,12 +5730,11 @@ msgstr "<envar>APT_CONFIG</envar> 環境変数で指定したファイル (存
 #| "period (.) characters - otherwise they will be silently ignored."
 msgid ""
 "all files in <literal>Dir::Etc::Parts</literal> in alphanumeric ascending "
-"order which have either no or \"<literal>conf</literal>\" as filename "
-"extension and which only contain alphanumeric, hyphen (-), underscore (_) "
-"and period (.) characters.  Otherwise APT will print a notice that it has "
-"ignored a file if the file doesn't match a pattern in the <literal>Dir::"
-"Ignore-Files-Silently</literal> configuration list - in this case it will be "
-"silently ignored."
+"order which have no or \"<literal>conf</literal>\" as filename extension and "
+"which only contain alphanumeric, hyphen (-), underscore (_) and period (.) "
+"characters.  Otherwise APT will print a notice that it has ignored a file if "
+"the file doesn't match a pattern in the <literal>Dir::Ignore-Files-Silently</"
+"literal> configuration list - in this case it will be silently ignored."
 msgstr ""
 "<literal>Dir::Etc::Parts</literal> にあるすべてのファイルを英数字の昇順に。"
 "ファイル名には拡張子がないか、\"<literal>conf</literal>\" となっており、英数"
@@ -6715,9 +6729,9 @@ msgid ""
 "Note that at run time the <literal>Dir::Bin::<replaceable>Methodname</"
 "replaceable></literal> will be checked: If this setting exists the method "
 "will only be used if this file exists, e.g. for the bzip2 method (the "
-"inbuilt) setting is: <placeholder type=\"literallayout\" id=\"0\"/> Note "
-"also that list entries specified on the command line will be added at the "
-"end of the list specified in the configuration files, but before the default "
+"inbuilt) setting is <placeholder type=\"literallayout\" id=\"0\"/> Note also "
+"that list entries specified on the command line will be added at the end of "
+"the list specified in the configuration files, but before the default "
 "entries. To prefer a type in this case over the ones specified in the "
 "configuration files you can set the option direct - not in list style.  This "
 "will not override the defined list, it will only prefix the list with this "
@@ -6737,7 +6751,7 @@ msgstr ""
 #: apt.conf.5.xml:449
 msgid ""
 "The special type <literal>uncompressed</literal> can be used to give "
-"uncompressed files a preference, but note that most archives don't provide "
+"uncompressed files a preference, but note that most archives doesn't provide "
 "uncompressed files so this is mostly only useable for local mirrors."
 msgstr ""
 
@@ -7873,8 +7887,8 @@ msgstr ""
 msgid ""
 "Note that the files in the <filename>/etc/apt/preferences.d</filename> "
 "directory are parsed in alphanumeric ascending order and need to obey the "
-"following naming convention: The files have either no or \"<literal>pref</"
-"literal>\" as filename extension and only contain alphanumeric, hyphen (-), "
+"following naming convention: The files have no or \"<literal>pref</literal>"
+"\" as filename extension and which only contain alphanumeric, hyphen (-), "
 "underscore (_) and period (.) characters.  Otherwise APT will print a notice "
 "that it has ignored a file if the file doesn't match a pattern in the "
 "<literal>Dir::Ignore-Files-Silently</literal> configuration list - in this "
@@ -8339,7 +8353,7 @@ msgid ""
 "APT also supports pinning by glob() expressions and regular expressions "
 "surrounded by /. For example, the following example assigns the priority 500 "
 "to all packages from experimental where the name starts with gnome (as a glob"
-"()-like expression) or contains the word kde (as a POSIX extended regular "
+"()-like expression or contains the word kde (as a POSIX extended regular "
 "expression surrounded by slashes)."
 msgstr ""
 
@@ -8365,7 +8379,7 @@ msgstr ""
 #: apt_preferences.5.xml:279
 msgid ""
 "The rule for those expressions is that they can occur anywhere where a "
-"string can occur. Thus, the following pin assigns the priority 990 to all "
+"string can occur. Those, the following pin assigns the priority 990 to all "
 "packages from a release starting with karmic."
 msgstr ""
 
@@ -10910,14 +10924,6 @@ msgstr "  # apt-get -o dir::cache::archives=\"/disc/\" dist-upgrade"
 msgid "Which will use the already fetched archives on the disc."
 msgstr "これで、disc にある取得済みのアーカイブを使用するようになります。"
 
-# type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#~ msgid ""
-#~ "Update the local keyring with the keyring of Debian archive keys and "
-#~ "removes from the keyring the archive keys which are no longer valid."
-#~ msgstr ""
-#~ "Debian アーカイブキーで、ローカルキーリングを更新し、もう有効でないキーを"
-#~ "キーリングから削除します。"
-
 #~ msgid "<option>--md5</option>"
 #~ msgstr "<option>--md5</option>"
 
index bc593af8b4d189d22b13f05bd51f69641ad63d0e..0721cbf132c7d8b4a5b2093887f24e39db593129 100644 (file)
@@ -10,7 +10,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.7.25.3\n"
-"POT-Creation-Date: 2011-07-05 13:23+0200\n"
+"POT-Creation-Date: 2011-06-08 16:54+0300\n"
 "PO-Revision-Date: 2010-03-18 22:00+0100\n"
 "Last-Translator: Robert Luberda <robert@debian.org>\n"
 "Language-Team: <debian-l10n-polish@lists.debian.org>\n"
@@ -1311,8 +1311,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
 #: apt-cache.8.xml:266
-msgid "madison <replaceable>/[ pkg(s) ]</replaceable>"
-msgstr "madison <replaceable>/[ pakiet(y) ]</replaceable>"
+msgid "madison <replaceable>[ pkg(s) ]</replaceable>"
+msgstr "madison <replaceable>[ pakiet(y) ]</replaceable>"
 
 #
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
@@ -1363,7 +1363,7 @@ msgstr ""
 "<literal>Dir::Cache::pkgcache</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:288 apt-ftparchive.1.xml:572 apt-get.8.xml:393
+#: apt-cache.8.xml:288 apt-ftparchive.1.xml:571 apt-get.8.xml:393
 #: apt-sortpkgs.1.xml:61
 msgid "<option>-s</option>"
 msgstr "<option>-s</option>"
@@ -1391,12 +1391,12 @@ msgstr ""
 "Cache::srcpkgcache</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>-q</option>"
 msgstr "<option>-q</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>--quiet</option>"
 msgstr "<option>--quiet</option>"
 
@@ -1503,7 +1503,7 @@ msgstr "<option>--no-act</option>"
 #| "<literal>APT::Cache::RecurseDepends</literal>."
 msgid ""
 "Per default the <literal>depends</literal> and <literal>rdepends</literal> "
-"print all dependencies. This can be tweaked with these flags which will omit "
+"print all dependencies. This can be twicked with these flags which will omit "
 "the specified dependency type.  Configuration Item: <literal>APT::Cache::"
 "Show<replaceable>DependencyType</replaceable></literal> e.g. <literal>APT::"
 "Cache::ShowRecommends</literal>."
@@ -1534,7 +1534,7 @@ msgstr ""
 "konfiguracyjnym: <literal>APT::Cache::ShowFull</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:584
+#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:583
 msgid "<option>-a</option>"
 msgstr "<option>-a</option>"
 
@@ -1660,13 +1660,13 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist>
 #: apt-cache.8.xml:367 apt-cdrom.8.xml:153 apt-config.8.xml:101
-#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:612 apt-get.8.xml:570
+#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:611 apt-get.8.xml:570
 #: apt-mark.8.xml:140 apt-sortpkgs.1.xml:67
 msgid "&apt-commonoptions;"
 msgstr "&apt-commonoptions;"
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:175 apt-mark.8.xml:144
+#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:172 apt-mark.8.xml:144
 #: apt.conf.5.xml:1093 apt_preferences.5.xml:697
 msgid "Files"
 msgstr "Pliki"
@@ -1678,8 +1678,8 @@ msgstr "&file-sourceslist; &file-statelists;"
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:379 apt-cdrom.8.xml:158 apt-config.8.xml:106
-#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:628 apt-get.8.xml:585
-#: apt-key.8.xml:196 apt-mark.8.xml:150 apt-secure.8.xml:185
+#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:627 apt-get.8.xml:585
+#: apt-key.8.xml:193 apt-mark.8.xml:150 apt-secure.8.xml:185
 #: apt-sortpkgs.1.xml:72 apt.conf.5.xml:1099 apt_preferences.5.xml:704
 #: sources.list.5.xml:234
 msgid "See Also"
@@ -1693,7 +1693,7 @@ msgstr "&apt-conf;, &sources-list;, &apt-get;"
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:384 apt-cdrom.8.xml:163 apt-config.8.xml:111
-#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:632 apt-get.8.xml:591
+#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:631 apt-get.8.xml:591
 #: apt-mark.8.xml:154 apt-sortpkgs.1.xml:76
 msgid "Diagnostics"
 msgstr "Diagnostyka"
@@ -1837,12 +1837,12 @@ msgstr ""
 "\"variablelist\" id=\"0\"/>"
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cdrom.8.xml:94 apt-key.8.xml:161
+#: apt-cdrom.8.xml:94 apt-key.8.xml:158
 msgid "Options"
 msgstr "Opcje"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:540 apt-get.8.xml:345
+#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:539 apt-get.8.xml:345
 msgid "<option>-d</option>"
 msgstr "<option>-d</option>"
 
@@ -2105,7 +2105,7 @@ msgid "Just show the contents of the configuration space."
 msgstr "Wyświetla zawartość przestrzeni konfiguracji."
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:629
+#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:628
 #: apt-sortpkgs.1.xml:73
 msgid "&apt-conf;"
 msgstr "&apt-conf;"
@@ -3106,20 +3106,20 @@ msgid ""
 "Configuration Items: <literal>APT::FTPArchive::<replaceable>Checksum</"
 "replaceable></literal> and <literal>APT::FTPArchive::<replaceable>Index</"
 "replaceable>::<replaceable>Checksum</replaceable></literal> where "
-"<literal><replaceable>Index</replaceable></literal> can be "
-"<literal>Packages</literal>, <literal>Sources</literal> or <literal>Release</"
-"literal> and <literal><replaceable>Checksum</replaceable></literal> can be "
-"<literal>MD5</literal>, <literal>SHA1</literal> or <literal>SHA256</literal>."
+"<literal>Index</literal> can be <literal>Packages</literal>, "
+"<literal>Sources</literal> or <literal>Release</literal> and "
+"<literal>Checksum</literal> can be <literal>MD5</literal>, <literal>SHA1</"
+"literal> or <literal>SHA256</literal>."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:540
+#: apt-ftparchive.1.xml:539
 msgid "<option>--db</option>"
 msgstr "<option>--db</option>"
 
 #
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:542
+#: apt-ftparchive.1.xml:541
 #, fuzzy
 msgid ""
 "Use a binary caching DB. This has no effect on the generate command.  "
@@ -3130,7 +3130,7 @@ msgstr ""
 
 #
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:548
+#: apt-ftparchive.1.xml:547
 msgid ""
 "Quiet; produces output suitable for logging, omitting progress indicators.  "
 "More q's will produce more quiet up to a maximum of 2. You can also use "
@@ -3144,13 +3144,13 @@ msgstr ""
 "pliku konfiguracyjnym: <literal>quiet</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:554
+#: apt-ftparchive.1.xml:553
 msgid "<option>--delink</option>"
 msgstr "<option>--delink</option>"
 
 #
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:556
+#: apt-ftparchive.1.xml:555
 #, fuzzy
 msgid ""
 "Perform Delinking. If the <literal>External-Links</literal> setting is used "
@@ -3164,12 +3164,12 @@ msgstr ""
 "<literal>APT::Cache::Generate</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:562
+#: apt-ftparchive.1.xml:561
 msgid "<option>--contents</option>"
 msgstr "<option>--contents</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:564
+#: apt-ftparchive.1.xml:563
 msgid ""
 "Perform contents generation. When this option is set and package indexes are "
 "being generated with a cache DB then the file listing will also be extracted "
@@ -3179,13 +3179,13 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:572
+#: apt-ftparchive.1.xml:571
 msgid "<option>--source-override</option>"
 msgstr "<option>--source-override</option>"
 
 #
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:574
+#: apt-ftparchive.1.xml:573
 #, fuzzy
 msgid ""
 "Select the source override file to use with the <literal>sources</literal> "
@@ -3197,13 +3197,13 @@ msgstr ""
 "konfiguracyjnym: <literal>APT::Cache::Installed</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:578
+#: apt-ftparchive.1.xml:577
 msgid "<option>--readonly</option>"
 msgstr "<option>--readonly</option>"
 
 #
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:580
+#: apt-ftparchive.1.xml:579
 #, fuzzy
 msgid ""
 "Make the caching databases read only.  Configuration Item: <literal>APT::"
@@ -3213,14 +3213,14 @@ msgstr ""
 "pliku konfiguracyjnym: <literal>APT::Cache::NamesOnly</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:584
+#: apt-ftparchive.1.xml:583
 #, fuzzy
 #| msgid "<option>-a</option>"
 msgid "<option>--arch</option>"
 msgstr "<option>-a</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:585
+#: apt-ftparchive.1.xml:584
 #, fuzzy
 #| msgid ""
 #| "If the command is either <literal>install</literal> or <literal>remove</"
@@ -3240,13 +3240,13 @@ msgstr ""
 "AutomaticRemove</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:591
+#: apt-ftparchive.1.xml:590
 #, fuzzy
 msgid "<option>APT::FTPArchive::AlwaysStat</option>"
 msgstr "<option>--version</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:593
+#: apt-ftparchive.1.xml:592
 msgid ""
 "&apt-ftparchive; caches as much as possible of metadata in a cachedb. If "
 "packages are recompiled and/or republished with the same version again, this "
@@ -3260,13 +3260,13 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:603
+#: apt-ftparchive.1.xml:602
 #, fuzzy
 msgid "<option>APT::FTPArchive::LongDescription</option>"
 msgstr "<option>--version</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:605
+#: apt-ftparchive.1.xml:604
 msgid ""
 "This configuration option defaults to \"<literal>true</literal>\" and should "
 "only be set to <literal>\"false\"</literal> if the Archive generated with "
@@ -3276,19 +3276,19 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-ftparchive.1.xml:617 apt.conf.5.xml:1087 apt_preferences.5.xml:544
+#: apt-ftparchive.1.xml:616 apt.conf.5.xml:1087 apt_preferences.5.xml:544
 #: sources.list.5.xml:198
 msgid "Examples"
 msgstr "Przykłady"
 
 #. type: Content of: <refentry><refsect1><para><programlisting>
-#: apt-ftparchive.1.xml:623
+#: apt-ftparchive.1.xml:622
 #, no-wrap
 msgid "<command>apt-ftparchive</command> packages <replaceable>directory</replaceable> | <command>gzip</command> > <filename>Packages.gz</filename>\n"
 msgstr "<command>apt-ftparchive</command> packages <replaceable>katalog</replaceable> | <command>gzip</command> > <filename>Packages.gz</filename>\n"
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:619
+#: apt-ftparchive.1.xml:618
 msgid ""
 "To create a compressed Packages file for a directory containing binary "
 "packages (.deb): <placeholder type=\"programlisting\" id=\"0\"/>"
@@ -3296,7 +3296,7 @@ msgstr ""
 
 #
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:633
+#: apt-ftparchive.1.xml:632
 msgid ""
 "<command>apt-ftparchive</command> returns zero on normal operation, decimal "
 "100 on error."
@@ -3833,7 +3833,7 @@ msgstr ""
 #: apt-get.8.xml:282
 msgid ""
 "<literal>download</literal> will download the given binary package into the "
-"current directory."
+"current directoy."
 msgstr ""
 
 #
@@ -4747,33 +4747,30 @@ msgstr ""
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-key.8.xml:131
 msgid ""
-"Update the local keyring with the archive keyring and remove from the local "
-"keyring the archive keys which are no longer valid.  The archive keyring is "
-"shipped in the <literal>archive-keyring</literal> package of your "
-"distribution, e.g. the <literal>debian-archive-keyring</literal> package in "
-"Debian."
+"Update the local keyring with the keyring of Debian archive keys and removes "
+"from the keyring the archive keys which are no longer valid."
 msgstr ""
+"Aktualizuje lokalną składnicę kluczy używając składnicy kluczy archiwum "
+"Debiana i usuwa z lokalnej składnicy nieaktualne już klucze archiwów Debiana."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:141
+#: apt-key.8.xml:140
 #, fuzzy
 #| msgid "update"
 msgid "net-update"
 msgstr "update"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:145
+#: apt-key.8.xml:144
 msgid ""
-"Work similar to the <command>update</command> command above, but get the "
-"archive keyring from an URI instead and validate it against a master key.  "
-"This requires an installed &wget; and an APT build configured to have a "
-"server to fetch from and a master keyring to validate.  APT in Debian does "
-"not support this command and relies on <command>update</command> instead, "
-"but Ubuntu's APT does."
+"Update the local keyring with the keys of a key server and removes from the "
+"keyring the archive keys which are no longer valid. This requires an "
+"installed wget and an APT build configured to have a server to fetch from. "
+"APT in Debian does not support this command, but Ubuntu's APT does."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:162
+#: apt-key.8.xml:159
 msgid ""
 "Note that options need to be defined before the commands described in the "
 "previous section."
@@ -4782,12 +4779,12 @@ msgstr ""
 "opisanymi w poprzednim rozdziale."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:164
+#: apt-key.8.xml:161
 msgid "--keyring <replaceable>filename</replaceable>"
 msgstr "--keyring <replaceable>nazwa_pliku</replaceable>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:165
+#: apt-key.8.xml:162
 msgid ""
 "With this option it is possible to specify a specific keyring file the "
 "command should operate on. The default is that a command is executed on the "
@@ -4803,44 +4800,44 @@ msgstr ""
 "kluczy, co oznacza na przykład to, że nowe klucze będą dodawane właśnie tam."
 
 #. type: Content of: <refentry><refsect1><variablelist>
-#: apt-key.8.xml:178
+#: apt-key.8.xml:175
 msgid "&file-trustedgpg;"
 msgstr "&file-trustedgpg;"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:180
+#: apt-key.8.xml:177
 msgid "<filename>/etc/apt/trustdb.gpg</filename>"
 msgstr "<filename>/etc/apt/trustdb.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:181
+#: apt-key.8.xml:178
 msgid "Local trust database of archive keys."
 msgstr "Lokalna składnica zaufanych kluczy archiwum."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:184
+#: apt-key.8.xml:181
 msgid "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 msgstr "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:185
+#: apt-key.8.xml:182
 msgid "Keyring of Debian archive trusted keys."
 msgstr "Składnica zaufanych kluczy archiwum Debiana."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:188
+#: apt-key.8.xml:185
 msgid ""
 "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
 msgstr ""
 "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:189
+#: apt-key.8.xml:186
 msgid "Keyring of Debian archive removed trusted keys."
 msgstr "Składnica usuniętych zaufanych kluczy archiwum Debiana."
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:198
+#: apt-key.8.xml:195
 msgid "&apt-get;, &apt-secure;"
 msgstr "&apt-get;, &apt-secure;"
 
@@ -5459,29 +5456,14 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><orderedlist><listitem><para>
 #: apt.conf.5.xml:52
-#, fuzzy
-#| msgid ""
-#| "The <filename>/etc/apt/sources.list.d</filename> directory provides a way "
-#| "to add sources.list entries in separate files.  The format is the same as "
-#| "for the regular <filename>sources.list</filename> file.  File names need "
-#| "to end with <filename>.list</filename> and may only contain letters (a-z "
-#| "and A-Z), digits (0-9), underscore (_), hyphen (-) and period (.) "
-#| "characters.  Otherwise they will be silently ignored."
 msgid ""
 "all files in <literal>Dir::Etc::Parts</literal> in alphanumeric ascending "
-"order which have either no or \"<literal>conf</literal>\" as filename "
-"extension and which only contain alphanumeric, hyphen (-), underscore (_) "
-"and period (.) characters.  Otherwise APT will print a notice that it has "
-"ignored a file if the file doesn't match a pattern in the <literal>Dir::"
-"Ignore-Files-Silently</literal> configuration list - in this case it will be "
-"silently ignored."
+"order which have no or \"<literal>conf</literal>\" as filename extension and "
+"which only contain alphanumeric, hyphen (-), underscore (_) and period (.) "
+"characters.  Otherwise APT will print a notice that it has ignored a file if "
+"the file doesn't match a pattern in the <literal>Dir::Ignore-Files-Silently</"
+"literal> configuration list - in this case it will be silently ignored."
 msgstr ""
-"Katalog <filename>/etc/apt/sources.list.d</filename>  umożliwia podzielenie "
-"pliku źródeł na osobne pliki. Format jest dokładnie taki sam, jak w "
-"przypadku zwykłego pliku <filename>sources.list</filename>. Nazwy plików w "
-"tym katalogu muszą się kończyć rozszerzeniem <filename>.list</filename> i "
-"mogą składać się tylko z liter (a-z i A-Z), cyfr (0-9), znaku podkreślenia "
-"(_), pauzy (-) i kropki (.). Inne pliki zostaną zignorowane."
 
 #. type: Content of: <refentry><refsect1><orderedlist><listitem><para>
 #: apt.conf.5.xml:59
@@ -6186,9 +6168,9 @@ msgid ""
 "Note that at run time the <literal>Dir::Bin::<replaceable>Methodname</"
 "replaceable></literal> will be checked: If this setting exists the method "
 "will only be used if this file exists, e.g. for the bzip2 method (the "
-"inbuilt) setting is: <placeholder type=\"literallayout\" id=\"0\"/> Note "
-"also that list entries specified on the command line will be added at the "
-"end of the list specified in the configuration files, but before the default "
+"inbuilt) setting is <placeholder type=\"literallayout\" id=\"0\"/> Note also "
+"that list entries specified on the command line will be added at the end of "
+"the list specified in the configuration files, but before the default "
 "entries. To prefer a type in this case over the ones specified in the "
 "configuration files you can set the option direct - not in list style.  This "
 "will not override the defined list, it will only prefix the list with this "
@@ -6199,7 +6181,7 @@ msgstr ""
 #: apt.conf.5.xml:449
 msgid ""
 "The special type <literal>uncompressed</literal> can be used to give "
-"uncompressed files a preference, but note that most archives don't provide "
+"uncompressed files a preference, but note that most archives doesn't provide "
 "uncompressed files so this is mostly only useable for local mirrors."
 msgstr ""
 
@@ -7155,30 +7137,16 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
 #: apt_preferences.5.xml:70
-#, fuzzy
-#| msgid ""
-#| "The <filename>/etc/apt/sources.list.d</filename> directory provides a way "
-#| "to add sources.list entries in separate files.  The format is the same as "
-#| "for the regular <filename>sources.list</filename> file.  File names need "
-#| "to end with <filename>.list</filename> and may only contain letters (a-z "
-#| "and A-Z), digits (0-9), underscore (_), hyphen (-) and period (.) "
-#| "characters.  Otherwise they will be silently ignored."
 msgid ""
 "Note that the files in the <filename>/etc/apt/preferences.d</filename> "
 "directory are parsed in alphanumeric ascending order and need to obey the "
-"following naming convention: The files have either no or \"<literal>pref</"
-"literal>\" as filename extension and only contain alphanumeric, hyphen (-), "
+"following naming convention: The files have no or \"<literal>pref</literal>"
+"\" as filename extension and which only contain alphanumeric, hyphen (-), "
 "underscore (_) and period (.) characters.  Otherwise APT will print a notice "
 "that it has ignored a file if the file doesn't match a pattern in the "
 "<literal>Dir::Ignore-Files-Silently</literal> configuration list - in this "
 "case it will be silently ignored."
 msgstr ""
-"Katalog <filename>/etc/apt/sources.list.d</filename>  umożliwia podzielenie "
-"pliku źródeł na osobne pliki. Format jest dokładnie taki sam, jak w "
-"przypadku zwykłego pliku <filename>sources.list</filename>. Nazwy plików w "
-"tym katalogu muszą się kończyć rozszerzeniem <filename>.list</filename> i "
-"mogą składać się tylko z liter (a-z i A-Z), cyfr (0-9), znaku podkreślenia "
-"(_), pauzy (-) i kropki (.). Inne pliki zostaną zignorowane."
 
 #. type: Content of: <refentry><refsect1><refsect2><title>
 #: apt_preferences.5.xml:79
@@ -7529,7 +7497,7 @@ msgid ""
 "APT also supports pinning by glob() expressions and regular expressions "
 "surrounded by /. For example, the following example assigns the priority 500 "
 "to all packages from experimental where the name starts with gnome (as a glob"
-"()-like expression) or contains the word kde (as a POSIX extended regular "
+"()-like expression or contains the word kde (as a POSIX extended regular "
 "expression surrounded by slashes)."
 msgstr ""
 
@@ -7553,7 +7521,7 @@ msgstr ""
 #: apt_preferences.5.xml:279
 msgid ""
 "The rule for those expressions is that they can occur anywhere where a "
-"string can occur. Thus, the following pin assigns the priority 990 to all "
+"string can occur. Those, the following pin assigns the priority 990 to all "
 "packages from a release starting with karmic."
 msgstr ""
 
@@ -10249,14 +10217,6 @@ msgstr "  # apt-get -o dir::cache::archives=\"/disc/\" dist-upgrade"
 msgid "Which will use the already fetched archives on the disc."
 msgstr "Które użyje pobranych uprzednio archiwów z dysku."
 
-#~ msgid ""
-#~ "Update the local keyring with the keyring of Debian archive keys and "
-#~ "removes from the keyring the archive keys which are no longer valid."
-#~ msgstr ""
-#~ "Aktualizuje lokalną składnicę kluczy używając składnicy kluczy archiwum "
-#~ "Debiana i usuwa z lokalnej składnicy nieaktualne już klucze archiwów "
-#~ "Debiana."
-
 #~ msgid "<option>--md5</option>"
 #~ msgstr "<option>--md5</option>"
 
index fae1ffab6a9721a9b374dccccb692049f936d10a..863f3dd8bf758527f94b18b30b6d7d6f9750c34e 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.8.0~pre1\n"
-"POT-Creation-Date: 2011-07-05 13:23+0200\n"
+"POT-Creation-Date: 2011-06-08 16:54+0300\n"
 "PO-Revision-Date: 2010-08-25 23:07+0100\n"
 "Last-Translator: Américo Monteiro <a_monteiro@netcabo.pt>\n"
 "Language-Team: Portuguese <traduz@debianpt.org>\n"
@@ -1255,8 +1255,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
 #: apt-cache.8.xml:266
-msgid "madison <replaceable>/[ pkg(s) ]</replaceable>"
-msgstr "madison <replaceable>/[ pacote(s) ]</replaceable>"
+msgid "madison <replaceable>[ pkg(s) ]</replaceable>"
+msgstr "madison <replaceable>[ pacote(s) ]</replaceable>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-cache.8.xml:267
@@ -1306,7 +1306,7 @@ msgstr ""
 "<literal>Dir::Cache::pkgcache</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:288 apt-ftparchive.1.xml:572 apt-get.8.xml:393
+#: apt-cache.8.xml:288 apt-ftparchive.1.xml:571 apt-get.8.xml:393
 #: apt-sortpkgs.1.xml:61
 msgid "<option>-s</option>"
 msgstr "<option>-s</option>"
@@ -1332,12 +1332,12 @@ msgstr ""
 "pacote. Item de Configuração: <literal>Dir::Cache::srcpkgcache</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>-q</option>"
 msgstr "<option>-q</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>--quiet</option>"
 msgstr "<option>--quiet</option>"
 
@@ -1418,16 +1418,9 @@ msgstr "<option>--no-enhances</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-cache.8.xml:317
-#, fuzzy
-#| msgid ""
-#| "Per default the <literal>depends</literal> and <literal>rdepends</"
-#| "literal> print all dependencies. This can be twicked with these flags "
-#| "which will omit the specified dependency type.  Configuration Item: "
-#| "<literal>APT::Cache::Show<replaceable>DependencyType</replaceable></"
-#| "literal> e.g. <literal>APT::Cache::ShowRecommends</literal>."
 msgid ""
 "Per default the <literal>depends</literal> and <literal>rdepends</literal> "
-"print all dependencies. This can be tweaked with these flags which will omit "
+"print all dependencies. This can be twicked with these flags which will omit "
 "the specified dependency type.  Configuration Item: <literal>APT::Cache::"
 "Show<replaceable>DependencyType</replaceable></literal> e.g. <literal>APT::"
 "Cache::ShowRecommends</literal>."
@@ -1458,7 +1451,7 @@ msgstr ""
 "<literal>APT::Cache::ShowFull</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:584
+#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:583
 msgid "<option>-a</option>"
 msgstr "<option>-a</option>"
 
@@ -1575,13 +1568,13 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist>
 #: apt-cache.8.xml:367 apt-cdrom.8.xml:153 apt-config.8.xml:101
-#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:612 apt-get.8.xml:570
+#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:611 apt-get.8.xml:570
 #: apt-mark.8.xml:140 apt-sortpkgs.1.xml:67
 msgid "&apt-commonoptions;"
 msgstr "&apt-commonoptions;"
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:175 apt-mark.8.xml:144
+#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:172 apt-mark.8.xml:144
 #: apt.conf.5.xml:1093 apt_preferences.5.xml:697
 msgid "Files"
 msgstr "Ficheiros"
@@ -1593,8 +1586,8 @@ msgstr "&file-sourceslist; &file-statelists;"
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:379 apt-cdrom.8.xml:158 apt-config.8.xml:106
-#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:628 apt-get.8.xml:585
-#: apt-key.8.xml:196 apt-mark.8.xml:150 apt-secure.8.xml:185
+#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:627 apt-get.8.xml:585
+#: apt-key.8.xml:193 apt-mark.8.xml:150 apt-secure.8.xml:185
 #: apt-sortpkgs.1.xml:72 apt.conf.5.xml:1099 apt_preferences.5.xml:704
 #: sources.list.5.xml:234
 msgid "See Also"
@@ -1607,7 +1600,7 @@ msgstr "&apt-conf;, &sources-list;, &apt-get;"
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:384 apt-cdrom.8.xml:163 apt-config.8.xml:111
-#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:632 apt-get.8.xml:591
+#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:631 apt-get.8.xml:591
 #: apt-mark.8.xml:154 apt-sortpkgs.1.xml:76
 msgid "Diagnostics"
 msgstr "Diagnóstico"
@@ -1737,12 +1730,12 @@ msgstr ""
 "\"variablelist\" id=\"0\"/>"
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cdrom.8.xml:94 apt-key.8.xml:161
+#: apt-cdrom.8.xml:94 apt-key.8.xml:158
 msgid "Options"
 msgstr "Opções"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:540 apt-get.8.xml:345
+#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:539 apt-get.8.xml:345
 msgid "<option>-d</option>"
 msgstr "<option>-d</option>"
 
@@ -1995,7 +1988,7 @@ msgid "Just show the contents of the configuration space."
 msgstr "Apenas mostra o conteúdo do espaço de configuração."
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:629
+#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:628
 #: apt-sortpkgs.1.xml:73
 msgid "&apt-conf;"
 msgstr "&apt-conf;"
@@ -3144,25 +3137,43 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-ftparchive.1.xml:531
+#, fuzzy
+#| msgid ""
+#| "Values for the additional metadata fields in the Release file are taken "
+#| "from the corresponding variables under <literal>APT::FTPArchive::Release</"
+#| "literal>, e.g. <literal>APT::FTPArchive::Release::Origin</literal>.  The "
+#| "supported fields are: <literal>Origin</literal>, <literal>Label</"
+#| "literal>, <literal>Suite</literal>, <literal>Version</literal>, "
+#| "<literal>Codename</literal>, <literal>Date</literal>, <literal>Valid-"
+#| "Until</literal>, <literal>Architectures</literal>, <literal>Components</"
+#| "literal>, <literal>Description</literal>."
 msgid ""
 "Generate the given checksum. These options default to on, when turned off "
 "the generated index files will not have the checksum fields where possible.  "
 "Configuration Items: <literal>APT::FTPArchive::<replaceable>Checksum</"
 "replaceable></literal> and <literal>APT::FTPArchive::<replaceable>Index</"
 "replaceable>::<replaceable>Checksum</replaceable></literal> where "
-"<literal><replaceable>Index</replaceable></literal> can be "
-"<literal>Packages</literal>, <literal>Sources</literal> or <literal>Release</"
-"literal> and <literal><replaceable>Checksum</replaceable></literal> can be "
-"<literal>MD5</literal>, <literal>SHA1</literal> or <literal>SHA256</literal>."
+"<literal>Index</literal> can be <literal>Packages</literal>, "
+"<literal>Sources</literal> or <literal>Release</literal> and "
+"<literal>Checksum</literal> can be <literal>MD5</literal>, <literal>SHA1</"
+"literal> or <literal>SHA256</literal>."
 msgstr ""
+"Valores para os campos de metadados adicionais no ficheiro Release são "
+"tomados a partir das variáveis correspondentes sob <literal>APT::FTPArchive::"
+"Release</literal>, ex. <literal>APT::FTPArchive::Release::Origin</literal>.  "
+"Os campos suportados são: <literal>Origin</literal>, <literal>Label</"
+"literal>, <literal>Suite</literal>, <literal>Version</literal>, "
+"<literal>Codename</literal>, <literal>Date</literal>, "
+"<literal>Architectures</literal>, <literal>Components</literal>, "
+"<literal>Description</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:540
+#: apt-ftparchive.1.xml:539
 msgid "<option>--db</option>"
 msgstr "<option>--db</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:542
+#: apt-ftparchive.1.xml:541
 msgid ""
 "Use a binary caching DB. This has no effect on the generate command.  "
 "Configuration Item: <literal>APT::FTPArchive::DB</literal>."
@@ -3171,7 +3182,7 @@ msgstr ""
 "generate. Item de configuração: <literal>APT::FTPArchive::DB</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:548
+#: apt-ftparchive.1.xml:547
 msgid ""
 "Quiet; produces output suitable for logging, omitting progress indicators.  "
 "More q's will produce more quiet up to a maximum of 2. You can also use "
@@ -3185,12 +3196,12 @@ msgstr ""
 "<literal>quiet</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:554
+#: apt-ftparchive.1.xml:553
 msgid "<option>--delink</option>"
 msgstr "<option>--delink</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:556
+#: apt-ftparchive.1.xml:555
 msgid ""
 "Perform Delinking. If the <literal>External-Links</literal> setting is used "
 "then this option actually enables delinking of the files. It defaults to on "
@@ -3203,12 +3214,12 @@ msgstr ""
 "option>. Item de Configuração: <literal>APT::FTPArchive::DeLinkAct</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:562
+#: apt-ftparchive.1.xml:561
 msgid "<option>--contents</option>"
 msgstr "<option>--contents</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:564
+#: apt-ftparchive.1.xml:563
 msgid ""
 "Perform contents generation. When this option is set and package indexes are "
 "being generated with a cache DB then the file listing will also be extracted "
@@ -3224,12 +3235,12 @@ msgstr ""
 "de Configuração: <literal>APT::FTPArchive::Contents</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:572
+#: apt-ftparchive.1.xml:571
 msgid "<option>--source-override</option>"
 msgstr "<option>--source-override</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:574
+#: apt-ftparchive.1.xml:573
 msgid ""
 "Select the source override file to use with the <literal>sources</literal> "
 "command.  Configuration Item: <literal>APT::FTPArchive::SourceOverride</"
@@ -3240,12 +3251,12 @@ msgstr ""
 "SourceOverride</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:578
+#: apt-ftparchive.1.xml:577
 msgid "<option>--readonly</option>"
 msgstr "<option>--readonly</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:580
+#: apt-ftparchive.1.xml:579
 msgid ""
 "Make the caching databases read only.  Configuration Item: <literal>APT::"
 "FTPArchive::ReadOnlyDB</literal>."
@@ -3254,12 +3265,12 @@ msgstr ""
 "<literal>APT::FTPArchive::ReadOnlyDB</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:584
+#: apt-ftparchive.1.xml:583
 msgid "<option>--arch</option>"
 msgstr "<option>--arch</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:585
+#: apt-ftparchive.1.xml:584
 msgid ""
 "Accept in the <literal>packages</literal> and <literal>contents</literal> "
 "commands only package files matching <literal>*_arch.deb</literal> or "
@@ -3273,12 +3284,12 @@ msgstr ""
 "FTPArchive::Architecture</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:591
+#: apt-ftparchive.1.xml:590
 msgid "<option>APT::FTPArchive::AlwaysStat</option>"
 msgstr "<option>APT::FTPArchive::AlwaysStat</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:593
+#: apt-ftparchive.1.xml:592
 msgid ""
 "&apt-ftparchive; caches as much as possible of metadata in a cachedb. If "
 "packages are recompiled and/or republished with the same version again, this "
@@ -3302,12 +3313,12 @@ msgstr ""
 "as verificações extras serão desnecessárias."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:603
+#: apt-ftparchive.1.xml:602
 msgid "<option>APT::FTPArchive::LongDescription</option>"
 msgstr "<option>APT::FTPArchive::LongDescription</option>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:605
+#: apt-ftparchive.1.xml:604
 msgid ""
 "This configuration option defaults to \"<literal>true</literal>\" and should "
 "only be set to <literal>\"false\"</literal> if the Archive generated with "
@@ -3322,19 +3333,19 @@ msgstr ""
 "<filename>Translation-en</filename> só pode ser criado no comando generate."
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-ftparchive.1.xml:617 apt.conf.5.xml:1087 apt_preferences.5.xml:544
+#: apt-ftparchive.1.xml:616 apt.conf.5.xml:1087 apt_preferences.5.xml:544
 #: sources.list.5.xml:198
 msgid "Examples"
 msgstr "Examples"
 
 #. type: Content of: <refentry><refsect1><para><programlisting>
-#: apt-ftparchive.1.xml:623
+#: apt-ftparchive.1.xml:622
 #, no-wrap
 msgid "<command>apt-ftparchive</command> packages <replaceable>directory</replaceable> | <command>gzip</command> > <filename>Packages.gz</filename>\n"
 msgstr "<command>apt-ftparchive</command> pacotes <replaceable>directório</replaceable> | <command>gzip</command> > <filename>Packages.gz</filename>\n"
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:619
+#: apt-ftparchive.1.xml:618
 msgid ""
 "To create a compressed Packages file for a directory containing binary "
 "packages (.deb): <placeholder type=\"programlisting\" id=\"0\"/>"
@@ -3343,7 +3354,7 @@ msgstr ""
 "pacotes binários (.deb): <placeholder type=\"programlisting\" id=\"0\"/>"
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:633
+#: apt-ftparchive.1.xml:632
 msgid ""
 "<command>apt-ftparchive</command> returns zero on normal operation, decimal "
 "100 on error."
@@ -3813,7 +3824,7 @@ msgstr ""
 #: apt-get.8.xml:282
 msgid ""
 "<literal>download</literal> will download the given binary package into the "
-"current directory."
+"current directoy."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
@@ -4677,33 +4688,30 @@ msgstr ""
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-key.8.xml:131
 msgid ""
-"Update the local keyring with the archive keyring and remove from the local "
-"keyring the archive keys which are no longer valid.  The archive keyring is "
-"shipped in the <literal>archive-keyring</literal> package of your "
-"distribution, e.g. the <literal>debian-archive-keyring</literal> package in "
-"Debian."
+"Update the local keyring with the keyring of Debian archive keys and removes "
+"from the keyring the archive keys which are no longer valid."
 msgstr ""
+"Actualiza o chaveiro local com o chaveiro das chaves de arquivos Debian e "
+"remove do chaveiro as chaves de arquivo que já não são válidas."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:141
+#: apt-key.8.xml:140
 #, fuzzy
 #| msgid "update"
 msgid "net-update"
 msgstr "update"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:145
+#: apt-key.8.xml:144
 msgid ""
-"Work similar to the <command>update</command> command above, but get the "
-"archive keyring from an URI instead and validate it against a master key.  "
-"This requires an installed &wget; and an APT build configured to have a "
-"server to fetch from and a master keyring to validate.  APT in Debian does "
-"not support this command and relies on <command>update</command> instead, "
-"but Ubuntu's APT does."
+"Update the local keyring with the keys of a key server and removes from the "
+"keyring the archive keys which are no longer valid. This requires an "
+"installed wget and an APT build configured to have a server to fetch from. "
+"APT in Debian does not support this command, but Ubuntu's APT does."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:162
+#: apt-key.8.xml:159
 msgid ""
 "Note that options need to be defined before the commands described in the "
 "previous section."
@@ -4712,12 +4720,12 @@ msgstr ""
 "secção prévia."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:164
+#: apt-key.8.xml:161
 msgid "--keyring <replaceable>filename</replaceable>"
 msgstr "--keyring <replaceable>nome-de-ficheiro</replaceable>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:165
+#: apt-key.8.xml:162
 msgid ""
 "With this option it is possible to specify a specific keyring file the "
 "command should operate on. The default is that a command is executed on the "
@@ -4734,44 +4742,44 @@ msgstr ""
 "chaves são adicionadas a este."
 
 #. type: Content of: <refentry><refsect1><variablelist>
-#: apt-key.8.xml:178
+#: apt-key.8.xml:175
 msgid "&file-trustedgpg;"
 msgstr "&file-trustedgpg;"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:180
+#: apt-key.8.xml:177
 msgid "<filename>/etc/apt/trustdb.gpg</filename>"
 msgstr "<filename>/etc/apt/trustdb.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:181
+#: apt-key.8.xml:178
 msgid "Local trust database of archive keys."
 msgstr "Base de dados local de confiança de chaves de arquivos."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:184
+#: apt-key.8.xml:181
 msgid "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 msgstr "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:185
+#: apt-key.8.xml:182
 msgid "Keyring of Debian archive trusted keys."
 msgstr "Chaveiro das chaves de confiança dos arquivos Debian."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:188
+#: apt-key.8.xml:185
 msgid ""
 "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
 msgstr ""
 "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:189
+#: apt-key.8.xml:186
 msgid "Keyring of Debian archive removed trusted keys."
 msgstr "Chaveiro das chaves de confiança removidas dos arquivos Debian."
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:198
+#: apt-key.8.xml:195
 msgid "&apt-get;, &apt-secure;"
 msgstr "&apt-get;, &apt-secure;"
 
@@ -5497,12 +5505,11 @@ msgstr ""
 #| "period (.) characters - otherwise they will be silently ignored."
 msgid ""
 "all files in <literal>Dir::Etc::Parts</literal> in alphanumeric ascending "
-"order which have either no or \"<literal>conf</literal>\" as filename "
-"extension and which only contain alphanumeric, hyphen (-), underscore (_) "
-"and period (.) characters.  Otherwise APT will print a notice that it has "
-"ignored a file if the file doesn't match a pattern in the <literal>Dir::"
-"Ignore-Files-Silently</literal> configuration list - in this case it will be "
-"silently ignored."
+"order which have no or \"<literal>conf</literal>\" as filename extension and "
+"which only contain alphanumeric, hyphen (-), underscore (_) and period (.) "
+"characters.  Otherwise APT will print a notice that it has ignored a file if "
+"the file doesn't match a pattern in the <literal>Dir::Ignore-Files-Silently</"
+"literal> configuration list - in this case it will be silently ignored."
 msgstr ""
 "todos os ficheiros em <literal>Dir::Etc::Parts</literal> em ordem ascendente "
 "alfanumérica sem extensão ou com \"<literal>conf</literal>\" como extensão "
@@ -6523,9 +6530,9 @@ msgid ""
 "Note that at run time the <literal>Dir::Bin::<replaceable>Methodname</"
 "replaceable></literal> will be checked: If this setting exists the method "
 "will only be used if this file exists, e.g. for the bzip2 method (the "
-"inbuilt) setting is: <placeholder type=\"literallayout\" id=\"0\"/> Note "
-"also that list entries specified on the command line will be added at the "
-"end of the list specified in the configuration files, but before the default "
+"inbuilt) setting is <placeholder type=\"literallayout\" id=\"0\"/> Note also "
+"that list entries specified on the command line will be added at the end of "
+"the list specified in the configuration files, but before the default "
 "entries. To prefer a type in this case over the ones specified in the "
 "configuration files you can set the option direct - not in list style.  This "
 "will not override the defined list, it will only prefix the list with this "
@@ -6546,7 +6553,7 @@ msgstr ""
 #: apt.conf.5.xml:449
 msgid ""
 "The special type <literal>uncompressed</literal> can be used to give "
-"uncompressed files a preference, but note that most archives don't provide "
+"uncompressed files a preference, but note that most archives doesn't provide "
 "uncompressed files so this is mostly only useable for local mirrors."
 msgstr ""
 
@@ -7821,8 +7828,8 @@ msgstr ""
 msgid ""
 "Note that the files in the <filename>/etc/apt/preferences.d</filename> "
 "directory are parsed in alphanumeric ascending order and need to obey the "
-"following naming convention: The files have either no or \"<literal>pref</"
-"literal>\" as filename extension and only contain alphanumeric, hyphen (-), "
+"following naming convention: The files have no or \"<literal>pref</literal>"
+"\" as filename extension and which only contain alphanumeric, hyphen (-), "
 "underscore (_) and period (.) characters.  Otherwise APT will print a notice "
 "that it has ignored a file if the file doesn't match a pattern in the "
 "<literal>Dir::Ignore-Files-Silently</literal> configuration list - in this "
@@ -8288,7 +8295,7 @@ msgid ""
 "APT also supports pinning by glob() expressions and regular expressions "
 "surrounded by /. For example, the following example assigns the priority 500 "
 "to all packages from experimental where the name starts with gnome (as a glob"
-"()-like expression) or contains the word kde (as a POSIX extended regular "
+"()-like expression or contains the word kde (as a POSIX extended regular "
 "expression surrounded by slashes)."
 msgstr ""
 
@@ -8312,7 +8319,7 @@ msgstr ""
 #: apt_preferences.5.xml:279
 msgid ""
 "The rule for those expressions is that they can occur anywhere where a "
-"string can occur. Thus, the following pin assigns the priority 990 to all "
+"string can occur. Those, the following pin assigns the priority 990 to all "
 "packages from a release starting with karmic."
 msgstr ""
 
@@ -11123,13 +11130,6 @@ msgstr "  # apt-get -o dir::cache::archives=\"/disc/\" dist-upgrade"
 msgid "Which will use the already fetched archives on the disc."
 msgstr "O qual irá usar os arquivos já obtidos e que estão no disco."
 
-#~ msgid ""
-#~ "Update the local keyring with the keyring of Debian archive keys and "
-#~ "removes from the keyring the archive keys which are no longer valid."
-#~ msgstr ""
-#~ "Actualiza o chaveiro local com o chaveiro das chaves de arquivos Debian e "
-#~ "remove do chaveiro as chaves de arquivo que já não são válidas."
-
 #~ msgid "<option>--md5</option>"
 #~ msgstr "<option>--md5</option>"
 
index ccb95aca6846234eaaee73893a947fb31069eb5b..488350186083f92dca43c1368009f02d5ffdb9ca 100644 (file)
@@ -9,7 +9,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
-"POT-Creation-Date: 2011-07-05 13:23+0200\n"
+"POT-Creation-Date: 2011-06-08 16:54+0300\n"
 "PO-Revision-Date: 2004-09-20 17:02+0000\n"
 "Last-Translator: André Luís Lopes <andrelop@debian.org>\n"
 "Language-Team: <debian-l10n-portuguese@lists.debian.org>\n"
@@ -943,8 +943,11 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
 #: apt-cache.8.xml:266
-msgid "madison <replaceable>/[ pkg(s) ]</replaceable>"
+#, fuzzy
+msgid "madison <replaceable>[ pkg(s) ]</replaceable>"
 msgstr ""
+"<programlisting>\n"
+"apt-get install <replaceable>pacote</replaceable>/testing\n"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-cache.8.xml:267
@@ -984,7 +987,7 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:288 apt-ftparchive.1.xml:572 apt-get.8.xml:393
+#: apt-cache.8.xml:288 apt-ftparchive.1.xml:571 apt-get.8.xml:393
 #: apt-sortpkgs.1.xml:61
 msgid "<option>-s</option>"
 msgstr ""
@@ -1005,12 +1008,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>-q</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:296 apt-ftparchive.1.xml:546 apt-get.8.xml:383
+#: apt-cache.8.xml:296 apt-ftparchive.1.xml:545 apt-get.8.xml:383
 msgid "<option>--quiet</option>"
 msgstr ""
 
@@ -1085,7 +1088,7 @@ msgstr ""
 #: apt-cache.8.xml:317
 msgid ""
 "Per default the <literal>depends</literal> and <literal>rdepends</literal> "
-"print all dependencies. This can be tweaked with these flags which will omit "
+"print all dependencies. This can be twicked with these flags which will omit "
 "the specified dependency type.  Configuration Item: <literal>APT::Cache::"
 "Show<replaceable>DependencyType</replaceable></literal> e.g. <literal>APT::"
 "Cache::ShowRecommends</literal>."
@@ -1109,7 +1112,7 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:584
+#: apt-cache.8.xml:328 apt-cdrom.8.xml:134 apt-ftparchive.1.xml:583
 msgid "<option>-a</option>"
 msgstr ""
 
@@ -1205,13 +1208,13 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist>
 #: apt-cache.8.xml:367 apt-cdrom.8.xml:153 apt-config.8.xml:101
-#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:612 apt-get.8.xml:570
+#: apt-extracttemplates.1.xml:70 apt-ftparchive.1.xml:611 apt-get.8.xml:570
 #: apt-mark.8.xml:140 apt-sortpkgs.1.xml:67
 msgid "&apt-commonoptions;"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:175 apt-mark.8.xml:144
+#: apt-cache.8.xml:372 apt-get.8.xml:575 apt-key.8.xml:172 apt-mark.8.xml:144
 #: apt.conf.5.xml:1093 apt_preferences.5.xml:697
 msgid "Files"
 msgstr ""
@@ -1223,8 +1226,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:379 apt-cdrom.8.xml:158 apt-config.8.xml:106
-#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:628 apt-get.8.xml:585
-#: apt-key.8.xml:196 apt-mark.8.xml:150 apt-secure.8.xml:185
+#: apt-extracttemplates.1.xml:77 apt-ftparchive.1.xml:627 apt-get.8.xml:585
+#: apt-key.8.xml:193 apt-mark.8.xml:150 apt-secure.8.xml:185
 #: apt-sortpkgs.1.xml:72 apt.conf.5.xml:1099 apt_preferences.5.xml:704
 #: sources.list.5.xml:234
 #, fuzzy
@@ -1238,7 +1241,7 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt-cache.8.xml:384 apt-cdrom.8.xml:163 apt-config.8.xml:111
-#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:632 apt-get.8.xml:591
+#: apt-extracttemplates.1.xml:81 apt-ftparchive.1.xml:631 apt-get.8.xml:591
 #: apt-mark.8.xml:154 apt-sortpkgs.1.xml:76
 msgid "Diagnostics"
 msgstr ""
@@ -1338,12 +1341,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-cdrom.8.xml:94 apt-key.8.xml:161
+#: apt-cdrom.8.xml:94 apt-key.8.xml:158
 msgid "Options"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:540 apt-get.8.xml:345
+#: apt-cdrom.8.xml:98 apt-ftparchive.1.xml:539 apt-get.8.xml:345
 msgid "<option>-d</option>"
 msgstr ""
 
@@ -1548,7 +1551,7 @@ msgid "Just show the contents of the configuration space."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:629
+#: apt-config.8.xml:107 apt-extracttemplates.1.xml:78 apt-ftparchive.1.xml:628
 #: apt-sortpkgs.1.xml:73
 #, fuzzy
 msgid "&apt-conf;"
@@ -2478,26 +2481,26 @@ msgid ""
 "Configuration Items: <literal>APT::FTPArchive::<replaceable>Checksum</"
 "replaceable></literal> and <literal>APT::FTPArchive::<replaceable>Index</"
 "replaceable>::<replaceable>Checksum</replaceable></literal> where "
-"<literal><replaceable>Index</replaceable></literal> can be "
-"<literal>Packages</literal>, <literal>Sources</literal> or <literal>Release</"
-"literal> and <literal><replaceable>Checksum</replaceable></literal> can be "
-"<literal>MD5</literal>, <literal>SHA1</literal> or <literal>SHA256</literal>."
+"<literal>Index</literal> can be <literal>Packages</literal>, "
+"<literal>Sources</literal> or <literal>Release</literal> and "
+"<literal>Checksum</literal> can be <literal>MD5</literal>, <literal>SHA1</"
+"literal> or <literal>SHA256</literal>."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:540
+#: apt-ftparchive.1.xml:539
 msgid "<option>--db</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:542
+#: apt-ftparchive.1.xml:541
 msgid ""
 "Use a binary caching DB. This has no effect on the generate command.  "
 "Configuration Item: <literal>APT::FTPArchive::DB</literal>."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:548
+#: apt-ftparchive.1.xml:547
 msgid ""
 "Quiet; produces output suitable for logging, omitting progress indicators.  "
 "More q's will produce more quiet up to a maximum of 2. You can also use "
@@ -2506,12 +2509,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:554
+#: apt-ftparchive.1.xml:553
 msgid "<option>--delink</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:556
+#: apt-ftparchive.1.xml:555
 msgid ""
 "Perform Delinking. If the <literal>External-Links</literal> setting is used "
 "then this option actually enables delinking of the files. It defaults to on "
@@ -2520,12 +2523,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:562
+#: apt-ftparchive.1.xml:561
 msgid "<option>--contents</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:564
+#: apt-ftparchive.1.xml:563
 msgid ""
 "Perform contents generation. When this option is set and package indexes are "
 "being generated with a cache DB then the file listing will also be extracted "
@@ -2535,12 +2538,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:572
+#: apt-ftparchive.1.xml:571
 msgid "<option>--source-override</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:574
+#: apt-ftparchive.1.xml:573
 msgid ""
 "Select the source override file to use with the <literal>sources</literal> "
 "command.  Configuration Item: <literal>APT::FTPArchive::SourceOverride</"
@@ -2548,24 +2551,24 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:578
+#: apt-ftparchive.1.xml:577
 msgid "<option>--readonly</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:580
+#: apt-ftparchive.1.xml:579
 msgid ""
 "Make the caching databases read only.  Configuration Item: <literal>APT::"
 "FTPArchive::ReadOnlyDB</literal>."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:584
+#: apt-ftparchive.1.xml:583
 msgid "<option>--arch</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:585
+#: apt-ftparchive.1.xml:584
 msgid ""
 "Accept in the <literal>packages</literal> and <literal>contents</literal> "
 "commands only package files matching <literal>*_arch.deb</literal> or "
@@ -2574,12 +2577,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:591
+#: apt-ftparchive.1.xml:590
 msgid "<option>APT::FTPArchive::AlwaysStat</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:593
+#: apt-ftparchive.1.xml:592
 msgid ""
 "&apt-ftparchive; caches as much as possible of metadata in a cachedb. If "
 "packages are recompiled and/or republished with the same version again, this "
@@ -2593,12 +2596,12 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-ftparchive.1.xml:603
+#: apt-ftparchive.1.xml:602
 msgid "<option>APT::FTPArchive::LongDescription</option>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-ftparchive.1.xml:605
+#: apt-ftparchive.1.xml:604
 msgid ""
 "This configuration option defaults to \"<literal>true</literal>\" and should "
 "only be set to <literal>\"false\"</literal> if the Archive generated with "
@@ -2608,27 +2611,27 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><title>
-#: apt-ftparchive.1.xml:617 apt.conf.5.xml:1087 apt_preferences.5.xml:544
+#: apt-ftparchive.1.xml:616 apt.conf.5.xml:1087 apt_preferences.5.xml:544
 #: sources.list.5.xml:198
 #, fuzzy
 msgid "Examples"
 msgstr "Exemplos"
 
 #. type: Content of: <refentry><refsect1><para><programlisting>
-#: apt-ftparchive.1.xml:623
+#: apt-ftparchive.1.xml:622
 #, no-wrap
 msgid "<command>apt-ftparchive</command> packages <replaceable>directory</replaceable> | <command>gzip</command> > <filename>Packages.gz</filename>\n"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:619
+#: apt-ftparchive.1.xml:618
 msgid ""
 "To create a compressed Packages file for a directory containing binary "
 "packages (.deb): <placeholder type=\"programlisting\" id=\"0\"/>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-ftparchive.1.xml:633
+#: apt-ftparchive.1.xml:632
 msgid ""
 "<command>apt-ftparchive</command> returns zero on normal operation, decimal "
 "100 on error."
@@ -2951,7 +2954,7 @@ msgstr ""
 #: apt-get.8.xml:282
 msgid ""
 "<literal>download</literal> will download the given binary package into the "
-"current directory."
+"current directoy."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
@@ -3635,38 +3638,33 @@ msgstr ""
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-key.8.xml:131
 msgid ""
-"Update the local keyring with the archive keyring and remove from the local "
-"keyring the archive keys which are no longer valid.  The archive keyring is "
-"shipped in the <literal>archive-keyring</literal> package of your "
-"distribution, e.g. the <literal>debian-archive-keyring</literal> package in "
-"Debian."
+"Update the local keyring with the keyring of Debian archive keys and removes "
+"from the keyring the archive keys which are no longer valid."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:141
+#: apt-key.8.xml:140
 msgid "net-update"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:145
+#: apt-key.8.xml:144
 msgid ""
-"Work similar to the <command>update</command> command above, but get the "
-"archive keyring from an URI instead and validate it against a master key.  "
-"This requires an installed &wget; and an APT build configured to have a "
-"server to fetch from and a master keyring to validate.  APT in Debian does "
-"not support this command and relies on <command>update</command> instead, "
-"but Ubuntu's APT does."
+"Update the local keyring with the keys of a key server and removes from the "
+"keyring the archive keys which are no longer valid. This requires an "
+"installed wget and an APT build configured to have a server to fetch from. "
+"APT in Debian does not support this command, but Ubuntu's APT does."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:162
+#: apt-key.8.xml:159
 msgid ""
 "Note that options need to be defined before the commands described in the "
 "previous section."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:164
+#: apt-key.8.xml:161
 #, fuzzy
 msgid "--keyring <replaceable>filename</replaceable>"
 msgstr ""
@@ -3674,7 +3672,7 @@ msgstr ""
 "apt-get install <replaceable>pacote</replaceable>/testing\n"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:165
+#: apt-key.8.xml:162
 msgid ""
 "With this option it is possible to specify a specific keyring file the "
 "command should operate on. The default is that a command is executed on the "
@@ -3685,44 +3683,44 @@ msgid ""
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist>
-#: apt-key.8.xml:178
+#: apt-key.8.xml:175
 msgid "&file-trustedgpg;"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:180
+#: apt-key.8.xml:177
 #, fuzzy
 msgid "<filename>/etc/apt/trustdb.gpg</filename>"
 msgstr "<filename>/etc/apt.conf</>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:181
+#: apt-key.8.xml:178
 msgid "Local trust database of archive keys."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:184
+#: apt-key.8.xml:181
 msgid "<filename>/usr/share/keyrings/debian-archive-keyring.gpg</filename>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:185
+#: apt-key.8.xml:182
 msgid "Keyring of Debian archive trusted keys."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><term>
-#: apt-key.8.xml:188
+#: apt-key.8.xml:185
 msgid ""
 "<filename>/usr/share/keyrings/debian-archive-removed-keys.gpg</filename>"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
-#: apt-key.8.xml:189
+#: apt-key.8.xml:186
 msgid "Keyring of Debian archive removed trusted keys."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><para>
-#: apt-key.8.xml:198
+#: apt-key.8.xml:195
 #, fuzzy
 msgid "&apt-get;, &apt-secure;"
 msgstr "&apt-get; &apt-cache; &apt-conf; &sources-list;"
@@ -4237,12 +4235,11 @@ msgstr ""
 #: apt.conf.5.xml:52
 msgid ""
 "all files in <literal>Dir::Etc::Parts</literal> in alphanumeric ascending "
-"order which have either no or \"<literal>conf</literal>\" as filename "
-"extension and which only contain alphanumeric, hyphen (-), underscore (_) "
-"and period (.) characters.  Otherwise APT will print a notice that it has "
-"ignored a file if the file doesn't match a pattern in the <literal>Dir::"
-"Ignore-Files-Silently</literal> configuration list - in this case it will be "
-"silently ignored."
+"order which have no or \"<literal>conf</literal>\" as filename extension and "
+"which only contain alphanumeric, hyphen (-), underscore (_) and period (.) "
+"characters.  Otherwise APT will print a notice that it has ignored a file if "
+"the file doesn't match a pattern in the <literal>Dir::Ignore-Files-Silently</"
+"literal> configuration list - in this case it will be silently ignored."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><orderedlist><listitem><para>
@@ -4940,9 +4937,9 @@ msgid ""
 "Note that at run time the <literal>Dir::Bin::<replaceable>Methodname</"
 "replaceable></literal> will be checked: If this setting exists the method "
 "will only be used if this file exists, e.g. for the bzip2 method (the "
-"inbuilt) setting is: <placeholder type=\"literallayout\" id=\"0\"/> Note "
-"also that list entries specified on the command line will be added at the "
-"end of the list specified in the configuration files, but before the default "
+"inbuilt) setting is <placeholder type=\"literallayout\" id=\"0\"/> Note also "
+"that list entries specified on the command line will be added at the end of "
+"the list specified in the configuration files, but before the default "
 "entries. To prefer a type in this case over the ones specified in the "
 "configuration files you can set the option direct - not in list style.  This "
 "will not override the defined list, it will only prefix the list with this "
@@ -4953,7 +4950,7 @@ msgstr ""
 #: apt.conf.5.xml:449
 msgid ""
 "The special type <literal>uncompressed</literal> can be used to give "
-"uncompressed files a preference, but note that most archives don't provide "
+"uncompressed files a preference, but note that most archives doesn't provide "
 "uncompressed files so this is mostly only useable for local mirrors."
 msgstr ""
 
@@ -5937,8 +5934,8 @@ msgstr ""
 msgid ""
 "Note that the files in the <filename>/etc/apt/preferences.d</filename> "
 "directory are parsed in alphanumeric ascending order and need to obey the "
-"following naming convention: The files have either no or \"<literal>pref</"
-"literal>\" as filename extension and only contain alphanumeric, hyphen (-), "
+"following naming convention: The files have no or \"<literal>pref</literal>"
+"\" as filename extension and which only contain alphanumeric, hyphen (-), "
 "underscore (_) and period (.) characters.  Otherwise APT will print a notice "
 "that it has ignored a file if the file doesn't match a pattern in the "
 "<literal>Dir::Ignore-Files-Silently</literal> configuration list - in this "
@@ -6402,7 +6399,7 @@ msgid ""
 "APT also supports pinning by glob() expressions and regular expressions "
 "surrounded by /. For example, the following example assigns the priority 500 "
 "to all packages from experimental where the name starts with gnome (as a glob"
-"()-like expression) or contains the word kde (as a POSIX extended regular "
+"()-like expression or contains the word kde (as a POSIX extended regular "
 "expression surrounded by slashes)."
 msgstr ""
 
@@ -6423,7 +6420,7 @@ msgstr ""
 #: apt_preferences.5.xml:279
 msgid ""
 "The rule for those expressions is that they can occur anywhere where a "
-"string can occur. Thus, the following pin assigns the priority 990 to all "
+"string can occur. Those, the following pin assigns the priority 990 to all "
 "packages from a release starting with karmic."
 msgstr ""
 
index 837f07683b056ba2f18d4aa50cbd0e45f3f17e61..bf83563488e0d237da2e10d9d74ae393c995269a 100644 (file)
@@ -78,7 +78,7 @@
    <para>The format for a <filename>sources.list</filename> entry using the
    <literal>deb</literal> and <literal>deb-src</literal> types is:</para>
 
-   <literallayout>deb uri distribution [component1] [component2] [...]</literallayout>
+   <literallayout>deb [ options ] uri distribution [component1] [component2] [...]</literallayout>
 
    <para>The URI for the <literal>deb</literal> type must specify the base of the
    Debian distribution, from which APT will find the information it needs. 
    simultaneous anonymous users. APT also parallelizes connections to 
    different hosts to more effectively deal with sites with low bandwidth.</para>
 
+   <para><literal>options</literal> is always optional and needs to be surounded by
+   square brackets. It can consist of multiple settings in the form
+   <literal><replaceable>setting</replaceable>=<replaceable>value</replaceable></literal>.
+   Multiple settings are separated by spaces. The following settings are supported by APT,
+   note through that unsupported settings will be ignored silently:
+   <itemizedlist><listitem><para><literal>arch=<replaceable>arch1</replaceable>,<replaceable>arch2</replaceable>,…</literal>
+   can be used to specify for which architectures packages information should
+   be downloaded. If this option is not set all architectures defined by the
+   <literal>APT::Architectures</literal> option will be downloaded.</para></listitem>
+   <listitem><para><literal>trusted=yes</literal> can be set to indicate that packages
+   from this source are always authenificated even if the <filename>Release</filename> file
+   is not signed or the signature can't be checked. This disables parts of &apt-secure;
+   and should therefore only be used in a local and trusted context. <literal>trusted=no</literal>
+   is the opposite which handles even correctly authenificated sources as not authenificated.</para></listitem>
+   </itemizedlist></para>
+
    <para>It is important to list sources in order of preference, with the most
    preferred source listed first. Typically this will result in sorting
    by speed from fastest to slowest (CD-ROM followed by hosts on a local
@@ -206,6 +222,11 @@ deb http://security.debian.org/ &stable-codename;/updates main contrib non-free
    <para>Source line for the above</para>
    <literallayout>deb-src file:/home/jason/debian unstable main contrib non-free</literallayout>
 
+   <para>The first line gets package information for the architectures in <literal>APT::Architectures</literal>
+   while the second always retrieves <literal>amd64</literal> and <literal>armel</literal>.</para>
+   <literallayout>deb http://ftp.debian.org/debian &stable-codename; main
+deb [ arch=amd64,armel ] http://ftp.debian.org/debian &stable-codename; main</literallayout>
+
    <para>Uses HTTP to access the archive at archive.debian.org, and uses only
    the hamm/main area.</para>
    <literallayout>deb http://archive.debian.org/debian-archive hamm main</literallayout>
index 0762a2b28c70e343894906075e39de084711afdf..f289eb00dbe0334155c55ea25a0fe4aae1d18b0d 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#include "apt-ftparchive.h"
-    
+#include <config.h>
+
 #include <apt-pkg/error.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/cmndline.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/init.h>
-#include <config.h>
-#include <apti18n.h>
 #include <algorithm>
 
 #include <climits>
 #include <sys/time.h>
 #include <regex.h>
 
+#include "apt-ftparchive.h"
 #include "contents.h"
 #include "multicompress.h"
-#include "writer.h"    
+#include "writer.h"
+
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;    
@@ -205,7 +206,7 @@ bool PackageMap::GenPackages(Configuration &Setup,struct CacheDB::Stats &Stats)
    Packages.Output = 0;      // Just in case
    
    // Finish compressing
-   unsigned long Size;
+   unsigned long long Size;
    if (Comp.Finalize(Size) == false)
    {
       c0out << endl;
@@ -291,7 +292,7 @@ bool PackageMap::GenSources(Configuration &Setup,struct CacheDB::Stats &Stats)
    Sources.Output = 0;      // Just in case
    
    // Finish compressing
-   unsigned long Size;
+   unsigned long long Size;
    if (Comp.Finalize(Size) == false)
    {
       c0out << endl;
@@ -362,11 +363,11 @@ bool PackageMap::GenContents(Configuration &Setup,
       if (_error->PendingError() == true)
         return false;
       
-      unsigned long Size = Head.Size();
+      unsigned long long Size = Head.Size();
       unsigned char Buf[4096];
       while (Size != 0)
       {
-        unsigned long ToRead = Size;
+        unsigned long long ToRead = Size;
         if (Size > sizeof(Buf))
            ToRead = sizeof(Buf);
         
@@ -384,7 +385,7 @@ bool PackageMap::GenContents(Configuration &Setup,
       files associated with this contents file into one great big honking
       memory structure, then dump the sorted version */
    c0out << ' ' << this->Contents << ":" << flush;
-   for (vector<PackageMap>::iterator I = Begin; I != End; I++)
+   for (vector<PackageMap>::iterator I = Begin; I != End; ++I)
    {
       if (I->Contents != this->Contents)
         continue;
@@ -400,7 +401,7 @@ bool PackageMap::GenContents(Configuration &Setup,
    Contents.Finish();
    
    // Finish compressing
-   unsigned long Size;
+   unsigned long long Size;
    if (Comp.Finalize(Size) == false || _error->PendingError() == true)
    {
       c0out << endl;
@@ -770,10 +771,10 @@ bool Generate(CommandLine &CmdL)
    // Generate packages
    if (CmdL.FileSize() <= 2)
    {
-      for (vector<PackageMap>::iterator I = PkgList.begin(); I != PkgList.end(); I++)
+      for (vector<PackageMap>::iterator I = PkgList.begin(); I != PkgList.end(); ++I)
         if (I->GenPackages(Setup,Stats) == false)
            _error->DumpErrors();
-      for (vector<PackageMap>::iterator I = PkgList.begin(); I != PkgList.end(); I++)
+      for (vector<PackageMap>::iterator I = PkgList.begin(); I != PkgList.end(); ++I)
         if (I->GenSources(Setup,SrcStats) == false)
            _error->DumpErrors();
    }
@@ -782,7 +783,7 @@ bool Generate(CommandLine &CmdL)
       // Make a choice list out of the package list..
       RxChoiceList *List = new RxChoiceList[2*PkgList.size()+1];
       RxChoiceList *End = List;
-      for (vector<PackageMap>::iterator I = PkgList.begin(); I != PkgList.end(); I++)
+      for (vector<PackageMap>::iterator I = PkgList.begin(); I != PkgList.end(); ++I)
       {
         End->UserData = &(*I);
         End->Str = I->BaseDir.c_str();
@@ -832,7 +833,7 @@ bool Generate(CommandLine &CmdL)
    }
 
    // close the Translation master files
-   for (vector<PackageMap>::reverse_iterator I = PkgList.rbegin(); I != PkgList.rend(); I++)
+   for (vector<PackageMap>::reverse_iterator I = PkgList.rbegin(); I != PkgList.rend(); ++I)
       if (I->TransWriter != NULL && I->TransWriter->DecreaseRefCounter() == 0)
         delete I->TransWriter;
 
@@ -843,7 +844,7 @@ bool Generate(CommandLine &CmdL)
 
    // Sort the contents file list by date
    string ArchiveDir = Setup.FindDir("Dir::ArchiveDir");
-   for (vector<PackageMap>::iterator I = PkgList.begin(); I != PkgList.end(); I++)
+   for (vector<PackageMap>::iterator I = PkgList.begin(); I != PkgList.end(); ++I)
    {
       struct stat A;
       if (MultiCompress::GetStat(flCombine(ArchiveDir,I->Contents),
@@ -860,7 +861,7 @@ bool Generate(CommandLine &CmdL)
       hashes of the .debs this means they have not changed either so the 
       contents must be up to date. */
    unsigned long MaxContentsChange = Setup.FindI("Default::MaxContentsChange",UINT_MAX)*1024;
-   for (vector<PackageMap>::iterator I = PkgList.begin(); I != PkgList.end(); I++)
+   for (vector<PackageMap>::iterator I = PkgList.begin(); I != PkgList.end(); ++I)
    {
       // This record is not relevent
       if (I->ContentsDone == true ||
@@ -936,7 +937,7 @@ bool Clean(CommandLine &CmdL)
         _error->DumpErrors();
       
       string CacheDB = I->BinCacheDB;
-      for (; I != PkgList.end() && I->BinCacheDB == CacheDB; I++);
+      for (; I != PkgList.end() && I->BinCacheDB == CacheDB; ++I);
    }
    
    return true;
index b04244347f4bd258a0d593712a91287fc52eaafc..a1d70f912f8020c1ffebf62b2094028d530d93a0 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#include "cachedb.h"
+#include <config.h>
 
-#include <apti18n.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/md5.h>
 #include <apt-pkg/sha1.h>
-#include <apt-pkg/sha256.h>
+#include <apt-pkg/sha2.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/configuration.h>
     
 #include <netinet/in.h>       // htonl, etc
+
+#include <apti18n.h>
+#include "cachedb.h"
                                                                        /*}}}*/
 
 // CacheDB::ReadyDB - Ready the DB2                                    /*{{{*/
@@ -162,7 +164,8 @@ bool CacheDB::GetCurStat()
 // ---------------------------------------------------------------------
 bool CacheDB::GetFileInfo(string const &FileName, bool const &DoControl, bool const &DoContents,
                                bool const &GenContentsOnly, bool const &DoMD5, bool const &DoSHA1,
-                               bool const &DoSHA256, bool const &checkMtime)
+                               bool const &DoSHA256,   bool const &DoSHA512, 
+                          bool const &checkMtime)
 {
        this->FileName = FileName;
 
@@ -190,7 +193,9 @@ bool CacheDB::GetFileInfo(string const &FileName, bool const &DoControl, bool co
                || (DoContents && LoadContents(GenContentsOnly) == false)
                || (DoMD5 && GetMD5(false) == false)
                || (DoSHA1 && GetSHA1(false) == false)
-               || (DoSHA256 && GetSHA256(false) == false))
+               || (DoSHA256 && GetSHA256(false) == false)
+               || (DoSHA512 && GetSHA512(false) == false)
+           )
        {
                delete Fd;
                Fd = NULL;
@@ -412,6 +417,37 @@ bool CacheDB::GetSHA256(bool const &GenOnly)
    return true;
 }
                                                                        /*}}}*/
+// CacheDB::GetSHA256 - Get the SHA256 hash                            /*{{{*/
+// ---------------------------------------------------------------------
+/* */
+bool CacheDB::GetSHA512(bool const &GenOnly)
+{
+   // Try to read the control information out of the DB.
+   if ((CurStat.Flags & FlSHA512) == FlSHA512)
+   {
+      if (GenOnly == true)
+        return true;
+
+      SHA512Res = bytes2hex(CurStat.SHA512, sizeof(CurStat.SHA512));
+      return true;
+   }
+   
+   Stats.SHA512Bytes += CurStat.FileSize;
+        
+   if (Fd == NULL && OpenFile() == false)
+   {
+      return false;
+   }
+   SHA512Summation SHA512;
+   if (Fd->Seek(0) == false || SHA512.AddFD(Fd->Fd(),CurStat.FileSize) == false)
+      return false;
+   
+   SHA512Res = SHA512.Result();
+   hex2bytes(CurStat.SHA512, SHA512Res.data(), sizeof(CurStat.SHA512));
+   CurStat.Flags |= FlSHA512;
+   return true;
+}
+                                                                       /*}}}*/
 // CacheDB::Finish - Write back the cache structure                    /*{{{*/
 // ---------------------------------------------------------------------
 /* */
index 0ba80909ae557ae1737e137f440efd76881197dc..6bd5aa36c34c162b64e86ed7c439a058452f10be 100644 (file)
@@ -70,18 +70,22 @@ class CacheDB
    bool GetMD5(bool const &GenOnly);
    bool GetSHA1(bool const &GenOnly);
    bool GetSHA256(bool const &GenOnly);
+   bool GetSHA512(bool const &GenOnly);
    
    // Stat info stored in the DB, Fixed types since it is written to disk.
    enum FlagList {FlControl = (1<<0),FlMD5=(1<<1),FlContents=(1<<2),
-       FlSize=(1<<3), FlSHA1=(1<<4), FlSHA256=(1<<5)};
+                  FlSize=(1<<3), FlSHA1=(1<<4), FlSHA256=(1<<5), 
+                  FlSHA512=(1<<6)};
+
    struct StatStore
    {
       uint32_t Flags;
       uint32_t mtime;          
-      uint32_t FileSize;
+      uint64_t FileSize;
       uint8_t  MD5[16];
       uint8_t  SHA1[20];
       uint8_t  SHA256[32];
+      uint8_t  SHA512[64];
    } CurStat;
    struct StatStore OldStat;
    
@@ -98,6 +102,7 @@ class CacheDB
    string MD5Res;
    string SHA1Res;
    string SHA256Res;
+   string SHA512Res;
    
    // Runtime statistics
    struct Stats
@@ -106,14 +111,21 @@ class CacheDB
       double MD5Bytes;
       double SHA1Bytes;
       double SHA256Bytes;
+      double SHA512Bytes;
       unsigned long Packages;
       unsigned long Misses;  
-      unsigned long DeLinkBytes;
+      unsigned long long DeLinkBytes;
       
       inline void Add(const Stats &S) {
-        Bytes += S.Bytes; MD5Bytes += S.MD5Bytes; SHA1Bytes += S.SHA1Bytes; 
+        Bytes += S.Bytes; 
+         MD5Bytes += S.MD5Bytes; 
+         SHA1Bytes += S.SHA1Bytes; 
         SHA256Bytes += S.SHA256Bytes;
-        Packages += S.Packages; Misses += S.Misses; DeLinkBytes += S.DeLinkBytes;};
+        SHA512Bytes += S.SHA512Bytes;
+        Packages += S.Packages;
+         Misses += S.Misses; 
+         DeLinkBytes += S.DeLinkBytes;
+      };
       Stats() : Bytes(0), MD5Bytes(0), SHA1Bytes(0), SHA256Bytes(0), Packages(0), Misses(0), DeLinkBytes(0) {};
    } Stats;
    
@@ -121,11 +133,11 @@ class CacheDB
    inline bool DBFailed() {return Dbp != 0 && DBLoaded == false;};
    inline bool Loaded() {return DBLoaded == true;};
    
-   inline off_t GetFileSize(void) {return CurStat.FileSize;}
+   inline unsigned long long GetFileSize(void) {return CurStat.FileSize;}
    
    bool SetFile(string const &FileName,struct stat St,FileFd *Fd);
    bool GetFileInfo(string const &FileName, bool const &DoControl, bool const &DoContents, bool const &GenContentsOnly,
-                   bool const &DoMD5, bool const &DoSHA1, bool const &DoSHA256, bool const &checkMtime = false);
+                   bool const &DoMD5, bool const &DoSHA1, bool const &DoSHA256, bool const &DoSHA512, bool const &checkMtime = false);
    bool Finish();   
    
    bool Clean();
index eadced626125cfb574d0dca5544f8412d769131d..65d8dd1cebe87eca6292985967f74a938fc85647 100644 (file)
@@ -33,9 +33,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#include "contents.h"
+#include <config.h>
 
-#include <apti18n.h>
 #include <apt-pkg/debfile.h>
 #include <apt-pkg/extracttar.h>
 #include <apt-pkg/error.h>
@@ -43,6 +42,9 @@
 #include <stdlib.h>
 #include <string.h>
 #include <malloc.h>
+
+#include <apti18n.h>
+#include "contents.h"
                                                                        /*}}}*/
 
 // GenContents::~GenContents - Free allocated memory                   /*{{{*/
@@ -347,7 +349,7 @@ bool ContentsExtract::DoItem(Item &Itm,int &Fd)
 // ContentsExtract::TakeContents - Load the contents data              /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-bool ContentsExtract::TakeContents(const void *NewData,unsigned long Length)
+bool ContentsExtract::TakeContents(const void *NewData,unsigned long long Length)
 {
    if (Length == 0)
    {
index 5b5092b66b167dfd93fc84ac5ccf588807612bd1..f549ce17fce7b407ffa47eecde2705ee0ba30609 100644 (file)
@@ -71,15 +71,15 @@ class ContentsExtract : public pkgDirStream
 
    // The Data Block
    char *Data;
-   unsigned long MaxSize;
-   unsigned long CurSize;
+   unsigned long long MaxSize;
+   unsigned long long CurSize;
    void AddData(const char *Text);
    
    bool Read(debDebFile &Deb);
    
    virtual bool DoItem(Item &Itm,int &Fd);      
    void Reset() {CurSize = 0;};
-   bool TakeContents(const void *Data,unsigned long Length);
+   bool TakeContents(const void *Data,unsigned long long Length);
    void Add(GenContents &Contents,string const &Package);
    
    ContentsExtract() : Data(0), MaxSize(0), CurSize(0) {};
index f82879015f2a00b5b1d73363248145c3d738e332..bf0f858d99fd5732c1603c551d0029457ddc265c 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#include "multicompress.h"
-    
-#include <apti18n.h>
+#include <config.h>
+
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/md5.h>
-    
+
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <utime.h>
 #include <unistd.h>
-#include <iostream>    
+#include <iostream>
+
+#include "multicompress.h"
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
@@ -48,11 +50,11 @@ MultiCompress::MultiCompress(string const &Output,string const &Compress,
    string::const_iterator I = Compress.begin();
    for (; I != Compress.end();)
    {
-      for (; I != Compress.end() && isspace(*I); I++);
+      for (; I != Compress.end() && isspace(*I); ++I);
       
       // Grab a word
       string::const_iterator Start = I;
-      for (; I != Compress.end() && !isspace(*I); I++);
+      for (; I != Compress.end() && !isspace(*I); ++I);
 
       // Find the matching compressor
       std::vector<APT::Configuration::Compressor> Compressors = APT::Configuration::getCompressors();
@@ -129,11 +131,11 @@ bool MultiCompress::GetStat(string const &Output,string const &Compress,struct s
    bool DidStat = false;
    for (; I != Compress.end();)
    {
-      for (; I != Compress.end() && isspace(*I); I++);
+      for (; I != Compress.end() && isspace(*I); ++I);
       
       // Grab a word
       string::const_iterator Start = I;
-      for (; I != Compress.end() && !isspace(*I); I++);
+      for (; I != Compress.end() && !isspace(*I); ++I);
 
       // Find the matching compressor
       std::vector<APT::Configuration::Compressor> Compressors = APT::Configuration::getCompressors();
@@ -213,7 +215,7 @@ bool MultiCompress::Die()
 // MultiCompress::Finalize - Finish up writing                         /*{{{*/
 // ---------------------------------------------------------------------
 /* This is only necessary for statistics reporting. */
-bool MultiCompress::Finalize(unsigned long &OutSize)
+bool MultiCompress::Finalize(unsigned long long &OutSize)
 {
    OutSize = 0;
    if (Input == 0 || Die() == false)
@@ -381,7 +383,7 @@ bool MultiCompress::Child(int const &FD)
       stash a hash of the data to use later. */
    SetNonBlock(FD,false);
    unsigned char Buffer[32*1024];
-   unsigned long FileSize = 0;
+   unsigned long long FileSize = 0;
    MD5Summation MD5;
    while (1)
    {
@@ -443,7 +445,7 @@ bool MultiCompress::Child(int const &FD)
             
       // Compute the hash
       MD5Summation OldMD5;
-      unsigned long NewFileSize = 0;
+      unsigned long long NewFileSize = 0;
       while (1)
       {
         int Res = read(CompFd,Buffer,sizeof(Buffer));
index 19dede174bb33915cfd747057b73bd63b8491418..4839af47dba312dd9139ca05a36d65746bddc6bc 100644 (file)
@@ -54,7 +54,7 @@ class MultiCompress
    FILE *Input;
    unsigned long UpdateMTime;
    
-   bool Finalize(unsigned long &OutSize);
+   bool Finalize(unsigned long long &OutSize);
    bool OpenOld(int &Fd,pid_t &Proc);
    bool CloseOld(int Fd,pid_t Proc);
    static bool GetStat(string const &Output,string const &Compress,struct stat &St);
index 3cf10b89b5e7601c0c2c11b86321d73a51b0dccc..d363fd0fe9830a5510ef8aea848f960b346020aa 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#include "override.h"
-    
+#include <config.h>
+
 #include <apti18n.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/error.h>
 
 #include <stdio.h>
-    
+
 #include "override.h"
                                                                        /*}}}*/
 
@@ -34,7 +34,7 @@ bool Override::ReadOverride(string const &File,bool const &Source)
       return _error->Errno("fopen",_("Unable to open %s"),File.c_str());
    
    char Line[500];
-   unsigned long Counter = 0;
+   unsigned long long Counter = 0;
    while (fgets(Line,sizeof(Line),F) != 0)
    {
       Counter++;
@@ -57,7 +57,7 @@ bool Override::ReadOverride(string const &File,bool const &Source)
       for (; isspace(*End) == 0 && *End != 0; End++);
       if (*End == 0)
       {
-        _error->Warning(_("Malformed override %s line %lu #1"),File.c_str(),
+        _error->Warning(_("Malformed override %s line %llu #1"),File.c_str(),
                         Counter);
         continue;
       }      
@@ -71,7 +71,7 @@ bool Override::ReadOverride(string const &File,bool const &Source)
         for (; isspace(*End) == 0 && *End != 0; End++);
         if (*End == 0)
         {
-           _error->Warning(_("Malformed override %s line %lu #2"),File.c_str(),
+           _error->Warning(_("Malformed override %s line %llu #2"),File.c_str(),
                            Counter);
            continue;
         }
@@ -85,7 +85,7 @@ bool Override::ReadOverride(string const &File,bool const &Source)
       for (; isspace(*End) == 0 && *End != 0; End++);
       if (*End == 0)
       {
-        _error->Warning(_("Malformed override %s line %lu #3"),File.c_str(),
+        _error->Warning(_("Malformed override %s line %llu #3"),File.c_str(),
                         Counter);
         continue;
       }      
@@ -142,7 +142,7 @@ bool Override::ReadExtraOverride(string const &File,bool const &Source)
       return _error->Errno("fopen",_("Unable to open %s"),File.c_str());
   
    char Line[500];
-   unsigned long Counter = 0;
+   unsigned long long Counter = 0;
    while (fgets(Line,sizeof(Line),F) != 0)
    {
       Counter++;
@@ -163,7 +163,7 @@ bool Override::ReadExtraOverride(string const &File,bool const &Source)
       for (; isspace(*End) == 0 && *End != 0; End++);
       if (*End == 0)
       {
-        _error->Warning(_("Malformed override %s line %lu #1"),File.c_str(),
+        _error->Warning(_("Malformed override %s line %llu #1"),File.c_str(),
                         Counter);
         continue;
       }      
@@ -175,7 +175,7 @@ bool Override::ReadExtraOverride(string const &File,bool const &Source)
       for (; isspace(*End) == 0 && *End != 0; End++);
       if (*End == 0)
       {
-        _error->Warning(_("Malformed override %s line %lu #2"),File.c_str(),
+        _error->Warning(_("Malformed override %s line %llu #2"),File.c_str(),
                         Counter);
         continue;
       }
@@ -188,7 +188,7 @@ bool Override::ReadExtraOverride(string const &File,bool const &Source)
       for (; isspace(*(End-1)) && End > Value; End--);
       if (End == Value)
       {
-        _error->Warning(_("Malformed override %s line %lu #3"),File.c_str(),
+        _error->Warning(_("Malformed override %s line %llu #3"),File.c_str(),
                         Counter);
         continue;
       }      
@@ -231,7 +231,7 @@ Override::Item* Override::GetItem(string const &Package, string const &Architect
         if (R->OldMaint != "") result->OldMaint = R->OldMaint;
         if (R->NewMaint != "") result->NewMaint = R->NewMaint;
         for (map<string,string>::const_iterator foI = R->FieldOverride.begin();
-             foI != R->FieldOverride.end(); foI++)
+             foI != R->FieldOverride.end(); ++foI)
          {
            result->FieldOverride[foI->first] = foI->second;
         }
@@ -268,7 +268,7 @@ string Override::Item::SwapMaint(string const &Orig,bool &Failed)
       string::const_iterator Start = End;      
       for (; End < OldMaint.end() &&
           (End + 3 >= OldMaint.end() || End[0] != ' ' || 
-           End[1] != '/' || End[2] != '/'); End++);
+           End[1] != '/' || End[2] != '/'); ++End);
       if (stringcasecmp(Start,End,Orig.begin(),Orig.end()) == 0)
         return NewMaint;
       
@@ -276,7 +276,7 @@ string Override::Item::SwapMaint(string const &Orig,bool &Failed)
         break;
 
       // Skip the divider and white space
-      for (; End < OldMaint.end() && (*End == '/' || *End == ' '); End++);
+      for (; End < OldMaint.end() && (*End == '/' || *End == ' '); ++End);
    }
 #else
    if (stringcasecmp(OldMaint.begin(),OldMaint.end(),Orig.begin(),Orig.end()) == 0)
index 9f12cbf3d0e749204a1782485b06b76a558baf19..27e53faf81f90a6b3a318f94aa5cdcda6d4a0951 100644 (file)
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#include "writer.h"
-    
-#include <apti18n.h>
+#include <config.h>
+
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/aptconfiguration.h>
 #include <apt-pkg/md5.h>
-#include <apt-pkg/sha1.h>
-#include <apt-pkg/sha256.h>
+#include <apt-pkg/hashes.h>
 #include <apt-pkg/deblistparser.h>
 
 #include <sys/types.h>
 #include <iostream>
 #include <sstream>
 #include <memory>
-    
+
+#include "writer.h"
 #include "cachedb.h"
 #include "apt-ftparchive.h"
 #include "multicompress.h"
+
+#include <apti18n.h>
                                                                        /*}}}*/
 using namespace std;
 FTWScanner *FTWScanner::Owner;
@@ -64,6 +65,7 @@ FTWScanner::FTWScanner(string const &Arch): Arch(Arch)
    DoMD5 = _config->FindB("APT::FTPArchive::MD5",true);
    DoSHA1 = _config->FindB("APT::FTPArchive::SHA1",true);
    DoSHA256 = _config->FindB("APT::FTPArchive::SHA256",true);
+   DoSHA512 = _config->FindB("APT::FTPArchive::SHA512",true);
 }
                                                                        /*}}}*/
 // FTWScanner::Scanner - FTW Scanner                                   /*{{{*/
@@ -246,8 +248,8 @@ bool FTWScanner::LoadFileList(string const &Dir, string const &File)
 // ---------------------------------------------------------------------
 /* */
 bool FTWScanner::Delink(string &FileName,const char *OriginalPath,
-                       unsigned long &DeLinkBytes,
-                       off_t const &FileSize)
+                       unsigned long long &DeLinkBytes,
+                       unsigned long long const &FileSize)
 {
    // See if this isn't an internaly prefix'd file name.
    if (InternalPrefix.empty() == false &&
@@ -316,6 +318,7 @@ PackagesWriter::PackagesWriter(string const &DB,string const &Overrides,string c
    DoMD5 = _config->FindB("APT::FTPArchive::Packages::MD5",DoMD5);
    DoSHA1 = _config->FindB("APT::FTPArchive::Packages::SHA1",DoSHA1);
    DoSHA256 = _config->FindB("APT::FTPArchive::Packages::SHA256",DoSHA256);
+   DoSHA256 = _config->FindB("APT::FTPArchive::Packages::SHA512",true);
    DoAlwaysStat = _config->FindB("APT::FTPArchive::AlwaysStat", false);
    DoContents = _config->FindB("APT::FTPArchive::Contents",true);
    NoOverride = _config->FindB("APT::FTPArchive::NoOverrideMsg",false);
@@ -370,13 +373,13 @@ bool FTWScanner::SetExts(string const &Vals)
 bool PackagesWriter::DoPackage(string FileName)
 {      
    // Pull all the data we need form the DB
-   if (Db.GetFileInfo(FileName, true, DoContents, true, DoMD5, DoSHA1, DoSHA256, DoAlwaysStat)
+   if (Db.GetFileInfo(FileName, true, DoContents, true, DoMD5, DoSHA1, DoSHA256, DoSHA512, DoAlwaysStat)
                  == false)
    {
       return false;
    }
 
-   off_t FileSize = Db.GetFileSize();
+   unsigned long long FileSize = Db.GetFileSize();
    if (Delink(FileName,OriginalPath,Stats.DeLinkBytes,FileSize) == false)
       return false;
    
@@ -412,7 +415,7 @@ bool PackagesWriter::DoPackage(string FileName)
    }
 
    char Size[40];
-   sprintf(Size,"%lu", (unsigned long) FileSize);
+   sprintf(Size,"%llu", (unsigned long long) FileSize);
    
    // Strip the DirStrip prefix from the FileName and add the PathPrefix
    string NewFileName;
@@ -446,6 +449,8 @@ bool PackagesWriter::DoPackage(string FileName)
       SetTFRewriteData(Changes[End++], "SHA1", Db.SHA1Res.c_str());
    if (DoSHA256 == true)
       SetTFRewriteData(Changes[End++], "SHA256", Db.SHA256Res.c_str());
+   if (DoSHA512 == true)
+      SetTFRewriteData(Changes[End++], "SHA512", Db.SHA512Res.c_str());
    SetTFRewriteData(Changes[End++], "Filename", NewFileName.c_str());
    SetTFRewriteData(Changes[End++], "Priority", OverItem->Priority.c_str());
    SetTFRewriteData(Changes[End++], "Status", 0);
@@ -491,7 +496,7 @@ bool PackagesWriter::DoPackage(string FileName)
    }
 
    for (map<string,string>::const_iterator I = OverItem->FieldOverride.begin(); 
-        I != OverItem->FieldOverride.end(); I++) 
+        I != OverItem->FieldOverride.end(); ++I)
       SetTFRewriteData(Changes[End++],I->first.c_str(),I->second.c_str());
 
    SetTFRewriteData(Changes[End++], 0, 0);
@@ -607,7 +612,7 @@ bool SourcesWriter::DoPackage(string FileName)
    if (St.st_size > 128*1024)
       return _error->Error("DSC file '%s' is too large!",FileName.c_str());
          
-   if (BufSize < (unsigned)St.st_size+1)
+   if (BufSize < (unsigned long long)St.st_size+1)
    {
       BufSize = St.st_size+1;
       Buffer = (char *)realloc(Buffer,St.st_size+1);
@@ -623,6 +628,7 @@ bool SourcesWriter::DoPackage(string FileName)
    MD5Summation MD5;
    SHA1Summation SHA1;
    SHA256Summation SHA256;
+   SHA256Summation SHA512;
 
    if (DoMD5 == true)
       MD5.Add((unsigned char *)Start,BlkEnd - Start);
@@ -630,6 +636,8 @@ bool SourcesWriter::DoPackage(string FileName)
       SHA1.Add((unsigned char *)Start,BlkEnd - Start);
    if (DoSHA256 == true)
       SHA256.Add((unsigned char *)Start,BlkEnd - Start);
+   if (DoSHA512 == true)
+      SHA512.Add((unsigned char *)Start,BlkEnd - Start);
 
    // Add an extra \n to the end, just in case
    *BlkEnd++ = '\n';
@@ -740,6 +748,12 @@ bool SourcesWriter::DoPackage(string FileName)
                   << strippedName << "\n " << Tags.FindS("Checksums-Sha256");
    string const ChecksumsSha256 = ostreamSha256.str();
 
+   std::ostringstream ostreamSha512;
+   if (Tags.Exists("Checksums-Sha512"))
+      ostreamSha512 << "\n " << string(SHA512.Result()) << " " << St.st_size << " "
+                  << strippedName << "\n " << Tags.FindS("Checksums-Sha512");
+   string const ChecksumsSha512 = ostreamSha512.str();
+
    // Strip the DirStrip prefix from the FileName and add the PathPrefix
    string NewFileName;
    if (DirStrip.empty() == false &&
@@ -795,6 +809,8 @@ bool SourcesWriter::DoPackage(string FileName)
       SetTFRewriteData(Changes[End++],"Checksums-Sha1",ChecksumsSha1.c_str());
    if (ChecksumsSha256.empty() == false)
       SetTFRewriteData(Changes[End++],"Checksums-Sha256",ChecksumsSha256.c_str());
+   if (ChecksumsSha512.empty() == false)
+      SetTFRewriteData(Changes[End++],"Checksums-Sha512",ChecksumsSha512.c_str());
    if (Directory != "./")
       SetTFRewriteData(Changes[End++],"Directory",Directory.c_str());
    SetTFRewriteData(Changes[End++],"Priority",BestPrio.c_str());
@@ -816,7 +832,7 @@ bool SourcesWriter::DoPackage(string FileName)
       SetTFRewriteData(Changes[End++], "Maintainer", NewMaint.c_str());
    
    for (map<string,string>::const_iterator I = SOverItem->FieldOverride.begin(); 
-        I != SOverItem->FieldOverride.end(); I++) 
+        I != SOverItem->FieldOverride.end(); ++I)
       SetTFRewriteData(Changes[End++],I->first.c_str(),I->second.c_str());
 
    SetTFRewriteData(Changes[End++], 0, 0);
@@ -1025,29 +1041,18 @@ bool ReleaseWriter::DoPackage(string FileName)
 
    CheckSums[NewFileName].size = fd.Size();
 
+   Hashes hs;
+   hs.AddFD(fd.Fd(), 0, DoMD5, DoSHA1, DoSHA256, DoSHA512);
    if (DoMD5 == true)
-   {
-      MD5Summation MD5;
-      MD5.AddFD(fd.Fd(), fd.Size());
-      CheckSums[NewFileName].MD5 = MD5.Result();
-      fd.Seek(0);
-   }
+      CheckSums[NewFileName].MD5 = hs.MD5.Result();
    if (DoSHA1 == true)
-   {
-      SHA1Summation SHA1;
-      SHA1.AddFD(fd.Fd(), fd.Size());
-      CheckSums[NewFileName].SHA1 = SHA1.Result();
-      fd.Seek(0);
-   }
+      CheckSums[NewFileName].SHA1 = hs.SHA1.Result();
    if (DoSHA256 == true)
-   {
-      SHA256Summation SHA256;
-      SHA256.AddFD(fd.Fd(), fd.Size());
-      CheckSums[NewFileName].SHA256 = SHA256.Result();
-   }
-
+      CheckSums[NewFileName].SHA256 = hs.SHA256.Result();
+   if (DoSHA512 == true)
+      CheckSums[NewFileName].SHA512 = hs.SHA512.Result();
    fd.Close();
-   
+
    return true;
 }
 
@@ -1062,7 +1067,7 @@ void ReleaseWriter::Finish()
       for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin();
          I != CheckSums.end(); ++I)
       {
-        fprintf(Output, " %s %16ld %s\n",
+        fprintf(Output, " %s %16llu %s\n",
                 (*I).second.MD5.c_str(),
                 (*I).second.size,
                 (*I).first.c_str());
@@ -1074,7 +1079,7 @@ void ReleaseWriter::Finish()
       for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin();
          I != CheckSums.end(); ++I)
       {
-        fprintf(Output, " %s %16ld %s\n",
+        fprintf(Output, " %s %16llu %s\n",
                 (*I).second.SHA1.c_str(),
                 (*I).second.size,
                 (*I).first.c_str());
@@ -1086,10 +1091,22 @@ void ReleaseWriter::Finish()
       for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin();
          I != CheckSums.end(); ++I)
       {
-        fprintf(Output, " %s %16ld %s\n",
+        fprintf(Output, " %s %16llu %s\n",
                 (*I).second.SHA256.c_str(),
                 (*I).second.size,
                 (*I).first.c_str());
       }
    }
+
+   fprintf(Output, "SHA512:\n");
+   for(map<string,struct CheckSum>::const_iterator I = CheckSums.begin();
+       I != CheckSums.end();
+       ++I)
+   {
+      fprintf(Output, " %s %16llu %s\n",
+              (*I).second.SHA512.c_str(),
+              (*I).second.size,
+              (*I).first.c_str());
+   }
+
 }
index ce0eab7af9642b6469b236bd417f9082af84e990..a43b8387665b5b7e84eee1ee6d37eeac2d3c1b2b 100644 (file)
@@ -48,7 +48,7 @@ class FTWScanner
    static int ScannerFile(const char *File, bool const &ReadLink);
 
    bool Delink(string &FileName,const char *OriginalPath,
-              unsigned long &Bytes,off_t const &FileSize);
+              unsigned long long &Bytes,unsigned long long const &FileSize);
 
    inline void NewLine(unsigned const &Priority)
    {
@@ -63,6 +63,7 @@ class FTWScanner
    bool DoMD5;
    bool DoSHA1;
    bool DoSHA256;
+   bool DoSHA512;
 
    unsigned long DeLinkLimit;
    string InternalPrefix;
@@ -158,7 +159,7 @@ class SourcesWriter : public FTWScanner
    Override BOver;
    Override SOver;
    char *Buffer;
-   unsigned long BufSize;
+   unsigned long long BufSize;
    
    public:
 
@@ -195,8 +196,9 @@ protected:
       string MD5;
       string SHA1;
       string SHA256;
+      string SHA512;
       // Limited by FileFd::Size()
-      unsigned long size;
+      unsigned long long size;
       ~CheckSum() {};
    };
    map<string,struct CheckSum> CheckSums;
index 42932ddedbcc9fc4cee3835c6f60fb13f792f211..eff83bda737e9b775039bc7fef948a6b475b5744 100644 (file)
@@ -13,6 +13,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/acquire-method.h>
index b25fdf5a855738e4b37dadd5380897333998a29f..bc115d25946e720bf18479924fb5b8ea8c5d2c65 100644 (file)
@@ -8,6 +8,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/acquire-method.h>
 #include <apt-pkg/cdrom.h>
 #include <apt-pkg/cdromutl.h>
@@ -54,7 +56,8 @@ class CDROMMethod : public pkgAcqMethod
 CDROMMethod::CDROMMethod() : pkgAcqMethod("1.0",SingleInstance | LocalOnly |
                                          SendConfig | NeedsCleanup |
                                          Removable), 
-                                          DatabaseLoaded(false), 
+                                          DatabaseLoaded(false),
+                                         Debug(false),
                                           MountedByApt(false)
 {
    UdevCdroms.Dlopen();
index a5af1f1a68f094d929d4748405e00bd49c3b6bbe..16fb6e793519c6e590a2df9d3029a92337767401 100644 (file)
@@ -11,7 +11,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#include "connect.h"
+#include <config.h>
+
 #include <apt-pkg/error.h>
 #include <apt-pkg/fileutl.h>
 
@@ -29,6 +30,7 @@
 #include <arpa/inet.h>
 #include <netdb.h>
 
+#include "connect.h"
 #include "rfc2553emu.h"
 #include <apti18n.h>
                                                                        /*}}}*/
index a6bb372a3754d9b8d72ee5f85f81b2ebf586904f..94467e054c7e5f687fa1fd36fa287d82580ba232 100644 (file)
@@ -9,6 +9,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/acquire-method.h>
 #include <apt-pkg/error.h>
index 9cdd5bc2d3b3a3ea9ff14f2732ef832780e146cd..9fc4cd76c32b18f9adfb98318413eafde94354c1 100644 (file)
@@ -13,6 +13,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/acquire-method.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/hashes.h>
index 97248f900c8eaff56f46e721a6f4958e11576c20..861647aeab9b2423ed318d84786dd1268dcffb2b 100644 (file)
@@ -15,6 +15,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/acquire-method.h>
 #include <apt-pkg/error.h>
@@ -30,7 +32,6 @@
 #include <errno.h>
 #include <stdarg.h>
 #include <iostream>
-#include <apti18n.h>
 
 // Internet stuff
 #include <netinet/in.h>
@@ -41,6 +42,7 @@
 #include "rfc2553emu.h"
 #include "connect.h"
 #include "ftp.h"
+#include <apti18n.h>
                                                                        /*}}}*/
 
 using namespace std;
@@ -69,7 +71,8 @@ time_t FtpMethod::FailTime = 0;
 // ---------------------------------------------------------------------
 /* */
 FTPConn::FTPConn(URI Srv) : Len(0), ServerFd(-1), DataFd(-1), 
-                            DataListenFd(-1), ServerName(Srv)
+                            DataListenFd(-1), ServerName(Srv),
+                           ForceExtended(false), TryPassive(true)
 {
    Debug = _config->FindB("Debug::Acquire::Ftp",false);
    PasvAddr = 0;
@@ -559,7 +562,7 @@ bool FTPConn::ExtGoPasv()
    string::const_iterator List[4];
    unsigned Count = 0;
    Pos++;
-   for (string::const_iterator I = Msg.begin() + Pos; I < Msg.end(); I++)
+   for (string::const_iterator I = Msg.begin() + Pos; I < Msg.end(); ++I)
    {
       if (*I != Msg[Pos])
         continue;
@@ -627,7 +630,7 @@ bool FTPConn::ExtGoPasv()
 // FTPConn::Size - Return the size of a file                           /*{{{*/
 // ---------------------------------------------------------------------
 /* Grab the file size from the server, 0 means no size or empty file */
-bool FTPConn::Size(const char *Path,unsigned long &Size)
+bool FTPConn::Size(const char *Path,unsigned long long &Size)
 {
    // Query the size
    unsigned int Tag;
@@ -637,7 +640,7 @@ bool FTPConn::Size(const char *Path,unsigned long &Size)
       return false;
    
    char *End;
-   Size = strtol(Msg.c_str(),&End,10);
+   Size = strtoull(Msg.c_str(),&End,10);
    if (Tag >= 400 || End == Msg.c_str())
       Size = 0;
    return true;
@@ -839,7 +842,7 @@ bool FTPConn::Finalize()
 // ---------------------------------------------------------------------
 /* This opens a data connection, sends REST and RETR and then
    transfers the file over. */
-bool FTPConn::Get(const char *Path,FileFd &To,unsigned long Resume,
+bool FTPConn::Get(const char *Path,FileFd &To,unsigned long long Resume,
                  Hashes &Hash,bool &Missing)
 {
    Missing = false;
@@ -1002,7 +1005,7 @@ bool FtpMethod::Fetch(FetchItem *Itm)
    
    // Get the files information
    Status(_("Query"));
-   unsigned long Size;
+   unsigned long long Size;
    if (Server->Size(File,Size) == false ||
        Server->ModTime(File,FailTime) == false)
    {
@@ -1024,7 +1027,7 @@ bool FtpMethod::Fetch(FetchItem *Itm)
    struct stat Buf;
    if (stat(Itm->DestFile.c_str(),&Buf) == 0)
    {
-      if (Size == (unsigned)Buf.st_size && FailTime == Buf.st_mtime)
+      if (Size == (unsigned long long)Buf.st_size && FailTime == Buf.st_mtime)
       {
         Res.Size = Buf.st_size;
         Res.LastModified = Buf.st_mtime;
@@ -1034,7 +1037,7 @@ bool FtpMethod::Fetch(FetchItem *Itm)
       }
       
       // Resume?
-      if (FailTime == Buf.st_mtime && Size > (unsigned)Buf.st_size)
+      if (FailTime == Buf.st_mtime && Size > (unsigned long long)Buf.st_size)
         Res.ResumePoint = Buf.st_size;
    }
    
index d7f1f7fbece776cb0bfba3febbcf4fbc44da0384..b4913ca575335e9077a6e70a60c33e1beba5255c 100644 (file)
@@ -53,9 +53,9 @@ class FTPConn
    bool ExtGoPasv();
    
    // Query
-   bool Size(const char *Path,unsigned long &Size);
+   bool Size(const char *Path,unsigned long long &Size);
    bool ModTime(const char *Path, time_t &Time);
-   bool Get(const char *Path,FileFd &To,unsigned long Resume,
+   bool Get(const char *Path,FileFd &To,unsigned long long Resume,
            Hashes &MD5,bool &Missing);
    
    FTPConn(URI Srv);
index efe1f73f7415d998b0fd3a4f167bd6db440cd876..251bcbc900071c88513fcc926a6f8a4feb32d47d 100644 (file)
@@ -1,9 +1,10 @@
+#include <config.h>
+
 #include <apt-pkg/error.h>
 #include <apt-pkg/acquire-method.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/indexcopy.h>
-#include <apti18n.h>
 
 #include <utime.h>
 #include <stdio.h>
 #include <sys/wait.h>
 #include <iostream>
 #include <sstream>
-
 #include <vector>
 
+#include <apti18n.h>
+
 #define GNUPGPREFIX "[GNUPG:]"
 #define GNUPGBADSIG "[GNUPG:] BADSIG"
 #define GNUPGNOPUBKEY "[GNUPG:] NO_PUBKEY"
@@ -65,13 +67,16 @@ string GPGVMethod::VerifyGetSigners(const char *file, const char *outfile,
       return string("Couldn't spawn new process") + strerror(errno);
    else if (pid == 0)
    {
-      if (SigVerify::RunGPGV(outfile, file, 3, fd) == false)
+      _error->PushToStack();
+      bool const success = SigVerify::RunGPGV(outfile, file, 3, fd);
+      if (success == false)
       {
-        // TRANSLATOR: %s is the trusted keyring parts directory
-        ioprintf(ret, _("No keyring installed in %s."),
-                 _config->FindDir("Dir::Etc::TrustedParts").c_str());
-        return ret.str();
+        string errmsg;
+        _error->PopMessage(errmsg);
+        _error->RevertToStack();
+        return errmsg;
       }
+      _error->RevertToStack();
       exit(111);
    }
    close(fd[1]);
@@ -210,21 +215,21 @@ bool GPGVMethod::Fetch(FetchItem *Itm)
          {
             errmsg += _("The following signatures were invalid:\n");
             for (vector<string>::iterator I = BadSigners.begin();
-                I != BadSigners.end(); I++)
+                I != BadSigners.end(); ++I)
                errmsg += (*I + "\n");
          }
          if (!WorthlessSigners.empty())
          {
             errmsg += _("The following signatures were invalid:\n");
             for (vector<string>::iterator I = WorthlessSigners.begin();
-                I != WorthlessSigners.end(); I++)
+                I != WorthlessSigners.end(); ++I)
                errmsg += (*I + "\n");
          }
          if (!NoPubKeySigners.empty())
          {
              errmsg += _("The following signatures couldn't be verified because the public key is not available:\n");
             for (vector<string>::iterator I = NoPubKeySigners.begin();
-                I != NoPubKeySigners.end(); I++)
+                I != NoPubKeySigners.end(); ++I)
                errmsg += (*I + "\n");
          }
       }
index fc4e1ecfd68c93cb9824ac74a7a6a3d2eadd662d..f4bb052e26191073d1a2822a66853d2e2cdc88f7 100644 (file)
@@ -9,6 +9,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/acquire-method.h>
@@ -62,7 +64,7 @@ bool GzipMethod::Fetch(FetchItem *Itm)
    while (1) 
    {
       unsigned char Buffer[4*1024];
-      unsigned long Count;
+      unsigned long long Count = 0;
       
       if (!From.Read(Buffer,sizeof(Buffer),&Count))
       {
index 13f9cbe0613a01d4c102961efc6a15248c6343e8..b60cfeb9ed53fe3c374fe8e5808384ce5b6e2629 100644 (file)
@@ -25,6 +25,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/acquire-method.h>
 #include <apt-pkg/error.h>
@@ -41,8 +43,6 @@
 #include <string.h>
 #include <iostream>
 #include <map>
-#include <apti18n.h>
-
 
 // Internet stuff
 #include <netdb.h>
@@ -51,6 +51,8 @@
 #include "connect.h"
 #include "rfc2553emu.h"
 #include "http.h"
+
+#include <apti18n.h>
                                                                        /*}}}*/
 using namespace std;
 
@@ -63,15 +65,15 @@ bool AllowRedirect = false;
 bool Debug = false;
 URI Proxy;
 
-unsigned long CircleBuf::BwReadLimit=0;
-unsigned long CircleBuf::BwTickReadData=0;
+unsigned long long CircleBuf::BwReadLimit=0;
+unsigned long long CircleBuf::BwTickReadData=0;
 struct timeval CircleBuf::BwReadTick={0,0};
 const unsigned int CircleBuf::BW_HZ=10;
  
 // CircleBuf::CircleBuf - Circular input buffer                                /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-CircleBuf::CircleBuf(unsigned long Size) : Size(Size), Hash(0)
+CircleBuf::CircleBuf(unsigned long long Size) : Size(Size), Hash(0)
 {
    Buf = new unsigned char[Size];
    Reset();
@@ -87,7 +89,7 @@ void CircleBuf::Reset()
    InP = 0;
    OutP = 0;
    StrPos = 0;
-   MaxGet = (unsigned int)-1;
+   MaxGet = (unsigned long long)-1;
    OutQueue = string();
    if (Hash != 0)
    {
@@ -102,7 +104,7 @@ void CircleBuf::Reset()
    is non-blocking.. */
 bool CircleBuf::Read(int Fd)
 {
-   unsigned long BwReadMax;
+   unsigned long long BwReadMax;
 
    while (1)
    {
@@ -117,7 +119,7 @@ bool CircleBuf::Read(int Fd)
         struct timeval now;
         gettimeofday(&now,0);
 
-        unsigned long d = (now.tv_sec-CircleBuf::BwReadTick.tv_sec)*1000000 +
+        unsigned long long d = (now.tv_sec-CircleBuf::BwReadTick.tv_sec)*1000000 +
            now.tv_usec-CircleBuf::BwReadTick.tv_usec;
         if(d > 1000000/BW_HZ) {
            CircleBuf::BwReadTick = now;
@@ -131,7 +133,7 @@ bool CircleBuf::Read(int Fd)
       }
 
       // Write the buffer segment
-      int Res;
+      ssize_t Res;
       if(CircleBuf::BwReadLimit) {
         Res = read(Fd,Buf + (InP%Size), 
                    BwReadMax > LeftRead() ? LeftRead() : BwReadMax);
@@ -180,7 +182,7 @@ void CircleBuf::FillOut()
         return;
       
       // Write the buffer segment
-      unsigned long Sz = LeftRead();
+      unsigned long long Sz = LeftRead();
       if (OutQueue.length() - StrPos < Sz)
         Sz = OutQueue.length() - StrPos;
       memcpy(Buf + (InP%Size),OutQueue.c_str() + StrPos,Sz);
@@ -214,7 +216,7 @@ bool CircleBuf::Write(int Fd)
         return true;
       
       // Write the buffer segment
-      int Res;
+      ssize_t Res;
       Res = write(Fd,Buf + (OutP%Size),LeftWrite());
 
       if (Res == 0)
@@ -240,7 +242,7 @@ bool CircleBuf::Write(int Fd)
 bool CircleBuf::WriteTillEl(string &Data,bool Single)
 {
    // We cheat and assume it is unneeded to have more than one buffer load
-   for (unsigned long I = OutP; I < InP; I++)
+   for (unsigned long long I = OutP; I < InP; I++)
    {      
       if (Buf[I%Size] != '\n')
         continue;
@@ -258,7 +260,7 @@ bool CircleBuf::WriteTillEl(string &Data,bool Single)
       Data = "";
       while (OutP < I)
       {
-        unsigned long Sz = LeftWrite();
+        unsigned long long Sz = LeftWrite();
         if (Sz == 0)
            return false;
         if (I - OutP < Sz)
@@ -402,10 +404,10 @@ ServerState::RunHeadersResult ServerState::RunHeaders()
       if (Debug == true)
         clog << Data;
       
-      for (string::const_iterator I = Data.begin(); I < Data.end(); I++)
+      for (string::const_iterator I = Data.begin(); I < Data.end(); ++I)
       {
         string::const_iterator J = I;
-        for (; J != Data.end() && *J != '\n' && *J != '\r';J++);
+        for (; J != Data.end() && *J != '\n' && *J != '\r'; ++J);
         if (HeaderLine(string(I,J)) == false)
            return RUN_HEADERS_PARSE_ERROR;
         I = J;
@@ -453,7 +455,7 @@ bool ServerState::RunData()
            return false;
                 
         // See if we are done
-        unsigned long Len = strtol(Data.c_str(),0,16);
+        unsigned long long Len = strtoull(Data.c_str(),0,16);
         if (Len == 0)
         {
            In.Limit(-1);
@@ -596,7 +598,7 @@ bool ServerState::HeaderLine(string Line)
       if (StartPos != 0)
         return true;
       
-      if (sscanf(Val.c_str(),"%lu",&Size) != 1)
+      if (sscanf(Val.c_str(),"%llu",&Size) != 1)
         return _error->Error(_("The HTTP server sent an invalid Content-Length header"));
       return true;
    }
@@ -611,9 +613,9 @@ bool ServerState::HeaderLine(string Line)
    {
       HaveContent = true;
       
-      if (sscanf(Val.c_str(),"bytes %lu-%*u/%lu",&StartPos,&Size) != 2)
+      if (sscanf(Val.c_str(),"bytes %llu-%*u/%llu",&StartPos,&Size) != 2)
         return _error->Error(_("The HTTP server sent an invalid Content-Range header"));
-      if ((unsigned)StartPos > Size)
+      if ((unsigned long long)StartPos > Size)
         return _error->Error(_("This HTTP server has broken range support"));
       return true;
    }
@@ -716,7 +718,7 @@ void HttpMethod::SendReq(FetchItem *Itm,CircleBuf &Out)
    if (stat(Itm->DestFile.c_str(),&SBuf) >= 0 && SBuf.st_size > 0)
    {
       // In this case we send an if-range query with a range header
-      sprintf(Buf,"Range: bytes=%li-\r\nIf-Range: %s\r\n",(long)SBuf.st_size - 1,
+      sprintf(Buf,"Range: bytes=%lli-\r\nIf-Range: %s\r\n",(long long)SBuf.st_size - 1,
              TimeRFC1123(SBuf.st_mtime).c_str());
       Req += Buf;
    }
@@ -1325,7 +1327,7 @@ int HttpMethod::Loop()
                StopRedirects = true;
             else
             {
-               for (StringVectorIterator I = R.begin(); I != R.end(); I++)
+               for (StringVectorIterator I = R.begin(); I != R.end(); ++I)
                   if (Queue->Uri == *I)
                   {
                      R[0] = "STOP";
index aa96c6810d9824c36893a59cd9fda7d910e56f29..c47d7184aab68fc5b50cab41594c952de1b00c30 100644 (file)
@@ -23,29 +23,29 @@ class HttpMethod;
 class CircleBuf
 {
    unsigned char *Buf;
-   unsigned long Size;
-   unsigned long InP;
-   unsigned long OutP;
+   unsigned long long Size;
+   unsigned long long InP;
+   unsigned long long OutP;
    string OutQueue;
-   unsigned long StrPos;
-   unsigned long MaxGet;
+   unsigned long long StrPos;
+   unsigned long long MaxGet;
    struct timeval Start;
    
-   static unsigned long BwReadLimit;
-   static unsigned long BwTickReadData;
+   static unsigned long long BwReadLimit;
+   static unsigned long long BwTickReadData;
    static struct timeval BwReadTick;
    static const unsigned int BW_HZ;
 
-   unsigned long LeftRead()
+   unsigned long long LeftRead() const
    {
-      unsigned long Sz = Size - (InP - OutP);
+      unsigned long long Sz = Size - (InP - OutP);
       if (Sz > Size - (InP%Size))
         Sz = Size - (InP%Size);
       return Sz;
    }
-   unsigned long LeftWrite()
+   unsigned long long LeftWrite() const
    {
-      unsigned long Sz = InP - OutP;
+      unsigned long long Sz = InP - OutP;
       if (InP > MaxGet)
         Sz = MaxGet - OutP;
       if (Sz > Size - (OutP%Size))
@@ -67,19 +67,19 @@ class CircleBuf
    bool WriteTillEl(string &Data,bool Single = false);
    
    // Control the write limit
-   void Limit(long Max) {if (Max == -1) MaxGet = 0-1; else MaxGet = OutP + Max;}   
-   bool IsLimit() {return MaxGet == OutP;};
-   void Print() {cout << MaxGet << ',' << OutP << endl;};
+   void Limit(long long Max) {if (Max == -1) MaxGet = 0-1; else MaxGet = OutP + Max;}   
+   bool IsLimit() const {return MaxGet == OutP;};
+   void Print() const {cout << MaxGet << ',' << OutP << endl;};
 
    // Test for free space in the buffer
-   bool ReadSpace() {return Size - (InP - OutP) > 0;};
-   bool WriteSpace() {return InP - OutP > 0;};
+   bool ReadSpace() const {return Size - (InP - OutP) > 0;};
+   bool WriteSpace() const {return InP - OutP > 0;};
 
    // Dump everything
    void Reset();
    void Stats();
 
-   CircleBuf(unsigned long Size);
+   CircleBuf(unsigned long long Size);
    ~CircleBuf() {delete [] Buf; delete Hash;};
 };
 
@@ -92,8 +92,8 @@ struct ServerState
    char Code[MAXLEN];
    
    // These are some statistics from the last parsed header lines
-   unsigned long Size;
-   signed long StartPos;
+   unsigned long long Size;
+   signed long long StartPos;
    time_t Date;
    bool HaveContent;
    enum {Chunked,Stream,Closes} Encoding;
@@ -113,7 +113,7 @@ struct ServerState
    URI ServerName;
   
    bool HeaderLine(string Line);
-   bool Comp(URI Other) {return Other.Host == ServerName.Host && Other.Port == ServerName.Port;};
+   bool Comp(URI Other) const {return Other.Host == ServerName.Host && Other.Port == ServerName.Port;};
    void Reset() {Major = 0; Minor = 0; Result = 0; Size = 0; StartPos = 0;
                  Encoding = Closes; time(&Date); ServerFd = -1; 
                  Pipeline = true;};
index 7815c2fc1e34c5d7847bfa4e673c59272413404e..2ca91bfc91699ffaecc787ab70e8749adaaefa6b 100644 (file)
@@ -1,3 +1,5 @@
+#include <config.h>
+
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/acquire-method.h>
 #include <signal.h>
index fc649d6c217f800aad3ba147e9a8ff1320394f38..06a0e285aa2d5cbb594ea007ef043277288ef38a 100644 (file)
@@ -10,6 +10,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/acquire-method.h>
 #include <apt-pkg/error.h>
 #include <errno.h>
 #include <string.h>
 #include <iostream>
-#include <apti18n.h>
 #include <sstream>
 
 #include "config.h"
 #include "https.h"
-
+#include <apti18n.h>
                                                                        /*}}}*/
 using namespace std;
 
@@ -51,7 +52,7 @@ HttpsMethod::progress_callback(void *clientp, double dltotal, double dlnow,
 {
    HttpsMethod *me = (HttpsMethod *)clientp;
    if(dltotal > 0 && me->Res.Size == 0) {
-      me->Res.Size = (unsigned long)dltotal;
+      me->Res.Size = (unsigned long long)dltotal;
       me->URIStart(me->Res);
    }
    return 0;
index 713dc211a1c8ecd103502ad4f419645749126c1c..61a7f12fd0aef68bbf424f42d28253e9e5de20b2 100644 (file)
@@ -8,6 +8,9 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
+#include <config.h>
+
+#include <apt-pkg/aptconfiguration.h>
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/acquire-method.h>
 #include <apt-pkg/acquire-item.h>
@@ -33,7 +36,7 @@ using namespace std;
 
 #include "mirror.h"
 #include "http.h"
-#include "apti18n.h"
+#include <apti18n.h>
                                                                        /*}}}*/
 
 /* Done:
@@ -54,7 +57,7 @@ using namespace std;
  */
 
 MirrorMethod::MirrorMethod()
-   : HttpMethod(), DownloadedMirrorFile(false)
+   : HttpMethod(), DownloadedMirrorFile(false), Debug(false)
 {
 };
 
@@ -107,7 +110,7 @@ bool MirrorMethod::Clean(string Dir)
         continue;
 
       // see if we have that uri
-      for(I=list.begin(); I != list.end(); I++)
+      for(I=list.begin(); I != list.end(); ++I)
       {
         string uri = (*I)->GetURI();
         if(uri.find("mirror://") != 0)
@@ -134,9 +137,24 @@ bool MirrorMethod::DownloadMirrorFile(string mirror_uri_str)
    string fetch = BaseUri;
    fetch.replace(0,strlen("mirror://"),"http://");
 
+#if 0 // no need for this, the getArchitectures() will also include the main 
+      // arch
+   // append main architecture
+   fetch += "?arch=" + _config->Find("Apt::Architecture");
+#endif
+
+   // append all architectures
+   std::vector<std::string> vec = APT::Configuration::getArchitectures();
+   for (std::vector<std::string>::const_iterator I = vec.begin();
+        I != vec.end(); I++)
+      if (I == vec.begin())
+         fetch += "?arch" + (*I);
+      else
+         fetch += "&arch=" + (*I);
+
    // append the dist as a query string
    if (Dist != "")
-      fetch += "?dist=" + Dist;
+      fetch += "&dist=" + Dist;
 
    if(Debug)
       clog << "MirrorMethod::DownloadMirrorFile(): '" << fetch << "'"
@@ -330,7 +348,7 @@ string MirrorMethod::GetMirrorFileName(string mirror_uri_str)
    vector<metaIndex *>::const_iterator I;
    pkgSourceList list;
    list.ReadMainList();
-   for(I=list.begin(); I != list.end(); I++)
+   for(I=list.begin(); I != list.end(); ++I)
    {
       string uristr = (*I)->GetURI();
       if(Debug)
index 66bc906e9707574c6c646259fc014fde2689bee2..f00e8588960f3e2cdd892a69aa091683e7785026 100644 (file)
 
    ##################################################################### */
                                                                        /*}}}*/
-#include "rfc2553emu.h"
+#include <config.h>
+
 #include <stdlib.h>
 #include <arpa/inet.h>
 #include <netinet/in.h>
 #include <string.h>
 #include <stdio.h>
+#include "rfc2553emu.h"
 
 #ifndef HAVE_GETADDRINFO
 // getaddrinfo - Resolve a hostname                                    /*{{{*/
index 849973e1a6405a8fa06a1f37546789344b194a99..bc941ed049f84a3e0b85379f7505372bbbe1e4f1 100644 (file)
@@ -1,4 +1,6 @@
 // Includes                                                                    /*{{{*/
+#include <config.h>
+
 #include <apt-pkg/fileutl.h>
 #include <apt-pkg/mmap.h>
 #include <apt-pkg/error.h>
@@ -51,7 +53,7 @@ protected:
        virtual bool Fetch(FetchItem *Itm);
 
 public:
-       RredMethod() : pkgAcqMethod("1.1",SingleInstance | SendConfig) {};
+       RredMethod() : pkgAcqMethod("1.1",SingleInstance | SendConfig), Debug(false) {};
 };
                                                                                /*}}}*/
 /** \brief applyFile - in reverse order with a tail recursion                  {{{
@@ -239,7 +241,9 @@ RredMethod::State RredMethod::patchFile(FileFd &Patch, FileFd &From,                /*{{{*/
    return result;
 }
                                                                                /*}}}*/
-struct EdCommand {                                                             /*{{{*/
+/* struct EdCommand                                                            {{{*/
+#ifdef _POSIX_MAPPED_FILES
+struct EdCommand {
   size_t data_start;
   size_t data_end;
   size_t data_lines;
@@ -248,13 +252,14 @@ struct EdCommand {                                                                /*{{{*/
   char type;
 };
 #define IOV_COUNT 1024 /* Don't really want IOV_MAX since it can be arbitrarily large */
+#endif
                                                                                /*}}}*/
 RredMethod::State RredMethod::patchMMap(FileFd &Patch, FileFd &From,           /*{{{*/
                                        FileFd &out_file, Hashes *hash) const {
 #ifdef _POSIX_MAPPED_FILES
        MMap ed_cmds(MMap::ReadOnly);
        if (Patch.gzFd() != NULL) {
-               unsigned long mapSize = Patch.Size();
+               unsigned long long mapSize = Patch.Size();
                DynamicMMap* dyn = new DynamicMMap(0, mapSize, 0);
                if (dyn->validData() == false) {
                        delete dyn;
index 21f0d0a22220bf466dd5b33aaf0165ceef0a60e5..c95a4d3eb5cee7cc09d9be60f295d5c954e95f1f 100644 (file)
@@ -11,7 +11,8 @@
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#include "rsh.h"
+#include <config.h>
+
 #include <apt-pkg/error.h>
 
 #include <sys/stat.h>
@@ -22,6 +23,8 @@
 #include <stdio.h>
 #include <errno.h>
 #include <stdarg.h>
+#include "rsh.h"
+
 #include <apti18n.h>
                                                                        /*}}}*/
 
@@ -248,7 +251,7 @@ bool RSHConn::WriteMsg(string &Text,bool Sync,const char *Fmt,...)
 // ---------------------------------------------------------------------
 /* Right now for successfull transfer the file size must be known in 
    advance. */
-bool RSHConn::Size(const char *Path,unsigned long &Size)
+bool RSHConn::Size(const char *Path,unsigned long long &Size)
 {
    // Query the size
    string Msg;
@@ -260,7 +263,7 @@ bool RSHConn::Size(const char *Path,unsigned long &Size)
    // FIXME: Sense if the bad reply is due to a File Not Found. 
    
    char *End;
-   Size = strtoul(Msg.c_str(),&End,10);
+   Size = strtoull(Msg.c_str(),&End,10);
    if (End == Msg.c_str())
       return _error->Error(_("File not found"));
    return true;
@@ -285,8 +288,8 @@ bool RSHConn::ModTime(const char *Path, time_t &Time)
 // RSHConn::Get - Get a file                                           /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-bool RSHConn::Get(const char *Path,FileFd &To,unsigned long Resume,
-                  Hashes &Hash,bool &Missing, unsigned long Size)
+bool RSHConn::Get(const char *Path,FileFd &To,unsigned long long Resume,
+                  Hashes &Hash,bool &Missing, unsigned long long Size)
 {
    Missing = false;
 
@@ -311,7 +314,7 @@ bool RSHConn::Get(const char *Path,FileFd &To,unsigned long Resume,
       return false;
 
    // Copy loop
-   unsigned int MyLen = Resume;
+   unsigned long long MyLen = Resume;
    unsigned char Buffer[4096];
    while (MyLen < Size)
    {
@@ -425,7 +428,7 @@ bool RSHMethod::Fetch(FetchItem *Itm)
    Status(_("Connecting to %s"), Get.Host.c_str());
 
    // Get the files information
-   unsigned long Size;
+   unsigned long long Size;
    if (Server->Size(File,Size) == false ||
        Server->ModTime(File,FailTime) == false)
    {
@@ -446,7 +449,7 @@ bool RSHMethod::Fetch(FetchItem *Itm)
    // See if the file exists
    struct stat Buf;
    if (stat(Itm->DestFile.c_str(),&Buf) == 0) {
-      if (Size == (unsigned)Buf.st_size && FailTime == Buf.st_mtime) {
+      if (Size == (unsigned long long)Buf.st_size && FailTime == Buf.st_mtime) {
         Res.Size = Buf.st_size;
         Res.LastModified = Buf.st_mtime;
         Res.ResumePoint = Buf.st_size;
@@ -455,7 +458,7 @@ bool RSHMethod::Fetch(FetchItem *Itm)
       }
 
       // Resume?
-      if (FailTime == Buf.st_mtime && Size > (unsigned)Buf.st_size)
+      if (FailTime == Buf.st_mtime && Size > (unsigned long long)Buf.st_size)
         Res.ResumePoint = Buf.st_size;
    }
 
index b06d5a94e67ad2ac9e74bfc35a4b55428c9084fd..c81396b5fd0bb0b5b4d3bd1179f4cc424c12d7d2 100644 (file)
@@ -34,17 +34,17 @@ class RSHConn
    // Raw connection IO
    bool WriteMsg(string &Text,bool Sync,const char *Fmt,...);
    bool Connect(string Host, string User);
-   bool Comp(URI Other) {return Other.Host == ServerName.Host && Other.Port == ServerName.Port;};
+   bool Comp(URI Other) const {return Other.Host == ServerName.Host && Other.Port == ServerName.Port;};
 
    // Connection control
    bool Open();
    void Close();
 
    // Query
-   bool Size(const char *Path,unsigned long &Size);
+   bool Size(const char *Path,unsigned long long &Size);
    bool ModTime(const char *Path, time_t &Time);
-   bool Get(const char *Path,FileFd &To,unsigned long Resume,
-            Hashes &Hash,bool &Missing, unsigned long Size);
+   bool Get(const char *Path,FileFd &To,unsigned long long Resume,
+            Hashes &Hash,bool &Missing, unsigned long long Size);
 
    RSHConn(URI Srv);
    ~RSHConn();
index ac38d9806d5db2a42e14c9f55b28c401eae7533a..b409363d0bfb242c9f698b3c5f78bc8958376f73 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:24+0100\n"
+"POT-Creation-Date: 2011-06-29 12:34+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -154,7 +154,8 @@ msgstr ""
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3126 cmdline/apt-internal-solver.cc:30
+#: cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr ""
@@ -363,95 +364,95 @@ msgstr ""
 msgid "Failed to stat %s"
 msgstr ""
 
-#: ftparchive/cachedb.cc:242
+#: ftparchive/cachedb.cc:245
 msgid "Archive has no control record"
 msgstr ""
 
-#: ftparchive/cachedb.cc:448
+#: ftparchive/cachedb.cc:482
 msgid "Unable to get a cursor"
 msgstr ""
 
-#: ftparchive/writer.cc:78
+#: ftparchive/writer.cc:79
 #, c-format
 msgid "W: Unable to read directory %s\n"
 msgstr ""
 
-#: ftparchive/writer.cc:83
+#: ftparchive/writer.cc:84
 #, c-format
 msgid "W: Unable to stat %s\n"
 msgstr ""
 
-#: ftparchive/writer.cc:139
+#: ftparchive/writer.cc:140
 msgid "E: "
 msgstr ""
 
-#: ftparchive/writer.cc:141
+#: ftparchive/writer.cc:142
 msgid "W: "
 msgstr ""
 
-#: ftparchive/writer.cc:148
+#: ftparchive/writer.cc:149
 msgid "E: Errors apply to file "
 msgstr ""
 
-#: ftparchive/writer.cc:166 ftparchive/writer.cc:198
+#: ftparchive/writer.cc:167 ftparchive/writer.cc:199
 #, c-format
 msgid "Failed to resolve %s"
 msgstr ""
 
-#: ftparchive/writer.cc:179
+#: ftparchive/writer.cc:180
 msgid "Tree walking failed"
 msgstr ""
 
-#: ftparchive/writer.cc:206
+#: ftparchive/writer.cc:207
 #, c-format
 msgid "Failed to open %s"
 msgstr ""
 
-#: ftparchive/writer.cc:265
+#: ftparchive/writer.cc:266
 #, c-format
 msgid " DeLink %s [%s]\n"
 msgstr ""
 
-#: ftparchive/writer.cc:273
+#: ftparchive/writer.cc:274
 #, c-format
 msgid "Failed to readlink %s"
 msgstr ""
 
-#: ftparchive/writer.cc:277
+#: ftparchive/writer.cc:278
 #, c-format
 msgid "Failed to unlink %s"
 msgstr ""
 
-#: ftparchive/writer.cc:284
+#: ftparchive/writer.cc:285
 #, c-format
 msgid "*** Failed to link %s to %s"
 msgstr ""
 
-#: ftparchive/writer.cc:294
+#: ftparchive/writer.cc:295
 #, c-format
 msgid " DeLink limit of %sB hit.\n"
 msgstr ""
 
-#: ftparchive/writer.cc:398
+#: ftparchive/writer.cc:400
 msgid "Archive had no package field"
 msgstr ""
 
-#: ftparchive/writer.cc:406 ftparchive/writer.cc:703
+#: ftparchive/writer.cc:408 ftparchive/writer.cc:710
 #, c-format
 msgid "  %s has no override entry\n"
 msgstr ""
 
-#: ftparchive/writer.cc:472 ftparchive/writer.cc:811
+#: ftparchive/writer.cc:476 ftparchive/writer.cc:826
 #, c-format
 msgid "  %s maintainer is %s not %s\n"
 msgstr ""
 
-#: ftparchive/writer.cc:713
+#: ftparchive/writer.cc:720
 #, c-format
 msgid "  %s has no source override entry\n"
 msgstr ""
 
-#: ftparchive/writer.cc:717
+#: ftparchive/writer.cc:724
 #, c-format
 msgid "  %s has no binary override entry either\n"
 msgstr ""
@@ -723,7 +724,7 @@ msgstr ""
 msgid "%s is already the newest version.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr ""
@@ -835,8 +836,8 @@ msgstr ""
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2496
+#: cmdline/apt-get.cc:2499
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr ""
@@ -870,7 +871,7 @@ msgstr ""
 msgid "Do you want to continue [Y/n]? "
 msgstr ""
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2561 apt-pkg/algorithms.cc:1453
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr ""
@@ -879,7 +880,7 @@ msgstr ""
 msgid "Some files failed to download"
 msgstr ""
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2573
 msgid "Download complete and in download only mode"
 msgstr ""
 
@@ -955,7 +956,7 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1912
 msgid "The following information may help to resolve the situation:"
 msgstr ""
 
@@ -998,7 +999,7 @@ msgid ""
 "solution)."
 msgstr ""
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1897
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1006,80 +1007,80 @@ msgid ""
 "or been moved out of Incoming."
 msgstr ""
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1918
 msgid "Broken packages"
 msgstr ""
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1944
 msgid "The following extra packages will be installed:"
 msgstr ""
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2034
 msgid "Suggested packages:"
 msgstr ""
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2035
 msgid "Recommended packages:"
 msgstr ""
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2077
 #, c-format
 msgid "Couldn't find package %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2084 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2092 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2108
 msgid "Calculating upgrade... "
 msgstr ""
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2111 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2116
 msgid "Done"
 msgstr ""
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2183 cmdline/apt-get.cc:2191
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2215 cmdline/apt-get.cc:2248
 msgid "Unable to lock the download directory"
 msgstr ""
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2299
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2357
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2398 cmdline/apt-get.cc:2694
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2415
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2420
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1087,120 +1088,120 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2473
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2510
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr ""
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2519
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr ""
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2524
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2530
 #, c-format
 msgid "Fetch source %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2568
 msgid "Failed to fetch some archives."
 msgstr ""
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2599
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2611
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2612
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2629
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2649
 msgid "Child process failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2668
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2699
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2719
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2770
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr ""
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2823
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because no available versions of "
 "package %s can satisfy version requirements"
 msgstr ""
 
-#: cmdline/apt-get.cc:2855
+#: cmdline/apt-get.cc:2859
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
 msgstr ""
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2886
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2902
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr ""
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:2907
 msgid "Failed to process build dependencies"
 msgstr ""
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3000 cmdline/apt-get.cc:3012
 #, c-format
 msgid "Changelog for %s (%s)"
 msgstr ""
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3131
 msgid "Supported modules:"
 msgstr ""
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3172
 msgid ""
 "Usage: apt-get [options] command\n"
 "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
@@ -1246,7 +1247,7 @@ msgid ""
 "                       This APT has Super Cow Powers.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3335
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1288,6 +1289,22 @@ msgid ""
 "in the drive '%s' and press enter\n"
 msgstr ""
 
+#: cmdline/apt-internal-solver.cc:34
+msgid ""
+"Usage: apt-internal-resolver\n"
+"\n"
+"apt-internal-resolver is an interface to use the current internal\n"
+"like an external resolver for the APT family for debugging or alike\n"
+"\n"
+"Options:\n"
+"  -h  This help text.\n"
+"  -q  Loggable output - no progress indicator\n"
+"  -c=? Read this configuration file\n"
+"  -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
+"apt.conf(5) manual pages for more information and options.\n"
+"                       This APT has Super Cow Powers.\n"
+msgstr ""
+
 #: cmdline/apt-mark.cc:46
 #, c-format
 msgid "%s can not be marked as it is not installed.\n"
@@ -1539,8 +1556,8 @@ msgstr ""
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:102
+#: apt-pkg/init.cc:110 apt-pkg/clean.cc:33 apt-pkg/policy.cc:318
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -2168,12 +2185,12 @@ msgstr ""
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr ""
 
-#: apt-pkg/contrib/progress.cc:153
+#: apt-pkg/contrib/progress.cc:144
 #, c-format
 msgid "%c%s... Error!"
 msgstr ""
 
-#: apt-pkg/contrib/progress.cc:155
+#: apt-pkg/contrib/progress.cc:146
 #, c-format
 msgid "%c%s... Done"
 msgstr ""
@@ -2453,12 +2470,12 @@ msgstr ""
 msgid "Failed to write temporary StateFile %s"
 msgstr ""
 
-#: apt-pkg/tagfile.cc:102
+#: apt-pkg/tagfile.cc:123
 #, c-format
 msgid "Unable to parse package file %s (1)"
 msgstr ""
 
-#: apt-pkg/tagfile.cc:189
+#: apt-pkg/tagfile.cc:210
 #, c-format
 msgid "Unable to parse package file %s (2)"
 msgstr ""
@@ -2533,14 +2550,14 @@ msgstr ""
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2548,7 +2565,7 @@ msgid ""
 "you really want to do it, activate the APT::Force-LoopBreak option."
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2560,23 +2577,23 @@ msgstr ""
 msgid "Index file type '%s' is not supported"
 msgstr ""
 
-#: apt-pkg/algorithms.cc:247
+#: apt-pkg/algorithms.cc:250
 #, c-format
 msgid ""
 "The package %s needs to be reinstalled, but I can't find an archive for it."
 msgstr ""
 
-#: apt-pkg/algorithms.cc:1158
+#: apt-pkg/algorithms.cc:1186
 msgid ""
 "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by "
 "held packages."
 msgstr ""
 
-#: apt-pkg/algorithms.cc:1160
+#: apt-pkg/algorithms.cc:1188
 msgid "Unable to correct problems, you have held broken packages."
 msgstr ""
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1479 apt-pkg/algorithms.cc:1481
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
 "used instead."
@@ -2624,12 +2641,12 @@ msgstr ""
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr ""
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:145
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr ""
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:161
 msgid "Unable to determine a suitable packaging system type"
 msgstr ""
 
@@ -2654,17 +2671,17 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr ""
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:355
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr ""
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:377
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr ""
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:385
 msgid "No priority (or zero) specified for pin"
 msgstr ""
 
@@ -2766,8 +2783,8 @@ msgstr ""
 msgid "MD5Sum mismatch"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1850
+#: apt-pkg/acquire-item.cc:1993
 msgid "Hash Sum mismatch"
 msgstr ""
 
@@ -2827,13 +2844,13 @@ msgid ""
 "to manually fix this package."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1755
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1842
 msgid "Size mismatch"
 msgstr ""
 
@@ -3031,148 +3048,168 @@ msgstr ""
 msgid "Can't select installed version from package %s as it is not installed"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:54
+#: apt-pkg/edsp.cc:32 apt-pkg/edsp.cc:52
+msgid "Send scenario to solver"
+msgstr ""
+
+#: apt-pkg/edsp.cc:204
+msgid "Send request to solver"
+msgstr ""
+
+#: apt-pkg/edsp.cc:272
+msgid "Prepare for receiving solution"
+msgstr ""
+
+#: apt-pkg/edsp.cc:279
+msgid "External solver failed without a proper error message"
+msgstr ""
+
+#: apt-pkg/edsp.cc:550 apt-pkg/edsp.cc:553 apt-pkg/edsp.cc:558
+msgid "Execute external solver"
+msgstr ""
+
+#: apt-pkg/deb/dpkgpm.cc:69
 #, c-format
 msgid "Installing %s"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:55 apt-pkg/deb/dpkgpm.cc:848
+#: apt-pkg/deb/dpkgpm.cc:70 apt-pkg/deb/dpkgpm.cc:864
 #, c-format
 msgid "Configuring %s"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:56 apt-pkg/deb/dpkgpm.cc:855
+#: apt-pkg/deb/dpkgpm.cc:71 apt-pkg/deb/dpkgpm.cc:871
 #, c-format
 msgid "Removing %s"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:57
+#: apt-pkg/deb/dpkgpm.cc:72
 #, c-format
 msgid "Completely removing %s"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:58
+#: apt-pkg/deb/dpkgpm.cc:73
 #, c-format
 msgid "Noting disappearance of %s"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:59
+#: apt-pkg/deb/dpkgpm.cc:74
 #, c-format
 msgid "Running post-installation trigger %s"
 msgstr ""
 
 #. FIXME: use a better string after freeze
-#: apt-pkg/deb/dpkgpm.cc:654
+#: apt-pkg/deb/dpkgpm.cc:670
 #, c-format
 msgid "Directory '%s' missing"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:669 apt-pkg/deb/dpkgpm.cc:689
+#: apt-pkg/deb/dpkgpm.cc:685 apt-pkg/deb/dpkgpm.cc:705
 #, c-format
 msgid "Could not open file '%s'"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:841
+#: apt-pkg/deb/dpkgpm.cc:857
 #, c-format
 msgid "Preparing %s"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:842
+#: apt-pkg/deb/dpkgpm.cc:858
 #, c-format
 msgid "Unpacking %s"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:847
+#: apt-pkg/deb/dpkgpm.cc:863
 #, c-format
 msgid "Preparing to configure %s"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:849
+#: apt-pkg/deb/dpkgpm.cc:865
 #, c-format
 msgid "Installed %s"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:854
+#: apt-pkg/deb/dpkgpm.cc:870
 #, c-format
 msgid "Preparing for removal of %s"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:856
+#: apt-pkg/deb/dpkgpm.cc:872
 #, c-format
 msgid "Removed %s"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:861
+#: apt-pkg/deb/dpkgpm.cc:877
 #, c-format
 msgid "Preparing to completely remove %s"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:862
+#: apt-pkg/deb/dpkgpm.cc:878
 #, c-format
 msgid "Completely removed %s"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:1082
+#: apt-pkg/deb/dpkgpm.cc:1098
 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:1113
+#: apt-pkg/deb/dpkgpm.cc:1129
 msgid "Running dpkg"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:1338
+#: apt-pkg/deb/dpkgpm.cc:1354
 msgid "No apport report written because MaxReports is reached already"
 msgstr ""
 
 #. check if its not a follow up error
-#: apt-pkg/deb/dpkgpm.cc:1343
+#: apt-pkg/deb/dpkgpm.cc:1359
 msgid "dependency problems - leaving unconfigured"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:1345
+#: apt-pkg/deb/dpkgpm.cc:1361
 msgid ""
 "No apport report written because the error message indicates its a followup "
 "error from a previous failure."
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:1351
+#: apt-pkg/deb/dpkgpm.cc:1367
 msgid ""
 "No apport report written because the error message indicates a disk full "
 "error"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:1357
+#: apt-pkg/deb/dpkgpm.cc:1373
 msgid ""
 "No apport report written because the error message indicates a out of memory "
 "error"
 msgstr ""
 
-#: apt-pkg/deb/dpkgpm.cc:1364
+#: apt-pkg/deb/dpkgpm.cc:1380
 msgid ""
 "No apport report written because the error message indicates a dpkg I/O error"
 msgstr ""
 
-#: apt-pkg/deb/debsystem.cc:69
+#: apt-pkg/deb/debsystem.cc:79
 #, c-format
 msgid ""
 "Unable to lock the administration directory (%s), is another process using "
 "it?"
 msgstr ""
 
-#: apt-pkg/deb/debsystem.cc:72
+#: apt-pkg/deb/debsystem.cc:82
 #, c-format
 msgid "Unable to lock the administration directory (%s), are you root?"
 msgstr ""
 
 #. TRANSLATORS: the %s contains the recovery command, usually
 #. dpkg --configure -a
-#: apt-pkg/deb/debsystem.cc:88
+#: apt-pkg/deb/debsystem.cc:98
 #, c-format
 msgid ""
 "dpkg was interrupted, you must manually run '%s' to correct the problem. "
 msgstr ""
 
-#: apt-pkg/deb/debsystem.cc:106
+#: apt-pkg/deb/debsystem.cc:116
 msgid "Not locked"
 msgstr ""
 
index 8cf6549ef047e1fe1476e67471786bdddc228e59..749c905fdbebef0e7baeb16a279e5311952891b8 100644 (file)
--- a/po/ar.po
+++ b/po/ar.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_po\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2006-10-20 21:28+0300\n"
 "Last-Translator: Ossama M. Khayat <okhayat@yahoo.com>\n"
 "Language-Team: Arabic <support@arabeyes.org>\n"
@@ -160,7 +160,7 @@ msgstr " جدول النسخ:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, fuzzy, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s لـ%s %s مُجمّع على %s %s\n"
@@ -732,7 +732,7 @@ msgstr "إعادة تثبيت  %s غير ممكنة، حيث أنّه لا يم
 msgid "%s is already the newest version.\n"
 msgstr "%s هي النسخة الأحدث.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, fuzzy, c-format
 msgid "%s set to manually installed.\n"
 msgstr "إلا أنه سيتم تثبيت %s"
@@ -844,8 +844,8 @@ msgstr "بعد الاستخراج %sب من المساحة الإضافيّة س
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "بعد الاستخراج %sب من المساحة ستفرّغ.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "تعذر حساب المساحة الحرة في %s"
@@ -882,7 +882,7 @@ msgstr "إجهاض."
 msgid "Do you want to continue [Y/n]? "
 msgstr "هل تريد الاستمرار [Y/n]؟"
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "فشل إحضار %s  %s\n"
@@ -891,7 +891,7 @@ msgstr "فشل إحضار %s  %s\n"
 msgid "Some files failed to download"
 msgstr "فشل تنزيل بعض الملفات"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "اكتمل التنزيل وفي وضع التنزيل فقط"
 
@@ -929,31 +929,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr ""
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "لا يقبل الأمر update أية مُعطيات"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -969,16 +969,16 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "قد تساعد المعلومات التالية في حل المشكلة:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 #, fuzzy
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "خطأ داخلي، عطب AllUpgrade بعض الأشياء"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -988,7 +988,7 @@ msgid_plural ""
 msgstr[0] "سيتم تثبيت الحزم الجديدة التالية:"
 msgstr[1] "سيتم تثبيت الحزم الجديدة التالية:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -996,26 +996,26 @@ msgid_plural ""
 msgstr[0] "سيتم تثبيت الحزم الجديدة التالية:"
 msgstr[1] "سيتم تثبيت الحزم الجديدة التالية:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr ""
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "خطأ داخلي، عطب AllUpgrade بعض الأشياء"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "قد ترغب بتشغيل 'apt-get -f install' لتصحيح هذه:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
 msgstr ""
 "مُعتمدات غير مستوفاة. جرب 'apt-get -f install' بدون أسماء حزم (أو حدّد حلاً)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1023,80 +1023,80 @@ msgid ""
 "or been moved out of Incoming."
 msgstr ""
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "حزم معطوبة"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "سيتم تثبيت الحزم الإضافيّة التالية:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "الحزم المقترحة:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "الحزم المستحسنة:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "تعذر العثور على الحزمة %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "إلا أنه سيتم تثبيت %s"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "حساب الترقية..."
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "فشل"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "تمّ"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "تعذر قَفْل دليل التنزيل"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "يجب تحديد حزمة واحدة على الأقل لجلب مصدرها"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "تعذر العثور على مصدر الحزمة %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1104,120 +1104,141 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "تخطي الملف '%s' المنزل مسبقاً\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "ليس هناك مساحة كافية في %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "يجب جلب %sب/%sب من الأرشيفات المصدرية.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "يجب جلب %sب من الأرشيفات المصدريّة.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "إحضار المصدر %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "فشل إحضار بعض الأرشيفات."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "أمر فك الحزمة '%s' فشل.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "أمر البناء '%s' فشل.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr ""
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
+#, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+
+#: cmdline/apt-get.cc:2951
 #, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 
-#: cmdline/apt-get.cc:2855
+#: cmdline/apt-get.cc:2957
 #, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr ""
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr ""
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "الاتصال بـ%s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "الوحدات المدعومة:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 msgid ""
 "Usage: apt-get [options] command\n"
 "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
@@ -1263,7 +1284,7 @@ msgid ""
 "                       This APT has Super Cow Powers.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1561,8 +1582,8 @@ msgstr ""
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1594,7 +1615,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "قراءة قوائم الحزم"
 
@@ -1959,34 +1980,28 @@ msgstr ""
 msgid "Unable to connect to %s:%s:"
 msgstr "تعذر الاتصال بـ%s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "إجهاض التثبيت."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr ""
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr ""
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr ""
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2142,57 +2157,57 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "تعذر العثور على التحديد %s"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "اختصار نوع مجهول: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "فتح ملف التهيئة %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr ""
@@ -2335,7 +2350,7 @@ msgstr ""
 msgid "Sub-process %s exited unexpectedly"
 msgstr ""
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr ""
@@ -2563,14 +2578,14 @@ msgstr ""
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2578,7 +2593,7 @@ msgid ""
 "you really want to do it, activate the APT::Force-LoopBreak option."
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2606,7 +2621,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr ""
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
 "used instead."
@@ -2654,12 +2669,12 @@ msgstr ""
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "الرجاء إدخال القرص المُسمّى  '%s' في السوّاقة '%s' وضغط مفتاح الإدخال."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "نظام الحزم '%s' غير مدعوم"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr ""
 
@@ -2684,17 +2699,24 @@ msgstr "قد يساعدك تنفيذ الأمر apt-get update في تصحيح 
 msgid "The list of sources could not be read."
 msgstr "تعذرت قراءة قائمة المصادر."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr ""
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr ""
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr ""
 
@@ -2783,7 +2805,7 @@ msgstr ""
 msgid "Collecting File Provides"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr ""
 
@@ -2796,8 +2818,8 @@ msgstr "فشل إعادة التسمية ، %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "MD5Sum غير متطابقة"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 #, fuzzy
 msgid "Hash Sum mismatch"
 msgstr "MD5Sum غير متطابقة"
@@ -2818,20 +2840,19 @@ msgstr "تعذر فتح ملف قاعدة البيانات %s: %s"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr ""
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -2839,32 +2860,32 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
 "to manually fix this package. (due to missing arch)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
 "to manually fix this package."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "الحجم غير متطابق"
 
@@ -2983,22 +3004,22 @@ msgstr "كتابة لائحة المصادر الجديدة\n"
 msgid "Source list entries for this disc are:\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3018,6 +3039,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "MD5Sum غير متطابقة"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "إجهاض التثبيت."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index 8422dd50fc3510cb090cc2e3fa195c5e362319f3..d283fb8d1bb1a1b2e3dd808b78475b7e8cbd6eeb 100644 (file)
--- a/po/ast.po
+++ b/po/ast.po
@@ -4,7 +4,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.7.18\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-10-02 23:35+0100\n"
 "Last-Translator: Iñigo Varela <ivarela@softastur.org>\n"
 "Language-Team: Asturian (ast)\n"
@@ -153,7 +153,7 @@ msgstr "  Tabla de versiones:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s pa %s compiláu en %s %s\n"
@@ -830,7 +830,7 @@ msgstr "La reinstalación de %s nun ye dable, nun pue descargase.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s yá ta na versión más nueva.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s axustáu como instaláu manualmente.\n"
@@ -942,8 +942,8 @@ msgstr "Tres d'esta operación, van usase %sB d'espaciu de discu adicional.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Tres d'esta operación, van lliberase %sB d'espaciu de discu.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Nun pue determinase l'espaciu llibre de %s"
@@ -980,7 +980,7 @@ msgstr "Encaboxar."
 msgid "Do you want to continue [Y/n]? "
 msgstr "¿Quies continuar [S/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Falló algamar %s  %s\n"
@@ -989,7 +989,7 @@ msgstr "Falló algamar %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Dellos ficheros nun pudieron descargase"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Descarga completa y en mou de sólo descarga"
 
@@ -1031,31 +1031,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Nota: Esto faise automáticamente y baxo demanda por dpkg."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Inorar release destín non disponible '%s' pal paquete '%s'"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Tomando '%s' como paquetes d'oríxenes en llugar de '%s'\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Inorar versión non disponible de '%s' del paquete '%s'"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "La orde update nun lleva argumentos"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "Suponse que nun vamos esborrar coses; nun pue entamase AutoRemover"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1073,15 +1073,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "La siguiente información pue aidar a resolver la situación:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Error internu, AutoRemover rompió coses"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1092,7 +1092,7 @@ msgstr[1] ""
 "Los siguientes paquetes instaláronse de manera automática y ya nun se "
 "necesiten:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1101,19 +1101,19 @@ msgstr[0] "El paquete %lu instalóse de mou automáticu y yá nun se necesita.\n
 msgstr[1] ""
 "Los paquetes %lu instaláronse de manera automática y ya nun se necesiten\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Usa 'apt-get autoremove' pa desinstalalos."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Error internu, AllUpgrade rompió coses"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Habríes d'executar 'apt-get -f install' para iguar estos:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1121,7 +1121,7 @@ msgstr ""
 "Dependencies ensin cubrir. Tenta 'apt-get -f install' ensin paquetes (o "
 "conseña una solución)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1133,73 +1133,73 @@ msgstr ""
 "inestable, que dellos paquetes necesarios nun se crearon o que\n"
 "s'allugaron fuera d'Incoming."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Paquetes frañaos"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Instalaránse los siguientes paquetes extra:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Paquetes afalaos:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Paquetes encamentaos"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Nun pudo alcontrase'l paquete %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s axustáu como instaláu automáticamente.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Calculando l'anovamientu... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Falló"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Fecho"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Error internu, l'iguador de problemes frañó coses"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Nun pue bloquiase'l direutoriu de descarga"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Has de conseñar polo menos un paquete p'algamar so fonte"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Nun pudo alcontrase un paquete fonte pa %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1208,7 +1208,7 @@ msgstr ""
 "AVISU: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1220,80 +1220,96 @@ msgstr ""
 "pa baxar los caberos anovamientos (posiblemente tovía nun sacaos) pal "
 "paquete.\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Saltando'l ficheru yá descargáu '%s'\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Nun hai espaciu llibre bastante en %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Hai falta descargar %sB/%sB d'archivos fonte.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Hai falta descargar %sB d'archivos fonte.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Fonte descargada %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Falló la descarga de dellos archivos."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Saltando'l desempaquetáu de la fonte yá desempaquetada en %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Falló la orde de desempaquetáu '%s'.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Comprueba qu'el paquete 'dpkg-dev' ta instaláu.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Falló la orde build '%s'.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Falló el procesu fíu"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Hai que conseñar polo menos un paquete pa verificar les dependencies de "
 "construcción"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Nun pudo algamase información de dependencies de construcción pa %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s nun tien dependencies de construcción.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"La dependencia %s en %s nun puede satisfacese porque nun se puede atopar el "
+"paquete %s"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1302,46 +1318,55 @@ msgstr ""
 "La dependencia %s en %s nun puede satisfacese porque nun se puede atopar el "
 "paquete %s"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Nun se pudo satisfacer la dependencia %s pa %s: El paquete instaláu %s ye "
+"enforma nuevu"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "La dependencia %s en %s nun puede satisfacese porque denguna versión "
 "disponible del paquete %s satisfaz los requisitos de versión"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Nun se pudo satisfacer la dependencia %s pa %s: El paquete instaláu %s ye "
-"enforma nuevu"
+"La dependencia %s en %s nun puede satisfacese porque nun se puede atopar el "
+"paquete %s"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Fallu pa satisfacer la dependencia %s pa %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Les dependencies de construcción de %s nun pudieron satisfacese."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Fallu al procesar les dependencies de construcción"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Coneutando a %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Módulos sofitaos:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1432,7 +1457,7 @@ msgstr ""
 "pa más información y opciones.\n"
 "                       Esti APT tien Poderes de Super Vaca.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1749,8 +1774,8 @@ msgstr "El ficheru %s/%s sobreescribe al que ta nel paquete %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1783,7 +1808,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Lleendo llista de paquetes"
 
@@ -2151,35 +2176,29 @@ msgstr "Daqué raro asocedió resolviendo '%s:%s' (%i - %s)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Nun pudo coneutase a %s:%s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "L'aniellu de claves nun s'instaló en %s."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Fallu internu: Robla bona, pero nun se pudo determinar la so buelga dixital?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Atopóse polo menos una robla mala."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr "Nun pudo executase 'gpgv' pa verificar la robla (¿ta instaláu gpgv?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Fallu desconocíu al executar gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Les siguientes robles nun valieron:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2339,60 +2358,60 @@ msgstr "%lis"
 msgid "Selection %s not found"
 msgstr "Escoyeta %s que nun s'atopa"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Triba d'abreviatura que nun se reconoz: «%c»"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Abriendo ficheros de configuración %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Fallu de sintaxis %s:%u: Nun hai un nome al entamu del bloque."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Fallu de sintaxis %s:%u: Marca mal formada"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Fallu de sintaxis %s:%u: Puxarra extra dempués del valor"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Error de sintaxis %s:%u: Les directives pueden facese sólo nel nivel cimeru"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Fallu de sintaxis %s:%u: Demasiaes inclusiones añeraes"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Fallu de sintaxis %s:%u: Incluyendo dende equí"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Error de sintaxis %s:%u: La directiva '%s' nun ta sofitada"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Fallu de sintaxis %s:%u: Directiva llimpia requier un tres opciones como "
 "argumentos"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Fallu de sintaxis %s:%u: Puxarra extra al final del ficheru"
@@ -2535,7 +2554,7 @@ msgstr "El subprocesu %s devolvió un códigu d'error (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "El subprocesu %s terminó de manera inesperada"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Nun se pudo abrir el ficheru %s"
@@ -2765,7 +2784,7 @@ msgstr "Llinia %u mal formada na llista d'oríxenes %s (triba)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Triba '%s' desconocida na llinia %u de la llista d'oríxenes %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2774,7 +2793,7 @@ msgstr ""
 "Nun pudó facese la configuración inmediatamente en '%s'. Por favor, mira man "
 "5 apt.conf embaxo APT::Immediate-Configure for details. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2785,7 +2804,7 @@ msgstr ""
 "esencial %s por un cote de Conflictos/Pre-Dependencies. Esto normalmente ye "
 "malo, pero si daveres quies facelo, activa la opción  APT::Force-LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2818,7 +2837,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Nun pueden iguase los problemes; tienes paquetes frañaos reteníos."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2869,12 +2888,12 @@ msgstr "El métodu %s nun entamó correchamente"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Por favor, introduz el discu '%s' nel preséu '%s' y calca Intro."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "El sistema d'empaquetáu '%s' nun ta sofitáu"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Nun pudo determinase una triba de sistema d'empaquetáu afayadiza"
 
@@ -2900,18 +2919,25 @@ msgstr "Has d'executar apt-get update pa iguar estos problemes"
 msgid "The list of sources could not be read."
 msgstr "Nun pudo lleese la llista de fontes."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr ""
 "Rexistru inválidu nel ficheru de preferencies %s, nun hai cabecera Paquete"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Nun s'entiende'l tipu de pin %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Nun hai prioridá (o ye cero) conseñada pa pin"
 
@@ -3001,7 +3027,7 @@ msgstr "Nun se puede lleer la llista de paquetes d'oríxenes %s"
 msgid "Collecting File Provides"
 msgstr "Recoyendo ficheros qu'apurren"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Fallu de E/S al grabar caché d'oríxenes"
 
@@ -3014,8 +3040,8 @@ msgstr "falló'l cambiu de nome, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "La suma MD5 nun concasa"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "La suma hash nun concasa"
 
@@ -3035,20 +3061,19 @@ msgstr "Nun se pudo parchear el ficheru release %s"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Nun hai clave pública denguna disponible pa les IDs de clave darréu:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "El ficheru release espiró, inorando %s (nun válidu dende %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Conflictu de distribución: %s (esperábase %s pero obtúvose %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3058,12 +3083,12 @@ msgstr ""
 "anováu y va usase un ficheru índiz. Fallu GPG: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "Fallu GPG: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3072,7 +3097,7 @@ msgstr ""
 "Nun pudo alcontrase un ficheru pal paquete %s. Esto puede significar que "
 "necesites iguar manualmente esti paquete (por faltar una arquitectura)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3081,7 +3106,7 @@ msgstr ""
 "Nun pudo alcontrase un ficheru pal paquete %s. Esto puede significar que "
 "necesites iguar manualmente esti paquete"
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3089,7 +3114,7 @@ msgstr ""
 "Los ficheros d'indiz de paquetes tan corrompíos. Nun hai campu Filename: pal "
 "paquete %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "El tamañu nun concasa"
 
@@ -3213,22 +3238,22 @@ msgstr "Escribiendo llista nueva d'oríxenes\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Les entraes de la llista d'oríxenes pa esti discu son:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "%i rexistros escritos.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "%i rexistros escritos con %i ficheros de menos.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "%i rexistros escritos con %i ficheros mal empareyaos\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3250,6 +3275,17 @@ msgstr "Nun puede alcontrase'l rexistru d'autenticación pa: %s"
 msgid "Hash mismatch for: %s"
 msgstr "El hash nun concasa pa: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "L'aniellu de claves nun s'instaló en %s."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3511,6 +3547,9 @@ msgstr "Conexón encaboxada prematuramente"
 #~ msgid "Internal error, group '%s' has no installable pseudo package"
 #~ msgstr "Fallu internu, grupu '%s' nun tien paquete pseudo instalable"
 
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "El ficheru release espiró, inorando %s (nun válidu dende %s)"
+
 #~ msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
 #~ msgstr ""
 #~ "E: Llista d'argumentos d'Acquire::gpgv::Options demasiao llarga. Colando."
index 36ad082736e867cf492a1c17e2e3c61a39e24070..fe5c9c8653aa24c40d07bc23b78e97bdae942242 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.7.21\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-08-27 22:33+0300\n"
 "Last-Translator: Damyan Ivanov <dmn@debian.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -159,7 +159,7 @@ msgstr "  Таблица с версиите:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s за %s компилиран на %s %s\n"
@@ -842,7 +842,7 @@ msgstr "Преинсталацията на %s не е възможна, не м
 msgid "%s is already the newest version.\n"
 msgstr "%s вече е най-новата версия.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s е отбелязан като ръчно инсталиран.\n"
@@ -959,8 +959,8 @@ msgstr ""
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "След тази операция ще бъде освободено %sB дисково пространство.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Неуспех при определянето на свободното пространство в %s"
@@ -997,7 +997,7 @@ msgstr "Прекъсване."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Искате ли да продължите [Y/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Неуспех при изтеглянето на %s  %s\n"
@@ -1006,7 +1006,7 @@ msgstr "Неуспех при изтеглянето на %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Някои файлове не можаха да бъдат изтеглени"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Изтеглянето завърши в режим само на изтегляне"
 
@@ -1048,31 +1048,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Това се прави автоматично от dpkg."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Игнориране на несъществуващо издание „%s“ на пакета „%s“"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Използване на пакет източник „%s“ вместо „%s“\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Игнориране на несъществуваща версия „%s“ на пакета „%s“"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Командата „update“ не възприема аргументи"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "Не би трябвало да се изтрива. AutoRemover няма да бъде стартиран"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1090,16 +1090,16 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr ""
 "Следната информация може да помогне за намиране на изход от ситуацията:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Вътрешна грешка, AutoRemover счупи нещо в системата"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1109,7 +1109,7 @@ msgstr[0] "Следният пакет е бил инсталиран автом
 msgstr[1] ""
 "Следните пакети са били инсталирани автоматично и вече не са необходими:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1118,19 +1118,19 @@ msgstr[0] "%lu пакет е бил инсталиран автоматично
 msgstr[1] ""
 "%lu пакета са били инсталирани автоматично и вече не са необходими:\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Използвайте „apt-get autoremove“ за да ги премахнете."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Вътрешна грешка, „AllUpgrade“ счупи нещо в системата"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Възможно е да изпълните „apt-get -f install“, за да коригирате:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1138,7 +1138,7 @@ msgstr ""
 "Неудовлетворени зависимости. Опитайте „apt-get -f install“ без пакети (или "
 "укажете разрешение)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1150,73 +1150,73 @@ msgstr ""
 "дистрибуция, че някои необходими пакети още не са създадени или пък\n"
 "са били преместени от Incoming."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Счупени пакети"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Следните допълнителни пакети ще бъдат инсталирани:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Предложени пакети:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Препоръчвани пакети:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Неуспех при намирането на пакет %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s е отбелязан като автоматично инсталиран.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Изчисляване на актуализацията..."
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Неуспех"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Готово"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Вътрешна грешка, „problem resolver“ счупи нещо в системата"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Неуспех при заключването на директорията за изтегляне"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Трябва да укажете поне един пакет за изтегляне на изходния му код"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Неуспех при намирането на изходен код на пакет %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1226,7 +1226,7 @@ msgstr ""
 "адрес:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1238,81 +1238,97 @@ msgstr ""
 "за да изтеглите последните промени в пакета (евентуално в процес на "
 "разработка).\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Пропускане на вече изтегления файл „%s“\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Нямате достатъчно свободно пространство в %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Необходимо е да се изтеглят %sB/%sB архиви изходен код.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Необходимо е да се изтеглят %sB архиви изходен код.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Изтегляне на изходен код %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Неуспех при изтеглянето на някои архиви."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 "Пропускане на разпакетирането на вече разпакетирания изходен код в %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Командата за разпакетиране „%s“ пропадна.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Проверете дали имате инсталиран пакета „dpkg-dev“.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Командата за компилиране „%s“ пропадна.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Процесът-потомък пропадна"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Трябва да укажете поне един пакет за проверка на зависимости за компилиране"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 "Неуспех при получаването на информация за зависимостите за компилиране на %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s няма зависимости за компилиране.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"Зависимост %s за пакета %s не може да бъде удовлетворена, понеже пакета %s "
+"не може да бъде намерен"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1321,47 +1337,56 @@ msgstr ""
 "Зависимост %s за пакета %s не може да бъде удовлетворена, понеже пакета %s "
 "не може да бъде намерен"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Неуспех при удовлетворяването на зависимост %s за пакета %s: Инсталираният "
+"пакет %s е твърде нов"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "Зависимост %s за пакета %s не може да бъде удовлетворена, понеже няма "
 "налични версии на пакета %s, които могат да удовлетворят изискването за "
 "версия"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Ð\9dеÑ\83Ñ\81пеÑ\85 Ð¿Ñ\80и Ñ\83довлеÑ\82воÑ\80Ñ\8fванеÑ\82о Ð½Ð° Ð·Ð°Ð²Ð¸Ñ\81имоÑ\81Ñ\82 %s Ð·Ð° Ð¿Ð°ÐºÐµÑ\82а %s: Ð\98нÑ\81Ñ\82алиÑ\80аниÑ\8fÑ\82 "
-"пакеÑ\82 %s Ðµ Ñ\82вÑ\8aÑ\80де Ð½Ð¾Ð²"
+"Ð\97авиÑ\81имоÑ\81Ñ\82 %s Ð·Ð° Ð¿Ð°ÐºÐµÑ\82а %s Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð±Ñ\8aде Ñ\83довлеÑ\82воÑ\80ена, Ð¿Ð¾Ð½ÐµÐ¶Ðµ Ð¿Ð°ÐºÐµÑ\82а %s "
+"не Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð±Ñ\8aде Ð½Ð°Ð¼ÐµÑ\80ен"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Неуспех при удовлетворяването на зависимост %s за пакета %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Зависимостите за компилиране на %s не можаха да бъдат удовлетворени."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Неуспех при обработката на зависимостите за компилиране"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Свързване с %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Поддържани модули:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1452,7 +1477,7 @@ msgstr ""
 "информация и опции.\n"
 "                           Това APT има Върховни Сили.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1765,8 +1790,8 @@ msgstr "Файл %s/%s заменя този в пакет %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1799,7 +1824,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Четене на списъците с пакети"
 
@@ -2169,38 +2194,32 @@ msgstr "Нещо лошо се случи при намирането на IP а
 msgid "Unable to connect to %s:%s:"
 msgstr "Неуспех при свързване с %s:%s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "В %s няма инсталиран ключодържател."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Вътрешна грешка: Валиден подпис, но не може да се провери отпечатъка на "
 "ключа?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Намерен е поне един невалиден подпис."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Неуспех при изпълнение на „gpgv“ за проверка на подписа (инсталиран ли е "
 "gpgv?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Неизвестна грешка при изпълнението на gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Следните подписи са невалидни:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2361,60 +2380,60 @@ msgstr "%liс"
 msgid "Selection %s not found"
 msgstr "Изборът %s не е намерен"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Неизвестен тип на абревиатура: „%c“"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Отваряне на конфигурационен файл %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Синтактична грешка %s:%u: В началото на блока няма име."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Синтактична грешка %s:%u: Лошо форматиран таг"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Синтактична грешка %s:%u: Излишни символи след стойността"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Синтактична грешка %s:%u: Директиви могат да се задават само в най-горното "
 "ниво"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Синтактична грешка %s:%u: Твърде много вложени „include“"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Синтактична грешка %s:%u: Извикан „include“ оттук"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Синтактична грешка %s:%u: Неподдържана директива „%s“"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Синтактична грешка %s:%u: директивата clear изисква  аргумент дърво от опции"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Синтактична грешка %s:%u: Излишни символи в края на файла"
@@ -2559,7 +2578,7 @@ msgstr "Подпроцесът %s върна код за грешка (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Подпроцесът %s завърши неочаквано"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Неуспех при отварянето на файла %s"
@@ -2794,7 +2813,7 @@ msgstr "Лошо форматиран ред %u в списъка с източ
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Типът „%s“ на ред %u в списъка с източници %s е неизвестен."
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2803,7 +2822,7 @@ msgstr ""
 "Неуспех при незабавната настройка на „%s“. За повече информация вижте "
 "информацията за APT::Immediate-Configure в „man 5 apt.conf“. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2815,7 +2834,7 @@ msgstr ""
 "пакет %s. Това често е лошо, но ако наистина искате да го направите, "
 "активирайте опцията APT::Force-LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2850,7 +2869,7 @@ msgid "Unable to correct problems, you have held broken packages."
 msgstr ""
 "Неуспех при коригирането на проблемите, имате задържани счупени пакети."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2901,12 +2920,12 @@ msgstr "Методът %s не стартира правилно"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Сложете диска, озаглавен „%s“ в устройство „%s“ и натиснете „Enter“."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Пакетната система „%s“ не е поддържана"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Неуспех при определянето на подходяща пакетна система"
 
@@ -2934,17 +2953,24 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr "Списъкът с източници не можа да бъде прочетен."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Невалиден запис във файла с настройки %s, липсва заглавна част Package"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Неизвестен тип за отбиване %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Няма указан приоритет (или е нула) на отбиването"
 
@@ -3038,7 +3064,7 @@ msgstr ""
 msgid "Collecting File Provides"
 msgstr "Събиране на информация за „Осигурява“"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Входно/изходна грешка при запазването на кеша на пакети с изходен код"
 
@@ -3051,8 +3077,8 @@ msgstr "преименуването се провали, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "Несъответствие на контролна сума MD5"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Несъответствие на контролната сума"
 
@@ -3072,20 +3098,19 @@ msgstr "Неуспех при анализиране на файл Release %s"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Няма налични публични ключове за следните идентификатори на ключове:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Файлът %s вече не е валиден и ще бъде игнориран. (изтекъл е преди %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Конфликт в дистрибуцията: %s (очаквана: %s, намерена: %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3095,12 +3120,12 @@ msgstr ""
 "използват старите индексни файлове. Грешка от GPG: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "Грешка от GPG: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3109,7 +3134,7 @@ msgstr ""
 "Неуспех при намирането на файл за пакет %s. Това може да означава, че трябва "
 "ръчно да оправите този пакет (поради пропусната архитектура)."
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3118,14 +3143,14 @@ msgstr ""
 "Неуспех при намирането на файл за пакет %s. Това може да означава, че трябва "
 "ръчно да оправите този пакет."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 "Индексните файлове на пакета са повредени. Няма поле Filename: за пакет %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Несъответствие на размера"
 
@@ -3249,22 +3274,22 @@ msgstr "Запазване на новия списък с източници\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Записите в списъка с източници за този диск са:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Записани са %i записа.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Записани са %i записа с %i липсващи файла.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Записани са %i записа с %i несъответстващи файла\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "Записани са %i записа с %i липсващи и %i несъответстващи файла\n"
@@ -3284,6 +3309,17 @@ msgstr "Не е намерен oторизационен запис за: %s"
 msgid "Hash mismatch for: %s"
 msgstr "Несъответствие на контролната сума за: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "В %s няма инсталиран ключодържател."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3549,6 +3585,10 @@ msgstr "Връзката прекъсна преждевременно"
 #~ msgstr ""
 #~ "Вътрешна грешка, групата „%s“ няма псевдо-пакет, подходящ за инсталиране"
 
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr ""
+#~ "Файлът %s вече не е валиден и ще бъде игнориран. (изтекъл е преди %s)"
+
 #~ msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
 #~ msgstr ""
 #~ "E: Списъкът с аргументи от Acquire::gpgv::Options е твърде дълъг. "
index 537e8889e67f95f6203e81ce3ad9049a47fdd9fc..c85c979c2a060f244a7e46d390bec442abc85638 100644 (file)
--- a/po/bs.po
+++ b/po/bs.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.5.26\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2004-05-06 15:25+0100\n"
 "Last-Translator: Safir Šećerović <sapphire@linux.org.ba>\n"
 "Language-Team: Bosnian <lokal@lugbih.org>\n"
@@ -155,7 +155,7 @@ msgstr ""
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr ""
@@ -739,7 +739,7 @@ msgstr ""
 msgid "%s is already the newest version.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, fuzzy, c-format
 msgid "%s set to manually installed.\n"
 msgstr "ali se %s treba instalirati"
@@ -852,8 +852,8 @@ msgstr ""
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr ""
@@ -888,7 +888,7 @@ msgstr "Odustani."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Da li želite nastaviti? [Y/n]"
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr ""
@@ -897,7 +897,7 @@ msgstr ""
 msgid "Some files failed to download"
 msgstr ""
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr ""
 
@@ -933,31 +933,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr ""
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr ""
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -973,15 +973,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -991,7 +991,7 @@ msgid_plural ""
 msgstr[0] "Slijedeći NOVI paketi će biti instalirani:"
 msgstr[1] "Slijedeći NOVI paketi će biti instalirani:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -999,25 +999,25 @@ msgid_plural ""
 msgstr[0] "Slijedeći NOVI paketi će biti instalirani:"
 msgstr[1] "Slijedeći NOVI paketi će biti instalirani:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr ""
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
 msgstr ""
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1025,80 +1025,80 @@ msgid ""
 "or been moved out of Incoming."
 msgstr ""
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Oštećeni paketi"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Slijedeći dodatni paketi će biti instalirani:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Predloženi paketi:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Preporučeni paketi:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "ali se %s treba instalirati"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Računam nadogradnju..."
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Neuspješno"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Urađeno"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr ""
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1106,120 +1106,141 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr ""
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr ""
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr ""
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr ""
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
+#, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+
+#: cmdline/apt-get.cc:2951
 #, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 
-#: cmdline/apt-get.cc:2855
+#: cmdline/apt-get.cc:2957
 #, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr ""
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr ""
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, c-format
 msgid "Changelog for %s (%s)"
 msgstr ""
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Podržani moduli:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 msgid ""
 "Usage: apt-get [options] command\n"
 "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
@@ -1265,7 +1286,7 @@ msgid ""
 "                       This APT has Super Cow Powers.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1558,8 +1579,8 @@ msgstr ""
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1591,7 +1612,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Čitam spiskove paketa"
 
@@ -1955,35 +1976,29 @@ msgstr ""
 msgid "Unable to connect to %s:%s:"
 msgstr "Ne mogu se povezati sa %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "Odustajem od instalacije."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr ""
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr ""
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 #, fuzzy
 msgid "The following signatures were invalid:\n"
 msgstr "Slijedeći dodatni paketi će biti instalirani:"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2139,57 +2154,57 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr ""
@@ -2332,7 +2347,7 @@ msgstr ""
 msgid "Sub-process %s exited unexpectedly"
 msgstr ""
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr ""
@@ -2561,14 +2576,14 @@ msgstr ""
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2576,7 +2591,7 @@ msgid ""
 "you really want to do it, activate the APT::Force-LoopBreak option."
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2604,7 +2619,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr ""
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
 "used instead."
@@ -2652,12 +2667,12 @@ msgstr ""
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr ""
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr ""
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr ""
 
@@ -2682,17 +2697,24 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr ""
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr ""
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr ""
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr ""
 
@@ -2781,7 +2803,7 @@ msgstr ""
 msgid "Collecting File Provides"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr ""
 
@@ -2794,8 +2816,8 @@ msgstr ""
 msgid "MD5Sum mismatch"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr ""
 
@@ -2815,20 +2837,19 @@ msgstr "Ne mogu otvoriti DB datoteku %s"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr ""
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -2836,32 +2857,32 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
 "to manually fix this package. (due to missing arch)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
 "to manually fix this package."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr ""
 
@@ -2980,22 +3001,22 @@ msgstr ""
 msgid "Source list entries for this disc are:\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3015,6 +3036,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr ""
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "Odustajem od instalacije."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index efae3242878192f5e264ad5edbcf94f174c199f8..4801c0c11a4e922181efd31c7486acbf0dd8aa97 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.8.15\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2011-06-16 01:41+0200\n"
 "Last-Translator: Jordi Mallach <jordi@debian.org>\n"
 "Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n"
@@ -156,7 +156,7 @@ msgstr "  Taula de versió:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s per a %s compilat el %s %s\n"
@@ -831,7 +831,7 @@ msgstr "No es possible la reinstaŀlació del paquet %s, no es pot baixar.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s ja es troba en la versió més recent.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "S'ha marcat %s com instaŀlat manualment.\n"
@@ -948,8 +948,8 @@ msgstr ""
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Després d'aquesta operació s'alliberaran %sB d'espai en disc.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "No s'ha pogut determinar l'espai lliure en %s"
@@ -986,7 +986,7 @@ msgstr "Avortat."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Voleu continuar [S/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "No s'ha pogut obtenir %s  %s\n"
@@ -995,7 +995,7 @@ msgstr "No s'ha pogut obtenir %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Alguns fitxers no s'han pogut baixar"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Baixada completa i en mode de només baixada"
 
@@ -1037,33 +1037,33 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Nota: Això ho fa el dpkg automàticament i a propòsit."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Ignora la versió objectiu «%s» no disponible del paquet «%s»"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "S'està agafant «%s» com a paquet font en lloc de '%s'\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Descarta la versió «%s» no disponible del paquet «%s»"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "L'ordre update no pren arguments"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 "Es suposa que no hauriem de suprimir coses, no es pot iniciar el supressor "
 "automàtic"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1081,15 +1081,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "La informació següent pot ajudar-vos a resoldre la situació:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "S'ha produït un error intern, el supressor automàtic ha trencat coses"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1100,7 +1100,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Els paquets següents s'han instaŀlat automàticament i ja no són necessaris:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1110,19 +1110,19 @@ msgstr[0] ""
 msgstr[1] ""
 "Els paquets %lu es van s'instaŀlar automàticament i ja no són necessaris:\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Empreu «apt-get autoremove» per a suprimir-los."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Error intern, AllUpgrade ha trencat coses"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Potser voldreu executar «apt-get -f install» per corregir-ho:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1130,7 +1130,7 @@ msgstr ""
 "Dependències insatisfetes. Proveu amb «apt-get -f install» sense paquets (o "
 "especifiqueu una solució)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1142,33 +1142,33 @@ msgstr ""
 "«unstable» i alguns paquets requerits encara no han estat creats o bé\n"
 "encara no els hi han introduït des d'«Incoming»."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Paquets trencats"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "S'instaŀlaran els següents paquets extres:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Paquets suggerits:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Paquets recomanats:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "No s'ha pogut trobar el paquet %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "S'ha marcat %s com instaŀlat automàticament.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
@@ -1176,42 +1176,42 @@ msgstr ""
 "Aquesta ordre és desfasada. Empreu «apt-mark auto» i «apt-mark manual» en el "
 "seu lloc."
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "S'està calculant l'actualització… "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Ha fallat"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Fet"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 "S'ha produït un error intern, el solucionador de problemes ha trencat coses"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "No és possible blocar el directori de descàrrega"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr "S'està baixant %s %s"
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Haureu d'especificar un paquet de codi font per a baixar"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "No es pot trobar un paquet de fonts per a %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1221,7 +1221,7 @@ msgstr ""
 "versions «%s» a:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1233,82 +1233,98 @@ msgstr ""
 "per a obtenir les últimes actualitzacions (possiblement no publicades) del "
 "paquet.\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "S'està ometent el fitxer ja baixat «%s»\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "No teniu prou espai lliure en %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Es necessita baixar %sB/%sB d'arxius font.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Es necessita baixar %sB d'arxius font.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Obtén el font %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "No s'ha pogut baixar alguns arxius."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 "S'està ometent el desempaquetament de les fonts que ja ho estan en %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "L'ordre de desempaquetar «%s» ha fallat.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Comproveu si el paquet «dpkgdev» està instaŀlat.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "L'ordre de construir «%s» ha fallat.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Ha fallat el procés fill"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "S'ha d'especificar un paquet per a verificar les dependències de construcció "
 "per a"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 "No es pot obtenir informació sobre les dependències de construcció per a %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s no té dependències de construcció.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"La dependència %s en %s no es pot satisfer per que no es pot trobar el "
+"paquet %s"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1317,46 +1333,55 @@ msgstr ""
 "La dependència %s en %s no es pot satisfer per que no es pot trobar el "
 "paquet %s"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"No s'ha pogut satisfer la dependència %s per a %s: El paquet instaŀlat %s és "
+"massa nou"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "La dependència %s per a %s no es pot satisfer per que cap versió del paquet "
 "%s pot satisfer els requeriments de versions"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"No s'ha pogut satisfer la dependència %s per a %s: El paquet instaŀlat %s és "
-"massa nou"
+"La dependència %s en %s no es pot satisfer per que no es pot trobar el "
+"paquet %s"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "No s'ha pogut satisfer la dependència %s per a %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "No s'han pogut satisfer les dependències de construcció per a %s"
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "No es poden processar les dependències de construcció"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Registre de canvis per a %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Mòduls suportats:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1446,7 +1471,7 @@ msgstr ""
 "per a obtenir més informació i opcions.\n"
 "                       Aquest APT té superpoders bovins.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1781,8 +1806,8 @@ msgstr "El fitxer %s/%s sobreescriu al que està en el paquet %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1816,7 +1841,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "S'està llegint la llista de paquets"
 
@@ -2185,38 +2210,32 @@ msgstr "Ha passat alguna cosa estranya en resoldre '%s:%s' (%i - %s)"
 msgid "Unable to connect to %s:%s:"
 msgstr "No es pot connectar amb %s:%s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "No s'ha instaŀlat cap clauer a %s."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Error intern: La signatura és correcta, però no s'ha pogut determinar "
 "l'emprempta digital de la clau!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "S'ha trobat almenys una signatura invàlida."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "No s'ha pogut executar «gpgv» per a verificar la signatura (està instaŀlat "
 "el gpgv?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "S'ha produït un error desconegut en executar el gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Les signatures següents són invàlides:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2378,59 +2397,59 @@ msgstr "%lis"
 msgid "Selection %s not found"
 msgstr "No s'ha trobat la selecció %s"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Abreujament de tipus no reconegut: «%c»"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "S'està obrint el fitxer de configuració %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Error sintàctic %s:%u: No comença el camp amb un nom."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Error sintàctic %s:%u: Etiqueta malformada"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Error sintàctic %s:%u Text extra després del valor"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "Error sintàctic %s:%u: Es permeten directrius només al nivell més alt"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Error sintàctic %s:%u: Hi ha masses fitxers include niats"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Error sintàctic %s:%u: Inclusió des d'aquí"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Error sintàctic %s:%u: Directriu no suportada «%s»"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Error sintàctic %s:%u: la directiva clear requereix un arbre d'opcions com a "
 "argument"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Error sintàctic %s:%u: Text extra al final del fitxer"
@@ -2578,7 +2597,7 @@ msgstr "El sub-procés %s ha retornat un codi d'error (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "El sub-procés %s ha sortit inesperadament"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "No s'ha pogut obrir el fitxer %s"
@@ -2808,7 +2827,7 @@ msgstr "La línia %u és malformada en la llista de fonts %s (tipus)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "El tipus «%s» no és conegut en la línia %u de la llista de fonts %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2817,7 +2836,7 @@ msgstr ""
 "No s'ha pogut realitzar la configuració immediata de '%s'. Consulteu man 5 "
 "apt.conf, secció APT::Immediate-Configure per a més detalls. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2829,7 +2848,7 @@ msgstr ""
 "dolenta, però si realment desitgeu fer-la, activeu l'opció APT::Force-"
 "LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2864,7 +2883,7 @@ msgstr ""
 "No es poden corregir els problemes, teniu paquets retinguts que estan "
 "trencats."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2915,12 +2934,12 @@ msgstr "El mètode %s no s'ha iniciat correctament"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Inseriu el disc amb l'etiqueta: «%s» en la unitat «%s» i premeu Intro."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "El sistema d'empaquetament «%s» no està suportat"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "No es pot determinar un tipus de sistema d'empaquetament adequat."
 
@@ -2947,17 +2966,24 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr "No s'ha pogut llegir la llista de les fonts."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Registre no vàlid al fitxer de preferències %s, paquet sense capçalera"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "No s'ha entès el pin de tipus %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "No hi ha prioritat especificada per al pin (o és zero)"
 
@@ -3054,7 +3080,7 @@ msgstr "No s'ha pogut llegir la llista de paquets font %s"
 msgid "Collecting File Provides"
 msgstr "S'estan recollint els fitxers que proveeixen"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Error d'E/S en desar la memòria cau de la font"
 
@@ -3067,8 +3093,8 @@ msgstr "no s'ha pogut canviar el nom, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "La suma MD5 no concorda"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "La suma resum no concorda"
 
@@ -3090,20 +3116,19 @@ msgstr "No s'ha trobat la suma de comprovació per a «%s» al fitxer Release"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "No hi ha cap clau pública disponible per als següents ID de clau:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "El fitxer Release ha caducat, s'està ignorant %s (invàlid des de %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Distribució en conflicte: %s (s'esperava %s però s'ha obtingut %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3114,12 +3139,12 @@ msgstr ""
 "%s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "S'ha produït un error amb el GPG: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3129,7 +3154,7 @@ msgstr ""
 "significar que haureu d'arreglar aquest paquet manualment (segons "
 "arquitectura)."
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3138,7 +3163,7 @@ msgstr ""
 "No s'ha trobat un fitxer pel paquet %s. Això podria significar que haureu "
 "d'arreglar aquest paquet manualment."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3146,7 +3171,7 @@ msgstr ""
 "L'índex dels fitxers en el paquet està corromput. Fitxer no existent: camp "
 "per al paquet %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "La mida no concorda"
 
@@ -3270,22 +3295,22 @@ msgstr "S'està escrivint una nova llista de fonts\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Les entrades de la llista de fonts per a aquest disc són:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "S'han escrit %i registres.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "S'han escrit %i registres, on falten %i fitxers.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "S'han escrit %i registres, on hi ha %i fitxers no coincidents\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3307,6 +3332,17 @@ msgstr "No s'ha pogut trobar el registre d'autenticatió per a: %s"
 msgid "Hash mismatch for: %s"
 msgstr "El resum no coincideix per a: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "No s'ha instaŀlat cap clauer a %s."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3572,6 +3608,10 @@ msgstr "La connexió s'ha tancat prematurament"
 #~ "S'ha produït un error intern, el grup '%s' no disposa d'un pseudopaquet "
 #~ "instaŀlable"
 
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr ""
+#~ "El fitxer Release ha caducat, s'està ignorant %s (invàlid des de %s)"
+
 #~ msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
 #~ msgstr ""
 #~ "E: La llista d'arguments d'Acquire::gpgv::Options és massa llarga. S'està "
index f9c63cf7fcb825e3e7de5b9236ef1bee78b99984..0a6cfc298a9ce8c51ae68c89c1edeb1c8eb39ac1 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-11-27 13:54+0100\n"
 "Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
 "Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
@@ -154,7 +154,7 @@ msgstr "  Tabulka verzí:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s pro %s zkompilován na %s %s\n"
@@ -828,7 +828,7 @@ msgstr "Přeinstalace %s není možná, protože nelze stáhnout.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s je již nejnovější verze.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s nastaven jako instalovaný ručně.\n"
@@ -941,8 +941,8 @@ msgstr "Po této operaci bude na disku použito dalších %sB.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Po této operaci bude na disku uvolněno %sB.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Nelze určit volné místo v %s"
@@ -979,7 +979,7 @@ msgstr "Přerušeno."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Chcete pokračovat [Y/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Selhalo stažení %s  %s\n"
@@ -988,7 +988,7 @@ msgstr "Selhalo stažení %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Některé soubory nemohly být staženy"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Stahování dokončeno v režimu pouze stáhnout"
 
@@ -1033,31 +1033,31 @@ msgstr[2] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Poznámka: Toto má svůj důvod a děje se automaticky v dpkg."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Ignoruje se nedostupné vydání „%s“ balíku „%s“"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Vybírám „%s“ jako zdrojový balík místo „%s“\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Ignoruje se nedostupná verze „%s“ balíku „%s“"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Příkaz update neakceptuje žádné argumenty"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "Neměli bychom mazat věci, nemůžu spustit AutoRemover"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1075,15 +1075,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Následující informace vám mohou pomoci vyřešit tuto situaci:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Vnitřní chyba, AutoRemover pokazil věci"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1095,7 +1095,7 @@ msgstr[1] ""
 msgstr[2] ""
 "Následující balíky byly nainstalovány automaticky a již nejsou potřeba:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1104,19 +1104,19 @@ msgstr[0] "%lu balík byl nainstalován automaticky a již není potřeba.\n"
 msgstr[1] "%lu balíky byly nainstalovány automaticky a již nejsou potřeba.\n"
 msgstr[2] "%lu balíků bylo nainstalováno automaticky a již nejsou potřeba.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Pro jejich odstranění použijte „apt-get autoremove“."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Vnitřní chyba, AllUpgrade pokazil věci"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Pro opravení následujících můžete spustit „apt-get -f install“:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1124,7 +1124,7 @@ msgstr ""
 "Nesplněné závislosti. Zkuste spustit „apt-get -f install“ bez balíků (nebo "
 "navrhněte řešení)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1135,73 +1135,73 @@ msgstr ""
 "nemožnou situaci, nebo, pokud používáte nestabilní distribuci, že\n"
 "vyžadované balíky ještě nebyly vytvořeny nebo přesunuty z Příchozí fronty."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Poškozené balíky"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Následující extra balíky budou instalovány:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Navrhované balíky:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Doporučované balíky:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Nelze najít balík %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s nastaven jako instalovaný automaticky.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Propočítávám aktualizaci… "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Selhalo"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Hotovo"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Vnitřní chyba, řešitel problémů pokazil věci"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Nelze zamknout adresář pro stahování"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Musíte zadat aspoň jeden balík, pro který se stáhnou zdrojové texty"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Nelze najít zdrojový balík pro %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1210,7 +1210,7 @@ msgstr ""
 "INFO: Balík „%s“ je spravován v systému pro správu verzí „%s“ na:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1221,125 +1221,146 @@ msgstr ""
 "použijte:\n"
 "bzr get %s\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Přeskakuji dříve stažený soubor „%s“\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Na %s nemáte dostatek volného místa"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Potřebuji stáhnout %sB/%sB zdrojových archivů.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Potřebuji stáhnout %sB zdrojových archivů.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Stáhnout zdroj %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Stažení některých archivů selhalo."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Přeskakuji rozbalení již rozbaleného zdroje v %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Příkaz pro rozbalení „%s“ selhal.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Zkontrolujte, zda je nainstalován balíček „dpkg-dev“.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Příkaz pro sestavení „%s“ selhal.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Synovský proces selhal"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Musíte zadat alespoň jeden balík, pro který budou kontrolovány závislosti "
 "pro sestavení"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Nelze získat závislosti pro sestavení %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s nemá žádné závislosti pro sestavení.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr "%s závislost pro %s nemůže být splněna, protože balík %s nebyl nalezen"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr "%s závislost pro %s nemůže být splněna, protože balík %s nebyl nalezen"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Selhalo splnění %s závislosti pro %s: Instalovaný balík %s je příliš nový"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "%s závislost pro %s nemůže být splněna protože není k dispozici verze balíku "
 "%s, která odpovídá požadavku na verzi"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr ""
-"Selhalo splnění %s závislosti pro %s: Instalovaný balík %s je příliš nový"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
+msgstr "%s závislost pro %s nemůže být splněna, protože balík %s nebyl nalezen"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Selhalo splnění %s závislosti pro %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Závislosti pro sestavení %s nemohly být splněny."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Chyba při zpracování závislostí pro sestavení"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Připojuji se k %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Podporované moduly:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1427,7 +1448,7 @@ msgstr ""
 "a apt.conf(5).\n"
 "                       Tato APT má schopnosti svaté krávy.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1737,8 +1758,8 @@ msgstr "Soubor %s/%s přepisuje ten z balíku %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1770,7 +1791,7 @@ msgstr "Adresáře info a temp musí být na stejném souborovém systému"
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Čtu seznamy balíků"
 
@@ -2138,34 +2159,28 @@ msgstr "Něco hodně ošklivého se přihodilo při překladu „%s:%s“ (%i -
 msgid "Unable to connect to %s:%s:"
 msgstr "Nelze se připojit k %s:%s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "V %s není nainstalována žádná klíčenka."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr "Vnitřní chyba: Dobrý podpis, ale nemohu zjistit otisk klíče?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Byl zaznamenán nejméně jeden neplatný podpis. "
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr "Nelze spustit „gpgv“ pro ověření podpisu (je gpgv nainstalováno?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Neznámá chyba při spouštění gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Následující podpisy jsou neplatné:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2324,60 +2339,60 @@ msgstr "%lis"
 msgid "Selection %s not found"
 msgstr "Výběr %s nenalezen"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Nerozpoznaná zkratka typu: „%c“"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Otevírám konfigurační soubor %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Syntaktická chyba %s:%u: Blok nezačíná jménem."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Syntaktická chyba %s:%u: Zkomolená značka"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Syntaktická chyba %s:%u: Za hodnotou následuje zbytečné smetí"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Syntaktická chyba %s:%u: Direktivy je možné provádět pouze na nejvyšší úrovni"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Syntaktická chyba %s:%u: Příliš mnoho vnořených propojení (include)"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Syntaktická chyba %s:%u: Zahrnuto odtud"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Syntaktická chyba %s:%u: Nepodporovaná direktiva „%s“"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Syntaktická chyba %s:%u: Direktiva clear vyžaduje jako argument strom "
 "možností"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Syntaktická chyba %s:%u: Na konci souboru je zbytečné smetí"
@@ -2520,7 +2535,7 @@ msgstr "Podproces %s vrátil chybový kód (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Podproces %s neočekávaně skončil"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Nelze otevřít soubor %s"
@@ -2747,7 +2762,7 @@ msgstr "Zkomolený řádek %u v seznamu zdrojů %s (typ)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Typ „%s“ na řádce %u v seznamu zdrojů %s není známý"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2756,7 +2771,7 @@ msgstr ""
 "Nelze spustit okamžitou konfiguraci balíku „%s“. Podrobnosti naleznete v man "
 "5 apt.conf v části APT::Immediate-Configure. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2767,7 +2782,7 @@ msgstr ""
 "smyčce v Conflicts/Pre-Depends. To je často špatné, ale pokud to skutečně "
 "chcete udělat, aktivujte možnost APT::Force-LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2799,7 +2814,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Nelze opravit problémy, některé balíky držíte v porouchaném stavu."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2850,12 +2865,12 @@ msgstr "Metoda %s nebyla spuštěna správně"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Vložte prosím disk nazvaný „%s“ do mechaniky „%s“ a stiskněte enter."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Balíčkovací systém „%s“ není podporován"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Nebylo možno určit vhodný typ balíčkovacího systému"
 
@@ -2881,17 +2896,24 @@ msgstr "Pro nápravu těchto problémů můžete zkusit spustit apt-get update"
 msgid "The list of sources could not be read."
 msgstr "Nelze přečíst seznam zdrojů."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Neplatný záznam v souboru preferencí %s, chybí hlavička Package"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Nerozumím vypíchnutí typu %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Pro vypíchnutí nebyla zadána žádná (nebo nulová) priorita"
 
@@ -2980,7 +3002,7 @@ msgstr "Nešlo vyhodnotit seznam zdrojových balíků %s"
 msgid "Collecting File Provides"
 msgstr "Collecting File poskytuje"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Chyba IO při ukládání zdrojové cache"
 
@@ -2993,8 +3015,8 @@ msgstr "přejmenování selhalo, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "Neshoda MD5 součtů"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Neshoda kontrolních součtů"
 
@@ -3014,20 +3036,19 @@ msgstr "Nelze zpracovat Release soubor %s"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "K následujícím ID klíčů není dostupný veřejný klíč:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Souboru Release vypršela platnost, ignoruji %s (neplatný již %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Konfliktní distribuce: %s (očekáváno %s, obdrženo %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3037,12 +3058,12 @@ msgstr ""
 "se použijí předchozí indexové soubory. Chyba GPG: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "Chyba GPG: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3051,7 +3072,7 @@ msgstr ""
 "Nebyl jsem schopen nalézt soubor s balíkem %s. To by mohlo znamenat, že "
 "tento balík je třeba opravit ručně (kvůli chybějící architektuře)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3060,14 +3081,14 @@ msgstr ""
 "Nebyl jsem schopen nalézt soubor s balíkem %s. Asi budete muset tento balík "
 "opravit ručně."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 "Indexové soubory balíku jsou narušeny. Chybí pole Filename: u balíku %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Velikosti nesouhlasí"
 
@@ -3191,22 +3212,22 @@ msgstr "Zapisuji nový seznam balíků\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Seznamy zdrojů na tomto disku jsou:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Zapsáno %i záznamů.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Zapsáno %i záznamů s chybějícími soubory (%i).\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Zapsáno %i záznamů s nesouhlasícími soubory (%i).\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "Zapsáno %i záznamů s chybějícími (%i) a nesouhlasícími (%i) soubory.\n"
@@ -3226,6 +3247,17 @@ msgstr "Nelze najít autentizační záznam pro: %s"
 msgid "Hash mismatch for: %s"
 msgstr "Neshoda kontrolních součtů pro: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "V %s není nainstalována žádná klíčenka."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3476,6 +3508,9 @@ msgstr "Spojení bylo předčasně ukončeno"
 #~ msgid "Internal error, group '%s' has no installable pseudo package"
 #~ msgstr "Interní chyba, skupina „%s“ nemá instalovatelný pseudobalík"
 
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "Souboru Release vypršela platnost, ignoruji %s (neplatný již %s)"
+
 #~ msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
 #~ msgstr ""
 #~ "E: Seznam argumentů Acquire::gpgv::Options je příliš dlouhý. Končím."
index b1d74fa728e5eca279a098592ac96f40e7bd4c5f..a8ccb37b7a9930839e135098271871c1f7e82dbf 100644 (file)
--- a/po/cy.po
+++ b/po/cy.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: APT\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2005-06-06 13:46+0100\n"
 "Last-Translator: Dafydd Harries <daf@muse.19inch.net>\n"
 "Language-Team: Welsh <cy@pengwyn.linux.org.uk>\n"
@@ -173,7 +173,7 @@ msgstr "  Tabl Fersiynnau:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, fuzzy, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s ar gyfer %s %s wedi ei grynhow ar %s %s\n"
@@ -863,7 +863,7 @@ msgstr "Nid yw ailsefydlu %s yn bosib, gan ni ellir ei lawrlwytho.\n"
 msgid "%s is already the newest version.\n"
 msgstr "Mae %s y fersiwn mwyaf newydd eisioes.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, fuzzy, c-format
 msgid "%s set to manually installed.\n"
 msgstr "ond mae %s yn mynd i gael ei sefydlu"
@@ -979,8 +979,8 @@ msgstr "Ar ôl dadbacio defnyddir %sB o ofod disg ychwanegol.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Ar ôl dadbactio caiff %sB o ofod disg ei rhyddhau.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, fuzzy, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Does dim digon o le rhydd yn %s gennych"
@@ -1018,7 +1018,7 @@ msgstr "Erthylu."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Ydych chi eisiau mynd ymlaen? [Y/n] "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Methwyd cyrchu %s  %s\n"
@@ -1027,7 +1027,7 @@ msgstr "Methwyd cyrchu %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Methodd rhai ffeiliau lawrlwytho"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Lawrlwytho yn gyflawn ac yn y modd lawrlwytho'n unig"
 
@@ -1066,31 +1066,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Methwyd stat() o'r rhestr pecyn ffynhonell %s"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Nid yw'r gorchymyn diweddaru yn derbyn ymresymiadau"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1106,16 +1106,16 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Gall y wybodaeth canlynol gynorthwyo'n datrys y sefyllfa:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 #, fuzzy
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Gwall Mewnol, torrodd AllUpgrade bethau"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1125,7 +1125,7 @@ msgid_plural ""
 msgstr[0] "Caiff y pecynnau NEWYDD canlynol eu sefydlu:"
 msgstr[1] "Caiff y pecynnau NEWYDD canlynol eu sefydlu:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1133,21 +1133,21 @@ msgid_plural ""
 msgstr[0] "Caiff y pecynnau NEWYDD canlynol eu sefydlu:"
 msgstr[1] "Caiff y pecynnau NEWYDD canlynol eu sefydlu:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr ""
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 #, fuzzy
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Gwall Mewnol, torrodd AllUpgrade bethau"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Efallai hoffech rhedeg 'apt-get -f install' er mwyn cywiro'r rhain:"
 
 # FIXME
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1156,7 +1156,7 @@ msgstr ""
 "pecyn (neu penodwch ddatrys)"
 
 # FIXME: needs commas
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1168,82 +1168,82 @@ msgstr ""
 "ansefydlog, fod rhai pecynnau angenrheidiol heb gael eu creu eto neu\n"
 "heb gael eu symud allan o Incoming."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Pecynnau wedi torri"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Caiff y pecynnau canlynol ychwanegol eu sefydlu:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Pecynnau a awgrymmir:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Pecynnau a argymhellir:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Methwyd canfod pecyn %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "ond mae %s yn mynd i gael ei sefydlu"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 #, fuzzy
 msgid "Calculating upgrade... "
 msgstr "Yn Cyfrifo'r Uwchraddiad... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Methwyd"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Wedi Gorffen"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 #, fuzzy
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Gwall Mewnol, torrodd AllUpgrade bethau"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Ni ellir cloi'r cyfeiriadur lawrlwytho"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Rhaid penodi o leiaf un pecyn i gyrchi ffynhonell ar ei gyfer"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Ni ellir canfod pecyn ffynhonell ar gyfer %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1251,79 +1251,95 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, fuzzy, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Yn hepgor dadbacio y ffynhonell wedi ei dadbacio eisioes yn %s\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Does dim digon o le rhydd yn %s gennych"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Rhaid cyrchu %sB/%sB o archifau ffynhonell.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Rhaid cyrchu %sB o archifau ffynhonell.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, fuzzy, c-format
 msgid "Fetch source %s\n"
 msgstr "Cyrchu Ffynhonell %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Methwyd cyrchu rhai archifau."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Yn hepgor dadbacio y ffynhonell wedi ei dadbacio eisioes yn %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Methodd y gorchymyn dadbacio '%s'.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Methodd y gorchymyn adeiladu '%s'.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Methodd proses plentyn"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Rhaid penodi o leiaf un pecyn i wirio dibyniaethau adeiladu ar eu cyfer"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Ni ellir cyrchu manylion dibyniaeth adeiladu ar gyfer %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "Nid oes dibyniaethau adeiladu gan %s.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"Ni ellir bodloni dibyniaeth %s ar gyfer %s oherwydd ni ellir canfod y pecyn "
+"%s"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1332,48 +1348,57 @@ msgstr ""
 "Ni ellir bodloni dibyniaeth %s ar gyfer %s oherwydd ni ellir canfod y pecyn "
 "%s"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Methwyd bodloni dibynniaeth %s am %s: Mae'r pecyn sefydliedig %s yn rhy "
+"newydd"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "Ni ellir bodloni'r dibyniaeth %s ar gyfer %s oherwydd does dim fersiwn sydd "
 "ar gael o'r pecyn %s yn gallu bodloni'r gofynion ferswin"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Methwyd bodloni dibynniaeth %s am %s: Mae'r pecyn sefydliedig %s yn rhy "
-"newydd"
+"Ni ellir bodloni dibyniaeth %s ar gyfer %s oherwydd ni ellir canfod y pecyn "
+"%s"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Methwyd bodloni dibyniaeth %s am %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Methwyd bodloni'r dibyniaethau adeiladu ar gyfer %s."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Methwyd prosesu dibyniaethau adeiladu"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Yn cysylltu i %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 #, fuzzy
 msgid "Supported modules:"
 msgstr "Modylau a Gynhelir:"
 
 # FIXME: split
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1460,7 +1485,7 @@ msgstr ""
 "\n"
 "                   Mae gan yr APT hwn bŵerau buwch hudol.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1777,8 +1802,8 @@ msgstr "Mae'r ffeil %s/%s yn trosysgrifo'r un yn y pecyn %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1810,7 +1835,7 @@ msgstr "Rhaid i'r cyfeiriaduron 'info' a 'temp' for ar yr un system ffeiliau"
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 #, fuzzy
 msgid "Reading package lists"
 msgstr "Yn Darllen Rhestrau Pecynnau"
@@ -2195,35 +2220,29 @@ msgstr "Digwyddodd rhywbweth hyll wrth ddatrys '%s:%s' (%i)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Methwyd cysylltu i %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "Yn Erthylu'r Sefydliad."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr ""
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr ""
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 #, fuzzy
 msgid "The following signatures were invalid:\n"
 msgstr "Caiff y pecynnau canlynol ychwanegol eu sefydlu:"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2386,60 +2405,60 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "Ni chanfuwyd y dewis %s"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Talgryniad math anhysbys: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Yn agor y ffeil cyfluniad %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Gwall cystrawen %s:%u: Mae bloc yn cychwyn efo dim enw."
 
 # FIXME
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Gwall cystrawen %s:%u: Tag wedi camffurfio"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Gwall cystrawen %s:%u: Sbwriel ychwanegol ar ôl y gwerth"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Gwall cystrawen %s:%u: Ceir defnyddio cyfarwyddyd ar y lefel dop yn unig"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Gwall cystrawen %s:%u: Gormod o gynhwysion nythol"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Gwall cystrawen %s:%u: Cynhwyswyd o fan hyn"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Gwall cystrawen %s:%u: Cyfarwyddyd ni gynhelir '%s'"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Gwall cystrawen %s:%u: Ceir defnyddio cyfarwyddyd ar y lefel dop yn unig"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Gwall cystrawen %s:%u: Sbwriel ychwanegol ar ddiwedd y ffeil"
@@ -2584,7 +2603,7 @@ msgstr "Dychwelodd is-broses %s gôd gwall (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Gorffenodd is-broses %s yn annisgwyl"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Methwyd agor ffeil %s"
@@ -2824,7 +2843,7 @@ msgstr "Llinell camffurfiol %u yn y rhestr ffynhonell %s (math)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Mae'r math '%s' yn anhysbys ar linell %u yn y rhestr ffynhonell %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2832,7 +2851,7 @@ msgid ""
 msgstr ""
 
 # FIXME: %s may have an arbirrary length
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2843,7 +2862,7 @@ msgstr ""
 "oherwydd lŵp gwrthdaro/cynddibynu. Mae hyn yn aml yn wael, ond os ydych wir "
 "eisiau ei wneud ef, gweithredwch yr opsiwn APT::Force-LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2876,7 +2895,7 @@ msgid "Unable to correct problems, you have held broken packages."
 msgstr ""
 "Ni ellir cywiro'r problemau gan eich bod chi wedi dal pecynnau torredig."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2930,12 +2949,12 @@ msgstr ""
 " '%s'\n"
 "yn y gyrriant '%s' a gwasgwch Enter\n"
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Ni chynhelir y system pecynnu '%s'"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 #, fuzzy
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Ni ellir canfod math system addas"
@@ -2962,19 +2981,26 @@ msgstr "Efallai hoffech rhedege apt-get update er mwyn cywiro'r problemau hyn."
 msgid "The list of sources could not be read."
 msgstr "Methwyd darllen y rhestr ffynhonellau."
 
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
 # FIXME: literal
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Cofnod annilys yn y ffeil hoffterau, dim pennawd 'Package'"
 
 # FIXME: tense
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Methwyd daeall y math pin %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Dim blaenoriath (neu sero) wedi ei benodi ar gyfer pin"
 
@@ -3066,7 +3092,7 @@ msgstr "Methwyd stat() o'r rhestr pecyn ffynhonell %s"
 msgid "Collecting File Provides"
 msgstr "Yn Casglu Darpariaethau Ffeil"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Gwall M/A wrth gadw'r storfa ffynhonell"
 
@@ -3079,8 +3105,8 @@ msgstr "methwyd ailenwi, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "Camgyfatebiaeth swm MD5"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 #, fuzzy
 msgid "Hash Sum mismatch"
 msgstr "Camgyfatebiaeth swm MD5"
@@ -3102,20 +3128,19 @@ msgstr "Ni ellir gramadegu ffeil becynnau %s (1)"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr ""
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3123,13 +3148,13 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
 # FIXME: case
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3138,7 +3163,7 @@ msgstr ""
 "Methais i leoli ffeila r gyfer y pecyn %s. Fa all hyn olygu bod rhaid i chi "
 "drwsio'r pecyn hyn a law. (Oherwydd pensaerniaeth coll.)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3147,14 +3172,14 @@ msgstr ""
 "Methais i leoli ffeila r gyfer y pecyn %s. Fa all hyn olygu bod rhaid i chi "
 "drwsio'r pecyn hyn a law."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 "Mae'r ffeiliau mynegai pecyn yn llygr. Dim maes Filename: gan y pecyn %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Camgyfatebiaeth maint"
 
@@ -3276,22 +3301,22 @@ msgstr "Llinell %u yn rhy hir yn y rhestr ffynhonell %s."
 msgid "Source list entries for this disc are:\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3311,6 +3336,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "Camgyfatebiaeth swm MD5"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "Yn Erthylu'r Sefydliad."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index 4159b277cfbd8470b198006c4a3cf61f267df5e1..9babe20ded17f04ed37db2bcb017063b9226523b 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-09-01 23:51+0200\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <debian-l10n-danish@lists.debian.org> \n"
@@ -159,7 +159,7 @@ msgstr "  Versionstabel:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s for %s kompileret på %s %s\n"
@@ -838,7 +838,7 @@ msgstr "Geninstallering af %s er ikke mulig, da den ikke kan hentes.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s er i forvejen den nyeste version.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s sat til manuelt installeret.\n"
@@ -950,8 +950,8 @@ msgstr "Efter denne handling, vil %sB yderligere diskplads være brugt.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Efter denne handling, vil %sB diskplads blive frigjort.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Kunne ikke bestemme ledig plads i %s"
@@ -988,7 +988,7 @@ msgstr "Afbryder."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Vil du fortsætte [J/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Kunne ikke hente %s %s\n"
@@ -997,7 +997,7 @@ msgstr "Kunne ikke hente %s %s\n"
 msgid "Some files failed to download"
 msgstr "Nedhentningen af filer mislykkedes"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Nedhentning afsluttet i 'hent-kun'-tilstand"
 
@@ -1039,33 +1039,33 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Bemærk: Dette sker automatisk og med vilje af dpkg."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Ignorer utilgængelig måludgivelse '%s' af pakke '%s'"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Vælger '%s' som kildepakke fremfor '%s'\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Ignorer utilgængelig version '%s' af pakke '%s'"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "'update'-kommandoen benytter ingen parametre"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 "Det er ikke meningen, at vi skal slette ting og sager, kan ikke starte "
 "AutoRemover"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1083,15 +1083,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Følgende oplysninger kan hjælpe dig med at klare situationen:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Intern fejl. AutoRemover ødelagde noget"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1102,7 +1102,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Følgende pakker blev installeret automatisk, og behøves ikke længere:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1111,19 +1111,19 @@ msgstr[0] "Pakken %lu blev installeret automatisk, og behøves ikke længere.\n"
 msgstr[1] ""
 "Pakkerne %lu blev installeret automatisk, og behøves ikke længere.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Brug 'apt-get autoremove' til at fjerne dem."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Intern fejl, AllUpgrade ødelagde noget"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Du kan muligvis rette det ved at køre 'apt-get -f install':"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1131,7 +1131,7 @@ msgstr ""
 "Uopfyldte afhængigheder. Prøv 'apt-get -f install' uden pakker (eller angiv "
 "en løsning)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1142,73 +1142,73 @@ msgstr ""
 "en umulig situation eller bruger den ustabile distribution, hvor enkelte\n"
 "pakker endnu ikke er lavet eller gjort tilgængelige."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Ødelagte pakker"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Følgende yderligere pakker vil blive installeret:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Foreslåede pakker:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Anbefalede pakker:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Kunne ikke finde pakken %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s sat til automatisk installation.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Beregner opgraderingen... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Mislykkedes"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Færdig"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Intern fejl. Problemløseren ødelagde noget"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Kunne ikke låse nedhentningsmappen"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Du skal angive mindst én pakke at hente kildeteksten til"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Kunne ikke finde kildetekstpakken for %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1217,7 +1217,7 @@ msgstr ""
 "BEMÆRK: Pakning af '%s' vedligeholdes i versionskontrolsystemet '%s' på:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1228,78 +1228,93 @@ msgstr ""
 "bzr get %s\n"
 "for at hente de seneste (muligvis ikke udgivet) opdateringer til pakken.\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Overspringer allerede hentet fil '%s'\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Du har ikke nok ledig plads i %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "%sB/%sB skal hentes fra kildetekst-arkiverne.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "%sB skal hentes fra kildetekst-arkiverne.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Henter kildetekst %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Nogle arkiver kunne ikke hentes."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Overspringer udpakning af allerede udpakket kildetekst i %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Udpakningskommandoen '%s' fejlede.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Tjek om pakken 'dpkg-dev' er installeret.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Opbygningskommandoen '%s' fejlede.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Barneprocessen fejlede"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr "Skal angive mindst én pakke at tjekke opbygningsafhængigheder for"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Kunne ikke hente oplysninger om opbygningsafhængigheder for %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s har ingen opbygningsafhængigheder.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"%s-afhængigheden for %s kan ikke opfyldes, da pakken %s ikke blev fundet"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1307,46 +1322,54 @@ msgid ""
 msgstr ""
 "%s-afhængigheden for %s kan ikke opfyldes, da pakken %s ikke blev fundet"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Kunne ikke opfylde %s-afhængigheden for %s: Den installerede pakke %s er for "
+"ny"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "%s-afhængigheden for %s kan ikke opfyldes, da ingen af de tilgængelige "
 "udgaver af pakken %s kan tilfredsstille versions-kravene"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Kunne ikke opfylde %s-afhængigheden for %s: Den installerede pakke %s er for "
-"ny"
+"%s-afhængigheden for %s kan ikke opfyldes, da pakken %s ikke blev fundet"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Kunne ikke opfylde %s-afhængigheden for %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Opbygningsafhængigheden for %s kunne ikke opfyldes."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Kunne ikke behandler opbygningsafhængighederne"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Forbinder til %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Understøttede moduler:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1435,7 +1458,7 @@ msgstr ""
 "for flere oplysninger og tilvalg.\n"
 "                       Denne APT har \"Super Cow Powers\".\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1750,8 +1773,8 @@ msgstr "File %s/%s overskriver filen i pakken %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1783,7 +1806,7 @@ msgstr "Mapperne info og temp skal ligge i samme filsystem"
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Indlæser pakkelisterne"
 
@@ -2153,36 +2176,30 @@ msgstr "Der skete noget underligt under opløsning af '%s:%s' (%i - %s)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Kunne ikke forbinde til %s:%s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "Ingen nøglering installeret i %s."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Intern fejl: Gyldig signatur, men kunne ikke afgøre nøgle-fingeraftryk?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Stødte på mindst én ugyldig signatur."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Kunne ikke køre 'gpgv' for at verificere signaturen (er gpgv installeret?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Ukendt fejl ved kørsel af gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Følgende signaturer var ugyldige:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2344,57 +2361,57 @@ msgstr "%lis"
 msgid "Selection %s not found"
 msgstr "Det valgte %s blev ikke fundet"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Ukendt type-forkortelse: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Åbner konfigurationsfilen %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Syntaksfejl %s:%u: Blokken starter uden navn."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Syntaksfejl %s:%u: Forkert udformet mærke"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Syntaksfejl %s:%u: Overskydende affald efter værdien"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "Syntaksfejl %s:%u: Direktiver kan kun angives i topniveauet"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Syntaksfejl %s:%u: For mange sammenkædede inkluderinger"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Syntaksfejl %s:%u: Inkluderet herfra"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Syntaksfejl %s:%u: Ikke-understøttet direktiv '%s'"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "Syntaksfejl %s:%u: ryd direktiv kræver et tilvalgstræ som argument"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Syntaksfejl %s:%u: Overskydende affald i slutningen af filen"
@@ -2537,7 +2554,7 @@ msgstr "Underprocessen %s returnerede en fejlkode (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Underprocessen %s afsluttedes uventet"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Kunne ikke åbne filen %s"
@@ -2764,7 +2781,7 @@ msgstr "Ugyldig linje %u i kildelisten %s (type)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Typen '%s' er ukendt på linje %u i kildelisten %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2773,7 +2790,7 @@ msgstr ""
 "Kunne ikke udføre øjeblikkelig konfiguration på '%s'. Se venligst man 5 apt."
 "conf under APT:Immediate-Cinfigure for detaljer. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2785,7 +2802,7 @@ msgstr ""
 "idé, men hvis du virkelig vil gøre det, kan du aktivere valget 'APT::Force-"
 "LoopBreak'."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2819,7 +2836,7 @@ msgid "Unable to correct problems, you have held broken packages."
 msgstr ""
 "Kunne ikke korrigere problemerne, da du har tilbageholdt ødelagte pakker."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2870,12 +2887,12 @@ msgstr "Metoden %s startede ikke korrekt"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Indsæt disken med navnet: '%s' i drevet '%s' og tryk retur."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Pakkesystemet '%s' understøttes ikke"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Kunne ikke bestemme en passende pakkesystemtype"
 
@@ -2900,17 +2917,24 @@ msgstr "Du kan muligvis rette problemet ved at køre 'apt-get update'"
 msgid "The list of sources could not be read."
 msgstr "Listen med kilder kunne ikke læses."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Ugyldig indgang i indstillingsfilen %s, pakkehovedet mangler"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Kunne ikke forstå pin-type %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Ingen prioritet (eller prioritet nul) angivet ved pin"
 
@@ -3001,7 +3025,7 @@ msgstr "Kunne ikke finde kildepakkelisten %s"
 msgid "Collecting File Provides"
 msgstr "Samler filudbud"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "IO-fejl ved gemning af kilde-mellemlageret"
 
@@ -3014,8 +3038,8 @@ msgstr "omdøbning mislykkedes, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "MD5Sum stemmer ikke"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Hashsum stemmer ikke"
 
@@ -3036,20 +3060,19 @@ msgid "There is no public key available for the following key IDs:\n"
 msgstr ""
 "Der er ingen tilgængelige offentlige nøgler for følgende nøgle-ID'er:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Udgivelsesfil udløbet, ignorerer %s (ugyldig siden %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Konfliktdistribution: %s (forventede %s men fik %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3059,12 +3082,12 @@ msgstr ""
 "og den forrige indeksfil vil blive brugt. GPG-fejl: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "GPG-fejl: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3073,7 +3096,7 @@ msgstr ""
 "Jeg kunne ikke lokalisere filen til %s-pakken. Det betyder muligvis at du er "
 "nødt til manuelt at reparere denne pakke. (grundet manglende arch)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3082,13 +3105,13 @@ msgstr ""
 "Jeg kunne ikke lokalisere filen til %s-pakken. Det betyder muligvis at du er "
 "nødt til manuelt at reparere denne pakke."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr "Pakkeindeksfilerne er i stykker. Intet 'Filename:'-felt for pakken %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Størrelsen stemmer ikke"
 
@@ -3212,22 +3235,22 @@ msgstr "Skriver ny kildeliste\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Denne disk har følgende kildeliste-indgange:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Skrev %i poster.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Skrev %i poster med %i manglende filer.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Skrev %i poster med %i ikke-trufne filer\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "Skrev %i poster med %i manglende filer og %i ikke-trufne filer\n"
@@ -3247,6 +3270,17 @@ msgstr "Kan ikke finde godkendelsesregistrering for: %s"
 msgid "Hash mismatch for: %s"
 msgstr "Hashsum stemmer ikke: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "Ingen nøglering installeret i %s."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3496,3 +3530,6 @@ msgstr "Forbindelsen lukkedes for hurtigt"
 
 #~ msgid "Internal error, group '%s' has no installable pseudo package"
 #~ msgstr "Intern fejl, gruppe '%s' har ingen installationsbar pseudopakke"
+
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "Udgivelsesfil udløbet, ignorerer %s (ugyldig siden %s)"
index 4176e8ddf073467ad4c2c92b3c3b5a74b9e3613d..c19d010fdd3de73c1385b372443408cfaa89d0c7 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.8.8\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-11-15 21:42+0100\n"
 "Last-Translator: Holger Wansing <linux@wansing-online.de>\n"
 "Language-Team: Debian German <debian-l10n-german@lists.debian.org>\n"
@@ -157,7 +157,7 @@ msgstr "  Versionstabelle:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s für %s, kompiliert am %s %s\n"
@@ -855,7 +855,7 @@ msgstr ""
 msgid "%s is already the newest version.\n"
 msgstr "%s ist schon die neueste Version.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s wurde als manuell installiert festgelegt.\n"
@@ -969,8 +969,8 @@ msgstr "Nach dieser Operation werden %sB Plattenplatz zusätzlich benutzt.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Nach dieser Operation werden %sB Plattenplatz freigegeben.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Freier Platz in %s konnte nicht bestimmt werden"
@@ -1007,7 +1007,7 @@ msgstr "Abbruch."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Möchten Sie fortfahren [J/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Fehlschlag beim Holen von %s  %s\n"
@@ -1016,7 +1016,7 @@ msgstr "Fehlschlag beim Holen von %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Einige Dateien konnten nicht heruntergeladen werden"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Herunterladen abgeschlossen; Nur-Herunterladen-Modus aktiv"
 
@@ -1058,32 +1058,32 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Hinweis: Dies wird automatisch und absichtlich von dpkg durchgeführt."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Nicht verfügbare Veröffentlichung »%s« von Paket »%s« wird ignoriert"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Als Quellpaket wird »%s« statt »%s« gewählt\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Nicht verfügbare Version »%s« von Paket »%s« wird ignoriert"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Der Befehl »update« akzeptiert keine Argumente"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 "Es soll nichts gelöscht werden, AutoRemover kann nicht gestartet werden"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1102,16 +1102,16 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr ""
 "Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Interner Fehler, AutoRemover hat etwas beschädigt"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1124,7 +1124,7 @@ msgstr[1] ""
 "Die folgenden Pakete wurden automatisch installiert und werden nicht mehr "
 "benötigt:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1134,19 +1134,19 @@ msgstr[0] ""
 msgstr[1] ""
 "%lu Pakete wurden automatisch installiert und werden nicht mehr benötigt.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Verwenden Sie »apt-get autoremove«, um sie zu entfernen."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Interner Fehler, AllUpgrade hat etwas beschädigt"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Probieren Sie »apt-get -f install«, um dies zu korrigieren:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1154,7 +1154,7 @@ msgstr ""
 "Unerfüllte Abhängigkeiten. Versuchen Sie »apt-get -f install« ohne Angabe "
 "eines Pakets (oder geben Sie eine Lösung an)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1166,75 +1166,75 @@ msgstr ""
 "Unstable-Distribution verwenden, dass einige erforderliche Pakete noch\n"
 "nicht erstellt wurden oder Incoming noch nicht verlassen haben."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Beschädigte Pakete"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Die folgenden zusätzlichen Pakete werden installiert:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Vorgeschlagene Pakete:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Empfohlene Pakete:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Paket %s konnte nicht gefunden werden"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s wurde als automatisch installiert festgelegt.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Paketaktualisierung (Upgrade) wird berechnet... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Fehlgeschlagen"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Fertig"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Interner Fehler, der Problemlöser hat etwas beschädigt"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Das Downloadverzeichnis konnte nicht gesperrt werden."
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 "Es muss mindestens ein Paket angegeben werden, dessen Quellen geholt werden "
 "sollen"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Quellpaket für %s kann nicht gefunden werden"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1244,7 +1244,7 @@ msgstr ""
 "auf:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1256,81 +1256,97 @@ msgstr ""
 "um die neuesten (möglicherweise noch unveröffentlichten) Aktualisierungen\n"
 "für das Paket abzurufen.\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Bereits heruntergeladene Datei »%s« wird übersprungen.\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Sie haben nicht genügend freien Speicherplatz in %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Es müssen noch %sB von %sB an Quellarchiven heruntergeladen werden.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Es müssen %sB an Quellarchiven heruntergeladen werden.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Quelle %s wird heruntergeladen.\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Einige Archive konnten nicht heruntergeladen werden."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Das Entpacken der bereits entpackten Quelle in %s wird übersprungen.\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Entpackbefehl »%s« fehlgeschlagen.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Überprüfen Sie, ob das Paket »dpkg-dev« installiert ist.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Build-Befehl »%s« fehlgeschlagen.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Kindprozess fehlgeschlagen"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Es muss mindestens ein Paket angegeben werden, dessen Bauabhängigkeiten "
 "überprüft werden sollen."
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 "Informationen zu Bauabhängigkeiten für %s konnten nicht gefunden werden."
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s hat keine Bauabhängigkeiten.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"»%s«-Abhängigkeit für %s kann nicht erfüllt werden, da Paket %s nicht "
+"gefunden werden kann."
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1339,46 +1355,55 @@ msgstr ""
 "»%s«-Abhängigkeit für %s kann nicht erfüllt werden, da Paket %s nicht "
 "gefunden werden kann."
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"»%s«-Abhängigkeit für %s kann nicht erfüllt werden: Installiertes Paket %s "
+"ist zu neu."
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "»%s«-Abhängigkeit für %s kann nicht erfüllt werden, da keine verfügbare "
 "Version des Pakets %s die Versionsanforderungen erfüllen kann."
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"»%s«-Abhängigkeit für %s kann nicht erfüllt werden: Installiertes Paket %s "
-"ist zu neu."
+"»%s«-Abhängigkeit für %s kann nicht erfüllt werden, da Paket %s nicht "
+"gefunden werden kann."
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "»%s«-Abhängigkeit für %s konnte nicht erfüllt werden: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Bauabhängigkeiten für %s konnten nicht erfüllt werden."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Verarbeitung der Bauabhängigkeiten fehlgeschlagen"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Verbindung mit %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Unterstützte Module:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1471,7 +1496,7 @@ msgstr ""
 "bezüglich weitergehender Informationen und Optionen.\n"
 "                                    Dieses APT hat Super-Kuh-Kräfte.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1787,8 +1812,8 @@ msgstr "Durch die Datei %s/%s wird die Datei in Paket %s überschrieben"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1821,7 +1846,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Paketlisten werden gelesen"
 
@@ -2197,38 +2222,32 @@ msgstr "Beim Auflösen von »%s:%s« ist etwas Schlimmes passiert (%i - %s)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Verbindung mit %s:%s nicht möglich:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "Kein Schlüsselring in %s installiert."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Interner Fehler: Gültige Signatur, Fingerabdruck des Schlüssels konnte "
 "jedoch nicht ermittelt werden?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Mindestens eine ungültige Signatur wurde entdeckt."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "»gpgv« konnte zur Überprüfung der Signatur nicht ausgeführt werden (ist gpgv "
 "installiert?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Unbekannter Fehler beim Ausführen von gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Die folgenden Signaturen waren ungültig:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2394,59 +2413,59 @@ msgstr "%li s"
 msgid "Selection %s not found"
 msgstr "Auswahl %s nicht gefunden"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Nicht erkannte Typabkürzung: »%c«"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Konfigurationsdatei %s wird geöffnet"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Syntaxfehler %s:%u: Block beginnt ohne Namen."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Syntaxfehler %s:%u: Missgestaltete Markierung"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Syntaxfehler %s:%u: Zusätzlicher Unsinn nach Wert"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Syntaxfehler %s:%u: Direktiven können nur auf oberster Ebene benutzt werden"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Syntaxfehler %s:%u: Zu viele verschachtelte Einbindungen (includes)"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Syntaxfehler %s:%u: Eingefügt von hier"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Syntaxfehler %s:%u: Nicht unterstützte Direktive »%s«"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Syntaxfehler %s:%u: Löschdirektiven benötigen einen Optionsbaum als Argument"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Syntaxfehler %s:%u: Zusätzlicher Unsinn am Dateiende"
@@ -2590,7 +2609,7 @@ msgstr "Unterprozess %s hat Fehlercode zurückgegeben (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Unterprozess %s unerwartet beendet"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Datei %s konnte nicht geöffnet werden"
@@ -2821,7 +2840,7 @@ msgstr "Missgestaltete Zeile %u in Quellliste %s (»type«)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Typ »%s« in Zeile %u der Quellliste %s ist unbekannt"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2830,7 +2849,7 @@ msgstr ""
 "»%s« konnte nicht unmittelbar konfiguriert werden. Lesen Sie »man 5 apt."
 "conf« unter APT::Immediate-Configure bezüglich weiterer Details. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2842,7 +2861,7 @@ msgstr ""
 "ist oft schlimm, aber wenn Sie es wirklich tun wollen, aktivieren Sie bitte "
 "die Option APT::Force-LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2879,7 +2898,7 @@ msgstr ""
 "Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte "
 "Pakete."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2932,12 +2951,12 @@ msgstr ""
 "Bitte legen Sie das Medium mit dem Namen »%s« in Laufwerk »%s« ein und "
 "drücken Sie die Eingabetaste (Enter)."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Paketierungssystem »%s« wird nicht unterstützt"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Bestimmung eines passenden Paketierungssystemtyps nicht möglich"
 
@@ -2966,18 +2985,25 @@ msgstr "Probieren Sie »apt-get update«, um diese Probleme zu korrigieren"
 msgid "The list of sources could not be read."
 msgstr "Die Liste der Quellen konnte nicht gelesen werden."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr ""
 "Ungültiger Eintrag in Einstellungsdatei %s, keine »Package«-Kopfzeile(n)"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Pinning-Typ %s kann nicht interpretiert werden"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Keine Priorität (oder Null) für Pin angegeben"
 
@@ -3075,7 +3101,7 @@ msgstr "»stat« konnte nicht auf die Liste %s der Quellpakete ausgeführt werde
 msgid "Collecting File Provides"
 msgstr "Sammeln der angebotenen Funktionalitäten (Provides) aus den Dateien"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "E/A-Fehler beim Speichern des Quell-Caches"
 
@@ -3088,8 +3114,8 @@ msgstr "Umbenennen fehlgeschlagen, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "MD5-Summe stimmt nicht überein"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Hash-Summe stimmt nicht überein"
 
@@ -3110,20 +3136,19 @@ msgid "There is no public key available for the following key IDs:\n"
 msgstr ""
 "Es gibt keine öffentlichen Schlüssel für die folgenden Schlüssel-IDs:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Release-Datei abgelaufen, %s wird ignoriert (ungültig seit %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Konflikt bei Distribution: %s (%s erwartet, aber %s bekommen)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3134,12 +3159,12 @@ msgstr ""
 "GPG-Fehler: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "GPG-Fehler: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3148,7 +3173,7 @@ msgstr ""
 "Es konnte keine Datei für Paket %s gefunden werden. Das könnte heißen, dass "
 "Sie dieses Paket von Hand korrigieren müssen (aufgrund fehlender Architektur)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3157,14 +3182,14 @@ msgstr ""
 "Es konnte keine Datei für Paket %s gefunden werden. Das könnte heißen, dass "
 "Sie dieses Paket von Hand korrigieren müssen."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 "Die Paketindexdateien sind beschädigt: Kein Filename:-Feld für Paket %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Größe stimmt nicht überein"
 
@@ -3288,22 +3313,22 @@ msgstr "Schreiben der neuen Quellliste\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Quelllisteneinträge für dieses Medium sind:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Es wurden %i Datensätze geschrieben.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Es wurden %i Datensätze mit %i fehlenden Dateien geschrieben.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Es wurden %i Datensätze mit %i nicht passenden Dateien geschrieben.\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3325,6 +3350,17 @@ msgstr "Authentifizierungs-Datensatz konnte nicht gefunden werden für: %s"
 msgid "Hash mismatch for: %s"
 msgstr "Hash-Summe stimmt nicht überein für: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "Kein Schlüsselring in %s installiert."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3590,3 +3626,6 @@ msgstr "Verbindung vorzeitig beendet"
 
 #~ msgid "Internal error, group '%s' has no installable pseudo package"
 #~ msgstr "Interner Fehler, Gruppe »%s« hat kein installierbares Pseudo-Paket"
+
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "Release-Datei abgelaufen, %s wird ignoriert (ungültig seit %s)"
index fedf582a2d6962ed45f2385648e7d93d554c2e02..6b270f6ef32675a92900476b6078df4506ff5fdd 100644 (file)
--- a/po/dz.po
+++ b/po/dz.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_po.pot\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2006-09-19 09:49+0530\n"
 "Last-Translator: Kinley Tshering <gasepkuenden2k3@hotmail.com>\n"
 "Language-Team: Dzongkha <pgeyleg@dit.gov.bt>\n"
@@ -161,7 +161,7 @@ msgstr "ཐོན་རིམ་ཐིག་ཁྲམ།:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, fuzzy, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s་གི་དོན་ལུ་%s %sགུར་ཕྱོགས་སྒྲིག་འབད་ཡོད་པའི་%s %s\n"
@@ -846,7 +846,7 @@ msgstr "%s ་ལོག་གཞི་བཙུགས་འབད་ནི་འ
 msgid "%s is already the newest version.\n"
 msgstr "%s ་འདི་ཧེ་མ་ལས་རང་འཐོན་རིམ་གསར་ཤོས་ཅིག་ཨིན།\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, fuzzy, c-format
 msgid "%s set to manually installed.\n"
 msgstr "འདི་འབདཝ་ད་%sའདི་གཞི་བཙུགས་འབད་ནི་ཨིན།"
@@ -962,8 +962,8 @@ msgstr "ཁ་སྐོང་གི་%sB་འདི་བཤུབ་པའི
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "%sB་འདི་ཤུབ་པའི་ཤུལ་ལས་ཀྱི་བར་སྟོང་དེ་དལཝ་སྦེ་ལུས་འོང་།\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "%s་ནང་བར་སྟོང་"
@@ -1000,7 +1000,7 @@ msgstr "བར་བཤོལ་འབད།"
 msgid "Do you want to continue [Y/n]? "
 msgstr "ཁྱོན་ཀྱི་འཕྲོ་མཐུད་ནི་འབད་ནི་ཨིན་ན་[Y/n]?"
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "%s  %s་ ལེན་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།\n"
@@ -1009,7 +1009,7 @@ msgstr "%s  %s་ ལེན་ནི་ལུ་འཐུས་ཤོར་བ
 msgid "Some files failed to download"
 msgstr "ཡིག་སྣོད་ལ་ལུ་ཅིག་ཕབ་ལེན་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "ཕབ་ལེན་ཐབས་ལམ་རྐྱངམ་གཅིག་ནང་མཇུག་བསྡུཝ་སྦེ་རང་ཕབ་ལེན་འབད།"
 
@@ -1047,31 +1047,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "འབྱུང་ཁུངས་ཐུམ་སྒྲིལ་གྱི་ཐོ་ཡིག་%s་དེ་ངོ་བཤུས་འབད་མ་ཚུགས།"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "དུས་མཐུན་བཟོ་བའི་བརྡ་བཀོད་འདི་གིས་སྒྲུབ་རྟགས་ཚུ་མི་འབག་འབད།"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1087,16 +1087,16 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "འོག་གི་བརྡ་དོན་དེ་གིས་དུས་སྐབས་འདི་མོས་མཐུན་བཟོ་ནི་ལུ་གྲོགས་རམ་འབད་འོང་:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 #, fuzzy
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "ནང་འཁོད་འཛོལ་བ་ དཀའ་ངལ་མོས་མཐུན་འབད་མི་ཅ་ཆས་ཚུ་མེདཔ་ཐལ་ཡོད།"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1106,7 +1106,7 @@ msgid_plural ""
 msgstr[0] "འོག་གི་ཐུམ་སྒྲིས་གསརཔ་འདི་ཚུ་ཁཞི་བཙུགས་འབད་འོང་:"
 msgstr[1] "འོག་གི་ཐུམ་སྒྲིས་གསརཔ་འདི་ཚུ་ཁཞི་བཙུགས་འབད་འོང་:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1114,19 +1114,19 @@ msgid_plural ""
 msgstr[0] "འོག་གི་ཐུམ་སྒྲིས་གསརཔ་འདི་ཚུ་ཁཞི་བཙུགས་འབད་འོང་:"
 msgstr[1] "འོག་གི་ཐུམ་སྒྲིས་གསརཔ་འདི་ཚུ་ཁཞི་བཙུགས་འབད་འོང་:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr ""
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "ནང་འགོད་འཛོལ་བ་  ཡར་བསྐྱེད་ཀྱི་ཅ་ཆས་ཆ་མཉམ་མེདཔ་ཐལ་ཡོད།"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "འདི་ཚུ་ནོར་བཅོས་འབད་ནིའི་དོན་ལུ་ཁྱོད་ཀྱི་'apt-get -f install'དེ་གཡོག་བཀོལ་དགོཔ་འོང་:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1134,7 +1134,7 @@ msgstr ""
 "མ་ཚང་བའི་རྟེན་འབྲེལ་  ཐུས་སྒྲིལ་མེད་མི་ཚུ་དང་གཅིག་ཁར་ 'apt-get -f install'དེ་འབཐ་རྩོལ་བསྐྱེདཔ།"
 "(ཡང་ན་ཐབས་ཤེས་ཅིག་གསལ་བཀོད་འབད།)"
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1145,80 +1145,80 @@ msgstr ""
 "འབད་འབདཝ་འོང་ནི་མས་ ཡང་ན་ད་ལྟོ་ཡང་གསར་བསྐྲུན་མ་འབད་བར་ཡོད་པའི་ཐུམ་སྒྲིལ་ལ་ལུ་ཅིག་ཡང་ན་ནང་"
 "འབྱོར་གྱི་ཕྱི་ཁར་རྩ་བསྐྲད་བཏང་ཡོད་པའི་རྩ་བརྟན་མེད་པའི་བགོ་འགྲེམ་ཚུ་ལག་ལེན་འཐབ་དོ་ཡོདཔ་འོང་ནི་ཨིན་པས།"
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "ཆད་པ་ཡོད་པའི་ཐུམ་སྒྲིལ་ཚུ།"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "འོག་གི་ཐུམ་སྒྲིལ་ཐེབས་ཚུ་གཞི་བཙུགས་འབད་འོང་:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "བསམ་འཆར་བཀོད་ཡོད་པའི་ཐུམ་སྒྲིལ་ཚུ:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "འོས་སྦྱོར་འབད་ཡོད་པའི་ཐུམ་སྒྲིལ་ཚུ:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "%s་ཐུམ་སྒྲིལ་འཚོལ་མ་ཐོབ།"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "འདི་འབདཝ་ད་%sའདི་གཞི་བཙུགས་འབད་ནི་ཨིན།"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "ཡར་བསྐྱེད་རྩིས་བཏོན་དོ་... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "འཐུས་ཤོར་བྱུང་ཡོད།"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "འབད་ཚར་ཡི།"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "ནང་འཁོད་འཛོལ་བ་ དཀའ་ངལ་མོས་མཐུན་འབད་མི་ཅ་ཆས་ཚུ་མེདཔ་ཐལ་ཡོད།"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "ཕབ་ལེན་འབད་ནིའི་སྣོད་ཡིག་འདི་ལྡེ་མིག་རྐྱབས་མ་ཚུགས་པས།"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "གི་དོན་ལུ་འབྱུང་ཁུངས་ལེན་ནི་ལུ་ཉུང་མཐའ་རང་ཐུམ་སྒྲིལ་གཅིག་ལེན་དགོ"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "%s་གི་དོན་ལུ་འབྱུང་ཁུངས་ཐུམ་སྒྲིལ་ཅིག་འཚོལ་མ་འཐོབ"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1226,124 +1226,145 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "གོམ་འགྱོ་གིས་ཧེ་མ་ལས་རང་'%s'་ཡིག་སྣོད་དེ་ཕབ་ལེན་འབད་ནུག\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr " %s་ནང་ཁྱོད་ལུ་བར་སྟོང་ཚུ་ལངམ་སྦེ་མིན་འདུག་"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "%sB་ལེན་དགོཔ་འདུག་  འབྱུང་ཁུངས་ཡིག་མཛོད་ཀྱི་%sB།\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "འབྱུང་ཁུངས་ཡིག་མཛོད་ཚུ་ཀྱི་%sB་ལེན་དགོ་པསས།\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "%s་འབྱུང་ཁུངས་ལེན།\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "ཡིག་མཛོད་ལ་ལུ་ཅིག་ལེན་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོད།"
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "%s་ནང་ཧེ་མ་ལས་སྦུང་ཚན་བཟོ་བཤོལ་ཨིན་མའི་སྦུང་ཚན་བཟོ་བཤོལ་གོམ་འགྱོ་འབད་དོ།\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "'%s'སྦུང་ཚན་བཟོ་བཤོལ་འཐུས་ཤོར་བྱུང་ཡོད།\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "'dpkg-dev'་ཐུམ་སྒྲིལ་དེ་གཞི་བཙུགས་འབད་ཡོད་པ་ཅིན་ཨེབ་གཏང་འབད།\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "'%s'་བཟོ་བརྩིགས་བརྡ་བཀོད་འཐུས་ཤོར་བྱུང་ཡོད།\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "ཆ་ལག་ལས་སྦྱོར་དེ་འཐུས་ཤོར་བྱུང་ནུག"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr "builddeps ཞིབ་དཔྱད་འབད་ནིའི་དོན་ལུ་ཉུང་མཐའ་རང་ཐུམ་སྒྲིལ་གཅིག་གསལ་བཀོད་འབད་དགོ"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "%s་གི་དོན་ལུ་བཟོ་བརྩིགས་-རྟེན་འབྲེལ་བརྡ་དོན་དེ་ལེན་མ་ཚུགས།"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s ལུ་བཟོ་བརྩིགས་རྟེན་འབྲེལ་མིན་འདུག\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr "%sཐུམ་སྒྲིལ་འདི་འཐོབ་མ་ཚུགསཔ་ལས་བརྟེན་ %sགི་དོན་ལུ་%s རྟེན་འབྲེལ་དེ་ངལ་རང་མ་ཚུགས་པས།"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr "%sཐུམ་སྒྲིལ་འདི་འཐོབ་མ་ཚུགསཔ་ལས་བརྟེན་ %sགི་དོན་ལུ་%s རྟེན་འབྲེལ་དེ་ངལ་རང་མ་ཚུགས་པས།"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"%s:གི་དོན་ལུ་%s་རྟེན་འབྲེལ་དེ་གི་རེ་བ་སྐོང་ནི་འདི་འཐུས་ཤོར་བྱུང་ཡོདཔ་ཨིན་  གཞི་བཙུགས་འབད་ཡོད་པའི་ཐུམ་"
+"སྒྲིལ་%s་དེ་གནམ་མེད་ས་མེད་གསརཔ་ཨིན་པས།"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "%s གི་དོན་ལུ་%s་རྟེན་འབྲེལ་འདི་གི་རེ་བ་སྐོང་མི་ཚུགས་ནུག་ག་ཅི་འབད་ཟེར་བ་ཅིན་ཐུམ་སྒརིལ་%s་གི་འཐོན་རིམ་"
 "ཚུ་འཐོབ་མ་ཚུགསཔ་ལས་བརྟེན་འཐོན་རིམ་དགོས་མཁོ་ཚུ་གི་རེ་བ་དོ་སྐོང་མ་ཚུགས་པས།"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr ""
-"%s:གི་དོན་ལུ་%s་རྟེན་འབྲེལ་དེ་གི་རེ་བ་སྐོང་ནི་འདི་འཐུས་ཤོར་བྱུང་ཡོདཔ་ཨིན་  གཞི་བཙུགས་འབད་ཡོད་པའི་ཐུམ་"
-"སྒྲིལ་%s་དེ་གནམ་མེད་ས་མེད་གསརཔ་ཨིན་པས།"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
+msgstr "%sཐུམ་སྒྲིལ་འདི་འཐོབ་མ་ཚུགསཔ་ལས་བརྟེན་ %sགི་དོན་ལུ་%s རྟེན་འབྲེལ་དེ་ངལ་རང་མ་ཚུགས་པས།"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "%s: %s་གི་དོན་ལུ་་%s་རྟེན་འབྲེལ་འདི་ངལ་རངས་འབད་ནི་འཐུས་ཤོར་བྱུང་ནུག"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr " %s་གི་དོན་ལུ་བཟོ་བརྩིགས་-རྟེན་འབྲེལ་འདི་ངལ་རངས་མ་ཚུགས་པས།"
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "བཟོ་བརྩིགས་རྟེན་འབྲེལ་འདི་ལས་སྦྱོར་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ་ཨིན།"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "%s (%s)་ལུ་མཐུད་དོ།"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "རྒྱབ་སྐྱོར་འབད་ཡོད་པའི་ཚད་གཞི་ཚུ:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1432,7 +1453,7 @@ msgstr ""
 "ཤོག་ལེབ་ཚུ་ལུ་བལྟ།\n"
 "                       འ་ནི་ ཨེ་ཊི་པི་འདི་ལུ་ཡང་དག་ ཀའུ་ ནུས་ཤུགས་ཚུ་ཡོད།\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1746,8 +1767,8 @@ msgstr "ཐུམ་སྒྲིལ་%s་ནང་ལུ་་ཡིག་ས
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1779,7 +1800,7 @@ msgstr "info ་དང་ temp་སྣོད་ཐོ་ཚུ་ཡིག་
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "ཐུམ་སྒྲིལ་ཐོ་ཡིག་ཚུ་ལྷག་དོ།"
 
@@ -2147,38 +2168,32 @@ msgstr "'%s:%s' (%i)་མོས་མཐུན་འབདཝ་ད་ངན་
 msgid "Unable to connect to %s:%s:"
 msgstr "%s %s:ལུ་མཐུད་མ་ཚུགས།"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "གཞི་བཙུགས་བར་བཤོལ་འབད་དོ།"
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "ནང་འཁོད་འཛོལ་བ: མིང་རྟགས་འདི་ལེགས་ཤོམ་ཅིག་འདུག་  འདི་འབདཝ་ད་མཛུབ་རྗེས་ལྡེ་མིག་དེ་གཏན་འབེབས་བཟོ་"
 "མ་ཚུགས?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "ཉུང་མཐའ་རང་ནུས་མེད་ཀྱི་མིང་རྟགས་ཅིག་གདོང་ཐུག་བྱུང་སྟེ་ཡོདཔ་ཨིན།"
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "མིང་རྟགས་བདེན་སྦྱོར་འབད་ནི་ལུ་'%s'འདི་ལག་ལེན་འཐབ་མ་ཚུགས། (gpgv་དེ་ཁཞི་བཙུགས་འབད་ཡོདཔ་ཨིན་ན།?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "gpgv་ལག་ལེན་འཐབ་ནི་ལུ་མ་ཤེས་པའི་འཛོལ་བ་།"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "འོག་གི་མིང་རྟགས་ཚུ་ནུས་མེད་ཨིན་པས།:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2335,57 +2350,57 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "སེལ་འཐུ་%s ་མ་འཐོབ།"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "ངོ་མ་ཤེས་པའི་སྡུད་ཚིག་གི་དབྱེ་བ:'%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "རིམ་སྒྲིག་ཡིག་སྣོད་%s་འདི་ཁ་ཕྱེ་དོ།"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "་ཚིག་སྦྱོར་འཛོལ་བ་%s:%u:  སྡེབ་ཚན་གྱིས་མིང་མེད་མི་དང་གཅིག་ཁར་འགོ་བཙུགསཔ་ཨིན"
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u:བཟོ་ཉེས་འགྱུར་བའི་ངོ་རྟགས།"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u:གནས་གོང་གི་ཤུལ་ལས་མཁོ་མེད་ཐེབས།"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u:བཀོད་རྒྱ་ཚུ་ཆེ་རིམ་ནང་རྐྱངམ་ཅིག་བྱིན་ཚུགས།"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u:འདུ་འཛོམས་འབད་འབདཝ་ལེ་ཤཱ་གྲངས་སུ་བཙུགསཔ་ཨིན།"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u: ནཱ་ལས་རང་འགོ་བཙུགས་གྲངས་སུ་བཙུགས་ཏེ་ཡོད།"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u: རྒྱབ་སྐྱོར་མ་འབད་བར་ཡོད་པའི་'%s'བཀོད་རྒྱ།"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u:བཀོད་རྒྱ་ཚུ་ཆེ་རིམ་ནང་རྐྱངམ་ཅིག་བྱིན་ཚུགས།"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "ཚིག་སྦྱོར་འཛོལ་བ་%s:%u: ཡིག་སྣོད་ཀྱི་མཇུག་ལུ་མཁོ་མེད་ཐེབས།"
@@ -2529,7 +2544,7 @@ msgstr "ཡན་ལག་ལས་སྦྱོར་%s་གིས་འཛོ
 msgid "Sub-process %s exited unexpectedly"
 msgstr "ཡན་ལག་ལས་སྦྱོར་་%s་གིས་རེ་བ་མེད་པར་ཕྱིར་ཐོན་ཡོདཔ་ཨིན།"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "%s་ཡིག་སྣོད་འདི་ཁ་ཕྱེ་མ་ཚུགས།"
@@ -2757,14 +2772,14 @@ msgstr "བཟོ་ཉེས་འགྱུར་བའི་གྲལ་ཐི
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "དབྱེ་བ་'%s'་འདི་གྲལ་ཐིག་%u་གུར་ལུ་ཡོདཔ་འབྱུང་ཁུངས་ཐོ་ཡིག་%s་གི་ནང་ན་མ་ཤེས་པས།"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2776,7 +2791,7 @@ msgstr ""
 "འདི་འབདཝ་ད་ཁྱོད་ཀྱི་ཐད་རི་འབའ་རི་འབད་དགོཔ་ཨིན་པ་ཅིན་ APT::Force-LoopBreak གདམ་ཁ་འདི་ཤུགས་"
 "ལྡན་བཟོ།"
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2808,7 +2823,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "དཀའ་ངལ་འདི་ནོར་བཅོས་འབད་མ་ཚུགས་ ཁྱོད་ཀྱི་ཐུམ་སྒྲིལ་ཆད་པ་ཚུ་འཆང་འདི་འདུག"
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2859,12 +2874,12 @@ msgstr "ཐབས་ལམ་ %s འདི་ངེས་བདེན་སྦ
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "ཁ་ཡིག་བཀོད་ཡོད་པའི་ ཌིསི་འདི་བཙུགས་གནང་། '%s'འདྲེན་འཕྲུལ་ནང་'%s' དང་ལོག་ལྡེ་འདི་ཨེབ།་"
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "སྦུང་ཚན་བཟོ་ནིའི་རིམ་ལུགས་ '%s' འདི་ལུ་རྒྱབ་སྐྱོར་མ་འབད་བས།"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "འོས་འབབ་དང་ལྡན་པའི་སྦུང་ཚན་རིམ་ལུགས་ཀྱི་དབྱེ་བ་ཅིག་གཏན་འབེབས་བཟོ་མི་ཚུགས་པས།"
 
@@ -2890,17 +2905,24 @@ msgstr "འ་ནི་དཀའ་ངལ་འདི་ཚུ་སེལ་ན
 msgid "The list of sources could not be read."
 msgstr "འབྱུང་ཁུངས་ཚུ་ཀྱི་ཐོ་ཡིག་དེ་ལྷག་མི་ཚུགས་པས།"
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "དགའ་གདམ་ཡིག་སྣོད་ནང་ལུ་ནུས་མེད་ཀྱི་དྲན་ཐོ་  ཐུམ་སྒྲིལ་མགོ་ཡིག་མིན་འདུག"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "ངོ་རྟགས་ཨང་གི་དབྱེ་བ་ %s འདི་ཧ་གོ་མ་ཚུགས།"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "གོ་རྟགས་ཨང་གི་དོན་ལུ་ གཙོ་རིམ་(ཡང་ན་ ཀླད་ཀོར་)ཚུ་གསལ་བཀོད་མ་འབད་བས།"
 
@@ -2990,7 +3012,7 @@ msgstr "འབྱུང་ཁུངས་ཐུམ་སྒྲིལ་གྱི
 msgid "Collecting File Provides"
 msgstr "ཡིག་སྣོད་བྱིན་མི་ཚུ་བསྡུ་ལེན་འབད་དོ།"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "IO འཛོལ་བ་འབྱུང་ཁུངས་འདྲ་མཛོད་སྲུང་བཞག་འབད་དོ།"
 
@@ -3003,8 +3025,8 @@ msgstr "%s (%s -> %s)བསྐྱར་མིང་བཏགས་ནི་འ
 msgid "MD5Sum mismatch"
 msgstr "ཨེམ་ཌི་༥་ ཁྱོན་བསྡོམས་མ་མཐུན་པ།"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 #, fuzzy
 msgid "Hash Sum mismatch"
 msgstr "ཨེམ་ཌི་༥་ ཁྱོན་བསྡོམས་མ་མཐུན་པ།"
@@ -3025,20 +3047,19 @@ msgstr "%s (༡་)་ཐུམ་སྒྲིལ་ཡིག་སྣོད་
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "འོག་གི་ ཨའི་ཌི་་ ལྡེ་མིག་ཚུ་གི་དོན་ལུ་མི་དམང་གི་ལྡེ་མིག་འདི་འཐོབ་མི་ཚུགས་པས:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3046,12 +3067,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3060,7 +3081,7 @@ msgstr ""
 " %s་ཐུམ་སྒྲིལ་གི་དོན་ལུ་ང་་གི་ཡིག་སྣོད་ཅིག་ག་ཡོད་འཚོལ་མི་འཐོབ་པས། འདི་འབདཝ་ལས་ཁྱོད་ཀྱི་ལག་ཐོག་ལས་ "
 "འ་ནི་ཐུམ་སྒྲིལ་འདི་གི་དཀའ་ངལ་སེལ་དགོཔ་འདུག (arch འདི་བྱིག་སོངམ་ལས་བརྟེན།)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3069,14 +3090,14 @@ msgstr ""
 " %s་ཐུམ་སྒྲིལ་གི་དོན་ལུ་ང་་གི་ཡིག་སྣོད་ཅིག་ག་ཡོད་འཚོལ་མི་འཐོབ་པས། འདི་འབདཝ་ལས་ཁྱོད་ཀྱི་ལག་ཐོག་ལས་ "
 "འ་ནི་ཐུམ་སྒྲིལ་འདི་གི་དཀའ་ངལ་སེལ་དགོཔ་འདུག "
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 "ཐུམ་སྒྲིལ་ ཟུར་ཐོ་ཡིག་སྣོད་ཚུ་ངན་ཅན་འགྱོ་ནུག  ཡིག་སྣོད་ཀྱི་མིང་མིན་འདུག: %s་ཐུམ་སྒྲིལ་གྱི་དོན་ལུ་ས་སྒོ།"
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "ཚད་མ་མཐུན།"
 
@@ -3197,22 +3218,22 @@ msgstr "འབྱུང་ཁུངས་ཀྱི་ཐོ་ཡིག་གས
 msgid "Source list entries for this disc are:\n"
 msgstr "འ་ནི་ ཌིསིཀ་གི་དོན་ལུ་ འབྱུང་ཁུངས་ཧྲིལ་བུ་ཚུ་:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "%i་དྲན་མཐོ་དེ་ཚུ་བྲིས་ཡོད།\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "%i བྱིག་འགྱོ་ཡོད་པའི་ཡིག་སྣོད་ཚུ་དང་གཅིག་ཁར་ %i དྲན་ཐོ་འདི་ཚུ་བྲིས་ཡོད།\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "%i་མཐུན་སྒྲིག་མེདཔ་པའི་ཡིག་སྣོད་ཚུ་དང་གཅིག་ཁར་ %i་དྲན་ཐོ་ཚུ་བྲིས་བཞག་ཡོདཔ་ཨིན།\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3234,6 +3255,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "ཨེམ་ཌི་༥་ ཁྱོན་བསྡོམས་མ་མཐུན་པ།"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "གཞི་བཙུགས་བར་བཤོལ་འབད་དོ།"
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index 4db153d9cd494046598e123df3f3f52dfec34d81..8bf8aee22e94709761c8bd11734bf94b4d17ecad 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -15,7 +15,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_po_el\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2008-08-26 18:25+0300\n"
 "Last-Translator: quad-nrg.net <yodesy@quad-nrg.net>\n"
 "Language-Team: Greek <debian-l10n-greek@lists.debian.org>\n"
@@ -167,7 +167,7 @@ msgstr "  Πίνακας Έκδοσης:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s για %s είναι μεταγλωττισμένο σε %s %s\n"
@@ -855,7 +855,7 @@ msgstr ""
 msgid "%s is already the newest version.\n"
 msgstr "το %s είναι ήδη η τελευταία έκδοση.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "το %s έχει εγκατασταθεί με το χέρι\n"
@@ -973,8 +973,8 @@ msgstr ""
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Μετά από αυτή τη λειτουργία, θα ελευθερωθούν %sB χώρου από το δίσκο.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Δεν μπόρεσα να προσδιορίσω τον ελεύθερο χώρο στο %s"
@@ -1011,7 +1011,7 @@ msgstr "Εγκατάλειψη."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Θέλετε να συνεχίσετε [Ν/ο]; "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Αποτυχία ανάκτησης του %s   %s\n"
@@ -1020,7 +1020,7 @@ msgstr "Αποτυχία ανάκτησης του %s   %s\n"
 msgid "Some files failed to download"
 msgstr "Για μερικά αρχεία απέτυχε η μεταφόρτωση"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Ολοκληρώθηκε η μεταφόρτωση μόνο"
 
@@ -1059,32 +1059,32 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Αδύνατη η εύρεση της κατάστασης της λίστας πηγαίων πακέτων %s"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Η εντολή update δεν παίρνει ορίσματα"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 "Δεν επιτρέπεται οποιαδήποτε διαγραφή· αδυναμία εκκίνησης του AutoRemover"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1102,15 +1102,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Οι ακόλουθες πληροφορίες ίσως βοηθήσουν στην επίλυση του προβλήματος:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Εσωτερικό Σφάλμα, το AutoRemover δημιούργησε κάποιο πρόβλημα"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1122,7 +1122,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Τα ακόλουθα πακέτα εγκαταστάθηκαν αυτόματα και δεν χρειάζονται πλέον:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1132,19 +1132,19 @@ msgstr[0] ""
 msgstr[1] ""
 "Τα ακόλουθα πακέτα εγκαταστάθηκαν αυτόματα και δεν χρειάζονται πλέον:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Χρησιμοποιήστε 'apt-get autoremove' για να τα διαγράψετε."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Εσωτερικό Σφάλμα, η διαδικασία αναβάθμισης χάλασε"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Aν τρέξετε 'apt-get -f install' ίσως να διορθώσετε αυτά τα προβλήματα:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1152,7 +1152,7 @@ msgstr ""
 "Ανεπίλυτες εξαρτήσεις. Δοκιμάστε 'apt-get -f install' χωρίς να ορίσετε "
 "πακέτο (ή καθορίστε μια λύση)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1164,84 +1164,84 @@ msgstr ""
 "διανομή, ότι μερικά από τα πακέτα δεν έχουν ακόμα δημιουργηθεί ή έχουν\n"
 "μετακινηθεί από τα εισερχόμενα."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Χαλασμένα πακέτα"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Τα ακόλουθα επιπλέον πακέτα θα εγκατασταθούν:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Προτεινόμενα πακέτα:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Συνιστώμενα πακέτα:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Αδύνατη η εύρεση του πακέτου %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "το %s έχει εγκατασταθεί με το χέρι\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Υπολογισμός της αναβάθμισης... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Απέτυχε"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Ετοιμο"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 "Εσωτερικό Σφάλμα, η προσπάθεια επίλυσης του προβλήματος \"έσπασε\" κάποιο "
 "υλικό"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Αδύνατο το κλείδωμα του καταλόγου μεταφόρτωσης"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 "Θα πρέπει να καθορίσετε τουλάχιστον ένα πακέτο για να μεταφορτώσετε τον "
 "κωδικάτου"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Αδυναμία εντοπισμού του κώδικά του πακέτου %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1249,79 +1249,94 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Παράκαμψη του ήδη μεταφορτωμένου αρχείου `%s`\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Δεν διαθέτετε αρκετό ελεύθερο χώρο στο %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Χρειάζεται να μεταφορτωθούν %sB/%sB πηγαίου κώδικα.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Χρειάζεται να μεταφορτωθούν %sB πηγαίου κώδικα.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Μεταφόρτωση Κωδικα %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Αποτυχία μεταφόρτωσης μερικών αρχειοθηκών."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Παράκαμψη της αποσυμπίεσης ήδη μεταφορτωμένου κώδικα στο %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Απέτυχε η εντολή αποσυμπίεσης %s\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Ελέγξτε αν είναι εγκαταστημένο το πακέτο 'dpkg-dev'.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Απέτυχε η εντολή χτισίματος %s.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Η απογονική διεργασία απέτυχε"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Θα πρέπει να καθορίσετε τουλάχιστον ένα πακέτο για έλεγχο των εξαρτήσεων του"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Αδύνατη η εύρεση πληροφοριών χτισίματος για το %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "το %s δεν έχει εξαρτήσεις χτισίματος.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"%s εξαρτήσεις για το %s δεν ικανοποιούνται επειδή το πακέτο %s δεν βρέθηκε"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1329,46 +1344,54 @@ msgid ""
 msgstr ""
 "%s εξαρτήσεις για το %s δεν ικανοποιούνται επειδή το πακέτο %s δεν βρέθηκε"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Αποτυχία ικανοποίησης %s εξαρτήσεων για το %s: Το εγκατεστημένο πακέτο %s "
+"είναι νεώτερο"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "%s εξαρτήσεις για το %s δεν ικανοποιούνται επειδή δεν υπάρχουν διαθέσιμες "
 "εκδόσεις του πακέτου %s που να ικανοποιούν τις απαιτήσεις έκδοσης"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Αποτυχία ικανοποίησης %s εξαρτήσεων για το %s: Το εγκατεστημένο πακέτο %s "
-"είναι νεώτερο"
+"%s εξαρτήσεις για το %s δεν ικανοποιούνται επειδή το πακέτο %s δεν βρέθηκε"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Αποτυχία ικανοποίησης %s εξάρτησης για το %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Οι εξαρτήσεις χτισίματος για το %s δεν ικανοποιούνται."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Αποτυχία επεξεργασίας εξαρτήσεων χτισίματος"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Σύνδεση στο %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Υποστηριζόμενοι Οδηγοί:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1453,7 +1476,7 @@ msgstr ""
 "για περισσότερες πληροφορίες και επιλογές.\n"
 "                       This APT has Super Cow Powers.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1766,8 +1789,8 @@ msgstr "Το αρχείο %s/%s αντικαθιστά αυτό στο πακέ
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1799,7 +1822,7 @@ msgstr "Οι φάκελοι info και temp πρέπει να βρίσκοντ
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Ανάγνωση Λιστών Πακέτων"
 
@@ -2168,39 +2191,33 @@ msgstr "Κάτι παράξενο συνέβη κατά την εύρεση το
 msgid "Unable to connect to %s:%s:"
 msgstr "Αδύνατη η σύνδεση στο %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "Εγκατάλειψη της εγκατάστασης."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Εσωτερικό σφάλμα: Η υπογραφή είναι καλή, αλλά αδυναμία προσδιορισμού του "
 "αποτυπώματος?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Βρέθηκε τουλάχιστον μια μη έγκυρη υπογραφή."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Αδυναμία εκτέλεσης του '%s' για την επαλήθευση της υπογραφής (είναι "
 "εγκατεστημένο το gpgv;)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Άγνωστο σφάλμα κατά την εκτέλεση του gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Οι παρακάτω υπογραφές ήταν μη έγκυρες:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2359,59 +2376,59 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "Η επιλογή %s δε βρέθηκε"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Μη αναγνωρισμένος τύπος σύντμησης: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Άνοιγμα του αρχείου ρυθμίσεων %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Συντακτικό σφάλμα %s:%u: Το block αρχίζει χωρίς όνομα."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Συντακτικό σφάλμα %s:%u: Λάθος μορφή Ετικέτας (Tag)"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Συντακτικό σφάλμα %s:%u: Άχρηστοι χαρακτήρες μετά την τιμή"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Συντακτικό σφάλμα %s:%u: Οι οδηγίες βρίσκονται μόνο στο ανώτατο επίπεδο"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Συντακτικό σφάλμα %s:%u: Υπερβολικός αριθμός συνδυασμένων includes"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Συντακτικό σφάλμα %s:%u: Συμπεριλαμβάνεται από εδώ"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Συντακτικό σφάλμα %s:%u: Μη υποστηριζόμενη εντολή '%s'"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Συντακτικό σφάλμα %s:%u: Οι οδηγίες βρίσκονται μόνο στο ανώτατο επίπεδο"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Συντακτικό σφάλμα %s:%u: Άχρηστοι χαρακτήρες στο τέλος του αρχείου"
@@ -2558,7 +2575,7 @@ msgstr "Η υποδιεργασία %s επέστρεψε ένα κωδικός
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Η υποδιεργασία %s εγκατέλειψε απρόσμενα"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Αδύνατο το άνοιγμα του αρχείου %s"
@@ -2785,14 +2802,14 @@ msgstr "Λάθος μορφή της γραμμής %u στη λίστα πηγ
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Ο τύπος '%s' στη γραμμή %u στη λίστα πηγών %s είναι άγνωστος "
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2804,7 +2821,7 @@ msgstr ""
 "είναι καλό, αλλά εάν πραγματικά θέλετε να συνεχίσετε ενεργοποιήστε την "
 "επιλογή APT::Force-LoopBreak option."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2836,7 +2853,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Αδύνατη η διόρθωση προβλημάτων, έχετε κρατούμενα ελαττωματικά πακέτα."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2889,12 +2906,12 @@ msgstr ""
 "Παρακαλώ εισάγετε το δίσκο με ετικέτα '%s' στη συσκευή '%s' και πατήστε "
 "enter."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Το σύστημα συσκευασίας '%s' δεν υποστηρίζεται"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Αδύνατος ο καθορισμός ενός κατάλληλου τύπου συστήματος πακέτων"
 
@@ -2921,17 +2938,24 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr "Αδύνατη η ανάγνωση της λίστας πηγών."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Μη έγκυρη εγγραφή στο αρχείο προτιμήσεων, καμία επικεφαλίδα Package"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Αδύνατη η κατανόηση του τύπου καθήλωσης %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr ""
 "Δεν έχει οριστεί προτεραιότητα (ή έχει οριστεί μηδενική) για την καθήλωση"
@@ -3025,7 +3049,7 @@ msgstr "Αδύνατη η εύρεση της κατάστασης της λίσ
 msgid "Collecting File Provides"
 msgstr "Συλλογή Παροχών Αρχείου"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Σφάλμα IO κατά την αποθήκευση της cache πηγών"
 
@@ -3038,8 +3062,8 @@ msgstr "απέτυχε η μετονομασία, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "Ανόμοιο MD5Sum"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Ανόμοιο MD5Sum"
 
@@ -3059,20 +3083,19 @@ msgstr "Αδύνατη η ανάλυση του αρχείου πακέτου %s
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Δεν υπάρχει διαθέσιμο δημόσιο κλειδί για τα ακολουθα κλειδιά:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3080,12 +3103,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3094,7 +3117,7 @@ msgstr ""
 "Αδύνατος ο εντοπισμός ενός αρχείου για το πακέτο %s. Αυτό ίσως σημαίνει ότι "
 "χρειάζεται να διορθώσετε χειροκίνητα το πακέτο. (λόγω χαμένου αρχείου)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3103,7 +3126,7 @@ msgstr ""
 "Αδύνατος ο εντοπισμός ενός αρχείου για το πακέτο %s. Αυτό ίσως σημαίνει ότι "
 "χρειάζεται να διορθώσετε χειροκίνητα το πακέτο."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3111,7 +3134,7 @@ msgstr ""
 "Κατεστραμμένα αρχεία ευρετηρίου πακέτων. Δεν υπάρχει πεδίο Filename: στο "
 "πακέτο %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Ανόμοιο μέγεθος"
 
@@ -3233,22 +3256,22 @@ msgstr "Eγγραφή νέας λίστας πηγών\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Οι κατάλογοι με τις πηγές αυτού του δίσκου είναι: \n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Εγιναν %i εγγραφές.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Εγιναν %i εγγραφές με %i απώντα αρχεία.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Εγιναν %i εγγραφές με %i ασύμβατα αρχεία.\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "Εγιναν %i εγγραφές με %i απώντα αρχεία και %i ασύμβατα αρχεία\n"
@@ -3268,6 +3291,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "Ανόμοιο MD5Sum"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "Εγκατάλειψη της εγκατάστασης."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index 992ee321c10fd0dfda8487600ccf268d919d9dcd..f7d900d6b0e6b1df2da07657de2a371eab4934a9 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -33,7 +33,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.8.10\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2011-01-24 11:47+0100\n"
 "Last-Translator: Javier Fernández-Sanguino Peña <jfs@debian.org>\n"
 "Language-Team: Debian Spanish <debian-l10n-spanish@lists.debian.org>\n"
@@ -211,7 +211,7 @@ msgstr "  Tabla de versión:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s para %s compilado en %s %s\n"
@@ -898,7 +898,7 @@ msgstr "No es posible reinstalar el paquete %s, no se puede descargar.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s ya está en su versión más reciente.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "fijado %s como instalado manualmente.\n"
@@ -1015,8 +1015,8 @@ msgstr ""
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Se liberarán %sB después de esta operación.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "No pude determinar el espacio libre en %s"
@@ -1053,7 +1053,7 @@ msgstr "Abortado."
 msgid "Do you want to continue [Y/n]? "
 msgstr "¿Desea continuar [S/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Imposible obtener %s  %s\n"
@@ -1062,7 +1062,7 @@ msgstr "Imposible obtener %s  %s\n"
 msgid "Some files failed to download"
 msgstr "No se pudieron descargar algunos archivos"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Descarga completa y en modo de sólo descarga"
 
@@ -1104,32 +1104,32 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Nota: Dpkg realiza esto de forma automática y a propósito."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Ignorar la distribución objetivo no disponible «%s» del paquete «%s»"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Escogiendo «%s» como paquete fuente en lugar de «%s»\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Ignorar la versión no disponible «%s» del paquete «%s»"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "El comando de actualización no toma argumentos"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 "Se supone que no vamos a eliminar cosas, no se pudo iniciar «AutoRemover»"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1147,15 +1147,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "La siguiente información puede ayudar a resolver la situación:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Error interno, «AutoRemover» rompió cosas"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1168,7 +1168,7 @@ msgstr[1] ""
 "Los paquetes indicados a continuación se instalaron de forma automática y ya "
 "no son necesarios."
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1177,19 +1177,19 @@ msgstr[0] "Se instaló de forma automática %lu paquete y ya no es necesario.\n"
 msgstr[1] ""
 "Se instalaron de forma automática %lu paquetes y ya no son necesarios.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Utilice «apt-get autoremove» para eliminarlos."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Error Interno, AllUpgrade rompió cosas"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Tal vez quiera ejecutar «apt-get -f install» para corregirlo:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1197,7 +1197,7 @@ msgstr ""
 "Dependencias incumplidas. Intente «apt-get -f install» sin paquetes (o "
 "especifique una solución)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1209,74 +1209,74 @@ msgstr ""
 "inestable, que algunos paquetes necesarios no han sido creados o han\n"
 "sido movidos fuera de Incoming."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Paquetes rotos"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Se instalarán los siguientes paquetes extras:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Paquetes sugeridos:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Paquetes recomendados:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "No se pudo encontrar el paquete %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "fijado %s como instalado automáticamente.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Calculando la actualización... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Falló"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Listo"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 "Error interno, el sistema de solución de problemas rompió algunas cosas"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "No se puede bloquear el directorio de descarga"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Debe especificar al menos un paquete para obtener su código fuente"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "No se pudo encontrar un paquete de fuentes para %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1286,7 +1286,7 @@ msgstr ""
 "versiones «%s» en:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1298,80 +1298,96 @@ msgstr ""
 "para obtener las últimas actualizaciones (posiblemente no publicadas aún) "
 "del paquete.\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Omitiendo el fichero ya descargado «%s»\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "No tiene suficiente espacio libre en %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Necesito descargar %sB/%sB de archivos fuente.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Necesito descargar %sB de archivos fuente.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Fuente obtenida %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "No se pudieron obtener algunos archivos."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Ignorando desempaquetamiento de paquetes ya desempaquetados en %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Falló la orden de desempaquetamiento «%s».\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Compruebe que el paquete «dpkg-dev» esté instalado.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Falló la orden de construcción «%s».\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Falló el proceso hijo"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Debe especificar al menos un paquete para verificar sus dependencias de "
 "construcción"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "No se pudo obtener información de dependencias de construcción para %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s no tiene dependencias de construcción.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"La dependencia %s en %s no puede satisfacerse porque no se puede encontrar "
+"el paquete %s"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1380,46 +1396,55 @@ msgstr ""
 "La dependencia %s en %s no puede satisfacerse porque no se puede encontrar "
 "el paquete %s"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"No se pudo satisfacer la dependencia %s para %s: El paquete instalado %s es "
+"demasiado nuevo"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "La dependencia %s en %s no puede satisfacerse porque ninguna versión "
 "disponible del paquete %s satisface los requisitos de versión"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"No se pudo satisfacer la dependencia %s para %s: El paquete instalado %s es "
-"demasiado nuevo"
+"La dependencia %s en %s no puede satisfacerse porque no se puede encontrar "
+"el paquete %s"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "No se pudo satisfacer la dependencia %s para %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "No se pudieron satisfacer las dependencias de construcción de %s."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "No se pudieron procesar las dependencias de construcción"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Conectando a %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Módulos soportados:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1510,7 +1535,7 @@ msgstr ""
 "para más información y opciones.\n"
 "                       Este APT tiene poderes de Super Vaca.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1828,8 +1853,8 @@ msgstr "El archivo %s/%s sobreescribe al que está en el paquete %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1862,7 +1887,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Leyendo lista de paquetes"
 
@@ -2230,37 +2255,31 @@ msgstr "Algo raro pasó al resolver «%s:%s» (%i - %s)"
 msgid "Unable to connect to %s:%s:"
 msgstr "No se pudo conectar a %s:%s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "No se instaló ningún anillo de claves %s."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Error interno: Firma correcta, ¡¿pero no se pudo determinar su huella "
 "digital?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Se encontró al menos una firma inválida."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "No se pudo ejecutar «gpgv»  para verificar la firma (¿está instalado gpgv?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Error desconocido ejecutando gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Las siguientes firms fueron inválidas:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2421,61 +2440,61 @@ msgstr "%liseg."
 msgid "Selection %s not found"
 msgstr "Selección %s no encontrada"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Tipo de abreviación no reconocida: «%c»"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Abriendo fichero de configuración %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Error de sintaxis %s:%u: No hay un nombre al comienzo del bloque."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Error de sintaxis %s:%u: Marca mal formada"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Error de sintaxis %s:%u: Basura extra después del valor"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Error de sintaxis %s:%u: Las directivas sólo se pueden poner en el primer "
 "nivel"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Error de sintaxis %s:%u: Demasiadas inclusiones anidadas"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Error de sintaxis %s:%u: Incluido desde aquí"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Error de sintaxis %s:%u: Directiva «%s» no soportada"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Error de sintaxis %s:%u: la directiva «clear» tiene que incluir un árbol de "
 "opciones como argumento"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Error de sintaxis %s:%u: Basura extra al final del archivo"
@@ -2620,7 +2639,7 @@ msgstr "El subproceso %s devolvió un código de error (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "El subproceso %s terminó de forma inesperada"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "No pude abrir el fichero %s"
@@ -2853,7 +2872,7 @@ msgstr "Línea %u mal formada en la lista de fuentes %s (tipo)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Tipo «%s» desconocido en la línea %u de lista de fuentes %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2863,7 +2882,7 @@ msgstr ""
 "de manual con «man 5 apt.conf» bajo «APT::Immediate-Configure» para más "
 "información. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2875,7 +2894,7 @@ msgstr ""
 "generalmente es malo, pero si realmente quiere hacerlo, active la opción |"
 "APT::Force-LoopBreak»."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2911,7 +2930,7 @@ msgid "Unable to correct problems, you have held broken packages."
 msgstr ""
 "No se pudieron corregir los problemas, usted ha retenido paquetes rotos."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2962,12 +2981,12 @@ msgstr "El método %s no se inició correctamente"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Por favor, inserte el disco «%s» en la unidad «%s» y pulse Intro."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "No está soportado el sistema de paquetes «%s»"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "No se pudo determinar un tipo de sistema de paquetes adecuado"
 
@@ -2994,18 +3013,25 @@ msgstr "Tal vez quiera ejecutar «apt-get update» para corregir estos problemas
 msgid "The list of sources could not be read."
 msgstr "No se pudieron leer las listas de fuentes."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr ""
 "Registro inválido en el archivo de preferencias %s, no hay cabecera «Package»"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "No se entiende el pin tipo %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "No hay prioridad especificada para pin (o es cero)"
 
@@ -3099,7 +3125,7 @@ msgstr "No se puede leer la lista de paquetes fuente %s"
 msgid "Collecting File Provides"
 msgstr "Recogiendo archivos que proveen"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Error de E/S guardando caché fuente"
 
@@ -3112,8 +3138,8 @@ msgstr "falló el cambio de nombre, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "La suma MD5 difiere"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "La suma hash difiere"
 
@@ -3135,21 +3161,19 @@ msgstr ""
 "No existe ninguna clave pública disponible para los siguientes "
 "identificadores de clave:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
-"El archivo «Release» ha expirado, ignorando %s (inválido desde hace %s)"
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Distribución conflictiva: %s (se esperaba %s, pero se obtuvo %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3160,12 +3184,12 @@ msgstr ""
 "GPG es: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "Error de GPG: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3175,7 +3199,7 @@ msgstr ""
 "que necesita arreglar manualmente este paquete (debido a que falta una "
 "arquitectura)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3184,7 +3208,7 @@ msgstr ""
 "No se pudo localizar un archivo para el paquete %s. Esto puede significar "
 "que necesita arreglar manualmente este paquete."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3192,7 +3216,7 @@ msgstr ""
 "Los archivos de índice de paquetes están dañados. No existe un campo "
 "«Filename:» para el paquete %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "El tamaño difiere"
 
@@ -3316,22 +3340,22 @@ msgstr "Escribiendo nueva lista de fuente\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Las entradas de la lista de fuentes para este disco son:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "%i registros escritos.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "%i registros escritos con %i fichero de menos.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "%i registros escritos con %i fichero mal emparejado\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3352,6 +3376,17 @@ msgstr "No se pudo encontrar un registro de autenticación para: %s"
 msgid "Hash mismatch for: %s"
 msgstr "La suma hash difiere para: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "No se instaló ningún anillo de claves %s."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3618,6 +3653,10 @@ msgstr "La conexión se cerró prematuramente"
 #~ msgstr ""
 #~ "Error interno, el grupo «%s» no tiene ningún pseudo-paquete instalable"
 
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr ""
+#~ "El archivo «Release» ha expirado, ignorando %s (inválido desde hace %s)"
+
 #~ msgid "You must give exactly one pattern"
 #~ msgstr "Debe dar exactamente un patrón"
 
index 5d136cd9d78edd05c789ab8640129a030db0a703..939a0b062d2c2f405adadee21fb277a169ecb0ec 100644 (file)
--- a/po/eu.po
+++ b/po/eu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_po_eu\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2009-05-17 00:41+0200\n"
 "Last-Translator: Piarres Beobide <pi@beobide.net>\n"
 "Language-Team: Euskara <debian-l10n-basque@lists.debian.org>\n"
@@ -159,7 +159,7 @@ msgstr "  Bertsio taula:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s %s-rentzat %s %s-ean konpilatua\n"
@@ -833,7 +833,7 @@ msgstr "%s berriro instalatzea ez da posible; ezin da deskargatu.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s bertsiorik berriena da jada.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s eskuz instalatua bezala ezarri.\n"
@@ -947,8 +947,8 @@ msgstr "Ekintza honen ondoren, %sB gehiago erabiliko dira diskoan.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Ekintza honen ondoren, %sB libratuko dira diskoan.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Ezin da %s(e)n duzun leku librea atzeman."
@@ -985,7 +985,7 @@ msgstr "Abortatu."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Aurrera jarraitu nahi al duzu [B/e]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Ezin da lortu %s  %s\n"
@@ -994,7 +994,7 @@ msgstr "Ezin da lortu %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Fitxategi batzuk ezin izan dira deskargatu"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Deskarga amaituta eta deskarga soileko moduan"
 
@@ -1032,31 +1032,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Ezin da atzitu %s iturburu paketeen zerrenda"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Eguneratzeko komandoak ez du argumenturik hartzen"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "Suposatu ez dugun zerbait ezabatuko da, ezin da AutoRemover abiarazi"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1074,15 +1074,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Informazio honek arazoa konpontzen lagun dezake:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Barne Errorea, AutoRemover-ek zerbait apurtu du"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1096,7 +1096,7 @@ msgstr[1] ""
 "Ondorengo pakete automatikoki instalatuak izan ziren eta ez dira luzaroago "
 "behar."
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1108,19 +1108,19 @@ msgstr[1] ""
 "Ondorengo pakete automatikoki instalatuak izan ziren eta ez dira luzaroago "
 "behar."
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "'apt-get autoremove' erabili ezabatzeko."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Barne Errorea, AllUpgade-k zerbait apurtu du"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Beharbada 'apt-get -f install' exekutatu nahiko duzu hauek zuzentzeko:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1128,7 +1128,7 @@ msgstr ""
 "Bete gabeko mendekotasunak. Probatu 'apt-get -f install' paketerik gabe (edo "
 "zehaztu konponbide bat)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1140,80 +1140,80 @@ msgstr ""
 "beharrezko pakete batzuk ez ziren sortuko oraindik, edo \n"
 "Sarrerakoetan (Incoming) egoten jarraituko dute."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Hautsitako paketeak"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Ondorengo pakete gehigarriak instalatuko dira:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Iradokitako paketeak:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Gomendatutako paketeak:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Ezin izan da %s paketea aurkitu"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s eskuz instalatua bezala ezarri.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Berriketak kalkulatzen... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Huts egin du"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Eginda"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Barne Errorea, arazo konpontzaileak zerbait apurtu du"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Ezin da deskarga direktorioa blokeatu"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Gutxienez pakete bat zehaztu behar duzu iturburua lortzeko"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Ezin da iturburu paketerik aurkitu %s(r)entzat"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1221,80 +1221,95 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Dagoeneko deskargaturiko '%s' fitxategia saltatzen\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Ez daukazu nahikoa leku libre %s(e)n."
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Iturburu artxiboetako %sB/%sB eskuratu behar dira.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Iturburu artxiboetako %sB eskuratu behar dira.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Eskuratu %s iturburua\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Huts egin du zenbat artxibo lortzean."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 "%s(e)n dagoeneko deskonprimitutako iturburua deskonprimitzea saltatzen\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Deskonprimitzeko '%s' komandoak huts egin du.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Egiaztatu 'dpkg-dev' paketea instalaturik dagoen.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Eraikitzeko '%s' komandoak huts egin du.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Prozesu umeak huts egin du"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Gutxienez pakete bat zehaztu behar duzu eraikitze mendekotasunak egiaztatzeko"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Ezin izan da %s(r)en eraikitze mendekotasunen informazioa eskuratu"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s: ez du eraikitze mendekotasunik.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"%2$s(r)en %1$s mendekotasuna ezin da bete, %3$s paketea ezin delako aurkitu"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1302,46 +1317,54 @@ msgid ""
 msgstr ""
 "%2$s(r)en %1$s mendekotasuna ezin da bete, %3$s paketea ezin delako aurkitu"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Huts egin du %2$s(r)en %1$s mendekotasuna betetzean: instalatutako %3$s "
+"paketea berriegia da"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "%2$s(r)en %1$s mendekotasuna ezin da bete, ez baitago bertsio-eskakizunak "
 "betetzen dituen %3$s paketearen bertsio erabilgarririk"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Huts egin du %2$s(r)en %1$s mendekotasuna betetzean: instalatutako %3$s "
-"paketea berriegia da"
+"%2$s(r)en %1$s mendekotasuna ezin da bete, %3$s paketea ezin delako aurkitu"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Huts egin du %2$s(r)en %1$s mendekotasuna betetzean: %3$s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "%s(r)en eraikitze mendekotasunak ezin izan dira bete."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Huts egin du eraikitze mendekotasunak prozesatzean"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Konektatzen -> %s.(%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Onartutako Moduluak:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1428,7 +1451,7 @@ msgstr ""
 "sources.list(5) eta apt.conf(5) orrialdeak eskuliburuan.\n"
 "                       APT honek Super Behiaren Ahalmenak ditu.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1738,8 +1761,8 @@ msgstr "%s/%s fitxategiak %s paketekoa gainidazten du"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1771,7 +1794,7 @@ msgstr "info eta temp direktorioek fitxategi sistema berean egon behar dute"
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Pakete Zerrenda irakurtzen"
 
@@ -2145,35 +2168,29 @@ msgstr "Zerbait arraroa pasatu da '%s:%s' (%i) ebaztean"
 msgid "Unable to connect to %s:%s:"
 msgstr "Ezin da konektatu -> %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "Abortatu instalazioa."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr "Barne errorea: Sinadura zuzena, baina ezin da egiaztapen marka zehaztu"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Beintza sinadura baliogabe bat aurkitu da."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr "Ezin da %s abiarazi sinadura egiaztatzeko (gpgv instalaturik al dago?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Errore ezezaguna gpgv exekutatzean"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Ondorengo sinadurak baliogabeak dira:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2332,57 +2349,57 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "%s hautapena ez da aurkitu"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Mota ezezaguneko laburtzapena: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "%s konfigurazio fitxategia irekitzen"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Sintaxi errorea, %s:%u: Blokearen hasieran ez dago izenik."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Sintaxi errorea %s:%u: Gaizki eratutako"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Sintaxi errorea, %s:%u: Zabor gehigarria balioaren ondoren"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "Sintaxi errorea, %s:%u: Direktibak goi-mailan bakarrik egin daitezke"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Sintaxi errorea, %s:%u: habiaratutako elementu gehiegi"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Sintaxi errorea, %s:%u: hemendik barne hartuta"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Sintaxi errorea, %s:%u: onartu gabeko '%s' direktiba"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "Sintaxi errorea, %s:%u: Direktibak goi-mailan bakarrik egin daitezke"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Sintaxi errorea, %s:%u: Zabor gehigarria fitxategi amaieran"
@@ -2529,7 +2546,7 @@ msgstr "%s azpiprozesuak errore kode bat itzuli du (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "%s azpiprozesua ustekabean amaitu da"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "%s fitxategia ezin izan da ireki"
@@ -2756,14 +2773,14 @@ msgstr "Gaizki osatutako %u lerroa %s Iturburu zerrendan (type)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "'%s' mota ez da ezagutzen %u lerroan %s Iturburu zerrendan"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2775,7 +2792,7 @@ msgstr ""
 "izaten da, baina hala ere egin nahi baduzu, aktibatu APT::Force-LoopBreak "
 "aukera."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2806,7 +2823,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Ezin dira arazoak konpondu; hautsitako paketeak atxiki dituzu."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2857,12 +2874,12 @@ msgstr "%s metodoa ez da behar bezala abiarazi"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Mesedez sa ''%s' izeneko diska '%s' gailuan eta enter sakatu"
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "'%s' pakete sistema ez da onartzen"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Ezin da pakete sistemaren mota egokirik zehaztu"
 
@@ -2887,17 +2904,24 @@ msgstr "Beharbada 'apt-get update' exekutatu nahiko duzu arazoak konpontzeko"
 msgid "The list of sources could not be read."
 msgstr "Ezin izan da Iturburu zerrenda irakurri."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Erregistro baliogabea hobespenen fitxategian, pakete goibururik ez"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Ez da ulertu %s orratz-mota (pin)"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Ez da lehentasunik zehaztu orratzarentzat (pin) (edo zero da)"
 
@@ -2986,7 +3010,7 @@ msgstr "Ezin da atzitu %s iturburu paketeen zerrenda"
 msgid "Collecting File Provides"
 msgstr "Fitxategiaren erreferentziak biltzen"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "S/I errorea iturburu katxea gordetzean"
 
@@ -2999,8 +3023,8 @@ msgstr "huts egin du izen-aldaketak, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "MD5Sum ez dator bat"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Egiaztapena ez dator bat"
 
@@ -3020,20 +3044,19 @@ msgstr "Ezin da %s pakete fitxategia analizatu (1)"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Ez dago gako publiko erabilgarririk hurrengo gako ID hauentzat:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3041,12 +3064,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3055,7 +3078,7 @@ msgstr ""
 "Ezin izan dut %s paketeko fitxategi bat lokalizatu. Beharbada eskuz konpondu "
 "beharko duzu paketea. (arkitektura falta delako)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3064,7 +3087,7 @@ msgstr ""
 "Ezin izan dut %s paketeko fitxategi bat lokalizatu. Beharbada eskuz konpondu "
 "beharko duzu paketea."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3072,7 +3095,7 @@ msgstr ""
 "Paketearen indize fitxategiak hondatuta daude. 'Filename:' eremurik ez %s "
 "paketearentzat."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Tamaina ez dator bat"
 
@@ -3194,22 +3217,22 @@ msgstr "Jatorri zerrenda berria idazten\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Diskoarentzako jatorri sarrerak:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "%i erregistro grabaturik.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "%i erregistro eta %i galdutako fitxategi grabaturik.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "%i erregistro eta %i okerreko fitxategi grabaturik\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3230,6 +3253,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "Egiaztapena ez dator bat"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "Abortatu instalazioa."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index a65d0f3ac87929a3d323f27c8482e703fe2b83e0..617cc6182fed7603c8dc4c6fb6cd862e032be748 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.5.26\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2008-12-11 14:52+0200\n"
 "Last-Translator: Tapio Lehtonen <tale@debian.org>\n"
 "Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
@@ -157,7 +157,7 @@ msgstr "  Versiotaulukko:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s laitealustalle %s käännöksen päiväys %s %s\n"
@@ -834,7 +834,7 @@ msgstr "Paketin %s uudelleenasennus ei ole mahdollista, sitä ei voi noutaa.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s on jo uusin versio.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s on merkitty käyttäjän toimesta asennetuksi.\n"
@@ -947,8 +947,8 @@ msgstr "Toiminnon jälkeen käytetään %s t lisää levytilaa.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Toiminnon jälkeen vapautuu %s t levytilaa.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Kansion %s vapaan tilan määrä ei selvinnyt"
@@ -986,7 +986,7 @@ msgstr "Keskeytä."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Haluatko jatkaa [K/e]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Tiedoston %s nouto ei onnistunut  %s\n"
@@ -995,7 +995,7 @@ msgstr "Tiedoston %s nouto ei onnistunut  %s\n"
 msgid "Some files failed to download"
 msgstr "Joidenkin tiedostojen nouto ei onnistunut"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Nouto on valmis ja määrätty vain nouto"
 
@@ -1033,32 +1033,32 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "stat ei toiminut lähdepakettiluettelolle %s"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Komento update ei käytä parametreja"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 "On tarkoitus olla poistamatta mitään, joten AutoRemover:ia ei voi käynnistää"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1076,15 +1076,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Seuraavista tiedoista voi olla hyötyä selvitettäessä tilannetta:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Sisäinen virhe, AutoRemover rikkoi jotain"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1098,7 +1098,7 @@ msgstr[1] ""
 "Seuraavat paketit asennettiin automaattisesti, eivätkä ne ole enää "
 "vaadittuja:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1110,19 +1110,19 @@ msgstr[1] ""
 "Seuraavat paketit asennettiin automaattisesti, eivätkä ne ole enää "
 "vaadittuja:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Poista ne komennolla \"apt-get autoremove\"."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Sisäinen virhe, AllUpgrade rikkoi jotain"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Saatat haluta suorittaa \"apt-get -f install\" korjaamaan nämä:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1130,7 +1130,7 @@ msgstr ""
 "Kaikkia riippuvuuksia ei ole tyydytetty. Kokeile \"apt-get -f install\" "
 "ilmanpaketteja (tai ratkaise itse)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1141,80 +1141,80 @@ msgstr ""
 "jos käytetään epävakaata jakelua, joitain vaadittuja paketteja ei ole\n"
 "vielä luotu tai siirretty Incoming-kansiosta."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Rikkinäiset paketit"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Seuraavat ylimääräiset paketit on merkitty asennettaviksi:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Ehdotetut paketit:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Suositellut paketit:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Pakettia %s ei löytynyt"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s on merkitty käyttäjän toimesta asennetuksi.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Käsitellään päivitystä ... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Ei onnistunut"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Valmis"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Sisäinen virhe, resolver rikkoi jotain"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Noutokansiota ei saatu lukittua"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "On annettava ainakin yksi paketti jonka lähdekoodi noudetaan"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Paketin %s lähdekoodipakettia ei löytynyt"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1222,79 +1222,94 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Ohitetaan jo noudettu tiedosto \"%s\"\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Kansiossa %s ei ole riittävästi vapaata tilaa"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "On noudettava %st/%st lähdekoodiarkistoja.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "On noudettava %st lähdekoodiarkistoja.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Nouda lähdekoodi %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Joidenkin arkistojen noutaminen ei onnistunut."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Ohitetaan purku jo puretun lähdekoodin %s kohdalla\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Purkukomento \"%s\" ei onnistunut.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Tarkista onko paketti \"dpkg-dev\" asennettu.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Paketointikomento \"%s\" ei onnistunut.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Lapsiprosessi kaatui"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "On annettava ainakin yksi paketti jonka paketointiriippuvuudet tarkistetaan"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Paketille %s ei ole saatavilla riippuvuustietoja"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "Paketille %s ei ole määritetty paketointiriippuvuuksia.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"riippuvuutta %s paketille %s ei voi tyydyttää koska pakettia %s ei löydy"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1302,46 +1317,54 @@ msgid ""
 msgstr ""
 "riippuvuutta %s paketille %s ei voi tyydyttää koska pakettia %s ei löydy"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Riippuvutta %s paketille %s ei voi tyydyttää: Asennettu paketti %s on liian "
+"uusi"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "%s riippuvuutta paketille %s ei voi tyydyttää koska mikään paketin %s versio "
 "ei vastaa versioriippuvuuksia"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Riippuvutta %s paketille %s ei voi tyydyttää: Asennettu paketti %s on liian "
-"uusi"
+"riippuvuutta %s paketille %s ei voi tyydyttää koska pakettia %s ei löydy"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Riippuvuutta %s paketille %s ei voi tyydyttää: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Paketointiriippuvuuksia paketille %s ei voi tyydyttää."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Paketointiriippuvuuksien käsittely ei onnistunut"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Avataan yhteys %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Tuetut moduulit:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1427,7 +1450,7 @@ msgstr ""
 "lisätietoja ja lisää valitsimia.\n"
 "                       This APT has Super Cow Powers.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1738,8 +1761,8 @@ msgstr "Tiedosto %s/%s kirjoitetaan paketista %s tulleen päälle"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1771,7 +1794,7 @@ msgstr "Kansioiden info ja temp pitää olla samassa tiedostojärjestelmässä"
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Luetaan pakettiluetteloita"
 
@@ -2141,37 +2164,31 @@ msgstr "Jotain kenkkua tapahtui selvitettäessä \"%s: %s\" (%i)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Ei ole mahdollista muodostaa yhteyttä %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "Asennus keskeytetään."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Sisäinen virhe: Allekirjoitus kelpaa, mutta avaimen sormenjälki tuntematon?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "LÖytyi ainakin yksi kelvoton allekirjoitus."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Ei käynnistynyt \"%s\" allekirjoitusta tarkistamaan (onko gpgv asennettu?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Tapahtui tuntematon virhe suoritettaessa gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Seuraavat allekirjoitukset eivät olleet kelvollisia:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2328,57 +2345,57 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "Valintaa %s ei löydy"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Tuntematon tyypin lyhenne: \"%c\""
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Avataan asetustiedosto %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Syntaksivirhe %s: %u: Lohko alkaa ilman nimeä."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Syntaksivirhe %s: %u: väärän muotoinen nimikenttä"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Syntaksivirhe %s: %u: Arvon jälkeen ylimääräistä roskaa"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "Syntaksivirhe %s: %u: Direktiivejä voi olla vain ylimmällä tasolla"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Syntaksivirhe %s: %u: Liian monta sisäkkäistä includea"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Syntaksivirhe %s: %u: Sisällytetty tästä"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Syntaksivirhe %s: %u: Tätä direktiiviä ei tueta \"%s\""
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "Syntaksivirhe %s: %u: Direktiivejä voi olla vain ylimmällä tasolla"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Syntaksivirhe %s: %u: Ylimääräistä roskaa tiedoston lopussa"
@@ -2521,7 +2538,7 @@ msgstr "Aliprosessi %s palautti virhekoodin (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Aliprosessi %s lopetti odottamatta"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Tiedostoa %s ei voitu avata"
@@ -2748,14 +2765,14 @@ msgstr "Rivi %u on väärän muotoinen lähdeluettelossa %s (tyyppi)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Tyyppi \"%s\" on tuntematon rivillä %u lähdeluettelossa %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2766,7 +2783,7 @@ msgstr ""
 "%s Conflicts/Pre-Depends -kehämäärittelyn takia. Tämä on usein pahasta, "
 "mutta jos varmasti haluat tehdä niin, käytä APT::Force-LoopBreak -valitsinta."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2796,7 +2813,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Pulmia ei voi korjata, rikkinäisiä paketteja on pysytetty."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2847,12 +2864,12 @@ msgstr "Menetelmä %s ei käynnistynyt oikein"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Pistä levy nimeltään: \"%s\" asemaan \"%s\" ja paina Enter."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Paketointijärjestelmä \"%s\" ei ole tuettu"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Sopivaa paketointijärjestelmän tyyppiä ei saa selvitettyä"
 
@@ -2878,17 +2895,24 @@ msgstr "Voit haluta suorittaa apt-get update näiden pulmien korjaamiseksi"
 msgid "The list of sources could not be read."
 msgstr "Lähteiden luetteloa ei pystynyt lukemaan."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Asetustiedostossa on virheellinen tietue, Package-otsikko puuttuu"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Tunnistetyyppi %s on tuntematon"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Tärkeysjärjestystä ei määritetty tunnisteelle (tai se on nolla)"
 
@@ -2978,7 +3002,7 @@ msgstr "stat ei toiminut lähdepakettiluettelolle %s"
 msgid "Collecting File Provides"
 msgstr "Kootaan tiedostojen tarjoamistietoja"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Syöttö/Tulostus -virhe tallennettaessa pakettivarastoa"
 
@@ -2991,8 +3015,8 @@ msgstr "nimen vaihto ei onnistunut, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "MD5Sum ei täsmää"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Hash Sum täsmää"
 
@@ -3012,20 +3036,19 @@ msgstr "Pakettitiedostoa %s (1) ei voi jäsentää"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Julkisia avaimia ei ole saatavilla, avainten ID:t ovat:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3033,12 +3056,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3047,7 +3070,7 @@ msgstr ""
 "En löytänyt pakettia %s vastaavaa tiedostoa. Voit ehkä joutua korjaamaan "
 "tämän paketin itse (puuttuvan arkkitehtuurin vuoksi)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3056,7 +3079,7 @@ msgstr ""
 "Pakettia %s vastaavaa tiedostoa ei löytynyt. Voit ehkä joutua korjaamaan "
 "tämän paketin itse."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3064,7 +3087,7 @@ msgstr ""
 "Pakettihakemistotiedostot ovat turmeltuneet. Paketille %s ei ole Filename-"
 "kenttää."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Koko ei täsmää"
 
@@ -3186,22 +3209,22 @@ msgstr "Kirjoitetaan uusi lähdeluettelo\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Tämän levyn lähdekoodipakettien luettelon tietueita ovat:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Kirjoitettiin %i tietuetta.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Kirjoitettiin %i tietuetta joissa oli %i puuttuvaa tiedostoa.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Kirjoitettiin %i tietuetta joissa oli %i paritonta tiedostoa\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3223,6 +3246,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "Hash Sum täsmää"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "Asennus keskeytetään."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index 91f06e2a70b423c4eaf3545ad151ed85a15bf46d..1e0f872c2596ef97068a24b826494410532addc3 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: fr\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2011-02-16 07:44+0100\n"
 "Last-Translator: Christian Perrier <bubulle@debian.org>\n"
 "Language-Team: French <debian-l10n-french@lists.debian.org>\n"
@@ -156,7 +156,7 @@ msgstr " Table de version :"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s pour %s compilé sur %s %s\n"
@@ -845,7 +845,7 @@ msgstr ""
 msgid "%s is already the newest version.\n"
 msgstr "%s est déjà la plus récente version disponible.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s passé en « installé manuellement ».\n"
@@ -961,8 +961,8 @@ msgstr ""
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Après cette opération, %so d'espace disque seront libérés.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Impossible de déterminer l'espace disponible sur %s"
@@ -1003,7 +1003,7 @@ msgstr "Annulation."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Souhaitez-vous continuer [O/n] ? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Impossible de récupérer %s  %s\n"
@@ -1012,7 +1012,7 @@ msgstr "Impossible de récupérer %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Certains fichiers n'ont pu être téléchargés."
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Téléchargement achevé et dans le mode téléchargement uniquement"
 
@@ -1056,34 +1056,34 @@ msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 "Note : cette opération volontaire (effectuée par dpkg) est automatique."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 "La distribution cible « %s » indisponible pour le paquet « %s » est ignorée"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Choix de « %s » comme paquet source à la place de « %s »\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "La version « %s » indisponible du paquet « %s » est ignorée"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "La commande de mise à jour ne prend pas d'argument"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 "Aucune suppression n'est sensée se produire : impossible de lancer "
 "« Autoremover »"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1102,16 +1102,16 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "L'information suivante devrait vous aider à résoudre la situation : "
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr ""
 "Erreur interne, l'outil de suppression automatique a cassé quelque chose."
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1123,7 +1123,7 @@ msgstr[1] ""
 "Les paquets suivants ont été installés automatiquement et ne sont plus "
 "nécessaires :"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1133,20 +1133,20 @@ msgstr[0] ""
 msgstr[1] ""
 "%lu paquets ont été installés automatiquement et ne sont plus nécessaires.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Veuillez utiliser « apt-get autoremove » pour les supprimer."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Erreur interne, AllUpgrade a cassé le boulot !"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr ""
 "Vous pouvez lancer « apt-get -f install » pour corriger ces problèmes :"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1154,7 +1154,7 @@ msgstr ""
 "Dépendances non satisfaites. Essayez « apt-get -f install » sans paquet\n"
 "(ou indiquez une solution)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1166,75 +1166,75 @@ msgstr ""
 "la distribution unstable, que certains paquets n'ont pas encore\n"
 "été créés ou ne sont pas sortis d'Incoming."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Paquets défectueux"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Les paquets supplémentaires suivants seront installés : "
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Paquets suggérés :"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Paquets recommandés :"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Impossible de trouver le paquet %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s passé en « installé automatiquement ».\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Calcul de la mise à jour... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Échec"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Fait"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 "Erreur interne, la tentative de résolution du problème a cassé certaines "
 "parties"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Impossible de verrouiller le répertoire de téléchargement"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr "Téléchargement de %s %s"
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Vous devez spécifier au moins un paquet source"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Impossible de trouver une source de paquet pour %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1244,7 +1244,7 @@ msgstr ""
 "suivi de versions « %s » à l'adresse :\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1256,80 +1256,96 @@ msgstr ""
 "pour récupérer les dernières mises à jour (éventuellement non encore "
 "publiées) du paquet.\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Saut du téléchargement du fichier « %s », déjà téléchargé\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Pas assez d'espace disponible sur %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Nécessité de prendre %so/%so dans les sources.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Nécessité de prendre %so dans les sources.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Récupération des sources %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Échec lors de la récupération de quelques archives."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Saut du décompactage des paquets sources déjà décompactés dans %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "La commande de décompactage « %s » a échoué.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Veuillez vérifier si le paquet dpkg-dev est installé.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "La commande de construction « %s » a échoué.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Échec du processus fils"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Il faut spécifier au moins un paquet pour vérifier les dépendances de "
 "construction"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Impossible d'obtenir les dépendances de construction pour %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s n'a pas de dépendance de construction.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"La dépendance %s vis-à-vis de %s ne peut être satisfaite car le paquet %s ne "
+"peut être trouvé"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1338,47 +1354,56 @@ msgstr ""
 "La dépendance %s vis-à-vis de %s ne peut être satisfaite car le paquet %s ne "
 "peut être trouvé"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Impossible de satisfaire la dépendance %s pour %s : le paquet installé %s "
+"est trop récent"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "La dépendance %s vis-à-vis de %s ne peut être satisfaite car aucune version "
 "du paquet %s ne peut satisfaire à la version requise"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Impossible de satisfaire la dépendance %s pour %s : le paquet installé %s "
-"est trop récent"
+"La dépendance %s vis-à-vis de %s ne peut être satisfaite car le paquet %s ne "
+"peut être trouvé"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Impossible de satisfaire les dépendances %s pour %s : %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr ""
 "Les dépendances de compilation pour %s ne peuvent pas être satisfaites."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Impossible d'activer les dépendances de construction"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Journal des modifications pour %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Modules reconnus :"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1471,7 +1496,7 @@ msgstr ""
 "apt.conf(5) pour plus d'informations et d'options.\n"
 "                      Cet APT a les « Super Cow Powers »\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1789,8 +1814,8 @@ msgstr "Le fichier %s/%s écrase celui inclus dans le paquet %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1824,7 +1849,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Lecture des listes de paquets"
 
@@ -2200,38 +2225,32 @@ msgstr ""
 msgid "Unable to connect to %s:%s:"
 msgstr "Impossible de se connecter à %s:%s :"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "Pas de porte-clés installé dans %s."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Erreur interne : signature correcte, mais il est impossible de déterminer "
 "l'empreinte de la clé."
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Au moins une signature non valable a été rencontrée."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Impossible d'exécuter « gpgv » pour contrôler la signature (veuillez "
 "vérifier si gpgv est installé)."
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Erreur inconnue à l'exécution de gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Les signatures suivantes ne sont pas valables :\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2393,61 +2412,61 @@ msgstr "%lis"
 msgid "Selection %s not found"
 msgstr "La sélection %s n'a pu être trouvée"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Type d'abréviation non reconnue : « %c »"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Ouverture du fichier de configuration %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Erreur syntaxique %s:%u : le bloc commence sans aucun nom."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Erreur syntaxique %s:%u : balise mal formée"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Erreur syntaxique %s:%u : valeur suivie de choses illicites"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Erreur syntaxique %s:%u : ces directives ne peuvent être appliquées qu'au "
 "niveau le plus haut"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Erreur syntaxique %s:%u: trop de niveaux d'imbrication d'includes"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Erreur syntaxique %s:%u : inclus à partir d'ici"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Erreur syntaxique %s:%u : directive « %s » non tolérée"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Erreur de syntaxe %s:%u : la directive « clear » a besoin d'un arbre "
 "d'options comme paramètre"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Erreur syntaxique %s:%u : valeur aberrante à la fin du fichier"
@@ -2598,7 +2617,7 @@ msgstr "Le sous-processus %s a renvoyé un code d'erreur (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Le sous-processus %s s'est arrêté prématurément"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Impossible d'ouvrir le fichier %s"
@@ -2836,7 +2855,7 @@ msgid "Type '%s' is not known on line %u in source list %s"
 msgstr ""
 "Le type « %s » est inconnu sur la ligne %u dans la liste des sources %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2846,7 +2865,7 @@ msgstr ""
 "consulter la page de manuel apt.conf(5) et notamment la section à propos de "
 "APT::Immediate-Configure, pour plus d'informations. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2858,7 +2877,7 @@ msgstr ""
 "Depends. C'est souvent une mauvaise chose, mais si vous souhaitez réellement "
 "le faire, activez l'option APT::Force-LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2895,7 +2914,7 @@ msgstr ""
 "Impossible de corriger les problèmes, des paquets défectueux sont en mode "
 "« garder en l'état »."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
 "used instead."
@@ -2947,12 +2966,12 @@ msgstr ""
 "Veuillez insérer le disque « %s » dans le lecteur « %s » et appuyez sur la "
 "touche Entrée."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Le système de paquet « %s » n'est pas supporté"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Impossible de déterminer un type du système de paquets adéquat"
 
@@ -2980,19 +2999,26 @@ msgstr "Vous pouvez lancer « apt-get update » pour corriger ces problèmes."
 msgid "The list of sources could not be read."
 msgstr "La liste des sources ne peut être lue."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr ""
 "Enregistrement non valable dans le fichier de préférences %s, aucune entrée "
 "« Package »."
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Étiquette %s inconnue"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Aucune priorité (ou zéro) n'a été spécifiée pour l'étiquette"
 
@@ -3091,7 +3117,7 @@ msgstr "Impossible de localiser la liste des paquets sources %s"
 msgid "Collecting File Provides"
 msgstr "Assemblage des fichiers listés dans les champs Provides"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr ""
 "Erreur d'entrée/sortie lors de la sauvegarde du fichier de cache des sources"
@@ -3105,8 +3131,8 @@ msgstr "impossible de changer le nom, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "Somme de contrôle MD5 incohérente"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Somme de contrôle de hachage incohérente"
 
@@ -3130,20 +3156,19 @@ msgid "There is no public key available for the following key IDs:\n"
 msgstr ""
 "Aucune clé publique n'est disponible pour la/les clé(s) suivante(s) :\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Le fichier Release a expiré, %s ignoré (non valable depuis %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Distribution en conflit : %s (%s attendu, mais %s obtenu)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3154,12 +3179,12 @@ msgstr ""
 "GPG : %s : %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "Erreur de GPG : %s : %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3168,7 +3193,7 @@ msgstr ""
 "Impossible de localiser un fichier du paquet %s. Cela signifie que vous "
 "devrez corriger ce paquet vous-même (absence d'architecture)."
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3177,7 +3202,7 @@ msgstr ""
 "Impossible de localiser un fichier du paquet %s. Cela signifie que vous "
 "devrez corriger ce paquet vous-même."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3185,7 +3210,7 @@ msgstr ""
 "Les fichiers d'index des paquets sont corrompus. Aucun champ « Filename: » "
 "pour le paquet %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Taille incohérente"
 
@@ -3309,22 +3334,22 @@ msgstr "Écriture de la nouvelle liste de sources\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Les entrées de listes de sources pour ce disque sont :\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "%i enregistrements écrits.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "%i enregistrements écrits avec %i fichiers manquants.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "%i enregistrements écrits avec %i fichiers qui ne correspondent pas\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3346,6 +3371,17 @@ msgstr "Impossible de trouver l'enregistrement d'authentification pour %s"
 msgid "Hash mismatch for: %s"
 msgstr "Somme de contrôle de hachage incohérente pour %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "Pas de porte-clés installé dans %s."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3612,6 +3648,9 @@ msgstr "Connexion fermée prématurément"
 #~ msgstr ""
 #~ "Erreur interne : le groupe « %s » n'a pas de pseudo-paquet installable"
 
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "Le fichier Release a expiré, %s ignoré (non valable depuis %s)"
+
 #~ msgid "E: Too many keyrings should be passed to gpgv. Exiting."
 #~ msgstr "E: trop de porte-clés devraient être passés à gpgv. Abandon."
 
index b548ed0c88784670b32d8fe493e1101382647cce..a4548740e6638e7a7bf61a78d2108c8ac38d288b 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_po_gl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2011-05-12 15:28+0100\n"
 "Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>\n"
 "Language-Team: galician <proxecto@trasno.net>\n"
@@ -161,7 +161,7 @@ msgstr "  Táboa de versións:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s para %s compilado en %s %s\n"
@@ -839,7 +839,7 @@ msgstr "A reinstalación de %s non é posíbel, non se pode descargar.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s xa é a versión máis recente.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s cambiado a instalado manualmente.\n"
@@ -955,8 +955,8 @@ msgstr "Despois desta operación ocuparanse %sB de disco adicionais.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Despois desta operación liberaranse %sB de espazo de disco.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Non foi posíbel determinar o espazo libre en %s"
@@ -993,7 +993,7 @@ msgstr "Interromper."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Quere continuar [S/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Non foi posíbel obter %s  %s\n"
@@ -1002,7 +1002,7 @@ msgstr "Non foi posíbel obter %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Non foi posíbel descargar algúns ficheiros"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Completouse a descarga no modo de só descargas"
 
@@ -1045,33 +1045,33 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Nota: Isto será feito automaticamente por dpkg."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Ignorase a versión de destino «%s» non dispoñíbel do paquete «%s»"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Tome «%s» como paquete fonte no canto de «%s»\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Ignorar a versión non dispoñíbel «%s» do paquete «%s»"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "A orde «update» non toma argumentos"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 "Non se agarda que eliminemos cousas, non se pode iniciar o Retirado "
 "automático"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1089,15 +1089,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "A seguinte información pode axudar a solucionar a situación:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Produciuse un erro interno, o Retirado automático estragou cousas"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1109,7 +1109,7 @@ msgstr[1] ""
 "Os seguintes paquetes foron instalados automaticamente e xa non son "
 "necesarios:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1118,19 +1118,19 @@ msgstr[0] "%lu paquete foi instalado automaticamente e xa non é necesario.\n"
 msgstr[1] ""
 "%lu paquetes foron instalados automaticamente e xa non son necesarios.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Empregue «apt-get autoremove» para eliminalos."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Produciuse un erro interno, AllUpgrade estragou cousas"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Pode querer executar «apt-get -f install» para corrixir isto:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1138,7 +1138,7 @@ msgstr ""
 "Dependencias incumpridas. Probe «apt-get -f install» sen paquetes (ou "
 "especifique unha solución)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1151,73 +1151,73 @@ msgstr ""
 "algúns paquetes solicitados aínda non se creasen ou que se movesen da "
 "entrada."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Paquetes estragados"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Instalaranse os seguintes paquetes extra:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Paquetes suxeridos:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Paquetes recomendados:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Non foi posíbel atopar o paquete %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s está estabelecido para a súa instalación automática.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Calculando a anovación... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Fallou"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Feito"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Produciuse un erro interno, o solucionador interno estragou cousas"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Non é posíbel bloquear o directorio de descargas"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr "Descargando %s %s"
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Ten que especificar polo menos un paquete para obter o código fonte"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Non sé posíbel atopar un paquete fonte para %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1226,7 +1226,7 @@ msgstr ""
 "AVISO: o paquete «%s» mantense no sistema de control de versións «%s» en:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1238,80 +1238,96 @@ msgstr ""
 "para obter as últimas actualizacións (posibelmente non publicadas) do "
 "paquete.\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Omítese o ficheiro xa descargado «%s»\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Non hai espazo libre abondo en %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Ten que recibir %sB/%sB de arquivos de fonte.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Ten que recibir %sB de arquivos de fonte.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Obter fonte %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Non se puideron obter algúns arquivos."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Omítese o desempaquetado do código fonte xa desempaquetado en %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Fallou a orde de desempaquetado «%s».\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Comprobe que o paquete «dpkg-dev» estea instalado.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Fallou a orde de construción de «%s».\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "O proceso fillo fallou"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Ten que especificar polo menos un paquete para comprobarlle as dependencias "
 "de compilación"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Non é posíbel obter a información de dependencias de compilación de %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s non ten dependencias de compilación.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"A dependencia «%s» de %s non se pode satisfacer porque non se pode atopar o "
+"paquete %s"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1320,46 +1336,55 @@ msgstr ""
 "A dependencia «%s» de %s non se pode satisfacer porque non se pode atopar o "
 "paquete %s"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Non foi posíbel satisfacer a dependencia «%s» de %s: O paquete instalado %s "
+"é novo de máis"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "A dependencia «%s» de %s non se pode satisfacer porque ningunha versión "
 "dispoñíbel do paquete %s satisfai os requirimentos de versión"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Non foi posíbel satisfacer a dependencia «%s» de %s: O paquete instalado %s "
-"é novo de máis"
+"A dependencia «%s» de %s non se pode satisfacer porque non se pode atopar o "
+"paquete %s"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Non foi posíbel satisfacer a dependencia «%s» de %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Non se puideron satisfacer as dependencias de construción de %s."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Non se puideron procesar as dependencias de construción"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Rexistro de cambios de %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Módulos admitidos:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1452,7 +1477,7 @@ msgstr ""
 "para obter mais información e opcións\n"
 "                       Este APT ten poderes da Super Vaca.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1767,8 +1792,8 @@ msgstr "O ficheiro %s/%s sobrescribe o do paquete %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1801,7 +1826,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Lendo as listas de paquetes"
 
@@ -2170,38 +2195,32 @@ msgstr "Aconteceu algo malo, buscando «%s:%s» (%i - %s)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Non é posíbel conectar %s:%s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "Non ha ningún chaveiro instalado en %s."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Erro interno: Sinatura correcta, pero non foi posíbel determinar a pegada "
 "dixital da chave"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Atopouse polo menos unha sinatura incorrecta."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Non é posíbel executar «gpgv» para verificar a sinatura (Está instalado "
 "gpgv?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Produciuse un erro descoñecido ao executar gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "As seguintes sinaturas non eran correctas:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2364,61 +2383,61 @@ msgstr "%lis"
 msgid "Selection %s not found"
 msgstr "Non se atopou a selección %s"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Abreviatura de tipo «%c» descoñecida"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Abrindo o ficheiro de configuración %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Produciuse un erro de sintaxe %s:%u: O bloque comeza sen un nome."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Produciuse un erro de sintaxe %s:%u: Etiqueta mal formada"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Produciuse un erro de sintaxe %s:%u: Lixo extra despois do valor"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Produciuse un erro de sintaxe %s:%u: Só se poden facer directivas no nivel "
 "superior"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Produciuse un erro de sintaxe %s:%u: Includes aniñados de máis"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Produciuse un erro de sintaxe %s:%u: Incluído de aquí"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Produciuse un erro de sintaxe %s:%u: Non se admite a directiva «%s»"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Produciuse un erro de sintaxe %s:%u: a directiva «clear» require unha árbore "
 "de opción como argumento"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Produciuse un erro de sintaxe %s:%u: Lixo extra á fin da liña"
@@ -2565,7 +2584,7 @@ msgstr "O subproceso %s devolveu un código de erro (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "O subproceso %s saíu de xeito inesperado"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Non foi posíbel abrir o ficheiro %s"
@@ -2796,7 +2815,7 @@ msgstr "Liña %u mal construída na lista de orixes %s (tipo)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "O tipo «%s» non se coñece na liña %u da lista de orixes %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2805,7 +2824,7 @@ msgstr ""
 "Non foi posíbel facer a configuración inmediata en «%s». Vexa man 5 apt.conf "
 "baixo APT::Immediate-Configure para obter máis detalles. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2816,7 +2835,7 @@ msgstr ""
 "por mor dun bucle de Conflitos e Pre-dependencias. Isto adoita ser malo, "
 "pero se o quere facer, active a opción APT::Force-LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2851,7 +2870,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Non é posíbel solucionar os problemas, ten retidos paquetes rotos."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2902,12 +2921,12 @@ msgstr "O método %s non se iniciou correctamente"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Insira o disco etiquetado: «%s» na unidade «%s» e prema Intro."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "O sistema de empaquetado «%s» non está admitido"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Non é posíbel determinar un tipo de sistema de empaquetado axeitado"
 
@@ -2934,18 +2953,25 @@ msgstr "Pode querer executar «apt-get update» para corrixir estes problemas"
 msgid "The list of sources could not be read."
 msgstr "Non foi posíbel ler a lista de orixes."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr ""
 "Rexistro incorrecto no ficheiro de preferencias %s; falta a cabeceira Package"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Non se entendeu o tipo de inmobilización %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr ""
 "Non se indicou unha prioridade (ou indicouse cero) para a inmobilización"
@@ -3038,7 +3064,7 @@ msgstr "Non foi posíbel atopar a lista de paquetes fonte %s"
 msgid "Collecting File Provides"
 msgstr "Recollendo as provisións de ficheiros"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Produciuse un erro de E/S ao gravar a caché de fontes"
 
@@ -3051,8 +3077,8 @@ msgstr "non foi posíbel cambiar o nome, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "A MD5Sum non coincide"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "A sumas «hash» non coinciden"
 
@@ -3075,20 +3101,19 @@ msgstr ""
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Non hai unha chave pública dispoñíbel para os seguintes ID de chave:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Caducou o ficheiro de publicación, ignorando %s (non válido desde %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Conflito na distribución: %s (agardábase %s mais obtívose %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3099,12 +3124,12 @@ msgstr ""
 "%s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "Produciuse un erro de GPG: %s %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3113,7 +3138,7 @@ msgstr ""
 "Non é posíbel atopar un ficheiro para o paquete %s. Isto pode significar que "
 "ten que arranxar este paquete a man. (Falta a arquitectura)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3122,7 +3147,7 @@ msgstr ""
 "Non é posíbel atopar un ficheiro para o paquete %s. Isto pode significar que "
 "ten que arranxar este paquete a man."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3130,7 +3155,7 @@ msgstr ""
 "Os ficheiros de índices de paquetes están danados. Non hai un campo "
 "Filename: para o paquete %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Os tamaños non coinciden"
 
@@ -3254,22 +3279,22 @@ msgstr "Escribindo a nova lista de orixes\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "As entradas da lista de orixes deste disco son:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Escribíronse %i rexistros.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Escribíronse %i rexistros con %i ficheiros que faltan.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Escribíronse %i rexistros con %i ficheiros que non coinciden\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3291,6 +3316,17 @@ msgstr "Non é posíbel atopar un rexistro de autenticación para: %s"
 msgid "Hash mismatch for: %s"
 msgstr "Valor de hash non coincidente para: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "Non ha ningún chaveiro instalado en %s."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3556,6 +3592,10 @@ msgstr "A conexión pechouse prematuramente"
 #~ msgid "Internal error, could not locate member"
 #~ msgstr "Produciuse un erro interno, non foi posíbel atopar o membro %s"
 
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr ""
+#~ "Caducou o ficheiro de publicación, ignorando %s (non válido desde %s)"
+
 #~ msgid "       %4i %s\n"
 #~ msgstr "\n"
 
index 30d54be051b3c1da2b4e4714fa399708b5676d71..08ccf10b955ba983708fc3587049e062616b83e4 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: hu\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2008-05-11 14:49+0100\n"
 "Last-Translator: SZERVÁC Attila <sas@321.hu>\n"
 "Language-Team: Hungarian <debian-l10n-hungarian>\n"
@@ -160,7 +160,7 @@ msgstr "  Verziótáblázat:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s erre: %s ekkor fordult: %s %s\n"
@@ -836,7 +836,7 @@ msgstr "%s újratelepítése nem lehetséges, mert nem lehet letölteni.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s már a legújabb verzió.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s kézi telepítésre állított.\n"
@@ -948,8 +948,8 @@ msgstr "E művelet után további %sB lemez-területetet használok fel.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "E művelet után %sB lemez-terület szabadul fel.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Nem határozható meg a szabad hely itt: %s"
@@ -986,7 +986,7 @@ msgstr "Megszakítva."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Folytatni akarod [Y/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Sikertelen letöltés: %s  %s\n"
@@ -995,7 +995,7 @@ msgstr "Sikertelen letöltés: %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Néhány fájlt nem sikerült letölteni"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "A letöltés befejeződött a 'csak letöltés' módban"
 
@@ -1032,31 +1032,31 @@ msgstr[0] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Nem lehet a(z) %s forrás csomaglistáját elérni"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Az update parancsnak nincsenek argumentumai"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "Nincs törölnivaló, az AutoRemover nem indítható"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1074,15 +1074,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Az alábbi információ segíthet megoldani a helyzetet:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Belső hiba, az AutoRemover sérült"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1091,26 +1091,26 @@ msgid_plural ""
 "required:"
 msgstr[0] "Az alábbi csomagok automatikusan települtek, de már nem kellenek:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
 "%lu packages were automatically installed and are no longer required.\n"
 msgstr[0] "Az alábbi csomagok automatikusan települtek, de már nem kellenek:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Töröld az 'apt-get autoremove' paranccsal!"
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Belső hiba, AllUpgrade megsértett valamit"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Próbáld futtatni az 'apt-get -f install'-t az alábbiak javításához:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1118,7 +1118,7 @@ msgstr ""
 "Teljesítetlen függőségek. Próbáld az 'apt-get -f install'-t csomagok nélkül "
 "(vagy telepítsd a függőségeket is!)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1130,81 +1130,81 @@ msgstr ""
 "használod, akkor néhány igényelt csomag még nem készült el vagy ki\n"
 "lett mozdítva az Incoming-ból."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Törött csomagok"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Az alábbi extra csomagok kerülnek telepítésre:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Javasolt csomagok:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Ajánlott csomagok:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Az alábbi csomag nem található: %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s kézi telepítésre állított.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Frissítés kiszámítása... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Sikertelen"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Kész"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Belső hiba, hibafeloldó gond"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Nem tudom zárolni a letöltési könyvtárat"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 "Legalább egy csomagot meg kell adnod, aminek a forrását le kell tölteni"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Nem található forráscsomag ehhez: %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1212,80 +1212,96 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "A már letöltött '%s' fájl kihagyása\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Nincs elég szabad hely itt: %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "%sB/%sB forrás-archívumot kell letölteni.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "%sB forrás-archívumot kell letölteni.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Forrás letöltése: %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Nem sikerült néhány archívumot letölteni."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Egy már kibontott forrás kibontásának kihagyása itt: %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "'%s' kibontási parancs nem sikerült.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Ellenőrizd, hogy a 'dpkg-dev' csomag telepítve van-e.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "'%s' elkészítési parancs nem sikerült.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Hiba a gyermekfolyamatnál"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Legalább egy csomagot adj meg, aminek a fordítási függőségeit ellenőrizni "
 "kell"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Nem lehet %s fordítási-függőség információját beszerezni"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "Nincs fordítási függősége a következőnek: %s.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"%s függősége ennek: %s, ez nem elégíthető ki, mert a(z) %s csomag nem "
+"található"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1294,46 +1310,55 @@ msgstr ""
 "%s függősége ennek: %s, ez nem elégíthető ki, mert a(z) %s csomag nem "
 "található"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"%s függőséget %s csomaghoz nem lehet kielégíteni: %s telepített csomag túl "
+"friss."
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "%s függősége ennek: %s, ez nem elégíthető ki, mert a(z) %s csomagnak nincs a "
 "verzió-követelményt kielégítő elérhető verziója."
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"%s függőséget %s csomaghoz nem lehet kielégíteni: %s telepített csomag túl "
-"friss."
+"%s függősége ennek: %s, ez nem elégíthető ki, mert a(z) %s csomag nem "
+"található"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "%s függőséget %s csomaghoz nem lehet kielégíteni: %s "
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "%s építési függőségei nem elégíthetőek ki."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Nem sikerült az építési függőségeket feldolgozni"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Csatlakozás: %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Támogatott modulok:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1420,7 +1445,7 @@ msgstr ""
 "további információkért és opciókért.\n"
 "                   Ez az APT a SzuperTehén Hatalmával rendelkezik.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1728,8 +1753,8 @@ msgstr "A(z) %s/%s fájl felülírja a(z) %s csomagban levőt"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1761,7 +1786,7 @@ msgstr "Az info és temp könyvtáraknak egy fájlrendszeren kell lenniük"
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Csomaglisták olvasása"
 
@@ -2129,35 +2154,29 @@ msgstr "Valami rossz történt '%s: %s' feloldásakor (%i)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Sikertelen kapcsolódás ide: %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "Telepítés megszakítása."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr "Belső hiba: Jó aláírás, de meghatározhatatlan kulcs ujjlenyomat?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "1 vagy több érvénytelen aláírást találtam."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr "'%s' nem futtatható az aláírás ellenőrzéséhez (a gpgv telepítve van?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Ismeretlen gpgv futtatási hiba"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Az alábbi aláírások érvénytelenek voltak:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2315,57 +2334,57 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "%s kiválasztás nem található"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Ismeretlen típusrövidítés: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "%s konfigurációs fájl megnyitása"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Szintaktikai hiba %s: %u: A blokk név nélkül kezdődik"
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Szintaktikai hiba %s: %u: hibás formátumú címke"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Szintaktikai hiba %s: %u: fölösleges szemét az érték után"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "Szintaktikai hiba %s: %u: Csak legfelső szinten használhatók előírások"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Szintaktikai hiba %s: %u: Túl sok beágyazott include"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Szintaktikai hiba %s: %u: ugyaninnen include-olva"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Szintaktikai hiba %s: %u: '%s' nem támogatott előírás"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "Szintaktikai hiba %s: %u: Csak legfelső szinten használhatók előírások"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Szintaktikai hiba %s: %u: fölösleges szemét a fájl végén"
@@ -2509,7 +2528,7 @@ msgstr "%s alfolyamat hibakóddal tért vissza (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "%s alfolyamat váratlanul kilépett"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Nem lehet megnyitni %s fájlt"
@@ -2736,14 +2755,14 @@ msgstr "A(z) %u. sor hibás %s forráslistában (típus)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "'%s' típus nem ismert a(z) %u. sorban a(z) %s forráslistában"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2754,7 +2773,7 @@ msgstr ""
 "alapvető csomagot ami Ütközési/Elő-függőségi hurkot okoz. Ez gyakran rossz, "
 "de ha tényleg ezt akarod tenni, aktiváld az APT::Force-LoopBreak opciót."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2786,7 +2805,7 @@ msgid "Unable to correct problems, you have held broken packages."
 msgstr ""
 "A problémák nem javíthatók, sérült visszafogott csomagok vannak a rendszeren."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2837,12 +2856,12 @@ msgstr "A(z) %s metódus nem indult el helyesen"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Tedd be a(z) %s címkéjű lemezt a(z) %s meghajtóba és üss entert"
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "A(z) '%s' csomagrendszer nem támogatott"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "A megfelelő csomagrendszer típus nem határozható meg"
 
@@ -2868,17 +2887,24 @@ msgstr "Próbáld futtatni az apt-get update -et, hogy javítsd e hibákat"
 msgid "The list of sources could not be read."
 msgstr "A források listája olvashatatlan."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Hibás rekord a tulajdonság fájlban, nincs csomagfejléc"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "A(z) %s tűtípus nem értelmezhető"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Nincs prioritás (vagy nulla) megadva a tűhöz"
 
@@ -2973,7 +2999,7 @@ msgstr "Nem lehet a(z) %s forrás csomaglistáját elérni"
 msgid "Collecting File Provides"
 msgstr "\"Előkészít\" kapcsolatok összegyűjtése"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "IO hiba a forrás-gyorsítótár mentésekor"
 
@@ -2986,8 +3012,8 @@ msgstr "sikertelen átnevezés, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "Az MD5Sum nem megfelelő"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "A Hash Sum nem megfelelő"
 
@@ -3007,20 +3033,19 @@ msgstr "Nem lehet a(z) %s csomagfájlt feldolgozni (1)"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Nincs elérhető nyilvános kulcs az alábbi kulcs azonosítókhoz:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3028,12 +3053,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3042,7 +3067,7 @@ msgstr ""
 "Nem találtam egy fájlt a(z) %s csomaghoz. Ez azt jelentheti, hogy kézzel "
 "kell kijavítani a csomagot. (hiányzó arch. miatt)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3051,14 +3076,14 @@ msgstr ""
 "Nem találtam egy fájlt a(z) %s csomaghoz. Ez azt jelentheti, hogy kézzel "
 "kell kijavítani a csomagot."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 "A csomagindex-fájlok megsérültek. Nincs Filename: mező a(z) %s csomaghoz."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "A méret nem megfelelő"
 
@@ -3180,22 +3205,22 @@ msgstr "Új forráslista írása\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "E lemezhez tartozó forráslista-bejegyzések a következők:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "%i rekord kiírva.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "%i rekord kiírva, %i hiányzó fájllal.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "%i rekord kiírva %i hibásan párosított fájllal\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "%i rekord kiírva %i hiányzó és %i hibásan párosított fájllal\n"
@@ -3215,6 +3240,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "A Hash Sum nem megfelelő"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "Telepítés megszakítása."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index 90b50816afe9fd8cd83e6df9f83f17d05bd89baa..60646a2802f976cf1caca9be749ab630e1acfd13 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2011-05-16 21:38+0200\n"
 "Last-Translator: Milo Casagrande <milo@ubuntu.com>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -158,7 +158,7 @@ msgstr "  Tabella versione:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s per %s compilato il %s %s\n"
@@ -840,7 +840,7 @@ msgstr "La reinstallazione di %s non è possibile, non può essere scaricato.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s è già alla versione più recente.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "È stato impostato %s per l'installazione manuale.\n"
@@ -956,8 +956,8 @@ msgstr "Dopo quest'operazione, verranno occupati %sB di spazio su disco.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Dopo quest'operazione, verranno liberati %sB di spazio su disco.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Impossibile determinare lo spazio libero in %s"
@@ -996,7 +996,7 @@ msgstr "Interrotto."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Continuare [S/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Impossibile recuperare %s  %s\n"
@@ -1005,7 +1005,7 @@ msgstr "Impossibile recuperare %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Scaricamento di alcuni file non riuscito"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Scaricamento completato e in modalità solo scaricamento"
 
@@ -1047,32 +1047,32 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Nota: questo viene svolto automaticamente da dpkg."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Ignorato il rilascio non disponibile \"%s\" del pacchetto \"%s\""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Scelto \"%s\" come pacchetto sorgente al posto di \"%s\"\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Ignorata la versione \"%s\" non disponibile del pacchetto \"%s\""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Il comando update non accetta argomenti"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 "Non si è autorizzati a rimuovere nulla, impossibile avviare AutoRemover"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1090,15 +1090,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Le seguenti informazioni possono aiutare a risolvere la situazione:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Errore interno, AutoRemover ha rovinato qualche cosa"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1111,7 +1111,7 @@ msgstr[1] ""
 "I seguenti pacchetti sono stati installati automaticamente e non sono più "
 "richiesti:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1122,20 +1122,20 @@ msgstr[1] ""
 "%lu pacchetti sono stati installati automaticamente e non sono più "
 "richiesti.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Usare \"apt-get autoremove\" per rimuoverli."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Errore interno, AllUpgrade ha rovinato qualche cosa"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr ""
 "È utile eseguire \"apt-get -f install\" per correggere questi problemi:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1143,7 +1143,7 @@ msgstr ""
 "Dipendenze non soddisfatte. Provare \"apt-get -f install\" senza pacchetti "
 "(o specificare una soluzione)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1155,74 +1155,74 @@ msgstr ""
 "usando una distribuzione in sviluppo, che alcuni pacchetti richiesti\n"
 "non sono ancora stati creati o sono stati rimossi da Incoming."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Pacchetti danneggiati"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "I seguenti pacchetti saranno inoltre installati:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Pacchetti suggeriti:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Pacchetti raccomandati:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Impossibile trovare il pacchetto %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s impostato automaticamente come installato.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Calcolo dell'aggiornamento... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Non riuscito"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Eseguito"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Errore interno, \"problem resolver\" ha rovinato qualcosa"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Impossibile bloccare la directory di scaricamento"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr "Scaricamento di %s %s"
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 "È necessario specificare almeno un pacchetto di cui recuperare il sorgente"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Impossibile trovare un pacchetto sorgente per %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1232,7 +1232,7 @@ msgstr ""
 "all'interno del sistema di controllo della versione \"%s\" presso:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1244,80 +1244,96 @@ msgstr ""
 "per recuperare gli ultimi (e probabilmente non rilasciati) aggiornamenti del "
 "pacchetto.\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Il pacchetto \"%s\" già scaricato viene saltato\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Lo spazio libero in %s è insufficiente"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "È necessario recuperare %sB/%sB di sorgenti.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "È necessario scaricare %sB di sorgenti.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Recupero sorgente %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Recupero di alcuni archivi non riuscito."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Estrazione del pacchetto sorgente già estratto in %s saltata\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Comando di estrazione \"%s\" non riuscito.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Verificare che il pacchetto \"dpkg-dev\" sia installato.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Comando \"%s\" di generazione non riuscito.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Creazione processo figlio non riuscita"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "È necessario specificare almeno un pacchetto di cui controllare le "
 "dipendenze di generazione"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Impossibile ottenere informazioni di dipendenza di generazione per %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s non ha dipendenze di generazione.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"%s dipendenze per %s non possono essere soddisfatte perché il pacchetto %s "
+"non può essere trovato"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1326,46 +1342,55 @@ msgstr ""
 "%s dipendenze per %s non possono essere soddisfatte perché il pacchetto %s "
 "non può essere trovato"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"La dipendenza %s per %s non è stata soddisfatta: il pacchetto installato %s "
+"è troppo recente"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "%s dipendenze per %s non possono essere soddisfatte perché nessuna versione "
 "del pacchetto %s può soddisfare le richieste di versione"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"La dipendenza %s per %s non è stata soddisfatta: il pacchetto installato %s "
-"è troppo recente"
+"%s dipendenze per %s non possono essere soddisfatte perché il pacchetto %s "
+"non può essere trovato"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "La dipendenza %s per %s non è stata soddisfatta: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Le dipendenze di generazione per %s non sono state soddisfatte."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Elaborazione delle dipendenze di generazione non riuscita"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Changelog per %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Moduli supportati:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1458,7 +1483,7 @@ msgstr ""
 "apt-get(8), sources.list(5) e apt.conf(5).\n"
 "                       Questo APT ha i poteri della Super Mucca.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1777,8 +1802,8 @@ msgstr "Il file %s/%s sovrascrive quello nel pacchetto %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1810,7 +1835,7 @@ msgstr "Le directory temp e info devono essere sullo stesso file system"
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Lettura elenco dei pacchetti"
 
@@ -2182,38 +2207,32 @@ msgstr ""
 msgid "Unable to connect to %s:%s:"
 msgstr "Impossibile connettersi a %s:%s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "Nessun portachiavi installato in %s."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Errore interno: firma corretta, ma non è possibile determinare l'impronta "
 "della chiave."
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "È stata trovata almeno una firma non valida."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Impossibile eseguire \"gpgv\" per verificare la firma (forse gpgv non è "
 "installato)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Errore sconosciuto durante l'esecuzione di gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Le seguenti firme non erano valide:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2375,62 +2394,62 @@ msgstr "%lis"
 msgid "Selection %s not found"
 msgstr "Selezione %s non trovata"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Tipo di abbreviazione non riconosciuto: \"%c\""
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Apertura file di configurazione %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Errore di sintassi %s:%u: il blocco inizia senza nome"
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Errore di sintassi %s:%u: tag non corretto"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Errore di sintassi %s:%u: caratteri extra dopo il valore"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Errore di sintassi %s:%u: le direttive possono essere fatte solo al livello "
 "più alto"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Errore di sintassi %s:%u: troppe inclusioni annidate"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Errore di sintassi %s:%u: incluso da qui"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Errore di sintassi %s:%u: direttiva \"%s\" non supportata"
 
 # (ndt) sarebbe da controllare meglio...
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Errore di sintassi %s:%u: la direttiva clear richiede un albero di opzioni "
 "come argomento"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Errore di sintassi %s:%u: caratteri extra alla fine del file"
@@ -2581,7 +2600,7 @@ msgstr "Il sottoprocesso %s ha restituito un codice d'errore (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Il sottoprocesso %s è uscito inaspettatamente"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Impossibile aprire il file %s"
@@ -2819,7 +2838,7 @@ msgstr "La riga %u nel file %s non è corretta (type)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Tipo \"%s\" non riconosciuto alla riga %u nel file %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2829,7 +2848,7 @@ msgstr ""
 "maggiori informazioni, consultare \"man 5 apt.conf\" alla sezione \"APT::"
 "Immediate-Configure\" (%d)."
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2841,7 +2860,7 @@ msgstr ""
 "situazione critica, ma se si vuole realmente procedere, attivare l'opzione "
 "APT::Force-LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2877,7 +2896,7 @@ msgid "Unable to correct problems, you have held broken packages."
 msgstr ""
 "Impossibile correggere i problemi, ci sono pacchetti danneggiati bloccati."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2928,12 +2947,12 @@ msgstr "Il metodo %s non si è avviato correttamente"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Inserire il disco chiamato \"%s\" nell'unità \"%s\" e premere Invio."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Il sistema di pacchetti \"%s\" non è supportato"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Impossibile determinare un tipo di sistema appropriato di pacchetti"
 
@@ -2961,19 +2980,26 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr "Impossibile leggere l'elenco dei sorgenti."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr ""
 "Campo non valido nel file delle preferenze %s, manca l'intestazione \"Package"
 "\""
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Impossibile comprendere il tipo di gancio %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Priorità per il gancio non specificata (o zero)"
 
@@ -3067,7 +3093,7 @@ msgstr "Impossibile eseguire stat sull'elenco dei pacchetti sorgente %s"
 msgid "Collecting File Provides"
 msgstr "Il file fornisce"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Errore di I/O nel salvare la cache sorgente"
 
@@ -3080,8 +3106,8 @@ msgstr "rename() non riuscita: %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "MD5sum non corrispondente"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Somma hash non corrispondente"
 
@@ -3104,20 +3130,19 @@ msgid "There is no public key available for the following key IDs:\n"
 msgstr ""
 "Non è disponibile alcuna chiave pubblica per i seguenti ID di chiavi:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "File Release scaduto, %s viene ignorato (non valido da %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Distribuzione in conflitto: %s (atteso %s ma ottenuto %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3127,12 +3152,12 @@ msgstr ""
 "aggiornato e verranno usati i file indice precedenti. Errore GPG: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "Errore GPG: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3141,7 +3166,7 @@ msgstr ""
 "Impossibile trovare un file per il pacchetto %s. Potrebbe essere necessario "
 "sistemare manualmente questo pacchetto (a causa dell'architettura mancante)."
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, fuzzy, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3151,7 +3176,7 @@ msgstr ""
 "sistemare manualmente questo pacchetto."
 
 # (ndt) sarebbe da controllare se veramente possono esistere più file indice
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3159,7 +3184,7 @@ msgstr ""
 "I file indice del pacchetto sono danneggiati. Manca il campo \"Filename:\" "
 "per il pacchetto %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Le dimensioni non corrispondono"
 
@@ -3283,22 +3308,22 @@ msgstr "Scrittura nuovo elenco sorgenti\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Le voci dell'elenco sorgenti per questo disco sono:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Scritti %i record.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Scritti %i record con %i file mancanti.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Scritti %i record con %i file senza corrispondenze\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3319,6 +3344,17 @@ msgstr "Impossibile trovare il record di autenticazione per %s"
 msgid "Hash mismatch for: %s"
 msgstr "Hash non corrispondente per %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "Nessun portachiavi installato in %s."
+
 # (ndt) dovrebbe essere inteso il file Release
 #: apt-pkg/cacheset.cc:337
 #, c-format
@@ -3586,3 +3622,6 @@ msgstr "Connessione chiusa prematuramente"
 #~| msgid "Internal error, could not locate member %s"
 #~ msgid "Internal error, could not locate member"
 #~ msgstr "Errore interno, impossibile trovare il membro %s"
+
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "File Release scaduto, %s viene ignorato (non valido da %s)"
index bd800b495bfb52517374b9a7ac8347d0b0985c12..41ac8551524d9f7489314dac758220983214e5d8 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.8.0~pre1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-08-25 09:33+0900\n"
 "Last-Translator: Kenshi Muto <kmuto@debian.org>\n"
 "Language-Team: Debian Japanese List <debian-japanese@lists.debian.org>\n"
@@ -155,7 +155,7 @@ msgstr "  バージョンテーブル:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s for %s コンパイル日時: %s %s\n"
@@ -835,7 +835,7 @@ msgstr "ダウンロードできないため、%s の再インストールは不
 msgid "%s is already the newest version.\n"
 msgstr "%s はすでに最新バージョンです。\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s は手動でインストールしたと設定されました。\n"
@@ -950,8 +950,8 @@ msgstr "この操作後に追加で %sB のディスク容量が消費されま
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "この操作後に %sB のディスク容量が解放されます。\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "%s の空き領域を測定できません"
@@ -988,7 +988,7 @@ msgstr "中断しました。"
 msgid "Do you want to continue [Y/n]? "
 msgstr "続行しますか [Y/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "%s の取得に失敗しました  %s\n"
@@ -997,7 +997,7 @@ msgstr "%s の取得に失敗しました  %s\n"
 msgid "Some files failed to download"
 msgstr "いくつかのファイルの取得に失敗しました"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "ダウンロードオンリーモードでパッケージのダウンロードが完了しました"
 
@@ -1039,32 +1039,32 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "注意: これは dpkg により自動でわざと行われれます。"
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "パッケージ '%2$s' の利用できないターゲットリリース '%1$s' を無視"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "'%2$s' の代わりに '%1$s' をソースパッケージとして選出しています\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "パッケージ '%2$s' の利用できないバージョン '%1$s' を無視"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "update コマンドは引数をとりません"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 "一連のものを削除するようになっていないので、AutoRemover を開始できません"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1082,15 +1082,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "以下の情報がこの問題を解決するために役立つかもしれません:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "内部エラー、AutoRemover が何かを破壊しました"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1101,7 +1101,7 @@ msgstr[0] ""
 msgstr[1] ""
 "以下のパッケージが自動でインストールされましたが、もう必要とされていません:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1113,21 +1113,21 @@ msgstr[1] ""
 "%lu つのパッケージが自動でインストールされましたが、もう必要とされていませ"
 "ん:\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "これらを削除するには 'apt-get autoremove' を利用してください。"
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "内部エラー、AllUpgrade が何かを破壊しました"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr ""
 "以下の問題を解決するために 'apt-get -f install' を実行する必要があるかもしれ"
 "ません:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1135,7 +1135,7 @@ msgstr ""
 "未解決の依存関係です。'apt-get -f install' を実行してみてください (または解法"
 "を明示してください)。"
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1147,74 +1147,74 @@ msgstr ""
 "であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移\n"
 "動されていないことが考えられます。"
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "壊れたパッケージ"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "以下の特別パッケージがインストールされます:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "提案パッケージ:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "推奨パッケージ:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "パッケージ %s が見つかりません"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s は自動でインストールしたと設定されました。\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "アップグレードパッケージを検出しています ... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "失敗"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "完了"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "内部エラー、問題リゾルバが何かを破壊しました"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "ダウンロードディレクトリをロックできません"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 "ソースを取得するには少なくともひとつのパッケージ名を指定する必要があります"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "%s のソースパッケージが見つかりません"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1224,7 +1224,7 @@ msgstr ""
 "ます:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1236,80 +1236,96 @@ msgstr ""
 "bzr get %s\n"
 "を使用してください。\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "すでにダウンロードされたファイル '%s' をスキップします\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "%s に充分な空きスペースがありません"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "%2$sB 中 %1$sB のソースアーカイブを取得する必要があります。\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "%sB のソースアーカイブを取得する必要があります。\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "ソース %s を取得\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "いくつかのアーカイブの取得に失敗しました。"
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "すでに %s に展開されたソースがあるため、展開をスキップします\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "展開コマンド '%s' が失敗しました。\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr ""
 "'dpkg-dev' パッケージがインストールされていることを確認してください。\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "ビルドコマンド '%s' が失敗しました。\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "子プロセスが失敗しました"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "ビルド依存関係をチェックするパッケージを少なくとも 1 つ指定する必要があります"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "%s のビルド依存情報を取得できません"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s にはビルド依存情報が指定されていません。\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"パッケージ %3$s が見つからないため、%2$s に対する %1$s の依存関係を満たすこと"
+"ができません"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1318,46 +1334,55 @@ msgstr ""
 "パッケージ %3$s が見つからないため、%2$s に対する %1$s の依存関係を満たすこと"
 "ができません"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"%2$s の依存関係 %1$s を満たすことができません: インストールされた %3$s パッ"
+"ケージは新しすぎます"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "入手可能な %3$s はいずれもバージョンについての要求を満たせないため、%2$s に対"
 "する %1$s の依存関係を満たすことができません"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"%2$s の依存関係 %1$s を満たすことができません: インストールされた %3$s パッ"
-"ã\82±ã\83¼ã\82¸ã\81¯æ\96°ã\81\97ã\81\99ã\81\8eã\81¾ã\81\99"
+"パッケージ %3$s が見つからないため、%2$s に対する %1$s の依存関係を満たすこと"
+"ã\81\8cã\81§ã\81\8dã\81¾ã\81\9bã\82\93"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "%2$s の依存関係 %1$s を満たすことができません: %3$s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "%s のビルド依存関係を満たすことができませんでした。"
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "ビルド依存関係の処理に失敗しました"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "%s (%s) へ接続しています"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "サポートされているモジュール:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1452,7 +1477,7 @@ msgstr ""
 "apt-get(8)、sources.list(5)、apt.conf(5) を参照してください。\n"
 "                        この APT は Super Cow Powers 化されています。\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1763,8 +1788,8 @@ msgstr "ファイル %s/%s がパッケージ %s のものを上書きします"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1796,7 +1821,7 @@ msgstr "info と temp ディレクトリは同じファイルシステム上に
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "パッケージリストを読み込んでいます"
 
@@ -2166,36 +2191,30 @@ msgstr "'%s:%s' (%i - %s) の解決中に何か問題が起こりました"
 msgid "Unable to connect to %s:%s:"
 msgstr "%s:%s へ接続できません:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "%s にキーリングがインストールされていません。"
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr "内部エラー: 正しい署名ですが、鍵指紋を確定できません?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "少なくとも 1 つの不正な署名が発見されました。"
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "署名を検証するための 'gpgv' の実行ができませんでした (gpgv はインストールされ"
 "ていますか?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "gpgv の実行中に未知のエラーが発生"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "以下の署名が無効です:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2351,59 +2370,59 @@ msgstr "%li秒"
 msgid "Selection %s not found"
 msgstr "選択された %s が見つかりません"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "理解できない省略形式です: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "設定ファイル %s をオープンできませんでした"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "文法エラー %s:%u: ブロックが名前なしで始まっています。"
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "文法エラー %s:%u: 不正なタグです"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "文法エラー %s:%u: 値の後に余分なゴミが入っています"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "文法エラー %s:%u: 命令はトップレベルでのみ実行できます"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "文法エラー %s:%u: インクルードのネストが多すぎます"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "文法エラー %s:%u: ここからインクルードされています"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "文法エラー %s:%u: 未対応の命令 '%s'"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "文法エラー %s:%u: clear ディレクティブは、引数としてオプションツリーを必要と"
 "します"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "文法エラー %s:%u: ファイルの最後に余計なゴミがあります"
@@ -2546,7 +2565,7 @@ msgstr "子プロセス %s がエラーコード (%u) を返しました"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "子プロセス %s が予期せず終了しました"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "ファイル %s をオープンできませんでした"
@@ -2777,7 +2796,7 @@ msgstr "ソースリスト %2$s の %1$u 行目が不正です (type)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "ソースリスト %3$s の %2$u 行にあるタイプ '%1$s' は不明です"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2786,7 +2805,7 @@ msgstr ""
 "'%s' の即時設定は動作しません。詳細については man 5 apt.conf の APT::"
 "Immediate-Configure の項を参照してください。(%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2797,7 +2816,7 @@ msgstr ""
 "ケージ %s を削除します。これは多くの場合に問題が起こる原因となります。本当に"
 "これを行いたいなら、APT::Force-LoopBreak オプションを有効にしてください。"
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2831,7 +2850,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "問題を解決することができません。壊れた変更禁止パッケージがあります。"
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2884,12 +2903,12 @@ msgstr ""
 "'%s' とラベルの付いたディスクをドライブ '%s' に入れて enter を押してくださ"
 "い。"
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "パッケージングシステム '%s' はサポートされていません"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "適切なパッケージシステムタイプを特定できません"
 
@@ -2918,19 +2937,26 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr "ソースのリストを読むことができません。"
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr ""
 "不正なレコードがプリファレンスファイル %s に存在します。パッケージヘッダがあ"
 "りません"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "pin タイプ %s が理解できませんでした"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "pin で優先度 (または 0) が指定されていません"
 
@@ -3019,7 +3045,7 @@ msgstr "ソースパッケージリスト %s の状態を取得できません"
 msgid "Collecting File Provides"
 msgstr "ファイル提供情報を収集しています"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "ソースキャッシュの保存中に IO エラーが発生しました"
 
@@ -3032,8 +3058,8 @@ msgstr "名前の変更に失敗しました。%s (%s -> %s)"
 msgid "MD5Sum mismatch"
 msgstr "MD5Sum が適合しません"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "ハッシュサムが適合しません"
 
@@ -3053,23 +3079,21 @@ msgstr "Release ファイル %s を解釈することができません"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "以下の鍵 ID に対して利用可能な公開鍵がありません:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
-"Release ファイルが期限切れになっているので、%s を無視します (%s 以来無効)"
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 "ディストリビューションが競合しています: %s (%s を期待していたのに %s を取得し"
 "ました)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3079,12 +3103,12 @@ msgstr ""
 "ファイルが使われます。GPG エラー: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "GPG エラー: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3093,7 +3117,7 @@ msgstr ""
 "パッケージ %s のファイルの位置を特定できません。おそらくこのパッケージを手動"
 "で修正する必要があります (存在しないアーキテクチャのため)。"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3102,7 +3126,7 @@ msgstr ""
 "パッケージ %s のファイルの位置を特定できません。おそらくこのパッケージを手動"
 "で修正する必要があります。"
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3110,7 +3134,7 @@ msgstr ""
 "パッケージインデックスファイルが壊れています。パッケージ %s に Filename: "
 "フィールドがありません。"
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "サイズが適合しません"
 
@@ -3234,22 +3258,22 @@ msgstr "新しいソースリストを書き込んでいます\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "このディスクのソースリストのエントリ:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "%i レコードを書き込みました。\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "%i レコードを書き込みました。%i 個のファイルが存在しません。\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "%i レコードを書き込みました。%i 個の適合しないファイルがあります。\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3271,6 +3295,17 @@ msgstr "認証レコードが見つかりません: %s"
 msgid "Hash mismatch for: %s"
 msgstr "ハッシュサムが適合しません: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "%s にキーリングがインストールされていません。"
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3530,3 +3565,7 @@ msgstr "途中で接続がクローズされました"
 #~ msgid "Internal error, group '%s' has no installable pseudo package"
 #~ msgstr ""
 #~ "内部エラー。グループ '%s' にはインストール可能な擬似パッケージがありません"
+
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr ""
+#~ "Release ファイルが期限切れになっているので、%s を無視します (%s 以来無効)"
index a5d799f3f4264a54b7ed5958327882aaba9fffd7..75403c83d63daebe4d7852c84457167cba9d5a9e 100644 (file)
--- a/po/km.po
+++ b/po/km.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_po_km\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2006-10-10 09:48+0700\n"
 "Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
 "Language-Team: Khmer <support@khmeros.info>\n"
@@ -161,7 +161,7 @@ msgstr "  តារាង​កំណែ ៖"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, fuzzy, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s សម្រាប់ %s %s បាន​ចងក្រងនៅលើ​%s %s\n"
@@ -837,7 +837,7 @@ msgstr "មិនអាចធ្វើការដំឡើង %s ឡើងវ
 msgid "%s is already the newest version.\n"
 msgstr "%s ជាកំណែ​ដែលថ្មីបំផុតរួចទៅហើយ ។\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, fuzzy, c-format
 msgid "%s set to manually installed.\n"
 msgstr "ប៉ុន្តែ​ %s នឹង​ត្រូវ​បាន​ដំឡើ​ង"
@@ -949,8 +949,8 @@ msgstr "បន្ទាប់​ពី​ពន្លា​ %sB នៃ​កា
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "បន្ទាប់​ពី​ពន្លា​ %sB ទំហំ​ថាសនឹង​​ទំនេរ ។ \n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "មិន​អាច​កំណត់​ទំហំ​ទំនេរ​ក្នុង​ %s បានឡើយ"
@@ -987,7 +987,7 @@ msgstr "បោះបង់ ។"
 msgid "Do you want to continue [Y/n]? "
 msgstr "តើ​អ្នក​ចង់​បន្តឬ​ [បាទ ចាស/ទេ​] ? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "បរាជ័យ​ក្នុង​ការ​ទៅ​ប្រមូល​យក​ %s  %s\n"
@@ -996,7 +996,7 @@ msgstr "បរាជ័យ​ក្នុង​ការ​ទៅ​ប្រម
 msgid "Some files failed to download"
 msgstr "ឯកសារ​មួយ​ចំនួន​បាន​បរាជ័យ​ក្នុង​ការ​ទាញ​យក​"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "បានបញ្ចប់ការទាញ​យក​ ហើយ​តែ​ក្នុង​របៀប​​ទាញ​យក​ប៉ុណ្ណោះ"
 
@@ -1034,31 +1034,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "មិនអាចថ្លែង បញ្ជី​កញ្ចប់​ប្រភពចប់​ បានឡើយ %s"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "ពាក្យ​បញ្ជា​ដែលធ្វើ​ឲ្យ​ទាន់​សម័យ​គ្មាន​អាគុយម៉ង់​ទេ"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1074,16 +1074,16 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "ព័ត៌មាន​ដូចតទៅនេះ អាចជួយ​ដោះស្រាយ​ស្ថានភាព​បាន ៖"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 #, fuzzy
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "កំហុស​ខាងក្នុង អ្នក​ដោះស្រាយ​បញ្ហា​បានធ្វើឲ្យខូច​ឧបករណ៍"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1093,7 +1093,7 @@ msgid_plural ""
 msgstr[0] "កញ្ចប់​ថ្មី​ខាងក្រោម​នឹង​ត្រូវ​បាន​ដំឡើង​ ៖"
 msgstr[1] "កញ្ចប់​ថ្មី​ខាងក្រោម​នឹង​ត្រូវ​បាន​ដំឡើង​ ៖"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1101,26 +1101,26 @@ msgid_plural ""
 msgstr[0] "កញ្ចប់​ថ្មី​ខាងក្រោម​នឹង​ត្រូវ​បាន​ដំឡើង​ ៖"
 msgstr[1] "កញ្ចប់​ថ្មី​ខាងក្រោម​នឹង​ត្រូវ​បាន​ដំឡើង​ ៖"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr ""
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "កំហុស​ខាងក្នុង ការធ្វើឲ្យប្រសើរ​ទាំងអស់បានធ្វើឲ្យ​ឧបករណ៍​ខូច"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "អ្នក​ប្រហែល​ជា​ចង់​រត់ 'apt-get -f install' ដើម្បី​កែ​ពួក​វា​ទាំង​នេះ ៖"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
 msgstr ""
 "ភាពអស្រ័យ​ដែល​ខុស​គ្នា ។ ព្យាយាម​ 'apt-get -f install' ដោយ​គ្មាន​កញ្ចប់ (ឬ បញ្ជាក់​ដំណោះស្រាយ) ។"
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1132,80 +1132,80 @@ msgstr ""
 "ដែលបាន​ទាមទារនឹងមិនទាន់បានបង្កើត​ឡើយ​\n"
 " ឬ ​បានយក​ចេញ​ពីការមកដល់ ។"
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "កញ្ចប់​ដែល​បាន​ខូច​"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "កញ្ចប់​បន្ថែម​ដូចតទៅនេះ នឹងត្រូវបាន​ដំឡើង ៖"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "កញ្ចប់​ដែល​បាន​ផ្ដល់​យោបល់ ៖"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "កញ្ចប់​ដែល​បាន​ផ្ដល់​អនុសាសន៍ ៖"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "មិន​អាច​រក​កញ្ចប់ %s បានទេ"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "ប៉ុន្តែ​ %s នឹង​ត្រូវ​បាន​ដំឡើ​ង"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "កំពុង​គណនា​ការ​ធ្វើ​ឲ្យ​ប្រសើរ... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "បាន​បរាជ័យ"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "ធ្វើរួច​"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "កំហុស​ខាងក្នុង អ្នក​ដោះស្រាយ​បញ្ហា​បានធ្វើឲ្យខូច​ឧបករណ៍"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "មិន​អាច​ចាក់​សោ​ថត​ទាញ​យក​បាន​ឡើយ"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "យ៉ាងហោចណាស់​ត្រូវ​​បញ្ជាក់​​កញ្ចប់​មួយ ​ដើម្បី​ទៅ​​ប្រមូល​យក​ប្រភព​សម្រាប់"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "មិន​អាច​រក​កញ្ចប់ប្រភព​​សម្រាប់ %s បានឡើយ"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1213,122 +1213,143 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "កំពុង​រំលង​ឯកសារ​ដែល​បាន​ទាញយក​រួច​ '%s'\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "អ្នក​ពុំ​មាន​ទំហំ​ទំនេរ​គ្រប់គ្រាន់​ទេ​នៅក្នុង​ %s ឡើយ"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "ត្រូវការ​យក​ %sB/%sB នៃ​ប័ណ្ណសារ​ប្រភព ។\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "ត្រូវការ​យក​ %sB នៃ​ប័ណ្ណសារ​ប្រភព​ ។\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "ទៅប្រមូល​ប្រភព​ %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "បរាជ័យ​ក្នុងការទៅប្រមូលយក​ប័ណ្ណសារ​មួយចំនួន ។"
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "កំពុង​រំលង​ការស្រាយ​នៃប្រភព​ដែលបានស្រាយរួច​នៅក្នុង %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "ពាក្យ​បញ្ជា​ស្រាយ '%s' បាន​បរាជ័យ​ ។\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "ពិនិត្យ​ប្រសិន​បើកញ្ចប់ 'dpkg-dev' មិន​ទាន់​បាន​ដំឡើង​ ។\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "សាងសង​ពាក្យ​បញ្ជា​ '%s' បានបរាជ័យ​ ។\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "ដំណើរ​ការ​កូន​បាន​បរាជ័យ​"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr "ត្រូវតែ​បញ្ជាក់​យ៉ាងហោចណាស់​មួយកញ្ចប់ដើម្បីពិនិត្យ builddeps សម្រាប់"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "មិន​អាច​សាងសង់​​ព័ត៌មាន​ភាពអស្រ័យ​សម្រាប់ %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s មិនមានភាពអាស្រ័យ​ស្ថាបនាឡើយ​ ។\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr "%s ភាពអស្រ័យ​សម្រាប់​ %s មិន​អាច​ធ្វើ​ឲ្យ​ពេញចិត្ត​ ព្រោះ​រក​​ %s កញ្ចប់​មិន​ឃើញ​ "
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr "%s ភាពអស្រ័យ​សម្រាប់​ %s មិន​អាច​ធ្វើ​ឲ្យ​ពេញចិត្ត​ ព្រោះ​រក​​ %s កញ្ចប់​មិន​ឃើញ​ "
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr "បរាជ័យ​ក្នុងការ​តម្រូវចិត្តភាពអាស្រ័យ %s សម្រាប់ %s ៖ កញ្ចប់ %s ដែលបានដំឡើង គឺថ្មីពេក"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "ភាពអាស្រ័យ %s សម្រាប់ %s មិនអាច​តម្រូវចិត្តបានទេ ព្រោះ មិនមាន​កំណែ​នៃកញ្ចប់ %s ដែលអាច​តម្រូវចិត្ត​"
 "តម្រូវការ​កំណែបានឡើយ"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr "បរាជ័យ​ក្នុងការ​តម្រូវចិត្តភាពអាស្រ័យ %s សម្រាប់ %s ៖ កញ្ចប់ %s ដែលបានដំឡើង គឺថ្មីពេក"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
+msgstr "%s ភាពអស្រ័យ​សម្រាប់​ %s មិន​អាច​ធ្វើ​ឲ្យ​ពេញចិត្ត​ ព្រោះ​រក​​ %s កញ្ចប់​មិន​ឃើញ​ "
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "បរាជ័យ​ក្នុងការ​តម្រូវចិត្តភាពអាស្រ័យ %s សម្រាប់ %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "ភាពអាស្រ័យ​ដែល​បង្កើត​ %s មិន​អាច​បំពេញ​សេចក្ដី​ត្រូវការ​បាន​ទេ ។"
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "បាន​បរាជ័យ​ក្នុង​ការ​ដំណើរ​​ការ​បង្កើត​ភាព​អាស្រ័យ"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "កំពុង​តភ្ជាប់​ទៅ​កាន់​ %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "ម៉ូឌុល​ដែល​គាំទ្រ ៖ "
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1413,7 +1434,7 @@ msgstr ""
 "pages for more information and options.\n"
 "                       This APT has Super Cow Powers.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1721,8 +1742,8 @@ msgstr "ឯកសារ​ %s/%s សរសេរជាន់​ពីលើ​
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1754,7 +1775,7 @@ msgstr "ថតព័ត៌មាន​ និង ពុម្ព ត្រូវ
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "កំពុង​អាន​បញ្ជី​កញ្ចប់"
 
@@ -2120,35 +2141,29 @@ msgstr "ការ​ដោះស្រាយ​អ្វី​អាក្រក
 msgid "Unable to connect to %s:%s:"
 msgstr "មិន​អាច​តភ្ជាប់​ទៅកាន់​​ %s %s ៖"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "កំពុង​បោះបង់​ការ​ដំឡើង​ ។"
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr "កំហុស​ខាងក្នុង​ ៖ ហត្ថលេខា​​ល្អ ប៉ុន្តែ ​មិន​អាច​កំណត់​កូនសោ​ស្នាម​ម្រាមដៃ ?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "​បានជួប​ប្រទះ​​​​ហត្ថលេខា​យ៉ាងហោចណាស់មួយ ដែ​លត្រឹមត្រូវ​ ។"
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr "មិន​អាច​ប្រតិបត្តិ '%s' ដើម្បី​ផ្ទៀងផ្ទាត់​ហត្ថលេខា (តើ gpgv ត្រូវ​បាន​ដំឡើង​ឬនៅ ?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "មិនស្គាល់កំហុស ក្នុងការប្រតិបត្តិ gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "ហត្ថលេខា​ខាង​ក្រោម​មិន​ត្រឹមត្រូវ ៖\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2304,57 +2319,57 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "ជម្រើស​ %s រក​មិន​ឃើញ​ឡើយ"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "មិន​បាន​​ទទួល​ស្គាល់​ប្រភេទ​អក្សរ​សង្ខេប ៖ '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "កំពុង​បើ​ឯកសារ​កំណត់រចនាសម្ព័ន្ធ​ %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "កំហុស​វាក្យ​សម្ពន្ធ %s:%u ៖ ប្លុក​ចាប់​ផ្តើម​​ដោយ​គ្មាន​ឈ្មោះ​ ។"
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "កំហុស​​វាក្យ​សម្ពន្ធ %s:%u ៖ ស្លាក​ដែលបាន Malformed"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "កំហុស​​វាក្យ​សម្ពន្ធ %s:%u ៖ តម្លៃ​ឥតបានការ​នៅ​ក្រៅ​"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "កំហុសវាក្យ​សម្ពន្ធ %s:%u ៖ សេចក្ដីបង្គាប់​អាចត្រូវបានធ្វើ​តែនៅលើ​កម្រិត​កំពូល​តែប៉ុណ្ណោះ"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "កំហុស​វាក្យសម្ពន្ធ %s:%u ៖ មាន​ការរួមបញ្ចូល​ដែលដាក់​រួមគ្នា​យ៉ាងច្រើន"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "កំហុសវាក្យ​សម្ពន្ធ %s:%u ៖ បានរួម​បញ្ចូល​ពី​ទីនេះ​"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "កំហុស​វាក្យ​សម្ពន្ធ %s:%u ៖ សេចក្ដី​បង្គាប់​ដែល​មិនបានគាំទ្រ '%s'"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "កំហុសវាក្យ​សម្ពន្ធ %s:%u ៖ សេចក្ដីបង្គាប់​អាចត្រូវបានធ្វើ​តែនៅលើ​កម្រិត​កំពូល​តែប៉ុណ្ណោះ"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "កំហុស​វាក្យសម្ពន្ធ %s:%u ៖ សារឥតបានការ​បន្ថែម ដែលនៅខាងចុង​ឯកសារ"
@@ -2497,7 +2512,7 @@ msgstr "ដំណើរការ​រង​ %s បានត្រឡប់​
 msgid "Sub-process %s exited unexpectedly"
 msgstr "ដំណើរការ​រង​ %s បានចេញ ដោយ​មិន​រំពឹង​ទុក​ "
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "មិន​អាច​បើក​ឯកសារ​ %s បានឡើយ"
@@ -2725,14 +2740,14 @@ msgstr "បន្ទាត់​ Malformed  %u ក្នុង​បញ្ជី
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "ប្រភេទ​ '%s' មិន​ស្គាល់នៅលើបន្ទាត់​ %u ក្នុង​បញ្ជី​ប្រភព​ %s ឡើយ"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2743,7 +2758,7 @@ msgstr ""
 "ភាពអាស្រ័យជាមុន ។ ជាញឹកញាប់គឺ មិនត្រឹមត្រូវ ប៉ុន្តែ ប្រសិនបើអ្នក​ពិតជាចង់ធ្វើវា ធ្វើឲ្យជម្រើស APT::"
 "Force-LoopBreak សកម្ម ។"
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2773,7 +2788,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "មិន​អាច​កែ​បញ្ហាបានទេេ អ្កបានទុក​កញ្ចប់​ដែល​ខូច ។។"
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2823,12 +2838,12 @@ msgstr "វិធីសាស្ត្រ​ %s មិន​អាច​ចា
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "សូម​បញ្ចូល​ស្លាក​ឌីស​ ៖ '%s' ក្នុង​ដ្រាយ​ '%s' ហើយ​សង្កត់​ចូល ។"
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "មិន​គាំទ្រ​ប្រព័ន្ធ​កញ្ចប់'%s' ឡើយ"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "មិនអាច​កំណត់​ប្រភេទ​ប្រព័ន្ធ​កញ្ចប់​ដែល​សមរម្យ​បានឡើយ"
 
@@ -2853,17 +2868,24 @@ msgstr "អ្នកប្រហែលជា​ចង់ភាពទាន់ស
 msgid "The list of sources could not be read."
 msgstr "មិន​អាច​អាន​បញ្ជី​ប្រភព​បាន​ឡើយ​ ។"
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "កំណត់ត្រា​មិនត្រឹមត្រូវ​នៅក្នុង​ឯកសារចំណង់ចំណូលចិត្ត មិនមាន​បឋមកថា​កញ្ចប់ទេ"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "មិន​បាន​យល់​ពី​ប្រភេទ​ម្ជុល %s ឡើយ"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "គ្មាន​អទិភាព (ឬ សូន្យ​) បានបញ្ជាក់​សម្រាប់​ម្ជុល​ទេ"
 
@@ -2953,7 +2975,7 @@ msgstr "មិនអាចថ្លែង បញ្ជី​កញ្ចប់
 msgid "Collecting File Provides"
 msgstr "ការផ្ដល់​ឯកសារ​ប្រមូលផ្ដុំ"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "IO កំហុសក្នុងការររក្សាទុក​ឃ្លាំង​សម្ងាត់​ប្រភព​"
 
@@ -2966,8 +2988,8 @@ msgstr "ប្តូរ​ឈ្មោះ​បានបរាជ័យ​, %s (
 msgid "MD5Sum mismatch"
 msgstr "MD5Sum មិន​ផ្គួផ្គង​"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 #, fuzzy
 msgid "Hash Sum mismatch"
 msgstr "MD5Sum មិន​ផ្គួផ្គង​"
@@ -2988,20 +3010,19 @@ msgstr "មិនអាច​ញែក​ឯកសារកញ្ចប់ %s (1
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "គ្មាន​កូនសោ​សាធារណៈ​អាច​រក​បាន​ក្នុងកូនសោ IDs ខាងក្រោម​នេះទេ ៖\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3009,12 +3030,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3023,7 +3044,7 @@ msgstr ""
 "ខ្ញុំ​មិន​អាច​រកទីតាំង​ឯកសារ​សម្រាប់​កញ្ចប់ %s បាន​ទេ ។ ​មាន​ន័យ​ថា​អ្នក​ត្រូវការ​ជួសជុល​កញ្ចប់​នេះ​ដោយ​ដៃ ។ "
 "(ដោយសារ​​បាត់​ស្ថាបត្យកម្ម)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3031,13 +3052,13 @@ msgid ""
 msgstr ""
 "ខ្ញុំ​មិន​អាច​រកទីតាំង​ឯកសារ​សម្រាប់​កញ្ចប់ %s បានទេ ។ ​មាន​ន័យ​ថា​អ្នក​ត្រូវការ​ជួសជុល​កញ្ចប់​នេះ​ដោយ​ដៃ ។"
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr "កញ្ចប់​ឯកសារ​លិបិក្រម​ត្រូវ​បាន​ខូច ។ គ្មាន​ឈ្មោះ​ឯកសារ ៖ វាល​សម្រាប់​កញ្ចប់នេះ​ទេ​ %s ។"
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "ទំហំ​មិនបាន​ផ្គួផ្គង​"
 
@@ -3158,22 +3179,22 @@ msgstr "កំពុងសរសេរ​បញ្ជី​ប្រភព​ថ
 msgid "Source list entries for this disc are:\n"
 msgstr "ធាតុបញ្ចូល​បញ្ជីប្រភព​សម្រាប់​ឌីស​នេះគឺ ៖\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "បានសរសេរ %i កំណត់ត្រា ។\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "បានសរសេរ %i កំណត់ត្រា​ជាមួយ​ %i ឯកសារ​ដែល​បាត់បង់ ។\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "បានសរសេរ​ %i កំណត់ត្រា​ជាមួយួយ​ %i ឯកសារ​ដែល​មិន​បាន​ផ្គួផ្គង​\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "បានសរសេរ %i កំណត់ត្រា​ជាមួយ​ %i ឯកសារ​ដែល​បាត់បង់​ និង​ %i ឯកសារ​ដែល​មិន​បាន​ផ្គួផ្គង​ ​\n"
@@ -3193,6 +3214,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "MD5Sum មិន​ផ្គួផ្គង​"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "កំពុង​បោះបង់​ការ​ដំឡើង​ ។"
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index a9a2788a548a86dfcaac46fec69b95de08e7b665..6d6b38a595be4bc2a52957762bd76b8d3ebef486 100644 (file)
--- a/po/ko.po
+++ b/po/ko.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-08-30 02:31+0900\n"
 "Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
 "Language-Team: Korean <debian-l10n-korean@lists.debian.org>\n"
@@ -152,7 +152,7 @@ msgstr "  버전 테이블:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s(%s), 컴파일 시각 %s %s\n"
@@ -829,7 +829,7 @@ msgstr "%s 패키지를 다시 설치하는 건 불가능합니다. 다운로드
 msgid "%s is already the newest version.\n"
 msgstr "%s 패키지는 이미 최신 버전입니다.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s 패키지 수동설치로 지정합니다.\n"
@@ -944,8 +944,8 @@ msgstr "이 작업 후 %s바이트의 디스크 공간을 더 사용하게 됩
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "이 작업 후 %s바이트의 디스크 공간이 비워집니다.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "%s의 여유 공간의 크기를 파악할 수 없습니다"
@@ -985,7 +985,7 @@ msgstr "중단."
 msgid "Do you want to continue [Y/n]? "
 msgstr "계속 하시겠습니까 [Y/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "%s 파일을 받는데 실패했습니다  %s\n"
@@ -994,7 +994,7 @@ msgstr "%s 파일을 받는데 실패했습니다  %s\n"
 msgid "Some files failed to download"
 msgstr "일부 파일을 받는데 실패했습니다"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "다운로드를 마쳤고 다운로드 전용 모드입니다"
 
@@ -1033,31 +1033,31 @@ msgstr[0] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "주의: dpkg에서 자동으로 의도적으로 수행했습니다."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "'%2$s' 패키지의 '%1$s' 대상 릴리스는 없으므로 무시합니다."
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "소스 패키지로 '%s'을(를) '%s' 대신 선택합니다\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "'%2$s' 패키지의 '%1$s' 버전은 없으므로 무시합니다."
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "update 명령은 인수를 받지 않습니다"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "삭제를 할 수 없으므로 AutoRemover를 실행하지 못합니다"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1075,15 +1075,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "이 상황을 해결하는데 다음 정보가 도움이 될 수도 있습니다:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "내부 오류, 문제 해결 프로그램이 무언가를 망가뜨렸습니다"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1091,27 +1091,27 @@ msgid_plural ""
 "required:"
 msgstr[0] "다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
 "%lu packages were automatically installed and are no longer required.\n"
 msgstr[0] "패키지 %lu개가 자동으로 설치되었지만 더 이상 필요하지 않습니다.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "이들을 지우려면 'apt-get autoremove'를 사용하십시오."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "내부 오류, AllUpgrade 프로그램이 무언가를 망가뜨렸습니다"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "다음을 바로잡으려면 'apt-get -f install'을 실행해 보십시오:"
 
 # FIXME: specify a solution?  무슨 솔루션?
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1119,7 +1119,7 @@ msgstr ""
 "의존성이 맞지 않습니다. 패키지 없이 'apt-get -f install'을 시도해 보십시오 "
 "(아니면 해결 방법을 지정하십시오)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1130,73 +1130,73 @@ msgstr ""
 "불안정 배포판을 사용해서 일부 필요한 패키지를 아직 만들지 않았거나,\n"
 "아직 Incoming에서 나오지 않은 경우일 수도 있습니다."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "망가진 패키지"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "다음 패키지를 더 설치할 것입니다:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "제안하는 패키지:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "추천하는 패키지:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "%s 패키지를 찾을 수 없습니다"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s 패키지는 수동설치로 지정합니다.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "업그레이드를 계산하는 중입니다... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "실패"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "완료"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "내부 오류, 문제 해결 프로그램이 무언가를 망가뜨렸습니다"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "다운로드 디렉터리를 잠글 수 없습니다"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "해당되는 소스 패키지를 가져올 패키지를 최소한 하나 지정해야 합니다"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "%s의 소스 패키지를 찾을 수 없습니다"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1205,7 +1205,7 @@ msgstr ""
 "알림: '%s' 패키징은 다음 '%s' 버전 컨트롤 시스템에서 관리합니다:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1216,78 +1216,94 @@ msgstr ""
 "다음과 같이 하십시오:\n"
 "bzr get %s\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "이미 다운로드 받은 파일 '%s'은(는) 다시 받지 않고 건너 뜁니다.\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "%s에 충분한 공간이 없습니다"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "소스 아카이브를 %s바이트/%s바이트 받아야 합니다.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "소스 아카이브를 %s바이트 받아야 합니다.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "%s 소스를 가져옵니다\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "일부 아카이브를 가져오는데 실패했습니다."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "%s에 이미 풀려 있는 소스의 압축을 풀지 않고 건너 뜁니다.\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "압축 풀기 명령 '%s' 실패.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "'dpkg-dev' 패키지가 설치되었는지를 확인하십시오.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "빌드 명령 '%s' 실패.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "하위 프로세스가 실패했습니다"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr "해당되는 빌드 의존성을 검사할 패키지를 최소한 하나 지정해야 합니다"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "%s의 빌드 의존성 정보를 가져올 수 없습니다"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s 패키지에 빌드 의존성이 없습니다.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"%2$s에 대한 %1$s 의존성을 만족시킬 수 없습니다. %3$s 패키지를 찾을 수 없습니"
+"다"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1296,46 +1312,55 @@ msgstr ""
 "%2$s에 대한 %1$s 의존성을 만족시킬 수 없습니다. %3$s 패키지를 찾을 수 없습니"
 "다"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"%2$s에 대한 %1$s 의존성을 만족시키는데 실패했습니다: 설치한 %3$s 패키지가 너"
+"무 최근 버전입니다"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "%2$s에 대한 %1$s 의존성을 만족시킬 수 없습니다. %3$s 패키지의 사용 가능한 버"
 "전 중에서는 이 버전 요구사항을 만족시킬 수 없습니다"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"%2$sì\97\90 ë\8c\80í\95\9c %1$s ì\9d\98ì¡´ì\84±ì\9d\84 ë§\8c족ì\8b\9cí\82¤ë\8a\94ë\8d° ì\8b¤í\8c¨í\96\88ì\8aµë\8b\88ë\8b¤: ì\84¤ì¹\98í\95\9c %3$s í\8c¨í\82¤ì§\80ê°\80 ë\84\88"
-"무 ìµ\9cê·¼ ë²\84ì \84ì\9e\85ë\8b\88ë\8b¤"
+"%2$sì\97\90 ë\8c\80í\95\9c %1$s ì\9d\98ì¡´ì\84±ì\9d\84 ë§\8c족ì\8b\9cí\82¬ ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤. %3$s í\8c¨í\82¤ì§\80를 ì°¾ì\9d\84 ì\88\98 ì\97\86ì\8aµë\8b\88"
+"다"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "%2$s에 대한 %1$s 의존성을 만족시키는데 실패했습니다: %3$s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "%s의 빌드 의존성을 만족시키지 못했습니다."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "빌드 의존성을 처리하는데 실패했습니다"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "%s(%s)에 연결하는 중입니다"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "지원하는 모듈:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1423,7 +1448,7 @@ msgstr ""
 "apt.conf(5) 매뉴얼 페이지를 보십시오.\n"
 "                       이 APT는 Super Cow Powers로 무장했습니다.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1735,8 +1760,8 @@ msgstr "%s/%s 파일은 %s 패키지에 있는 파일을 덮어 씁니다"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1768,7 +1793,7 @@ msgstr "정보 디렉토리와 임시 디렉토리는 같은 파일 시스템에
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "패키지 목록을 읽는 중입니다"
 
@@ -2135,35 +2160,29 @@ msgstr "'%s:%s'의 주소를 알아내는데 무언가 이상한 일이 발생
 msgid "Unable to connect to %s:%s:"
 msgstr "%s:%s에 연결할 수 없습니다:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "%s에 키 모음을 설치하지 않았습니다."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr "내부 오류: 서명은 올바르지만 키 핑거프린트를 확인할 수 없습니다?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "최소한 하나 이상의 서명이 잘못되었습니다."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "서명을 확인하는 'gpgv' 프로그램을 실행할 수 없습니다. (gpgv를 설치했습니까?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "gpgv 실행 도중 알 수 없는 오류 발생"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "다음 서명이 올바르지 않습니다:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2319,57 +2338,57 @@ msgstr "%li초"
 msgid "Selection %s not found"
 msgstr "선택한 %s이(가) 없습니다"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "이 타입 줄임말을 알 수 없습니다: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "설정 파일 %s 파일을 여는 중입니다"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "문법 오류 %s:%u: 블럭이 이름으로 시작하지 않습니다."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "문법 오류 %s:%u: 태그의 형식이 잘못되었습니다"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "문법 오류 %s:%u: 값 뒤에 쓰레기 데이터가 더 있습니다"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "문법 오류 %s:%u: 지시어는 맨 위 단계에서만 쓸 수 있습니다"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "문법 오류 %s:%u: include가 너무 많이 겹쳐 있습니다"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "문법 오류 %s:%u: 여기서 include됩니다"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "문법 오류 %s:%u: 지원하지 않는 지시어 '%s'"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "문법 오류 %s:%u: clear 지시어는 인수로 option 트리를 지정해야 합니다"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "문법 오류 %s:%u: 파일의 끝에 쓰레기 데이터가 더 있습니다"
@@ -2512,7 +2531,7 @@ msgstr "하위 프로세스 %s 프로세스가 오류 코드(%u)를 리턴했습
 msgid "Sub-process %s exited unexpectedly"
 msgstr "하위 프로세스 %s 프로세스가 예상치 못하게 끝났습니다"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "%s 파일을 열 수 없습니다"
@@ -2740,7 +2759,7 @@ msgstr "소스 리스트 %2$s의 %1$u번 줄이 잘못되었습니다 (타입)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "소스 목록 %3$s의 %2$u번 줄의 '%1$s' 타입을 알 수 없습니다"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2749,7 +2768,7 @@ msgstr ""
 "'%s'에 대해 즉시 설정을 할 수 없습니다. 자세한 설명은 man 5 apt.conf 페이지에"
 "서 APT::Immediate-Configure 항목을 보십시오. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2760,7 +2779,7 @@ msgstr ""
 "잠깐 제거해야 합니다. 이 패키지를 제거하는 건 좋지 않지만, 정말 지우려면 "
 "APT::Force-LoopBreak 옵션을 켜십시오."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2793,7 +2812,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "문제를 바로잡을 수 없습니다. 망가진 고정 패키지가 있습니다."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2845,12 +2864,12 @@ msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr ""
 "'%2$s' 드라이브에 '%1$s'(으)로 표기된 디스크를 넣고 Enter를 누르십시오."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "'%s' 패키지 시스템을 지원하지 않습니다"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "올바른 패키지 시스템 타입을 알아낼 수 없습니다"
 
@@ -2875,17 +2894,24 @@ msgstr "apt-get update를 실행하면 이 문제를 바로잡을 수도 있습
 msgid "The list of sources could not be read."
 msgstr "소스 목록을 읽을 수 없습니다."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "기본 설정 파일 %s에 잘못된 데이터가 있습니다. Package 헤더가 없습니다"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "핀 타입 %s이(가) 무엇인지 이해할 수 없습니다"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "핀에 우선순위(혹은 0)를 지정하지 않았습니다"
 
@@ -2974,7 +3000,7 @@ msgstr "소스 패키지 목록 %s의 정보를 읽을 수 없습니다"
 msgid "Collecting File Provides"
 msgstr "파일에서 제공하는 것을 모으는 중입니다"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "소스 캐시를 저장하는데 입출력 오류가 발생했습니다"
 
@@ -2987,8 +3013,8 @@ msgstr "이름 바꾸기가 실패했습니다. %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "MD5Sum이 맞지 않습니다"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "해시 합이 맞지 않습니다"
 
@@ -3008,20 +3034,19 @@ msgstr "Release 파일 %s 파일을 파싱할 수 없습니다"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "다음 키 ID의 공개키가 없습니다:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Release 파일이 만료되었습니다. %s 무시. (%s 이후로 무효)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "배포판 충돌: %s (예상값 %s, 실제값 %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3031,12 +3056,12 @@ msgstr ""
 "예전의 인덱스 파일을 사용합니다. GPG 오류: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "GPG 오류: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3045,7 +3070,7 @@ msgstr ""
 "%s 패키지의 파일을 찾을 수 없습니다. 수동으로 이 패키지를 고쳐야 할 수도 있습"
 "니다. (아키텍쳐가 빠졌기 때문입니다)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3054,14 +3079,14 @@ msgstr ""
 "%s 패키지의 파일을 찾을 수 없습니다. 수동으로 이 패키지를 고쳐야 할 수도 있습"
 "니다."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 "패키지 인덱스 파일이 손상되었습니다. %s 패키지에 Filename: 필드가 없습니다."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "크기가 맞지 않습니다"
 
@@ -3183,22 +3208,22 @@ msgstr "새 소스 리스트를 쓰는 중입니다\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "이 디스크의 소스 리스트 항목은 다음과 같습니다:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "레코드 %i개를 썼습니다.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "레코드 %i개를 파일 %i개가 빠진 상태로 썼습니다.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "레코드 %i개를 파일 %i개가 맞지 않은 상태로 썼습니다\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "레코드 %i개를 파일 %i개가 빠지고 %i개가 맞지 않은 상태로 썼습니다\n"
@@ -3218,6 +3243,17 @@ msgstr "다음의 인증 기록을 찾을 수 없습니다: %s"
 msgid "Hash mismatch for: %s"
 msgstr "다음의 해시가 다릅니다: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "%s에 키 모음을 설치하지 않았습니다."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3466,3 +3502,6 @@ msgstr "연결이 너무 빨리 끊어졌습니다"
 
 #~ msgid "Internal error, group '%s' has no installable pseudo package"
 #~ msgstr "내부 오류, '%s' 그룹에 설치할 수 있는 패키지가 없습니다."
+
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "Release 파일이 만료되었습니다. %s 무시. (%s 이후로 무효)"
index b66ca081c435759f0d70728249b66fb9f7b848ba..7e9e2a020a3857abdb444c2f0ef529c233ee8361 100644 (file)
--- a/po/ku.po
+++ b/po/ku.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt-ku\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2008-05-08 12:48+0200\n"
 "Last-Translator: Erdal Ronahi <erdal dot ronahi at gmail dot com>\n"
 "Language-Team: ku <ubuntu-l10n-kur@lists.ubuntu.com>\n"
@@ -160,7 +160,7 @@ msgstr "  Tabloya guhertoyan:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, fuzzy, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s ji bo %s %s komkirî di %s %s de\n"
@@ -743,7 +743,7 @@ msgstr ""
 msgid "%s is already the newest version.\n"
 msgstr "%s jixwe guhertoya nûtirîn e.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, fuzzy, c-format
 msgid "%s set to manually installed.\n"
 msgstr "lê %s dê were sazkirin"
@@ -855,8 +855,8 @@ msgstr ""
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Nikarî cihê vala li %s tesbît bike"
@@ -890,7 +890,7 @@ msgstr "Betal."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Dixwazî bidomînî [E/n]?"
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Anîna %s %s biserneket\n"
@@ -899,7 +899,7 @@ msgstr "Anîna %s %s biserneket\n"
 msgid "Some files failed to download"
 msgstr "Daxistina çend pelan biserneket"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr ""
 
@@ -935,31 +935,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr ""
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr ""
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -975,15 +975,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -993,7 +993,7 @@ msgid_plural ""
 msgstr[0] "Ev pakêtên NÛ dê werine sazkirin:"
 msgstr[1] "Ev pakêtên NÛ dê werine sazkirin:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1001,25 +1001,25 @@ msgid_plural ""
 msgstr[0] "Ev pakêtên NÛ dê werine sazkirin:"
 msgstr[1] "Ev pakêtên NÛ dê werine sazkirin:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr ""
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
 msgstr ""
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1027,80 +1027,80 @@ msgid ""
 "or been moved out of Incoming."
 msgstr ""
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Paketên şikestî"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr ""
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Paketên tên pêşniyaz kirin:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Paketên tên tawsiyê kirin:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Nikarî pakêta %s bibîne"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "lê %s dê were sazkirin"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Bilindkirin tê hesibandin..."
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Serneket"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Temam"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Pelrêça daxistinê nayê quflekirin"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1108,120 +1108,141 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Cihê vala li %s têre nake"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr ""
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Çavkanîna %s bîne\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Anîna çend arşîvan biserneket."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr ""
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
+#, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+
+#: cmdline/apt-get.cc:2951
 #, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 
-#: cmdline/apt-get.cc:2855
+#: cmdline/apt-get.cc:2957
 #, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr ""
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr ""
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Girêdan bi %s (%s) re pêk tê"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr ""
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 msgid ""
 "Usage: apt-get [options] command\n"
 "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
@@ -1267,7 +1288,7 @@ msgid ""
 "                       This APT has Super Cow Powers.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1563,8 +1584,8 @@ msgstr ""
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1596,7 +1617,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Lîsteya pakêtan tê xwendin"
 
@@ -1959,35 +1980,29 @@ msgstr ""
 msgid "Unable to connect to %s:%s:"
 msgstr "Nikare bi %s re girêdan pêk bîne %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "Sazkirin tê betalkirin."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr ""
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Di xebitandina gpgv de çewtiya nenas"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 #, fuzzy
 msgid "The following signatures were invalid:\n"
 msgstr "Ev pakêtên NÛ dê werine sazkirin:"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2144,57 +2159,57 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "Hilbijartina %s nehatiye dîtin"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr ""
@@ -2337,7 +2352,7 @@ msgstr ""
 msgid "Sub-process %s exited unexpectedly"
 msgstr ""
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Nikarî pelê %s veke"
@@ -2564,14 +2579,14 @@ msgstr ""
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2579,7 +2594,7 @@ msgid ""
 "you really want to do it, activate the APT::Force-LoopBreak option."
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2607,7 +2622,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr ""
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
 "used instead."
@@ -2655,12 +2670,12 @@ msgstr ""
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Dîsketê siwar bike û piştre bişkoja derbaskirinê bitikîne"
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr ""
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr ""
 
@@ -2685,17 +2700,24 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr ""
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr ""
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr ""
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr ""
 
@@ -2784,7 +2806,7 @@ msgstr ""
 msgid "Collecting File Provides"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr ""
 
@@ -2797,8 +2819,8 @@ msgstr "nav guherandin biserneket, %s (%s -> %s)"
 msgid "MD5Sum mismatch"
 msgstr "MD5Sum li hev nayên"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Hash Sum li hev nayên"
 
@@ -2818,20 +2840,19 @@ msgstr "Pakêt nehate dîtin %s"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr ""
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -2839,32 +2860,32 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
 "to manually fix this package. (due to missing arch)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
 "to manually fix this package."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Mezinahî li hev nayên"
 
@@ -2982,22 +3003,22 @@ msgstr ""
 msgid "Source list entries for this disc are:\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "%i tomar hatin nivîsîn.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3017,6 +3038,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "Hash Sum li hev nayên"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "Sazkirin tê betalkirin."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index 1a8f80ffff573c7dfbbf1845d79bd0f5a988a2df..bd71f728b8dece1c47ebb68b552171425fe6411c 100644 (file)
--- a/po/lt.po
+++ b/po/lt.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2008-08-02 01:47-0400\n"
 "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
@@ -158,7 +158,7 @@ msgstr "  Versijų lentelė:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr ""
@@ -805,7 +805,7 @@ msgstr "Pakartotinas %s įdiegimas neįmanomas, jo nepavyksta parsiųsti.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s ir taip jau yra naujausias.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s nustatytas kaip įdiegtas rankiniu būdu\n"
@@ -918,8 +918,8 @@ msgstr "Po šios operacijos bus naudojama %sB papildomos disko vietos.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Po šios operacijos bus atlaisvinta %sB disko vietos.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Nepavyko nustatyti %s laisvos vietos"
@@ -956,7 +956,7 @@ msgstr "Nutraukti."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Ar norite tęsti [T/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Nepavyko parsiųsti %s  %s\n"
@@ -965,7 +965,7 @@ msgstr "Nepavyko parsiųsti %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Nepavyko parsiųsti kai kurių failų"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Pavyko parsiųsti tik parsiuntimo režime"
 
@@ -1003,31 +1003,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr ""
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Atnaujinimo komandai argumentų nereikia"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1043,15 +1043,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Ši informacija gali padėti išspręsti šią situaciją:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1061,7 +1061,7 @@ msgid_plural ""
 msgstr[0] "Šie paketai buvo automatiškai įdiegti ir daugiau nebėra reikalingi:"
 msgstr[1] "Šie paketai buvo automatiškai įdiegti ir daugiau nebėra reikalingi:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1069,19 +1069,19 @@ msgid_plural ""
 msgstr[0] "Šie paketai buvo automatiškai įdiegti ir daugiau nebėra reikalingi:"
 msgstr[1] "Šie paketai buvo automatiškai įdiegti ir daugiau nebėra reikalingi:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Norėdami juos pašalinti, paleiskite „apt-get autoremove“"
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Jūs galite norėti paleisti 'apt-get -f install\" klaidų taisymui:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1089,7 +1089,7 @@ msgstr ""
 "Nepatenkintos priklausomybės. Pabandykite įvykdyti 'apt-get -f install' be "
 "nurodytų paketų (arba nurodykite išeitį)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1101,80 +1101,80 @@ msgstr ""
 "leidimą, kuomet kai kurie paketai dar nebuvo sukurti arba buvo\n"
 "pašalinti iš \"Incoming\" aplanko."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Sugadinti paketai"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Bus įdiegti šie papildomi paketai:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Siūlomi paketai:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Rekomenduojami paketai:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Nepavyko rasti paketo %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s nustatytas kaip įdiegtas rankiniu būdu\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Skaičiuojami atnaujinimai... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Nepavyko"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Įvykdyta"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Vidinė klaida, problemos sprendimas kažką sugadino"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Nepavyko užrakinti parsiuntimų aplanko"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Būtina nurodyti bent vieną paketą, kad parsiųsti jo išeities tekstą"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Nepavyko surasti išeities teksto paketo, skirto %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1182,78 +1182,93 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Praleidžiama jau parsiųsta byla „%s“\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Neturite pakankamai laisvos vietos %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Reikia parsiųsti %sB/%sB išeities archyvų.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Reikia parsiųsti %sB išeities archyvų.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Parsiunčiamas archyvas %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Nepavyko gauti kai kurių arhcyvų."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Jau išpakuotas archyvas %s praleidžiama\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Nepavyko įvykdyti išpakavimo komandos „%s“\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Patikrinkite, ar įdiegtas „dpkg-dev“ paketas.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Nepavyko įvykdyti paketo kompiliavimo komandos „%s“\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Klaida procese-palikuonyje"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr "Būtina nurodyti bent vieną paketą, kuriam norite įvykdyti builddeps"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Nepavyko gauti kūrimo-priklausomybių informacijos paketui %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"%s priklausomybė %s paketui negali būti patenkinama, nes paketas %s nerastas"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1261,46 +1276,54 @@ msgid ""
 msgstr ""
 "%s priklausomybė %s paketui negali būti patenkinama, nes paketas %s nerastas"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Nepavyko patenkinti %s priklausomybės %s paketui: Įdiegtas paketas %s yra "
+"per naujas"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "%s priklausomybė %s paketui negali būti patenkinama, nes nėra tinkamos "
 "versijos %s paketo"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Nepavyko patenkinti %s priklausomybės %s paketui: Įdiegtas paketas %s yra "
-"per naujas"
+"%s priklausomybė %s paketui negali būti patenkinama, nes paketas %s nerastas"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Nepavyko patenkinti %s priklausomybės %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr ""
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr ""
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Jungiamasi prie %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Palaikomi moduliai:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 msgid ""
 "Usage: apt-get [options] command\n"
 "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
@@ -1346,7 +1369,7 @@ msgid ""
 "                       This APT has Super Cow Powers.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1659,8 +1682,8 @@ msgstr ""
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1692,7 +1715,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Skaitomi paketų sąrašai"
 
@@ -2053,34 +2076,28 @@ msgstr ""
 msgid "Unable to connect to %s:%s:"
 msgstr "Nepavyko prisijungti prie %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "Diegimas nutraukiamas."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr ""
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Nežinoma klaida kviečiant gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Šie parašai buvo nevalidūs:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2236,57 +2253,57 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr ""
@@ -2429,7 +2446,7 @@ msgstr "Procesas %s grąžino klaidos kodą (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Procesas %s netikėtai išėjo"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Nepavyko atverti failo %s"
@@ -2656,14 +2673,14 @@ msgstr ""
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2671,7 +2688,7 @@ msgid ""
 "you really want to do it, activate the APT::Force-LoopBreak option."
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2699,7 +2716,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr ""
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2750,12 +2767,12 @@ msgstr ""
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Įdėkite diską „%s“ į įrenginį „%s“ ir paspauskite Enter."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr ""
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr ""
 
@@ -2782,17 +2799,24 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr "Nepavyko perskaityti šaltinių sąrašo."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr ""
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr ""
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr ""
 
@@ -2881,7 +2905,7 @@ msgstr ""
 msgid "Collecting File Provides"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr ""
 
@@ -2894,8 +2918,8 @@ msgstr ""
 msgid "MD5Sum mismatch"
 msgstr "MD5 sumos neatitikimas"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Maišos sumos nesutapimas"
 
@@ -2915,20 +2939,19 @@ msgstr "Nepavyko atverti DB failo %s: %s"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr ""
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -2936,32 +2959,32 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "GPG klaida: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
 "to manually fix this package. (due to missing arch)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
 "to manually fix this package."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Neatitinka dydžiai"
 
@@ -3079,22 +3102,22 @@ msgstr "Rašomas naujas šaltinių sąrašas\n"
 msgid "Source list entries for this disc are:\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3114,6 +3137,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "Maišos sumos nesutapimas"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "Diegimas nutraukiamas."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index ef14335899c43d5e2a2455dc56821c81b0ec7ec1..682aed942d7ee52f32c272af7c02cf73ef03e729 100644 (file)
--- a/po/mr.po
+++ b/po/mr.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2008-11-20 23:27+0530\n"
 "Last-Translator: Sampada <sampadanakhare@gmail.com>\n"
 "Language-Team: Marathi, janabhaaratii, C-DAC, Mumbai, India "
@@ -155,7 +155,7 @@ msgstr "आवृत्ती कोष्टक:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s हे %s करिता %s %s वर संग्रहित\n"
@@ -831,7 +831,7 @@ msgstr "%s चे पुनर्संस्थापन शक्य नाह
 msgid "%s is already the newest version.\n"
 msgstr "%s ही आधीच नविन आवृत्ती आहे.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s  स्वहस्ते संस्थापित करायचे आहे.\n"
@@ -943,8 +943,8 @@ msgstr "या क्रियेनंतर, %sB एवढी अधिक ड
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "या क्रियेनंतर, %sB डिस्क जागा मोकळी होईल.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "%s मध्ये रिकामी जागा सांगू शकत नाही"
@@ -981,7 +981,7 @@ msgstr "व्यत्यय/बंद करा."
 msgid "Do you want to continue [Y/n]? "
 msgstr "तुम्हाला पुढे जायचे आहे [Y/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "%s  %s आणणे असफल\n"
@@ -990,7 +990,7 @@ msgstr "%s  %s आणणे असफल\n"
 msgid "Some files failed to download"
 msgstr "काही संचिका डाऊनलोड करण्यास असमर्थ"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "डाऊनलोड संपूर्ण आणि डाऊनलोड मध्ये फक्त पद्धती"
 
@@ -1029,31 +1029,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "%s उगम पॅकेज यादी सुरू करता येत नाही"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "सुधारित आवृत्तीचा विधान आर्ग्युमेंटस घेऊ    शकत नाही."
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "आपण या गोष्टी काढून टाकता नये, ऑटोरिमूव्हर सुरू करता येत नाही"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1071,15 +1071,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "खालील माहिती परिस्थिती निवळण्यासाठी मदत ठरू शकेल:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "अंतर्गत त्रुटी, AutoRemoverने स्टफला तोडले"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1089,7 +1089,7 @@ msgid_plural ""
 msgstr[0] "खालील नवीन पॅकेजेस स्वयंचलितपणे संस्थापित झाली होती व आता आवश्यक नाहीत:"
 msgstr[1] "खालील नवीन पॅकेजेस स्वयंचलितपणे संस्थापित झाली होती व आता आवश्यक नाहीत:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1097,21 +1097,21 @@ msgid_plural ""
 msgstr[0] "खालील नवीन पॅकेजेस स्वयंचलितपणे संस्थापित झाली होती व आता आवश्यक नाहीत:"
 msgstr[1] "खालील नवीन पॅकेजेस स्वयंचलितपणे संस्थापित झाली होती व आता आवश्यक नाहीत:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "ती काढून टाकण्यासाठी 'apt-get autoremove' वापरा."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "अंतर्गत त्रुटी,ऑलअपग्रेडने स्टफला तोडले"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr ""
 "तुम्हाला कदाचित 'apt-get -f install'(एपीटी-गेट -एफ संस्थापन') प्रोग्राम चालू करावा "
 "लागेल'यात बदल करण्यासाठी:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1119,7 +1119,7 @@ msgstr ""
 "अनमेट डिपेंडन्सीज.एपीटी-गेट -एफ संस्थापन ('apt-get -f install') पॅकेजशिवाय प्रयत्न करा "
 "(किंवा पर्याय सांगा)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1131,80 +1131,80 @@ msgstr ""
 "विभागणी असणारी पण हवी असणारी, तयार केली नसलेली पॅकेजेस वापरत असाल \n"
 "किंवा ती येणाऱ्यांपैकी बाहेर हलविली असतील."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "तुटलेली पॅकेजेस"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "खालील अतिरिक्त पॅकेजेस संस्थापित होतील:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "सुचवलेली पॅकेजेस:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "शिफारस केलेली पॅकेजेस:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "%s पॅकेज सापडू शकले नाही"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s  स्वहस्ते संस्थापित करायचे आहे.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "पुढिल आवृत्तीची गणती करीत आहे..."
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "असमर्थ"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "झाले"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "अंतर्गत त्रुटी, अडचण निवारकाने स्टफला तोडले"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "डाऊनलोड डिरेक्टरी कुलूपबंद करण्यास असमर्थ"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "उगम शोधण्यासाठी किमान एक पॅकेज देणे/सांगणे गरजेचे आहे"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "%s उगम पॅकेज शोधणे शक्य नाही/शोधण्यास असमर्थ आहे"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1212,122 +1212,143 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "आधीच डाऊनलोड केलेली '%s' फाईल सोडून द्या\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "%s मध्ये पुरेशी जागा नाही"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "उगम अर्काईव्हज चा %sB/%sB घेण्याची गरज आहे.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "उगम अर्काईव्हजचा %sB घेण्याची गरज आहे.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "%s उगम घ्या\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "काही अर्काईव्हज आणण्यास असमर्थ."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "%s मध्ये आधीच उघडलेल्या उगमातील उघडलेल्याला सोडून द्या किंवा वगळा\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "'%s' आज्ञा सुट्या करण्यास असमर्थ.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "'dpkg-dev' पॅकेज संस्थापित केले आहे का ते पडताळून पहा.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "बांधणी करणाऱ्या आज्ञा '%s' अयशस्वी.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "चाईल्ड प्रक्रिया अयशस्वी"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr "बिल्डेपस् कशासाठी ते पडताळण्यासाठी किमान एक पॅकेज सांगणे गरजेचे आहे"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "%s साठी बांधणी डिपेंडन्सी माहिती मिळवण्यास असमर्थ"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s ला बांधणी डिपेंडन्स नाहीत.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr "%s पॅकेज न सापडल्याने %s साठी %s डिपेंडन्सी पूर्ण होऊ शकत नाही"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr "%s पॅकेज न सापडल्याने %s साठी %s डिपेंडन्सी पूर्ण होऊ शकत नाही"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr "%s अवलंबित्व %s साठी पूर्ण होण्यास असमर्थ: संस्थापित पॅकेज %s खूपच नवीन आहे"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "आवृतीची मागणी पूर्ण करण्यासाठी %s पॅकेजची आवृत्ती उपलब्ध नाही,त्यामुळे %s साठी %s "
 "डिपेंडन्सी पूर्ण होऊ शकत नाही"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr "%s अवलंबित्व %s साठी पूर्ण होण्यास असमर्थ: संस्थापित पॅकेज %s खूपच नवीन आहे"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
+msgstr "%s पॅकेज न सापडल्याने %s साठी %s डिपेंडन्सी पूर्ण होऊ शकत नाही"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "%s साठी %s डिपेंडन्सी पूर्ण होण्यास असमर्थ: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "%s साठी बांधणी-डिपेंडन्सीज पूर्ण होऊ शकत नाही."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "बांधणी-डिपेंडन्सीज क्रिया पूर्ण करण्यास असमर्थ "
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "%s (%s) ला जोडत आहे"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "प्रोग्राम गटाला तांत्रिक मदत दिली:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1414,7 +1435,7 @@ msgstr ""
 " apt.conf(5)  पुस्तिका पाने पहा.\n"
 "         ह्या APT ला सुपर काऊ पॉवर्स आहेत\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1724,8 +1745,8 @@ msgstr "File %s/%s, %s पॅकेज मधल्या एका वर प
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1757,7 +1778,7 @@ msgstr "info आणि temp संचिका सारख्याच फा
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "पॅकेज याद्या वाचत आहोत"
 
@@ -2124,36 +2145,30 @@ msgstr "%s:%s' (%i) रिझॉल्व्ह होत असताना क
 msgid "Unable to connect to %s:%s:"
 msgstr "%s %s ला जोडण्यास असमर्थ:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "संस्थापन खंडित करत आहे."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr "अंतर्गत त्रुटी: चांगली सही, पण की ठसे सांगू शकत नाही?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "किमान एक अवैध सही सापडली."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "सहीची खात्री करण्यासाठी '%s' कार्यान्वित करू शकत नाही (gpgv संस्थापित केले आहे का?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "gpgv कार्यान्वित होत असताना अपरिचित त्रुटी"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "खालील सह्या अवैध आहेत:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2308,57 +2323,57 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "%s निवडक भाग सापडत नाही"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "संक्षिप्तरुपाचा माहित नसलेला प्रकार: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "%s संरचना फाईल उघडत आहे"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "रचनेच्या नियमांचा दोष %s:%u: ब्लॉक नावाशिवाय सुरू होतो."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "रचनेच्या नियमांचा दोष : %s:%u: मालफॉर्मड् टॅग"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "रचनेच्या नियमांचा दोष %s:%u: मुल्यांच्या नंतर अधिक जंक"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "रचनेच्या नियमांचा दोष %s:%u: दिशादर्शक फक्त उच्च पातळीवर केले जाऊ शकतात"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "रचनेच्या नियमांचा दोष %s:%u: खूपच एकात एक इनक्लूडस्"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "रचनेच्या नियमांचा दोष %s:%u: ह्या पासून  समाविष्ट "
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "नियम रचनेचा दोष %s:%u: '%s' दिशादर्शक असहाय्यकारी"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "रचनेच्या नियमांचा दोष %s:%u: दिशादर्शक फक्त उच्च पातळीवर केले जाऊ शकतात"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "नियम रचनेचा दोष %s:%u: फाईलच्या अंती अधिक जंक"
@@ -2501,7 +2516,7 @@ msgstr "%s उपक्रियेने (%u) त्रुटी कोड द
 msgid "Sub-process %s exited unexpectedly"
 msgstr "%s उपक्रिया अचानकपणे बाहेर पडली"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "%s फाईल उघडता येत नाही"
@@ -2728,14 +2743,14 @@ msgstr "स्त्रोत सुची %s (प्रकार) मध्य
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "%s स्त्रोत सुचीमध्ये %u रेषेवर '%s' प्रकार माहित नाही "
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2746,7 +2761,7 @@ msgstr ""
 "गुंतागुंतीमुळे/Pre-Depends पूर्व अवलंबित आवर्तन.हे नेहमीच वाईट असते, पण जर तुम्हाला ते खरोखर "
 "करावयाचे असेल तर,APT::Force-LoopBreak पर्याय कार्यान्वित करा."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2777,7 +2792,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "अडचणी दूर करण्यास असमर्थ, तुम्ही तुटलेले पॅकेज घेतलेले आहे."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2828,12 +2843,12 @@ msgstr "%s कार्यपध्दती योग्य रीतीने
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "कृपया '%s' लेबल असलेली डिस्क '%s' या ड्राइव्हमध्ये ठेवा आणि एन्टर कळ दाबा."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "'%s' पॅकेजींग प्रणाली सहाय्यकारी नाही"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "योग्य असा पॅकेजिंग प्रणाली प्रकार निश्चित करण्यास असमर्थ "
 
@@ -2858,17 +2873,24 @@ msgstr "तुम्ही ह्या समस्यांचे निवा
 msgid "The list of sources could not be read."
 msgstr "उगमांच्या याद्या वाचता येणार नाहीत."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "पसंतीच्या संचिकेत अवैध माहितीसंच, पॅकेजला शीर्षक नाही "
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "%s पिनचा प्रकार समजलेला नाही"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "पिन करिता प्राधान्य/अग्रक्रम (किंवा शून्य)निर्देशीत केलेला नाही"
 
@@ -2962,7 +2984,7 @@ msgstr "%s उगम पॅकेज यादी सुरू करता य
 msgid "Collecting File Provides"
 msgstr "तरतूद/पुरवलेल्या संचिका संग्रहित करीत आहे"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "IO त्रुटी उगम निवडक संचयस्थानात संग्रहित होत आहे"
 
@@ -2975,8 +2997,8 @@ msgstr "पुनर्नामांकन अयशस्वी, %s (%s -> %s
 msgid "MD5Sum mismatch"
 msgstr "एमडी५ बेरीज/MD5Sum जुळत नाही"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "हॅश बेरीज जुळत नाही"
 
@@ -2996,20 +3018,19 @@ msgstr "%s (1) पॅकेज फाईल पार्स करण्या
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "पुढील कळ ओळखचिन्हांसाठी सार्वजनिक कळ उपलब्ध नाही:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3017,12 +3038,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3031,7 +3052,7 @@ msgstr ""
 "मी %s पॅकेजकरीता संचिका शोधण्यास  समर्थ नव्हतो. याचा अर्थ असाकी तुम्हाला हे पॅकेज स्वहस्ते "
 "स्थिर/निश्चित करण्याची गरज आहे(हरवलेल्या आर्चमुळे) "
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3040,7 +3061,7 @@ msgstr ""
 "मी %s पॅकेजकरीता संचिका शोधण्यास  समर्थ नव्हतो. याचा अर्थ असाकी तुम्हालाहे पॅकेज स्वहस्ते "
 "स्थिर/निश्चित करण्याची गरज आहे."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3048,7 +3069,7 @@ msgstr ""
 "पॅकेज यादीची/सुचीची संचिका दूषित/खराब झालेली आहे. संचिका नाव नाही: पॅकेजकरीता क्षेत्र/"
 "ठिकाण %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "आकार जुळतनाही"
 
@@ -3170,22 +3191,22 @@ msgstr "नविन स्त्रोत सूची लिहित आह
 msgid "Source list entries for this disc are:\n"
 msgstr "ह्या डिस्क/चकती करिता स्त्रोत सूचीच्या प्रवेशिका आहेत: \n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "%i माहितीसंच लिहिले.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "%i गहाळ संचिकाबरोबर %i माहिती संच  लिहिले.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "%i विजोड संचिकांबरोबर %i माहिती संच लिहिले\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "%i गहाळ संचिकाबरोबर आणि %i विजोड संचिकाबरोबर %i माहिती संच लिहिले\n"
@@ -3205,6 +3226,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "हॅश बेरीज जुळत नाही"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "संस्थापन खंडित करत आहे."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index 4ead391432c9b42225220b88044f4a15ed2140b2..fb812119e51885cf13754b0788227348c0b37111 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-09-01 21:10+0200\n"
 "Last-Translator: Hans Fredrik Nordhaug <hans@nordhaug.priv.no>\n"
 "Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
@@ -160,7 +160,7 @@ msgstr "  Versjonstabell:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s for %s kompilert på %s %s\n"
@@ -840,7 +840,7 @@ msgstr "Det er ikke mulig å installere %s på nytt - den kan ikke nedlastes.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s er allerede nyeste versjon.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s satt til manuell installasjon.\n"
@@ -954,8 +954,8 @@ msgstr "Etter denne operasjonen vil %sB ekstra diskplass bli brukt.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Etter denne operasjonen vil %sB diskplass bli ledig.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Klarte ikke bestemme ledig plass i %s"
@@ -993,7 +993,7 @@ msgstr "Avbryter."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Vil du fortsette [Y/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Klarte ikke å skaffe %s  %s\n"
@@ -1002,7 +1002,7 @@ msgstr "Klarte ikke å skaffe %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Klarte ikke laste ned alle filene"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Nedlasting fullført med innstillinga «bare nedlasting»"
 
@@ -1044,31 +1044,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Merk: Dette er gjort automatisk og med hensikt av dpkg."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Ignorer utilgjengelig målutgave «%s» av pakke «%s»"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Velger «%s» som kildepakke istedenfor «%s»\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Ignorer utilgjengelig versjon «%s» av pakke «%s»"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Oppdaterings-kommandoen tar ingen argumenter"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "Vi skal ikke slette ting, kan ikke starte auto-fjerner (AutoRemover)"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1086,15 +1086,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Følgende informasjon kan være til hjelp med å løse problemet:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Intern feil, autofjerneren (AutoRemover) ødela noe"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1105,7 +1105,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Følgende pakker ble automatisk installert og er ikke lenger påkrevet:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1113,19 +1113,19 @@ msgid_plural ""
 msgstr[0] "%lu pakke ble automatisk installert og er ikke lenger påkrevet.\n"
 msgstr[1] "%lu pakker ble automatisk installert og er ikke lenger påkrevet.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Bruk «apt-get autoremove» for å fjerne dem."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Intern feil - «AllUpgrade» ødela noe"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Du vil kanskje utføre «apt-get -f install» for å rette på disse:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1133,7 +1133,7 @@ msgstr ""
 "Uinnfridde avhengighetsforhold. Prøv «apt-get -f install» uten pakker (eller "
 "angi en løsning)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1145,73 +1145,73 @@ msgstr ""
 "at visse kjernepakker ennå ikke er laget eller flyttet ut av «Incoming» for\n"
 "distribusjonen."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Ødelagte pakker"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Følgende ekstra pakker vil bli installert."
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Foreslåtte pakker:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Anbefalte pakker"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Klarte ikke å finne pakken %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s satt til automatisk installasjon.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Beregner oppgradering... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Mislyktes"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Utført"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Intern feil, problemløser ødela noe"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Klarer ikke å låse nedlastingsmappa"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Du må angi minst en pakke du vil ha kildekoden til"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Klarer ikke å finne en kildekodepakke for %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1220,7 +1220,7 @@ msgstr ""
 "MERK: «%s»-pakker blir vedlikeholdt i versjonskontrollsystemet «%s» på:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1231,124 +1231,145 @@ msgstr ""
 "bzr get %s\n"
 "for å hente siste (muligens ikke utgitte) oppdateringer for pakken.\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Hopper over allerede nedlastet fil «%s»\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Du har ikke nok ledig plass i %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Trenger å skaffe %sB av %sB fra kildekodearkivet.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Trenger å skaffe %sB fra kildekodearkivet.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Skaffer kildekode %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Klarte ikke å skaffe alle arkivene."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Omgår utpakking av allerede utpakket kilde i %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Utpakkingskommandoen «%s» mislyktes.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Sjekk om pakken «dpkg-dev» er installert.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Byggekommandoen «%s» mislyktes.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Barneprosessen mislyktes"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr "Du må angi minst en pakke du vil sjekke «builddeps» for"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Klarer ikke å skaffe informasjon om bygge-avhengighetene for %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s har ingen avhengigheter.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr "Kravet %s for %s kan ikke oppfylles fordi pakken %s ikke finnes"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr "Kravet %s for %s kan ikke oppfylles fordi pakken %s ikke finnes"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Klarte ikke å tilfredsstille %s avhengighet for %s: den installerte pakken "
+"%s er for ny"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "Kravet %s for %s kan ikke oppfylles fordi det ikke finnes noen tilgjengelige "
 "versjoner av pakken %s som oppfyller versjonskravene"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr ""
-"Klarte ikke å tilfredsstille %s avhengighet for %s: den installerte pakken "
-"%s er for ny"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
+msgstr "Kravet %s for %s kan ikke oppfylles fordi pakken %s ikke finnes"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Klarte ikke å tilfredsstille %s avhengighet for %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Klarte ikke å tilfredstille bygg-avhengighetene for %s."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Klarte ikke å behandle forutsetningene for bygging"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Kobler til %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Støttede moduler:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1437,7 +1458,7 @@ msgstr ""
 "for mer informasjon og flere valg.\n"
 "                       Denne APT har kraften til en Superku.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1750,8 +1771,8 @@ msgstr "Fila %s/%s skriver over den tilsvarende fila i pakken %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1784,7 +1805,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Leser pakkelister"
 
@@ -2156,35 +2177,29 @@ msgstr "Noe galt skjedde ved oppslag av «%s:%s» (%i - %s)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Klarte ikke koble til %s:%s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "Ingen nøkkelring installert i %s."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr "Intern feil: God signatur, men kunne bestemme nøkkelfingeravtrykk?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Minst en ugyldig signatur ble funnet."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Klarte ikke kjøre «gpgv» for å verifisere signaturen (er gpgv installert?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Ukjent feil ved kjøring av gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "De følgende signaturene var ugyldige:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2345,57 +2360,57 @@ msgstr "%lis"
 msgid "Selection %s not found"
 msgstr "Fant ikke utvalget %s"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Ukjent typeforkortelse: «%c»"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Åpner oppsettsfila %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Syntaksfeil %s:%u: Blokka starter uten navn."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Syntaksfeil %s:%u: Feil på taggen"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Syntaksfeil %s:%u: Ugyldige angivelser etter verdien"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "Syntaksfeil %s:%u: Direktivene kan bare ligge i det øverste nivået"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Syntaksfeil %s:%u: For mange nøstede inkluderte filer"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Syntaksfeil %s:%u: Inkludert herfra"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Syntaksfeil %s:%u: Direktivet «%s» er ikke støttet"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "Syntaksfeil %s:%u: clear-direktivet krever et valgtre som argument"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Syntaksfeil %s:%u: Ugyldige angivelser på slutten av fila"
@@ -2538,7 +2553,7 @@ msgstr "Underprosessen %s ga en feilkode (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Underprosessen %s avsluttet uventet"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Klarte ikke åpne fila %s"
@@ -2765,7 +2780,7 @@ msgstr "Feil på %u i kildelista %s (type)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Typen «%s» er ukjent i linje %u i kildelista %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2774,7 +2789,7 @@ msgstr ""
 "Klarte ikke gjennomføre umiddelbar konfigurasjon av «%s». Se man 5 apt.conf "
 "under APT::Immediate-Configure for detaljer. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2785,7 +2800,7 @@ msgstr ""
 "%s pga. en konflikt/forutsettelses-løkke. Dette er ofte stygt, men hvis du "
 "virkelig vil det, så bruk innstillingen APT::Force-LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2818,7 +2833,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Klarer ikke å rette problemene, noen ødelagte pakker er holdt tilbake."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2869,12 +2884,12 @@ msgstr "Metoden %s startet ikke korrekt"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Sett inn disken merket «%s» i lagringsenheten «%s» og trykk Enter."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Pakkesystemet «%s» støttes ikke"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Klarer ikke bestemme en passende pakkesystemtype"
 
@@ -2901,17 +2916,24 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr "Kan ikke lese kildlista."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Ugyldig oppslag i foretrekksfila %s, manglende pakkehode"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Forsto ikke spikring av typen %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Ingen prioritet (eller null) spesifisert for pin"
 
@@ -3000,7 +3022,7 @@ msgstr "Klarte ikke finne informasjon om %s - lista over kildekodepakker"
 msgid "Collecting File Provides"
 msgstr "Samler inn filtilbud"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "IO-feil ved lagring av kildekode-lager"
 
@@ -3013,8 +3035,8 @@ msgstr "klarte ikke å endre navnet, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "Feil MD5sum"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Hashsummen stemmer ikke"
 
@@ -3035,20 +3057,19 @@ msgid "There is no public key available for the following key IDs:\n"
 msgstr ""
 "Det er ingen offentlig nøkkel tilgjengelig for de følgende nøkkel-ID-ene:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Utgavefil har utgått, ignorerer %s (ugyldg siden %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Konflikt mellom distribusjoner: %s (forventet %s men fant %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3058,12 +3079,12 @@ msgstr ""
 "forrige indeksfilen vil bli brukt. GPG-feil: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "GPG-feil: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3072,7 +3093,7 @@ msgstr ""
 "Klarte ikke å finne en fil for pakken %s. Det kan bety at du må ordne pakken "
 "selv (fordi arkitekturen mangler)."
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3081,13 +3102,13 @@ msgstr ""
 "Klarte ikke å finne en fil for pakken %s. Det kan bety at du må ordne denne "
 "pakken selv."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr "Oversiktsfilene er ødelagte. Feltet «Filename:» mangler for pakken %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Feil størrelse"
 
@@ -3211,22 +3232,22 @@ msgstr "Skriver ny kildeliste\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Kildelisteoppføringer for denne CD-en er:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Skrev %i poster.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Skrev %i poster med %i manglende filer.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Skrev %i poster med %i feile filer.\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "Skrev %i poster med %i manglende filer og %i feile filer.\n"
@@ -3246,6 +3267,17 @@ msgstr "Klarte ikke finne autentiseringsoppføring for: %s"
 msgid "Hash mismatch for: %s"
 msgstr "Hashsummen stemmer ikke for: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "Ingen nøkkelring installert i %s."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3500,6 +3532,9 @@ msgstr "Forbindelsen ble uventet stengt"
 #~ msgid "Internal error, group '%s' has no installable pseudo package"
 #~ msgstr "Intern feil, gruppe «%s» har ingen installerbar pseudo-pakke"
 
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "Utgavefil har utgått, ignorerer %s (ugyldg siden %s)"
+
 #~ msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
 #~ msgstr "E: Argumentliste fra Acquire::gpgv::Options for lang. Avbryter."
 
index 0f6e4dff85610e90774d74febb08d591274f63ce..2b0dc63a0c373c4ff3f54765a41b961bbeacdc0d 100644 (file)
--- a/po/ne.po
+++ b/po/ne.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_po\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2006-06-12 14:35+0545\n"
 "Last-Translator: Shiva Pokharel <pokharelshiva@hotmail.com>\n"
 "Language-Team: Nepali <info@mpp.org.np>\n"
@@ -158,7 +158,7 @@ msgstr "  संस्करण तालिका:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, fuzzy, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s को लागि %s %s, %s %s मा कम्पाएल गरिएको छ\n"
@@ -834,7 +834,7 @@ msgstr " %s को पुन: स्थापना सम्भव छैन, 
 msgid "%s is already the newest version.\n"
 msgstr "%s पहिल्यै नयाँ संस्करण हो ।\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, fuzzy, c-format
 msgid "%s set to manually installed.\n"
 msgstr "तर %s स्थापना हुनुपर्यो"
@@ -946,8 +946,8 @@ msgstr "अनप्याक गरिसके पछि थप डिस्
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "%sB अनप्याक गरिसके पछि डिस्क खाली ठाउँ खाली हुनेछ ।\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr " %s मा खाली ठाऊँ निर्धारण गर्न सकिएन"
@@ -984,7 +984,7 @@ msgstr "परित्याग गर्नुहोस् ।"
 msgid "Do you want to continue [Y/n]? "
 msgstr "के तपाईँ निरन्तरता दिन चाहनुहुन्छ [Y/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "%s  %s तान्न असफल भयो\n"
@@ -993,7 +993,7 @@ msgstr "%s  %s तान्न असफल भयो\n"
 msgid "Some files failed to download"
 msgstr "केही फाइलहरू डाउनलोड गर्न असफल भयो"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "डाउनलोड समाप्त भयो र डाउनलोडमा मोड मात्रै छ"
 
@@ -1031,31 +1031,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "स्रोत प्याकेज सूची %s स्थिर गर्न सकिएन "
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "अद्यावधिक आदेशले कुनै तर्कहरू लिदैन"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1071,16 +1071,16 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "निम्न सूचनाले अवस्थालाई हल गर्न मद्दत गर्नेछ: "
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 #, fuzzy
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "आन्तरिक त्रुटि,समस्या हलकर्ताले उत्तम गुण भाँच्यो "
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1090,7 +1090,7 @@ msgid_plural ""
 msgstr[0] "निम्न नयाँ प्याकेजहरू स्थापना हुनेछन्:"
 msgstr[1] "निम्न नयाँ प्याकेजहरू स्थापना हुनेछन्:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1098,19 +1098,19 @@ msgid_plural ""
 msgstr[0] "निम्न नयाँ प्याकेजहरू स्थापना हुनेछन्:"
 msgstr[1] "निम्न नयाँ प्याकेजहरू स्थापना हुनेछन्:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr ""
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "आन्तरिक त्रुटि,सबै स्तरवृद्धिले उत्तम गुण नष्ट गर्दछ"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "तपाईँ यसलाई सुधार गर्न 'apt-get -f install' चलाउन चाहनुहुन्छ:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1118,7 +1118,7 @@ msgstr ""
 "नभेटिएका निर्भरताहरू । प्याकेजहरू बिना 'apt-get -f install' प्रयास गर्नुहोस् ( वा "
 "समाधान निर्दिष्ट गर्नुहोस्) ।"
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1131,80 +1131,80 @@ msgstr ""
 " वितरण अहिले सम्म सिर्जना\n"
 " भएको छैन वा आवगमन विनानै सर्यो ।"
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "भाँचिएका प्याकेजहरू"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "निम्न अतिरिक्त प्याकेजहरू स्थापना हुनेछन्:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "सुझाव दिएका प्याकेजहरू:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "सिफारिस गरिएका प्याकेजहरू:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "प्याकेज फेला पार्न सकिएन  %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "तर %s स्थापना हुनुपर्यो"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "स्तर वृद्धि गणना गरिदैछ..."
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "असफल भयो"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "काम भयो"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "आन्तरिक त्रुटि,समस्या हलकर्ताले उत्तम गुण भाँच्यो "
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "डाउनलोड डाइरेक्ट्री ताल्चा मार्न असक्षम"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "को लागि स्रोत तान्न कम्तिमा एउटा प्याकेज निर्दिष्ट गर्नुपर्छ"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "%s को लागि स्रोत प्याकेज फेला पार्न असफल भयो"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1212,122 +1212,143 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "पहिल्यै डाउनलोड भएका फाइलहरु फड्काइदैछ '%s'\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "तपाईँ संग %s मा पर्याप्त खाली ठाऊँ छैन"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "स्रोत संग्रहहरुको %sB/%sB प्राप्त गर्न आवश्यक छ ।\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "स्रोत संग्रहहरुको %sB प्राप्त गर्न आवश्यक छ ।\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "स्रोत फड्काउनुहोस् %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "केही संग्रह फड्काउन असफल भयो ।"
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr " %s मा पहिल्यै अनप्याक गरिएका स्रोतको अनप्याक फड्काइदैछ\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "अनप्याक आदेश '%s' असफल भयो ।\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "जाँच्नुहोस् यदि 'dpkg-dev' प्याकेज स्थापना भयो ।\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "निर्माण आदेश '%s' असफल भयो ।\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "शाखा प्रक्रिया असफल भयो"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr "को लागि builddeps जाँच्न कम्तिमा एउटा प्याकेज निर्दष्ट गर्नुपर्छ"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "%s को लागि निर्माण-निर्भरता सूचना प्राप्त गर्न असक्षम भयो"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s कुनै निर्माणमा आधारित हुदैन ।\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr "%s को लागि %s निर्भरता सन्तुष्ट हुन सकेन किनभने प्याकेज %s फेला पार्न सकिएन"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr "%s को लागि %s निर्भरता सन्तुष्ट हुन सकेन किनभने प्याकेज %s फेला पार्न सकिएन"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr "%s को लागि %s निर्भरता सन्तुष्ट पार्न असफल भयो: स्थापित प्याकेज %s अति नयाँ छ"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "%sको लागि %s निर्भरता सन्तुष्ट हुन सकेन किन भने प्याकेज %s को कुनै उपलब्ध संस्करणले संस्करण "
 "आवश्यकताहरुलाई सन्तुष्ट पार्न सकेन "
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr "%s को लागि %s निर्भरता सन्तुष्ट पार्न असफल भयो: स्थापित प्याकेज %s अति नयाँ छ"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
+msgstr "%s को लागि %s निर्भरता सन्तुष्ट हुन सकेन किनभने प्याकेज %s फेला पार्न सकिएन"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "%s को लागि %s निर्भरता सन्तुष्ट गर्न असफल: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "%s को लागि निर्माण निर्भरताहरू सन्तुष्ट गर्न सकिएन । "
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "निर्माण निर्भरताहरू प्रक्रिया गर्न असफल"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "%s (%s) मा जडान गरिदैछ"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "समर्थित मोड्युलहरू:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1412,7 +1433,7 @@ msgstr ""
 "pages हेर्नुहोस् ।\n"
 "                       APT संग सुपर काउ शक्तिहरू छ ।\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1722,8 +1743,8 @@ msgstr "फाइल %s/%s ले प्याकेज %s मा एउटा 
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1755,7 +1776,7 @@ msgstr "सूचना र टेम्प डाइरेक्ट्रीह
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "प्याकेज सूचिहरू पढिदैछ"
 
@@ -2122,35 +2143,29 @@ msgstr " '%s:%s' (%i) हल गर्दा केही दुष्ट घट
 msgid "Unable to connect to %s:%s:"
 msgstr "%s %s मा जडान गर्न असफल भयो:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "स्थापना परित्याग गरिदैछ ।"
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr "आन्तरिक त्रुटि: असल हस्ताक्षर, तर कुञ्जी औठाछाप निर्धारण गर्न सकिएन?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "कम्तिमा एउटा अवैध हस्ताक्षर विरोध भयो ।"
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr "हस्ताक्षर रूजू गर्न '%s' कार्यन्वयन गर्न सकिएन (के gpgv स्थापना भयो?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "gpgv कार्यन्वयन गर्दा अज्ञात त्रुटि"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "निम्न हस्ताक्षरहरू अवैध छन्:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2306,57 +2321,57 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "चयन %s फेला पार्न सकिएन"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "नचिनिएको टाइप संक्षिप्त रुप: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "कनफिगरेसन फाइल खोलिदैछ %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "वाक्य संरचना त्रुटि %s:%u: बन्द कुनै नाम बिना सुरू हुन्छ ।"
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "वाक्य संरचना त्रुटि %s:%u: वैरुप गरिएको ट्याग"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "वाक्य संरचना त्रुटि %s:%u: मान पछाडि अतिरिक्त जंक"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "वाक्य संरचना त्रुटि %s:%u: निर्देशनहरू माथिल्लो तहबाट मात्र हुन्छ"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "वाक्य संरचना त्रुटि %s:%u: अति धेरै नेस्टेड समावेश गर्दछ"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "वाक्य संरचना त्रुटि %s:%u: यहाँ बाट समावेश गरेको"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "वाक्य संरचना त्रुटि %s:%u: समर्थन नभएको डाइरेक्टिभ '%s'"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "वाक्य संरचना त्रुटि %s:%u: निर्देशनहरू माथिल्लो तहबाट मात्र हुन्छ"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "वाक्य संरचना त्रुटि %s:%u:फाइलको अन्त्यमा अतिरिक्त जंक"
@@ -2499,7 +2514,7 @@ msgstr "सहायक प्रक्रिया %s ले एउटा त
 msgid "Sub-process %s exited unexpectedly"
 msgstr "सहायक प्रक्रिया %s अनपेक्षित बन्द भयो"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "फाइल %s खोल्न सकिएन"
@@ -2727,14 +2742,14 @@ msgstr "वैरुप्य लाइन %u स्रोत सूचिमा
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "स्रोत सूची %s भित्र %u लाइनमा टाइप '%s' ज्ञात छैन"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2745,7 +2760,7 @@ msgstr ""
 "हटाउनु पर्नेछ । यो प्राय नराम्रो हो, तर यदि तपाईँ यो साँच्चै गर्न चाहनुहुन्छ भने, APT::"
 "Force-LoopBreak विकल्प सक्रिय गर्नुहोस् ।"
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2775,7 +2790,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "समस्याहरू सुधार्न असक्षम भयो, तपाईँले प्याकेजहरु भाँच्नुभयो ।"
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2826,12 +2841,12 @@ msgstr "विधि %s सही रुपले सुरू हुन सक
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "कृपया डिस्क लेबुल: '%s' ड्राइभ '%s'मा घुसउनुहोस् र इन्टर थिच्नुहोस् । "
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "प्याकिङ्ग प्रणाली '%s' समर्थित छैन"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "उपयुक्त प्याकिङ्ग प्रणाली प्रकार निर्धारन गर्न असक्षम भयो"
 
@@ -2856,17 +2871,24 @@ msgstr "यो समस्याहरू सुधार्न तपाईँ
 msgid "The list of sources could not be read."
 msgstr "स्रोतहरुको सूचि पढ्न सकिएन ।"
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "प्राथमिकता फाइलमा अवैध रेकर्ड, कुनै प्याकेज हेडर छैन"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "पिन टाइप %s बुझ्न सकिएन "
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "पिनको लागि कुनै प्राथमिकता (वा शून्य) निर्दिष्ट छैन"
 
@@ -2956,7 +2978,7 @@ msgstr "स्रोत प्याकेज सूची %s स्थिर 
 msgid "Collecting File Provides"
 msgstr "फाइल उपलब्धताहरू संकलन गरिदैछ"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "स्रोत क्यास बचत गर्दा IO त्रुटि"
 
@@ -2969,8 +2991,8 @@ msgstr "पुन:नामकरण असफल गरियो, %s (%s -> %s)
 msgid "MD5Sum mismatch"
 msgstr "MD5Sum मेल भएन"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 #, fuzzy
 msgid "Hash Sum mismatch"
 msgstr "MD5Sum मेल भएन"
@@ -2991,20 +3013,19 @@ msgstr "प्याकेज फाइल पद वर्णन गर्न 
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "निम्न कुञ्जी IDs को लागि कुनै सार्वजनिक कुञ्जी उपलब्ध छैन:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3012,12 +3033,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3026,7 +3047,7 @@ msgstr ""
 "%s प्याकेजको लागि मैले फाइल स्थित गर्न सकिन । यसको मतलब तपाईँले म्यानुल्ली यो प्याकेज "
 "निश्चित गर्नुहोस् । (arch हराएरहेको कारणले) "
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3035,13 +3056,13 @@ msgstr ""
 "%s प्याकेजको लागि मैले फाइल स्थित गर्न सकिन । यसको मतलब तपाईँले म्यानुल्ली यो प्याकेज "
 "निश्चित गर्नुहोस् ।"
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr "प्याकेज अनुक्रमणिका फाइलहरू दूषित भए । प्याकेज %s को लागि कुनै फाइलनाम: फाँट छैन ।"
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "साइज मेल खाएन"
 
@@ -3162,22 +3183,22 @@ msgstr "नयाँ स्रोत सूचि लेखिदैछ\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "यो डिस्कको लागि स्रोत सूचि प्रविष्टिहरू:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "%i रेकर्डहरू लेखियो ।\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "हराइरहेको फाइल %i हरू संगै %i रेकर्डहरू लेख्नुहोस् ।\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "मेल नखाएका फाइल %i हरू संगै %i रेकर्डहरू लेख्नुहोस् ।\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "हराइरहेको फाइल %i हरू र मेल नखाएका फाइल %i हरू संगै %i रेकर्डहरू लेख्नुहोस् ।\n"
@@ -3197,6 +3218,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "MD5Sum मेल भएन"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "स्थापना परित्याग गरिदैछ ।"
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index acc2d7e6389ae1fc0f93632c6eebe486b0399f77..c6b254c5ddabec5fa00c4d5f15511274ae706c1d 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: nl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-03-16 06:52+0100\n"
 "Last-Translator: Frans Pop <elendil@planet.nl>\n"
 "Language-Team: Dutch <debian-l10n-dutch@lists.debian.org>\n"
@@ -159,7 +159,7 @@ msgstr "  Versietabel:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s voor %s gecompileerd op %s %s\n"
@@ -845,7 +845,7 @@ msgstr ""
 msgid "%s is already the newest version.\n"
 msgstr "%s is reeds de nieuwste versie.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s is ingesteld voor handmatige installatie.\n"
@@ -960,8 +960,8 @@ msgstr "Door deze operatie zal er %sB extra schijfruimte gebruikt worden.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Door deze operatie zal er %sB schijfruimte vrijkomen.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Kon de hoeveelheid vrije schijfruimte op %s niet bepalen"
@@ -998,7 +998,7 @@ msgstr "Afbreken."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Wilt u doorgaan [J/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Ophalen van %s is mislukt  %s\n"
@@ -1007,7 +1007,7 @@ msgstr "Ophalen van %s is mislukt  %s\n"
 msgid "Some files failed to download"
 msgstr "Ophalen van sommige bestanden is mislukt"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Ophalen klaar en alleen-ophalen-modus staat aan"
 
@@ -1045,31 +1045,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Negeer niet beschikbare doelrelease '%s' van pakket '%s'"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "'%s' wordt genomen als bronpakket in plaats van '%s'\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Negeer niet beschikbare versie '%s' van pakket '%s'"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "De opdracht 'update' aanvaard geen argumenten"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "We mogen geen dingen verwijderen, kan AutoRemover niet starten"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1087,15 +1087,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "De volgende informatie helpt u mogelijk verder:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Interne fout, AutoRemover heeft dingen stukgemaakt"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1109,7 +1109,7 @@ msgstr[1] ""
 "De volgende pakketten zijn automatisch geïnstalleerd en zijn niet langer "
 "nodig:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1119,21 +1119,21 @@ msgstr[0] ""
 msgstr[1] ""
 "%lu pakketten zijn automatisch geïnstalleerd en zijn niet langer nodig.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "U kunt deze verwijderen via 'apt-get autoremove'."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Interne fout, AllUpgrade heeft dingen stukgemaakt"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr ""
 "U wilt waarschijnlijk 'apt-get -f install' uitvoeren om volgende op te "
 "lossen:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1141,7 +1141,7 @@ msgstr ""
 "Er zijn niet-voldane vereisten. U kunt best 'apt-get -f install' uitvoeren "
 "zonder pakketten op te geven, (of u kunt zelf een oplossing specificeren)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1152,82 +1152,82 @@ msgstr ""
 "een onmogelijke situatie gevraagd hebt of dat u de 'unstable'-distributie \n"
 "gebruikt en sommige benodigde pakketten nog vastzitten in 'incoming'."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Niet-werkende pakketten:"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "De volgende extra pakketten zullen geïnstalleerd worden:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Voorgestelde pakketten:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Aanbevolen pakketten:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Kon pakket %s niet vinden"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s is ingesteld voor handmatige installatie.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Opwaardering wordt doorgerekend... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Mislukt"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Klaar"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Interne fout, probleemoplosser heeft dingen stukgemaakt"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Kon de ophaalmap niet vergrendelen"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 "U dient minstens 1 pakket op te geven waarvan de broncode opgehaald moet "
 "worden"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Kan geen bronpakket vinden voor %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1235,80 +1235,96 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Reeds opgehaald bestand '%s' wordt overgeslagen\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "U heeft niet voldoende vrije schijfruimte op %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Moet %sB/%sB aan bronarchieven ophalen.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Moet %sB aan bronarchieven ophalen.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Ophalen bron %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Ophalen van sommige archieven is mislukt."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Het uitpakken van de reeds uitgepakte bron in %s wordt overgeslagen\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Uitpakopdracht '%s' is mislukt.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Gelieve na te gaan of het 'dpkg-dev'-pakket geïnstalleerd is.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Bouwopdracht '%s' is mislukt.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Dochterproces is mislukt"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "U dient tenminste één pakket op te geven om de bouwvereisten van te "
 "controleren"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Kan de informatie over de bouwvereisten voor %s niet ophalen"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s heeft geen bouwvereisten.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"De vereiste %s van pakket %s kan niet voldaan worden omdat pakket %s "
+"onvindbaar is"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1317,46 +1333,55 @@ msgstr ""
 "De vereiste %s van pakket %s kan niet voldaan worden omdat pakket %s "
 "onvindbaar is"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Voldoen van Vereiste %s van pakket %s is mislukt: geïnstalleerde versie %s "
+"is te nieuw"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "De vereiste %s van pakket %s kan niet voldaan worden omdat er geen "
 "beschikbare versies zijn van pakket %s die aan de versievereisten voldoen"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Voldoen van Vereiste %s van pakket %s is mislukt: geïnstalleerde versie %s "
-"is te nieuw"
+"De vereiste %s van pakket %s kan niet voldaan worden omdat pakket %s "
+"onvindbaar is"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Voldoen van de vereiste %s van pakket %s is mislukt: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Bouwvereisten voor %s konden niet voldaan worden."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Verwerken van de bouwvereisten is mislukt"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Er wordt verbinding gemaakt met %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Ondersteunde modules:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1445,7 +1470,7 @@ msgstr ""
 "voor meer informatie en opties.\n"
 "                       Deze APT heeft Super Koe kracht.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1762,8 +1787,8 @@ msgstr "Het bestand %s/%s overschrijft het bestand van pakket %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1796,7 +1821,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Pakketlijsten worden ingelezen"
 
@@ -2166,39 +2191,33 @@ msgstr "Er gebeurde iets raars bij het oplossen van '%s:%s' (%i - %s)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Kan geen verbinding maken met %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "Geen sleutelring geïnstalleerd in %s."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Interne fout: ondertekening is goed maar kon de vingerafdruk van de sleutel\n"
 "niet bepalen?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Er is tenminste één ongeldige ondertekening gevonden."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Kon '%s' niet uitvoeren om ondertekening te verifiëren (is gpgv "
 "geïnstalleerd?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Onbekende fout bij het uitvoeren van gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "De volgende ondertekeningen waren ongeldig:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2360,61 +2379,61 @@ msgstr "%lis"
 msgid "Selection %s not found"
 msgstr "Selectie %s niet gevonden"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Onbekende type-afkorting '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Configuratiebestand %s wordt geopend"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Syntaxfout %s:%u: Blok start zonder naam."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Syntaxfout %s:%u: Verkeerd gevormde markering"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Syntaxfout %s:%u: Extra rommel na waarde"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Syntaxfout %s:%u: Richtlijnen kunnen enkel op het hoogste niveau gegeven "
 "worden"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Syntaxfout %s:%u: Teveel geneste invoegingen"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Syntaxfout %s:%u: Vanaf hier ingevoegd"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Syntaxfout %s:%u: Niet-ondersteunde richtlijn '%s'"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Syntaxfout %s:%u: Richtlijnen kunnen enkel op het hoogste niveau gegeven "
 "worden"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Syntaxfout %s:%u: Extra rommel aan het einde van het bestand"
@@ -2562,7 +2581,7 @@ msgstr "Subproces %s gaf de foutcode %u terug"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Subproces %s sloot onverwacht af"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Kon het bestand %s niet openen"
@@ -2789,7 +2808,7 @@ msgstr "Misvormde regel %u in bronlijst %s (type)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Type '%s' op regel %u in bronlijst %s is onbekend"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, fuzzy, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2798,7 +2817,7 @@ msgstr ""
 "Kon onmiddellijke configuratie van '%s' niet uitvoeren. Voor details zie "
 "'man 5 apt.conf', onder APT::Immediate-Configure. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2810,7 +2829,7 @@ msgstr ""
 "vaak slecht, wilt u dit echt doen dan dient u de APT::Force-LoopBreak optie "
 "te activeren."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, fuzzy, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2844,7 +2863,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Kan problemen niet verhelpen, u houdt defecte pakketten vast."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2897,12 +2916,12 @@ msgstr ""
 "Gelieve de schijf met label '%s' in het station '%s' te plaatsen en op "
 "'enter' te drukken."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Pakketbeheersysteem '%s' wordt niet ondersteund"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Kan geen geschikt pakketsysteemtype bepalen"
 
@@ -2932,18 +2951,25 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr "De lijst van bronnen kon niet gelezen worden."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr ""
 "Ongeldige record in het voorkeurenbestand %s, 'Package' koptekst ontbreekt"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Pintype %s wordt niet begrepen"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Er is geen prioriteit (of nul) opgegeven voor deze pin"
 
@@ -3036,7 +3062,7 @@ msgstr "Kon de status van de bronpakketlijst %s niet opvragen"
 msgid "Collecting File Provides"
 msgstr "Voorziene bestanden worden verzameld"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Invoer/Uitvoer-fout tijdens wegschrijven bronpakket-cache"
 
@@ -3049,8 +3075,8 @@ msgstr "herbenoeming is mislukt, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "MD5-som komt niet overeen"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Hash-som komt niet overeen"
 
@@ -3071,20 +3097,19 @@ msgid "There is no public key available for the following key IDs:\n"
 msgstr ""
 "Er zijn geen publieke sleutels beschikbaar voor de volgende sleutel-IDs:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3092,12 +3117,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3106,7 +3131,7 @@ msgstr ""
 "Er kon geen bestand gevonden worden voor pakket %s. Dit kan betekenen dat u "
 "dit pakket handmatig moet repareren (wegens missende architectuur)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3115,7 +3140,7 @@ msgstr ""
 "Er kon geen bestand gevonden worden voor pakket %s. Dit kan betekenen dat u "
 "dit pakket handmatig moet repareren."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3123,7 +3148,7 @@ msgstr ""
 "De pakketindex-bestanden zijn beschadigd. Er is geen 'Filename:'-veld voor "
 "pakket %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Grootte komt niet overeen"
 
@@ -3247,22 +3272,22 @@ msgstr "Nieuwe bronlijst wordt weggeschreven\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Bronlijst-ingangen voor de schijf zijn:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "%i records weggeschreven.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "%i records weggeschreven met %i missende bestanden.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "%i records weggeschreven met %i niet overeenkomende bestanden\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3284,6 +3309,17 @@ msgstr "Kan geen authenticatierecord vinden voor: %s"
 msgid "Hash mismatch for: %s"
 msgstr "Hash-som komt niet overeen voor: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "Geen sleutelring geïnstalleerd in %s."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index 83e40a8dccca84e2ae1f9a9612bd5f4590a3a4a6..e3346edd1272ea3446e4dc1337a87d40a4ce34ce 100644 (file)
--- a/po/nn.po
+++ b/po/nn.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt_nn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2005-02-14 23:30+0100\n"
 "Last-Translator: Havard Korsvoll <korsvoll@skulelinux.no>\n"
 "Language-Team: Norwegian nynorsk <i18n-nn@lister.ping.uio.no>\n"
@@ -160,7 +160,7 @@ msgstr "  Versjonstabell:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, fuzzy, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s for %s %s kompilert på %s %s\n"
@@ -840,7 +840,7 @@ msgstr "%s kan ikkje installerast p
 msgid "%s is already the newest version.\n"
 msgstr "Den nyaste versjonen av %s er installert frå før.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, fuzzy, c-format
 msgid "%s set to manually installed.\n"
 msgstr "men %s skal installerast"
@@ -954,8 +954,8 @@ msgstr "Etter utpakking vil %sB meir diskplass verta brukt.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Etter utpakking vil %sB meir diskplass verta frigjort.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, fuzzy, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Du har ikkje nok ledig plass i %s"
@@ -993,7 +993,7 @@ msgstr "Avbryt."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Vil du halda fram [J/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Klarte ikkje henta %s  %s\n"
@@ -1002,7 +1002,7 @@ msgstr "Klarte ikkje henta %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Klarte ikkje henta nokre av filene"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Nedlastinga er ferdig i nedlastingsmodus"
 
@@ -1040,31 +1040,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Klarte ikkje få status på kjeldepakkelista %s"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Oppdateringskommandoen tek ingen argument"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1080,16 +1080,16 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Følgjande informasjon kan hjelpa med å løysa situasjonen:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 #, fuzzy
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Intern feil. AllUpgrade øydelagde noko"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1099,7 +1099,7 @@ msgid_plural ""
 msgstr[0] "Dei følgjande NYE pakkane vil verta installerte:"
 msgstr[1] "Dei følgjande NYE pakkane vil verta installerte:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1107,20 +1107,20 @@ msgid_plural ""
 msgstr[0] "Dei følgjande NYE pakkane vil verta installerte:"
 msgstr[1] "Dei følgjande NYE pakkane vil verta installerte:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr ""
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Intern feil. AllUpgrade øydelagde noko"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr ""
 "Du vil kanskje prøva å retta på desse ved å køyra «apt-get -f install»."
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1128,7 +1128,7 @@ msgstr ""
 "Nokre krav er ikkje oppfylte. Du kan prøva «apt-get -f install» (eller velja "
 "ei løysing)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1140,81 +1140,81 @@ msgstr ""
 "distribusjonen, kan det òg henda at nokre av pakkane som trengst ikkje\n"
 "er laga enno eller at dei framleis ligg i «Incoming»."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Øydelagde pakkar"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Dei følgjande tilleggspakkane vil verta installerte:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Føreslåtte pakkar:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Tilrådde pakkar"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Fann ikkje pakken %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "men %s skal installerast"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Reknar ut oppgradering ... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Mislukkast"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Ferdig"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 #, fuzzy
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Intern feil. AllUpgrade øydelagde noko"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Klarte ikkje låsa nedlastingskatalogen"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Du må velja minst éin pakke som kjeldekoden skal hentast for"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Finn ingen kjeldepakke for %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1222,123 +1222,144 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, fuzzy, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Hoppar over utpakking av kjeldekode som er utpakka frå før i %s\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Du har ikkje nok ledig plass i %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Må henta %sB/%sB med kjeldekodearkiv.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Må henta %sB med kjeldekodearkiv.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Hent kjeldekode %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Klarte ikkje henta nokre av arkiva."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Hoppar over utpakking av kjeldekode som er utpakka frå før i %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Utpakkingskommandoen «%s» mislukkast.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Byggjekommandoen «%s» mislukkast.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Barneprosessen mislukkast"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr "Du må velja minst ein pakke som byggjekrava skal sjekkast for"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Klarte ikkje henta byggjekrav for %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s har ingen byggjekrav.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr "Kravet %s for %s kan ikkje oppfyllast fordi pakken %s ikkje finst"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr "Kravet %s for %s kan ikkje oppfyllast fordi pakken %s ikkje finst"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Klarte ikkje oppfylla kravet %s for %s: Den installerte pakken %s er for ny"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "Kravet %s for %s kan ikkje oppfyllast fordi det ikkje finst nokon "
 "tilgjengelege versjonar av pakken %s som oppfyller versjonskrava"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr ""
-"Klarte ikkje oppfylla kravet %s for %s: Den installerte pakken %s er for ny"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
+msgstr "Kravet %s for %s kan ikkje oppfyllast fordi pakken %s ikkje finst"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Klarte ikkje oppfylla kravet %s for %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Byggjekrav for %s kunne ikkje tilfredstillast."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Klarte ikkje behandla byggjekrava"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Koplar til %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Støtta modular:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1424,7 +1445,7 @@ msgstr ""
 "til apt-get(8), sources.list(5) og apt.conf(5).\n"
 "                       APT har superku-krefter.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1732,8 +1753,8 @@ msgstr "Fila %s/%s skriv over den tilsvarande fila i pakken %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1766,7 +1787,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Les pakkelister"
 
@@ -2137,35 +2158,29 @@ msgstr "Det hende noko dumt ved oppslag av 
 msgid "Unable to connect to %s:%s:"
 msgstr "Klarte ikkje kopla til %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "Avbryt installasjon."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr ""
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr ""
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 #, fuzzy
 msgid "The following signatures were invalid:\n"
 msgstr "Dei følgjande tilleggspakkane vil verta installerte:"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2321,57 +2336,57 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "Fann ikkje utvalet %s"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Ukjend typeforkorting: «%c»"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Opnar oppsettsfila %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Syntaksfeil %s:%u: Blokka startar utan namn."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Syntaksfeil %s:%u: Misforma tagg"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Syntaksfeil %s:%u: Ekstra rot etter verdien"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "Syntaksfeil %s:%u: Direktiva kan berre liggja i det øvste nivået"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Syntaksfeil %s:%u: For mange nøsta inkluderte filer"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Syntaksfeil %s:%u: Inkludert herifrå"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Syntaksfeil %s:%u: Direktivet «%s» er ikkje støtta"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "Syntaksfeil %s:%u: Direktiva kan berre liggja i det øvste nivået"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Syntaksfeil %s:%u: Ekstra rot til slutt i fila"
@@ -2514,7 +2529,7 @@ msgstr "Underprosessen %s returnerte ein feilkode (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Underprosessen %s avslutta uventa"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Klarte ikkje opna fila %s"
@@ -2742,14 +2757,14 @@ msgstr "Misforma linje %u i kjeldelista %s (type)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Typen «%s» er ukjend i linja %u i kjeldelista %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2761,7 +2776,7 @@ msgstr ""
 "om du verkeleg vil gjera det, kan du bruka innstillinga «APT::Force-"
 "LoopBreak»."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2792,7 +2807,7 @@ msgid "Unable to correct problems, you have held broken packages."
 msgstr ""
 "Klarte ikkje retta opp problema. Nokre øydelagde pakkar er haldne tilbake."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2846,12 +2861,12 @@ msgstr ""
 " «%s»\n"
 "i stasjonen «%s» og trykk Enter.\n"
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Pakkesystemet «%s» er ikkje støtta"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Klarte ikkje avgjera ein eigna pakkesystemtype"
 
@@ -2877,17 +2892,24 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr "Kjeldelista kan ikkje lesast."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Ugyldig oppslag i innstillingsfila, manglar pakkehovud"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Skjønar ikkje spikringstypen %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Ingen prioritet (eller null) oppgitt for spiker"
 
@@ -2977,7 +2999,7 @@ msgstr "Klarte ikkje f
 msgid "Collecting File Provides"
 msgstr "Samlar inn filtilbod"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "IU-feil ved lagring av kjeldelager"
 
@@ -2990,8 +3012,8 @@ msgstr "endring av namn mislukkast, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "Feil MD5-sum"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 #, fuzzy
 msgid "Hash Sum mismatch"
 msgstr "Feil MD5-sum"
@@ -3012,20 +3034,19 @@ msgstr "Klarte ikkje tolka pakkefila %s (1)"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr ""
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3033,12 +3054,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3047,7 +3068,7 @@ msgstr ""
 "Fann ikkje fila for pakken %s. Det kan henda du må fiksa denne pakken sjølv "
 "(fordi arkitekturen manglar)."
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3055,14 +3076,14 @@ msgid ""
 msgstr ""
 "Fann ikkje fila for pakken %s. Det kan henda du må fiksa denne pakken sjølv."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 "Pakkeindeksfilene er øydelagde. Feltet «Filename:» manglar for pakken %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Feil storleik"
 
@@ -3183,22 +3204,22 @@ msgstr "Skriv ny kjeldeliste\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Kjeldelisteoppføringar for denne disken er:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Skreiv %i postar.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Skreiv %i postar med %i manglande filer.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Skreiv %i postar med %i filer som ikkje passa\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "Skreiv %i postar med %i manglande filer og %i filer som ikkje passa\n"
@@ -3218,6 +3239,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "Feil MD5-sum"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "Avbryt installasjon."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index f39352fc58cddfd81494fa602c7dec3a8d8f4616..7cf36ab92f44cf203daa04fc531eaab817345abc 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.7.23.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2009-09-27 03:42+0100\n"
 "Last-Translator: Wiktor Wandachowicz <siryes@gmail.com>\n"
 "Language-Team: Polish <debian-l10n-polish@lists.debian.org>\n"
@@ -160,7 +160,7 @@ msgstr "  Tabela wersji:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s dla %s skompilowany %s %s\n"
@@ -843,7 +843,7 @@ msgstr ""
 msgid "%s is already the newest version.\n"
 msgstr "%s jest już w najnowszej wersji.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s zaznaczony jako zainstalowany ręcznie.\n"
@@ -957,8 +957,8 @@ msgstr "Po tej operacji zostanie dodatkowo użyte %sB miejsca na dysku.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Po tej operacji zostanie zwolnione %sB miejsca na dysku.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Nie udało się ustalić ilości wolnego miejsca w %s"
@@ -995,7 +995,7 @@ msgstr "Przerwane."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Kontynuować [T/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Nie udało się pobrać %s  %s\n"
@@ -1004,7 +1004,7 @@ msgstr "Nie udało się pobrać %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Nie udało się pobrać niektórych plików"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Ukończono pobieranie w trybie samego pobierania"
 
@@ -1042,31 +1042,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Nie udało się wykonać operacji stat na liście pakietów źródłowych %s"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Polecenie update nie wymaga żadnych argumentów"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "Nic nie powinno być usuwane, AutoRemover nie zostanie uruchomiony"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1084,15 +1084,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Następujące informacje mogą pomóc rozwiązać sytuację:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Błąd wewnętrzny, AutoRemover wszystko popsuł"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1106,7 +1106,7 @@ msgstr[1] ""
 "Następujące pakiety zostały zainstalowane automatycznie i nie są już więcej "
 "wymagane:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1118,19 +1118,19 @@ msgstr[1] ""
 "%lu pakiety(ów) zostały zainstalowane automatycznie i nie są już więcej "
 "wymagane.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Aby je usunąć należy użyć \"apt-get autoremove\"."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Błąd wewnętrzny, AllUpgrade wszystko popsuło"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Należy uruchomić \"apt-get -f install\", aby je naprawić:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1138,7 +1138,7 @@ msgstr ""
 "Niespełnione zależności. Proszę spróbować \"apt-get -f install\" bez "
 "pakietów (lub podać rozwiązanie)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1150,82 +1150,82 @@ msgstr ""
 "w której niektóre pakiety nie zostały jeszcze utworzone lub przeniesione\n"
 "z katalogu Incoming (\"Przychodzące\")."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Pakiety są uszkodzone"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Zostaną zainstalowane następujące dodatkowe pakiety:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Sugerowane pakiety:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Polecane pakiety:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Nie udało się odnaleźć pakietu %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s zaznaczony jako zainstalowany ręcznie.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Obliczanie aktualizacji..."
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Nie udało się"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Gotowe"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Błąd wewnętrzny, rozwiązywanie problemów wszystko popsuło"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Nie udało się zablokować katalogu pobierania"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 "Należy podać przynajmniej jeden pakiet, dla którego mają zostać pobrane "
 "źródła"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Nie udało się odnaleźć źródła dla pakietu %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1233,80 +1233,96 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Pomijanie już pobranego pliku \"%s\"\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "W %s nie ma wystarczającej ilości wolnego miejsca"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Konieczne pobranie %sB/%sB archiwów źródeł.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Konieczne pobranie %sB archiwów źródeł.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Pobierz źródło %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Nie udało się pobrać niektórych archiwów."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Pomijanie rozpakowania już rozpakowanego źródła w %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Polecenie rozpakowania \"%s\" zawiodło.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Proszę sprawdzić czy pakiet \"dpkg-dev\" jest zainstalowany.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Polecenie budowania \"%s\" zawiodło.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Proces potomny zawiódł"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Należy podać przynajmniej jeden pakiet, dla którego mają zostać sprawdzone "
 "zależności dla budowania"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Nie udało się pobrać informacji o zależnościach dla budowania %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s nie ma zależności dla budowania.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"Zależność %s od %s nie może zostać spełniona, ponieważ nie znaleziono "
+"pakietu %s"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1315,46 +1331,55 @@ msgstr ""
 "Zależność %s od %s nie może zostać spełniona, ponieważ nie znaleziono "
 "pakietu %s"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Nie udało się spełnić zależności %s od %s: Zainstalowany pakiet %s jest zbyt "
+"nowy"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "Zależność %s od %s nie może zostać spełniona, ponieważ żadna z dostępnych "
 "wersji pakietu %s nie ma odpowiedniej wersji"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Nie udało się spełnić zależności %s od %s: Zainstalowany pakiet %s jest zbyt "
-"nowy"
+"Zależność %s od %s nie może zostać spełniona, ponieważ nie znaleziono "
+"pakietu %s"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Nie udało się spełnić zależności %s od %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Nie udało się spełnić zależności dla budowania %s."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Nie udało się przetworzyć zależności dla budowania"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Podłączanie do %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Obsługiwane moduły:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1441,7 +1466,7 @@ msgstr ""
 "apt-get(8), sources.list(5) i apt.conf(5).\n"
 "                         Ten APT ma moce Super Krowy.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1757,8 +1782,8 @@ msgstr "Plik %s/%s nadpisuje plik w pakiecie %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1790,7 +1815,7 @@ msgstr "Pliki info i katalog tymczasowy muszą być na tym samym systemie plikó
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Czytanie list pakietów"
 
@@ -2162,39 +2187,33 @@ msgstr "Coś niewłaściwego stało się przy tłumaczeniu \"%s:%s\" (%i)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Nie udało się połączyć z %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "Przerywanie instalacji"
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Błąd wewnętrzny: Prawidłowy podpis, ale nie nie udało się ustalić odcisku "
 "klucza?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Napotkano przynajmniej jeden nieprawidłowy podpis."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Nie udało się uruchomić \"%s\" by zweryfikować podpis (czy gpgv jest "
 "zainstalowane?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Nieznany błąd podczas uruchamiania gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Następujące podpisy były błędne:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2353,59 +2372,59 @@ msgstr "%lis"
 msgid "Selection %s not found"
 msgstr "Nie odnaleziono wyboru %s"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Nierozpoznany skrót typu: \"%c\""
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Otwieranie pliku konfiguracyjnego %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Błąd składniowy %s:%u: Blok nie zaczyna się nazwą."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Błąd składniowy %s:%u: Błędny znacznik"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Błąd składniowy %s:%u: Po wartości występują śmieci"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Błąd składniowy %s:%u: Dyrektywy mogą występować tylko na najwyższym poziomie"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Błąd składniowy %s:%u: Zbyt wiele zagnieżdżonych operacji include"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Błąd składniowy %s:%u: Włączony tutaj"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Błąd składniowy %s:%u: Nieobsługiwana dyrektywa \"%s\""
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Błąd składniowy %s:%u: Dyrektywy mogą występować tylko na najwyższym poziomie"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Błąd składniowy %s:%u: Śmieci na końcu pliku"
@@ -2548,7 +2567,7 @@ msgstr "Podproces %s zwrócił kod błędu (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Podproces %s zakończył się niespodziewanie"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Nie udało się otworzyć pliku %s"
@@ -2775,14 +2794,14 @@ msgstr "Nieprawidłowa linia %u w liście źródeł %s (typ)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Typ \"%s\" jest nieznany w linii %u listy źródeł %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2794,7 +2813,7 @@ msgstr ""
 "nic dobrego, ale jeśli naprawdę chcesz to zrobić, włącz opcję APT::Force-"
 "LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2825,7 +2844,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Nie udało się naprawić problemów, zatrzymano uszkodzone pakiety."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2876,12 +2895,12 @@ msgstr "Metoda %s nie uruchomiła się poprawnie"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Proszę włożyć do napędu \"%s\" dysk o nazwie: \"%s\" i nacisnąć enter."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "System pakietów \"%s\" nie jest obsługiwany"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Nie udało się określić odpowiedniego typu systemu pakietów"
 
@@ -2906,17 +2925,24 @@ msgstr "Należy uruchomić apt-get update aby naprawić te problemy."
 msgid "The list of sources could not be read."
 msgstr "Nie udało się odczytać list źródeł."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Nieprawidłowe informacje w pliku ustawień %s, brak nagłówka Package"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Nierozpoznany typ przypinania %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Brak (lub zerowy) priorytet przypięcia"
 
@@ -3008,7 +3034,7 @@ msgstr "Nie udało się wykonać operacji stat na liście pakietów źródłowyc
 msgid "Collecting File Provides"
 msgstr "Zbieranie zapewnień plików"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Błąd wejścia/wyjścia przy zapisywaniu podręcznego magazynu źródeł"
 
@@ -3021,8 +3047,8 @@ msgstr "nie udało się zmienić nazwy, %s (%s -> %s)"
 msgid "MD5Sum mismatch"
 msgstr "Błędna suma MD5"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Błędna suma kontrolna"
 
@@ -3042,20 +3068,19 @@ msgstr "Nie udało się zanalizować pliku Release %s"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Dla następujących identyfikatorów kluczy brakuje klucza publicznego:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3063,12 +3088,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3077,7 +3102,7 @@ msgstr ""
 "Nie udało się odnaleźć pliku dla pakietu %s. Może to oznaczać, że trzeba "
 "będzie ręcznie naprawić ten pakiet (z powodu brakującej architektury)."
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3086,14 +3111,14 @@ msgstr ""
 "Nie udało się odnaleźć pliku dla pakietu %s. Może to oznaczać, że trzeba "
 "będzie ręcznie naprawić ten pakiet."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 "Pliki indeksu pakietów są uszkodzone. Brak pola Filename: dla pakietu %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Błędny rozmiar"
 
@@ -3217,22 +3242,22 @@ msgstr "Zapisywanie nowej listy źródeł\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Źródła dla tej płyty to:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Zapisano %i rekordów.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Zapisano %i rekordów z %i brakującymi plikami.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Zapisano %i rekordów z %i niepasującymi plikami\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "Zapisano %i rekordów z %i brakującymi plikami i %i niepasującymi\n"
@@ -3252,6 +3277,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "Błędna suma kontrolna"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "Przerywanie instalacji"
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index 6442a5bb6cf88fa8f93877634e18f9953615ea92..cfd2d3961be9e96fb2caab72a04087a67dd72cad 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-08-28 09:03+0100\n"
 "Last-Translator: Miguel Figueiredo <elmig@debianpt.org>\n"
 "Language-Team: Portuguese <traduz@debianpt.org>\n"
@@ -155,7 +155,7 @@ msgstr "  Tabela de Versão:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s para %s compilado em %s %s\n"
@@ -836,7 +836,7 @@ msgstr ""
 msgid "%s is already the newest version.\n"
 msgstr "%s já está na versão mais recente.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s está definido para ser instalado manualmente.\n"
@@ -950,8 +950,8 @@ msgstr ""
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Após esta operação, será libertado %sB de espaço em disco.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Não foi possível determinar o espaço livre em %s"
@@ -988,7 +988,7 @@ msgstr "Abortado."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Deseja continuar [Y/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Falhou obter %s  %s\n"
@@ -997,7 +997,7 @@ msgstr "Falhou obter %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Falhou o download de alguns ficheiros"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Download completo e em modo de fazer apenas o download"
 
@@ -1039,31 +1039,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Nota: Isto foi feito automaticamente e intencionalmente pelo dpkg."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Ignorar o lançamento pretendido, não disponível, '%s' do pacote '%s'"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "A escolher '%s' como pacote pacote de código fonte em vez de '%s'\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Ignorar a versão '%s', não disponível, do pacote '%s'"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "O comando update não leva argumentos"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "Não é suposto nós apagarmos coisas, não pode iniciar o AutoRemover"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1081,15 +1081,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "A seguinte informação pode ajudar a resolver a situação:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Erro Interno, o AutoRemover estragou coisas"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1101,7 +1101,7 @@ msgstr[1] ""
 "Os seguintes pacotes foram instalados automaticamente e já não são "
 "necessários:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1110,19 +1110,19 @@ msgstr[0] "O pacote %lu foi instalado automaticamente e já não é necessário.
 msgstr[1] ""
 "Os pacotes %lu foram instalados automaticamente e já não são necessários.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Utilize 'apt-get autoremove' para os remover."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Erro Interno, AllUpgrade estragou algo"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Você deve querer executar 'apt-get -f install' para corrigir estes:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1130,7 +1130,7 @@ msgstr ""
 "Dependências não satisfeitas. Tente 'apt-get -f install' sem nenhum pacote "
 "(ou especifique uma solução)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1142,73 +1142,73 @@ msgstr ""
 "distribuição unstable em que alguns pacotes pedidos ainda não foram \n"
 "criados ou foram movidos do Incoming."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Pacotes estragados"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Os seguintes pacotes extra serão instalados:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Pacotes sugeridos:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Pacotes recomendados:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Impossível encontrar o pacote %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s está definido para ser instalado automaticamente.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "A calcular a actualização... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Falhou"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Pronto"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Erro Interno, o solucionador de problemas estragou coisas"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Impossível criar acesso exclusivo ao directório de downloads"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Tem de especificar pelo menos um pacote para obter o código fonte de"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Não foi possível encontrar um pacote de código fonte para %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1218,7 +1218,7 @@ msgstr ""
 "'%s' em:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1229,82 +1229,98 @@ msgstr ""
 "bzr get %s\n"
 "para obter as últimas actualizações (possivelmente por lançar) ao pacote.\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "A saltar o ficheiro '%s', já tinha sido feito download'\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Você não possui espaço livre suficiente em %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "É necessário obter %sB/%sB de arquivos de código fonte.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "É necessário obter %sB de arquivos de código fonte.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Obter código fonte %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Falhou obter alguns arquivos."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 "A saltar a descompactação do pacote de código fonte já descompactado em %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "O comando de descompactação '%s' falhou.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Verifique se o pacote 'dpkg-dev' está instalado.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "O comando de compilação '%s' falhou.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "O processo filho falhou"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Deve especificar pelo menos um pacote para verificar as dependências de "
 "compilação"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 "Não foi possível obter informações de dependências de compilação para %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s não tem dependências de compilação.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"a dependência de %s para %s não pôde ser satisfeita porque o pacote %s não "
+"pôde ser encontrado"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1313,46 +1329,55 @@ msgstr ""
 "a dependência de %s para %s não pôde ser satisfeita porque o pacote %s não "
 "pôde ser encontrado"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Falha ao satisfazer a dependência %s para %s: O pacote instalado %s é "
+"demasiado novo"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "a dependência de %s para %s não pode ser satisfeita porque nenhuma versão "
 "disponível do pacote %s pode satisfazer os requisitos de versão"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Falha ao satisfazer a dependência %s para %s: O pacote instalado %s é "
-"demasiado novo"
+"a dependência de %s para %s não pôde ser satisfeita porque o pacote %s não "
+"pôde ser encontrado"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Falha ao satisfazer a dependência %s para %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Não foi possível satisfazer as dependências de compilação para %s."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Falhou processar as dependências de compilação"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "A Ligar a %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Módulos Suportados:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1443,7 +1468,7 @@ msgstr ""
 "apt-get(8), sources.list(5) e apt.conf(5)\n"
 "                         Este APT tem Poderes de Super Vaca.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1760,8 +1785,8 @@ msgstr "O ficheiro %s/%s substitui o que está no pacote %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1794,7 +1819,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "A ler as listas de pacotes"
 
@@ -2162,38 +2187,32 @@ msgstr "Algo estranho aconteceu ao resolver '%s:%s' (%i - %s)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Não foi possível ligar a %s:%s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "Nenhum keyring instalado em %s."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Erro interno: Assinatura válida, mas não foi possível determinar a impressão "
 "digital da chave?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Pelo menos uma assinatura inválida foi encontrada."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Não foi possível executar 'gpgv' para verificar a assinatura  (o gpgv está "
 "instalado?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Erro desconhecido ao executar gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "As seguintes assinaturas eram inválidas:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2354,60 +2373,60 @@ msgstr "%lis"
 msgid "Selection %s not found"
 msgstr "A selecção %s não foi encontrada"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Abreviatura de tipo desconhecida: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "A abrir o ficheiro de configuração %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Erro de sintaxe %s:%u: O bloco começa sem nome."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Erro de sintaxe %s:%u: Tag mal formada"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Erro de sintaxe %s:%u: Lixo extra depois do valor"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Erro de sintaxe %s:%u: Directivas só podem ser feitas no nível mais alto"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Erro de sintaxe %s:%u: Demasiados includes encadeados"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Erro de sintaxe %s:%u: Incluído a partir deste ponto"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Erro de sintaxe %s:%u: Directiva '%s' não suportada"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Erro de sintaxe %s:%u: directiva clara necessita de uma árvore de opções "
 "como argumento"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Erro de sintaxe %s:%u: Lixo extra no final do ficheiro"
@@ -2553,7 +2572,7 @@ msgstr "O sub-processo %s retornou um código de erro (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "O sub-processo %s terminou inesperadamente"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Não foi possível abrir ficheiro o %s"
@@ -2783,7 +2802,7 @@ msgstr "Linha mal formada %u na lista de fontes %s (tipo)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "O tipo '%s' não é conhecido na linha %u na lista de fontes %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2792,7 +2811,7 @@ msgstr ""
 "Não foi possível proceder à configuração imediata em '%s'. Para detalhes, "
 "por favor veja man 5 apt.conf em APT::Immediate-Configure. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2804,7 +2823,7 @@ msgstr ""
 "normalmente é mau, mas se você quer realmente fazer isso, active a opção "
 "APT::Force-LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2840,7 +2859,7 @@ msgstr ""
 "Não foi possível corrigir problemas, você tem pacotes mantidos (hold) "
 "estragados."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2892,12 +2911,12 @@ msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr ""
 "Por favor insira o disco denominado: '%s' no leitor '%s' e pressione enter."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Sistema de empacotamento '%s' não é suportado"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr ""
 "Não foi possível determinar um tipo de sistema de empacotamento adequado"
@@ -2925,17 +2944,24 @@ msgstr "Você terá que executar apt-get update para corrigir estes problemas"
 msgid "The list of sources could not be read."
 msgstr "A lista de fontes não pôde ser lida."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Registo inválido no ficheiro de preferências %s, sem cabeçalho Package"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Não foi possível entender o tipo de marca (pin) %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Nenhuma prioridade (ou zero) especificada para marcação (pin)"
 
@@ -3030,7 +3056,7 @@ msgstr "Não foi possível executar stat à lista de pacotes de código fonte %s
 msgid "Collecting File Provides"
 msgstr "A obter File Provides"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Erro de I/O ao gravar a cache de código fonte"
 
@@ -3043,8 +3069,8 @@ msgstr "falhou renomear, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "MD5Sum não coincide"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Código de verificação hash não coincide"
 
@@ -3066,20 +3092,19 @@ msgstr ""
 "Não existe qualquer chave pública disponível para as seguintes IDs de "
 "chave:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Ficheiro Release expirou, a ignorar %s (inválido desde %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Distribuição em conflito: %s (esperado %s mas obtido %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3090,12 +3115,12 @@ msgstr ""
 "GPG: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "Erro GPG: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3105,7 +3130,7 @@ msgstr ""
 "significar que você precisa corrigir manualmente este pacote. (devido a "
 "arquitectura em falta)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3114,7 +3139,7 @@ msgstr ""
 "Não foi possível localizar arquivo para o pacote %s. Isto pode significar "
 "que você precisa consertar manualmente este pacote."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3122,7 +3147,7 @@ msgstr ""
 "Os arquivos de índice de pacotes estão corrompidos. Nenhum campo Filename: "
 "para o pacote %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Tamanho incorrecto"
 
@@ -3246,22 +3271,22 @@ msgstr "A escrever lista de novas source\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "As entradas de listas de Source para este Disco são:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Escreveu %i registos.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Escreveu %i registos com %i ficheiros em falta.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Escreveu %i registos com %i ficheiros não coincidentes\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3283,6 +3308,17 @@ msgstr "Não foi possível encontrar registo de autenticação para: %s"
 msgid "Hash mismatch for: %s"
 msgstr "Hash não coincide para: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "Nenhum keyring instalado em %s."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3547,6 +3583,9 @@ msgstr "Ligação encerrada prematuramente"
 #~ msgid "Internal error, group '%s' has no installable pseudo package"
 #~ msgstr "Erro interno, grupo '%s' não tem pseudo-pacote instalável"
 
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "Ficheiro Release expirou, a ignorar %s (inválido desde %s)"
+
 #~ msgid "You must give exactly one pattern"
 #~ msgstr "Você deve dar exactamente um pattern"
 
index 958b4f937f194cd01a14614c438dcbba7eff1061..8b12ec03386bbc048192c971e3da3b72b4ef3afe 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2008-11-17 02:33-0200\n"
 "Last-Translator: Felipe Augusto van de Wiel (faw) <faw@debian.org>\n"
 "Language-Team: Brazilian Portuguese <debian-l10n-portuguese@lists.debian."
@@ -158,7 +158,7 @@ msgstr "  Tabela de versão:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s para %s compilado em %s %s\n"
@@ -842,7 +842,7 @@ msgstr "A reinstalação de %s não é possível, não pode ser baixado.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s já é a versão mais nova.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s configurado para instalar manualmente.\n"
@@ -957,8 +957,8 @@ msgstr ""
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Depois desta operação, %sB de espaço em disco serão liberados.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Não foi possível determinar o espaço livre em %s"
@@ -995,7 +995,7 @@ msgstr "Abortar."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Você quer continuar [S/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Falhou ao buscar %s  %s\n"
@@ -1004,7 +1004,7 @@ msgstr "Falhou ao buscar %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Alguns arquivos falharam ao baixar"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Baixar completo e no modo somente baixar (\"download only\")"
 
@@ -1042,31 +1042,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Não foi possível executar \"stat\" na lista de pacotes fonte %s"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "O comando update não leva argumentos"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "Nós não deveríamos apagar coisas, impossível iniciar AutoRemover"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1084,15 +1084,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "A informação a seguir pode ajudar a resolver a situação:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Erro Interno, o AutoRemover quebrou coisas"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1106,7 +1106,7 @@ msgstr[1] ""
 "Os seguintes pacotes foram automaticamente instalados e não são mais "
 "requeridos:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1118,19 +1118,19 @@ msgstr[1] ""
 "Os seguintes pacotes foram automaticamente instalados e não são mais "
 "requeridos:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Use 'apt-get autoremove' para removê-los."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Erro interno, AllUpgrade quebrou coisas"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Você deve querer executar 'apt-get -f install' para corrigí-los:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1138,7 +1138,7 @@ msgstr ""
 "Dependências desencontradas. Tente 'apt-get -f install' sem nenhum pacote "
 "(ou especifique uma solução)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1150,80 +1150,80 @@ msgstr ""
 "distribuição instável, que alguns pacotes requeridos não foram\n"
 "criados ainda ou foram retirados da \"Incoming\"."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Pacotes quebrados"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Os pacotes extra a seguir serão instalados:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Pacotes sugeridos:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Pacotes recomendados:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Impossível achar pacote %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s configurado para instalar manualmente.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Calculando atualização... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Falhou"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Pronto"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Erro interno, o solucionador de problemas quebrou coisas"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Impossível criar trava no diretório de download"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Deve-se especificar pelo menos um pacote para que se busque o fonte"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Impossível encontrar um pacote fonte para %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1231,80 +1231,96 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Pulando arquivo já baixado '%s'\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Você não possui espaço livre suficiente em %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Preciso obter %sB/%sB de arquivos fonte.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Preciso obter %sB de arquivos fonte.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Obter fonte %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Falhou ao buscar alguns arquivos."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Pulando o desempacotamento de fontes já desempacotados em %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Comando de desempacotamento '%s' falhou.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Confira se o pacote 'dpkg-dev' está instalado.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Comando de construção '%s' falhou.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Processo filho falhou"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Deve-se especificar pelo menos um pacote para que se cheque as dependências "
 "de construção"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Impossível conseguir informações de dependência de construção para %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s não tem dependências de construção.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"a dependência de %s por %s não pode ser satisfeita porque o pacote %s não "
+"pode ser encontrado"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1313,46 +1329,55 @@ msgstr ""
 "a dependência de %s por %s não pode ser satisfeita porque o pacote %s não "
 "pode ser encontrado"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Falhou ao satisfazer a dependência de %s por %s: Pacote instalado %s é muito "
+"novo"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "a dependência de %s por %s não pode ser satisfeita porque nenhuma versão "
 "disponível do pacote %s pode satisfazer os requerimentos de versão"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Falhou ao satisfazer a dependência de %s por %s: Pacote instalado %s é muito "
-"novo"
+"a dependência de %s por %s não pode ser satisfeita porque o pacote %s não "
+"pode ser encontrado"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Falhou ao satisfazer a dependência de %s por %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Não foi possível satisfazer as dependências de compilação para %s."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Falhou ao processar as dependências de construção"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Conectando em %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Módulos para os quais há suporte:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1440,7 +1465,7 @@ msgstr ""
 "para mais informações e opções.\n"
 "                       Este APT tem Poderes de Super Vaca.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1755,8 +1780,8 @@ msgstr "Arquivo %s/%s sobrescreve arquivo no pacote %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1788,7 +1813,7 @@ msgstr "Os diretórios info e temp precisam estar no mesmo sistema de arquivos"
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Lendo listas de pacotes"
 
@@ -2157,39 +2182,33 @@ msgstr "Algo estranho aconteceu resolvendo '%s:%s' (%i)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Impossível conectar em %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "Abortando instalação."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Erro interno: Assinatura boa, mas não foi possível determinar a impressão "
 "digital da chave?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Ao menos uma assinatura inválida foi encontrada."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Não foi possível executar '%s' para verificar a assinatura (o gpgv está "
 "instalado?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Erro desconhecido executando gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "As seguintes assinaturas eram inválidas:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2346,59 +2365,59 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "Seleção %s não encontrada"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Abreviação de tipo desconhecida: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Abrindo arquivo de configuração %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Erro de sintaxe %s:%u: Bloco inicia sem nome."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Erro de sintaxe %s:%u: Tag mal formada"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Erro de sintaxe %s:%u: Lixo extra depois do valor"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Erro de sintaxe %s:%u: Diretivas podem ser feitas somente no nível mais alto"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Erro de sintaxe %s:%u: Muitos \"includes\" aninhados"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Erro de sintaxe %s:%u: Incluído a partir deste ponto"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Erro de sintaxe %s:%u: Não há suporte para a diretiva '%s'"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Erro de sintaxe %s:%u: Diretivas podem ser feitas somente no nível mais alto"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Erro de sintaxe %s:%u: Lixo extra no final do arquivo"
@@ -2542,7 +2561,7 @@ msgstr "Sub-processo %s retornou um código de erro (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Sub-processo %s finalizou inesperadamente"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Não foi possível abrir arquivo %s"
@@ -2774,14 +2793,14 @@ msgstr "Linha mal formada %u no arquivo de fontes %s (tipo)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Tipo '%s' não é conhecido na linha %u na lista de fontes %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2793,7 +2812,7 @@ msgstr ""
 "é ruim, mas se você realmente quer fazer isso, ative a opção APT::Force-"
 "LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2825,7 +2844,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Impossível corrigir problemas, você manteve (hold) pacotes quebrados."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2877,12 +2896,12 @@ msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr ""
 "Por favor, insira o disco nomeado: '%s' na unidade '%s' e pressione enter."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Sistema de empacotamento '%s' não é suportado"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Impossível determinar um tipo de sistema de empacotamento aplicável."
 
@@ -2909,17 +2928,24 @@ msgstr "Você terá que executar apt-get update para corrigir estes problemas"
 msgid "The list of sources could not be read."
 msgstr "A lista de fontes não pode ser lida."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Registro inválido no arquivo de preferências, sem cabeçalho Package"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Não foi possível entender o tipo de \"pin\" %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Nenhuma prioridade (ou zero) especificada para \"pin\""
 
@@ -3014,7 +3040,7 @@ msgstr "Não foi possível executar \"stat\" na lista de pacotes fonte %s"
 msgid "Collecting File Provides"
 msgstr "Coletando Arquivo \"Provides\""
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Erro de E/S ao gravar cache fonte"
 
@@ -3027,8 +3053,8 @@ msgstr "renomeação falhou, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "MD5Sum incorreto"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Hash Sum incorreto"
 
@@ -3048,20 +3074,19 @@ msgstr "Impossível analisar arquivo de pacote %s (1)"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Não existem chaves públicas para os seguintes IDs de chaves:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3069,12 +3094,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3084,7 +3109,7 @@ msgstr ""
 "que você precisa consertar manualmente este pacote. (devido a arquitetura "
 "não especificada)."
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3093,7 +3118,7 @@ msgstr ""
 "Não foi possível localizar arquivo para o pacote %s. Isto pode significar "
 "que você precisa consertar manualmente este pacote."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3101,7 +3126,7 @@ msgstr ""
 "Os arquivos de índice de pacotes estão corrompidos. Nenhum campo \"Filename:"
 "\" para o pacote %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Tamanho incorreto"
 
@@ -3223,22 +3248,22 @@ msgstr "Gravando nova lista de fontes\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Entradas na lista de fontes para este disco são:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Gravados %i registros.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Gravados %i registros com %i arquivos faltando.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Gravados %i registros com %i arquivos que não combinam\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3260,6 +3285,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "Hash Sum incorreto"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "Abortando instalação."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index 3e10734cf0f9a2c71ab03900e6eb2d13b1e5348b..9fa1d880514a1380cda44044d33c85e5ad760500 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ro\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2008-11-15 02:21+0200\n"
 "Last-Translator: Eddy Petrișor <eddy.petrisor@gmail.com>\n"
 "Language-Team: Romanian <debian-l10n-romanian@lists.debian.org>\n"
@@ -159,7 +159,7 @@ msgstr "  Tabela de versiuni:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s pentru %s compilat la %s %s\n"
@@ -843,7 +843,7 @@ msgstr "Reinstalarea lui %s nu este posibilă, nu poate fi descărcat.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s este deja la cea mai nouă versiune.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s este marcat ca fiind instalat manual.\n"
@@ -956,8 +956,8 @@ msgstr "După această operație vor fi folosiți din disc încă %sB.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "După această operație se vor elibera %sB din spațiul ocupat pe disc.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "N-am putut determina spațiul disponibil în %s"
@@ -995,7 +995,7 @@ msgstr "Renunțare."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Vreți să continuați [Y/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Eșec la aducerea lui %s  %s\n"
@@ -1004,7 +1004,7 @@ msgstr "Eșec la aducerea lui %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Descărcarea unor fișiere a eșuat"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Descărcare completă și în modul doar descărcare"
 
@@ -1043,32 +1043,32 @@ msgstr[2] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Nu pot determina starea listei surse de pachete %s"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Comanda de actualizare nu are argumente"
 
 # XXX: orice sugestie este bine-venită
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "Nu este voie să se șteargă lucruri, nu se poate porni AutoRemover"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1087,15 +1087,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Următoarele informații ar putea să vă ajute la rezolvarea situației:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Eroare internă, AutoRemover a deteriorat diverse chestiuni"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1109,7 +1109,7 @@ msgstr[1] ""
 msgstr[2] ""
 "Următoarele pachete au fost instalate automat și nu mai sunt necesare:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1121,19 +1121,19 @@ msgstr[1] ""
 msgstr[2] ""
 "Următoarele pachete au fost instalate automat și nu mai sunt necesare:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Folosiți 'apt-get autoremove' pentru a le șterge."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Eroare internă, înnoire totală a defectat diverse chestiuni"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Ați putea porni 'apt-get -f install' pentru a corecta acestea:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1141,7 +1141,7 @@ msgstr ""
 "Dependențe neîndeplinite. Încercați 'apt-get -f install' fără nici un pachet "
 "(sau oferiți o altă soluție)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1154,81 +1154,81 @@ msgstr ""
 "pachete\n"
 "cerute n-au fost create încă sau au fost mutate din Incoming."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Pachete deteriorate"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Următoarele extra pachete vor fi instalate:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Pachete sugerate:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Pachete recomandate:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Nu pot găsi pachetul %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s este marcat ca fiind instalat manual.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Calculez înnoirea... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Eșec"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Terminat"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 "Eroare internă, rezolvatorul de probleme a deteriorat diverse chestiuni"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Nu s-a putut bloca directorul de descărcare"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Trebuie specificat cel puțin un pachet pentru a-i aduce sursa"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Nu s-a putut găsi o sursă pachet pentru %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1236,80 +1236,96 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Sar peste fișierul deja descărcat '%s'\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Nu aveți suficient spațiu în %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Este nevoie să descărcați %sB/%sB din arhivele surselor.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Este nevoie să descărcați %sB din arhivele surselor.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Aducere sursa %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Eșec la aducerea unor arhive."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Sar peste despachetarea sursei deja despachetate în %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Comanda de despachetare '%s' eșuată.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Verificați dacă pachetul 'dpkg-dev' este instalat.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Comanda de construire '%s' eșuată.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Procesul copil a eșuat"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Trebuie specificat cel puțin un pachet pentru a-i verifica dependențele "
 "înglobate"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Nu pot prelua informațiile despre dependențele înglobate ale lui %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s nu are dependențe înglobate.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"Dependența lui %s de %s nu poate fi satisfăcută deoarece pachetul %s nu "
+"poate fi găsit"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1318,46 +1334,55 @@ msgstr ""
 "Dependența lui %s de %s nu poate fi satisfăcută deoarece pachetul %s nu "
 "poate fi găsit"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Eșec la satisfacerea dependenței %s pentru %s: Pachetul instalat %s este "
+"prea nou"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "Dependența lui %s de %s nu poate fi satisfăcută deoarece nici o versiune "
 "disponibilă a pachetului %s nu poate satisface versiunile cerute"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Eșec la satisfacerea dependenței %s pentru %s: Pachetul instalat %s este "
-"prea nou"
+"Dependența lui %s de %s nu poate fi satisfăcută deoarece pachetul %s nu "
+"poate fi găsit"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Eșec la satisfacerea dependenței %s pentru %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Dependențele înglobate pentru %s nu pot fi satisfăcute."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Eșec la prelucrarea dependențelor de compilare"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Conectare la %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Module suportate:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1446,7 +1471,7 @@ msgstr ""
 "pentru mai multe informații și opțiuni.\n"
 "                       Acest APT are puterile unei Super Vaci.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1761,8 +1786,8 @@ msgstr "Fișierul %s/%s îl suprascrie pe cel din pachetul %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1794,7 +1819,7 @@ msgstr "Directoarele info și temp trebuie să fie în același sistem de fișie
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Citire liste de pachete"
 
@@ -2170,38 +2195,32 @@ msgstr "S-a întâmplat ceva „necurat” la rezolvarea lui „%s:%s” (%i)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Nu s-a putut realiza conexiunea cu %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "Abandonez instalarea."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Eroare internă: Semnătură corespunzătoare, dar nu s-a putut determina "
 "amprenta digitale a cheii?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Cel puțin o semnătură nevalidă a fost întâlnită."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Nu s-a putut executa „%s” pentru verificarea semnăturii (gpgv este instalat?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Eroare necunoscută în timp ce se execută gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Următoarele semnături nu au fost valide:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2359,59 +2378,59 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "Selecția %s nu a fost găsită"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Abreviere de tip nerecunoscut: „%c”"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Se deschide fișierul de configurare %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Eroare de sintaxă %s:%u: Blocul începe fără nume"
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Eroare de sintaxă %s:%u: etichetă greșită"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Eroare de sintaxă %s:%u: mizerii suplimentare după valoare"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Eroare de sintaxă %s:%u: Directivele pot fi date doar la nivelul superior"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Eroare de sintaxă %s:%u: prea multe imbricări incluse"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Eroare de sintaxă %s:%u: incluse de aici"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Eroare de sintaxă %s:%u: directivă nesuportată '%s'"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Eroare de sintaxă %s:%u: Directivele pot fi date doar la nivelul superior"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Eroare de sintaxă %s:%u: mizerii suplimentare la sfârșitul fișierului"
@@ -2555,7 +2574,7 @@ msgstr "Subprocesul %s a întors un cod de eroare (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Subprocesul %s s-a terminat brusc"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Nu s-a putut deschide fișierul %s"
@@ -2782,14 +2801,14 @@ msgstr "Linie greșită %u în lista sursă %s (tip)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Tipul '%s' nu este cunoscut în linia %u din lista sursă %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2801,7 +2820,7 @@ msgstr ""
 "nu-i de bine, dar dacă vreți întradevăr s-o faceți, activați opțiunea APT::"
 "Force-LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2832,7 +2851,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Nu pot corecta problema, ați ținut pachete deteriorate."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2884,12 +2903,12 @@ msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr ""
 "Vă rog introduceți discul numit: '%s' în unitatea '%s' și apăsați Enter."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Sistemul de pachete '%s' nu este suportat"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Nu s-a putut determina un tip de sistem de împachetare potrivit"
 
@@ -2917,17 +2936,24 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr "Lista surselor nu poate fi citită."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Înregistrare invalidă în fișierul de preferințe, fără antet de pachet"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Nu s-a înțeles tipul de pin %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Fără prioritate (sau zero) specificată pentru pin"
 
@@ -3022,7 +3048,7 @@ msgstr "Nu pot determina starea listei surse de pachete %s"
 msgid "Collecting File Provides"
 msgstr "Colectare furnizori fișier"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Eroare IO în timpul salvării sursei cache"
 
@@ -3035,8 +3061,8 @@ msgstr "redenumire eșuată, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "Nepotrivire MD5Sum"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Nepotrivire la suma de căutare"
 
@@ -3058,20 +3084,19 @@ msgstr ""
 "Nu există nici o cheie publică disponibilă pentru următoarele "
 "identificatoare de chei:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3079,12 +3104,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3093,7 +3118,7 @@ msgstr ""
 "N-am putut localiza un fișier pentru pachetul %s. Aceasta ar putea însemna "
 "că aveți nevoie să reparați manual acest pachet (din pricina unui arch lipsă)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3102,7 +3127,7 @@ msgstr ""
 "N-am putut localiza un fișier pentru pachetul %s. Aceasta ar putea însemna "
 "că aveți nevoie să depanați manual acest pachet."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3110,7 +3135,7 @@ msgstr ""
 "Fișierele index de pachete sunt deteriorate. Fără câmpul 'nume fișier:' la "
 "pachetul %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Nepotrivire dimensiune"
 
@@ -3233,22 +3258,22 @@ msgstr "Scriere noua listă sursă\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Intrările listei surselor pentru acest disc sunt:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "S-au scris %i înregistrări.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "S-au scris %i înregistrări cu %i fișiere lipsă.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "S-au scris %i înregistrări cu %i fișiere nepotrivite\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3269,6 +3294,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "Nepotrivire la suma de căutare"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "Abandonez instalarea."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index 95aa3ddaa27c84e9d5978ede24bbc65556902afc..ceb5e60d0cca4b6715fcc09f128486fc5e4f0f93 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -13,7 +13,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.8.0~pre1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-08-24 21:35+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
@@ -163,7 +163,7 @@ msgstr "  Таблица версий:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s для %s скомпилирован %s %s\n"
@@ -845,7 +845,7 @@ msgstr "Переустановка %s невозможна, он не скачи
 msgid "%s is already the newest version.\n"
 msgstr "Уже установлена самая новая версия %s.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s установлен вручную.\n"
@@ -965,8 +965,8 @@ msgstr ""
 "После данной операции, объём занятого дискового пространства уменьшится на "
 "%sB.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Не удалось определить количество свободного места в %s"
@@ -1005,7 +1005,7 @@ msgstr "Аварийное завершение."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Хотите продолжить [Д/н]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Не удалось получить %s  %s\n"
@@ -1014,7 +1014,7 @@ msgstr "Не удалось получить %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Некоторые файлы скачать не удалось"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Указан режим \"только скачивание\", и скачивание завершено"
 
@@ -1059,31 +1059,31 @@ msgstr[2] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Замечание: это сделано автоматически и специально программой dpkg."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Игнорируется недоступный выпуск '%s' пакета '%s'"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Используется '%s' в качестве исходного пакета вместо '%s'\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Игнорируется недоступная версия '%s' пакета '%s'"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Команде update не нужны аргументы"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "Не предполагалось удалять stuff, невозможно запустить AutoRemover"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1101,15 +1101,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Следующая информация, возможно, поможет вам:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Внутренняя ошибка, AutoRemover всё поломал"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1121,7 +1121,7 @@ msgstr[1] ""
 msgstr[2] ""
 "Следующие пакеты устанавливались автоматически и больше не требуются:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1130,21 +1130,21 @@ msgstr[0] "%lu пакет был установлен автоматически
 msgstr[1] "%lu пакета было установлено автоматически и больше не требуется.\n"
 msgstr[2] "%lu пакетов было установлены автоматически и больше не требуются.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Для их удаления используйте 'apt-get autoremove'."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Внутренняя ошибка, AllUpgrade всё поломал"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr ""
 "Возможно, для исправления этих ошибок вы захотите воспользоваться `apt-get -"
 "f install':"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1152,7 +1152,7 @@ msgstr ""
 "Неудовлетворённые зависимости. Попытайтесь выполнить 'apt-get -f install', "
 "не указывая имени пакета, (или найдите другое решение)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1163,74 +1163,74 @@ msgstr ""
 "или же используете нестабильную версию дистрибутива, где запрошенные вами\n"
 "пакеты ещё не созданы или были удалены из Incoming."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Сломанные пакеты"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Будут установлены следующие дополнительные пакеты:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Предлагаемые пакеты:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Рекомендуемые пакеты:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Не удалось найти пакет %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s выбран для автоматической установки.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Расчёт обновлений... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Неудачно"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Готово"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Внутренняя ошибка, решатель проблем всё поломал"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Невозможно заблокировать каталог, куда складываются скачиваемые файлы"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 "Укажите как минимум один пакет, исходный код которого необходимо получить"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Невозможно найти пакет с исходным кодом для %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1239,7 +1239,7 @@ msgstr ""
 "ВНИМАНИЕ: упаковка %s поддерживается в системе контроля версий %s:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1250,80 +1250,96 @@ msgstr ""
 "bzr get %s\n"
 "для получения последних (возможно не выпущенных) обновлений пакета.\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Пропускаем уже скачанный файл %s\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Недостаточно места в %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Необходимо получить %sб/%sб архивов исходного кода.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Необходимо получить %sб архивов исходного кода.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Получение исходного кода %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Некоторые архивы не удалось получить."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Пропускается распаковка уже распакованного исходного кода в %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Команда распаковки '%s' завершилась неудачно.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Проверьте, установлен ли пакет 'dpkg-dev'.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Команда сборки '%s' завершилась неудачно.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Порождённый процесс завершился неудачно"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Для проверки зависимостей для сборки необходимо указать как минимум один "
 "пакет"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Невозможно получить информацию о зависимостях для сборки %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s не имеет зависимостей для сборки.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"Зависимость типа %s для %s не может быть удовлетворена, так как пакет %s не "
+"найден"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1332,46 +1348,55 @@ msgstr ""
 "Зависимость типа %s для %s не может быть удовлетворена, так как пакет %s не "
 "найден"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Не удалось удовлетворить зависимость типа %s для пакета %s: Установленный "
+"пакет %s новее, чем надо"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "Зависимость типа %s для %s не может быть удовлетворена, поскольку ни одна из "
 "версий пакета %s не удовлетворяет требованиям"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Ð\9dе Ñ\83далоÑ\81Ñ\8c Ñ\83довлеÑ\82воÑ\80иÑ\82Ñ\8c Ð·Ð°Ð²Ð¸Ñ\81имоÑ\81Ñ\82Ñ\8c Ñ\82ипа %s Ð´Ð»Ñ\8f Ð¿Ð°ÐºÐµÑ\82а %s: Ð£Ñ\81Ñ\82ановленнÑ\8bй "
-"пакеÑ\82 %s Ð½Ð¾Ð²ÐµÐµ, Ñ\87ем Ð½Ð°Ð´Ð¾"
+"Ð\97авиÑ\81имоÑ\81Ñ\82Ñ\8c Ñ\82ипа %s Ð´Ð»Ñ\8f %s Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\82 Ð±Ñ\8bÑ\82Ñ\8c Ñ\83довлеÑ\82воÑ\80ена, Ñ\82ак ÐºÐ°Ðº Ð¿Ð°ÐºÐµÑ\82 %s Ð½Ðµ "
+"найден"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Невозможно удовлетворить зависимость типа %s для пакета %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Зависимости для сборки %s не могут быть удовлетворены."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Обработка зависимостей для сборки завершилась неудачно"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Соединение с %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Поддерживаемые модули:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1464,7 +1489,7 @@ msgstr ""
 "содержится подробная информация и описание параметров.\n"
 "                       В APT есть коровья СУПЕРСИЛА.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1779,8 +1804,8 @@ msgstr "Файл %s/%s переписывает файл в пакете %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1812,7 +1837,7 @@ msgstr "Каталоги info и temp должны находиться на о
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Чтение списков пакетов"
 
@@ -2185,36 +2210,30 @@ msgstr "Что-то странное произошло при определе
 msgid "Unable to connect to %s:%s:"
 msgstr "Невозможно соединиться с %s: %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "Связка ключей в %s не установлена."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Внутренняя ошибка: Правильная подпись, но не удалось определить отпечаток "
 "ключа?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Найдена как минимум одна неправильная подпись."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr "Не удалось выполнить gpgv для проверки подписи (gpgv установлена?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Неизвестная ошибка при выполнении gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Следующие подписи неверные:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2374,61 +2393,61 @@ msgstr "%liс"
 msgid "Selection %s not found"
 msgstr "Не найдено: %s"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Неизвестная аббревиатура типа: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Открытие файла настройки %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Синтаксическая ошибка %s:%u: в начале блока нет имени."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Синтаксическая ошибка %s:%u: искажённый тег"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Синтаксическая ошибка %s:%u: лишние символы после значения"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Синтаксическая ошибка %s:%u: директивы могут задаваться только на верхнем "
 "уровне"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Синтаксическая ошибка %s:%u: слишком много вложенных include"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Синтаксическая ошибка %s:%u вызвана include из этого места"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Синтаксическая ошибка %s:%u: не поддерживаемая директива '%s'"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Синтаксическая ошибка %s:%u: для директивы clear требуется третий параметр в "
 "качестве аргумента"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Синтаксическая ошибка %s:%u: лишние символы в конце файла"
@@ -2576,7 +2595,7 @@ msgstr "Порождённый процесс %s вернул код ошибк
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Порождённый процесс %s неожиданно завершился"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Не удалось открыть файл %s"
@@ -2808,7 +2827,7 @@ msgstr "Искажённая строка %u в списке источнико
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Неизвестный тип '%s' в строке %u в списке источников %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2817,7 +2836,7 @@ msgstr ""
 "Не удалось выполнить оперативную настройку '%s'. Подробней, смотрите в man 5 "
 "apt.conf о APT::Immediate-Configure. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2830,7 +2849,7 @@ msgstr ""
 "Если вы действительно хотите продолжить, установите параметр APT::Force-"
 "LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2863,7 +2882,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Невозможно исправить ошибки, у вас отложены (held) битые пакеты."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2914,12 +2933,12 @@ msgstr "Метод %s запустился не корректно"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Вставьте диск с меткой '%s' в устройство '%s' и нажмите ввод."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Менеджер пакетов '%s' не поддерживается"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Невозможно определить подходящий тип менеджера пакетов"
 
@@ -2944,17 +2963,24 @@ msgstr "Вы можете запустить 'apt-get update' для испра
 msgid "The list of sources could not be read."
 msgstr "Не читается перечень источников."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Неверная запись в файле параметров %s: отсутствует заголовок Package"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Неизвестный тип фиксации %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Для фиксации не указан приоритет (или указан нулевой)"
 
@@ -3044,7 +3070,7 @@ msgstr "Не удалось получить атрибуты списка па
 msgid "Collecting File Provides"
 msgstr "Сбор информации о Provides"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Ошибка ввода/вывода при попытке сохранить кэш источников"
 
@@ -3057,8 +3083,8 @@ msgstr "переименовать не удалось, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "MD5Sum не совпадает"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Хеш сумма не совпадает"
 
@@ -3078,20 +3104,19 @@ msgstr "Невозможно разобрать содержимое файла
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Недоступен открытый ключ для следующих ID ключей:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Файл Release просрочен, игнорируется %s (недостоверный начиная с %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Конфликт распространения: %s (ожидался %s, но получен %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3101,12 +3126,12 @@ msgstr ""
 "использованы предыдущие индексные файлы. Ошибка GPG: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "Ошибка GPG: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3115,7 +3140,7 @@ msgstr ""
 "Не удалось обнаружить файл пакета %s. Это может означать, что вам придётся "
 "вручную исправить этот пакет (возможно, пропущен arch)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3124,13 +3149,13 @@ msgstr ""
 "Не удалось обнаружить файл пакета %s. Это может означать, что вам придётся "
 "вручную исправить этот пакет."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr "Некорректный перечень пакетов. Нет поля Filename: для пакета %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Не совпадает размер"
 
@@ -3254,22 +3279,22 @@ msgstr "Запись нового списка источников\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Записи в списке источников для этого диска:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Сохранено %i записей.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Сохранено %i записей с %i отсутствующими файлами.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Сохранено %i записей с %i несовпадающими файлами\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3291,6 +3316,17 @@ msgstr "Не удалось найти аутентификационную за
 msgid "Hash mismatch for: %s"
 msgstr "Не совпадает хеш сумма для: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "Связка ключей в %s не установлена."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3555,6 +3591,10 @@ msgstr "Соединение закрыто преждевременно"
 #~ msgid "Internal error, group '%s' has no installable pseudo package"
 #~ msgstr "Внутренняя ошибка, группа %s не устанавливается псевдо-пакетом"
 
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr ""
+#~ "Файл Release просрочен, игнорируется %s (недостоверный начиная с %s)"
+
 #~ msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
 #~ msgstr ""
 #~ "E: Слишком большой список параметров у Acquire::gpgv::Options. Завершение "
index f62b5c6130bfdf6cdf83285953f4ba9a28159ffb..474b6688132dcc5d252a3cfa8c0b6dd5c2731054 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-08-24 23:57+0100\n"
 "Last-Translator: Ivan Masár <helix84@centrum.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -157,7 +157,7 @@ msgstr "  Tabuľka verzií:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s pre %s skompilovaný %s %s\n"
@@ -831,7 +831,7 @@ msgstr "Nie je možná reinštalácia %s, pretože sa nedá stiahnuť.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s je už najnovšej verzie.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s je označený ako manuálne nainštalovaný.\n"
@@ -945,8 +945,8 @@ msgstr "Po tejto operácii sa na disku použije ďalších %sB.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Po tejto operácii sa na disku uvoľní %sB.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Na %s sa nedá zistiť veľkosť voľného miesta"
@@ -983,7 +983,7 @@ msgstr "Prerušené."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Chcete pokračovať [Y/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Zlyhalo stiahnutie %s  %s\n"
@@ -992,7 +992,7 @@ msgstr "Zlyhalo stiahnutie %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Niektoré súbory sa nedajú stiahnuť"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Sťahovanie ukončené v režime „iba stiahnuť“"
 
@@ -1037,31 +1037,31 @@ msgstr[2] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Pozn.: Toto robí dpkg automaticky a zámerne."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Ignorovať nedostupné cieľové vydanie „%s“ balíka „%s“"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Vyberá sa „%s“ ako zdrojový balík namiesto „%s“\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Ignorovať nedostupnú verziu „%s“ balíka „%s“"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Príkaz update neprijíma žiadne argumenty"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "Nemajú sa odstraňovať veci, nespustí sa AutoRemover"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1079,15 +1079,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Nasledovné informácie vám možno pomôžu vyriešiť túto situáciu:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Vnútorná chyba, AutoRemover niečo pokazil"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1100,7 +1100,7 @@ msgstr[1] ""
 msgstr[2] ""
 "Nasledovné balíky boli nainštalované automaticky a už viac nie sú potrebné:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1112,19 +1112,19 @@ msgstr[1] ""
 msgstr[2] ""
 "%lu balíkov bolo nainštalovaných automaticky a už viac nie sú potrebné.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Na ich odstránenie použite „apt-get autoremove“."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Vnútorná chyba, AllUpgrade pokazil veci"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Možno to budete chcieť napraviť spustením „apt-get -f install“:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1132,7 +1132,7 @@ msgstr ""
 "Nesplnené závislosti. Skúste spustiť „apt-get -f install“ bez balíkov (alebo "
 "navrhnite riešenie)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1144,73 +1144,73 @@ msgstr ""
 "požadované balíky ešte neboli vytvorené alebo presunuté z fronty\n"
 "Novoprichádzajúcich (Incoming) balíkov."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Poškodené balíky"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Nainštalujú sa nasledovné extra balíky:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Navrhované balíky:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Odporúčané balíky:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Balík %s sa nedá nájsť"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s je označený ako automaticky nainštalovaný.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Prepočítava sa aktualizácia... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Chyba"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Hotovo"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Vnútorná chyba, „problem resolver“ niečo pokazil"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Adresár pre sťahovanie sa nedá zamknúť"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Musíte zadať aspoň jeden balík, pre ktorý sa stiahnu zdrojové texty"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Nedá sa nájsť zdrojový balík pre %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1220,7 +1220,7 @@ msgstr ""
 "adrese:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1232,125 +1232,146 @@ msgstr ""
 "ak chcete získať najnovšie (a pravdepodobne zatiaľ nevydané) aktualizácie "
 "balíka.\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Preskakuje sa už stiahnutý súbor „%s“\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Na %s nemáte dostatok voľného miesta"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Je potrebné stiahnuť %sB/%sB zdrojových archívov.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Je potrebné stiahnuť %sB zdrojových archívov.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Stiahnuť zdroj %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Zlyhalo stiahnutie niektorých archívov."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Preskakuje sa rozbalenie už rozbaleného zdroja v %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Príkaz na rozbalenie „%s“ zlyhal.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Skontrolujte, či je nainštalovaný balík „dpkg-dev“.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Príkaz na zostavenie „%s“ zlyhal.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Proces potomka zlyhal"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Musíte zadať aspoň jeden balík, pre ktorý sa budú overovať závislosti na "
 "zostavenie"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Nedajú sa získať závislosti na zostavenie %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s nemá žiadne závislosti na zostavenie.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr "%s závislosť pre %s sa nemôže splniť, pretože sa nedá nájsť balík %s"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr "%s závislosť pre %s sa nemôže splniť, pretože sa nedá nájsť balík %s"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Zlyhalo splnenie %s závislosti pre %s: Inštalovaný balík %s je príliš nový"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "%s závislosť pre %s sa nedá splniť, pretože sa nedá nájsť verzia balíka %s, "
 "ktorá zodpovedá požiadavke na verziu"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr ""
-"Zlyhalo splnenie %s závislosti pre %s: Inštalovaný balík %s je príliš nový"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
+msgstr "%s závislosť pre %s sa nemôže splniť, pretože sa nedá nájsť balík %s"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Zlyhalo splnenie %s závislosti pre %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Závislosti na zostavenie %s sa nedajú splniť."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Spracovanie závislostí na zostavenie zlyhalo"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Pripája sa k %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Podporované moduly:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1439,7 +1460,7 @@ msgstr ""
 "a apt.conf(5).\n"
 "                       Tento APT má schopnosti posvätnej kravy.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1751,8 +1772,8 @@ msgstr "Súbor %s/%s prepisuje ten z balíka %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1784,7 +1805,7 @@ msgstr "Adresáre info a temp musia byť na tom istom súborovom systéme"
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Načítavajú sa zoznamy balíkov"
 
@@ -2152,34 +2173,28 @@ msgstr "Niečo veľmi zlé sa prihodilo pri preklade „%s:%s“ (%i - %s)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Nedá sa pripojiť k %s:%s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "V %s nie je nainštalovaný žiaden zväzok kľúčov."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr "Vnútorná chyba: Správna signatúra, ale sa nedá zistiť odtlačok kľúča?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Bola zistená aspoň jedna nesprávna signatúra."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr "Nedá sa spustiť „gpgv“ kvôli overeniu podpisu (je nainštalované gpgv?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Neznáma chyba pri spustení gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Nasledovné signatúry sú neplatné:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2339,59 +2354,59 @@ msgstr "%li s"
 msgid "Selection %s not found"
 msgstr "Voľba %s nenájdená"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Nerozpoznaná skratka typu: „%c“"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Otvára sa konfiguračný súbor %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Syntaktická chyba %s:%u: Blok začína bez názvu."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Syntaktická chyba %s:%u: Skomolená značka"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Syntaktická chyba %s:%u: Za hodnotou nasledujú chybné údaje"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Syntaktická chyba %s:%u: Direktívy sa dajú vykonať len na najvyššej úrovni"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Syntaktická chyba %s:%u: Príliš mnoho vnorených prepojení (include)"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Syntaktická chyba %s:%u: Zahrnuté odtiaľ"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Syntaktická chyba %s:%u: Nepodporovaná direktíva „%s“"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Syntaktická chyba %s:%u: direktíva clear vyžaduje ako argument strom volieb"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Syntaktická chyba %s:%u: Na konci súboru sú chybné údaje"
@@ -2534,7 +2549,7 @@ msgstr "Podproces %s vrátil chybový kód (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Podproces %s neočakávane skončil"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Nedá sa otvoriť súbor %s"
@@ -2762,7 +2777,7 @@ msgstr "Skomolený riadok %u v zozname zdrojov %s (typ)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Typ „%s“ je neznámy na riadku %u v zozname zdrojov %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2771,7 +2786,7 @@ msgstr ""
 "Nebolo možné vykonať okamžitú konfiguráciu „%s“. Pozri prosím podrobnosti v "
 "man 5 apt.conf pod APT::Immediate-Configure (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2782,7 +2797,7 @@ msgstr ""
 "kvôli slučke v Conflicts/Pre-Depends. Často je to nevhodné, ale ak to chcete "
 "naozaj urobiť, aktivujte možnosť APT::Force-LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2814,7 +2829,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Problémy sa nedajú opraviť, niektoré balíky držíte v poškodenom stave."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2865,12 +2880,12 @@ msgstr "Spôsob %s nebol správne spustený"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Vložte disk nazvaný „%s“ do mechaniky „%s“ a stlačte Enter."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Systém balíkov „%s“ nie je podporovaný"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Nedá sa určiť vhodný typ systému balíkov"
 
@@ -2895,17 +2910,24 @@ msgstr "Na opravu týchto problémov môžete skúsiť spustiť apt-get update"
 msgid "The list of sources could not be read."
 msgstr "Nedá sa načítať zoznam zdrojov."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Neplatný záznam v súbore nastavení %s, chýba hlavička Package"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Nezrozumiteľné pridržanie typu %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Nebola zadaná žiadna (alebo nulová) priorita na pridržanie"
 
@@ -2996,7 +3018,7 @@ msgstr "Nedá sa vyhodnotiť zoznam zdrojových balíkov %s"
 msgid "Collecting File Provides"
 msgstr "Collecting File poskytuje"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "V/V chyba pri ukladaní zdrojovej vyrovnávacej pamäti"
 
@@ -3009,8 +3031,8 @@ msgstr "premenovanie zlyhalo, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "Nezhoda kontrolných MD5 súčtov"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Nezhoda kontrolných haš súčtov"
 
@@ -3030,20 +3052,19 @@ msgstr "Nedá spracovať súbor Release %s"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Nie sú dostupné žiadne verejné kľúče ku kľúčom s nasledovnými ID:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Platnosť súboru Release vypršala, ignoruje sa %s (neplatný od %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "V konflikte s distribúciou: %s (očakávalo sa %s ale dostali sme %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3053,12 +3074,12 @@ msgstr ""
 "použijú sa predošlé indexové súbory. Chyba GPG: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "Chyba GPG: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3067,7 +3088,7 @@ msgstr ""
 "Nedá sa nájsť súbor s balíkom %s. To by mohlo znamenať, že tento balík je "
 "potrebné opraviť manuálne (kvôli chýbajúcej architektúre)."
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3076,13 +3097,13 @@ msgstr ""
 "Nedá sa nájsť súbor s balíkom %s. Asi budete musieť opraviť tento balík "
 "manuálne."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr "Indexové súbory balíka sú narušené. Chýba pole Filename: pre balík %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Veľkosti sa nezhodujú"
 
@@ -3206,22 +3227,22 @@ msgstr "Zapisuje sa nový zoznam zdrojov\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Položky zoznamu zdrojov pre tento disk sú:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Zapísaných %i záznamov.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Zapísaných %i záznamov s %i chýbajúcimi súbormi.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Zapísaných %i záznamov s %i chybnými súbormi\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "Zapísaných %i záznamov s %i chýbajúcimi a %i chybnými súbormi\n"
@@ -3241,6 +3262,17 @@ msgstr "Nebolo možné nájsť autentifikačný záznam pre: %s"
 msgid "Hash mismatch for: %s"
 msgstr "Nezhoda kontrolných haš súčtov: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "V %s nie je nainštalovaný žiaden zväzok kľúčov."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3495,3 +3527,6 @@ msgstr "Spojenie bolo predčasne ukončené"
 
 #~ msgid "Internal error, group '%s' has no installable pseudo package"
 #~ msgstr "Vnútorná chyba, skupina „%s“ nemá žiaden inštalovateľný pseudobalík"
+
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "Platnosť súboru Release vypršala, ignoruje sa %s (neplatný od %s)"
index bc80a208ce1dc627060e2922b597bb05fbaec6cc..0e22525430b62e86052eb1e0f3b5a43ca3e84223 100644 (file)
--- a/po/sl.po
+++ b/po/sl.po
@@ -4,7 +4,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.5.5\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2011-03-06 15:47+0000\n"
 "Last-Translator: Andrej Znidarsic <andrej.znidarsic@gmail.com>\n"
 "Language-Team: Slovenian <sl@li.org>\n"
@@ -157,7 +157,7 @@ msgstr "  Preglednica različic:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s za %s kodno preveden na %s %s\n"
@@ -829,7 +829,7 @@ msgstr "Ponovna namestitev %s ni možna, ker prejem ni možen.\n"
 msgid "%s is already the newest version.\n"
 msgstr "Najnovejša različica %s je že nameščena.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s je bil nastavljen na ročno nameščen.\n"
@@ -943,8 +943,8 @@ msgstr "Po tem opravilu bo porabljenega %sB dodatnega prostora.\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Po tem opravilu bo sproščenega %sB prostora na disku.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Ni mogoče določiti prostega prostora v %s"
@@ -981,7 +981,7 @@ msgstr "Prekini."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Ali želite nadaljevati [Y/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Ni mogoče dobiti %s  %s\n"
@@ -990,7 +990,7 @@ msgstr "Ni mogoče dobiti %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Prejem nekaterih datotek ni uspel"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Prejem je dokončan in uporabljen je način samo prejema"
 
@@ -1038,33 +1038,33 @@ msgstr[3] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Opomba: To je dpkg storil samodejno in namenoma."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Prezri nerazpoložljiv cilj izdaje '%s' paketa '%s'"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Izbiranje '%s' kot vir paketa namesto '%s'\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Prezri nerazpoložljivo različico '%s' paketa '%s'"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Ukaz update ne sprejema argumentov"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 "Program ne bi smel brisati stvari, ni mogoče zagnati "
 "SamodejnegaOdstranjevalnika"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1083,15 +1083,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Naslednji podatki vam bodo morda pomagali rešiti težavo:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Notranja napaka, SamodejniOdstranjevalnik je pokvaril stvari"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1103,7 +1103,7 @@ msgstr[2] ""
 "Naslednja paketa sta bila samodejno nameščena in nista več zahtevana:"
 msgstr[3] "Naslednji paketi so bili samodejno nameščeni in niso več zahtevani:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1113,19 +1113,19 @@ msgstr[1] "%lu paket je bil samodejno nameščen in ni bil več zahtevan.\n"
 msgstr[2] "%lu paketa sta bila samodejno nameščena in nista več zahtevana.\n"
 msgstr[3] "%lu paketi so bili samodejno nameščeni in niso več zahtevani.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Uporabite 'apt-get autoremove' za njihovo odstranitev."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Notranja napaka zaradi AllUpgrade."
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Poskusite zagnati 'apt-get -f install', če želite popraviti naslednje:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1133,7 +1133,7 @@ msgstr ""
 "Nerešene odvisnosti. Poskusite 'apt-get -f install' brez paketov (ali "
 "navedite rešitev)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1145,74 +1145,74 @@ msgstr ""
 ", da nekateri zahtevani paketi še niso ustvarjeni ali premaknjeni\n"
 " iz Prihajajočega."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Pokvarjeni paketi"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Naslednji dodatni paketi bodo nameščeni:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Predlagani paketi:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Priporočeni paketi:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Ni mogoče najti paketa %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s je nastavljen na samodejno nameščen.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Preračunavanje nadgradnje ... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Spodletelo"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Opravljeno"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Notranja napaka, reševalnik težav je pokvaril stvari"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Ni mogoče zakleniti mape prejemov"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr "Prejemanje %s %s"
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 "Potrebno je navesti vsaj en paket, za katerega želite dobiti izvorno kodo"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Izvornega paketa za %s ni mogoče najti"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1221,7 +1221,7 @@ msgstr ""
 "OPOMBA: pakiranje '%s' vzdrževano v sistemu nadzora različice '%s' na:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1232,125 +1232,146 @@ msgstr ""
 "bzr get %s\n"
 "za pridobivanje zadnjih (morda neizdanih) posodobitev paketa.\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Preskok že prejete datoteke '%s'\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Nimate dovolj prostora na %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Potrebno je dobiti %sB/%sB izvornih arhivov.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Potrebno je dobiti %sB izvornih arhivov.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Dobi vir %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Nekaterih arhivov ni mogoče pridobiti."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Odpakiranje že odpakiranih izvornih paketov v %s je bilo preskočeno\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Ukaz odpakiranja '%s' ni uspel.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Izberite, če je paket 'dpkg-dev' nameščen.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Ukaz gradnje '%s' ni uspel.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Podrejeno opravilo ni uspelo"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Potrebno je navesti vsaj en paket, za katerega želite preveriti odvisnosti "
 "za gradnjo"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Ni mogoče dobiti podrobnosti o odvisnostih za gradnjo za %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s nima odvisnosti za gradnjo.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr "%s odvisnosti za %s ni mogoče zadostiti, ker ni mogoče najti paketa %s"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr "%s odvisnosti za %s ni mogoče zadostiti, ker ni mogoče najti paketa %s"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Ni mogoče zadostiti %s odvisnosti za %s. Nameščen paket %s je preveč nov"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "%s odvisnosti za %s ni mogoče zadostiti, ker nobena različica paketa %s ne "
 "more zadostiti zahtevi po različici"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr ""
-"Ni mogoče zadostiti %s odvisnosti za %s. Nameščen paket %s je preveč nov"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
+msgstr "%s odvisnosti za %s ni mogoče zadostiti, ker ni mogoče najti paketa %s"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Ni mogoče zadostiti %s odvisnosti za %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Odvisnosti za gradnjo %s ni bilo mogoče zadostiti."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Obdelava odvisnosti za gradnjo je spodletela"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Dnevnik sprememb za %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Podprti moduli:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1440,7 +1461,7 @@ msgstr ""
 "sources.list(5) in apt.conf(5).\n"
 "                       Ta APT ima zmožnosti Super krave.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1754,8 +1775,8 @@ msgstr "Datoteka %s/%s prepisuje datoteko v paketu %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1787,7 +1808,7 @@ msgstr "Podatki in začasne mape morajo biti na istem datotečnem sistemu"
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Branje seznama paketov"
 
@@ -2154,35 +2175,29 @@ msgstr "Nekaj čudnega se je zgodilo med razreševanjem '%s:%s' (%i - %s)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Ni se mogoče povezati z %s:%s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "V %s ni nameščenih zbirk ključev."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Notranja napaka: Dober podpis, toda ni mogoče določiti podpisa ključa?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Najden je bil vsaj en neveljaven podpis."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr "Ni mogoče izvesti 'gpgv' za preverjanje podpisa (je gpgv nameščen?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Neznana napaka med izvajanjem gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Naslednji podpisi so bili neveljavni:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2340,59 +2355,59 @@ msgstr "%lis"
 msgid "Selection %s not found"
 msgstr "Izbire %s ni mogoče najti"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Neprepoznana vrsta okrajšave: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Odpiranje nastavitvene datoteke %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Skladenjska napaka %s:%u: Blok se začne brez imena."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Skladenjska napaka %s:%u: Slabo oblikovana oznaka."
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Skladenjska napaka %s:%u: Dodatna krama za vrednostjo."
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Skladenjska napaka %s:%u: Napotki se lahko izvedejo le na vrhnji ravni."
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Skladenjska napaka %s:%u: Preveč vgnezdenih vključitev"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Skladenjska napaka %s:%u: Vključeno od tu"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Skladenjska napaka %s:%u: Nepodprt napotek '%s'"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Skladenjska napaka %s:%u: počisti ukaz zahteva drevo možnosti kot argument"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Skladenjska napaka %s:%u: Dodatna krama na koncu datoteke"
@@ -2536,7 +2551,7 @@ msgstr "Pod-opravilo %s je vrnilo kodo napake (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Pod-opravilo %s se je nepričakovano zaključilo"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Ni mogoče odpreti datoteke %s"
@@ -2769,7 +2784,7 @@ msgstr "Slabo oblikovana vrstica %u v seznamu virov %s (vrsta)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Vrsta '%s' v vrstici %u na seznamu virov %s ni znana"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2778,7 +2793,7 @@ msgstr ""
 "Ni mogoče izvesti takojąnje nastavitve na '%s'. Oglejte si man5 apt.conf pod "
 "APT::Takojąnja-nastavitev za podrobnosti. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2789,7 +2804,7 @@ msgstr ""
 "zanke spora/predodvisnosti. To je ponavadi slabo, toda če zares želite "
 "nadaljevati, vključite možnost APT::Force-LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2821,7 +2836,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Ni mogoče popraviti težav. Imate pokvarjene pakete."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
 "used instead."
@@ -2871,12 +2886,12 @@ msgstr "Način %s se ni začel pravilno"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Vstavite disk z oznako '%s' v pogon '%s' in pritisnite vnosno tipko."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Paketni sistem '%s' ni podprt"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Ni mogoče določiti ustrezne vrste paketnega sistema"
 
@@ -2901,17 +2916,24 @@ msgstr "Za odpravljanje težav poskusite zagnati apt-get update."
 msgid "The list of sources could not be read."
 msgstr "Seznama virov ni mogoče brati."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Neveljaven zapis v datoteki možnosti %s, ni glave paketa"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Ni mogoče razumeti vrste bucike %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Prednost bucike ni navedena ali pa je nič."
 
@@ -3000,7 +3022,7 @@ msgstr "Ni mogoče določiti seznama izvornih paketov %s"
 msgid "Collecting File Provides"
 msgstr "Zbiranje dobaviteljev datotek"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Napaka VI med shranjevanjem predpomnilnika virov"
 
@@ -3013,8 +3035,8 @@ msgstr "preimenovanje je spodletelo, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "Neujemanje vsote MD5"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Neujemanje vsote razpršil"
 
@@ -3036,20 +3058,19 @@ msgstr "Ni mogoče najti vsote razprševanja za '%s' v datoteki Release"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Za naslednje ID-je ključa ni na voljo javnih ključev:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Datoteka Release je potekla, prezrtje %s (neveljavno od %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Distribucija v sporu: %s (pričakovana %s, toda dobljena %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3059,12 +3080,12 @@ msgstr ""
 "zato bodo uporabljene predhodne datoteke kazal. Napaka GPG: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "Napaka GPG: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3073,7 +3094,7 @@ msgstr ""
 "Ni bilo mogoče najti datoteke za paket %s. Morda boste morali ročno "
 "popraviti ta paket (zaradi manjkajočega arhiva)."
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3082,7 +3103,7 @@ msgstr ""
 "Ni bilo mogoče najti datoteke za paket %s. Morda boste morali ročno "
 "popraviti ta paket."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3090,7 +3111,7 @@ msgstr ""
 "Datoteke s kazali paketov so pokvarjene. Brez imena datotek: polje za paket "
 "%s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Neujemanje velikosti"
 
@@ -3214,22 +3235,22 @@ msgstr "Pisanje novega seznama virov\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Izvorni vnosi za ta disk so:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Zapisanih je bilo %i zapisov.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Zapisanih je bilo %i zapisov z %i manjkajočimi datotekami.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Zapisanih je bilo %i zapisov z %i neujemajočimi datotekami.\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3251,6 +3272,17 @@ msgstr "Ni mogoče najti zapisa overitve za: %s"
 msgid "Hash mismatch for: %s"
 msgstr "Neujemanje razpršila za: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "V %s ni nameščenih zbirk ključev."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3506,6 +3538,9 @@ msgstr "Povezava se je prezgodaj zaprla"
 #~ msgid "Internal error, group '%s' has no installable pseudo package"
 #~ msgstr "Notranja napaka, skupina '%s' nima namestljivega psevdo paketa"
 
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "Datoteka Release je potekla, prezrtje %s (neveljavno od %s)"
+
 #~ msgid "short read in buffer_copy %s"
 #~ msgstr "kratko branje v kopiji_medpomnilnika %s"
 
index 64e98cc466f4455fbf5c050e8275fd0ddd8cb2a9..b999d759115c6b8ef19828dbeda07c57ad9deaea 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-08-24 21:18+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <debian-l10n-swedish@debian.org>\n"
@@ -157,7 +157,7 @@ msgstr "  Versionstabell:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s för %s kompilerad den %s %s\n"
@@ -839,7 +839,7 @@ msgstr "Ominstallation av %s är inte möjlig, det kan inte hämtas.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s är redan den senaste versionen.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s är satt till manuellt installerad.\n"
@@ -954,8 +954,8 @@ msgstr ""
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Efter denna åtgärd kommer %sB att frigöras på disken.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Kunde inte fastställa ledigt utrymme i %s"
@@ -993,7 +993,7 @@ msgstr "Avbryter."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Vill du fortsätta [J/n]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Misslyckades med att hämta %s  %s\n"
@@ -1002,7 +1002,7 @@ msgstr "Misslyckades med att hämta %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Misslyckades med att hämta vissa filer"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Hämtningen färdig i \"endast-hämta\"-läge"
 
@@ -1044,32 +1044,32 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Observera: Detta sker med automatik och vid behov av dpkg."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Ignorera otillgängliga målutgåvan \"%s\" av paketet \"%s\""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Väljer \"%s\" som källkodspaket istället för \"%s\"\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Ignorera otillgängliga versionen \"%s\" av paketet \"%s\""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Uppdateringskommandot tar inga argument"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 "Det är inte meningen att vi ska ta bort något, kan inte starta AutoRemover"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1087,15 +1087,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Följande information kan vara till hjälp för att lösa situationen:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Internt fel, AutoRemover förstörde något"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1106,7 +1106,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Följande paket har installerats automatiskt och är inte längre nödvändiga:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1116,19 +1116,19 @@ msgstr[0] ""
 msgstr[1] ""
 "%lu paket blev installerade automatiskt och är inte längre nödvändiga.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Använd \"apt-get autoremove\" för att ta bort dem."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Internt fel, AllUpgrade förstörde något"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Du bör köra \"apt-get -f install\" för att korrigera dessa:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1136,7 +1136,7 @@ msgstr ""
 "Otillfredsställda beroenden. Prova med \"apt-get -f install\" utan paket "
 "(eller ange en lösning)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1148,73 +1148,73 @@ msgstr ""
 "att några nödvändiga paket ännu inte har skapats eller flyttats\n"
 "ut från \"Incoming\"."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Trasiga paket"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Följande ytterligare paket kommer att installeras:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Föreslagna paket:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Rekommenderade paket:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Kunde inte hitta paketet %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s är satt till automatiskt installerad.\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Beräknar uppgradering... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Misslyckades"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Färdig"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Internt fel, problemlösaren förstörde någonting"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Kunde inte låsa hämtningskatalogen"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Du måste ange minst ett paket att hämta källkod för"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Kunde inte hitta något källkodspaket för %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1224,7 +1224,7 @@ msgstr ""
 "på:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1235,78 +1235,94 @@ msgstr ""
 "bzr get %s\n"
 "för att hämta senaste (möjligen inte utgivna) uppdateringar av paketet.\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Hoppar över redan hämtade filen \"%s\"\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Du har inte tillräckligt mycket ledigt utrymme i %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Behöver hämta %sB/%sB källkodsarkiv.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Behöver hämta %sB källkodsarkiv.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Hämtar källkoden %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Misslyckades med att hämta vissa arkiv."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Packar inte upp redan uppackad källkod i %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Uppackningskommandot \"%s\" misslyckades.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Försäkra dig om att paketet \"dpkg-dev\" är installerat.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Byggkommandot \"%s\" misslyckades.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Barnprocessen misslyckades"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr "Du måste ange minst ett paket att kontrollera byggberoenden för"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Kunde inte hämta information om byggberoenden för %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s har inga byggberoenden.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"%s-beroendet på %s kan inte tillfredsställas eftersom paketet %s inte kan "
+"hittas"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1315,47 +1331,56 @@ msgstr ""
 "%s-beroendet på %s kan inte tillfredsställas eftersom paketet %s inte kan "
 "hittas"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Misslyckades med att tillfredsställa %s-beroendet för %s: Det installerade "
+"paketet %s är för nytt"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "%s-beroendet på %s kan inte tillfredsställas eftersom inga tillgängliga "
 "versioner av paketet %s tillfredsställer versionskraven"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Misslyckades med att tillfredsställa %s-beroendet för %s: Det installerade "
-"paketet %s är för nytt"
+"%s-beroendet på %s kan inte tillfredsställas eftersom paketet %s inte kan "
+"hittas"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Misslyckades med att tillfredsställa %s-beroendet för %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Byggberoenden för %s kunde inte tillfredsställas."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Misslyckades med att behandla byggberoenden"
 
 # Felmeddelande för misslyckad chdir
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Ansluter till %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Moduler som stöds:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1443,7 +1468,7 @@ msgstr ""
 "för mer information och flaggor.\n"
 "                     Denna APT har Speciella Ko-Krafter.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1762,8 +1787,8 @@ msgstr "Filen %s/%s skriver över den i paketet %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1795,7 +1820,7 @@ msgstr "Katalogerna info och temp måste vara på samma filsystem"
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Läser paketlistor"
 
@@ -2169,37 +2194,31 @@ msgstr "Något konstigt hände när \"%s:%s\" slogs upp (%i - %s)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Kunde inte ansluta till %s:%s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "Ingen nyckelring installerad i %s."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Internt fel: Korrekt signatur men kunde inte fastställa nyckelns "
 "fingeravtryck?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Minst en ogiltig signatur träffades på."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Kunde inte köra \"gpgv\" för att verifiera signatur (är gpgv installerad?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Okänt fel vid körning av gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Följande signaturer är ogiltiga:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2360,57 +2379,57 @@ msgstr "%lis"
 msgid "Selection %s not found"
 msgstr "Valet %s hittades inte"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Okänd typförkortning: \"%c\""
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Öppnar konfigurationsfilen %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Syntaxfel %s:%u: Block börjar utan namn."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Syntaxfel %s:%u: Felformat märke"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Syntaxfel %s:%u: Överflödigt skräp efter värde"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "Syntaxfel %s:%u: Direktiv kan endast utföras på toppnivån"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Syntaxfel %s:%u: För många nästlade inkluderingar"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Syntaxfel %s:%u: Inkluderad härifrån"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Syntaxfel %s:%u: Direktivet \"%s\" stöds inte"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "Syntaxfel %s:%u: clear-direktivet kräver ett flaggträd som argument"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Syntaxfel %s:%u: Överflödigt skräp vid filens slut"
@@ -2555,7 +2574,7 @@ msgstr "Underprocessen %s svarade med en felkod (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Underprocessen %s avslutades oväntat"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Kunde inte öppna filen %s"
@@ -2785,7 +2804,7 @@ msgstr "Rad %u i källistan %s har fel format (typ)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Typ \"%s\" är inte känd på rad %u i listan över källor %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2794,7 +2813,7 @@ msgstr ""
 "Kunde inte genomföra omedelbar konfiguration på \"%s\". Se man 5 apt.conf "
 "under APT::Immediate-Configure för information. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2806,7 +2825,7 @@ msgstr ""
 "Detta är oftast en dålig idé, men om du verkligen vill göra det kan du "
 "aktivera flaggan \"APT::Force-LoopBreak\"."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2839,7 +2858,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Kunde inte korrigera problemen, du har hållit tillbaka trasiga paket."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2891,13 +2910,13 @@ msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr ""
 "Mata in skivan med etiketten \"%s\" i enheten \"%s\" och tryck på Enter."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Paketsystemet \"%s\" stöds inte"
 
 #
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Kunde inte fastställa en lämplig paketsystemstyp"
 
@@ -2922,18 +2941,25 @@ msgstr "Du kan möjligen rätta till problemet genom att köra \"apt-get update\
 msgid "The list of sources could not be read."
 msgstr "Listan över källor kunde inte läsas."
 
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
 # "Package" är en sträng i konfigurationsfilen
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Ogiltig post i konfigurationsfilen %s, \"Package\"-rubriken saknas"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Förstod inte nåltypen %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Prioritet ej angiven (eller noll) för nål"
 
@@ -3025,7 +3051,7 @@ msgstr "Kunde inte ta status på källkodspaketlistan %s"
 msgid "Collecting File Provides"
 msgstr "Samlar filtillhandahållningar"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "In-/utfel vid lagring av källcache"
 
@@ -3038,8 +3064,8 @@ msgstr "namnbyte misslyckades, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "MD5-kontrollsumman stämmer inte"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Hash-kontrollsumman stämmer inte"
 
@@ -3059,20 +3085,19 @@ msgstr "Kunde inte tolka \"Release\"-filen %s"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Det finns ingen öppen nyckel tillgänglig för följande nyckel-id:n:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Release-filen har gått ut, ignorerar %s (ogiltig sedan %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Konflikt i distribution: %s (förväntade %s men fick %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3083,12 +3108,12 @@ msgstr ""
 "%s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "GPG-fel: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3097,7 +3122,7 @@ msgstr ""
 "Jag kunde inte hitta någon fil för paketet %s. Detta kan betyda att du "
 "manuellt måste reparera detta paket (på grund av saknad arkitektur)."
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3106,13 +3131,13 @@ msgstr ""
 "Jag kunde inte hitta någon fil för paketet %s. Detta kan betyda att du "
 "manuellt måste reparera detta paket."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr "Paketindexfilerna är skadede. Inget \"Filename:\"-fält för paketet %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Storleken stämmer inte"
 
@@ -3236,22 +3261,22 @@ msgstr "Skriver ny källista\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Poster i källistan för denna skiva:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Skrev %i poster.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Skrev %i poster med %i saknade filer.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Skrev %i poster med %i filer som inte stämmer\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "Skrev %i poster med %i saknade filer och %i filer som inte stämmer\n"
@@ -3271,6 +3296,17 @@ msgstr "Kan inte hitta autentiseringspost för: %s"
 msgid "Hash mismatch for: %s"
 msgstr "Hash-kontrollsumman stämmer inte för: %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "Ingen nyckelring installerad i %s."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3530,6 +3566,9 @@ msgstr "Anslutningen stängdes i förtid"
 #~ msgid "Internal error, group '%s' has no installable pseudo package"
 #~ msgstr "Internt fel, gruppen \"%s\" har inget installerbart pseudo-paket"
 
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "Release-filen har gått ut, ignorerar %s (ogiltig sedan %s)"
+
 #~ msgid "E: Too many keyrings should be passed to gpgv. Exiting."
 #~ msgstr "F: För många nyckelringar skulle skickas till gpgv. Avslutar."
 
index 6cdf871e3fb159297e3e1c07ebf895454680760a..a1316d10e7e984996cec536d57bb5f0d41b271c6 100644 (file)
--- a/po/th.po
+++ b/po/th.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2008-11-06 15:54+0700\n"
 "Last-Translator: Theppitak Karoonboonyanan <thep@linux.thai.net>\n"
 "Language-Team: Thai <thai-l10n@googlegroups.com>\n"
@@ -156,7 +156,7 @@ msgstr "  ตารางรุ่น:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s สำหรับ %s คอมไพล์เมื่อ %s %s\n"
@@ -825,7 +825,7 @@ msgstr "ไม่สามารถติดตั้ง %s ซ้ำได้ 
 msgid "%s is already the newest version.\n"
 msgstr "%s เป็นรุ่นใหม่ล่าสุดอยู่แล้ว\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "กำหนด %s ให้เป็นการติดตั้งแบบเลือกเองแล้ว\n"
@@ -937,8 +937,8 @@ msgstr "หลังจากการกระทำนี้ ต้องใ
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "หลังจากการกระทำนี้ เนื้อที่บนดิสก์จะว่างเพิ่มอีก %sB\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "ไม่สามารถคำนวณพื้นที่ว่างใน %s"
@@ -975,7 +975,7 @@ msgstr "เลิกทำ"
 msgid "Do you want to continue [Y/n]? "
 msgstr "คุณต้องการจะดำเนินการต่อไปหรือไม่ [Y/n]?"
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "ไม่สามารถดาวน์โหลด %s  %s\n"
@@ -984,7 +984,7 @@ msgstr "ไม่สามารถดาวน์โหลด %s  %s\n"
 msgid "Some files failed to download"
 msgstr "ดาวน์โหลดบางแฟ้มไม่สำเร็จ"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "ดาวน์โหลดสำเร็จแล้ว และอยู่ในโหมดดาวน์โหลดอย่างเดียว"
 
@@ -1022,31 +1022,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "ไม่สามารถ stat รายการแพกเกจซอร์ส %s"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "คำสั่ง update ไม่รับอาร์กิวเมนต์เพิ่ม"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "apt ถูกกำหนดไม่ให้มีการลบใดๆ จึงไม่สามารถดำเนินการถอดถอนอัตโนมัติได้"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1064,15 +1064,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "ข้อมูลต่อไปนี้อาจช่วยแก้ปัญหาได้:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "เกิดข้อผิดพลาดภายใน: AutoRemover ทำความเสียหาย"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1082,7 +1082,7 @@ msgid_plural ""
 msgstr[0] "แพกเกจต่อไปนี้ถูกติดตั้งแบบอัตโนมัติไว้ และไม่ต้องใช้อีกต่อไปแล้ว:"
 msgstr[1] "แพกเกจต่อไปนี้ถูกติดตั้งแบบอัตโนมัติไว้ และไม่ต้องใช้อีกต่อไปแล้ว:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1090,19 +1090,19 @@ msgid_plural ""
 msgstr[0] "แพกเกจต่อไปนี้ถูกติดตั้งแบบอัตโนมัติไว้ และไม่ต้องใช้อีกต่อไปแล้ว:"
 msgstr[1] "แพกเกจต่อไปนี้ถูกติดตั้งแบบอัตโนมัติไว้ และไม่ต้องใช้อีกต่อไปแล้ว:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "ใช้ 'apt-get autoremove' เพื่อลบแพกเกจดังกล่าวได้"
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "เกิดข้อผิดพลาดภายใน: AllUpgrade ทำความเสียหาย"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "คุณอาจเรียก 'apt-get -f install' เพื่อแก้ปัญหานี้ได้:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1110,7 +1110,7 @@ msgstr ""
 "มีปัญหาความขึ้นต่อกันระหว่างแพกเกจ กรุณาลองใช้ 'apt-get -f install' โดยไม่ระบุแพกเกจ "
 "(หรือจะระบุทางแก้ก็ได้)"
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1121,80 +1121,80 @@ msgstr ""
 "หรือถ้าคุณกำลังใช้รุ่น unstable ก็เป็นไปได้ว่าแพกเกจที่จำเป็นบางรายการ\n"
 "ยังไม่ถูกสร้างขึ้น หรือถูกย้ายออกจาก Incoming"
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "แพกเกจมีปัญหา"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "จะติดตั้งแพกเกจเพิ่มเติมต่อไปนี้:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "แพกเกจที่แนะนำ:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "แพกเกจที่ควรใช้ร่วมกัน:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "ไม่พบแพกเกจ %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "กำหนด %s ให้เป็นการติดตั้งแบบเลือกเองแล้ว\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "กำลังคำนวณการปรับรุ่น... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "ล้มเหลว"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "เสร็จแล้ว"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "เกิดข้อผิดพลาดภายใน: กลไกการแก้ปัญหาทำความเสียหาย"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "ไม่สามารถล็อคไดเรกทอรีดาวน์โหลด"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "ต้องระบุแพกเกจอย่างน้อยหนึ่งแพกเกจที่จะดาวน์โหลดซอร์สโค้ด"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "ไม่พบแพกเกจซอร์สโค้ดสำหรับ %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1202,122 +1202,143 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "จะข้ามแฟ้ม '%s' ที่ดาวน์โหลดไว้แล้ว\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "คุณมีพื้นที่ว่างเหลือไม่พอใน %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "ต้องดาวน์โหลดซอร์สโค้ด %sB/%sB\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "ต้องดาวน์โหลดซอร์สโค้ด %sB\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "ดาวน์โหลดซอร์ส %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "ไม่สามารถดาวน์โหลดบางแฟ้ม"
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "จะข้ามการแตกซอร์สของซอร์สที่แตกไว้แล้วใน %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "คำสั่งแตกแฟ้ม '%s' ล้มเหลว\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "กรุณาตรวจสอบว่าได้ติดตั้งแพกเกจ 'dpkg-dev' แล้ว\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "คำสั่ง build '%s' ล้มเหลว\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "โพรเซสลูกล้มเหลว"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr "ต้องระบุแพกเกจอย่างน้อยหนึ่งแพกเกจที่จะตรวจสอบสิ่งที่ต้องการสำหรับการ build"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "ไม่สามารถอ่านข้อมูลสิ่งที่ต้องการสำหรับการ build ของ %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s ไม่ต้องการสิ่งใดสำหรับ build\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr "ไม่สามารถติดตั้งสิ่งเชื่อมโยง %s สำหรับ %s ได้ เพราะไม่พบแพกเกจ %s"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr "ไม่สามารถติดตั้งสิ่งเชื่อมโยง %s สำหรับ %s ได้ เพราะไม่พบแพกเกจ %s"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr "ไม่สามารถติดตั้งสิ่งเชื่อมโยง %s สำหรับ %s ได้: แพกเกจ %s ที่ติดตั้งไว้ใหม่เกินไป"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "ไม่สามารถติดตั้งสิ่งเชื่อมโยง %s สำหรับ %s ได้ เพราะไม่มีแพกเกจ %s "
 "รุ่นที่จะสอดคล้องกับความต้องการรุ่นของแพกเกจได้"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr "ไม่สามารถติดตั้งสิ่งเชื่อมโยง %s สำหรับ %s ได้: แพกเกจ %s ที่ติดตั้งไว้ใหม่เกินไป"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
+msgstr "ไม่สามารถติดตั้งสิ่งเชื่อมโยง %s สำหรับ %s ได้ เพราะไม่พบแพกเกจ %s"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "ไม่สามารถติดตั้งสิ่งเชื่อมโยง %s สำหรับ %s ได้: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "ไม่สามารถติดตั้งสิ่งที่จำเป็นสำหรับการ build ของ %s ได้"
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "ติดตั้งสิ่งที่จำเป็นสำหรับการ build ไม่สำเร็จ"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "เชื่อมต่อไปยัง %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "มอดูลที่รองรับ:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1403,7 +1424,7 @@ msgstr ""
 "และ apt.conf(5)\n"
 "                       APT นี้มีพลังของ Super Cow\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1711,8 +1732,8 @@ msgstr "แฟ้ม %s/%s เขียนทับแฟ้มในแพก
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1744,7 +1765,7 @@ msgstr "ไดเรกทอรี info และ temp ต้องอยู่
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "กำลังอ่านรายชื่อแพกเกจ"
 
@@ -2108,35 +2129,29 @@ msgstr "เกิดปัญหาร้ายแรงบางอย่าง
 msgid "Unable to connect to %s:%s:"
 msgstr "ไม่สามารถเชื่อมต่อไปยัง %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "จะล้มเลิกการติดตั้ง"
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr "ข้อผิดพลาดภายใน: ลายเซ็นใช้การได้ แต่ไม่สามารถระบุลายนิ้วมือของกุญแจ?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "พบลายเซ็นที่ใช้การไม่ได้อย่างน้อยหนึ่งรายการ"
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr "ไม่สามารถเรียก '%s' เพื่อตรวจสอบลายเซ็น (ได้ติดตั้ง gpgv ไว้หรือไม่?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "เกิดข้อผิดพลาดไม่ทราบสาเหตุขณะเรียก gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "ลายเซ็นต่อไปนี้ใช้การไม่ได้:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2291,57 +2306,57 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "ไม่พบรายการเลือก %s"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "พบตัวย่อของชนิดที่ข้อมูลไม่รู้จัก: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "ขณะเปิดแฟ้มค่าตั้ง %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "ไวยากรณ์ผิดพลาด %s:%u: เริ่มบล็อคโดยไม่มีชื่อ"
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "ไวยากรณ์ผิดพลาด %s:%u: แท็กผิดรูปแบบ"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "ไวยากรณ์ผิดพลาด %s:%u: มีขยะเกินหลังค่า"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "ไวยากรณ์ผิดพลาด %s:%u: สามารถใช้ directive ที่ระดับบนสุดได้เท่านั้น"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "ไวยากรณ์ผิดพลาด %s:%u: ใช้ include ซ้อนกันมากเกินไป"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "ไวยากรณ์ผิดพลาด %s:%u: include จากที่นี่"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "ไวยากรณ์ผิดพลาด %s:%u: พบ directive '%s' ที่ไม่รองรับ"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "ไวยากรณ์ผิดพลาด %s:%u: สามารถใช้ directive ที่ระดับบนสุดได้เท่านั้น"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "ไวยากรณ์ผิดพลาด %s:%u: มีขยะเกินหลังจบแฟ้ม"
@@ -2484,7 +2499,7 @@ msgstr "โพรเซสย่อย %s คืนค่าข้อผิด
 msgid "Sub-process %s exited unexpectedly"
 msgstr "โพรเซสย่อย %s จบการทำงานกระทันหัน"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "ไม่สามารถเปิดแฟ้ม %s"
@@ -2711,14 +2726,14 @@ msgstr "บรรทัด %u ในแฟ้มรายชื่อแหล
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "ไม่รู้จักชนิด '%s' ที่บรรทัด %u ในแฟ้มรายชื่อแหล่งแพกเกจ %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2730,7 +2745,7 @@ msgstr ""
 "ซึ่งแพกเกจดังกล่าวเป็นแพกเกจที่จำเป็นสำหรับระบบ การลบดังกล่าวมักเป็นอันตราย "
 "แต่ถ้าคุณต้องการทำเช่นนั้นจริงๆ ก็ให้เปิดตัวเลือก APT::Force-LoopBreak"
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2760,7 +2775,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "ไม่สามารถแก้ปัญหาได้ คุณได้คงรุ่นแพกเกจที่เสียอยู่ไว้"
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2809,12 +2824,12 @@ msgstr "ไม่สามารถเรียกทำงานวิธีก
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "กรุณาใส่แผ่นชื่อ: '%s' ลงในไดรว์ '%s' แล้วกด enter"
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "ไม่รองรับระบบแพกเกจ '%s'"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "ไม่สามารถระบุชนิดของระบบแพกเกจที่เหมาะสมได้"
 
@@ -2839,17 +2854,24 @@ msgstr "คุณอาจเรียก `apt-get update' เพื่อแก
 msgid "The list of sources could not be read."
 msgstr "ไม่สามารถอ่านรายชื่อแหล่งแพกเกจได้"
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "ระเบียนผิดรูปแบบในแฟ้มค่าปรับแต่ง: ไม่มีข้อมูลส่วนหัว 'Package'"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "ไม่เข้าใจชนิดการตรึง %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "ไม่ได้ระบุลำดับความสำคัญ (หรือค่าศูนย์) สำหรับการตรึง"
 
@@ -2938,7 +2960,7 @@ msgstr "ไม่สามารถ stat รายการแพกเกจซ
 msgid "Collecting File Provides"
 msgstr "กำลังเก็บข้อมูลแฟ้มที่ตระเตรียมให้"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "เกิดข้อผิดพลาด IO ขณะบันทึกแคชของซอร์ส"
 
@@ -2951,8 +2973,8 @@ msgstr "เปลี่ยนชื่อไม่สำเร็จ: %s (%s ->
 msgid "MD5Sum mismatch"
 msgstr "MD5Sum ไม่ตรงกัน"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "ผลรวมแฮชไม่ตรงกัน"
 
@@ -2972,20 +2994,19 @@ msgstr "ไม่สามารถแจงแฟ้มแพกเกจ %s (1
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "ไม่มีกุญแจสาธารณะสำหรับกุญแจหมายเลขต่อไปนี้:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -2993,32 +3014,32 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
 "to manually fix this package. (due to missing arch)"
 msgstr "ไม่พบแฟ้มสำหรับแพกเกจ %s คุณอาจต้องแก้ปัญหาแพกเกจนี้เอง (ไม่มี arch)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
 "to manually fix this package."
 msgstr "ไม่พบแฟ้มสำหรับแพกเกจ %s คุณอาจต้องแก้ปัญหาแพกเกจนี้เอง"
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr "แฟ้มดัชนีแพกเกจเสียหาย ไม่มีข้อมูล Filename: (ชื่อแฟ้ม) สำหรับแพกเกจ %s"
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "ขนาดไม่ตรงกัน"
 
@@ -3140,22 +3161,22 @@ msgstr "กำลังเขียนรายชื่อแหล่งแพ
 msgid "Source list entries for this disc are:\n"
 msgstr "บรรทัดรายชื่อแหล่งแพกเกจสำหรับแผ่นนี้คือ:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "เขียนแล้ว %i ระเบียน\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มขาดหาย %i แฟ้ม\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มผิดขนาด %i แฟ้ม\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "เขียนแล้ว %i ระเบียน โดยมีแฟ้มขาดหาย %i แฟ้ม และแฟ้มผิดขนาด %i แฟ้ม\n"
@@ -3175,6 +3196,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "ผลรวมแฮชไม่ตรงกัน"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "จะล้มเลิกการติดตั้ง"
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index 2976197257947c78779f4fe1e211f0ed6cb61d2d..5d5b37c7b0663d73cf5160a63e3f06358f0170b9 100644 (file)
--- a/po/tl.po
+++ b/po/tl.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2007-03-29 21:36+0800\n"
 "Last-Translator: Eric Pareja <xenos@upm.edu.ph>\n"
 "Language-Team: Tagalog <debian-tl@banwa.upm.edu.ph>\n"
@@ -161,7 +161,7 @@ msgstr "  Talaang Bersyon:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, fuzzy, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s para sa %s %s kinompile noong %s %s\n"
@@ -846,7 +846,7 @@ msgstr "Ang pagluklok muli ng %s ay hindi maaari, hindi ito makuha.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s ay pinakabagong bersyon na.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, fuzzy, c-format
 msgid "%s set to manually installed.\n"
 msgstr "ngunit ang %s ay iluluklok"
@@ -965,8 +965,8 @@ msgstr ""
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Matapos magbuklat ay %sB na puwang sa disk ang mapapalaya.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Hindi matantsa ang libreng puwang sa %s"
@@ -1003,7 +1003,7 @@ msgstr "Abort."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Nais niyo bang magpatuloy [O/h]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Bigo sa pagkuha ng %s  %s\n"
@@ -1012,7 +1012,7 @@ msgstr "Bigo sa pagkuha ng %s  %s\n"
 msgid "Some files failed to download"
 msgstr "May mga talaksang hindi nakuha"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Kumpleto ang pagkakuha ng mga talaksan sa modong pagkuha lamang"
 
@@ -1050,31 +1050,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Hindi ma-stat ang talaan ng pagkukunan ng pakete %s"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Ang utos na update ay hindi tumatanggap ng mga argumento"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1090,17 +1090,17 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr ""
 "Ang sumusunod na impormasyon ay maaaring makatulong sa pag-ayos ng problema:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 #, fuzzy
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Error na internal, may nasira ang problem resolver"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1110,7 +1110,7 @@ msgid_plural ""
 msgstr[0] "Ang sumusunod na mga paketeng BAGO ay iluluklok:"
 msgstr[1] "Ang sumusunod na mga paketeng BAGO ay iluluklok:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1118,20 +1118,20 @@ msgid_plural ""
 msgstr[0] "Ang sumusunod na mga paketeng BAGO ay iluluklok:"
 msgstr[1] "Ang sumusunod na mga paketeng BAGO ay iluluklok:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr ""
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Internal error, nakasira ng bagay-bagay ang AllUpgrade"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr ""
 "Maaaring patakbuhin niyo ang 'apt-get -f install' upang ayusin ang mga ito:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1139,7 +1139,7 @@ msgstr ""
 "May mga dependensiyang kulang. Subukan ang 'apt-get -f install' na walang "
 "mga pakete (o magtakda ng solusyon)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1150,80 +1150,80 @@ msgstr ""
 "o kung kayo'y gumagamit ng pamudmod na unstable ay may ilang mga paketeng\n"
 "kailangan na hindi pa nalikha o linipat mula sa Incoming."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Sirang mga pakete"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Ang mga sumusunod na extra na pakete ay luluklokin:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Mga paketeng mungkahi:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Mga paketeng rekomendado:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Hindi mahanap ang paketeng %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "ngunit ang %s ay iluluklok"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Sinusuri ang pag-upgrade... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Bigo"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Tapos"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Error na internal, may nasira ang problem resolver"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Hindi maaldaba ang directory ng download"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Kailangang magtakda ng kahit isang pakete na kunan ng source"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Hindi mahanap ang paketeng source para sa %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1231,78 +1231,94 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Linaktawan ang nakuha na na talaksan '%s'\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Kulang kayo ng libreng puwang sa %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Kailangang kumuha ng %sB/%sB ng arkibong source.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Kailangang kumuha ng %sB ng arkibong source.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Kunin ang Source %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Bigo sa pagkuha ng ilang mga arkibo."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Linaktawan ang pagbuklat ng nabuklat na na source sa %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Bigo ang utos ng pagbuklat '%s'.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Paki-siguro na nakaluklok ang paketeng 'dpkg-dev'.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Utos na build '%s' ay bigo.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Bigo ang prosesong anak"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr "Kailangang magtakda ng kahit isang pakete na susuriin ang builddeps"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Hindi makuha ang impormasyong build-dependency para sa %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "Walang build depends ang %s.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"Dependensiyang %s para sa %s ay hindi mabuo dahil ang paketeng %s ay hindi "
+"mahanap"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1311,46 +1327,55 @@ msgstr ""
 "Dependensiyang %s para sa %s ay hindi mabuo dahil ang paketeng %s ay hindi "
 "mahanap"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Bigo sa pagbuo ng dependensiyang %s para sa %s: Ang naka-instol na paketeng "
+"%s ay bagong-bago pa lamang."
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "Dependensiyang %s para sa %s ay hindi mabuo dahil walang magamit na bersyon "
 "ng paketeng %s na tumutugon sa kinakailangang bersyon"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Bigo sa pagbuo ng dependensiyang %s para sa %s: Ang naka-instol na paketeng "
-"%s ay bagong-bago pa lamang."
+"Dependensiyang %s para sa %s ay hindi mabuo dahil ang paketeng %s ay hindi "
+"mahanap"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Bigo sa pagbuo ng dependensiyang %s para sa %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Hindi mabuo ang build-dependencies para sa %s."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Bigo sa pagproseso ng build dependencies"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Kumokonekta sa %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Suportadong mga Module:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1435,7 +1460,7 @@ msgstr ""
 "para sa karagdagang impormasyon at mga option.\n"
 "                       Ang APT na ito ay may Kapangyarihan Super Kalabaw.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1747,8 +1772,8 @@ msgstr "Ang talaksang %s/%s ay pumapatong sa isang talaksan sa paketeng %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1780,7 +1805,7 @@ msgstr "Ang info at temp directory ay kailangang nasa parehong filesystem"
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Binabasa ang Listahan ng mga Pakete"
 
@@ -2149,38 +2174,32 @@ msgstr "May naganap na kababalaghan sa pagresolba ng '%s:%s' (%i)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Hindi maka-konekta sa %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "Ina-abort ang pag-instol."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Error na internal: Tanggap na lagda, ngunit hindi malaman ang key "
 "fingerprint?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Hindi kukulang sa isang hindi tanggap na lagda ang na-enkwentro."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Hindi maitakbo ang '%s' upang maberipika ang lagda (nakaluklok ba ang gpgv?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Hindi kilalang error sa pag-execute ng gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Ang sumusunod na mga lagda ay imbalido:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2338,59 +2357,59 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "Piniling %s ay hindi nahanap"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Hindi kilalang katagang uri: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Binubuksan ang talaksang pagsasaayos %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Syntax error %s:%u: Nag-umpisa ang block na walang pangalan."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Syntax error %s:%u: Maling anyo ng Tag"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Syntax error %s:%u: May basura matapos ng halaga"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Syntax error %s:%u: Maaari lamang gawin ang mga direktiba sa tuktok na antas"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Syntax error %s:%u: Labis ang pagkaka-nest ng mga include"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Syntax error %s:%u: Sinama mula dito"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Syntax error %s:%u: Di suportadong direktiba '%s'"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Syntax error %s:%u: Maaari lamang gawin ang mga direktiba sa tuktok na antas"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Syntax error %s:%u: May basura sa dulo ng talaksan"
@@ -2538,7 +2557,7 @@ msgstr "Naghudyat ang sub-process %s ng error code (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Ang sub-process %s ay lumabas ng di inaasahan"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Hindi mabuksan ang talaksang %s"
@@ -2766,14 +2785,14 @@ msgstr "Maling anyo ng linyang %u sa talaksang pagkukunan %s (uri)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Hindi kilalang uri '%s' sa linyang %u sa talaksan ng pagkukunan %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2785,7 +2804,7 @@ msgstr ""
 "loop. Madalas ay masama ito, ngunit kung nais niyo talagang gawin ito, i-"
 "activate ang APT::Force-LoopBreak na option."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2818,7 +2837,7 @@ msgid "Unable to correct problems, you have held broken packages."
 msgstr ""
 "Hindi maayos ang mga problema, mayroon kayong sirang mga pakete na naka-hold."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2870,12 +2889,12 @@ msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr ""
 "Ikasa ang disk na may pangalang: '%s' sa drive '%s' at pindutin ang enter."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Hindi suportado ang sistema ng paketeng '%s'"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Hindi matuklasan ang akmang uri ng sistema ng pakete "
 
@@ -2903,17 +2922,24 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr "Hindi mabasa ang talaan ng pagkukunan (sources)."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Di tanggap na record sa talaksang pagtatangi, walang Package header"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Hindi naintindihan ang uri ng pin %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Walang prioridad (o sero) na nakatakda para sa pin"
 
@@ -3005,7 +3031,7 @@ msgstr "Hindi ma-stat ang talaan ng pagkukunan ng pakete %s"
 msgid "Collecting File Provides"
 msgstr "Kinukuha ang Talaksang Provides"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "IO Error sa pag-imbak ng source cache"
 
@@ -3018,8 +3044,8 @@ msgstr "pagpalit ng pangalan ay bigo, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "Di tugmang MD5Sum"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 #, fuzzy
 msgid "Hash Sum mismatch"
 msgstr "Di tugmang MD5Sum"
@@ -3040,20 +3066,19 @@ msgstr "Hindi ma-parse ang talaksang pakete %s (1)"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Walang public key na magamit para sa sumusunod na key ID:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3061,12 +3086,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3075,7 +3100,7 @@ msgstr ""
 "Hindi ko mahanap ang talaksan para sa paketeng %s. Maaaring kailanganin "
 "niyong ayusin ng de kamay ang paketeng ito. (dahil sa walang arch)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3084,7 +3109,7 @@ msgstr ""
 "Hindi ko mahanap ang talaksan para sa paketeng %s. Maaaring kailanganin "
 "niyong ayusin ng de kamay ang paketeng ito."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3092,7 +3117,7 @@ msgstr ""
 "Sira ang talaksang index ng mga pakete. Walang Filename: field para sa "
 "paketeng %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Di tugmang laki"
 
@@ -3215,22 +3240,22 @@ msgstr "Sinusulat ang bagong listahan ng pagkukunan\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Mga nakatala sa Listahan ng Source para sa Disc na ito ay:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Nagsulat ng %i na record.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Nagsulat ng %i na record na may %i na talaksang kulang.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Nagsulat ng %i na record na may %i na talaksang mismatch\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3252,6 +3277,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "Di tugmang MD5Sum"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "Ina-abort ang pag-instol."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index b228470cd3ac81a62422be91d64f03ca6189e789..96dd4cc5b070981026d3a198480c4747f2d67e6d 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt-all\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2006-07-29 15:57+0300\n"
 "Last-Translator: Artem Bondarenko <artem.brz@gmail.com>\n"
 "Language-Team: Українська <uk@li.org>\n"
@@ -157,7 +157,7 @@ msgstr "  Таблиця версій:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, fuzzy, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s для %s %s скомпільовано %s %s\n"
@@ -847,7 +847,7 @@ msgstr "Перевстановлення %s неможливе, бо він не
 msgid "%s is already the newest version.\n"
 msgstr "Вже встановлена найновіша версія %s.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, fuzzy, c-format
 msgid "%s set to manually installed.\n"
 msgstr "але %s буде встановлений"
@@ -964,8 +964,8 @@ msgid "After this operation, %sB disk space will be freed.\n"
 msgstr ""
 "Після розпакування об'єм зайнятого дискового простору зменшиться на %sB.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Не вдалося визначити кількість вільного місця в %s"
@@ -1004,7 +1004,7 @@ msgstr "Перервано."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Бажаєте продовжити [Т/н]? "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Не вдалося завантажити %s  %s\n"
@@ -1013,7 +1013,7 @@ msgstr "Не вдалося завантажити %s  %s\n"
 msgid "Some files failed to download"
 msgstr "Деякі файли не вдалося завантажити"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Вказано режим \"тільки завантаження\", і завантаження завершено"
 
@@ -1051,31 +1051,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Не вдалося прочитати атрибути переліку вихідних текстів%s"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Команді update не потрібні аргументи"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1093,16 +1093,16 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Наступна інформація можливо допоможе Вам:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 #, fuzzy
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Внутрішня помилка, вирішувач проблем все поламав"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1112,7 +1112,7 @@ msgid_plural ""
 msgstr[0] "НОВІ пакунки були встановлені автоматично і більше не потрібні:"
 msgstr[1] "НОВІ пакунки були встановлені автоматично і більше не потрібні:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1120,21 +1120,21 @@ msgid_plural ""
 msgstr[0] "НОВІ пакунки були встановлені автоматично і більше не потрібні:"
 msgstr[1] "НОВІ пакунки були встановлені автоматично і більше не потрібні:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Використовуйте 'apt-get autoremove' щоб видалити їх."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Внутрішня помилка, AllUpgrade все поламав"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr ""
 "Можливо, для виправлення цих помилок Ви захочете скористатися 'apt-get -f "
 "install':"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1142,7 +1142,7 @@ msgstr ""
 "Незадоволені залежності. Спробуйте виконати 'apt-get -f install', не "
 "вказуючи імені пакунка (або знайдіть інше рішення)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1153,82 +1153,82 @@ msgstr ""
 "або ж використаєте нестабільний дистрибутив, і запитані Вами пакунки\n"
 "ще не створені або були вилучені з Incoming."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Зламані пакунки"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Будуть встановлені наступні додаткові пакунки:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Пропоновані пакунки:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Рекомендовані пакунки:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Не можу знайти пакунок %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "але %s буде встановлений"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Обчислення оновлень... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Невдача"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Виконано"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Внутрішня помилка, вирішувач проблем все поламав"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Неможливо заблокувати теку для завантаження"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 "Вкажіть як мінімум один пакунок, для якого необхідно завантажити вихідні "
 "тексти"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Неможливо знайти пакунок з вихідними текстами для %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1236,82 +1236,97 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Пропускаємо вже завантажений файл '%s'\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Недостатньо місця в %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Необхідно завантажити %sB/%sB з архівів вихідних текстів.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Потрібно завантажити %sB архівів з вихідними текстами.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Завантаження вихідних текстів %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Деякі архіви не вдалося завантажити."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 "Розпакування вихідних текстів пропущено, тому що в %s вже перебувають "
 "розпаковані вихідні тексти\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Команда розпакування '%s' завершилася невдало.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Перевірте, чи встановлений пакунок 'dpkg-dev'.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Команда побудови '%s' закінчилася невдало.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Породжений процес завершився невдало"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Для перевірки залежностей для побудови необхідно вказати як мінімум один "
 "пакунок"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Неможливо одержати інформацію про залежності для побудови %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s не має залежностей для побудови.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr ""
+"Залежність типу %s для %s не може бути задоволена, бо пакунок %s не знайдено"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
@@ -1319,46 +1334,54 @@ msgid ""
 msgstr ""
 "Залежність типу %s для %s не може бути задоволена, бо пакунок %s не знайдено"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Не вдалося задовольнити залежність типу %s для пакунка %s: Встановлений "
+"пакунок %s новіше, аніж треба"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "Залежність типу %s для %s не може бути задоволена, бо ні одна з версій "
 "пакунка %s не задовольняє умови"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
 msgstr ""
-"Не вдалося задовольнити залежність типу %s для пакунка %s: Встановлений "
-"пакунок %s новіше, аніж треба"
+"Залежність типу %s для %s не може бути задоволена, бо пакунок %s не знайдено"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Неможливо задовольнити залежність типу %s для пакунка %s: %s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Залежності для побудови %s не можуть бути задоволені."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Обробка залежностей для побудови закінчилася невдало"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "З'єднання з %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Підтримувані модулі:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1447,7 +1470,7 @@ msgstr ""
 "містять більше інформації.\n"
 "                       This APT has Super Cow Powers.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1761,8 +1784,8 @@ msgstr "Файл %s/%s перезаписує інший з пакету %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1794,7 +1817,7 @@ msgstr "Теки info і temp повинні бути на тій самій ф
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Читання переліків пакетів"
 
@@ -2167,37 +2190,31 @@ msgstr "Сталося щось дивне при спробі отримати
 msgid "Unable to connect to %s:%s:"
 msgstr "Не можливо під'єднатися до %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "Переривається встановлення."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 "Внутрішня помилка: Вірний підпис (signature), але не можливо визначити його "
 "відбиток?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Знайдено як мінімум один невірний підпис."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr "Неможливо виконати '%s' для перевірки підпису, gpgv встановлено?"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Невідома помилка виконання gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Слідуючі підписи були невірними:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2357,61 +2374,61 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "Вибір %s не знайдено"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Нерозпізнаваний тип абревіатури: '%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Відкривається конфігураційний файл %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Синтаксова помилка  %s:%u: Блок починається без назви."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Синтаксова помилка %s:%u: спотворений тег"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Синтаксова помилка %s:%u: зайві символи після величини"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr ""
 "Синтаксова помилка  %s:%u: Директиви можуть бути виконані тільки на "
 "найвищому рівні"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Синтаксова помилка  %s:%u: Забагато вмонтованих включень"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Синтаксова помилка %s:%u: Включена звідси"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Синтаксова помилка  %s:%u: Директива '%s' не підтримується"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Синтаксова помилка  %s:%u: Директиви можуть бути виконані тільки на "
 "найвищому рівні"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Синтаксова помилка %s:%u: зайві символи в кінці файла"
@@ -2558,7 +2575,7 @@ msgstr "Підпроцес %s повернув код помилки (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Підпроцес %s раптово завершився"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Не можливо відкрити файл %s"
@@ -2789,14 +2806,14 @@ msgstr "Спотворена лінія %u у переліку джерел %s (
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Невідомий тип '%s' в лінії %u в переліку джерел %s"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2808,7 +2825,7 @@ msgstr ""
 "погано, але якщо Ви дійсно бажаєте зробити це, активуйте параметр APT::Force-"
 "LoopBreak."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2840,7 +2857,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Неможливо усунути проблеми, Ви маєте поламані зафіксовані пакунки."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2892,12 +2909,12 @@ msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr ""
 "Будь-ласка, вставте диск з поміткою: '%s' в CD привід '%s' і натисніть Enter."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Система пакування '%s' не підтримується"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Неможливо визначити тип необхідної системи пакування "
 
@@ -2922,17 +2939,24 @@ msgstr "Можливо, для виправлення цих помилок Ви
 msgid "The list of sources could not be read."
 msgstr "Неможливо прочитати перелік джерел."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "Невірний запис в preferences файлі, відсутній заголовок Package"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Не зрозумів тип %s для pin"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Не встановлено пріоритету (або встановлено 0) для pin"
 
@@ -3023,7 +3047,7 @@ msgstr "Не вдалося прочитати атрибути переліку
 msgid "Collecting File Provides"
 msgstr "Збирання інформації про  файлів "
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Помилка IO під час збереження джерельного кешу"
 
@@ -3036,8 +3060,8 @@ msgstr "Не вдалося перейменувати, %s (%s -> %s)."
 msgid "MD5Sum mismatch"
 msgstr "Невідповідність MD5Sum"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 #, fuzzy
 msgid "Hash Sum mismatch"
 msgstr "Невідповідність MD5Sum"
@@ -3059,20 +3083,19 @@ msgstr "Неможливо обробити файл %s пакунку (1)"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Відсутній публічний ключ для заданих ID ключа:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3080,12 +3103,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3094,7 +3117,7 @@ msgstr ""
 "Я не можу знайти файл для пакунку %s. Можливо, Ви захочете власноруч "
 "виправити цей пакунок. (due to missing arch)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3103,14 +3126,14 @@ msgstr ""
 "Я не можу знайти файл для пакунку %s. Можливо, Ви захочете власноруч "
 "виправити цей пакунок."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 "Індексні файли пакунків пошкоджені. Немає поля Filename для пакунку %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Невідповідність розміру"
 
@@ -3231,22 +3254,22 @@ msgstr "Записується новий перелік джерел\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Перелік джерел для цього диску:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Записано %i записів.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Записано %i записів з %i відсутніми файлами.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Записано %i записів з %i невідповідними файлам\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "Записано %i записів з %i відсутніми і %i невідповідними файлами\n"
@@ -3266,6 +3289,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "Невідповідність MD5Sum"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "Переривається встановлення."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
index c2588a6dc1a6c6ed0dca87e73e716f480070a8fb..8dcef7fc5ca0e8752ce4f68e5441aaac06c0c802 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.8.0~pre1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-09-29 21:36+0930\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -155,7 +155,7 @@ msgstr "  Bảng phiên bản:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s cho %s được biên dịch trên %s %s\n"
@@ -858,7 +858,7 @@ msgstr "Không thể cài đặt lại %s vì không thể tải về nó.\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s là phiên bản mơi nhất.\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s được đặt thành « được cài đặt bằng tay ».\n"
@@ -973,8 +973,8 @@ msgstr "Sau thao tác này, %sB sức chứa đĩa thêm sẽ được chiếm.\
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "Sau thao tác này, %sB sức chứa đĩa thêm sẽ được giải phóng.\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "Không thể quyết định chỗ rảnh trong %s"
@@ -1012,7 +1012,7 @@ msgstr "Hủy bỏ."
 msgid "Do you want to continue [Y/n]? "
 msgstr "Bạn có muốn tiếp tục không? [C/k] "
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "Việc lấy %s bị lỗi  %s\n"
@@ -1021,7 +1021,7 @@ msgstr "Việc lấy %s bị lỗi  %s\n"
 msgid "Some files failed to download"
 msgstr "Một số tập tin không tải về được"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "Mới tải về xong và trong chế độ chỉ tải về"
 
@@ -1062,31 +1062,31 @@ msgstr[0] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "Ghi chú : thay đổi này được tự động làm bởi dpkg."
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "Bỏ qua bản phát hành đích không sẵn sàng « %s » của gói « %s »"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "Đang chọn « %s » làm gói nguồn, thay cho « %s »\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "Bỏ qua phiên bản không sẵn sàng « %s » của gói « %s »"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "Lệnh cập nhật không chấp nhận đối số"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "Không nên xoá gì thì không thể khởi chạy Bộ Gỡ bỏ Tự động"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1104,15 +1104,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "Có lẽ thông tin theo đây sẽ giúp đỡ quyết định trường hợp:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "Lỗi nội bộ : Bộ Gỡ bỏ Tự động đã làm hư gì."
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1121,26 +1121,26 @@ msgid_plural ""
 msgstr[0] ""
 "Gói nào theo đây đã được tự động cài đặt nên không còn cần thiết lại:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
 "%lu packages were automatically installed and are no longer required.\n"
 msgstr[0] "%lu gói đã được tự động cài đặt nên không còn cần thiết lại.\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "Hãy sử dụng lệnh « apt-get autoremove » để gỡ bỏ chúng."
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "Lỗi nội bộ: AllUpgrade (toàn bộ nâng cấp) đã ngắt gì"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "Có lẽ bạn hãy chạy lênh « apt-get -f install » để sửa hết:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1148,7 +1148,7 @@ msgstr ""
 "Gói còn phụ thuộc vào phần mềm chưa có. Hãy cố chạy lệnh « apt-get -f "
 "install » mà không có gói nào (hoặc ghi rõ cách quyết định)."
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1160,73 +1160,73 @@ msgstr ""
 "bất định, có lẽ chưa tạo một số gói cần thiết,\n"
 "hoặc chưa di chuyển chúng ra phần Incoming (Đến)."
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "Gói bị hỏng"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "Những gói thêm theo đây sẽ được cài đặt:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "Gói đề nghị:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "Gói khuyến khích:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "Không tìm thấy gói %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s được lập thành « được tự động cài đặt ».\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "Đang tính bước nâng cấp... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "Bị lỗi"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "Hoàn tất"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "Lỗi nội bộ : bộ tháo gỡ vấn đề đã ngắt gì"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "Không thể khoá thư mục tải về"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "Phải ghi rõ ít nhất một gói cho đó cần lấy mã nguồn"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "Không tìm thấy gói nguồn cho %s"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1236,7 +1236,7 @@ msgstr ""
 "bản « %s » tại:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1247,124 +1247,145 @@ msgstr ""
 "bzr get %s\n"
 "để lấy các bản cập nhật gói mới nhất (có thể là chưa phát hành).\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "Đang bỏ qua tập tin đã được tải về « %s »\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "Không đủ sức chứa còn rảnh trong %s"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "Cần phải lấy %sB/%sB kho nguồn.\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "Cần phải lấy %sB kho nguồn.\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "Lấy nguồn %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "Việc lấy một số kho bị lỗi."
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "Đang bỏ qua giải nén nguồn đã giải nén trong %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "Lệnh giải nén « %s » bị lỗi.\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "Hãy kiểm tra xem gói « dpkg-dev » có được cài đặt chưa.\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "Lệnh xây dụng « %s » bị lỗi.\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "Tiến trình con bị lỗi"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 "Phải ghi rõ ít nhất một gói cần kiểm tra cách phụ thuộc khi xây dụng cho nó"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "Không thể lấy thông tin về cách phụ thuộc khi xây dụng cho %s"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s không phụ thuộc vào gì khi xây dụng.\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr "cách phụ thuộc %s cho %s không thể được thỏa vì không tìm thấy gọi %s"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr "cách phụ thuộc %s cho %s không thể được thỏa vì không tìm thấy gọi %s"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr ""
+"Việc cố thỏa cách phụ thuộc %s cho %s bị lỗi vì gói đã cài đặt %s quá mới"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "cách phụ thuộc %s cho %s không thể được thỏa vì không có phiên bản sẵn sàng "
 "của gói %s có thể thỏa điều kiện phiên bản."
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr ""
-"Việc cố thỏa cách phụ thuộc %s cho %s bị lỗi vì gói đã cài đặt %s quá mới"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
+msgstr "cách phụ thuộc %s cho %s không thể được thỏa vì không tìm thấy gọi %s"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "Việc cố thỏa cách phụ thuộc %s cho %s bị lỗi: %s."
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "Không thể thỏa cách phụ thuộc khi xây dụng cho %s."
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "Việc xử lý cách phụ thuộc khi xây dụng bị lỗi"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "Đang kết nối đến %s (%s)..."
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "Mô-đun đã hỗ trợ :"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1460,7 +1481,7 @@ msgstr ""
 "sources.list(5) và apt.conf(5).\n"
 "                       Trình APT này có năng lực của siêu bò.\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1774,8 +1795,8 @@ msgstr "Tập tin %s/%s ghi đè lên điều trong gói %s"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1809,7 +1830,7 @@ msgstr ""
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "Đang đọc các danh sách gói..."
 
@@ -2179,35 +2200,29 @@ msgstr "Gặp lỗi nghiệm trọng khi tháo gỡ « %s:%s » (%i - %s)"
 msgid "Unable to connect to %s:%s:"
 msgstr "Không thể kết nối đến %s: %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "Không có vòng khoá nào được cài đặt vào %s."
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr "Lỗi nội bộ : chữ ký đúng, nhưng không thể quyết định vân tay khóa ?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "Gặp ít nhất một chữ ký không hợp lệ."
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr ""
 "Không thể thực hiện « gpgv » để thẩm tra chữ ký (gpgv có được cài đặt chưa?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "Gặp lỗi không rõ khi thực hiện gpgv"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "Những chữ ký theo đây vẫn không hợp lệ:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2370,58 +2385,58 @@ msgstr "%ligiây"
 msgid "Selection %s not found"
 msgstr "Không tìm thấy vùng chọn %s"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "Không nhận biết viết tắt kiểu: « %c »"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "Đang mở tập tin cấu hình %s..."
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "Gặp lỗi cú pháp %s:%u: khối bắt đầu không có tên."
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "Gặp lỗi cú pháp %s:%u: thẻ dạng sai"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "Gặp lỗi cú pháp %s:%u: có rác thêm sau giá trị"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "Gặp lỗi cú pháp %s:%u: có thể thực hiện chỉ thị chỉ tại mức đầu"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "Gặp lỗi cú pháp %s:%u: quá nhiều điều bao gồm lồng nhau"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "Gặp lỗi cú pháp %s:%u: đã bao gồm từ đây"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "Gặp lỗi cú pháp %s:%u: chưa hỗ trợ chỉ thị « %s »"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr ""
 "Gặp lỗi cú pháp %s:%u: chỉ thị rõ thì yêu cầu một cây tuỳ chọn làm đối số"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "Gặp lỗi cú pháp %s:%u: gặp rác thêm tại kết thúc tập tin"
@@ -2564,7 +2579,7 @@ msgstr "Tiến trình phụ %s đã trả lời mã lỗi (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "Tiến trình phụ %s đã thoát bất thường"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "Không thể mở tập tin %s"
@@ -2801,7 +2816,7 @@ msgstr "Gặp dòng dạng sai %u trong danh sách nguồn %s (kiểu)."
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "Không biết kiểu « %s » trên dòng %u trong danh sách nguồn %s."
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2810,7 +2825,7 @@ msgstr ""
 "Không thể thực hiện ngay lập tức tiến trình cấu hình « %s ». Xem « man 5 apt."
 "conf  » dưới « APT::Immediate-Configure » để tìm chi tiết. (%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2822,7 +2837,7 @@ msgstr ""
 "bạn thật sự muốn tiếp tục, có thể hoạt hóa tuy chọn « APT::Force-LoopBreak "
 "» (buộc ngắt vòng lặp)."
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2854,7 +2869,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "Không thể sửa vấn đề, bạn đã giữ lại một số gói bị ngắt."
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2905,12 +2920,12 @@ msgstr "Phương pháp %s đã không bắt đầu cho đúng."
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "Hãy nạp đĩa có nhãn « %s » vào ổ « %s » và bấm nút Enter."
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "Không hỗ trợ hệ thống đóng gói « %s »"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "Không thể quyết định kiểu hệ thống đóng gói thích hợp"
 
@@ -2938,18 +2953,25 @@ msgstr ""
 msgid "The list of sources could not be read."
 msgstr "Không thể đọc danh sách nguồn."
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr ""
 "Gặp mục ghi sai trong tập tin tùy thích %s: không có dòng đầu Package (Gói)."
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "Không hiểu kiểu ghim %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "Chưa ghi rõ ưu tiên (hay số không) cho ghim"
 
@@ -3040,7 +3062,7 @@ msgstr "Không thể lấy các thông tin về danh sách gói nguồn %s"
 msgid "Collecting File Provides"
 msgstr "Đang tập hợp các trường hợp « tập tin miễn là »"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "Lỗi nhập/xuất khi lưu bộ nhớ tạm nguồn"
 
@@ -3053,8 +3075,8 @@ msgstr "việc thay đổi tên bị lỗi, %s (%s → %s)."
 msgid "MD5Sum mismatch"
 msgstr "Sai khớp MD5Sum (tổng kiểm)"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Sai khớp tổng chuỗi duy nhất (hash sum)"
 
@@ -3074,20 +3096,19 @@ msgstr "Không thể phân tích cú pháp của tập tin Phát hành %s"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "Không có khóa công sẵn sàng cho những mã số khoá theo đây:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Tập tin phát hành đã hết hạn nên bỏ qua %s (không hợp lệ kể từ %s)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "Bản phát hành xung đột: %s (mong đợi %s còn nhận %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3098,12 +3119,12 @@ msgstr ""
 "Lỗi GPG: %s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "Lỗi GPG: %s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3112,7 +3133,7 @@ msgstr ""
 "Không tìm thấy tập tin liên quan đến gói %s. Có lẽ bạn cần phải tự sửa gói "
 "này, do thiếu kiến trúc."
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3121,7 +3142,7 @@ msgstr ""
 "Không tìm thấy tập tin liên quan đến gói %s. Có lẽ bạn cần phải tự sửa gói "
 "này."
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
@@ -3129,7 +3150,7 @@ msgstr ""
 "Các tập tin chỉ mục của gói này bị hỏng. Không có trường Filename: (Tên tập "
 "tin:) cho gói %s."
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "Sai khớp kích cỡ"
 
@@ -3255,22 +3276,22 @@ msgstr "Đang ghi danh sách nguồn mới\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "Các mục nhập danh sách nguồn cho đĩa này:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "Mới ghi %i mục ghi.\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "Mới ghi %i mục ghi với %i tập tin còn thiếu.\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "Mới ghi %i mục ghi với %i tập tin không khớp với nhau\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr ""
@@ -3292,6 +3313,17 @@ msgstr "Không tìm thấy mục ghi xác thực cho : %s"
 msgid "Hash mismatch for: %s"
 msgstr "Sai khớp chuỗi duy nhất cho : %s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "Không có vòng khoá nào được cài đặt vào %s."
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3541,3 +3573,6 @@ msgstr "Kết nối bị đóng quá sớm."
 
 #~ msgid "Internal error, group '%s' has no installable pseudo package"
 #~ msgstr "Gặp lỗi nội bộ, nhóm « %s » không có gói giả có thể cài đặt"
+
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "Tập tin phát hành đã hết hạn nên bỏ qua %s (không hợp lệ kể từ %s)"
index c1888ac038f5bec1d1798af899d2f362671ebd80..0ae36fef2859b4e1eb9881f2c7e386b93f5f0aaa 100644 (file)
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.8.0~pre1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2010-08-26 14:42+0800\n"
 "Last-Translator: Aron Xu <happyaron.xu@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -156,7 +156,7 @@ msgstr "  版本列表:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s,用于 %s 构架,编译于 %s %s\n"
@@ -828,7 +828,7 @@ msgstr "不能重新安装 %s,因为无法下载它。\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s 已经是最新的版本了。\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s 被设置为手动安装。\n"
@@ -940,8 +940,8 @@ msgstr "解压缩后会消耗掉 %sB 的额外空间。\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "解压缩后将会空出 %sB 的空间。\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "无法获知您在 %s 上的可用空间"
@@ -978,7 +978,7 @@ msgstr "中止执行。"
 msgid "Do you want to continue [Y/n]? "
 msgstr "您希望继续执行吗?[Y/n]"
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "无法下载 %s  %s\n"
@@ -987,7 +987,7 @@ msgstr "无法下载 %s  %s\n"
 msgid "Some files failed to download"
 msgstr "有一些文件无法下载"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "下载完毕,目前是“仅下载”模式"
 
@@ -1024,31 +1024,31 @@ msgstr[0] "以下软件包因为文件已被其他软件包覆盖而消失:"
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr "注意:这是自动被 dpkg 有意完成的。"
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr "忽略不可用的软件包 %2$s 的目标发行版本 %1$s"
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "选择 %s 作为源代码包而非 %s\n"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr "忽略不可用的 %2$s 软件包的 %1$s 版"
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr " update 命令不需要参数"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "我们不应该进行删除,无法启动自动删除器"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1064,15 +1064,15 @@ msgstr "似乎自动卸载工具损坏了一些软件,这不应该发生。请
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "下列信息可能会对解决问题有所帮助:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "内部错误,自动卸载工具坏事了"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 msgid ""
 "The following package was automatically installed and is no longer required:"
 msgid_plural ""
@@ -1080,26 +1080,26 @@ msgid_plural ""
 "required:"
 msgstr[0] "下列软件包是自动安装的并且现在不需要了:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
 "%lu packages were automatically installed and are no longer required.\n"
 msgstr[0] "%lu 个自动安装的的软件包现在已不再需要了。\n"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "使用'apt-get autoremove'来卸载它们"
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "内部错误,全部升级工具坏事了"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "您可能需要运行“apt-get -f install”来纠正下列错误:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1107,7 +1107,7 @@ msgstr ""
 "有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt-get -f install”(也可"
 "以指定一个解决办法)。"
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1118,73 +1118,73 @@ msgstr ""
 "因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件\n"
 "包尚未被创建或是它们已被从新到(Incoming)目录移出。"
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "破损的软件包"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "将会安装下列额外的软件包:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "建议安装的软件包:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "推荐安装的软件包:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "无法找到软件包 %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s 被设置为手动安装。\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "正在对升级进行计算... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "失败"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "完成"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "内部错误,问题解决工具坏事了"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "无法锁定下载目录"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "要下载源代码,必须指定至少一个对应的软件包"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "无法找到与 %s 对应的源代码包"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
@@ -1193,7 +1193,7 @@ msgstr ""
 "提示:%s 的打包工作被维护于以下位置的 %s 版本控制系统中:\n"
 "%s\n"
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1204,122 +1204,143 @@ msgstr ""
 "bzr get %s\n"
 "获得该软件包的最近更新(可能尚未正式发布)。\n"
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "忽略已下载过的文件“%s”\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "您在 %s 上没有足够的可用空间"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "需要下载 %sB/%sB 的源代码包。\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "需要下载 %sB 的源代码包。\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "下载源代码 %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "有一些包文件无法下载。"
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "忽略已经被解包到 %s 目录的源代码包\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "运行解包的命令“%s”出错。\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "请检查是否安装了“dpkg-dev”软件包。\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "执行构造软件包命令“%s”失败。\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "子进程出错"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr "要检查生成软件包的构建依赖关系,必须指定至少一个软件包"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "无法获得 %s 的构建依赖关系信息"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr " %s 没有构建依赖关系信息。\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr "由于无法找到软件包 %3$s ,因此不能满足 %2$s 所要求的 %1$s 依赖关系"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr "由于无法找到软件包 %3$s ,因此不能满足 %2$s 所要求的 %1$s 依赖关系"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr "无法满足 %2$s 所要求 %1$s 依赖关系:已安装的软件包 %3$s 太新"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "由于无法找到符合要求的软件包 %3$s 的可用版本,因此不能满足 %2$s 所要求的 "
 "%1$s 依赖关系"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr "无法满足 %2$s 所要求 %1$s 依赖关系:已安装的软件包 %3$s 太新"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
+msgstr "由于无法找到软件包 %3$s ,因此不能满足 %2$s 所要求的 %1$s 依赖关系"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "无法满足 %2$s 所要求 %1$s 依赖关系:%3$s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "不能满足软件包 %s 所要求的构建依赖关系。"
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "无法处理构建依赖关系"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "正在连接 %s (%s)"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "支持的模块:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1407,7 +1428,7 @@ msgstr ""
 "以获取更多信息和选项。\n"
 "                       本 APT 具有超级牛力。\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1716,8 +1737,8 @@ msgstr "文件 %s/%s 会覆盖属于软件包 %s 中的同名文件"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1749,7 +1770,7 @@ msgstr "info 和 temp 目录要求处于同一文件系统之下"
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "正在读取软件包列表"
 
@@ -2115,34 +2136,28 @@ msgstr "解析“%s:%s”时,出现了某些故障(%i - %s)"
 msgid "Unable to connect to %s:%s:"
 msgstr "不能连接到 %s:%s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, c-format
-msgid "No keyring installed in %s."
-msgstr "%s 中没有安装密钥环。"
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr "内部错误:签名正确无误,但是无法确认密钥指纹?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "至少发现一个无效的签名。"
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr "无法运行 gpgv 以验证签名(您安装了 gpgv 吗?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "运行 gpgv 时发生未知错误"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "下列签名无效:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2297,57 +2312,57 @@ msgstr "%li秒"
 msgid "Selection %s not found"
 msgstr "找不到您选则的 %s"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "无法识别的类型缩写:“%c”"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "正在打开配置文件 %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "语法错误 %s:%u:配置小节没有以名字开头"
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "语法错误 %s:%u:标签格式有误"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "语法错误 %s:%u:配置值后有多余的无意义数据"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "语法错误 %s:%u:只能在顶层配置文件中使用指示"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "语法错误 %s:%u:太多的嵌套 include 命令"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "语法错误 %s:%u:Included from here"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "语法错误 %s:%u:不支持的指令“%s”"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "语法错误 %s:%u:clean 指令需要一个选项树作为参数"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "语法错误 %s:%u:文件尾部有多余的无意义的数据"
@@ -2490,7 +2505,7 @@ msgstr "子进程 %s 返回了一个错误号 (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "子进程 %s 异常退出"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "无法打开文件 %s"
@@ -2717,7 +2732,7 @@ msgstr "在源列表 %2$s 中第 %1$u 行的格式有误(类型)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "无法识别在源列表 %3$s 里,第 %2$u 行中的软件包类别“%1$s”"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
@@ -2726,7 +2741,7 @@ msgstr ""
 "无法立即对 %s 进行配置。请查看 man 5 apt.conf 中的 APT::Immediate-Configure "
 "(%d)"
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2737,7 +2752,7 @@ msgstr ""
 "少的软件包 %s。通常并不建议这样做,但是如果您确实希望如此,可以打开 APT::"
 "Force-LoopBreak 选项。"
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2771,7 +2786,7 @@ msgstr ""
 "无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关"
 "系。"
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2821,12 +2836,12 @@ msgstr "获取软件包的渠道 %s 所需的驱动程序没有正常启动。"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "请把标有“%s”的盘片插入驱动器“%s”再按回车键。"
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "不支持“%s”打包系统"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "无法确定适合的打包系统类型"
 
@@ -2851,17 +2866,24 @@ msgstr "您可能需要运行 apt-get update 来解决这些问题"
 msgid "The list of sources could not be read."
 msgstr "无法读取源列表。"
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "首选项文件 %s 中发现有无效的记录,无 Package 字段头"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "无法识别锁定的类型 %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "没有为版本锁定指定优先级(或为零)"
 
@@ -2950,7 +2972,7 @@ msgstr "无法获取源软件包列表 %s 的状态"
 msgid "Collecting File Provides"
 msgstr "正在收集文件所提供的软件包"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "无法读取或写入软件源缓存"
 
@@ -2963,8 +2985,8 @@ msgstr "无法重命名文件,%s (%s -> %s)。"
 msgid "MD5Sum mismatch"
 msgstr "MD5 校验和不符"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Hash 校验和不符"
 
@@ -2984,20 +3006,19 @@ msgstr "无法解析软件包仓库 Release 文件 %s"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "以下 ID 的密钥没有可用的公钥:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
+#: apt-pkg/acquire-item.cc:1477
 #, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Release 文件已过期,忽略 %s (从 %s 起无效)"
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "冲突的发行版:%s (期望 %s 但得到 %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -3006,12 +3027,12 @@ msgstr ""
 "校验签名出错。此仓库未被更新,仍然使用以前的索引文件。GPG 错误:%s: %s\n"
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr "GPG 错误:%s: %s"
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3020,7 +3041,7 @@ msgstr ""
 "我无法找到一个对应 %s 软件包的文件。在这种情况下可能需要您手动修正这个软件"
 "包。(缘于架构缺失)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3028,13 +3049,13 @@ msgid ""
 msgstr ""
 "我无法找到对应 %s 软件包的文件。在这种情况下您可能需要手动修正这个软件包。"
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr "软件包的索引文件已损坏。找不到对应软件包 %s 的 Filename: 字段。"
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "大小不符"
 
@@ -3158,22 +3179,22 @@ msgstr "正在写入新的源列表\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "对应于该盘片的软件源设置项是:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "已写入 %i 条记录。\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "已写入 %i 条记录,并有 %i 个文件缺失。\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "已写入 %i 条记录,并有 %i 个文件不匹配\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "已写入 %i 条记录,并有 %i 个缺失,以及 %i 个文件不匹配\n"
@@ -3193,6 +3214,17 @@ msgstr "无法找到认证记录:%s"
 msgid "Hash mismatch for: %s"
 msgstr "Hash 校验和不符:%s"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, c-format
+msgid "No keyring installed in %s."
+msgstr "%s 中没有安装密钥环。"
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3428,6 +3460,9 @@ msgstr "连接被永久关闭"
 #~ msgid "Internal error, group '%s' has no installable pseudo package"
 #~ msgstr "内部错误,组 %s 没有可安装的 pseudo 软件包"
 
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "Release 文件已过期,忽略 %s (从 %s 起无效)"
+
 #~ msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
 #~ msgstr "错误:Acquire::gpgv::Options 的参数列表太长。结束运行。"
 
index f664e8ee1ba5c4203d1e7e90e37f706339adf864..dcac4101905e0f9c8f432f3a8021c31468ceda4d 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 0.5.4\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-05 13:23+0100\n"
+"POT-Creation-Date: 2011-07-26 12:05+0200\n"
 "PO-Revision-Date: 2009-01-28 10:41+0800\n"
 "Last-Translator: Tetralet <tetralet@gmail.com>\n"
 "Language-Team: Debian-user in Chinese [Big5] <debian-chinese-big5@lists."
@@ -157,7 +157,7 @@ msgstr "  版本列表:"
 
 #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589
-#: cmdline/apt-get.cc:3122 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s compiled on %s %s\n"
 msgstr "%s %s 是用於 %s 並在 %s %s 上編譯的\n"
@@ -828,7 +828,7 @@ msgstr "無法重新安裝 %s,因為它無法下載。\n"
 msgid "%s is already the newest version.\n"
 msgstr "%s 已經是最新版本了。\n"
 
-#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2080 cmdline/apt-mark.cc:59
+#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59
 #, c-format
 msgid "%s set to manually installed.\n"
 msgstr "%s 被設定為手動安裝。\n"
@@ -940,8 +940,8 @@ msgstr "此操作完成之後,會多佔用 %sB 的磁碟空間。\n"
 msgid "After this operation, %sB disk space will be freed.\n"
 msgstr "此操作完成之後,會空出 %sB 的磁碟空間。\n"
 
-#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2492
-#: cmdline/apt-get.cc:2495
+#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499
+#: cmdline/apt-get.cc:2502
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr "無法確認 %s 的未使用空間"
@@ -978,7 +978,7 @@ msgstr "放棄執行。"
 msgid "Do you want to continue [Y/n]? "
 msgstr "是否繼續進行 [Y/n]?"
 
-#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2557 apt-pkg/algorithms.cc:1410
+#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr "無法取得 %s,%s\n"
@@ -987,7 +987,7 @@ msgstr "無法取得 %s,%s\n"
 msgid "Some files failed to download"
 msgstr "有部份檔案無法下載"
 
-#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2569
+#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576
 msgid "Download complete and in download only mode"
 msgstr "下載完成,且這是『僅下載』模式"
 
@@ -1025,31 +1025,31 @@ msgstr[1] ""
 msgid "Note: This is done automatic and on purpose by dpkg."
 msgstr ""
 
-#: cmdline/apt-get.cc:1497
+#: cmdline/apt-get.cc:1505
 #, c-format
 msgid "Ignore unavailable target release '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1537
 #, fuzzy, c-format
 msgid "Picking '%s' as source package instead of '%s'\n"
 msgstr "無法取得來源套件列表 %s 的狀態"
 
 #. if (VerTag.empty() == false && Last == 0)
-#: cmdline/apt-get.cc:1567
+#: cmdline/apt-get.cc:1575
 #, c-format
 msgid "Ignore unavailable version '%s' of package '%s'"
 msgstr ""
 
-#: cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1591
 msgid "The update command takes no arguments"
 msgstr "update 指令不需任何參數"
 
-#: cmdline/apt-get.cc:1645
+#: cmdline/apt-get.cc:1653
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr "我們沒有計劃要刪除任何東西,無法啟動 AutoRemover"
 
-#: cmdline/apt-get.cc:1740
+#: cmdline/apt-get.cc:1748
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
@@ -1067,15 +1067,15 @@ msgstr ""
 #. "that package should be filed.") << endl;
 #. }
 #.
-#: cmdline/apt-get.cc:1743 cmdline/apt-get.cc:1913
+#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921
 msgid "The following information may help to resolve the situation:"
 msgstr "以下的資訊或許有助於解決當前的情況:"
 
-#: cmdline/apt-get.cc:1747
+#: cmdline/apt-get.cc:1755
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr "內部錯誤,AutoRemover 處理失敗"
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1762
 #, fuzzy
 msgid ""
 "The following package was automatically installed and is no longer required:"
@@ -1085,7 +1085,7 @@ msgid_plural ""
 msgstr[0] "以下套件是被自動安裝進來的,且已不再會被用到了:"
 msgstr[1] "以下套件是被自動安裝進來的,且已不再會被用到了:"
 
-#: cmdline/apt-get.cc:1758
+#: cmdline/apt-get.cc:1766
 #, fuzzy, c-format
 msgid "%lu package was automatically installed and is no longer required.\n"
 msgid_plural ""
@@ -1093,19 +1093,19 @@ msgid_plural ""
 msgstr[0] "以下套件是被自動安裝進來的,且已不再會被用到了:"
 msgstr[1] "以下套件是被自動安裝進來的,且已不再會被用到了:"
 
-#: cmdline/apt-get.cc:1760
+#: cmdline/apt-get.cc:1768
 msgid "Use 'apt-get autoremove' to remove them."
 msgstr "使用 'apt-get autoremove' 來將其移除。"
 
-#: cmdline/apt-get.cc:1779
+#: cmdline/apt-get.cc:1787
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr "內部錯誤,AllUpgrade 造成了損壞"
 
-#: cmdline/apt-get.cc:1878
+#: cmdline/apt-get.cc:1886
 msgid "You might want to run 'apt-get -f install' to correct these:"
 msgstr "您也許得執行 'apt-get -f install' 以修正這些問題:"
 
-#: cmdline/apt-get.cc:1882
+#: cmdline/apt-get.cc:1890
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
@@ -1113,7 +1113,7 @@ msgstr ""
 "未能滿足相依關係。請試著不指定套件來執行 'apt-get -f install'(或採取其它的解"
 "決方案)。"
 
-#: cmdline/apt-get.cc:1898
+#: cmdline/apt-get.cc:1906
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -1123,80 +1123,80 @@ msgstr ""
 "有些套件無法安裝。這可能意謂著您的要求難以解決,或是若您使用的是\n"
 "unstable 發行版,可能有些必要的套件尚未建立,或是被移出 Incoming 了。"
 
-#: cmdline/apt-get.cc:1916
+#: cmdline/apt-get.cc:1924
 msgid "Broken packages"
 msgstr "損毀的套件"
 
-#: cmdline/apt-get.cc:1942
+#: cmdline/apt-get.cc:1950
 msgid "The following extra packages will be installed:"
 msgstr "下列的額外套件將被安裝:"
 
-#: cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:2040
 msgid "Suggested packages:"
 msgstr "建議套件:"
 
-#: cmdline/apt-get.cc:2033
+#: cmdline/apt-get.cc:2041
 msgid "Recommended packages:"
 msgstr "推薦套件:"
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2083
 #, c-format
 msgid "Couldn't find package %s"
 msgstr "無法找到套件 %s"
 
-#: cmdline/apt-get.cc:2082 cmdline/apt-mark.cc:61
+#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61
 #, fuzzy, c-format
 msgid "%s set to automatically installed.\n"
 msgstr "%s 被設定為手動安裝。\n"
 
-#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:105
+#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105
 msgid ""
 "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' "
 "instead."
 msgstr ""
 
-#: cmdline/apt-get.cc:2106
+#: cmdline/apt-get.cc:2114
 msgid "Calculating upgrade... "
 msgstr "籌備升級中... "
 
-#: cmdline/apt-get.cc:2109 methods/ftp.cc:707 methods/connect.cc:111
+#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111
 msgid "Failed"
 msgstr "失敗"
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2122
 msgid "Done"
 msgstr "完成"
 
-#: cmdline/apt-get.cc:2181 cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197
 msgid "Internal error, problem resolver broke stuff"
 msgstr "內部錯誤,問題排除器造成了損壞"
 
-#: cmdline/apt-get.cc:2213 cmdline/apt-get.cc:2246
+#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254
 msgid "Unable to lock the download directory"
 msgstr "無法鎖定下載目錄"
 
-#: cmdline/apt-get.cc:2297
+#: cmdline/apt-get.cc:2305
 #, c-format
 msgid "Downloading %s %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2353
+#: cmdline/apt-get.cc:2361
 msgid "Must specify at least one package to fetch source for"
 msgstr "在取得原始碼時必須至少指定一個套件"
 
-#: cmdline/apt-get.cc:2394 cmdline/apt-get.cc:2690
+#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr "無法找到 %s 的原始碼套件"
 
-#: cmdline/apt-get.cc:2411
+#: cmdline/apt-get.cc:2418
 #, c-format
 msgid ""
 "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n"
 "%s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2416
+#: cmdline/apt-get.cc:2423
 #, c-format
 msgid ""
 "Please use:\n"
@@ -1204,121 +1204,142 @@ msgid ""
 "to retrieve the latest (possibly unreleased) updates to the package.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2469
+#: cmdline/apt-get.cc:2476
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr "略過已下載的檔案 '%s'\n"
 
-#: cmdline/apt-get.cc:2506
+#: cmdline/apt-get.cc:2513
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr "在 %s 裡沒有足夠的的未使用空間"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2515
+#: cmdline/apt-get.cc:2522
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr "需要下載 %sB/%sB 的原始套件檔。\n"
 
 #. TRANSLATOR: The required space between number and unit is already included
 #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB
-#: cmdline/apt-get.cc:2520
+#: cmdline/apt-get.cc:2527
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr "需要下載 %sB 的原始套件檔。\n"
 
-#: cmdline/apt-get.cc:2526
+#: cmdline/apt-get.cc:2533
 #, c-format
 msgid "Fetch source %s\n"
 msgstr "取得原始碼 %s\n"
 
-#: cmdline/apt-get.cc:2564
+#: cmdline/apt-get.cc:2571
 msgid "Failed to fetch some archives."
 msgstr "無法取得某些套件檔。"
 
-#: cmdline/apt-get.cc:2595
+#: cmdline/apt-get.cc:2602
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr "不解開,因原始碼已解開至 %s\n"
 
-#: cmdline/apt-get.cc:2607
+#: cmdline/apt-get.cc:2614
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr "解開指令 '%s' 失敗。\n"
 
-#: cmdline/apt-get.cc:2608
+#: cmdline/apt-get.cc:2615
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr "請檢查是否已安裝了 'dpkg-dev' 套件。\n"
 
-#: cmdline/apt-get.cc:2625
+#: cmdline/apt-get.cc:2637
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr "編譯指令 '%s' 失敗。\n"
 
-#: cmdline/apt-get.cc:2645
+#: cmdline/apt-get.cc:2657
 msgid "Child process failed"
 msgstr "子程序失敗"
 
-#: cmdline/apt-get.cc:2664
+#: cmdline/apt-get.cc:2676
 msgid "Must specify at least one package to check builddeps for"
 msgstr "在檢查編譯相依關係時必須至少指定一個套件"
 
-#: cmdline/apt-get.cc:2695
+#: cmdline/apt-get.cc:2701
+#, c-format
+msgid ""
+"No architecture information available for %s. See apt.conf(5) APT::"
+"Architectures for setup"
+msgstr ""
+
+#: cmdline/apt-get.cc:2718
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr "無法取得 %s 的編譯相依關係資訊"
 
-#: cmdline/apt-get.cc:2715
+#: cmdline/apt-get.cc:2738
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr "%s 沒有編譯相依關係。\n"
 
-#: cmdline/apt-get.cc:2766
+#: cmdline/apt-get.cc:2868
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s can't be satisfied because %s is not allowed on '%s' "
+"packages"
+msgstr "無法滿足 %2$s 所要求的 %1$s 相依關係,因為找不到套件 %3$s"
+
+#: cmdline/apt-get.cc:2889
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr "無法滿足 %2$s 所要求的 %1$s 相依關係,因為找不到套件 %3$s"
 
-#: cmdline/apt-get.cc:2819
+#: cmdline/apt-get.cc:2912
 #, c-format
+msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
+msgstr "無法滿足 %2$s 的相依關係 %1$s:已安裝的套件 %3$s 太新了"
+
+#: cmdline/apt-get.cc:2951
+#, fuzzy, c-format
 msgid ""
-"%s dependency for %s cannot be satisfied because no available versions of "
-"package %s can satisfy version requirements"
+"%s dependency for %s cannot be satisfied because candidate version of "
+"package %s can't satisfy version requirements"
 msgstr ""
 "無法滿足 %2$s 所要求的 %1$s 相依關係,因為套件 %3$s 沒有版本符合其版本需求"
 
-#: cmdline/apt-get.cc:2855
-#, c-format
-msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
-msgstr "無法滿足 %2$s 的相依關係 %1$s:已安裝的套件 %3$s 太新了"
+#: cmdline/apt-get.cc:2957
+#, fuzzy, c-format
+msgid ""
+"%s dependency for %s cannot be satisfied because package %s has no candidate "
+"version"
+msgstr "無法滿足 %2$s 所要求的 %1$s 相依關係,因為找不到套件 %3$s"
 
-#: cmdline/apt-get.cc:2882
+#: cmdline/apt-get.cc:2980
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr "無法滿足 %2$s 的相依關係 %1$s:%3$s"
 
-#: cmdline/apt-get.cc:2898
+#: cmdline/apt-get.cc:2996
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr "無法滿足套件 %s 的編譯相依關係。"
 
-#: cmdline/apt-get.cc:2903
+#: cmdline/apt-get.cc:3001
 msgid "Failed to process build dependencies"
 msgstr "無法處理編譯相依關係"
 
-#: cmdline/apt-get.cc:2996 cmdline/apt-get.cc:3008
+#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106
 #, fuzzy, c-format
 msgid "Changelog for %s (%s)"
 msgstr "正和 %s (%s) 連線"
 
-#: cmdline/apt-get.cc:3127
+#: cmdline/apt-get.cc:3225
 msgid "Supported modules:"
 msgstr "已支援模組:"
 
-#: cmdline/apt-get.cc:3168
+#: cmdline/apt-get.cc:3266
 #, fuzzy
 msgid ""
 "Usage: apt-get [options] command\n"
@@ -1404,7 +1425,7 @@ msgstr ""
 "以取得更多資訊和選項。\n"
 "                        該 APT 有著超級牛力。\n"
 
-#: cmdline/apt-get.cc:3330
+#: cmdline/apt-get.cc:3429
 msgid ""
 "NOTE: This is only a simulation!\n"
 "      apt-get needs root privileges for real execution.\n"
@@ -1711,8 +1732,8 @@ msgstr "檔案 %s/%s 覆寫了套件 %s 中的相同檔案"
 #. Only warn if there is no sources.list file.
 #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179
 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204
-#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:100
-#: apt-pkg/init.cc:108 apt-pkg/clean.cc:33 apt-pkg/policy.cc:338
+#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104
+#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352
 #: methods/mirror.cc:91
 #, c-format
 msgid "Unable to read %s"
@@ -1744,7 +1765,7 @@ msgstr "資料目錄與暫存目錄需位於同一檔案系統中"
 
 #: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048
 #: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158
-#: apt-pkg/pkgcachegen.cc:1304
+#: apt-pkg/pkgcachegen.cc:1320
 msgid "Reading package lists"
 msgstr "正在讀取套件清單"
 
@@ -2109,35 +2130,29 @@ msgstr "在解析 '%s:%s' (%i) 時出了怪事"
 msgid "Unable to connect to %s:%s:"
 msgstr "無法連線至 %s %s:"
 
-#. TRANSLATOR: %s is the trusted keyring parts directory
-#: methods/gpgv.cc:71
-#, fuzzy, c-format
-msgid "No keyring installed in %s."
-msgstr "放棄安裝。"
-
-#: methods/gpgv.cc:163
+#: methods/gpgv.cc:166
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr "內部錯誤:簽章無誤,但卻無法辨識密鑰的指紋碼?!"
 
-#: methods/gpgv.cc:168
+#: methods/gpgv.cc:171
 msgid "At least one invalid signature was encountered."
 msgstr "至少發現一個無效的簽章。"
 
-#: methods/gpgv.cc:172
+#: methods/gpgv.cc:175
 #, fuzzy
 msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)"
 msgstr "無法執行 '%s' 來驗證簽章(gpgv 是否安裝了?)"
 
-#: methods/gpgv.cc:177
+#: methods/gpgv.cc:180
 msgid "Unknown error executing gpgv"
 msgstr "在執行 gpgv 時發生未知的錯誤"
 
-#: methods/gpgv.cc:211 methods/gpgv.cc:218
+#: methods/gpgv.cc:214 methods/gpgv.cc:221
 msgid "The following signatures were invalid:\n"
 msgstr "以下簽名無效:\n"
 
-#: methods/gpgv.cc:225
+#: methods/gpgv.cc:228
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
@@ -2294,57 +2309,57 @@ msgstr ""
 msgid "Selection %s not found"
 msgstr "選項 %s 找不到"
 
-#: apt-pkg/contrib/configuration.cc:452
+#: apt-pkg/contrib/configuration.cc:465
 #, c-format
 msgid "Unrecognized type abbreviation: '%c'"
 msgstr "無法辨識的縮寫類型:'%c'"
 
-#: apt-pkg/contrib/configuration.cc:510
+#: apt-pkg/contrib/configuration.cc:523
 #, c-format
 msgid "Opening configuration file %s"
 msgstr "開啟設定檔 %s"
 
-#: apt-pkg/contrib/configuration.cc:678
+#: apt-pkg/contrib/configuration.cc:691
 #, c-format
 msgid "Syntax error %s:%u: Block starts with no name."
 msgstr "語法錯誤 %s:%u:區塊開頭沒有名稱。"
 
-#: apt-pkg/contrib/configuration.cc:697
+#: apt-pkg/contrib/configuration.cc:710
 #, c-format
 msgid "Syntax error %s:%u: Malformed tag"
 msgstr "語法錯誤 %s:%u:標籤格式錯誤"
 
-#: apt-pkg/contrib/configuration.cc:714
+#: apt-pkg/contrib/configuration.cc:727
 #, c-format
 msgid "Syntax error %s:%u: Extra junk after value"
 msgstr "語法錯誤 %s:%u:數值後有多餘的垃圾"
 
-#: apt-pkg/contrib/configuration.cc:754
+#: apt-pkg/contrib/configuration.cc:767
 #, c-format
 msgid "Syntax error %s:%u: Directives can only be done at the top level"
 msgstr "語法錯誤 %s:%u:指令只能於最高層級執行"
 
-#: apt-pkg/contrib/configuration.cc:761
+#: apt-pkg/contrib/configuration.cc:774
 #, c-format
 msgid "Syntax error %s:%u: Too many nested includes"
 msgstr "語法錯誤 %s:%u: 太多巢狀引入檔"
 
-#: apt-pkg/contrib/configuration.cc:765 apt-pkg/contrib/configuration.cc:770
+#: apt-pkg/contrib/configuration.cc:778 apt-pkg/contrib/configuration.cc:783
 #, c-format
 msgid "Syntax error %s:%u: Included from here"
 msgstr "語法錯誤 %s:%u:從此引入"
 
-#: apt-pkg/contrib/configuration.cc:774
+#: apt-pkg/contrib/configuration.cc:787
 #, c-format
 msgid "Syntax error %s:%u: Unsupported directive '%s'"
 msgstr "語法錯誤 %s:%u:不支援的指令 '%s'"
 
-#: apt-pkg/contrib/configuration.cc:777
+#: apt-pkg/contrib/configuration.cc:790
 #, fuzzy, c-format
 msgid "Syntax error %s:%u: clear directive requires an option tree as argument"
 msgstr "語法錯誤 %s:%u:指令只能於最高層級執行"
 
-#: apt-pkg/contrib/configuration.cc:827
+#: apt-pkg/contrib/configuration.cc:840
 #, c-format
 msgid "Syntax error %s:%u: Extra junk at end of file"
 msgstr "語法錯誤 %s:%u:在檔案結尾有多餘的垃圾"
@@ -2487,7 +2502,7 @@ msgstr "子程序 %s 傳回錯誤碼 (%u)"
 msgid "Sub-process %s exited unexpectedly"
 msgstr "子程序 %s 不預期得結束"
 
-#: apt-pkg/contrib/fileutl.cc:764
+#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673
 #, c-format
 msgid "Could not open file %s"
 msgstr "無法開啟檔案 %s"
@@ -2714,14 +2729,14 @@ msgstr "來源列表 %2$s 中的第 %1$u 行的格式錯誤(類型)"
 msgid "Type '%s' is not known on line %u in source list %s"
 msgstr "未知的類型 '%1$s',位於在來源列表 %3$s 中的第 %2$u 行"
 
-#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:733
+#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623
 #, c-format
 msgid ""
 "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf "
 "under APT::Immediate-Configure for details. (%d)"
 msgstr ""
 
-#: apt-pkg/packagemanager.cc:548
+#: apt-pkg/packagemanager.cc:456
 #, c-format
 msgid ""
 "This installation run will require temporarily removing the essential "
@@ -2731,7 +2746,7 @@ msgstr ""
 "此安裝因衝突或預先相依關係,需暫時刪除 %s 這個基本套件。這通常不是好主意,但"
 "若您執意進行,請設定 APT::Force-LoopBreak 選項。"
 
-#: apt-pkg/packagemanager.cc:596
+#: apt-pkg/packagemanager.cc:501
 #, c-format
 msgid ""
 "Could not perform immediate configuration on already unpacked '%s'. Please "
@@ -2761,7 +2776,7 @@ msgstr ""
 msgid "Unable to correct problems, you have held broken packages."
 msgstr "無法修正問題,您保留 (hold) 了損毀的套件。"
 
-#: apt-pkg/algorithms.cc:1436 apt-pkg/algorithms.cc:1438
+#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466
 #, fuzzy
 msgid ""
 "Some index files failed to download. They have been ignored, or old ones "
@@ -2810,12 +2825,12 @@ msgstr "安裝方式 %s 沒有正確啟動"
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr "請把標籤為 '%s' 的光碟放入 '%s' 裝置中,然後按下 [Enter] 鍵。"
 
-#: apt-pkg/init.cc:143
+#: apt-pkg/init.cc:147
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr "不支援的套件包裝系統 '%s'"
 
-#: apt-pkg/init.cc:159
+#: apt-pkg/init.cc:163
 msgid "Unable to determine a suitable packaging system type"
 msgstr "無法確認合適的套件包裝系統類型"
 
@@ -2840,17 +2855,24 @@ msgstr "您也許得執行 apt-get update 以修正這些問題"
 msgid "The list of sources could not be read."
 msgstr "無法讀取來源列表。"
 
-#: apt-pkg/policy.cc:375
+#: apt-pkg/policy.cc:71
+#, c-format
+msgid ""
+"The value '%s' is invalid for APT::Default-Release as such a release is not "
+"available in the sources"
+msgstr ""
+
+#: apt-pkg/policy.cc:389
 #, fuzzy, c-format
 msgid "Invalid record in the preferences file %s, no Package header"
 msgstr "個人設定檔中有些不正確資料,沒有以 Package 開頭"
 
-#: apt-pkg/policy.cc:397
+#: apt-pkg/policy.cc:411
 #, c-format
 msgid "Did not understand pin type %s"
 msgstr "無法分析鎖定類型 %s"
 
-#: apt-pkg/policy.cc:405
+#: apt-pkg/policy.cc:419
 msgid "No priority (or zero) specified for pin"
 msgstr "銷定並沒有優先順序之分(或零)"
 
@@ -2939,7 +2961,7 @@ msgstr "無法取得來源套件列表 %s 的狀態"
 msgid "Collecting File Provides"
 msgstr "正在收集檔案提供者"
 
-#: apt-pkg/pkgcachegen.cc:1243 apt-pkg/pkgcachegen.cc:1250
+#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266
 msgid "IO Error saving source cache"
 msgstr "在儲存來源快取時 IO 錯誤"
 
@@ -2952,8 +2974,8 @@ msgstr "無法重新命名,%s (%s -> %s)。"
 msgid "MD5Sum mismatch"
 msgstr "MD5Sum 不符"
 
-#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1846
-#: apt-pkg/acquire-item.cc:1989
+#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848
+#: apt-pkg/acquire-item.cc:1991
 msgid "Hash Sum mismatch"
 msgstr "Hash Sum 不符"
 
@@ -2973,20 +2995,19 @@ msgstr "無法辨別 Release 檔 %s"
 msgid "There is no public key available for the following key IDs:\n"
 msgstr "無法取得以下的密鑰 ID 的公鑰:\n"
 
-#. TRANSLATOR: The first %s is the URL of the bad Release file, the second is
-#. the time since then the file is invalid - formated in the same way as in
-#. the download progress display (e.g. 7d 3h 42min 1s)
-#: apt-pkg/acquire-item.cc:1476
-#, fuzzy, c-format
-msgid "Release file expired, ignoring %s (invalid since %s)"
-msgstr "Release 檔已過期,略過 %s(有效期限 %s)"
+#: apt-pkg/acquire-item.cc:1477
+#, c-format
+msgid ""
+"Release file for %s is expired (invalid since %s). Updates for this "
+"repository will not be applied."
+msgstr ""
 
-#: apt-pkg/acquire-item.cc:1497
+#: apt-pkg/acquire-item.cc:1499
 #, c-format
 msgid "Conflicting distribution: %s (expected %s but got %s)"
 msgstr "發行版本衝突:%s(應當是 %s 但卻得到 %s)"
 
-#: apt-pkg/acquire-item.cc:1530
+#: apt-pkg/acquire-item.cc:1532
 #, c-format
 msgid ""
 "A error occurred during the signature verification. The repository is not "
@@ -2994,12 +3015,12 @@ msgid ""
 msgstr ""
 
 #. Invalid signature file, reject (LP: #346386) (Closes: #627642)
-#: apt-pkg/acquire-item.cc:1540 apt-pkg/acquire-item.cc:1545
+#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547
 #, c-format
 msgid "GPG error: %s: %s"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:1637
+#: apt-pkg/acquire-item.cc:1639
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
@@ -3008,20 +3029,20 @@ msgstr ""
 "找不到 %s 套件的某個檔案。這意味著您可能要手動修復這個套件。(因為找不到平"
 "台)"
 
-#: apt-pkg/acquire-item.cc:1696
+#: apt-pkg/acquire-item.cc:1698
 #, c-format
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
 "to manually fix this package."
 msgstr "找不到 %s 套件的某個檔案。這意味著您可能要手動修復這個套件。"
 
-#: apt-pkg/acquire-item.cc:1751
+#: apt-pkg/acquire-item.cc:1753
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr "這個套件的索引檔損壞了。沒有套件 %s 的 Filename: 欄位。"
 
-#: apt-pkg/acquire-item.cc:1838
+#: apt-pkg/acquire-item.cc:1840
 msgid "Size mismatch"
 msgstr "大小不符"
 
@@ -3141,22 +3162,22 @@ msgstr "正在寫入新的來源列表\n"
 msgid "Source list entries for this disc are:\n"
 msgstr "該碟片的來源列表項目為:\n"
 
-#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:909
+#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928
 #, c-format
 msgid "Wrote %i records.\n"
 msgstr "寫入 %i 筆紀錄。\n"
 
-#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:911
+#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930
 #, c-format
 msgid "Wrote %i records with %i missing files.\n"
 msgstr "寫入 %i 筆紀綠,其中有 %i 個檔案遺失了。\n"
 
-#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:914
+#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933
 #, c-format
 msgid "Wrote %i records with %i mismatched files\n"
 msgstr "寫入 %i 筆紀綠,其中有 %i 個檔案不符\n"
 
-#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:917
+#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936
 #, c-format
 msgid "Wrote %i records with %i missing files and %i mismatched files\n"
 msgstr "寫入 %i 筆紀綠,其中有 %i 個檔案遺失了,有 %i 個檔案不符\n"
@@ -3176,6 +3197,17 @@ msgstr ""
 msgid "Hash mismatch for: %s"
 msgstr "Hash Sum 不符"
 
+#: apt-pkg/indexcopy.cc:677
+#, c-format
+msgid "File %s doesn't start with a clearsigned message"
+msgstr ""
+
+#. TRANSLATOR: %s is the trusted keyring parts directory
+#: apt-pkg/indexcopy.cc:708
+#, fuzzy, c-format
+msgid "No keyring installed in %s."
+msgstr "放棄安裝。"
+
 #: apt-pkg/cacheset.cc:337
 #, c-format
 msgid "Release '%s' for '%s' was not found"
@@ -3408,6 +3440,10 @@ msgstr "連線突然終止"
 #~ msgid "Internal error, could not locate member"
 #~ msgstr "內部錯誤:無法找到成員"
 
+#, fuzzy
+#~ msgid "Release file expired, ignoring %s (invalid since %s)"
+#~ msgstr "Release 檔已過期,略過 %s(有效期限 %s)"
+
 #~ msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
 #~ msgstr "錯誤:Acquire::gpgv::Options 的參數列表過長。結束執行。"
 
diff --git a/test/Makefile b/test/Makefile
new file mode 100644 (file)
index 0000000..da0a49b
--- /dev/null
@@ -0,0 +1,16 @@
+# -*- make -*-
+
+# This is the top level test makefile for APT, it recurses to each lower
+# level make file and runs it with the proper target
+ifndef NOISY
+.SILENT:
+endif
+
+.PHONY: headers library clean veryclean all binary program doc test
+all clean veryclean binary program dirs test:
+       $(MAKE) -C libapt $@
+       $(MAKE) -C interactive-helper $@
+
+# Some very common aliases
+.PHONY: maintainer-clean dist-clean distclean pristine sanity
+maintainer-clean dist-clean distclean pristine sanity: veryclean
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
deleted file mode 100644 (file)
index 3e72654..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Package: libglib2.0-data
-Priority: optional
-Section: misc
-Installed-Size: 2288
-Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com>
-Original-Maintainer: Loic Minier <lool@dooz.org>
-Architecture: all
-Source: glib2.0
-Version: 2.13.6-1ubuntu1
-Replaces: libglib1.3, libglib1.3-data
-Depends: libglib2.0-0 (>= 2.13.6-1ubuntu1)
-Conflicts: libglib1.3-data
-Filename: ./libglib2.0-data_2.13.6-1ubuntu1_all.deb
-Size: 958
-MD5sum: 803fc5e2e31a4345b3e9c771e1eae49f
-SHA1: 75b2c62b21bae60c58e694dd40ed6d4df946e304
-SHA256: 142d8466eac252f06bc957d76fe1bb87f86f2d3512b99c8d4b08c1ad79fbe59e
-Description: Common files for GLib library
- GLib is a library containing many useful C routines for things such
- as trees, hashes, lists, and strings.  It is a useful general-purpose
- C library used by projects such as GTK+, GIMP, and GNOME.
- .
- This package is needed for the runtime libraries to display messages in
- languages other than English.
-
diff --git a/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release
deleted file mode 100644 (file)
index 7ecd4cd..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-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
deleted file mode 100644 (file)
index 85c356e..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
------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
deleted file mode 100644 (file)
index 3e72654..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Package: libglib2.0-data
-Priority: optional
-Section: misc
-Installed-Size: 2288
-Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com>
-Original-Maintainer: Loic Minier <lool@dooz.org>
-Architecture: all
-Source: glib2.0
-Version: 2.13.6-1ubuntu1
-Replaces: libglib1.3, libglib1.3-data
-Depends: libglib2.0-0 (>= 2.13.6-1ubuntu1)
-Conflicts: libglib1.3-data
-Filename: ./libglib2.0-data_2.13.6-1ubuntu1_all.deb
-Size: 958
-MD5sum: 803fc5e2e31a4345b3e9c771e1eae49f
-SHA1: 75b2c62b21bae60c58e694dd40ed6d4df946e304
-SHA256: 142d8466eac252f06bc957d76fe1bb87f86f2d3512b99c8d4b08c1ad79fbe59e
-Description: Common files for GLib library
- GLib is a library containing many useful C routines for things such
- as trees, hashes, lists, and strings.  It is a useful general-purpose
- C library used by projects such as GTK+, GIMP, and GNOME.
- .
- This package is needed for the runtime libraries to display messages in
- languages other than English.
-
diff --git a/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release b/test/authReliability/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release
deleted file mode 100644 (file)
index 7ecd4cd..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-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
deleted file mode 100644 (file)
index 85c356e..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
------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
deleted file mode 100644 (file)
index 110f318..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/gpg-package-broken/ /
-
diff --git a/test/authReliability/sources.list.good b/test/authReliability/sources.list.good
deleted file mode 100644 (file)
index 2e9a445..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/gpg-package-ok/ /
-
diff --git a/test/conf.cc b/test/conf.cc
deleted file mode 100644 (file)
index 340647b..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <apt-pkg/configuration.h>
-#include <apt-pkg/error.h>
-
-using namespace std;
-
-int main(int argc,const char *argv[])
-{
-   Configuration Cnf;
-   
-   ReadConfigFile(Cnf,argv[1],true);
-   
-   // Process 'simple-key' type sections
-   const Configuration::Item *Top = Cnf.Tree("simple-key");
-   for (Top = (Top == 0?0:Top->Child); Top != 0; Top = Top->Next)
-   {
-      Configuration Block(Top);
-      
-      string VendorID = Top->Tag;
-      string FingerPrint = Block.Find("Fingerprint");
-      string Name = Block.Find("Name"); // Description?
-      
-      if (FingerPrint.empty() == true || Name.empty() == true)
-        _error->Error("Block %s is invalid",VendorID.c_str());
-      
-      cout << VendorID << ' ' << FingerPrint << ' ' << Name << endl;
-   }   
-        
-   // Print any errors or warnings found during parsing
-   if (_error->empty() == false)
-   {
-      bool Errors = _error->PendingError();
-      _error->DumpErrors();
-      return Errors == true?100:0;
-   }
-   
-   return 0;
-}
diff --git a/test/conf_clear.cc b/test/conf_clear.cc
deleted file mode 100644 (file)
index 259aa0f..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <apt-pkg/configuration.h>
-#include <apt-pkg/error.h>
-
-using namespace std;
-
-int main(int argc,const char *argv[])
-{
-   Configuration Cnf;
-
-   cout << "adding elements" << endl;
-   Cnf.Set("APT::Keep-Fds::",28);
-   Cnf.Set("APT::Keep-Fds::",17);
-   Cnf.Set("APT::Keep-Fds::",47);
-   Cnf.Dump();
-
-   cout << "Removing  elements" << endl;
-   Cnf.Clear("APT::Keep-Fds",17);
-   Cnf.Clear("APT::Keep-Fds",28);
-   Cnf.Clear("APT::Keep-Fds",47);
-   Cnf.Dump();
-
-   return 0;
-}
diff --git a/test/extract-control.cc b/test/extract-control.cc
deleted file mode 100644 (file)
index 29dcbf3..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#include <apt-pkg/debfile.h>
-#include <apt-pkg/error.h>
-
-#include <iostream>
-#include <unistd.h>
-
-using namespace std;
-
-bool ExtractMember(const char *File,const char *Member)
-{
-   FileFd Fd(File,FileFd::ReadOnly);
-   debDebFile Deb(Fd);
-   if(_error->PendingError() == true)
-      return false;
-   
-   debDebFile::MemControlExtract Extract(Member);
-   if (Extract.Read(Deb) == false)
-      return false;
-   
-   if (Extract.Control == 0)
-      return true;
-   
-   write(STDOUT_FILENO,Extract.Control,Extract.Length);
-   return true;
-}
-
-int main(int argc, const char *argv[])
-{
-   if (argc < 2)
-   {
-      cerr << "Need two arguments, a .deb and the control member" << endl;
-      return 100;
-   }
-   
-   if (ExtractMember(argv[1],argv[2]) == false)
-   {
-      _error->DumpErrors();
-      return 100;
-   }
-   
-   return 0;
-}
diff --git a/test/fake-status b/test/fake-status
deleted file mode 100644 (file)
index 9e6366d..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Package: libglib2.0-0
-Status: install ok installed
-Priority: optional
-Section: libs
-Installed-Size: 1376
-Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com>
-Architecture: all
-Source: glib2.0
-Version: 2.13.7-1ubuntu1
-Description: The GLib library of C routines
- 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 contains the shared libraries.
-Original-Maintainer: Loic Minier <lool@dooz.org>
diff --git a/test/hash.cc b/test/hash.cc
deleted file mode 100644 (file)
index cfdb4ea..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#include <apt-pkg/md5.h>
-#include <apt-pkg/sha1.h>
-#include <apt-pkg/sha256.h>
-#include <apt-pkg/strutl.h>
-#include <iostream>
-
-using namespace std;
-
-template <class T> void Test(const char *In,const char *Out)
-{
-   T Sum;
-   Sum.Add(In);
-   cout << Sum.Result().Value() << endl;
-   if (stringcasecmp(Sum.Result().Value(),Out) != 0)
-      abort();
-}
-
-template <class T> void TestMill(const char *Out)
-{
-   T Sum;
-   
-   const unsigned char As[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
-   unsigned Count = 1000000;
-   for (; Count != 0;)
-   {
-      if (Count >= 64)
-      {
-        Sum.Add(As,64);
-        Count -= 64;
-      }
-      else
-      {
-        Sum.Add(As,Count);
-        Count = 0;
-      }
-   }
-   
-   cout << Sum.Result().Value() << endl;
-   if (stringcasecmp(Sum.Result().Value(),Out) != 0)
-      abort();
-}
-
-int main()
-{
-   // From  FIPS PUB 180-1
-   Test<SHA1Summation>("abc","A9993E364706816ABA3E25717850C26C9CD0D89D");
-   Test<SHA1Summation>("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
-                      "84983E441C3BD26EBAAE4AA1F95129E5E54670F1");
-   TestMill<SHA1Summation>("34AA973CD4C4DAA4F61EEB2BDBAD27316534016F");
-   
-   // MD5 tests from RFC 1321
-   Test<MD5Summation>("","d41d8cd98f00b204e9800998ecf8427e");
-   Test<MD5Summation>("a","0cc175b9c0f1b6a831c399e269772661");
-   Test<MD5Summation>("abc","900150983cd24fb0d6963f7d28e17f72");
-   Test<MD5Summation>("message digest","f96b697d7cb7938d525a2f31aaf161d0");
-   Test<MD5Summation>("abcdefghijklmnopqrstuvwxyz","c3fcd3d76192e4007dfb496cca67e13b");
-   Test<MD5Summation>("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
-                     "d174ab98d277d9f5a5611c2c9f419d9f");
-   Test<MD5Summation>("12345678901234567890123456789012345678901234567890123456789012345678901234567890",
-                     "57edf4a22be3c955ac49da2e2107b67a");
-
-   // SHA-256, From FIPS 180-2
-   Test<SHA256Summation>("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 
-                        "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1");
-   
-
-   return 0; 
-}
-
-        
diff --git a/test/integration/Packages-hashsum-verification b/test/integration/Packages-hashsum-verification
new file mode 100644 (file)
index 0000000..29a385f
--- /dev/null
@@ -0,0 +1,18 @@
+Package: apt
+Version: 0.7.25.3
+Architecture: i386
+Maintainer: APT Development Team <deity@lists.debian.org>
+Installed-Size: 5244
+Replaces: libapt-pkg-dev (<< 0.3.7), libapt-pkg-doc (<< 0.3.7)
+Provides: libapt-pkg-libc6.9-6-4.8
+Suggests: aptitude | synaptic | wajig, dpkg-dev, apt-doc, bzip2, lzma, python-apt
+Filename: apt.deb
+Size: 0
+MD5sum: d41d8cd98f00b204e9800998ecf8427e
+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.
index cc5af798c9b38448bba008ec9f85ac47ee1a1b84..a2e71760edea3e97504783d3472867027474707f 100644 (file)
@@ -1,16 +1,19 @@
 #!/bin/sh -- # no runable script, just for vi
 
 # we all like colorful messages
-CERROR="\e[1;31m" # red
-CWARNING="\e[1;33m" # yellow
-CMSG="\e[1;32m" # green
-CINFO="\e[1;96m" # light blue
-CDEBUG="\e[1;94m" # blue
-CNORMAL="\e[0;39m" # default system console color
-CDONE="\e[1;32m" # green
-CPASS="\e[1;32m" # green
-CFAIL="\e[1;31m" # red
-CCMD="\e[1;35m" # pink
+if expr match "$(readlink -f /proc/$$/fd/1)" '/dev/pts/[0-9]\+' > /dev/null && \
+   expr match "$(readlink -f /proc/$$/fd/2)" '/dev/pts/[0-9]\+' > /dev/null; then
+       CERROR="\e[1;31m" # red
+       CWARNING="\e[1;33m" # yellow
+       CMSG="\e[1;32m" # green
+       CINFO="\e[1;96m" # light blue
+       CDEBUG="\e[1;94m" # blue
+       CNORMAL="\e[0;39m" # default system console color
+       CDONE="\e[1;32m" # green
+       CPASS="\e[1;32m" # green
+       CFAIL="\e[1;31m" # red
+       CCMD="\e[1;35m" # pink
+fi
 
 msgdie() { echo "${CERROR}E: $1${CNORMAL}" >&2; exit 1; }
 msgwarn() { echo "${CWARNING}W: $1${CNORMAL}" >&2; }
@@ -42,7 +45,11 @@ if [ $MSGLEVEL -le 2 ]; then
        msgtest() { true; }
        msgpass() { echo -n " ${CPASS}P${CNORMAL}" >&2; }
        msgskip() { echo -n " ${CWARNING}S${CNORMAL}" >&2; }
-       msgfail() { echo -n " ${CFAIL}FAIL${CNORMAL}" >&2; }
+       if [ -n "$CFAIL" ]; then
+               msgfail() { echo -n " ${CFAIL}FAIL${CNORMAL}" >&2; }
+       else
+               msgfail() { echo -n " ###FAILED###" >&2; }
+       fi
 fi
 if [ $MSGLEVEL -le 3 ]; then
        msginfo() { true; }
@@ -151,6 +158,7 @@ setupenvironment() {
 
 configarchitecture() {
        local CONFFILE=rootdir/etc/apt/apt.conf.d/01multiarch.conf
+       rm -f $CONFFILE
        echo "APT::Architecture \"$1\";" > $CONFFILE
        shift
        while [ -n "$1" ]; do
@@ -429,6 +437,27 @@ Filename: pool/main/${NAME}/${NAME}_${VERSION}_${arch}.deb" >> $FILE
        done
 }
 
+insertsource() {
+       local RELEASE="$1"
+       local NAME="$2"
+       local ARCH="$3"
+       local VERSION="$4"
+       local DEPENDENCIES="$5"
+       local ARCHS=""
+       local SPATH="aptarchive/dists/${RELEASE}/main/source"
+       mkdir -p $SPATH
+       local FILE="${SPATH}/Sources"
+       echo "Package: $NAME
+Binary: $NAME
+Version: $VERSION
+Maintainer: Joe Sixpack <joe@example.org>
+Architecture: $ARCH" >> $FILE
+       test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> $FILE
+       echo "Files:
+ d41d8cd98f00b204e9800998ecf8427e 0 ${NAME}_${VERSION}.dsc
+ d41d8cd98f00b204e9800998ecf8427e 0 ${NAME}_${VERSION}.tar.gz" >> $FILE
+}
+
 insertinstalledpackage() {
        local NAME="$1"
        local ARCH="$2"
@@ -481,25 +510,52 @@ buildaptarchivefromfiles() {
        generatereleasefiles
 }
 
+# can be overridden by testcases for their pleasure
+getcodenamefromsuite() { echo -n "$1"; }
+getreleaseversionfromsuite() { true; }
+getlabelfromsuite() { true; }
+
 generatereleasefiles() {
+       # $1 is the Date header and $2 is the ValidUntil header to be set
+       # both should be given in notation date/touch can understand
        msgninfo "\tGenerate Release files… "
-       local DATE="${1:-now}"
        if [ -e aptarchive/dists ]; then
                for dir in $(find ./aptarchive/dists -mindepth 3 -maxdepth 3 -type d -name 'i18n'); do
                        aptftparchive -qq release $dir -o APT::FTPArchive::Release::Patterns::='Translation-*' > $dir/Index
                done
                for dir in $(find ./aptarchive/dists -mindepth 1 -maxdepth 1 -type d); do
-                       local CODENAME="$(echo "$dir" | cut -d'/' -f 4)"
-                       aptftparchive -qq release $dir -o APT::FTPArchive::Release::Suite="${CODENAME}" -o APT::FTPArchive::Release::Codename="${CODENAME}" | sed -e '/0 Release$/ d' > $dir/Release # remove the self reference
-                       if [ "$CODENAME" = "experimental" -o "$CODENAME" = "experimental2" ]; then
+                       local SUITE="$(echo "$dir" | cut -d'/' -f 4)"
+                       local CODENAME="$(getcodenamefromsuite $SUITE)"
+                       local VERSION="$(getreleaseversionfromsuite $SUITE)"
+                       local LABEL="$(getlabelfromsuite $SUITE)"
+                       if [ -n "$VERSION" ]; then
+                               VERSION="-o APT::FTPArchive::Release::Version=${VERSION}"
+                       fi
+                       if [ -n "$LABEL" ]; then
+                               LABEL="-o APT::FTPArchive::Release::Label=${LABEL}"
+                       fi
+                       aptftparchive -qq release $dir \
+                               -o APT::FTPArchive::Release::Suite="${SUITE}" \
+                               -o APT::FTPArchive::Release::Codename="${CODENAME}" \
+                               ${LABEL} \
+                               ${VERSION} \
+                                       | sed -e '/0 Release$/ d' > $dir/Release # remove the self reference
+                       if [ "$SUITE" = "experimental" -o "$SUITE" = "experimental2" ]; then
                                sed -i '/^Date: / a\
 NotAutomatic: yes' $dir/Release
                        fi
+                       if [ -n "$1" -a "$1" != "now" ]; then
+                               sed -i "s/^Date: .*$/Date: $(date -d "$1" '+%a, %d %b %Y %H:%M:%S %Z')/" $dir/Release
+                       fi
+                       if [ -n "$2" ]; then
+                               sed -i "/^Date: / a\
+Valid-Until: $(date -d "$2" '+%a, %d %b %Y %H:%M:%S %Z')" $dir/Release
+                       fi
                done
        else
                aptftparchive -qq release ./aptarchive | sed -e '/0 Release$/ d' > aptarchive/Release # remove the self reference
        fi
-       if [ "$DATE" != "now" ]; then
+       if [ -n "$1" -a "$1" != "now" ]; then
                for release in $(find ./aptarchive -name 'Release'); do
                        touch -d "$1" $release
                done
@@ -573,6 +629,11 @@ changetowebserver() {
        if which weborf > /dev/null; then
                weborf -xb aptarchive/ 2>&1 > /dev/null &
                addtrap "kill $!;"
+       elif which gatling > /dev/null; then
+               cd aptarchive
+               gatling -p 8080 -F -S 2>&1 > /dev/null &
+               addtrap "kill $!;"
+               cd - > /dev/null
        elif which lighttpd > /dev/null; then
                echo "server.document-root = \"$(readlink -f ./aptarchive)\"
 server.port = 8080
@@ -708,3 +769,9 @@ testmarkedauto() {
        fi
        aptmark showauto 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail
 }
+
+pause() {
+       echo "STOPPED execution. Press enter to continue"
+       local IGNORE
+       read IGNORE
+}
diff --git a/test/integration/makefile b/test/integration/makefile
new file mode 100644 (file)
index 0000000..fb12fe9
--- /dev/null
@@ -0,0 +1,10 @@
+# -*- make -*-
+BASE=../..
+SUBDIR=test/integration
+
+# Bring in the default rules
+include ../../buildlib/defaults.mak
+
+.PHONY: test
+test:
+       ./run-tests
index edac07dbfd0cd289bd441fb92ab1c7d0b58d0914..75f2ad66224b65b440d67b4fb19ac38be05efd88 100755 (executable)
@@ -8,17 +8,30 @@ if [ "$1" = "-q" ]; then
 elif [ "$1" = "-v" ]; then
        export MSGLEVEL=4
 fi
+
+if expr match "$(readlink -f /proc/$$/fd/1)" '/dev/pts/[0-9]\+' > /dev/null; then
+       CTEST='\033[1;32m'
+       CHIGH='\033[1;35m'
+       CRESET='\033[0m'
+elif [ -z "${MSGLEVEL}" ]; then
+       export MSGLEVEL=2
+fi
+
+if [ -z "$MSGLEVEL" ]; then
+       MSGLEVEL=5
+fi
+
 for testcase in $(run-parts --list $DIR | grep '/test-'); do
-       if [ "$1" = "-q" ]; then
-               echo -n "\033[1;32mRun Testcase \033[1;35m$(basename ${testcase})\033[0m"
+       if [ "$MSGLEVEL" -le 2 ]; then
+               echo -n "${CTEST}Testcase ${CHIGH}$(basename ${testcase})${CRESET}: "
        else
-               echo "\033[1;32mRun Testcase \033[1;35m$(basename ${testcase})\033[0m"
+               echo "${CTEST}Run Testcase ${CHIGH}$(basename ${testcase})${CRESET}"
        fi
        if ! ${testcase}; then
                  FAIL=$((FAIL+1))
                  echo "$(basename $testcase) ... FAIL"
         fi
-       if [ "$1" = "-q" ]; then
+       if [ "$MSGLEVEL" -le 2 ]; then
                echo
        fi
 done
index b9f45b131c49c0fecbf64489e47e8cb34933e972..8fa337ccc19734a55d266070c941984d66ca0d90 100755 (executable)
@@ -12,7 +12,6 @@ trap "$CURRENTTRAP" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
 chmod a-x rootdir/var/lib/dpkg
 
 testsegfault() {
-       rm -f rootdir/var/cache/apt/*.bin
        msgtest "No segfault in" "$*"
        local TEST="$($* 2>&1 | grep -v 'E:')"
        if [ -z "$TEST" ]; then
diff --git a/test/integration/test-bug-407511-fail-invalid-default-release b/test/integration/test-bug-407511-fail-invalid-default-release
new file mode 100755 (executable)
index 0000000..d0a73af
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture 'i386'
+
+insertpackage 'unstable' 'cool' 'all' '1.0-1'
+
+getcodenamefromsuite() {
+       if [ "$SUITE" = 'unstable' ]; then
+               echo -n 'sid'
+       else
+               echo -n "$SUITE"
+       fi
+}
+getreleaseversionfromsuite() {
+       if [ "$SUITE" = 'unstable' ]; then
+               echo -n '42.0'
+       else
+               echo -n '0.8.15'
+       fi
+}
+
+setupaptarchive
+
+passdist() {
+       msgtest "Test that target-release is accepted" $1
+       aptget dist-upgrade -t $1 -qq && msgpass || msgfail
+}
+
+faildist() {
+       msgtest "Test that target-release is refused" $1
+       aptget dist-upgrade -t $1 -qq 2> /dev/null && msgfail || msgpass
+}
+
+passdist unstable
+passdist sid
+faildist sidd
+faildist stable
+passdist 42.0
+passdist 42.*
+passdist 42*
+passdist 4*.0
+faildist 21.0
+faildist 21*
index 0f64939484f1497bec69b28a5886be8d7b863b42..645e86d7d130404bea08186fa25aa599aa9c7ed4 100755 (executable)
@@ -25,7 +25,6 @@ MD5sum: 8489687ce10e656babd467c9ee389349
 Description-de: Verschiedene Dateien für das Basis-System von Debian"
 
 predependsgawk() {
-       rm rootdir/var/cache/apt/*.bin
        cp $TESTDIR/$(echo "$(basename $0)" | sed 's/test-/status-/') rootdir/var/lib/dpkg/status
        echo "$pkgbasefile
 Pre-Depends: $1
@@ -57,7 +56,6 @@ predependsgawk "awk | aawk"
 predependsgawk "awk"
 
 predependsgawk2() {
-       rm rootdir/var/cache/apt/*.bin
        cp $TESTDIR/$(echo "$(basename $0)" | sed 's/test-/status-/') rootdir/var/lib/dpkg/status
        echo "$pkgbasefile
 Pre-Depends: $1
index 11dee062898a64aee488faeb49750cd08c54592a..5c103da6f49f35553b290d8d7be68ead6746b20f 100755 (executable)
@@ -11,7 +11,7 @@ touch aptarchive/Packages
 setupflataptarchive
 
 testaptgetupdate() {
-       rm -rf rootdir/var/lib/apt rootdir/var/cache/apt
+       rm -rf rootdir/var/lib/apt
        aptget update 2>> testaptgetupdate.diff >> testaptgetupdate.diff || true
        sed -i -e '/^Fetched / d' -e 's#\[[0-9]* [kMGTPY]*B\]#\[\]#' testaptgetupdate.diff
        GIVEN="$1"
diff --git a/test/integration/test-bug-596498-trusted-unsigned-repo b/test/integration/test-bug-596498-trusted-unsigned-repo
new file mode 100755 (executable)
index 0000000..6ebc4a3
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture 'i386'
+
+buildsimplenativepackage 'cool' 'i386' '1.0' 'unstable'
+
+setupaptarchive
+
+aptgetupdate() {
+       rm -rf rootdir/var/lib/apt/ rootdir/var/cache/apt/*.bin
+       aptget update -qq
+}
+
+PKGTEXT="$(aptget install cool --assume-no -d | head -n 7)"
+DEBFILE='rootdir/etc/apt/sources.list.d/apt-test-unstable-deb.list'
+
+testequal "$PKGTEXT
+Download complete and in download only mode" aptget install cool --assume-no -d
+
+sed -i -e 's#deb#deb [trusted=no]#' $DEBFILE
+aptgetupdate
+
+testequal "$PKGTEXT
+WARNING: The following packages cannot be authenticated!
+  cool
+Install these packages without verification [y/N]? N
+E: Some packages could not be authenticated" aptget install cool --assume-no -d
+
+find aptarchive/ \( -name 'Release.gpg' -o -name 'InRelease' \) -delete
+sed -i -e 's#deb \[trusted=no\]#deb#' $DEBFILE
+aptgetupdate
+
+testequal "$PKGTEXT
+WARNING: The following packages cannot be authenticated!
+  cool
+Install these packages without verification [y/N]? N
+E: Some packages could not be authenticated" aptget install cool --assume-no -d
+
+sed -i -e 's#deb#deb [trusted=yes]#' $DEBFILE
+aptgetupdate
+
+testequal "$PKGTEXT
+Download complete and in download only mode" aptget install cool --assume-no -d
index 2a323a201b84ec2386f0169431fee27f1a18e655..44ab919006dfa0de3a8c3433709af90fd35b5b12 100755 (executable)
@@ -57,7 +57,7 @@ Description-${LOCALE}: Mächtige Oberfläche für dpkg
 testrun() {
        echo "Acquire::Languages { \"${LOCALE}\"; \"en\"; };" > rootdir/etc/apt/apt.conf.d/00languages
        export LC_ALL=""
-       rm -rf rootdir/var/lib/apt/lists rootdir/var/cache/apt/
+       rm -rf rootdir/var/lib/apt/lists
        setupaptarchive
        testequal "$LOCALESTANZA" aptcache show apt -o Test=File-${LOCALE}
        testequal "$NOLONGSTANZA" aptcache show apt -o Acquire::Languages="ww" -o Test=File-${LOCALE}
index 7e384e428c2b055e67b7dd25a4dc39e4d23e71fe..7333054cc11b47da54da8833793b413b390cc33d 100755 (executable)
@@ -17,7 +17,20 @@ buildsimplenativepackage 'apt2' 'amd64' '2' 'unstable' 'Depends: libsame (= 2)'
 
 setupaptarchive
 
-testequal 'Reading package lists...
+# order in switch libsame:{amd64,i386} are unpacked is irrelevant, as both are installed - but we need to do it together
+testequalor2 'Reading package lists...
+Building dependency tree...
+The following packages will be upgraded:
+  apt:i386 apt2 libsame libsame:i386
+4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+Inst libsame:i386 [1] (2 unstable [i386]) [libsame:amd64 on libsame:i386] [libsame:i386 on libsame:amd64] [libsame:amd64 apt:i386 ]
+Inst libsame [1] (2 unstable [amd64]) [apt2:amd64 apt:i386 ]
+Conf libsame:i386 (2 unstable [i386]) [apt2:amd64 apt:i386 ]
+Conf libsame (2 unstable [amd64]) [apt2:amd64 apt:i386 ]
+Inst apt2 [1] (2 unstable [amd64]) [apt:i386 ]
+Conf apt2 (2 unstable [amd64]) [apt:i386 ]
+Inst apt:i386 [1] (2 unstable [i386])
+Conf apt:i386 (2 unstable [i386])' 'Reading package lists...
 Building dependency tree...
 The following packages will be upgraded:
   apt:i386 apt2 libsame libsame:i386
diff --git a/test/integration/test-bug-632221-cross-dependency-satisfaction b/test/integration/test-bug-632221-cross-dependency-satisfaction
new file mode 100755 (executable)
index 0000000..4299f05
--- /dev/null
@@ -0,0 +1,183 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture 'amd64' 'armel'
+
+insertinstalledpackage 'build-essential' 'all' '11.5'
+
+insertpackage 'unstable' 'doxygen' 'amd64,armel' '1.0'
+insertpackage 'unstable' 'libc6' 'amd64,armel' '1.0' 'Multi-Arch: same'
+insertpackage 'unstable' 'libc6-dev' 'amd64,armel' '1.0' 'Depends: libc6
+Multi-Arch: same'
+insertpackage 'unstable' 'cool' 'amd64,armel' '1.0' 'Multi-Arch: allowed'
+insertpackage 'unstable' 'amdboot' 'amd64' '1.0'
+insertpackage 'unstable' 'foreigner' 'amd64,armel' '1.0' 'Multi-Arch: foreign'
+
+insertsource 'unstable' 'apt' 'any' '0.8.15' 'Build-Depends: doxygen, libc6-dev, libc6-dev:native, cool:any, amdboot:amd64, foreigner'
+
+setupaptarchive
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  amdboot cool doxygen foreigner libc6 libc6-dev
+0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
+Inst amdboot (1.0 unstable [amd64])
+Inst cool (1.0 unstable [amd64])
+Inst doxygen (1.0 unstable [amd64])
+Inst foreigner (1.0 unstable [amd64])
+Inst libc6 (1.0 unstable [amd64])
+Inst libc6-dev (1.0 unstable [amd64])
+Conf amdboot (1.0 unstable [amd64])
+Conf cool (1.0 unstable [amd64])
+Conf doxygen (1.0 unstable [amd64])
+Conf foreigner (1.0 unstable [amd64])
+Conf libc6 (1.0 unstable [amd64])
+Conf libc6-dev (1.0 unstable [amd64])' aptget build-dep apt -s
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  amdboot cool doxygen foreigner libc6 libc6:armel libc6-dev libc6-dev:armel
+0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
+Inst amdboot (1.0 unstable [amd64])
+Inst cool (1.0 unstable [amd64])
+Inst doxygen (1.0 unstable [amd64])
+Inst foreigner (1.0 unstable [amd64])
+Inst libc6 (1.0 unstable [amd64])
+Inst libc6:armel (1.0 unstable [armel])
+Inst libc6-dev (1.0 unstable [amd64])
+Inst libc6-dev:armel (1.0 unstable [armel])
+Conf amdboot (1.0 unstable [amd64])
+Conf cool (1.0 unstable [amd64])
+Conf doxygen (1.0 unstable [amd64])
+Conf foreigner (1.0 unstable [amd64])
+Conf libc6 (1.0 unstable [amd64])
+Conf libc6:armel (1.0 unstable [armel])
+Conf libc6-dev (1.0 unstable [amd64])
+Conf libc6-dev:armel (1.0 unstable [armel])' aptget build-dep apt -s -a armel
+
+configarchitecture 'armel' 'amd64'
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  amdboot:amd64 cool doxygen foreigner libc6 libc6-dev
+0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
+Inst amdboot:amd64 (1.0 unstable [amd64])
+Inst cool (1.0 unstable [armel])
+Inst doxygen (1.0 unstable [armel])
+Inst foreigner (1.0 unstable [armel])
+Inst libc6 (1.0 unstable [armel])
+Inst libc6-dev (1.0 unstable [armel])
+Conf amdboot:amd64 (1.0 unstable [amd64])
+Conf cool (1.0 unstable [armel])
+Conf doxygen (1.0 unstable [armel])
+Conf foreigner (1.0 unstable [armel])
+Conf libc6 (1.0 unstable [armel])
+Conf libc6-dev (1.0 unstable [armel])' aptget build-dep apt -s
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  amdboot:amd64 cool doxygen foreigner libc6:amd64 libc6 libc6-dev:amd64
+  libc6-dev
+0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
+Inst amdboot:amd64 (1.0 unstable [amd64])
+Inst cool (1.0 unstable [armel])
+Inst doxygen (1.0 unstable [armel])
+Inst foreigner (1.0 unstable [armel])
+Inst libc6:amd64 (1.0 unstable [amd64])
+Inst libc6 (1.0 unstable [armel])
+Inst libc6-dev:amd64 (1.0 unstable [amd64])
+Inst libc6-dev (1.0 unstable [armel])
+Conf amdboot:amd64 (1.0 unstable [amd64])
+Conf cool (1.0 unstable [armel])
+Conf doxygen (1.0 unstable [armel])
+Conf foreigner (1.0 unstable [armel])
+Conf libc6:amd64 (1.0 unstable [amd64])
+Conf libc6 (1.0 unstable [armel])
+Conf libc6-dev:amd64 (1.0 unstable [amd64])
+Conf libc6-dev (1.0 unstable [armel])' aptget build-dep apt -s -a amd64
+
+configarchitecture 'amd64' 'armel'
+
+insertinstalledpackage 'cool' 'amd64' '0.5'
+insertinstalledpackage 'foreigner' 'armel' '0.5'
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  amdboot doxygen libc6 libc6-dev
+0 upgraded, 4 newly installed, 0 to remove and 2 not upgraded.
+Inst amdboot (1.0 unstable [amd64])
+Inst doxygen (1.0 unstable [amd64])
+Inst libc6 (1.0 unstable [amd64])
+Inst libc6-dev (1.0 unstable [amd64])
+Conf amdboot (1.0 unstable [amd64])
+Conf doxygen (1.0 unstable [amd64])
+Conf libc6 (1.0 unstable [amd64])
+Conf libc6-dev (1.0 unstable [amd64])' aptget build-dep apt -s
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  amdboot doxygen libc6 libc6:armel libc6-dev libc6-dev:armel
+0 upgraded, 6 newly installed, 0 to remove and 2 not upgraded.
+Inst amdboot (1.0 unstable [amd64])
+Inst doxygen (1.0 unstable [amd64])
+Inst libc6 (1.0 unstable [amd64])
+Inst libc6:armel (1.0 unstable [armel])
+Inst libc6-dev (1.0 unstable [amd64])
+Inst libc6-dev:armel (1.0 unstable [armel])
+Conf amdboot (1.0 unstable [amd64])
+Conf doxygen (1.0 unstable [amd64])
+Conf libc6 (1.0 unstable [amd64])
+Conf libc6:armel (1.0 unstable [armel])
+Conf libc6-dev (1.0 unstable [amd64])
+Conf libc6-dev:armel (1.0 unstable [armel])' aptget build-dep apt -s -a armel
+
+configarchitecture 'armel' 'amd64'
+
+# cool 0.5 is not M-A: allowed, so amd64 is not acceptable
+testequal 'Reading package lists...
+Building dependency tree...
+The following packages will be REMOVED:
+  cool:amd64
+The following NEW packages will be installed:
+  amdboot:amd64 cool doxygen libc6 libc6-dev
+0 upgraded, 5 newly installed, 1 to remove and 1 not upgraded.
+Remv cool:amd64 [0.5]
+Inst amdboot:amd64 (1.0 unstable [amd64])
+Inst cool (1.0 unstable [armel])
+Inst doxygen (1.0 unstable [armel])
+Inst libc6 (1.0 unstable [armel])
+Inst libc6-dev (1.0 unstable [armel])
+Conf amdboot:amd64 (1.0 unstable [amd64])
+Conf cool (1.0 unstable [armel])
+Conf doxygen (1.0 unstable [armel])
+Conf libc6 (1.0 unstable [armel])
+Conf libc6-dev (1.0 unstable [armel])' aptget build-dep apt -s
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  amdboot:amd64 doxygen libc6:amd64 libc6 libc6-dev:amd64 libc6-dev
+0 upgraded, 6 newly installed, 0 to remove and 2 not upgraded.
+Inst amdboot:amd64 (1.0 unstable [amd64])
+Inst doxygen (1.0 unstable [armel])
+Inst libc6:amd64 (1.0 unstable [amd64])
+Inst libc6 (1.0 unstable [armel])
+Inst libc6-dev:amd64 (1.0 unstable [amd64])
+Inst libc6-dev (1.0 unstable [armel])
+Conf amdboot:amd64 (1.0 unstable [amd64])
+Conf doxygen (1.0 unstable [armel])
+Conf libc6:amd64 (1.0 unstable [amd64])
+Conf libc6 (1.0 unstable [armel])
+Conf libc6-dev:amd64 (1.0 unstable [amd64])
+Conf libc6-dev (1.0 unstable [armel])' aptget build-dep apt -s -a amd64
+
+
diff --git a/test/integration/test-bug-633350-do-not-kill-last-char-in-Release b/test/integration/test-bug-633350-do-not-kill-last-char-in-Release
new file mode 100755 (executable)
index 0000000..2aae7cf
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture 'amd64'
+
+insertpackage 'unstable' 'cool' 'amd64' '1.0'
+
+setupaptarchive 2> /dev/null
+
+echo 'NotAutomatic: yes' >> aptarchive/dists/unstable/Release
+
+signreleasefiles
+find aptarchive/dists -name 'InRelease' -delete
+
+rm -rf rootdir/var/lib/apt/lists
+
+OUTPUT="$(aptget update 2>&1)"
+msgtest 'Check that parsing happens without warnings' 'with missing newline'
+if echo "${OUTPUT}" | grep '^W:' > /dev/null; then
+       msgfail
+       echo "${OUTPUT}"
+else
+       msgpass
+fi
index 99943574e1b621682ca490be5bdb6553c17602ee..a5e885745959e8fd2e4538427285a82621355c3d 100755 (executable)
@@ -10,10 +10,10 @@ configarchitecture "i386"
 buildsimplenativepackage "testpkg" "i386" "1.0"
 setupaptarchive
 
-local GOODSHOW="$(aptcache show testpkg)
+GOODSHOW="$(aptcache show testpkg)
 "
-local GOODPOLICY="$(aptcache policy testpkg)"
-local GOODSHOWSRC="$(aptcache showsrc testpkg)
+GOODPOLICY="$(aptcache policy testpkg)"
+GOODSHOWSRC="$(aptcache showsrc testpkg)
 "
 
 test $(echo "$GOODSHOW" | grep -e '^Package: testpkg' -e '^Version: 1.0' -e '^Architecture: i386' | wc -l) -eq 3 || msgdie 'show is broken'
@@ -51,17 +51,16 @@ testrun() {
                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
+       rm -f 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
+       rm -f 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
+       rm -f 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
+       aptget clean
        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
@@ -100,7 +99,7 @@ testrun "compressed"
 rm rootdir/etc/apt/apt.conf.d/02compressindex
 changetowebserver
 aptget update -qq
-local GOODPOLICY="$(aptcache policy testpkg)"
+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
 
index b5d565c2f13eb3ee839219633eedc3c0032346f3..82ba9e59201957673fffe65561533becb7d833d2 100755 (executable)
@@ -12,13 +12,13 @@ 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"
+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"
+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:
@@ -33,9 +33,9 @@ aptget install old-pkg=1.0 --trivial-only -qq 2>&1 > /dev/null
 
 testmarkedauto # old-pkg is manual installed
 
-local CMD="aptget dist-upgrade -y -q=0"
+CMD="aptget dist-upgrade -y -q=0"
 msgtest "Test for equality of" "$CMD"
-local COMPAREFILE=$(mktemp)
+COMPAREFILE=$(mktemp)
 echo "The following package disappeared from your system as
 all files have been overwritten by other packages:
   old-pkg
index d88ad0000a58f32c5fbcafb13d6b44c69219644e..20b314074b19209a28c57fac111374d1923cf38f 100755 (executable)
@@ -58,7 +58,7 @@ The following information may help to resolve the situation:
 The following packages have unmet dependencies:
  coolstuff-broken : Depends: cool2 but it is not installable or
                              stuff2 but it is not installable
-E: Broken packages' aptget install coolstuff-broken -s
+E: Unable to correct problems, you have held broken packages.' aptget install coolstuff-broken -s
 
 testequal 'Reading package lists...
 Building dependency tree...
@@ -105,4 +105,4 @@ The following information may help to resolve the situation:
 The following packages have unmet dependencies:
  coolstuff-provided-broken : Depends: cool2 but it is not installable or
                                       stuff-abi-2
-E: Broken packages' aptget install coolstuff-provided-broken -s
+E: Unable to correct problems, you have held broken packages.' aptget install coolstuff-provided-broken -s
diff --git a/test/integration/test-hashsum-verification b/test/integration/test-hashsum-verification
new file mode 100755 (executable)
index 0000000..3ac9ecc
--- /dev/null
@@ -0,0 +1,81 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+
+setupenvironment
+configarchitecture "i386"
+
+buildaptarchive
+setupflataptarchive
+changetowebserver
+
+prepare() {
+       local DATE="${2:-now}"
+       if [ "$DATE" = 'now' -a "$1" = "${PKGFILE}-new" ]; then
+               DATE='now + 6 days'
+       fi
+       for release in $(find rootdir/var/lib/apt/lists 2> /dev/null); do
+               touch -d 'now - 6 hours' $release
+       done
+       cp $1 aptarchive/Packages
+       find aptarchive -name 'Release' -delete
+       cat aptarchive/Packages | gzip > aptarchive/Packages.gz
+       cat aptarchive/Packages | bzip2 > aptarchive/Packages.bz2
+       cat aptarchive/Packages | lzma > aptarchive/Packages.lzma
+        # create Release file with incorret checksums
+       cat > aptarchive/Release <<EOF
+Date: Fri, 05 Aug 2011 09:22:08 UTC
+MD5Sum:
+ x15c483ac486f5dbe95095c7ec08626f              760 Packages
+ x0579797df4792164a17305fb0b317e9              546 Packages.bz2
+ xc532a82873d2206b4e4503e92d167bd              489 Packages.gz
+ x4d1d25661377dd4bb95a1736e2624d3              527 Packages.lzma
+ xf1cc221194edbaa943d2375d6f44a88              572 Packages.xz
+SHA1:
+ x0d3317839cf68cd40c28f0bddca8d2ce5a29cad              760 Packages
+ xffddf046ad8dfd8338a355d76fb08d143c8b636              546 Packages.bz2
+ xa27a3df51ca4474b880a6594c4811957079b613              489 Packages.gz
+ x9d7bba4e6fa927a34dcd797694c2893c21f1004              527 Packages.lzma
+ x7d988fe59cf67298828e5299a15d329c0f00f1b              572 Packages.xz
+SHA256:
+ x5a47d72f6b97bfa164b23326b6ad3cb019b5c6cc73769f8c0187616933d1b2b              760 Packages
+ x617252f5bfe3e9126352c7c2f8122d9c3b2c5e1a6c8a9616d62adc0ed164172              546 Packages.bz2
+ xc6abc6fe9a4fcf0758ec5366dfd19bcba90af026a7017c3f6198c59eccd8ef5              489 Packages.gz
+ xb306e66e5e6a7169c8d281a888539d1fdca9cecc99ae605717df579d5b9c166              527 Packages.lzma
+ x9585d0e66b74c9385727fbea11fea9ab33c716b18a32f3036f037a2b9b57120              572 Packages.xz
+EOF
+        cp aptarchive/Release aptarchive/InRelease
+}
+
+# fake our downloadable file
+touch aptarchive/apt.deb
+
+PKGFILE="${TESTDIR}/$(echo "$(basename $0)" | sed 's#^test-#Packages-#')"
+
+runtest() {
+       prepare ${PKGFILE}
+       rm -rf rootdir/var/lib/apt/lists
+       signreleasefiles 'Joe Sixpack'
+       find aptarchive/ -name "$DELETEFILE" -delete
+
+        # test signed release file
+        msgtest 'apt-get update gets the expected hashsum mismatch'
+       aptget update 2>&1 | grep "Hash Sum mismatch" > /dev/null && msgpass || msgfail
+        msgtest 'No package from the source available'
+        [ "$(aptcache show apt 2>&1)" = "E: No packages found" ] && msgpass || msgfail
+        msgtest 'No Packages file in /var/lib/apt/lists'
+        [ "$(ls rootdir/var/lib/apt/lists/*Package* 2>/dev/null)" = "" ] && msgpass || msgfail 
+        
+        # now with the unsigned Release file
+        rm -rf rootdir/var/lib/apt/lists
+        rm aptarchive/InRelease aptarchive/Release.gpg
+        msgtest 'unsigned apt-get update gets the expected hashsum mismatch'
+       aptget update 2>&1 | grep "Hash Sum mismatch" > /dev/null && msgpass || msgfail
+
+
+}
+
+runtest
+
index fa356ed5475e4598e321e56f7df498e6027a110e..6b1473564810676536c6285729735755fa920587 100755 (executable)
@@ -30,21 +30,18 @@ testequalpolicy 100 500
 testequalpolicy 990 500 -t now
 
 sed -i aptarchive/Release -e 1i"NotAutomatic: yes"
-rm rootdir/var/cache/apt/srcpkgcache.bin rootdir/var/cache/apt/pkgcache.bin
 aptget update -qq
 
 testequalpolicy 100 1 -o Test=NotAutomatic
 testequalpolicy 990 1 -o Test=NotAutomatic -t now
 
 sed -i aptarchive/Release -e 1i"ButAutomaticUpgrades: yes"
-rm rootdir/var/cache/apt/srcpkgcache.bin rootdir/var/cache/apt/pkgcache.bin
 aptget update -qq
 
 testequalpolicy 100 100 -o Test=ButAutomaticUpgrades
 testequalpolicy 990 100 -o Test=ButAutomaticUpgrades -t now
 
 sed -i aptarchive/Release -e 's#NotAutomatic: yes#NotAutomatic: no#' -e '/ButAutomaticUpgrades: / d'
-rm rootdir/var/cache/apt/srcpkgcache.bin rootdir/var/cache/apt/pkgcache.bin
 aptget update -qq
 
 testequalpolicy 100 500 -o Test=Automatic
@@ -135,7 +132,6 @@ Pin-Priority: -1" > rootdir/etc/apt/preferences
 rm rootdir/etc/apt/preferences
 sed -i aptarchive/dists/backports/Release -e 1i"NotAutomatic: yes"
 signreleasefiles
-rm rootdir/var/cache/apt/srcpkgcache.bin rootdir/var/cache/apt/pkgcache.bin
 aptget update -qq
 
 testequalpolicycoolstuff "" "1.0" 1 500 0 "" -o Test=NotAutomatic
@@ -164,7 +160,6 @@ testequalpolicycoolstuff "" "1.0" 1 990 600 "2.0~bpo1" -o Test=NotAutomatic -t s
 rm rootdir/etc/apt/preferences
 sed -i aptarchive/dists/backports/Release -e 1i"ButAutomaticUpgrades: yes"
 signreleasefiles
-rm rootdir/var/cache/apt/srcpkgcache.bin rootdir/var/cache/apt/pkgcache.bin
 aptget update -qq
 
 testequalpolicycoolstuff "" "1.0" 100 500 0 "" -o Test=ButAutomaticUpgrades
@@ -211,7 +206,6 @@ setupaptarchive
 
 sed -i aptarchive/dists/backports/Release -e 1i"NotAutomatic: yes"
 signreleasefiles
-rm rootdir/var/cache/apt/srcpkgcache.bin rootdir/var/cache/apt/pkgcache.bin
 aptget update -qq
 
 testequalpolicycoolstuff "2.0~bpo1" "2.0~bpo1" 1 500 0 "" "2.0~bpo2" -o Test=NotAutomatic
@@ -220,7 +214,6 @@ testequalpolicycoolstuff "2.0~bpo1" "2.0~bpo2" 990 500 0 "" "2.0~bpo2" -o Test=N
 
 sed -i aptarchive/dists/backports/Release -e 1i"ButAutomaticUpgrades: yes"
 signreleasefiles
-rm rootdir/var/cache/apt/srcpkgcache.bin rootdir/var/cache/apt/pkgcache.bin
 aptget update -qq
 
 testequalpolicycoolstuff "2.0~bpo1" "2.0~bpo2" 100 500 0 "" "2.0~bpo2" -o Test=ButAutomaticUpgrades
index b6dbe99db4b6193013755ecc33eebd2ec54680f5..0970cb93546f215e2c41ca8c037556a4e2a233c0 100755 (executable)
@@ -416,4 +416,4 @@ The following information may help to resolve the situation:
 The following packages have unmet dependencies:
  uninstallablepkg : Depends: libmtp8 (>= 10:0.20.1) but it is not going to be installed
                     Depends: amarok-utils (= 2.3.2-2+exp) but 2.3.1-1+sid is to be installed
-E: Broken packages" aptget install uninstallablepkg/experimental --trivial-only -V -q=0
+E: Unable to correct problems, you have held broken packages." aptget install uninstallablepkg/experimental --trivial-only -V -q=0
diff --git a/test/integration/test-releasefile-valid-until b/test/integration/test-releasefile-valid-until
new file mode 100755 (executable)
index 0000000..680a370
--- /dev/null
@@ -0,0 +1,95 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture 'i386'
+
+insertpackage 'wheezy' 'apt' 'all' '0.8.15'
+
+getlabelfromsuite() {
+       echo -n 'Testcases'
+}
+
+
+setupaptarchive
+
+setupreleasefile() {
+       rm -rf rootdir/var/lib/apt/lists
+       aptget clean
+       generatereleasefiles "$1" "$2"
+       signreleasefiles
+}
+
+aptgetupdate() {
+       if aptget update $* 2>&1 | grep -q 'is expired'; then
+               return 1
+       else
+               return 0
+       fi
+}
+
+setupreleasefile
+msgtest 'Release file is accepted as it has' 'no Until'
+aptgetupdate && msgpass || msgfail
+
+setupreleasefile
+msgtest 'Release file is accepted as it has' 'no Until and good Max-Valid'
+aptgetupdate -o Acquire::Max-ValidTime=3600 && msgpass || msgfail
+
+setupreleasefile 'now - 2 days'
+msgtest 'Release file is rejected as it has' 'no Until, but bad Max-Valid'
+aptgetupdate -o Acquire::Max-ValidTime=3600 && msgfail || msgpass
+
+setupreleasefile 'now - 3 days' 'now + 1 day'
+msgtest 'Release file is accepted as it has' 'good Until'
+aptgetupdate && msgpass || msgfail
+
+setupreleasefile 'now - 7 days' 'now - 4 days'
+msgtest 'Release file is rejected as it has' 'bad Until'
+aptgetupdate && msgfail || msgpass
+
+setupreleasefile 'now - 7 days' 'now - 4 days'
+msgtest 'Release file is rejected as it has' 'bad Until (ignore good Max-Valid)'
+aptgetupdate -o Acquire::Max-ValidTime=1209600 && msgfail || msgpass
+
+setupreleasefile 'now - 7 days' 'now - 4 days'
+msgtest 'Release file is rejected as it has' 'bad Max-Valid (bad Until)'
+aptgetupdate -o Acquire::Max-ValidTime=86400 && msgfail || msgpass
+
+setupreleasefile 'now - 7 days' 'now + 4 days'
+msgtest 'Release file is rejected as it has' 'bad Max-Valid (good Until)'
+aptgetupdate -o Acquire::Max-ValidTime=86400 && msgfail || msgpass
+
+setupreleasefile 'now - 7 days' 'now + 4 days'
+msgtest 'Release file is accepted as it has' 'good labeled Max-Valid'
+aptgetupdate -o Acquire::Max-ValidTime=86400 -o Acquire::Max-ValidTime::Testcases=1209600 && msgpass || msgfail
+
+setupreleasefile 'now - 7 days' 'now + 4 days'
+msgtest 'Release file is rejected as it has' 'bad labeled Max-Valid'
+aptgetupdate -o Acquire::Max-ValidTime=1209600 -o Acquire::Max-ValidTime::Testcases=86400 && msgfail || msgpass
+
+setupreleasefile 'now - 7 days' 'now + 1 days'
+msgtest 'Release file is accepted as it has' 'good Until (good Min-Valid, no Max-Valid)'
+aptgetupdate -o Acquire::Min-ValidTime=1209600 && msgpass || msgfail
+
+setupreleasefile 'now - 7 days' 'now - 4 days'
+msgtest 'Release file is accepted as it has' 'good Min-Valid (bad Until, no Max-Valid)'
+aptgetupdate -o Acquire::Min-ValidTime=1209600 && msgpass || msgfail
+
+setupreleasefile 'now - 7 days' 'now - 2 days'
+msgtest 'Release file is accepted as it has' 'good Min-Valid (bad Until, good Max-Valid) <'
+aptgetupdate -o Acquire::Min-ValidTime=1209600 -o Acquire::Max-ValidTime=2419200 && msgpass || msgfail
+
+setupreleasefile 'now - 7 days' 'now - 2 days'
+msgtest 'Release file is rejected as it has' 'bad Max-Valid (bad Until, good Min-Valid) >'
+aptgetupdate -o Acquire::Max-ValidTime=12096 -o Acquire::Min-ValidTime=2419200 && msgfail || msgpass
+
+setupreleasefile 'now - 7 days' 'now - 2 days'
+msgtest 'Release file is rejected as it has' 'bad Max-Valid (bad Until, bad Min-Valid) <'
+aptgetupdate -o Acquire::Min-ValidTime=12096 -o Acquire::Max-ValidTime=241920 && msgfail || msgpass
+
+setupreleasefile 'now - 7 days' 'now - 2 days'
+msgtest 'Release file is rejected as it has' 'bad Max-Valid (bad Until, bad Min-Valid) >'
+aptgetupdate -o Acquire::Max-ValidTime=12096 -o Acquire::Min-ValidTime=241920 && msgfail || msgpass
index 961c498950dc716fc3b85b6744e13dc82f3c6fab..8bf02a78fbdc8e642ccf65773c666d04faf47298 100755 (executable)
@@ -19,8 +19,7 @@ prepare() {
        for release in $(find rootdir/var/lib/apt/lists 2> /dev/null); do
                touch -d 'now - 6 hours' $release
        done
-       rm -rf rootdir/var/cache/apt/archives
-       rm -f rootdir/var/cache/apt/*.bin
+       aptget clean
        cp $1 aptarchive/Packages
        find aptarchive -name 'Release' -delete
        cat aptarchive/Packages | gzip > aptarchive/Packages.gz
diff --git a/test/integration/test-resolve-by-keep-new-recommends b/test/integration/test-resolve-by-keep-new-recommends
new file mode 100755 (executable)
index 0000000..8134b76
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture "i386"
+
+insertinstalledpackage 'foo' 'i386' '1.0'
+insertpackage 'unstable' 'foo' 'i386' '2.0' 'Recommends: bar'
+
+setupaptarchive
+
+UPGRADE_KEEP="Reading package lists...
+Building dependency tree...
+The following packages have been kept back:
+  foo
+0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded."
+testequal "$UPGRADE_KEEP" aptget upgrade -s
+
diff --git a/test/integration/test-ubuntu-bug-784473-InRelease-one-message-only b/test/integration/test-ubuntu-bug-784473-InRelease-one-message-only
new file mode 100755 (executable)
index 0000000..d970119
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture 'i386'
+
+insertpackage 'unstable' 'apt' 'i386' '0.8.11'
+
+setupaptarchive
+
+rm -rf rootdir/var/lib/apt/lists
+
+find aptarchive/ -name 'Release.gpg' -delete
+find aptarchive/ -name 'InRelease' -exec cp {} {}.old \;
+
+for RELEASE in $(find aptarchive/ -name 'InRelease'); do
+       (echo 'Origin: Marvin
+Label: Marvin
+Suite: experimental
+Codename: experimental
+MD5Sum:
+ 65fd410587b6978de2277f2912523f09     9360 Packages
+ d27b294ed172a1fa9dd5a53949914c5d     4076 Packages.bz2
+ 2182897e0a2a0c09e760beaae117a015     2023 Packages.diff/Index
+ 1b895931853981ad8204d2439821b999     4144 Packages.gz'; echo; cat ${RELEASE}.old;) > ${RELEASE}
+done
+aptget update -qq > /dev/null 2> starts-with-unsigned.msg
+sed -i 's#File .*InRelease#File InRelease#' starts-with-unsigned.msg
+testfileequal starts-with-unsigned.msg "W: GPG error: file: unstable InRelease: File InRelease doesn't start with a clearsigned message"
diff --git a/test/integration/test-ubuntu-bug-802901-multiarch-early-remove b/test/integration/test-ubuntu-bug-802901-multiarch-early-remove
new file mode 100755 (executable)
index 0000000..bdb4e5e
--- /dev/null
@@ -0,0 +1,24 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture 'amd64' 'i386'
+
+insertinstalledpackage 'libgl1-mesa-glx' 'amd64' '2.0' 'Multi-Arch: same
+Provides: libgl1
+Conflicts: libgl1'
+insertpackage 'unstable' 'libgl1-mesa-glx' 'i386,amd64' '2.0' 'Multi-Arch: same
+Provides: libgl1
+Conflicts: libgl1'
+
+setupaptarchive
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  libgl1-mesa-glx:i386
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst libgl1-mesa-glx:i386 (2.0 unstable [i386])
+Conf libgl1-mesa-glx:i386 (2.0 unstable [i386])' aptget install libgl1-mesa-glx:i386 -s
diff --git a/test/integration/test-ubuntu-bug-806274-install-suggests b/test/integration/test-ubuntu-bug-806274-install-suggests
new file mode 100755 (executable)
index 0000000..fb72f09
--- /dev/null
@@ -0,0 +1,81 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture "i386"
+
+insertpackage 'unstable' 'apt' 'i386' '0.8.15' 'Depends: foo
+Recommends: bar
+Suggests: baz'
+insertpackage 'unstable' 'foo' 'i386' '1.0'
+insertpackage 'unstable' 'bar' 'i386' '1.0'
+insertpackage 'unstable' 'baz' 'i386' '1.0'
+
+setupaptarchive
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following extra packages will be installed:
+  bar foo
+Suggested packages:
+  baz
+The following NEW packages will be installed:
+  apt bar foo
+0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
+Inst foo (1.0 unstable [i386])
+Conf foo (1.0 unstable [i386])
+Inst apt (0.8.15 unstable [i386])
+Conf apt (0.8.15 unstable [i386])
+Inst bar (1.0 unstable [i386])
+Conf bar (1.0 unstable [i386])' aptget install apt -s --install-recommends --no-install-suggests
+
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following extra packages will be installed:
+  bar baz foo
+The following NEW packages will be installed:
+  apt bar baz foo
+0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
+Inst foo (1.0 unstable [i386])
+Conf foo (1.0 unstable [i386])
+Inst apt (0.8.15 unstable [i386])
+Conf apt (0.8.15 unstable [i386])
+Inst bar (1.0 unstable [i386])
+Inst baz (1.0 unstable [i386])
+Conf bar (1.0 unstable [i386])
+Conf baz (1.0 unstable [i386])' aptget install apt -s --install-recommends --install-suggests
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following extra packages will be installed:
+  foo
+Suggested packages:
+  baz
+Recommended packages:
+  bar
+The following NEW packages will be installed:
+  apt foo
+0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
+Inst foo (1.0 unstable [i386])
+Conf foo (1.0 unstable [i386])
+Inst apt (0.8.15 unstable [i386])
+Conf apt (0.8.15 unstable [i386])' aptget install apt -s --no-install-recommends --no-install-suggests
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following extra packages will be installed:
+  baz foo
+Recommended packages:
+  bar
+The following NEW packages will be installed:
+  apt baz foo
+0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
+Inst foo (1.0 unstable [i386])
+Conf foo (1.0 unstable [i386])
+Inst apt (0.8.15 unstable [i386])
+Conf apt (0.8.15 unstable [i386])
+Inst baz (1.0 unstable [i386])
+Conf baz (1.0 unstable [i386])' aptget install apt -s --no-install-recommends --install-suggests
diff --git a/test/integration/test-ubuntu-bug-835625-multiarch-lockstep-installed-first b/test/integration/test-ubuntu-bug-835625-multiarch-lockstep-installed-first
new file mode 100755 (executable)
index 0000000..a9a4069
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture 'amd64' 'i386'
+
+insertinstalledpackage 'libsame' 'i386' '1'
+insertinstalledpackage 'apt' 'i386' '1' 'Depends: libsame (= 1)'
+
+insertpackage 'unstable' 'libsame' 'i386,amd64' '2' 'Multi-Arch: same'
+insertpackage 'unstable' 'apt' 'i386' '2' 'Depends: libsame (= 2)'
+
+setupaptarchive
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following extra packages will be installed:
+  apt:i386 libsame:i386
+The following NEW packages will be installed:
+  libsame
+The following packages will be upgraded:
+  apt:i386 libsame:i386
+2 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst libsame:i386 [1] (2 unstable [i386]) [apt:i386 ]
+Inst libsame (2 unstable [amd64]) [apt:i386 ]
+Conf libsame:i386 (2 unstable [i386]) [apt:i386 ]
+Conf libsame (2 unstable [amd64]) [apt:i386 ]
+Inst apt:i386 [1] (2 unstable [i386])
+Conf apt:i386 (2 unstable [i386])' aptget install libsame:amd64 -s
diff --git a/test/interactive-helper/extract-control.cc b/test/interactive-helper/extract-control.cc
new file mode 100644 (file)
index 0000000..29dcbf3
--- /dev/null
@@ -0,0 +1,42 @@
+#include <apt-pkg/debfile.h>
+#include <apt-pkg/error.h>
+
+#include <iostream>
+#include <unistd.h>
+
+using namespace std;
+
+bool ExtractMember(const char *File,const char *Member)
+{
+   FileFd Fd(File,FileFd::ReadOnly);
+   debDebFile Deb(Fd);
+   if(_error->PendingError() == true)
+      return false;
+   
+   debDebFile::MemControlExtract Extract(Member);
+   if (Extract.Read(Deb) == false)
+      return false;
+   
+   if (Extract.Control == 0)
+      return true;
+   
+   write(STDOUT_FILENO,Extract.Control,Extract.Length);
+   return true;
+}
+
+int main(int argc, const char *argv[])
+{
+   if (argc < 2)
+   {
+      cerr << "Need two arguments, a .deb and the control member" << endl;
+      return 100;
+   }
+   
+   if (ExtractMember(argv[1],argv[2]) == false)
+   {
+      _error->DumpErrors();
+      return 100;
+   }
+   
+   return 0;
+}
diff --git a/test/interactive-helper/makefile b/test/interactive-helper/makefile
new file mode 100644 (file)
index 0000000..b96139f
--- /dev/null
@@ -0,0 +1,43 @@
+# -*- make -*-
+BASE=../..
+SUBDIR=test/interactive-helper
+
+# Bring in the default rules
+include ../../buildlib/defaults.mak
+
+# Program for testing methods
+PROGRAM=mthdcat
+SLIBS = 
+SOURCE = mthdcat.cc
+include $(PROGRAM_H)
+
+# Version compare tester
+PROGRAM=testextract
+SLIBS = -lapt-pkg -lapt-inst
+LIB_MAKES = apt-pkg/makefile apt-inst/makefile
+SOURCE = testextract.cc
+include $(PROGRAM_H)
+
+# Program for testing the tar/deb extractor
+PROGRAM=testdeb
+SLIBS = -lapt-pkg -lapt-inst
+SOURCE = testdeb.cc
+include $(PROGRAM_H)
+
+# Program for testing tar extraction
+PROGRAM=extract-control
+SLIBS = -lapt-pkg -lapt-inst
+SOURCE = extract-control.cc
+include $(PROGRAM_H)
+
+# Program for testing udevcdrom
+PROGRAM=test_udevcdrom
+SLIBS = -lapt-pkg 
+SOURCE = test_udevcdrom.cc
+include $(PROGRAM_H)
+
+# Program for checking rpm versions
+#PROGRAM=rpmver
+#SLIBS = -lapt-pkg -lrpm
+#SOURCE = rpmver.cc
+#include $(PROGRAM_H)
diff --git a/test/interactive-helper/mthdcat.cc b/test/interactive-helper/mthdcat.cc
new file mode 100644 (file)
index 0000000..25d09a3
--- /dev/null
@@ -0,0 +1,20 @@
+/* Usage, mthdcat < cmds | methods/mthd
+   All this does is cat a file into the method without closing the FD when
+   the file ends */
+
+#include <unistd.h>
+
+int main()
+{
+   char Buffer[4096];
+   
+   while (1)
+   {
+      int Res = read(STDIN_FILENO,Buffer,sizeof(Buffer));
+      if (Res <= 0)
+        while (1) sleep(100);
+      if (write(STDOUT_FILENO,Buffer,Res) != Res)
+        break;
+   }
+   return 0;
+}
diff --git a/test/interactive-helper/networkless-install-fixes/README b/test/interactive-helper/networkless-install-fixes/README
new file mode 100644 (file)
index 0000000..e7ee2b0
--- /dev/null
@@ -0,0 +1,5 @@
+
+Those tests aim at making the networkless install timeout
+quicker, see 
+https://wiki.ubuntu.com/NetworklessInstallationFixes
+for details
diff --git a/test/interactive-helper/networkless-install-fixes/sources.test.list b/test/interactive-helper/networkless-install-fixes/sources.test.list
new file mode 100644 (file)
index 0000000..380e180
--- /dev/null
@@ -0,0 +1,25 @@
+
+# archive.ubuntu.com
+deb http://archive.ubuntu.com/ubuntu/ hardy main restricted
+deb-src http://archive.ubuntu.com/ubuntu/ hardy main restricted
+
+deb http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted
+deb-src http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted
+
+deb http://archive.ubuntu.com/ubuntu/ hardy universe
+deb-src http://archive.ubuntu.com/ubuntu/ hardy universe
+
+deb http://archive.ubuntu.com/ubuntu/ hardy-updates universe
+deb-src http://archive.ubuntu.com/ubuntu/ hardy-updates universe
+
+# security.ubuntu.com
+deb http://security.ubuntu.com/ubuntu/ hardy-security main restricted
+deb-src http://security.ubuntu.com/ubuntu/ hardy-security main restricted
+
+deb http://security.ubuntu.com/ubuntu/ hardy-security universe
+deb-src http://security.ubuntu.com/ubuntu/ hardy-security universe
+
+
+# archive.canonical.com
+deb http://archive.canonical.com/ubuntu/ hardy-partner universe
+deb-src http://archive.canonical.com/ubuntu/ hardy-partner universe
diff --git a/test/interactive-helper/networkless-install-fixes/test.sh b/test/interactive-helper/networkless-install-fixes/test.sh
new file mode 100755 (executable)
index 0000000..809d467
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+OPTS="-o Dir::Etc::sourcelist=./sources.test.list -o Acquire::http::timeout=20"
+
+# setup
+unset http_proxy
+iptables --flush
+
+echo "No network at all"
+ifdown eth0 
+time apt-get update $OPTS 2>&1 |grep system
+ifup eth0
+echo ""
+
+echo "no working DNS (port 53 DROP)"
+iptables -A OUTPUT -p udp --dport 53 -j DROP
+time apt-get update $OPTS 2>&1 |grep system
+iptables --flush
+echo ""
+
+echo "DNS but no access to archive.ubuntu.com (port 80 DROP)"
+iptables -A OUTPUT -p tcp --dport 80 -j DROP
+time apt-get update $OPTS 2>&1 |grep system
+iptables --flush
+echo ""
diff --git a/test/interactive-helper/rpmver.cc b/test/interactive-helper/rpmver.cc
new file mode 100644 (file)
index 0000000..9fc807d
--- /dev/null
@@ -0,0 +1,117 @@
+#include <apt-pkg/debversion.h>
+#include <rpm/rpmio.h>
+#include <rpm/misc.h>
+#include <stdlib.h>
+#include <ctype.h>
+
+#define xisdigit(x) isdigit(x)
+#define xisalpha(x) isalpha(x)
+#define xisalnum(x) (isdigit(x) || isalpha(x))
+
+using namespace std;
+
+int rpmvercmp(const char * a, const char * b)
+{
+    char oldch1, oldch2;
+    char * str1, * str2;
+    char * one, * two;
+    int rc;
+    int isnum;
+
+    /* easy comparison to see if versions are identical */
+    if (!strcmp(a, b)) return 0;
+
+    str1 = (char *)alloca(strlen(a) + 1);
+    str2 = (char *)alloca(strlen(b) + 1);
+
+    strcpy(str1, a);
+    strcpy(str2, b);
+
+    one = str1;
+    two = str2;
+   
+    /* loop through each version segment of str1 and str2 and compare them */
+    while (*one && *two) {
+       while (*one && !xisalnum(*one)) one++;
+       while (*two && !xisalnum(*two)) two++;
+
+       str1 = one;
+       str2 = two;
+
+       /* grab first completely alpha or completely numeric segment */
+       /* leave one and two pointing to the start of the alpha or numeric */
+       /* segment and walk str1 and str2 to end of segment */
+       if (xisdigit(*str1)) {
+           while (*str1 && xisdigit(*str1)) str1++;
+           while (*str2 && xisdigit(*str2)) str2++;
+           isnum = 1;
+       } else {
+           while (*str1 && xisalpha(*str1)) str1++;
+           while (*str2 && xisalpha(*str2)) str2++;
+           isnum = 0;
+       }
+
+       /* save character at the end of the alpha or numeric segment */
+       /* so that they can be restored after the comparison */
+       oldch1 = *str1;
+       *str1 = '\0';
+       oldch2 = *str2;
+       *str2 = '\0';
+
+       /* take care of the case where the two version segments are */
+       /* different types: one numeric, the other alpha (i.e. empty) */
+       if (one == str1) return -1;     /* arbitrary */
+       if (two == str2) return 1;
+
+       if (isnum) {
+           /* this used to be done by converting the digit segments */
+           /* to ints using atoi() - it's changed because long  */
+           /* digit segments can overflow an int - this should fix that. */
+
+           /* throw away any leading zeros - it's a number, right? */
+           while (*one == '0') one++;
+           while (*two == '0') two++;
+
+           /* whichever number has more digits wins */
+           if (strlen(one) > strlen(two)) return 1;
+           if (strlen(two) > strlen(one)) return -1;
+       }
+
+       /* strcmp will return which one is greater - even if the two */
+       /* segments are alpha or if they are numeric.  don't return  */
+       /* if they are equal because there might be more segments to */
+       /* compare */
+       rc = strcmp(one, two);
+       if (rc) return rc;
+
+       /* restore character that was replaced by null above */
+       *str1 = oldch1;
+       one = str1;
+       *str2 = oldch2;
+       two = str2;
+    }
+
+    /* this catches the case where all numeric and alpha segments have */
+    /* compared identically but the segment sepparating characters were */
+    /* different */
+    if ((!*one) && (!*two)) return 0;
+
+    /* whichever version still has characters left over wins */
+    if (!*one) return -1; else return 1;
+}
+
+int main(int argc,const char *argv[])
+{
+   printf("%i\n",strcmp(argv[1],argv[2]));
+   
+   printf("'%s' <> '%s':  ",argv[1],argv[2]);
+   printf("rpm: %i   deb:  %i\n",rpmvercmp(argv[1],argv[2]),
+         debVS.CmpFragment(argv[1],argv[1]+strlen(argv[1]),
+                           argv[2],argv[2]+strlen(argv[2])));
+   
+   printf("'%s' <> '%s':  ",argv[2],argv[1]);
+   printf("rpm: %i   deb:  %i\n",rpmvercmp(argv[2],argv[1]),
+         debVS.CmpFragment(argv[2],argv[2]+strlen(argv[2]),
+                           argv[1],argv[1]+strlen(argv[1])));
+   return 0;
+}
diff --git a/test/interactive-helper/test_udevcdrom.cc b/test/interactive-helper/test_udevcdrom.cc
new file mode 100644 (file)
index 0000000..dc25ab3
--- /dev/null
@@ -0,0 +1,18 @@
+#include <apt-pkg/cdrom.h>
+#include <stdio.h>
+#include <assert.h>
+
+int main()
+{
+   pkgUdevCdromDevices c;
+   assert(c.Dlopen());
+
+   vector<CdromDevice> l;
+   l = c.Scan();
+   assert(l.empty() == false);
+   for (size_t i = 0; i < l.size(); ++i)
+      std::cerr << l[i].DeviceName << " " 
+               << l[i].Mounted << " " 
+               << l[i].MountPath << std::endl;
+   
+}
diff --git a/test/interactive-helper/testdeb.cc b/test/interactive-helper/testdeb.cc
new file mode 100644 (file)
index 0000000..d28f201
--- /dev/null
@@ -0,0 +1,39 @@
+#include <apt-pkg/dirstream.h>
+#include <apt-pkg/debfile.h>
+#include <apt-pkg/error.h>
+#include <apt-pkg/extracttar.h>
+
+class NullStream : public pkgDirStream
+{
+   public:
+   virtual bool DoItem(Item &Itm,int &Fd) {return true;};
+};
+
+bool Test(const char *File)
+{
+   FileFd Fd(File,FileFd::ReadOnly);
+   debDebFile Deb(Fd);
+   
+   if (_error->PendingError() == true)
+      return false;
+   
+   // Get the archive member and positition the file 
+   const ARArchive::Member *Member = Deb.GotoMember("data.tar.gz");
+   if (Member == 0)
+      return false;
+      
+   // Extract it.
+   ExtractTar Tar(Deb.GetFile(),Member->Size, "gzip");
+   NullStream Dir;
+   if (Tar.Go(Dir) == false)
+      return false;   
+   
+   return true;
+}
+
+int main(int argc, const char *argv[])
+{
+   Test(argv[1]);
+   _error->DumpErrors();
+   return 0;
+}
diff --git a/test/interactive-helper/testextract.cc b/test/interactive-helper/testextract.cc
new file mode 100644 (file)
index 0000000..b790df6
--- /dev/null
@@ -0,0 +1,101 @@
+#include <apt-pkg/dpkgdb.h>
+#include <apt-pkg/debfile.h>
+#include <apt-pkg/error.h>
+#include <apt-pkg/configuration.h>
+#include <apt-pkg/progress.h>
+#include <apt-pkg/extract.h>
+#include <apt-pkg/init.h>
+#include <apt-pkg/strutl.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+using namespace std;
+
+bool Go(int argc,char *argv[])
+{
+   // Init the database
+   debDpkgDB Db;   
+   {
+      OpTextProgress Prog;
+
+      if (Db.ReadyPkgCache(Prog) == false)
+        return false;
+      Prog.Done();
+      
+      if (Db.ReadyFileList(Prog) == false)
+        return false;
+   }
+
+   for (int I = 1; I < argc; I++)
+   {
+      const char *Fake = 0;
+      for (unsigned J = 0; argv[I][J] != 0; J++)
+      {
+        if (argv[I][J] != ',')
+           continue;
+        Fake = argv[I] + J + 1;
+        argv[I][J] = 0;
+      }
+      
+      FileFd F(argv[I],FileFd::ReadOnly);
+      debDebFile Deb(F);
+
+      if (_error->PendingError() == true)
+        return false;
+      
+      if (Deb.ExtractControl(Db) == false)
+        return false;
+      cout << argv[I] << endl;
+      
+      pkgCache::VerIterator Ver = Deb.MergeControl(Db);
+      if (Ver.end() == true)
+        return false;
+      
+      cout << Ver.ParentPkg().Name() << ' ' << Ver.VerStr() << endl;
+      
+      pkgExtract Extract(Db.GetFLCache(),Ver);
+      
+      if (Fake != 0)
+      {
+        pkgExtract::Item Itm;
+        memset(&Itm,0,sizeof(Itm));
+        FILE *F = fopen(Fake,"r");
+        while (feof(F) == 0)
+        {
+           char Line[300];
+           fgets(Line,sizeof(Line),F);
+           Itm.Name = _strstrip(Line);
+           Itm.Type = pkgDirStream::Item::File;
+           if (Line[strlen(Line)-1] == '/')
+              Itm.Type = pkgDirStream::Item::Directory;
+
+           int Fd;
+           if (Extract.DoItem(Itm,Fd) == false) {
+              fclose(F);
+              return false;
+           }
+        }
+        fclose(F);
+      }
+      else
+        if (Deb.ExtractArchive(Extract) == false)
+           return false;
+   }
+   return true;
+}
+
+int main(int argc,char *argv[])
+{
+   pkgInitConfig(*_config);
+   pkgInitSystem(*_config,_system);
+   _config->Set("Dir::State::status","/tmp/testing/status");
+
+   Go(argc,argv);
+   
+   if (_error->PendingError() == true)
+   {
+      _error->DumpErrors();
+      return 0;
+   }
+}
index 5da76ae0a9d5a67226cd5448e8e5dfc9151dbe71..fae9b6c6423c33fa0c56402735fa0c5e7ad904c0 100644 (file)
@@ -1,9 +1,9 @@
 #include <iostream>
 
-#define equals(x,y) assertEquals(x, y, __LINE__)
+#define equals(x,y) assertEquals(y, x, __LINE__)
 
 template < typename X, typename Y >
-void OutputAssert(X expect, char const* compare, Y get, unsigned long const &line) {
+void OutputAssertEqual(X expect, char const* compare, Y get, unsigned long const &line) {
        std::cerr << "Test FAILED: »" << expect << "« " << compare << " »" << get << "« at line " << line << std::endl;
 }
 
@@ -11,11 +11,53 @@ template < typename X, typename Y >
 void assertEquals(X expect, Y get, unsigned long const &line) {
        if (expect == get)
                return;
-       OutputAssert(expect, "==", get, line);
+       OutputAssertEqual(expect, "==", get, line);
 }
 
 void assertEquals(unsigned int const &expect, int const &get, unsigned long const &line) {
        if (get < 0)
-               OutputAssert(expect, "==", get, line);
+               OutputAssertEqual(expect, "==", get, line);
        assertEquals<unsigned int const&, unsigned int const&>(expect, get, line);
 }
+
+void assertEquals(int const &expect, unsigned int const &get, unsigned long const &line) {
+       if (expect < 0)
+               OutputAssertEqual(expect, "==", get, line);
+       assertEquals<unsigned int const&, unsigned int const&>(expect, get, line);
+}
+
+
+#define equalsOr2(x,y,z) assertEqualsOr2(y, z, x, __LINE__)
+
+template < typename X, typename Y >
+void OutputAssertEqualOr2(X expect1, X expect2, char const* compare, Y get, unsigned long const &line) {
+       std::cerr << "Test FAILED: »" << expect1 << "« or »" << expect2 << "« " << compare << " »" << get << "« at line " << line << std::endl;
+}
+
+template < typename X, typename Y >
+void assertEqualsOr2(X expect1, X expect2, Y get, unsigned long const &line) {
+       if (expect1 == get || expect2 == get)
+               return;
+       OutputAssertEqualOr2(expect1, expect2, "==", get, line);
+}
+
+void assertEqualsOr2(unsigned int const &expect1, unsigned int const &expect2, int const &get, unsigned long const &line) {
+       if (get < 0)
+               OutputAssertEqualOr2(expect1, expect2, "==", get, line);
+       assertEqualsOr2<unsigned int const&, unsigned int const&>(expect1, expect2, get, line);
+}
+
+void assertEqualsOr2(int const &expect1, int const &expect2, unsigned int const &get, unsigned long const &line) {
+       if (expect1 < 0 && expect2 < 0)
+               OutputAssertEqualOr2(expect1, expect2, "==", get, line);
+       assertEqualsOr2<unsigned int const&, unsigned int const&>(expect1, expect2, get, line);
+}
+
+
+// simple helper to quickly output a vectors
+template < typename X >
+void dumpVector(X vec) {
+       for (typename X::const_iterator v = vec.begin();
+            v != vec.end(); ++v)
+               std::cout << *v << std::endl;
+}
index b6213e84ce7ddc91673e839d4bc9c5d61df74618..fdb1d567499c77847ca2d4efa533853b6501a8f0 100644 (file)
@@ -63,6 +63,9 @@ void assertVersion(int const &CurLine, string const &A, string const &B, int con
 
 bool RunTest(const char *File)
 {
+   if (FileExists(File) == false)
+      return _error->Error("Versiontestfile %s doesn't exist!", File);
+
    ifstream F(File,ios::in);
    if (!F != 0)
       return false;
@@ -112,8 +115,8 @@ bool RunTest(const char *File)
 
 int main(int argc, char *argv[])
 {
-   if (argc <= 1)
-      RunTest("../versions.lst");
+   if (argc != 2)
+      return 1;
    else
       RunTest(argv[1]);
 
diff --git a/test/libapt/configuration_test.cc b/test/libapt/configuration_test.cc
new file mode 100644 (file)
index 0000000..5b23d17
--- /dev/null
@@ -0,0 +1,78 @@
+#include <apt-pkg/configuration.h>
+
+#include <string>
+#include <vector>
+
+#include "assert.h"
+
+int main(int argc,const char *argv[]) {
+       Configuration Cnf;
+       std::vector<std::string> fds;
+
+       Cnf.Set("APT::Keep-Fds::",28);
+       Cnf.Set("APT::Keep-Fds::",17);
+       Cnf.Set("APT::Keep-Fds::2",47);
+       Cnf.Set("APT::Keep-Fds::","broken");
+       fds = Cnf.FindVector("APT::Keep-Fds");
+       equals(fds[0], "28");
+       equals(fds[1], "17");
+       equals(fds[2], "47");
+       equals(fds[3], "broken");
+       equals(fds.size(), 4);
+       equals(Cnf.Exists("APT::Keep-Fds::2"), true);
+       equals(Cnf.Find("APT::Keep-Fds::2"), "47");
+       equals(Cnf.FindI("APT::Keep-Fds::2"), 47);
+       equals(Cnf.Exists("APT::Keep-Fds::3"), false);
+       equals(Cnf.Find("APT::Keep-Fds::3"), "");
+       equals(Cnf.FindI("APT::Keep-Fds::3", 56), 56);
+       equals(Cnf.Find("APT::Keep-Fds::3", "not-set"), "not-set");
+
+       Cnf.Clear("APT::Keep-Fds::2");
+       fds = Cnf.FindVector("APT::Keep-Fds");
+       equals(fds[0], "28");
+       equals(fds[1], "17");
+       equals(fds[2], "");
+       equals(fds[3], "broken");
+       equals(fds.size(), 4);
+       equals(Cnf.Exists("APT::Keep-Fds::2"), true);
+
+       Cnf.Clear("APT::Keep-Fds",28);
+       fds = Cnf.FindVector("APT::Keep-Fds");
+       equals(fds[0], "17");
+       equals(fds[1], "");
+       equals(fds[2], "broken");
+       equals(fds.size(), 3);
+
+       Cnf.Clear("APT::Keep-Fds","");
+       equals(Cnf.Exists("APT::Keep-Fds::2"), false);
+
+       Cnf.Clear("APT::Keep-Fds",17);
+       Cnf.Clear("APT::Keep-Fds","broken");
+       fds = Cnf.FindVector("APT::Keep-Fds");
+       equals(fds.empty(), true);
+
+       Cnf.Set("APT::Keep-Fds::",21);
+       Cnf.Set("APT::Keep-Fds::",42);
+       fds = Cnf.FindVector("APT::Keep-Fds");
+       equals(fds[0], "21");
+       equals(fds[1], "42");
+       equals(fds.size(), 2);
+
+       Cnf.Clear("APT::Keep-Fds");
+       fds = Cnf.FindVector("APT::Keep-Fds");
+       equals(fds.empty(), true);
+
+       Cnf.CndSet("APT::Version", 42);
+       Cnf.CndSet("APT::Version", "66");
+       equals(Cnf.Find("APT::Version"), "42");
+       equals(Cnf.FindI("APT::Version"), 42);
+       equals(Cnf.Find("APT::Version", "33"), "42");
+       equals(Cnf.FindI("APT::Version", 33), 42);
+       equals(Cnf.Find("APT2::Version", "33"), "33");
+       equals(Cnf.FindI("APT2::Version", 33), 33);
+
+       //FIXME: Test for configuration file parsing;
+       // currently only integration/ tests test them implicitly
+
+       return 0;
+}
index 1500caeeddca06a602de59962d41125759afbd7e..807469263489cf6a31148154dccc9571fd547299 100644 (file)
@@ -7,13 +7,6 @@
 
 #include <iostream>
 
-// simple helper to quickly output a vector of strings
-void dumpVector(std::vector<std::string> vec) {
-       for (std::vector<std::string>::const_iterator v = vec.begin();
-            v != vec.end(); v++)
-               std::cout << *v << std::endl;
-}
-
 int main(int argc,char *argv[])
 {
        std::vector<std::string> vec;
@@ -39,6 +32,12 @@ int main(int argc,char *argv[])
        _config->Set("APT::Architecture", "armel");
        vec = APT::Configuration::getArchitectures(false);
        equals(vec.size(), 2);
+       equals(vec[0], "armel");
+       equals(vec[1], "i386");
+
+       _config->Set("APT::Architectures::2", "armel");
+       vec = APT::Configuration::getArchitectures(false);
+       equals(vec.size(), 2);
        equals(vec[0], "i386");
        equals(vec[1], "armel");
 
index 707142aef9fd517a976debb86659029b43a77020..f6aa7a69785baaca4e11cad929934f61dd8ccf0c 100644 (file)
@@ -7,13 +7,6 @@
 
 #include <iostream>
 
-// simple helper to quickly output a vector of strings
-void dumpVector(std::vector<std::string> vec) {
-       for (std::vector<std::string>::const_iterator v = vec.begin();
-            v != vec.end(); v++)
-               std::cout << *v << std::endl;
-}
-
 int main(int argc,char *argv[])
 {
        if (argc != 2) {
@@ -138,8 +131,8 @@ int main(int argc,char *argv[])
        equals(vec[1], "de");
        equals(vec[2], "en");
        equals(vec[3], "none");
-       equals(vec[4], "pt");
-       equals(vec[5], "tr");
+       equalsOr2(vec[4], "pt", "tr");
+       equalsOr2(vec[5], "tr", "pt");
 
        _config->Set("Dir::State::lists", "/non-existing-dir");
        _config->Set("Acquire::Languages::1", "none");
index ed8d2dad6c394f3936660e0a786da01f68d711d5..5ee014ccab6e2c75507bce33ead7cbcf2f2dbeae 100644 (file)
@@ -7,13 +7,6 @@
 #include <stdio.h>
 #include <iostream>
 
-// simple helper to quickly output a vector of strings
-void dumpVector(std::vector<std::string> vec) {
-       for (std::vector<std::string>::const_iterator v = vec.begin();
-            v != vec.end(); v++)
-               std::cout << *v << std::endl;
-}
-
 #define P(x)   string(argv[1]).append("/").append(x)
 
 int main(int argc,char *argv[])
index 7d933f5a84fe591dc9cf7a0c0f988f379354dfe6..5d27414f97068f716d187a8e546c8c51a3b88830 100644 (file)
@@ -101,7 +101,7 @@ int main(int argc,char *argv[])
        longText.clear();
        for (size_t i = 0; i < 50; ++i)
                longText.append("РезийбёбAZ");
-       equals(_error->Warning(longText.c_str()), false);
+       equals(_error->Warning("%s", longText.c_str()), false);
        equals(_error->PopMessage(text), false);
        equals(text, longText);
 
diff --git a/test/libapt/hashsums_test.cc b/test/libapt/hashsums_test.cc
new file mode 100644 (file)
index 0000000..2cb71cc
--- /dev/null
@@ -0,0 +1,156 @@
+#include <apt-pkg/md5.h>
+#include <apt-pkg/sha1.h>
+#include <apt-pkg/sha2.h>
+#include <apt-pkg/strutl.h>
+#include <apt-pkg/hashes.h>
+#include <iostream>
+
+#include <stdio.h>
+
+#include "assert.h"
+
+template <class T> void Test(const char *In,const char *Out)
+{
+   T Sum;
+   Sum.Add(In);
+   equals(Sum.Result().Value(), Out);
+}
+
+template <class T> void TestMill(const char *Out)
+{
+   T Sum;
+
+   const unsigned char As[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
+   unsigned Count = 1000000;
+   for (; Count != 0;)
+   {
+      if (Count >= 64)
+      {
+        Sum.Add(As,64);
+        Count -= 64;
+      }
+      else
+      {
+        Sum.Add(As,Count);
+        Count = 0;
+      }
+   }
+
+   if (stringcasecmp(Sum.Result().Value(), Out) != 0)
+      abort();
+}
+
+int main(int argc, char** argv)
+{
+   // From  FIPS PUB 180-1
+   Test<SHA1Summation>("","da39a3ee5e6b4b0d3255bfef95601890afd80709");
+   Test<SHA1Summation>("abc","a9993e364706816aba3e25717850c26c9cd0d89d");
+   Test<SHA1Summation>("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
+                      "84983e441c3bd26ebaae4aa1f95129e5e54670f1");
+   TestMill<SHA1Summation>("34aa973cd4c4daa4f61eeb2bdbad27316534016f");
+
+   // MD5 tests from RFC 1321
+   Test<MD5Summation>("","d41d8cd98f00b204e9800998ecf8427e");
+   Test<MD5Summation>("a","0cc175b9c0f1b6a831c399e269772661");
+   Test<MD5Summation>("abc","900150983cd24fb0d6963f7d28e17f72");
+   Test<MD5Summation>("message digest","f96b697d7cb7938d525a2f31aaf161d0");
+   Test<MD5Summation>("abcdefghijklmnopqrstuvwxyz","c3fcd3d76192e4007dfb496cca67e13b");
+   Test<MD5Summation>("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+                     "d174ab98d277d9f5a5611c2c9f419d9f");
+   Test<MD5Summation>("12345678901234567890123456789012345678901234567890123456789012345678901234567890",
+                     "57edf4a22be3c955ac49da2e2107b67a");
+
+   // SHA-256, From FIPS 180-2
+   Test<SHA256Summation>("", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855");
+   Test<SHA256Summation>("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
+                        "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1");
+
+   // SHA-512
+   Test<SHA512Summation>("",
+       "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce"
+       "47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e");
+   Test<SHA512Summation>(
+      "abc",
+      "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a"
+      "2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f");
+
+
+   Test<MD5Summation>("The quick brown fox jumps over the lazy dog", "9e107d9d372bb6826bd81d3542a419d6");
+   Test<MD5Summation>("The quick brown fox jumps over the lazy dog.", "e4d909c290d0fb1ca068ffaddf22cbd0");
+   Test<SHA1Summation>("The quick brown fox jumps over the lazy dog", "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12");
+   Test<SHA1Summation>("The quick brown fox jumps over the lazy cog", "de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3");
+   Test<SHA256Summation>("The quick brown fox jumps over the lazy dog", "d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592");
+   Test<SHA256Summation>("The quick brown fox jumps over the lazy dog.", "ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c");
+   Test<SHA512Summation>("The quick brown fox jumps over the lazy dog", "07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb64"
+                                                                       "2e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6");
+   Test<SHA512Summation>("The quick brown fox jumps over the lazy dog.", "91ea1245f20d46ae9a037a989f54f1f790f0a47607eeb8a14d12890cea77a1bb"
+                                                                        "c6c7ed9cf205e67b7f2b8fd4c7dfd3a7a8617e45f3c463d481c7e586c39ac1ed");
+
+   FILE* fd = fopen(argv[1], "r");
+   if (fd == NULL) {
+      std::cerr << "Can't open file for 1. testing: " << argv[1] << std::endl;
+      return 1;
+   }
+   {
+   Hashes hashes;
+   hashes.AddFD(fileno(fd));
+   equals(argv[2], hashes.MD5.Result().Value());
+   equals(argv[3], hashes.SHA1.Result().Value());
+   equals(argv[4], hashes.SHA256.Result().Value());
+   equals(argv[5], hashes.SHA512.Result().Value());
+   }
+   fseek(fd, 0L, SEEK_END);
+   unsigned long sz = ftell(fd);
+   fseek(fd, 0L, SEEK_SET);
+   {
+   Hashes hashes;
+   hashes.AddFD(fileno(fd), sz);
+   equals(argv[2], hashes.MD5.Result().Value());
+   equals(argv[3], hashes.SHA1.Result().Value());
+   equals(argv[4], hashes.SHA256.Result().Value());
+   equals(argv[5], hashes.SHA512.Result().Value());
+   }
+   fseek(fd, 0L, SEEK_SET);
+   {
+   MD5Summation md5;
+   md5.AddFD(fileno(fd));
+   equals(argv[2], md5.Result().Value());
+   }
+   fseek(fd, 0L, SEEK_SET);
+   {
+   SHA1Summation sha1;
+   sha1.AddFD(fileno(fd));
+   equals(argv[3], sha1.Result().Value());
+   }
+   fseek(fd, 0L, SEEK_SET);
+   {
+   SHA256Summation sha2;
+   sha2.AddFD(fileno(fd));
+   equals(argv[4], sha2.Result().Value());
+   }
+   fseek(fd, 0L, SEEK_SET);
+   {
+   SHA512Summation sha2;
+   sha2.AddFD(fileno(fd));
+   equals(argv[5], sha2.Result().Value());
+   }
+   fclose(fd);
+
+   // test HashString code
+   {
+   HashString sha2("SHA256", argv[4]);
+   equals(sha2.VerifyFile(argv[1]), true);
+   }
+   {
+   HashString sha2("SHA512", argv[5]);
+   equals(sha2.VerifyFile(argv[1]), true);
+   }
+   {
+   HashString sha2("SHA256:"+string(argv[4]));
+   equals(sha2.VerifyFile(argv[1]), true);
+   }
+
+   return 0;
+}
+
+
index 50058262e748cfd65bab95439f22f5fea9286548..d3dddaeedcef5f9cf8a0decdb2b93f11e66696ce 100644 (file)
@@ -6,6 +6,10 @@ BASENAME=_libapt_test
 # Bring in the default rules
 include ../../buildlib/defaults.mak
 
+.PHONY: test
+test:
+       ./run-tests
+
 # Program for testing getLanguageCode
 PROGRAM = getLanguages${BASENAME}
 SLIBS = -lapt-pkg
@@ -46,3 +50,27 @@ PROGRAM = GlobalError${BASENAME}
 SLIBS = -lapt-pkg
 SOURCE = globalerror_test.cc
 include $(PROGRAM_H)
+
+# test the different Hashsum classes
+PROGRAM = HashSums${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = hashsums_test.cc
+include $(PROGRAM_H)
+
+# test the strutils stuff
+PROGRAM = StrUtil${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = strutil_test.cc
+include $(PROGRAM_H)
+
+# test the URI parsing stuff
+PROGRAM = URI${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = uri_test.cc
+include $(PROGRAM_H)
+
+# test the Configuration class
+PROGRAM = Configuration${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = configuration_test.cc
+include $(PROGRAM_H)
index 4b71c2097a939119269a03f756dfa6a53f88f6af..8cb2e049ca60edc4ef681858375a0d6db8b26263 100755 (executable)
@@ -3,19 +3,32 @@ set -e
 
 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"
+
+# detect if output is on a terminal (colorful) or better not
+if expr match "$(readlink -f /proc/$$/fd/1)" '/dev/pts/[0-9]\+' > /dev/null; then
+       COLHIGH='\033[1;35m'
+       COLRESET='\033[0m'
+       TESTOKAY='\033[1;32mOKAY\033[0m'
+       TESTFAIL='\033[1;31mFAILED\033[0m'
+else
+       COLHIGH=''
+       COLRESET=''
+       TESTOKAY='OK'
+       TESTFAIL='###FAILED###'
+fi
+
 for testapp in $(ls ${LDPATH}/*$EXT)
 do
        name=$(basename ${testapp})
+       NAME="${COLHIGH}${name}${COLRESET}"
        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" \
@@ -47,20 +60,26 @@ do
                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"
+       elif [ $name = "HashSums${EXT}" ]; then
+               TMP="$(mktemp)"
+               dmesg > $TMP
+               echo -n "Testing with \033[1;35m${name}\033[0m ... "
+               LD_LIBRARY_PATH=${LDPATH} ${testapp} $TMP $(md5sum $TMP | cut -d' ' -f 1) $(sha1sum $TMP | cut -d' ' -f 1) $(sha256sum $TMP | cut -d' ' -f 1) $(sha512sum $TMP | cut -d' ' -f 1) && echo "\033[1;32mOKAY\033[0m" || echo "\033[1;31mFAILED\033[0m"
+               rm $TMP
+               continue
+       elif [ $name = "CompareVersion${EXT}" ]; then
+               tmppath="${DIR}/versions.lst"
        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"
+       echo -n "Testing with ${NAME} "
+       LD_LIBRARY_PATH=${LDPATH} ${testapp} ${tmppath} && echo "$TESTOKAY" || echo "$TESTFAIL"
 
        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/strutil_test.cc b/test/libapt/strutil_test.cc
new file mode 100644 (file)
index 0000000..af6eb2c
--- /dev/null
@@ -0,0 +1,46 @@
+#include <apt-pkg/strutl.h>
+
+#include "assert.h"
+
+int main(int argc,char *argv[])
+{
+   string input, output, expected;
+
+   // no input
+   input = "foobar";
+   expected = "foobar";
+   output = DeEscapeString(input);
+   equals(output, expected);
+
+   // hex and octal
+   input = "foo\\040bar\\x0abaz";
+   expected = "foo bar\nbaz";
+   output = DeEscapeString(input);
+   equals(output, expected);
+
+   // at the end
+   input = "foo\\040";
+   expected = "foo ";
+   output = DeEscapeString(input);
+   equals(output, expected);
+
+   // double escape
+   input = "foo\\\\ x";
+   expected = "foo\\ x";
+   output = DeEscapeString(input);
+   equals(output, expected);
+
+   // double escape at the end
+   input = "\\\\foo\\\\";
+   expected = "\\foo\\";
+   output = DeEscapeString(input);
+   equals(output, expected);
+
+   // the string that we actually need it for
+   input = "/media/Ubuntu\\04011.04\\040amd64";
+   expected = "/media/Ubuntu 11.04 amd64";
+   output = DeEscapeString(input);
+   equals(output, expected);
+
+   return 0;
+}
diff --git a/test/libapt/uri_test.cc b/test/libapt/uri_test.cc
new file mode 100644 (file)
index 0000000..99bb306
--- /dev/null
@@ -0,0 +1,112 @@
+#include <apt-pkg/strutl.h>
+
+#include "assert.h"
+
+int main() {
+       // Basic stuff
+       {
+       URI U("http://www.debian.org:90/temp/test");
+       equals("http", U.Access);
+       equals("", U.User);
+       equals("", U.Password);
+       equals(90, U.Port);
+       equals("www.debian.org", U.Host);
+       equals("/temp/test", U.Path);
+       } {
+       URI U("http://jgg:foo@ualberta.ca/blah");
+       equals("http", U.Access);
+       equals("jgg", U.User);
+       equals("foo", U.Password);
+       equals(0, U.Port);
+       equals("ualberta.ca", U.Host);
+       equals("/blah", U.Path);
+       } {
+       URI U("file:/usr/bin/foo");
+       equals("file", U.Access);
+       equals("", U.User);
+       equals("", U.Password);
+       equals(0, U.Port);
+       equals("", U.Host);
+       equals("/usr/bin/foo", U.Path);
+       } {
+       URI U("cdrom:Moo Cow Rom:/debian");
+       equals("cdrom", U.Access);
+       equals("", U.User);
+       equals("", U.Password);
+       equals(0, U.Port);
+       equals("Moo Cow Rom", U.Host);
+       equals("/debian", U.Path);
+       } {
+       URI U("gzip:./bar/cow");
+       equals("gzip", U.Access);
+       equals("", U.User);
+       equals("", U.Password);
+       equals(0, U.Port);
+       equals(".", U.Host);
+       equals("/bar/cow", U.Path);
+       } {
+       URI U("ftp:ftp.fr.debian.org/debian/pool/main/x/xtel/xtel_3.2.1-15_i386.deb");
+       equals("ftp", U.Access);
+       equals("", U.User);
+       equals("", U.Password);
+       equals(0, U.Port);
+       equals("ftp.fr.debian.org", U.Host);
+       equals("/debian/pool/main/x/xtel/xtel_3.2.1-15_i386.deb", U.Path);
+       }
+
+       // RFC 2732 stuff
+       {
+       URI U("http://[1080::8:800:200C:417A]/foo");
+       equals("http", U.Access);
+       equals("", U.User);
+       equals("", U.Password);
+       equals(0, U.Port);
+       equals("1080::8:800:200C:417A", U.Host);
+       equals("/foo", U.Path);
+       } {
+       URI U("http://[::FFFF:129.144.52.38]:80/index.html");
+       equals("http", U.Access);
+       equals("", U.User);
+       equals("", U.Password);
+       equals(80, U.Port);
+       equals("::FFFF:129.144.52.38", U.Host);
+       equals("/index.html", U.Path);
+       } {
+       URI U("http://[::FFFF:129.144.52.38:]:80/index.html");
+       equals("http", U.Access);
+       equals("", U.User);
+       equals("", U.Password);
+       equals(80, U.Port);
+       equals("::FFFF:129.144.52.38:", U.Host);
+       equals("/index.html", U.Path);
+       } {
+       URI U("http://[::FFFF:129.144.52.38:]/index.html");
+       equals("http", U.Access);
+       equals("", U.User);
+       equals("", U.Password);
+       equals(0, U.Port);
+       equals("::FFFF:129.144.52.38:", U.Host);
+       equals("/index.html", U.Path);
+       }
+       /* My Evil Corruption of RFC 2732 to handle CDROM names! Fun for
+          the whole family! */
+       {
+       URI U("cdrom:[The Debian 1.2 disk, 1/2 R1:6]/debian/");
+       equals("cdrom", U.Access);
+       equals("", U.User);
+       equals("", U.Password);
+       equals(0, U.Port);
+       equals("The Debian 1.2 disk, 1/2 R1:6", U.Host);
+       equals("/debian/", U.Path);
+       } {
+       URI U("cdrom:Foo Bar Cow/debian/");
+       equals("cdrom", U.Access);
+       equals("", U.User);
+       equals("", U.Password);
+       equals(0, U.Port);
+       equals("Foo Bar Cow", U.Host);
+       equals("/debian/", U.Path);
+       }
+
+       return 0;
+}
diff --git a/test/libapt/versions.lst b/test/libapt/versions.lst
new file mode 100644 (file)
index 0000000..8dd8ebd
--- /dev/null
@@ -0,0 +1,106 @@
+# List of 
+#   ver1 ver2 ret 
+# Of versions worth testing
+#  1 means that ver1 > ver2
+# -1 means that ver1 < ver2
+#  0 means that ver1 = ver2
+7.6p2-4 7.6-0 1
+1.0.3-3 1.0-1 1
+1.3 1.2.2-2 1
+1.3 1.2.2 1
+
+# Important attributes
+# disabled as dpkg --compare-versions doesn't like them… (versions have to start with a number)
+#- . -1
+#p - -1
+#a - -1
+#z - -1
+#a . -1
+#z . -1
+
+# disabled as dpkg --compare-versions doesn't like them… (versions have to start with a number)
+#III-alpha9.8 III-alpha9.8-1.5 -1
+
+# Epochs
+1:0.4 10.3 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
+9:1.18.36:5.4-20 9:1.18.37:4.3-22 -1
+1.18.36-0.17.35-18 1.18.36-19 1
+
+# Junk
+1:1.2.13-3 1:1.2.13-3.1 -1
+2.0.7pre1-4 2.0.7r-1 -1
+
+# Test some properties of text strings
+0-pre 0-pre 0
+0-pre 0-pree -1
+
+1.1.6r2-2 1.1.6r-1 1
+2.6b2-1 2.6b-2 1
+
+98.1p5-1 98.1-pre2-b6-2 -1
+0.4a6-2 0.4-1 1
+
+1:3.0.5-2 1:3.0.5.1 -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...
diff --git a/test/local-repo/Packages b/test/local-repo/Packages
deleted file mode 100644 (file)
index fe62fc0..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-Package: gdebi-test4
-Architecture: all
-Version: 1.0
-Conflicts: apt (<= 0.1)
-Filename: ./gdebi-test4.deb
-Size: 2306
-MD5sum: 0952a2b4a566215e0794c7603f3fcfcc
-SHA1: 318688ea2d53352a1bdb669ebd2cd4847f6c4e7c
-SHA256: 35f600b57253cef807a1da7c5deb06e7821de9223842a310a77b4da87cf51e2c
-Description: testpackage for gdebi - Conflicts: apt (<= 0.1)
-
diff --git a/test/local-repo/Packages.gz b/test/local-repo/Packages.gz
deleted file mode 100644 (file)
index b5d5284..0000000
Binary files a/test/local-repo/Packages.gz and /dev/null differ
diff --git a/test/local-repo/Packages.gz.save b/test/local-repo/Packages.gz.save
deleted file mode 100644 (file)
index c73f563..0000000
Binary files a/test/local-repo/Packages.gz.save and /dev/null differ
diff --git a/test/local-repo/Release b/test/local-repo/Release
deleted file mode 100644 (file)
index 7f206ef..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Date: Thu, 09 Aug 2007 10:13:06 UTC
-MD5Sum:
- 29f79161fafe1f0c393e7fc6ddcb99b5              338 Packages
- 2f885b2ebdb77d3354ba63d8b5aad614              269 Packages.gz
- d41d8cd98f00b204e9800998ecf8427e                0 Release
-SHA1:
- d8860d409a8b0db443fbf254e2d6afbfc9bc04a8              338 Packages
- 8b668a7b730ceb4d702737a13a723959c20b67df              269 Packages.gz
- da39a3ee5e6b4b0d3255bfef95601890afd80709                0 Release
-SHA256:
- 39aa9fc59d868a71030d24aeaa4b574d7a11a10ea79491a0881f8d755b36a06d              338 Packages
- 62898623498ebf8304647db1ba2d33e4d8ec0e3e45250c2b66907c812b099297              269 Packages.gz
- e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855                0 Release
diff --git a/test/local-repo/Release.gpg b/test/local-repo/Release.gpg
deleted file mode 100644 (file)
index e1c3095..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.6 (GNU/Linux)
-
-iD8DBQBGuui6liSD4VZixzQRApSlAJ9D6G1QXvtXH1jH1I4SStsb1VsImQCbBPfp
-+1p0bDANcBVY+GckjJvFRkY=
-=a0AR
------END PGP SIGNATURE-----
diff --git a/test/local-repo/gdebi-test4.deb b/test/local-repo/gdebi-test4.deb
deleted file mode 100644 (file)
index 9eb92d1..0000000
Binary files a/test/local-repo/gdebi-test4.deb and /dev/null differ
diff --git a/test/makefile b/test/makefile
deleted file mode 100644 (file)
index 52adb96..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-# -*- make -*-
-BASE=..
-SUBDIR=test
-
-# Bring in the default rules
-include ../buildlib/defaults.mak
-
-# Program for testing methods
-PROGRAM=mthdcat
-SLIBS = 
-SOURCE = mthdcat.cc
-include $(PROGRAM_H)
-
-# Program for testing methods
-PROGRAM=uritest
-SLIBS = -lapt-pkg
-SOURCE = uri.cc
-include $(PROGRAM_H)
-
-# Scratch program to test incomplete code fragments in
-PROGRAM=scratch-test
-SLIBS = -lapt-inst -lapt-pkg
-LIB_MAKES = apt-pkg/makefile apt-inst/makefile
-SOURCE = scratch.cc
-include $(PROGRAM_H)
-
-# Version compare tester
-PROGRAM=testextract
-SLIBS = -lapt-pkg -lapt-inst
-LIB_MAKES = apt-pkg/makefile apt-inst/makefile
-SOURCE = testextract.cc
-include $(PROGRAM_H)
-
-# Program for testing the config file parser
-PROGRAM=conftest_clear
-SLIBS = -lapt-pkg
-SOURCE = conf_clear.cc
-include $(PROGRAM_H)
-
-# Program for testing the config file parser
-PROGRAM=conftest
-SLIBS = -lapt-pkg
-SOURCE = conf.cc
-include $(PROGRAM_H)
-
-# Program for testing the tar/deb extractor
-PROGRAM=testdeb
-SLIBS = -lapt-pkg -lapt-inst
-SOURCE = testdeb.cc
-include $(PROGRAM_H)
-
-# Program for testing tar extraction
-PROGRAM=extract-control
-SLIBS = -lapt-pkg -lapt-inst
-SOURCE = extract-control.cc
-include $(PROGRAM_H)
-
-# Program for testing hashes
-PROGRAM=hash
-SLIBS = -lapt-pkg 
-SOURCE = hash.cc
-include $(PROGRAM_H)
-
-# Program for testing udevcdrom
-PROGRAM=test_udevcdrom
-SLIBS = -lapt-pkg 
-SOURCE = test_udevcdrom.cc
-include $(PROGRAM_H)
-
-# Program for checking rpm versions
-#PROGRAM=rpmver
-#SLIBS = -lapt-pkg -lrpm
-#SOURCE = rpmver.cc
-#include $(PROGRAM_H)
diff --git a/test/mthdcat.cc b/test/mthdcat.cc
deleted file mode 100644 (file)
index 25d09a3..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Usage, mthdcat < cmds | methods/mthd
-   All this does is cat a file into the method without closing the FD when
-   the file ends */
-
-#include <unistd.h>
-
-int main()
-{
-   char Buffer[4096];
-   
-   while (1)
-   {
-      int Res = read(STDIN_FILENO,Buffer,sizeof(Buffer));
-      if (Res <= 0)
-        while (1) sleep(100);
-      if (write(STDOUT_FILENO,Buffer,Res) != Res)
-        break;
-   }
-   return 0;
-}
diff --git a/test/networkless-install-fixes/README b/test/networkless-install-fixes/README
deleted file mode 100644 (file)
index e7ee2b0..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-
-Those tests aim at making the networkless install timeout
-quicker, see 
-https://wiki.ubuntu.com/NetworklessInstallationFixes
-for details
diff --git a/test/networkless-install-fixes/sources.test.list b/test/networkless-install-fixes/sources.test.list
deleted file mode 100644 (file)
index 380e180..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-
-# archive.ubuntu.com
-deb http://archive.ubuntu.com/ubuntu/ hardy main restricted
-deb-src http://archive.ubuntu.com/ubuntu/ hardy main restricted
-
-deb http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted
-deb-src http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted
-
-deb http://archive.ubuntu.com/ubuntu/ hardy universe
-deb-src http://archive.ubuntu.com/ubuntu/ hardy universe
-
-deb http://archive.ubuntu.com/ubuntu/ hardy-updates universe
-deb-src http://archive.ubuntu.com/ubuntu/ hardy-updates universe
-
-# security.ubuntu.com
-deb http://security.ubuntu.com/ubuntu/ hardy-security main restricted
-deb-src http://security.ubuntu.com/ubuntu/ hardy-security main restricted
-
-deb http://security.ubuntu.com/ubuntu/ hardy-security universe
-deb-src http://security.ubuntu.com/ubuntu/ hardy-security universe
-
-
-# archive.canonical.com
-deb http://archive.canonical.com/ubuntu/ hardy-partner universe
-deb-src http://archive.canonical.com/ubuntu/ hardy-partner universe
diff --git a/test/networkless-install-fixes/test.sh b/test/networkless-install-fixes/test.sh
deleted file mode 100755 (executable)
index 809d467..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-OPTS="-o Dir::Etc::sourcelist=./sources.test.list -o Acquire::http::timeout=20"
-
-# setup
-unset http_proxy
-iptables --flush
-
-echo "No network at all"
-ifdown eth0 
-time apt-get update $OPTS 2>&1 |grep system
-ifup eth0
-echo ""
-
-echo "no working DNS (port 53 DROP)"
-iptables -A OUTPUT -p udp --dport 53 -j DROP
-time apt-get update $OPTS 2>&1 |grep system
-iptables --flush
-echo ""
-
-echo "DNS but no access to archive.ubuntu.com (port 80 DROP)"
-iptables -A OUTPUT -p tcp --dport 80 -j DROP
-time apt-get update $OPTS 2>&1 |grep system
-iptables --flush
-echo ""
diff --git a/test/pre-upload-check.py b/test/pre-upload-check.py
deleted file mode 100755 (executable)
index f9da8f9..0000000
+++ /dev/null
@@ -1,266 +0,0 @@
-#!/usr/bin/python
-
-import sys
-import os
-import glob
-import os.path
-import shutil
-import time
-from subprocess import call, PIPE
-
-import unittest
-
-stdout = os.open("/dev/null",0) #sys.stdout
-stderr = os.open("/dev/null",0) # sys.stderr
-
-apt_args = [] 
-#apt_args = ["-o","Debug::pkgAcquire::Auth=true"]
-
-class testAptAuthenticationReliability(unittest.TestCase):
-    """
-    test if the spec https://wiki.ubuntu.com/AptAuthenticationReliability 
-    is properly implemented
-    """
-    #apt = "../bin/apt-get"
-    apt = "apt-get"
-
-    def setUp(self):
-        if os.path.exists("/tmp/autFailure"):
-            os.unlink("/tmp/authFailure");
-        if os.path.exists("/tmp/autFailure2"):
-            os.unlink("/tmp/authFailure2");
-    def testRepositorySigFailure(self):
-        """
-        test if a repository that used to be authenticated and fails on
-        apt-get update refuses to update and uses the old state
-        """
-        # copy valid signatures into lists (those are ok, even
-        # if the name is "-broken-" ...
-        for f in glob.glob("./authReliability/lists/*"):
-            shutil.copy(f,"/var/lib/apt/lists")
-            # ensure we do *not* get a I-M-S hit
-            os.utime("/var/lib/apt/lists/%s" % os.path.basename(f), (0,0))
-        res = call([self.apt,
-                    "update",
-                    "-o","Dir::Etc::sourcelist=./authReliability/sources.list.failure", 
-                    "-o",'APT::Update::Auth-Failure::=touch /tmp/authFailure',
-                   ] + apt_args,
-                   stdout=stdout, stderr=stderr)
-        self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg"),
-                     "The gpg file disappeared, this should not happen")
-        self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages"),
-                     "The Packages file disappeared, this should not happen")
-        self.assert_(os.path.exists("/tmp/authFailure"),
-                     "The APT::Update::Auth-Failure script did not run (1)")
-        # the same with i-m-s hit this time
-        for f in glob.glob("./authReliability/lists/*"):
-            shutil.copy(f,"/var/lib/apt/lists")
-            os.utime("/var/lib/apt/lists/%s" % os.path.basename(f), (time.time(),time.time()))
-        res = call([self.apt,
-                    "update",
-                    "-o","Dir::Etc::sourcelist=./authReliability/sources.list.failure",
-                    "-o",'APT::Update::Auth-Failure::=touch /tmp/authFailure2',
-                   ] + apt_args,
-                   stdout=stdout, stderr=stderr)
-        self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Release.gpg"),
-                     "The gpg file disappeared, this should not happen")
-        self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-broken_Packages"),
-                     "The Packages file disappeared, this should not happen")
-        self.assert_(os.path.exists("/tmp/authFailure2"),
-                     "The APT::Update::Auth-Failure script did not run (2)")
-    def testRepositorySigGood(self):
-        """
-        test that a regular repository with good data stays good
-        """
-        res = call([self.apt,
-                    "update",
-                    "-o","Dir::Etc::sourcelist=./authReliability/sources.list.good"
-                   ] + apt_args,
-                   stdout=stdout, stderr=stderr)
-        self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg"),
-                     "The gpg file disappeared after a regular download, this should not happen")
-        self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages"),
-                     "The Packages file disappeared, this should not happen")
-        # test good is still good after non I-M-S hit and a previous files in lists/
-        for f in glob.glob("./authReliability/lists/*"):
-            shutil.copy(f,"/var/lib/apt/lists")
-            # ensure we do *not* get a I-M-S hit
-            os.utime("/var/lib/apt/lists/%s" % os.path.basename(f), (0,0))
-        res = call([self.apt,
-                    "update",
-                    "-o","Dir::Etc::sourcelist=./authReliability/sources.list.good"
-                   ] + apt_args,
-                   stdout=stdout, stderr=stderr)
-        self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg"),
-                     "The gpg file disappeared after a I-M-S hit, this should not happen")
-        self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages"),
-                     "The Packages file disappeared, this should not happen")
-        # test good is still good after I-M-S hit
-        for f in glob.glob("./authReliability/lists/*"):
-            shutil.copy(f,"/var/lib/apt/lists")
-            # ensure we do get a I-M-S hit
-            os.utime("/var/lib/apt/lists/%s" % os.path.basename(f), (time.time(),time.time()))
-        res = call([self.apt,
-                    "update",
-                    "-o","Dir::Etc::sourcelist=./authReliability/sources.list.good"
-                   ] + apt_args,
-                   stdout=stdout, stderr=stderr)
-        self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Release.gpg"),
-                     "The gpg file disappeared, this should not happen")
-        self.assert_(os.path.exists("/var/lib/apt/lists/people.ubuntu.com_%7emvo_apt_auth-test-suit_gpg-package-ok_Packages"),
-                     "The Packages file disappeared, this should not happen")
-
-
-class testAuthentication(unittest.TestCase):
-    """
-    test if the authentication is working, the repository
-    of the test-data can be found here:
-    bzr get http://people.ubuntu.com/~mvo/bzr/apt/apt-auth-test-suit/
-    """
-    
-    # some class wide data
-    apt = "apt-get"
-    pkg = "libglib2.0-data"
-    pkgver = "2.13.6-1ubuntu1"
-    pkgpath = "/var/cache/apt/archives/libglib2.0-data_2.13.6-1ubuntu1_all.deb"
-
-    def setUp(self):
-        for f in glob.glob("testkeys/*,key"):
-            call(["apt-key", "add", f], stdout=stdout, stderr=stderr)
-
-    def _cleanup(self):
-        " make sure we get new lists and no i-m-s "
-        call(["rm","-f", "/var/lib/apt/lists/*"])
-        if os.path.exists(self.pkgpath):
-            os.unlink(self.pkgpath)
-
-    def _expectedRes(self, resultstr):
-        if resultstr == 'ok':
-            return 0
-        elif resultstr == 'broken':
-            return 100
-        
-
-    def testPackages(self):
-        for f in glob.glob("testsources.list/sources.list*package*"):
-            self._cleanup()
-            (prefix, testtype, result) = f.split("-")
-            expected_res = self._expectedRes(result)
-            # update first
-            call([self.apt,"update",
-                  "-o","Dir::Etc::sourcelist=./%s" % f]+apt_args,
-                 stdout=stdout, stderr=stderr)
-            # then get the pkg
-            cmd = ["install", "-y", "-d", "--reinstall",
-                   "%s=%s" % (self.pkg, self.pkgver),
-                   "-o","Dir::state::Status=./fake-status"]
-            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))
-            
-
-    def testGPG(self):
-        for f in glob.glob("testsources.list/sources.list*gpg*"):
-            self._cleanup()
-            (prefix, testtype, result) = f.split("-")
-            expected_res = self._expectedRes(result)
-            # update first
-            call([self.apt,"update",
-                  "-o","Dir::Etc::sourcelist=./%s" % f]+apt_args,
-                 stdout=stdout, stderr=stderr)
-            cmd = ["install", "-y", "-d", "--reinstall",
-                   "%s=%s" % (self.pkg, self.pkgver),
-                   "-o","Dir::state::Status=./fake-status"]
-            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))
-
-    def testRelease(self):
-        for f in glob.glob("testsources.list/sources.list*release*"):
-            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/*"))
-
-    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 "
-
-    repo_dir = "local-repo"
-    apt = "apt-get"
-    pkg = "gdebi-test4"
-
-    def setUp(self):
-        self.repo = os.path.abspath(os.path.join(os.getcwd(), self.repo_dir))
-        self.sources = os.path.join(self.repo, "sources.list")
-        s = open(self.sources,"w")
-        s.write("deb file://%s/ /\n" % self.repo)
-        s.close()
-
-    def testLocalRepoAuth(self):
-        # two times to get at least one i-m-s hit
-        for i in range(2):
-            self.assert_(os.path.exists(self.sources))
-            cmd = [self.apt,"update","-o", "Dir::Etc::sourcelist=%s" % self.sources]+apt_args
-            res = call(cmd, stdout=stdout, stderr=stderr)
-            self.assertEqual(res, 0, "local repo test failed")
-            self.assert_(os.path.exists(os.path.join(self.repo,"Packages.gz")),
-                         "Packages.gz vanished from local repo")
-
-    def testInstallFromLocalRepo(self):
-        apt = [self.apt,"-o", "Dir::Etc::sourcelist=%s"% self.sources]+apt_args
-        cmd = apt+["update"]
-        res = call(cmd, stdout=stdout, stderr=stderr)
-        self.assertEqual(res, 0)
-        res = call(apt+["-y","install","--reinstall",self.pkg],
-                   stdout=stdout, stderr=stderr)
-        self.assert_(res == 0,
-                     "installing %s failed (got %s)" % (self.pkg, res))
-        res = call(apt+["-y","remove",self.pkg],
-                   stdout=stdout, stderr=stderr)
-        self.assert_(res == 0,
-                     "removing %s failed (got %s)" % (self.pkg, res))
-
-    def testPythonAptInLocalRepo(self):
-        import apt, apt_pkg
-        apt_pkg.Config.Set("Dir::Etc::sourcelist",self.sources)
-        cache = apt.Cache()
-        cache.update()
-        pkg = cache["apt"]
-        self.assert_(pkg.name == 'apt')
-        
-
-
-if __name__ == "__main__":
-    print "Runing simple testsuit on current apt-get and libapt"
-    if len(sys.argv) > 1 and sys.argv[1] == "-v":
-        stdout = sys.stdout
-        stderr = sys.stderr
-    
-    # run only one for now
-    #unittest.main(defaultTest="testAptAuthenticationReliability")
-    unittest.main()
diff --git a/test/rpmver.cc b/test/rpmver.cc
deleted file mode 100644 (file)
index 9fc807d..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-#include <apt-pkg/debversion.h>
-#include <rpm/rpmio.h>
-#include <rpm/misc.h>
-#include <stdlib.h>
-#include <ctype.h>
-
-#define xisdigit(x) isdigit(x)
-#define xisalpha(x) isalpha(x)
-#define xisalnum(x) (isdigit(x) || isalpha(x))
-
-using namespace std;
-
-int rpmvercmp(const char * a, const char * b)
-{
-    char oldch1, oldch2;
-    char * str1, * str2;
-    char * one, * two;
-    int rc;
-    int isnum;
-
-    /* easy comparison to see if versions are identical */
-    if (!strcmp(a, b)) return 0;
-
-    str1 = (char *)alloca(strlen(a) + 1);
-    str2 = (char *)alloca(strlen(b) + 1);
-
-    strcpy(str1, a);
-    strcpy(str2, b);
-
-    one = str1;
-    two = str2;
-   
-    /* loop through each version segment of str1 and str2 and compare them */
-    while (*one && *two) {
-       while (*one && !xisalnum(*one)) one++;
-       while (*two && !xisalnum(*two)) two++;
-
-       str1 = one;
-       str2 = two;
-
-       /* grab first completely alpha or completely numeric segment */
-       /* leave one and two pointing to the start of the alpha or numeric */
-       /* segment and walk str1 and str2 to end of segment */
-       if (xisdigit(*str1)) {
-           while (*str1 && xisdigit(*str1)) str1++;
-           while (*str2 && xisdigit(*str2)) str2++;
-           isnum = 1;
-       } else {
-           while (*str1 && xisalpha(*str1)) str1++;
-           while (*str2 && xisalpha(*str2)) str2++;
-           isnum = 0;
-       }
-
-       /* save character at the end of the alpha or numeric segment */
-       /* so that they can be restored after the comparison */
-       oldch1 = *str1;
-       *str1 = '\0';
-       oldch2 = *str2;
-       *str2 = '\0';
-
-       /* take care of the case where the two version segments are */
-       /* different types: one numeric, the other alpha (i.e. empty) */
-       if (one == str1) return -1;     /* arbitrary */
-       if (two == str2) return 1;
-
-       if (isnum) {
-           /* this used to be done by converting the digit segments */
-           /* to ints using atoi() - it's changed because long  */
-           /* digit segments can overflow an int - this should fix that. */
-
-           /* throw away any leading zeros - it's a number, right? */
-           while (*one == '0') one++;
-           while (*two == '0') two++;
-
-           /* whichever number has more digits wins */
-           if (strlen(one) > strlen(two)) return 1;
-           if (strlen(two) > strlen(one)) return -1;
-       }
-
-       /* strcmp will return which one is greater - even if the two */
-       /* segments are alpha or if they are numeric.  don't return  */
-       /* if they are equal because there might be more segments to */
-       /* compare */
-       rc = strcmp(one, two);
-       if (rc) return rc;
-
-       /* restore character that was replaced by null above */
-       *str1 = oldch1;
-       one = str1;
-       *str2 = oldch2;
-       two = str2;
-    }
-
-    /* this catches the case where all numeric and alpha segments have */
-    /* compared identically but the segment sepparating characters were */
-    /* different */
-    if ((!*one) && (!*two)) return 0;
-
-    /* whichever version still has characters left over wins */
-    if (!*one) return -1; else return 1;
-}
-
-int main(int argc,const char *argv[])
-{
-   printf("%i\n",strcmp(argv[1],argv[2]));
-   
-   printf("'%s' <> '%s':  ",argv[1],argv[2]);
-   printf("rpm: %i   deb:  %i\n",rpmvercmp(argv[1],argv[2]),
-         debVS.CmpFragment(argv[1],argv[1]+strlen(argv[1]),
-                           argv[2],argv[2]+strlen(argv[2])));
-   
-   printf("'%s' <> '%s':  ",argv[2],argv[1]);
-   printf("rpm: %i   deb:  %i\n",rpmvercmp(argv[2],argv[1]),
-         debVS.CmpFragment(argv[2],argv[2]+strlen(argv[2]),
-                           argv[1],argv[1]+strlen(argv[1])));
-   return 0;
-}
diff --git a/test/scratch.cc b/test/scratch.cc
deleted file mode 100644 (file)
index d638c70..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-#include <apt-pkg/dpkgdb.h>
-#include <apt-pkg/debfile.h>
-#include <apt-pkg/error.h>
-#include <apt-pkg/configuration.h>
-#include <apt-pkg/progress.h>
-#include <apt-pkg/extract.h>
-#include <apt-pkg/init.h>
-#include <apt-pkg/fileutl.h>
-
-using namespace std;
-
-int main(int argc,char *argv[])
-{
-   pkgInitConfig(*_config);
-   pkgInitSystem(*_config,_system);
-
-//   cout << flNoLink(argv[1]) << endl;
-   
-//   #if 0
-/*   DynamicMMap *FileMap = new DynamicMMap(MMap::Public);
-   pkgFLCache *FList = new pkgFLCache(*FileMap);
-   
-   char *Name = "/tmp/test";
-   pkgFLCache::PkgIterator Pkg(*FList,0);
-   pkgFLCache::NodeIterator Node = FList->GetNode(Name,Name+strlen(Name),Pkg.Offset(),true,false);
-   cout << (pkgFLCache::Node *)Node << endl;
-   Node = FList->GetNode(Name,Name+strlen(Name),Pkg.Offset(),true,false);
-   cout << (pkgFLCache::Node *)Node << endl;
-*/
-//   #if 0
-   _config->Set("Dir::State::status","/tmp/testing/status");
-
-   debDpkgDB Db;
-   
-   {
-      OpTextProgress Prog;
-      
-      if (Db.ReadyPkgCache(Prog) == false)
-        cerr << "Error!" << endl;
-      Prog.Done();
-      
-      if (Db.ReadyFileList(Prog) == false)
-        cerr << "Error!" << endl;
-   }
-   
-   if (_error->PendingError() == true)
-   {
-      _error->DumpErrors();
-      return 0;
-   }
-   
-/*   Db.GetFLCache().BeginDiverLoad();
-   pkgFLCache::PkgIterator Pkg(Db.GetFLCache(),0);
-   if (Db.GetFLCache().AddDiversion(Pkg,"/usr/include/linux/kerneld.h","/usr/bin/nslookup") == false)
-      cerr << "Error!" << endl;
-
-   const char *Tmp = "/usr/include/linux/kerneld.h";
-   pkgFLCache::NodeIterator Nde = Db.GetFLCache().GetNode(Tmp,Tmp+strlen(Tmp),0,false,false);
-   map_ptrloc Loc = Nde->File;
-      
-   for (; Nde.end() == false && Nde->File == Loc; Nde++)
-      cout << Nde->Flags << ',' << Nde->Pointer << ',' << Nde.File() << endl;
-   Db.GetFLCache().FinishDiverLoad();*/
-
-/*   unsigned int I = 0;
-   pkgFLCache &Fl = Db.GetFLCache();
-   while (I < Fl.HeaderP->HashSize)
-   {
-      cout << I << endl;
-      pkgFLCache::NodeIterator Node(Fl,Fl.NodeP + Fl.HeaderP->FileHash + I++);
-      if (Node->Pointer == 0)
-        continue;
-      for (; Node.end() == false; Node++)
-      {
-        cout << Node.DirN() << '/' << Node.File();
-        if (Node->Flags == pkgFLCache::Node::Diversion)
-           cout << " (div)";
-        if (Node->Flags == pkgFLCache::Node::ConfFile)
-           cout << " (conf)";
-        cout << endl;
-      }
-   }*/
-
-   for (int I = 1; I < argc; I++)
-   {
-      FileFd F(argv[I],FileFd::ReadOnly);
-      debDebFile Deb(F);
-      
-      if (Deb.ExtractControl(Db) == false)
-        cerr << "Error!" << endl;
-      cout << argv[I] << endl;
-      
-      pkgCache::VerIterator Ver = Deb.MergeControl(Db);
-      if (Ver.end() == true)
-        cerr << "Failed" << endl;
-      else
-        cout << Ver.ParentPkg().Name() << ' ' << Ver.VerStr() << endl;
-      
-      pkgExtract Extract(Db.GetFLCache(),Ver);
-      Deb.ExtractArchive(Extract);
-   }
-//   #endif
-//#endif      
-   _error->DumpErrors();
-}
diff --git a/test/test-indexes.sh b/test/test-indexes.sh
deleted file mode 100755 (executable)
index 50d54f6..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-#!/bin/sh -e
-
-# Test behaviour of index retrieval and usage, in particular with uncompressed
-# and gzip compressed indexes.
-# Author: Martin Pitt <martin.pitt@ubuntu.com>
-# (C) 2010 Canonical Ltd.
-
-BUILDDIR=$(readlink -f $(dirname $0)/../build)
-
-TEST_SOURCE="http://ftp.debian.org/debian unstable contrib"
-GPG_KEYSERVER=gpg-keyserver.de
-# should be a small package with dependencies satisfiable in TEST_SOURCE, i. e.
-# ideally no depends at all
-TEST_PKG="python-psyco-doc"
-
-export LD_LIBRARY_PATH=$BUILDDIR/bin
-
-OPTS="-qq -o Dir::Bin::Methods=$BUILDDIR/bin/methods -o Debug::NoLocking=true"
-DEBUG=""
-#DEBUG="-o Debug::pkgCacheGen=true"
-#DEBUG="-o Debug::pkgAcquire=true"
-APT_GET="$BUILDDIR/bin/apt-get $OPTS $DEBUG"
-APT_CACHE="$BUILDDIR/bin/apt-cache $OPTS $DEBUG"
-APT_FTPARCHIVE="$BUILDDIR/bin/apt-ftparchive"
-
-[ -x "$BUILDDIR/bin/apt-get" ] || {
-    echo "please build the tree first" >&2
-    exit 1
-}
-
-check_update() {
-    echo "--- apt-get update $@ (no trusted keys)"
-
-    rm -f etc/apt/trusted.gpg etc/apt/secring.gpg
-    touch etc/apt/trusted.gpg etc/apt/secring.gpg
-    find var/lib/apt/lists/ -type f | xargs -r rm
-
-    # first attempt should fail, no trusted GPG key
-    out=$($APT_GET "$@" update 2>&1)
-    echo "$out" | grep -q NO_PUBKEY
-    key=$(echo "$out" | sed -n '/NO_PUBKEY/ { s/^.*NO_PUBKEY \([[:alnum:]]\+\)$/\1/; p}')
-
-    # get keyring
-    gpg -q --no-options --no-default-keyring --secret-keyring etc/apt/secring.gpg --trustdb-name etc/apt/trustdb.gpg --keyring etc/apt/trusted.gpg --primary-keyring etc/apt/trusted.gpg --keyserver $GPG_KEYSERVER --recv-keys $key
-
-    # now it should work
-    echo "--- apt-get update $@ (with trusted keys)"
-    find var/lib/apt/lists/ -type f | xargs -r rm
-    $APT_GET "$@" update
-}
-
-# if $1 == "compressed", check that we have compressed indexes, otherwise
-# uncompressed ones
-check_indexes() {
-    echo "--- only ${1:-uncompressed} index files present"
-    local F
-    if [ "$1" = "compressed" ]; then
-       ! test -e var/lib/apt/lists/*_Packages || F=1
-       ! test -e var/lib/apt/lists/*_Sources || F=1
-       test -e var/lib/apt/lists/*_Packages.gz || F=1
-       test -e var/lib/apt/lists/*_Sources.gz || F=1
-    else
-       test -e var/lib/apt/lists/*_Packages || F=1
-       test -e var/lib/apt/lists/*_Sources || F=1
-       ! test -e var/lib/apt/lists/*_Packages.gz || F=1
-       ! test -e var/lib/apt/lists/*_Sources.gz || F=1
-    fi
-
-    if [ -n "$F" ]; then
-       ls -laR var/lib/apt/lists/
-       exit 1
-    fi
-}
-
-# test apt-cache commands
-check_cache() {
-    echo "--- apt-cache commands"
-
-    $APT_CACHE show $TEST_PKG | grep -q ^Version:
-    # again (with cache)
-    $APT_CACHE show $TEST_PKG | grep -q ^Version:
-    rm var/cache/apt/*.bin
-    $APT_CACHE policy $TEST_PKG | egrep -q '500 (http://|file:/)'
-    # again (with cache)
-    $APT_CACHE policy $TEST_PKG | egrep -q '500 (http://|file:/)'
-
-    TEST_SRC=`$APT_CACHE show $TEST_PKG | grep ^Source: | awk '{print $2}'`
-    rm var/cache/apt/*.bin
-    $APT_CACHE showsrc $TEST_SRC | grep -q ^Binary:
-    # again (with cache)
-    $APT_CACHE showsrc $TEST_SRC | grep -q ^Binary:
-}
-
-# test apt-get install
-check_install() {
-    echo "--- apt-get install"
-
-    $APT_GET install -d $TEST_PKG 
-    test -e var/cache/apt/archives/$TEST_PKG*.deb
-    $APT_GET clean
-    ! test -e var/cache/apt/archives/$TEST_PKG*.deb
-}
-
-# test apt-get source
-check_get_source() {
-    echo "--- apt-get source"
-    # quiesce: it'll complain about not being able to verify the signature
-    $APT_GET source $TEST_PKG >/dev/null 2>&1
-    test -f $TEST_SRC_*.dsc
-    test -d $TEST_SRC-*
-    rm -r $TEST_SRC*
-}
-
-############################################################################
-# main
-############################################################################
-
-echo "===== building sandbox ====="
-WORKDIR=$(mktemp -d)
-trap "cd /; rm -rf $WORKDIR" 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
-cd $WORKDIR
-
-rm -fr etc var
-rm -f home
-ln -s /home home
-mkdir -p etc/apt/preferences.d etc/apt/trusted.gpg.d etc/apt/apt.conf.d var/cache/apt/archives/partial var/lib/apt/lists/partial var/lib/dpkg
-cp /etc/apt/trusted.gpg etc/apt
-touch var/lib/dpkg/status
-echo "deb $TEST_SOURCE" > etc/apt/sources.list
-echo "deb-src $TEST_SOURCE" >> etc/apt/sources.list
-
-# specifying -o RootDir at the command line does not work for
-# etc/apt/apt.conf.d/ since it is parsed after pkgInitConfig(); $APT_CONFIG is
-# checked first, so this works
-echo "RootDir \"$WORKDIR\";" > apt_config
-export APT_CONFIG=`pwd`/apt_config
-
-echo "==== no indexes ===="
-echo '--- apt-get check works without indexes'
-[ -z `$APT_GET check` ]
-echo '--- apt-cache policy works without indexes'
-$APT_CACHE policy bash >/dev/null
-echo '--- apt-cache show works without indexes'
-! LC_MESSAGES=C $APT_CACHE show bash 2>&1| grep -q 'E: No packages found'
-
-echo "===== uncompressed indexes ====="
-echo 'Acquire::GzipIndexes "false";' > etc/apt/apt.conf.d/02compress-indexes
-check_update
-check_indexes
-check_cache
-check_install
-check_get_source
-
-echo "--- apt-get update with preexisting indexes"
-$APT_GET update
-check_indexes
-check_cache
-
-echo "--- apt-get update with preexisting indexes and pdiff mode"
-$APT_GET -o Acquire::PDiffs=true update
-check_indexes
-check_cache
-
-echo "===== compressed indexes (CLI option) ====="
-check_update -o Acquire::GzipIndexes=true
-check_indexes compressed
-check_cache
-check_install
-check_get_source
-
-echo "--- apt-get update with preexisting indexes"
-$APT_GET -o Acquire::GzipIndexes=true update
-check_indexes compressed
-check_cache
-
-echo "--- apt-get update with preexisting indexes and pdiff mode"
-$APT_GET -o Acquire::GzipIndexes=true -o Acquire::PDiffs=true update
-check_indexes compressed
-check_cache
-
-echo "===== compressed indexes (apt.conf.d option) ====="
-cat <<EOF > etc/apt/apt.conf.d/02compress-indexes
-Acquire::GzipIndexes "true";
-Acquire::CompressionTypes::Order:: "gz";
-EOF
-
-check_update
-check_indexes compressed
-check_cache
-check_install
-check_get_source
-
-echo "--- apt-get update with preexisting indexes"
-$APT_GET update
-check_indexes compressed
-check_cache
-
-echo "--- apt-get update with preexisting indexes and pdiff mode"
-$APT_GET -o Acquire::PDiffs=true update
-check_indexes compressed
-check_cache
-
-rm etc/apt/apt.conf.d/02compress-indexes
-
-echo "==== apt-ftparchive ===="
-mkdir arch
-$APT_GET install -d $TEST_PKG 
-cp var/cache/apt/archives/$TEST_PKG*.deb arch/
-cd arch
-$APT_GET source -d $TEST_PKG >/dev/null 2>&1
-$APT_FTPARCHIVE packages . | gzip -9 > Packages.gz
-$APT_FTPARCHIVE sources . | gzip -9 > Sources.gz
-cd ..
-
-echo "deb file://$WORKDIR/arch /
-deb-src file://$WORKDIR/arch /" > etc/apt/sources.list
-$APT_GET clean
-
-echo "==== uncompressed indexes from local file:// archive ===="
-echo "--- apt-get update"
-$APT_GET update
-check_indexes
-check_cache
-check_get_source
-
-echo "==== compressed indexes from local file:// archive ===="
-echo "--- apt-get update"
-$APT_GET -o Acquire::GzipIndexes=true update
-# EXFAIL: file:/ URIs currently decompress even with above option
-#check_indexes compressed
-check_indexes
-check_cache
-check_get_source
-
-echo "===== ALL TESTS PASSED ====="
diff --git a/test/test_udevcdrom.cc b/test/test_udevcdrom.cc
deleted file mode 100644 (file)
index e65c7a2..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <apt-pkg/cdrom.h>
-#include <stdio.h>
-#include <assert.h>
-
-int main()
-{
-   int i;
-   pkgUdevCdromDevices c;
-   assert(c.Dlopen());
-
-   vector<CdromDevice> l;
-   l = c.Scan();
-   assert(l.size() > 0);
-   for (i=0;i<l.size();i++)
-      std::cerr << l[i].DeviceName << " " 
-               << l[i].Mounted << " " 
-               << l[i].MountPath << std::endl;
-   
-}
diff --git a/test/testdeb.cc b/test/testdeb.cc
deleted file mode 100644 (file)
index d28f201..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <apt-pkg/dirstream.h>
-#include <apt-pkg/debfile.h>
-#include <apt-pkg/error.h>
-#include <apt-pkg/extracttar.h>
-
-class NullStream : public pkgDirStream
-{
-   public:
-   virtual bool DoItem(Item &Itm,int &Fd) {return true;};
-};
-
-bool Test(const char *File)
-{
-   FileFd Fd(File,FileFd::ReadOnly);
-   debDebFile Deb(Fd);
-   
-   if (_error->PendingError() == true)
-      return false;
-   
-   // Get the archive member and positition the file 
-   const ARArchive::Member *Member = Deb.GotoMember("data.tar.gz");
-   if (Member == 0)
-      return false;
-      
-   // Extract it.
-   ExtractTar Tar(Deb.GetFile(),Member->Size, "gzip");
-   NullStream Dir;
-   if (Tar.Go(Dir) == false)
-      return false;   
-   
-   return true;
-}
-
-int main(int argc, const char *argv[])
-{
-   Test(argv[1]);
-   _error->DumpErrors();
-   return 0;
-}
diff --git a/test/testextract.cc b/test/testextract.cc
deleted file mode 100644 (file)
index b790df6..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-#include <apt-pkg/dpkgdb.h>
-#include <apt-pkg/debfile.h>
-#include <apt-pkg/error.h>
-#include <apt-pkg/configuration.h>
-#include <apt-pkg/progress.h>
-#include <apt-pkg/extract.h>
-#include <apt-pkg/init.h>
-#include <apt-pkg/strutl.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-
-using namespace std;
-
-bool Go(int argc,char *argv[])
-{
-   // Init the database
-   debDpkgDB Db;   
-   {
-      OpTextProgress Prog;
-
-      if (Db.ReadyPkgCache(Prog) == false)
-        return false;
-      Prog.Done();
-      
-      if (Db.ReadyFileList(Prog) == false)
-        return false;
-   }
-
-   for (int I = 1; I < argc; I++)
-   {
-      const char *Fake = 0;
-      for (unsigned J = 0; argv[I][J] != 0; J++)
-      {
-        if (argv[I][J] != ',')
-           continue;
-        Fake = argv[I] + J + 1;
-        argv[I][J] = 0;
-      }
-      
-      FileFd F(argv[I],FileFd::ReadOnly);
-      debDebFile Deb(F);
-
-      if (_error->PendingError() == true)
-        return false;
-      
-      if (Deb.ExtractControl(Db) == false)
-        return false;
-      cout << argv[I] << endl;
-      
-      pkgCache::VerIterator Ver = Deb.MergeControl(Db);
-      if (Ver.end() == true)
-        return false;
-      
-      cout << Ver.ParentPkg().Name() << ' ' << Ver.VerStr() << endl;
-      
-      pkgExtract Extract(Db.GetFLCache(),Ver);
-      
-      if (Fake != 0)
-      {
-        pkgExtract::Item Itm;
-        memset(&Itm,0,sizeof(Itm));
-        FILE *F = fopen(Fake,"r");
-        while (feof(F) == 0)
-        {
-           char Line[300];
-           fgets(Line,sizeof(Line),F);
-           Itm.Name = _strstrip(Line);
-           Itm.Type = pkgDirStream::Item::File;
-           if (Line[strlen(Line)-1] == '/')
-              Itm.Type = pkgDirStream::Item::Directory;
-
-           int Fd;
-           if (Extract.DoItem(Itm,Fd) == false) {
-              fclose(F);
-              return false;
-           }
-        }
-        fclose(F);
-      }
-      else
-        if (Deb.ExtractArchive(Extract) == false)
-           return false;
-   }
-   return true;
-}
-
-int main(int argc,char *argv[])
-{
-   pkgInitConfig(*_config);
-   pkgInitSystem(*_config,_system);
-   _config->Set("Dir::State::status","/tmp/testing/status");
-
-   Go(argc,argv);
-   
-   if (_error->PendingError() == true)
-   {
-      _error->DumpErrors();
-      return 0;
-   }
-}
diff --git a/test/testkeys/mvo.key b/test/testkeys/mvo.key
deleted file mode 100644 (file)
index e1ab501..0000000
+++ /dev/null
@@ -1,1182 +0,0 @@
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.6 (GNU/Linux)
-
-mQGiBDgbNk0RBACbHfepY/RojAOL0tqkJOLnJ0ppvoAcFj427ZxdUbEwdwc7BNL+
-XtRgZ1WBURA+qb2inC3rA9a9TrQA2x2luq7XmCVbP7jv0K/8nYqzSHp0oPuMsrCO
-6EhK/XLOzKw7Bk1rfl4JVOX92QFBXodJiaemUok29CXVSn8vUR2lqGdypwCgpiBJ
-zxjf/eSvPp4IihsTC3kke9ED/2ASOhlkfWobIaed47/ehIYc9gvbdMOnoGDrwXN6
-8ba+3FGvtY5qbUKg2HinOYQoBjXW9NDjeJ6b8klpyG2LMAhS2UzPQjhwUIn9WnNX
-Qsvreq0e3ad+kXCjPFjtfjCPno19mPvTSevLEXIUoG02fjpDdHTCxlUq7jdthtPC
-TMCLA/4scIFi2Ll7pqVvNqc7xTLb/b5E9fKsiqdrJMLGqg4cWak84e9UF2tQmsqs
-UohiU9qV5u4HIehraXs9NDdt2PvFgCsEYNtwFdSCsq6q9YtqfgnGia1hyQLE47RP
-J+AwLeZRU9R81gKslD/ouxgj3ctx44hHMtLAFEZU/SqoD6CZBbQcTWljaGFlbCBW
-b2d0IDxtdm9ndEBhY20ub3JnPohVBBMRAgAVBQI4GzZNAwsKAwMVAwIDFgIBAheA
-AAoJEJYkg+FWYsc0Da0AoJL3vvvHdGlRzVKRBUmUk7ldSaeOAJwJx+M17RtS2H7/
-rtDs/FdKgOpyYIhGBBARAgAGBQI44PQGAAoJEHnZRpQA4NBUcfsAnjJyH2KDaapk
-LmWIo8mXbjKkp1nPAJ0ah73TIyMDX46M5keCVv14rEO7qIhGBBARAgAGBQI5XewC
-AAoJEG9cFK2bBJM1u2MAnRm2g0rv3MJcp0+WqJ6gBwFusJLGAJ44gsM1etFK+/v5
-K7fhtTVHVw2p5ohGBBARAgAGBQI5YbDGAAoJENfxTmPdHGLWOx0AniI3REj/jKDw
-rlLox+UMytalnzKcAJ9ymd5/mwd2Vv5xgZpOzlzmOkHM24hGBBARAgAGBQI5czP9
-AAoJEFTCT7U7C7mpbogAmwc+jjRJAQLuwP8AY4oEf6G5MAErAKDIGv+gNkcZM66T
-whLZdmF+SUYcEIhGBBARAgAGBQI5ye0MAAoJEFGs9q11voCXz5IAnivGxujJtmUl
-9qOu2j542xIpFOcLAJ4/IeHXf0Z4UknuqDDRuEK8iLsAfYhGBBARAgAGBQI5yy+C
-AAoJEL/hIGVrIUiaJXYAnjwaPF3bh7P0SBNlD+wLjtQJ/MTHAJ9Y3WWJKMYUg4xL
-F0tHLZyloU9674hGBBARAgAGBQI5zN/1AAoJEN56r26UwJx/QdIAoMfkJQVmLGmZ
-zHOxLMb/EtMGUF1ZAKCMwdQnb1x9ilkIzr5NtNUE/TErJ4hGBBARAgAGBQI51EyZ
-AAoJEPhev0YljYeBAhoAn3wxgOQeBwbCkJyLicdOrzy23Cv/AJ0UTreo2KaFOfcy
-eqdxDSZpt//2hIhGBBARAgAGBQI6Ac4jAAoJEB/Egc/tDXz6yeoAn1lqYvC91uvt
-JmbJ1mPgWOL8BRlLAJ9zSXAy/Evl7ffMmNRmw68hgiw+uYhGBBARAgAGBQI6Lj7J
-AAoJENwT5U6rm2b9hyUAoNKrqr+wFKb53a/2EiqiwlxwMe9sAJ4rmmdg/eD7+gra
-taOyc9hbc9BsIYhGBBARAgAGBQI7QFC3AAoJEHkWLzb39qrZmlcAoKcsJvgM2fLl
-msslzS5C0wPmHp2aAJ9GwhzCzA5m2sfHF//VE9vK7lGP6ohGBBARAgAGBQI7QK1g
-AAoJECm+XSJo/VSf9RMAoKeZR763sZs1FUzDZqO+1P1PvRORAJ4/pPOXrBtUVxtP
-L7JYcby7Pu2q4ohGBBARAgAGBQI7QEqKAAoJEHzz9a8pSZ9h/LoAnjq3tepe77aC
-7A87N4m8ioQNq9EWAJ4r8xJdSV9WJuKOpWO8RhcQK+zG8IhGBBARAgAGBQI7Rdfh
-AAoJEENVU8Xg+cY0XsEAoJYuY/GAwj3D3O2l2/4kpqL/K2bOAKCVFnIXGzmokhUW
-OzEpR9zISB0Jl4hGBBARAgAGBQI7QVVlAAoJENdZXTdLcpYl3IwAnjJg1r1c8SdB
-pmCusQhdlvth9KanAJ4oVB5ClSpXLszX81n3K14E4xgSz4hGBBARAgAGBQI7RsZj
-AAoJEPIPrAt7g1flwMgAoKif05sqy6lgnhOOW0gen5ZDMZiDAJ4lZrdd+We/lzOI
-ItzwaH7MtR7mnohGBBARAgAGBQI7MdbOAAoJEIuYyKIb5v0ldf0AnRNFMcbfelX1
-kWyQ7iwBe8ZdrnBSAJ9XAYyd+YDMxRPgUjPsx5g4bVoByIhGBBARAgAGBQI7SxV6
-AAoJEMCky7mHl4VpMpAAnAiPDNzcAqS3SitNzdfo6um6ULm3AJ45Arkvwdt1rhe+
-XdJb8BmE0csV24hGBBARAgAGBQI7TWOqAAoJEP6aHsNkhDkzNo4AoIG4qZnmAhiu
-tjYUGe8iTHvlSRn2AJ0R78A+6pNYq7bXsX+u2wQCmtKstIhGBBARAgAGBQI7TyYG
-AAoJEF3iSZZbA1iijrIAmQFyBc06cpHnk8Z1jcb1j4hppKDTAKCrOAVms47hOwSQ
-kx77XYYVmgv1JYhGBBARAgAGBQI7UiYzAAoJECTpnxDbPUTUOs4AoKxun2wYzw6n
-X8m2GD852Fvl1ejRAKCcxxsM91CEqa1Dq1ZgSAPcPW4aFohGBBARAgAGBQI7Ur/6
-AAoJEPHSzMhJehdttqIAoLlQ8CR3oGaSFhnJUJlhITxph2AcAKC/D8KE2TBBH9Ns
-Xnd9w4TueW5ZwIhGBBARAgAGBQI7XvRyAAoJEKXycCgJF6nkbZIAn0a/QJMxWZA1
-joLAmTZeZKtpG4kBAJ9HmXc4IvbtywrkN2UUXy6V9EBdmohGBBARAgAGBQI8Bm3x
-AAoJEG+rq7w1fSF4VpIAn2FRhND2RaEf7OzAHuijY51SxYRfAJ0bHBGbLKfiV9GN
-h+8ZeIU4G/ZoF4hGBBARAgAGBQI7+t0uAAoJEO/OC2AEJW07bwUAnRx8jfjEQvV+
-didBZ6royl+EQ+XIAKCEaXBmCylJjiDzzwFs2M6ofr7oiIkAlQMFEDweVsmABi58
-5NR+wQEB14gEAN2PQAo2JeKKw5Ehq5MtNncwAnY8f4k9vMR+bRF+ZQZRSENDseEi
-1NFe0L36ftZm+OPycd6sOW+ItdBQdz5Klg0itVPlneg6e172S97rBC3H9Sadc/s2
-e3TzSO75H17SZQqep8SQ0J5lpVqnZWv8UInw6nlNHrAZnKi5vDCDg2qViEYEEBEC
-AAYFAjtSxtsACgkQO/YJxouvzb1UngCfVU4Tuak2dZvqi3sGpEbP5N3JD6YAoMC/
-O5omvvNn+Y3roJ9DO9Gp5tuGiEYEEBECAAYFAjwea0EACgkQw3ao2vG823MD+wCf
-QMu34w5+e1IVv0SG/4u7OZ+gAU0An14HokAASyR08zx6YWRISe+ut2ugiEYEEBEC
-AAYFAjzOpm0ACgkQYFIoXKh32XgWBACgmj2D12AxjkIKtSAnxaJW0jctpPAAn3gD
-BekKLQ6nxUv/RtdSxgEuJaTziEYEEBECAAYFAjwaQVoACgkQArxCt0PiXR4VogCg
-4Ugp24rAWDTrg087qmJJDSzoFMoAniSj+0jFBN7+Cuxt6lvsYdzIZtRkiEYEExEC
-AAYFAj03JCAACgkQEmi4KLr+iOXtmACgpOsak4ZO2xpL+BWtsV0STUiHWa0An1MO
-+j7+1i/qyUqxK3dBMAAQR6DciEYEEBECAAYFAjz8wDsACgkQL0uj7/chxkPnawCf
-fe9U7VuB6Kmb8kCOuqLD2WdeQ5QAoKdNllTKuajMNuTKu7nK4cM5xwasiEYEEBEC
-AAYFAjz/WjsACgkQ4ggFW0tm2ZF8AACfRKZqobRP7Rz/nMmmjQTicKKRcikAn2ki
-Uout5ll4H8kJSN0xvQtwV/AtiEYEEBECAAYFAjy8heYACgkQ+FmQsCSK63M7qwCf
-XWEy22x1vjjEwqLKfcbfE/KUFYIAni6HE23kn69qjF9JIIHEwUaLO1JJiEYEEhEC
-AAYFAj2hjGkACgkQjjtznt0rzJ2LKQCdGrZeo3TW4KOL13MlTNst0njtV18An3h9
-6nXE3Hz9THRMuxldBfhrPbk/iEYEEBECAAYFAj44b8oACgkQ/5gPV7u/uOHgDwCg
-+VNQMCgxFaNiiyU1c6uppxDRYcIAn27PkEgAjlw0t6xHGSqSUelJONBEiQFABBMB
-AgAqBQI+jbNtIxpodHRwOi8vd3d3LnJhdGgub3JnL2dwZ3BvbGljeS5odG1sAAoJ
-ELbcsCzNGlK5XZYIAKlU2bdFlD90ss50fUi2+sUus7ev3nhPP9VPuN5IO325meNF
-OJN/074ewSHsdiD0323sohtqe4aQp0nieYg3IfC6agEiCiNffFmvs/oMuZKk0OXy
-BBZP3KxHUnz6B0eHN1HxdfrWO3Zt48T4cLEs2cudZHfGnzd/ZsPbxlMe+krHktgl
-FZdX2pm8g77NMD/FHICbypCsY2FLt7huw/pPcLyvE8Wafm8YmgM6biWR5CUglVfs
-IoeKzEdYj/Ys0rht7YGz5yB1U6Sy4JRLDbM1Msx3h2C2J76mV/oogt568okZSGZx
-EadrBn4PdJqU4zFK4t9Y0Pp6imFpraOAOaG0jvWIRgQTEQIABgUCPpGDpwAKCRAI
-XykZwmr06+IRAJ9yHo51a6Swdm2MzcE8NM3AiVZDAACeJPI2DzeXqckHrFmVhMm8
-WSUQcNqIagQTEQIAKgUCPo2ymCMaaHR0cDovL3d3dy5yYXRoLm9yZy9ncGdwb2xp
-Y3kuaHRtbAAKCRCprbf4rk5CXMabAJ9ewWNvXylfEGFtSEl/Akp5HmlcQwCguezW
-D8hrg9b7grq+D8Xa+qhVzoqIRgQTEQIABgUCPw/vagAKCRDTW7yZvH0CCo6oAJ41
-fNnL1AS8lMN4xxVoBudfnj0ENQCZARDKiW3eMp2+bLHKOcaMCF5GEHeIRgQQEQIA
-BgUCPxBWNAAKCRDW+vrdlS8//wK4AKCsH7xA5MH6ctCKrLqFgJVminkaigCfUyan
-WP6QtCkyC8x+wlEAN8g7g6uJARwEEwEBAAYFAj8RBnoACgkQQAYVDkAJ6u1KcAgA
-tSn2vpDSge72G8+oCQrhxcDpob0l33IuBXEFqczV2TO7oUisgiu+/90GeRzUqBvE
-jxg2uX0n+2uYInPbLL0m5rlWgkhyk5tWSdklDz3JLKSK24p48xBjDsAxL8eiYVJh
-HOUrHRIl5imsgRk8Aycey1/h2CfweIrIZHDxGRqtX/I8EO5rG2O/HV3nujPSli6G
-wPlf1aXlV9diPj0mwU5HlCFAB/Akfx8jzcMLbORGYM1fift2c01P/KLTr9szJ8iz
-2UDiNCM007CPwrYS8aAw373zOBhzZnrJLTP7hXl78UYjZWTJlDP1PYWYY5P4gq96
-djvXpDH2WiRgF56LAEg4pYhGBBMRAgAGBQI/ECvMAAoJELM00wiWL9Le93YAnR+n
-8c2tFDeBHcSTIfjRfWjFi0ixAJwJARGAeBLHzHfHfcf15FanE4GPVIhGBBMRAgAG
-BQI/ERPwAAoJEOGFItd8cSvLEpAAnjQ1MpPXRtTKmO9OsMVGLWAe+2I7AJ4zV1mS
-zJGkkFA77QnFy4X0lP5SjYkBHAQQAQIABgUCPxFKTgAKCRAJ6fkKinJORY7SCADB
-UjR1STWfr5rXFjFleiSwPdOFMFj1HJvMVirY9ah2gzz6R+WEkzBesrg8X+Zrgf1D
-UrodM/Uas57Ght3t/ytKJdjfPiCcpn9rcWk7Gy5idpBgpGJD2YG8mATNoXsz4RHi
-evtXO8DFJ87d7fNRv6RWN6aV1hf61MfGWGX0v+qLxzGJtwalC2w6YQVmisF/IuOY
-g1TM3qtj58DPFu2CCaFcLVDpA41k6WvY+haYSoHxw6O8FUMZqCJgvo/rgaulzmCI
-IvPVGqoaZNZcaIqkDkPnXCF7Ol5Gz67SUG4p3meUIJcC0JoYO6rhzrTdom/YI2to
-cYFo6qUQX2xoyHUndGS0iEYEEBECAAYFAj8SooQACgkQ1DyzBZX+yjRANQCgoeSo
-eX3vAk26SuqRyDVfGvhX1MQAoKpdtVmx54GyB15T8KPyN/n8lm85iEYEEBECAAYF
-Aj8ROC4ACgkQ9Wsmo6Y5nnOc4gCgqb5ypf7CM7x9gGK4YLZbcvWAjqUAoJmHY1di
-lrgaafw3qqscNwTey5GCiEYEExECAAYFAj8QZjgACgkQeDPs8bVESBX5KACfUp9q
-RTLm0lLHgY9wPqJ32b1/aR0AniiRO65KcEHUZ5AJA7l6Q8stU3kfiEYEExECAAYF
-Aj8RP+kACgkQ6iGZQSR3yvj3UQCfSgvBuOlVuCOx0U83Zm30mrxsEK0AnRmDl3XT
-kQtv/wOCVoPXS21UaHFziEYEExECAAYFAj8RXPsACgkQGf7YPOK+o0HcRwCg9z9+
-ln1+teEYBfS9QCaX8DYR22wAoOHlbP+t6SnqfoFg8P0rqKnk0N+RiEYEExECAAYF
-Aj8RpBYACgkQxcDFxyGNGNcdmwCgpPCow3W9Gb6xjeKu8bLoC4SWLKwAn3ClU08D
-C3IBK6f4gAG5+Ad9NspgiEYEExECAAYFAj8RwdUACgkQvpyGjQRgTriRlgCeIoQh
-eYO1QF9oYli4AkJKP4Rnxw0AoJ1TGUjnasCUnib0LDTsLkz4G4obiEYEExECAAYF
-Aj8ShtwACgkQoJD705cZn8OiTwCffk6fmJbXPZEjLvz5mMPKqihKEDMAnRDLrmVU
-7Zyr1MTNkEkXUdRKU/R4iEYEExECAAYFAj8SkwQACgkQVm02LO4Jd+gV1wCgp3rq
-b/jQ6p5s7mtGz4nIGq5rWscAn1VG5Y74+kHz3zIc4R6+cc6GfgYgiEYEExECAAYF
-Aj8Sl20ACgkQj7mZcU7rMfFoFgCfULiIrce0s4O8RkaA1/3Aim8vw8gAn3pJeNz4
-xbjG+SdSIkt20PClEdsZiJwEEwECAAYFAj8TMi8ACgkQtGuSO22KvnHtdQQAq36q
-n4gFtu4ocQf1pDaxZRyuEvwjuiRmrOGWRbSwvz0xKWDflYxfHPz17XSbZsTrk3EL
-OoVVlgaSDhwf67SLfVlyYW8lxJVXY4qF55UNQ2+fe2zlJ8TKQd3FdxoRzurkMoEX
-4kay3hTFBH+nRqVS6a848yDEuTFtHSbWIh6asHGIRgQQEQIABgUCPxNhDwAKCRCt
-7CzRGpU359pzAJ9ovdQwBw48LD0l5oj+NyBJHUkVIQCfX6/AGCDhhryIn7wZw2UI
-CZ+I25aIRgQTEQIABgUCPxGlCgAKCRAoxvVrgXw1aAJQAKCQBwJZ+fZpd3wpidfj
-TSsO3DNzGgCbBFivSKHERjKt+BMU3FD/PiQVvJWIRgQTEQIABgUCPxPyOgAKCRC5
-gsvVwOMfHay/AJ4x8E/I6NaP+MZCRghVnBbc/jWXdgCdE4NPmJMYlS4DjEi5yrnO
-GTAoZ+iIRgQTEQIABgUCPxQadQAKCRCAdScAZahB7ZzWAJ9U2/wm19/e5hO6ctED
-OU4tyNX0HgCgtvah2EaEJCeHBtkcxV0gNAkjTcCIRgQTEQIABgUCPxQqPwAKCRBs
-dheMoO2YLdhsAJ9SnpDiEONSVKp4WbNUEdYg0nfQrwCgllFT54PAfK9imNf7oqm/
-u5Gmwr6IRgQSEQIABgUCPxQtmgAKCRA19mF8UTrv2SncAJ9ZGhHJo8mLfyE4N9hI
-du1knh4aiQCbBaPnoJwUU9bdGpIWdG8iO0cBPgSIRgQSEQIABgUCPxURowAKCRDV
-Tq5LyZhwscfrAKCOEb1D/zxJhDXZwpbfsxzOxGCM5gCgxwjjBCfa0eNRDEliX8LT
-LapqULmIRgQSEQIABgUCPxUs6wAKCRCJzUshYHVZ5vz+AKDIHISOOuQrtpEOsZuA
-IbCsGxuMVgCcCx4HWZUoDtnUQCwKQ1qdoNLGo26IRgQTEQIABgUCPxZujwAKCRCE
-LNt6RHeeGHlBAKCcghKXmdVvFv24BmjjNLblVkI19ACfTmvdtA319OVUdb8vj8qk
-8u6iRvGIRgQSEQIABgUCPxV1MQAKCRB8IsOfgHrFOu+lAJ45JtfYzbCAQg8zqq9b
-KYuPnb9QNACggib0rObV9FWyAtyU+YPdzpYdfcOIRgQSEQIABgUCPxUSaQAKCRC/
-QVlbc3Kipde9AJ9k8+gTNbm0kCZQR/Sr7nUp54qT9wCgozihBCCCz1UlyKlpuoPB
-Lyqn+Z6IRgQTEQIABgUCPxRl1AAKCRCUj9ag4Q9QLqUPAJ9osOfIVyhbJsJG/jaW
-bPHLlhO+4QCdEndVlz3FfEIvIqr3un8aS2mnR8aIRgQTEQIABgUCPxRl4gAKCRC0
-deIHurWCKZ90AJsHI7U/TK8ASY6qQnCs319TrsoiCwCfbzBLW6IrbkQz2ooGCWKv
-XGNZaqeIRgQTEQIABgUCPxVtRQAKCRC7VaR/yQHDPnjcAJ9es1zm1Kbba+MQpMJ/
-W7LoojAEQACg/qe/YgPY8kc3XIT3GTAxt4uU2NqIRgQTEQIABgUCPxZZigAKCRDn
-yduv41bvwEH/AKDAx7U7T+mag4+nQgJt3fVtBaBotgCfUc8zZ1GoO+4nl6J16HaS
-383ZMoOIRgQSEQIABgUCPxcIVwAKCRB3+BUzuw7ox4LhAJ985s36sd3XVShLnNSs
-oWwBCASHuwCeMR+G2M9etc91AwWmWTAa7Cm5oyqIRgQTEQIABgUCPxZaGQAKCRD0
-tLDMeX6/q2ixAJ9s5BGe4RAXi6h8crxOe69xY8Z2UgCfa95gIjyGx/78TvCxTld1
-rN6qsQCIRgQQEQIABgUCPxe0rAAKCRBGzFxj8xilakodAJ44FYFEomCpZ8fZiY/9
-kuQaxxSvagCgulF5/z2p5KjhzG3WB/ujP+VIhSSIRgQTEQIABgUCPxfUcgAKCRBT
-trgdwTzuB6pxAJ95M7TpYjim9ooeyC1t8escuno0LACeOe4iq+6JWhZcow3us448
-Duvc+IKJAQEEExECAMEFAj8Whg2GFIAAAAAAGgBjc2lnbmF0dXJlLW5vdGVzQHBl
-bmd1aW4uZGUiaHR0cDovL3d3dy5wZW5ndWluLmRlL35iYi9jb250YWN0L3BncC9z
-aWduaW5ncy9ub3Rlcy5FQTcxQjI5NjQ1OTc0RDhCMzQzRTgyMUU5NjI0ODNFMTU2
-NjJDNzM0LmFzYyIzGmh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9w
-Z3AvcG9saWN5L3YxLjEvAAoJEKseS2BGdWseknkAn1m1/xMVTIsJr18NZWVWaduY
-SisWAJ9zpOZlUDvxUgygPf8qxpw/+QjhLYkB1wQTAQIAwQUCPxaF/4YUgAAAAAAa
-AGNzaWduYXR1cmUtbm90ZXNAcGVuZ3Vpbi5kZSJodHRwOi8vd3d3LnBlbmd1aW4u
-ZGUvfmJiL2NvbnRhY3QvcGdwL3NpZ25pbmdzL25vdGVzLkVBNzFCMjk2NDU5NzRE
-OEIzNDNFODIxRTk2MjQ4M0UxNTY2MkM3MzQuYXNjIjMaaHR0cDovL3d3dy5wZW5n
-dWluLmRlL35iYi9jb250YWN0L3BncC9wb2xpY3kvdjEuMS8ACgkQGaJoCYg4/ZRS
-swf/d/l/jDhzqfSTDH0IpH1vTt9k4+qN0LSVv2z6keHd3LLS+QCVZAGuNuJ0zDUn
-oGuYfGccqLOMgnmTR+wQj1pROA1cwmISpZUn7Mwbd2yQ7KMix12/Gp3dL+KfE+UX
-DILLeZgod8ZyR35Sq17MsdFLMl9OCBCNCRigbaTW62be5HApsayOX8DjCUnkccnI
-JDqjFr9rpPlPOixLzzBi3ymLmt/Us3gXPnDIvQ9AOjk/xrLkvqibLx1SnehXuclq
-Xy1fGz70/VURD15FKR+EZoAC/z3KSt+yi5LF1rQ1JrvgWi3R+UaiQlWhjc2Y2+pC
-s9MzNJ6ajY7JebQloTBXmTZrd4hFBBMRAgAGBQI/F/CrAAoJEJEfSuaGoRjm0bEA
-oLmnPfLKN928w4MCbe1NEzN+JZ4pAJd7Qupi2vK3rYjHL6at7N0k+h3kiJwEEAEC
-AAYFAj8WkE0ACgkQ722CQfCBGV24GAP/VUmlNMWdNqADJeAS9sgmuwY499HBfxKC
-GPoUJQzz1Kp8UJUErXW0lnZap3Ovh+QWdZOGOwpcFjs/ph27SH+skieKjg+X8IsA
-z7zN+P7UJ8NDWuVA7WWlgJuubDPpWCOxcDcxefB+qUL8L+riWbmylEjron6SvAN0
-44J9fSSeCLiIRgQQEQIABgUCPxMfJAAKCRDQGfXvkCeriFR+AJ4+NtZifShtVwlF
-OmhpQeVKb8MZRgCfQfCYbEjyHmj0dkmBa1uBB5q+E9uIRgQSEQIABgUCPxh7XwAK
-CRAzCwOLbGN0bd7PAKDiCGbuxIi44hNaZp2k2iopmZp+ZACeNb4Xx1QC/UfFYIUU
-GyFaLy3AkjuIRgQSEQIABgUCPxh+JwAKCRCxqd2C3IFLCedaAJwI5NSu6QLC31Oa
-RVhwK4fMj2mRHwCaAv58aG0NwzECcAB9Q2CMu3+FnO2IRgQTEQIABgUCPxfwYQAK
-CRBWQSbyKfGb0fu9AJ0ZDxRkyQrTjBgZFNhmgLkkkc4T5wCeP2xiAp58UrX3zOlB
-gT5AKMrqjWeIRgQTEQIABgUCPxhKFgAKCRAadH5FMOC52MvlAKDfHIejXjn85Ryc
-Vfjx1QZfkr9l/QCgwWteC336NJVKdgNTL0e/uyVjzTCIRgQQEQIABgUCPxh0/QAK
-CRD2KOuTR0MgbNw+AKDVZRvEepBdgQm+WtRWY2pZyMK+IQCdE3CgB8xrU5PEG4hA
-qLSARu+9pAWIRgQSEQIABgUCPxkroQAKCRBl3zTAK1+F49K8AKCPN+Q80sOUAfGi
-yeaS62P21Za71wCdEiU6eO1A/G8AoAfJBOnNOasFJMmIRgQTEQIABgUCPxmU9wAK
-CRAh7E/chK1nbCH6AJ0Zs14KeXxHenncYDYQwaRytW/legCfalBDlkhqD/GU7Xic
-XkIntVILRoiIRgQTEQIABgUCPxplPwAKCRDOinnXmAFtxxlSAJoC0dP/HCw4x2j2
-u4ljZSk5dQh6YACfTEtkWHXY4be31uF2iqf9fcOpGOSIRgQSEQIABgUCPxuRvAAK
-CRDsDq9xNneAJV/IAJ4phQH4WQ317AHgTlQMU+fqHJVNMwCfcXX7srpJDaUj3GkU
-ETUmfROkgFqIRgQSEQIABgUCPxwpdQAKCRB014DXvzux3bjTAJ9cDtHwxak4XAXy
-SKhGvMOEcKIGWwCg0TkJU1hJ7lOD88MI3+GZmP94NfSIRgQQEQIABgUCPxXJzwAK
-CRAqJXt3xjco0mMDAJ4/2AWeFl8bMr112JR9YutxOATUAACgiTSoWjRDj1MT82Zk
-ljcQbsBYvYGIRgQTEQIABgUCPxAiUwAKCRAC1u0h4yxPSzEVAJ0TiCEpUwGnQNXY
-vcxtdx+9DYKM0QCgnkP2SvxPfAB5RZHbXkWB3iN4FxKIRgQSEQIABgUCPxx7wQAK
-CRAL21Oxos+KOADzAKDMIFe5u8tfUq5pyaxAK7NyrWx0ngCeOlp6LDGZSOPyV1oH
-qLQDAJrs+8WIRgQSEQIABgUCPxzaFgAKCRDID3RZrcKezYVqAJsHTfZZV7NhFcrr
-jglBZAixUHnNLACfcZMmTNrQoPpfPgoAiM/g3V+E3v6IRgQTEQIABgUCPxW5gAAK
-CRBL7yYkIt9Ah3cRAKCMCv5Jx7psrcqAkn0Zx6yojSeAOQCeM1Ub3yM+XcRuo8i8
-HS2SUygNR+yIRgQTEQIABgUCPxW5iAAKCRCVZB9rJT5Y45LMAKDcLu+jtrA9WqnI
-1UPw8I+suNflGACgvZ21OB2nPFvzsBDJQSY921C2k9+IRgQTEQIABgUCPx2AngAK
-CRA7v893vYsFDTTDAJ40XIFc472Yv+8gHICgcJTG8ATHbACcDloWcwv8vSnABT6R
-JV0U6bPBmu6IRgQTEQIABgUCPx2UZgAKCRAryEAWIGh4lYF5AJsHGbKmJXb1Qvx7
-1c6n2jNWmK81gACfYbmpioevt3Y3KSjlf12OEOxSFy2IRgQSEQIABgUCPx46sgAK
-CRDMAZrE/xbW6PbNAKCebFEzvR8xnYAJT2ckk1I3C3qOsQCeNZbsexfRL4b+dDFC
-cRBCTqSDpz6IRgQSEQIABgUCPx6ZMwAKCRA0UO1RP8wqkGZJAJ9+DCk9lV2Svnd+
-l+7u5aefZL4cBQCfdCD+yUvcJj9isbg4RCgKkqDh5jiIRgQTEQIABgUCPx7TtAAK
-CRAo7rNaPo3MwJ4hAJ9dXJK1bIDR5/0GEOCLHnAV3G/bTQCfcwoCvpk2gKUbBADC
-7JfNvsn19tOIRgQSEQIABgUCPx7ZUQAKCRCSvJR2Y5QmXiREAJ9kpiEYox6slmxY
-NI2Mse4nBv7I5wCcC+sOnQ0lMumt6KJjpav5GzKpbIaIRgQQEQIABgUCPx8BvgAK
-CRAo3bD9Gcm2ukpkAKDAiwTTAJsdKVc1VhOBERBSqQ/uCwCgqiVGLPYY3+VrNuH8
-xaNCY5OsuKWIRgQSEQIABgUCPx7v1QAKCRAakE+JnAT0Vn+CAKCOpLwh3WFEdR05
-bhTihE3sr4oLEQCeIalp5fJMik+TJdAUilxf/cJUF6iIRgQSEQIABgUCPyAnywAK
-CRAD4Yxrg+URDwflAJ4m3noUwZQmNE5y9rr/3zXmtWUHigCbBYD/QUEGD+rbosE8
-yu3bxELdHJ+IRgQSEQIABgUCPyESpgAKCRCkU1GZ6fLHRySNAJ4yOHY0XnCL3MO/
-ccT45BkUls6ctACfZ1G/ojmCshoejKeEm+V2fjCy4leIRgQTEQIABgUCPyFzPgAK
-CRCUmyXsB0RyUrZOAJwIHTQ9q9fMrKLrYwNcvbhPZXO3LwCfTg+ynV/d6VVli4Gy
-x44xSEo854uIRgQSEQIABgUCPyLsxAAKCRD6jjeQkFE49AgzAKDBiS576xIrLq8F
-rXoel/BKxEbxWQCffVbXx86q6BfQrg9je6j2KcKKkN+IRgQSEQIABgUCPybB5QAK
-CRD0PnJmPMiMCfguAJ9zNZ2SHdPQt9mRs7fmJ7eFzXL+yACfSRTv3/LMwz0j/EIE
-LcjTMlwf8l6IRgQSEQIABgUCPyOdjAAKCRAYoMyNVwaktIGXAJ9sx9LPQiA9J6z2
-FkB9qhbl17If2QCcCCtWo1tICBg1P/ExTA2BwnFAauuIRgQSEQIABgUCPyPEAQAK
-CRCUT8anamoLvKHtAJ0TyFAX6asPnzbpFBjLtY6bzFqeBgCeMUofVcspoa/0/YBa
-A8hSD9Qd/I6IRgQTEQIABgUCPxvrDwAKCRDYDvNai7Unr5ilAJ46rCD0b3Ywssdg
-c/bBBUS9kgUzkACguVCo26BCv86vOgOBe2wQr9qEPZKIRgQQEQIABgUCPyfZIgAK
-CRBvI4vCT9paDCFcAJ96KZRIVSLr+IrMrYoHd/H4r/R9uQCgioG+kSWctJYlqMxo
-4fatptDbM4CIRgQSEQIABgUCPyfefgAKCRCfzyzNPz5kJqT2AJ9qA0P5h9X1TZ2t
-ckVTEt1NRX9ydQCeOsbIvSvlfxdI72Bbpb6Uj8k1uwaIRgQTEQIABgUCPygYAgAK
-CRAEMjbrEHMZdzbaAJ9TNJBBoYV7cPOsEtIm4546RqsOgwCePRaDLbRQ+zojgFYE
-0l7c5G2kacOIjQQTEQIATQUCPyjtT0YaaHR0cDovL3d3dy50cmFzaC5uZXQvfnRo
-b21hc2IvY3J5cHRvL2tleXNpZ25pbmcva2V5c2lnbmluZy52ZXIxLjAudHh0AAoJ
-EKR5zcRatGBq87MAn0fdtv+HO8PkzE0jwcJTFq2mBMVAAKC/cq4wlxqxRnnHq0QB
-vHPbR1ZKv4kBYwQTAQIATQUCPyjtWUYaaHR0cDovL3d3dy50cmFzaC5uZXQvfnRo
-b21hc2IvY3J5cHRvL2tleXNpZ25pbmcva2V5c2lnbmluZy52ZXIxLjAudHh0AAoJ
-EPl8+eM6S39dX/sH/3xKPJriQO+GAhgL206tg3CC0HD7szn4zstqcokgLuIDhnBU
-dnEHq8RH5Cm9y31wfSJBhs3dhJD6cLEBKxZmO05T2eklYeGyhRzL2MH7PAj5oIHx
-Xds7ue9k1OJbBlEugj0SQaO3twWv8DM68ynpSV89r7vYQXDIB+rDJBSUy38f2Sf6
-QEf31nThMgOo3zxg0HTnFqTZxF/Zxl+qXb29g/LIVo9Ro95AI62DDLbeBbo3ofX6
-pb9+iLLBO7gEp+jzLYWITpbS3yG3N+3kxJUSxHFkTVVnKUWdkkF2ba5VcdWOU8h0
-qCjds6Bd6AL9r1d9+OTAGNJo1/hKJmHB5i71HAmIjQQTEQIATQUCPyjtZEYaaHR0
-cDovL3d3dy50cmFzaC5uZXQvfnRob21hc2IvY3J5cHRvL2tleXNpZ25pbmcva2V5
-c2lnbmluZy52ZXIxLjAudHh0AAoJEHkFdo91hPXYWbwAn0wIO2rpKpKPbfLlYPLR
-qogcYL7MAJ43Jo7qeNvX7+R1Y2egJKUMtJv/GIhGBBMRAgAGBQI/KO1zAAoJEPnQ
-FPA4yYWN1J0An2MMMdigRu72LLgPs9y+N/OcBo53AKDR4YObuiiSusq05/0/IpRP
-SpyFUohGBBMRAgAGBQI/KO1+AAoJEF0Pf0ng5J80GzgAoOw2yq4lnPopbXJT7NbT
-SzYUdQhpAKD5nJtD1PBQfMEWX7+E9Q2eeq5LMIicBBMBAgAGBQI/KO2JAAoJEBuw
-i78qkjIl634EAI1vXWW3JV4mRLWURiatAXE6ELl1t6zkcacP+VfsSpABqKw+/6Ga
-rnpnS4/9Eg4RC9F1uHcx3HrZiWoJMdrmJX89QHuCF7t4d7DJk9HOSlL3LkGCe9m+
-Z1rflATrtr1MykMly8P2w8GeEsegeP/qpXA5M0IT5R5Ydq8/bcDayvBXiEYEExEC
-AAYFAj8tVsEACgkQLJg+WtKKVdaquQCg1IXH52P/zc3SAg2BS9fwUrFfT6sAoLLv
-pZMGtQr4Ls1ENx1vLn2/5tYSiEYEEhECAAYFAj8ueAkACgkQEgljnRFKqFzSIACg
-4Czty3NmmCDd7ZytqaDYpnluyZQAoNXXygq5k5mFRSrYBNbKLQ2pTmcpiEYEExEC
-AAYFAj8tjjgACgkQTvSphPLKucgE6gCgh9l3Htk/cN9inNeozu2BxwCVnTcAn34l
-GxnITs3t11dr5fgeWntxWojQiEYEExECAAYFAj8zVvQACgkQyg4WnCj6OIrOcwCf
-WFi3qRdARzOjOzHc7e3wkE2Y1HIAn0sI6DnpFArA2q0B4+QATJtwNWNYiEYEEhEC
-AAYFAj8fL+EACgkQ2tp5zXiKP0wi6gCfZqoOI9vrerzDqwaHpusmhWZNHf4AoLxr
-H4N+VDTFpyf2fcF6kOjTdOI8iEYEExECAAYFAj85JnEACgkQRcAhR2mr3VTtWgCf
-RkvdJ+JLLABz0Rf8jUElesJAKg4An0T9vtCGack3TYp20xrkVjB1Y5E5iI4EExEC
-AE4FAj8fB3FHGmh0dHA6Ly93d3cubWF0aGVtYXRpay51bmktYmllbGVmZWxkLmRl
-L35tbXV0ei9zaWduLXBvbGljeS0yMDAzLTA3Lmh0bWwACgkQ3oWD+L2/6Dit8ACf
-eJyQ4Ug7UTwpgMM0bh6ivqV8O00AnR56LyPYir8xNMEDvhxW6CIXNZTtiEYEEBEC
-AAYFAj81i3wACgkQadKmHeJj/NTf2gCeNIpt7nvOdpIk9TJvYTJSn6iLUaEAnR8o
-uhq4erZO00NEtc4llNzaPfLSiEYEExECAAYFAj9ka/MACgkQZmZxetuDVnmoNwCg
-0J/dSioWrpCswFEn0FjT/nDiSWsAni0xT8LTtc3rlMblmleweYHChwEQiEYEExEC
-AAYFAj9kbAkACgkQDZZLZlcObeqx0wCfYoj+KssyUhVS56GB2WXKuc4sorAAn3Ol
-tD2OAjvwcuLi87npRTTXQbtjiEYEExECAAYFAj9kbUAACgkQTgKsrh3Ws4Bt6ACf
-cBrI0RT+qtOaq8ZASC0I3OAlM3gAnjR5oUgzTC+9U9M9jdpZvT0BeSSxiEYEExEC
-AAYFAkB3KgAACgkQpD5tJxKCh+jl0ACeNPz/WFH/10uxp2l6/90dV+2ElwsAnR0k
-7I7LxUR+O9SuzpPueEOYqH8ViEYEEhECAAYFAj/cWFEACgkQxRSvjkukAcNBMACf
-Xfg1gsZGuwz9Dh61eZ43DrNYiQ0AoNtpKAN53n6fa7qEzw0o2cC8Y2soiEYEEBEC
-AAYFAj/pG48ACgkQZKfAp/LPAaiEogCdGd1scuANXPxbF4w6df1zGChirXkAnA1w
-uWcW0c0cO2HW3ABlahR6wPPBiEYEEBECAAYFAj/MNCYACgkQoL6dujuIbn3dhwCe
-JqloDYulF0Gs33SEON55laT7fVUAn2QVkMisnawg0MbX6THp1pLAdBTriEYEExEC
-AAYFAkB3tZAACgkQhnv5qfvT645O3gCeNCTIuIs9+6w3jqB7GQaLXXpUueMAoJSP
-KUrk9dlxe74XK0fedbmaKSB4iEYEExECAAYFAkB4vOkACgkQzN/kmwoKyScqLwCf
-c11cQ2SYeDBEFhxb3Qc5wFL/AXUAoI03ZmLsly+9p67WmuY114lh7jpmiJwEEwEC
-AAYFAkB4wnAACgkQq/8HtEbzIS2zVAQAqi9LRR7bEeL/KZTYonpAs076eUkjxksX
-2Ls/ecQ/3ERA9fze4Em0XHGOLAVzKw4MIv1oWRiyfzXb+6J2lGw8e9zQM33Y/Y9Y
-Dq+YC0umSiPHtL+225dQdS4HXmfex6sDigG5sZ/cou8HYBwR5oIHD6QM0QUbfj+Q
-plk19ZhEHxGIRgQTEQIABgUCQHnwrwAKCRB8O3lwiMfB932kAJ0f16e5tFae3JN3
-61C13Tx0ck3waACghmo7zp4EAuxr3FJW3cDeMeHR+1OJAhwEEwECAAYFAkCX0dQA
-CgkQtWeUZ0c/fvoaHg/6A1i9isPv/kxiOEI9unftpwweApV3k61hxwrd6auy8Gt6
-2oa4/KgU2S6uZkUamO2hQpfNyXX9iTF0XhnHysKBDnyv3dmfNKAfHB/RCLqYWjWL
-zABHvN65BLav4Dfa8yizbiwbx+pnKQomr13i1hcL3h35ATw49TagyJPQzCUNtfZu
-C7Rj7QeMmmVM8VTqMRRAET5lqdUVuB1YHnc1kuER9JWYmatn0AnX2Szkj39gi08h
-K6cq9mIsjCi15jhuY5onYeQmVsnfOBCZmJ2XyFzex8Kjlf6rZDrt67gRZAc9noov
-eL4Ifw/Z2OXaWZqrNa+yvWR+y+0AXlxGzlZTKrSr7MFbsQ8vG06G3K68n2pX7iku
-AVvF1RDkFZuFRrde6ggl99DlbngM2cgRJne4AzTKJrgzfOOUD6SLDFdaFTwDHP1q
-kGPV9d2jN3ZOUG5ZusNbM+74e+3Oo7XLW1j011auC6SDrv6ndZQ9Z9vZdYw4tI47
-LWBxYmZ9CpC2GqCpstZiovYjB4RxrYiQNLVV9KkSLyoreHrBb5JLvgounK3W/3JV
-qDdqg3ZZobP0JQh5UhavlxzwCK6idp+iBcUHC3CtEeytz2bExh49wLfmLWpEFAZz
-l50A5fvvgj5AjeQiwGoTrD6I9l2KRu3fvmgXjZJAahZz3NyyDb/g9TS8fvY5c22I
-RgQTEQIABgUCQJy1rwAKCRBDGjztotfSkrrFAKCtMRim/eEp1ZZQdLqghyfBv4KO
-sgCggyFU/TEAQM4eiK7lZTZcDxkHt1eIRgQTEQIABgUCQN7OIgAKCRCzdT5NUUs+
-fElcAJ9H1NGrQc/RCdJO3XXpwazOqDlWsgCfVJAy3/dzjdTEXIuzunwcMOatemqI
-RgQTEQIABgUCQOaoFQAKCRBxXtagfnuKyUNQAJ43EoKiOLUgJQmOhPX/Mfnx4C25
-cgCeKsuX7YXeCNS0xzT+00bbISBmEgyIRgQTEQIABgUCQQQIbQAKCRDbTMxLKjDX
-KVk2AJ9DFIsf3VdcXXuD715uRFqDWOH/vQCfa7q9DAG/s0zdXQ+rPNQE63pqmb+I
-RgQQEQIABgUCQU1UxwAKCRBLIOcA56zBhyyCAKDEcrORvNKFS6a8+jDCGXbWmd8m
-VgCdF6IW+ohQTfxmbsWNqp8066ix2Z+IRgQQEQIABgUCQnIiswAKCRDT+ZXVd2r+
-Em3+AJ9iOcXpqIA9u99C7v30zr/WxgsEkwCfTLANSobqy/GLvVyItLjiGrEFp4KI
-RgQQEQIABgUCQ7l+AAAKCRByHrGwzuRJeEZRAKDphuCQVBHnJ0jNRt5gE6ry7Bjz
-+wCg3X1hA3hzleqMay8Kazhx5H1+712IRgQQEQIABgUCRBqs7AAKCRBBUuHxxnGG
-/61lAKDr6KW9NaW7hf9+uQ0+sz58icccrwCgkvm+iYD3ROLubSn7ZmtTa2Xh1caI
-RgQQEQIABgUCRBqtCQAKCRCqDNHu0ItH/tFCAJwL56EGCMAq/ojS4PlLwyWFlCnz
-rACgjKI++vABdNS01zi30QJMSf6OS1uIRgQSEQIABgUCQfwrkwAKCRCY8qTu/+W0
-tm4fAJ9+N/ujThD65SquB2oBmyXsQTcBcwCdHvcqGVYM7/u0cZwY3K+jIAA0F6mI
-RgQSEQIABgUCQnIN3wAKCRDz6FQA1wqv+UqaAKCjoNCBKl+bwWkdTGHuyXmlOZEI
-jQCfVTKpX8xgxXHqv6k6/ulMOUD31YqIRgQTEQIABgUCPxvrDwAKCRDYDvNai7Un
-r5ilAJ46rCD0b3Ywssdgc/bBBUS9kgUzkACguVCo26D///////////////////+I
-RgQTEQIABgUCPxvrDwAKCRDYDvNai7Unr5ilAJ46rCD0b3Ywssdgc/bBBUS9kgUz
-kACg//////////////////////////+IRgQTEQIABgUCQHezHgAKCRBsv4suVls4
-+UPzAJ43hajJMePyTwGZmhE077EeXOtXSwCbB27L/y+tt1DooFNT64/skgJXC/6I
-RgQTEQIABgUCQdHolwAKCRDg0NExEXGwT+X+AJ4/oqNYw44Nxn/N1U10XRpumuJi
-KQCfRJrb6+M7rLOidrXahHwMPkeBURaIRgQTEQIABgUCQjgRawAKCRCvc7YIqUBQ
-r8bpAJ9UKImdTczoRmWQZJPu7niWnc/HDgCgihWFL/uI9cKn0vGVUcFHbeTNEx2I
-RgQTEQIABgUCQj2ItQAKCRD4LlzASysrntXeAJ9JwtUtRj2W8n0JH/wtY0Rpb0/u
-QgCfTcAzoL0d/zdonZ/FhkO37xLul4KIRgQTEQIABgUCQnI52gAKCRClBubU3U1Q
-iJpUAJ4nQBuETnRFytABRiSMDvuK5hYrHQCfQXL1NfJx6AnyhfUbw0lxxmHgrpyI
-RgQTEQIABgUCQnLGtwAKCRDdynmcYUNN1kMSAJ4oQy4OMkrgajvGeJDjQvLdJj53
-sACgiYCiSwosFpVz9oSCuQeZ7qsfSDaIRgQTEQIABgUCQnL5HgAKCRB3/iD+qmq1
-y7vJAKCjoEjo7K1aCa4RmWCxf1/0/Us+8ACffk8KjrIdrDJzVdM5NHXYcD4SOO+I
-RgQTEQIABgUCQnMYogAKCRCf8lg+aBtkaRDtAJ0Wbit7y4DewNZiBCGAsGo66oif
-qQCfSXKgIleO9Fddnreh8vC+Giw8B+yIRgQTEQIABgUCQnWmLAAKCRC7xv+5oCEv
-5Ge2AJoD5QCB1+IlZXc3W4rkAo9YjxWtZwCgoI5I5XPDMuGsJuHSnEnOJnVHSzuI
-RgQTEQIABgUCQnXM1QAKCRC+PO1Hxs6gya7dAKC7l9PQFrr9MyxLqIwSZzKAJk5Y
-YACePNGy/wNgKhMtAzKuHL7jZhLZviqIRgQTEQIABgUCQnZInAAKCRBGxZjby+xf
-gEg1AKCM3tdxh2s8lbraHdWScpUBu+6KIQCfaY/hU72wV17KVG9KXwETr4iH3E+I
-RgQTEQIABgUCQnZLrAAKCRD+qzY2RbLXWyVqAJ96fiAU/WzVe5IDnokDrQBNYLlO
-6gCeN4wtjZA0LYNfdJv+bfqvdltTEe+IRgQTEQIABgUCQncqMgAKCRAN5ydtXgV3
-8l/EAJ9GWZl7Gvl4kYK9i7asA6mIz9QlNQCgyVPu0fzbUigRBskerqJxYz0qOLyI
-RgQTEQIABgUCQndHTwAKCRAO3cXyakXIFuBMAKCMtXYLJmQDdCSzq7qFfYTg9NZv
-FgCbBQfXf2EpHAEQwopSz7tHCuHnBXWIRgQTEQIABgUCQnfNGgAKCRBKw5P7otBp
-NrpLAKCJckctqEq/jDqEfcdHajtLJCznkwCg2sKvB/LlZtkOuoIneZfWx1/nnsqI
-RgQTEQIABgUCQnjY0AAKCRBwmj9gO34W4VmZAJ9SymG9oRHzwTowbe4MAJWTKbj/
-ZgCgrzoZwzz5v/PY6bJr/oe1dTxjB72IRgQTEQIABgUCQnnJVwAKCRC81a2QeT9r
-AqyeAJ49eMAaPQQw8ht3oKZGQlza4L+w2wCfcMvbc7JzONfXHCNywWgXx46YUp6I
-RgQTEQIABgUCQnpNxAAKCRAf15DD8aLe1bmWAKCsZCQraaj3Ia2nzHgSasIlWP/j
-zwCgorjV199hJOvdXBHhwRGyeCXBV5GIRgQTEQIABgUCQnpe/wAKCRB6b+tv/1LB
-UK7sAJsHbW4PC8zevjnWXn40ihmDKVC/EQCg6X2LQ+1XGtzaRhhDUfy0GVAupd+I
-RgQTEQIABgUCQnrUIgAKCRAGUeUmdLfHKrXfAKCeheZcLx9lUd5BUwa4bPYUAxKq
-9QCbBJvviKSYdJxXZNlmld5S8YC428GIRgQTEQIABgUCQn7OEgAKCRA8Y8o/oLPo
-ixoUAKDJeK/rhuKpG26/lRihhVo+64jR2wCglAqCyhcczML4A822cTShr16b3piI
-RgQTEQIABgUCQn8UKgAKCRC4lA5tqXtpoA4rAKCwrHn5dsY/nuRdxDsQPtslJEDE
-bgCbB7qvCrfdAXXYTpHH0Cd/Yi9ysp+IRgQTEQIABgUCQoJaUQAKCRAT3U4YLkTT
-yvhDAJ9fb8ubNZE7PaVVzoO7o9YzRSlOawCgr57n+WuJ4mNJgKt5ZgC+95uzEJSI
-RgQTEQIABgUCQo8wzgAKCRD23TMCEPpM0cqBAJsHXmTB4bzFtQL9YD9+xNRCR1ay
-EgCeO+/L9mNHBDbQOAwZAR/mi0G8L66ISQQTEQIACQUCQnLueAIHAAAKCRC4lA5t
-qXtpoO5/AJ463NgE78T3zHUXvOx6d5Ru+cyXkACeO3VkUyPyQbJIyM9sWEAgg8df
-YySJASEEEAECAAwFAkK3NbwFAwASdQAACgkQlxC4m8pXrXxOyAf4jmnjn7d62EwR
-rSdmF1j/mhMppsV4ESOdIv44tJm0Kw4WOkYZ/M+uE0Ti5U3sQrCoFe7aMSuZnJQp
-XwEd4RlIPjGx26FyI2Pcn8rZsSB7wjarUjvS32pDMtrL3W8V68wvWeiBOnt77OUQ
-3MLV1W6rVTKNCsGhrJwTt/EyjmeqqPxILvGTbDLtlwRrK1NtQZZHR1AVnJ75H1Ia
-uyQUFzpI9TiY6lCALDhIPb6K4UlhI3Bqw8l4Ig76tgNa1JZoUTpyaDKM0qMKkPPf
-Ne0/k8SsxlpDck2tyGJAFQIAzC6ekcUHK2QSlu73wIB8m35dvtahGYPmW39EdYAR
-4rmFdCu6iQEiBBABAgAMBQJBzHa6BQMAEnUAAAoJEJcQuJvKV618YR0H/3alOq4a
-MkPVB4ZN8iKNAx0Gg+cA4ykx3su4fuVfI1vuweZIPRLcGdGKubSjfiPOOpeljuwu
-2/IQv70GHfucaRzHSRuDO2T+dShN+N6/IuckyeH8eAOuF2H2F0/otqRCgwOfM0mb
-Rz5iR7/A6l59zBeL9TeZ8Bd+ZlaihRNrgsjdP1N/PJbkzithXxBPCpE87JHsNVdF
-6yTRQgCG5T6J0v/wAJ4JkS4QGMJBBP2gK3n8sPS+Wo5sH6I8AflJQu6ML2By8pBV
-03S961UU7xXv2ySI5/RhuOceLcxoLoS6xy4yrPtxVs4knQ/b18aSTa4UiiU4saon
-m+nCasQDlFnY25qJASIEEAECAAwFAkHdmv4FAwASdQAACgkQlxC4m8pXrXxo+wgA
-sU34Mms+OFXufehaXjXfphBvlI7n9n4gqX5/ihH9WcP2IKObNXAd3H1HcOelTeuW
-uYDHdJ3yUF+cUN9+wDEzZsI5pYNqFmb3b2BcZMd1a7JItqC8Su3M73AXp5vCNjA0
-CCR5RwukWyIYeZ0GcIqs34NYCOBkT2+OLO0M5FegSUQ0B2UcPnPOSj983+I6ZYDy
-9MCbJRXBhsGCFMPno3kfA5Ttaa2O/3iZwU7zanBjebeGcIbSCWDtKAXLx+cJfyyJ
-JjAQ6irwOwr1Uyrum3JGJ9vA6flmHHf8YRmeT9A3j7UkDMjWC04+SeYCYlk3jJGP
-tXJBUjKiijFc4PGiS/jikokBIgQQAQIADAUCQe6/8wUDABJ1AAAKCRCXELibylet
-fLDDB/99+7DGQsYCwNMAgmmgsajK7Z+vz0s9cyZiLM3pQGdETqsGI6P4wC/eBGvv
-r9QDzdPsEd+nffGD9gnqoTDN1NvykMip+pT1f4p1W69tRt2N/ibrAhaWgZLxVKh8
-XcKfHSjhWbuYg7S1qs2pUIHYsrDnCY9iwksFLHVv2DgiPvg7uoGx0acFsEwud5bg
-BweMrN4BAOqOpTCXAL0zj24iutCILWywKs5o85NoMTEPiyqoM+n0a4bphpdfGBKO
-7je8kJgy2XYrVyVzzewytNNE9mlBQRHBa5FNWEy4dQKoOtlXST/9YvOxZaAt9yIW
-Si2YETUgz/xvYgOBPq2E39iywIRJiQEiBBABAgAMBQJCAI0CBQMAEnUAAAoJEJcQ
-uJvKV618MmgH/03yS301RRPye1+aYDdSgccfZ+EdoAP+uZdXJuHVmBL5cdhBIcpF
-Ryg4ACXiyLx7Q4ztsBEOB780CXswEhT0uTEyKSH2DaTQIyn8Ns/dd6ypcAU1+5Lk
-gxUSMclzX+cSUQwuITuhZ14gQ8Dr7TLLcx7OpyLsKd4wBN8wW2KA7Fgp0FY5h9Ho
-wvf+DUZRtLckMvXYkMNjO5U+Znb1My5/7y/KH+OTIJOf03J4O5m6+XyR42jUizp8
-UdRceXsSvZM3mskyGyv8xfMV4VsAQ6/CPPeoZWu7UY1OFIywTpfMX7s/hEE2XeJW
-s/dOVJYrZ7HZDe8SKfqJuDs84wNsdVKzSBaJASIEEAECAAwFAkISWS8FAwASdQAA
-CgkQlxC4m8pXrXzNGAgAhr8EN9rSNeldhN6+qCyzP2L/f9jd7GLMcuDzGNtzpkzo
-q/WgVWs/SBe2uZ+uLNXdfcDG+I64fMdaji9UDqdGIybH/l0Ea2AfaLdR2/LYK2th
-kfNWmySvN9sgwWaq8RPEKchRg0AsK1OKXjLByDPlB+vA81ObcjjhefKii3XVDSYp
-2HoRXfSZ/Wc0/5JQKXPV5zdZBqZ6DAlWn1G+sSdXCZYR/X8s+m8VmT1qx9efWcnR
-4jNfwQsgIbUWY1Fo7/tXGJ4nKywAk4LWZmM1dUkQyI3AZHNyPSXsbJoksAoQRFVT
-ESn7PkUPsjOBMp0m3Uh0OUsUF5MgahqEtHQldXVEA4kBIgQQAQIADAUCQhapzAUD
-ABJ1AAAKCRCXELibyletfEk6B/96IIV790+6BKmKPY0k8KJ+d8kUN2zo8sA5nIUe
-0X/lEsIhVCIgjwEcPp/2Q3Rx+EV8abqHHjG2VgF4x7wJtKIabQZW/OQIS1snZe5j
-66OTJbPPtLvFImdGQuy5uHHog/3ZaNO5EmqchaTsZPPhX1xbhXJlQuP4EXJ9+s1u
-14LPaoZBHU/cgqYs+lOMeOHAjx282lX6X170x50PIubSz0B2VvO3rN1u+CNuLMTi
-Qz+tv5vePNEtCmR3Hj50UnxkUe6r46fzA2Wb0YGNHbfbUY9nbQ10B7WUw6OaB9fT
-j4nO+rS0ocw8txEziJXAeBOeIrSOB+/IcLsSKCjpj2J9JGoEiQEiBBABAgAMBQJC
-KYicBQMAEnUAAAoJEJcQuJvKV618ioAH/i0A1iVSAMZSakBcBR+bP8iT3uLMoEkY
-zWSlb+R7q33LQwWXgjix9Y/GyqFwCsYHDkFXBm/fYsErhRVDN6PLMWs7VAli8E9B
-uOa68VDI+x4rVBUYvZ/KGP/7OavdKY3D/ZERSaP9m3wdEs9cdeSPAqnBhMtC8UkS
-huUWUYwbRN5Ib96Gzwl3R0Z3WUKloGK5vbMchleXUXUUclAeFe5lJCwX2n24KCQJ
-UWE2n9ervQHL9UOJoRedTUtOWPvJTTp+moy70NJJGgXstzcFHhuDxH4Y/gqj5hzp
-UXJANq4rmkohkiNdBgV+l8RBFqNJ6yitRnwrYrIj0h4his/RY6cGwleJASIEEAEC
-AAwFAkI9SRUFAwASdQAACgkQlxC4m8pXrXy7vwgAylGsb+kwxfkl/fxTDL9Hlcwl
-Ek1NnXNmfbHryHh6iSg7PUvmrCFQ2ee+IUZcf1JR8BALI9gb093fFhWB7AxD+JTi
-Lh/9AMuYbHe5fhDj7v1V+Nnu7WTP6z4Zqzt0UHDqdpmpy+uq1Q8Cg9k+21UxQ9s7
-mW7QBl8d5SOtb2XGiwl/HSUTv2tR572DYyGc9i+K9C/hIRtpnpJSaZjV5ZT6I3Z5
-XA72cfCCVU/FeeX7p/v6FqSEbr9/YUxbLt4eYZl6GRNDean1G9NIcZf0Ihi1fvuf
-E8/zKNKUaf+u00TmEMi39troiRrEoziasITG9e7L3m9NgQJsxR0awR+N1DYcRIkB
-IgQQAQIADAUCQk/AGQUDABJ1AAAKCRCXELibyletfMJBB/942fArMQnRknXJZw46
-Zhz/JTErKo1O1zCC1fzKgR8y+n7X8iEQsgWCoeFljpoxczzYixL98TSHXCtrXNAE
-QIkIo78aufJpEgjEzX1Tgirn3RLteIg3kdzUwX5M9ZganWS+1VgzmycQs9UYN+tY
-iTz3mN5bpJlK9Au8KjsNGRTMzR1pLUjc5eZwGWRN1HAJECqtsD0w0HYlHvGY6yfk
-T9MVpH71BnK9pOorpJ+hTGD0Gw2O1k+pK8UBE1y9MvGK3K+WoTFihUbuT+aqf0KU
-5QwPKrwvQe4yUrk4cpYjWIPBjhDkIll5yr19a199C3gsFoXcH8mbmh5AbKkj210d
-PgXTiQEiBBABAgAMBQJCYiZaBQMAEnUAAAoJEJcQuJvKV618WboIAKLLpzY5c9yV
-g/oOdwlb9tuQtdUt04R0t1wYeMYxed6Brx4/26fpXHtxUh1JfsJtzBpVMHBxnas0
-qWfZHywPyeDsXpWeSOYjGfAyGaN392e0ZtkPxWIx1KPaqnO3IVkg/D145De1A/m8
-Pd6OO/97ngFHg7C32EuS3YEfWaEcCo23qy/AvoRVbVmqXUJVC4aRDqg9rIl7juMF
-C7oysjjMv7Qi+yLS7BNSRmO5x637Z4AZeJ0p48npd4HKbJKMXqmUBSLFhzUCMA0o
-BeWxYld+sIHNW58tgkJuFfXQhXyY6dh4foh7roPqhIvI5lyxq0ZJoW76UrC0A5jI
-t/qGskU5ym6JASIEEAECAAwFAkJizvsFAwASdQAACgkQlxC4m8pXrXxG0AgAk6hi
-/JhLlElgbL3lL5KNOyAFssCcVwwrNufMHstpPJTFft1I4EGJpUdZLr8wUIvgxI8I
-bZDEWn/J+B7uqFw+4iAdi82rTVZDqv62usotnXs0y5GPsPbWyICyDrmwSYeBnL7y
-pDmXYu/Bf+H0Nx2ZCsw0zSIpHhPRc9Lv7q/ZJsGsxtF9FDHRheRf1wuZHhp5Vvo7
-KjSbl/KdezEOldULsZrQmTf1rTanrZnaYu+MSiL6A14+e9HG1OgykjvS/oQoefpy
-gdkbvkBKirxMr8hPE2kUPc57FpQUcon5m3TcMh72NE5g9INPXlDv2j0yIKVaco89
-suxIAF86AV0D+xMYxYkBIgQQAQIADAUCQnU/cwUDABJ1AAAKCRCXELibyletfK+H
-B/41TRknBVogdw63K9HNZkemH94eRXb1Y8bvw7F42oH0PTpcJOECphlBTzV22RnB
-zH7zUt7oGM8FmuTCKbTds31B8Io1wSnp+7hm+2oLs5l7YhhrkjpBaVOisPu3zvwf
-PS8Oo2qNBHp2TRfdWeP/dKlN6Pg64tzl49PJemJnhCi/Nse+zHr7Hm10jZAvQ7Sr
-+JgJ/p/mhX1+L4xYqq2gqHzu0g5V/gOpFFyy8zsir5TyZViqSrsFtx+9usPAc2Kh
-KqUXp2n58jXCW6wDKLy9L9plxshG2sp4RJ2cpi/+vz+LyZnoAAEuU/H5OxXC3izI
-hn0fIyv6cVbmkoQkCqNl0VWliQEiBBABAgAMBQJChxEXBQMAEnUAAAoJEJcQuJvK
-V618x+sH/3cplqFvGUxbm1oFFZNmp1aXy5im5m5cytJL9IYaiJtKuBPyAzUMzFLg
-jcF6LDDhCZ/bPitecpjIQm2iNBj4ELqNot/UJdgRbfikN70dvuDWXeegTdhEPAXR
-pSYoR5YDfeJeJT4ldxB2tO69tT+KrQZUaAZUceJjwsoZjXJa9aBWp1ecK3RRKVrl
-CKqtApqZqgYk/RW09vogrvIQEQqjzclkIp0SQ/LxwTILgoy/bIMJZH2jXGgmQyXm
-a/VT8GaNp9ioQ19nkORlHJqTrV5R+AeTmptGfJjGYZPhMO0wPU8I3aOtL5js7+PX
-sqKc3+bqVXVzVObIG+x3aamHo+DkW9iJASIEEAECAAwFAkKJtlIFAwASdQAACgkQ
-lxC4m8pXrXzNBgf/fJAoz8n7mRXeiBlSF0XFqpqrIKe0Hsl2nrSlRbUeEKMPLXOU
-oFCuE73L5SBvT0u6xrxFpEVegPfeJ3AKlcTZYulA5LJSMsKTwcDSwDV6FjE5wEmg
-1WwJ1E6Hw9p9MdUB0TIdrQx46yirymB+J2gLGnEMnjaw+3oVRCK/N61t6+3owX/3
-c6pN5FZfM5NgE+oN6EKTXE/teHm9B0OUSmq/xb+Rwt+xvMGLOuoh9bhA+nP5GvQp
-xKPBeYbz+17dSV7IMBbWuIHCrKsgUP8ERScHcCYY0xjFLn2sfWExIiIHog5OGiob
-9Wq0dwgQ23/2uX/zTgb3eqjWFmbqDKez9M+cYokBIgQQAQIADAUCQpuB+gUDABJ1
-AAAKCRCXELibyletfLzGB/9U2WMBn/SJpQA32jrNYOVsczX8dvgzJUA3dBJpOjBB
-nP80ikAyEkzVcHa1xfoq2hptEdzwmaSYfYRFHb4oT6V3SvjwNYtyDBkaTqxdKW+P
-Vy04fj0aGJL/cxLyMlYUybNo+cGxHfVwJWJA4VF/N/IPyx1VLeqTQnA7Brl89/ji
-9VkRXtfLMF+WfY07XuAxQEvP3pShDlHzGMhPmkUQmdHlnBRgtLIZZDMZhK6cxVln
-qudqR99MyDg7yq26ESjybrtSxCypF9xpa6iVnis3cMKi3S5Vp98oaH2Haof0qNJi
-p0bd5GKe39xyzlzyS2xp1YpqELqy0Up9cADkc5nKsTqhiQEiBBABAgAMBQJCnNMK
-BQMAEnUAAAoJEJcQuJvKV618RREH/jMt5I8jSpnlaHxe+B8eJA1Kl/kG77Op4s8x
-6BljyqiXXDHNULILfBmC22mvEpTvOyxiWh8E6olsFTo9epgjh8coYYtxyBXKRY6B
-y6F0Z16BG2vmByhkySc22GVJNEeZ8p849zonBSG50uHnttjAMlAS2duapzhhhI61
-RQ+4eF/TtPKghZGu7eGXqWR8ztVNaUNkvhu3nZneyU+OEZKn7LM0FY2oO5ZqnUGV
-O9/HtRmLUluqrmsTfeMJxMa97n/+zIFKqx7VDIwA8SV0qMbnFw929wtKTG+Av4jU
-9Mi+WjudyC/DYQM6Z2aGj6Jzq9O8yG/vzZRW5UQ7UB0o0RWKOVmJASIEEAECAAwF
-AkKv7KcFAwASdQAACgkQlxC4m8pXrXySQQf/Vf48FIUYYVflloKQj/rAMyEt71o/
-qEEt9YfkhPg+vpoe+EWKgGatxpc82mHf02u/Q66kpv2jFvrN/boVG7g2p89f8K0V
-+UYT5b5RREu8z+DaNPSwb3VCCZ6eXIjPyfRvP6GVBtbWOIZHSgHAWYuKGp0mVv42
-SVLYRx94+gp6AnnljQTjkYA/u7hDYUU/gqvUQlQL3QPgjL3iDGlkxC5Nwv/NMnAI
-8Z7wp/Ol8++77yUC+OhsDhP+9hxXP/BzVhSWzXFlLBPIYmJ82Rnc81YGo5l/4QuB
-noIjuDMCb/fydMMRpc+L/bgS0Cakqm0G0Ovi7h29kbJqlDv6s31t7fSjz4kBIgQQ
-AQIADAUCQrSPawUDABJ1AAAKCRCXELibyletfE6iCACsegwbn+aU+gmv3qYxHafd
-5coPwq20CnY7Db6iDeCytcN+IoqLX7v6fSUQgW1lsQDZaT4c638Z8I77OIGdSGA9
-ChuDk1U9pe36caHAHhDXkrzHv7w3tDrRnpEj0GJyo+OmPz018OFkzdpI9Tk775Xk
-jYlxJooKEnTbggo/B4fKclSoUU4ADBvTt0P45E7tWlr9uqvN87yW/YGy+O6aDxM8
-Eq/8vrgZr7mYyE1M3ZINvaFg5dhPWmOqxOUqSt/SORg/S/w++uOTPeu9qf+yGg+B
-jYNUJ9hIu7a35ruE5e3asQMPEMup8Iurckixorh1FKwRtcwAqjegDDxn5dPTMuQc
-iQEiBBABAgAMBQJCyQdJBQMAEnUAAAoJEJcQuJvKV618OOYH/j96LP1Mvdc2hqkE
-fnsuACOjJ+onzupaacez0jgXjmoRKqKLuBLCPmWModmzz0zR4uYWQJNBEGvZRBQL
-yIip3gTa6xs/Ak3bI4keX8q9W9uiy9pzu7D3hM1asGFOruwNtgwxst7ppj9NUkN7
-SyRgR4qHFUm0YvY3ZvfHA78u2zLK00D64rmG8VNddrymP1TASYq0TFNZhXSUyfIQ
-xFk4M4axGB9KfnYNIFUJjai1ZHw1xYVm2V3gsRcHBr8UC/MsuZNCfmzH8uZN/pWX
-icFYqNwj/Nmp5Iio111gBNbqui0FzkeMseM9K7j5iHd4SbNykTAb1TQ3goPkdQuM
-m6TPTXeJASIEEAECAAwFAkLQ+IQFAwASdQAACgkQlxC4m8pXrXzBfQgAglVzFEla
-U5BD91ZfcU8pq/pj96VnHoruSKS17Y1reHt/Fot5qG2ocYU7FQv7ybF649sWLc13
-mFqNn9n01fy5FgaDguu/XeR+IDyXQbduplBZC0bpU4RLcPxr+esjNyckQR0TlRr9
-xQv6AbJ0BPr7sFgle5ntZTi43KnHOaW3SmaZPx2VST29KoHPzJj+5PrT50WavQHv
-55kUGGJVF0/J47pSMH8HJmTld9O/luFMhg+ih1Sya7i/jNYIgFe4XxPAzNKPweyw
-VobvpX5n/ohZTjctmELz7+CBQn2DKrpCr43TXqkR9Gnr9nrUOAOIctg6dpaN6VG+
-N4+l0winEbGQo4kBIgQQAQIADAUCQtGddgUDABJ1AAAKCRCXELibyletfNnhCACa
-FcXOPg3JBbBGeUd7fIc0hHSNZO7yi2h2uvEPoIGfRZb82NyoXErWpce/N+h0a+Yv
-8xiE35k3l1ZtfuFlwcdjCa9hk+yZ8hUqxo+e8AUGa675JZNcm366PylUW3iPmQMg
-d+Bmi9DToXAXkWjq/lDUNRC0mvDdYPC5PyQcfm7350VOP6tb33VjLA6IYPwIiPvF
-mMlXujFV0Y85KPugpcYLrInNelxcJYwQu0YMsfUNEMa2MQA0TOSiB4NzsjVk3Tbn
-r7OQXhbukVRug8nkNi3jYtGo+mI1suq3aaToneM8Y1JYWw2PltEF098pLHH/ee0h
-AmyC/r6MBFmNIyzNHQH3iQEiBBABAgAMBQJC42W7BQMAEnUAAAoJEJcQuJvKV618
-ZjkIAJzDKDIwUWwKRNL8pWYMnbKDGnF1Avw9U2+5VpodhismlHJxeRBel4ZyL1EY
-u+60V0CliJB4I4wxh9UULVnjbH/fTVf/o+QJ6hfcZAY/IXIwSVzz7FJpe5V0jeXz
-EXPwvILAGQnZwH3LEJ/lza2BR5e4FvSKGugmfdXUlSuUG192SCFAn8tpAd8PXrwi
-3aDhv3REsL5lxF9nfRtOPwMxIwiqAh8XgjEgJ3gbbdBFkfWf7Q4lziE/1rDUs1W8
-5OTNleII/eK9fdWAsma5qQqSdsDuR9/eey5XCMIhv/lovIYXzZjGjUFdJLMix/uO
-rlvG/cNIpy488x+yCbDSeTrM8OqJASIEEAECAAwFAkLspEwFAwASdQAACgkQlxC4
-m8pXrXwx0wf/f6lej0+Xwqppwfdxiok/2dno11mWeUCDhCX6j6Vb5lxLemBwQCBS
-u53V9s6wcOT3NzkwGbl9Rowasihcg/pC5mg1o4I/mMrU63yto3iekK+0vneubm7j
-Zw9dY7aLzFdQm1SLnX2zJiC8Fv0zAJQWuiS0Bsj6MZl8+in57BGUi0E+n9Q4+qnn
-PVS8UBO8f+d3xlsMnOSf8IECCN4QqkI6d/RuKszBA40UzQ9JoZVHV3Kxoms6yJHc
-DI24xUkVqmo5E9qRdLt+mRblsFcfQqZbfc2v1kYI6+0fvkF3cFNOlC24c2ctN80V
-eMr63neRBiFSltaTCBT4Rh5Wu/jLTBL82YkBIgQQAQIADAUCQu1LBQUDABJ1AAAK
-CRCXELibyletfPrIB/9NEKKNoNfA8dscM1MN9hlITxbB2QDgm5jj1Cv/3lskBGUw
-GoStC8szJv8etlIxHnKafGglyZXdQycOIodccKcieZigsJA7ap5PdgAQUG6FRQRb
-tt7+hWx7FYEPDJsYca5FYEu+7iWHtRNu/lNjSJLmDbMTrmwP2BOglqlt2CktWWSU
-jJMx35OkO4G7TBO85EKnepm7MTtVdPr7WxtSOnsBlWOKk5a5mDSRIrofhBumhjwj
-NgGS6pAyo5MxJspCH/tUEocVMSDeHRgngD9GbfMC+FvssbgJI2barzvkHvuXBSla
-bf8+IF5WOxLgBE7SmeBAcC3nphEUm0ZE/qyTXYVqiQEiBBABAgAMBQJDBw4vBQMA
-EnUAAAoJEJcQuJvKV618IYwH/3d5XhOyfHHtqm8gceIBiy3WU/TYsYfpKBTYDkYa
-IYqOxI1DVIIIsDvoyUvLiEc+0mvnyKGCyZGFOYXxlSGGwyoDz3ABns4eEp477BqF
-xCN291aP5f8GdHOqH5jm7Wv/OTwajuYt+KCtuqQZo89070hmo6JN/+okI81Wa2uu
-ZDNnlxjLYtG6NVrTzg3thvouohzH5WHMuhWahF0sc5tRhbG0NBoF57zNEOL5P13G
-Es6skH1evhqJ2Yq4yF7qtITrkuAPvNYoTRrsl2S3QbWzgoE8cp3oVj2m5OZ5KV6n
-aTdKmuKbWmDNoh1F6cMZJ7OD+oZW1WpSWhrS/j/uNNUWiZeJASIEEAECAAwFAkMI
-YnoFAwASdQAACgkQlxC4m8pXrXyB4wf+L7SbCUfqQJB04bM5e5cgL8r0/wOqAJsB
-2XZssSrgSZrxJrZbZuNPdjemexR0vyA0ZaIKb7jykJnnMgRZxuHYAPcctw938BQ8
-LjYMfuvAmv4Sfs937j7x7IsoEff4uIl+ZC3000i2bERXgUbiZULx+PFdg8cdAB6o
-ZUbs8Jf9fg6/qP8sz/Wo/DhHW9CW6sSsccVfORVTiHTSGA71VYR2R+WFBi9EVl++
-1puu9yYz/dWc0m33Fl2R+ehiSV0xiSQnHSpSYMUdqViPsa833z7QTvvzh/9sWNHm
-28TRTdHLEXYQtKTcCeRQl3Tul+Ch5cU8WUqPN9DIRk1QNAro4yp9rYkBIgQQAQIA
-DAUCQxBNOgUDABJ1AAAKCRCXELibyletfEYKB/9GIKfaAtg6rYVhnruE0JT+c/zA
-M0ncuMiTSDOr/WxPE6ABpj1wAyrVbyTpfC75jyi7dLdUkzjaj6A5URtIurl4hlra
-oX6yVtx/VIFlBQG9Spuf9a4va/frDAF9sxorascozjvYD8F3o/5lHQ06ZsWCENI4
-CO9zSEVV/E+Jj1njto9fl4HPF4IT37xCaNoi5rby9tnaWktEBVqn22o3TULQdZet
-SYEfG6sF14MOMXfkfkMoV954tqVw7as5A3F5bDiCsNQ1eG4g2Zytw6Cl0NSQTXOs
-gZg45uam2ZohiCV+FuItaj/oETzdZI2BvJV7DYTNR5SNKlzoxhfT4AAiZc6niQEi
-BBABAgAMBQJDEPMBBQMAEnUAAAoJEJcQuJvKV6184vsH/03ofz2nVb2a2f2Wy35R
-k83tsUOeGbbxwOfV+zxOIeNhtsdRdMB9Ij61R9EUSAXQdcYDb1LWTXOS52FdMI3E
-UCax7/JY/rE25vwHn4nkqtvATLoTclw+geoRfDq9E3fqmJkdd5lsCsvbvajodQa8
-8hQQ9h3hprEy3axQNWdTg2XvszOJ1TVe/dOIzi8NIGpHSC8sl+8513Kc8u/14TSo
-Om9VceuLfmrjd8yw0qfbYCytkLPxLT96DcQpE1ARiDe7kd3g2Fe86zCviHrsA6Pk
-dgRPp++evAL7AAbTodXXWexST/b7hkHlT2P4XLKvjrThAUYE6Z+TEYsFiomSb/pL
-zWGJASIEEAECAAwFAkMSQ9cFAwASdQAACgkQlxC4m8pXrXzb2QgAq8v2+SYhN5YN
-cWApllLkWzQezrsZ8x7CJ2fqrvpVsQzJulyo5RHoz3DmiYUr7+7/IcZEQFc9BuhC
-fOI+Emu26QoQgqHH36bzgAfOgyVUjQW9PqCsBWNXtgl16dU8p8TeCD6+EPktY7CK
-cXwBTRQVrWlCuKOMwkCDILe+hcNCkJzjLq8I7n3sJulk5ti75Yz09B0zZTDX74zS
-lleh55rj6Mff1Be/zkTucWqv3oHKUwVHylXgkgiyW1J0GHU6cky2sPjh4GvovvBw
-V+4uHlJ//WARK6Fmd6avjpByvAMU8lxiRcQrTQrFSEFzBOkMhtfFiGVXg0hTLuwf
-3LEthKf++IkBIgQQAQIADAUCQxRCLQUDABJ1AAAKCRCXELibyletfIKgB/0fuFUy
-r6qnJD/XvAtnBvEf3qCDa82Gs03wqZaEPTrUqWmX9b15yd1HNyby4c3/x5U7Fzn3
-QN5LDQsU6pT02LfLaPSsGUQu5DGm/j9g2tEfOSfrvNssZuIFCx7BXXih7vrkXX9H
-SHVWyJYsJICECKOkCtEv+eOAIXpSx8FHdPq9qSQpJGkbg5V1Zm3JfqvwdwP3ztnM
-GBFDhEBy8EaG9cniFvh9IdOeifvCB924ZIo5XPgzx+nGgAbCjmta+Ab1L3m4vyIv
-CXept3AJOETuBuy88gQ3+50d8MnYvtn7wqCUfHF0DO9TZpvqREqgKJ/p8d8NXVh1
-N0lV33N/u428pR66iQIcBBMBAgAGBQJCdz8TAAoJEAgUGcMLQ3qJUgoP+QG34II5
-UiH9I+e/ZOv7MleAtJWTopGFm/wlt5l4e0D9VvaZJVFGa4QBxybX1R0aJBYn17lJ
-I57bULrYPrGb3Jir2/Wu0iI8RqaJRhJCkd+Gr8t0F4clDTUjQpf+/bKhy6Ax8Rd/
-DuDYNUdX5EUPVorjRMXJicQ9hYHMT5vQYtI83yC7fFKF6Et6nckCX79dXtFNZpsM
-2apSDsw6JPjyUMqjZ0+MBibW4VKjM0Ac6PxsjvH8JCYgo5AW7io/qdF9OvqE6JQ8
-R7cKr72cXQi8JAlCM56HcjOwAebpWwSE40S/LzP5KB3f1KZQLxlrJlN5X2kcGh5C
-CSYJbB95qa1JOP/5ZCk4Jf5s2K5yqO1yTsEgpMX6kYQjvfSbLZlpCR3ZV6we54PY
-HXJCdW/Pg0rCAVjTiKPohjpinaw3hM/rPoynUfGB7puCNBLv9LTe9NL/Nwq8Tu3d
-rR/cTUd+JwmZJdCkGb5F/vT4X4sGSaWMjzs9JTF16JVOZg+BG+xftBAQWISKegw+
-BtJNcS8oNhYh2PKLm/S7X4eaj2h/NJ3c4BZ+qG3qyedQ+VbNvi1HlA1xyHjfoShQ
-JSfL9XxCjbJyvl4BZ0/Jt/+pqRwHOmlSaIGPi0cTd2qfWvnuoMXDSOUYovZ7iFsu
-vFOauBpI7HY6uelPpae1Vkex7CxQ+HBYWMi8iQIcBBMBAgAGBQJCdz8TAAoJEFA6
-oBJjVJ+OUgoP/0qY/dla4C4S6ItcbViz7ptrjmos87/aCLFTfGqw8Z+FnfO65ntD
-/GHsJNW1YV2sdQC8rwPGBWSZ4r6S0F8GSfWim/QIDU1Ddzb3U4TSd6EMGn8QN2bI
-sFJcNhIUN4Rw+hAP3LIvJySFbLaX+PYH4a28LpkmJ2QOEpWK5Rp3yNJXCd9p33OQ
-8+5WhiabgEHDk0yZrCERYfMVyjhOYQGIHrFS7w5kLkgLP5cOQz55m+0Pm0hs2+sr
-nmQnfM/vMWr+K6p3uFQd/DrAbLdjOQb7hrC8VCbadI8XENbBMETCXPJVLuGh71CJ
-HQQX8+K/4KI9xlphJUxDqCaufn6u1gfh31HDcoN8rz5rz5huN94yNDL1Sns+aPqG
-uKPfpYJ/d9OjrXxiP9aow6lR/Khmty5Qlv+3X6WSM8w02KM66+IKHi8SmMkZ7DqY
-5TXs3MeYk1xtNdc2tu9VI0mhO0UiI+QOREuD0T2LUun2FiF71HjJo4b76TWouSFx
-g5bzNyJROdmHPLXozfJjPTED77CpexYHGnmmfTDTkAxeYNxZJqMx3IpZXyc9eFHc
-tsD3P2kLTk6xcqRiWNyA5TRWEdy27f2oBR3snRVRJiudBZ4fDGlF11nEuZsCoM3+
-SOUTqnezUzLExIfaCE3eyLHYvsjdpXiOW1xXLw3QlfHbm25awj0mqT8utB1NaWNo
-YWVsIFZvZ3QgPG12b0BkZWJpYW4ub3JnPohWBBMRAgAWBQI5PCLgBAsKBAMDFQMC
-AxYCAQIXgAAKCRCWJIPhVmLHNLTaAJ9hNOzeiwjWjFkzp871bkNEaH/ffwCeKkqB
-Xm+MgNn8x4jeJSAsmLnkV8aIRgQQEQIABgUCOcsvhQAKCRC/4SBlayFImgKGAJ0R
-sxryx9cxnBVh8/BWFyc9G++5iQCgnK7Mse4x4xwl9l+n2sIqj13yR2iIRgQQEQIA
-BgUCOczgIAAKCRDeeq9ulMCcf7VfAKCr0J1iWCUOW6Z+p8nsWnECWzqsLACbBUfH
-+uddjfI5A1xPKyuKI8N/AmuIRgQQEQIABgUCOdJS5wAKCRApXKqUbOX7VK98AJ0c
-4J0ZJH8Yqf1pF5AM3b+wzkCqIgCfUVA+624Pfy5M5MDn6HAFff8W4o6IRgQQEQIA
-BgUCOdRMnwAKCRD4Xr9GJY2HgY2gAJ9yVFmle7azEVP/pAQK2oj9EWV+VwCgi6cl
-O2WCkFjrUwh1XxfI2/U4pdmIRgQQEQIABgUCOgHOJQAKCRAfxIHP7Q18+tGoAJwO
-znBmhHke4Slp1KRE7gutjkhmqACg1OApW5K1Fu2e2qck4UHUV13pa/CIRgQQEQIA
-BgUCOi4+1QAKCRDcE+VOq5tm/brwAJ9fEoTskIB3v0+sTgY+BFhK0IkvpQCgjsNB
-skt1HRw/7UOU4/U/Eo5dy1uIRgQQEQIABgUCO0BqFgAKCRDndeMk20Gzh2KSAKC/
-qjFreYn4n1oCEU9ohUuj10zRvACfeHSqn1KNnV+bZrCUIhIFdsVpfmmIRgQQEQIA
-BgUCO0BQugAKCRB5Fi829/aq2Tf1AKCXVuHAHaDkDcqZdIPXlATLxZ3LDQCfSC+f
-XSfUIw126OiSV7N92rBpeviIRgQQEQIABgUCO0CtYgAKCRApvl0iaP1Un1qZAJ9i
-Ls4oQ2crdZjeCGMMOXHN0hP+9QCeM3eCuH7umtinTWSGYAV3FC3hjxKIRgQQEQIA
-BgUCO0C46AAKCRCZyJB1G8TjK6lvAJwLu++3heukjbhtl9oni8/53a+uygCfeJAM
-67FQlN7osr33gA3HcmXcYYeIRgQQEQIABgUCO0CLjgAKCRBgMFsxwJ/TWp+CAKDD
-22lET5do9L6N36OvMD4bDBLISACfddEotCwBUYo0M5xoruT6LCmJfC2IRgQQEQIA
-BgUCO0CtkgAKCRBdK6s7rrzF6NFBAJ9KIE9LOBkQmemtNRA4xiVU0lxjVQCdGunX
-/dtC0QuTTVg05h3MlxkMzUqIRgQQEQIABgUCO0BKjgAKCRB88/WvKUmfYXuaAKCv
-1ASCe17B92/RwRrkY2NS+PN9VACeLXD1EqWz8I56LuTkLtDIO+8P5oeIRgQQEQIA
-BgUCO0XX5wAKCRBDVVPF4PnGNP/1AJ4/Ks+5i/cfsNy0cHTWBb8AV7PuNACfQMiJ
-zYFyi5oHTVU0ElFGSPeajtWIRgQQEQIABgUCO0FVbAAKCRDXWV03S3KWJaUqAKCA
-Lemjsa5yGGqCkvZMZGvrzBkTuACcD8C8YJneGq1utCDmla1VRZMRQLWIRgQQEQIA
-BgUCO0WfPQAKCRAGBpzylpRX8FN5AJ4h+rSDaTZRx1XZ8mhyzmAWE929iwCeK9MG
-jMJ9aiocfQC6/AOqHvdDQwyIRgQQEQIABgUCO0m8hgAKCRAOp1a1FEhD9ZThAKCa
-/cS1/y2fXr0fws5hVnjnYr8BNwCgjTnOekqzSKg7cSnkFnm4u2n76AWIRgQQEQIA
-BgUCO0bGaAAKCRDyD6wLe4NX5ckfAKDB+5OHEo0iXNEX1gtgEPZ9WVPgrQCff1uF
-zeZPc32qw3DSLcX4uJFIb4KIRgQQEQIABgUCOzHW1AAKCRCLmMiiG+b9JZceAKCf
-2r/8ldyhCZrANdts7jHUEflaZwCeOZjH/RywKe2pPBmKZ5jlDnxxFCKIRgQQEQIA
-BgUCO0sVfAAKCRDApMu5h5eFaczXAKCJVPLjpBnXtWvqvkJlcM4ZTRuKUgCeLJPs
-DB/LUSSZ80lSGhStDdyuKveIRgQQEQIABgUCO01jrQAKCRD+mh7DZIQ5MxBqAKCx
-hrkGd+lgjZFOxMPrKPXf6pAw7wCbBp7IE92Sakh9OHjL5Zfv8lS86SmIRgQQEQIA
-BgUCO08mDAAKCRBd4kmWWwNYonnGAJwIJqHLwkjbbvzN5iwyAWJqYN5LpwCgmam/
-autAJiLuOMi6ui/xhYFIGtWIRgQQEQIABgUCO1ImOQAKCRAk6Z8Q2z1E1L7RAJ0f
-f+syNhDlD5b1aOUCh/p0M2cqigCcDzqivgOibvcBiaOGDwQrWC/GRmyIRgQQEQIA
-BgUCO1K//gAKCRDx0szISXoXbRVmAJ94igioussKa6NqgW6gA9hNO4szpgCgwJhD
-4vw46Mgw56cxE9UmugJm1U6IRgQQEQIABgUCO2MZAgAKCRCPH9/JvOCUNlSnAJ9D
-6dCfCoSldhVXOAM16Rnf4yE/kwCfWNP9q0DMccuSmw4AWMMaQQQeVqWIRgQQEQIA
-BgUCO0W1GgAKCRC3NaZJ4LoEwYRLAJ4kU9W7+M7I3MI6+106Pj1Kavx12wCgmG0t
-/mDBa3UJEORfIJobrhkRdCCIRgQQEQIABgUCO0gJcQAKCRDckT2YXfAxZwU/AJ9C
-/aobCIQ84dFYYhXLgXfaC/bN4QCfSsQB5lgZfBw3KRXCSVpbYNShoGSIRgQQEQIA
-BgUCO170cwAKCRCl8nAoCRep5JhdAKCU/BtO9wenJl+CJwbzx/nmfboF9QCfWQRu
-kBcyw3eeHOdh1L60LBn9V8OIRgQQEQIABgUCPAZt9AAKCRBvq6u8NX0heJqgAJ0d
-1i5sQ44UwNSaGNyWJAW3HRAFmgCggL5clk3sVTL+BZ+HA6de5tskTzmIRgQQEQIA
-BgUCO/rdMQAKCRDvzgtgBCVtO2vxAJ91pytlW0Kb8xkgWLIgc9NyhuQDrwCeO5Yj
-5MzTFLEQEhs9F1JV49gZhsiJAJUDBRA8HlbLgAYufOTUfsEBAfVGBADRMwS9JPfa
-Qvnat5WC7WnHTo9t6EMGHnufsmzmVjvd0sW8uxEkcpYU0lKOXIi2yfW81o5uWnWe
-tfCjCoUbBFXzIdWNXm2iLNYgiGxYevLxNmbizkN/v/Vu5dqOHvMQjAqiZ0CHvOjL
-rWHF9Aql6Fvetz6ydVHflF0aqS+W26FalIhGBBARAgAGBQI7UsbgAAoJEDv2CcaL
-r829JPUAn2tRyTWNo/iZvsTePHFYEw0cdXQ2AKC8YzE3R66W31nL9dkIlDP9Wuvl
-UohGBBARAgAGBQI8HmtDAAoJEMN2qNrxvNtzumsAnjdJxYxss6ezKyN+NQzC8yjj
-exQjAJ9cpnxsKd0x3oYDkuGvUfvLSbw79ohGBBARAgAGBQI8zqZ3AAoJEGBSKFyo
-d9l4lEEAoMag4VemiVIw0pKQrKKP8UYMRKbgAJ9wD+UwVz30P+/Ah5dkLUR+1CAj
-74hGBBARAgAGBQI8GkFeAAoJEAK8QrdD4l0eM+AAn3Cc8Kh4Z12bD3V+GftCso+w
-xNSbAKCNp5uBjbmCggQrt2nwTQVXWZOMKYhGBBMRAgAGBQI9NyQjAAoJEBJouCi6
-/ojlbA8AoJOEW7XWMQ4YqNzI2xvefZ/Dt5EvAJ9e01m3VZohvmaDVRaBwnZCRji7
-zohGBBARAgAGBQI8/MBLAAoJEC9Lo+/3IcZDxs0AoPbZzzlZ9OlqjEJ3MIOd4jI+
-OGo3AJ9WGKN3HDpbjdVGS+RRGPneNeefa4kAdQMFEDvwSNplgXSeA6P39QEBpFAC
-/3yywJap02KDm0L8fbajdhPi6k6iWmY6MrQNeit/Gd0ILbyDFu02vrAygqJmAayg
-lsKFCZK9E4efJqmkqBy2mpJ48kdOlxnfC6j1yzmJrSJvN/OhkMK5OwGIMBk1URwd
-IohGBBARAgAGBQI8/1pCAAoJEOIIBVtLZtmRfb4Anj4AmRogOSt4KWhO1IcHsT09
-Zn59AJ9wjRBhA0sy8eQ75QqeC9+ziL8TpIhGBBARAgAGBQI8vIXvAAoJEPhZkLAk
-iutz+KgAnR7QSEEQZaEusbHFEUC0debIe0yeAJ0clR6cG7hB8w7BB3sDTdvEfg8L
-A4hGBBIRAgAGBQI9oYxwAAoJEI47c57dK8ydSWsAn3Qy50QcLfDICTvG+nGTlVbU
-6+FiAKC/5JAKdzsbffUw8CwD02jumwXoTYkBQAQTAQIAKgUCPo2zbyMaaHR0cDov
-L3d3dy5yYXRoLm9yZy9ncGdwb2xpY3kuaHRtbAAKCRC23LAszRpSuWEsB/97awvu
-rPD7UMQx19AsRWXZWZ3NIjr+s5OkhCS7yazcAjQqH7Tl/5wXBeo8SIeD2IUUGCoj
-5CcWmFPJhoaXyWho7+xJHGlnqgWUr24FS+WQSd0diN7hDyPgTLjwkJXj7ey4FBfa
-ExOvwhHMmc04VBH8N54xznQDk7F/W+RDQSHvNufNsSBZBAo6uFD1xG0SMnLf1A4+
-H7Z/BS0KSMGdqiBHGfpTxXVjDbREN8Gxqx3/bD8hoHmZYY4SvJNO6GgzdoLLxa1l
-bNJjCyvIK4qMEUtdPbdUM3GiJx8nF+VsLHdGp57lCywWd/moONbkrBKS0zpxRK4v
-/k2qDeH70pSm2vL1iEYEExECAAYFAj6RgcwACgkQCF8pGcJq9OsVoQCfRw5nLhcw
-dDSH0WAMuqfSqwuWUjYAn2jm7ayWUjwsAjkTTSUzXsrgv0lpiGoEExECACoFAj6N
-spsjGmh0dHA6Ly93d3cucmF0aC5vcmcvZ3BncG9saWN5Lmh0bWwACgkQqa23+K5O
-QlzBLwCePpLmUcM+pMoJY6cTW2DZBknzK2EAn2q9NY/w+NF8pMT3EsNGhHCx/LZS
-iEYEExECAAYFAj8P72cACgkQ01u8mbx9AgpKPQCgnKm/8rG+TISFryKJSXFtq5A9
-U/4AoI+ao5AUmUgTCF5psohHVmRTvUuFiEYEEBECAAYFAj8QVjQACgkQ1vr63ZUv
-P/8BIwCdGM0X8frOjVker85BKhnRyxMTbekAoMIRrR+p5sOKqfm70Ot5dAjwnQ4t
-iQEcBBMBAQAGBQI/EQZ9AAoJEEAGFQ5ACertw9YH+QEOp4w9bnew5MHd+xyP+kYB
-+4zhv/JLDa4b321ymKwaaMAUi6+/51+q9hNyKGGltfRMVI2YsTkBZK521pUe3XhA
-k98xQeuSsCuVOzkof/ZkIBWUpD5ePDZ4ROILvUECEnupfHGYgJet4hjsSnpabBhS
-zVsHTvT7wPYBWsoU6aXQdHAWHj1ff6ZmKdiHVMXJc7q7EgdkXlz1cytPe1Kr6HOM
-vtXIu1SndaJ6RHTkFHikrzc7h+GZD3UrBE2WwXadi4j8oU4jNOPmNcgfyFTvCTga
-2tziRHDwbyWjWfkSF/K0hXFZtUAA6yB4PkHam60O4HtuuvoHXX4QaqCRVRasc56I
-RgQTEQIABgUCPxArzAAKCRCzNNMIli/S3oXcAJ9ksHHvb+jOBvQHWbkQqKK2RNz2
-CQCgp6vhG1eeIQjGKs8mfGtIIFnjzZGIRgQTEQIABgUCPxET8AAKCRDhhSLXfHEr
-y6A7AJ43Lzy8p+Fjo85jGPAxKBOZxCOGdQCfWbE+kN98BXU20Kw/PTxwUUZI4bKJ
-ARwEEAECAAYFAj8RSk0ACgkQCen5CopyTkUSQAgAh6+H16NVts1N7dXWNfUeXVka
-SZ1YH+Ou1N/3VLooX6r/dnRfrFf299KGNE9gdYU4ZZbzlssVkWOjbpq9ZnT0EP0T
-zODxqYk6xwLNbESTmfV+acJwyadAlTeOkcavfmPFhFjMFdh8hvAztXSSzuH0kVPp
-2q4LlQcE3VAWQehH1dc0KAL38e2oJXT3Acze9coHxP5F+9qqY5+RBH2K9/Qg6RHE
-ZbSbWqyk1Kp/PBRrv7reGCrKu/cknaIaMrd14gDVDaDYZpabZ1olVjLD7Xq9u2zd
-IrNbDUBHuc0u+6lJDnGMxl9cKZpcXtwZW7q2m/AJZZ64JNdOzAOwoIG/Zs2mvYhG
-BBARAgAGBQI/EqKHAAoJENQ8swWV/so0iN8An1kR7GXBiuo/nG6a6g80Uj8sw7Fv
-AJwMPsjtifxWHhD7+oePOLFBcUKjFohGBBARAgAGBQI/ETgsAAoJEPVrJqOmOZ5z
-H4sAoJdwPuP9Ras8FbVz9vxo1phsylRQAJ4+z5P2k4okmmvOoETzxYw2rnKDCIhF
-BBMRAgAGBQI/EGY+AAoJEHgz7PG1REgVo7QAn0PO7mLyLm7dWrl+kFiMAKH22WQ+
-AJdBEPNiQXGzPeX+pb1DfOJxIrNBiEYEExECAAYFAj8RP+AACgkQ6iGZQSR3yvg8
-GACfU7XVDJLfngnMfPnajA88btxP5T0An2GLPaRZu7NsbuSYHj8J54VGP2IJiEYE
-ExECAAYFAj8RXPoACgkQGf7YPOK+o0EK0gCfSFI/qReuVBWFKj/H466DMjaA7MMA
-n0lyeEvft6EXZ4ePTkoxHsjro1L6iEYEExECAAYFAj8RpBYACgkQxcDFxyGNGNet
-eACfUGJ1KOWCkkcVQ/axNLnpLOZT1+0An0NSiXPDAy2RiOa0ftCbv7N9dAsiiEYE
-ExECAAYFAj8RwdMACgkQvpyGjQRgTrgitgCeJF0AAIagPvhV3irwWnVxqOfvf1IA
-njfjpvbkXgf6Lt8/pYJComNLsqeHiEYEExECAAYFAj8ShtkACgkQoJD705cZn8PC
-2wCdHRClEdK3fO2qBeWErf+3VABkRWQAnAm0jEAHmYKm0C4ZtqrhwpLgKLJviEYE
-ExECAAYFAj8SkwcACgkQVm02LO4Jd+iJzwCeMmT+RD2ly1uSt/TlbWj2I6uyIbMA
-nAyb4NNPW+1HAhGRCrnsILVds6J2iEYEExECAAYFAj8Sl20ACgkQj7mZcU7rMfHV
-DQCePuYB3ixGRuyeVtRrdIwxNsERyiMAoNeZ2lMAeoX1vDmXAdxq6Q6g/OgEiJwE
-EwECAAYFAj8TMjAACgkQtGuSO22KvnHhiwP+N1Jh8cmDM4NVOMnh+twEdc0quSJc
-ZprPBQzZuGz3uQUKXI+xWEBkE92elHgfVo8CaSqh0N+SB40e7CyoQ5cHhdPPAmKJ
-ZGiLhtliCmQI8W7xKJz3ysFPBJoVFEKaamOvsAUezTbnAcA92vkN33VW2Okw1+fx
-QsYuQ7C5hdEN2++IRgQQEQIABgUCPxNg4gAKCRCt7CzRGpU357YCAJ443K7yqC3V
-9MYierjg+bMQIIUFVgCdEXchjN7AuuaAwiUP86POJ7Mf9p+IRgQTEQIABgUCPxGl
-CgAKCRAoxvVrgXw1aC2RAJ9Wi969B0HxCRBmmJmKY/G35+hg6QCgp4WXj0dK0QQ/
-ttQ9VqMzLbiHsjuIRgQTEQIABgUCPxPyOgAKCRC5gsvVwOMfHa6TAJ9GOyWePty4
-D0HO/i5dInksffJWkQCdEbYRoo9jgPM98b2Arb18rHRsOSCIRgQTEQIABgUCPxP5
-DQAKCRC7xxTRnGfNluB8AJ91IPyLFvn1mfvuhEksgmAvopXEkQCdHEPhku6Nleua
-JEirIr0yE4DeBwyIRgQTEQIABgUCPxQabgAKCRCAdScAZahB7Q6SAJ9IF1epz2ii
-OCRtFDzB++fZJnA6fACgypQnQZn5yk0FObR0umx0c0mMJdCIRgQTEQIABgUCPxQk
-egAKCRBRrPatdb6Al4izAKCRvQHWhW5rsyVLurGSt42n9yqrKwCgwkaaASoIrT4N
-3Rduq3Jtsyp+D4mIRgQTEQIABgUCPxQqPgAKCRBsdheMoO2YLaoUAKDu17oP9Pi/
-VkH90yIR1l4dQ7GNhgCdFjt4MegFyREUjkerk6DpcYGWwmiIRgQSEQIABgUCPxQt
-mgAKCRA19mF8UTrv2fN0AJ95j2z4vBYZB+plZr9P6TjKRb23YgCeLUunT7ARJ8kk
-HxJmb2rBwIr5cNiIRgQSEQIABgUCPxURpQAKCRDVTq5LyZhwsaZSAJ46vwwEDZSI
-n7DMCzb43Aw6mO9i7gCgriGzSI3wbk4Fl03XhL6Yx7q6GWWIRgQSEQIABgUCPxUs
-7QAKCRCJzUshYHVZ5t0aAKCF9Kmbta/PbwadSy6Y2ZtiwO2xYACeJqljQ1knbV4r
-/GCyJmDn3pLV7/6IRgQTEQIABgUCPxZujAAKCRCELNt6RHeeGDlsAJwMigxlui5G
-XM65FVSclFapDQs1qwCggo5t0MrmM/D6bwKgIoG+5ZH1wO6IRgQSEQIABgUCPxV1
-LwAKCRB8IsOfgHrFOjObAJwK1SDOv5xMjksadx2cfoVRUHIycACbB3EDJA5Rqjm2
-zGtoOWvlKONPDCqIRgQSEQIABgUCPxUSZAAKCRC/QVlbc3KipaemAJ9ui7yZa1r1
-0VaSwYM4ACzek5JBAQCbBPmKwLUBrmtc67jmwd9OKODgjcmIRgQTEQIABgUCPxRl
-1AAKCRCUj9ag4Q9QLtrCAKDyDMh57YE3BSrDWLCIfH8Llae8OACgz+X7LZ6CADiU
-UAQMvsN0PYaMI1+IRgQTEQIABgUCPxRl4gAKCRC0deIHurWCKS1CAJ4h9C4Girnr
-Qf0Jt+LWaSRB6vMHbACg1Mt3M/XOvjQ3ByRNlaz5cMF1yzqIRgQTEQIABgUCPxVt
-RQAKCRC7VaR/yQHDPgwwAKDDo5Oczmfsy/K+rNhp0EdN8tTpYQCgyJyfezJ3lACl
-gkZe3KJSjcWvsI6IRgQTEQIABgUCPxZZiQAKCRDnyduv41bvwB61AJ9WP2XS6gBZ
-e8fgWb0oSNupfrL1TwCgvDsfeZ8+228+PuOBa9EmPqn4Z8yIRgQSEQIABgUCPxcI
-VgAKCRB3+BUzuw7ox3SyAJ9lEoZio+Jqvu7yDsMy0v2W9H8BrwCaAu226tR8QQgp
-efrzX7CFlqUp2oCIRgQTEQIABgUCPxZaFQAKCRD0tLDMeX6/q79tAJ95QA3Y7Vha
-p/yq3/sU6rGdWv1gHACdGOlr2jlePeNjyM8XP7m/aTyTA3aIRgQQEQIABgUCPxe0
-rgAKCRBGzFxj8xilarPqAJ9CVDPJRDwCTEzyxU/aXPUcD2IIQgCfUwWviRTpr4Sl
-hYQSLPInA8XRL3mIRgQTEQIABgUCPxfUbwAKCRBTtrgdwTzuBxZAAKChuDlCWIgR
-y0RLB43upNulVEMhPgCgy3nvJsoNNdGtApgalnD3PCtADC6JAQEEExECAMEFAj8W
-hgyGFIAAAAAAGgBjc2lnbmF0dXJlLW5vdGVzQHBlbmd1aW4uZGUiaHR0cDovL3d3
-dy5wZW5ndWluLmRlL35iYi9jb250YWN0L3BncC9zaWduaW5ncy9ub3Rlcy5FQTcx
-QjI5NjQ1OTc0RDhCMzQzRTgyMUU5NjI0ODNFMTU2NjJDNzM0LmFzYyIzGmh0dHA6
-Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9wZ3AvcG9saWN5L3YxLjEvAAoJ
-EKseS2BGdWsetVoAoKC8/BexDahmSBm6ByFHjdnUNnqjAKCnraKOQoRD9mHRkhYL
-hs6Kb6B/e4kB1wQTAQIAwQUCPxaF+YYUgAAAAAAaAGNzaWduYXR1cmUtbm90ZXNA
-cGVuZ3Vpbi5kZSJodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJiL2NvbnRhY3QvcGdw
-L3NpZ25pbmdzL25vdGVzLkVBNzFCMjk2NDU5NzREOEIzNDNFODIxRTk2MjQ4M0Ux
-NTY2MkM3MzQuYXNjIjMaaHR0cDovL3d3dy5wZW5ndWluLmRlL35iYi9jb250YWN0
-L3BncC9wb2xpY3kvdjEuMS8ACgkQGaJoCYg4/ZQoyQgAp7zbUXdSJjC99c1U2Tf8
-fsZqyxty2Vq4MERWsogmj4WMJY7s1nNOl2ytrovMZ8lGVFHwMuFM/GqhxkcyaG60
-4TTsBZIsF+PFwYfzdN2wiW2/nfE7EoPxYUcCXTSatz5b0kGYrQotFjxbL71xaEDb
-fCzvvrtZcXNlM4BFYOo+Ad6YokzaRhE18eWnYCeqloJrkXnZuUj6g2CkdaKz8rO6
-QpdbSXHiOHNxM0DwuGE1KEVH6TlixkelWD7eWK/A7ozetrLgvfYR9xgwk5qfOi1Z
-zBurcWYqtXbsthXlv7kxDZYJK8w3h3hlvPGzjzplQP5kisaKmRQnmZT2hKo0sgyW
-3IhGBBMRAgAGBQI/F/CpAAoJEJEfSuaGoRjmasQAoKwxDSMg6qRd/67aBEtukTSq
-cMhGAKDsScrYaTKk2OPEx2nLKt856m7mb4icBBABAgAGBQI/FpAzAAoJEO9tgkHw
-gRld9YkEAL7rFxi/i3d0HRdrISimFvZdcQ+M17mzd82z+9L9qTxBDFJgrHjNrHD9
-zb4x5CehUwwEklQKGM9bRYgNfKZ3FfJs0DQ6TC8VN82cECVFfHSdKxtnR0Wu5wK+
-1Ru+517coWCmbMbWZ0xgtdZ7DXxOcS3DqgZ6Q1bKxgxR5LGTb1nniEYEEBECAAYF
-Aj8THygACgkQ0Bn175Anq4i/zgCeP7srpshWEkWMk+2g9SiFjTSCWYoAn0DVZWaB
-t4235TT2bJM40pbuxvJYiEYEEhECAAYFAj8Ye1oACgkQMwsDi2xjdG2clgCg8n0h
-KYgMIZF8K8N5xWXyMIGh71gAn0tPowccJ9wAe1JXX3slFWAVtVNTiEYEEhECAAYF
-Aj8YfiUACgkQsandgtyBSwkAfACfV/oO66wsFR0TDcsn09l4vPQn4gQAn2yuFdZj
-mb9CEGXQ7OwCz9nkJArSiEYEExECAAYFAj8X8GEACgkQVkEm8inxm9EzGwCfQpN/
-NEb25HY89WP32R57XbamlycAnjgGgMgU2/Wf0E3a+KRgWGqGs0STiEYEExECAAYF
-Aj8YShYACgkQGnR+RTDgudgElwCgvX2J3MJJHDzGQVnpX/j/vinbmKgAoIJDdRhp
-TimIOc3ohPI/hVn/wOTtiEYEEBECAAYFAj8YdP0ACgkQ9ijrk0dDIGw4qgCeOg2P
-pIXS1yy1NBGb1e+GNMfZIisAoNPZ0dwv0YkdwisRjHf6ipIQwyHJiEYEEhECAAYF
-Aj8ZK6AACgkQZd80wCtfheOo0QCggPdjSLfBSv2mCSUZZ4yggajC0NUAoJe31w53
-S53tMoOueJgPaH1n+EociEYEExECAAYFAj8ZlPQACgkQIexP3IStZ2zBqgCcCUIn
-qpy76RpB0CuQXtxe6LSV804An1cbSQKE9c13GiYUaWG1v0LoOnHwiEYEExECAAYF
-Aj8aZToACgkQzop515gBbccP9gCbBKji8iWm2/qOW6MGBRHWABi/sc0An3h3PFt7
-h9qTNd9cF8bUBYoGIiFYiEYEEhECAAYFAj8bkb0ACgkQ7A6vcTZ3gCU/RwCfQAy4
-8uTR25zCbmIBAK0JW55KNlUAn3ausauxgUdAfm6aohyxxrvD4JRliEYEEhECAAYF
-Aj8cKXEACgkQdNeA1787sd2ydwCgg8n8+hiDc4ACUTtW5ft8h0b3L+sAoJ3iaChz
-MUMxi1lpDxt8qLwmv7SwiEYEEBECAAYFAj8VydcACgkQKiV7d8Y3KNJj1wCfcYaG
-rDGwI+OUsEKF5kp/ibBmcJkAn3d/RszoziOGNaXR5ytxAMOuH4IpiEYEExECAAYF
-Aj8QIlIACgkQAtbtIeMsT0uIogCfT1x0S7HhrI22Jh2lykvyjdD+eDYAni0cZKJq
-nzFV33YW5shk6ni4RE4XiEYEEhECAAYFAj8ce70ACgkQC9tTsaLPijgiagCgibSt
-kJ6yGyXjT6k8MzrrSRjwr4EAmwZsvXWQz1xrlJThOSQOJo+giABRiEYEEhECAAYF
-Aj8c2hQACgkQyA90Wa3Cns05pgCfZQvXVii4ojLdEpCqPiGyPW0Nd4kAn10t1M/D
-cu+sXnSafvRV6BZhxcNyiEYEExECAAYFAj8VuYEACgkQS+8mJCLfQIevFQCeMqPN
-WbuTkCW2+OVb7g4Yn8sJ2b0An0atcvtqd6YjmKxIe3hL/3CD4FRbiEYEExECAAYF
-Aj8VuYkACgkQlWQfayU+WOOj8ACgsF3i6btoulVD/odjXoAKsw9+ybAAnjLpzn+L
-OKcgingkLfL4pQfDpZ2xiEYEExECAAYFAj8dgKEACgkQO7/Pd72LBQ3o0QCgjTPf
-auFWp+HBXlWMlFTaUDmPKMsAn2tMjHeRGzY5rcMI8pEcpMkzDm+YiEYEEhECAAYF
-Aj8eOrEACgkQzAGaxP8W1ujPCQCgi/ph5B+f43O3tMa+Vl2kSm/iwn0AoPBwaa4Z
-MUZNuV9zoGXTUWx+8tu7iEYEEhECAAYFAj8emTMACgkQNFDtUT/MKpDN9ACcDBVK
-HUdglwfB6r2rw/qo56x3u3UAn26NqtkbvIL1LjxmfuoUueIPsK0IiEYEExECAAYF
-Aj8e07AACgkQKO6zWj6NzMBOogCcCfGFTxfDqxI+KRIoZ8rF71e2RosAnjYgt5y6
-wU6gTMMin5Yjm9hzh62diEYEEhECAAYFAj8e2VIACgkQkryUdmOUJl5QzACaA3q2
-IMEuTN0CNnEy7DdElR1LCYIAoItw8HTShrWVG9yvnvFxMChDPMIRiEYEEBECAAYF
-Aj8fAcEACgkQKN2w/RnJtrpX5QCgzNwWHKaG9Ag3tA+Ac0KtQ31SiY8AnR/S5tYf
-Bde3E8kikmYvh291nKsTiEYEEhECAAYFAj8e79QACgkQGpBPiZwE9FZi/QCeMqew
-RvkzepVGeLQ3bN3I7pDDGBYAn2CFPcdZ71Hht0rac52TS3ukCv2LiEYEEhECAAYF
-Aj8gJ8kACgkQA+GMa4PlEQ/XWgCgg38xjA5L0D5WkZGKYVHYwjpbXt4AoIGFFJcw
-FNXNxap3dY8rH14ntilJiEYEEhECAAYFAj8hEqQACgkQpFNRmenyx0fhvgCgxOQK
-p6pPVcqmPN/mTRfGpWGSYHkAnR96kY7ho5LFcaajuqCTiSnQ1IkjiEYEExECAAYF
-Aj8hczsACgkQlJsl7AdEclJ2IACfWZTVuF6l9mLigt2qXNcuPbmGxVAAoK0RoV41
-Dkt9R2lIm6iqxrNRW0ESiEYEEhECAAYFAj8i7MEACgkQ+o43kJBROPQy6gCg+oEv
-MFJdqjRNGMfLj1EZCOPUInAAoNYkQNGvIW+hanA09lIxWK2bQExJiEYEEhECAAYF
-Aj8mwdMACgkQ9D5yZjzIjAmmpwCgp8sJU93M7CM7vsGpReoEAVmAJ9QAnjgfhStP
-wYEtrnWlDeWY6hA1kP+LiEYEEhECAAYFAj8jnYsACgkQGKDMjVcGpLQjNQCfQ1Vi
-vqwk+GGNSEaTkNZC8dUJn5UAoIojBb/gmfx/SGhg+ILsOm37Zm/ziEYEEhECAAYF
-Aj8jw/0ACgkQlE/Gp2pqC7ysoQCgjyv6JilmZ2fkk2mGktlZAMCGPcQAnjkvcY2J
-+e5S0pnWgTXPmY9G7dlsiEYEExECAAYFAj8b6w8ACgkQ2A7zWou1J69fwQCffecR
-nl2OKb0xyan4c34SAiXW7tkAnjjlXUeZ1phjKkwCOxSGpzVL2dg2iEYEExECAAYF
-Aj8nsWsACgkQ5ihPJ4ZiSrvw6wCfSqPnCQUf0RCBxTHwNeXoHZLNsgoAn0mmdV02
-e4GTUkP6hcahi8uktaz4iEYEEBECAAYFAj8n2R0ACgkQbyOLwk/aWgz6EACeP7lN
-/AdK/F47D/RLEj0iFa3hoUcAnitXQcHBCa2V7nsdLGgBu+0RFrTFiEYEEhECAAYF
-Aj8n3nwACgkQn88szT8+ZCYVUQCeI/GFVLQVfpjbILxq3QzePIvUd54An3yCiNfm
-ou1ZfGQXR9ut54CFWGZniEYEExECAAYFAj8oGAIACgkQBDI26xBzGXcQUwCeIPT4
-RnjFVbpIu9/yB90/4XxGSJ8An1Q12NxzY3nguYjjeFZwPSfhV9zliI0EExECAE0F
-Aj8o7UxGGmh0dHA6Ly93d3cudHJhc2gubmV0L350aG9tYXNiL2NyeXB0by9rZXlz
-aWduaW5nL2tleXNpZ25pbmcudmVyMS4wLnR4dAAKCRCkec3EWrRgatzEAJ9NnEz0
-qdxIzRMKnwzIl5bT7iO/RgCgjxUaa4hVcZzWdpiAONJGlAbQALKJAWMEEwECAE0F
-Aj8o7VZGGmh0dHA6Ly93d3cudHJhc2gubmV0L350aG9tYXNiL2NyeXB0by9rZXlz
-aWduaW5nL2tleXNpZ25pbmcudmVyMS4wLnR4dAAKCRD5fPnjOkt/XQzwB/wOFo/i
-eiHUOP0ZyKPlt7VBeaXIAGH0xpxZi+XJ0D5PwZmHylTIdlzJ2tlulJfU3pX1dOWm
-uIa1YZsuP+ai+u9dk1QkGgSe5XAYXxqzvmbec8Rxdg0gDEdp3okAhPp9NyKtkxI+
-HNi4EgqDPIqZ1GVhk6k2Z6dfDe+QesI4FA0XIq2d1NFbCPiVenBeE0O6uQxsIvnS
-HRm2PFOn1rWSgkznx25Ue9QLJP2utuxSd5cSJTL3x4E5eYDY2nXsorBOi7+SAiIo
-Gdoj2V4y/5kOoyqnIotEeq4IGLuIedOCrv2Vvpn5Km+VXmyJRugOygMfafuLpPan
-DBbDLjWk5ySNUaYEiI0EExECAE0FAj8o7WBGGmh0dHA6Ly93d3cudHJhc2gubmV0
-L350aG9tYXNiL2NyeXB0by9rZXlzaWduaW5nL2tleXNpZ25pbmcudmVyMS4wLnR4
-dAAKCRB5BXaPdYT12B57AJ4wf88gfe8CueO6NtFQUpTHk+KLogCdFSUq/if6DUuL
-nhjPKWeIy2d9WDCIRgQTEQIABgUCPyjtcAAKCRD50BTwOMmFjc/FAKCqWAtYGj/9
-8ORw1XFC9PR9am1ZbgCggGer0qz4QK2mpM9QFtR6hGkO0syIRgQTEQIABgUCPyjt
-egAKCRBdD39J4OSfNETsAJ9aKCcUnCB7Vn6UHDRBruteeqRsGACeOJFIbOdqiVsb
-O+wpOhwfVm3Uz+iInAQTAQIABgUCPyjthQAKCRAbsIu/KpIyJaiRBACyR0lc2oYJ
-ndWEYeidHmAiR/hZ2DgMctiCcevdbfDGf+5D3FohELCZKq5UQGnW3U6eRJhMuYPc
-f4z7mp1It+yEakFZGPS84J4Ftik74iE7rIXdj2BHOJFsMjgKmHQTMXkZqA//MIR3
-3ou633yhNtX0r5omEDasRVSEWO/3Zv5L84hGBBMRAgAGBQI/LVbLAAoJECyYPlrS
-ilXWgacAoOtGe4cNkD8e0bNHVgJFwA39oMVyAJ4vidWutzzIpBSQzgpb19NpRZ1a
-5IhGBBIRAgAGBQI/LngDAAoJEBIJY50RSqhcZIQAn3DHTp0TtM6/Zoy+HK200i//
-AlJ5AJ0dCWgEobiC4oGybShrlOLlQw/6+YhGBBMRAgAGBQI/LY41AAoJEE70qYTy
-yrnIcFAAn19Xn3naRkcMPidY59zV16MCX7sFAJ9rWy0RQjrx33uXDhOr51NKuHYy
-WIhGBBMRAgAGBQI/M1b0AAoJEMoOFpwo+jiKp84AnjKg4ZxXKLa4krNAd5/2dEQ2
-iQxLAJ0a12Erds94F2GIFAqf/FSngVVl1IhGBBIRAgAGBQI/Hy/gAAoJENraec14
-ij9M7gcAn3/uItnWtZlo7d+OTYKk1ezOzEjcAJ4tbS5/8s2m9lL8CPMu2dJTW08o
-24hGBBMRAgAGBQI/OSZuAAoJEEXAIUdpq91URiYAn0jGPBL9p3VR4l+P9kvadlU7
-UlqBAJ9QHKGG5rIfjeVpTbgdDsY8SCmxg4iOBBMRAgBOBQI/HwdxRxpodHRwOi8v
-d3d3Lm1hdGhlbWF0aWsudW5pLWJpZWxlZmVsZC5kZS9+bW11dHovc2lnbi1wb2xp
-Y3ktMjAwMy0wNy5odG1sAAoJEN6Fg/i9v+g4gwcAn1+sU+MuW30qSaH8ll2xLtbt
-5eXdAKDOe0mpJVSxpOKrpg0KYA/6irm4o4hGBBARAgAGBQI/NYt8AAoJEGnSph3i
-Y/zUvnUAnj59pDFGso7TdXsHVa4Z/q2X5n6BAJ0ZdltmQ2ZJ75nLbcwkpac3bGgI
-wIhGBBMRAgAGBQI/ZGvxAAoJEGZmcXrbg1Z5+04An1D/h1hoi4RqkBtQw1/DNHzU
-gAH9AKCcD+lqxzDCPqX43rX+9UCCJ8oPAYhGBBMRAgAGBQI/ZGwHAAoJEA2WS2ZX
-Dm3qiIUAn3ypBZwkgxMIhE0klSRmAw9wJC+iAJ9ls0lNN9NJr84AzQ15HdtkXT4W
-RohGBBMRAgAGBQI/Y6iKAAoJEFTCT7U7C7mpvXsAniCYCn5ZjWf/c74wKl6VFZIV
-pWNxAJ9t0LFwcwSLiab/u/Uh+olhvaMxRYhGBBMRAgAGBQI/ZG09AAoJEE4CrK4d
-1rOA7AYAoIiHcDElbjwvQYFFd9R0kOOiOfn+AJ48x7C+1Ga2DwEr9gkKIYGekQXR
-L4hGBBIRAgAGBQI/3FhRAAoJEMUUr45LpAHDSrcAn0nLPfcadJybKcREJ08wx2+V
-9wusAJ4xj1je9ia5121k5VKu0eEryfzclYhGBBARAgAGBQI/6RuLAAoJEGSnwKfy
-zwGoWJQAn27is4CCDjyDwHxvmtLrpENuDZ7OAJ46Uzd7Hf1PBdRnBxU5bPrSuGK2
-/4hGBBARAgAGBQI/zDQjAAoJEKC+nbo7iG59GwgAnj/r1qwD6xwrm7Kw6SZi6Yc/
-mHiaAJwOpMOcian+Pp12EpfRvB8Xle/s5YhGBBMRAgAGBQJAdyn5AAoJEKQ+bScS
-gofom88An0uMhlRXemnGHyQ/KRJUq5+MgidOAKCNgcFaoiWTeSJT+24Rb3DEs8+y
-RIhGBBMRAgAGBQJAd7WQAAoJEIZ7+an70+uOHiEAniAEVpEe0EMBhh0KIMHQn7lP
-YZMNAJ9v6NuYX8B4FraeFJvwWN3Rl5a4TYhGBBMRAgAGBQJAeLzjAAoJEMzf5JsK
-Cskn3XkAnji5RM4QOb8xqOpJJjMPgIO+g6qDAJsFmagMPCtbkiKSc4dI+2l6TNv/
-G4icBBMBAgAGBQJAeMJmAAoJEKv/B7RG8yEtQPEEAJd3FInVbro9mXT3lBIpBjvv
-/e6LMishN4yrjVSF82WFNTPkXYpbloqZoYdtYAdqwi8AmEKZsfQ7SI3eJAVci+Hm
-7xnxPZO4oFx281jUTBZlY61j8xfJZe2eBHfPmhRqBErYk+wADOjFvbhypwv/9OQ0
-NDJuPdhu/dRBZZpCpv2JiEYEExECAAYFAkB58KwACgkQfDt5cIjHwfcAKQCdEXk9
-78h7XbMFngwWDXT5jtNbSo8AmwRHSKe0f7F9Gk4o2K4rmojcLbnGiEYEEhECAAYF
-AkCWzkAACgkQK8hAFiBoeJUqkACgl0cnrdeK0LhkpZRyEODRGt0HBVsAn0+wig88
-WxVF7T64mWTvc5PfUEaNiQIcBBMBAgAGBQJAl9HQAAoJELVnlGdHP376TrMP/j0h
-pFwA5yzR8l4Z/YrOwKNsmLtOhdO/CLKVZAka2y1zPv8ppCriFtfbDuLf3swnYurB
-OzIsQroxt/NZA10xFmy+xOdLaL2PGWaTc0/HvD9dR7XSLhgTk00I1D1NmSep8dYP
-/8Nzn5kywNlUGWPICcYQPbjQBb/+apeiLfNXfz9s7WbRg3rOCerNBVKnGL3CAN34
-rX4p27gjFtgNyAqSInzbiEoWWpj/UyIaCbMKTqo3sxSA8LaW1jsyIooPMCQTLMKH
-yCQ5NruqK9GH28gfOOPUijgq0cDdRw37i9bv6+W0yfvR7SzjiKJOUO5GH6T+0Vqf
-JtHDLcDcaUzOT8K5149WdTbkDGQcF5y2cRF01CYPFHJccVMyYA1apNgZLcmz5Rtg
-bNgRYAiqUxzHFxQFb9by9d/M/U4sYvBIbevBOAAI2zt9Kg9PTPLQb/s6k9krKiC7
-J8nSzlLc86iO/bLdOBiNUu7mwC5sdbKPADSchv6/Zt485QLfL6/QIIQDwrv415R2
-YS7IezeIBqNfiH8gs6zkDeqaSIERlmlrsB3FYFG1N8qu8paJovSc+WewuWN9M9y3
-V4ZS6z1h1vYsunR1a7OVPtUOkqiSve7o7somGwOuB+IcG6ScPd+eFzjQgGFrRiJp
-63Qoi7HNNS+FCCdyWGU/eKdoY4FMYjopjiYHBGJniEYEExECAAYFAkCctagACgkQ
-Qxo87aLX0pK/mwCfTf2o34qJXBM+YXZhOs9yVXpC50YAoI5kabsup2eU1mBy7us0
-lFxrfhxHiEYEExECAAYFAkDezh4ACgkQs3U+TVFLPnwI9ACdEo928dQvBLzl411B
-/3lKjJKP+lAAn18n1wjH3iTljqT25Z9sWQeDATGOiEYEExECAAYFAkDmqBUACgkQ
-cV7WoH57isluQACfVLd583iOT+OpEzqaIWfN+ipZRewAnRGIOTfv9MRZD8ZSJuQd
-DrIBAHKpiEYEExECAAYFAkEECGsACgkQ20zMSyow1ynt5wCeI0vp7KSYO0eLAGso
-5F3pwHvgoc8Anie4Winj6dvKHuF8PtWZwSreSeYsiEYEExECAAYFAkGNFU8ACgkQ
-+C5cwEsrK56CgACfaRD1Y8xF4XMe/jDZwKPeK9PfYmUAoMZ1tFUtrhTrieNJ1eF7
-dpdJZw7iiEYEEBECAAYFAkJyIrAACgkQ0/mV1Xdq/hJ5nwCgtxa311qwL0m2olq2
-TmSWc2ezDgcAni38NAgrHcDxh6DK6Z3Xl97Rcu1iiEYEEBECAAYFAkO5ff8ACgkQ
-ch6xsM7kSXgWZACbBg1x9hPoW/GAzEjfM2RGW9sA5/UAoNsVZaTnFpwfIVvSVIRo
-Pr6snqd+iEYEEBECAAYFAkQarOoACgkQQVLh8cZxhv8lngCfZhCCHrxpekkiOrvE
-bde/+/2ZdlMAoKXsVi5dC0lZI6owWPK8aGUx1AD8iEYEEBECAAYFAkQarP4ACgkQ
-qgzR7tCLR/4rQwCfR3YheOkrKO96h7w5UAtbLl3DPw4AoILhj23EPLWtD435gRqU
-v6/LDFNBiEYEEhECAAYFAkJyDd4ACgkQ8+hUANcKr/nfEwCfQLF/kWIqxd1nnY6c
-Is6PmIPJzIwAn00QsIjpIE4TPLn28/xzt2CmZb9xiEYEExECAAYFAkB3sxYACgkQ
-bL+LLlZbOPlfvwCeJZgYtJe5F6lm6DhEff3x9hyZ3lMAn0EDRPZUKlUAjxGoJwhX
-lj6VtJDxiEYEExECAAYFAkHR6JcACgkQ4NDRMRFxsE/LDgCfUC09l005ohD0dQFB
-8EyWImWea7cAoKAD+Ev47KosjrODBekcTcT5wxjqiEYEExECAAYFAkI4EWgACgkQ
-r3O2CKlAUK+MjwCgh2qJokfyjptF/V4+JsG99Yy+PUQAnRJQK3yrzugfybYwQ8cm
-v3KQrbXBiEYEExECAAYFAkJyOdoACgkQpQbm1N1NUIjkygCcDTM7VnDqO00J0HHc
-9IxMbnupH+oAoPHXDLfvpI689q3uDj84z6/3q7EFiEYEExECAAYFAkJyxrcACgkQ
-3cp5nGFDTdZJKgCfaEkpttj9rbw7n9XZYb+ntvwaZyUAoJe69mqDdJI+R2sv12Ho
-NQcuqmVeiEYEExECAAYFAkJy+RkACgkQd/4g/qpqtcvoPACgonV7MjBnRUKY9+H1
-9uA1fu/dNSEAoI2B2AWN8OpgpXpxhVYQk85CQ/1riEYEExECAAYFAkJzGKAACgkQ
-n/JYPmgbZGm6/gCdHuBxj3DNZlbz1ScOvdbzCDIy+wMAn3bH4b9hUJ2yLTsIHFOu
-RfqMN8BDiEYEExECAAYFAkJ1pigACgkQu8b/uaAhL+RNdwCgqCn0r8wIdyYxnnKA
-H9eNmQQvYgoAmQHjHDaRmyg6zJOxxmy9mPI6KMHZiEYEExECAAYFAkJ1zNQACgkQ
-vjztR8bOoMl61ACgr6C+EJa0KC7rnMTWud31d+uWqgMAoKxb6pZkKgoWIIwKJWsm
-jd7cSxmyiEYEExECAAYFAkJ2SJsACgkQRsWY28vsX4CMpACgoqN7lvoJQOsLv/BL
-kB35o9AwzH4AnjFKG+SSuj8c593EXnxLlNoUoOF+iEYEExECAAYFAkJ2S6UACgkQ
-/qs2NkWy11t5GgCgopOFVZpwxRszdALafu89Cb3QmYgAoLt04ryMpBzBlxP2cKkz
-9B3Al1FbiEYEExECAAYFAkJ3KjEACgkQDecnbV4Fd/LaJgCgnqWYl8N5EBuv4Ht/
-wRlSU9VOGv4AoMhL+6TVsB4tQ7++2SITLUDXrqwAiEYEExECAAYFAkJ3R04ACgkQ
-Dt3F8mpFyBZBCQCfVvYk24sjRPpMWQ8KVt6NqoPoiMgAoKJsCs9S2wBSurhuwOC/
-0cMExHh7iEYEExECAAYFAkJ3zRgACgkQSsOT+6LQaTbahACgl3nwP7ZEVZ8K4+P2
-coTJCzi6SNoAoMLfgKD7paNayne0SJV5OgRaiNxXiEYEExECAAYFAkJ42M4ACgkQ
-cJo/YDt+FuGQyQCgxT+bknZT5AHSlb7h7GADAc4AQwUAn1D6n+86CTh88pBcR7UZ
-0pu2f91riEYEExECAAYFAkJ5yU8ACgkQvNWtkHk/awJxtACfYKUARYRzaDjeQVLD
-E4WRQlpuWHMAn39JY3jbMUf/PQmbZP2oIFvt6W4hiEYEExECAAYFAkJ6TcIACgkQ
-H9eQw/Gi3tViWwCfW2RwrpQ7QoP0I1aEsp/obcr1i9gAn28YlDC1FYIxtmM3wkBX
-gECOiWI6iEYEExECAAYFAkJ6Xv4ACgkQem/rb/9SwVCzhQCfYYoSqONNvsvy7Inf
-u3cC+lnQPQIAniiWI4ervNXN3Xrat0cTfAIxMcJmiEYEExECAAYFAkJ61CIACgkQ
-BlHlJnS3xyrP8gCeJarZ3KQgi3gI56LLdzdtqkh2ixMAoJ5vhkjJZWtTr5r/TTkT
-Jbbh2CEaiEYEExECAAYFAkJ+zhEACgkQPGPKP6Cz6Ivb9ACdHgVMifwG7zhKmrF+
-GArIebXVufEAn0XU4YOn/NEa7TnRliSDHRFB99iZiEYEExECAAYFAkJ/FCoACgkQ
-uJQObal7aaD7jwCfTmMM+/iJ2x2CBOzELf4Y0DdfJg0AoKlJAOBwhp9SfFUxgkFu
-XK0e+dasiEYEExECAAYFAkKCWlAACgkQE91OGC5E08pXtgCfX/Pla3WvnD6aWX39
-x3J0tHWcv9gAnj+Nj7nGZS7Psgk6WO03JK9XjbeaiEYEExECAAYFAkKPMM0ACgkQ
-9t0zAhD6TNEerwCcD93mgW2e5MjWiI+5UDF+E7LB4cUAn3o3jI1aAkeQ+OrZaa3s
-JapAo9BCiEkEExECAAkFAkJy7k4CBwAACgkQuJQObal7aaAGtACfbCMlG7zmeYdi
-6z/Us3teWfKRSp4AoIMfpcTWK7p56hr/bTt3mD/UgYX9iFkEExECABkECwoEAwMV
-AwIDFgIBAheABQJCOATlAhkBAAoJEJYkg+FWYsc0wxoAnRX4Tvfb/1AfXEiGfuSC
-Tc9kgOTIAJ0eGc7xURiG7bSSPZXuR++JTCqFvYkBIgQQAQIADAUCQcx2ugUDABJ1
-AAAKCRCXELibyletfKw7B/9sgtUiYSEd98fN3ifX6vZg3jrxO0Y5iT1mEr4LIv4C
-KA3bSBfvUlzj2P2V/kLDzrpnZ63EJ7SdP6PHJVDxdCVgOJRRDCqLsXcq9Teyvvfm
-H5lm+fkzmX0sXEOAj1RH4sDxefelgzNRoAFNPBShqPkk4C6p/bPlOwGT1IqlOZhX
-akZxfuger75zU6DX26HdPuSl8rpWwRecJvLxQ1iui/0JkVh/0F0pPIHFNHpFZ+UO
-BjQu8jdkCmTC20efPYbMNQmLZ2zTr6QkooEKVPdz7g3xegVAbRHUyDVqPIUAv3xK
-z1xSkLXZLWAlAJHnlrjqpddPZPyNehoJv881iy27Zb1aiQEiBBABAgAMBQJB3Zr+
-BQMAEnUAAAoJEJcQuJvKV618mZQIAJ7t66UzRM8uS54TV0QS4Ag+FkhSSQJV+QVx
-/SisyqrCXeIhL/eHL6BsPc1d5GjpABSRDc7iNtRGiaNN+PmCdZAvzkvUh+c//cu7
-85ek6DhxstWcLPvv/5e3696xdnBLUNnNZhm0j6RoXjWNC9B7wOQiEpPuHhKOHXYg
-cLaci3+torT8OfMe+QIDpgpnvUQkFs0MaXswGKgrExGtnCtG8fWlHW9gqeKpoW8K
-P1iPvsZJPvl8UbxjQeYhcamxftqsWX2F5P+T3NQPB69y7dKhaKql26cgoTefqPFP
-QsXCUQHg/wG7Gv9sdoT9uq6+3wPRvhCJqTApzpEU6rpCfEpPuQCJASIEEAECAAwF
-AkHuv/MFAwASdQAACgkQlxC4m8pXrXxx2wf/Qn7jxnarkNm8NfsY/NxNmY4u+c9I
-dgG7OfWhG6MLZFFu8h1BGg1B4FpcTtraWAxDfUwQFoDbfK0g4VsJQ5bqvdk01tpT
-xNfaqGXqz3fUE9JwCWiF0M/vHXybdMdnWx9X7tjaIN6Zme4av+O0gXY332mYXBkA
-s4HZT38Z64h0JMoAzjmXNO8C2DU8cXc8qZLJY6QAt7wZ/a/RLafqDL90LyNXiP0D
-iCOCuWGWQENbca83IBQ4znQ+H/g+V62Nc48oNPrpWvzCscwpyUKM28x72Ho1V6GB
-yusKNLnOkMayTCi5jog1xnFHs8Dbyy9R2zogrOyKEVCP+gLURiQ3OvEXUYkBIgQQ
-AQIADAUCQgCNAgUDABJ1AAAKCRCXELibyletfAjyB/wO0VmHYAL7x7PVzk+SKih5
-uZ54Wtwf4Encrbwq77ceJhRrc0kOKWuEw7RoMYGqb/n+t5lsxYNvcVXWLMOQIzM2
-zXMztVk+B53o0RXgheGy0tE5lZx6q7NJ8ZETzyXUJrWpNGCo5hqghJRuOyOjrQXn
-BxjpdpTHtqaicy2g92V+jIJcuZ1nt7OllLpQ36H/Ok1mDjfoP2AOG8UsQUQBgBXG
-6IEavxRtjSeuObZa93FAZ+Q+0Rt+qXjHDMRaDlX7rtaYu2TmcZx+lP83sUNh2pMB
-RcObpWBtACeIEoNJoZn5kqsc9evmAuE594srZTtdWNZwb6/emt6w+n2qsGFsLudM
-iQEiBBABAgAMBQJCElkvBQMAEnUAAAoJEJcQuJvKV618q64H/inZnSczLuPq2Ba9
-CEqi4N1K3pY/SV2rdjXLHYi93UDv/b+3H/OeIjW8zgT4tICNxiiYNnbajB1RYMCa
-kXxDJBHzUBM3BT7U2E20CF+ejX9mCn6rZNwAhX/nl7DvZ6FYpurEhHLvv1kX4vzo
-AUojqCRa55l266/sImM3BcGEC/f+WN1hQUY23V+TqLMUBOd+Wo3aRVp+rxFG2rhA
-R4XhYrNm+B1mX7+1hxEcyynAmxWBowk+mVUp1NCBirRrVp0PxzKhbbC432LF+UFA
-2NnINs7P1N8HR5C0BLRSywRan1ASQfkpM4ebkCe1rP3t/Wm9d6CgD7Xg0BRr4VbZ
-1a6KwOWJASIEEAECAAwFAkIWqcwFAwASdQAACgkQlxC4m8pXrXz+6Qf/Y2Le3ECR
-8/nHJllkx2qhnvh/MIIHOau/rAowgD6QXBC/vQRb9/SpZ3aE3ylKjGM3QXFnyZGF
-DQhmKmoDXZ9NANUykLroTq/qjmTiiCJxokkj1qgRoyBoKIHbBa+OBMTD795TP5oz
-QF1Hy7Rcel7Ctp6QSjZ23tXpMsRPrq4FNV1OzdsON2jL0ldubJO9Rd5cAvUEI7uo
-WXgcLrhdf9nqkjjwYxfTi8wh8PCOp8pa2f8cO9/p3Hrgrk48xClepib6KWZl4hD+
-x/XVjLNyAfAVIZIsgbDQFx9N1V5AOz5tzNAbBVueQguz87OztLq2AVjXlbb5Ne+h
-mTIHB5+PEti3mYkBIgQQAQIADAUCQimInAUDABJ1AAAKCRCXELibyletfMp5CACO
-eIDWCeLMxbKigSKoHcbJZuZfPZy/7vZ1Hy4McXH257xFt9oWdiq8y7BBdLbDQlPW
-nV+rkjPkBPgRhDG3IotIGFEUd82UyQhZPAtNIpgHQF3UkBS4WqZ3iOhb6Ip8LxTV
-JfpGJnd+d/JTFvIDSqGNsxI4swDcQZlrlzNY+Rn3kfqnu38iD2FqUKWvyw3SW6gE
-7OtMF9E1AXAOV28wN5CvRpktdq3asO8j3Tjb6EeBv1lwg1bUgAur4302bGv3hf9Z
-tre69muhHqkx18lGmXGeI/sWbrRs00X2KzxQ2sWm9yTa5/68mPOlXAYC13pQhErD
-UGAMRmnO6UUTVXDtI0zniQEiBBABAgAMBQJCPUkVBQMAEnUAAAoJEJcQuJvKV618
-Q8YH/2WuatYY2ccpCjE3o1VQ8GTJOQAyWxM2oZyaoxJQeIQP0SwRWQZGu96HmqlI
-+/cy0gvASg536z+/vwYytZV+ZP1ftrd5DsA9GtQO7inMN4bQ5kMgURXWx6d5ZxPf
-oH5z8z9bwsnTWaZKHXXbmDdMxkFHl2APBp9sF4u4dhcJLj/nJcTbRgXmP/7LCW2H
-e29A2aksvsD0DVI3DzuVc7GcPPov1PRZyRq7HeA7fl6wo5mEAHuZNARz4iywDR4r
-MKFru6hKB0j/u7NJicRUvimt9NpF2k/Tcl81v2ORkm4cxqR21CTJ0aOndyTe0s84
-yH41w2f1j+Vw0fpPri84Vqs9zSqJASIEEAECAAwFAkJPwBkFAwASdQAACgkQlxC4
-m8pXrXzu0wf9G/YsRPTr9W5VA5RjEBsbt14UfZYN28WLj0GxbJpONPSvB8ujzFe4
-UxS2SVAajMn6kzdff3rXPJZjo4Dl9VedV/iLBsAqBXkNZDmaxVkPf41UYjHyV059
-HXApHloZkPDkDnq6SRRwOpNRza5FnliVJO9lMO2onXBBOp3BM5tiHI7CewNiGkol
-BoEwmmGbiYfkc9Bz0V+RssmiIrZA8z5/bmUPpBUqmQ/n603Lruk4mDyI8erN/hOP
-U6e03nPonw3NC0z6S6TAbunc8U8iSBl/2ctB3g6iGaXAJzkixxpRrD/UL5TQePmB
-mTgV6Ifj2AYRmE0Q55YzxVy1dcDxIAQv84kBIgQQAQIADAUCQmImWgUDABJ1AAAK
-CRCXELibyletfNKQCACDwG/wvdNzqgGshs4X/QLWTmr+Tafm72gA9AWnZvgYogQ8
-5Tx+FPzE3+JZmXGMwNI2ePEEYBFlDbWA1yDyX0W+9x+HCPqdmuPp0jp/P24FUn6G
-ZVxlJKBGLjQ9DTMgr7MeXJaIbrk+UdhJf7JoatemjLWMhsJeSYbSMcwcGugP56+Y
-QSTV3IGvKfPWlujL/n6960IGfZY7t73G7pyyKWNzvii2ss6abwFBo35zP5yP3zI6
-XjYZ8wrbdeu8cvYnNBvr98S6MS6TxDJmAeVday5dmQjz/0dDLZsENkrHp6NZU9nw
-I5vjbLbsKDmlCPlg7CWGNm4G+LpXTHuYEBWxh2zpiQEiBBABAgAMBQJCYs77BQMA
-EnUAAAoJEJcQuJvKV618TdwIAIO0NPJo56OKJq4EYVWvDWJNTAjLqk8NuNsE5tH9
-1yxqTEaG+QvogtxMImZLts/iBdytTFYYyhWQRqhGJJAcaXj0YJ/GvNT+sKSGXKLP
-BTJABmsrGgJXCxcc5sPQ/95M/TiA2LdFb/YDdyLQNRPAcq5k48I2RoZ7Hs1W/rIa
-xZvlRzvDVX8VFwKH8o3MGQs+zzLsl03CPfQ316z1b/kABCx4406fHt1SrwyeGTkQ
-ACVBVA2HMfnWqn0r3inpyUSAnWhgT5X/Cg2SIrJqleEyQ/mrKBTptAgwUJ1cM2EQ
-PxiB/ytu2hQanygn01VFPyR+0dmsXTZOhOD84DWcmcwxNBqJASIEEAECAAwFAkJ1
-P3MFAwASdQAACgkQlxC4m8pXrXy49Qf/bSLASg5fxEscgsSdaJ3Eid8F3492bW36
-IUcWv9U8xkCKJB99Gw5T+5B6K1i134Cm4wHhXqWLRF4KL6aCGEcSYcJum4rFMPiv
-7kmH2E/e6DmiF9kk0oymVFJnuN3yctkNpfA9ovrXgacJrwzgcy11t1octK9RDiG0
-qBxCD/qYHgf18KJK9+VK2vyMzdm9ZqKwih8+XvDnNkdNrEdSJ5uIULl/TfmPn5Zm
-uQ93s+ZdnFflaln3smuTHxNrp3K8uWu3IJWmX74KUn4lNXAteKWP4adqFBEVzbLz
-d5fzs8XLF/w5dGC3iS4CUfqWpDfulDxe7ooxKoV5Y/QnmZkK+VI1PokBIgQQAQIA
-DAUCQocRFwUDABJ1AAAKCRCXELibyletfLeoCACZ9K8f2WtGdc1SeuQc1yv4BN72
-pr56/Ks+Raky+tOy7P+yLCBIEV9KaeZj50LAu3CnESNn6TLix4a1gxaL+68yHAxU
-wV5S341m4bUjAa1e8ZMVhdJifsqe8w0TyjHx/yJ/ciZWWZVIEgKTNhzxdjIGSn3l
-q29ow03AnatRCz/aHhiAzeeHSsEwW1Lvr4vz/isPMvWDzJSnofUUD5jgXWCDMBat
-bVVFsCvdb3UiLJY1Yh04ZYGFIiEimHlb7fLaZ/pDosL70SnSYO/upn3ojaSrRITC
-Zs8wsUfKP5icv/eqAdwtSlpeox+mSLvGhv64S1RQFZtFJRGmk9xNHDV8CJxpiQEi
-BBABAgAMBQJCibZSBQMAEnUAAAoJEJcQuJvKV618dC0H/14iIrbtLfDkh2Mcc2iF
-s0uD+l3ibF8+qtfiGFZ3rC82GHGNrpZLgbALsdGV4o1BmVrLMZ1d3z3UXV0kxWCl
-YVZ1zHLx+cDRXYT6k35iXglxXtmSxUN7Ed7Uc7SN5CCO9neoi3urr9+lyjZHqFq9
-6lpFP0T85/BvTBt/ud2CR/+eo+UywI7wjDEIYc0qo9JnuGHd0n0FqNO/Rm2yBzf+
-lWyvdjgR0+6HHy+tfMehksHC5+bupDAfGoKuzzD4qp+fjtTdzAYEuoXg2hNrc/8Z
-qEFPoMQXm89IFRorEhxJbkvP1jQObUFSPilQWXZu5F+WJOEVXZzrQmUgqC+ZOfS3
-bKiJASIEEAECAAwFAkKbgfsFAwASdQAACgkQlxC4m8pXrXyfyQgAtHrfLtlX0E0n
-OcawD2qd5HAFhvdrTy48JP/Ue2JitlyEAWj9QpC/y+aApk62aLstUHdLg6bQIdsG
-QiQwR6euqMOuolN9JqfH5JXyvt5M4zRlkJjcHGLv/x+cZuojFz9acHYTLCkawm9+
-MOhcy6piHVW/Fh8E6V9Lb9TMqDT1OTCfw9najnKmnA5dulvf/E3Skrv+cETp7vq+
-g7UC9HvucV7i2Dqj466WSgIEnjibenqeZfT6wovgs9dFiACEYMCrfADylpT/gS87
-35eEpWXK+0AnPiasllmX5LPSfaDhKPSOKagp89ILtddx3TlAEZFkERMi5UdamNCV
-MI8n8ft6O4kBIgQQAQIADAUCQpzTCgUDABJ1AAAKCRCXELibyletfGzIB/95hsVS
-uQ1XiKqtMZPnUW2U40vNHdw61vD5wK9d5GwCKMfUPcVYWaTCHCNM+23tTAg8kVjA
-dOHGQlRKW/gfQ64X7xhSu8Obps/B+lwy0gVkjje0rVaaZOzFzmAztxXSBzlT95wt
-KL0VKdIt1R8T4Dxc0iPlkuvHWrEzdUbYkBjrvccXjgbqa3znaEQysLGgsEciyl+1
-yctjfxs5WoQrItgx64mKfIm20DHP6w1X95qY+ZATM1JUfykXFMEg7JNqZ6xlYFAX
-bGChrspTfq9nUsyoXPUncA97zBGVLM5i7ygagIvt1YeUi0+g/ojpXT7MsoTROHD6
-66Hamw2DzkA6GhwHiQEiBBABAgAMBQJCr+ynBQMAEnUAAAoJEJcQuJvKV618+aoI
-AJIsrFaXQIym1cznFJSQlevgnfrTitD2vRwV6uWSMQOL8fkHJO0QrqrpmvzBPep2
-A77JosZQ+3kflkbd68SXvY5yfpxxxXF/eLv1kXKaGqcp2VYOMJA+QWzQqfsU7CVX
-2nkpV4tgFqaq5x9JJ9NZdapJiDRsSuuqPbAdWeDufl9tFVhb6ZBiY/x8ZBR/4q+9
-rWjHObn3JS45Z+XQ5fYEVk+26RkU89fGuSsGpaF3zgvEM3lLmxhfdY8MSegg3+3S
-zArY1V6nfdccN1n708CRYXXwoPWPenzGgHOwbBSRnf9l4IpNxoH9Bjcs/YM7dlR5
-GGD415gq1w7YysVJFVoiI0iJASIEEAECAAwFAkK0j2sFAwASdQAACgkQlxC4m8pX
-rXxWRQgAkabF23WJvJt+OTsYRL21GaVNCSijVTQZRU8LI+nIMsXJGDCoHPtcPiQz
-2/nXwyq6YOC7VaXJetShF5souL5w5L8it4oU9Awk9FScRxitMl7ty4n+lU+JG7ao
-RfeuaDTcYcai+CXsed5PynPA55oKP24c1BbT0rBaMjoi5Uq08xrCqOSQloxfCLmK
-/efJOWUzHRE1MtyFr+eq9vbQvlvaeRusZbKBZ7Gb1yC1+qdzv1R0J0vN2MPUO15d
-5XhO5UhVgKUTIojb4mEd16r9igLOn78HveKh5uVX63JrvOYUaL0jO+FlJWdBtKMu
-Tgui7Q7BRqJMs15fnG6roFg8gLrWnokBIgQQAQIADAUCQrc1vAUDABJ1AAAKCRCX
-ELibyletfHtAB/0WPN4Sx5UVX8TNK1qDmx06B4zy5dcU/wqgWIUCERZheYStCsDK
-X/VzHYladi0dAJKoL4+IHNXvEaavtU7WlJwYThD/MwaNah6jSyX1Cqu6/A96QoQl
-4AVs4fPu7WGVje25yNfPZBdJyQPNVfipM6uRL70iFJ5BNIIzhRjlPMX74rj/vnU8
-kvoSWYvXmPn4Q3KLv6tcfOn3Mt9wMZJSH63sv3jbmRE9Cm0TgHa1UAvgOxWT1A7c
-Nvhrt6Fy4bsxL06QG0xr4PO0nDbRGQ21yobITMFukfQx0jlnWBf26R8p0D1S1afm
-/TG6x7Ilcw8NkV8tFH6eJQ2qkiRySXXgcRnziQEiBBABAgAMBQJCyQdJBQMAEnUA
-AAoJEJcQuJvKV618kk8IAKQmFB8do2eq8F0T1rCsZrMrkjQFhKTTXEWJzg17HFjx
-5brB81L+LXd5LwTI4rL2C5doP9N74PuAV9a9cmiydw71vCTnzSi1uhRqnBRMmM4b
-vSOE50HMIQsidGKEzSVySROAdvYyaBhVdN+uyPAncGz3DTq0rUjoriW2DAxHMJLu
-l8m8iNjo/LogBx0KRcWXr7xPR6izOVIqINm5xMwrSBPoR/PWuG7w+ZAKhy6IUGiM
-F1prrMwG3w3b4bXDcCyJKgA4jRhD8bBWGWhR1s532ZLmvSwWy4xf1LPWlo/mEM89
-wrGZX8ylQ0JlZ7grLaiHNHX3m2lFb+IxwRKMfEWuu0uJASIEEAECAAwFAkLQ+IQF
-AwASdQAACgkQlxC4m8pXrXx0WwgAkm5C20y4dWf9Phy69i//dNWwShHBK13hIO+F
-ROqPfJxQYdDpCGGIE/IGhako8ofNYCIf860qto+/gPWUOX7ITH9SX5v2q2nL+ojZ
-D2rI4vrFHER2Q8mCQvNCT1D7BLLPkAV3iKtqGSHRC0mAZz5Jer+ejs8wf2m6fZTi
-5tOk6iRFMWPGVCX4rGN2Qk0R9SqTHWhtZFK4LShpiNxT6fAnCRBzdepigRid/skU
-ggXqjFvezaJ+BzQBhJahlhnpKtEK4fjAfdZDtiIpowGbZgfIIsB0HAT4ujj3UDy9
-kOons0iEn/NR78v4oosqz0wxcqAZORA/tldmoqlQK8Ix84BBpokBIgQQAQIADAUC
-QtGddgUDABJ1AAAKCRCXELibyletfAkEB/9LGSHXus/kR55RQ9XIgbNbyI5opA5A
-eiuUY7nAF9n9pcg+xB1GVGXM8yMs4lrU4Vh+vSKjtH2Gocs7TwpHtBItbVyW+LQC
-nEOyf+q4Orj/vhIvfeNUuyFvNCHIwbU0evDM59Vc9p1RkhBD6vJtpCX2bRdUMGuW
-9eGTSYlxDMamL57Tpgm0P1Bvdw3gYnfk3H+r/MRGvQkImEnr1B3WqmClB0Fmajs0
-ZbBkuI+suwyy2lrXA6e+3yIQEqHCLSG85GOQG/xIro1nv4W426NhXY2er8ZKSiWY
-gOddKe5txPR7h80lA3OfEmOopNwIuN1ld0BLltY3DBsb8er/gRDyR7IFiQEiBBAB
-AgAMBQJC42W7BQMAEnUAAAoJEJcQuJvKV618w58IAI4eyED6P9wFdR96vNQ4oBzo
-cJXcPXcC0Zrw710MTXf4Zn6TfvB3UJitboab5fEYVA5RUy1E61SiwLof7frF1XW7
-CClp+ugsDOxyx+GdFGV0q+H/0mpPbsXqiBMMB1J83uii76dNGBDzZt0z9c+FylzY
-WAziq+1NTQKYcHqJhENbV9ZGvTYAwCLA/pB6kHkSJRIJ9yPyg8vtYy1xuRI5hi6g
-OoA61rMIgs7hFHtu938JDPt1tvZJFt7Ux6YV3rAOuDmgK2Gvgz9Q2lVg4xhKd3Tn
-ycnjD6scS1T3zWcCKSrW3v5+AZ9HKvgA1kiJ6mknSbVImxJ7LKHKLsrIy/sJOm6J
-ASIEEAECAAwFAkLspEwFAwASdQAACgkQlxC4m8pXrXz1RAf+NfkWCYU8c/Gowyl0
-u0/tVxeFPxsx1GpKjaXI1tVeg5+Ov4spaHeZpYjdIO5kRNGSzdyVXkO1Rgz9RK5e
-V9vClFEYH0l3QEUxM1QQMZqUZAbmxH/fN4vnr44a6ya6ICLgn8I6InHFGFO8t9Tv
-KTA1eqS8uElQqUH1dNG5rxBqDjMOKjk0E0InAaIOeDHdvoBcVg0W/FMzlbhKPd0e
-czpNyOtonq3z4EracangmCmDxEy2PjtKZP6LlMW8gvvnzIqL77J2I8mbC4vXwYxu
-mgne9Ghou4IPqZ+Lb4cBaPY/wxxZ7F/pqGIwcTB0juYqsT0qZ430LzO8xaAb8Fry
-X6le7okBIgQQAQIADAUCQu1LBQUDABJ1AAAKCRCXELibyletfN/KCAC/k7OMxhpo
-XobydxOLWRJWucKrB1zTnN0c3VBElE2zZ3FUbzAEuCNjbCzbc7iRxKeDgcKtktFd
-mnM590InYm/7EVdT9r+TB05mFhPwrCbne3UcSB3PBd8ZB3o0tpG/ZMKsdYnftPKJ
-+voqpzdmiNZJMWYdeIIluzcBuViLzZhKnm0lmthdUOl1GildNW8hqfbhM7q265Rc
-jwVbTm+/Rg5UCDo1uFv94xqjO1g7scgCl+N9jjFBlRRin3Y4V2fTmNIiEITnomak
-DvTmlhs+yxd1BNYBau4rLXWFC6Qe+L9xnNWefQOLT98NokPU8RfU9IJ5OI3ColvA
-r2ITEqQocqeuiQEiBBABAgAMBQJDBw4vBQMAEnUAAAoJEJcQuJvKV6182VUH/2+o
-TFYzVeLuHJzhPQGI1x00Vh17MAYODp+4/bQsc6wrRykuidd8tklc/BlvPeWqjKDu
-W3e16cEf/05GMdGpsYNMCgzH6SOjZ3yycNg8y3rB8BABJ+jSCP6IoAUqqRUH7fUF
-VzA1SBTOkBwvZ1oGspDyYdGtn19ForXFNu7YO85TRFnJ8JIH3kNBXriaemmrfSi+
-9UFtjvuC0gH5ow/3p86GO50DVOpFzATBNi/q69FOWK6XqX8EW/tPqMZFP3MIWD3F
-al9l54uL6s8OLulRAhtarpPIpAURFr5+Ex0euKbqow/EBRPlQHGcutv+ONK7n/6g
-gpeentNDAyaE5kFdAG+JASIEEAECAAwFAkMIYnoFAwASdQAACgkQlxC4m8pXrXwu
-oAf8CxBZiAGstqB0M1IddHHd19CvGT7zheJWn3BVZpsBPvM/jctN/bYNKtnHu3IY
-DGUybNP8jHeeYEswj24tSPaZ7MT54LhU7HJdKwdYtMUp+RrBFWzbIJNpz69JwfPE
-TevT/IV7dnXz3uak6ZDDXRCjL6+ETbN37uAdXLASh4MD40Mfd9r+fY0Ayov/qRmG
-Th3Bxy9/f8ZoUz+CL7PllI9wt4XtX9su54L966nvcuODqUR5C6x/bw5T7897Wmkw
-eh5ICdPTg/hz0B4morKtJnayy+R106byjHaHobfuth6juGYeYbHXjzMNoWYoKqDZ
-uk3j7j69aAFZXzC9O69j5T8glYkBIgQQAQIADAUCQxBNOgUDABJ1AAAKCRCXELib
-yletfLt+B/95xkZZwYbLRDRw++rj+uO+RmjUyHxwx5jQh2mppbOhgo2jS9s0DLUp
-T3gAPm68YTVjLxAYV2hDcd57SNI7EGqRU1bQ8s/7G+Nqnc9qgf02BXWaQNDZJ/QM
-dvu0TIu+IkQZcLTqo26ROLlahtNNKDMY0PxM1zF/cie3fztnpHATNuWTYYGeZdOa
-CeGYy5Oj4TwNhjIrOIINPPttxO4+T+iShpHC9HVjtC65+kK/m9wAYM2CxUahSTft
-fweoeIKGt/ML8ON3Pe1u0dafqY7AUiV6PYUkg2QPsjljCQLFxCxP2vyPZwHc0Ftc
-ISPcRGwbYyXaDsFSkUTJAQS3qvWnZ2ayiQEiBBABAgAMBQJDEPMBBQMAEnUAAAoJ
-EJcQuJvKV618WlkH/3bC1x2yaa4u5hfUDR8S0ng4Y/uXYM4iLgARNUciZw7SV1Ke
-pE5b9cQDYmez/tmEyUfsZWthKQ6+Ne3vBLjLSLmNyNTiO7YIWc65RcJblrS5+fVt
-Cv8jGwFr/KlH85EqgRM0QVfZc4vPz7FoIzFbj2OeucR1dnc7AMEpHVGJAq/TEKNY
-5uQ5EAFB6F6KbG2mMKlsISoK5v9doZnQN9mBYnhJ3qhBJwB/DjNMG1tpp8QtCFyC
-xZAYQB/2JGehFrN0q9iU/W2aCbEvTTgGIuLGEOLlrplR2MHgWyiTiFv4eF8o0mAo
-yw80Gp7MGLZ3oKk4zbjbKp8S3BtwnMyILFuN++iJASIEEAECAAwFAkMSQ9cFAwAS
-dQAACgkQlxC4m8pXrXwXEggAua/5xOdeyymVGt/C2cmoIZMuKQX6o6mBb7Q9NUXY
-durcIAicopYFNG4FpIb0mzMdsTQGXB1KJrfj5f0fUp+rtdMWPda3ThMAx7zMK1Dk
-uoorAkGGiCCMqmeZS+9TvcLKwHZTr4t1u2eqWVvdM56u7VhNri1to1Zw8JE60zz0
-ZB6IhvFBCW28oCOkNIZnergmZi0Sw9RdUYIphjes+1sML43YE83jaFGZCcrKc4/J
-qBqj1ZZEnIjYy6MFoxAsEEnAr03Jpsr7sA+39+rdWgbYS/OPOFqRpDtr3kFQZFGp
-M/rN0XnoJGFO+m3GQCVw2RYNn6yNZOGbN/NI+bNySBiFUIkBIgQQAQIADAUCQxRC
-LQUDABJ1AAAKCRCXELibyletfMZqCACizLb1k+yJZKYe8sGCy0gb8Wfr5wIIoSDV
-KUsOo4VrVbf4Z+pVwzox4BlF2WyQ8oMdNh8noCxDFsQurVthNayiMwTEWsWcKvGV
-nUkl04scwcC38gy07+dP7vzuerpvKwzBNwBeFmT8sw8Cipa8RlXh56l6rXIyCyuZ
-WMeLzfq5UjsYXax3ktQ4VtFDOU02aXpkp1wgQ5xTFHU4v37VoNkuzV9UbZzLCjZG
-ttPaNNpHfIgsJSV4IFAcw7ZDr8PToLQ4PgT2CD2T1/DD7JMeYdnKP4CntUXJPN1w
-YbG6FQtz6Y/NCoEJofRbVJDd+jh6lKbRbCDvA2dv8rS553knOqz3iQIcBBMBAgAG
-BQJCdz8MAAoJEAgUGcMLQ3qJosMQAJ4BAkBO2LE3BinWKaIrjFcYExtn+k0RGtFI
-b4zQwBIgOjH4Yam11zZj+YAfzOsvl5aBuL2Yc8bZSKR1WMQ1581cMSAnps9FWJjJ
-rEp8FG9by5DKTI+onYW14oebiO+VJOciLrRnvdnE9+Avx18xtuwfMyRAADARggNi
-ZnTXSSx/ACiE3k5/TfbhIaDw0iaE3+IUPfkHkhrFyShvCpgUNWEX+99KJfiDbboA
-OZ/BDf+MvjxY6dFQW+uPyKH2YFLxWeENWjAQVgrOUqchVStmKoSmwZ1Iz3fXJDgP
-WLa/EQm+13J3uNo7BHRht+hxXwg5ydoYQoI64nkWaARaGZbTit23PyBVK3C+Gqc5
-k9xEr097nGz5aNRym3DiBQTJgRkqcrwcgqXjFjeoyGJRIFOEwTqN86YGW5MXGzEJ
-3zQd95eEphTVoI4SdAIDESEmds/khbh8fGo6pXYqC7Kt/01CRoqsDTczm+X95CkF
-j8Zr4SSm9xsN7VheN3E4eAPLuZonjrC09AblD9jpfJQIdH/EpYj1jaqPycSct+uP
-xXYuOp+2btiKvUQWU1Vy3hZ5lb8J+A7/mzom1Zpo1X6Yi360DiEVeuRw5i+/gp+8
-ItqRqQUXPCZ4h1Fsf1tZWe0doFqhqX7wCW3V8zkvtAOiBtzbjJMVZpvFxPIde2nf
-AiwUNnyOiQIcBBMBAgAGBQJCdz8NAAoJEFA6oBJjVJ+OkLUQAJWH09eK8jjgL5Yi
-l4lGGqAY+fONk77HAusNllQ96NcoSe5gq6awiB3CEeEyVai/RgoE34OesvXvMQYG
-3+DESl7D1I1TLMCX/OSc40qqgmXZ3Gfu0WO+PPZBx+ykCFqAxtFUxrjW6dCPTwPp
-F2I7qfcExYBI6640BdCh+hAxd6bgLPbsid0RQgKotdqyx/R4bliRitQXa8ODOz60
-hK9AzQYSi6ifaBSN+mYJ4YTNN1tqrsg5Q0MrGyWYMPxTkdEqfVsnhF+CO/Ca9M3S
-99kM13nBCG6Ft8fwhIBg85ZwfgVIo2PDdrS7xjQpUYpW1R1QeZK/b5o0fgWNikes
-Mb9zieN7GKtNKQPp2BsTHVpkvj9d+VvoGSYX+BS59j4d9I0doW+0XdGNj6SWLBqc
-hZ4ybMd1ysyc/hUmIT/aX8JhNVA/Q5PkgmWaYV1F6P/xjqx/RG2IMr+9OnM/zW7f
-nVEz6YQDTuADZESCdcuOd9O1Zd1Sv5UOeWRfuYE2jYGx71TKIywXcNFRqPxeDE3u
-WTEGRDcEXQG+bs1d+1QvXitiN0zDBgq6cpfNIbXaWc/HIg8LOm21xhDFAw38L1fT
-iTXrDU5UNhfj3lrkvgs2WOE6pRjP6ve0GFIKByi8ezb55iZTNyUgCPM0f/mVZrnK
-LvKv4vVpKzrCiwysGoQDck5DN3oCtCZNaWNoYWVsIFZvZ3QgPG1pY2hhZWwudm9n
-dEB1YnVudHUuY29tPohFBBMRAgAGBQJCetQiAAoJEAZR5SZ0t8cqDUIAmIfLRBeY
-28PXBqwOJVKcxtMedw4AniDcMjzOXhPz3hkFvZgQbgUfRF2JiEYEEBECAAYFAkJy
-IrMACgkQ0/mV1Xdq/hLXdwCglqvBfuZOFvU6rilTNrhikQ98TbMAoMZYDP30D+Yb
-Lo/Ho/UMSAQkdnR6iEYEEBECAAYFAkO5fgAACgkQch6xsM7kSXj4wQCgrh5j/Tcv
-BsR+a+BgccpQoIuT7ccAoPGCTPRGxas30yBVzBhEUY3gpGOriEYEEBECAAYFAkQa
-p7MACgkQQVLh8cZxhv+7BwCfRDPF1Vwqo681qBtkxdnuu5PgZN8An3EpFV31J/bu
-x/DERGQ4bJrec5XeiEYEEBECAAYFAkQarQkACgkQqgzR7tCLR/5w7wCfQfOvnVHB
-y/M/E48ZfU9XFr+2no4An0f0KNhZjZ3+mUaNkrkkYQoQEC0NiEYEEhECAAYFAkJy
-DeAACgkQ8+hUANcKr/kWnwCgi0J7zAVwn2vZufTJ7DJvIap5k/MAoJI2Y7Z65NW6
-esVYS5BpLdfJhe0IiEYEEhECAAYFAkLMsmsACgkQzN/kmwoKyScGPgCfRiKtZpTN
-ULwMA90Do+UjUczBO0wAoJzLIAF9LX9HWyU5UXidQt+eZXrPiEYEExECAAYFAkI4
-EWsACgkQr3O2CKlAUK9TxACdFn3HOjQvqBwQjFqEp7QlGfxw5o4AoIa3SuTTOtLJ
-hBmo7527ddmzrZzyiEYEExECAAYFAkI9iLYACgkQ+C5cwEsrK57aVwCgxrua39iO
-ij8hZ0xyVehvqCyl+6kAoLyqLbJ5dllzfRGxjxjc1+ppenTGiEYEExECAAYFAkJy
-OdgACgkQpQbm1N1NUIgOmwCg2dPgDcObDv8rO/MGHyZa0lqHacoAoMXv++UJaWXH
-bNWSPFIgOpfxTeqqiEYEExECAAYFAkJyxrYACgkQ3cp5nGFDTdZrfgCggGiZtpj7
-wpw6pVcF8tfswF4dsZAAn0rxNKNXXN9u+IAg1OuK0rsec7cTiEYEExECAAYFAkJy
-+R4ACgkQd/4g/qpqtctw4wCfQ2aNzJs/OYv1an3nPikx05iT5ocAoMyo4m6XmHDZ
-hphBvK8Ua7Z35YqxiEYEExECAAYFAkJzGKMACgkQn/JYPmgbZGnZ2ACgh44bvHWX
-Bq5Kovj/7+R5jxP/b5gAnRrTD5WtARrsItSBl+l8RkjZR5h5iEYEExECAAYFAkJ1
-YRAACgkQArxCt0PiXR63LACeNrOuAznY8YMEURjvIdaWgU740gcAoMPjKBTCQO5t
-eqZcyel94oBR0Cz4iEYEExECAAYFAkJ1pjAACgkQu8b/uaAhL+T2JgCfYtVnAwrM
-axYJghFByu/cdRN9R80AoKe+Hx0fHM1sU8IdHtn7mIMTeAt8iEYEExECAAYFAkJ1
-zNYACgkQvjztR8bOoMlUowCg1GdaFpmIOr/UXyCC9sDcv5w0jBIAmgJO1NL9gTzk
-7fgy2VsYJhOP0qrwiEYEExECAAYFAkJ2SJwACgkQRsWY28vsX4BR7gCcDRTfolut
-/zVq63qgjjcWr4ac5SUAoIvk6x1tksCp++oYS0lUV0MLjb3kiEYEExECAAYFAkJ2
-S6gACgkQ/qs2NkWy11sIpACg0Bp7T1euRDcJH1N7XLe9WbR+DwYAn2gG6nJz5C7N
-uqlmPJVZZP7QWRIJiEYEExECAAYFAkJ3KjMACgkQDecnbV4Fd/Ic+wCdFYiRyNeY
-PO27a1FX0hWChEWz09AAn1pBfBLFI54DoZvhBzhkarBXJLfyiEYEExECAAYFAkJ3
-PxcACgkQhCzbekR3nhgcPACfROmJv+sz86kfYW8k0saSqBzvBcIAoJi3RH+RZB7J
-pP8/RyQkLZg4aqxNiEYEExECAAYFAkJ3R1AACgkQDt3F8mpFyBZ+GwCfVW2vykWc
-NnfmrcUOej3v6Lycw4YAoLUIrGTkO2/X/673krDv5ixxNt5EiEYEExECAAYFAkJ3
-zRwACgkQSsOT+6LQaTZ+EQCgwX2d3Hzpj/7h3eh9Ws4rYpgBS+8An3TUCtOULJ6c
-HhlDNkzXUFquLKhgiEYEExECAAYFAkJ42NAACgkQcJo/YDt+FuEFJgCfa34UiSTn
-9ecrC3YFpVlvA/c24b8AoJX3QrL6CDxh/PEwni2CObFdAcVCiEYEExECAAYFAkJ5
-yVUACgkQvNWtkHk/awK/gwCeKnFUSolfUl09apDaZaEjhn65dAEAnAp8o3erErE6
-S+Q3+WFEls0pG0BTiEYEExECAAYFAkJ6TcYACgkQH9eQw/Gi3tW7XwCfY7He1SCb
-I23NXL/YN/veA0K949sAoN6IfvdTL8TD3l60t7ka03IJZBtTiEYEExECAAYFAkJ6
-Xv8ACgkQem/rb/9SwVB1oQCgqYf/1H9CiSjXlhplc1EKcCAVRW0AoNvQT8M4e174
-tUv67zkr1nA7Op1GiEYEExECAAYFAkJ+zhMACgkQPGPKP6Cz6Iuq2wCgnEn5tGWv
-mj5RRPAlBIS3P/f4MwwAoLeBZwU3TrtfCm9fqnoQnHqR/xr8iEYEExECAAYFAkJ/
-FCoACgkQuJQObal7aaB4+ACdEN7g2WKpES7QFp/ALG7lLNv9FKIAn12MSR1vCwKf
-bRjh6dSFOdbx3Vq4iEYEExECAAYFAkKCWlEACgkQE91OGC5E08qqkwCgnU3zcfUR
-v6YXqPXSPBOQzK/8LoIAoO6izGOLUMcMd0KB39jmLNuA7POliEYEExECAAYFAkKP
-MNEACgkQ9t0zAhD6TNH9mQCdFQuGRjnVuD5ZfKQcUrCIb8j1nfMAoIF7CHjeo79q
-fteokg+d7CAYq0RZiEkEExECAAkFAkJy7ngCBwAACgkQuJQObal7aaBaEQCfcq/K
-IVT7x6TmmsZPZJJjYiYyi4gAoJqwIGt5DDLb5tlkzpmwvPXEJgixiF4EExECAB4F
-AkH04tYCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQliSD4VZixzQFKQCgjpjp
-s+IXSNkiiIsBkOBuJWKFdnsAn1FUSErS2Ox809VZ0JMmas76sa/8iQIcBBMBAgAG
-BQJCdz8XAAoJEAgUGcMLQ3qJD9kQAKoG4PeRjVwfv4W+es+oGKd4AmQeQDW3g/sC
-1obWPd7g9GAhITTIdAJ/q1Y7qauaeUa9zYxFfMEREHjfwDEk+tXU5bkg9w2FB0iD
-5LxyNiDLIhaMWMg/tpikJV+m2fq+nCba67RYOmKTcAjBn4T0S6qmSwyNEJguP5+J
-jEc1+dzM/w+r4hlgKbb9NPQa1OXQZVoEKa4iN+Hn7Grr01bglEuGzXv2EU8QM3dz
-bKRWZxafD3kYaoU5fyP8fG71+7drqEZoP4A0cvHiGUaYvGIu0tKp82AW3HMMi4jL
-6aNt39fJKYlCQOjC0TeiTKyEJ+3dPTMr8692xkdHXc/HrlrQBv+Wlu66B44/wZly
-rmK8itvjrqLHO3yuqI9j+88iE5CRfjmkZw64aCjlgrA+JHx06QnPGIMptjxQFh5f
-m/Gt5VToAEbvYEoQF09rgbG9osx0aqrluwh/MhGhKze2bmxV3PnT0xKeC+950/Bz
-jaoSd80JAP96gzJSZE/hjLWUg+s7BnHi/FU5yyYUjB9olhC0UtZINiym04uuLkPj
-pMkWEVSmcnGcFgd2C6fQRbEF2ISB96AXB7i7iFI0ZnzrBlCqIYWMViCT5mXKyPiK
-XU7hbFCJM/Yz4KyEF5TNDnbstvneDLjwffoC0LmxGhWBA2mMDAkrQYMyaLz2mU73
-kzEUVWDDiQIcBBMBAgAGBQJCdz8XAAoJEFA6oBJjVJ+OD9kP/2Hi0WGp+w3nqlFR
-qQ10MKxOElTEJIErPf8GWlM/m43GKpwtyf6CbNQ7NYwEkpAGoq6zKMaQy9kRxtQI
-FWleRMDsrkmpGjvqmNqkaNbEhFEx+bApPtSsMaj9bO2HjdBJZxq5YwkDBusV6E0T
-NbLBfYb5teq2XyH632X6Zj+AUlkk8k37KnY8kxl+ccHkhClXjwYZIiXggUYuIM2E
-J0MZ9EA+Db6WKrgrpLLMBiTTwZIRp8J9hrbo7a9WZ2iz+X/A0qWxVzB3vdpBX73z
-NRAcf57uk6VdWmQsSFhiCSiC1gPvakJ5rQQvgcQdB0PkpFNv20ncZCyqCyjl23zg
-6VUU6hjRRuZC6zlQ4bOasANIHZ1i6Ri17eHyisKoid0lSk3RXpL+XEBrpo/gZ80q
-/aQa39F8TSyPborks368BFqT3z6z9CjuErynpZTDbGBGPx1hNOmkLGccExY9oI6g
-7RBMyGdllkruN+Me7O/3gEdhMwLoOZX54zJyiL9IWMITjr9DCyjTAN58g/hw1k3s
-bMQeCzSJ3qm8sgqh4+9392ILbDZQqugaVRq5enVEp4EedZhKDm0OMDHkz4yos/sf
-FvHGJ9IJV7KNPgtKbIufVmElGstUEO75sAbJXKKf9RDF3mS3l10fW5PzUhd7QoPk
-bctnq2G1Fuc4XdZj51mxj/d3NE+guQENBDgbNloQBACMDd+3MOnocx85heT7zsiL
-wQznw0dA554+XKh7HNjpQOGaCtIgKbvXi56K1jblx5NVyaV1VmGL9woCUfG5lGME
-uJE0PbL4XlMEj1txa2yJQFQcNAiICrRfQgqQE1LZMht0fpXvwmbxdTqubsG2382V
-jXtGVrAv0l3jYIGWSTo+QwADBQP+JVwIi8Qv0AzMEhMcYovMVoidMGvSCtLoIeOQ
-J9KuQuKkoUhoW27oEJlYYC8XqEJ3sIQnYmc7fGaMjt+/QVr5Pq/g9iG5JTgWWCJe
-8zy/+upwzE0EN6W6TqKXOBsDsENMGIok58d59z7ykI3VQRmu7TfTM1QJHVImyALj
-7F0mph6IRgQYEQIABgUCOBs2WgAKCRCWJIPhVmLHNIEGAKCWcOaIYvLspRW11j2b
-qlFfyUDwnQCfTTs8DO0AFWVdMrwydOYSow2cI5o=
-=CfD6
------END PGP PUBLIC KEY BLOCK-----
diff --git a/test/testsources.list/sources.list.all-gpg-broken b/test/testsources.list/sources.list.all-gpg-broken
deleted file mode 100644 (file)
index 110f318..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/gpg-package-broken/ /
-
diff --git a/test/testsources.list/sources.list.all-gpg-ok b/test/testsources.list/sources.list.all-gpg-ok
deleted file mode 100644 (file)
index 2e9a445..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/gpg-package-ok/ /
-
diff --git a/test/testsources.list/sources.list.all-release-broken b/test/testsources.list/sources.list.all-release-broken
deleted file mode 100644 (file)
index 5e13832..0000000
+++ /dev/null
@@ -1 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/all-release-broken/ /
diff --git a/test/testsources.list/sources.list.all-release-ok b/test/testsources.list/sources.list.all-release-ok
deleted file mode 100644 (file)
index 8bcceee..0000000
+++ /dev/null
@@ -1 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/all-release-ok/ /
diff --git a/test/testsources.list/sources.list.all-validuntil-broken b/test/testsources.list/sources.list.all-validuntil-broken
deleted file mode 100644 (file)
index bab59bb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/all-validuntil-broken/ /
diff --git a/test/testsources.list/sources.list.md5-package-broken b/test/testsources.list/sources.list.md5-package-broken
deleted file mode 100644 (file)
index 3ba4318..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/md5-package-broken/ /
-
diff --git a/test/testsources.list/sources.list.md5-package-ok b/test/testsources.list/sources.list.md5-package-ok
deleted file mode 100644 (file)
index 9bf2077..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/md5-package-ok/ /
-
diff --git a/test/testsources.list/sources.list.md5-release-broken b/test/testsources.list/sources.list.md5-release-broken
deleted file mode 100644 (file)
index 1c8f1dd..0000000
+++ /dev/null
@@ -1 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/md5-release-broken/ /
diff --git a/test/testsources.list/sources.list.md5-release-ok b/test/testsources.list/sources.list.md5-release-ok
deleted file mode 100644 (file)
index f27e04f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/md5-release-ok/ /
diff --git a/test/testsources.list/sources.list.sha1-release-broken b/test/testsources.list/sources.list.sha1-release-broken
deleted file mode 100644 (file)
index 29a2778..0000000
+++ /dev/null
@@ -1 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha1-release-broken/ /
diff --git a/test/testsources.list/sources.list.sha1-release-ok b/test/testsources.list/sources.list.sha1-release-ok
deleted file mode 100644 (file)
index 6f95d02..0000000
+++ /dev/null
@@ -1 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha1-release-ok/ /
diff --git a/test/testsources.list/sources.list.sha256-package-broken b/test/testsources.list/sources.list.sha256-package-broken
deleted file mode 100644 (file)
index d6d284b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha256-package-broken/ /
-
diff --git a/test/testsources.list/sources.list.sha256-package-ok b/test/testsources.list/sources.list.sha256-package-ok
deleted file mode 100644 (file)
index c2d7570..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha256-package-ok/ /
-
diff --git a/test/testsources.list/sources.list.sha256-release-broken b/test/testsources.list/sources.list.sha256-release-broken
deleted file mode 100644 (file)
index 713a4d9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha256-release-broken/ /
diff --git a/test/testsources.list/sources.list.sha256-release-ok b/test/testsources.list/sources.list.sha256-release-ok
deleted file mode 100644 (file)
index 93b44e3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-deb http://people.ubuntu.com/~mvo/apt/auth-test-suit/sha256-release-ok/ /
diff --git a/test/uri.cc b/test/uri.cc
deleted file mode 100644 (file)
index ae9dc9d..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <apt-pkg/strutl.h>
-#include <stdio.h>
-
-void Test(const char *Foo)
-{
-   URI U(Foo);
-   
-   printf("%s a='%s' u='%s' p='%s' port='%u'\n   h='%s' p='%s'\n",
-         Foo,U.Access.c_str(),U.User.c_str(),U.Password.c_str(),
-         U.Port,U.Host.c_str(),U.Path.c_str());
-}
-
-int main()
-{
-   // Basic stuff
-   Test("http://www.debian.org:90/temp/test");
-   Test("http://jgg:foo@ualberta.ca/blah");
-   Test("file:/usr/bin/foo");
-   Test("cdrom:Moo Cow Rom:/debian");
-   Test("gzip:./bar/cow");
-          
-   // RFC 2732 stuff
-   Test("http://[1080::8:800:200C:417A]/foo");
-   Test("http://[::FFFF:129.144.52.38]:80/index.html");
-   Test("http://[::FFFF:129.144.52.38:]:80/index.html");
-   Test("http://[::FFFF:129.144.52.38:]/index.html");
-   
-   /* My Evil Corruption of RFC 2732 to handle CDROM names! Fun for 
-      the whole family! */
-   Test("cdrom:[The Debian 1.2 disk, 1/2 R1:6]/debian/");
-   Test("cdrom:Foo Bar Cow/debian/");
-      
-   Test("ftp:ftp.fr.debian.org/debian/pool/main/x/xtel/xtel_3.2.1-15_i386.deb");
-}
diff --git a/test/versions.lst b/test/versions.lst
deleted file mode 100644 (file)
index 8dd8ebd..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-# List of 
-#   ver1 ver2 ret 
-# Of versions worth testing
-#  1 means that ver1 > ver2
-# -1 means that ver1 < ver2
-#  0 means that ver1 = ver2
-7.6p2-4 7.6-0 1
-1.0.3-3 1.0-1 1
-1.3 1.2.2-2 1
-1.3 1.2.2 1
-
-# Important attributes
-# disabled as dpkg --compare-versions doesn't like them… (versions have to start with a number)
-#- . -1
-#p - -1
-#a - -1
-#z - -1
-#a . -1
-#z . -1
-
-# disabled as dpkg --compare-versions doesn't like them… (versions have to start with a number)
-#III-alpha9.8 III-alpha9.8-1.5 -1
-
-# Epochs
-1:0.4 10.3 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
-9:1.18.36:5.4-20 9:1.18.37:4.3-22 -1
-1.18.36-0.17.35-18 1.18.36-19 1
-
-# Junk
-1:1.2.13-3 1:1.2.13-3.1 -1
-2.0.7pre1-4 2.0.7r-1 -1
-
-# Test some properties of text strings
-0-pre 0-pre 0
-0-pre 0-pree -1
-
-1.1.6r2-2 1.1.6r-1 1
-2.6b2-1 2.6b-2 1
-
-98.1p5-1 98.1-pre2-b6-2 -1
-0.4a6-2 0.4-1 1
-
-1:3.0.5-2 1:3.0.5.1 -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...