]> git.saurik.com Git - apt.git/commitdiff
Packages.bz2 support from Michael Vogt
authorMatt Zimmerman <matt.zimmerman@canonical.com>
Mon, 15 Nov 2004 21:16:15 +0000 (21:16 +0000)
committerMatt Zimmerman <matt.zimmerman@canonical.com>
Mon, 15 Nov 2004 21:16:15 +0000 (21:16 +0000)
First tries Packages.bz2, and if that fails, falls back to Packages.gz

apt-pkg/acquire-item.cc
apt-pkg/acquire-item.h
debian/changelog

index 27e98283f90427c3b94fdfe85a6282cc5e6a062b..bf19290c6c4089249d097c2eeb8c3a33e9d3c9c0 100644 (file)
@@ -144,7 +144,7 @@ pkgAcqIndex::pkgAcqIndex(pkgAcquire *Owner,
    DestFile += URItoFileName(URI);
 
    // Create the item
-   Desc.URI = URI + ".gz";
+   Desc.URI = URI + ".bz2"; 
    Desc.Description = URIDesc;
    Desc.Owner = this;
    Desc.ShortDesc = ShortDesc;
@@ -167,6 +167,21 @@ string pkgAcqIndex::Custom600Headers()
    return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime);
 }
                                                                        /*}}}*/
+
+void pkgAcqIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
+{
+   // no .bz2 found, retry with .gz
+   if(Desc.URI.substr(Desc.URI.size()-3,Desc.URI.size()-1) == "bz2") {
+      Desc.URI = Desc.URI.substr(0,Desc.URI.size()-3) + "gz"; 
+      QueueURI(Desc);
+      return;
+   }
+
+   
+   Item::Failed(Message,Cnf);
+}
+
+
 // AcqIndex::Done - Finished a fetch                                   /*{{{*/
 // ---------------------------------------------------------------------
 /* This goes through a number of states.. On the initial fetch the
@@ -234,11 +249,22 @@ void pkgAcqIndex::Done(string Message,unsigned long Size,string MD5,
    else
       Local = true;
    
+   string compExt = Desc.URI.substr(Desc.URI.size()-3,Desc.URI.size()-1);
+   char *decompProg;
+   if(compExt == "bz2") 
+      decompProg = "bzip2";
+   else if(compExt == ".gz") 
+      decompProg = "gzip";
+   else {
+      _error->Error("Unsupported extension: %s", compExt.c_str());
+      return;
+   }
+
    Decompression = true;
    DestFile += ".decomp";
-   Desc.URI = "gzip:" + FileName;
+   Desc.URI = string(decompProg) + ":" + FileName;
    QueueURI(Desc);
-   Mode = "gzip";
+   Mode = decompProg;
 }
                                                                        /*}}}*/
 
index 62162743dc3fc205a3483eb8d96f43b9d06fab4a..9dab78f366dbf204e8b494d287152489ad03be8a 100644 (file)
@@ -90,6 +90,7 @@ class pkgAcqIndex : public pkgAcquire::Item
    public:
    
    // Specialized action members
+   virtual void Failed(string Message,pkgAcquire::MethodConfig *Cnf);
    virtual void Done(string Message,unsigned long Size,string Md5Hash,
                     pkgAcquire::MethodConfig *Cnf);
    virtual string Custom600Headers();
index 1ef08105fd0d21490fef43baa9b723439d3e128c..c9ea303421c93513bb562f0f15a67b21dfccb317 100644 (file)
@@ -1,7 +1,7 @@
-apt (0.5.30) unstable; urgency=low
-  
-  *
+apt (0.5.30) hoary; urgency=low
 
+  * Patch from Michael Vogt to enable Packages.bz2 use, with a fallback to
+    Packages.gz if it is not present (Closes: #37525)
 
  -- Matt Zimmerman <mdz@debian.org>  Mon, 15 Nov 2004 12:57:28 -0800