[maemo-commits] [maemo-commits] r9948 - projects/haf/trunk/apt
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Fri Feb 16 15:18:53 EET 2007
- Previous message: [maemo-commits] r9947 - projects/haf/hafbuildbot
- Next message: [maemo-commits] r9949 - projects/haf/branches/gtk+/maemo-gtk-2-10/debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: marivoll Date: 2007-02-16 15:18:52 +0200 (Fri, 16 Feb 2007) New Revision: 9948 Added: projects/haf/trunk/apt/gcc3-bug.patch projects/haf/trunk/apt/transientsigs.patch Log: New. Added: projects/haf/trunk/apt/gcc3-bug.patch =================================================================== --- projects/haf/trunk/apt/gcc3-bug.patch 2007-02-16 13:08:50 UTC (rev 9947) +++ projects/haf/trunk/apt/gcc3-bug.patch 2007-02-16 13:18:52 UTC (rev 9948) @@ -0,0 +1,41 @@ +Index: apt-pkg/deb/dpkgpm.cc +=================================================================== +--- apt-pkg/deb/dpkgpm.cc (revision 9895) ++++ apt-pkg/deb/dpkgpm.cc (working copy) +@@ -612,9 +612,6 @@ + if (_config->FindB("Debug::pkgDPkgProgressReporting",false) == true) + std::clog << "got from dpkg '" << line << "'" << std::endl; + +- // the status we output +- ostringstream status; +- + /* dpkg sends strings like this: + 'status: <pkg>: <pkg qstate>' + errors look like this: +@@ -643,6 +640,8 @@ + + if(strncmp(action,"error",strlen("error")) == 0) + { ++ ostringstream status; ++ + status << "pmerror:" << list[1] + << ":" << (Done/float(Total)*100.0) + << ":" << list[3] +@@ -656,6 +655,8 @@ + } + if(strncmp(action,"conffile",strlen("conffile")) == 0) + { ++ ostringstream status; ++ + status << "pmconffile:" << list[1] + << ":" << (Done/float(Total)*100.0) + << ":" << list[3] +@@ -675,6 +676,8 @@ + // check if the package moved to the next dpkg state + if(next_action && (strcmp(action, next_action) == 0)) + { ++ ostringstream status; ++ + // only read the translation if there is actually a next + // action + const char *translation = _(states[PackageOpsDone[pkg]].str); Added: projects/haf/trunk/apt/transientsigs.patch =================================================================== --- projects/haf/trunk/apt/transientsigs.patch 2007-02-16 13:08:50 UTC (rev 9947) +++ projects/haf/trunk/apt/transientsigs.patch 2007-02-16 13:18:52 UTC (rev 9948) @@ -0,0 +1,192 @@ +Index: apt-pkg/acquire-item.cc +=================================================================== +--- apt-pkg/acquire-item.cc (revision 5175) ++++ apt-pkg/acquire-item.cc (working copy) +@@ -332,23 +332,6 @@ + Desc.ShortDesc = ShortDesc; + Desc.URI = URI; + +- +- string Final = _config->FindDir("Dir::State::lists"); +- Final += URItoFileName(RealURI); +- struct stat Buf; +- if (stat(Final.c_str(),&Buf) == 0) +- { +- // File was already in place. It needs to be re-verified +- // because Release might have changed, so Move it into partial +- Rename(Final,DestFile); +- // unlink the file and do not try to use I-M-S and Last-Modified +- // if the users proxy is broken +- if(_config->FindB("Acquire::BrokenProxy", false) == true) { +- std::cerr << "forcing re-get of the signature file as requested" << std::endl; +- unlink(DestFile.c_str()); +- } +- } +- + QueueURI(Desc); + } + /*}}}*/ +@@ -357,8 +340,10 @@ + /* The only header we use is the last-modified header. */ + string pkgAcqMetaSig::Custom600Headers() + { +- struct stat Buf; +- if (stat(DestFile.c_str(),&Buf) != 0) ++ string Final = _config->FindDir("Dir::State::lists"); ++ Final += URItoFileName(RealURI); ++ struct stat Buf; ++ if (stat(Final.c_str(),&Buf) != 0) + return "\nIndex-File: true"; + + return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime); +@@ -388,6 +373,21 @@ + + Complete = true; + ++ string Final = _config->FindDir("Dir::State::lists"); ++ Final += URItoFileName(RealURI); ++ if (StringToBool(LookupTag(Message,"IMS-Hit"),false)) ++ { ++ // Move it into position ++ Rename (Final, DestFile); ++ } ++ else ++ { ++ // Delete the old version in lists/. The new version will be moved ++ // there from partial/ when the signature verification succeeds ++ // ++ unlink (Final.c_str ()); ++ } ++ + // queue a pkgAcqMetaIndex to be verified against the sig we just retrieved + new pkgAcqMetaIndex(Owner, MetaIndexURI, MetaIndexURIDesc, MetaIndexShortDesc, + DestFile, IndexTargets, MetaIndexParser); +@@ -396,31 +396,61 @@ + /*}}}*/ + void pkgAcqMetaSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf) + { +- // Delete any existing sigfile, so that this source isn't +- // mistakenly trusted +- string Final = _config->FindDir("Dir::State::lists") + URItoFileName(RealURI); +- unlink(Final.c_str()); ++ string Final = ++ _config->FindDir("Dir::State::lists") + URItoFileName(RealURI); + +- // if we get a timeout if fail +- if(LookupTag(Message,"FailReason") == "Timeout" || +- LookupTag(Message,"FailReason") == "TmpResolveFailure") { +- Item::Failed(Message,Cnf); +- return; +- } ++ // If this is a transient failure, we use the old version, if we ++ // have one. "Using it" means moving it into the partial/ ++ // directory for further consumption by gpgv. ++ // ++ if (StringToBool(LookupTag(Message,"Transient-Failure"),false)) ++ { ++ cerr << "transient " << Final << "\n"; ++ struct stat Buf; ++ if (stat(Final.c_str(),&Buf) == 0) ++ { ++ cerr << "have old version\n"; ++ Rename (Final, DestFile); ++ new pkgAcqMetaIndex(Owner, MetaIndexURI, MetaIndexURIDesc, ++ MetaIndexShortDesc, ++ DestFile, IndexTargets, MetaIndexParser); ++ } ++ else ++ { ++ // queue a pkgAcqMetaIndex with no sigfile ++ new pkgAcqMetaIndex(Owner, MetaIndexURI, MetaIndexURIDesc, ++ MetaIndexShortDesc, ++ "", IndexTargets, MetaIndexParser); ++ } ++ } ++ else ++ { ++ // Delete any existing sigfile, so that this source isn't ++ // mistakenly trusted ++ unlink(Final.c_str()); + +- // queue a pkgAcqMetaIndex with no sigfile +- new pkgAcqMetaIndex(Owner, MetaIndexURI, MetaIndexURIDesc, MetaIndexShortDesc, +- "", IndexTargets, MetaIndexParser); ++ // if we get a timeout if fail ++ if(LookupTag(Message,"FailReason") == "Timeout" || ++ LookupTag(Message,"FailReason") == "TmpResolveFailure") { ++ Item::Failed(Message,Cnf); ++ return; ++ } + ++ // queue a pkgAcqMetaIndex with no sigfile ++ new pkgAcqMetaIndex(Owner, MetaIndexURI, MetaIndexURIDesc, ++ MetaIndexShortDesc, ++ "", IndexTargets, MetaIndexParser); ++ } ++ + if (Cnf->LocalOnly == true || + StringToBool(LookupTag(Message,"Transient-Failure"),false) == false) +- { +- // Ignore this ++ { ++ // Ignore this + Status = StatDone; + Complete = false; + Dequeue(); + return; +- } ++ } + + Item::Failed(Message,Cnf); + } +@@ -690,13 +720,44 @@ + void pkgAcqMetaIndex::Failed(string Message,pkgAcquire::MethodConfig *Cnf) + { + if (AuthPass == true) +- { +- // gpgv method failed +- _error->Warning("GPG error: %s: %s", +- Desc.Description.c_str(), +- LookupTag(Message,"Message").c_str()); +- } ++ { ++ // gpgv method failed ++ _error->Warning("GPG error: %s: %s", ++ Desc.Description.c_str(), ++ LookupTag(Message,"Message").c_str()); ++ } ++ else ++ { ++ // If this is a transient failure, we use the old version, if we ++ // have one. ++ // ++ if (StringToBool(LookupTag(Message,"Transient-Failure"),false)) ++ { ++ string Final = _config->FindDir("Dir::State::lists"); ++ Final += URItoFileName(RealURI); ++ struct stat Buf; ++ if (stat(Final.c_str(),&Buf) == 0) ++ { ++ DestFile = Final; + ++ if (SigFile != "") ++ { ++ // There was a signature file, so pass it to gpgv ++ // for verification ++ ++ if (_config->FindB("Debug::pkgAcquire::Auth", false)) ++ std::cerr << "Metaindex acquired, queueing gpg verification (" ++ << SigFile << "," << DestFile << ")\n"; ++ AuthPass = true; ++ Desc.URI = "gpgv:" + SigFile; ++ QueueURI(Desc); ++ Mode = "gpgv"; ++ return; ++ } ++ } ++ } ++ } ++ + // No Release file was present, or verification failed, so fall + // back to queueing Packages files without verification + QueueIndexes(false);
- Previous message: [maemo-commits] r9947 - projects/haf/hafbuildbot
- Next message: [maemo-commits] r9949 - projects/haf/branches/gtk+/maemo-gtk-2-10/debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]