From: Michael Vogt Date: Thu, 11 May 2006 10:12:31 +0000 (+0200) Subject: * apt-pkg/acquire-item.cc: X-Git-Tag: 0.7.21~323 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/20a8adb3d45a4419cd8c1de5e63f4b10ca190a3f?ds=inline;hp=-c * apt-pkg/acquire-item.cc: - merged from pdiff * debian/changelog: - updated --- 20a8adb3d45a4419cd8c1de5e63f4b10ca190a3f diff --combined apt-pkg/acquire-item.cc index cbccfbfae,f22daaf71..cc16215f5 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@@ -605,7 -605,7 +605,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 @@@ -711,7 -711,7 +711,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"; @@@ -736,9 -736,10 +736,9 @@@ pkgAcqMetaSig::pkgAcqMetaSig(pkgAcquir const vector* 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); @@@ -761,6 -762,12 +761,6 @@@ // 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); @@@ -810,19 -817,18 +810,19 @@@ void pkgAcqMetaSig::Done(string Message /*}}}*/ 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()); - // if we get a timeout if fail + // if we get a network error we fail gracefully if(LookupTag(Message,"FailReason") == "Timeout" || - LookupTag(Message,"FailReason") == "TmpResolveFailure") { + LookupTag(Message,"FailReason") == "TmpResolveFailure" || + LookupTag(Message,"FailReason") == "ConnectionRefused") { Item::Failed(Message,Cnf); return; } + // Delete any existing sigfile when the acquire failed + string Final = _config->FindDir("Dir::State::lists") + URItoFileName(RealURI); + unlink(Final.c_str()); + // queue a pkgAcqMetaIndex with no sigfile new pkgAcqMetaIndex(Owner, MetaIndexURI, MetaIndexURIDesc, MetaIndexShortDesc, "", IndexTargets, MetaIndexParser); @@@ -845,9 -851,11 +845,9 @@@ pkgAcqMetaIndex::pkgAcqMetaIndex(pkgAcq string SigFile, const vector* IndexTargets, indexRecords* MetaIndexParser) : - Item(Owner), RealURI(URI), SigFile(SigFile) + Item(Owner), RealURI(URI), SigFile(SigFile), AuthPass(false), + MetaIndexParser(MetaIndexParser), IndexTargets(IndexTargets), IMSHit(false) { - this->AuthPass = false; - this->MetaIndexParser = MetaIndexParser; - this->IndexTargets = IndexTargets; DestFile = _config->FindDir("Dir::State::lists") + "partial/"; DestFile += URItoFileName(URI); @@@ -939,9 -947,6 +939,9 @@@ void pkgAcqMetaIndex::RetrievalDone(str return; } + // see if the download was a IMSHit + IMSHit = StringToBool(LookupTag(Message,"IMS-Hit"),false); + Complete = true; string FinalFile = _config->FindDir("Dir::State::lists"); @@@ -970,7 -975,7 +970,7 @@@ void pkgAcqMetaIndex::AuthDone(string M return; } - if (!VerifyVendor()) + if (!VerifyVendor(Message)) { return; } @@@ -1024,7 -1029,7 +1024,7 @@@ void pkgAcqMetaIndex::QueueIndexes(boo // Queue Packages file (either diff or full packages files, depending // on the users option) - if(_config->FindB("Acquire::PDiffs",false) == false) + if(_config->FindB("Acquire::PDiffs",true) == true) new pkgAcqDiffIndex(Owner, (*Target)->URI, (*Target)->Description, (*Target)->ShortDesc, ExpectedIndexMD5); else @@@ -1033,7 -1038,7 +1033,7 @@@ } } -bool pkgAcqMetaIndex::VerifyVendor() +bool pkgAcqMetaIndex::VerifyVendor(string Message) { // // Maybe this should be made available from above so we don't have // // to read and parse it every time? @@@ -1058,22 -1063,6 +1058,22 @@@ // break; // } // } + string::size_type pos; + + // check for missing sigs (that where not fatal because otherwise we had + // bombed earlier) + string missingkeys; + string msg = _("There are no public key available for the " + "following key IDs:\n"); + pos = Message.find("NO_PUBKEY "); + if (pos != std::string::npos) + { + string::size_type start = pos+strlen("NO_PUBKEY "); + string Fingerprint = Message.substr(start, Message.find("\n")-start); + missingkeys += (Fingerprint); + } + if(!missingkeys.empty()) + _error->Warning("%s", string(msg+missingkeys).c_str()); string Transformed = MetaIndexParser->GetExpectedDist(); @@@ -1082,7 -1071,7 +1082,7 @@@ Transformed = "experimental"; } - string::size_type pos = Transformed.rfind('/'); + pos = Transformed.rfind('/'); if (pos != string::npos) { Transformed = Transformed.substr(0, pos); @@@ -1128,30 -1117,10 +1128,30 @@@ void pkgAcqMetaIndex::Failed(string Mes { if (AuthPass == true) { - // gpgv method failed + // if we fail the authentication but got the file via a IMS-Hit + // this means that the file wasn't downloaded and that it might be + // just stale (server problem, proxy etc). we delete what we have + // queue it again without i-m-s + // alternatively we could just unlink the file and let the user try again + if (IMSHit) + { + Complete = false; + Local = false; + AuthPass = false; + unlink(DestFile.c_str()); + + DestFile = _config->FindDir("Dir::State::lists") + "partial/"; + DestFile += URItoFileName(RealURI); + Desc.URI = RealURI; + QueueURI(Desc); + return; + } + + // gpgv method failed _error->Warning("GPG error: %s: %s", Desc.Description.c_str(), LookupTag(Message,"Message").c_str()); + } // No Release file was present, or verification failed, so fall @@@ -1227,12 -1196,6 +1227,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. " @@@ -1465,19 -1428,13 +1465,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; @@@ -1497,7 -1454,7 +1497,7 @@@ else PartialSize = Buf.st_size; } - + QueueURI(Desc); } /*}}}*/ diff --combined debian/changelog index 9632eda5b,cc3da8f84..e151d82f5 --- a/debian/changelog +++ b/debian/changelog @@@ -1,212 -1,3 +1,219 @@@ ++apt (0.6.44.1) unstable; urgency=low ++ ++ * apt-pkg/acquire-item.cc: ++ - fix reversed order of the "Acquire::PDiffs" option ++ ++ -- Michael Vogt Thu, 11 May 2006 12:11:26 +0200 ++ +apt (0.6.44) unstable; urgency=low + + * apt-pkg/acquire.cc: don't show ETA if it is 0 or absurdely large + * apt-pkg/contrib/sha256.{cc,h},hashes.{cc,h}: support for sha256 + (thanks to Anthony Towns) + * ftparchive/cachedb.{cc,h},writer.{cc,h}: optimizations + (thanks to Anthony Towns) + * apt pdiff support from experimental merged + * apt-pkg/deb/dpkgpm.cc: wording fixes (thanks to Matt Zimmerman) + * apt-pkg/deb/dpkgpm.cc: + - wording fixes (thanks to Matt Zimmerman) + - fix error in dpkg interaction (closes: #364513, thanks to Martin Dickopp) + * apt-pkg/tagfile.{cc,h}: + - use MMap to read the entries (thanks to Zephaniah E. Hull for the + patch) Closes: #350025 + * Merge from http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main: + * bg.po: Added, complete to 512t. Closes: #360262 + * doc/apt-ftparchive.1.xml: + - fix documentation for "SrcPackages" -> "Sources" + (thanks to Bart Martens for the patch, closes: #307756) + * debian/libapt-pkg-doc.doc-base.cache: + - remove broken charackter from description (closes: #361129) + * apt-inst/deb/dpkgdb.cc, methods/gpgv.cc: + - i18n fixes (closes: #349298) + * debian/postinst: dont fail on not available + /usr/share/doc/apt/examples/sources.list (closes: #361130) + * methods/ftp.cc: + - unlink empty file in partial if the download failed because + the file is missing on the server (closes: #316337) + * apt-pkg/deb/debversion.cc: + - treats a version string with explicit zero epoch equal + than the same without epoch (Policy 5.6.12, closes: #363358) + Thanks to Lionel Elie Mamane for the patch + + -- Michael Vogt Mon, 8 May 2006 22:28:53 +0200 + +apt (0.6.43.3) unstable; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-186: + * ca.po: Completed to 512t. Closes: #351592 + * eu.po: Completed to 512t. Closes: #350483 + * ja.po: Completed to 512t. Closes: #349806 + * pl.po: Completed to 512t. Closes: #349514 + * sk.po: Completed to 512t. Closes: #349474 + * gl.po: Completed to 512 strings Closes: #349407 + * sv.po: Completed to 512 strings Closes: #349210 + * ru.po: Completed to 512 strings Closes: #349154 + * da.po: Completed to 512 strings Closes: #349084 + * fr.po: Completed to 512 strings + * vi.po: Completed to 511 strings Closes: #348968 + * zh_CN.po: Completed to 512t. Closes: #353936 + * it.po: Completed to 512t. Closes: #352803 + * pt_BR.po: Completed to 512t. Closes: #352419 + * LINGUAS: Add Welsh + * *.po: Updated from sources (512 strings) + * apt-pkg/deb/deblistparser.cc: + - don't explode on a DepCompareOp in a Provides line, but warn about + it and ignore it otherwise (thanks to James Troup for reporting it) + * cmdline/apt-get.cc: + - don't lock the lists directory in DoInstall, breaks --print-uri + (thanks to James Troup for reporting it) + * debian/apt.dirs: create /etc/apt/sources.list.d + * make apt-cache madison work without deb-src entries (#352583) + * cmdline/apt-get.cc: only run the list-cleaner if a update was + successfull + + -- Michael Vogt Wed, 22 Feb 2006 10:13:04 +0100 + +apt (0.6.43.2) unstable; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-166: + - en_GB.po, de.po: fix spaces errors in "Ign " translations Closes: #347258 + - makefile: make update-po a pre-requisite of clean target so + that POT and PO files are always up-to-date + - sv.po: Completed to 511t. Closes: #346450 + - sk.po: Completed to 511t. Closes: #346369 + - fr.po: Completed to 511t + - *.po: Updated from sources (511 strings) + - el.po: Completed to 511 strings Closes: #344642 + - da.po: Completed to 511 strings Closes: #348574 + - es.po: Updated to 510t1f Closes: #348158 + - gl.po: Completed to 511 strings Closes: #347729 + - it.po: Yet another update Closes: #347435 + * added debian-archive-keyring to the Recommends (closes: #347970) + * fixed message in apt-key to install debian-archive-keyring + * typos fixed in apt-cache.8 (closes: #348348, #347349) + * add patch to fix http download corruption problem (thanks to + Petr Vandrovec, closes: #280844, #290694) + + -- Michael Vogt Thu, 19 Jan 2006 00:06:33 +0100 + +apt (0.6.43.1) unstable; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-148: + * fr.po: Completed to 510 strings + * it.po: Completed to 510t + * en_GB.po: Completed to 510t + * cs.po: Completed to 510t + * zh_CN.po: Completed to 510t + * el.po: Updated to 510t + * vi.po: Updated to 383t93f34u + * tl.po: Completed to 510 strings (Closes: #344306) + * sv.po: Completed to 510 strings (Closes: #344056) + * LINGUAS: disabled Hebrew translation. (Closes: #313283) + * eu.po: Completed to 510 strings (Closes: #342091) + * apt-get source won't download already downloaded files again + (closes: #79277) + * share/debian-archive.gpg: new 2006 ftp-archive signing key added + (#345891) + * redownload the Release file if IMS-Hit and gpg failure + * deal with multiple signatures on a Release file + + -- Michael Vogt Fri, 6 Jan 2006 01:17:08 +0100 + +apt (0.6.43) unstable; urgency=medium + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-132: + * zh_CN.po: Completed to 510 strings(Closes: #338267) + * gl.po: Completed to 510 strings (Closes: #338356) + * added support for "/etc/apt/sources.list.d" directory + (closes: #66325) + * make pkgDirStream (a bit) more complete + * fix bug in pkgCache::VerIterator::end() (thanks to Daniel Burrows) + (closes: #339533) + * pkgAcqFile is more flexible now (closes: #57091) + * support a download rate limit for http (closes: #146877) + * included lots of the speedup changes from #319377 + * add stdint.h to contrib/md5.h (closes: #340448) + * ABI change, library name changed (closes: #339147) + * Fix GNU/kFreeBSD crash on non-existing server file (closes: #317718) + * switch to libdb4.3 in build-depends + + -- Michael Vogt Tue, 29 Nov 2005 00:17:07 +0100 + +apt (0.6.42.3) unstable; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-129: + - patch-118: Russian translation update by Yuri Kozlov (closes: #335164) + - patch-119: add update-po as a pre-req for binary (closes: #329910) + - patch-121: Complete French translation + - patch-125: Fixed localization of y/n questions in German translation + (closes: #337078) + - patch-126: Swedish translation update (closes: #337163) + - patch-127: Complete Tagalog translation (closes: #337306) + - patch-128: Danish translation update (closes: #337949) + - patch-129: Basque translation update (closes: #338101) + * cmdline/apt-get.cc: + - bufix in FindSrc (closes: #335213, #337910) + * added armeb to archtable (closes: #333599) + * with --allow-unauthenticated use the old fallback behaviour for + sources (closes: #335112) + + -- Michael Vogt Wed, 9 Nov 2005 07:22:31 +0100 + +apt (0.6.42.2) unstable; urgency=high + + * NMU (approved by maintainer) + * Add AMD64 archive signing key to debian-archive.gpg (closes: #336500). + * Add big-endian arm (armeb) support (closes: #333599). + * Priority high to get the AMD key into testing ASAP. + + -- Frans Pop Sun, 30 Oct 2005 21:29:11 +0100 + +apt (0.6.42.1) unstable; urgency=low + + * fix a incorrect example in the apt_prefrences man page + (thanks to Filipus Klutiero, closes: #282918) + * apt-pkg/pkgrecords.cc: + - revert patch from last version, it causes trouble on alpha + and ia64 (closes: #335102, #335103) + * cmdline/apt-get.cc: + - be extra carefull in FindSrc (closes: #335213) + + -- Michael Vogt Sat, 22 Oct 2005 23:44:35 +0200 + +apt (0.6.42) unstable; urgency=low + + * apt-pkg/cdrom.cc: + - unmount the cdrom when apt failed to locate any package files + * allow cdrom failures and fallback to other sources in that case + (closes: #44135) + * better error text when dpkg-source fails + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-115: + - patch-99: Added Galician translation + - patch-100: Completed Danish translation (Closes: #325686) + - patch-104: French translation completed + - patch-109: Italian translation completed + - patch-112: Swedish translation update + - patch-115: Basque translation completed (Closes: #333299) + * applied french man-page update (thanks to Philippe Batailler) + (closes: #316638, #327456) + * fix leak in the mmap code, thanks to Daniel Burrows for the + patch (closes: #250583) + * support for apt-get [build-dep|source] -t (closes: #152129) + * added "APT::Authentication::TrustCDROM" option to make the life + for the installer people easier (closes: #334656) + * fix crash in apt-ftparchive (thanks to Bastian Blank for the patch) + (closes: #334671) + * apt-pkg/contrib/md5.cc: + - fix a alignment problem on sparc64 that gives random bus errors + (thanks to Fabbione for providing a test-case) + * init the default ScreenWidth to 79 columns by default + (Closes: #324921) + * cmdline/apt-cdrom.cc: + - fix some missing gettext() calls (closes: #334539) + * doc/apt-cache.8.xml: fix typo (closes: #334714) + + -- Michael Vogt Wed, 19 Oct 2005 22:02:09 +0200 + apt (0.6.41) unstable; urgency=low * improved the support for "error" and "conffile" reporting from