]> git.saurik.com Git - apt.git/commitdiff
* hack around file:/ uri problem when pdiffs are used (needs to be done properly...
authorMichael Vogt <mvo@debian.org>
Wed, 30 Nov 2005 17:15:17 +0000 (17:15 +0000)
committerMichael Vogt <mvo@debian.org>
Wed, 30 Nov 2005 17:15:17 +0000 (17:15 +0000)
Patches applied:

 * michael.vogt@ubuntu.com--2005/apt--pdiff--0--patch-22
   * hack around local file:/ uri problem

1  2 
apt-pkg/acquire-item.cc

diff --combined apt-pkg/acquire-item.cc
index 2392f0f8d08ce2c4a77de6f3009fe7727c64826a,ad977dde408bb2c3a87b78c0fd497e54d82b3fc6..197cbf786b10d185ba271891bfa8498fb239008b
@@@ -165,11 -165,15 +165,15 @@@ pkgAcqDiffIndex::pkgAcqDiffIndex(pkgAcq
     CurrentPackagesFile = _config->FindDir("Dir::State::lists");
     CurrentPackagesFile += URItoFileName(RealURI);
  
+    // FIXME: this file:/ check is a hack to prevent fetching
+    //        from local sources. this is really silly, and
+    //        should be fixed cleanly as soon as possible
     if(!FileExists(CurrentPackagesFile) || 
+       Desc.URI.substr(0,strlen("file:/")) == "file:/" ||
        !_config->FindB("Acquire::Diffs",true)) {
        // we don't have a pkg file or we don't want to queue
        if(Debug)
-        std::clog << "No index file or canceld by user" << std::endl;
+        std::clog << "No index file, local or canceld by user" << std::endl;
        Failed("", NULL);
        return;
     }
@@@ -362,7 -366,7 +366,7 @@@ void pkgAcqIndexDiffs::Failed(string Me
  {
     if(Debug)
        std::clog << "pkgAcqIndexDiffs failed: " << Desc.URI << std::endl
 -              << "Falling back to normal index file aquire" << std::endl;
 +              << "Falling back to normal index file acquire" << std::endl;
     new pkgAcqIndex(Owner, RealURI, Description,Desc.ShortDesc, 
                   ExpectedMD5);
     Finish();
@@@ -583,7 -587,7 +587,7 @@@ string pkgAcqIndex::Custom600Headers(
  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") {
 +   if(Desc.URI.substr(Desc.URI.size()-3) == "bz2") {
        Desc.URI = Desc.URI.substr(0,Desc.URI.size()-3) + "gz"; 
  
        // retry with a gzip one 
@@@ -689,7 -693,7 +693,7 @@@ void pkgAcqIndex::Done(string Message,u
     else
        Local = true;
     
 -   string compExt = Desc.URI.substr(Desc.URI.size()-3,Desc.URI.size()-1);
 +   string compExt = Desc.URI.substr(Desc.URI.size()-3);
     char *decompProg;
     if(compExt == "bz2") 
        decompProg = "bzip2";
     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,
                             const vector<IndexTarget*>* IndexTargets,
                             indexRecords* MetaIndexParser) :
     Item(Owner), RealURI(URI), MetaIndexURI(MetaIndexURI),
 -   MetaIndexURIDesc(MetaIndexURIDesc), MetaIndexShortDesc(MetaIndexShortDesc)
 +   MetaIndexURIDesc(MetaIndexURIDesc), MetaIndexShortDesc(MetaIndexShortDesc),
 +   MetaIndexParser(MetaIndexParser), IndexTargets(IndexTargets)
  {
 -   this->MetaIndexParser = MetaIndexParser;
 -   this->IndexTargets = IndexTargets;
     DestFile = _config->FindDir("Dir::State::lists") + "partial/";
     DestFile += URItoFileName(URI);
  
@@@ -857,9 -833,11 +861,9 @@@ pkgAcqMetaIndex::pkgAcqMetaIndex(pkgAcq
                                 string SigFile,
                                 const vector<struct IndexTarget*>* IndexTargets,
                                 indexRecords* MetaIndexParser) :
 -  Item(Owner), RealURI(URI), SigFile(SigFile)
 +   Item(Owner), RealURI(URI), SigFile(SigFile), AuthPass(false),
 +   MetaIndexParser(MetaIndexParser), IndexTargets(IndexTargets)
  {
 -   this->AuthPass = false;
 -   this->MetaIndexParser = MetaIndexParser;
 -   this->IndexTargets = IndexTargets;
     DestFile = _config->FindDir("Dir::State::lists") + "partial/";
     DestFile += URItoFileName(URI);
  
@@@ -1195,12 -1173,6 +1199,12 @@@ pkgAcqArchive::pkgAcqArchive(pkgAcquir
        }
     }
  
 +   // "allow-unauthenticated" restores apts old fetching behaviour
 +   // that means that e.g. unauthenticated file:// uris are higher
 +   // priority than authenticated http:// uris
 +   if (_config->FindB("APT::Get::AllowUnauthenticated",false) == true)
 +      Trusted = false;
 +
     // Select a source
     if (QueueNext() == false && _error->PendingError() == false)
        _error->Error(_("I wasn't able to locate file for the %s package. "
@@@ -1433,19 -1405,13 +1437,19 @@@ void pkgAcqArchive::Finished(
  // ---------------------------------------------------------------------
  /* The file is added to the queue */
  pkgAcqFile::pkgAcqFile(pkgAcquire *Owner,string URI,string MD5,
 -                     unsigned long Size,string Dsc,string ShortDesc) :
 +                     unsigned long Size,string Dsc,string ShortDesc,
 +                     const string &DestDir, const string &DestFilename) :
                         Item(Owner), Md5Hash(MD5)
  {
     Retries = _config->FindI("Acquire::Retries",0);
     
 -   DestFile = flNotDir(URI);
 -   
 +   if(!DestFilename.empty())
 +      DestFile = DestFilename;
 +   else if(!DestDir.empty())
 +      DestFile = DestDir + "/" + flNotDir(URI);
 +   else
 +      DestFile = flNotDir(URI);
 +
     // Create the item
     Desc.URI = URI;
     Desc.Description = Dsc;