]> git.saurik.com Git - apt.git/commitdiff
* apt-inst/contrib/extracttar.cc:
authorMichael Vogt <michael.vogt@ubuntu.com>
Fri, 3 Aug 2007 10:18:12 +0000 (12:18 +0200)
committerMichael Vogt <michael.vogt@ubuntu.com>
Fri, 3 Aug 2007 10:18:12 +0000 (12:18 +0200)
  - fix fd leak for zero size files (thanks to Bill Broadley for
    reporting this bug)
* apt-pkg/acquire-item.cc:
  - remove zero size files on I-M-S hit
* methods/https.cc:
  - only send LastModified if we actually have one
  - send range request with if-range
  - delete failed downloads
* apt-pkg/deb/dpkgpm.{cc,h}:
  - merged dpkg-log branch, this lets you specify a
    Dir::Log::Terminal file to log dpkg output to
    (ABI break)
* merged apt--sha256 branch to fully support the new
  sha256 checksums in the Packages and Release files
  (ABI break)
* Applied patch from Aurelien Jarno <aurel32@debian.org> to fix wrong
  directory downloading on non-linux architectures (closes: #435597)
* Applied patch from Guillem Jover <guillem@debian.org> to use
* Applied patch from Guillem Jover <guillem@debian.org> to add
  support to add lzma support (closes: #408201)
* methods/makefile:
  - install lzma symlink method (for full lzma support)
* debian/control:
  - suggest "lzma"
* Simplified HttpMethod::Fetch on http.cc removing Tail variable;
* Fix pipeline handling on http.cc (closes: #413324)
* Fix building to properly support binNMUs. Thanks to Daniel Schepler
  <schepler@math.unipd.it> by the patch (closes: #359634)
* Fix example for Install-{Recommends,Suggests} options on
  configure-index example file. Thanks to Peter Eisentraut
  <peter_e@gmx.net> by the patch (closes: #432223)
* fixed compile errors with g++ 4.3 (thanks to
  Daniel Burrows, closes: #429378)
* fixes in the auto-mark code (thanks to Daniel
  Burrows)
* fix FTFBFS by changing build-depends to
  libcurl4-gnutls-dev (closes: #428363)
* cmdline/apt-get.cc:
  - fix InstallTask code when a pkgRecord ends
    with a single '\n' (thanks to Soren Hansen for reporting)
* merged from Christian Perrier:
      * vi.po: completed to 532t, again. Closes: #429899
      * gl.po: completed to 532t. Closes: #429506
      * vi.po: completed to 532t. Closes: #428672
      * Update all PO and the POT. Gives 514t14f4u for formerly
        complete translations
      * fr.po: completed to 532t
      * ku.po, uk.po, LINGUAS: reintegrate those translations
        which disappeared from the BZR repositories

16 files changed:
1  2 
apt-pkg/acquire-item.cc
apt-pkg/acquire-item.h
apt-pkg/acquire-method.cc
apt-pkg/acquire-method.h
apt-pkg/deb/dpkgpm.cc
apt-pkg/deb/dpkgpm.h
apt-pkg/init.cc
cmdline/apt-get.cc
cmdline/makefile
configure.in
debian/apt.dirs
debian/changelog
debian/control
debian/rules
doc/examples/configure-index
methods/makefile

index 3b683df63160f25270c3ee82dbcd13757203d770,f3784a58bc9d2e9dce1963b8d360fd3ed360378a..3e6262c96f72313680e8c52105bd27b3870671fd
@@@ -691,25 -637,15 +686,16 @@@ void pkgAcqIndex::Done(string Message,u
     {
        if (_config->FindB("Debug::pkgAcquire::Auth", false))
        {
-          std::cerr << std::endl << RealURI << ": Computed MD5: " << MD5;
-          std::cerr << "  Expected MD5: " << ExpectedMD5 << std::endl;
-       }
-       if (MD5.empty())
-       {
-          MD5Summation sum;
-          FileFd Fd(DestFile, FileFd::ReadOnly);
-          sum.AddFD(Fd.Fd(), Fd.Size());
-          Fd.Close();
-          MD5 = (string)sum.Result();
+          std::cerr << std::endl << RealURI << ": Computed Hash: " << Hash;
+          std::cerr << "  Expected Hash: " << ExpectedHash.toStr() << std::endl;
        }
  
-       if (!ExpectedMD5.empty() && MD5 != ExpectedMD5)
+       if (!ExpectedHash.empty() && ExpectedHash.toStr() != Hash)
        {
           Status = StatAuthError;
-          ErrorText = _("MD5Sum mismatch");
+          ErrorText = _("Hash Sum mismatch");
           Rename(DestFile,DestFile + ".FAILED");
 +       ReportMirrorFailure("HashChecksumFailure");
           return;
        }
        // Done, move it into position
@@@ -1114,12 -1055,12 +1105,12 @@@ void pkgAcqMetaIndex::QueueIndexes(boo
        
        // Queue Packages file (either diff or full packages files, depending
        // on the users option)
 -      if(_config->FindB("Acquire::PDiffs",true) == true) 
 +      if(_config->FindB("Acquire::PDiffs",false) == true) 
         new pkgAcqDiffIndex(Owner, (*Target)->URI, (*Target)->Description,
-                            (*Target)->ShortDesc, ExpectedIndexMD5);
+                            (*Target)->ShortDesc, ExpectedIndexHash);
        else 
         new pkgAcqIndex(Owner, (*Target)->URI, (*Target)->Description,
-                           (*Target)->ShortDesc, ExpectedIndexMD5);
+                           (*Target)->ShortDesc, ExpectedIndexHash);
     }
  }
  
index 233cbdda9b61c9ae7970e1e81cb94c97226a2d81,edd9102305ed2c3292027024a83f134d3aaf196e..802d8d1ffe1b08320e72f50bff5f299399817141
@@@ -554,7 -543,7 +555,8 @@@ class pkgAcqIndex : public pkgAcquire::
      *  (".bz2" is used if bzip2 is installed, ".gz" otherwise).
      */
     pkgAcqIndex(pkgAcquire *Owner,string URI,string URIDesc,
-              string ShortDesct, string ExpectedMD5, string compressExt="");
 -             string ShortDesc, HashString ExpectedHash, string compressExt="");
++             string ShortDesc, HashString ExpectedHash, 
++             string compressExt="");
  };
  
  /** \brief An acquire item that is responsible for fetching a
index dfadf800f5ec5e8fc276756b9a34bbd1a03aab71,bc29417f776e9d3b5db93b7d3fedf0229c2094e6..26f992bcff007dbae483dfc2bcd741c227990a63
@@@ -179,11 -176,14 +179,16 @@@ void pkgAcqMethod::URIDone(FetchResult 
                      TimeRFC1123(Res.LastModified).c_str());
  
     if (Res.MD5Sum.empty() == false)
+    {
        End += snprintf(End,sizeof(S)-50 - (End - S),"MD5-Hash: %s\n",Res.MD5Sum.c_str());
+       End += snprintf(End,sizeof(S)-50 - (End - S),"MD5Sum-Hash: %s\n",Res.MD5Sum.c_str());
+    }
     if (Res.SHA1Sum.empty() == false)
        End += snprintf(End,sizeof(S)-50 - (End - S),"SHA1-Hash: %s\n",Res.SHA1Sum.c_str());
+    if (Res.SHA256Sum.empty() == false)
+       End += snprintf(End,sizeof(S)-50 - (End - S),"SHA256-Hash: %s\n",Res.SHA256Sum.c_str());
 +   if (UsedMirror.empty() == false)
 +      End += snprintf(End,sizeof(S)-50 - (End - S),"UsedMirror: %s\n",UsedMirror.c_str());
     if (Res.GPGVOutput.size() > 0)
        End += snprintf(End,sizeof(S)-50 - (End - S),"GPGVOutput:\n");     
     for (vector<string>::iterator I = Res.GPGVOutput.begin();
Simple merge
index 3c367e42152824374cbedbb252287da0fd268908,aa840f85efccbf3000980af3224f7df3f021293b..befd9124c1de5817b2abe5f63014e71410e58acb
@@@ -325,7 -332,168 +333,170 @@@ bool pkgDPkgPM::RunScriptsWithPkgs(cons
  
     return true;
  }
+                                                                       /*}}}*/
+ // DPkgPM::DoStdin - Read stdin and pass to slave pty                 /*{{{*/
+ // ---------------------------------------------------------------------
+ /*
+ */
+ void pkgDPkgPM::DoStdin(int master)
+ {
+    char input_buf[256] = {0,}; 
+    int len = read(0, input_buf, sizeof(input_buf));
+    write(master, input_buf, len);
+ }
                                                                        /*}}}*/
+ // DPkgPM::DoTerminalPty - Read the terminal pty and write log                /*{{{*/
+ // ---------------------------------------------------------------------
+ /*
+  * read the terminal pty and write log
+  */
+ void pkgDPkgPM::DoTerminalPty(int master, FILE *term_out)
+ {
+    char term_buf[1024] = {0,};
+    int len=read(master, term_buf, sizeof(term_buf));
+    if(len <= 0)
+       return;
+    write(1, term_buf, len);
+    if(term_out)
+       fwrite(term_buf, len, sizeof(char), term_out);
+ }
+                                                                       /*}}}*/
+ // DPkgPM::ProcessDpkgStatusBuf                                               /*{{{*/
+ // ---------------------------------------------------------------------
+ /*
+  */
+ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line)
+ {
+    // the status we output
+    ostringstream status;
+    if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
+       std::clog << "got from dpkg '" << line << "'" << std::endl;
+    /* dpkg sends strings like this:
+       'status:   <pkg>:  <pkg  qstate>'
+       errors look like this:
+       'status: /var/cache/apt/archives/krecipes_0.8.1-0ubuntu1_i386.deb : error : trying to overwrite `/usr/share/doc/kde/HTML/en/krecipes/krectip.png', which is also in package krecipes-data 
+       and conffile-prompt like this
+       'status: conffile-prompt: conffile : 'current-conffile' 'new-conffile' useredited distedited
+           
+    */
+    char* list[5];
+    //        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;
+       return;
+    }
+    if(strncmp(action,"error",strlen("error")) == 0)
+    {
+       status << "pmerror:" << list[1]
+            << ":"  << (PackagesDone/float(PackagesTotal)*100.0) 
+            << ":" << list[3]
+            << endl;
+       if(OutStatusFd > 0)
+        write(OutStatusFd, status.str().c_str(), status.str().size());
+       if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
+        std::clog << "send: '" << status.str() << "'" << endl;
++      pkgFailures++;
++      WriteApportReport(list[1], list[3]);
+       return;
+    }
+    if(strncmp(action,"conffile",strlen("conffile")) == 0)
+    {
+       status << "pmconffile:" << list[1]
+            << ":"  << (PackagesDone/float(PackagesTotal)*100.0) 
+            << ":" << list[3]
+            << endl;
+       if(OutStatusFd > 0)
+        write(OutStatusFd, status.str().c_str(), status.str().size());
+       if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
+        std::clog << "send: '" << status.str() << "'" << endl;
+       return;
+    }
+    vector<struct DpkgState> &states = PackageOps[pkg];
+    const char *next_action = NULL;
+    if(PackageOpsDone[pkg] < states.size())
+       next_action = states[PackageOpsDone[pkg]].state;
+    // check if the package moved to the next dpkg state
+    if(next_action && (strcmp(action, next_action) == 0)) 
+    {
+       // only read the translation if there is actually a next
+       // action
+       const char *translation = _(states[PackageOpsDone[pkg]].str);
+       char s[200];
+       snprintf(s, sizeof(s), translation, pkg);
+       // we moved from one dpkg state to a new one, report that
+       PackageOpsDone[pkg]++;
+       PackagesDone++;
+       // build the status str
+       status << "pmstatus:" << pkg 
+            << ":"  << (PackagesDone/float(PackagesTotal)*100.0) 
+            << ":" << s
+            << endl;
+       if(OutStatusFd > 0)
+        write(OutStatusFd, status.str().c_str(), status.str().size());
+       if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true)
+        std::clog << "send: '" << status.str() << "'" << endl;
+    }
+    if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) 
+       std::clog << "(parsed from dpkg) pkg: " << pkg 
+               << " action: " << action << endl;
+ }
+ // DPkgPM::DoDpkgStatusFd                                             /*{{{*/
+ // ---------------------------------------------------------------------
+ /*
+  */
+ void pkgDPkgPM::DoDpkgStatusFd(int statusfd, int OutStatusFd)
+ {
+    char *p, *q;
+    int len;
+    len=read(statusfd, &dpkgbuf[dpkgbuf_pos], sizeof(dpkgbuf)-dpkgbuf_pos);
+    dpkgbuf_pos += len;
+    if(len <= 0)
+       return;
+    // process line by line if we have a buffer
+    p = q = dpkgbuf;
+    while((q=(char*)memchr(p, '\n', dpkgbuf+dpkgbuf_pos-p)) != NULL)
+    {
+       *q = 0;
+       ProcessDpkgStatusLine(OutStatusFd, p);
+       p=q+1; // continue with next line
+    }
+    // now move the unprocessed bits (after the final \n that is now a 0x0) 
+    // to the start and update dpkgbuf_pos
+    p = (char*)memrchr(dpkgbuf, 0, dpkgbuf_pos);
+    if(p == NULL)
+       return;
+    // we are interessted in the first char *after* 0x0
+    p++;
+    // move the unprocessed tail to the start and update pos
+    memmove(dpkgbuf, p, p-dpkgbuf);
+    dpkgbuf_pos = dpkgbuf+dpkgbuf_pos-p;
+ }
+                                                                       /*}}}*/
  // DPkgPM::Go - Run the sequence                                      /*{{{*/
  // ---------------------------------------------------------------------
  /* This globs the operations and calls dpkg 
index a413f3a902a54f535f36b1864fe5a94a8ad97325,c552b20c9bf9c892496050bf352f6aac3888cf9f..f8e9e44a8e59f48185b4c83a83b14f6a11b6e607
@@@ -18,10 -21,15 +21,16 @@@ using std::map
  
  class pkgDPkgPM : public pkgPackageManager
  {
+    private:
+    // the buffer we use for the dpkg status-fd reading
+    char dpkgbuf[1024];
+    int dpkgbuf_pos;
     protected:
 +   int pkgFailures;
  
-    // used for progress reporting
+    // progress reporting
     struct DpkgState 
     {
        const char *state;     // the dpkg state (e.g. "unpack")
     bool RunScriptsWithPkgs(const char *Cnf);
     bool SendV2Pkgs(FILE *F);
  
 +   // apport integration
 +   void WriteApportReport(const char *pkgpath, const char *errormsg);
 +
+    // input processing
+    void DoStdin(int master);
+    void DoTerminalPty(int master, FILE *out);
+    void DoDpkgStatusFd(int statusfd, int OutStatusFd);
+    void ProcessDpkgStatusLine(int OutStatusFd, char *line);
     // The Actuall installation implementation
     virtual bool Install(PkgIterator Pkg,string File);
     virtual bool Configure(PkgIterator Pkg);
diff --cc apt-pkg/init.cc
Simple merge
Simple merge
Simple merge
diff --cc configure.in
index e86a5229b60b27f95305f294284aa76521f5badd,0294b9ae7b231a64096931bb6d4cf14bca614cca..364a23159881877babdabb95caf8719c73b2b46a
@@@ -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.7.4ubuntu1")
 -AC_DEFINE_UNQUOTED(VERSION,"0.7.5")
++AC_DEFINE_UNQUOTED(VERSION,"0.7.6ubuntu1")
  PACKAGE="apt"
  AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
  AC_SUBST(PACKAGE)
diff --cc debian/apt.dirs
index 025898e84ac4d6e8583da9b22f7e9b854b1ba31b,8ce9b175abcebab01436b9f80197dc3c2a169ee1..2db8dca9a2d37ab783d50f655809c2d3effabff3
@@@ -4,8 -4,9 +4,10 @@@ usr/lib/dpkg/methods/ap
  etc/apt
  etc/apt/apt.conf.d
  etc/apt/sources.list.d
+ etc/logrotate.d
  var/cache/apt/archives/partial
  var/lib/apt/lists/partial
 +var/lib/apt/mirrors/partial
  var/lib/apt/periodic
+ var/log/apt
  usr/share/bug/apt
index bee947ae3dbf38d9d5407f61e6315d46a8a1802d,c730f85b09677e79ba6d3c1347f47aae5d2ef726..02b637553d450d4fc2b6a3e3f014d3848332a73c
@@@ -1,20 -1,51 +1,59 @@@
- apt (0.7.4ubuntu1) gutsy; urgency=low
 -apt (0.7.7) UNRELEASED; urgency=low
++apt (0.7.6ubuntu1) gutsy; urgency=low
+   * apt-inst/contrib/extracttar.cc:
+     - fix fd leak for zero size files (thanks to Bill Broadley for
+       reporting this bug)
+   * apt-pkg/acquire-item.cc:
+     - remove zero size files on I-M-S hit
+   * methods/https.cc:
+     - only send LastModified if we actually have one
+     - send range request with if-range 
+     - delete failed downloads
+   * apt-pkg/deb/dpkgpm.{cc,h}:
+     - merged dpkg-log branch, this lets you specify a 
+       Dir::Log::Terminal file to log dpkg output to
+       (ABI break)
+   * merged apt--sha256 branch to fully support the new
+     sha256 checksums in the Packages and Release files
+     (ABI break)
+  -- Michael Vogt <michael.vogt@ubuntu.com>  Thu, 02 Aug 2007 11:55:54 +0200
+ apt (0.7.6) unstable; urgency=low
+   * Applied patch from Aurelien Jarno <aurel32@debian.org> to fix wrong
+     directory downloading on non-linux architectures (closes: #435597)
+  -- Otavio Salvador <otavio@debian.org>  Wed, 01 Aug 2007 19:49:51 -0300
+ apt (0.7.5) unstable; urgency=low
  
    [ Otavio Salvador ]
-   * Applied patch from Guillem Jover <guillem.jover@nokia.com> to use
+   * Applied patch from Guillem Jover <guillem@debian.org> to use
      dpkg-architecture to get the host architecture (closes: #407187)
+   * Applied patch from Guillem Jover <guillem@debian.org> to add
+     support to add lzma support (closes: #408201)
  
    [ Michael Vogt ]
    * apt-pkg/depcache.cc:
      - support a list of sections for:
        APT::Install-Recommends-Sections
        APT::Never-MarkAuto-Sections
+   * methods/makefile:
+     - install lzma symlink method (for full lzma support)
+   * debian/control:
+     - suggest "lzma"
+  -- Otavio Salvador <otavio@ossystems.com.br>  Wed, 25 Jul 2007 20:16:46 -0300
++apt (0.7.4ubuntu1) gutsy; urgency=low
++
 +  * debian/apt.conf.ubuntu, apt.conf.autoremove:
 +    - Change metapackages to {restricted,universe,multiverse}/metapackages 
 +      in Install-Recommends-Sections and Never-MarkAuto-Sections
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Thu, 26 Jul 2007 10:42:29 +0200
 +
  apt (0.7.4) unstable; urgency=low
  
    [ Michael Vogt ]
  
   -- Otavio Salvador <otavio@debian.org>  Tue, 24 Jul 2007 09:55:50 -0300
  
+ apt (0.7.3) unstable; urgency=low
+   * fixed compile errors with g++ 4.3 (thanks to 
+     Daniel Burrows, closes: #429378)
+   * fixes in the auto-mark code (thanks to Daniel
+     Burrows)
+   * fix FTFBFS by changing build-depends to
+     libcurl4-gnutls-dev (closes: #428363)
+   * cmdline/apt-get.cc:
+     - fix InstallTask code when a pkgRecord ends 
+       with a single '\n' (thanks to Soren Hansen for reporting)
+   * merged from Christian Perrier:
+         * vi.po: completed to 532t, again. Closes: #429899
+         * gl.po: completed to 532t. Closes: #429506
+         * vi.po: completed to 532t. Closes: #428672
+         * Update all PO and the POT. Gives 514t14f4u for formerly
+           complete translations
+         * fr.po: completed to 532t
+         * ku.po, uk.po, LINGUAS: reintegrate those translations
+           which disappeared from the BZR repositories
+  -- Michael Vogt <mvo@debian.org>  Sun, 01 Jul 2007 12:31:29 +0200
++  
 +apt (0.7.2ubuntu7) gutsy; urgency=low
 +
 +  * fix build-dependencies 
 +  * fixes in the auto-mark code (thanks to Daniel
 +    Burrows)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Mon,  9 Jul 2007 19:02:54 +0200
 +
 +apt (0.7.2ubuntu6) gutsy; urgency=low
 +
 +  [ Michael Vogt]
 +  * cmdline/apt-get.cc:
 +    - make the XS-Vcs-$foo warning more copy'n'paste
 +      friendly (thanks to Matt Zimmerman)
 +    - ignore the Vcs-Browser tag (Fixes LP: #121770)
 +  * debian/apt.conf.autoremove:
 +    - added "linux-ubuntu-modules" to APT::NeverAutoRemove
 +
 +  [ Sarah Hobbs ]
 +  * Change metapackages to *metapackages in Install-Recommends-Section
 +    and Never-MarkAuto-Section of debian/apt.conf.autoremove, so that
 +    the Recommends of metapackages in universe and multiverse will get
 +    installed.
 +  * Also make this change in doc/examples/configure-index.
 +  * Added a Build Dependancies of automake, docbook-xsl, xsltproc, xmlto,
 +    docbook to fix FTBFS.
 +  * Added in previous changelog entries, as those who uploaded did not
 +    actually commit to Bzr.
 +
 + -- Sarah Hobbs <hobbsee@ubuntu.com>  Mon, 09 Jul 2007 01:15:57 +1000
 +
 +apt (0.7.2ubuntu5) gutsy; urgency=low
 +
 +  * Rerun autoconf to fix the FTBFS.
 +
 + -- Michael Bienia <geser@ubuntu.com>  Fri, 06 Jul 2007 19:17:33 +0200
 +
 +apt (0.7.2ubuntu4) gutsy; urgency=low
 +
 +  * Rebuild for the libcurl4 -> libcurl3 transition mess.
 +
 + -- Steve Kowalik <stevenk@ubuntu.com>  Fri,  6 Jul 2007 12:44:05 +1000
 +
 +apt (0.7.2ubuntu3) gutsy; urgency=low
 +
 +  * cmdline/apt-get.cc:
 +    - fix InstallTask code when a pkgRecord ends 
 +      with a single '\n' (thanks to Soren Hansen for reporting)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Wed, 27 Jun 2007 13:33:38 +0200
 +
 +apt (0.7.2ubuntu2) gutsy; urgency=low
 +
 +  * fixed compile errors with g++ 4.3 (thanks to 
 +    Daniel Burrows, closes: #429378)
 +  * fix FTFBFS by changing build-depends to
 +    libcurl4-gnutls-dev (closes: #428363)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 19 Jun 2007 13:47:03 +0200
 +
 +apt (0.7.2ubuntu1) gutsy; urgency=low
 +
 +  * apt-pkg/deb/dpkgpm.cc:
 +    - apport integration added, this means that a apport
 +      report is written on dpkg failures
 +  * cmdline/apt-get.cc:
 +    - merged http://people.ubuntu.com/~mvo/bzr/apt/xs-vcs-bzr/
 +      this will warn when Vcs- headers are found on apt-get source
 +      (Fixes LP:#115959)
 +  * merged from debian/unstable, remaining changes:
 +    - maintainer field changed
 +    - merged the apt--mirror branch 
 +      http://people.ubuntu.com/~mvo/bzr/apt/apt--mirror/
 +    - apport reporting on package install/upgrade/remove failure
 +    - support for "Originial-Maintainer" field
 +    - merged apt--xs-vcs-bzr branch
 +      (http://people.ubuntu.com/~mvo/bzr/apt/xs-vcs-bzr/)
 +    - use ubuntu archive keyring by default
 +    - debian/apt.conf.autoremove
 +      + install recommands for section "metapackages"
 +      + do not mark direct dependencies of "metapackages" as autoremoved
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Thu, 14 Jun 2007 10:38:36 +0200
  
  apt (0.7.2-0.1) unstable; urgency=low
  
@@@ -226,95 -199,8 +295,95 @@@ apt (0.7.1) experimental; urgency=lo
    * apt-pkg/policy.cc:
      - allow multiple packages (thanks to David Foerster)
  
-  -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 17 Apr 2007 15:53:37 +0200
+  -- Michael Vogt <mvo@debian.org>  Wed,  2 May 2007 13:43:44 +0200
  
 +apt (0.6.46.4ubuntu10) feisty; urgency=low
 +
 +  * apt-pkg/depcache.cc:
 +    - added "APT::Never-MarkAuto-Section" and consider dependencies 
 +      of packages in this section manual (LP#59893)
 +    - ensure proper permissions in the extended_state file (LP#67037)
 +  * debian/apt.conf.ubuntu:
 +    - added APT::Never-MarkAuto-Section "metapackages" (LP#59893)
 +  * cmdline/apt-get.cc:
 +    - "apt-get install foo" on a already installed package foo will
 +      clean the automatic installed flag (LP#72007)
 +    - do not show packages already marked for removal as auto-installed
 +      (LP#64493)
 +    - applied patch to (optionally) hide the auto-remove information
 +      (thanks to Frode M. Døving) (LP#69148)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Wed, 14 Mar 2007 13:32:32 +0100
 +
 +apt (0.6.46.4ubuntu9) feisty; urgency=low
 +
 +  * debian/control:
 +    - set XS-Vcs-Bzr header
 +    - Set Ubuntu maintainer address
 +  * apt-pkg/cdrom.cc:
 +    - only unmount if APT::CDROM::NoMount is false
 +    - only umount if it was mounted by the method before
 +  * cmdline/apt-get.cc:
 +    - fix version output in autoremove list (LP#68941)
 +  * apt-pkg/packagemanager.cc:
 +    - do not spin 100% cpu in FixMissing() (LP#84476)
 +  * apt-pkg/indexfile.cc:
 +    - fix problem overwriting APT::Acquire::Translation
 +  * doc/examples/configure-index:
 +    - document APT::Acquire::Translation
 +  
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 13 Mar 2007 15:24:39 +0100
 +
 +apt (0.6.46.4ubuntu8) feisty; urgency=low
 +
 +  * fix segfault in the pkgRecords destructor
 +  * Bump ABI version
 +  * debian/control:
 +    - make the libcurl3-gnutls-dev versionized (LP#86614)
 +
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Mon, 26 Feb 2007 14:26:33 +0100
 +
 +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.
 +  * Bump ABI version
 +
 + -- 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.7.0) experimental; urgency=low
  
    * Package that contains tall the new features
diff --cc debian/control
index 1c6d2f490b7ceb292e1766f4d3d65e2f755a3e4e,742e8ca5c8b1e5cd7e50c810a04b4f20d22a34ab..ac14c5e0b5ecb3f74c7f849e442ac3047a1ecd7f
@@@ -15,8 -14,7 +15,8 @@@ Depends: ${shlibs:Depends
  Priority: important
  Replaces: libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7)
  Provides: ${libapt-pkg:provides}
 -Suggests: aptitude | synaptic | gnome-apt | wajig, dpkg-dev, apt-doc, bzip2, lzma
 +Recommends: ubuntu-keyring
- Suggests: aptitude | synaptic | gnome-apt | wajig, dpkg-dev, apt-doc, bzip2, gnupg
++Suggests: aptitude | synaptic | gnome-apt | wajig, dpkg-dev, apt-doc, bzip2, gnupg, lzma
  Section: admin
  Description: Advanced front-end for dpkg
   This is Debian's next generation front-end for the dpkg package manager.
diff --cc debian/rules
index a330d6dc173c5478ad62e8e14a0fcee422b0f017,b3222f3b4c1000694b7d5515cff15e13ebfca8ea..a46169a7b996105bb94aaa1b56bb340e7fe7b458
@@@ -209,10 -209,10 +209,11 @@@ apt: build debian/shlibs.loca
        cp -r $(BLD)/locale debian/$@/usr/share/
  
        cp debian/bugscript debian/$@/usr/share/bug/apt/script
+       cp debian/apt.logrotate debian/$@/etc/logrotate.d/apt
  
 -      cp share/debian-archive.gpg debian/$@/usr/share/$@
 +      cp share/ubuntu-archive.gpg debian/$@/usr/share/$@
        cp debian/apt.conf.autoremove debian/$@/etc/apt/apt.conf.d/01autoremove
 +      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
Simple merge
index 83bd8c7c936d3feff6b34fae35dade15ace942a0,e47539dbb3994aa14f25dc4cf240169a47fe6d62..b7c5957546ba4f1d8b41be33b0f03bdeaacafe88
@@@ -87,16 -80,9 +87,16 @@@ LIB_MAKES = apt-pkg/makefil
  SOURCE = rsh.cc
  include $(PROGRAM_H)
  
 -# SSH and bzip2 method symlink
 +# 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
++# SSH and bzip2,lzma method symlinks
+ binary: $(BIN)/ssh $(BIN)/bzip2 $(BIN)/lzma
+ veryclean: clean-$(BIN)/ssh clean-$(BIN)/bzip2 clean-$(BIN)/lzma
  $(BIN)/ssh:
        echo "Installing ssh method link"
        ln -fs rsh $(BIN)/ssh