]> git.saurik.com Git - apt.git/commitdiff
Merge branch 'debian/sid' into debian/experimental
authorMichael Vogt <mvo@debian.org>
Thu, 27 Feb 2014 21:52:34 +0000 (22:52 +0100)
committerMichael Vogt <mvo@debian.org>
Thu, 27 Feb 2014 21:52:34 +0000 (22:52 +0100)
Conflicts:
apt-private/private-list.cc
configure.ac
debian/apt.install.in
debian/changelog

13 files changed:
1  2 
apt-pkg/acquire-item.cc
apt-pkg/contrib/fileutl.cc
apt-pkg/contrib/fileutl.h
apt-pkg/deb/dpkgpm.cc
apt-pkg/pkgcache.cc
apt-pkg/pkgcache.h
apt-private/private-list.cc
cmdline/apt-get.cc
debian/apt.install.in
debian/changelog
debian/control
debian/libapt-pkg4.13.symbols
test/interactive-helper/makefile

diff --combined apt-pkg/acquire-item.cc
index 12000a8c1a528d667b2cc81c49e0e3797a9d1ba2,36bb48382e3c6e1be75203f6db463de0706978aa..230d5aba9c625e6ff54083da5725e0a788524399
@@@ -129,7 -129,7 +129,7 @@@ void pkgAcquire::Item::Done(string Mess
                                                                        /*}}}*/
  // Acquire::Item::Rename - Rename a file                              /*{{{*/
  // ---------------------------------------------------------------------
- /* This helper function is used by alot of item methods as thier final
+ /* This helper function is used by a lot of item methods as their final
     step */
  void pkgAcquire::Item::Rename(string From,string To)
  {
     }   
  }
                                                                        /*}}}*/
+ bool pkgAcquire::Item::RenameOnError(pkgAcquire::Item::RenameOnErrorState const error)/*{{{*/
+ {
+    if(FileExists(DestFile))
+       Rename(DestFile, DestFile + ".FAILED");
+    switch (error)
+    {
+       case HashSumMismatch:
+        ErrorText = _("Hash Sum mismatch");
+        Status = StatAuthError;
+        ReportMirrorFailure("HashChecksumFailure");
+        break;
+       case SizeMismatch:
+        ErrorText = _("Size mismatch");
+        Status = StatAuthError;
+        ReportMirrorFailure("SizeFailure");
+        break;
+       case InvalidFormat:
+        ErrorText = _("Invalid file format");
+        Status = StatError;
+        // do not report as usually its not the mirrors fault, but Portal/Proxy
+        break;
+    }
+    return false;
+ }
+                                                                       /*}}}*/
  // Acquire::Item::ReportMirrorFailure                                 /*{{{*/
  // ---------------------------------------------------------------------
  void pkgAcquire::Item::ReportMirrorFailure(string FailCode)
@@@ -273,7 -299,7 +299,7 @@@ void pkgAcqSubIndex::Done(string Messag
        return;
     }
  
-    // sucess in downloading the index
+    // success in downloading the index
     // rename the index
     if(Debug)
        std::clog << "Renaming: " << DestFile << " -> " << FinalFile << std::endl;
@@@ -301,7 -327,7 +327,7 @@@ bool pkgAcqSubIndex::ParseIndex(string 
                                                                        /*}}}*/
  // AcqDiffIndex::AcqDiffIndex - Constructor                           /*{{{*/
  // ---------------------------------------------------------------------
- /* Get the DiffIndex file first and see if there are patches availab
+ /* Get the DiffIndex file first and see if there are patches available
   * If so, create a pkgAcqIndexDiffs fetcher that will get and apply the
   * patches. If anything goes wrong in that process, it will fall back to
   * the original packages file
@@@ -343,10 -369,10 +369,10 @@@ pkgAcqDiffIndex::pkgAcqDiffIndex(pkgAcq
        return;
     }
  
-    if(Debug) 
-       std::clog << "pkgAcqIndexDiffs::pkgAcqIndexDiffs(): " 
-               << CurrentPackagesFile << std::endl;
-    
+    if(Debug)
+       std::clog << "pkgAcqDiffIndex::pkgAcqDiffIndex(): "
+        << CurrentPackagesFile << std::endl;
     QueueURI(Desc);
  
  }
@@@ -372,8 -398,8 +398,8 @@@ string pkgAcqDiffIndex::Custom600Header
  bool pkgAcqDiffIndex::ParseDiffIndex(string IndexDiffFile)            /*{{{*/
  {
     if(Debug)
-       std::clog << "pkgAcqIndexDiffs::ParseIndexDiff() " << IndexDiffFile 
-               << std::endl;
+       std::clog << "pkgAcqDiffIndex::ParseIndexDiff() " << IndexDiffFile
+        << std::endl;
  
     pkgTagSection Tags;
     string ServerSha1;
        SHA1.AddFD(fd);
        string const local_sha1 = SHA1.Result();
  
-       if(local_sha1 == ServerSha1) 
+       if(local_sha1 == ServerSha1)
        {
-        // we have the same sha1 as the server
+        // we have the same sha1 as the server so we are done here
         if(Debug)
            std::clog << "Package file is up-to-date" << std::endl;
-        // set found to true, this will queue a pkgAcqIndexDiffs with
-        // a empty availabe_patches
-        found = true;
-       } 
-       else 
+        // list cleanup needs to know that this file as well as the already
+        // present index is ours, so we create an empty diff to save it for us
+        new pkgAcqIndexDiffs(Owner, RealURI, Description, Desc.ShortDesc,
+              ExpectedHash, ServerSha1, available_patches);
+        return true;
+       }
+       else
        {
         if(Debug)
            std::clog << "SHA1-Current: " << ServerSha1 << " and we start at "<< fd.Name() << " " << fd.Size() << " " << local_sha1 << std::endl;
        }
  
        // we have something, queue the next diff
-       if(found) 
+       if(found)
        {
         // queue the diffs
         string::size_type const last_space = Description.rfind(" ");
         if(last_space != string::npos)
            Description.erase(last_space, Description.size()-last_space);
-        new pkgAcqIndexDiffs(Owner, RealURI, Description, Desc.ShortDesc,
-                             ExpectedHash, ServerSha1, available_patches);
+        /* decide if we should download patches one by one or in one go:
+           The first is good if the server merges patches, but many don't so client
+           based merging can be attempt in which case the second is better.
+           "bad things" will happen if patches are merged on the server,
+           but client side merging is attempt as well */
+        bool pdiff_merge = _config->FindB("Acquire::PDiffs::Merge", true);
+        if (pdiff_merge == true)
+        {
+           // reprepro adds this flag if it has merged patches on the server
+           std::string const precedence = Tags.FindS("X-Patch-Precedence");
+           pdiff_merge = (precedence != "merged");
+        }
+        if (pdiff_merge == false)
+           new pkgAcqIndexDiffs(Owner, RealURI, Description, Desc.ShortDesc,
+                 ExpectedHash, ServerSha1, available_patches);
+        else
+        {
+           std::vector<pkgAcqIndexMergeDiffs*> *diffs = new std::vector<pkgAcqIndexMergeDiffs*>(available_patches.size());
+           for(size_t i = 0; i < available_patches.size(); ++i)
+              (*diffs)[i] = new pkgAcqIndexMergeDiffs(Owner, RealURI, Description, Desc.ShortDesc, ExpectedHash,
+                    available_patches[i], diffs);
+        }
         Complete = false;
         Status = StatDone;
         Dequeue();
@@@ -497,7 -548,7 +548,7 @@@ void pkgAcqDiffIndex::Failed(string Mes
  {
     if(Debug)
        std::clog << "pkgAcqDiffIndex failed: " << Desc.URI << std::endl
-               << "Falling back to normal index file aquire" << std::endl;
+               << "Falling back to normal index file acquire" << std::endl;
  
     new pkgAcqIndex(Owner, RealURI, Description, Desc.ShortDesc, 
                   ExpectedHash);
@@@ -518,7 -569,7 +569,7 @@@ void pkgAcqDiffIndex::Done(string Messa
     string FinalFile;
     FinalFile = _config->FindDir("Dir::State::lists")+URItoFileName(RealURI);
  
-    // sucess in downloading the index
+    // success in downloading the index
     // rename the index
     FinalFile += string(".IndexDiff");
     if(Debug)
@@@ -577,7 -628,7 +628,7 @@@ void pkgAcqIndexDiffs::Failed(string Me
  {
     if(Debug)
        std::clog << "pkgAcqIndexDiffs failed: " << Desc.URI << std::endl
-               << "Falling back to normal index file aquire" << std::endl;
+               << "Falling back to normal index file acquire" << std::endl;
     new pkgAcqIndex(Owner, RealURI, Description,Desc.ShortDesc, 
                   ExpectedHash);
     Finish();
@@@ -595,9 -646,7 +646,7 @@@ void pkgAcqIndexDiffs::Finish(bool allD
  
        if(!ExpectedHash.empty() && !ExpectedHash.VerifyFile(DestFile))
        {
-        Status = StatAuthError;
-        ErrorText = _("MD5Sum mismatch");
-        Rename(DestFile,DestFile + ".FAILED");
+        RenameOnError(HashSumMismatch);
         Dequeue();
         return;
        }
@@@ -684,7 -733,7 +733,7 @@@ void pkgAcqIndexDiffs::Done(string Mess
     string FinalFile;
     FinalFile = _config->FindDir("Dir::State::lists")+URItoFileName(RealURI);
  
-    // sucess in downloading a diff, enter ApplyDiff state
+    // success in downloading a diff, enter ApplyDiff state
     if(State == StateFetchDiff)
     {
  
     {
        // remove the just applied patch
        available_patches.erase(available_patches.begin());
+       unlink((FinalFile + ".ed").c_str());
  
        // move into place
        if(Debug) 
     }
  }
                                                                        /*}}}*/
+ // AcqIndexMergeDiffs::AcqIndexMergeDiffs - Constructor                       /*{{{*/
+ pkgAcqIndexMergeDiffs::pkgAcqIndexMergeDiffs(pkgAcquire *Owner,
+                                  string const &URI, string const &URIDesc,
+                                  string const &ShortDesc, HashString const &ExpectedHash,
+                                  DiffInfo const &patch,
+                                  std::vector<pkgAcqIndexMergeDiffs*> const * const allPatches)
+    : Item(Owner), RealURI(URI), ExpectedHash(ExpectedHash),
+      patch(patch),allPatches(allPatches), State(StateFetchDiff)
+ {
+    DestFile = _config->FindDir("Dir::State::lists") + "partial/";
+    DestFile += URItoFileName(URI);
+    Debug = _config->FindB("Debug::pkgAcquire::Diffs",false);
+    Description = URIDesc;
+    Desc.Owner = this;
+    Desc.ShortDesc = ShortDesc;
+    Desc.URI = string(RealURI) + ".diff/" + patch.file + ".gz";
+    Desc.Description = Description + " " + patch.file + string(".pdiff");
+    DestFile = _config->FindDir("Dir::State::lists") + "partial/";
+    DestFile += URItoFileName(RealURI + ".diff/" + patch.file);
+    if(Debug)
+       std::clog << "pkgAcqIndexMergeDiffs: " << Desc.URI << std::endl;
+    QueueURI(Desc);
+ }
+                                                                       /*}}}*/
+ void pkgAcqIndexMergeDiffs::Failed(string Message,pkgAcquire::MethodConfig *Cnf)/*{{{*/
+ {
+    if(Debug)
+       std::clog << "pkgAcqIndexMergeDiffs failed: " << Desc.URI << " with " << Message << std::endl;
+    Complete = false;
+    Status = StatDone;
+    Dequeue();
+    // check if we are the first to fail, otherwise we are done here
+    State = StateDoneDiff;
+    for (std::vector<pkgAcqIndexMergeDiffs *>::const_iterator I = allPatches->begin();
+        I != allPatches->end(); ++I)
+       if ((*I)->State == StateErrorDiff)
+        return;
+    // first failure means we should fallback
+    State = StateErrorDiff;
+    std::clog << "Falling back to normal index file acquire" << std::endl;
+    new pkgAcqIndex(Owner, RealURI, Description,Desc.ShortDesc,
+                  ExpectedHash);
+ }
+                                                                       /*}}}*/
+ void pkgAcqIndexMergeDiffs::Done(string Message,unsigned long long Size,string Md5Hash,       /*{{{*/
+                           pkgAcquire::MethodConfig *Cnf)
+ {
+    if(Debug)
+       std::clog << "pkgAcqIndexMergeDiffs::Done(): " << Desc.URI << std::endl;
+    Item::Done(Message,Size,Md5Hash,Cnf);
+    string const FinalFile = _config->FindDir("Dir::State::lists") + URItoFileName(RealURI);
+    if (State == StateFetchDiff)
+    {
+       // rred expects the patch as $FinalFile.ed.$patchname.gz
+       Rename(DestFile, FinalFile + ".ed." + patch.file + ".gz");
+       // check if this is the last completed diff
+       State = StateDoneDiff;
+       for (std::vector<pkgAcqIndexMergeDiffs *>::const_iterator I = allPatches->begin();
+           I != allPatches->end(); ++I)
+        if ((*I)->State != StateDoneDiff)
+        {
+           if(Debug)
+              std::clog << "Not the last done diff in the batch: " << Desc.URI << std::endl;
+           return;
+        }
+       // this is the last completed diff, so we are ready to apply now
+       State = StateApplyDiff;
+       if(Debug)
+        std::clog << "Sending to rred method: " << FinalFile << std::endl;
+       Local = true;
+       Desc.URI = "rred:" + FinalFile;
+       QueueURI(Desc);
+       Mode = "rred";
+       return;
+    }
+    // success in download/apply all diffs, clean up
+    else if (State == StateApplyDiff)
+    {
+       // see if we really got the expected file
+       if(!ExpectedHash.empty() && !ExpectedHash.VerifyFile(DestFile))
+       {
+        RenameOnError(HashSumMismatch);
+        return;
+       }
+       // move the result into place
+       if(Debug)
+        std::clog << "Moving patched file in place: " << std::endl
+                  << DestFile << " -> " << FinalFile << std::endl;
+       Rename(DestFile, FinalFile);
+       chmod(FinalFile.c_str(), 0644);
+       // otherwise lists cleanup will eat the file
+       DestFile = FinalFile;
+       // ensure the ed's are gone regardless of list-cleanup
+       for (std::vector<pkgAcqIndexMergeDiffs *>::const_iterator I = allPatches->begin();
+           I != allPatches->end(); ++I)
+       {
+           std::string patch = FinalFile + ".ed." + (*I)->patch.file + ".gz";
+           unlink(patch.c_str());
+       }
+       // all set and done
+       Complete = true;
+       if(Debug)
+        std::clog << "allDone: " << DestFile << "\n" << std::endl;
+    }
+ }
+                                                                       /*}}}*/
  // AcqIndex::AcqIndex - Constructor                                   /*{{{*/
  // ---------------------------------------------------------------------
  /* The package file is added to the queue and a second class is 
@@@ -866,10 -1041,7 +1041,7 @@@ void pkgAcqIndex::Done(string Message,u
  
        if (!ExpectedHash.empty() && ExpectedHash.toStr() != Hash)
        {
-          Status = StatAuthError;
-          ErrorText = _("Hash Sum mismatch");
-          Rename(DestFile,DestFile + ".FAILED");
-        ReportMirrorFailure("HashChecksumFailure");
+        RenameOnError(HashSumMismatch);
           return;
        }
  
        if (Verify == true)
        {
         FileFd fd(DestFile, FileFd::ReadOnly);
-        pkgTagSection sec;
-        pkgTagFile tag(&fd);
-          // Only test for correctness if the file is not empty (empty is ok)
-          if (fd.Size() > 0) {
-             if (_error->PendingError() || !tag.Step(sec)) {
-                Status = StatError;
-                _error->DumpErrors();
-                Rename(DestFile,DestFile + ".FAILED");
-                return;
-             } else if (!sec.Exists("Package")) {
-                Status = StatError;
-                ErrorText = ("Encountered a section with no Package: header");
-                Rename(DestFile,DestFile + ".FAILED");
-                return;
-             }
+        // Only test for correctness if the file is not empty (empty is ok)
+        if (fd.FileSize() > 0)
+        {
+           pkgTagSection sec;
+           pkgTagFile tag(&fd);
+           // all our current indexes have a field 'Package' in each section
+           if (_error->PendingError() == true || tag.Step(sec) == false || sec.Exists("Package") == false)
+           {
+              RenameOnError(InvalidFormat);
+              return;
+           }
           }
        }
         
     DestFile += ".decomp";
     Desc.URI = decompProg + ":" + FileName;
     QueueURI(Desc);
+    // FIXME: this points to a c++ string that goes out of scope
     Mode = decompProg.c_str();
  }
                                                                        /*}}}*/
@@@ -1070,7 -1240,7 +1240,7 @@@ pkgAcqMetaSig::pkgAcqMetaSig(pkgAcquir
     if (RealFileExists(Final) == true)
     {
        // File was already in place.  It needs to be re-downloaded/verified
-       // because Release might have changed, we do give it a differnt
+       // because Release might have changed, we do give it a different
        // name than DestFile because otherwise the http method will
        // send If-Range requests and there are too many broken servers
        // out there that do not understand them
@@@ -1247,20 -1417,9 +1417,20 @@@ void pkgAcqMetaIndex::Done(string Messa
        }
        else
        {
 +         // FIXME: move this into pkgAcqMetaClearSig::Done on the next
 +         //        ABI break
 +
 +         // if we expect a ClearTextSignature (InRelase), ensure that
 +         // this is what we get and if not fail to queue a 
 +         // Release/Release.gpg, see #346386
 +         if (SigFile == DestFile && !StartsWithGPGClearTextSignature(DestFile))
 +         {
 +            Failed(Message, Cfg);
 +            return;
 +         }
 +
           // There was a signature file, so pass it to gpgv for
           // verification
 -
           if (_config->FindB("Debug::pkgAcquire::Auth", false))
              std::cerr << "Metaindex acquired, queueing gpg verification ("
                        << SigFile << "," << DestFile << ")\n";
@@@ -1728,34 -1887,40 +1898,40 @@@ pkgAcqArchive::pkgAcqArchive(pkgAcquir
     }
  
     // check if we have one trusted source for the package. if so, switch
-    // to "TrustedOnly" mode
+    // to "TrustedOnly" mode - but only if not in AllowUnauthenticated mode
+    bool const allowUnauth = _config->FindB("APT::Get::AllowUnauthenticated", false);
+    bool const debugAuth = _config->FindB("Debug::pkgAcquire::Auth", false);
+    bool seenUntrusted = false;
     for (pkgCache::VerFileIterator i = Version.FileList(); i.end() == false; ++i)
     {
        pkgIndexFile *Index;
        if (Sources->FindIndex(i.File(),Index) == false)
           continue;
-       if (_config->FindB("Debug::pkgAcquire::Auth", false))
-       {
+       if (debugAuth == true)
           std::cerr << "Checking index: " << Index->Describe()
-                    << "(Trusted=" << Index->IsTrusted() << ")\n";
-       }
-       if (Index->IsTrusted()) {
+                    << "(Trusted=" << Index->IsTrusted() << ")" << std::endl;
+       if (Index->IsTrusted() == true)
+       {
           Trusted = true;
-        break;
+        if (allowUnauth == false)
+           break;
        }
+       else
+          seenUntrusted = true;
     }
  
     // "allow-unauthenticated" restores apts old fetching behaviour
     // that means that e.g. unauthenticated file:// uris are higher
     // priority than authenticated http:// uris
-    if (_config->FindB("APT::Get::AllowUnauthenticated",false) == true)
+    if (allowUnauth == true && seenUntrusted == true)
        Trusted = false;
  
     // Select a source
     if (QueueNext() == false && _error->PendingError() == false)
-       _error->Error(_("I wasn't able to locate a file for the %s package. "
-                   "This might mean you need to manually fix this package."),
-                   Version.ParentPkg().Name());
+       _error->Error(_("Can't find a source to download version '%s' of '%s'"),
+                   Version.VerStr(), Version.ParentPkg().FullName(false).c_str());
  }
                                                                        /*}}}*/
  // AcqArchive::QueueNext - Queue the next file source                 /*{{{*/
@@@ -1856,7 -2021,7 +2032,7 @@@ bool pkgAcqArchive::QueueNext(
            return true;
         }
         
-        /* Hmm, we have a file and its size does not match, this shouldnt
+        /* Hmm, we have a file and its size does not match, this shouldn't
            happen.. */
         unlink(FinalFile.c_str());
        }
@@@ -1909,18 -2074,14 +2085,14 @@@ void pkgAcqArchive::Done(string Message
     // Check the size
     if (Size != Version->Size)
     {
-       Status = StatError;
-       ErrorText = _("Size mismatch");
+       RenameOnError(SizeMismatch);
        return;
     }
     
     // Check the hash
     if(ExpectedHash.toStr() != CalcHash)
     {
-       Status = StatError;
-       ErrorText = _("Hash Sum mismatch");
-       if(FileExists(DestFile))
-        Rename(DestFile,DestFile + ".FAILED");
+       RenameOnError(HashSumMismatch);
        return;
     }
  
@@@ -2060,9 -2221,7 +2232,7 @@@ void pkgAcqFile::Done(string Message,un
     // Check the hash
     if(!ExpectedHash.empty() && ExpectedHash.toStr() != CalcHash)
     {
-       Status = StatError;
-       ErrorText = _("Hash Sum mismatch");
-       Rename(DestFile,DestFile + ".FAILED");
+       RenameOnError(HashSumMismatch);
        return;
     }
     
index ac2879017be24b7b2e7a26132da8b0746067be3c,52411a76202deb9bcc832ef4a3126cbb3a734486..9da5ac84ec8f7449aa4086ffed944e55bbc65aac
@@@ -222,7 -222,7 +222,7 @@@ int GetLock(string File,bool Errors
     int FD = open(File.c_str(),O_RDWR | O_CREAT | O_NOFOLLOW,0640);
     if (FD < 0)
     {
-       // Read only .. cant have locking problems there.
+       // Read only .. can't have locking problems there.
        if (errno == EROFS)
        {
         _error->Warning(_("Not using locking for read only lock file %s"),File.c_str());
     }
     SetCloseExec(FD,true);
        
-    // Aquire a write lock
+    // Acquire a write lock
     struct flock fl;
     fl.l_type = F_WRLCK;
     fl.l_whence = SEEK_SET;
@@@ -319,7 -319,7 +319,7 @@@ bool CreateDirectory(string const &Pare
        return false;
  
     // we are not going to create directories "into the blue"
-    if (Path.find(Parent, 0) != 0)
+    if (Path.compare(0, Parent.length(), Parent) != 0)
        return false;
  
     vector<string> const dirs = VectorizeString(Path.substr(Parent.size()), '/');
@@@ -465,7 -465,7 +465,7 @@@ std::vector<string> GetListOfFilesInDir
        const char *C = Ent->d_name;
        for (; *C != 0; ++C)
         if (isalpha(*C) == 0 && isdigit(*C) == 0
-            && *C != '_' && *C != '-') {
+            && *C != '_' && *C != '-' && *C != ':') {
            // no required extension -> dot is a bad character
            if (*C == '.' && Ext.empty() == false)
               continue;
@@@ -656,9 -656,9 +656,9 @@@ string flNoLink(string File
     while (1)
     {
        // Read the link
-       int Res;
+       ssize_t Res;
        if ((Res = readlink(NFile.c_str(),Buffer,sizeof(Buffer))) <= 0 || 
-         (unsigned)Res >= sizeof(Buffer))
+         (size_t)Res >= sizeof(Buffer))
          return File;
        
        // Append or replace the previous path
@@@ -760,12 -760,42 +760,42 @@@ bool WaitFd(int Fd,bool write,unsigned 
     return true;
  }
                                                                        /*}}}*/
+ // MergeKeepFdsFromConfiguration - Merge APT::Keep-Fds configuration  /*{{{*/
+ // ---------------------------------------------------------------------
+ /* This is used to merge the APT::Keep-Fds with the provided KeepFDs
+  * set.
+  */
+ void MergeKeepFdsFromConfiguration(std::set<int> &KeepFDs)
+ {
+       Configuration::Item const *Opts = _config->Tree("APT::Keep-Fds");
+       if (Opts != 0 && Opts->Child != 0)
+       {
+        Opts = Opts->Child;
+        for (; Opts != 0; Opts = Opts->Next)
+        {
+           if (Opts->Value.empty() == true)
+              continue;
+           int fd = atoi(Opts->Value.c_str());
+           KeepFDs.insert(fd);
+        }
+       }
+ }
+                                                                       /*}}}*/
  // ExecFork - Magical fork that sanitizes the context before execing  /*{{{*/
  // ---------------------------------------------------------------------
  /* This is used if you want to cleanse the environment for the forked 
     child, it fixes up the important signals and nukes all of the fds,
     otherwise acts like normal fork. */
  pid_t ExecFork()
+ {
+       set<int> KeepFDs;
+       // we need to merge the Keep-Fds as external tools like 
+       // debconf-apt-progress use it
+       MergeKeepFdsFromConfiguration(KeepFDs);
+       return ExecFork(KeepFDs);
+ }
+ pid_t ExecFork(std::set<int> KeepFDs)
  {
     // Fork off the process
     pid_t Process = fork();
        signal(SIGCONT,SIG_DFL);
        signal(SIGTSTP,SIG_DFL);
  
-       set<int> KeepFDs;
-       Configuration::Item const *Opts = _config->Tree("APT::Keep-Fds");
-       if (Opts != 0 && Opts->Child != 0)
-       {
-        Opts = Opts->Child;
-        for (; Opts != 0; Opts = Opts->Next)
-        {
-           if (Opts->Value.empty() == true)
-              continue;
-           int fd = atoi(Opts->Value.c_str());
-           KeepFDs.insert(fd);
-        }
-       }
        // Close all of our FDs - just in case
-       for (int K = 3; K != 40; K++)
+       for (int K = 3; K != sysconf(_SC_OPEN_MAX); K++)
        {
         if(KeepFDs.find(K) == KeepFDs.end())
            fcntl(K,F_SETFD,FD_CLOEXEC);
@@@ -858,26 -874,6 +874,26 @@@ bool ExecWait(pid_t Pid,const char *Nam
  }
                                                                        /*}}}*/
  
 +// StartsWithGPGClearTextSignature - Check if a file is Pgp/GPG clearsigned     /*{{{*/
 +// ---------------------------------------------------------------------
 +/* */
 +bool StartsWithGPGClearTextSignature(string const &FileName)
 +{
 +   static const char* SIGMSG = "-----BEGIN PGP SIGNED MESSAGE-----\n";
 +   char buffer[strlen(SIGMSG)+1];
 +   FILE* gpg = fopen(FileName.c_str(), "r");
 +   if (gpg == NULL)
 +      return false;
 +
 +   char const * const test = fgets(buffer, sizeof(buffer), gpg);
 +   fclose(gpg);
 +   if (test == NULL || strcmp(buffer, SIGMSG) != 0)
 +      return false;
 +
 +   return true;
 +}
 +
 +
  // FileFd::Open - Open a file                                         /*{{{*/
  // ---------------------------------------------------------------------
  /* The most commonly used open mode combinations are given with Mode */
@@@ -966,9 -962,6 +982,6 @@@ bool FileFd::Open(string FileName,unsig
     if ((Mode & Atomic) == Atomic)
     {
        Flags |= Replace;
-       char *name = strdup((FileName + ".XXXXXX").c_str());
-       TemporaryFileName = string(mktemp(name));
-       free(name);
     }
     else if ((Mode & (Exclusive | Create)) == (Exclusive | Create))
     {
     if_FLAGGED_SET(Create, O_CREAT);
     if_FLAGGED_SET(Empty, O_TRUNC);
     if_FLAGGED_SET(Exclusive, O_EXCL);
-    else if_FLAGGED_SET(Atomic, O_EXCL);
     #undef if_FLAGGED_SET
  
-    if (TemporaryFileName.empty() == false)
-       iFd = open(TemporaryFileName.c_str(), fileflags, Perms);
+    if ((Mode & Atomic) == Atomic)
+    {
+       char *name = strdup((FileName + ".XXXXXX").c_str());
+       if((iFd = mkstemp(name)) == -1)
+       {
+           free(name);
+           return FileFdErrno("mkstemp", "Could not create temporary file for %s", FileName.c_str());
+       }
+       TemporaryFileName = string(name);
+       free(name);
+       if(Perms != 600 && fchmod(iFd, Perms) == -1)
+           return FileFdErrno("fchmod", "Could not change permissions for temporary file %s", TemporaryFileName.c_str());
+    }
     else
        iFd = open(FileName.c_str(), fileflags, Perms);
  
@@@ -1250,11 -1256,11 +1276,11 @@@ FileFd::~FileFd(
                                                                        /*}}}*/
  // FileFd::Read - Read a bit of the file                              /*{{{*/
  // ---------------------------------------------------------------------
- /* We are carefull to handle interruption by a signal while reading 
+ /* We are careful to handle interruption by a signal while reading
     gracefully. */
  bool FileFd::Read(void *To,unsigned long long Size,unsigned long long *Actual)
  {
-    int Res;
+    ssize_t Res;
     errno = 0;
     if (Actual != 0)
        *Actual = 0;
@@@ -1354,7 -1360,7 +1380,7 @@@ char* FileFd::ReadLine(char *To, unsign
  /* */
  bool FileFd::Write(const void *From,unsigned long long Size)
  {
-    int Res;
+    ssize_t Res;
     errno = 0;
     do
     {
  }
  bool FileFd::Write(int Fd, const void *From, unsigned long long Size)
  {
-    int Res;
+    ssize_t Res;
     errno = 0;
     do
     {
@@@ -1481,14 -1487,14 +1507,14 @@@ bool FileFd::Seek(unsigned long long To
        d->seekpos = To;
        return true;
     }
-    int res;
+    off_t res;
  #ifdef HAVE_ZLIB
     if (d != NULL && d->gz)
        res = gzseek(d->gz,To,SEEK_SET);
     else
  #endif
        res = lseek(iFd,To,SEEK_SET);
-    if (res != (signed)To)
+    if (res != (off_t)To)
        return FileFdError("Unable to seek to %llu", To);
  
     if (d != NULL)
@@@ -1519,7 -1525,7 +1545,7 @@@ bool FileFd::Skip(unsigned long long Ov
        return true;
     }
  
-    int res;
+    off_t res;
  #ifdef HAVE_ZLIB
     if (d != NULL && d->gz != NULL)
        res = gzseek(d->gz,Over,SEEK_CUR);
  /* */
  bool FileFd::Truncate(unsigned long long To)
  {
+    // truncating /dev/null is always successful - as we get an error otherwise
+    if (To == 0 && FileName == "/dev/null")
+       return true;
  #if defined HAVE_ZLIB || defined HAVE_BZ2
     if (d != NULL && (d->gz != NULL || d->bz2 != NULL))
        return FileFdError("Truncating compressed files is not implemented (%s)", FileName.c_str());
@@@ -1579,29 -1588,55 +1608,55 @@@ unsigned long long FileFd::Tell(
     return Res;
  }
                                                                        /*}}}*/
- // FileFd::FileSize - Return the size of the file                     /*{{{*/
- // ---------------------------------------------------------------------
- /* */
- unsigned long long FileFd::FileSize()
+ static bool StatFileFd(char const * const msg, int const iFd, std::string const &FileName, struct stat &Buf, FileFdPrivate * const d) /*{{{*/
  {
-    struct stat Buf;
-    if ((d == NULL || d->pipe == false) && fstat(iFd,&Buf) != 0)
-       return FileFdErrno("fstat","Unable to determine the file size");
+    bool ispipe = (d != NULL && d->pipe == true);
+    if (ispipe == false)
+    {
+       if (fstat(iFd,&Buf) != 0)
+        // higher-level code will generate more meaningful messages,
+        // even translated this would be meaningless for users
+        return _error->Errno("fstat", "Unable to determine %s for fd %i", msg, iFd);
+       ispipe = S_ISFIFO(Buf.st_mode);
+    }
  
     // for compressor pipes st_size is undefined and at 'best' zero
-    if ((d != NULL && d->pipe == true) || S_ISFIFO(Buf.st_mode))
+    if (ispipe == true)
     {
        // we set it here, too, as we get the info here for free
        // in theory the Open-methods should take care of it already
        if (d != NULL)
         d->pipe = true;
        if (stat(FileName.c_str(), &Buf) != 0)
-        return FileFdErrno("stat","Unable to determine the file size");
+        return _error->Errno("fstat", "Unable to determine %s for file %s", msg, FileName.c_str());
+    }
+    return true;
+ }
+                                                                       /*}}}*/
+ // FileFd::FileSize - Return the size of the file                     /*{{{*/
+ unsigned long long FileFd::FileSize()
+ {
+    struct stat Buf;
+    if (StatFileFd("file size", iFd, FileName, Buf, d) == false)
+    {
+       Flags |= Fail;
+       return 0;
     }
     return Buf.st_size;
  }
                                                                        /*}}}*/
+ // FileFd::ModificationTime - Return the time of last touch           /*{{{*/
+ time_t FileFd::ModificationTime()
+ {
+    struct stat Buf;
+    if (StatFileFd("modification time", iFd, FileName, Buf, d) == false)
+    {
+       Flags |= Fail;
+       return 0;
+    }
+    return Buf.st_mtime;
+ }
+                                                                       /*}}}*/
  // FileFd::Size - Return the size of the content in the file          /*{{{*/
  // ---------------------------------------------------------------------
  /* */
@@@ -1673,35 -1708,6 +1728,6 @@@ unsigned long long FileFd::Size(
     return size;
  }
                                                                        /*}}}*/
- // FileFd::ModificationTime - Return the time of last touch           /*{{{*/
- // ---------------------------------------------------------------------
- /* */
- time_t FileFd::ModificationTime()
- {
-    struct stat Buf;
-    if ((d == NULL || d->pipe == false) && fstat(iFd,&Buf) != 0)
-    {
-       FileFdErrno("fstat","Unable to determine the modification time of file %s", FileName.c_str());
-       return 0;
-    }
-    // for compressor pipes st_size is undefined and at 'best' zero
-    if ((d != NULL && d->pipe == true) || S_ISFIFO(Buf.st_mode))
-    {
-       // we set it here, too, as we get the info here for free
-       // in theory the Open-methods should take care of it already
-       if (d != NULL)
-        d->pipe = true;
-       if (stat(FileName.c_str(), &Buf) != 0)
-       {
-        FileFdErrno("fstat","Unable to determine the modification time of file %s", FileName.c_str());
-        return 0;
-       }
-    }
-    return Buf.st_mtime;
- }
-                                                                       /*}}}*/
  // FileFd::Close - Close the file if the close flag is set            /*{{{*/
  // ---------------------------------------------------------------------
  /* */
@@@ -1797,7 -1803,8 +1823,8 @@@ std::vector<std::string> Glob(std::stri
  {
     std::vector<std::string> result;
     glob_t globbuf;
-    int glob_res, i;
+    int glob_res;
+    unsigned int i;
  
     glob_res = glob(pattern.c_str(),  flags, NULL, &globbuf);
  
     return result;
  }
                                                                        /*}}}*/
+ std::string GetTempDir()
+ {
+    const char *tmpdir = getenv("TMPDIR");
+ #ifdef P_tmpdir
+    if (!tmpdir)
+       tmpdir = P_tmpdir;
+ #endif
+    // check that tmpdir is set and exists
+    struct stat st;
+    if (!tmpdir || strlen(tmpdir) == 0 || stat(tmpdir, &st) != 0)
+       tmpdir = "/tmp";
+    return string(tmpdir);
+ }
index 9402c8f75300800d687062b9ea43bf20d6b06aa5,e752e96211ddd54343dd05b0a08082dc1f9d85b1..58a90e83b1a0fce4d9069c13af4fee419c7ecdb6
@@@ -26,6 -26,7 +26,7 @@@
  
  #include <string>
  #include <vector>
+ #include <set>
  
  #include <zlib.h>
  
@@@ -164,6 -165,8 +165,8 @@@ bool DirectoryExists(std::string const 
  bool CreateDirectory(std::string const &Parent, std::string const &Path);
  time_t GetModificationTime(std::string const &Path);
  
+ std::string GetTempDir();
  /** \brief Ensure the existence of the given Path
   *
   *  \param Parent directory of the Path directory - a trailing
@@@ -182,11 -185,10 +185,13 @@@ void SetCloseExec(int Fd,bool Close)
  void SetNonBlock(int Fd,bool Block);
  bool WaitFd(int Fd,bool write = false,unsigned long timeout = 0);
  pid_t ExecFork();
+ pid_t ExecFork(std::set<int> keep_fds);
+ void MergeKeepFdsFromConfiguration(std::set<int> &keep_fds);
  bool ExecWait(pid_t Pid,const char *Name,bool Reap = false);
  
 +// check if the given file starts with a PGP cleartext signature
 +bool StartsWithGPGClearTextSignature(std::string const &FileName);
 +
  // File string manipulators
  std::string flNotDir(std::string File);
  std::string flNotFile(std::string File);
diff --combined apt-pkg/deb/dpkgpm.cc
index b069f22f7f04580d8844e176ea741829f9417762,91893c4e18deb1631d8ba4c94abd5b3ed686ce58..b975754b0323196f5417928cb843c6deb9b9900b
@@@ -19,6 -19,7 +19,7 @@@
  #include <apt-pkg/fileutl.h>
  #include <apt-pkg/cachefile.h>
  #include <apt-pkg/packagemanager.h>
+ #include <apt-pkg/install-progress.h>
  
  #include <unistd.h>
  #include <stdlib.h>
  #include <map>
  #include <pwd.h>
  #include <grp.h>
+ #include <iomanip>
  
  #include <termios.h>
  #include <unistd.h>
  #include <sys/ioctl.h>
  #include <pty.h>
+ #include <stdio.h>
  
  #include <apti18n.h>
                                                                        /*}}}*/
@@@ -52,10 -55,14 +55,14 @@@ class pkgDPkgPMPrivat
  {
  public:
     pkgDPkgPMPrivate() : stdin_is_dev_null(false), dpkgbuf_pos(0),
-                       term_out(NULL), history_out(NULL)
+                       term_out(NULL), history_out(NULL), 
+                         progress(NULL), master(-1), slave(-1)
     {
        dpkgbuf[0] = '\0';
     }
+    ~pkgDPkgPMPrivate()
+    {
+    }
     bool stdin_is_dev_null;
     // the buffer we use for the dpkg status-fd reading
     char dpkgbuf[1024];
     FILE *term_out;
     FILE *history_out;
     string dpkg_error;
+    APT::Progress::PackageManager *progress;
+    // pty stuff
+    struct     termios tt;
+    int master;
+    int slave;
+    // signals
+    sigset_t sigmask;
+    sigset_t original_sigmask;
  };
  
  namespace
@@@ -125,6 -143,20 +143,20 @@@ ionice(int PID
     return ExecWait(Process, "ionice");
  }
  
+ static std::string getDpkgExecutable()
+ {
+    string Tmp = _config->Find("Dir::Bin::dpkg","dpkg");
+    string const dpkgChrootDir = _config->FindDir("DPkg::Chroot-Directory", "/");
+    size_t dpkgChrootLen = dpkgChrootDir.length();
+    if (dpkgChrootDir != "/" && Tmp.find(dpkgChrootDir) == 0)
+    {
+       if (dpkgChrootDir[dpkgChrootLen - 1] == '/')
+          --dpkgChrootLen;
+       Tmp = Tmp.substr(dpkgChrootLen);
+    }
+    return Tmp;
+ }
  // dpkgChrootDirectory - chrooting for dpkg if needed                 /*{{{*/
  static void dpkgChrootDirectory()
  {
@@@ -170,7 -202,7 +202,7 @@@ pkgCache::VerIterator FindNowVersion(co
  // ---------------------------------------------------------------------
  /* */
  pkgDPkgPM::pkgDPkgPM(pkgDepCache *Cache) 
-    : pkgPackageManager(Cache), PackagesDone(0), PackagesTotal(0)
+    : pkgPackageManager(Cache), pkgFailures(0), PackagesDone(0), PackagesTotal(0)
  {
     d = new pkgDPkgPMPrivate();
  }
@@@ -385,17 -417,21 +417,21 @@@ bool pkgDPkgPM::RunScriptsWithPkgs(cons
        unsigned int InfoFD = _config->FindI(OptSec + "::InfoFD", STDIN_FILENO);
        
        // Create the pipes
+       std::set<int> KeepFDs;
+       MergeKeepFdsFromConfiguration(KeepFDs);
        int Pipes[2];
        if (pipe(Pipes) != 0)
         return _error->Errno("pipe","Failed to create IPC pipe to subprocess");
        if (InfoFD != (unsigned)Pipes[0])
         SetCloseExec(Pipes[0],true);
        else
-        _config->Set("APT::Keep-Fds::", Pipes[0]);
+          KeepFDs.insert(Pipes[0]);
        SetCloseExec(Pipes[1],true);
  
        // Purified Fork for running the script
-       pid_t Process = ExecFork();
+       pid_t Process = ExecFork(KeepFDs);
        if (Process == 0)
        {
         // Setup the FDs
         execv(Args[0],(char **)Args);
         _exit(100);
        }
-       if (InfoFD == (unsigned)Pipes[0])
-        _config->Clear("APT::Keep-Fds", Pipes[0]);
        close(Pipes[0]);
        FILE *F = fdopen(Pipes[1],"w");
        if (F == 0)
  void pkgDPkgPM::DoStdin(int master)
  {
     unsigned char input_buf[256] = {0,}; 
 -   ssize_t len = read(0, input_buf, sizeof(input_buf));
 +   ssize_t len = read(STDIN_FILENO, input_buf, sizeof(input_buf));
     if (len)
        FileFd::Write(master, input_buf, len);
     else
@@@ -501,156 -535,184 +535,184 @@@ void pkgDPkgPM::DoTerminalPty(int maste
  // ---------------------------------------------------------------------
  /*
   */
- void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line)
+ void pkgDPkgPM::ProcessDpkgStatusLine(char *line)
  {
     bool const Debug = _config->FindB("Debug::pkgDPkgProgressReporting",false);
-    // the status we output
-    ostringstream status;
     if (Debug == true)
        std::clog << "got from dpkg '" << line << "'" << std::endl;
  
     /* dpkg sends strings like this:
-       'status:   <pkg>:  <pkg  qstate>'
-       errors look like this:
-       'status: /var/cache/apt/archives/krecipes_0.8.1-0ubuntu1_i386.deb : error : trying to overwrite `/usr/share/doc/kde/HTML/en/krecipes/krectip.png', which is also in package krecipes-data 
-       and conffile-prompt like this
-       'status: conffile-prompt: conffile : 'current-conffile' 'new-conffile' useredited distedited
+       'status:   <pkg>: <pkg  qstate>'
+       'status:   <pkg>:<arch>: <pkg  qstate>'
        
-       Newer versions of dpkg sent also:
-       'processing: install: pkg'
-       'processing: configure: pkg'
-       'processing: remove: pkg'
-       'processing: purge: pkg'
-       'processing: disappear: pkg'
-       'processing: trigproc: trigger'
-           
+       'processing: {install,configure,remove,purge,disappear,trigproc}: pkg'
+       'processing: {install,configure,remove,purge,disappear,trigproc}: trigger'
     */
-    char* list[6];
-    //        dpkg sends multiline error messages sometimes (see
-    //        #374195 for a example. we should support this by
-    //        either patching dpkg to not send multiline over the
-    //        statusfd or by rewriting the code here to deal with
-    //        it. for now we just ignore it and not crash
-    TokSplitString(':', line, list, sizeof(list)/sizeof(list[0]));
-    if( list[0] == NULL || list[1] == NULL || list[2] == NULL) 
+    // we need to split on ": " (note the appended space) as the ':' is
+    // part of the pkgname:arch information that dpkg sends
+    // 
+    // A dpkg error message may contain additional ":" (like
+    //  "failed in buffer_write(fd) (10, ret=-1): backend dpkg-deb ..."
+    // so we need to ensure to not split too much
+    std::vector<std::string> list = StringSplit(line, ": ", 4);
+    if(list.size() < 3)
     {
        if (Debug == true)
         std::clog << "ignoring line: not enough ':'" << std::endl;
        return;
     }
-    const char* const pkg = list[1];
-    const char* action = _strstrip(list[2]);
+    // build the (prefix, pkgname, action) tuple, position of this
+    // is different for "processing" or "status" messages
+    std::string prefix = APT::String::Strip(list[0]);
+    std::string pkgname;
+    std::string action;
+    // "processing" has the form "processing: action: pkg or trigger"
+    // with action = ["install", "configure", "remove", "purge", "disappear",
+    //                "trigproc"]
+    if (prefix == "processing")
+    {
+       pkgname = APT::String::Strip(list[2]);
+       action = APT::String::Strip(list[1]);
+    }
+    // "status" has the form: "status: pkg: state"
+    // with state in ["half-installed", "unpacked", "half-configured", 
+    //                "installed", "config-files", "not-installed"]
+    else if (prefix == "status")
+    {
+       pkgname = APT::String::Strip(list[1]);
+       action = APT::String::Strip(list[2]);
+    } else {
+       if (Debug == true)
+        std::clog << "unknown prefix '" << prefix << "'" << std::endl;
+       return;
+    }
+    /* handle the special cases first:
+       errors look like this:
+       'status: /var/cache/apt/archives/krecipes_0.8.1-0ubuntu1_i386.deb : error : trying to overwrite `/usr/share/doc/kde/HTML/en/krecipes/krectip.png', which is also in package krecipes-data 
+       and conffile-prompt like this
+       'status:/etc/compiz.conf/compiz.conf :  conffile-prompt: 'current-conffile' 'new-conffile' useredited distedited
+    */
+    if (prefix == "status")
+    {
+       if(action == "error")
+       {
+          d->progress->Error(list[1], PackagesDone, PackagesTotal,
+                             list[3]);
+          pkgFailures++;
+          WriteApportReport(list[1].c_str(), list[3].c_str());
+          return;
+       }
+       else if(action == "conffile-prompt")
+       {
+          d->progress->ConffilePrompt(list[1], PackagesDone, PackagesTotal,
+                                      list[3]);
+          return;
+       }
+    }
+    // at this point we know that we should have a valid pkgname, so build all 
+    // the info from it
+    // dpkg does not send always send "pkgname:arch" so we add it here 
+    // if needed
+    if (pkgname.find(":") == std::string::npos)
+    {
+       // find the package in the group that is in a touched by dpkg
+       // if there are multiple dpkg will send us a full pkgname:arch
+       pkgCache::GrpIterator Grp = Cache.FindGrp(pkgname);
+       if (Grp.end() == false) 
+       {
+           pkgCache::PkgIterator P = Grp.PackageList();
+           for (; P.end() != true; P = Grp.NextPkg(P))
+           {
+               if(Cache[P].Mode != pkgDepCache::ModeKeep)
+               {
+                   pkgname = P.FullName();
+                   break;
+               }
+           }
+       }
+    }
+    
+    const char* const pkg = pkgname.c_str();
+    std::string short_pkgname = StringSplit(pkgname, ":")[0];
+    std::string arch = "";
+    if (pkgname.find(":") != string::npos)
+       arch = StringSplit(pkgname, ":")[1];
+    std::string i18n_pkgname = pkgname;
+    if (arch.size() != 0)
+       strprintf(i18n_pkgname, "%s (%s)", short_pkgname.c_str(), arch.c_str());
  
     // 'processing' from dpkg looks like
     // 'processing: action: pkg'
-    if(strncmp(list[0], "processing", strlen("processing")) == 0)
+    if(prefix == "processing")
     {
-       char s[200];
-       const char* const pkg_or_trigger = _strstrip(list[2]);
-       action = _strstrip( list[1]);
        const std::pair<const char *, const char *> * const iter =
        std::find_if(PackageProcessingOpsBegin,
                     PackageProcessingOpsEnd,
-                    MatchProcessingOp(action));
+                    MatchProcessingOp(action.c_str()));
        if(iter == PackageProcessingOpsEnd)
        {
         if (Debug == true)
            std::clog << "ignoring unknown action: " << action << std::endl;
         return;
        }
-       snprintf(s, sizeof(s), _(iter->second), pkg_or_trigger);
-       status << "pmstatus:" << pkg_or_trigger
-            << ":"  << (PackagesDone/float(PackagesTotal)*100.0) 
-            << ":" << s
-            << endl;
-       if(OutStatusFd > 0)
-        FileFd::Write(OutStatusFd, status.str().c_str(), status.str().size());
-       if (Debug == true)
-        std::clog << "send: '" << status.str() << "'" << endl;
-       if (strncmp(action, "disappear", strlen("disappear")) == 0)
-        handleDisappearAction(pkg_or_trigger);
-       return;
-    }
-    if(strncmp(action,"error",strlen("error")) == 0)
-    {
-       // urgs, sometime has ":" in its error string so that we
-       // end up with the error message split between list[3]
-       // and list[4], e.g. the message: 
-       // "failed in buffer_write(fd) (10, ret=-1): backend dpkg-deb ..."
-       // concat them again
-       if( list[4] != NULL )
-        list[3][strlen(list[3])] = ':';
-       status << "pmerror:" << list[1]
-            << ":"  << (PackagesDone/float(PackagesTotal)*100.0) 
-            << ":" << list[3]
-            << endl;
-       if(OutStatusFd > 0)
-        FileFd::Write(OutStatusFd, status.str().c_str(), status.str().size());
-       if (Debug == true)
-        std::clog << "send: '" << status.str() << "'" << endl;
-       pkgFailures++;
-       WriteApportReport(list[1], list[3]);
-       return;
-    }
-    else if(strncmp(action,"conffile",strlen("conffile")) == 0)
-    {
-       status << "pmconffile:" << list[1]
-            << ":"  << (PackagesDone/float(PackagesTotal)*100.0) 
-            << ":" << list[3]
-            << endl;
-       if(OutStatusFd > 0)
-        FileFd::Write(OutStatusFd, status.str().c_str(), status.str().size());
-       if (Debug == true)
-        std::clog << "send: '" << status.str() << "'" << endl;
+       std::string msg;
+       strprintf(msg, _(iter->second), i18n_pkgname.c_str());
+       d->progress->StatusChanged(pkgname, PackagesDone, PackagesTotal, msg);
+       // FIXME: this needs a muliarch testcase
+       // FIXME2: is "pkgname" here reliable with dpkg only sending us 
+       //         short pkgnames?
+       if (action == "disappear")
+        handleDisappearAction(pkgname);
        return;
-    }
+    } 
  
-    vector<struct DpkgState> const &states = PackageOps[pkg];
-    const char *next_action = NULL;
-    if(PackageOpsDone[pkg] < states.size())
-       next_action = states[PackageOpsDone[pkg]].state;
-    // check if the package moved to the next dpkg state
-    if(next_action && (strcmp(action, next_action) == 0)) 
+    if (prefix == "status")
     {
-       // only read the translation if there is actually a next
-       // action
-       const char *translation = _(states[PackageOpsDone[pkg]].str);
-       char s[200];
-       snprintf(s, sizeof(s), translation, pkg);
-       // we moved from one dpkg state to a new one, report that
-       PackageOpsDone[pkg]++;
-       PackagesDone++;
-       // build the status str
-       status << "pmstatus:" << pkg 
-            << ":"  << (PackagesDone/float(PackagesTotal)*100.0) 
-            << ":" << s
-            << endl;
-       if(OutStatusFd > 0)
-        FileFd::Write(OutStatusFd, status.str().c_str(), status.str().size());
-       if (Debug == true)
-        std::clog << "send: '" << status.str() << "'" << endl;
+       vector<struct DpkgState> const &states = PackageOps[pkg];
+       const char *next_action = NULL;
+       if(PackageOpsDone[pkg] < states.size())
+          next_action = states[PackageOpsDone[pkg]].state;
+       // check if the package moved to the next dpkg state
+       if(next_action && (action == next_action))
+       {
+          // only read the translation if there is actually a next
+          // action
+          const char *translation = _(states[PackageOpsDone[pkg]].str);
+          std::string msg;
+          // we moved from one dpkg state to a new one, report that
+          PackageOpsDone[pkg]++;
+          PackagesDone++;
+          strprintf(msg, translation, i18n_pkgname.c_str());
+          d->progress->StatusChanged(pkgname, PackagesDone, PackagesTotal, msg);
+          
+       }
+       if (Debug == true) 
+          std::clog << "(parsed from dpkg) pkg: " << short_pkgname
+                    << " action: " << action << endl;
     }
-    if (Debug == true) 
-       std::clog << "(parsed from dpkg) pkg: " << pkg 
-               << " action: " << action << endl;
  }
                                                                        /*}}}*/
  // DPkgPM::handleDisappearAction                                      /*{{{*/
  void pkgDPkgPM::handleDisappearAction(string const &pkgname)
  {
-    // record the package name for display and stuff later
-    disappearedPkgs.insert(pkgname);
     pkgCache::PkgIterator Pkg = Cache.FindPkg(pkgname);
     if (unlikely(Pkg.end() == true))
        return;
+    // record the package name for display and stuff later
+    disappearedPkgs.insert(Pkg.FullName(true));
     // the disappeared package was auto-installed - nothing to do
     if ((Cache[Pkg].Flags & pkgCache::Flag::Auto) == pkgCache::Flag::Auto)
        return;
  // ---------------------------------------------------------------------
  /*
   */
- void pkgDPkgPM::DoDpkgStatusFd(int statusfd, int OutStatusFd)
+ void pkgDPkgPM::DoDpkgStatusFd(int statusfd)
  {
     char *p, *q;
     int len;
     while((q=(char*)memchr(p, '\n', d->dpkgbuf+d->dpkgbuf_pos-p)) != NULL)
     {
        *q = 0;
-       ProcessDpkgStatusLine(OutStatusFd, p);
+       ProcessDpkgStatusLine(p);
        p=q+1; // continue with next line
     }
  
@@@ -874,6 -936,7 +936,7 @@@ bool pkgDPkgPM::CloseLog(
     return true;
  }
                                                                        /*}}}*/
+                                                                       /*}}}*/
  /*{{{*/
  // This implements a racy version of pselect for those architectures
  // that don't have a working implementation.
@@@ -894,36 -957,158 +957,158 @@@ static int racy_pselect(int nfds, fd_se
     sigprocmask(SIG_SETMASK, &origmask, 0);
     return retval;
  }
- /*}}}*/
+                                                                         /*}}}*/
+ // DPkgPM::BuildPackagesProgressMap                                   /*{{{*/
+ void pkgDPkgPM::BuildPackagesProgressMap()
+ {
+    // map the dpkg states to the operations that are performed
+    // (this is sorted in the same way as Item::Ops)
+    static const struct DpkgState DpkgStatesOpMap[][7] = {
+       // Install operation
+       { 
+        {"half-installed", N_("Preparing %s")}, 
+        {"unpacked", N_("Unpacking %s") }, 
+        {NULL, NULL}
+       },
+       // Configure operation
+       { 
+        {"unpacked",N_("Preparing to configure %s") },
+        {"half-configured", N_("Configuring %s") },
+        { "installed", N_("Installed %s")},
+        {NULL, NULL}
+       },
+       // Remove operation
+       { 
+        {"half-configured", N_("Preparing for removal of %s")},
+        {"half-installed", N_("Removing %s")},
+        {"config-files",  N_("Removed %s")},
+        {NULL, NULL}
+       },
+       // Purge operation
+       { 
+        {"config-files", N_("Preparing to completely remove %s")},
+        {"not-installed", N_("Completely removed %s")},
+        {NULL, NULL}
+       },
+    };
+    // init the PackageOps map, go over the list of packages that
+    // 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)
+    {
+       if((*I).Pkg.end() == true)
+        continue;
+       string const name = (*I).Pkg.FullName();
+       PackageOpsDone[name] = 0;
+       for(int i=0; (DpkgStatesOpMap[(*I).Op][i]).state != NULL; ++i)
+       {
+        PackageOps[name].push_back(DpkgStatesOpMap[(*I).Op][i]);
+        PackagesTotal++;
+       }
+    }
+ }
+                                                                         /*}}}*/
+ #if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR < 13)
+ bool pkgDPkgPM::Go(int StatusFd)
+ {
+    APT::Progress::PackageManager *progress = NULL;
+    if (StatusFd == -1)
+       progress = APT::Progress::PackageManagerProgressFactory();
+    else
+       progress = new APT::Progress::PackageManagerProgressFd(StatusFd);
+    
+    return GoNoABIBreak(progress);
+ }
+ #endif
+ void pkgDPkgPM::StartPtyMagic()
+ {
+    if (_config->FindB("Dpkg::Use-Pty", true) == false)
+    {
+       d->master = d->slave = -1;
+       return;
+    }
+    // setup the pty and stuff
+    struct     winsize win;
+    // if tcgetattr does not return zero there was a error
+    // and we do not do any pty magic
+    _error->PushToStack();
+    if (tcgetattr(STDOUT_FILENO, &d->tt) == 0)
+    {
+        if (ioctl(1, TIOCGWINSZ, (char *)&win) < 0)
+        {
+            _error->Errno("ioctl", _("ioctl(TIOCGWINSZ) failed"));
+        } else if (openpty(&d->master, &d->slave, NULL, &d->tt, &win) < 0)
+        {
+            _error->Errno("openpty", _("Can not write log (%s)"), _("Is /dev/pts mounted?"));
+            d->master = d->slave = -1;
+         } else {
+           struct termios rtt;
+           rtt = d->tt;
+           cfmakeraw(&rtt);
+           rtt.c_lflag &= ~ECHO;
+           rtt.c_lflag |= ISIG;
+           // block SIGTTOU during tcsetattr to prevent a hang if
+           // the process is a member of the background process group
+           // http://www.opengroup.org/onlinepubs/000095399/functions/tcsetattr.html
+           sigemptyset(&d->sigmask);
+           sigaddset(&d->sigmask, SIGTTOU);
+           sigprocmask(SIG_BLOCK,&d->sigmask, &d->original_sigmask);
+           tcsetattr(0, TCSAFLUSH, &rtt);
+           sigprocmask(SIG_SETMASK, &d->original_sigmask, 0);
+         }
+       }
+    // complain only if stdout is either a terminal (but still failed) or is an invalid
+       // descriptor otherwise we would complain about redirection to e.g. /dev/null as well.
+       else if (isatty(STDOUT_FILENO) == 1 || errno == EBADF)
+          _error->Errno("tcgetattr", _("Can not write log (%s)"), _("Is stdout a terminal?"));
+       if (_error->PendingError() == true)
+        _error->DumpErrors(std::cerr);
+       _error->RevertToStack();
+ }
+ void pkgDPkgPM::StopPtyMagic()
+ {
+    if(d->slave > 0)
+       close(d->slave);
+    if(d->master >= 0) 
+    {
+       tcsetattr(0, TCSAFLUSH, &d->tt);
+       close(d->master);
+    }
+ }
  // DPkgPM::Go - Run the sequence                                      /*{{{*/
  // ---------------------------------------------------------------------
  /* This globs the operations and calls dpkg 
-  *   
-  * If it is called with "OutStatusFd" set to a valid file descriptor
-  * apt will report the install progress over this fd. It maps the
-  * dpkg states a package goes through to human readable (and i10n-able)
+  *
+  * If it is called with a progress object apt will report the install
+  * progress to this object. It maps the dpkg states a package goes
+  * through to human readable (and i10n-able)
   * names and calculates a percentage for each step.
- */
- bool pkgDPkgPM::Go(int OutStatusFd)
+  */
+ #if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR >= 13)
+ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
+ #else
+ bool pkgDPkgPM::GoNoABIBreak(APT::Progress::PackageManager *progress)
+ #endif
  {
     pkgPackageManager::SigINTStop = false;
+    d->progress = progress;
  
     // Generate the base argument list for dpkg
-    std::vector<const char *> Args;
     unsigned long StartSize = 0;
-    string Tmp = _config->Find("Dir::Bin::dpkg","dpkg");
-    {
-       string const dpkgChrootDir = _config->FindDir("DPkg::Chroot-Directory", "/");
-       size_t dpkgChrootLen = dpkgChrootDir.length();
-       if (dpkgChrootDir != "/" && Tmp.find(dpkgChrootDir) == 0)
-       {
-        if (dpkgChrootDir[dpkgChrootLen - 1] == '/')
-           --dpkgChrootLen;
-        Tmp = Tmp.substr(dpkgChrootLen);
-       }
-    }
-    Args.push_back(Tmp.c_str());
-    StartSize += Tmp.length();
+    std::vector<const char *> Args;
+    std::string DpkgExecutable = getDpkgExecutable();
+    Args.push_back(DpkgExecutable.c_str());
+    StartSize += DpkgExecutable.length();
  
     // Stick in any custom dpkg options
     Configuration::Item const *Opts = _config->Tree("DPkg::Options");
  
     fd_set rfds;
     struct timespec tv;
-    sigset_t sigmask;
-    sigset_t original_sigmask;
  
     unsigned int const MaxArgs = _config->FindI("Dpkg::MaxArgs",8*1024);
     unsigned int const MaxArgBytes = _config->FindI("Dpkg::MaxArgBytes",32*1024);
     if (_config->FindB("DPkg::ConfigurePending", SmartConf) == true)
        List.push_back(Item(Item::ConfigurePending, PkgIterator()));
  
-    // map the dpkg states to the operations that are performed
-    // (this is sorted in the same way as Item::Ops)
-    static const struct DpkgState DpkgStatesOpMap[][7] = {
-       // Install operation
-       { 
-        {"half-installed", N_("Preparing %s")}, 
-        {"unpacked", N_("Unpacking %s") }, 
-        {NULL, NULL}
-       },
-       // Configure operation
-       { 
-        {"unpacked",N_("Preparing to configure %s") },
-        {"half-configured", N_("Configuring %s") },
-        { "installed", N_("Installed %s")},
-        {NULL, NULL}
-       },
-       // Remove operation
-       { 
-        {"half-configured", N_("Preparing for removal of %s")},
-        {"half-installed", N_("Removing %s")},
-        {"config-files",  N_("Removed %s")},
-        {NULL, NULL}
-       },
-       // Purge operation
-       { 
-        {"config-files", N_("Preparing to completely remove %s")},
-        {"not-installed", N_("Completely removed %s")},
-        {NULL, NULL}
-       },
-    };
-    // init the PackageOps map, go over the list of packages that
-    // 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)
-    {
-       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)
-       {
-        PackageOps[name].push_back(DpkgStatesOpMap[(*I).Op][i]);
-        PackagesTotal++;
-       }
-    }
+    // for the progress
+    BuildPackagesProgressMap();
  
     d->stdin_is_dev_null = false;
  
         dpkgMultiArch = true;
     }
  
-    // this loop is runs once per operation
-    for (vector<Item>::const_iterator I = List.begin(); I != List.end();)
+    // start pty magic before the loop
+    StartPtyMagic();
+    // Tell the progress that its starting and fork dpkg 
+    d->progress->Start(d->master);
+    // this loop is runs once per dpkg operation
+    vector<Item>::const_iterator I = List.begin();
+    while (I != List.end())
     {
        // Do all actions with the same Op in one run
        vector<Item>::const_iterator J = I;
         {
            if((*I).Pkg.end() == true)
               continue;
-           if (I->Op == Item::Configure && disappearedPkgs.find(I->Pkg.Name()) != disappearedPkgs.end())
+           if (I->Op == Item::Configure && disappearedPkgs.find(I->Pkg.FullName(true)) != disappearedPkgs.end())
               continue;
            // We keep this here to allow "smooth" transitions from e.g. multiarch dpkg/ubuntu to dpkg/debian
            if (dpkgMultiArch == false && (I->Pkg.Arch() == nativeArch ||
        // ignore SIGHUP as well (debian #463030)
        sighandler_t old_SIGHUP = signal(SIGHUP,SIG_IGN);
  
-       struct  termios tt;
-       struct  winsize win;
-       int     master = -1;
-       int     slave = -1;
-       // if tcgetattr does not return zero there was a error
-       // and we do not do any pty magic
-       _error->PushToStack();
-       if (tcgetattr(STDOUT_FILENO, &tt) == 0)
-       {
-        ioctl(0, TIOCGWINSZ, (char *)&win);
-        if (openpty(&master, &slave, NULL, &tt, &win) < 0)
-        {
-           _error->Errno("openpty", _("Can not write log (%s)"), _("Is /dev/pts mounted?"));
-           master = slave = -1;
-        }  else {
-           struct termios rtt;
-           rtt = tt;
-           cfmakeraw(&rtt);
-           rtt.c_lflag &= ~ECHO;
-           rtt.c_lflag |= ISIG;
-           // block SIGTTOU during tcsetattr to prevent a hang if
-           // the process is a member of the background process group
-           // http://www.opengroup.org/onlinepubs/000095399/functions/tcsetattr.html
-           sigemptyset(&sigmask);
-           sigaddset(&sigmask, SIGTTOU);
-           sigprocmask(SIG_BLOCK,&sigmask, &original_sigmask);
-           tcsetattr(0, TCSAFLUSH, &rtt);
-           sigprocmask(SIG_SETMASK, &original_sigmask, 0);
-        }
-       }
-       // complain only if stdout is either a terminal (but still failed) or is an invalid
-       // descriptor otherwise we would complain about redirection to e.g. /dev/null as well.
-       else if (isatty(STDOUT_FILENO) == 1 || errno == EBADF)
-          _error->Errno("tcgetattr", _("Can not write log (%s)"), _("Is stdout a terminal?"));
-       if (_error->PendingError() == true)
-        _error->DumpErrors(std::cerr);
-       _error->RevertToStack();
-        // Fork dpkg
-       pid_t Child;
-       _config->Set("APT::Keep-Fds::",fd[1]);
-       // send status information that we are about to fork dpkg
-       if(OutStatusFd > 0) {
-        ostringstream status;
-        status << "pmstatus:dpkg-exec:" 
-               << (PackagesDone/float(PackagesTotal)*100.0) 
-               << ":" << _("Running dpkg")
-               << endl;
-        FileFd::Write(OutStatusFd, status.str().c_str(), status.str().size());
-       }
-       Child = ExecFork();
-             
-       // This is the child
+       // now run dpkg
+       d->progress->StartDpkg();
+       std::set<int> KeepFDs;
+       KeepFDs.insert(fd[1]);
+       MergeKeepFdsFromConfiguration(KeepFDs);
+       pid_t Child = ExecFork(KeepFDs);
        if (Child == 0)
        {
-        if(slave >= 0 && master >= 0) 
+          // This is the child
+        if(d->slave >= 0 && d->master >= 0) 
         {
            setsid();
-           ioctl(slave, TIOCSCTTY, 0);
-           close(master);
-           dup2(slave, 0);
-           dup2(slave, 1);
-           dup2(slave, 2);
-           close(slave);
+           int res = ioctl(d->slave, TIOCSCTTY, 0);
+             if (res < 0) {
+                std::cerr << "ioctl(TIOCSCTTY) failed for fd: " 
+                          << d->slave << std::endl;
+             } else {
+                close(d->master);
+                dup2(d->slave, 0);
+                dup2(d->slave, 1);
+                dup2(d->slave, 2);
+                close(d->slave);
+             }
         }
         close(fd[0]); // close the read end of the pipe
  
  
         if (chdir(_config->FindDir("DPkg::Run-Directory","/").c_str()) != 0)
            _exit(100);
-        
         if (_config->FindB("DPkg::FlushSTDIN",true) == true && isatty(STDIN_FILENO))
         {
            int Flags,dummy;
        if (_config->FindB("DPkg::UseIoNice", false) == true)
         ionice(Child);
  
-       // clear the Keep-Fd again
-       _config->Clear("APT::Keep-Fds",fd[1]);
        // Wait for dpkg
        int Status = 0;
  
        int const _dpkgin = fd[0];
        close(fd[1]);                        // close the write end of the pipe
  
-       if(slave > 0)
-        close(slave);
        // setups fds
-       sigemptyset(&sigmask);
-       sigprocmask(SIG_BLOCK,&sigmask,&original_sigmask);
+       sigemptyset(&d->sigmask);
+       sigprocmask(SIG_BLOCK,&d->sigmask,&d->original_sigmask);
  
        /* free vectors (and therefore memory) as we don't need the included data anymore */
        for (std::vector<char *>::const_iterator p = Packages.begin();
  
         // wait for input or output here
         FD_ZERO(&rfds);
-        if (master >= 0 && !d->stdin_is_dev_null)
+        if (d->master >= 0 && !d->stdin_is_dev_null)
            FD_SET(0, &rfds); 
         FD_SET(_dpkgin, &rfds);
-        if(master >= 0)
-           FD_SET(master, &rfds);
-        tv.tv_sec = 1;
-        tv.tv_nsec = 0;
-        select_ret = pselect(max(master, _dpkgin)+1, &rfds, NULL, NULL, 
-                             &tv, &original_sigmask);
+        if(d->master >= 0)
+           FD_SET(d->master, &rfds);
+          tv.tv_sec = 0;
+          tv.tv_nsec = d->progress->GetPulseInterval();
+        select_ret = pselect(max(d->master, _dpkgin)+1, &rfds, NULL, NULL, 
+                             &tv, &d->original_sigmask);
         if (select_ret < 0 && (errno == EINVAL || errno == ENOSYS))
-           select_ret = racy_pselect(max(master, _dpkgin)+1, &rfds, NULL,
-                                     NULL, &tv, &original_sigmask);
+           select_ret = racy_pselect(max(d->master, _dpkgin)+1, &rfds, NULL,
+                                     NULL, &tv, &d->original_sigmask);
+          d->progress->Pulse();
         if (select_ret == 0) 
            continue;
         else if (select_ret < 0 && errno == EINTR)
            continue;
         } 
         
-        if(master >= 0 && FD_ISSET(master, &rfds))
-           DoTerminalPty(master);
-        if(master >= 0 && FD_ISSET(0, &rfds))
-           DoStdin(master);
+        if(d->master >= 0 && FD_ISSET(d->master, &rfds))
+           DoTerminalPty(d->master);
+        if(d->master >= 0 && FD_ISSET(0, &rfds))
+           DoStdin(d->master);
         if(FD_ISSET(_dpkgin, &rfds))
-           DoDpkgStatusFd(_dpkgin, OutStatusFd);
+           DoDpkgStatusFd(_dpkgin);
        }
        close(_dpkgin);
  
        signal(SIGINT,old_SIGINT);
        
        signal(SIGHUP,old_SIGHUP);
-       if(master >= 0) 
-       {
-        tcsetattr(0, TCSAFLUSH, &tt);
-        close(master);
-       }
-        
        // Check for an error code.
        if (WIFEXITED(Status) == 0 || WEXITSTATUS(Status) != 0)
        {
         if(stopOnError) 
         {
            CloseLog();
+             StopPtyMagic();
+             d->progress->Stop();
            return false;
         }
        }      
     }
+    // dpkg is done at this point
+    d->progress->Stop();
+    StopPtyMagic();
     CloseLog();
-    
     if (pkgPackageManager::SigINTStop)
         _error->Warning(_("Operation was interrupted before it could finish"));
  
@@@ -1541,18 -1635,49 +1635,49 @@@ void pkgDPkgPM::WriteApportReport(cons
     }
  
     // do not report out-of-memory failures 
-    if(strstr(errormsg, strerror(ENOMEM)) != NULL) {
+    if(strstr(errormsg, strerror(ENOMEM)) != NULL ||
+       strstr(errormsg, "failed to allocate memory") != NULL) {
        std::clog << _("No apport report written because the error message indicates a out of memory error") << std::endl;
        return;
     }
  
-    // do not report dpkg I/O errors
-    // XXX - this message is localized, but this only matches the English version.  This is better than nothing.
-    if(strstr(errormsg, "short read in buffer_copy (")) {
-       std::clog << _("No apport report written because the error message indicates a dpkg I/O error") << std::endl;
+    // do not report bugs regarding inaccessible local files
+    if(strstr(errormsg, strerror(ENOENT)) != NULL ||
+       strstr(errormsg, "cannot access archive") != NULL) {
+       std::clog << _("No apport report written because the error message indicates an issue on the local system") << std::endl;
+       return;
+    }
+    // do not report errors encountered when decompressing packages
+    if(strstr(errormsg, "--fsys-tarfile returned error exit status 2") != NULL) {
+       std::clog << _("No apport report written because the error message indicates an issue on the local system") << std::endl;
        return;
     }
  
+    // do not report dpkg I/O errors, this is a format string, so we compare
+    // the prefix and the suffix of the error with the dpkg error message
+    vector<string> io_errors;
+    io_errors.push_back(string("failed to read on buffer copy for %s"));
+    io_errors.push_back(string("failed in write on buffer copy for %s"));
+    io_errors.push_back(string("short read on buffer copy for %s"));
+    for (vector<string>::iterator I = io_errors.begin(); I != io_errors.end(); ++I)
+    {
+       vector<string> list = VectorizeString(dgettext("dpkg", (*I).c_str()), '%');
+       if (list.size() > 1) {
+          // we need to split %s, VectorizeString only allows char so we need
+          // to kill the "s" manually
+          if (list[1].size() > 1) {
+             list[1].erase(0, 1);
+             if(strstr(errormsg, list[0].c_str()) && 
+                strstr(errormsg, list[1].c_str())) {
+                std::clog << _("No apport report written because the error message indicates a dpkg I/O error") << std::endl;
+                return;
+             }
+          }
+       }
+    }
     // get the pkgname and reportfile
     pkgname = flNotDir(pkgpath);
     pos = pkgname.find('_');
        fprintf(report, "DpkgTerminalLog:\n");
        log = fopen(logfile_name.c_str(),"r");
        if(log != NULL)
+       {
+        char buf[1024];
+        while( fgets(buf, sizeof(buf), log) != NULL)
+           fprintf(report, " %s", buf);
+          fprintf(report, " \n");
+        fclose(log);
+       }
+    }
+    // attach history log it if we have it
+    string histfile_name = _config->FindFile("Dir::Log::History");
+    if (!histfile_name.empty())
+    {
+       fprintf(report, "DpkgHistoryLog:\n");
+       FILE* log = fopen(histfile_name.c_str(),"r");
+       if(log != NULL)
        {
         char buf[1024];
         while( fgets(buf, sizeof(buf), log) != NULL)
diff --combined apt-pkg/pkgcache.cc
index 0b8b6fe778af37d3d5ce81c85df0472c231954d1,67a2a709dbe4e1ef12cb66689f74112766063aba..80493c37b9742b04fed0e0fca6861601fa78788c
@@@ -8,7 -8,7 +8,7 @@@
     Please see doc/apt-pkg/cache.sgml for a more detailed description of 
     this format. Also be sure to keep that file up-to-date!!
     
-    This is the general utility functions for cache managment. They provide
+    This is the general utility functions for cache management. They provide
     a complete set of accessor functions for the cache. The cacheiterators
     header contains the STL-like iterators that can be used to easially
     navigate the cache as well as seemlessly dereference the mmap'd 
@@@ -51,8 -51,8 +51,8 @@@ pkgCache::Header::Header(
     
     /* Whenever the structures change the major version should be bumped,
        whenever the generator changes the minor version should be bumped. */
 -   MajorVersion = 8;
 -   MinorVersion = 1;
 +   MajorVersion = 9;
 +   MinorVersion = 0;
     Dirty = false;
     
     HeaderSz = sizeof(pkgCache::Header);
@@@ -499,7 -499,7 +499,7 @@@ pkgCache::PkgIterator::CurVersion() con
  // ostream operator to handle string representation of a package      /*{{{*/
  // ---------------------------------------------------------------------
  /* Output name < cur.rent.version -> candid.ate.version | new.est.version > (section)
-    Note that the characters <|>() are all literal above. Versions will be ommited
+    Note that the characters <|>() are all literal above. Versions will be omitted
     if they provide no new information (e.g. there is no newer version than candidate)
     If no version and/or section can be found "none" is used. */
  std::ostream& 
diff --combined apt-pkg/pkgcache.h
index 565ee657c98ea5cc6f74baac9237e8355f950297,c31c5f30b768c25c81502de4be4872b35f663a30..7c01258f13f273785a2c55e0584248bd38aba5b8
@@@ -136,7 -136,7 +136,7 @@@ class pkgCache                                                             /*{{{*
        /** \brief priority of a package version
  
            Zero is used for unparsable or absent Priority fields. */
 -      enum VerPriority {Important=1,Required=2,Standard=3,Optional=4,Extra=5};
 +      enum VerPriority {Required=1,Important=2,Standard=3,Optional=4,Extra=5};
        enum PkgSelectedState {Unknown=0,Install=1,Hold=2,DeInstall=3,Purge=4};
        enum PkgInstState {Ok=0,ReInstReq=1,HoldInst=2,HoldReInstReq=3};
        enum PkgCurrentState {NotInstalled=0,UnPacked=1,HalfConfigured=2,
@@@ -354,7 -354,7 +354,7 @@@ struct pkgCache::Grou
      the hash index of the name in the pkgCache::Header::PkgHashTable
  
      A package can be created for every architecture so package names are
-     not unique, but it is garanteed that packages with the same name
+     not unique, but it is guaranteed that packages with the same name
      are sequencel ordered in the list. Packages with the same name can be
      accessed with the Group.
  */
index bbf4607f9fc20c50e04e5096c64203e7db57a5c1,44a766c8412f3fd7156447e029a7cd3899fed9a6..be2e07f436d9052e9143aa7416e5ec834dac4c67
@@@ -42,7 -42,7 +42,7 @@@
  #include <apti18n.h>
                                                                        /*}}}*/
  
- struct PackageSortAlphabetic
+ struct PackageSortAlphabetic                                          /*{{{*/
  {
     bool operator () (const pkgCache::PkgIterator &p_lhs, 
                       const pkgCache::PkgIterator &p_rhs)
         return (l_name < r_name);
      }
  };
- class PackageNameMatcher : public Matcher
 -                                                                      /*}}}*/
 -class PackageNameMatcher : public Matcher                             /*{{{*/
--{
+ #ifdef PACKAGE_MATCHER_ABI_COMPAT
+ #define PackageMatcher PackageNameMatchesFnmatch
+ #endif
    public:
     PackageNameMatcher(const char **patterns)
     {
-       for(int i=0; patterns[i] != NULL; i++)
+       for(int i=0; patterns[i] != NULL; ++i)
        {
           std::string pattern = patterns[i];
 -#ifdef PACKAGE_MATCHER_ABI_COMPAT
 -            APT::CacheFilter::PackageNameMatchesFnmatch *cachefilter = NULL;
 -            cachefilter = new APT::CacheFilter::PackageNameMatchesFnmatch(pattern);
 -#else
           APT::CacheFilter::PackageMatcher *cachefilter = NULL;
-          if(_config->FindB("APT::Cmd::UseRegexp", false) == true)
+          if(_config->FindB("APT::Cmd::Use-Regexp", false) == true)
              cachefilter = new APT::CacheFilter::PackageNameMatchesRegEx(pattern);
           else
              cachefilter = new APT::CacheFilter::PackageNameMatchesFnmatch(pattern);
 -#endif
           filters.push_back(cachefilter);
        }
     }
     virtual ~PackageNameMatcher()
     {
-       for(J=filters.begin(); J != filters.end(); J++)
+       for(J=filters.begin(); J != filters.end(); ++J)
           delete *J;
     }
     virtual bool operator () (const pkgCache::PkgIterator &P) 
     {
-       for(J=filters.begin(); J != filters.end(); J++)
+       for(J=filters.begin(); J != filters.end(); ++J)
        {
           APT::CacheFilter::PackageMatcher *cachefilter = *J;
           if((*cachefilter)(P)) 
@@@ -90,17 -98,20 +90,20 @@@ private
     std::vector<APT::CacheFilter::PackageMatcher*>::const_iterator J;
     #undef PackageMatcher
  };
- void ListAllVersions(pkgCacheFile &CacheFile, pkgRecords &records, 
+                                                                       /*}}}*/
+ void ListAllVersions(pkgCacheFile &CacheFile, pkgRecords &records,    /*{{{*/
                       pkgCache::PkgIterator P,    
-                      std::ostream &outs)
+                      std::ostream &outs,
+                      bool include_summary=true)
  {
     for (pkgCache::VerIterator Ver = P.VersionList();
-         Ver.end() == false; Ver++) 
-       ListSingleVersion(CacheFile, records, Ver, outs);
+         Ver.end() == false; ++Ver)
+    {
+       ListSingleVersion(CacheFile, records, Ver, outs, include_summary);
+       outs << "\n";
+    }
  }
+                                                                       /*}}}*/
  // list - list package based on criteria                              /*{{{*/
  // ---------------------------------------------------------------------
  bool List(CommandLine &Cmd)
     std::map<std::string, std::string> output_map;
     std::map<std::string, std::string>::const_iterator K;
  
+    bool includeSummary = _config->FindB("APT::Cmd::List-Include-Summary");
     PackageNameMatcher matcher(patterns);
     LocalitySortedVersionSet bag;
-    OpTextProgress progress;
+    OpTextProgress progress(*_config);
     progress.OverallProgress(0,
                              Cache->Head().PackageCount, 
                              Cache->Head().PackageCount,
                              _("Listing"));
     GetLocalitySortedVersionSet(CacheFile, bag, matcher, progress);
-    for (LocalitySortedVersionSet::iterator V = bag.begin(); V != bag.end(); V++)
+    for (LocalitySortedVersionSet::iterator V = bag.begin(); V != bag.end(); ++V)
     {
        std::stringstream outs;
-       if(_config->FindB("APT::Cmd::AllVersions", false) == true)
+       if(_config->FindB("APT::Cmd::All-Versions", false) == true)
        {
-          ListAllVersions(CacheFile, records, V.ParentPkg(), outs);
+          ListAllVersions(CacheFile, records, V.ParentPkg(), outs, includeSummary);
           output_map.insert(std::make_pair<std::string, std::string>(
              V.ParentPkg().Name(), outs.str()));
        } else {
-          ListSingleVersion(CacheFile, records, V, outs);
+          ListSingleVersion(CacheFile, records, V, outs, includeSummary);
           output_map.insert(std::make_pair<std::string, std::string>(
                             V.ParentPkg().Name(), outs.str()));
        }
  
     // FIXME: SORT! and make sorting flexible (alphabetic, by pkg status)
     // output the sorted map
-    for (K = output_map.begin(); K != output_map.end(); K++)
+    for (K = output_map.begin(); K != output_map.end(); ++K)
        std::cout << (*K).second << std::endl;
  
  
diff --combined cmdline/apt-get.cc
index cc8cc5aad1209d171060da4de00f13c1ba3cbde1,12e385b69557d8f3e371dab7b6b2484fd0ba9ab4..6e9d3bf6800d8397c4b1ea5c023914bba57b9836
@@@ -15,7 -15,7 +15,7 @@@
        upgrade - Smart-Download the newest versions of all packages
        dselect-upgrade - Follows dselect's changes to the Status: field
                         and installes new and removes old packages
-       dist-upgrade - Powerfull upgrader designed to handle the issues with
+       dist-upgrade - Powerful upgrader designed to handle the issues with
                      a new distribution.
        install - Download and install a given package (by name, not by .deb)
        check - Update the package cache and check for broken packages
  #include <apt-pkg/pkgsystem.h>
  #include <apt-pkg/pkgrecords.h>
  #include <apt-pkg/indexfile.h>
+ #include <apt-pkg/upgrade.h>
+ #include <apt-pkg/metaindex.h>
+ #include <apt-pkg/indexrecords.h>
  
+ #include <apt-private/private-download.h>
  #include <apt-private/private-install.h>
  #include <apt-private/private-upgrade.h>
  #include <apt-private/private-output.h>
  #include <apt-private/private-update.h>
  #include <apt-private/private-cmndline.h>
  #include <apt-private/private-moo.h>
+ #include <apt-private/private-utils.h>
+ #include <apt-pkg/debmetaindex.h>
  
  #include <apt-private/acqprogress.h>
  
  #include <set>
+ #include <fstream>
+ #include <sstream>
  #include <locale.h>
  #include <langinfo.h>
- #include <fstream>
  #include <termios.h>
  #include <sys/ioctl.h>
  #include <sys/stat.h>
@@@ -76,7 -84,6 +84,6 @@@
  #include <errno.h>
  #include <regex.h>
  #include <sys/wait.h>
- #include <sstream>
  
  #include <apt-private/private-output.h>
  #include <apt-private/private-main.h>
  #include <apti18n.h>
                                                                        /*}}}*/
  
  using namespace std;
  
  // TryToInstallBuildDep - Try to install a single package             /*{{{*/
  // ---------------------------------------------------------------------
  /* This used to be inlined in DoInstall, but with the advent of regex package
@@@ -130,24 -134,95 +134,95 @@@ bool TryToInstallBuildDep(pkgCache::Pkg
     return true;
  }
                                                                        /*}}}*/
+ // helper that can go wit hthe next ABI break
+ #if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR < 13)
+ std::string MetaIndexFileNameOnDisk(metaIndex *metaindex)
+ {
+    // FIXME: this cast is the horror, the horror
+    debReleaseIndex *r = (debReleaseIndex*)metaindex;
+    // see if we have a InRelease file
+    std::string PathInRelease =  r->MetaIndexFile("InRelease");
+    if (FileExists(PathInRelease))
+       return PathInRelease;
+    // and if not return the normal one
+    if (FileExists(PathInRelease))
+       return r->MetaIndexFile("Release");
+    return "";
+ }
+ #endif
+ // GetReleaseForSourceRecord - Return Suite for the given srcrecord   /*{{{*/
+ // ---------------------------------------------------------------------
+ /* */
+ std::string GetReleaseForSourceRecord(pkgSourceList *SrcList,
+                                       pkgSrcRecords::Parser *Parse)
+ {
+    // try to find release
+    const pkgIndexFile& CurrentIndexFile = Parse->Index();
+    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 (&CurrentIndexFile == (*IF))
+          {
+ #if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR < 13)
+             std::string path = MetaIndexFileNameOnDisk(*S);
+ #else
+             std::string path = (*S)->LocalFileName();
+ #endif
+             if (path != "") 
+             {
+                indexRecords records;
+                records.Load(path);
+                return records.GetSuite();
+             }
+          }
+       }
+    }
+    return "";
+ }
+                                                                       /*}}}*/
  // FindSrc - Find a source record                                     /*{{{*/
  // ---------------------------------------------------------------------
  /* */
  pkgSrcRecords::Parser *FindSrc(const char *Name,pkgRecords &Recs,
                               pkgSrcRecords &SrcRecs,string &Src,
-                              pkgDepCache &Cache)
+                              CacheFile &CacheFile)
  {
-    string VerTag;
-    string DefRel = _config->Find("APT::Default-Release");
+    string VerTag, UserRequestedVerTag;
+    string ArchTag = "";
+    string RelTag = _config->Find("APT::Default-Release");
     string TmpSrc = Name;
+    pkgDepCache *Cache = CacheFile.GetDepCache();
  
-    // extract the version/release from the pkgname
-    const size_t found = TmpSrc.find_last_of("/=");
-    if (found != string::npos) {
-       if (TmpSrc[found] == '/')
-        DefRel = TmpSrc.substr(found+1);
-       else
-        VerTag = TmpSrc.substr(found+1);
+    // extract release
+    size_t found = TmpSrc.find_last_of("/");
+    if (found != string::npos) 
+    {
+       RelTag = TmpSrc.substr(found+1);
+       TmpSrc = TmpSrc.substr(0,found);
+    }
+    // extract the version
+    found = TmpSrc.find_last_of("=");
+    if (found != string::npos) 
+    {
+       VerTag = UserRequestedVerTag = TmpSrc.substr(found+1);
+       TmpSrc = TmpSrc.substr(0,found);
+    }
+    // extract arch 
+    found = TmpSrc.find_last_of(":");
+    if (found != string::npos) 
+    {
+       ArchTag = TmpSrc.substr(found+1);
        TmpSrc = TmpSrc.substr(0,found);
     }
  
        install a version and determine the source package name, then look
        in the archive for a source package of the same name. */
     bool MatchSrcOnly = _config->FindB("APT::Get::Only-Source");
-    const pkgCache::PkgIterator Pkg = Cache.FindPkg(TmpSrc);
+    pkgCache::PkgIterator Pkg;
+    if (ArchTag != "")
+       Pkg = Cache->FindPkg(TmpSrc, ArchTag);
+    else
+       Pkg = Cache->FindPkg(TmpSrc);
+    // if we can't find a package but the user qualified with a arch,
+    // error out here
+    if (Pkg.end() && ArchTag != "")
+    {
+       Src = Name;
+       _error->Error(_("Can not find a package for architecture '%s'"),
+                     ArchTag.c_str());
+       return 0;
+    }
     if (MatchSrcOnly == false && Pkg.end() == false) 
     {
-       if(VerTag.empty() == false || DefRel.empty() == false) 
+       if(VerTag != "" || RelTag != "" || ArchTag != "")
        {
         bool fuzzy = false;
         // we have a default release, try to locate the pkg. we do it like
               if (Ver.end() == true)
                  break;
            }
+             // ignore arches that are not for us
+             if (ArchTag != "" && Ver.Arch() != ArchTag)
+                continue;
+             // pick highest version for the arch unless the user wants
+             // something else
+             if (ArchTag != "" && VerTag == "" && RelTag == "")
+                if(Cache->VS().CmpVersion(VerTag, Ver.VerStr()) < 0)
+                   VerTag = Ver.VerStr();
            // We match against a concrete version (or a part of this version)
            if (VerTag.empty() == false &&
-               (fuzzy == true || Cache.VS().CmpVersion(VerTag, Ver.VerStr()) != 0) && // exact match
+               (fuzzy == true || Cache->VS().CmpVersion(VerTag, Ver.VerStr()) != 0) && // exact match
                (fuzzy == false || strncmp(VerTag.c_str(), Ver.VerStr(), VerTag.size()) != 0)) // fuzzy match
               continue;
  
  
               // or we match against a release
               if(VerTag.empty() == false ||
-                 (VF.File().Archive() != 0 && VF.File().Archive() == DefRel) ||
-                 (VF.File().Codename() != 0 && VF.File().Codename() == DefRel)) 
+                 (VF.File().Archive() != 0 && VF.File().Archive() == RelTag) ||
+                 (VF.File().Codename() != 0 && VF.File().Codename() == RelTag)) 
               {
                  pkgRecords::Parser &Parse = Recs.Lookup(VF);
                  Src = Parse.SourcePkg();
            if (Src.empty() == false)
               break;
         }
-        if (Src.empty() == true) 
-        {
-           // Sources files have no codename information
-           if (VerTag.empty() == true && DefRel.empty() == false) 
-           {
-              _error->Error(_("Ignore unavailable target release '%s' of package '%s'"), DefRel.c_str(), TmpSrc.c_str());
-              return 0;
-           }
-        }
        }
+       if (Src == "" && ArchTag != "")
+       {
+          if (VerTag != "")
+             _error->Error(_("Can not find a package '%s' with version '%s'"),
+                           Pkg.FullName().c_str(), VerTag.c_str());
+          if (RelTag != "")
+             _error->Error(_("Can not find a package '%s' with release '%s'"),
+                           Pkg.FullName().c_str(), RelTag.c_str());
+          Src = Name;
+          return 0;
+       }
        if (Src.empty() == true)
        {
         // if we don't have found a fitting package yet so we will
         // choose a good candidate and proceed with that.
         // Maybe we will find a source later on with the right VerTag
-        pkgCache::VerIterator Ver = Cache.GetCandidateVer(Pkg);
+          // or RelTag
+        pkgCache::VerIterator Ver = Cache->GetCandidateVer(Pkg);
         if (Ver.end() == false) 
         {
            pkgRecords::Parser &Parse = Recs.Lookup(Ver.FileList());
     }
  
     if (Src.empty() == true)
+    {
        Src = TmpSrc;
+    }
     else 
     {
        /* if we have a source pkg name, make sure to only search
     pkgSrcRecords::Parser *Last = 0;
     unsigned long Offset = 0;
     string Version;
+    pkgSourceList *SrcList = CacheFile.GetSourceList();
  
     /* Iterate over all of the hits, which includes the resulting
        binary packages in the search */
        {
         const string Ver = Parse->Version();
  
+          // See if we need to look for a specific release tag
+          if (RelTag != "" && UserRequestedVerTag == "")
+          {
+             const string Rel = GetReleaseForSourceRecord(SrcList, Parse);
+             if (Rel == RelTag)
+             {
+                Last = Parse;
+                Offset = Parse->Offset();
+                Version = Ver;
+             }
+          }
         // Ignore all versions which doesn't fit
         if (VerTag.empty() == false &&
-            Cache.VS().CmpVersion(VerTag, Ver) != 0) // exact match
+            Cache->VS().CmpVersion(VerTag, Ver) != 0) // exact match
            continue;
  
         // Newer version or an exact match? Save the hit
-        if (Last == 0 || Cache.VS().CmpVersion(Version,Ver) < 0) {
+        if (Last == 0 || Cache->VS().CmpVersion(Version,Ver) < 0) {
            Last = Parse;
            Offset = Parse->Offset();
            Version = Ver;
         }
  
-        // was the version check above an exact match? If so, we don't need to look further
-        if (VerTag.empty() == false && VerTag.size() == Ver.size())
+        // was the version check above an exact match?
+          // If so, we don't need to look further
+          if (VerTag.empty() == false && (VerTag == Ver))
            break;
        }
+       if (UserRequestedVerTag == "" && Version != "" && RelTag != "")
+          ioprintf(c1out, "Selected version '%s' (%s) for %s\n", 
+                   Version.c_str(), RelTag.c_str(), Src.c_str());
        if (Last != 0 || VerTag.empty() == true)
         break;
-       //if (VerTag.empty() == false && Last == 0)
-       _error->Error(_("Ignore unavailable version '%s' of package '%s'"), VerTag.c_str(), TmpSrc.c_str());
+       _error->Error(_("Can not find version '%s' of package '%s'"), VerTag.c_str(), TmpSrc.c_str());
        return 0;
     }
  
@@@ -345,31 -472,6 +472,6 @@@ bool DoMarkAuto(CommandLine &CmdL
     return false;
  }
                                                                        /*}}}*/
- // DoDistUpgrade - Automatic smart upgrader                           /*{{{*/
- // ---------------------------------------------------------------------
- /* Intelligent upgrader that will install and remove packages at will */
- bool DoDistUpgrade(CommandLine &CmdL)
- {
-    if (CmdL.FileSize() != 1)
-       return _error->Error(_("The dist-upgrade command takes no arguments"));
-    CacheFile Cache;
-    if (Cache.OpenForInstall() == false || Cache.CheckDeps() == false)
-       return false;
-    c0out << _("Calculating upgrade... ") << flush;
-    if (pkgDistUpgrade(*Cache) == false)
-    {
-       c0out << _("Failed") << endl;
-       ShowBroken(c1out,Cache,false);
-       return false;
-    }
-    
-    c0out << _("Done") << endl;
-    
-    return InstallPackages(Cache,true);
- }
-                                                                       /*}}}*/
  // DoDSelectUpgrade - Do an upgrade by following dselects selections  /*{{{*/
  // ---------------------------------------------------------------------
  /* Follows dselect's selections */
@@@ -411,7 -513,7 +513,7 @@@ bool DoDSelectUpgrade(CommandLine &CmdL
     }
  
     /* Resolve any problems that dselect created, allupgrade cannot handle
-       such things. We do so quite agressively too.. */
+       such things. We do so quite aggressively too.. */
     if (Cache->BrokenCount() != 0)
     {      
        pkgProblemResolver Fix(Cache);
@@@ -526,75 -628,68 +628,68 @@@ bool DoDownload(CommandLine &CmdL
     CacheFile Cache;
     if (Cache.ReadOnlyOpen() == false)
        return false;
-    
     APT::CacheSetHelper helper(c0out);
-    APT::VersionList verset = APT::VersionList::FromCommandLine(Cache,
-               CmdL.FileList + 1, APT::VersionList::CANDIDATE, helper);
+    APT::VersionSet verset = APT::VersionSet::FromCommandLine(Cache,
+               CmdL.FileList + 1, APT::VersionSet::CANDIDATE, helper);
  
     if (verset.empty() == true)
        return false;
  
+    AcqTextStatus Stat(ScreenWidth, _config->FindI("quiet", 0));
     pkgAcquire Fetcher;
-    AcqTextStatus Stat(ScreenWidth, _config->FindI("quiet",0));
-    if (_config->FindB("APT::Get::Print-URIs") == false)
-       Fetcher.Setup(&Stat);
+    if (Fetcher.Setup(&Stat) == false)
+       return false;
  
     pkgRecords Recs(Cache);
     pkgSourceList *SrcList = Cache.GetSourceList();
-    bool gotAll = true;
  
-    for (APT::VersionList::const_iterator Ver = verset.begin(); 
-         Ver != verset.end(); 
-         ++Ver) 
+    // reuse the usual acquire methods for deb files, but don't drop them into
+    // the usual directories - keep everything in the current directory
+    std::vector<std::string> storefile(verset.size());
+    std::string const cwd = SafeGetCWD();
+    _config->Set("Dir::Cache::Archives", cwd);
+    int i = 0;
+    for (APT::VersionSet::const_iterator Ver = verset.begin();
+        Ver != verset.end(); ++Ver, ++i)
     {
-       string descr;
-       // get the right version
-       pkgCache::PkgIterator Pkg = Ver.ParentPkg();
-       pkgRecords::Parser &rec=Recs.Lookup(Ver.FileList());
-       pkgCache::VerFileIterator Vf = Ver.FileList();
-       if (Vf.end() == true)
-       {
-        _error->Error("Can not find VerFile for %s in version %s", Pkg.FullName().c_str(), Ver.VerStr());
-        gotAll = false;
-        continue;
-       }
-       pkgCache::PkgFileIterator F = Vf.File();
-       pkgIndexFile *index;
-       if(SrcList->FindIndex(F, index) == false)
-       {
-        _error->Error(_("Can't find a source to download version '%s' of '%s'"), Ver.VerStr(), Pkg.FullName().c_str());
-        gotAll = false;
-        continue;
-       }
-       string uri = index->ArchiveURI(rec.FileName());
-       strprintf(descr, _("Downloading %s %s"), Pkg.Name(), Ver.VerStr());
-       // get the most appropriate hash
-       HashString hash;
-       if (rec.SHA512Hash() != "")
-          hash = HashString("sha512", rec.SHA512Hash());
-       else if (rec.SHA256Hash() != "")
-          hash = HashString("sha256", rec.SHA256Hash());
-       else if (rec.SHA1Hash() != "")
-          hash = HashString("sha1", rec.SHA1Hash());
-       else if (rec.MD5Hash() != "")
-          hash = HashString("md5", rec.MD5Hash());
-       // get the file
-       new pkgAcqFile(&Fetcher, uri, hash.toStr(), (*Ver)->Size, descr, Pkg.Name(), ".");
+       pkgAcquire::Item *I = new pkgAcqArchive(&Fetcher, SrcList, &Recs, *Ver, storefile[i]);
+       std::string const filename = cwd + flNotDir(storefile[i]);
+       storefile[i].assign(filename);
+       I->DestFile.assign(filename);
     }
-    if (gotAll == false)
-       return false;
  
     // Just print out the uris and exit if the --print-uris flag was used
     if (_config->FindB("APT::Get::Print-URIs") == true)
     {
        pkgAcquire::UriIterator I = Fetcher.UriBegin();
        for (; I != Fetcher.UriEnd(); ++I)
-        cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << 
+        cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' <<
               I->Owner->FileSize << ' ' << I->Owner->HashSum() << endl;
        return true;
     }
  
-    return (Fetcher.Run() == pkgAcquire::Continue);
+    if (_error->PendingError() == true || CheckAuth(Fetcher, false) == false)
+       return false;
+    bool Failed = false;
+    if (AcquireRun(Fetcher, 0, &Failed, NULL) == false)
+       return false;
+    // copy files in local sources to the current directory
+    for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); ++I)
+    {
+       std::string const filename = cwd + flNotDir((*I)->DestFile);
+       if ((*I)->Local == true &&
+           filename != (*I)->DestFile &&
+           (*I)->Status == pkgAcquire::Item::StatDone)
+       {
+        std::ifstream src((*I)->DestFile.c_str(), std::ios::binary);
+        std::ofstream dst(filename.c_str(), std::ios::binary);
+        dst << src.rdbuf();
+       }
+    }
+    return Failed == false;
  }
                                                                        /*}}}*/
  // DoCheck - Perform the check operation                              /*{{{*/
@@@ -663,7 -758,7 +758,7 @@@ bool DoSource(CommandLine &CmdL
     for (const char **I = CmdL.FileList + 1; *I != 0; I++, J++)
     {
        string Src;
-       pkgSrcRecords::Parser *Last = FindSrc(*I,Recs,SrcRecs,Src,*Cache);
+       pkgSrcRecords::Parser *Last = FindSrc(*I,Recs,SrcRecs,Src,Cache);
        
        if (Last == 0) {
         delete[] Dsc;
         queued.insert(Last->Index().ArchiveURI(I->Path));
  
         // check if we have a file with that md5 sum already localy
 -       if(!I->MD5Hash.empty() && FileExists(flNotDir(I->Path)))  
 +       if(!I->Hash.empty() && FileExists(flNotDir(I->Path)))  
         {
 -          FileFd Fd(flNotDir(I->Path), FileFd::ReadOnly);
 -          MD5Summation sum;
 -          sum.AddFD(Fd.Fd(), Fd.Size());
 -          Fd.Close();
 -          if((string)sum.Result() == I->MD5Hash) 
 +            HashString hash_string = HashString(I->Hash);
 +            if(hash_string.VerifyFile(flNotDir(I->Path)))
            {
               ioprintf(c1out,_("Skipping already downloaded file '%s'\n"),
                        flNotDir(I->Path).c_str());
         }
  
         new pkgAcqFile(&Fetcher,Last->Index().ArchiveURI(I->Path),
 -                      I->MD5Hash,I->Size,
 +                      I->Hash,I->Size,
                        Last->Index().SourceInfo(*Last,*I),Src);
        }
     }
        delete[] Dsc;
        return true;
     }
-    
-    // Run it
-    if (Fetcher.Run() == pkgAcquire::Failed)
-    {
-       delete[] Dsc;
-       return false;
-    }
  
-    // Print error messages
+    // Run it
     bool Failed = false;
-    for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); ++I)
-    {
-       if ((*I)->Status == pkgAcquire::Item::StatDone &&
-         (*I)->Complete == true)
-        continue;
-       
-       fprintf(stderr,_("Failed to fetch %s  %s\n"),(*I)->DescURI().c_str(),
-             (*I)->ErrorText.c_str());
-       Failed = true;
-    }
-    if (Failed == true)
+    if (AcquireRun(Fetcher, 0, &Failed, NULL) == false || Failed == true)
     {
        delete[] Dsc;
        return _error->Error(_("Failed to fetch some archives."));
@@@ -974,7 -1055,7 +1052,7 @@@ bool DoBuildDep(CommandLine &CmdL
     for (const char **I = CmdL.FileList + 1; *I != 0; I++, J++)
     {
        string Src;
-       pkgSrcRecords::Parser *Last = FindSrc(*I,Recs,SrcRecs,Src,*Cache);
+       pkgSrcRecords::Parser *Last = FindSrc(*I,Recs,SrcRecs,Src,Cache);
        if (Last == 0)
         return _error->Error(_("Unable to find a source package for %s"),Src.c_str());
              
@@@ -1428,24 -1509,6 +1506,6 @@@ bool DownloadChangelog(CacheFile &Cache
     return _error->Error("changelog download failed");
  }
                                                                        /*}}}*/
- // DisplayFileInPager - Display File with pager                               /*{{{*/
- void DisplayFileInPager(string filename)
- {
-    pid_t Process = ExecFork();
-    if (Process == 0)
-    {
-       const char *Args[3];
-       Args[0] = "/usr/bin/sensible-pager";
-       Args[1] = filename.c_str();
-       Args[2] = 0;
-       execvp(Args[0],(char **)Args);
-       exit(100);
-    }
-          
-    // Wait for the subprocess
-    ExecWait(Process, "sensible-pager", false);
- }
-                                                                       /*}}}*/
  // DoChangelog - Get changelog from the command line                  /*{{{*/
  // ---------------------------------------------------------------------
  bool DoChangelog(CommandLine &CmdL)
     bool const downOnly = _config->FindB("APT::Get::Download-Only", false);
  
     char tmpname[100];
-    char* tmpdir = NULL;
+    const char* tmpdir = NULL;
     if (downOnly == false)
     {
-       const char* const tmpDir = getenv("TMPDIR");
-       if (tmpDir != NULL && *tmpDir != '\0')
-        snprintf(tmpname, sizeof(tmpname), "%s/apt-changelog-XXXXXX", tmpDir);
-       else
-        strncpy(tmpname, "/tmp/apt-changelog-XXXXXX", sizeof(tmpname));
+       std::string systemTemp = GetTempDir();
+       snprintf(tmpname, sizeof(tmpname), "%s/apt-changelog-XXXXXX", 
+                systemTemp.c_str());
        tmpdir = mkdtemp(tmpname);
        if (tmpdir == NULL)
         return _error->Errno("mkdtemp", "mkdtemp failed");
@@@ -1621,15 -1682,6 +1679,6 @@@ void SigWinch(int
  #endif
  }
                                                                        /*}}}*/
- bool DoUpgrade(CommandLine &CmdL)
- {
-    if (_config->FindB("APT::Get::UpgradeAllowNew", false) == true)
-       return DoUpgradeWithAllowNewPackages(CmdL);
-    else
-       return DoUpgradeNoNewPackages(CmdL);
- }
  int main(int argc,const char *argv[])                                 /*{{{*/
  {
     CommandLine::Dispatch Cmds[] = {{"update",&DoUpdate},
     // see if we are in simulate mode
     CheckSimulateMode(CmdL);
  
-    // Deal with stdout not being a tty
-    if (!isatty(STDOUT_FILENO) && _config->FindI("quiet", -1) == -1)
-       _config->Set("quiet","1");
     // Setup the output streams
     InitOutput();
  
diff --combined debian/apt.install.in
index 346eefb704fcdb42bbc5061af48f49b49b7b7ca0,ac12060cec9592e15c9c58ff7fdaa2547a588695..76d51e8dd81e5c3c54535b9a7267a5a805022193
@@@ -1,5 -1,5 +1,5 @@@
 -bin/apt-* usr/bin/
 +bin/apt* usr/bin/
  bin/methods/* usr/lib/apt/methods/
  scripts/dselect/* usr/lib/dpkg/methods/apt/
  usr/share/locale/*/*/apt.mo
- bin/libapt-private* usr/lib/@DEB_HOST_MULTIARCH@/
 -bin/libapt-private.so.* usr/lib/@DEB_HOST_MULTIARCH@/
++bin/libapt-private.so.* usr/lib/@DEB_HOST_MULTIARCH@/
diff --combined debian/changelog
index 06520b748988e249580dd695cf012732cccac14b,a3dd9af41d4b8b3565afea8c6991a33c01e7d048..59049b166d2eda6edc7fc4d8bf5ba73ea6fbe545
- apt (0.9.11~exp1) UNRELEASED; urgency=low
++apt (0.9.16~exp1) UNRELEASED; urgency=low
 +
 +  [ Michael Vogt ]
 +  * lp:~mvo/apt/webserver-simulate-broken-with-fix346386:
 +    - fix invalid InRelease file download checking and add regression
 +      test to server broken files to the buildin test webserver
 +  * stop exporting the accidently exported parsenetrc() symbol
-   * apt-pkg/deb/dpkgpm.cc:
-     - use tcgetattr() on STDOUT instead of STDIN so that term.log
-       works for redirected stdin
-     - print error in log if tcgetattr() fails instead of writing
-       a empty file
-   * use sha512 when available (LP: #1098752)
 +  * [ABI-Break] lp:~mvo/apt/source-hashes:
 +    - use sha{512,256,1} for deb-src when available LP: #1098738
 +  * [ABI-Break] remove the PACKAGE_MATCHER_ABI_COMPAT defines
 +
-  -- Michael Vogt <mvo@debian.org>  Fri, 01 Mar 2013 12:12:39 +0100
++ -- Michael Vogt <mvo@debian.org>  Thu, 27 Feb 2014 22:44:26 +0100
 +
- apt (0.9.11) UNRELEASED; urgency=low
+ apt (0.9.15.4) unstable; urgency=low
  
-   The "Happy 20th Birthday Debian" upload
+   [ Michael Vogt ]
+   * remove auto-generated apt-key and sources.list on clean (closes: 739749)
+   * add testcase for Bug#718329
+   * various fixes for ADT failures
    
+   [ Jon Severinsson ]
+   * add apt-vendor information for tanglu
+   [ Guillem Jover ]
+   * ExtractTar: Allow an empty decompressor program
+   * DebFile: Refactor ExtractTarMember() out from ExtractArchive()
+   * Add support for data.tar, control.tar and control.tar.xz
+   * debian: Add debDebFile::ExtractTarMember to the symbols file
+   * Fix typos in documentation (codespell)
+  -- Michael Vogt <mvo@debian.org>  Sun, 23 Feb 2014 00:27:12 +0100
+ apt (0.9.15.3) unstable; urgency=medium
+   [ Michael Vogt ]
+   * disable https->http redirects in libcurl, thanks to Julien Cristau
+   * ADT: use "Restrictions: allow-stderr and avoid apt-stderr.log in 
+     debian/tests/run-tests
+   * test/integration/test-bug-723705-tagfile-truncates-fields: 
+     - fix autopkgtest failure
+   * add missing canNotFindFnmatch/showFnmatchSelection
+     (for the next ABI break)
+   * disable fnmatch() matching from the commandline
+   * merge testcase for the autoremove feature from the ubuntu branch
+   [ David Kalnischkies ]
+   * do not recommend dselect in apt-get manpage (Closes: 617625)
+   * report https download start only if we really get it
+   * allow http protocol to switch to https
+   * do not compress .xhtml files and remove junk files (Closes: 738933)
+   * simplify code some more to make reddit happy
+   * update symbols file with hints from the buildlogs
+  -- Michael Vogt <mvo@debian.org>  Thu, 20 Feb 2014 14:42:39 +0100
+ apt (0.9.15.2) unstable; urgency=medium
+   [ Michael Vogt ]
+   * move isatty() check into InitOutput()
+   * Use a APT::VersionSet instead of a VersionList
+     (closes: #738103)
+   [ David Kalnischkies ]
+   * simplify code to make compilers happy
+   * update libapt-pkg.symbols file
+   * bump Standards-Version to 3.9.5 (no changes needed)
+   * do not use an empty APT_CONFIG environment variable
+   * always cleanup patchfiles at the end of rred call
+   * use VersionSet in download to handle repeats (Closes: 738103)
+   * use utimes instead of utimensat/futimens (Closes: 738567)
+   [ John Ogness ]
+   * apt-cdrom should succeed if any drive succeeds (Closes: 728153)
+   [ Trần Ngọc Quân ]
+   * l10n: vi.po (621t): Update and review
+  -- Michael Vogt <mvo@debian.org>  Thu, 13 Feb 2014 09:50:04 +0100
+ apt (0.9.15.1) unstable; urgency=medium
+   [ David Kalnischkies ]
+   * use gpg --homedir instead of explicit file placement
+   * use svg in doxygen and ensure dot is around for it
+   * pkgTagFile: if we have seen the end, do not try to see more
+   * restart debSrcRecordParsers only if needed
+   * discard impossible candidates in MarkInstall (Closes: #735967)
+   [ Chris Leick ]
+   * update german manpage translation
+   * Trivian unfuzzies of the German po4a translation
+   [ Michael Vogt ]
+   * fix apt-get download truncation (closes: #736962)
+   * do not crash if VF.File()/VF.File().Archive() is NULL
+   * show "status" in apt list last to be more awk friendly
+     (thanks to Axel Beckert)
+   * Fix multiarch package upgrade issue
+   * add test for Suite with path
+   [ Colin Watson ]
+   * multicompress with externals sets wrong file modes (Closes: 737130)
+  -- Michael Vogt <mvo@debian.org>  Thu, 06 Feb 2014 18:09:19 +0100
+ apt (0.9.15) unstable; urgency=low
+   * upload version from debian/experimental to unstable
+  -- Michael Vogt <mvo@debian.org>  Sat, 25 Jan 2014 21:57:00 +0100
+ apt (0.9.14.3~exp5) experimental; urgency=medium
+   [ Anthony Towns ]
+   * methods/rred: minor robustness improvements
+   [ Michael Vogt ]
+   * make "apt-mark help" shows all commands
+   * make "apt show" output more user friendly
+   * add "apt full-upgrade" and tweak "apt upgrade"
+   * set APT::Sources::Use-Deb822=false until the format
+     is fully finalized
+  -- Michael Vogt <mvo@debian.org>  Fri, 24 Jan 2014 23:21:04 +0100
+ apt (0.9.14.3~exp4) experimental; urgency=medium
+   * implement deb822 suggestions by Anthony Towns and Julian Andres Klode:
+     - add Description tag for deb822 sources
+     - add support for Enabled: no in deb822 sources.list
+     - add support for multiple URIs in deb822 style sources.list
+     - add support for multipl types in one line
+   * add integration test for apt search and apt show
+   * do not ignore ioctl(TIOCSCTTY) errors
+  -- Michael Vogt <mvo@debian.org>  Wed, 22 Jan 2014 18:59:07 +0100
+ apt (0.9.14.3~exp3) experimental; urgency=low
+   * implement deb822 suggestions by donkult (thanks!):
+     - rename "Dist" to "Suites"
+     - rename "Section" to "Sections"
+     - rename "Architectures-Delete" to "Architectures-Remove"
+     - rename "Uri" to "URI"
+   * add "apt list --manual-installed"
+   * add "apt upgrade --dist"
+   * add "apt purge"
+   * flock() the file edited in "apt edit-sources"
+   * apt-private/private-show.cc: 
+     - do not show Description-lang: header
+   * reword apt !isatty() warning
+   * add missing integration test for "apt list" and fix bugs
+     found by it
+  -- Michael Vogt <mvo@debian.org>  Sat, 18 Jan 2014 21:09:24 +0100
+ apt (0.9.14.3~exp2) experimental; urgency=medium
+   [ Julian Andres Klode ]
+   * debian/rules: Call dh_makeshlibs for 'apt'
+   [ Anthony Towns ]
+   * reimplement rred to allow applying all the diffs in a single pass
+   * correct IndexDiff vs DiffIndex in Debug output
+   [ David Kalnischkies ]
+   * reenable unlimited pdiff files download
+   * integrate Anthonys rred with POC for client-side merge
+   [ Michael Vogt ]
+   * document deb822 style sources.list in sources.list(5)
+   * rename "Dist:" in deb822 style sources.list to "Suite:"
+   * rename URL to Uri in deb822-sources
+   * support multiple "Suite:" entries in deb822 style sources.list:
+     "Suite: stable testing unstable"
+   
+  -- Michael Vogt <mvo@debian.org>  Thu, 16 Jan 2014 21:43:22 +0100
+ apt (0.9.14.3~exp1) experimental; urgency=low
+   [ Michael Vogt ]
+   * add support for "deb822" style sources.list format and add
+     APT::Sources::Use-Deb822 to support disabling it
+   [ David Kalnischkies ]
+   * implement POC client-side merging of pdiffs via apt-file
+   [ Trần Ngọc Quân ]
+   * l10n: vi.po(617t): Update Vietnamese translation
+  -- Michael Vogt <mvo@debian.org>  Sun, 05 Jan 2014 15:13:32 +0100
+ apt (0.9.14.2) unstable; urgency=low
+   [ Joe Hansen ]
+   * Danish translation update. Closes: #732166
+   
+   [ Peter Green ]
+   * add apt-vendor for raspbian. Closes: #732749
+   [ Thomas Bechtold ]
+   * apt-pkg/contrib/gpgv.cc: use /tmp as fallback dir if the
+     directory from $TMPDIR  is not available (closes: #728500)
+   
+   [ Michael Vogt ]
+   * vendor/getinfo:
+     - fix ubuntu-codename
+   * vendor/steamos/*:
+     - add steamos support
+   * bugfix/bts731738-fancy-progess:
+     - fix terminal size issues with e.g. "less" when "APT::Progress-Fancy=1"
+       is used (closes: #731738)
+   * feature/policy-parser-bts732746:
+     - allow more flexibility in /etc/apt/preferences, e.g. comment only
+       sections (closes: #732746)
+   * move TMPDIR handling into GetTempDir() and use that instead of
+     getenv("TMPDIR")
+   * update apt-key net-update and add integration test with the buildin
+     apt webserver
+   * run autopkgtest against the installed apt
+  -- Michael Vogt <mvo@debian.org>  Sun, 29 Dec 2013 16:41:16 +0100
+ apt (0.9.14.1) unstable; urgency=medium
+   * fix apt-get source -t dist regression (closes: #731853)
+     and add testcase
+   * clarify error message when apt-get source=ver fails
+     (thans to David Kalnischkies)
+   * Fix conffile prompt regression (LP: #1260297)
+     and add testcase
+   * improve error message for apt-get source pkg:arch{=ver,/release}
+  -- Michael Vogt <mvo@debian.org>  Thu, 12 Dec 2013 18:34:29 +0100
+ apt (0.9.14) unstable; urgency=low
+   [ David Kalnischkies ]
+   * merge ubuntus apport reporting changes to reduce diff
+   * enable NOISE for build logs to enable analyse
+   * introduce a vendor system to change sources.list
+   * add a vendor specific file to have configurable entities
+   * use a substvar to set the archive-keyring in debian/control
+   * cherry-pick ubuntus (disabled) net-update fixes
+   * generate apt-key script with vendor info about keys
+   * drop old /var/state to /var/lib transition artefacts
+   [ Steve Langasek ]
+   * prepare-release: declare the packages needed as source build deps.
+   [ Michael Vogt ]
+   * enable release based selection for deb-src (closes: 731102)
+   * document Dpkg::Progress-Fancy (closes: 726169), thanks to James McCoy
+   * vendor/makefile: fix build error for parallel builds
+   * Handle SIGWINCH in APT::Progress-Fancy=1
+  -- Michael Vogt <mvo@debian.org>  Sat, 07 Dec 2013 14:54:31 +0100
+ apt (0.9.13.1) unstable; urgency=low
+   [ Colin Watson ]
+   * fix "apt-get  --purge build-dep" (closes: #720597)
+   * fix regression that APT::Keep-Fds is not honored (closes: #730490)
+   
+   [ Michael Vogt ]
+   * add "-f" option to "build-dep" as sbuild is using it to fix 
+     regression with cross-building (LP: #1255806)
+   * add autopkgtest support for the integration testsuite
+   * merge mvo/feature/short-list
+   * merge mvo/feature/edit-sources
+   * fix segfault in pkgDepCache::SetCandidateRelease() (closes: #709560)
+   * reset terminal on error (closes: #730795)
+   * fix apport report writing (LP: #1254499)
+  -- Michael Vogt <mvo@debian.org>  Fri, 29 Nov 2013 20:50:17 +0100
+ apt (0.9.13) unstable; urgency=low
+   [ TJ Guthrie ]
+   * Changed MinAgeSec to MinAge in /etc/cron.daily/apt:200,204 
+     LP: #1206047
+  -- Michael Vogt <mvo@debian.org>  Sun, 24 Nov 2013 10:56:22 +0100
+ apt (0.9.13~exp1) experimental; urgency=low
+   * Improve the API for APT::Upgrade::Upgrade()
+   * Re-add "Calculating upgrade..." message
+   * move upgrade releated code into upgrade.{cc,h}
+   * Move ListUpdate/AquireUpdate into update.{cc,h}
+   * Add new apt-pkg/install-progress.h with APT::Progress::PackageManager
+     progress reporting classes
+   * Move the status-fd progress reporting out of the pkgDPkgPM class
+     and into PackageManagerProgressFd
+   * Fix reading dpkg --status-fd on reinstalls
+   * Add new APT::Status-deb822-Fd progress output
+   * add Acquire::http::Proxy-Auto-Detect to the apt.conf.5 manpage
+     (closes: 726597)
+   * Fix detection when multiarch packages are reported by dpkg as
+     disappeared Packages
+   * test/integration/run-tests: output the failed test names
+   * Code Cleanup in pkgDPkgPM
+   * prepare next ABI via #if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR >= 13)
+   * add new pid_t ExecFork(std::set<int> KeepFDs)
+   * Avoid flickering when "apt-get -o DpkgPM::Progress-Fancy=1" is use
+   * use sysconf(_SC_OPEN_MAX) in ExecFork()
+  -- Michael Vogt <mvo@debian.org>  Fri, 01 Nov 2013 10:03:06 +0100
+ apt (0.9.12.1) unstable; urgency=low
+   [ Michael Vogt ]
+   * do not send pkgname:arch over the APT::Status-Fd to not break
+     clients (closes: 726156). A new APT::Status-deb822-Fd will be
+     used to fix this.
+   * add integration tests for APT::Status-Fd
+   * add missing _() around the new "Progress" string
+   [ David Kalnischkies ]
+   * fix progress-segfault in case of dpkg errors/prompts (Closes: 726047)
+  -- Michael Vogt <mvo@debian.org>  Tue, 15 Oct 2013 18:25:51 +0200
+ apt (0.9.12) unstable; urgency=low
+   [ Christian Perrier ]
+   * Fix typo in apt-private/private-show.cc. Thanks to Benjamin
+     Keresa. Closes: #724073
+   
+   [ Mark Hymers ]
+   * fix libapt-inst for >2G debs (closes: #725483)
+   [ David Kalnischkies ]
+   * don't strip :any from dependencies in single-arch (Closes: 723586)
+   * pkg from only trusted sources keeps being trusted (Closes: 617690)
+   * compression-neutral message for missing data.tar member (Closes: 722710)
+   * print-uris prints regardless of quiet-level again (Closes: 722207)
+   * retry without partial data after a 416 response (Closes: 710924)
+   * replace "filesize - 1" trick in http with proper 416 handling
+   * fix partial (206 and 416) support in https
+   * handle complete responses to https range requests (Closes: 617643, 667699)
+     (LP: 1157943)
+   * don't consider holds for autoremoval (Closes: 724995)
+   * put fetch errors in 'source' on our errorstack
+   * use pkgAcqArchive in 'download' for proper errors
+   * fix lzma-support detection via xz binary
+   * do not ++ on erased package pointers in autoremove
+   [ Michael Vogt ]
+   * Add new "apt-get upgrade --with-new-pkgs" option (and add man-page for it).
+     So "apt-get upgrade --with-new-pkgs" will pull in new dependencies but
+     never remove packages
+   * Rename "--dpkg-progress" to "--show-progress" and document it in 
+     apt-get.8. This will show global install progress information in the
+     terminal.
+   * Fix status-fd progress calculation for certain multi-arch install/upgrade
+     situations
+   * add new -o DpkgPM::Progress-Fancy for nicer dpkg progress output 
+     on vt100+ terminals
+   * fix libapt-inst for >2G debs (closes: #725483), thanks to Mark Hymers 
+   * debian/apt.postinst: use --compare-versions lt instead of lt-nl, 
+     to ensure the apt-auto-removal file is correctly create, 
+     thanks to Ben Hutchings
+   * update Uploaders to match recent uploaders better
+   * Set the default "Acquire::PDiffs::FileLimit" to 20. If the amount
+     of pdiffs is bigger things tend to get slower. Set
+       Acquire::PDiffs::FileLimit "0";
+     in /etc/apt/apt.conf to get the old behavior back.
+  -- Michael Vogt <mvo@debian.org>  Wed, 09 Oct 2013 22:39:41 +0200
+ apt (0.9.11.4) unstable; urgency=low
+   [ Oskari Saarenmaa ]
+   * don't truncate 100 char long paths in tar extraction.
+     Thanks to Mika Eloranta for the testcase! (Closes: #689582)
+   [ David Kalnischkies ]
+   * do not trust FileFd::Eof() in pkgTagFile::Fill()
+     Thanks to Cyril Brulebois (Closes: 723705)
+  -- Michael Vogt <mvo@debian.org>  Fri, 20 Sep 2013 16:12:07 +0200
+ apt (0.9.11.3) unstable; urgency=low
+   [ Michael Vogt ]
+   * Add DPkgPM::Progress option to enable terminal install 
+     progress
+   * fix typo (mkostemp->mkstemp)
+   * Remove invalid "-f" option for apt-get check, thanks to
+     Philipp Weis (closes: #721477)
+   * Fix regression of "apt-cache unmet -i", thanks to Daniel Schepler
+     (closes: #722324)
+   [ David Kalnischkies ]
+   * use FileFd in HashSum test to unbreak non-linux ports.
+     Thanks to Aaron M. Ucko (Closes: 721723)
+  -- Michael Vogt <mvo@debian.org>  Tue, 10 Sep 2013 17:32:02 +0200
+ apt (0.9.11.2) unstable; urgency=low
+   [ Milo Casagrande ]
+   * Update Italian translation. Closes: #721030
+   
+   [ Trần Ngọc Quân ]
+   * Update Vietnamese translation. Closes: #720752
+   
+   [ Michael Vogt ]
+   * dselect/install:
+    - remove "-f" option for apt-get clean/auto-clean (closes: #720532)
+   * apt-private/private-cmndline.cc:
+     - fix typo in CmdMatches() selection for dselect-upgrade (closes: #720532)
+   * use SPtr<pkgProblemResolver> in DoInstall() to simplify the code
+   * allow pkg manipulation in the upgrade/dist-upgrade commandline, like
+     apt-get dist-upgrade 2vcard- 4g8+ (thanks to Thorsten Glaser for the
+     suggestion)
+   [ Angel Guzman Maeso ]
+   * replace usage of potential dangerous mktemp with mkstemp
+  -- Michael Vogt <mvo@debian.org>  Sat, 31 Aug 2013 16:45:31 +0200
+ apt (0.9.11.1) unstable; urgency=low
+   [ Michael Vogt ]
+   * more coverity fixes:
+     - explicit init 
+     - always chdir("/") after chroot()
+     - ftparchive/override.cc: fix "skip empty lines" code, the pointer 
+       needs to get de-referenced first
+   * dselect/update: 
+     - remove "-f" option for apt-get update to fix breakage (closes: 720532)
+   [ Christopher Baines ]
+   * Add test for bug #507998
+   [ David Kalnischkies ]
+   * add a breaks libapt-inst for FileFd changes in 0.9.9 (Closes: 720449)
+   * add versions to manpages-it Replaces+Breaks
+   [ Ángel Guzmán Maeso ]
+   * apt-pkg:contrib Avoid compiler warning about sign-compare
+  -- Michael Vogt <mvo@debian.org>  Sat, 24 Aug 2013 09:13:27 +0200
+ apt (0.9.11) unstable; urgency=low
    [ Daniel Hartwig ]
    * Clarify units of Acquire::http::Dl-Limit (closes: #705445)
    * Show a error message if {,dist-}upgrade is used with additional
      - install libapt-private* into the apt binary
      - add PACKAGE_MATCHER_ABI_COMPAT define so that this branch can be 
        merged without breaking ABI
+     - add lintian override for no-shlibs-control-file so that
+       the internal libapt-private.so.0.0.0 can be shipped
+     - adjust apt.install.in to only install libapt-private.so.*
  
    [ David Kalnischkies ]
    * ensure that pkgTagFile isn't writing past Buffer length (Closes: 719629)
    * allow Pre-Install-Pkgs hooks to get info over an FD != stdin
-     (Closes: #671728)
+     (Closes: #671726)
  
    [ Christian PERRIER ]
    * French translation update.
  
-  -- Michael Vogt <michael.vogt@ubuntu.com>  Thu, 15 Aug 2013 09:27:35 +0200
+  -- Michael Vogt <mvo@debian.org>  Wed, 21 Aug 2013 17:51:09 +0200
  
  apt (0.9.10) unstable; urgency=low
  
@@@ -398,21 -813,12 +826,12 @@@ apt (0.9.7.8) unstable; urgency=critici
    * SECURITY UPDATE: InRelease verification bypass
      - CVE-2013-1051
    
-   [ Programs translation updates ]
-   * Japanese (Kenshi Muto). Closes: #699783
-   
    [ David Kalnischk ]
    * apt-pkg/deb/debmetaindex.cc,
      test/integration/test-bug-595691-empty-and-broken-archive-files,
-   * [ABI BREAK] apt-pkg/pkgcache.h:
-     - adjust pkgCache::State::VerPriority enum, to match reality
      test/integration/test-releasefile-verification:
      - disable InRelease downloading until the verification issue is
        fixed, thanks to Ansgar Burchardt for finding the flaw
-     - quote plus in filenames to work around a bug in the S3 server
-       (LP: #1003633)
-   * apt-pkg/indexrecords.cc:
-     - support '\r' in the Release file
  
   -- Michael Vogt <mvo@debian.org>  Thu, 14 Mar 2013 07:47:36 +0100
  
diff --combined debian/control
index a442b66c15ca6843b3efe0b01cb6906fa265ae6c,0c1341bb97c39643aa18ab54d96f34db7cd9de4d..0f16c16f165534e780ef4da0485435bda6080385
@@@ -2,23 -2,24 +2,24 @@@ Source: ap
  Section: admin
  Priority: important
  Maintainer: APT Development Team <deity@lists.debian.org>
- Uploaders: Michael Vogt <mvo@debian.org>, Otavio Salvador <otavio@debian.org>,
-  Christian Perrier <bubulle@debian.org>, Daniel Burrows <dburrows@debian.org>,
+ Uploaders: Michael Vogt <mvo@debian.org>, Christian Perrier <bubulle@debian.org>, 
   Julian Andres Klode <jak@debian.org>
- Standards-Version: 3.9.4
+ Standards-Version: 3.9.5
  Build-Depends: dpkg-dev (>= 1.15.8), debhelper (>= 8.1.3~), libdb-dev,
   gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.4~),
   zlib1g-dev, libbz2-dev, xsltproc, docbook-xsl, docbook-xml,
   po4a (>= 0.34-2), autotools-dev, autoconf, automake
- Build-Depends-Indep: doxygen, debiandoc-sgml
+ Build-Depends-Indep: doxygen, debiandoc-sgml, graphviz
  Build-Conflicts: autoconf2.13, automake1.4
  Vcs-Git: git://anonscm.debian.org/apt/apt.git
  Vcs-Browser: http://anonscm.debian.org/gitweb/?p=apt/apt.git
+ XS-Testsuite: autopkgtest
  
  Package: apt
  Architecture: any
- Depends: ${shlibs:Depends}, ${misc:Depends}, debian-archive-keyring, gnupg
- Replaces: manpages-pl (<< 20060617-3~), manpages-it
+ Depends: ${shlibs:Depends}, ${misc:Depends}, ${apt:keyring}, gnupg
+ Replaces: manpages-pl (<< 20060617-3~), manpages-it (<< 2.80-4~)
+ Breaks: manpages-pl (<< 20060617-3~), manpages-it (<< 2.80-4~)
  Conflicts: python-apt (<< 0.7.93.2~)
  Suggests: aptitude | synaptic | wajig, dpkg-dev, apt-doc, xz-utils, python-apt
  Description: commandline package manager
    * apt-config as an interface to the configuration settings
    * apt-key as an interface to manage authentication keys
  
 -Package: libapt-pkg4.12
 +Package: libapt-pkg4.13
  Architecture: any
  Multi-Arch: same
  Pre-Depends: ${misc:Pre-Depends}
  Depends: ${shlibs:Depends}, ${misc:Depends}
- Breaks: apt (<< 0.9.4~)
+ Breaks: apt (<< 0.9.4~), libapt-inst1.5 (<< 0.9.9~)
  Section: libs
  Description: package management runtime library
   This library provides the common functionality for searching and
index 07106d2de969c6bf261bdfc7289513d1d020e0a5,0000000000000000000000000000000000000000..9b62606cefaab02e2afc2966c2baa42e2895813d
mode 100644,000000..100644
--- /dev/null
@@@ -1,1515 -1,0 +1,1621 @@@
-  (c++)"TimeRFC1123(long)@Base" 0.8.0
 +libapt-pkg.so.4.13 libapt-pkg4.13 #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++)"FTPMDTMStrToTime(char const*, long&)@Base" 0.8.0
-  (c++)"RFC1123StrToTime(char const*, 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(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@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++)"StrToTime(std::basic_string<char, std::char_traits<char>, std::allocator<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++)"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++)"HashString::HashString(HashString const&)@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++)"pkgDPkgPM::DoDpkgStatusFd(int, int)@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::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::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::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::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::canNotFindPkgName(pkgCacheFile&, 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::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::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::ProcessDpkgStatusLine(int, char*)@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
-  (arch=i386 hurd-i386 kfreebsd-i386|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, char*&) const@Base" 0.8.15~exp1
 + (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
 +### architecture specific: va_list
 + (arch=armel armhf|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, std::__va_list&) 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=i386 hurd-i386 kfreebsd-i386 ppc64|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=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=amd64 kfreebsd-amd64 powerpc powerpcspe s390 s390x x32|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::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=powerpc powerpcspe x32|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 s390x|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=ppc64|c++|optional=private)"GlobalError::Insert(GlobalError::MsgType, char const*, char*&, unsigned long&)@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=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=powerpc powerpcspe x32|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 s390x|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
++ (arch=ppc64|c++|optional=private)"GlobalError::InsertErrno(GlobalError::MsgType, char const*, char const*, char*&, int, unsigned long&)@Base" 0.8.11.4
 +### architecture specific: size_t
- ### gcc artefacts
++ (arch=i386 armel armhf hppa hurd-i386 kfreebsd-i386 mips mipsel powerpc powerpcspe sh4 sparc x32|c++)"_strtabexpand(char*, unsigned int)@Base" 0.8.0
++ (arch=alpha amd64 ia64 kfreebsd-amd64 s390 s390x sparc64 ppc64|c++)"_strtabexpand(char*, unsigned long)@Base" 0.8.0
++### architecture specific: time_t
++ (arch=!x32|c++)"TimeRFC1123(long)@Base" 0.8.0
++ (arch=x32|c++)"TimeRFC1123(long long)@Base" 0.8.0
++ (arch=!x32|c++)"FTPMDTMStrToTime(char const*, long&)@Base" 0.8.0
++ (arch=x32|c++)"FTPMDTMStrToTime(char const*, long long&)@Base" 0.8.0
++ (arch=!x32|c++)"StrToTime(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long&)@Base" 0.8.0
++ (arch=x32|c++)"StrToTime(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long long&)@Base" 0.8.0
++ (arch=!x32|c++)"RFC1123StrToTime(char const*, long&)@Base" 0.8.0
++ (arch=x32|c++)"RFC1123StrToTime(char const*, long long&)@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++)"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++)"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::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::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++)"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++)"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
 +### used internally by public interfaces - if you use them directly, you can keep the pieces
 + (c++|optional=internal|regex)"^SHA256_.*@Base$" 0.8.16~exp2
 + (c++|optional=internal|regex)"^SHA384_.*@Base$" 0.8.16~exp2
 + (c++|optional=internal|regex)"^SHA512_.*@Base$" 0.8.16~exp2
 +### orderlist rework: the touched methods are protected
 + (c++)"SigINT(int)@Base" 0.8.16~exp14
 + (c++)"pkgPackageManager::SigINTStop@Base" 0.8.16~exp14
 + (c++)"pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int)@Base" 0.8.16~exp14
 + (c++)"pkgPackageManager::SmartConfigure(pkgCache::PkgIterator, int)@Base" 0.8.16~exp14
 +### FileFd rework: supporting different on-the-fly (de)compressing needs more parameter (abi), but the api is stable
 + (c++)"FileFd::OpenDescriptor(int, unsigned int, FileFd::CompressMode, bool)@Base" 0.8.16~exp9
 + (c++)"FileFd::OpenDescriptor(int, unsigned int, APT::Configuration::Compressor const&, bool)@Base" 0.8.16~exp9
 + (c++)"FileFd::ModificationTime()@Base" 0.8.16~exp9
 + (c++)"FileFd::Open(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, FileFd::CompressMode, unsigned long)@Base" 0.8.16~exp9
 + (c++)"FileFd::Open(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, APT::Configuration::Compressor const&, unsigned long)@Base" 0.8.16~exp9
 + (c++)"FileFd::ReadLine(char*, unsigned long long)@Base" 0.8.16~exp9
 + (c++)"SummationImplementation::AddFD(FileFd&, unsigned long long)@Base" 0.8.16~exp9
 + (c++)"Hashes::AddFD(FileFd&, unsigned long long, bool, bool, bool, bool)@Base" 0.8.16~exp9
 + (c++|optional=deprecated,previous-inline)"FileFd::gzFd()@Base" 0.8.0
 + (c++|optional=private)"FileFd::OpenInternDescriptor(unsigned int, APT::Configuration::Compressor const&)@Base" 0.8.16~exp9
 +### CacheSet rework: making them real containers breaks bigtime the API (for the CacheSetHelper)
 + (c++)"APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >::const_iterator::getPkg() const@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >::getConstructor() const@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >::empty() const@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainer<std::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >::const_iterator::getPkg() const@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainer<std::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >::getConstructor() const@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainer<std::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >::empty() const@Base" 0.8.16~exp9
 + (c++)"APT::VersionContainer<std::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >::empty() const@Base" 0.8.16~exp9
 + (c++)"APT::VersionContainer<std::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >::iterator::getVer() const@Base" 0.8.16~exp9
 + (c++)"APT::CacheSetHelper::canNotFindTask(APT::PackageContainerInterface*, pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.16~exp9
 + (c++)"APT::CacheSetHelper::canNotFindRegEx(APT::PackageContainerInterface*, pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.8.16~exp9
 + (c++)"APT::CacheSetHelper::canNotFindAllVer(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.16~exp9
 + (c++)"APT::CacheSetHelper::canNotFindPackage(APT::PackageContainerInterface*, pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.16~exp9
 + (c++)"APT::CacheSetHelper::showTaskSelection(pkgCache::PkgIterator const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.16~exp9
 + (c++)"APT::CacheSetHelper::showRegExSelection(pkgCache::PkgIterator const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.16~exp9
 + (c++)"APT::CacheSetHelper::showSelectedVersion(pkgCache::PkgIterator const&, pkgCache::VerIterator, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@Base" 0.8.16~exp9
 + (c++)"APT::CacheSetHelper::canNotFindCandInstVer(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.16~exp9
 + (c++)"APT::CacheSetHelper::canNotFindInstCandVer(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >::setConstructor(APT::PackageContainerInterface::Constructor const&)@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >::clear()@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >::insert(pkgCache::PkgIterator const&)@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainer<std::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >::setConstructor(APT::PackageContainerInterface::Constructor const&)@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainer<std::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >::clear()@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainer<std::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >::insert(pkgCache::PkgIterator const&)@Base" 0.8.16~exp9
 + (c++)"APT::VersionContainer<std::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >::clear()@Base" 0.8.16~exp9
 + (c++)"APT::VersionContainer<std::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >::insert(pkgCache::VerIterator const&)@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainerInterface::FromString(APT::PackageContainerInterface*, pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainerInterface::FromCommandLine(APT::PackageContainerInterface*, pkgCacheFile&, char const**, APT::CacheSetHelper&)@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainerInterface::FromModifierCommandLine(unsigned short&, APT::PackageContainerInterface*, pkgCacheFile&, char const*, std::list<APT::PackageContainerInterface::Modifier, std::allocator<APT::PackageContainerInterface::Modifier> > const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainerInterface::FromName(pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainerInterface::FromTask(APT::PackageContainerInterface*, pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@Base" 0.8.16~exp9
 + (c++)"APT::PackageContainerInterface::FromRegEx(APT::PackageContainerInterface*, pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@Base" 0.8.16~exp9
 + (c++)"APT::VersionContainerInterface::FromString(APT::VersionContainerInterface*, pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::VersionContainerInterface::Version const&, APT::CacheSetHelper&, bool)@Base" 0.8.16~exp9
 + (c++)"APT::VersionContainerInterface::FromPackage(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&, APT::VersionContainerInterface::Version const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9
 + (c++)"APT::VersionContainerInterface::FromCommandLine(APT::VersionContainerInterface*, pkgCacheFile&, char const**, APT::VersionContainerInterface::Version const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9
 + (c++)"APT::VersionContainerInterface::getCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9
 + (c++)"APT::VersionContainerInterface::getInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9
 + (c++)"APT::VersionContainerInterface::FromModifierCommandLine(unsigned short&, APT::VersionContainerInterface*, pkgCacheFile&, char const*, std::list<APT::VersionContainerInterface::Modifier, std::allocator<APT::VersionContainerInterface::Modifier> > const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9
 + (c++)"EDSP::WriteLimitedScenario(pkgDepCache&, _IO_FILE*, APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > > const&, OpProgress*)@Base" 0.8.16~exp9
 + (c++)"EDSP::WriteScenarioLimitedDependency(pkgDepCache&, _IO_FILE*, pkgCache::PkgIterator const&, pkgCache::VerIterator const&, APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > > const&)@Base" 0.8.16~exp9
 + (c++)"typeinfo for APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >::const_iterator@Base" 0.8.16~exp9
 + (c++)"typeinfo for APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >@Base" 0.8.16~exp9
 + (c++)"typeinfo for APT::PackageContainer<std::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >::const_iterator@Base" 0.8.16~exp9
 + (c++)"typeinfo for APT::PackageContainer<std::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >@Base" 0.8.16~exp9
 + (c++)"typeinfo for APT::VersionContainer<std::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >::iterator@Base" 0.8.16~exp9
 + (c++)"typeinfo for APT::VersionContainer<std::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@Base" 0.8.16~exp9
 + (c++)"typeinfo for APT::PackageContainerInterface::const_iterator@Base" 0.8.16~exp9
 + (c++)"typeinfo for APT::PackageContainerInterface@Base" 0.8.16~exp9
 + (c++)"typeinfo for APT::VersionContainerInterface::const_iterator@Base" 0.8.16~exp9
 + (c++)"typeinfo for APT::VersionContainerInterface@Base" 0.8.16~exp9
 + (c++)"typeinfo name for APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >::const_iterator@Base" 0.8.16~exp9
 + (c++)"typeinfo name for APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >@Base" 0.8.16~exp9
 + (c++)"typeinfo name for APT::PackageContainer<std::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >::const_iterator@Base" 0.8.16~exp9
 + (c++)"typeinfo name for APT::PackageContainer<std::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >@Base" 0.8.16~exp9
 + (c++)"typeinfo name for APT::VersionContainer<std::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >::iterator@Base" 0.8.16~exp9
 + (c++)"typeinfo name for APT::VersionContainer<std::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@Base" 0.8.16~exp9
 + (c++)"typeinfo name for APT::PackageContainerInterface::const_iterator@Base" 0.8.16~exp9
 + (c++)"typeinfo name for APT::PackageContainerInterface@Base" 0.8.16~exp9
 + (c++)"typeinfo name for APT::VersionContainerInterface::const_iterator@Base" 0.8.16~exp9
 + (c++)"typeinfo name for APT::VersionContainerInterface@Base" 0.8.16~exp9
 + (c++)"vtable for APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >::const_iterator@Base" 0.8.16~exp9
 + (c++)"vtable for APT::PackageContainer<std::set<pkgCache::PkgIterator, std::less<pkgCache::PkgIterator>, std::allocator<pkgCache::PkgIterator> > >@Base" 0.8.16~exp9
 + (c++)"vtable for APT::PackageContainer<std::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >::const_iterator@Base" 0.8.16~exp9
 + (c++)"vtable for APT::PackageContainer<std::list<pkgCache::PkgIterator, std::allocator<pkgCache::PkgIterator> > >@Base" 0.8.16~exp9
 + (c++)"vtable for APT::VersionContainer<std::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >::iterator@Base" 0.8.16~exp9
 + (c++)"vtable for APT::VersionContainer<std::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >@Base" 0.8.16~exp9
 + (c++)"vtable for APT::PackageContainerInterface::const_iterator@Base" 0.8.16~exp9
 + (c++)"vtable for APT::PackageContainerInterface@Base" 0.8.16~exp9
 + (c++)"vtable for APT::VersionContainerInterface::const_iterator@Base" 0.8.16~exp9
 + (c++)"vtable for APT::VersionContainerInterface@Base" 0.8.16~exp9
++### rework of the packagemanager rework
++ (c++)"APT::Progress::PackageManager::ConffilePrompt(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManager::Error(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerFancy::GetNumberTerminalRows()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerFancy::HandleSIGWINCH(int)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerFancy::~PackageManagerFancy()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerFancy::PackageManagerFancy()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerFancy::SetupTerminalScrollArea(int)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerFancy::StatusChanged(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerFancy::Stop()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManager::fork()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManager::GetPulseInterval()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManager::~PackageManager()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressDeb822Fd::ConffilePrompt(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressDeb822Fd::Error(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressDeb822Fd::~PackageManagerProgressDeb822Fd()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressDeb822Fd::PackageManagerProgressDeb822Fd(int)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressDeb822Fd::StartDpkg()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressDeb822Fd::StatusChanged(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressDeb822Fd::Stop()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressDeb822Fd::WriteToStatusFd(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressFactory()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressFd::ConffilePrompt(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressFd::Error(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressFd::~PackageManagerProgressFd()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressFd::PackageManagerProgressFd(int)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressFd::StartDpkg()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressFd::StatusChanged(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressFd::Stop()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerProgressFd::WriteToStatusFd(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManager::Pulse()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManager::StartDpkg()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManager::StatusChanged(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManager::Stop()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerText::~PackageManagerText()@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerText::StatusChanged(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.13~exp1
++ (c++)"APT::String::Strip(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.9.13~exp1
++ (c++)"APT::Upgrade::Upgrade(pkgDepCache&, int)@Base" 0.9.13~exp1
++ (c++)"pkgDPkgPM::BuildPackagesProgressMap()@Base" 0.9.13~exp1
++ (c++)"pkgDPkgPM::DoDpkgStatusFd(int)@Base" 0.9.13~exp1
++ (c++)"pkgDPkgPM::GoNoABIBreak(APT::Progress::PackageManager*)@Base" 0.9.13~exp1
++ (c++)"pkgDPkgPM::ProcessDpkgStatusLine(char*)@Base" 0.9.13~exp1
++ (c++)"pkgDPkgPM::StartPtyMagic()@Base" 0.9.13~exp1
++ (c++)"pkgDPkgPM::StopPtyMagic()@Base" 0.9.13~exp1
++ (c++)"typeinfo for APT::Progress::PackageManager@Base" 0.9.13~exp1
++ (c++)"typeinfo for APT::Progress::PackageManagerFancy@Base" 0.9.13~exp1
++ (c++)"typeinfo for APT::Progress::PackageManagerProgressDeb822Fd@Base" 0.9.13~exp1
++ (c++)"typeinfo for APT::Progress::PackageManagerProgressFd@Base" 0.9.13~exp1
++ (c++)"typeinfo for APT::Progress::PackageManagerText@Base" 0.9.13~exp1
++ (c++)"typeinfo name for APT::Progress::PackageManager@Base" 0.9.13~exp1
++ (c++)"typeinfo name for APT::Progress::PackageManagerFancy@Base" 0.9.13~exp1
++ (c++)"typeinfo name for APT::Progress::PackageManagerProgressDeb822Fd@Base" 0.9.13~exp1
++ (c++)"typeinfo name for APT::Progress::PackageManagerProgressFd@Base" 0.9.13~exp1
++ (c++)"typeinfo name for APT::Progress::PackageManagerText@Base" 0.9.13~exp1
++ (c++)"vtable for APT::Progress::PackageManager@Base" 0.9.13~exp1
++ (c++)"vtable for APT::Progress::PackageManagerFancy@Base" 0.9.13~exp1
++ (c++)"vtable for APT::Progress::PackageManagerProgressDeb822Fd@Base" 0.9.13~exp1
++ (c++)"vtable for APT::Progress::PackageManagerProgressFd@Base" 0.9.13~exp1
++ (c++)"vtable for APT::Progress::PackageManagerText@Base" 0.9.13~exp1
++ (c++)"APT::Progress::PackageManagerFancy::instances@Base" 0.9.14.2
++ (c++)"APT::Progress::PackageManagerFancy::Start(int)@Base" 0.9.14.2
++ (c++)"APT::Progress::PackageManagerFancy::staticSIGWINCH(int)@Base" 0.9.14.2
++ (c++)"APT::Progress::PackageManager::Start(int)@Base" 0.9.14.2
++### client-side merged pdiffs
++ (c++)"pkgAcqIndexMergeDiffs::DescURI()@Base" 0.9.14.3~exp1
++ (c++)"pkgAcqIndexMergeDiffs::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.9.14.3~exp1
++ (c++)"pkgAcqIndexMergeDiffs::Failed(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, pkgAcquire::MethodConfig*)@Base" 0.9.14.3~exp1
++ (c++)"pkgAcqIndexMergeDiffs::~pkgAcqIndexMergeDiffs()@Base" 0.9.14.3~exp1
++ (c++)"pkgAcqIndexMergeDiffs::pkgAcqIndexMergeDiffs(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&, DiffInfo const&, std::vector<pkgAcqIndexMergeDiffs*, std::allocator<pkgAcqIndexMergeDiffs*> > const*)@Base" 0.9.14.3~exp1
++ (c++)"typeinfo for pkgAcqIndexMergeDiffs@Base" 0.9.14.3~exp1
++ (c++)"typeinfo name for pkgAcqIndexMergeDiffs@Base" 0.9.14.3~exp1
++ (c++)"vtable for pkgAcqIndexMergeDiffs@Base" 0.9.14.3~exp1
++### deb822 sources.list format
++ (c++)"pkgSourceList::ParseFileDeb822(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.14.3~exp1
++ (c++)"pkgSourceList::ParseFileOldStyle(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.14.3~exp1
++ (c++)"pkgSourceList::Type::ParseStanza(std::vector<metaIndex*, std::allocator<metaIndex*> >&, pkgTagSection&, int, FileFd&)@Base" 0.9.14.3~exp1
 +### mixed stuff
 + (c++)"GetListOfFilesInDir(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@Base" 0.8.16~exp13
 + (c++)"pkgCache::DepIterator::IsIgnorable(pkgCache::PkgIterator const&) const@Base" 0.8.16~exp10
 + (c++)"pkgCache::DepIterator::IsIgnorable(pkgCache::PrvIterator const&) const@Base" 0.8.16~exp10
 + (c++)"FileFd::Write(int, void const*, unsigned long long)@Base" 0.8.16~exp14
 + (c++|optional=private)"pkgCacheGenerator::MergeListGroup(pkgCacheGenerator::ListParser&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.16~exp7
 + (c++|optional=private)"pkgCacheGenerator::MergeListPackage(pkgCacheGenerator::ListParser&, pkgCache::PkgIterator&)@Base" 0.8.16~exp7
 + (c++|optional=private)"pkgCacheGenerator::MergeListVersion(pkgCacheGenerator::ListParser&, pkgCache::PkgIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgCache::VerIterator*&)@Base" 0.8.16~exp7
 + (c++|optional=private)"pkgCacheGenerator::AddImplicitDepends(pkgCache::GrpIterator&, pkgCache::PkgIterator&, pkgCache::VerIterator&)@Base" 0.8.16~exp7
 + (c++|optional=private)"pkgCacheGenerator::AddImplicitDepends(pkgCache::VerIterator&, pkgCache::PkgIterator&)@Base" 0.8.16~exp7
 + (c++)"pkgTagSection::Exists(char const*)@Base" 0.9.7.9~exp1
 + (c++)"_strrstrip(char*)@Base" 0.9.7.9~exp2
 + (c++)"SplitClearSignedFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, FileFd*, 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> > > >*, FileFd*)@Base" 0.9.7.9~exp2
 + (c++)"OpenMaybeClearSignedFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, FileFd&)@Base" 0.9.7.9~exp2
 + (c++)"ExecGPGV(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.9.7.9~exp2
 + (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&)@Base" 0.9.7.9~exp2
 + (c++)"Configuration::Dump(std::basic_ostream<char, std::char_traits<char> >&, char const*, char const*, bool)@Base" 0.9.3
 + (c++)"AcquireUpdate(pkgAcquire&, int, bool, bool)@Base" 0.9.3
 + (c++|optional=private)"pkgAcqMethod::Dequeue()@Base" 0.9.4
 + (c++)"pkgCache::DepIterator::IsMultiArchImplicit() const@Base" 0.9.6
 + (c++)"pkgCache::PrvIterator::IsMultiArchImplicit() const@Base" 0.9.6
 + (c++)"APT::PackageContainerInterface::FromGroup(APT::PackageContainerInterface*, pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@Base" 0.9.7
 + (c++)"APT::CacheFilter::PackageArchitectureMatchesSpecification::PackageArchitectureMatchesSpecification(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@Base" 0.9.7
 + (c++)"APT::CacheFilter::PackageArchitectureMatchesSpecification::~PackageArchitectureMatchesSpecification()@Base" 0.9.7
 + (c++)"APT::CacheFilter::PackageArchitectureMatchesSpecification::operator()(pkgCache::PkgIterator const&)@Base" 0.9.7
 + (c++)"APT::CacheFilter::PackageArchitectureMatchesSpecification::operator()(pkgCache::VerIterator const&)@Base" 0.9.7
 + (c++)"APT::CacheFilter::PackageArchitectureMatchesSpecification::operator()(char const* const&)@Base" 0.9.7
 + (c++)"APT::Configuration::checkLanguage(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool)@Base" 0.9.7.5
 + (c++)"pkgCdrom::DropTranslation(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.9.7.5
 + (c++)"pkgCache::DepIterator::IsSatisfied(pkgCache::PrvIterator const&) const@Base" 0.9.8
 + (c++)"pkgCache::DepIterator::IsSatisfied(pkgCache::VerIterator const&) const@Base" 0.9.8
 + (c++)"pkgCacheGenerator::NewDepends(pkgCache::PkgIterator&, pkgCache::VerIterator&, unsigned int, unsigned int const&, unsigned int const&, unsigned int*&)@Base" 0.9.8
 + (c++)"pkgCacheGenerator::NewVersion(pkgCache::VerIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned long, unsigned long)@Base" 0.9.8
 + (c++)"FileFd::FileFdErrno(char const*, char const*, ...)@Base" 0.9.9
 + (c++)"FileFd::FileFdError(char const*, ...)@Base" 0.9.9
 + (c++)"operator<<(std::basic_ostream<char, std::char_traits<char> >&, GlobalError::Item)@Base" 0.9.9
 + (c++)"pkgDepCache::IsDeleteOkProtectInstallRequests(pkgCache::PkgIterator const&, bool, unsigned long, bool)@Base" 0.9.9.1
 + (c++)"pkgDepCache::IsInstallOkMultiArchSameVersionSynced(pkgCache::PkgIterator const&, bool, unsigned long, bool)@Base" 0.9.9.1
 + (c++)"pkgDPkgPM::SendPkgsInfo(_IO_FILE*, unsigned int const&)@Base" 0.9.9.1
 + (c++)"pkgCache::VerIterator::MultiArchType() const@Base" 0.9.9.1
++ (c++)"CommandLine::GetCommand(CommandLine::Dispatch const*, unsigned int, char const* const*)@Base" 0.9.11
++ (c++)"CommandLine::MakeArgs(char, char const*, char const*, unsigned long)@Base" 0.9.11
++ (c++)"Configuration::Clear()@Base" 0.9.11
++ (c++)"Glob(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)@Base" 0.9.11
++ (c++)"APT::CacheFilter::PackageNameMatchesFnmatch::operator()(pkgCache::GrpIterator const&)@Base" 0.9.11
++ (c++)"APT::CacheFilter::PackageNameMatchesFnmatch::operator()(pkgCache::PkgIterator const&)@Base" 0.9.11
++ (c++)"APT::PackageContainerInterface::FromFnmatch(APT::PackageContainerInterface*, pkgCacheFile&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, APT::CacheSetHelper&)@Base" 0.9.11
++ (c++|optional=private)"pkgTagFile::Resize(unsigned long long)@Base" 0.9.11
++ (c++)"pkgTagSection::pkgTagSection()@Base" 0.9.11
++ (c++)"strv_length(char const**)@Base" 0.9.11
++ (c++)"StringSplit(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)@Base" 0.9.11.3
++ (c++)"pkgAcquire::Item::RenameOnError(pkgAcquire::Item::RenameOnErrorState)@Base" 0.9.12
++ (c++)"APT::String::Endswith(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.9.13.1
++ (c++)"ExecFork(std::set<int, std::less<int>, std::allocator<int> >)@Base" 0.9.13.1
++ (c++)"MergeKeepFdsFromConfiguration(std::set<int, std::less<int>, std::allocator<int> >&)@Base" 0.9.13.1
++ (c++)"HashString::FromFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)@Base" 0.9.13.1
++ (c++)"HashString::GetHashForFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const@Base" 0.9.13.1
++ (c++)"indexRecords::GetSuite() const@Base" 0.9.13.2
++ (c++)"GetTempDir()@Base" 0.9.14.2
++ (c++|optional=private)"pkgCdrom::MountAndIdentCDROM(Configuration&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, pkgCdromStatus*)@Base" 0.9.15.2
 +### 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
-  (c++|optional=std)"std::ctype<char>::widen(char) const@Base" 0.8.0
++### gcc-4.6 artefacts
++ (c++|optional=implicit)"HashString::operator=(HashString const&)@Base" 0.8.0
++ (c++|optional=implicit)"HashString::HashString(HashString const&)@Base" 0.8.0
++ (c++|optional=inline)"APT::VersionContainer<std::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >::iterator std::max_element<APT::VersionContainer<std::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >::iterator, CompareProviders>(APT::VersionContainer<std::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >::iterator, APT::VersionContainer<std::list<pkgCache::VerIterator, std::allocator<pkgCache::VerIterator> > >::iterator, CompareProviders)@Base" 0.8.0
++ (c++|optional=inline)"pkgCache::VerIterator::ParentPkg() const@Base" 0.8.0
++### std library artefacts
 + (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=std)"char* std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_construct<__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> > >, std::allocator<char> const&, std::forward_iterator_tag)@Base" 0.8.0
 + (c++|optional=std)"char* std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_construct<__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> > >, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<char> const&, std::forward_iterator_tag)@Base" 0.8.0
 + (c++|optional=std)"char* std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag)@Base" 0.8.0
 + (c++|optional=std)"char* std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_construct<char*>(char*, char*, std::allocator<char> const&, std::forward_iterator_tag)@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> >::_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)"^(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)"^std::basic_string<.+ >::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
index 74659cf129bb7dc71d10400b710cce7ae4d6d516,8dc014b9883f229669f34d316b883151ec959a93..4633b78ce66bd33c87d589c001d1a4df6a55aa99
@@@ -39,9 -39,9 +39,9 @@@ include $(PROGRAM_H
  #SOURCE = rpmver.cc
  #include $(PROGRAM_H)
  
 -# Program for testing udevcdrom
 +# very simple webserver for APT testing
  PROGRAM=aptwebserver
- SLIBS = -lapt-pkg
+ SLIBS = -lapt-pkg -lpthread
  LIB_MAKES = apt-pkg/makefile
  SOURCE = aptwebserver.cc
  include $(PROGRAM_H)