]> git.saurik.com Git - apt.git/commitdiff
merged with the debian-sid branch
authorMichael Vogt <egon@bottom>
Wed, 17 May 2006 15:58:24 +0000 (17:58 +0200)
committerMichael Vogt <egon@bottom>
Wed, 17 May 2006 15:58:24 +0000 (17:58 +0200)
1  2 
apt-pkg/acquire-item.cc
apt-pkg/makefile
apt-pkg/tagfile.cc
configure.in
debian/changelog
po/apt-all.pot

diff --combined apt-pkg/acquire-item.cc
index 52c516090bc8aed377397434bd5b56a0ec280868,cc16215f5f97df2572dbc1010d9e37f630fc6f98..966126255eaf1d2c5ddd7cdaeb351765605aaf4c
@@@ -103,7 -103,8 +103,8 @@@ void pkgAcquire::Item::Done(string Mess
  {
     // We just downloaded something..
     string FileName = LookupTag(Message,"Filename");
-    if (Complete == false && FileName == DestFile)
+    // we only inform the Log class if it was actually not a local thing
+    if (Complete == false && !Local && FileName == DestFile)
     {
        if (Owner->Log != 0)
         Owner->Log->Fetched(Size,atoi(LookupTag(Message,"Resume-Point","0").c_str()));
@@@ -134,7 -135,7 +135,6 @@@ void pkgAcquire::Item::Rename(string Fr
  }
                                                                        /*}}}*/
  
--
  // AcqDiffIndex::AcqDiffIndex - Constructor                   
  // ---------------------------------------------------------------------
  /* Get the DiffIndex file first and see if there are patches availabe 
@@@ -169,8 -170,8 +169,8 @@@ pkgAcqDiffIndex::pkgAcqDiffIndex(pkgAcq
     //        from local sources. this is really silly, and
     //        should be fixed cleanly as soon as possible
     if(!FileExists(CurrentPackagesFile) || 
-       Desc.URI.substr(0,strlen("file:/")) == "file:/" ||
-       !_config->FindB("Acquire::Diffs",true)) {
+       Desc.URI.substr(0,strlen("file:/")) == "file:/")
+    {
        // we don't have a pkg file or we don't want to queue
        if(Debug)
         std::clog << "No index file, local or canceld by user" << std::endl;
        return;
     }
  
-    if(Debug) {
+    if(Debug) 
        std::clog << "pkgAcqIndexDiffs::pkgAcqIndexDiffs(): " 
                << CurrentPackagesFile << std::endl;
-    }
+    
     QueueURI(Desc);
  
  }
@@@ -237,26 -237,32 +236,32 @@@ bool pkgAcqDiffIndex::ParseDiffIndex(st
        SHA1.AddFD(fd.Fd(), fd.Size());
        local_sha1 = string(SHA1.Result());
  
-       if(local_sha1 == ServerSha1) {
+       if(local_sha1 == ServerSha1) 
+       {
+        // we have the same sha1 as the server
         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 {
+       } 
+       else 
+       {
         if(Debug)
            std::clog << "SHA1-Current: " << ServerSha1 << std::endl;
  
         // check the historie and see what patches we need
         string history = Tags.FindS("SHA1-History");     
         std::stringstream hist(history);
-        while(hist >> d.sha1 >> size >> d.file) {
+        while(hist >> d.sha1 >> size >> d.file) 
+        {
            d.size = atoi(size.c_str());
            // read until the first match is found
            if(d.sha1 == local_sha1) 
               found=true;
            // from that point on, we probably need all diffs
-           if(found) {
+           if(found) 
+           {
               if(Debug)
                  std::clog << "Need to get diff: " << d.file << std::endl;
               available_patches.push_back(d);
        }
  
        // no information how to get the patches, bail out
-       if(!found) {
+       if(!found) 
+       {
         if(Debug)
            std::clog << "Can't find a patch in the index file" << std::endl;
         // Failed will queue a big package file
         Failed("", NULL);
-       } else {
+       } 
+       else 
+       {
         // queue the diffs
         new pkgAcqIndexDiffs(Owner, RealURI, Description, Desc.ShortDesc,
                              ExpectedMD5, available_patches);
@@@ -351,10 -360,13 +359,13 @@@ pkgAcqIndexDiffs::pkgAcqIndexDiffs(pkgA
     Desc.Owner = this;
     Desc.ShortDesc = ShortDesc;
  
-    if(available_patches.size() == 0) {
+    if(available_patches.size() == 0) 
+    {
        // we are done (yeah!)
        Finish(true);
-    } else {
+    }
+    else
+    {
        // get the next diff
        State = StateFetchDiff;
        QueueNextDiff();
@@@ -366,7 -378,7 +377,7 @@@ void pkgAcqIndexDiffs::Failed(string Me
  {
     if(Debug)
        std::clog << "pkgAcqIndexDiffs failed: " << Desc.URI << std::endl
-               << "Falling back to normal index file acquire" << std::endl;
+               << "Falling back to normal index file aquire" << std::endl;
     new pkgAcqIndex(Owner, RealURI, Description,Desc.ShortDesc, 
                   ExpectedMD5);
     Finish();
@@@ -378,7 -390,8 +389,8 @@@ void pkgAcqIndexDiffs::Finish(bool allD
  {
     // we restore the original name, this is required, otherwise
     // the file will be cleaned
-    if(allDone) {
+    if(allDone) 
+    {
        DestFile = _config->FindDir("Dir::State::lists");
        DestFile += URItoFileName(RealURI);
  
@@@ -435,14 -448,17 +447,17 @@@ bool pkgAcqIndexDiffs::QueueNextDiff(
     // remove all patches until the next matching patch is found
     // this requires the Index file to be ordered
     for(vector<DiffInfo>::iterator I=available_patches.begin();
-        available_patches.size() > 0 && I != available_patches.end() 
-         && (*I).sha1 != local_sha1; 
-        I++) {
+        available_patches.size() > 0 && 
+         I != available_patches.end() &&
+         (*I).sha1 != local_sha1; 
+        I++) 
+    {
        available_patches.erase(I);
     }
  
     // error checking and falling back if no patch was found
-    if(available_patches.size() == 0) { 
+    if(available_patches.size() == 0) 
+    { 
        Failed("", NULL);
        return false;
     }
@@@ -484,6 -500,7 +499,7 @@@ void pkgAcqIndexDiffs::Done(string Mess
  
        string FileName = LookupTag(Message,"Filename");
        State = StateUnzipDiff;
+       Local = true;
        Desc.URI = "gzip:" + FileName;
        DestFile += ".decomp";
        QueueURI(Desc);
         std::clog << "Sending to rred method: " << FinalFile << std::endl;
  
        State = StateApplyDiff;
+       Local = true;
        Desc.URI = "rred:" + FinalFile;
        QueueURI(Desc);
        Mode = "rred";
@@@ -711,35 -729,6 +728,35 @@@ void pkgAcqIndex::Done(string Message,u
     Mode = decompProg;
  }
  
 +// AcqIndexTrans::pkgAcqIndexTrans - Constructor                      /*{{{*/
 +// ---------------------------------------------------------------------
 +/* The Translation file is added to the queue */
 +pkgAcqIndexTrans::pkgAcqIndexTrans(pkgAcquire *Owner,
 +                          string URI,string URIDesc,string ShortDesc) :
 +                      pkgAcqIndex(Owner, URI, URIDesc, ShortDesc, "", "")
 +{
 +}
 +
 +                                                                      /*}}}*/
 +// AcqIndexTrans::Failed - Silence failure messages for missing files /*{{{*/
 +// ---------------------------------------------------------------------
 +/* */
 +void pkgAcqIndexTrans::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
 +{
 +   if (Cnf->LocalOnly == true || 
 +       StringToBool(LookupTag(Message,"Transient-Failure"),false) == false)
 +   {      
 +      // Ignore this
 +      Status = StatDone;
 +      Complete = false;
 +      Dequeue();
 +      return;
 +   }
 +   
 +   Item::Failed(Message,Cnf);
 +}
 +                                                                      /*}}}*/
 +
  pkgAcqMetaSig::pkgAcqMetaSig(pkgAcquire *Owner,
                             string URI,string URIDesc,string ShortDesc,
                             string MetaIndexURI, string MetaIndexURIDesc,
@@@ -1033,9 -1022,14 +1050,14 @@@ void pkgAcqMetaIndex::QueueIndexes(boo
           }
        }
        
-       // Queue Packages file
-       new pkgAcqDiffIndex(Owner, (*Target)->URI, (*Target)->Description,
-                         (*Target)->ShortDesc, ExpectedIndexMD5);
+       // Queue Packages file (either diff or full packages files, depending
+       // on the users option)
+       if(_config->FindB("Acquire::PDiffs",true) == true) 
+        new pkgAcqDiffIndex(Owner, (*Target)->URI, (*Target)->Description,
+                            (*Target)->ShortDesc, ExpectedIndexMD5);
+       else 
+        new pkgAcqIndex(Owner, (*Target)->URI, (*Target)->Description,
+                           (*Target)->ShortDesc, ExpectedIndexMD5);
     }
  }
  
diff --combined apt-pkg/makefile
index fa0efe5b2a34538dbdfb1a17a14a348c609cbc1a,7e5feae53b4b11082c1d3973bab0772c5ce7085d..7887fce928a243de07f7becb379a984c2d9c38f8
@@@ -13,7 -13,7 +13,7 @@@ include ../buildlib/defaults.ma
  # methods/makefile - FIXME
  LIBRARY=apt-pkg
  LIBEXT=$(GLIBC_VER)$(LIBSTDCPP_VER)
 -MAJOR=3.11
 +MAJOR=4.0
  MINOR=0
  SLIBS=$(PTHREADLIB) $(INTLLIBS)
  APT_DOMAIN:=libapt-pkg$(MAJOR)
  # Source code for the contributed non-core things
  SOURCE = contrib/mmap.cc contrib/error.cc contrib/strutl.cc \
           contrib/configuration.cc contrib/progress.cc contrib/cmndline.cc \
-        contrib/md5.cc contrib/sha1.cc contrib/hashes.cc \
+        contrib/md5.cc contrib/sha1.cc contrib/sha256.cc contrib/hashes.cc \
         contrib/cdromutl.cc contrib/crc-16.cc \
         contrib/fileutl.cc 
  HEADERS = mmap.h error.h configuration.h fileutl.h  cmndline.h \
-         md5.h crc-16.h cdromutl.h strutl.h sptr.h sha1.h hashes.h
+         md5.h crc-16.h cdromutl.h strutl.h sptr.h sha1.h sha256.h hashes.h
  
  # Source code for the core main library
  SOURCE+= pkgcache.cc version.cc depcache.cc \
diff --combined apt-pkg/tagfile.cc
index cae0fa81989f5e4ba0e6a8e7ce77012e1da0be28,fc020436ca37345e1e062be8d9d8371a60e52afd..2eb269418381efb27a4d4a3e585ef95cad468e3d
@@@ -35,20 -35,20 +35,20 @@@ pkgTagFile::pkgTagFile(FileFd *pFd,unsi
       Fd(*pFd),
       Size(Size)
  {
-    if (Fd.IsOpen() == false)
 -   if (Fd.IsOpen() == false || Fd.Size() == 0)
++   if (Fd.IsOpen() == false || Fd.Size())
     {
        Buffer = 0;
        Start = End = Buffer = 0;
-       Done = true;
        iOffset = 0;
+       Map = NULL;
        return;
     }
     
-    Buffer = new char[Size];
-    Start = End = Buffer;
-    Done = false;
+    Map = new MMap (Fd, MMap::Public | MMap::ReadOnly);
+    Buffer = (char *) Map->Data ();
+    Start = Buffer;
+    End = Buffer + Map->Size ();
     iOffset = 0;
-    Fill();
  }
                                                                        /*}}}*/
  // TagFile::~pkgTagFile - Destructor                                  /*{{{*/
@@@ -56,7 -56,7 +56,7 @@@
  /* */
  pkgTagFile::~pkgTagFile()
  {
-    delete [] Buffer;
+    delete Map;
  }
                                                                        /*}}}*/
  // TagFile::Step - Advance to the next section                                /*{{{*/
  /* If the Section Scanner fails we refill the buffer and try again. */
  bool pkgTagFile::Step(pkgTagSection &Tag)
  {
+    if (Start == End)
+       return false;
     if (Tag.Scan(Start,End - Start) == false)
     {
-       if (Fill() == false)
-        return false;
-       
-       if (Tag.Scan(Start,End - Start) == false)
-        return _error->Error(_("Unable to parse package file %s (1)"),
-                             Fd.Name().c_str());
+       return _error->Error(_("Unable to parse package file %s (1)"),
+             Fd.Name().c_str());
     }
     Start += Tag.size();
     iOffset += Tag.size();
  
     Tag.Trim();
-    return true;
- }
-                                                                       /*}}}*/
- // TagFile::Fill - Top up the buffer                                  /*{{{*/
- // ---------------------------------------------------------------------
- /* This takes the bit at the end of the buffer and puts it at the start
-    then fills the rest from the file */
- bool pkgTagFile::Fill()
- {
-    unsigned long EndSize = End - Start;
-    unsigned long Actual = 0;
-    
-    memmove(Buffer,Start,EndSize);
-    Start = Buffer;
-    End = Buffer + EndSize;
-    
-    if (Done == false)
-    {
-       // See if only a bit of the file is left
-       if (Fd.Read(End,Size - (End - Buffer),&Actual) == false)
-        return false;
-       if (Actual != Size - (End - Buffer))
-        Done = true;
-       End += Actual;
-    }
-    
-    if (Done == true)
-    {
-       if (EndSize <= 3 && Actual == 0)
-        return false;
-       if (Size - (End - Buffer) < 4)
-        return true;
-       
-       // Append a double new line if one does not exist
-       unsigned int LineCount = 0;
-       for (const char *E = End - 1; E - End < 6 && (*E == '\n' || *E == '\r'); E--)
-        if (*E == '\n')
-           LineCount++;
-       for (; LineCount < 2; LineCount++)
-        *End++ = '\n';
-       
-       return true;
-    }
-    
     return true;
  }
                                                                        /*}}}*/
@@@ -141,20 -96,7 +96,7 @@@ bool pkgTagFile::Jump(pkgTagSection &Ta
  
     // Reposition and reload..
     iOffset = Offset;
-    Done = false;
-    if (Fd.Seek(Offset) == false)
-       return false;
-    End = Start = Buffer;
-    
-    if (Fill() == false)
-       return false;
-    if (Tag.Scan(Start,End - Start) == true)
-       return true;
-    
-    // This appends a double new line (for the real eof handling)
-    if (Fill() == false)
-       return false;
+    Start = Buffer + iOffset;
     
     if (Tag.Scan(Start,End - Start) == false)
        return _error->Error(_("Unable to parse package file %s (2)"),Fd.Name().c_str());
@@@ -181,7 -123,7 +123,7 @@@ bool pkgTagSection::Scan(const char *St
     Stop = Section = Start;
     memset(AlphaIndexes,0,sizeof(AlphaIndexes));
  
-    if (Stop == 0)
+    if (Stop == 0 || MaxLength == 0)
        return false;
     
     TagCount = 0;
        Stop++;
     }
  
+    if ((Stop+1 >= End) && (End[-1] == '\n' || End[-1] == '\r'))
+    {
+        Indexes[TagCount] = (End - 1) - Section;
+        return true;
+    }
     return false;
  }
                                                                        /*}}}*/
@@@ -394,7 -342,8 +342,8 @@@ static const char *iTFRewritePackageOrd
                            "Filename",
                            "Size",
                            "MD5Sum",
-                           "SHA1Sum",
+                           "SHA1",
+                           "SHA256",
                             "MSDOS-Filename",   // Obsolete
                            "Description",
                            0};
diff --combined configure.in
index 41609c39dc25728997364f9bdba04cc97e199b38,96adad5974bc944e660db273754614892f95591e..a8e565848007cd61ac3511fd546cc839bf4ae872
@@@ -18,7 -18,7 +18,7 @@@ AC_CONFIG_AUX_DIR(buildlib
  AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
  
  dnl -- SET THIS TO THE RELEASE VERSION --
- AC_DEFINE_UNQUOTED(VERSION,"0.6.43.3")
 -AC_DEFINE_UNQUOTED(VERSION,"0.6.44.1")
++AC_DEFINE_UNQUOTED(VERSION,"0.6.44.1exp1")
  PACKAGE="apt"
  AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
  AC_SUBST(PACKAGE)
@@@ -175,21 -175,12 +175,21 @@@ dnl Check for debiando
  AC_PATH_PROG(DEBIANDOC_HTML,debiandoc2html)
  AC_PATH_PROG(DEBIANDOC_TEXT,debiandoc2text)
  
 +dnl Check for doxygen
 +AC_PATH_PROG(DOXYGEN, doxygen)
 +
  dnl Check for the SGML tools needed to build man pages
  AC_PATH_PROG(DOCBOOK2MAN,docbook2man)
  
  dnl Check for the XML tools needed to build man pages
  AC_PATH_PROG(XMLTO,xmlto)
  
 +dnl Check for graphviz
 +AC_CHECK_PROG([HAVE_DOT], [dot], [YES], [NO])
 +AC_PATH_PROG([DOT], [dot], [])
 +DOTDIR=$(dirname $DOT)
 +AC_SUBST(DOTDIR)
 +
  dnl Check for YODL
  dnl AC_CHECK_PROG(YODL_MAN,yodl2man,"yes","")
  
@@@ -201,7 -192,7 +201,7 @@@ ah_GCC3DE
  dnl It used to be that the user could select translations and that could get
  dnl passed to the makefiles, but now that can only work if you use special
  dnl gettext approved makefiles, so this feature is unsupported by this.
- ALL_LINGUAS="da de en_GB es fr hu it nl no_NO pl pt_BR ru sv zh_TW"
+ ALL_LINGUAS="bg bs ca cs cy da de el en_GB es eu fi fr gl hu it ja ko nb nl nn pl pt_BR pt ro ru sk sl sv tl vi zn_CN zh_TW"
  AM_GNU_GETTEXT(external)
  if test x"$USE_NLS" = "xyes"; then
     AC_DEFINE(USE_NLS)
@@@ -209,4 -200,4 +209,4 @@@ f
  AC_SUBST(USE_NLS)
  AC_PATH_PROG(BASH, bash)
  
 -AC_OUTPUT(environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in,make -s dirs)
 +AC_OUTPUT(environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in doc/Doxyfile,make -s dirs)
diff --combined debian/changelog
index d2e7802357590e530861dacdb46d7f3a7514c449,c4bcf5c1c3fffe62a420bcc8ab84405974418964..2f7e5f872bb6124e8bccea5fd57c4b9e005f5598
@@@ -1,13 -1,55 +1,63 @@@
- apt (0.6.43.3exp1) experimental; urgency=low
++apt (0.6.44.1exp1) experimental; urgency=low
 +
-   * added support for package index diffs
 +  * added support for i18n of the package descriptions
-   * synced with the apt--debian-sid--0 branch
-   * build from mvo@debian.org--2005/apt--debian-experimental--0
-     (from http://people.debian.org/~mvo/arch)
++  * synced with the http://people.debian.org/~mvo/bzr/apt/debian-sid branch
++  * build from http://people.debian.org/~mvo/bzr/apt/debian-experimental
++  
 + -- Michael Vogt <mvo@debian.org>  Wed,  1 Mar 2006 13:34:15 +0100
 +
+ apt (0.6.44.1) unstable; urgency=low
+   * apt-pkg/acquire-item.cc:
+     - fix reversed logic of the "Acquire::PDiffs" option
+   * merged from 
+     http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main:
+     - po/LINGUAS: added "bg" Closes: #360262
+     - po/gl.po: Galician translation update. Closes: #366849
+     - po/hu.po: Hungarian translation update. Closes: #365448
+     - po/cs.po: Czech translation updated. Closes: #367244
+   * apt-pkg/contrib/sha256.cc:
+     - applied patch to fix unaligned access problem. Closes: #367417
+       (thanks to David Mosberger)
+  -- Michael Vogt <mvo@debian.org>  Tue, 16 May 2006 21:51:16 +0200
+ apt (0.6.44) unstable; urgency=low
+   * apt-pkg/acquire.cc: don't show ETA if it is 0 or absurdely large
+   * apt-pkg/contrib/sha256.{cc,h},hashes.{cc,h}: support for sha256 
+     (thanks to Anthony Towns)
+   * ftparchive/cachedb.{cc,h},writer.{cc,h}: optimizations 
+     (thanks to Anthony Towns)
+   * apt pdiff support from experimental merged
+   * apt-pkg/deb/dpkgpm.cc: wording fixes (thanks to Matt Zimmerman)
+   * apt-pkg/deb/dpkgpm.cc: 
+     - wording fixes (thanks to Matt Zimmerman)
+     - fix error in dpkg interaction (closes: #364513, thanks to Martin Dickopp)
+   * apt-pkg/tagfile.{cc,h}:
+     - use MMap to read the entries (thanks to Zephaniah E. Hull for the
+       patch) Closes: #350025
+   * Merge from http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main:
+       * bg.po: Added, complete to 512t. Closes: #360262
+   * doc/apt-ftparchive.1.xml:
+     - fix documentation for "SrcPackages" -> "Sources" 
+       (thanks to Bart Martens for the patch, closes: #307756)
+   * debian/libapt-pkg-doc.doc-base.cache:
+     - remove broken charackter from description (closes: #361129)
+   * apt-inst/deb/dpkgdb.cc, methods/gpgv.cc: 
+     - i18n fixes (closes: #349298)
+   * debian/postinst: dont fail on not available
+     /usr/share/doc/apt/examples/sources.list (closes: #361130)
+   * methods/ftp.cc:
+     - unlink empty file in partial if the download failed because
+       the file is missing on the server (closes: #316337)
+   * apt-pkg/deb/debversion.cc:
+     - treats a version string with explicit zero epoch equal
+       than the same without epoch (Policy 5.6.12, closes: #363358)
+       Thanks to Lionel Elie Mamane for the patch
+   
+  -- Michael Vogt <mvo@debian.org>  Mon,  8 May 2006 22:28:53 +0200
  apt (0.6.43.3) unstable; urgency=low
  
    * Merge bubulle@debian.org--2005/apt--main--0 up to patch-186:
@@@ -178,7 -220,7 +228,7 @@@ apt (0.6.42) unstable; urgency=lo
    * cmdline/apt-cdrom.cc: 
      - fix some missing gettext() calls (closes: #334539)
    * doc/apt-cache.8.xml: fix typo (closes: #334714)
 -  
 +
   -- Michael Vogt <mvo@debian.org>  Wed, 19 Oct 2005 22:02:09 +0200
  
  apt (0.6.41) unstable; urgency=low
@@@ -263,7 -305,6 +313,7 @@@ apt (0.6.38) unstable; urgency=lo
    
   -- Matt Zimmerman <mdz@debian.org>  Sat, 25 Jun 2005 09:51:00 -0700
  
 +>>>>>>> MERGE-SOURCE
  apt (0.6.37) breezy; urgency=low
  
    * Merge bubulle@debian.org--2005/apt--main--0 up to patch-81
diff --combined po/apt-all.pot
index 23de34b5cfa8b0ac3427a967ab7faf90b5ceb306,d2209487a117a468c9cfa2ecabfb7af522f46919..262200f4456cdb477e96046a9c84159d1648f316
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  msgstr ""
  "Project-Id-Version: PACKAGE VERSION\n"
  "Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2006-01-20 14:06+0100\n"
 -"POT-Creation-Date: 2006-05-08 11:02+0200\n"
++"POT-Creation-Date: 2006-05-17 17:27+0200\n"
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  "Language-Team: LANGUAGE <LL@li.org>\n"
  "Content-Type: text/plain; charset=CHARSET\n"
  "Content-Transfer-Encoding: 8bit\n"
  
--#: cmdline/apt-cache.cc:135
++#: cmdline/apt-cache.cc:141
  #, c-format
  msgid "Package %s version %s has an unmet dep:\n"
  msgstr ""
  
--#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615
--#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357
--#: cmdline/apt-cache.cc:1508
++#: cmdline/apt-cache.cc:181 cmdline/apt-cache.cc:550 cmdline/apt-cache.cc:638
++#: cmdline/apt-cache.cc:794 cmdline/apt-cache.cc:1012
++#: cmdline/apt-cache.cc:1413 cmdline/apt-cache.cc:1564
  #, c-format
  msgid "Unable to locate package %s"
  msgstr ""
  
--#: cmdline/apt-cache.cc:232
++#: cmdline/apt-cache.cc:245
  msgid "Total package names : "
  msgstr ""
  
--#: cmdline/apt-cache.cc:272
++#: cmdline/apt-cache.cc:285
  msgid "  Normal packages: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:273
++#: cmdline/apt-cache.cc:286
  msgid "  Pure virtual packages: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:274
++#: cmdline/apt-cache.cc:287
  msgid "  Single virtual packages: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:275
++#: cmdline/apt-cache.cc:288
  msgid "  Mixed virtual packages: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:276
++#: cmdline/apt-cache.cc:289
  msgid "  Missing: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:278
++#: cmdline/apt-cache.cc:291
  msgid "Total distinct versions: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:280
++#: cmdline/apt-cache.cc:293
++msgid "Total Distinct Descriptions: "
++msgstr ""
++
++#: cmdline/apt-cache.cc:295
  msgid "Total dependencies: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:283
++#: cmdline/apt-cache.cc:298
  msgid "Total ver/file relations: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:285
++#: cmdline/apt-cache.cc:300
++msgid "Total Desc/File relations: "
++msgstr ""
++
++#: cmdline/apt-cache.cc:302
  msgid "Total Provides mappings: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:297
++#: cmdline/apt-cache.cc:314
  msgid "Total globbed strings: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:311
++#: cmdline/apt-cache.cc:328
  msgid "Total dependency version space: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:316
++#: cmdline/apt-cache.cc:333
  msgid "Total slack space: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:324
++#: cmdline/apt-cache.cc:341
  msgid "Total space accounted for: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189
++#: cmdline/apt-cache.cc:469 cmdline/apt-cache.cc:1212
  #, c-format
  msgid "Package file %s is out of sync."
  msgstr ""
  
--#: cmdline/apt-cache.cc:1231
++#: cmdline/apt-cache.cc:1287
  msgid "You must give exactly one pattern"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1385
++#: cmdline/apt-cache.cc:1441
  msgid "No packages found"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1462
++#: cmdline/apt-cache.cc:1518
  msgid "Package files:"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555
++#: cmdline/apt-cache.cc:1525 cmdline/apt-cache.cc:1611
  msgid "Cache is out of sync, can't x-ref a package file"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1470
++#: cmdline/apt-cache.cc:1526
  #, c-format
  msgid "%4i %s\n"
  msgstr ""
  
  #. Show any packages have explicit pins
--#: cmdline/apt-cache.cc:1482
++#: cmdline/apt-cache.cc:1538
  msgid "Pinned packages:"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535
++#: cmdline/apt-cache.cc:1550 cmdline/apt-cache.cc:1591
  msgid "(not found)"
  msgstr ""
  
  #. Installed version
--#: cmdline/apt-cache.cc:1515
++#: cmdline/apt-cache.cc:1571
  msgid "  Installed: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525
++#: cmdline/apt-cache.cc:1573 cmdline/apt-cache.cc:1581
  msgid "(none)"
  msgstr ""
  
  #. Candidate Version
--#: cmdline/apt-cache.cc:1522
++#: cmdline/apt-cache.cc:1578
  msgid "  Candidate: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:1532
++#: cmdline/apt-cache.cc:1588
  msgid "  Package pin: "
  msgstr ""
  
  #. Show the priority tables
--#: cmdline/apt-cache.cc:1541
++#: cmdline/apt-cache.cc:1597
  msgid "  Version table:"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1556
++#: cmdline/apt-cache.cc:1612
  #, c-format
  msgid "       %4i %s\n"
  msgstr ""
  
- #: cmdline/apt-cache.cc:1651 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
 -#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
++#: cmdline/apt-cache.cc:1708 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
  #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550
- #: cmdline/apt-get.cc:2378 cmdline/apt-sortpkgs.cc:144
+ #: cmdline/apt-get.cc:2369 cmdline/apt-sortpkgs.cc:144
  #, c-format
  msgid "%s %s for %s %s compiled on %s %s\n"
  msgstr ""
  
- #: cmdline/apt-cache.cc:1658
 -#: cmdline/apt-cache.cc:1659
++#: cmdline/apt-cache.cc:1715
  msgid ""
  "Usage: apt-cache [options] command\n"
  "       apt-cache [options] add file1 [file2 ...]\n"
@@@ -243,7 -243,7 +251,7 @@@ msgid "
  "  -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
  msgstr ""
  
--#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710
++#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:815
  #, c-format
  msgid "Unable to write to %s"
  msgstr ""
@@@ -327,115 -327,115 +335,126 @@@ msgstr "
  msgid "Some files are missing in the package file group `%s'"
  msgstr ""
  
--#: ftparchive/cachedb.cc:45
++#: ftparchive/cachedb.cc:47
  #, c-format
  msgid "DB was corrupted, file renamed to %s.old"
  msgstr ""
  
--#: ftparchive/cachedb.cc:63
++#: ftparchive/cachedb.cc:65
  #, c-format
  msgid "DB is old, attempting to upgrade %s"
  msgstr ""
  
--#: ftparchive/cachedb.cc:73
++#: ftparchive/cachedb.cc:76
++msgid ""
++"DB format is invalid. If you upgraded from a older version of apt, please "
++"remove and re-create the database."
++msgstr ""
++
++#: ftparchive/cachedb.cc:81
  #, c-format
  msgid "Unable to open DB file %s: %s"
  msgstr ""
  
--#: ftparchive/cachedb.cc:114
++#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193
++#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266
  #, c-format
--msgid "File date has changed %s"
++msgid "Failed to stat %s"
  msgstr ""
  
--#: ftparchive/cachedb.cc:155
++#: ftparchive/cachedb.cc:242
  msgid "Archive has no control record"
  msgstr ""
  
--#: ftparchive/cachedb.cc:267
++#: ftparchive/cachedb.cc:448
  msgid "Unable to get a cursor"
  msgstr ""
  
--#: ftparchive/writer.cc:78
++#: ftparchive/writer.cc:79
  #, c-format
  msgid "W: Unable to read directory %s\n"
  msgstr ""
  
--#: ftparchive/writer.cc:83
++#: ftparchive/writer.cc:84
  #, c-format
  msgid "W: Unable to stat %s\n"
  msgstr ""
  
--#: ftparchive/writer.cc:125
++#: ftparchive/writer.cc:135
  msgid "E: "
  msgstr ""
  
--#: ftparchive/writer.cc:127
++#: ftparchive/writer.cc:137
  msgid "W: "
  msgstr ""
  
--#: ftparchive/writer.cc:134
++#: ftparchive/writer.cc:144
  msgid "E: Errors apply to file "
  msgstr ""
  
--#: ftparchive/writer.cc:151 ftparchive/writer.cc:181
++#: ftparchive/writer.cc:161 ftparchive/writer.cc:191
  #, c-format
  msgid "Failed to resolve %s"
  msgstr ""
  
--#: ftparchive/writer.cc:163
++#: ftparchive/writer.cc:173
  msgid "Tree walking failed"
  msgstr ""
  
--#: ftparchive/writer.cc:188
++#: ftparchive/writer.cc:198
  #, c-format
  msgid "Failed to open %s"
  msgstr ""
  
--#: ftparchive/writer.cc:245
++#: ftparchive/writer.cc:257
  #, c-format
  msgid " DeLink %s [%s]\n"
  msgstr ""
  
--#: ftparchive/writer.cc:253
++#: ftparchive/writer.cc:265
  #, c-format
  msgid "Failed to readlink %s"
  msgstr ""
  
--#: ftparchive/writer.cc:257
++#: ftparchive/writer.cc:269
  #, c-format
  msgid "Failed to unlink %s"
  msgstr ""
  
--#: ftparchive/writer.cc:264
++#: ftparchive/writer.cc:276
  #, c-format
  msgid "*** Failed to link %s to %s"
  msgstr ""
  
--#: ftparchive/writer.cc:274
++#: ftparchive/writer.cc:286
  #, c-format
  msgid " DeLink limit of %sB hit.\n"
  msgstr ""
  
--#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193
- #: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:260
 -#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266
--#, c-format
--msgid "Failed to stat %s"
--msgstr ""
--
--#: ftparchive/writer.cc:386
++#: ftparchive/writer.cc:390
  msgid "Archive had no package field"
  msgstr ""
  
--#: ftparchive/writer.cc:394 ftparchive/writer.cc:603
++#: ftparchive/writer.cc:398 ftparchive/writer.cc:613
  #, c-format
  msgid "  %s has no override entry\n"
  msgstr ""
  
--#: ftparchive/writer.cc:437 ftparchive/writer.cc:689
++#: ftparchive/writer.cc:443 ftparchive/writer.cc:701
  #, c-format
  msgid "  %s maintainer is %s not %s\n"
  msgstr ""
  
++#: ftparchive/writer.cc:623
++#, c-format
++msgid "  %s has no source override entry\n"
++msgstr ""
++
++#: ftparchive/writer.cc:627
++#, c-format
++msgid "  %s has no binary override entry either\n"
++msgstr ""
++
  #: ftparchive/contents.cc:317
  #, c-format
  msgid "Internal error, could not locate member %s"
@@@ -535,7 -535,7 +554,7 @@@ msgstr "
  msgid "Y"
  msgstr ""
  
- #: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1515
+ #: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506
  #, c-format
  msgid "Regex compilation error - %s"
  msgstr ""
@@@ -694,11 -694,11 +713,11 @@@ msgstr "
  msgid "Internal error, Ordering didn't finish"
  msgstr ""
  
- #: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1809 cmdline/apt-get.cc:1842
+ #: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1800 cmdline/apt-get.cc:1833
  msgid "Unable to lock the download directory"
  msgstr ""
  
- #: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1890 cmdline/apt-get.cc:2126
+ #: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1881 cmdline/apt-get.cc:2117
  #: apt-pkg/cachefile.cc:67
  msgid "The list of sources could not be read."
  msgstr ""
@@@ -727,7 -727,7 +746,7 @@@ msgstr "
  msgid "After unpacking %sB disk space will be freed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1980
+ #: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1971
  #, c-format
  msgid "Couldn't determine free space in %s"
  msgstr ""
@@@ -761,7 -761,7 +780,7 @@@ msgstr "
  msgid "Do you want to continue [Y/n]? "
  msgstr ""
  
- #: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2023
+ #: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2014
  #, c-format
  msgid "Failed to fetch %s  %s\n"
  msgstr ""
  msgid "Some files failed to download"
  msgstr ""
  
- #: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2032
+ #: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2023
  msgid "Download complete and in download only mode"
  msgstr ""
  
@@@ -866,7 -866,7 +885,7 @@@ msgstr "
  msgid "The update command takes no arguments"
  msgstr ""
  
- #: cmdline/apt-get.cc:1326 cmdline/apt-get.cc:1420
+ #: cmdline/apt-get.cc:1326
  msgid "Unable to lock the list directory"
  msgstr ""
  
@@@ -880,27 -880,27 +899,27 @@@ msgstr "
  msgid "Internal error, AllUpgrade broke stuff"
  msgstr ""
  
- #: cmdline/apt-get.cc:1502 cmdline/apt-get.cc:1538
+ #: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529
  #, c-format
  msgid "Couldn't find package %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:1525
+ #: cmdline/apt-get.cc:1516
  #, c-format
  msgid "Note, selecting %s for regex '%s'\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1555
+ #: cmdline/apt-get.cc:1546
  msgid "You might want to run `apt-get -f install' to correct these:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1558
+ #: cmdline/apt-get.cc:1549
  msgid ""
  "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
  "solution)."
  msgstr ""
  
- #: cmdline/apt-get.cc:1570
+ #: cmdline/apt-get.cc:1561
  msgid ""
  "Some packages could not be installed. This may mean that you have\n"
  "requested an impossible situation or if you are using the unstable\n"
  "or been moved out of Incoming."
  msgstr ""
  
- #: cmdline/apt-get.cc:1578
+ #: cmdline/apt-get.cc:1569
  msgid ""
  "Since you only requested a single operation it is extremely likely that\n"
  "the package is simply not installable and a bug report against\n"
  "that package should be filed."
  msgstr ""
  
- #: cmdline/apt-get.cc:1583
+ #: cmdline/apt-get.cc:1574
  msgid "The following information may help to resolve the situation:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1586
+ #: cmdline/apt-get.cc:1577
  msgid "Broken packages"
  msgstr ""
  
- #: cmdline/apt-get.cc:1612
+ #: cmdline/apt-get.cc:1603
  msgid "The following extra packages will be installed:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1683
+ #: cmdline/apt-get.cc:1674
  msgid "Suggested packages:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1684
+ #: cmdline/apt-get.cc:1675
  msgid "Recommended packages:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1704
+ #: cmdline/apt-get.cc:1695
  msgid "Calculating upgrade... "
  msgstr ""
  
- #: cmdline/apt-get.cc:1707 methods/ftp.cc:702 methods/connect.cc:101
+ #: cmdline/apt-get.cc:1698 methods/ftp.cc:702 methods/connect.cc:101
  msgid "Failed"
  msgstr ""
  
- #: cmdline/apt-get.cc:1712
+ #: cmdline/apt-get.cc:1703
  msgid "Done"
  msgstr ""
  
- #: cmdline/apt-get.cc:1777 cmdline/apt-get.cc:1785
+ #: cmdline/apt-get.cc:1768 cmdline/apt-get.cc:1776
  msgid "Internal error, problem resolver broke stuff"
  msgstr ""
  
- #: cmdline/apt-get.cc:1885
+ #: cmdline/apt-get.cc:1876
  msgid "Must specify at least one package to fetch source for"
  msgstr ""
  
- #: cmdline/apt-get.cc:1915 cmdline/apt-get.cc:2144
+ #: cmdline/apt-get.cc:1906 cmdline/apt-get.cc:2135
  #, c-format
  msgid "Unable to find a source package for %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:1959
+ #: cmdline/apt-get.cc:1950
  #, c-format
  msgid "Skipping already downloaded file '%s'\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1983
+ #: cmdline/apt-get.cc:1974
  #, c-format
  msgid "You don't have enough free space in %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:1988
+ #: cmdline/apt-get.cc:1979
  #, c-format
  msgid "Need to get %sB/%sB of source archives.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1991
+ #: cmdline/apt-get.cc:1982
  #, c-format
  msgid "Need to get %sB of source archives.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1997
+ #: cmdline/apt-get.cc:1988
  #, c-format
  msgid "Fetch source %s\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2028
+ #: cmdline/apt-get.cc:2019
  msgid "Failed to fetch some archives."
  msgstr ""
  
- #: cmdline/apt-get.cc:2056
+ #: cmdline/apt-get.cc:2047
  #, c-format
  msgid "Skipping unpack of already unpacked source in %s\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2068
+ #: cmdline/apt-get.cc:2059
  #, c-format
  msgid "Unpack command '%s' failed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2069
+ #: cmdline/apt-get.cc:2060
  #, c-format
  msgid "Check if the 'dpkg-dev' package is installed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2086
+ #: cmdline/apt-get.cc:2077
  #, c-format
  msgid "Build command '%s' failed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2105
+ #: cmdline/apt-get.cc:2096
  msgid "Child process failed"
  msgstr ""
  
- #: cmdline/apt-get.cc:2121
+ #: cmdline/apt-get.cc:2112
  msgid "Must specify at least one package to check builddeps for"
  msgstr ""
  
- #: cmdline/apt-get.cc:2149
+ #: cmdline/apt-get.cc:2140
  #, c-format
  msgid "Unable to get build-dependency information for %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:2169
+ #: cmdline/apt-get.cc:2160
  #, c-format
  msgid "%s has no build depends.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2221
+ #: cmdline/apt-get.cc:2212
  #, c-format
  msgid ""
  "%s dependency for %s cannot be satisfied because the package %s cannot be "
  "found"
  msgstr ""
  
- #: cmdline/apt-get.cc:2273
+ #: cmdline/apt-get.cc:2264
  #, c-format
  msgid ""
  "%s dependency for %s cannot be satisfied because no available versions of "
  "package %s can satisfy version requirements"
  msgstr ""
  
- #: cmdline/apt-get.cc:2308
+ #: cmdline/apt-get.cc:2299
  #, c-format
  msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
  msgstr ""
  
- #: cmdline/apt-get.cc:2333
+ #: cmdline/apt-get.cc:2324
  #, c-format
  msgid "Failed to satisfy %s dependency for %s: %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:2347
+ #: cmdline/apt-get.cc:2338
  #, c-format
  msgid "Build-dependencies for %s could not be satisfied."
  msgstr ""
  
- #: cmdline/apt-get.cc:2351
+ #: cmdline/apt-get.cc:2342
  msgid "Failed to process build dependencies"
  msgstr ""
  
- #: cmdline/apt-get.cc:2383
+ #: cmdline/apt-get.cc:2374
  msgid "Supported modules:"
  msgstr ""
  
- #: cmdline/apt-get.cc:2424
+ #: cmdline/apt-get.cc:2415
  msgid ""
  "Usage: apt-get [options] command\n"
  "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
@@@ -1349,9 -1349,9 +1368,9 @@@ msgid "The info and temp directories ne
  msgstr ""
  
  #. Build the status cache
--#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643
--#: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717
--#: apt-pkg/pkgcachegen.cc:840
++#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:748
++#: apt-pkg/pkgcachegen.cc:817 apt-pkg/pkgcachegen.cc:822
++#: apt-pkg/pkgcachegen.cc:945
  msgid "Reading package lists"
  msgstr ""
  
@@@ -1365,7 -1365,7 +1384,7 @@@ msgstr "
  msgid "Internal error getting a package name"
  msgstr ""
  
- #: apt-inst/deb/dpkgdb.cc:205
+ #: apt-inst/deb/dpkgdb.cc:205 apt-inst/deb/dpkgdb.cc:386
  msgid "Reading file listing"
  msgstr ""
  
@@@ -1409,10 -1409,6 +1428,6 @@@ msgstr "
  msgid "The pkg cache must be initialized first"
  msgstr ""
  
- #: apt-inst/deb/dpkgdb.cc:386
- msgid "Reading file list"
- msgstr ""
  #: apt-inst/deb/dpkgdb.cc:443
  #, c-format
  msgid "Failed to find a Package: header, offset %lu"
@@@ -1483,12 -1479,12 +1498,13 @@@ msgstr "
  msgid "File not found"
  msgstr ""
  
- #: methods/copy.cc:42 methods/gpgv.cc:269 methods/gzip.cc:133
- #: methods/gzip.cc:142
+ #: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133
 -#: methods/gzip.cc:142
++#: methods/gzip.cc:142 methods/rred.cc:234 methods/rred.cc:243
  msgid "Failed to stat"
  msgstr ""
  
- #: methods/copy.cc:79 methods/gpgv.cc:266 methods/gzip.cc:139
+ #: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139
++#: methods/rred.cc:240
  msgid "Failed to set modification time"
  msgstr ""
  
@@@ -1614,7 -1610,7 +1630,7 @@@ msgstr "
  msgid "Unable to accept connection"
  msgstr ""
  
--#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303
++#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303
  msgid "Problem hashing file"
  msgstr ""
  
@@@ -1637,7 -1633,7 +1653,7 @@@ msgstr "
  msgid "Query"
  msgstr ""
  
- #: methods/ftp.cc:1106
+ #: methods/ftp.cc:1109
  msgid "Unable to invoke "
  msgstr ""
  
@@@ -1666,69 -1662,70 +1682,70 @@@ msgstr "
  msgid "Could not connect to %s:%s (%s), connection timed out"
  msgstr ""
  
- #: methods/connect.cc:106
+ #: methods/connect.cc:108
  #, c-format
  msgid "Could not connect to %s:%s (%s)."
  msgstr ""
  
  #. We say this mainly because the pause here is for the
  #. ssh connection that is still going
- #: methods/connect.cc:134 methods/rsh.cc:425
+ #: methods/connect.cc:136 methods/rsh.cc:425
  #, c-format
  msgid "Connecting to %s"
  msgstr ""
  
- #: methods/connect.cc:165
+ #: methods/connect.cc:167
  #, c-format
  msgid "Could not resolve '%s'"
  msgstr ""
  
- #: methods/connect.cc:171
+ #: methods/connect.cc:173
  #, c-format
  msgid "Temporary failure resolving '%s'"
  msgstr ""
  
- #: methods/connect.cc:174
+ #: methods/connect.cc:176
  #, c-format
  msgid "Something wicked happened resolving '%s:%s' (%i)"
  msgstr ""
  
- #: methods/connect.cc:221
+ #: methods/connect.cc:223
  #, c-format
  msgid "Unable to connect to %s %s:"
  msgstr ""
  
- #: methods/gpgv.cc:92
+ #: methods/gpgv.cc:64
+ #, c-format
+ msgid "Couldn't access keyring: '%s'"
+ msgstr ""
+ #: methods/gpgv.cc:99
  msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
  msgstr ""
  
- #: methods/gpgv.cc:191
+ #: methods/gpgv.cc:198
  msgid ""
  "Internal error: Good signature, but could not determine key fingerprint?!"
  msgstr ""
  
- #: methods/gpgv.cc:196
+ #: methods/gpgv.cc:203
  msgid "At least one invalid signature was encountered."
  msgstr ""
  
- #. FIXME String concatenation considered harmful.
- #: methods/gpgv.cc:201
- msgid "Could not execute "
- msgstr ""
- #: methods/gpgv.cc:202
- msgid " to verify signature (is gnupg installed?)"
+ #: methods/gpgv.cc:207
+ #, c-format
+ msgid "Could not execute '%s' to verify signature (is gnupg installed?)"
  msgstr ""
  
- #: methods/gpgv.cc:206
+ #: methods/gpgv.cc:212
  msgid "Unknown error executing gpgv"
  msgstr ""
  
- #: methods/gpgv.cc:237
+ #: methods/gpgv.cc:243
  msgid "The following signatures were invalid:\n"
  msgstr ""
  
- #: methods/gpgv.cc:244
+ #: methods/gpgv.cc:250
  msgid ""
  "The following signatures couldn't be verified because the public key is not "
  "available:\n"
@@@ -1744,76 -1741,76 +1761,76 @@@ msgstr "
  msgid "Read error from %s process"
  msgstr ""
  
--#: methods/http.cc:376
++#: methods/http.cc:375
  msgid "Waiting for headers"
  msgstr ""
  
--#: methods/http.cc:522
++#: methods/http.cc:521
  #, c-format
  msgid "Got a single header line over %u chars"
  msgstr ""
  
--#: methods/http.cc:530
++#: methods/http.cc:529
  msgid "Bad header line"
  msgstr ""
  
--#: methods/http.cc:549 methods/http.cc:556
++#: methods/http.cc:548 methods/http.cc:555
  msgid "The HTTP server sent an invalid reply header"
  msgstr ""
  
--#: methods/http.cc:585
++#: methods/http.cc:584
  msgid "The HTTP server sent an invalid Content-Length header"
  msgstr ""
  
--#: methods/http.cc:600
++#: methods/http.cc:599
  msgid "The HTTP server sent an invalid Content-Range header"
  msgstr ""
  
--#: methods/http.cc:602
++#: methods/http.cc:601
  msgid "This HTTP server has broken range support"
  msgstr ""
  
--#: methods/http.cc:626
++#: methods/http.cc:625
  msgid "Unknown date format"
  msgstr ""
  
--#: methods/http.cc:773
++#: methods/http.cc:772
  msgid "Select failed"
  msgstr ""
  
--#: methods/http.cc:778
++#: methods/http.cc:777
  msgid "Connection timed out"
  msgstr ""
  
--#: methods/http.cc:801
++#: methods/http.cc:800
  msgid "Error writing to output file"
  msgstr ""
  
--#: methods/http.cc:832
++#: methods/http.cc:831
  msgid "Error writing to file"
  msgstr ""
  
--#: methods/http.cc:860
++#: methods/http.cc:859
  msgid "Error writing to the file"
  msgstr ""
  
--#: methods/http.cc:874
++#: methods/http.cc:873
  msgid "Error reading from server. Remote end closed connection"
  msgstr ""
  
--#: methods/http.cc:876
++#: methods/http.cc:875
  msgid "Error reading from server"
  msgstr ""
  
--#: methods/http.cc:1107
++#: methods/http.cc:1106
  msgid "Bad header data"
  msgstr ""
  
--#: methods/http.cc:1124
++#: methods/http.cc:1123
  msgid "Connection failed"
  msgstr ""
  
--#: methods/http.cc:1215
++#: methods/http.cc:1214
  msgid "Internal error"
  msgstr ""
  
@@@ -1826,7 -1823,7 +1843,7 @@@ msgstr "
  msgid "Couldn't make mmap of %lu bytes"
  msgstr ""
  
--#: apt-pkg/contrib/strutl.cc:938
++#: apt-pkg/contrib/strutl.cc:981
  #, c-format
  msgid "Selection %s not found"
  msgstr ""
@@@ -2023,72 -2020,72 +2040,72 @@@ msgstr "
  msgid "Problem syncing the file"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:126
++#: apt-pkg/pkgcache.cc:137
  msgid "Empty package cache"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:132
++#: apt-pkg/pkgcache.cc:143
  msgid "The package cache file is corrupted"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:137
++#: apt-pkg/pkgcache.cc:148
  msgid "The package cache file is an incompatible version"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:142
++#: apt-pkg/pkgcache.cc:153
  #, c-format
  msgid "This APT does not support the versioning system '%s'"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:147
++#: apt-pkg/pkgcache.cc:158
  msgid "The package cache was built for a different architecture"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:218
++#: apt-pkg/pkgcache.cc:229
  msgid "Depends"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:218
++#: apt-pkg/pkgcache.cc:229
  msgid "PreDepends"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:218
++#: apt-pkg/pkgcache.cc:229
  msgid "Suggests"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:219
++#: apt-pkg/pkgcache.cc:230
  msgid "Recommends"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:219
++#: apt-pkg/pkgcache.cc:230
  msgid "Conflicts"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:219
++#: apt-pkg/pkgcache.cc:230
  msgid "Replaces"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:220
++#: apt-pkg/pkgcache.cc:231
  msgid "Obsoletes"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:231
++#: apt-pkg/pkgcache.cc:242
  msgid "important"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:231
++#: apt-pkg/pkgcache.cc:242
  msgid "required"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:231
++#: apt-pkg/pkgcache.cc:242
  msgid "standard"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:232
++#: apt-pkg/pkgcache.cc:243
  msgid "optional"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:232
++#: apt-pkg/pkgcache.cc:243
  msgid "extra"
  msgstr ""
  
@@@ -2104,12 -2101,12 +2121,12 @@@ msgstr "
  msgid "Dependency generation"
  msgstr ""
  
- #: apt-pkg/tagfile.cc:73
+ #: apt-pkg/tagfile.cc:72
  #, c-format
  msgid "Unable to parse package file %s (1)"
  msgstr ""
  
- #: apt-pkg/tagfile.cc:160
+ #: apt-pkg/tagfile.cc:102
  #, c-format
  msgid "Unable to parse package file %s (2)"
  msgstr ""
@@@ -2144,7 -2141,7 +2161,7 @@@ msgstr "
  msgid "Opening %s"
  msgstr ""
  
--#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426
++#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:450
  #, c-format
  msgid "Line %u too long in source list %s."
  msgstr ""
@@@ -2203,9 -2200,16 +2220,16 @@@ msgstr "
  msgid "Archive directory %spartial is missing."
  msgstr ""
  
- #: apt-pkg/acquire.cc:821
+ #. only show the ETA if it makes sense
+ #. two days
+ #: apt-pkg/acquire.cc:823
+ #, c-format
+ msgid "Retrieving file %li of %li (%s remaining)"
+ msgstr ""
+ #: apt-pkg/acquire.cc:825
  #, c-format
- msgid "Downloading file %li of %li (%s remaining)"
+ msgid "Retrieving file %li of %li"
  msgstr ""
  
  #: apt-pkg/acquire-worker.cc:113
@@@ -2223,12 -2227,12 +2247,12 @@@ msgstr "
  msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
  msgstr ""
  
--#: apt-pkg/init.cc:120
++#: apt-pkg/init.cc:123
  #, c-format
  msgid "Packaging system '%s' is not supported"
  msgstr ""
  
--#: apt-pkg/init.cc:136
++#: apt-pkg/init.cc:139
  msgid "Unable to determine a suitable packaging system type"
  msgstr ""
  
@@@ -2271,110 -2275,110 +2295,125 @@@ msgstr "
  msgid "Error occurred while processing %s (NewPackage)"
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:129
++#: apt-pkg/pkgcachegen.cc:132
  #, c-format
  msgid "Error occurred while processing %s (UsePackage1)"
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:150
++#: apt-pkg/pkgcachegen.cc:155
++#, c-format
++msgid "Error occured while processing %s (NewFileDesc1)"
++msgstr ""
++
++#: apt-pkg/pkgcachegen.cc:180
  #, c-format
  msgid "Error occurred while processing %s (UsePackage2)"
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:154
++#: apt-pkg/pkgcachegen.cc:184
  #, c-format
  msgid "Error occurred while processing %s (NewFileVer1)"
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:184
++#: apt-pkg/pkgcachegen.cc:215
  #, c-format
  msgid "Error occurred while processing %s (NewVersion1)"
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:188
++#: apt-pkg/pkgcachegen.cc:219
  #, c-format
  msgid "Error occurred while processing %s (UsePackage3)"
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:192
++#: apt-pkg/pkgcachegen.cc:223
  #, c-format
  msgid "Error occurred while processing %s (NewVersion2)"
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:207
++#: apt-pkg/pkgcachegen.cc:247
++#, c-format
++msgid "Error occured while processing %s (NewFileDesc2)"
++msgstr ""
++
++#: apt-pkg/pkgcachegen.cc:253
  msgid "Wow, you exceeded the number of package names this APT is capable of."
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:210
++#: apt-pkg/pkgcachegen.cc:256
  msgid "Wow, you exceeded the number of versions this APT is capable of."
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:213
++#: apt-pkg/pkgcachegen.cc:259
++msgid "Wow, you exceeded the number of descriptions this APT is capable of."
++msgstr ""
++
++#: apt-pkg/pkgcachegen.cc:262
  msgid "Wow, you exceeded the number of dependencies this APT is capable of."
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:241
++#: apt-pkg/pkgcachegen.cc:290
  #, c-format
  msgid "Error occurred while processing %s (FindPkg)"
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:254
++#: apt-pkg/pkgcachegen.cc:303
  #, c-format
  msgid "Error occurred while processing %s (CollectFileProvides)"
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:260
++#: apt-pkg/pkgcachegen.cc:309
  #, c-format
  msgid "Package %s %s was not found while processing file dependencies"
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:574
++#: apt-pkg/pkgcachegen.cc:679
  #, c-format
  msgid "Couldn't stat source package list %s"
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:658
++#: apt-pkg/pkgcachegen.cc:763
  msgid "Collecting File Provides"
  msgstr ""
  
--#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792
++#: apt-pkg/pkgcachegen.cc:890 apt-pkg/pkgcachegen.cc:897
  msgid "IO Error saving source cache"
  msgstr ""
  
--#: apt-pkg/acquire-item.cc:126
++#: apt-pkg/acquire-item.cc:130
  #, c-format
  msgid "rename failed, %s (%s -> %s)."
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:950
 -#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:945
++#: apt-pkg/acquire-item.cc:407 apt-pkg/acquire-item.cc:656
++#: apt-pkg/acquire-item.cc:1399
  msgid "MD5Sum mismatch"
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:645
 -#: apt-pkg/acquire-item.cc:640
++#: apt-pkg/acquire-item.cc:1094
  msgid "There are no public key available for the following key IDs:\n"
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:758
 -#: apt-pkg/acquire-item.cc:753
++#: apt-pkg/acquire-item.cc:1207
  #, c-format
  msgid ""
  "I wasn't able to locate a file for the %s package. This might mean you need "
  "to manually fix this package. (due to missing arch)"
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:817
 -#: apt-pkg/acquire-item.cc:812
++#: apt-pkg/acquire-item.cc:1266
  #, c-format
  msgid ""
  "I wasn't able to locate file for the %s package. This might mean you need to "
  "manually fix this package."
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:853
 -#: apt-pkg/acquire-item.cc:848
++#: apt-pkg/acquire-item.cc:1302
  #, c-format
  msgid ""
  "The package index files are corrupted. No Filename: field for package %s."
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:940
 -#: apt-pkg/acquire-item.cc:935
++#: apt-pkg/acquire-item.cc:1389
  msgid "Size mismatch"
  msgstr ""
  
  msgid "Vendor block %s contains no fingerprint"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:507
++#: apt-pkg/cdrom.cc:531
  #, c-format
  msgid ""
  "Using CD-ROM mount point %s\n"
  "Mounting CD-ROM\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598
++#: apt-pkg/cdrom.cc:540 apt-pkg/cdrom.cc:622
  msgid "Identifying.. "
  msgstr ""
  
--#: apt-pkg/cdrom.cc:541
++#: apt-pkg/cdrom.cc:565
  #, c-format
  msgid "Stored label: %s \n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:561
++#: apt-pkg/cdrom.cc:585
  #, c-format
  msgid "Using CD-ROM mount point %s\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:579
++#: apt-pkg/cdrom.cc:603
  msgid "Unmounting CD-ROM\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:583
++#: apt-pkg/cdrom.cc:607
  msgid "Waiting for disc...\n"
  msgstr ""
  
  #. Mount the new CDROM
--#: apt-pkg/cdrom.cc:591
++#: apt-pkg/cdrom.cc:615
  msgid "Mounting CD-ROM...\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:609
++#: apt-pkg/cdrom.cc:633
  msgid "Scanning disc for index files..\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:647
++#: apt-pkg/cdrom.cc:673
  #, c-format
--msgid "Found %i package indexes, %i source indexes and %i signatures\n"
++msgid ""
++"Found %i package indexes, %i source indexes, %i translation indexes and %i "
++"signatures\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:710
++#: apt-pkg/cdrom.cc:737
  msgid "That is not a valid name, try again.\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:726
++#: apt-pkg/cdrom.cc:753
  #, c-format
  msgid ""
  "This disc is called: \n"
  "'%s'\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:730
++#: apt-pkg/cdrom.cc:757
  msgid "Copying package lists..."
  msgstr ""
  
--#: apt-pkg/cdrom.cc:754
++#: apt-pkg/cdrom.cc:783
  msgid "Writing new source list\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:763
++#: apt-pkg/cdrom.cc:792
  msgid "Source list entries for this disc are:\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:803
++#: apt-pkg/cdrom.cc:832
  msgid "Unmounting CD-ROM..."
  msgstr ""
  
--#: apt-pkg/indexcopy.cc:261
++#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:830
  #, c-format
  msgid "Wrote %i records.\n"
  msgstr ""
  
--#: apt-pkg/indexcopy.cc:263
++#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:832
  #, c-format
  msgid "Wrote %i records with %i missing files.\n"
  msgstr ""
  
--#: apt-pkg/indexcopy.cc:266
++#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:835
  #, c-format
  msgid "Wrote %i records with %i mismatched files\n"
  msgstr ""
  
--#: apt-pkg/indexcopy.cc:269
++#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:838
  #, c-format
  msgid "Wrote %i records with %i missing files and %i mismatched files\n"
  msgstr ""
@@@ -2515,14 -2519,14 +2556,18 @@@ msgstr "
  
  #: apt-pkg/deb/dpkgpm.cc:378
  #, c-format
- msgid "Preparing for remove with config %s"
+ msgid "Preparing to completely remove %s"
  msgstr ""
  
  #: apt-pkg/deb/dpkgpm.cc:379
  #, c-format
- msgid "Removed with config %s"
+ msgid "Completely removed %s"
+ msgstr ""
++#: methods/rred.cc:219
++msgid "Could not patch file"
 +msgstr ""
 +
  #: methods/rsh.cc:330
  msgid "Connection closed prematurely"
  msgstr ""