]> git.saurik.com Git - apt.git/commitdiff
* merged with apt--mvo
authorMichael Vogt <michael.vogt@ubuntu.com>
Thu, 14 Dec 2006 11:07:24 +0000 (12:07 +0100)
committerMichael Vogt <michael.vogt@ubuntu.com>
Thu, 14 Dec 2006 11:07:24 +0000 (12:07 +0100)
1  2 
apt-pkg/acquire-item.cc
apt-pkg/deb/dpkgpm.cc
apt-pkg/tagfile.cc
debian/changelog
debian/rules
doc/examples/configure-index
methods/http.cc

diff --combined apt-pkg/acquire-item.cc
index 2ecb7781481f874fbfedca327b16d7bd653025d0,8ec4ba2c0b6c2b4d5fb229201e6b7e61a004d024..94288a1321a3b5306a70bb6ceded729a1ce5e9f4
@@@ -75,7 -75,7 +75,7 @@@ void pkgAcquire::Item::Failed(string Me
         Dequeue();
         return;
        }
 -      
 +
        Status = StatError;
        Dequeue();
     }   
@@@ -308,35 -308,6 +308,35 @@@ void pkgAcqIndex::Done(string Message,u
     Mode = decompProg;
  }
  
 +// AcqIndexTrans::pkgAcqIndexTrans - Constructor                      /*{{{*/
 +// ---------------------------------------------------------------------
 +/* The Translation file is added to the queue */
 +pkgAcqIndexTrans::pkgAcqIndexTrans(pkgAcquire *Owner,
 +                          string URI,string URIDesc,string ShortDesc) :
 +                      pkgAcqIndex(Owner, URI, URIDesc, ShortDesc, "", "")
 +{
 +}
 +
 +                                                                      /*}}}*/
 +// AcqIndexTrans::Failed - Silence failure messages for missing files /*{{{*/
 +// ---------------------------------------------------------------------
 +/* */
 +void pkgAcqIndexTrans::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
 +{
 +   if (Cnf->LocalOnly == true || 
 +       StringToBool(LookupTag(Message,"Transient-Failure"),false) == false)
 +   {      
 +      // Ignore this
 +      Status = StatDone;
 +      Complete = false;
 +      Dequeue();
 +      return;
 +   }
 +   
 +   Item::Failed(Message,Cnf);
 +}
 +                                                                      /*}}}*/
 +
  pkgAcqMetaSig::pkgAcqMetaSig(pkgAcquire *Owner,
                             string URI,string URIDesc,string ShortDesc,
                             string MetaIndexURI, string MetaIndexURIDesc,
     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 -389,17 +419,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
@@@ -672,7 -637,7 +672,7 @@@ bool pkgAcqMetaIndex::VerifyVendor(stri
     // check for missing sigs (that where not fatal because otherwise we had
     // bombed earlier)
     string missingkeys;
-    string msg = _("There are no public key available for the "
+    string msg = _("There is no public key available for the "
                  "following key IDs:\n");
     pos = Message.find("NO_PUBKEY ");
     if (pos != std::string::npos)
diff --combined apt-pkg/deb/dpkgpm.cc
index 93dff390d83c4fd37bf189c09e46c54757ede2a4,3204fc1bb22502d82c8dd97347244457fb9939f4..cebdafe7deecba82237eae18a8bb9ea2d5838ff0
@@@ -355,28 -355,28 +355,28 @@@ bool pkgDPkgPM::Go(int OutStatusFd
     static const struct DpkgState DpkgStatesOpMap[][5] = {
        // Install operation
        { 
-        {"half-installed", _("Preparing %s")}, 
-        {"unpacked", _("Unpacking %s") }, 
+        {"half-installed", N_("Preparing %s")}, 
+        {"unpacked", N_("Unpacking %s") }, 
         {NULL, NULL}
        },
        // Configure operation
        { 
-        {"unpacked",_("Preparing to configure %s") },
-        {"half-configured", _("Configuring %s") },
-        { "installed", _("Installed %s")},
+        {"unpacked",N_("Preparing to configure %s") },
+        {"half-configured", N_("Configuring %s") },
+        { "installed", N_("Installed %s")},
         {NULL, NULL}
        },
        // Remove operation
        { 
-        {"half-configured", _("Preparing for removal of %s")},
-        {"half-installed", _("Removing %s")},
-        {"config-files",  _("Removed %s")},
+        {"half-configured", N_("Preparing for removal of %s")},
+        {"half-installed", N_("Removing %s")},
+        {"config-files",  N_("Removed %s")},
         {NULL, NULL}
        },
        // Purge operation
        { 
-        {"config-files", _("Preparing to completely remove %s")},
-        {"not-installed", _("Completely removed %s")},
+        {"config-files", N_("Preparing to completely remove %s")},
+        {"not-installed", N_("Completely removed %s")},
         {NULL, NULL}
        },
     };
         case Item::Install:
         Args[n++] = "--unpack";
         Size += strlen(Args[n-1]);
 +       Args[n++] = "--auto-deconfigure";
 +       Size += strlen(Args[n-1]);
         break;
        }
        
            
         */
         char* list[5];
-        if(!TokSplitString(':', line, list, sizeof(list)/sizeof(list[0])))
-           // FIXME: dpkg sends multiline error messages sometimes (see
-           //        #374195 for a example. we should support this by
-           //        either patching dpkg to not send multiline over the
-           //        statusfd or by rewriting the code here to deal with
-           //        it. for now we just ignore it and not crash
-           continue;
+        //        dpkg sends multiline error messages sometimes (see
+        //        #374195 for a example. we should support this by
+        //        either patching dpkg to not send multiline over the
+        //        statusfd or by rewriting the code here to deal with
+        //        it. for now we just ignore it and not crash
+        TokSplitString(':', line, list, sizeof(list)/sizeof(list[0]));
         char *pkg = list[1];
         char *action = _strstrip(list[2]);
+        if( pkg == NULL || action == NULL) 
+        {
+           if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
+              std::clog << "ignoring line: not enough ':'" << std::endl;
+           // reset the line buffer
+           line[0]=0;
+           continue;
+        }
  
         if(strncmp(action,"error",strlen("error")) == 0)
         {
         {
            // only read the translation if there is actually a next
            // action
-           const char *translation = states[PackageOpsDone[pkg]].str;
+           const char *translation = _(states[PackageOpsDone[pkg]].str);
            char s[200];
            snprintf(s, sizeof(s), translation, pkg);
  
        // Check for an error code.
        if (WIFEXITED(Status) == 0 || WEXITSTATUS(Status) != 0)
        {
-        RunScripts("DPkg::Post-Invoke");
-        if (WIFSIGNALED(Status) != 0 && WTERMSIG(Status) == SIGSEGV)
-           return _error->Error("Sub-process %s received a segmentation fault.",Args[0]);
-        if (WIFEXITED(Status) != 0)
-           return _error->Error("Sub-process %s returned an error code (%u)",Args[0],WEXITSTATUS(Status));
+        // if it was set to "keep-dpkg-runing" then we won't return
+        // here but keep the loop going and just report it as a error
+        // for later
+        bool stopOnError = _config->FindB("Dpkg::StopOnError",true);
         
-        return _error->Error("Sub-process %s exited unexpectedly",Args[0]);
+        if(stopOnError)
+           RunScripts("DPkg::Post-Invoke");
+        if (WIFSIGNALED(Status) != 0 && WTERMSIG(Status) == SIGSEGV) 
+           _error->Error("Sub-process %s received a segmentation fault.",Args[0]);
+        else if (WIFEXITED(Status) != 0)
+           _error->Error("Sub-process %s returned an error code (%u)",Args[0],WEXITSTATUS(Status));
+        else 
+           _error->Error("Sub-process %s exited unexpectedly",Args[0]);
+        if(stopOnError)
+           return false;
        }      
     }
  
diff --combined apt-pkg/tagfile.cc
index 14682956654273124b333b9d9fea203c8324dc57,223618cd19083be23fbfa45b31d14a6ca692c150..649c93aeede7100e449f34caef2c1a3c8a5da429
@@@ -33,33 -33,22 +33,22 @@@ using std::string
  /* */
  pkgTagFile::pkgTagFile(FileFd *pFd,unsigned long Size) :
       Fd(*pFd),
-      Size(Size),
-      Map(NULL),
-      Buffer(0)
+      Size(Size)
  {
     if (Fd.IsOpen() == false)
     {
+       Buffer = 0;
        Start = End = Buffer = 0;
        Done = true;
        iOffset = 0;
-       Map = NULL;
        return;
     }
     
-    // check if we can MMap it
-    if(Fd.Size() == 0)
-    {
-       Buffer = new char[Size];
-       Start = End = Buffer;
-       Done = false;
-       Fill();
-    } else {
-       Map = new MMap (Fd, MMap::Public | MMap::ReadOnly);
-       Buffer = (char *) Map->Data ();
-       Start = Buffer;
-       End = Buffer + Map->Size ();
-    }
+    Buffer = new char[Size];
+    Start = End = Buffer;
+    Done = false;
     iOffset = 0;
+    Fill();
  }
                                                                        /*}}}*/
  // TagFile::~pkgTagFile - Destructor                                  /*{{{*/
  /* */
  pkgTagFile::~pkgTagFile()
  {
-    if(!Map) delete [] Buffer;
-    delete Map;
+    delete [] Buffer;
  }
                                                                        /*}}}*/
- // TagFile::Step - Advance to the next section                                /*{{{*/
+ // TagFile::Resize - Resize the internal buffer                               /*{{{*/
  // ---------------------------------------------------------------------
- /* If the Section Scanner fails we refill the buffer and try again. */
- bool pkgTagFile::Step(pkgTagSection &Tag)
+ /* Resize the internal buffer (double it in size). Fail if a maximum size
+  * size is reached.
+  */
+ bool pkgTagFile::Resize()
  {
-    if ((Map != NULL) && (Start == End))
+    char *tmp;
+    unsigned long EndSize = End - Start;
+    // fail is the buffer grows too big
+    if(Size > 1024*1024+1)
        return false;
  
-    if (Tag.Scan(Start,End - Start) == false)
-    {
-       if (Map != NULL)
-        return _error->Error(_("Unable to parse package file %s (1)"),
-                             Fd.Name().c_str());
+    // get new buffer and use it
+    tmp = new char[2*Size];
+    memcpy(tmp, Buffer, Size);
+    Size = Size*2;
+    delete [] Buffer;
+    Buffer = tmp;
  
+    // update the start/end pointers to the new buffer
+    Start = Buffer;
+    End = Start + EndSize;
+    return true;
+ }
+ // TagFile::Step - Advance to the next section                                /*{{{*/
+ // ---------------------------------------------------------------------
+ /* If the Section Scanner fails we refill the buffer and try again. 
+  * If that fails too, double the buffer size and try again until a
+  * maximum buffer is reached.
+  */
+ bool pkgTagFile::Step(pkgTagSection &Tag)
+ {
+    while (Tag.Scan(Start,End - Start) == false)
+    {
        if (Fill() == false)
         return false;
        
-       if (Tag.Scan(Start,End - Start) == false)
+       if(Tag.Scan(Start,End - Start))
+        break;
+       if (Resize() == false)
         return _error->Error(_("Unable to parse package file %s (1)"),
-                             Fd.Name().c_str());
+                                Fd.Name().c_str());
     }
     Start += Tag.size();
     iOffset += Tag.size();
@@@ -158,30 -172,23 +172,23 @@@ bool pkgTagFile::Jump(pkgTagSection &Ta
        return Step(Tag);
     }
  
+    // Reposition and reload..
     iOffset = Offset;
-    if (Map != NULL)
-    {
-       Start = Buffer + iOffset;
-    } 
-    else 
-    {
-       // Reposition and reload..
-       Done = false;
-       if (Fd.Seek(Offset) == false)
-        return false;
-       End = Start = Buffer;
+    Done = false;
+    if (Fd.Seek(Offset) == false)
+       return false;
+    End = Start = Buffer;
     
-       if (Fill() == false)
-        return false;
+    if (Fill() == false)
+       return false;
  
-       if (Tag.Scan(Start,End - Start) == true)
-        return true;
+    if (Tag.Scan(Start,End - Start) == true)
+       return true;
+    
+    // This appends a double new line (for the real eof handling)
+    if (Fill() == false)
+       return false;
     
-       // This appends a double new line (for the real eof handling)
-       if (Fill() == false)
-        return false;
-    }
     if (Tag.Scan(Start,End - Start) == false)
        return _error->Error(_("Unable to parse package file %s (2)"),Fd.Name().c_str());
     
  // ---------------------------------------------------------------------
  /* This looks for the first double new line in the data stream. It also
     indexes the tags in the section. This very simple hash function for the
-    first 3 letters gives very good performance on the debian package files */
+    last 8 letters gives very good performance on the debian package files */
  inline static unsigned long AlphaHash(const char *Text, const char *End = 0)
  {
     unsigned long Res = 0;
     for (; Text != End && *Text != ':' && *Text != 0; Text++)
-       Res = (unsigned long)(*Text) ^ (Res << 2);
+       Res = ((unsigned long)(*Text) & 0xDF) ^ (Res << 1);
     return Res & 0xFF;
  }
  
@@@ -207,7 -214,7 +214,7 @@@ bool pkgTagSection::Scan(const char *St
     Stop = Section = Start;
     memset(AlphaIndexes,0,sizeof(AlphaIndexes));
  
-    if (Stop == 0 || MaxLength == 0)
+    if (Stop == 0)
        return false;
     
     TagCount = 0;
        Stop++;
     }
  
-    if ((Stop+1 >= End) && (End[-1] == '\n' || End[-1] == '\r'))
-    {
-       Indexes[TagCount] = (End - 1) - Section;
-       return true;
-    }
     return false;
  }
                                                                        /*}}}*/
@@@ -422,7 -423,6 +423,7 @@@ static const char *iTFRewritePackageOrd
                            "Recommends",
                            "Suggests",
                            "Conflicts",
 +                          "Breaks",
                            "Conffiles",
                            "Filename",
                            "Size",
diff --combined debian/changelog
index 6e57e1bf8f40a8be7f1cdb71d5f984294592a0f7,ac13357ffc9cf5cd947d69b762236e98f7d7e365..254e603aa35576e925f59309362743254a7411cf
@@@ -1,58 -1,75 +1,75 @@@
- apt (0.6.46.3ubuntu2) feisty; urgency=low
+ apt (0.6.46.4) unstable; 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.45ubuntu6) edgy; urgency=low
-   * 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.
-  -- Ian Jackson <iwj@ubuntu.com>  Tue,  5 Sep 2006 19:50:02 +0100
- apt (0.6.45ubuntu6~iwj) unstable; urgency=low
-   * Initial draft of `Breaks' implementation.  Appears to compile,
-     but as yet *completely untested*.
-  -- Ian Jackson <ian@davenant.greenend.org.uk>  Fri, 25 Aug 2006 15:39:07 +0100
- 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
+   * added apt-secure.8 to "See also" section
    * 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
+     - 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 (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.46.3) unstable; urgency=low
  
- apt (0.6.45ubuntu2) edgy; urgency=low
+   * apt-pkg/deb/dpkgpm.cc:
+     - make progress reporting robust against multiline error
+       messages 
+   * Merged from Christian Perrier bzr branch:
+      - ca.po: Updated to 514t
+      - be.po: Updated to 514t
+      - it.po: Updated to 514t
+      - hu.po: Updated to 514t
+      - zh_TW.po: Updated to 514t
+      - ar.po: Updated to 293t221u.
+      - ru.po: Updated to 514t. Closes: #392466
+      - nb.po: Updated to 514t. Closes: #392466
+      - pt.po: Updated to 514t. Closes: #393199
+      - fr.po: One spelling error corrected: s/accèder/accéder
+      - km.po: Updated to 514t.
+      - ko.po: Updated to 514t.
+      - bg.po: Updated to 514t.
+      - de.po: Updated to 514t.
+      - en_GB.po: Updated to 514t.
+  -- Michael Vogt <mvo@debian.org>  Thu, 2 Nov 2006 11:37:58 +0100 
+ apt (0.6.46.2) unstable; urgency=low
+   * Merged from Christian Perrier bzr branch:
+     - es.po: Updated to 514t. Closes: #391661
+     - da.po: Updated to 514t. Closes: #391424
+     - cs.po: Updated. Closes: #391064
+     - es.po: Updated to 514t. Closes: #391661
+     - da.po: Updated to 514t. Closes: #391424
+   
+  -- Michael Vogt <mvo@debian.org>  Wed, 11 Oct 2006 09:03:15 +0200
+ apt (0.6.46.1) unstable; urgency=low
+   * methods/gzip.cc:
+     - deal with empty files 
+   * Applied patch from Daniel Schepler to make apt bin-NMU able.  
+     (closes: bug#359634)
+   * rebuild against current g++ because of:
+     http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29289
+     (closes: #390189)
+   * fix broken i18n in the dpkg progress reporting, thanks to 
+     Frans Pop and Steinar Gunderson. (closes: #389261)
+   * Merged from Christian Perrier bzr branch:
+     * fi.po: Updated to 514t. Closes: #390149
+     * eu.po: Updated to 514t. Closes: #389725
+     * vi.po: Updated to 514t. Closes: #388555
+   * make the internal buffer in pkgTagFile grow dynamically
+     (closes: #388708)
+   
+  -- Michael Vogt <mvo@debian.org>  Mon,  2 Oct 2006 20:42:20 +0200
+ apt (0.6.46) unstable; urgency=low
  
    * debian/control:
      - switched to libdb4.4 for building (closes: #381019)
        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
+   * methods/http.cc:
+     - check more careful for incorrect proxy settings (closes: #378868)
+   * methods/gzip.cc:
+     - don't hang when /var is full (closes: #341537), thanks to
+       Luis Rodrigo Gallardo Cruz for the patch
+   * doc/examples/sources.list:
+     - removed non-us.debian.org from the example (closes: #380030,#316196)
+   * Merged from Christian Perrier bzr branch:
+     * ro.po: Updated to 514t. Closes: #388402
+     * dz.po: Updated to 514t. Closes: #388184
+     * it.po: Fixed typos. Closes: #387812
+     * ku.po: New kurdish translation. Closes: #387766
+     * sk.po: Updated to 514t. Closes: #386851
+     * ja.po: Updated to 514t. Closes: #386537
+     * gl.po: Updated to 514t. Closes: #386397
+     * fr.po: Updated to 516t.
+     * fi.po: Updated to 512t. Closes: #382702
+   * share/archive-archive.gpg:
+     - removed the outdated amd64 and debian-2004 keys
+   * apt-pkg/tagfile.cc:
+     - applied patch from Jeroen van Wolffelaar to make the tags
+       caseinsensitive (closes: #384182)
+     - reverted MMap use in the tagfile because it does not work 
+       across pipes (closes: #383487) 
+   
+  -- Michael Vogt <mvo@debian.org>  Thu, 21 Sep 2006 10:25:03 +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)
@@@ -212,26 -212,6 +243,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:
@@@ -456,13 -357,13 +487,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
  
@@@ -701,7 -482,6 +732,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 333d4ad5b802fe935a26e768d2c3b36ccaf7592f,02ee734bb24c71580e82583cabb8bb7de755ed96..4e7490bed856734d35718a33b0e47f1abb8d4457
@@@ -38,7 -38,7 +38,7 @@@ build
  
  PKG=apt
  DEB_BUILD_PROG:=debuild --preserve-envvar PATH --preserve-envvar CCACHE_DIR -us -uc $(DEB_BUILD_PROG_OPTS)
- APT_DEBVER=$(shell dpkg-parsechangelog |sed -n -e '/^Version:/s/^Version: //p')
+ APT_DEBVER=$(shell dpkg-parsechangelog |sed -n -e '/^Version:/s/^Version: //p' -e 's/\+.*$$//')
  APT_CONFVER=$(shell sed -n -e 's/^AC_DEFINE_UNQUOTED(VERSION,"\(.*\)")/\1/p' configure.in)
  APT_CVSTAG=$(shell echo "$(APT_DEBVER)" | sed -e 's/^/v/' -e 's/\./_/g')
  
@@@ -210,15 -210,10 +210,15 @@@ apt: build debian/shlibs.loca
  
        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/$@
  
  #     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
 +
        dh_installexamples -p$@ $(BLD)/docs/examples/*
        dh_installman -p$@ 
        dh_installcron -p$@
@@@ -343,4 -338,4 +343,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 5b3c1a55c1496be45ca55860067a91da0606f26d,73e20aa435c7be50c4871cd7b7bf154e05c9640b..55edd77e5ddc9cc25bb3e95e62edcbf4fe0467bf
@@@ -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";
@@@ -245,6 -237,10 +245,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
@@@ -259,8 -255,8 +263,8 @@@ 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
diff --combined methods/http.cc
index 09dab81881469c48280f45833c3ecdbfe810ceca,c6623c46f09cf97fcb67b1123f49df29e5b979db..1833f41efdbaf692213e9a926719ab20d1f43832
@@@ -657,7 -657,7 +657,7 @@@ void HttpMethod::SendReq(FetchItem *Itm
        will glitch HTTP/1.0 proxies because they do not filter it out and 
        pass it on, HTTP/1.1 says the connection should default to keep alive
        and we expect the proxy to do this */
-    if (Proxy.empty() == true)
+    if (Proxy.empty() == true || Proxy.Host.empty())
        sprintf(Buf,"GET %s HTTP/1.1\r\nHost: %s\r\nConnection: keep-alive\r\n",
              QuoteString(Uri.Path,"~").c_str(),ProperHost.c_str());
     else
        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\r\n\r\n";
     
     if (Debug == true)
        cerr << Req << endl;