]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/acquire-item.cc
demote VectorizeString gcc attribute from const to pure
[apt.git] / apt-pkg / acquire-item.cc
index da57f8d3b06e678078c87a0f7691f1597747a7e3..0bcafdc5c7eee0d65ddd1022335c899f57f54b6c 100644 (file)
@@ -1147,7 +1147,9 @@ void pkgAcqIndex::Done(string Message,unsigned long long Size,string Hash,
    // The files timestamp matches, for non-local URLs reverify the local
    // file, for local file, uncompress again to ensure the hashsum is still
    // matching the Release file
-   if (!Local && StringToBool(LookupTag(Message,"IMS-Hit"),false) == true)
+   bool const IsCDROM = RealURI.substr(0,6) == "cdrom:";
+   if ((Local == false || IsCDROM == true) &&
+        StringToBool(LookupTag(Message,"IMS-Hit"),false) == true)
    {
       // set destfile to the final destfile
       if(_config->FindB("Acquire::GzipIndexes",false) == false)
@@ -1156,7 +1158,10 @@ void pkgAcqIndex::Done(string Message,unsigned long long Size,string Hash,
          DestFile += URItoFileName(RealURI);
       }
 
-      ReverifyAfterIMS(FileName);
+      // do not reverify cdrom sources as apt-cdrom may rewrite the Packages
+      // file when its doing the indexcopy
+      if (IsCDROM == false)
+        ReverifyAfterIMS(FileName);
       return;
    }
    string decompProg;
@@ -1189,8 +1194,18 @@ void pkgAcqIndex::Done(string Message,unsigned long long Size,string Hash,
    Desc.URI = decompProg + ":" + FileName;
    QueueURI(Desc);
 
-   // FIXME: this points to a c++ string that goes out of scope
-   Mode = decompProg.c_str();
+   if (decompProg == "copy")
+      Mode = "copy";
+   else if (decompProg == "xz")
+      Mode = "xz";
+   else if (decompProg == "lzma")
+      Mode = "lzma";
+   else if (decompProg == "bzip2")
+      Mode = "bzip2";
+   else if (decompProg == "gzip")
+      Mode = "gzip";
+   else
+      Mode = "decomp";
 }
                                                                        /*}}}*/
 // AcqIndexTrans::pkgAcqIndexTrans - Constructor                       /*{{{*/