]> git.saurik.com Git - apt.git/commitdiff
* merged the apt--mirror branch
authorMichael Vogt <michael.vogt@ubuntu.com>
Tue, 6 Feb 2007 14:04:47 +0000 (15:04 +0100)
committerMichael Vogt <michael.vogt@ubuntu.com>
Tue, 6 Feb 2007 14:04:47 +0000 (15:04 +0100)
13 files changed:
1  2 
apt-pkg/acquire-item.cc
apt-pkg/acquire-item.h
apt-pkg/init.cc
cmdline/makefile
configure.in
debian/apt.dirs
debian/changelog
debian/rules
doc/examples/configure-index
methods/http.cc
methods/makefile
methods/mirror.cc
po/apt-all.pot

diff --combined apt-pkg/acquire-item.cc
index 94288a1321a3b5306a70bb6ceded729a1ce5e9f4,38530152fa1cd1ff3efabfa4c81684b990d0b0ce..3be7878bf58f307266ba116163d94de75d4bfc64
@@@ -63,6 -63,7 +63,7 @@@ void pkgAcquire::Item::Failed(string Me
  {
     Status = StatIdle;
     ErrorText = LookupTag(Message,"Message");
+    UsedMirror =  LookupTag(Message,"UsedMirror");
     if (QueueCounter <= 1)
     {
        /* This indicates that the file is not available right now but might
         Dequeue();
         return;
        }
 -      
 +
        Status = StatError;
        Dequeue();
     }   
+    
+    // report mirror failure back to LP if we actually use a mirror
+    string FailReason = LookupTag(Message, "FailReason");
+    if(FailReason.size() != 0)
+       ReportMirrorFailure(FailReason);
+    else
+       ReportMirrorFailure(ErrorText);
  }
                                                                        /*}}}*/
  // Acquire::Item::Start - Item has begun to download                  /*{{{*/
@@@ -100,6 -108,7 +108,7 @@@ void pkgAcquire::Item::Done(string Mess
  {
     // We just downloaded something..
     string FileName = LookupTag(Message,"Filename");
+    UsedMirror =  LookupTag(Message,"UsedMirror");
     if (Complete == false && FileName == DestFile)
     {
        if (Owner->Log != 0)
  
     if (FileSize == 0)
        FileSize= Size;
-    
     Status = StatDone;
     ErrorText = string();
     Owner->Dequeue(this);
@@@ -131,6 -139,49 +139,49 @@@ void pkgAcquire::Item::Rename(string Fr
  }
                                                                        /*}}}*/
  
+ void pkgAcquire::Item::ReportMirrorFailure(string FailCode)
+ {
+    // we only act if a mirror was used at all
+    if(UsedMirror.empty())
+       return;
+ #if 0
+    std::cerr << "\nReportMirrorFailure: " 
+            << UsedMirror
+            << " Uri: " << DescURI()
+            << " FailCode: " 
+            << FailCode << std::endl;
+ #endif
+    const char *Args[40];
+    unsigned int i = 0;
+    string report = _config->Find("Methods::Mirror::ProblemReporting", 
+                                "/usr/lib/apt/apt-report-mirror-failure");
+    if(!FileExists(report))
+       return;
+    Args[i++] = report.c_str();
+    Args[i++] = UsedMirror.c_str();
+    Args[i++] = DescURI().c_str();
+    Args[i++] = FailCode.c_str();
+    Args[i++] = NULL;
+    pid_t pid = ExecFork();
+    if(pid < 0) 
+    {
+       _error->Error("ReportMirrorFailure Fork failed");
+       return;
+    }
+    else if(pid == 0) 
+    {
+       execvp(Args[0], (char**)Args);
+       std::cerr << "Could not exec " << Args[0] << std::endl;
+       _exit(100);
+    }
+    if(!ExecWait(pid, "report-mirror-failure")) 
+    {
+       _error->Warning("Couldn't report problem to '%s'",
+                     _config->Find("Methods::Mirror::ProblemReporting").c_str());
+    }
+ }
  // AcqIndex::AcqIndex - Constructor                                   /*{{{*/
  // ---------------------------------------------------------------------
  /* The package file is added to the queue and a second class is 
@@@ -176,7 -227,6 +227,6 @@@ string pkgAcqIndex::Custom600Headers(
     struct stat Buf;
     if (stat(Final.c_str(),&Buf) != 0)
        return "\nIndex-File: true";
-    
     return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime);
  }
                                                                        /*}}}*/
@@@ -235,6 -285,7 +285,7 @@@ void pkgAcqIndex::Done(string Message,u
           Status = StatAuthError;
           ErrorText = _("MD5Sum mismatch");
           Rename(DestFile,DestFile + ".FAILED");
+        ReportMirrorFailure("HashChecksumFailure");
           return;
        }
        // Done, move it into position
     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,
     DestFile = _config->FindDir("Dir::State::lists") + "partial/";
     DestFile += URItoFileName(URI);
  
 -   // remove any partial downloaded sig-file. it may confuse proxies
 -   // and is too small to warrant a partial download anyway
 +   // remove any partial downloaded sig-file in partial/. 
 +   // it may confuse proxies and is too small to warrant a 
 +   // partial download anyway
     unlink(DestFile.c_str());
  
     // Create the item
@@@ -419,22 -440,17 +470,22 @@@ void pkgAcqMetaSig::Done(string Message
                                                                        /*}}}*/
  void pkgAcqMetaSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
  {
 +   string Final = _config->FindDir("Dir::State::lists") + URItoFileName(RealURI);
  
     // if we get a network error we fail gracefully
 -   if(LookupTag(Message,"FailReason") == "Timeout" || 
 -      LookupTag(Message,"FailReason") == "TmpResolveFailure" ||
 -      LookupTag(Message,"FailReason") == "ConnectionRefused") {
 +   if(Status == StatTransientNetworkError)
 +   {
        Item::Failed(Message,Cnf);
 +      // move the sigfile back on network failures (and re-authenticated?)
 +      if(FileExists(DestFile))
 +       Rename(DestFile,Final);
 +
 +      // set the status back to , Item::Failed likes to reset it
 +      Status = pkgAcquire::Item::StatTransientNetworkError;
        return;
     }
  
     // Delete any existing sigfile when the acquire failed
 -   string Final = _config->FindDir("Dir::State::lists") + URItoFileName(RealURI);
     unlink(Final.c_str());
  
     // queue a pkgAcqMetaIndex with no sigfile
@@@ -757,6 -773,7 +808,7 @@@ void pkgAcqMetaIndex::Failed(string Mes
        }
  
        // gpgv method failed 
+       ReportMirrorFailure("GPGFailure");
        _error->Warning("GPG error: %s: %s",
                        Desc.Description.c_str(),
                        LookupTag(Message,"Message").c_str());
diff --combined apt-pkg/acquire-item.h
index 3a0a690e1e86fe3c255619b82094b5230b08ebed,9949d004426fa1783ae3cc8f22be2072c75b7c19..f659bb459d850e035a35f8e44bde2ff1815492a4
@@@ -9,8 -9,8 +9,8 @@@
     the Owner Acquire class. Derived classes will then call QueueURI to 
     register all the URI's they wish to fetch at the initial moment.   
     
 -   Two item classes are provided to provide functionality for downloading
 -   of Index files and downloading of Packages.
 +   Three item classes are provided to provide functionality for
 +   downloading of Index, Translation and Packages files.
     
     A Archive class is provided for downloading .deb files. It does Md5
     checking and source location as well as a retry algorithm.
@@@ -48,8 -48,7 +48,8 @@@ class pkgAcquire::Ite
     public:
  
     // State of the item
 -   enum {StatIdle, StatFetching, StatDone, StatError, StatAuthError} Status;
 +   enum {StatIdle, StatFetching, StatDone, StatError, 
 +       StatAuthError, StatTransientNetworkError} Status;
     string ErrorText;
     unsigned long FileSize;
     unsigned long PartialSize;   
@@@ -57,6 -56,7 +57,7 @@@
     unsigned long ID;
     bool Complete;
     bool Local;
+    string UsedMirror;
  
     // Number of queues we are inserted into
     unsigned int QueueCounter;
@@@ -79,6 -79,9 +80,9 @@@
     pkgAcquire *GetOwner() {return Owner;};
     virtual bool IsTrusted() {return false;};
     
+    // report mirror problems
+    void ReportMirrorFailure(string FailCode);
     Item(pkgAcquire *Owner);
     virtual ~Item();
  };
@@@ -108,16 -111,6 +112,16 @@@ class pkgAcqIndex : public pkgAcquire::
               string ShortDesct, string ExpectedMD5, string compressExt="");
  };
  
 +// Item class for translated package index files
 +class pkgAcqIndexTrans : public pkgAcqIndex
 +{
 +   public:
 +  
 +   virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
 +   pkgAcqIndexTrans(pkgAcquire *Owner,string URI,string URIDesc,
 +                  string ShortDesct);
 +};
 +
  struct IndexTarget
  {
     string URI;
diff --combined apt-pkg/init.cc
index 579a19ab9ee1c5184a608685ba57d3db2671df27,fe085a75e3b6118617eab6addd2fa7158558c277..0be0aee9848dae7a2233aa8ac2ac4a2cfd618396
@@@ -40,8 -40,6 +40,8 @@@ bool pkgInitConfig(Configuration &Cnf
     else
        Cnf.Set("APT::Architecture",COMMON_OS "-" COMMON_CPU);
     Cnf.Set("APT::Build-Essential::", "build-essential");
 +   Cnf.Set("APT::Install-Recommends", false);
 +   Cnf.Set("APT::Install-Suggests", false);
     Cnf.Set("Dir","/");
     
     // State   
@@@ -56,6 -54,7 +56,7 @@@
         
     Cnf.Set("Dir::State::lists","lists/");
     Cnf.Set("Dir::State::cdroms","cdroms.list");
+    Cnf.Set("Dir::State::mirrors","mirrors/");
     
     // Cache
     Cnf.Set("Dir::Cache","var/cache/apt/");
        bindtextdomain(textdomain(0),Cnf.FindDir("Dir::Locale").c_str());
     }
  #endif
 +
 +   // Translation
 +   Cnf.Set("APT::Acquire::Translation", "environment");
     
     return true;
  }
diff --combined cmdline/makefile
index 49035be4493c8d08d3a2d1ac63ea4cd13d4418aa,8d284c2f3afb18d5cc433d32dd7f2267f0bfcd30..2a5bdfbea2cd8a8c94bfe8105cdcbb565e2d8ef9
@@@ -53,8 -53,8 +53,14 @@@ TO=$(BIN
  TARGET=program
  include $(COPY_H)
  
 +# The apt-mark program
 +SOURCE=apt-mark
 +TO=$(BIN)
 +TARGET=program
 +include $(COPY_H)
++
+ # The apt-key program
+ SOURCE=apt-report-mirror-failure
+ TO=$(BIN)
+ TARGET=program
+ include $(COPY_H)
diff --combined configure.in
index 67841b3ef75b71b5c76766f53d7f60475ba0143a,df452ba34b2e6e4c8f288b5b74b90c8747fd3e20..ce166b31e64852e072764972c9c760c163b26a4a
@@@ -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.46.4ubuntu6")
 -AC_DEFINE_UNQUOTED(VERSION,"0.6.46.4")
++AC_DEFINE_UNQUOTED(VERSION,"0.6.46.4ubuntu7")
  PACKAGE="apt"
  AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
  AC_SUBST(PACKAGE)
diff --combined debian/apt.dirs
index 1543e8bb1944727b36cb782e5637b48bed64c788,b81878baa7e88c39ec5f24436c946963d23c8265..025898e84ac4d6e8583da9b22f7e9b854b1ba31b
@@@ -2,9 -2,9 +2,10 @@@ usr/bi
  usr/lib/apt/methods
  usr/lib/dpkg/methods/apt
  etc/apt
 +etc/apt/apt.conf.d
  etc/apt/sources.list.d
  var/cache/apt/archives/partial
  var/lib/apt/lists/partial
+ var/lib/apt/mirrors/partial
  var/lib/apt/periodic
  usr/share/bug/apt
diff --combined debian/changelog
index 8385671836a01464748835497ab875a5abee7bfa,6c9ada3a5046ae921a39f5218bc092dcb97f7689..6fdf646f00ced51a17a0c8c6a8b30bec708deef2
 -apt (0.6.46.4) unstable; urgency=low
++apt (0.6.46.4ubuntu7) feisty; urgency=low
++  * Merged the apt--mirror branch. This means that a new 'mirror' 
++    method is available that will allow dynamic mirror updates.
++    The sources.list entry looks something like this:
++    "deb mirror://mirrors.lp.net/get_mirror feisty main restricted"
++
++    It also supports error reporting to a configurable url for mirror
++    problems/failures.
++
++ -- Michael Vogt <michael.vogt@ubuntu.com>  Tue,  6 Feb 2007 11:38:06 +0100
++
 +apt (0.6.46.4ubuntu6) feisty; urgency=low
 +
 +  * methods/http.cc:
 +    - send apt version in User-Agent
 +  * apt-pkg/deb/debrecords.cc:
 +    - fix SHA1Hash() return value
 +  * apt-pkg/algorithms.cc:
 +    - fix resolver bug on removal triggered by weak-dependencies 
 +      with or-groups
 +    - fix segfault (lp: #76530)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Wed, 20 Dec 2006 11:04:36 +0100
 +
 +apt (0.6.46.4ubuntu5) feisty; urgency=low
 +
 +  * added apt-transport-https package to provide a optional
 +    https transport (apt-https spec)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 19 Dec 2006 16:23:43 +0100
 +
 +apt (0.6.46.4ubuntu4) feisty; urgency=low
 +  
 +  * apt-pkg/algorithms.cc:
 +    - only increase the score of installed applications if they 
 +      are not obsolete 
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Mon, 18 Dec 2006 19:39:05 +0100
 +
 +apt (0.6.46.4ubuntu3) feisty; urgency=low
 +
 +  * apt-pkg/algorithm.cc:
 +    - use clog for all debugging
 +  * apt-pkg/depcache.cc:
 +    - never mark Required package for autoremoval (lp: #75882)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Mon, 18 Dec 2006 11:56:05 +0100
 +
 +apt (0.6.46.4ubuntu2) feisty; urgency=low
 +
 +  * apt-pkg/algorithms.cc: add missing call to MarkKeep
 +    so that dist-upgrade isn't broken by unsatisfiable Breaks.
 +    (thanks to Ian Jackson)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Thu,  7 Dec 2006 23:07:24 +0100
 +
 +apt (0.6.46.4ubuntu1) feisty; urgency=low
 +
 +  * merged with debian
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Thu,  7 Dec 2006 12:13:14 +0100
 +
 +apt (0.6.46.4) unstable; urgency=high
 +
 +  * ack NMU (closes: #401017)
 +  * added apt-secure.8 to "See also" section
 +  * apt-pkg/deb/dpkgpm.cc:
 +    - added "Dpkg::StopOnError" variable that controls if apt
 +      will abort on errors from dpkg
 +  * apt-pkg/deb/debsrcrecords.{cc,h}:
 +    - make the Buffer grow dynmaically (closes: #400874)
 +  * Merged from Christian Perrier bzr branch:
 +    - uk.po: New Ukrainian translation: 483t28f3u
 +    - el.po: Update to 503t9f2u
 +    - de.po: Updates and corrections.
 +  * apt-pkg/contrib/progress.cc:
 +    - OpProgress::CheckChange optimized, thanks to Paul Brook
 +      (closes: #398381)
 +  * apt-pkg/contrib/sha256.cc:
 +    - fix building with noopt
 +
 + -- Michael Vogt <mvo@debian.org>  Thu,  7 Dec 2006 10:49:50 +0100
 +
 +apt (0.6.46.3-0.2) unstable; urgency=high
 +
 +  * Non-maintainer upload with permission of Michael Vogt.
 +  * Fix FTBFS on most arches (regression from the fix of #400874)
 +
 + -- Andreas Barth <aba@not.so.argh.org>  Tue,  5 Dec 2006 15:51:22 +0000 
 +  
 +apt (0.6.46.3-0.1) unstable; urgency=high
 +
 +  * Non-maintainer upload with permission of Michael Vogt.
 +  * Fix segfault at apt-get source. Closes: #400874
 +  * Add apt-key update in postinst, so that debian-archive-keyring doesn't
 +    need to depend on apt >= 0.6. Closes: #401114
 +  * Don't double-queue pdiff files. Closes: #401017
 +  
 + -- Andreas Barth <aba@not.so.argh.org>  Tue,  5 Dec 2006 10:34:56 +0000
 +
 +apt (0.6.46.3ubuntu2) feisty; urgency=low
 +
 +  * apt-pkg/algorithms.cc: add missing call to MarkKeep
 +    so that dist-upgrade isn't broken by unsatisfiable Breaks.
 +
 + -- Ian Jackson <iwj@ubuntu.com>  Thu,  7 Dec 2006 15:46:52 +0000
 +
 +apt (0.6.46.3ubuntu1) feisty; urgency=low
 +
 +  * doc/apt-get.8.xml:
 +    - documented autoremove, thanks to Vladimír Lapá\e%GÄ\8d\e%@ek 
 +      (lp: #62919)
 +  * fix broken i18n in the dpkg progress reporting, thanks to 
 +    Frans Pop and Steinar Gunderson. (closes: #389261)
 +  * po/en_GB.po:
 +    - typo (lp: #61270)
    * add apt-secure.8 to "See also" section
  
 - -- Michael Vogt <michael.vogt@ubuntu.com>  Wed, 24 Jan 2007 14:34:15 +0100
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Thu, 23 Nov 2006 07:24:12 +0100
  
  apt (0.6.46.3) unstable; urgency=low
  
@@@ -168,46 -65,10 +180,46 @@@ apt (0.6.46) unstable; urgency=lo
    * debian/control:
      - switched to libdb4.4 for building (closes: #381019)
    * cmdline/apt-get.cc:
 -    - show only the recommends/suggests for the candidate-version, not for all
 -      versions of the package (closes: #257054)
 -    - properly handle recommends/suggests or-groups when printing the list of
 -      suggested/recommends packages (closes: #311619)
 +    - fix in the TryInstallTask() code to make sure that all package
 +      there are marked manual install (lp: #61684)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Thu, 28 Sep 2006 00:34:20 +0200
 +
 +apt (0.6.45ubuntu14) edgy; urgency=low
 +
 +  * cmdline/apt-get.cc:
 +    - fix in the TryInstallTask() code to make sure that all package
 +      there are marked manual install (lp: #61684)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Thu, 28 Sep 2006 00:34:20 +0200
 +
 +apt (0.6.45ubuntu13) edgy; urgency=low
 +
 +  * no-changes upload to make apt rebuild against latest g++ and
 +    fix synaptic FTBFS (see bug: #62461 for details)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 26 Sep 2006 22:33:10 +0200
 +
 +apt (0.6.45ubuntu12) edgy; urgency=low
 +
 +  * apt-pkg/depcache.cc:
 +    - fix in the sweep() code, set garbage flag for packages scheduled 
 +      for removal too
 +    - do not change the autoFlag in MarkKeep(), this can lead to suprising
 +      side effects
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Thu, 21 Sep 2006 00:58:24 +0200
 +
 +apt (0.6.45ubuntu11) edgy; urgency=low
 +
 +  * removed "installtask" and change it so that tasknames can be given
 +    with "apt-get install taskname^"
 +  * improve the writeStateFile() code
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Wed, 20 Sep 2006 14:14:24 +0200
 +
 +apt (0.6.45ubuntu10) edgy; urgency=low
 +
    * methods/http.cc:
      - check more careful for incorrect proxy settings (closes: #378868)
    * methods/gzip.cc:
        caseinsensitive (closes: #384182)
      - reverted MMap use in the tagfile because it does not work 
        across pipes (closes: #383487) 
 +  * added "installtask" command
 +  * added new ubuntu specific rewrite rule for "Original-Maintainer"
    
 - -- Michael Vogt <mvo@debian.org>  Thu, 21 Sep 2006 10:25:03 +0200
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 19 Sep 2006 15:07:51 +0200
 +
 +apt (0.6.45ubuntu9) edgy; urgency=low
 +
 +  * cmdline/apt-get.cc:
 +    - if --no-remove is given, do not run the AutoRemove code 
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Wed, 13 Sep 2006 11:54:20 +0200
 +
 +apt (0.6.45ubuntu8) edgy; urgency=low
 +
 +  * apt-pkg/algorithm.cc:
 +    - fix pkgProblemResolver.InstallProtect() to preserve the auto-install
 +      information (lp: #59457)
 +  * cmdline/apt-get.cc:
 +    - fix typo in autoremove information (lp: #59420)
 +  * install apt-mark to modify the automatically install information for
 +    packages
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Fri,  8 Sep 2006 20:07:22 +0200
 +
 +apt (0.6.45ubuntu7) edgy; urgency=low
 +
 +  * apt-pkg/depcache.cc:
 +    - fix a bug in the install-recommends-section code
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Thu,  7 Sep 2006 18:22:38 +0200
 +
 +apt (0.6.45ubuntu6) edgy; urgency=low
 +
 +  [Michael Vogt]
 +  * cmdline/apt-get.cc:
 +    - always show auto-removable packages and give a hint how to remove 
 +      them
 +  * debian/apt.conf.ubuntu:
 +    - exlucde linux-image and linux-restricted-modules from ever being 
 +      auto-removed
 +    - added "metapackages" as the section we want to install recommends
 +      by default
 +  * apt-pkg/depcache.cc:
 +    - added support to turn install-recommends selectively on/off by
 +      section
 +  [Ian Jackson]
 +  * Tests pass without code changes!  Except that we need this:
 +  * Bump cache file major version to force rebuild so that Breaks
 +    dependencies are included.
 +  * Don't depend on or suggest any particular dpkg or dpkg-dev versions;
 +    --auto-deconfigure is very very old and dpkg-dev's Breaks support
 +    is more or less orthogonal.
 +  * Initial draft of `Breaks' implementation.  Appears to compile,
 +    but as yet *completely untested*.
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Thu,  7 Sep 2006 11:50:52 +0200
 +
 +apt (0.6.45ubuntu5) edgy; urgency=low
 +
 +  * apt-pkg/pkgcachegen.cc:
 +    - increase the APT::Cache-Limit to deal with the increased demand due
 +      to the translated descriptions
 +  * apt-pkg/deb/dpkgpm.cc:
 +    - pass "--auto-deconfigure" to dpkg on install to support the
 +      new "breaks" in dpkg
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 15 Aug 2006 12:06:26 +0200
 +
 +apt (0.6.45ubuntu4) edgy; urgency=low
 +
 +  * cmdline/apt-get.cc:
 +    - fix in the new --fix-polciy code
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Mon, 14 Aug 2006 21:08:11 +0200
 +
 +apt (0.6.45ubuntu3) edgy; urgency=low
 +
 +  * ABI break
 +  * merged latest apt--install-recommends (closes: #559000)
 +  * added "--fix-policy" option to can be used as "--fix-broken" and
 +    will install missing weak depends (recommends, and/or suggests 
 +    depending on the settings)
 +  * merged the apt--ddtp branch
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Fri, 11 Aug 2006 12:53:23 +0200
 +
 +apt (0.6.45ubuntu2) edgy; urgency=low
 +
 +  * debian/control:
 +    - switched to libdb4.4 for building (closes: #381019)
 +  * cmdline/apt-get.cc:
 +    - show only the recommends/suggests for the candidate-version, not for all
 +      versions of the package (closes: #257054)
 +    - properly handle recommends/suggests or-groups when printing the list of
 +      suggested/recommends packages (closes: #311619)
 +  * merged "apt--install-recommends" branch:
 +    - added "{no-}install-recommends" commandline option
 +    - added APT::Install-{Recommends,Suggests} option
 +    - currently Install-Recommends defaults to "False" 
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Wed,  9 Aug 2006 23:38:46 +0200
 +
 +apt (0.6.45ubuntu1) edgy; urgency=low
 +
 +  * merged with debian/unstable
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue,  1 Aug 2006 15:43:22 +0200
  
  apt (0.6.45) unstable; urgency=low
  
  
   -- Michael Vogt <mvo@debian.org>  Thu, 27 Jul 2006 00:52:05 +0200
  
 -apt  (0.6.44.2) unstable; urgency=low 
 +apt (0.6.44.2ubuntu4) edgy; urgency=low
 +
 +  * Make apt-get dselect-upgrade happy again
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Fri, 21 Jul 2006 11:03:02 +0200
 +
 +apt (0.6.44.2ubuntu3) edgy; urgency=low
 +
 +  * Close extended_states file after writing it.
 +
 + -- Colin Watson <cjwatson@ubuntu.com>  Tue, 18 Jul 2006 00:12:13 +0100
 +
 +apt (0.6.44.2ubuntu2) edgy; urgency=low
 +
 +  * create a empty extended_states file if none exists already
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue,  4 Jul 2006 09:23:03 +0200
 +
 +apt (0.6.44.2ubuntu1) edgy; urgency=low
 +
 +  * merged with debian/unstable
 +  * merged the "auto-mark" branch to support aptitude like
 +    marking of automatically installed dependencies and added
 +    "apt-get remove --auto-remove" to remove unused auto-installed
 +    packages again
 +  * changed library version from 3.11 to 3.50 to make it clearly 
 +    different from the debian version (we are ABI incompatible because
 +    of the auto-mark patch)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Mon,  3 Jul 2006 18:30:46 +0200
 +
 +apt (0.6.44.2) unstable; urgency=low
    
     * apt-pkg/depcache.cc:
       - added Debug::pkgDepCache::AutoInstall (thanks to infinity)
@@@ -478,26 -203,6 +490,26 @@@ apt (0.6.44) unstable; urgency=lo
    
   -- Michael Vogt <mvo@debian.org>  Mon,  8 May 2006 22:28:53 +0200
  
 +apt (0.6.43.3ubuntu3) dapper; urgency=low
 +
 +  * methods/http.cc:
 +    - fix the user-agent string
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Fri, 26 May 2006 18:09:32 +0200
 +
 +apt (0.6.43.3ubuntu2) dapper; urgency=low
 +
 +  * apt-pkg/deb/dpkgpm.cc: wording fixes (thanks to Matt Zimmerman)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 18 Apr 2006 13:24:40 +0200
 +
 +apt (0.6.43.3ubuntu1) dapper; urgency=low
 +
 +  * apt-pkg/acquire.cc: don't show ETA if it is 0 or absurdely large in 
 +    the status-fd (ubuntu #28954)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 28 Mar 2006 20:34:46 +0200
 +
  apt (0.6.43.3) unstable; urgency=low
  
    * Merge bubulle@debian.org--2005/apt--main--0 up to patch-186:
      * pl.po: Completed to 512t. Closes: #349514
      * sk.po: Completed to 512t. Closes: #349474
      * gl.po: Completed to 512 strings Closes: #349407
 +    * vi.po: Completed to 512 strings
      * sv.po: Completed to 512 strings Closes: #349210
      * ru.po: Completed to 512 strings Closes: #349154
      * da.po: Completed to 512 strings Closes: #349084
      * fr.po: Completed to 512 strings
 +    * LINGUAS: Add Welsh
 +    * *.po: Updated from sources (512 strings)
      * vi.po: Completed to 511 strings  Closes: #348968
 -    * zh_CN.po: Completed to 512t. Closes: #353936
 -    * it.po: Completed to 512t. Closes: #352803
 -    * pt_BR.po: Completed to 512t. Closes: #352419
 +  * apt-pkg/deb/deblistparser.cc:
 +    - don't explode on a DepCompareOp in a Provides line, but warn about
 +      it and ignore it otherwise (thanks to James Troup for reporting it)
 +  * cmdline/apt-get.cc:
 +    - don't lock the lists directory in DoInstall, breaks --print-uri 
 +      (thanks to James Troup for reporting it)
 +  * debian/apt.dirs: create /etc/apt/sources.list.d 
 +  * make apt-cache madison work without deb-src entries (#352583)
 +  * cmdline/apt-get.cc: only run the list-cleaner if a update was 
 +    successfull
 +  * apt-get update errors are only warnings nowdays
 +  * be more careful with the signature file on network failures
 +
 + --  Michael Vogt <mvo@debian.org>  Wed, 22 Feb 2006 10:13:04 +0100
 +
 +apt (0.6.43.2ubuntu1) dapper; urgency=low
 +
 +  * Merge bubulle@debian.org--2005/apt--main--0 up to patch-182:
 +  * ca.po: Completed to 512t. Closes: #351592
 +    * eu.po: Completed to 512t. Closes: #350483
 +    * ja.po: Completed to 512t. Closes: #349806
 +    * pl.po: Completed to 512t. Closes: #349514
 +    * sk.po: Completed to 512t. Closes: #349474
 +    * gl.po: Completed to 512 strings Closes: #349407
 +    * vi.po: Completed to 512 strings
 +    * sv.po: Completed to 512 strings Closes: #349210
 +    * ru.po: Completed to 512 strings Closes: #349154
 +    * da.po: Completed to 512 strings Closes: #349084
 +    * fr.po: Completed to 512 strings
      * LINGUAS: Add Welsh
      * *.po: Updated from sources (512 strings)
 +    * vi.po: Completed to 511 strings  Closes: #348968
    * apt-pkg/deb/deblistparser.cc:
      - don't explode on a DepCompareOp in a Provides line, but warn about
        it and ignore it otherwise (thanks to James Troup for reporting it)
    * make apt-cache madison work without deb-src entries (#352583)
    * cmdline/apt-get.cc: only run the list-cleaner if a update was 
      successfull
 +  * apt-get update errors are only warnings nowdays
 +  * be more careful with the signature file on network failures
  
 - -- Michael Vogt <mvo@debian.org>  Wed, 22 Feb 2006 10:13:04 +0100
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Mon, 20 Feb 2006 22:27:48 +0100
  
  apt (0.6.43.2) unstable; urgency=low
  
  
   -- Michael Vogt <mvo@debian.org>  Thu, 19 Jan 2006 00:06:33 +0100
  
 -apt (0.6.43.1) unstable; urgency=low
 +apt (0.6.43.1ubuntu1) dapper; urgency=low
 +
 +  * Merge bubulle@debian.org--2005/apt--main--0 up to patch-159:
 +    - en_GB.po, de.po: fix spaces errors in "Ign " translations
 +      Closes: #347258
 +    - makefile: make update-po a pre-requisite of clean target so
 +              that POT and PO files are always up-to-date
 +    - sv.po: Completed to 511t. Closes: #346450
 +    - sk.po: Completed to 511t. Closes: #346369
 +    - fr.po: Completed to 511t
 +    - *.po: Updated from sources (511 strings)
 +  * add patch to fix http download corruption problem (thanks to
 +    Petr Vandrovec, closes: #280844, #290694)
 +  * added APT::Periodic::Unattended-Upgrade (requires the package
 +    "unattended-upgrade")
  
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 10 Jan 2006 17:09:31 +0100
 +
 +apt (0.6.43.1) unstable; urgency=low
 +  
    * Merge bubulle@debian.org--2005/apt--main--0 up to patch-148:
      * fr.po: Completed to 510 strings
      * it.po: Completed to 510t
  
   -- Michael Vogt <mvo@debian.org>  Fri,  6 Jan 2006 01:17:08 +0100
  
 +apt (0.6.43ubuntu2) dapper; urgency=low
 +
 +  * merged some missing bits that wheren't merged by baz in the previous
 +    upload (*grumble*)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Thu,  8 Dec 2005 18:35:58 +0100
 +
 +apt (0.6.43ubuntu1) dapper; urgency=low
 +
 +  * merged with debian
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Fri, 25 Nov 2005 11:36:29 +0100
 +
  apt (0.6.43) unstable; urgency=medium
  
    * Merge bubulle@debian.org--2005/apt--main--0 up to patch-132:  
    
   -- Michael Vogt <mvo@debian.org>  Tue, 29 Nov 2005 00:17:07 +0100
  
 +apt (0.6.42.3ubuntu2) dapper; urgency=low
 +
 +  * Merge bubulle@debian.org--2005/apt--main--0 up to patch-131:  
 +    * zh_CN.po: Completed to 507 strings(Closes: #338267)
 +    * gl.po: Completed to 510 strings (Closes: #338356)
 +  * added support for "/etc/apt/sources.list.d" directory 
 +    (closes: #66325)
 +  
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Mon, 14 Nov 2005 15:30:12 +0100
 +
 +apt (0.6.42.3ubuntu1) dapper; urgency=low
 +
 +  * synced with debian
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Thu, 10 Nov 2005 05:05:56 +0100
 +
  apt (0.6.42.3) unstable; urgency=low
  
    * Merge bubulle@debian.org--2005/apt--main--0 up to patch-129:
@@@ -722,13 -348,13 +734,13 @@@ apt (0.6.42) unstable; urgency=lo
      - unmount the cdrom when apt failed to locate any package files
    * allow cdrom failures and fallback to other sources in that case
      (closes: #44135)
 -  * better error text when dpkg-source fails 
 +  * better error text when dpkg-source fails
    * Merge bubulle@debian.org--2005/apt--main--0 up to patch-115:
      - patch-99: Added Galician translation
      - patch-100: Completed Danish translation (Closes: #325686)
      - patch-104: French translation completed
      - patch-109: Italian translation completed
 -    - patch-112: Swedish translation update 
 +    - patch-112: Swedish translation update
      - patch-115: Basque translation completed (Closes: #333299)
    * applied french man-page update (thanks to Philippe Batailler)
      (closes: #316638, #327456)
    * apt-pkg/contrib/md5.cc:
      - fix a alignment problem on sparc64 that gives random bus errors
        (thanks to Fabbione for providing a test-case)
 -  * init the default ScreenWidth to 79 columns by default 
 +  * init the default ScreenWidth to 79 columns by default
      (Closes: #324921)
 -  * cmdline/apt-cdrom.cc: 
 +  * 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
    * improved the support for "error" and "conffile" reporting from
      dpkg, added the format to README.progress-reporting
    * added README.progress-reporting to the apt-doc package
 -  * improved the network timeout handling, if a index file from a 
 -    sources.list times out or EAI_AGAIN is returned from getaddrinfo, 
 +  * improved the network timeout handling, if a index file from a
 +    sources.list times out or EAI_AGAIN is returned from getaddrinfo,
      don't try to get the other files from that entry
    * Support architecture-specific extra overrides
      (closes: #225947). Thanks to  Anthony Towns for idea and
    * Javier Fernandez-Sanguino Pen~a:
      - Added a first version of an apt-secure.8 manpage, and modified
        apt-key and apt.end accordingly. Also added the 'update'
 -      argument to apt-key which was previously not documented 
 +      argument to apt-key which was previously not documented
        (Closes: #322120)
    * Andreas Pakulat:
 -    - added example apt-ftparchive.conf file to doc/examples 
 +    - added example apt-ftparchive.conf file to doc/examples
        (closes: #322483)
    * Fix a incorrect example in the man-page (closes: #282918)
    * Fix a bug for very long lines in the apt-cdrom code (closes: #280356)
    * Change pkgPolicy::Pin from private to protected to let subclasses
      access it too (closes: #321799)
    * add default constructor for PrvIterator (closes: #322267)
 -  * Reread status configuration on debSystem::Initialize() 
 +  * Reread status configuration on debSystem::Initialize()
      (needed for apt-proxy, thanks to Otavio for this patch)
 -  
 +
   -- Michael Vogt <mvo@debian.org>  Mon,  5 Sep 2005 22:59:03 +0200
 +  
 +apt (0.6.40.1ubuntu8) breezy; urgency=low
 +
 +  * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-62:
 +    - fix for a bad memory/file leak in the mmap code (ubuntu #15603)
 +  * po/de.po, po/fr.po: 
 +    - updated the translations
 +  * po/makefile:
 +    - create a single pot file in each domain dir to make rosetta happy
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Wed, 28 Sep 2005 10:16:06 +0200
 +
 +apt (0.6.40.1ubuntu7) breezy; urgency=low
 +
 +  * updated the pot/po files , no code changes
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 27 Sep 2005 18:38:16 +0200
 +
 +apt (0.6.40.1ubuntu6) breezy; urgency=low
 +
 +  * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-56:
 +    - make it possible for apt to handle a failed MediaChange event and
 +      fall back to other sources (ubuntu #13713)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 13 Sep 2005 22:09:50 +0200
 +
 +apt (0.6.40.1ubuntu5) breezy; urgency=low
 +
 +  * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-{50,51}.
 +    This adds media-change reporting to the apt status-fd (ubuntu #15213)
 +  * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-55:
 +    apt-pkg/cdrom.cc:
 +    - unmount the cdrom when apt failed to locate any package files
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Mon, 12 Sep 2005 15:44:26 +0200
 +
 +apt (0.6.40.1ubuntu4) breezy; urgency=low
 +
 +  * debian/apt.cron.daily:
 +    - fix a embarrassing typo
 +  
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Wed,  7 Sep 2005 10:10:37 +0200
 +
 +apt (0.6.40.1ubuntu3) breezy; urgency=low
 +
 +  * debian/apt.cron.daily:
 +    - use the ctime as well when figuring what packages need to
 +      be removed. This fixes the problem that packages copied with    
 +      "cp -a" (e.g. from the installer) have old mtimes (ubuntu #14504)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue,  6 Sep 2005 18:30:46 +0200
 +
 +apt (0.6.40.1ubuntu2) breezy; urgency=low
 +
 +  * improved the support for "error" and "conffile" reporting from
 +    dpkg, added the format to README.progress-reporting
 +  * added README.progress-reporting to the apt-doc package
 +  * Do md5sum checking for file and cdrom method (closes: #319142)
 +  * Change pkgPolicy::Pin from private to protected to let subclasses
 +    access it too (closes: #321799)
 +  * methods/connect.cc:
 +    - send failure reason for EAI_AGAIN (TmpResolveFailure) to acuire-item
 +  * apt-pkg/acquire-item.cc:
 +    - fail early if a FailReason is TmpResolveFailure (avoids hangs during
 +      the install when no network is available)
 +  * merged michael.vogt@ubuntu.com--2005/apt--trust-cdrom--0
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 23 Aug 2005 19:44:55 +0200
 +
 +apt (0.6.40.1ubuntu1) breezy; urgency=low
 +
 +  * Synchronize with Debian
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Fri,  5 Aug 2005 14:20:56 +0200
  
  apt (0.6.40.1) unstable; urgency=low
  
  
   -- Michael Vogt <mvo@debian.org>  Fri,  5 Aug 2005 13:24:58 +0200
  
 +apt (0.6.40ubuntu1) breezy; urgency=low
 +
 +  * Synchronize with Debian
 +
 + -- Matt Zimmerman <mdz@ubuntu.com>  Thu,  4 Aug 2005 15:53:22 -0700
 +
  apt (0.6.40) unstable; urgency=low
  
    * Patch from Jordi Mallach to mark some additional strings for translation
  
   -- Matt Zimmerman <mdz@debian.org>  Thu, 28 Jul 2005 11:57:32 -0700
  
 +apt (0.6.39ubuntu4) breezy; urgency=low
 +
 +  * Fix keyring paths in apt-key, apt.postinst (I swear I remember doing this
 +    before...)
 +
 + -- Matt Zimmerman <mdz@ubuntu.com>  Wed, 29 Jun 2005 08:39:17 -0700
 +
 +apt (0.6.39ubuntu3) breezy; urgency=low
 +
 +  * Fix keyring locations for Ubuntu in apt-key too.
 +
 + -- Colin Watson <cjwatson@ubuntu.com>  Wed, 29 Jun 2005 14:45:36 +0100
 +
 +apt (0.6.39ubuntu2) breezy; urgency=low
 +
 +  * Install ubuntu-archive.gpg rather than debian-archive.gpg as
 +    /etc/apt/trusted.gpg.
 +
 + -- Colin Watson <cjwatson@ubuntu.com>  Wed, 29 Jun 2005 11:53:34 +0100
 +
 +apt (0.6.39ubuntu1) breezy; urgency=low
 +
 +  * Michael Vogt
 +    - Change debian/bugscript to use #!/bin/bash (Closes: #313402)
 +    - Fix a incorrect example in the man-page (closes: #282918)
 +    - Support architecture-specific extra overrides
 +      (closes: #225947). Thanks to  Anthony Towns for idea and
 +      the patch, thanks to Colin Watson for testing it.
 +    - better report network timeouts from the methods to the acuire code,
 +      only timeout once per sources.list line
 +
 + -- Matt Zimmerman <mdz@ubuntu.com>  Tue, 28 Jun 2005 11:52:24 -0700
 +
  apt (0.6.39) unstable; urgency=low
  
    * Welsh translation update: daf@muse.19inch.net--2005/apt--main--0--patch-6
    * Update priority of apt-utils to important, to match the override file
    * Install only one keyring on each branch (Closes: #316119)
  
 - -- Matt Zimmerman <mdz@debian.org>  Tue, 28 Jun 2005 11:51:09 -0700
 + -- Matt Zimmerman <mdz@debian.org>  Tue, 28 Jun 2005 11:35:21 -0700
 +
 +apt (0.6.38ubuntu1) breezy; urgency=low
 +
 +  * First release from Ubuntu branch
 +  * Merge with --main--0, switch back to Ubuntu keyring
 +
 + -- Matt Zimmerman <mdz@ubuntu.com>  Sat, 25 Jun 2005 16:52:41 -0700
  
  apt (0.6.38) unstable; urgency=low
  
@@@ -967,7 -473,6 +979,7 @@@ apt (0.6.37) breezy; urgency=lo
    * Add Welsh translation from Dafydd Harries
      (daf@muse.19inch.net--2005/apt--main--0--patch-1)
    * Change debian/bugscript to use #!/bin/bash (Closes: #313402)
 +  * Fix a incorrect example in the man-page (closes: #282918)
  
   -- Matt Zimmerman <mdz@ubuntu.com>  Tue, 24 May 2005 14:38:25 -0700
  
diff --combined debian/rules
index b22b09fd15ca021bbf867be033ce38791677fff1,9e87b1723213f9908cfdde94824e2838961808ef..3defd3c29e78ba540f4cbfa978d6e15e5a57b37b
@@@ -185,7 -185,7 +185,7 @@@ apt-doc: build-do
  
  # Build architecture-dependent files here.
  
 -binary-arch: apt libapt-pkg-dev apt-utils 
 +binary-arch: apt-transport-https apt libapt-pkg-dev apt-utils
  apt: build debian/shlibs.local
        dh_testdir -p$@
        dh_testroot -p$@
  
        cp debian/bugscript debian/$@/usr/share/bug/apt/script
  
 -      cp share/debian-archive.gpg debian/$@/usr/share/$@
 -
 +      cp share/ubuntu-archive.gpg debian/$@/usr/share/$@
 +      cp debian/apt.conf.ubuntu debian/$@/etc/apt/apt.conf.d/01ubuntu
  #     head -n 500 ChangeLog > debian/ChangeLog
  
 +      # make rosetta happy and remove pot files in po/ (but leave stuff
 +      # in po/domains/* untouched) and cp *.po into each domain dir
 +      rm -f build/po/*.pot
 +      rm -f po/*.pot
 +
+       # move the mirror failure script in place
+       mv debian/$@/usr/bin/apt-report-mirror-failure \
+          debian/$@/usr/lib/apt/apt-report-mirror-failure \
        dh_installexamples -p$@ $(BLD)/docs/examples/*
        dh_installman -p$@ 
        dh_installcron -p$@
@@@ -291,32 -290,6 +295,32 @@@ apt-utils: build debian/shlibs.loca
        dh_md5sums -p$@
        dh_builddeb -p$@
  
 +apt-transport-https: build debian/shlibs.local
 +      dh_testdir -p$@
 +      dh_testroot -p$@
 +      dh_clean -p$@ -k
 +      dh_installdirs -p$@
 +
 +      # install the method
 +      mkdir -p debian/$@/usr/lib/apt/methods
 +      mv $(BLD)/bin/methods/https debian/$@/usr/lib/apt/methods
 +
 +      dh_installdocs -p$@
 +      dh_installexamples -p$@
 +
 +      # Install the man pages..
 +      dh_installman -p$@
 +
 +      dh_installchangelogs -p$@
 +      dh_strip -p$@
 +      dh_compress -p$@
 +      dh_fixperms -p$@
 +      dh_installdeb -p$@
 +      dh_shlibdeps -p$@ -l`pwd`/debian/apt/usr/lib:`pwd`/debian/$@/usr/lib 
 +      dh_gencontrol -p$@
 +      dh_md5sums -p$@
 +      dh_builddeb -p$@
 +
  source diff:
        @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
  
@@@ -369,4 -342,4 +373,4 @@@ arch-build
        mkdir -p debian/arch-build/apt-$(APT_DEBVER)
        tar -c --exclude=arch-build --no-recursion -f - `bzr inventory` | (cd debian/arch-build/$(PKG)-$(APT_DEBVER);tar xf -)
        $(MAKE) -C debian/arch-build/apt-$(APT_DEBVER) startup doc
 -      (cd debian/arch-build/apt-$(APT_DEBVER); $(DEB_BUILD_PROG))
 +      (cd debian/arch-build/apt-$(APT_DEBVER); $(DEB_BUILD_PROG); dpkg-genchanges -S > ../apt_$(APT_DEBVER)_source.changes)
index 26d9354fe9b70ded546fc943f9929f082a21fca2,c02fe849ff9fc85886db39969addf5a5ba9399cc..4262b479f1589a7c50b339641b37d196ea638365
@@@ -24,15 -24,11 +24,15 @@@ AP
  {
    Architecture "i386";
    Build-Essential "build-essential";
 -  
 +
 +  NeverAutoRemove  { "linux-kernel.*";  };  // packages that should never
 +                                            // considered for autoRemove
 +
    // Options for apt-get
    Get 
    {
       Arch-Only "false";
 +     AutomaticRemove "false";       
       Download-Only "false";
       Simulate "false";
       Assume-Yes "false";
    Cache-Limit "4194304";
    Default-Release "";
  
 +  // consider Recommends, Suggests as important dependencies that should
 +  // be installed by default
 +  APT::Install-Recommends "false";
 +  APT::Install-Suggests "false";
  
    // Write progress messages on this fd (for stuff like base-config)
    Status-Fd "-1";
@@@ -128,18 -120,6 +128,18 @@@ Acquir
      Dl-Limit "7";        // 7Kb/sec maximum download rate
    };
  
 +  // HTTPS method configuration:
 +  // - uses the http proxy config 
 +  // - uses the http cache-control values
 +  // - uses the http Dl-Limit values
 +  https 
 +  {
 +      Verify-Peer "false";
 +      SslCert "/etc/apt/some.pem";
 +        CaPath  "/etc/ssl/certs";
 +        Verify-Host" "2";
 +  };
 +
    ftp
    {
      Proxy "ftp://127.0.0.1/";
    {
     Options {"--ignore-time-conflict";}        // not very usefull on a normal system
    };
+   mirror
+   {
+    RefreshInterval "360"; // refresh interval in minutes
+    MaxAge "90";           // max age for a mirror file in days before 
+                           // it gets deleted
+    // mirror failure reporting script
+    ProblemReporting "/usr/lib/apt/apt-report-mirror-failure"; 
+    // mirror failure reporting url
+    ReportFailures "http://example.com/mirror-failure"; 
+   };
  };
  
  // Directory layout
@@@ -193,6 -184,7 +204,7 @@@ Dir "/
       userstatus "status.user";
       status "/var/lib/dpkg/status";
       cdroms "cdroms.list";
+      mirrors "mirrors/";
    };
    
    // Location of the cache dir
@@@ -257,10 -249,6 +269,10 @@@ DPk
     // Control the size of the command line passed to dpkg.
     MaxBytes 1024;
     MaxArgs 350;
 +
 +   // controls if apt will apport on the first dpkg error or if it 
 +   // tries to install as many packages as possible
 +   StopOnError "true";
  }
  
  /* Options you can set to see some debugging text They correspond to names
@@@ -275,17 -263,16 +287,17 @@@ Debu
    pkgDPkgPM "false";
    pkgDPkgProgressReporting "false";
    pkgOrderList "false";
 +  pkgAutoRemove "false";   // show information about automatic removes
    BuildDeps "false";
 -  
    pkgInitialize "false";   // This one will dump the configuration space
    NoLocking "false";
    Acquire::Ftp "false";    // Show ftp command traffic
    Acquire::Http "false";   // Show http command traffic
 +  Acquire::Https "false";   // Show https debug
    Acquire::gpgv "false";   // Show the gpgv traffic
+   Acquire::Mirror "false"; // Show debugging of the mirror method
    aptcdrom "false";        // Show found package files
    IdentCdrom "false";
-   
  }
  
  /* Whatever you do, do not use this configuration file!! Take out ONLY
diff --combined methods/http.cc
index 0eef7a633a9aa9f1d0f8b2cb26e21f703b9f5b10,01ad146557ff09905346c0c278e9f990e8a1839d..ecfb80bd2e3a451d3264b061e4c1fdf86f32e775
  #include <stdio.h>
  #include <errno.h>
  #include <string.h>
- #include <iostream>
  #include <apti18n.h>
  
  // Internet stuff
  #include <netdb.h>
  
 +#include "config.h"
  #include "connect.h"
  #include "rfc2553emu.h"
  #include "http.h"
@@@ -58,7 -56,7 +57,7 @@@ time_t HttpMethod::FailTime = 0
  unsigned long PipelineDepth = 10;
  unsigned long TimeOut = 120;
  bool Debug = false;
+ URI Proxy;
  
  unsigned long CircleBuf::BwReadLimit=0;
  unsigned long CircleBuf::BwTickReadData=0;
@@@ -715,7 -713,7 +714,7 @@@ void HttpMethod::SendReq(FetchItem *Itm
        Req += string("Authorization: Basic ") + 
            Base64Encode(Uri.User + ":" + Uri.Password) + "\r\n";
     
 -   Req += "User-Agent: Debian APT-HTTP/1.3\r\n\r\n";
 +   Req += "User-Agent: Ubuntu APT-HTTP/1.3 ("VERSION")\r\n\r\n";
     
     if (Debug == true)
        cerr << Req << endl;
@@@ -916,6 -914,9 +915,9 @@@ int HttpMethod::DealWithHeaders(FetchRe
        failure */
     if (Srv->Result < 200 || Srv->Result >= 300)
     {
+       char err[255];
+       snprintf(err,sizeof(err)-1,"HttpError%i",Srv->Result);
+       SetFailReason(err);
        _error->Error("%u %s",Srv->Result,Srv->Code);
        if (Srv->HaveContent == true)
         return 4;
@@@ -991,7 -992,7 +993,7 @@@ void HttpMethod::SigTerm(int
     depth. */
  bool HttpMethod::Fetch(FetchItem *)
  {
-    if (Server == 0)
+    if (Server == 0) 
        return true;
  
     // Queue the requests
@@@ -1224,13 -1225,5 +1226,5 @@@ int HttpMethod::Loop(
  }
                                                                        /*}}}*/
  
- int main()
- {
-    setlocale(LC_ALL, "");
-    HttpMethod Mth;
-    
-    return Mth.Loop();
- }
  
  
diff --combined methods/makefile
index 197ddf9ed093e250c1025c35d28a3d14f6220b05,12e446a556b69fa1540188df6acf0095c5df6e46..f971e56e8dbe7e442160ab2546821bee26c23b0f
@@@ -7,7 -7,7 +7,7 @@@ include ../buildlib/defaults.ma
  BIN := $(BIN)/methods
  
  # FIXME..
 -LIB_APT_PKG_MAJOR = 3.11
 +LIB_APT_PKG_MAJOR = 3.51
  APT_DOMAIN := libapt-pkg$(LIB_APT_PKG_MAJOR)
  
  # The file method
@@@ -49,16 -49,9 +49,16 @@@ include $(PROGRAM_H
  PROGRAM=http
  SLIBS = -lapt-pkg $(SOCKETLIBS)
  LIB_MAKES = apt-pkg/makefile
- SOURCE = http.cc rfc2553emu.cc connect.cc
+ SOURCE = http.cc http_main.cc rfc2553emu.cc connect.cc
  include $(PROGRAM_H)
  
 +# The https method
 +PROGRAM=https
 +SLIBS = -lapt-pkg -lcurl
 +LIB_MAKES = apt-pkg/makefile
 +SOURCE = https.cc
 +include $(PROGRAM_H)
 +
  # The ftp method
  PROGRAM=ftp
  SLIBS = -lapt-pkg $(SOCKETLIBS)
@@@ -73,6 -66,13 +73,13 @@@ LIB_MAKES = apt-pkg/makefil
  SOURCE = rsh.cc
  include $(PROGRAM_H)
  
+ # The mirror method
+ PROGRAM=mirror
+ SLIBS = -lapt-pkg $(SOCKETLIBS)
+ LIB_MAKES = apt-pkg/makefile
+ SOURCE = mirror.cc http.cc rfc2553emu.cc connect.cc
+ include $(PROGRAM_H)
  # SSH and vzip2 method symlink
  binary: $(BIN)/ssh $(BIN)/bzip2
  veryclean: clean-$(BIN)/ssh clean-$(BIN)/bzip2
diff --combined methods/mirror.cc
index 0000000000000000000000000000000000000000,9a86a10c214b926455a46e799b42c772add9d853..9fe64fd7031c0a05c932ef44b7f12922fd20721f
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,282 +1,282 @@@
 - * - use pkgAcqMethod::FailReason() to have a string representation
+ // -*- mode: cpp; mode: fold -*-
+ // Description                                                                /*{{{*/
+ // $Id: mirror.cc,v 1.59 2004/05/08 19:42:35 mdz Exp $
+ /* ######################################################################
+    Mirror Aquire Method - This is the Mirror aquire method for APT.
+    
+    ##################################################################### */
+                                                                       /*}}}*/
+ // Include Files                                                      /*{{{*/
+ #include <apt-pkg/fileutl.h>
+ #include <apt-pkg/acquire-method.h>
+ #include <apt-pkg/acquire-item.h>
+ #include <apt-pkg/acquire.h>
+ #include <apt-pkg/error.h>
+ #include <apt-pkg/hashes.h>
+ #include <apt-pkg/sourcelist.h>
+ #include <fstream>
+ #include <iostream>
+ #include <stdarg.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <dirent.h>
+ using namespace std;
+ #include "mirror.h"
+ #include "http.h"
+ #include "apti18n.h"
+                                                                       /*}}}*/
+ /* Done:
+  * - works with http (only!)
+  * - always picks the first mirror from the list
+  * - call out to problem reporting script
+  * - supports "deb mirror://host/path/to/mirror-list/// dist component"
++ * - uses pkgAcqMethod::FailReason() to have a string representation
+  *   of the failure that is also send to LP
+  * 
+  * TODO: 
+  * - deal with runing as non-root because we can't write to the lists 
+      dir then -> use the cached mirror file
+  * - better method to download than having a pkgAcquire interface here
+  *   and better error handling there!
+  * - support more than http
+  * - testing :)
+  */
+ MirrorMethod::MirrorMethod()
+    : HttpMethod(), HasMirrorFile(false)
+ {
+ };
+ // HttpMethod::Configuration - Handle a configuration message         /*{{{*/
+ // ---------------------------------------------------------------------
+ /* We stash the desired pipeline depth */
+ bool MirrorMethod::Configuration(string Message)
+ {
+    if (pkgAcqMethod::Configuration(Message) == false)
+       return false;
+    Debug = _config->FindB("Debug::Acquire::mirror",false);
+    
+    return true;
+ }
+                                                                       /*}}}*/
+ // clean the mirrors dir based on ttl information
+ bool MirrorMethod::Clean(string Dir)
+ {
+    vector<metaIndex *>::const_iterator I;
+    if(Debug)
+       clog << "MirrorMethod::Clean(): " << Dir << endl;
+    // read sources.list
+    pkgSourceList list;
+    list.ReadMainList();
+    DIR *D = opendir(Dir.c_str());   
+    if (D == 0)
+       return _error->Errno("opendir",_("Unable to read %s"),Dir.c_str());
+    
+    string StartDir = SafeGetCWD();
+    if (chdir(Dir.c_str()) != 0)
+    {
+       closedir(D);
+       return _error->Errno("chdir",_("Unable to change to %s"),Dir.c_str());
+    }
+    
+    for (struct dirent *Dir = readdir(D); Dir != 0; Dir = readdir(D))
+    {
+       // Skip some files..
+       if (strcmp(Dir->d_name,"lock") == 0 ||
+         strcmp(Dir->d_name,"partial") == 0 ||
+         strcmp(Dir->d_name,".") == 0 ||
+         strcmp(Dir->d_name,"..") == 0)
+        continue;
+       // see if we have that uri
+       for(I=list.begin(); I != list.end(); I++)
+       {
+        string uri = (*I)->GetURI();
+        if(uri.substr(0,strlen("mirror://")) != string("mirror://"))
+           continue;
+        string BaseUri = uri.substr(0,uri.size()-1);
+        if (URItoFileName(BaseUri) == Dir->d_name)
+           break;
+       }
+       // nothing found, nuke it
+       if (I == list.end())
+        unlink(Dir->d_name);
+    };
+    
+    chdir(StartDir.c_str());
+    closedir(D);
+    return true;   
+ }
+ bool MirrorMethod::GetMirrorFile(string mirror_uri_str)
+ {
+    /* 
+     - a mirror_uri_str looks like this:
+     mirror://people.ubuntu.com/~mvo/apt/mirror/mirrors/dists/feisty/Release.gpg
+    
+     - the matching source.list entry
+     deb mirror://people.ubuntu.com/~mvo/apt/mirror/mirrors feisty main
+    
+     - we actually want to go after:
+     http://people.ubuntu.com/~mvo/apt/mirror/mirrors
+     And we need to save the BaseUri for later:
+     - mirror://people.ubuntu.com/~mvo/apt/mirror/mirrors
+    FIXME: what if we have two similar prefixes?
+      mirror://people.ubuntu.com/~mvo/mirror
+      mirror://people.ubuntu.com/~mvo/mirror2
+    then mirror_uri_str looks like:
+      mirror://people.ubuntu.com/~mvo/apt/mirror/dists/feisty/Release.gpg
+      mirror://people.ubuntu.com/~mvo/apt/mirror2/dists/feisty/Release.gpg
+    we search sources.list and find:
+      mirror://people.ubuntu.com/~mvo/apt/mirror
+    in both cases! So we need to apply some domain knowledge here :( and
+    check for /dists/ or /Release.gpg as suffixes
+    */
+    if(Debug)
+       std::cerr << "GetMirrorFile: " << mirror_uri_str << std::endl;
+    // read sources.list and find match
+    vector<metaIndex *>::const_iterator I;
+    pkgSourceList list;
+    list.ReadMainList();
+    for(I=list.begin(); I != list.end(); I++)
+    {
+       string uristr = (*I)->GetURI();
+       if(Debug)
+        std::cerr << "Checking: " << uristr << std::endl;
+       if(uristr.substr(0,strlen("mirror://")) != string("mirror://"))
+        continue;
+       // find matching uri in sources.list
+       if(mirror_uri_str.substr(0,uristr.size()) == uristr)
+       {
+        if(Debug)
+           std::cerr << "found BaseURI: " << uristr << std::endl;
+        BaseUri = uristr.substr(0,uristr.size()-1);
+       }
+    }
+    string fetch = BaseUri;
+    fetch.replace(0,strlen("mirror://"),"http://");
+    // get new file
+    MirrorFile = _config->FindDir("Dir::State::mirrors") + URItoFileName(BaseUri);
+    if(Debug) 
+    {
+       cerr << "base-uri: " << BaseUri << endl;
+       cerr << "mirror-file: " << MirrorFile << endl;
+    }
+    // check the file, if it is not older than RefreshInterval just use it
+    // otherwise try to get a new one
+    if(FileExists(MirrorFile)) 
+    {
+       struct stat buf;
+       time_t t,now,refresh;
+       if(stat(MirrorFile.c_str(), &buf) != 0)
+        return false;
+       t = std::max(buf.st_mtime, buf.st_ctime);
+       now = time(NULL);
+       refresh = 60*_config->FindI("Acquire::Mirror::RefreshInterval",360);
+       if(t + refresh > now)
+       {
+        if(Debug)
+           clog << "Mirror file is in RefreshInterval" << endl;
+        HasMirrorFile = true;
+        return true;
+       }
+       if(Debug)
+        clog << "Mirror file " << MirrorFile << " older than " << refresh << "min, re-download it" << endl;
+    }
+    // not that great to use pkgAcquire here, but we do not have 
+    // any other way right now
+    pkgAcquire Fetcher;
+    new pkgAcqFile(&Fetcher, fetch, "", 0, "", "", "", MirrorFile);
+    bool res = (Fetcher.Run() == pkgAcquire::Continue);
+    if(res)
+       HasMirrorFile = true;
+    Fetcher.Shutdown();
+    return res;
+ }
+ bool MirrorMethod::SelectMirror()
+ {
+    // FIXME: make the mirror selection more clever, do not 
+    //        just use the first one!
+    ifstream in(MirrorFile.c_str());
+    getline(in, Mirror);
+    if(Debug)
+       cerr << "Using mirror: " << Mirror << endl;
+    UsedMirror = Mirror;
+    return true;
+ }
+ // MirrorMethod::Fetch - Fetch an item                                        /*{{{*/
+ // ---------------------------------------------------------------------
+ /* This adds an item to the pipeline. We keep the pipeline at a fixed
+    depth. */
+ bool MirrorMethod::Fetch(FetchItem *Itm)
+ {
+    // select mirror only once per session
+    if(!HasMirrorFile)
+    {
+       Clean(_config->FindDir("Dir::State::mirrors"));
+       GetMirrorFile(Itm->Uri);
+       SelectMirror();
+    }
+    for (FetchItem *I = Queue; I != 0; I = I->Next)
+    {
+       if(I->Uri.find("mirror://") != string::npos)
+        I->Uri.replace(0,BaseUri.size(),Mirror);
+    }
+    // now run the real fetcher
+    return HttpMethod::Fetch(Itm);
+ };
+ void MirrorMethod::Fail(string Err,bool Transient)
+ {
+    if(Queue->Uri.find("http://") != string::npos)
+       Queue->Uri.replace(0,Mirror.size(), BaseUri);
+    pkgAcqMethod::Fail(Err, Transient);
+ }
+ void MirrorMethod::URIStart(FetchResult &Res)
+ {
+    if(Queue->Uri.find("http://") != string::npos)
+       Queue->Uri.replace(0,Mirror.size(), BaseUri);
+    pkgAcqMethod::URIStart(Res);
+ }
+ void MirrorMethod::URIDone(FetchResult &Res,FetchResult *Alt)
+ {
+    if(Queue->Uri.find("http://") != string::npos)
+       Queue->Uri.replace(0,Mirror.size(), BaseUri);
+    pkgAcqMethod::URIDone(Res, Alt);
+ }
+ int main()
+ {
+    setlocale(LC_ALL, "");
+    MirrorMethod Mth;
+    return Mth.Loop();
+ }
diff --combined po/apt-all.pot
index de72c430eb5ec7945a4ac07549d429d6aeb1baed,c37d84be27ba9da395396b6c3f1597a15e154733..f2f151dd3387a015e9814e4f2d8d058790010f7e
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  msgstr ""
  "Project-Id-Version: PACKAGE VERSION\n"
  "Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2006-08-09 23:46+0200\n"
 -"POT-Creation-Date: 2007-02-06 10:56+0100\n"
++"POT-Creation-Date: 2007-02-06 11:14+0100\n"
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  "Language-Team: LANGUAGE <LL@li.org>\n"
  "Content-Type: text/plain; charset=CHARSET\n"
  "Content-Transfer-Encoding: 8bit\n"
  
--#: cmdline/apt-cache.cc:135
++#: cmdline/apt-cache.cc:143
  #, 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:183 cmdline/apt-cache.cc:552 cmdline/apt-cache.cc:640
++#: cmdline/apt-cache.cc:796 cmdline/apt-cache.cc:1018
++#: cmdline/apt-cache.cc:1419 cmdline/apt-cache.cc:1570
  #, c-format
  msgid "Unable to locate package %s"
  msgstr ""
  
--#: cmdline/apt-cache.cc:232
++#: cmdline/apt-cache.cc:247
  msgid "Total package names : "
  msgstr ""
  
--#: cmdline/apt-cache.cc:272
++#: cmdline/apt-cache.cc:287
  msgid "  Normal packages: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:273
++#: cmdline/apt-cache.cc:288
  msgid "  Pure virtual packages: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:274
++#: cmdline/apt-cache.cc:289
  msgid "  Single virtual packages: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:275
++#: cmdline/apt-cache.cc:290
  msgid "  Mixed virtual packages: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:276
++#: cmdline/apt-cache.cc:291
  msgid "  Missing: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:278
++#: cmdline/apt-cache.cc:293
  msgid "Total distinct versions: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:280
++#: cmdline/apt-cache.cc:295
++msgid "Total Distinct Descriptions: "
++msgstr ""
++
++#: cmdline/apt-cache.cc:297
  msgid "Total dependencies: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:283
++#: cmdline/apt-cache.cc:300
  msgid "Total ver/file relations: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:285
++#: cmdline/apt-cache.cc:302
++msgid "Total Desc/File relations: "
++msgstr ""
++
++#: cmdline/apt-cache.cc:304
  msgid "Total Provides mappings: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:297
++#: cmdline/apt-cache.cc:316
  msgid "Total globbed strings: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:311
++#: cmdline/apt-cache.cc:330
  msgid "Total dependency version space: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:316
++#: cmdline/apt-cache.cc:335
  msgid "Total slack space: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:324
++#: cmdline/apt-cache.cc:343
  msgid "Total space accounted for: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189
++#: cmdline/apt-cache.cc:471 cmdline/apt-cache.cc:1218
  #, c-format
  msgid "Package file %s is out of sync."
  msgstr ""
  
--#: cmdline/apt-cache.cc:1231
++#: cmdline/apt-cache.cc:1293
  msgid "You must give exactly one pattern"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1385
++#: cmdline/apt-cache.cc:1447
  msgid "No packages found"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1462
++#: cmdline/apt-cache.cc:1524
  msgid "Package files:"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555
++#: cmdline/apt-cache.cc:1531 cmdline/apt-cache.cc:1617
  msgid "Cache is out of sync, can't x-ref a package file"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1470
++#: cmdline/apt-cache.cc:1532
  #, c-format
  msgid "%4i %s\n"
  msgstr ""
  
  #. Show any packages have explicit pins
--#: cmdline/apt-cache.cc:1482
++#: cmdline/apt-cache.cc:1544
  msgid "Pinned packages:"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535
++#: cmdline/apt-cache.cc:1556 cmdline/apt-cache.cc:1597
  msgid "(not found)"
  msgstr ""
  
  #. Installed version
--#: cmdline/apt-cache.cc:1515
++#: cmdline/apt-cache.cc:1577
  msgid "  Installed: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525
++#: cmdline/apt-cache.cc:1579 cmdline/apt-cache.cc:1587
  msgid "(none)"
  msgstr ""
  
  #. Candidate Version
--#: cmdline/apt-cache.cc:1522
++#: cmdline/apt-cache.cc:1584
  msgid "  Candidate: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:1532
++#: cmdline/apt-cache.cc:1594
  msgid "  Package pin: "
  msgstr ""
  
  #. Show the priority tables
--#: cmdline/apt-cache.cc:1541
++#: cmdline/apt-cache.cc:1603
  msgid "  Version table:"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1556
++#: cmdline/apt-cache.cc:1618
  #, c-format
  msgid "       %4i %s\n"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
++#: cmdline/apt-cache.cc:1714 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
  #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550
- #: cmdline/apt-get.cc:2462 cmdline/apt-sortpkgs.cc:144
 -#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144
++#: cmdline/apt-get.cc:2549 cmdline/apt-sortpkgs.cc:144
  #, c-format
  msgid "%s %s for %s %s compiled on %s %s\n"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1659
++#: cmdline/apt-cache.cc:1721
  msgid ""
  "Usage: apt-cache [options] command\n"
  "       apt-cache [options] add file1 [file2 ...]\n"
@@@ -243,8 -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:714
- #: apt-pkg/pkgcachegen.cc:819
 -#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710
++#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:819
  #, c-format
  msgid "Unable to write to %s"
  msgstr ""
@@@ -543,221 -542,221 +550,221 @@@ msgstr "
  msgid "Failed to rename %s to %s"
  msgstr ""
  
 -#: cmdline/apt-get.cc:120
 +#: cmdline/apt-get.cc:121
  msgid "Y"
  msgstr ""
  
- #: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1574
 -#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506
++#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1662
  #, c-format
  msgid "Regex compilation error - %s"
  msgstr ""
  
 -#: cmdline/apt-get.cc:237
 +#: cmdline/apt-get.cc:238
  msgid "The following packages have unmet dependencies:"
  msgstr ""
  
 -#: cmdline/apt-get.cc:327
 +#: cmdline/apt-get.cc:328
  #, c-format
  msgid "but %s is installed"
  msgstr ""
  
 -#: cmdline/apt-get.cc:329
 +#: cmdline/apt-get.cc:330
  #, c-format
  msgid "but %s is to be installed"
  msgstr ""
  
 -#: cmdline/apt-get.cc:336
 +#: cmdline/apt-get.cc:337
  msgid "but it is not installable"
  msgstr ""
  
 -#: cmdline/apt-get.cc:338
 +#: cmdline/apt-get.cc:339
  msgid "but it is a virtual package"
  msgstr ""
  
 -#: cmdline/apt-get.cc:341
 +#: cmdline/apt-get.cc:342
  msgid "but it is not installed"
  msgstr ""
  
 -#: cmdline/apt-get.cc:341
 +#: cmdline/apt-get.cc:342
  msgid "but it is not going to be installed"
  msgstr ""
  
 -#: cmdline/apt-get.cc:346
 +#: cmdline/apt-get.cc:347
  msgid " or"
  msgstr ""
  
 -#: cmdline/apt-get.cc:375
 +#: cmdline/apt-get.cc:376
  msgid "The following NEW packages will be installed:"
  msgstr ""
  
 -#: cmdline/apt-get.cc:401
 +#: cmdline/apt-get.cc:402
  msgid "The following packages will be REMOVED:"
  msgstr ""
  
 -#: cmdline/apt-get.cc:423
 +#: cmdline/apt-get.cc:424
  msgid "The following packages have been kept back:"
  msgstr ""
  
 -#: cmdline/apt-get.cc:444
 +#: cmdline/apt-get.cc:445
  msgid "The following packages will be upgraded:"
  msgstr ""
  
 -#: cmdline/apt-get.cc:465
 +#: cmdline/apt-get.cc:466
  msgid "The following packages will be DOWNGRADED:"
  msgstr ""
  
 -#: cmdline/apt-get.cc:485
 +#: cmdline/apt-get.cc:486
  msgid "The following held packages will be changed:"
  msgstr ""
  
 -#: cmdline/apt-get.cc:538
 +#: cmdline/apt-get.cc:539
  #, c-format
  msgid "%s (due to %s) "
  msgstr ""
  
 -#: cmdline/apt-get.cc:546
 +#: cmdline/apt-get.cc:547
  msgid ""
  "WARNING: The following essential packages will be removed.\n"
  "This should NOT be done unless you know exactly what you are doing!"
  msgstr ""
  
 -#: cmdline/apt-get.cc:577
 +#: cmdline/apt-get.cc:578
  #, c-format
  msgid "%lu upgraded, %lu newly installed, "
  msgstr ""
  
 -#: cmdline/apt-get.cc:581
 +#: cmdline/apt-get.cc:582
  #, c-format
  msgid "%lu reinstalled, "
  msgstr ""
  
 -#: cmdline/apt-get.cc:583
 +#: cmdline/apt-get.cc:584
  #, c-format
  msgid "%lu downgraded, "
  msgstr ""
  
 -#: cmdline/apt-get.cc:585
 +#: cmdline/apt-get.cc:586
  #, c-format
  msgid "%lu to remove and %lu not upgraded.\n"
  msgstr ""
  
 -#: cmdline/apt-get.cc:589
 +#: cmdline/apt-get.cc:590
  #, c-format
  msgid "%lu not fully installed or removed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:650
 -#: cmdline/apt-get.cc:649
++#: cmdline/apt-get.cc:664
  msgid "Correcting dependencies..."
  msgstr ""
  
- #: cmdline/apt-get.cc:653
 -#: cmdline/apt-get.cc:652
++#: cmdline/apt-get.cc:667
  msgid " failed."
  msgstr ""
  
- #: cmdline/apt-get.cc:656
 -#: cmdline/apt-get.cc:655
++#: cmdline/apt-get.cc:670
  msgid "Unable to correct dependencies"
  msgstr ""
  
- #: cmdline/apt-get.cc:659
 -#: cmdline/apt-get.cc:658
++#: cmdline/apt-get.cc:673
  msgid "Unable to minimize the upgrade set"
  msgstr ""
  
- #: cmdline/apt-get.cc:661
 -#: cmdline/apt-get.cc:660
++#: cmdline/apt-get.cc:675
  msgid " Done"
  msgstr ""
  
- #: cmdline/apt-get.cc:665
 -#: cmdline/apt-get.cc:664
++#: cmdline/apt-get.cc:679
  msgid "You might want to run `apt-get -f install' to correct these."
  msgstr ""
  
- #: cmdline/apt-get.cc:668
 -#: cmdline/apt-get.cc:667
++#: cmdline/apt-get.cc:682
  msgid "Unmet dependencies. Try using -f."
  msgstr ""
  
- #: cmdline/apt-get.cc:690
 -#: cmdline/apt-get.cc:689
++#: cmdline/apt-get.cc:704
  msgid "WARNING: The following packages cannot be authenticated!"
  msgstr ""
  
- #: cmdline/apt-get.cc:694
 -#: cmdline/apt-get.cc:693
++#: cmdline/apt-get.cc:708
  msgid "Authentication warning overridden.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:701
 -#: cmdline/apt-get.cc:700
++#: cmdline/apt-get.cc:715
  msgid "Install these packages without verification [y/N]? "
  msgstr ""
  
- #: cmdline/apt-get.cc:703
 -#: cmdline/apt-get.cc:702
++#: cmdline/apt-get.cc:717
  msgid "Some packages could not be authenticated"
  msgstr ""
  
- #: cmdline/apt-get.cc:712 cmdline/apt-get.cc:859
 -#: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858
++#: cmdline/apt-get.cc:726 cmdline/apt-get.cc:873
  msgid "There are problems and -y was used without --force-yes"
  msgstr ""
  
- #: cmdline/apt-get.cc:756
 -#: cmdline/apt-get.cc:755
++#: cmdline/apt-get.cc:770
  msgid "Internal error, InstallPackages was called with broken packages!"
  msgstr ""
  
- #: cmdline/apt-get.cc:765
 -#: cmdline/apt-get.cc:764
++#: cmdline/apt-get.cc:779
  msgid "Packages need to be removed but remove is disabled."
  msgstr ""
  
- #: cmdline/apt-get.cc:776
 -#: cmdline/apt-get.cc:775
++#: cmdline/apt-get.cc:790
  msgid "Internal error, Ordering didn't finish"
  msgstr ""
  
- #: cmdline/apt-get.cc:792 cmdline/apt-get.cc:1893 cmdline/apt-get.cc:1926
 -#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851
++#: cmdline/apt-get.cc:806 cmdline/apt-get.cc:1980 cmdline/apt-get.cc:2013
  msgid "Unable to lock the download directory"
  msgstr ""
  
- #: cmdline/apt-get.cc:802 cmdline/apt-get.cc:1974 cmdline/apt-get.cc:2210
 -#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135
++#: cmdline/apt-get.cc:816 cmdline/apt-get.cc:2061 cmdline/apt-get.cc:2297
  #: apt-pkg/cachefile.cc:67
  msgid "The list of sources could not be read."
  msgstr ""
  
- #: cmdline/apt-get.cc:817
 -#: cmdline/apt-get.cc:816
++#: cmdline/apt-get.cc:831
  msgid "How odd.. The sizes didn't match, email apt@packages.debian.org"
  msgstr ""
  
- #: cmdline/apt-get.cc:822
 -#: cmdline/apt-get.cc:821
++#: cmdline/apt-get.cc:836
  #, c-format
  msgid "Need to get %sB/%sB of archives.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:825
 -#: cmdline/apt-get.cc:824
++#: cmdline/apt-get.cc:839
  #, c-format
  msgid "Need to get %sB of archives.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:830
 -#: cmdline/apt-get.cc:829
++#: cmdline/apt-get.cc:844
  #, c-format
  msgid "After unpacking %sB of additional disk space will be used.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:833
 -#: cmdline/apt-get.cc:832
++#: cmdline/apt-get.cc:847
  #, c-format
  msgid "After unpacking %sB disk space will be freed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:847 cmdline/apt-get.cc:2064
 -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989
++#: cmdline/apt-get.cc:861 cmdline/apt-get.cc:2151
  #, c-format
  msgid "Couldn't determine free space in %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:850
 -#: cmdline/apt-get.cc:849
++#: cmdline/apt-get.cc:864
  #, c-format
  msgid "You don't have enough free space in %s."
  msgstr ""
  
- #: cmdline/apt-get.cc:865 cmdline/apt-get.cc:885
 -#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884
++#: cmdline/apt-get.cc:879 cmdline/apt-get.cc:899
  msgid "Trivial Only specified but this is not a trivial operation."
  msgstr ""
  
- #: cmdline/apt-get.cc:867
 -#: cmdline/apt-get.cc:866
++#: cmdline/apt-get.cc:881
  msgid "Yes, do as I say!"
  msgstr ""
  
- #: cmdline/apt-get.cc:869
 -#: cmdline/apt-get.cc:868
++#: cmdline/apt-get.cc:883
  #, c-format
  msgid ""
  "You are about to do something potentially harmful.\n"
  " ?] "
  msgstr ""
  
- #: cmdline/apt-get.cc:875 cmdline/apt-get.cc:894
 -#: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893
++#: cmdline/apt-get.cc:889 cmdline/apt-get.cc:908
  msgid "Abort."
  msgstr ""
  
- #: cmdline/apt-get.cc:890
 -#: cmdline/apt-get.cc:889
++#: cmdline/apt-get.cc:904
  msgid "Do you want to continue [Y/n]? "
  msgstr ""
  
- #: cmdline/apt-get.cc:962 cmdline/apt-get.cc:1369 cmdline/apt-get.cc:2107
 -#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032
++#: cmdline/apt-get.cc:976 cmdline/apt-get.cc:1383 cmdline/apt-get.cc:2194
  #, c-format
  msgid "Failed to fetch %s  %s\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:980
 -#: cmdline/apt-get.cc:979
++#: cmdline/apt-get.cc:994
  msgid "Some files failed to download"
  msgstr ""
  
- #: cmdline/apt-get.cc:981 cmdline/apt-get.cc:2116
 -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041
++#: cmdline/apt-get.cc:995 cmdline/apt-get.cc:2203
  msgid "Download complete and in download only mode"
  msgstr ""
  
- #: cmdline/apt-get.cc:987
 -#: cmdline/apt-get.cc:986
++#: cmdline/apt-get.cc:1001
  msgid ""
  "Unable to fetch some archives, maybe run apt-get update or try with --fix-"
  "missing?"
  msgstr ""
  
- #: cmdline/apt-get.cc:991
 -#: cmdline/apt-get.cc:990
++#: cmdline/apt-get.cc:1005
  msgid "--fix-missing and media swapping is not currently supported"
  msgstr ""
  
- #: cmdline/apt-get.cc:996
 -#: cmdline/apt-get.cc:995
++#: cmdline/apt-get.cc:1010
  msgid "Unable to correct missing packages."
  msgstr ""
  
- #: cmdline/apt-get.cc:997
 -#: cmdline/apt-get.cc:996
++#: cmdline/apt-get.cc:1011
  msgid "Aborting install."
  msgstr ""
  
- #: cmdline/apt-get.cc:1031
 -#: cmdline/apt-get.cc:1030
++#: cmdline/apt-get.cc:1045
  #, c-format
  msgid "Note, selecting %s instead of %s\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1041
 -#: cmdline/apt-get.cc:1040
++#: cmdline/apt-get.cc:1055
  #, c-format
  msgid "Skipping %s, it is already installed and upgrade is not set.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1059
 -#: cmdline/apt-get.cc:1058
++#: cmdline/apt-get.cc:1073
  #, c-format
  msgid "Package %s is not installed, so not removed\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1070
 -#: cmdline/apt-get.cc:1069
++#: cmdline/apt-get.cc:1084
  #, c-format
  msgid "Package %s is a virtual package provided by:\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1082
 -#: cmdline/apt-get.cc:1081
++#: cmdline/apt-get.cc:1096
  msgid " [Installed]"
  msgstr ""
  
- #: cmdline/apt-get.cc:1087
 -#: cmdline/apt-get.cc:1086
++#: cmdline/apt-get.cc:1101
  msgid "You should explicitly select one to install."
  msgstr ""
  
- #: cmdline/apt-get.cc:1092
 -#: cmdline/apt-get.cc:1091
++#: cmdline/apt-get.cc:1106
  #, c-format
  msgid ""
  "Package %s is not available, but is referred to by another package.\n"
  "is only available from another source\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1111
 -#: cmdline/apt-get.cc:1110
++#: cmdline/apt-get.cc:1125
  msgid "However the following packages replace it:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1114
 -#: cmdline/apt-get.cc:1113
++#: cmdline/apt-get.cc:1128
  #, c-format
  msgid "Package %s has no installation candidate"
  msgstr ""
  
- #: cmdline/apt-get.cc:1134
 -#: cmdline/apt-get.cc:1133
++#: cmdline/apt-get.cc:1148
  #, c-format
  msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1142
 -#: cmdline/apt-get.cc:1141
++#: cmdline/apt-get.cc:1156
  #, c-format
  msgid "%s is already the newest version.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1171
 -#: cmdline/apt-get.cc:1168
++#: cmdline/apt-get.cc:1185
  #, c-format
  msgid "Release '%s' for '%s' was not found"
  msgstr ""
  
- #: cmdline/apt-get.cc:1173
 -#: cmdline/apt-get.cc:1170
++#: cmdline/apt-get.cc:1187
  #, c-format
  msgid "Version '%s' for '%s' was not found"
  msgstr ""
  
- #: cmdline/apt-get.cc:1179
 -#: cmdline/apt-get.cc:1176
++#: cmdline/apt-get.cc:1193
  #, c-format
  msgid "Selected version %s (%s) for %s\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1316
 -#: cmdline/apt-get.cc:1313
++#: cmdline/apt-get.cc:1330
  msgid "The update command takes no arguments"
  msgstr ""
  
- #: cmdline/apt-get.cc:1329
 -#: cmdline/apt-get.cc:1326
++#: cmdline/apt-get.cc:1343
  msgid "Unable to lock the list directory"
  msgstr ""
  
- #: cmdline/apt-get.cc:1396 cmdline/apt-get.cc:1398
 -#: cmdline/apt-get.cc:1384
++#: cmdline/apt-get.cc:1410 cmdline/apt-get.cc:1412
  msgid ""
  "Some index files failed to download, they have been ignored, or old ones "
  "used instead."
  msgstr ""
  
- #: cmdline/apt-get.cc:1412
 -#: cmdline/apt-get.cc:1403
++#: cmdline/apt-get.cc:1433
 +msgid "We are not supposed to delete stuff, can't start AutoRemover"
 +msgstr ""
 +
- #: cmdline/apt-get.cc:1437
++#: cmdline/apt-get.cc:1460
++msgid ""
++"The following packages were automatically installed and are no longer "
++"required:"
++msgstr ""
++
++#: cmdline/apt-get.cc:1462
++msgid "Use 'apt-get autoremove' to remove them."
++msgstr ""
++
++#: cmdline/apt-get.cc:1467
 +msgid ""
 +"Hmm, seems like the AutoRemover destroyed something which really\n"
 +"shouldn't happen. Please file a bug report against apt."
 +msgstr ""
 +
- #: cmdline/apt-get.cc:1440 cmdline/apt-get.cc:1642
++#: cmdline/apt-get.cc:1470 cmdline/apt-get.cc:1731
 +msgid "The following information may help to resolve the situation:"
 +msgstr ""
 +
- #: cmdline/apt-get.cc:1444
++#: cmdline/apt-get.cc:1474
 +msgid "Internal Error, AutoRemover broke stuff"
 +msgstr ""
 +
- #: cmdline/apt-get.cc:1463
++#: cmdline/apt-get.cc:1493
  msgid "Internal error, AllUpgrade broke stuff"
  msgstr ""
  
- #: cmdline/apt-get.cc:1561 cmdline/apt-get.cc:1597
 -#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529
++#: cmdline/apt-get.cc:1538
++#, c-format
++msgid "Couldn't find task %s"
++msgstr ""
++
++#: cmdline/apt-get.cc:1649 cmdline/apt-get.cc:1685
  #, c-format
  msgid "Couldn't find package %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:1584
 -#: cmdline/apt-get.cc:1516
++#: cmdline/apt-get.cc:1672
  #, c-format
  msgid "Note, selecting %s for regex '%s'\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1614
 -#: cmdline/apt-get.cc:1546
++#: cmdline/apt-get.cc:1703
  msgid "You might want to run `apt-get -f install' to correct these:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1617
 -#: cmdline/apt-get.cc:1549
++#: cmdline/apt-get.cc:1706
  msgid ""
  "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
  "solution)."
  msgstr ""
  
- #: cmdline/apt-get.cc:1629
 -#: cmdline/apt-get.cc:1561
++#: cmdline/apt-get.cc:1718
  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:1637
 -#: cmdline/apt-get.cc:1569
++#: cmdline/apt-get.cc:1726
  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:1645
 -#: cmdline/apt-get.cc:1574
 -msgid "The following information may help to resolve the situation:"
 -msgstr ""
 -
 -#: cmdline/apt-get.cc:1577
++#: cmdline/apt-get.cc:1734
  msgid "Broken packages"
  msgstr ""
  
- #: cmdline/apt-get.cc:1676
 -#: cmdline/apt-get.cc:1603
++#: cmdline/apt-get.cc:1763
  msgid "The following extra packages will be installed:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1765
 -#: cmdline/apt-get.cc:1692
++#: cmdline/apt-get.cc:1852
  msgid "Suggested packages:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1766
 -#: cmdline/apt-get.cc:1693
++#: cmdline/apt-get.cc:1853
  msgid "Recommended packages:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1786
 -#: cmdline/apt-get.cc:1713
++#: cmdline/apt-get.cc:1873
  msgid "Calculating upgrade... "
  msgstr ""
  
- #: cmdline/apt-get.cc:1789 methods/ftp.cc:702 methods/connect.cc:101
 -#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:100
++#: cmdline/apt-get.cc:1876 methods/ftp.cc:702 methods/connect.cc:100
  msgid "Failed"
  msgstr ""
  
- #: cmdline/apt-get.cc:1794
 -#: cmdline/apt-get.cc:1721
++#: cmdline/apt-get.cc:1881
  msgid "Done"
  msgstr ""
  
- #: cmdline/apt-get.cc:1861 cmdline/apt-get.cc:1869
 -#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794
++#: cmdline/apt-get.cc:1948 cmdline/apt-get.cc:1956
  msgid "Internal error, problem resolver broke stuff"
  msgstr ""
  
- #: cmdline/apt-get.cc:1969
 -#: cmdline/apt-get.cc:1894
++#: cmdline/apt-get.cc:2056
  msgid "Must specify at least one package to fetch source for"
  msgstr ""
  
- #: cmdline/apt-get.cc:1999 cmdline/apt-get.cc:2228
 -#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153
++#: cmdline/apt-get.cc:2086 cmdline/apt-get.cc:2315
  #, c-format
  msgid "Unable to find a source package for %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:2043
 -#: cmdline/apt-get.cc:1968
++#: cmdline/apt-get.cc:2130
  #, c-format
  msgid "Skipping already downloaded file '%s'\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2067
 -#: cmdline/apt-get.cc:1992
++#: cmdline/apt-get.cc:2154
  #, c-format
  msgid "You don't have enough free space in %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:2072
 -#: cmdline/apt-get.cc:1997
++#: cmdline/apt-get.cc:2159
  #, c-format
  msgid "Need to get %sB/%sB of source archives.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2075
 -#: cmdline/apt-get.cc:2000
++#: cmdline/apt-get.cc:2162
  #, c-format
  msgid "Need to get %sB of source archives.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2081
 -#: cmdline/apt-get.cc:2006
++#: cmdline/apt-get.cc:2168
  #, c-format
  msgid "Fetch source %s\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2112
 -#: cmdline/apt-get.cc:2037
++#: cmdline/apt-get.cc:2199
  msgid "Failed to fetch some archives."
  msgstr ""
  
- #: cmdline/apt-get.cc:2140
 -#: cmdline/apt-get.cc:2065
++#: cmdline/apt-get.cc:2227
  #, c-format
  msgid "Skipping unpack of already unpacked source in %s\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2152
 -#: cmdline/apt-get.cc:2077
++#: cmdline/apt-get.cc:2239
  #, c-format
  msgid "Unpack command '%s' failed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2153
 -#: cmdline/apt-get.cc:2078
++#: cmdline/apt-get.cc:2240
  #, c-format
  msgid "Check if the 'dpkg-dev' package is installed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2170
 -#: cmdline/apt-get.cc:2095
++#: cmdline/apt-get.cc:2257
  #, c-format
  msgid "Build command '%s' failed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2189
 -#: cmdline/apt-get.cc:2114
++#: cmdline/apt-get.cc:2276
  msgid "Child process failed"
  msgstr ""
  
- #: cmdline/apt-get.cc:2205
 -#: cmdline/apt-get.cc:2130
++#: cmdline/apt-get.cc:2292
  msgid "Must specify at least one package to check builddeps for"
  msgstr ""
  
- #: cmdline/apt-get.cc:2233
 -#: cmdline/apt-get.cc:2158
++#: cmdline/apt-get.cc:2320
  #, c-format
  msgid "Unable to get build-dependency information for %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:2253
 -#: cmdline/apt-get.cc:2178
++#: cmdline/apt-get.cc:2340
  #, c-format
  msgid "%s has no build depends.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2305
 -#: cmdline/apt-get.cc:2230
++#: cmdline/apt-get.cc:2392
  #, c-format
  msgid ""
  "%s dependency for %s cannot be satisfied because the package %s cannot be "
  "found"
  msgstr ""
  
- #: cmdline/apt-get.cc:2357
 -#: cmdline/apt-get.cc:2282
++#: cmdline/apt-get.cc:2444
  #, 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:2392
 -#: cmdline/apt-get.cc:2317
++#: cmdline/apt-get.cc:2479
  #, c-format
  msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
  msgstr ""
  
- #: cmdline/apt-get.cc:2417
 -#: cmdline/apt-get.cc:2342
++#: cmdline/apt-get.cc:2504
  #, c-format
  msgid "Failed to satisfy %s dependency for %s: %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:2431
 -#: cmdline/apt-get.cc:2356
++#: cmdline/apt-get.cc:2518
  #, c-format
  msgid "Build-dependencies for %s could not be satisfied."
  msgstr ""
  
- #: cmdline/apt-get.cc:2435
 -#: cmdline/apt-get.cc:2360
++#: cmdline/apt-get.cc:2522
  msgid "Failed to process build dependencies"
  msgstr ""
  
- #: cmdline/apt-get.cc:2467
 -#: cmdline/apt-get.cc:2392
++#: cmdline/apt-get.cc:2554
  msgid "Supported modules:"
  msgstr ""
  
- #: cmdline/apt-get.cc:2508
 -#: cmdline/apt-get.cc:2433
++#: cmdline/apt-get.cc:2595
  msgid ""
  "Usage: apt-get [options] command\n"
  "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
@@@ -1345,7 -1330,7 +1367,7 @@@ msgstr "
  
  #: apt-inst/extract.cc:467 apt-pkg/contrib/configuration.cc:750
  #: apt-pkg/contrib/cdromutl.cc:153 apt-pkg/sourcelist.cc:324
- #: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38
+ #: apt-pkg/acquire.cc:421 apt-pkg/clean.cc:38 methods/mirror.cc:82
  #, c-format
  msgid "Unable to read %s"
  msgstr ""
@@@ -1375,11 -1360,9 +1397,9 @@@ msgid "The info and temp directories ne
  msgstr ""
  
  #. Build the status cache
- #: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:647
- #: apt-pkg/pkgcachegen.cc:716 apt-pkg/pkgcachegen.cc:721
- #: apt-pkg/pkgcachegen.cc:844 apt-pkg/pkgcachegen.cc:752
 -#: 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:752
 +#: apt-pkg/pkgcachegen.cc:821 apt-pkg/pkgcachegen.cc:826
 +#: apt-pkg/pkgcachegen.cc:949
  msgid "Reading package lists"
  msgstr ""
  
@@@ -1507,13 -1490,12 +1527,12 @@@ msgstr "
  msgid "File not found"
  msgstr ""
  
- #: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:133
- #: methods/gzip.cc:142 methods/gzip.cc:134 methods/gzip.cc:143
+ #: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141
+ #: methods/gzip.cc:150
  msgid "Failed to stat"
  msgstr ""
  
- #: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:139
- #: methods/gzip.cc:140
+ #: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147
  msgid "Failed to set modification time"
  msgstr ""
  
@@@ -1639,7 -1621,7 +1658,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:960 methods/rsh.cc:303
++#: methods/ftp.cc:864 methods/http.cc:961 methods/rsh.cc:303
  msgid "Problem hashing file"
  msgstr ""
  
@@@ -1666,39 -1648,39 +1685,39 @@@ msgstr "
  msgid "Unable to invoke "
  msgstr ""
  
- #: methods/connect.cc:64
+ #: methods/connect.cc:65
  #, c-format
  msgid "Connecting to %s (%s)"
  msgstr ""
  
- #: methods/connect.cc:71
+ #: methods/connect.cc:72
  #, c-format
  msgid "[IP: %s %s]"
  msgstr ""
  
- #: methods/connect.cc:80
+ #: methods/connect.cc:79
  #, c-format
  msgid "Could not create a socket for %s (f=%u t=%u p=%u)"
  msgstr ""
  
- #: methods/connect.cc:86
+ #: methods/connect.cc:85
  #, c-format
  msgid "Cannot initiate the connection to %s:%s (%s)."
  msgstr ""
  
- #: methods/connect.cc:93
+ #: methods/connect.cc:92
  #, c-format
  msgid "Could not connect to %s:%s (%s), connection timed out"
  msgstr ""
  
- #: methods/connect.cc:108
+ #: methods/connect.cc:107
  #, 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:136 methods/rsh.cc:425
+ #: methods/connect.cc:135 methods/rsh.cc:425
  #, c-format
  msgid "Connecting to %s"
  msgstr ""
@@@ -1760,86 -1742,86 +1779,86 @@@ msgid "
  "available:\n"
  msgstr ""
  
- #: methods/gzip.cc:57
+ #: methods/gzip.cc:64
  #, c-format
  msgid "Couldn't open pipe for %s"
  msgstr ""
  
- #: methods/gzip.cc:102
+ #: methods/gzip.cc:109
  #, c-format
  msgid "Read error from %s process"
  msgstr ""
  
 -#: methods/http.cc:375
 +#: methods/http.cc:376
  msgid "Waiting for headers"
  msgstr ""
  
 -#: methods/http.cc:521
 +#: methods/http.cc:522
  #, c-format
  msgid "Got a single header line over %u chars"
  msgstr ""
  
 -#: methods/http.cc:529
 +#: methods/http.cc:530
  msgid "Bad header line"
  msgstr ""
  
 -#: methods/http.cc:548 methods/http.cc:555
 +#: methods/http.cc:549 methods/http.cc:556
  msgid "The HTTP server sent an invalid reply header"
  msgstr ""
  
 -#: methods/http.cc:584
 +#: methods/http.cc:585
  msgid "The HTTP server sent an invalid Content-Length header"
  msgstr ""
  
 -#: methods/http.cc:599
 +#: methods/http.cc:600
  msgid "The HTTP server sent an invalid Content-Range header"
  msgstr ""
  
 -#: methods/http.cc:601
 +#: methods/http.cc:602
  msgid "This HTTP server has broken range support"
  msgstr ""
  
 -#: methods/http.cc:625
 +#: methods/http.cc:626
  msgid "Unknown date format"
  msgstr ""
  
 -#: methods/http.cc:772
 +#: methods/http.cc:773
  msgid "Select failed"
  msgstr ""
  
 -#: methods/http.cc:777
 +#: methods/http.cc:778
  msgid "Connection timed out"
  msgstr ""
  
 -#: methods/http.cc:800
 +#: methods/http.cc:801
  msgid "Error writing to output file"
  msgstr ""
  
 -#: methods/http.cc:831
 +#: methods/http.cc:832
  msgid "Error writing to file"
  msgstr ""
  
 -#: methods/http.cc:859
 +#: methods/http.cc:860
  msgid "Error writing to the file"
  msgstr ""
  
 -#: methods/http.cc:873
 +#: methods/http.cc:874
  msgid "Error reading from server. Remote end closed connection"
  msgstr ""
  
 -#: methods/http.cc:875
 +#: methods/http.cc:876
  msgid "Error reading from server"
  msgstr ""
  
- #: methods/http.cc:1107
 -#: methods/http.cc:1109
++#: methods/http.cc:1110
  msgid "Bad header data"
  msgstr ""
  
- #: methods/http.cc:1124
 -#: methods/http.cc:1126
++#: methods/http.cc:1127
  msgid "Connection failed"
  msgstr ""
  
- #: methods/http.cc:1215
 -#: methods/http.cc:1217
++#: methods/http.cc:1218
  msgid "Internal error"
  msgstr ""
  
@@@ -1852,7 -1834,7 +1871,7 @@@ msgstr "
  msgid "Couldn't make mmap of %lu bytes"
  msgstr ""
  
- #: apt-pkg/contrib/strutl.cc:938 apt-pkg/contrib/strutl.cc:981
 -#: apt-pkg/contrib/strutl.cc:938
++#: apt-pkg/contrib/strutl.cc:981
  #, c-format
  msgid "Selection %s not found"
  msgstr ""
@@@ -1912,12 -1894,12 +1931,12 @@@ msgstr "
  msgid "Syntax error %s:%u: Extra junk at end of file"
  msgstr ""
  
--#: apt-pkg/contrib/progress.cc:154
++#: apt-pkg/contrib/progress.cc:155
  #, c-format
  msgid "%c%s... Error!"
  msgstr ""
  
--#: apt-pkg/contrib/progress.cc:156
++#: apt-pkg/contrib/progress.cc:157
  #, c-format
  msgid "%c%s... Done"
  msgstr ""
@@@ -1974,6 -1956,7 +1993,7 @@@ msgid "Unable to stat the mount point %
  msgstr ""
  
  #: apt-pkg/contrib/cdromutl.cc:149 apt-pkg/acquire.cc:427 apt-pkg/clean.cc:44
+ #: methods/mirror.cc:88
  #, c-format
  msgid "Unable to change to %s"
  msgstr ""
@@@ -2049,107 -2032,93 +2069,111 @@@ msgstr "
  msgid "Problem syncing the file"
  msgstr ""
  
- #: apt-pkg/pkgcache.cc:126 apt-pkg/pkgcache.cc:137
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: apt-pkg/pkgcache.cc:218
++#: apt-pkg/pkgcache.cc:229
  msgid "Depends"
  msgstr ""
  
- #: apt-pkg/pkgcache.cc:218 apt-pkg/pkgcache.cc:229
 -#: apt-pkg/pkgcache.cc:218
++#: apt-pkg/pkgcache.cc:229
  msgid "PreDepends"
  msgstr ""
  
- #: apt-pkg/pkgcache.cc:218 apt-pkg/pkgcache.cc:229
 -#: apt-pkg/pkgcache.cc:218
++#: apt-pkg/pkgcache.cc:229
  msgid "Suggests"
  msgstr ""
  
- #: apt-pkg/pkgcache.cc:219 apt-pkg/pkgcache.cc:230
 -#: apt-pkg/pkgcache.cc:219
++#: apt-pkg/pkgcache.cc:230
  msgid "Recommends"
  msgstr ""
  
- #: apt-pkg/pkgcache.cc:219 apt-pkg/pkgcache.cc:230
 -#: apt-pkg/pkgcache.cc:219
++#: apt-pkg/pkgcache.cc:230
  msgid "Conflicts"
  msgstr ""
  
- #: apt-pkg/pkgcache.cc:219 apt-pkg/pkgcache.cc:230
 -#: apt-pkg/pkgcache.cc:219
++#: apt-pkg/pkgcache.cc:230
  msgid "Replaces"
  msgstr ""
  
- #: apt-pkg/pkgcache.cc:220 apt-pkg/pkgcache.cc:231
 -#: apt-pkg/pkgcache.cc:220
++#: apt-pkg/pkgcache.cc:231
  msgid "Obsoletes"
  msgstr ""
  
- #: apt-pkg/pkgcache.cc:231 apt-pkg/pkgcache.cc:242
+ #: apt-pkg/pkgcache.cc:231
++msgid "Breaks"
++msgstr ""
++
++#: apt-pkg/pkgcache.cc:242
  msgid "important"
  msgstr ""
  
- #: apt-pkg/pkgcache.cc:231 apt-pkg/pkgcache.cc:242
 -#: apt-pkg/pkgcache.cc:231
++#: apt-pkg/pkgcache.cc:242
  msgid "required"
  msgstr ""
  
- #: apt-pkg/pkgcache.cc:231 apt-pkg/pkgcache.cc:242
 -#: apt-pkg/pkgcache.cc:231
++#: apt-pkg/pkgcache.cc:242
  msgid "standard"
  msgstr ""
  
- #: apt-pkg/pkgcache.cc:232 apt-pkg/pkgcache.cc:243
 -#: apt-pkg/pkgcache.cc:232
++#: apt-pkg/pkgcache.cc:243
  msgid "optional"
  msgstr ""
  
- #: apt-pkg/pkgcache.cc:232 apt-pkg/pkgcache.cc:243
 -#: apt-pkg/pkgcache.cc:232
++#: apt-pkg/pkgcache.cc:243
  msgid "extra"
  msgstr ""
  
 -#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90
 +#: apt-pkg/depcache.cc:101 apt-pkg/depcache.cc:130
  msgid "Building dependency tree"
  msgstr ""
  
 -#: apt-pkg/depcache.cc:62
 +#: apt-pkg/depcache.cc:102
  msgid "Candidate versions"
  msgstr ""
  
 -#: apt-pkg/depcache.cc:91
 +#: apt-pkg/depcache.cc:131
  msgid "Dependency generation"
  msgstr ""
  
- #: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92 apt-pkg/tagfile.cc:73
 +#: apt-pkg/depcache.cc:152 apt-pkg/depcache.cc:171 apt-pkg/depcache.cc:175
 +msgid "Reading state information"
 +msgstr ""
 +
 +#: apt-pkg/depcache.cc:199
 +#, c-format
 +msgid "Failed to open StateFile %s"
 +msgstr ""
 +
 +#: apt-pkg/depcache.cc:205
 +#, c-format
 +msgid "Failed to write temporary StateFile %s"
 +msgstr ""
 +
+ #: apt-pkg/tagfile.cc:106
  #, c-format
  msgid "Unable to parse package file %s (1)"
  msgstr ""
  
- #: apt-pkg/tagfile.cc:186 apt-pkg/tagfile.cc:160
+ #: apt-pkg/tagfile.cc:193
  #, c-format
  msgid "Unable to parse package file %s (2)"
  msgstr ""
@@@ -2184,7 -2153,7 +2208,7 @@@ msgstr "
  msgid "Opening %s"
  msgstr ""
  
- #: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 apt-pkg/cdrom.cc:450
 -#: 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 ""
@@@ -2217,19 -2186,19 +2241,19 @@@ msgstr "
  msgid "Index file type '%s' is not supported"
  msgstr ""
  
- #: apt-pkg/algorithms.cc:245 apt-pkg/algorithms.cc:248
 -#: apt-pkg/algorithms.cc:241
++#: apt-pkg/algorithms.cc:248
  #, c-format
  msgid ""
  "The package %s needs to be reinstalled, but I can't find an archive for it."
  msgstr ""
  
- #: apt-pkg/algorithms.cc:1075 apt-pkg/algorithms.cc:1096
 -#: apt-pkg/algorithms.cc:1059
++#: apt-pkg/algorithms.cc:1104
  msgid ""
  "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by "
  "held packages."
  msgstr ""
  
- #: apt-pkg/algorithms.cc:1077 apt-pkg/algorithms.cc:1098
 -#: apt-pkg/algorithms.cc:1061
++#: apt-pkg/algorithms.cc:1106
  msgid "Unable to correct problems, you have held broken packages."
  msgstr ""
  
@@@ -2265,17 -2234,17 +2289,17 @@@ msgstr "
  msgid "Method %s did not start correctly"
  msgstr ""
  
 -#: apt-pkg/acquire-worker.cc:377
 +#: apt-pkg/acquire-worker.cc:384
  #, c-format
  msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
  msgstr ""
  
- #: apt-pkg/init.cc:122 apt-pkg/init.cc:125
 -#: apt-pkg/init.cc:121
++#: apt-pkg/init.cc:126
  #, c-format
  msgid "Packaging system '%s' is not supported"
  msgstr ""
  
- #: apt-pkg/init.cc:138 apt-pkg/init.cc:141
 -#: apt-pkg/init.cc:137
++#: apt-pkg/init.cc:142
  msgid "Unable to determine a suitable packaging system type"
  msgstr ""
  
@@@ -2309,121 -2278,119 +2333,133 @@@ msgstr "
  msgid "No priority (or zero) specified for pin"
  msgstr ""
  
 -#: apt-pkg/pkgcachegen.cc:74
 +#: apt-pkg/pkgcachegen.cc:76
  msgid "Cache has an incompatible versioning system"
  msgstr ""
  
 -#: apt-pkg/pkgcachegen.cc:117
 +#: apt-pkg/pkgcachegen.cc:119
  #, c-format
  msgid "Error occurred while processing %s (NewPackage)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:131 apt-pkg/pkgcachegen.cc:134
 -#: apt-pkg/pkgcachegen.cc:129
++#: apt-pkg/pkgcachegen.cc:134
  #, c-format
  msgid "Error occurred while processing %s (UsePackage1)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:152 apt-pkg/pkgcachegen.cc:182
 -#: apt-pkg/pkgcachegen.cc:150
++#: apt-pkg/pkgcachegen.cc:157
++#, c-format
++msgid "Error occured while processing %s (NewFileDesc1)"
++msgstr ""
++
++#: apt-pkg/pkgcachegen.cc:182
  #, c-format
  msgid "Error occurred while processing %s (UsePackage2)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:156 apt-pkg/pkgcachegen.cc:186
 -#: apt-pkg/pkgcachegen.cc:154
++#: apt-pkg/pkgcachegen.cc:186
  #, c-format
  msgid "Error occurred while processing %s (NewFileVer1)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:186 apt-pkg/pkgcachegen.cc:217
 -#: apt-pkg/pkgcachegen.cc:184
++#: apt-pkg/pkgcachegen.cc:217
  #, c-format
  msgid "Error occurred while processing %s (NewVersion1)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:190 apt-pkg/pkgcachegen.cc:221
 -#: apt-pkg/pkgcachegen.cc:188
++#: apt-pkg/pkgcachegen.cc:221
  #, c-format
  msgid "Error occurred while processing %s (UsePackage3)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:194 apt-pkg/pkgcachegen.cc:225
 -#: apt-pkg/pkgcachegen.cc:192
++#: apt-pkg/pkgcachegen.cc:225
  #, c-format
  msgid "Error occurred while processing %s (NewVersion2)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:209 apt-pkg/pkgcachegen.cc:255
 -#: apt-pkg/pkgcachegen.cc:207
++#: apt-pkg/pkgcachegen.cc:249
++#, c-format
++msgid "Error occured while processing %s (NewFileDesc2)"
++msgstr ""
++
++#: apt-pkg/pkgcachegen.cc:255
  msgid "Wow, you exceeded the number of package names this APT is capable of."
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:212 apt-pkg/pkgcachegen.cc:258
 -#: apt-pkg/pkgcachegen.cc:210
++#: apt-pkg/pkgcachegen.cc:258
  msgid "Wow, you exceeded the number of versions this APT is capable of."
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:215 apt-pkg/pkgcachegen.cc:264
 -#: apt-pkg/pkgcachegen.cc:213
++#: apt-pkg/pkgcachegen.cc:261
++msgid "Wow, you exceeded the number of descriptions this APT is capable of."
++msgstr ""
++
++#: apt-pkg/pkgcachegen.cc:264
  msgid "Wow, you exceeded the number of dependencies this APT is capable of."
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:243 apt-pkg/pkgcachegen.cc:292
 -#: apt-pkg/pkgcachegen.cc:241
++#: apt-pkg/pkgcachegen.cc:292
  #, c-format
  msgid "Error occurred while processing %s (FindPkg)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:256 apt-pkg/pkgcachegen.cc:305
 -#: apt-pkg/pkgcachegen.cc:254
++#: apt-pkg/pkgcachegen.cc:305
  #, c-format
  msgid "Error occurred while processing %s (CollectFileProvides)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:262 apt-pkg/pkgcachegen.cc:311
 -#: apt-pkg/pkgcachegen.cc:260
++#: apt-pkg/pkgcachegen.cc:311
  #, c-format
  msgid "Package %s %s was not found while processing file dependencies"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:577 apt-pkg/pkgcachegen.cc:682
 -#: apt-pkg/pkgcachegen.cc:574
++#: apt-pkg/pkgcachegen.cc:682
  #, c-format
  msgid "Couldn't stat source package list %s"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:662 apt-pkg/pkgcachegen.cc:767
 -#: apt-pkg/pkgcachegen.cc:658
++#: apt-pkg/pkgcachegen.cc:767
  msgid "Collecting File Provides"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:789 apt-pkg/pkgcachegen.cc:796
 -#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792
 +#: apt-pkg/pkgcachegen.cc:894 apt-pkg/pkgcachegen.cc:901
  msgid "IO Error saving source cache"
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:126
+ #: apt-pkg/acquire-item.cc:134
  #, c-format
  msgid "rename failed, %s (%s -> %s)."
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:951
- #: apt-pkg/acquire-item.cc:980
 -#: apt-pkg/acquire-item.cc:286 apt-pkg/acquire-item.cc:997
++#: apt-pkg/acquire-item.cc:286 apt-pkg/acquire-item.cc:1032
  msgid "MD5Sum mismatch"
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:646 apt-pkg/acquire-item.cc:675
- msgid "There are no public key available for the following key IDs:\n"
 -#: apt-pkg/acquire-item.cc:691
++#: apt-pkg/acquire-item.cc:726
+ msgid "There is no public key available for the following key IDs:\n"
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:759 apt-pkg/acquire-item.cc:788
 -#: apt-pkg/acquire-item.cc:805
++#: apt-pkg/acquire-item.cc:840
  #, 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:818 apt-pkg/acquire-item.cc:847
 -#: apt-pkg/acquire-item.cc:864
++#: apt-pkg/acquire-item.cc:899
  #, 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:854 apt-pkg/acquire-item.cc:883
 -#: apt-pkg/acquire-item.cc:900
++#: apt-pkg/acquire-item.cc:935
  #, c-format
  msgid ""
  "The package index files are corrupted. No Filename: field for package %s."
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:941 apt-pkg/acquire-item.cc:970
 -#: apt-pkg/acquire-item.cc:987
++#: apt-pkg/acquire-item.cc:1022
  msgid "Size mismatch"
  msgstr ""
  
  msgid "Vendor block %s contains no fingerprint"
  msgstr ""
  
- #: apt-pkg/cdrom.cc:507 apt-pkg/cdrom.cc:531
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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
 -#: 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 ""
@@@ -2576,28 -2542,3 +2613,3 @@@ msgstr "
  #: methods/rsh.cc:330
  msgid "Connection closed prematurely"
  msgstr ""
- #: apt-pkg/pkgcache.cc:231
- msgid "Breaks"
- msgstr ""
- #: apt-pkg/pkgcachegen.cc:157
- #, c-format
- msgid "Error occured while processing %s (NewFileDesc1)"
- msgstr ""
- #: apt-pkg/pkgcachegen.cc:249
- #, c-format
- msgid "Error occured while processing %s (NewFileDesc2)"
- msgstr ""
- #: apt-pkg/pkgcachegen.cc:261
- msgid "Wow, you exceeded the number of descriptions this APT is capable of."
- msgstr ""
- #: apt-pkg/cdrom.cc:673
- #, c-format
- msgid ""
- "Found %i package indexes, %i source indexes, %i translation indexes and %i "
- "signatures\n"
- msgstr ""