From: Michael Vogt Date: Mon, 15 Aug 2011 12:14:35 +0000 (+0200) Subject: merged from the debian-sid branch X-Git-Tag: 0.9.13.exp1ubuntu1~144 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/bb3e64527b0c1ccf3f31a5a56c21819e25f128ae?hp=-c merged from the debian-sid branch --- bb3e64527b0c1ccf3f31a5a56c21819e25f128ae diff --combined apt-pkg/acquire-item.cc index 152a1e2ea,566f51606..c31d5d2b3 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@@ -94,7 -94,7 +94,7 @@@ void pkgAcquire::Item::Failed(string Me // --------------------------------------------------------------------- /* Stash status and the file size. Note that setting Complete means sub-phases of the acquire process such as decompresion are operating */ -void pkgAcquire::Item::Start(string /*Message*/,unsigned long Size) +void pkgAcquire::Item::Start(string /*Message*/,unsigned long long Size) { Status = StatFetching; if (FileSize == 0 && Complete == false) @@@ -104,7 -104,7 +104,7 @@@ // Acquire::Item::Done - Item downloaded OK /*{{{*/ // --------------------------------------------------------------------- /* */ -void pkgAcquire::Item::Done(string Message,unsigned long Size,string Hash, +void pkgAcquire::Item::Done(string Message,unsigned long long Size,string Hash, pkgAcquire::MethodConfig *Cnf) { // We just downloaded something.. @@@ -245,7 -245,7 +245,7 @@@ void pkgAcqSubIndex::Failed(string Mess } } /*}}}*/ -void pkgAcqSubIndex::Done(string Message,unsigned long Size,string Md5Hash, /*{{{*/ +void pkgAcqSubIndex::Done(string Message,unsigned long long Size,string Md5Hash, /*{{{*/ pkgAcquire::MethodConfig *Cnf) { if(Debug) @@@ -544,7 -544,7 +544,7 @@@ void pkgAcqDiffIndex::Failed(string Mes Dequeue(); } /*}}}*/ -void pkgAcqDiffIndex::Done(string Message,unsigned long Size,string Md5Hash, /*{{{*/ +void pkgAcqDiffIndex::Done(string Message,unsigned long long Size,string Md5Hash, /*{{{*/ pkgAcquire::MethodConfig *Cnf) { if(Debug) @@@ -681,17 -681,17 +681,17 @@@ bool pkgAcqIndexDiffs::QueueNextDiff( // remove all patches until the next matching patch is found // this requires the Index file to be ordered for(vector::iterator I=available_patches.begin(); - available_patches.size() > 0 && + available_patches.empty() == false && I != available_patches.end() && - (*I).sha1 != local_sha1; - I++) + I->sha1 != local_sha1; + ++I) { available_patches.erase(I); } // error checking and falling back if no patch was found - if(available_patches.size() == 0) - { + if(available_patches.empty() == true) + { Failed("", NULL); return false; } @@@ -710,7 -710,7 +710,7 @@@ return true; } /*}}}*/ -void pkgAcqIndexDiffs::Done(string Message,unsigned long Size,string Md5Hash, /*{{{*/ +void pkgAcqIndexDiffs::Done(string Message,unsigned long long Size,string Md5Hash, /*{{{*/ pkgAcquire::MethodConfig *Cnf) { if(Debug) @@@ -756,7 -756,7 +756,7 @@@ chmod(FinalFile.c_str(),0644); // see if there is more to download - if(available_patches.size() > 0) { + if(available_patches.empty() == false) { new pkgAcqIndexDiffs(Owner, RealURI, Description, Desc.ShortDesc, ExpectedHash, ServerSha1, available_patches); return Finish(); @@@ -881,7 -881,7 +881,7 @@@ void pkgAcqIndex::Failed(string Message to the uncompressed version of the file. If this is so the file is copied into the partial directory. In all other cases the file is decompressed with a gzip uri. */ -void pkgAcqIndex::Done(string Message,unsigned long Size,string Hash, +void pkgAcqIndex::Done(string Message,unsigned long long Size,string Hash, pkgAcquire::MethodConfig *Cfg) { Item::Done(Message,Size,Hash,Cfg); @@@ -1123,7 -1123,7 +1123,7 @@@ string pkgAcqMetaSig::Custom600Headers( return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime); } -void pkgAcqMetaSig::Done(string Message,unsigned long Size,string MD5, +void pkgAcqMetaSig::Done(string Message,unsigned long long Size,string MD5, pkgAcquire::MethodConfig *Cfg) { Item::Done(Message,Size,MD5,Cfg); @@@ -1232,7 -1232,7 +1232,7 @@@ string pkgAcqMetaIndex::Custom600Header return "\nIndex-File: true\nLast-Modified: " + TimeRFC1123(Buf.st_mtime); } /*}}}*/ -void pkgAcqMetaIndex::Done(string Message,unsigned long Size,string Hash, /*{{{*/ +void pkgAcqMetaIndex::Done(string Message,unsigned long long Size,string Hash, /*{{{*/ pkgAcquire::MethodConfig *Cfg) { Item::Done(Message,Size,Hash,Cfg); @@@ -1375,7 -1375,7 +1375,7 @@@ void pkgAcqMetaIndex::QueueIndexes(boo #endif for (vector ::const_iterator Target = IndexTargets->begin(); Target != IndexTargets->end(); - Target++) + ++Target) { HashString ExpectedIndexHash; if (verify) @@@ -1673,7 -1673,7 +1673,7 @@@ pkgAcqArchive::pkgAcqArchive(pkgAcquir // check if we have one trusted source for the package. if so, switch // to "TrustedOnly" mode - for (pkgCache::VerFileIterator i = Version.FileList(); i.end() == false; i++) + for (pkgCache::VerFileIterator i = Version.FileList(); i.end() == false; ++i) { pkgIndexFile *Index; if (Sources->FindIndex(i.File(),Index) == false) @@@ -1710,7 -1710,7 +1710,7 @@@ bool pkgAcqArchive::QueueNext() { string const ForceHash = _config->Find("Acquire::ForceHash"); - for (; Vf.end() == false; Vf++) + for (; Vf.end() == false; ++Vf) { // Ignore not source sources if ((Vf.File()->Flags & pkgCache::Flag::NotSource) != 0) @@@ -1734,8 -1734,6 +1734,8 @@@ string PkgFile = Parse.FileName(); if (ForceHash.empty() == false) { + if(stringcasecmp(ForceHash, "sha512") == 0) + ExpectedHash = HashString("SHA512", Parse.SHA512Hash()); if(stringcasecmp(ForceHash, "sha256") == 0) ExpectedHash = HashString("SHA256", Parse.SHA256Hash()); else if (stringcasecmp(ForceHash, "sha1") == 0) @@@ -1746,9 -1744,7 +1746,9 @@@ else { string Hash; - if ((Hash = Parse.SHA256Hash()).empty() == false) + if ((Hash = Parse.SHA512Hash()).empty() == false) + ExpectedHash = HashString("SHA512", Hash); + else if ((Hash = Parse.SHA256Hash()).empty() == false) ExpectedHash = HashString("SHA256", Hash); else if ((Hash = Parse.SHA1Hash()).empty() == false) ExpectedHash = HashString("SHA1", Hash); @@@ -1772,7 -1768,7 +1772,7 @@@ if (stat(FinalFile.c_str(),&Buf) == 0) { // Make sure the size matches - if ((unsigned)Buf.st_size == Version->Size) + if ((unsigned long long)Buf.st_size == Version->Size) { Complete = true; Local = true; @@@ -1791,7 -1787,7 +1791,7 @@@ if (stat(FinalFile.c_str(),&Buf) == 0) { // Make sure the size matches - if ((unsigned)Buf.st_size == Version->Size) + if ((unsigned long long)Buf.st_size == Version->Size) { Complete = true; Local = true; @@@ -1811,7 -1807,7 +1811,7 @@@ if (stat(DestFile.c_str(),&Buf) == 0) { // Hmm, the partial file is too big, erase it - if ((unsigned)Buf.st_size > Version->Size) + if ((unsigned long long)Buf.st_size > Version->Size) unlink(DestFile.c_str()); else PartialSize = Buf.st_size; @@@ -1825,7 -1821,7 +1825,7 @@@ Desc.ShortDesc = Version.ParentPkg().Name(); QueueURI(Desc); - Vf++; + ++Vf; return true; } return false; @@@ -1834,7 -1830,7 +1834,7 @@@ // AcqArchive::Done - Finished fetching /*{{{*/ // --------------------------------------------------------------------- /* */ -void pkgAcqArchive::Done(string Message,unsigned long Size,string CalcHash, +void pkgAcqArchive::Done(string Message,unsigned long long Size,string CalcHash, pkgAcquire::MethodConfig *Cfg) { Item::Done(Message,Size,CalcHash,Cfg); @@@ -1899,7 -1895,7 +1899,7 @@@ void pkgAcqArchive::Failed(string Messa StringToBool(LookupTag(Message,"Transient-Failure"),false) == true) { // Vf = Version.FileList(); - while (Vf.end() == false) Vf++; + while (Vf.end() == false) ++Vf; StoreFilename = string(); Item::Failed(Message,Cnf); return; @@@ -1945,7 -1941,7 +1945,7 @@@ void pkgAcqArchive::Finished( // --------------------------------------------------------------------- /* The file is added to the queue */ pkgAcqFile::pkgAcqFile(pkgAcquire *Owner,string URI,string Hash, - unsigned long Size,string Dsc,string ShortDesc, + unsigned long long Size,string Dsc,string ShortDesc, const string &DestDir, const string &DestFilename, bool IsIndexFile) : Item(Owner), ExpectedHash(Hash), IsIndexFile(IsIndexFile) @@@ -1973,7 -1969,7 +1973,7 @@@ if (stat(DestFile.c_str(),&Buf) == 0) { // Hmm, the partial file is too big, erase it - if ((unsigned)Buf.st_size > Size) + if ((unsigned long long)Buf.st_size > Size) unlink(DestFile.c_str()); else PartialSize = Buf.st_size; @@@ -1985,7 -1981,7 +1985,7 @@@ // AcqFile::Done - Item downloaded OK /*{{{*/ // --------------------------------------------------------------------- /* */ -void pkgAcqFile::Done(string Message,unsigned long Size,string CalcHash, +void pkgAcqFile::Done(string Message,unsigned long long Size,string CalcHash, pkgAcquire::MethodConfig *Cnf) { Item::Done(Message,Size,CalcHash,Cnf); @@@ -2073,3 -2069,13 +2073,3 @@@ string pkgAcqFile::Custom600Headers( return ""; } /*}}}*/ -bool IndexTarget::IsOptional() const { - if (strncmp(ShortDesc.c_str(), "Translation", 11) != 0) - return false; - return true; -} -bool IndexTarget::IsSubIndex() const { - if (ShortDesc != "TranslationIndex") - return false; - return true; -} diff --combined apt-pkg/acquire-method.cc index 8c353beb2,7e9061e56..25c6c674d --- a/apt-pkg/acquire-method.cc +++ b/apt-pkg/acquire-method.cc @@@ -81,7 -81,7 +81,7 @@@ void pkgAcqMethod::Fail(bool Transient void pkgAcqMethod::Fail(string Err,bool Transient) { // Strip out junk from the error messages - for (string::iterator I = Err.begin(); I != Err.end(); I++) + for (string::iterator I = Err.begin(); I != Err.end(); ++I) { if (*I == '\r') *I = ' '; @@@ -166,8 -166,6 +166,8 @@@ void pkgAcqMethod::URIDone(FetchResult std::cout << "SHA1-Hash: " << Res.SHA1Sum << "\n"; if (Res.SHA256Sum.empty() == false) std::cout << "SHA256-Hash: " << Res.SHA256Sum << "\n"; + if (Res.SHA512Sum.empty() == false) + std::cout << "SHA512-Hash: " << Res.SHA512Sum << "\n"; if (UsedMirror.empty() == false) std::cout << "UsedMirror: " << UsedMirror << "\n"; if (Res.GPGVOutput.empty() == false) @@@ -201,9 -199,7 +201,9 @@@ std::cout << "Alt-SHA1-Hash: " << Alt->SHA1Sum << "\n"; if (Alt->SHA256Sum.empty() == false) std::cout << "Alt-SHA256-Hash: " << Alt->SHA256Sum << "\n"; - + if (Alt->SHA512Sum.empty() == false) + std::cout << "Alt-SHA512-Hash: " << Alt->SHA512Sum << "\n"; + if (Alt->IMSHit == true) std::cout << "Alt-IMS-Hit: true\n"; } @@@ -425,12 -421,8 +425,8 @@@ void pkgAcqMethod::Status(const char *F to keep the pipeline synchronized. */ void pkgAcqMethod::Redirect(const string &NewURI) { - std::cout << "103 Redirect\nURI: "; - if (Queue != 0) - std::cout << Queue->Uri << "\n"; - else - std::cout << "\n"; - std::cout << "New-URI: " << NewURI << "\n" + std::cout << "103 Redirect\nURI: " << Queue->Uri << "\n" + << "New-URI: " << NewURI << "\n" << "\n" << std::flush; // Change the URI for the request. @@@ -464,6 -456,5 +460,6 @@@ void pkgAcqMethod::FetchResult::TakeHas MD5Sum = Hash.MD5.Result(); SHA1Sum = Hash.SHA1.Result(); SHA256Sum = Hash.SHA256.Result(); + SHA512Sum = Hash.SHA512.Result(); } /*}}}*/ diff --combined apt-pkg/acquire.cc index 06b0f11f8,a2da196be..8c00748b2 --- a/apt-pkg/acquire.cc +++ b/apt-pkg/acquire.cc @@@ -37,9 -37,9 +37,9 @@@ using namespace std // Acquire::pkgAcquire - Constructor /*{{{*/ // --------------------------------------------------------------------- /* We grab some runtime state from the configuration space */ -pkgAcquire::pkgAcquire() : Queues(0), Workers(0), Configs(0), Log(NULL), ToFetch(0), +pkgAcquire::pkgAcquire() : LockFD(-1), Queues(0), Workers(0), Configs(0), Log(NULL), ToFetch(0), Debug(_config->FindB("Debug::pkgAcquire",false)), - Running(false), LockFD(-1) + Running(false) { string const Mode = _config->Find("Acquire::Queue-Mode","host"); if (strcasecmp(Mode.c_str(),"host") == 0) @@@ -47,10 -47,10 +47,10 @@@ if (strcasecmp(Mode.c_str(),"access") == 0) QueueMode = QueueAccess; } -pkgAcquire::pkgAcquire(pkgAcquireStatus *Progress) : Queues(0), Workers(0), +pkgAcquire::pkgAcquire(pkgAcquireStatus *Progress) : LockFD(-1), Queues(0), Workers(0), Configs(0), Log(Progress), ToFetch(0), Debug(_config->FindB("Debug::pkgAcquire",false)), - Running(false), LockFD(-1) + Running(false) { string const Mode = _config->Find("Acquire::Queue-Mode","host"); if (strcasecmp(Mode.c_str(),"host") == 0) @@@ -116,7 -116,7 +116,7 @@@ pkgAcquire::~pkgAcquire( /* */ void pkgAcquire::Shutdown() { - while (Items.size() != 0) + while (Items.empty() == false) { if (Items[0]->Status == Item::StatFetching) Items[0]->Status = Item::StatError; @@@ -155,7 -155,7 +155,7 @@@ void pkgAcquire::Remove(Item *Itm I = Items.begin(); } else - I++; + ++I; } } /*}}}*/ @@@ -411,7 -411,7 +411,7 @@@ pkgAcquire::RunResult pkgAcquire::Run(i I->Shutdown(false); // Shut down the items - for (ItemIterator I = Items.begin(); I != Items.end(); I++) + for (ItemIterator I = Items.begin(); I != Items.end(); ++I) (*I)->Finished(); if (_error->PendingError()) @@@ -467,7 -467,7 +467,7 @@@ bool pkgAcquire::Clean(string Dir // Look in the get list ItemCIterator I = Items.begin(); - for (; I != Items.end(); I++) + for (; I != Items.end(); ++I) if (flNotDir((*I)->DestFile) == Dir->d_name) break; @@@ -488,7 -488,7 +488,7 @@@ unsigned long long pkgAcquire::TotalNeeded() { unsigned long long Total = 0; - for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); I++) + for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); ++I) Total += (*I)->FileSize; return Total; } @@@ -499,7 -499,7 +499,7 @@@ unsigned long long pkgAcquire::FetchNeeded() { unsigned long long Total = 0; - for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); I++) + for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); ++I) if ((*I)->Local == false) Total += (*I)->FileSize; return Total; @@@ -511,7 -511,7 +511,7 @@@ unsigned long long pkgAcquire::PartialPresent() { unsigned long long Total = 0; - for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); I++) + for (ItemCIterator I = ItemsBegin(); I != ItemsEnd(); ++I) if ((*I)->Local == false) Total += (*I)->PartialSize; return Total; @@@ -781,11 -781,11 +781,11 @@@ bool pkgAcquireStatus::Pulse(pkgAcquir unsigned int Unknown = 0; unsigned int Count = 0; for (pkgAcquire::ItemCIterator I = Owner->ItemsBegin(); I != Owner->ItemsEnd(); - I++, Count++) + ++I, ++Count) { TotalItems++; if ((*I)->Status == pkgAcquire::Item::StatDone) - CurrentItems++; + ++CurrentItems; // Totally ignore local items if ((*I)->Local == true) @@@ -795,11 -795,11 +795,11 @@@ if ((*I)->Complete == true) CurrentBytes += (*I)->FileSize; if ((*I)->FileSize == 0 && (*I)->Complete == false) - Unknown++; + ++Unknown; } // Compute the current completion - unsigned long ResumeSize = 0; + unsigned long long ResumeSize = 0; for (pkgAcquire::Worker *I = Owner->WorkersBegin(); I != 0; I = Owner->WorkerStep(I)) if (I->CurrentItem != 0 && I->CurrentItem->Owner->Complete == false) @@@ -838,7 -838,7 +838,7 @@@ else CurrentCPS = ((CurrentBytes - ResumeSize) - LastBytes)/Delta; LastBytes = CurrentBytes - ResumeSize; - ElapsedTime = (unsigned long)Delta; + ElapsedTime = (unsigned long long)Delta; Time = NewTime; } @@@ -849,9 -849,8 +849,9 @@@ char msg[200]; long i = CurrentItems < TotalItems ? CurrentItems + 1 : CurrentItems; - unsigned long ETA = - (unsigned long)((TotalBytes - CurrentBytes) / CurrentCPS); + unsigned long long ETA = 0; + if(CurrentCPS > 0) + ETA = (TotalBytes - CurrentBytes) / CurrentCPS; // only show the ETA if it makes sense if (ETA > 0 && ETA < 172800 /* two days */ ) @@@ -907,13 -906,13 +907,13 @@@ void pkgAcquireStatus::Stop( else CurrentCPS = FetchedBytes/Delta; LastBytes = CurrentBytes; - ElapsedTime = (unsigned int)Delta; + ElapsedTime = (unsigned long long)Delta; } /*}}}*/ // AcquireStatus::Fetched - Called when a byte set has been fetched /*{{{*/ // --------------------------------------------------------------------- /* This is used to get accurate final transfer rate reporting. */ -void pkgAcquireStatus::Fetched(unsigned long Size,unsigned long Resume) +void pkgAcquireStatus::Fetched(unsigned long long Size,unsigned long long Resume) { FetchedBytes += Size - Resume; } diff --combined apt-pkg/algorithms.cc index 8737c5334,5fbcb47be..08d1f8cb7 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@@ -20,15 -20,12 +20,15 @@@ #include #include #include - +#include + #include #include #include #include #include + +#include /*}}}*/ using namespace std; @@@ -94,7 -91,7 +94,7 @@@ bool pkgSimulate::Install(PkgIterator i Sim.MarkInstall(Pkg,false); // Look for broken conflicts+predepends. - for (PkgIterator I = Sim.PkgBegin(); I.end() == false; I++) + for (PkgIterator I = Sim.PkgBegin(); I.end() == false; ++I) { if (Sim[I].InstallVer == 0) continue; @@@ -143,7 -140,7 +143,7 @@@ bool pkgSimulate::Configure(PkgIterato Sim.Update(); // Print out each package and the failed dependencies - for (pkgCache::DepIterator D = Sim[Pkg].InstVerIter(Sim).DependsList(); D.end() == false; D++) + for (pkgCache::DepIterator D = Sim[Pkg].InstVerIter(Sim).DependsList(); D.end() == false; ++D) { if (Sim.IsImportantDep(D) == false || (Sim[D] & pkgDepCache::DepInstall) != 0) @@@ -207,7 -204,7 +207,7 @@@ bool pkgSimulate::Remove(PkgIterator iP void pkgSimulate::ShortBreaks() { cout << " ["; - for (PkgIterator I = Sim.PkgBegin(); I.end() == false; I++) + for (PkgIterator I = Sim.PkgBegin(); I.end() == false; ++I) { if (Sim[I].InstBroken() == true) { @@@ -229,7 -226,7 +229,7 @@@ bool pkgApplyStatus(pkgDepCache &Cache { pkgDepCache::ActionGroup group(Cache); - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { if (I->VersionList == 0) continue; @@@ -298,13 -295,13 +298,13 @@@ bool pkgFixBroken(pkgDepCache &Cache pkgDepCache::ActionGroup group(Cache); // Auto upgrade all broken packages - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) if (Cache[I].NowBroken() == true) Cache.MarkInstall(I, true, 0, false); /* Fix packages that are in a NeedArchive state but don't have a downloadable install version */ - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { if (I.State() != pkgCache::PkgIterator::NeedsUnpack || Cache[I].Delete() == true) @@@ -330,12 -327,6 +330,12 @@@ */ bool pkgDistUpgrade(pkgDepCache &Cache) { + std::string const solver = _config->Find("APT::Solver", "internal"); + if (solver != "internal") { + OpTextProgress Prog(*_config); + return EDSP::ResolveExternal(solver.c_str(), Cache, false, true, false, &Prog); + } + pkgDepCache::ActionGroup group(Cache); /* Upgrade all installed packages first without autoinst to help the resolver @@@ -347,19 -338,19 +347,19 @@@ /* Auto upgrade all installed packages, this provides the basis for the installation */ - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) if (I->CurrentVer != 0) Cache.MarkInstall(I, true, 0, false); /* Now, auto upgrade all essential packages - this ensures that the essential packages are present and working */ - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential) Cache.MarkInstall(I, true, 0, false); /* We do it again over all previously installed packages to force conflict resolution on them all. */ - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) if (I->CurrentVer != 0) Cache.MarkInstall(I, false, 0, false); @@@ -368,7 -359,7 +368,7 @@@ // Hold back held packages. if (_config->FindB("APT::Ignore-Hold",false) == false) { - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { if (I->SelectedState == pkgCache::State::Hold) { @@@ -388,12 -379,6 +388,12 @@@ to install packages not marked for install */ bool pkgAllUpgrade(pkgDepCache &Cache) { + std::string const solver = _config->Find("APT::Solver", "internal"); + if (solver != "internal") { + OpTextProgress Prog(*_config); + return EDSP::ResolveExternal(solver.c_str(), Cache, true, false, false, &Prog); + } + pkgDepCache::ActionGroup group(Cache); pkgProblemResolver Fix(&Cache); @@@ -402,7 -387,7 +402,7 @@@ return false; // Upgrade all installed packages - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { if (Cache[I].Install() == true) Fix.Protect(I); @@@ -436,7 -421,7 +436,7 @@@ bool pkgMinimizeUpgrade(pkgDepCache &Ca do { Change = false; - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { // Not interesting if (Cache[I].Upgrade() == false || Cache[I].NewInstall() == true) @@@ -453,7 -438,7 +453,7 @@@ Change = true; } } - Count++; + ++Count; } while (Change == true && Count < 10); @@@ -540,7 -525,7 +540,7 @@@ void pkgProblemResolver::MakeScores( << " AddEssential => " << AddEssential << endl; // Generate the base scores for a package based on its properties - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { if (Cache[I].InstallVer == 0) continue; @@@ -567,12 -552,12 +567,12 @@@ } // Now that we have the base scores we go and propogate dependencies - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { if (Cache[I].InstallVer == 0) continue; - for (pkgCache::DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); D.end() == false; D++) + for (pkgCache::DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); D.end() == false; ++D) { if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends) @@@ -589,12 -574,12 +589,12 @@@ /* Now we cause 1 level of dependency inheritance, that is we add the score of the packages that depend on the target Package. This fortifies high scoring packages */ - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { if (Cache[I].InstallVer == 0) continue; - for (pkgCache::DepIterator D = I.RevDependsList(); D.end() == false; D++) + for (pkgCache::DepIterator D = I.RevDependsList(); D.end() == false; ++D) { // Only do it for the install version if ((pkgCache::Version *)D.ParentVer() != Cache[D.ParentPkg()].InstallVer || @@@ -609,9 -594,9 +609,9 @@@ /* Now we propogate along provides. This makes the packages that provide important packages extremely important */ - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { - for (pkgCache::PrvIterator P = I.ProvidesList(); P.end() == false; P++) + for (pkgCache::PrvIterator P = I.ProvidesList(); P.end() == false; ++P) { // Only do it once per package if ((pkgCache::Version *)P.OwnerVer() != Cache[P.OwnerPkg()].InstallVer) @@@ -622,7 -607,7 +622,7 @@@ /* Protected things are pushed really high up. This number should put them ahead of everything */ - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { if ((Flags[I->ID] & Protected) != 0) Scores[I->ID] += AddProtected; @@@ -719,7 -704,7 +719,7 @@@ bool pkgProblemResolver::DoUpgrade(pkgC if (Start == End) break; - Start++; + ++Start; } if (Fail == true) break; @@@ -740,20 -725,7 +740,20 @@@ return true; } /*}}}*/ -// ProblemResolver::Resolve - Run the resolution pass /*{{{*/ +// ProblemResolver::Resolve - calls a resolver to fix the situation /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool pkgProblemResolver::Resolve(bool BrokenFix) +{ + std::string const solver = _config->Find("APT::Solver", "internal"); + if (solver != "internal") { + OpTextProgress Prog(*_config); + return EDSP::ResolveExternal(solver.c_str(), Cache, false, false, false, &Prog); + } + return ResolveInternal(BrokenFix); +} + /*}}}*/ +// ProblemResolver::ResolveInternal - Run the resolution pass /*{{{*/ // --------------------------------------------------------------------- /* This routines works by calculating a score for each package. The score is derived by considering the package's priority and all reverse @@@ -767,16 -739,18 +767,16 @@@ The BrokenFix flag enables a mode where the algorithm tries to upgrade packages to advoid problems. */ -bool pkgProblemResolver::Resolve(bool BrokenFix) +bool pkgProblemResolver::ResolveInternal(bool const BrokenFix) { pkgDepCache::ActionGroup group(Cache); - unsigned long Size = Cache.Head().PackageCount; - // Record which packages are marked for install bool Again = false; do { Again = false; - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { if (Cache[I].Install() == true) Flags[I->ID] |= PreInstalled; @@@ -800,16 -774,14 +800,16 @@@ clog << "Starting" << endl; MakeScores(); - + + unsigned long const Size = Cache.Head().PackageCount; + /* We have to order the packages so that the broken fixing pass operates from highest score to lowest. This prevents problems when high score packages cause the removal of lower score packages that would cause the removal of even lower score packages. */ SPtrArray PList = new pkgCache::Package *[Size]; pkgCache::Package **PEnd = PList; - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) *PEnd++ = I; This = this; qsort(PList,PEnd - PList,sizeof(*PList),&ScoreSort); @@@ -929,7 -901,7 +929,7 @@@ } else { - Start++; + ++Start; // We only worry about critical deps. if (Start.IsCritical() != true) continue; @@@ -1178,7 -1150,7 +1178,7 @@@ { // See if this is the result of a hold pkgCache::PkgIterator I = Cache.PkgBegin(); - for (;I.end() != true; I++) + for (;I.end() != true; ++I) { if (Cache[I].InstBroken() == false) continue; @@@ -1190,7 -1162,7 +1190,7 @@@ // set the auto-flags (mvo: I'm not sure if we _really_ need this) pkgCache::PkgIterator I = Cache.PkgBegin(); - for (;I.end() != true; I++) { + for (;I.end() != true; ++I) { if (Cache[I].NewInstall() && !(Flags[I->ID] & PreInstalled)) { if(_config->FindI("Debug::pkgAutoRemove",false)) { std::clog << "Resolve installed new pkg: " << I.FullName(false) @@@ -1235,21 -1207,6 +1235,21 @@@ bool pkgProblemResolver::InstOrNewPolic in that it does not install or remove any packages. It is assumed that the system was non-broken previously. */ bool pkgProblemResolver::ResolveByKeep() +{ + std::string const solver = _config->Find("APT::Solver", "internal"); + if (solver != "internal") { + OpTextProgress Prog(*_config); + return EDSP::ResolveExternal(solver.c_str(), Cache, true, false, false, &Prog); + } + return ResolveByKeepInternal(); +} + /*}}}*/ +// ProblemResolver::ResolveByKeepInternal - Resolve problems using keep /*{{{*/ +// --------------------------------------------------------------------- +/* This is the work horse of the soft upgrade routine. It is very gental + in that it does not install or remove any packages. It is assumed that the + system was non-broken previously. */ +bool pkgProblemResolver::ResolveByKeepInternal() { pkgDepCache::ActionGroup group(Cache); @@@ -1263,7 -1220,7 +1263,7 @@@ would cause the removal of even lower score packages. */ pkgCache::Package **PList = new pkgCache::Package *[Size]; pkgCache::Package **PEnd = PList; - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) *PEnd++ = I; This = this; qsort(PList,PEnd - PList,sizeof(*PList),&ScoreSort); @@@ -1360,7 -1317,7 +1360,7 @@@ if (Start == End) break; - Start++; + ++Start; } if (InstOrNewPolicyBroken(I) == false) @@@ -1387,7 -1344,7 +1387,7 @@@ void pkgProblemResolver::InstallProtect { pkgDepCache::ActionGroup group(Cache); - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { if ((Flags[I->ID] & Protected) == Protected) { @@@ -1467,7 -1424,7 +1467,7 @@@ bool ListUpdate(pkgAcquireStatus &Stat bool Failed = false; bool TransientNetworkFailure = false; for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); - I != Fetcher.ItemsEnd(); I++) + I != Fetcher.ItemsEnd(); ++I) { if ((*I)->Status == pkgAcquire::Item::StatDone) continue; diff --combined apt-pkg/cdrom.cc index 0ad1c69e5,b8acf0cbe..df1ffedf2 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@@ -310,7 -310,7 +310,7 @@@ void pkgCdrom::ReduceSourcelist(string sort(List.begin(),List.end()); // Collect similar entries - for (vector::iterator I = List.begin(); I != List.end(); I++) + for (vector::iterator I = List.begin(); I != List.end(); ++I) { // Find a space.. string::size_type Space = (*I).find(' '); @@@ -322,7 -322,7 +322,7 @@@ string Word1 = string(*I,Space,SSpace-Space); string Prefix = string(*I,0,Space); - for (vector::iterator J = List.begin(); J != I; J++) + for (vector::iterator J = List.begin(); J != I; ++J) { // Find a space.. string::size_type Space2 = (*J).find(' '); @@@ -405,7 -405,7 +405,7 @@@ bool pkgCdrom::WriteDatabase(Configurat that were the same. */ bool pkgCdrom::WriteSourceList(string Name,vector &List,bool Source) { - if (List.size() == 0) + if (List.empty() == true) return true; string File = _config->FindFile("Dir::Etc::sourcelist"); @@@ -455,7 -455,7 +455,7 @@@ if (First == true) { - for (vector::iterator I = List.begin(); I != List.end(); I++) + for (vector::iterator I = List.begin(); I != List.end(); ++I) { string::size_type Space = (*I).find(' '); if (Space == string::npos) @@@ -489,7 -489,7 +489,7 @@@ // Just in case the file was empty if (First == true) { - for (vector::iterator I = List.begin(); I != List.end(); I++) + for (vector::iterator I = List.begin(); I != List.end(); ++I) { string::size_type Space = (*I).find(' '); if (Space == string::npos) @@@ -661,13 -661,13 +661,13 @@@ bool pkgCdrom::Add(pkgCdromStatus *log if (_config->FindB("Debug::aptcdrom",false) == true) { cout << "I found (binary):" << endl; - for (vector::iterator I = List.begin(); I != List.end(); I++) + for (vector::iterator I = List.begin(); I != List.end(); ++I) cout << *I << endl; cout << "I found (source):" << endl; - for (vector::iterator I = SourceList.begin(); I != SourceList.end(); I++) + for (vector::iterator I = SourceList.begin(); I != SourceList.end(); ++I) cout << *I << endl; cout << "I found (Signatures):" << endl; - for (vector::iterator I = SigList.begin(); I != SigList.end(); I++) + for (vector::iterator I = SigList.begin(); I != SigList.end(); ++I) cout << *I << endl; } @@@ -688,7 -688,7 +688,7 @@@ log->Update(msg.str(), STEP_SCAN); } - if (List.size() == 0 && SourceList.size() == 0) + if (List.empty() == true && SourceList.empty() == true) { if (_config->FindB("APT::CDROM::NoMount",false) == false) UnmountCdrom(CDROM); @@@ -712,7 -712,7 +712,7 @@@ { // Escape special characters string::iterator J = Name.begin(); - for (; J != Name.end(); J++) + for (; J != Name.end(); ++J) if (*J == '"' || *J == ']' || *J == '[') *J = '_'; @@@ -757,7 -757,7 +757,7 @@@ // Escape special characters string::iterator J = Name.begin(); - for (; J != Name.end(); J++) + for (; J != Name.end(); ++J) if (*J == '"' || *J == ']' || *J == '[') *J = '_'; @@@ -804,7 -804,7 +804,7 @@@ if(log != NULL) log->Update(_("Source list entries for this disc are:\n")); - for (vector::iterator I = List.begin(); I != List.end(); I++) + for (vector::iterator I = List.begin(); I != List.end(); ++I) { string::size_type Space = (*I).find(' '); if (Space == string::npos) @@@ -823,7 -823,7 +823,7 @@@ } } - for (vector::iterator I = SourceList.begin(); I != SourceList.end(); I++) + for (vector::iterator I = SourceList.begin(); I != SourceList.end(); ++I) { string::size_type Space = (*I).find(' '); if (Space == string::npos) @@@ -874,7 -874,9 +874,7 @@@ pkgUdevCdromDevices::Dlopen( libudev_handle = h; udev_new = (udev* (*)(void)) dlsym(h, "udev_new"); udev_enumerate_add_match_property = (int (*)(udev_enumerate*, const char*, const char*))dlsym(h, "udev_enumerate_add_match_property"); -#if 0 // FIXME: uncomment on next ABI break udev_enumerate_add_match_sysattr = (int (*)(udev_enumerate*, const char*, const char*))dlsym(h, "udev_enumerate_add_match_sysattr"); -#endif udev_enumerate_scan_devices = (int (*)(udev_enumerate*))dlsym(h, "udev_enumerate_scan_devices"); udev_enumerate_get_list_entry = (udev_list_entry* (*)(udev_enumerate*))dlsym(h, "udev_enumerate_get_list_entry"); udev_device_new_from_syspath = (udev_device* (*)(udev*, const char*))dlsym(h, "udev_device_new_from_syspath"); @@@ -888,8 -890,10 +888,8 @@@ return true; } /*}}}*/ - /*{{{*/ -// compatiblity only with the old API/ABI, can be removed on the next -// ABI break +// convenience interface, this will just call ScanForRemovable vector pkgUdevCdromDevices::Scan() { @@@ -914,6 -918,10 +914,6 @@@ pkgUdevCdromDevices::ScanForRemovable(b if (CdromOnly) udev_enumerate_add_match_property(enumerate, "ID_CDROM", "1"); else { -#if 1 // FIXME: remove the next two lines on the next ABI break - int (*udev_enumerate_add_match_sysattr)(struct udev_enumerate *udev_enumerate, const char *property, const char *value); - udev_enumerate_add_match_sysattr = (int (*)(udev_enumerate*, const char*, const char*))dlsym(libudev_handle, "udev_enumerate_add_match_sysattr"); -#endif udev_enumerate_add_match_sysattr(enumerate, "removable", "1"); } diff --combined apt-pkg/deb/deblistparser.cc index 59c4ee365,8d3f6f0ba..952433428 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@@ -128,7 -128,12 +128,7 @@@ bool debListParser::NewVersion(pkgCache } if (ArchitectureAll() == true) - switch (Ver->MultiArch) - { - case pkgCache::Version::Foreign: Ver->MultiArch = pkgCache::Version::AllForeign; break; - case pkgCache::Version::Allowed: Ver->MultiArch = pkgCache::Version::AllAllowed; break; - default: Ver->MultiArch = pkgCache::Version::All; - } + Ver->MultiArch |= pkgCache::Version::All; // Archive Size Ver->Size = Section.FindULL("Size"); @@@ -198,7 -203,7 +198,7 @@@ string debListParser::DescriptionLangua std::vector const lang = APT::Configuration::getLanguages(true); for (std::vector::const_iterator l = lang.begin(); - l != lang.end(); l++) + l != lang.end(); ++l) if (Section.FindS(string("Description-").append(*l).c_str()).empty() == false) return *l; @@@ -685,12 -690,12 +685,12 @@@ bool debListParser::ParseProvides(pkgCa if (MultiArchEnabled == false) return true; - else if (Ver->MultiArch == pkgCache::Version::Allowed || Ver->MultiArch == pkgCache::Version::AllAllowed) + else if ((Ver->MultiArch & pkgCache::Version::Allowed) == pkgCache::Version::Allowed) { string const Package = string(Ver.ParentPkg().Name()).append(":").append("any"); return NewProvidesAllArch(Ver, Package, Ver.VerStr()); } - else if (Ver->MultiArch == pkgCache::Version::Foreign || Ver->MultiArch == pkgCache::Version::AllForeign) + else if ((Ver->MultiArch & pkgCache::Version::Foreign) == pkgCache::Version::Foreign) return NewProvidesAllArch(Ver, Ver.ParentPkg().Name(), Ver.VerStr()); return true; diff --combined apt-pkg/deb/debmetaindex.cc index 81afb22b6,f6c50742e..e1f8219e3 --- a/apt-pkg/deb/debmetaindex.cc +++ b/apt-pkg/deb/debmetaindex.cc @@@ -142,13 -142,11 +142,13 @@@ string debReleaseIndex::TranslationInde return URI + "dists/" + Dist + "/" + TranslationIndexURISuffix(Type, Section); } -debReleaseIndex::debReleaseIndex(string const &URI, string const &Dist) { - this->URI = URI; - this->Dist = Dist; - this->Indexes = NULL; - this->Type = "deb"; +debReleaseIndex::debReleaseIndex(string const &URI, string const &Dist) : + metaIndex(URI, Dist, "deb"), Trusted(CHECK_TRUST) +{} + +debReleaseIndex::debReleaseIndex(string const &URI, string const &Dist, bool const Trusted) : + metaIndex(URI, Dist, "deb") { + SetTrusted(Trusted); } debReleaseIndex::~debReleaseIndex() { @@@ -208,7 -206,7 +208,7 @@@ vector * debRelea for (std::set::const_iterator s = sections.begin(); s != sections.end(); ++s) { for (std::vector::const_iterator l = lang.begin(); - l != lang.end(); l++) { + l != lang.end(); ++l) { if (*l == "none") continue; IndexTarget * Target = new OptionalIndexTarget(); Target->ShortDesc = "Translation-" + *l; @@@ -238,7 -236,7 +238,7 @@@ bool debReleaseIndex::GetIndexes(pkgAcq // special case for --print-uris if (GetAll) { vector *targets = ComputeIndexTargets(); - for (vector ::const_iterator Target = targets->begin(); Target != targets->end(); Target++) { + for (vector ::const_iterator Target = targets->begin(); Target != targets->end(); ++Target) { new pkgAcqIndex(Owner, (*Target)->URI, (*Target)->Description, (*Target)->ShortDesc, HashString()); } @@@ -254,22 -252,8 +254,22 @@@ return true; } +void debReleaseIndex::SetTrusted(bool const Trusted) +{ + if (Trusted == true) + this->Trusted = ALWAYS_TRUSTED; + else + this->Trusted = NEVER_TRUSTED; +} + bool debReleaseIndex::IsTrusted() const { + if (Trusted == ALWAYS_TRUSTED) + return true; + else if (Trusted == NEVER_TRUSTED) + return false; + + if(_config->FindB("APT::Authentication::TrustCDROM", false)) if(URI.substr(0,strlen("cdrom:")) == "cdrom:") return true; @@@ -295,7 -279,7 +295,7 @@@ vector *debReleaseInde if (src != ArchEntries.end()) { vector const SectionEntries = src->second; for (vector::const_iterator I = SectionEntries.begin(); - I != SectionEntries.end(); I++) + I != SectionEntries.end(); ++I) Indexes->push_back(new debSourcesIndex (URI, Dist, (*I)->Section, IsTrusted())); } @@@ -310,7 -294,7 +310,7 @@@ if (a->first == "source") continue; for (vector::const_iterator I = a->second.begin(); - I != a->second.end(); I++) { + I != a->second.end(); ++I) { Indexes->push_back(new debPackagesIndex (URI, Dist, (*I)->Section, IsTrusted(), a->first)); sections[(*I)->Section].insert(lang.begin(), lang.end()); } @@@ -319,7 -303,7 +319,7 @@@ for (map >::const_iterator s = sections.begin(); s != sections.end(); ++s) for (set::const_iterator l = s->second.begin(); - l != s->second.end(); l++) { + l != s->second.end(); ++l) { if (*l == "none") continue; Indexes->push_back(new debTranslationsIndex(URI,Dist,s->first,(*l).c_str())); } @@@ -365,19 -349,15 +365,19 @@@ class debSLTypeDebian : public pkgSourc vector const Archs = (arch != Options.end()) ? VectorizeString(arch->second, ',') : APT::Configuration::getArchitectures(); + map::const_iterator const trusted = Options.find("trusted"); for (vector::const_iterator I = List.begin(); - I != List.end(); I++) + I != List.end(); ++I) { // We only worry about debian entries here if (strcmp((*I)->GetType(), "deb") != 0) continue; debReleaseIndex *Deb = (debReleaseIndex *) (*I); + if (trusted != Options.end()) + Deb->SetTrusted(StringToBool(trusted->second, false)); + /* This check insures that there will be only one Release file queued for all the Packages files and Sources files it corresponds to. */ @@@ -395,14 -375,9 +395,14 @@@ return true; } } + // No currently created Release file indexes this entry, so we create a new one. - // XXX determine whether this release is trusted or not - debReleaseIndex *Deb = new debReleaseIndex(URI, Dist); + debReleaseIndex *Deb; + if (trusted != Options.end()) + Deb = new debReleaseIndex(URI, Dist, StringToBool(trusted->second, false)); + else + Deb = new debReleaseIndex(URI, Dist); + if (IsSrc == true) Deb->PushSectionEntry ("source", new debReleaseIndex::debSectionEntry(Section, IsSrc)); else diff --combined apt-pkg/deb/debrecords.cc index f323c03c2,7f596ab0d..2571aae52 --- a/apt-pkg/deb/debrecords.cc +++ b/apt-pkg/deb/debrecords.cc @@@ -77,7 -77,7 +77,7 @@@ string debRecordParser::SHA1Hash( return Section.FindS("SHA1"); } /*}}}*/ -// RecordParser::SHA1Hash - Return the archive hash /*{{{*/ +// RecordParser::SHA256Hash - Return the archive hash /*{{{*/ // --------------------------------------------------------------------- /* */ string debRecordParser::SHA256Hash() @@@ -85,14 -85,6 +85,14 @@@ return Section.FindS("SHA256"); } /*}}}*/ +// RecordParser::SHA512Hash - Return the archive hash /*{{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::SHA512Hash() +{ + return Section.FindS("SHA512"); +} + /*}}}*/ // RecordParser::Maintainer - Return the maintainer email /*{{{*/ // --------------------------------------------------------------------- /* */ @@@ -101,15 -93,6 +101,15 @@@ string debRecordParser::Maintainer( return Section.FindS("Maintainer"); } /*}}}*/ +// RecordParser::RecordField - Return the value of an arbitrary field /*{{*/ +// --------------------------------------------------------------------- +/* */ +string debRecordParser::RecordField(const char *fieldName) +{ + return Section.FindS(fieldName); +} + + /*}}}*/ // RecordParser::ShortDesc - Return a 1 line description /*{{{*/ // --------------------------------------------------------------------- /* */ @@@ -135,7 -118,7 +135,7 @@@ string debRecordParser::LongDesc( { vector const lang = APT::Configuration::getLanguages(); for (vector::const_iterator l = lang.begin(); - orig.empty() && l != lang.end(); l++) + orig.empty() && l != lang.end(); ++l) orig = Section.FindS(string("Description-").append(*l).c_str()); } diff --combined apt-pkg/deb/dpkgpm.cc index 751e1fbe9,46f48777c..61927ff68 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@@ -26,6 -26,7 +26,6 @@@ #include #include #include -#include #include #include #include @@@ -45,21 -46,6 +45,21 @@@ using namespace std; +class pkgDPkgPMPrivate +{ +public: + pkgDPkgPMPrivate() : dpkgbuf_pos(0), term_out(NULL), history_out(NULL) + { + } + bool stdin_is_dev_null; + // the buffer we use for the dpkg status-fd reading + char dpkgbuf[1024]; + int dpkgbuf_pos; + FILE *term_out; + FILE *history_out; + string dpkg_error; +}; + namespace { // Maps the dpkg "processing" info to human readable names. Entry 0 @@@ -124,9 -110,9 +124,9 @@@ ionice(int PID // --------------------------------------------------------------------- /* */ pkgDPkgPM::pkgDPkgPM(pkgDepCache *Cache) - : pkgPackageManager(Cache), dpkgbuf_pos(0), - term_out(NULL), history_out(NULL), PackagesDone(0), PackagesTotal(0) + : pkgPackageManager(Cache), PackagesDone(0), PackagesTotal(0) { + d = new pkgDPkgPMPrivate(); } /*}}}*/ // DPkgPM::pkgDPkgPM - Destructor /*{{{*/ @@@ -134,7 -120,6 +134,7 @@@ /* */ pkgDPkgPM::~pkgDPkgPM() { + delete d; } /*}}}*/ // DPkgPM::Install - Install a package /*{{{*/ @@@ -228,7 -213,7 +228,7 @@@ bool pkgDPkgPM::SendV2Pkgs(FILE *F fprintf(F,"\n"); // Write out the package actions in order. - for (vector::iterator I = List.begin(); I != List.end(); I++) + for (vector::iterator I = List.begin(); I != List.end(); ++I) { if(I->Pkg.end() == true) continue; @@@ -350,7 -335,7 +350,7 @@@ bool pkgDPkgPM::RunScriptsWithPkgs(cons // Feed it the filenames. if (Version <= 1) { - for (vector::iterator I = List.begin(); I != List.end(); I++) + for (vector::iterator I = List.begin(); I != List.end(); ++I) { // Only deal with packages to be installed from .deb if (I->Op != Item::Install) @@@ -391,7 -376,7 +391,7 @@@ void pkgDPkgPM::DoStdin(int master if (len) write(master, input_buf, len); else - stdin_is_dev_null = true; + d->stdin_is_dev_null = true; } /*}}}*/ // DPkgPM::DoTerminalPty - Read the terminal pty and write log /*{{{*/ @@@ -416,8 -401,8 +416,8 @@@ void pkgDPkgPM::DoTerminalPty(int maste if(len <= 0) return; write(1, term_buf, len); - if(term_out) - fwrite(term_buf, len, sizeof(char), term_out); + if(d->term_out) + fwrite(term_buf, len, sizeof(char), d->term_out); } /*}}}*/ // DPkgPM::ProcessDpkgStatusBuf /*{{{*/ @@@ -621,14 -606,14 +621,14 @@@ void pkgDPkgPM::DoDpkgStatusFd(int stat char *p, *q; int len; - len=read(statusfd, &dpkgbuf[dpkgbuf_pos], sizeof(dpkgbuf)-dpkgbuf_pos); - dpkgbuf_pos += len; + len=read(statusfd, &d->dpkgbuf[d->dpkgbuf_pos], sizeof(d->dpkgbuf)-d->dpkgbuf_pos); + d->dpkgbuf_pos += len; if(len <= 0) return; // process line by line if we have a buffer - p = q = dpkgbuf; - while((q=(char*)memchr(p, '\n', dpkgbuf+dpkgbuf_pos-p)) != NULL) + p = q = d->dpkgbuf; + while((q=(char*)memchr(p, '\n', d->dpkgbuf+d->dpkgbuf_pos-p)) != NULL) { *q = 0; ProcessDpkgStatusLine(OutStatusFd, p); @@@ -636,8 -621,8 +636,8 @@@ } // now move the unprocessed bits (after the final \n that is now a 0x0) - // to the start and update dpkgbuf_pos - p = (char*)memrchr(dpkgbuf, 0, dpkgbuf_pos); + // to the start and update d->dpkgbuf_pos + p = (char*)memrchr(d->dpkgbuf, 0, d->dpkgbuf_pos); if(p == NULL) return; @@@ -645,8 -630,8 +645,8 @@@ p++; // move the unprocessed tail to the start and update pos - memmove(dpkgbuf, p, p-dpkgbuf); - dpkgbuf_pos = dpkgbuf+dpkgbuf_pos-p; + memmove(d->dpkgbuf, p, p-d->dpkgbuf); + d->dpkgbuf_pos = d->dpkgbuf+d->dpkgbuf_pos-p; } /*}}}*/ // DPkgPM::WriteHistoryTag /*{{{*/ @@@ -658,7 -643,7 +658,7 @@@ void pkgDPkgPM::WriteHistoryTag(string // poor mans rstrip(", ") if (value[length-2] == ',' && value[length-1] == ' ') value.erase(length - 2, 2); - fprintf(history_out, "%s: %s\n", tag.c_str(), value.c_str()); + fprintf(d->history_out, "%s: %s\n", tag.c_str(), value.c_str()); } /*}}}*/ // DPkgPM::OpenLog /*{{{*/ bool pkgDPkgPM::OpenLog() @@@ -679,11 -664,11 +679,11 @@@ _config->Find("Dir::Log::Terminal")); if (!logfile_name.empty()) { - term_out = fopen(logfile_name.c_str(),"a"); - if (term_out == NULL) + d->term_out = fopen(logfile_name.c_str(),"a"); + if (d->term_out == NULL) return _error->WarningE("OpenLog", _("Could not open file '%s'"), logfile_name.c_str()); - setvbuf(term_out, NULL, _IONBF, 0); - SetCloseExec(fileno(term_out), true); + setvbuf(d->term_out, NULL, _IONBF, 0); + SetCloseExec(fileno(d->term_out), true); struct passwd *pw; struct group *gr; pw = getpwnam("root"); @@@ -691,7 -676,7 +691,7 @@@ if (pw != NULL && gr != NULL) chown(logfile_name.c_str(), pw->pw_uid, gr->gr_gid); chmod(logfile_name.c_str(), 0644); - fprintf(term_out, "\nLog started: %s\n", timestr); + fprintf(d->term_out, "\nLog started: %s\n", timestr); } // write your history @@@ -699,13 -684,13 +699,13 @@@ _config->Find("Dir::Log::History")); if (!history_name.empty()) { - history_out = fopen(history_name.c_str(),"a"); - if (history_out == NULL) + d->history_out = fopen(history_name.c_str(),"a"); + if (d->history_out == NULL) return _error->WarningE("OpenLog", _("Could not open file '%s'"), history_name.c_str()); chmod(history_name.c_str(), 0644); - fprintf(history_out, "\nStart-Date: %s\n", timestr); + fprintf(d->history_out, "\nStart-Date: %s\n", timestr); string remove, purge, install, reinstall, upgrade, downgrade; - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { enum { CANDIDATE, CANDIDATE_AUTO, CURRENT_CANDIDATE, CURRENT } infostring; string *line = NULL; @@@ -744,7 -729,7 +744,7 @@@ WriteHistoryTag("Downgrade",downgrade); WriteHistoryTag("Remove",remove); WriteHistoryTag("Purge",purge); - fflush(history_out); + fflush(d->history_out); } return true; @@@ -758,16 -743,16 +758,16 @@@ bool pkgDPkgPM::CloseLog( struct tm *tmp = localtime(&t); strftime(timestr, sizeof(timestr), "%F %T", tmp); - if(term_out) + if(d->term_out) { - fprintf(term_out, "Log ended: "); - fprintf(term_out, "%s", timestr); - fprintf(term_out, "\n"); - fclose(term_out); + fprintf(d->term_out, "Log ended: "); + fprintf(d->term_out, "%s", timestr); + fprintf(d->term_out, "\n"); + fclose(d->term_out); } - term_out = NULL; + d->term_out = NULL; - if(history_out) + if(d->history_out) { if (disappearedPkgs.empty() == false) { @@@ -784,12 -769,12 +784,12 @@@ } WriteHistoryTag("Disappeared", disappear); } - if (dpkg_error.empty() == false) - fprintf(history_out, "Error: %s\n", dpkg_error.c_str()); - fprintf(history_out, "End-Date: %s\n", timestr); - fclose(history_out); + if (d->dpkg_error.empty() == false) + fprintf(d->history_out, "Error: %s\n", d->dpkg_error.c_str()); + fprintf(d->history_out, "End-Date: %s\n", timestr); + fclose(d->history_out); } - history_out = NULL; + d->history_out = NULL; return true; } @@@ -883,21 -868,21 +883,21 @@@ bool pkgDPkgPM::Go(int OutStatusFd // that will be [installed|configured|removed|purged] and add // them to the PackageOps map (the dpkg states it goes through) // and the PackageOpsTranslations (human readable strings) - for (vector::const_iterator I = List.begin(); I != List.end();I++) + for (vector::const_iterator I = List.begin(); I != List.end(); ++I) { if((*I).Pkg.end() == true) continue; string const name = (*I).Pkg.Name(); PackageOpsDone[name] = 0; - for(int i=0; (DpkgStatesOpMap[(*I).Op][i]).state != NULL; i++) + for(int i=0; (DpkgStatesOpMap[(*I).Op][i]).state != NULL; ++i) { PackageOps[name].push_back(DpkgStatesOpMap[(*I).Op][i]); PackagesTotal++; } } - stdin_is_dev_null = false; + d->stdin_is_dev_null = false; // create log OpenLog(); @@@ -908,7 -893,7 +908,7 @@@ // Do all actions with the same Op in one run vector::const_iterator J = I; if (TriggersPending == true) - for (; J != List.end(); J++) + for (; J != List.end(); ++J) { if (J->Op == I->Op) continue; @@@ -920,7 -905,7 +920,7 @@@ break; } else - for (; J != List.end() && J->Op == I->Op; J++) + for (; J != List.end() && J->Op == I->Op; ++J) /* nothing */; // Generate the argument list @@@ -1026,7 -1011,7 +1026,7 @@@ // Write in the file or package names if (I->Op == Item::Install) { - for (;I != J && Size < MaxArgBytes; I++) + for (;I != J && Size < MaxArgBytes; ++I) { if (I->File[0] != '/') return _error->Error("Internal Error, Pathname to install is not absolute '%s'",I->File.c_str()); @@@ -1038,7 -1023,7 +1038,7 @@@ { string const nativeArch = _config->Find("APT::Architecture"); unsigned long const oldSize = I->Op == Item::Configure ? Size : 0; - for (;I != J && Size < MaxArgBytes; I++) + for (;I != J && Size < MaxArgBytes; ++I) { if((*I).Pkg.end() == true) continue; @@@ -1097,8 -1082,8 +1097,8 @@@ const char *s = _("Can not write log, openpty() " "failed (/dev/pts not mounted?)\n"); fprintf(stderr, "%s",s); - if(term_out) - fprintf(term_out, "%s",s); + if(d->term_out) + fprintf(d->term_out, "%s",s); master = slave = -1; } else { struct termios rtt; @@@ -1228,7 -1213,7 +1228,7 @@@ // wait for input or output here FD_ZERO(&rfds); - if (master >= 0 && !stdin_is_dev_null) + if (master >= 0 && !d->stdin_is_dev_null) FD_SET(0, &rfds); FD_SET(_dpkgin, &rfds); if(master >= 0) @@@ -1282,14 -1267,14 +1282,14 @@@ RunScripts("DPkg::Post-Invoke"); if (WIFSIGNALED(Status) != 0 && WTERMSIG(Status) == SIGSEGV) - strprintf(dpkg_error, "Sub-process %s received a segmentation fault.",Args[0]); + strprintf(d->dpkg_error, "Sub-process %s received a segmentation fault.",Args[0]); else if (WIFEXITED(Status) != 0) - strprintf(dpkg_error, "Sub-process %s returned an error code (%u)",Args[0],WEXITSTATUS(Status)); + strprintf(d->dpkg_error, "Sub-process %s returned an error code (%u)",Args[0],WEXITSTATUS(Status)); else - strprintf(dpkg_error, "Sub-process %s exited unexpectedly",Args[0]); + strprintf(d->dpkg_error, "Sub-process %s exited unexpectedly",Args[0]); - if(dpkg_error.size() > 0) - _error->Error("%s", dpkg_error.c_str()); + if(d->dpkg_error.size() > 0) + _error->Error("%s", d->dpkg_error.c_str()); if(stopOnError) { @@@ -1341,7 -1326,7 +1341,7 @@@ void pkgDPkgPM::WriteApportReport(cons string::size_type pos; FILE *report; - if (_config->FindB("Dpkg::ApportFailureReport", false) == false) + if (_config->FindB("Dpkg::ApportFailureReport", true) == false) { std::clog << "configured to not write apport reports" << std::endl; return; @@@ -1368,49 -1353,18 +1368,49 @@@ } // do not report out-of-memory failures - if(strstr(errormsg, strerror(ENOMEM)) != NULL) { + if(strstr(errormsg, strerror(ENOMEM)) != NULL || + strstr(errormsg, "failed to allocate memory") != NULL) { std::clog << _("No apport report written because the error message indicates a out of memory error") << std::endl; return; } - // do not report dpkg I/O errors - // XXX - this message is localized, but this only matches the English version. This is better than nothing. - if(strstr(errormsg, "short read in buffer_copy (")) { - std::clog << _("No apport report written because the error message indicates a dpkg I/O error") << std::endl; + // do not report bugs regarding inaccessible local files + if(strstr(errormsg, strerror(ENOENT)) != NULL || + strstr(errormsg, "cannot access archive") != NULL) { + std::clog << _("No apport report written because the error message indicates an issue on the local system") << std::endl; return; } + // do not report errors encountered when decompressing packages + if(strstr(errormsg, "--fsys-tarfile returned error exit status 2") != NULL) { + std::clog << _("No apport report written because the error message indicates an issue on the local system") << std::endl; + return; + } + + // do not report dpkg I/O errors, this is a format string, so we compare + // the prefix and the suffix of the error with the dpkg error message + vector io_errors; + io_errors.push_back(string("failed to read on buffer copy for %s")); + io_errors.push_back(string("failed in write on buffer copy for %s")); + io_errors.push_back(string("short read on buffer copy for %s")); + + for (vector::iterator I = io_errors.begin(); I != io_errors.end(); I++) + { + vector list = VectorizeString(dgettext("dpkg", (*I).c_str()), '%'); + if (list.size() > 1) { + // we need to split %s, VectorizeString only allows char so we need + // to kill the "s" manually + if (list[1].size() > 1) { + list[1].erase(0, 1); + if(strstr(errormsg, list[0].c_str()) && + strstr(errormsg, list[1].c_str())) { + std::clog << _("No apport report written because the error message indicates a dpkg I/O error") << std::endl; + return; + } + } + } + } + // get the pkgname and reportfile pkgname = flNotDir(pkgpath); pos = pkgname.find('_'); @@@ -1484,8 -1438,8 +1484,8 @@@ fprintf(report, "ErrorMessage:\n %s\n", errormsg); // ensure that the log is flushed - if(term_out) - fflush(term_out); + if(d->term_out) + fflush(d->term_out); // attach terminal log it if we have it string logfile_name = _config->FindFile("Dir::Log::Terminal"); @@@ -1497,24 -1451,6 +1497,24 @@@ fprintf(report, "DpkgTerminalLog:\n"); log = fopen(logfile_name.c_str(),"r"); if(log != NULL) + { + while( fgets(buf, sizeof(buf), log) != NULL) + fprintf(report, " %s", buf); + fprintf(report, " \n"); + fclose(log); + } + } + + // attach history log it if we have it + string histfile_name = _config->FindFile("Dir::Log::History"); + if (!histfile_name.empty()) + { + FILE *log = NULL; + char buf[1024]; + + fprintf(report, "DpkgHistoryLog:\n"); + log = fopen(histfile_name.c_str(),"r"); + if(log != NULL) { while( fgets(buf, sizeof(buf), log) != NULL) fprintf(report, " %s", buf); @@@ -1525,7 -1461,7 +1525,7 @@@ // log the ordering const char *ops_str[] = {"Install", "Configure","Remove","Purge"}; fprintf(report, "AptOrdering:\n"); - for (vector::iterator I = List.begin(); I != List.end(); I++) + for (vector::iterator I = List.begin(); I != List.end(); ++I) fprintf(report, " %s: %s\n", (*I).Pkg.Name(), ops_str[(*I).Op]); // attach dmesg log (to learn about segfaults) diff --combined apt-pkg/depcache.cc index 9123b1c12,580056687..9104c5d56 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@@ -129,7 -129,7 +129,7 @@@ bool pkgDepCache::Init(OpProgress *Prog /* Set the current state of everything. In this state all of the packages are kept exactly as is. See AllUpgrade */ int Done = 0; - for (PkgIterator I = PkgBegin(); I.end() != true; I++,Done++) + for (PkgIterator I = PkgBegin(); I.end() != true; ++I, ++Done) { if (Prog != 0 && Done%20 == 0) Prog->Progress(Done); @@@ -292,7 -292,7 +292,7 @@@ bool pkgDepCache::writeStateFile(OpProg // then write the ones we have not seen yet std::ostringstream ostr; - for(pkgCache::PkgIterator pkg=Cache->PkgBegin(); !pkg.end(); pkg++) { + for(pkgCache::PkgIterator pkg=Cache->PkgBegin(); !pkg.end(); ++pkg) { StateCache const &P = PkgState[pkg->ID]; if(P.Flags & Flag::Auto) { if (pkgs_seen.find(pkg.FullName()) != pkgs_seen.end()) { @@@ -365,7 -365,7 +365,7 @@@ bool pkgDepCache::CheckDep(DepIterator // Check the providing packages PrvIterator P = Dep.TargetPkg().ProvidesList(); PkgIterator Pkg = Dep.ParentPkg(); - for (; P.end() != true; P++) + for (; P.end() != true; ++P) { /* Provides may never be applied against the same package (or group) if it is a conflicts. See the comment above. */ @@@ -406,8 -406,60 +406,8 @@@ /*}}}*/ // DepCache::AddSizes - Add the packages sizes to the counters /*{{{*/ // --------------------------------------------------------------------- -/* Call with Mult = -1 to preform the inverse opration - The Mult increases the complexity of the calulations here and is unused - - or do we really have a usecase for removing the size of a package two - times? So let us replace it with a simple bool and be done with it… */ -__deprecated void pkgDepCache::AddSizes(const PkgIterator &Pkg,signed long Mult) -{ - StateCache &P = PkgState[Pkg->ID]; - - if (Pkg->VersionList == 0) - return; - - if (Pkg.State() == pkgCache::PkgIterator::NeedsConfigure && - P.Keep() == true) - return; - - // Compute the size data - if (P.NewInstall() == true) - { - iUsrSize += (signed long long)(Mult*P.InstVerIter(*this)->InstalledSize); - iDownloadSize += (signed long long)(Mult*P.InstVerIter(*this)->Size); - return; - } - - // Upgrading - if (Pkg->CurrentVer != 0 && - (P.InstallVer != (Version *)Pkg.CurrentVer() || - (P.iFlags & ReInstall) == ReInstall) && P.InstallVer != 0) - { - iUsrSize += (signed long long)(Mult*((signed long long)P.InstVerIter(*this)->InstalledSize - - (signed long long)Pkg.CurrentVer()->InstalledSize)); - iDownloadSize += (signed long long)(Mult*P.InstVerIter(*this)->Size); - return; - } - - // Reinstall - if (Pkg.State() == pkgCache::PkgIterator::NeedsUnpack && - P.Delete() == false) - { - iDownloadSize += (signed long long)(Mult*P.InstVerIter(*this)->Size); - return; - } - - // Removing - if (Pkg->CurrentVer != 0 && P.InstallVer == 0) - { - iUsrSize -= (signed long long)(Mult*Pkg.CurrentVer()->InstalledSize); - return; - } -} - /*}}}*/ -// DepCache::AddSizes - Add the packages sizes to the counters /*{{{*/ -// --------------------------------------------------------------------- /* Call with Inverse = true to preform the inverse opration */ -void pkgDepCache::AddSizes(const PkgIterator &Pkg, bool const &Inverse) +void pkgDepCache::AddSizes(const PkgIterator &Pkg, bool const Inverse) { StateCache &P = PkgState[Pkg->ID]; @@@ -478,9 -530,8 +478,9 @@@ calld Remove/Add itself. Remember, dependencies can be circular so while processing a dep for Pkg it is possible that Add/Remove will be called on Pkg */ -void pkgDepCache::AddStates(const PkgIterator &Pkg,int Add) +void pkgDepCache::AddStates(const PkgIterator &Pkg, bool const Invert) { + signed char const Add = (Invert == false) ? 1 : -1; StateCache &State = PkgState[Pkg->ID]; // The Package is broken (either minimal dep or policy dep) @@@ -534,7 -585,7 +534,7 @@@ void pkgDepCache::BuildGroupOrs(VerIter { unsigned char Group = 0; - for (DepIterator D = V.DependsList(); D.end() != true; D++) + for (DepIterator D = V.DependsList(); D.end() != true; ++D) { // Build the dependency state. unsigned char &State = DepState[D->ID]; @@@ -574,7 -625,7 +574,7 @@@ unsigned char pkgDepCache::VersionState // Compute a single dependency element (glob or) DepIterator Start = D; unsigned char State = 0; - for (bool LastOR = true; D.end() == false && LastOR == true; D++) + for (bool LastOR = true; D.end() == false && LastOR == true; ++D) { State |= DepState[D->ID]; LastOR = (D->CompareOp & Dep::Or) == Dep::Or; @@@ -664,15 -715,15 +664,15 @@@ void pkgDepCache::Update(OpProgress *Pr // Perform the depends pass int Done = 0; - for (PkgIterator I = PkgBegin(); I.end() != true; I++,Done++) + for (PkgIterator I = PkgBegin(); I.end() != true; ++I, ++Done) { if (Prog != 0 && Done%20 == 0) Prog->Progress(Done); - for (VerIterator V = I.VersionList(); V.end() != true; V++) + for (VerIterator V = I.VersionList(); V.end() != true; ++V) { unsigned char Group = 0; - for (DepIterator D = V.DependsList(); D.end() != true; D++) + for (DepIterator D = V.DependsList(); D.end() != true; ++D) { // Build the dependency state. unsigned char &State = DepState[D->ID]; @@@ -709,7 -760,7 +709,7 @@@ void pkgDepCache::Update(DepIterator D) { // Update the reverse deps - for (;D.end() != true; D++) + for (;D.end() != true; ++D) { unsigned char &State = DepState[D->ID]; State = DependencyState(D); @@@ -742,30 -793,30 +742,30 @@@ void pkgDepCache::Update(PkgIterator co // Update the provides map for the current ver if (Pkg->CurrentVer != 0) for (PrvIterator P = Pkg.CurrentVer().ProvidesList(); - P.end() != true; P++) + P.end() != true; ++P) Update(P.ParentPkg().RevDependsList()); // Update the provides map for the candidate ver if (PkgState[Pkg->ID].CandidateVer != 0) for (PrvIterator P = PkgState[Pkg->ID].CandidateVerIter(*this).ProvidesList(); - P.end() != true; P++) + P.end() != true; ++P) Update(P.ParentPkg().RevDependsList()); } /*}}}*/ // DepCache::MarkKeep - Put the package in the keep state /*{{{*/ // --------------------------------------------------------------------- /* */ -void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser, +bool pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser, unsigned long Depth) { if (IsModeChangeOk(ModeKeep, Pkg, Depth, FromUser) == false) - return; + return false; /* Reject an attempt to keep a non-source broken installed package, those must be upgraded */ if (Pkg.State() == PkgIterator::NeedsUnpack && Pkg.CurrentVer().Downloadable() == false) - return; + return false; /* We changed the soft state all the time so the UI is a bit nicer to use */ @@@ -773,7 -824,7 +773,7 @@@ // Check that it is not already kept if (P.Mode == ModeKeep) - return; + return true; if (Soft == true) P.iFlags |= AutoKept; @@@ -806,31 -857,31 +806,31 @@@ P.InstallVer = Pkg.CurrentVer(); AddStates(Pkg); - Update(Pkg); - AddSizes(Pkg); + + return true; } /*}}}*/ // DepCache::MarkDelete - Put the package in the delete state /*{{{*/ // --------------------------------------------------------------------- /* */ -void pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge, +bool pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge, unsigned long Depth, bool FromUser) { if (IsModeChangeOk(ModeDelete, Pkg, Depth, FromUser) == false) - return; + return false; StateCache &P = PkgState[Pkg->ID]; // Check that it is not already marked for delete if ((P.Mode == ModeDelete || P.InstallVer == 0) && (Pkg.Purge() == true || rPurge == false)) - return; + return true; // check if we are allowed to remove the package if (IsDeleteOk(Pkg,rPurge,Depth,FromUser) == false) - return; + return false; P.iFlags &= ~(AutoKept | Purge); if (rPurge == true) @@@ -854,7 -905,6 +854,7 @@@ Update(Pkg); AddSizes(Pkg); + return true; } /*}}}*/ // DepCache::IsDeleteOk - check if it is ok to remove this package /*{{{*/ @@@ -867,7 -917,6 +867,7 @@@ bool pkgDepCache::IsDeleteOk(PkgIterato if (FromUser == false && Pkg->CurrentVer == 0) { StateCache &P = PkgState[Pkg->ID]; + // Status == 2 means this applies for new installs only if (P.InstallVer != 0 && P.Status == 2 && (P.Flags & Flag::Auto) != Flag::Auto) { if (DebugMarker == true) @@@ -936,18 -985,18 +936,18 @@@ bool pkgDepCache::IsModeChangeOk(ModeLi // DepCache::MarkInstall - Put the package in the install state /*{{{*/ // --------------------------------------------------------------------- /* */ -void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, +bool pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, unsigned long Depth, bool FromUser, bool ForceImportantDeps) { if (IsModeChangeOk(ModeInstall, Pkg, Depth, FromUser) == false) - return; + return false; StateCache &P = PkgState[Pkg->ID]; // See if there is even any possible instalation candidate if (P.CandidateVer == 0) - return; + return false; /* Check that it is not already marked for install and that it can be installed */ @@@ -956,13 -1005,13 +956,13 @@@ P.CandidateVer == (Version *)Pkg.CurrentVer())) { if (P.CandidateVer == (Version *)Pkg.CurrentVer() && P.InstallVer == 0) - MarkKeep(Pkg, false, FromUser, Depth+1); - return; + return MarkKeep(Pkg, false, FromUser, Depth+1); + return true; } // check if we are allowed to install the package if (IsInstallOk(Pkg,AutoInst,Depth,FromUser) == false) - return; + return false; ActionGroup group(*this); P.iFlags &= ~AutoKept; @@@ -997,8 -1046,8 +997,8 @@@ Update(Pkg); AddSizes(Pkg); - if (AutoInst == false) - return; + if (AutoInst == false || _config->Find("APT::Solver", "internal") != "internal") + return true; if (DebugMarker == true) std::clog << OutputInDepth(Depth) << "MarkInstall " << Pkg << " FU=" << FromUser << std::endl; @@@ -1010,7 -1059,7 +1010,7 @@@ DepIterator Start = Dep; bool Result = true; unsigned Ors = 0; - for (bool LastOR = true; Dep.end() == false && LastOR == true; Dep++,Ors++) + for (bool LastOR = true; Dep.end() == false && LastOR == true; ++Dep, ++Ors) { LastOR = (Dep->CompareOp & Dep::Or) == Dep::Or; @@@ -1042,7 -1091,7 +1042,7 @@@ continue; // if the dependency was critical, we can't install it, so remove it again MarkDelete(Pkg,false,Depth + 1, false); - return; + return false; } /* Check if any ImportantDep() (but not Critical) were added @@@ -1173,17 -1222,14 +1173,17 @@@ continue; if (PkgState[Pkg->ID].CandidateVer != *I && - Start->Type == Dep::DpkgBreaks) - MarkInstall(Pkg,true,Depth + 1, false, ForceImportantDeps); - else - MarkDelete(Pkg,false,Depth + 1, false); + Start->Type == Dep::DpkgBreaks && + MarkInstall(Pkg,true,Depth + 1, false, ForceImportantDeps) == true) + continue; + else if (MarkDelete(Pkg,false,Depth + 1, false) == false) + break; } continue; } } + + return Dep.end() == true; } /*}}}*/ // DepCache::IsInstallOk - check if it is ok to install this package /*{{{*/ @@@ -1222,7 -1268,7 +1222,7 @@@ void pkgDepCache::SetReInstall(PkgItera // DepCache::SetCandidateVersion - Change the candidate version /*{{{*/ // --------------------------------------------------------------------- /* */ -void pkgDepCache::SetCandidateVersion(VerIterator TargetVer, bool const &Pseudo) +void pkgDepCache::SetCandidateVersion(VerIterator TargetVer) { pkgCache::PkgIterator Pkg = TargetVer.ParentPkg(); StateCache &P = PkgState[Pkg->ID]; @@@ -1476,12 -1522,12 +1476,12 @@@ pkgCache::VerIterator pkgDepCache::Poli unless they are already installed */ VerIterator Last(*(pkgCache *)this,0); - for (VerIterator I = Pkg.VersionList(); I.end() == false; I++) + for (VerIterator I = Pkg.VersionList(); I.end() == false; ++I) { if (Pkg.CurrentVer() == I) return I; - for (VerFileIterator J = I.FileList(); J.end() == false; J++) + for (VerFileIterator J = I.FileList(); J.end() == false; ++J) { if ((J.File()->Flags & Flag::NotSource) != 0) continue; @@@ -1512,7 -1558,7 +1512,7 @@@ bool pkgDepCache::Policy::IsImportantDe return true; else if(Dep->Type == pkgCache::Dep::Recommends) { - if ( _config->FindB("APT::Install-Recommends", false)) + if (InstallRecommends) return true; // we suport a special mode to only install-recommends for certain // sections @@@ -1523,17 -1569,11 +1523,17 @@@ return true; } else if(Dep->Type == pkgCache::Dep::Suggests) - return _config->FindB("APT::Install-Suggests", false); + return InstallSuggests; return false; } /*}}}*/ +// Policy::GetPriority - Get the priority of the package pin /*{{{*/ +signed short pkgDepCache::Policy::GetPriority(pkgCache::PkgIterator const &Pkg) +{ return 0; }; +signed short pkgDepCache::Policy::GetPriority(pkgCache::PkgFileIterator const &File) +{ return 0; }; + /*}}}*/ pkgDepCache::InRootSetFunc *pkgDepCache::GetRootSetFunc() /*{{{*/ { DefaultRootSetFunc *f = new DefaultRootSetFunc; @@@ -1559,9 -1599,6 +1559,9 @@@ bool pkgDepCache::MarkFollowsSuggests( // pkgDepCache::MarkRequired - the main mark algorithm /*{{{*/ bool pkgDepCache::MarkRequired(InRootSetFunc &userFunc) { + if (_config->Find("APT::Solver", "internal") != "internal") + return true; + bool follow_recommends; bool follow_suggests; bool debug_autoremove = _config->FindB("Debug::pkgAutoRemove",false); diff --combined apt-pkg/depcache.h index d935c1887,760f0b589..66cb7dbab --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@@ -233,7 -233,6 +233,7 @@@ class pkgDepCache : protected pkgCache: inline bool Delete() const {return Mode == ModeDelete;}; inline bool Purge() const {return Delete() == true && (iFlags & pkgDepCache::Purge) == pkgDepCache::Purge; }; inline bool Keep() const {return Mode == ModeKeep;}; + inline bool Protect() const {return (iFlags & Protected) == Protected;}; inline bool Upgrade() const {return Status > 0 && Mode == ModeInstall;}; inline bool Upgradable() const {return Status >= 1;}; inline bool Downgrade() const {return Status < 0 && Mode == ModeInstall;}; @@@ -258,21 -257,11 +258,21 @@@ class Policy { public: - + Policy() { + InstallRecommends = _config->FindB("APT::Install-Recommends", false); + InstallSuggests = _config->FindB("APT::Install-Suggests", false); + } + virtual VerIterator GetCandidateVer(PkgIterator const &Pkg); virtual bool IsImportantDep(DepIterator const &Dep); - + virtual signed short GetPriority(PkgIterator const &Pkg); + virtual signed short GetPriority(PkgFileIterator const &File); + virtual ~Policy() {}; + + private: + bool InstallRecommends; + bool InstallSuggests; }; private: @@@ -326,10 -315,11 +326,10 @@@ void Update(PkgIterator const &P); // Count manipulators - void AddSizes(const PkgIterator &Pkg, bool const &Invert = false); + void AddSizes(const PkgIterator &Pkg, bool const Invert = false); inline void RemoveSizes(const PkgIterator &Pkg) {AddSizes(Pkg, true);}; - void AddSizes(const PkgIterator &Pkg,signed long Mult) __deprecated; - void AddStates(const PkgIterator &Pkg,int Add = 1); - inline void RemoveStates(const PkgIterator &Pkg) {AddStates(Pkg,-1);}; + void AddStates(const PkgIterator &Pkg, bool const Invert = false); + inline void RemoveStates(const PkgIterator &Pkg) {AddStates(Pkg,true);}; public: @@@ -398,17 -388,18 +398,17 @@@ /** \name State Manipulators */ // @{ - void MarkKeep(PkgIterator const &Pkg, bool Soft = false, + bool MarkKeep(PkgIterator const &Pkg, bool Soft = false, bool FromUser = true, unsigned long Depth = 0); - bool MarkDelete(PkgIterator const &Pkg, bool Purge = false, - void MarkDelete(PkgIterator const &Pkg, bool MarkPurge = false, ++ bool MarkDelete(PkgIterator const &Pkg, bool MarkPurge = false, unsigned long Depth = 0, bool FromUser = true); - void MarkInstall(PkgIterator const &Pkg,bool AutoInst = true, + bool MarkInstall(PkgIterator const &Pkg,bool AutoInst = true, unsigned long Depth = 0, bool FromUser = true, bool ForceImportantDeps = false); void MarkProtected(PkgIterator const &Pkg) { PkgState[Pkg->ID].iFlags |= Protected; }; void SetReInstall(PkgIterator const &Pkg,bool To); - // FIXME: Remove the unused boolean parameter on abi break - void SetCandidateVersion(VerIterator TargetVer, bool const &Pseudo = true); + void SetCandidateVersion(VerIterator TargetVer); bool SetCandidateRelease(pkgCache::VerIterator TargetVer, std::string const &TargetRel); /** Set the candidate version for dependencies too if needed. @@@ -468,7 -459,7 +468,7 @@@ * \param Depth recursive deep of this Marker call * \param FromUser was the remove requested by the user? */ - virtual bool IsDeleteOk(const PkgIterator &Pkg,bool Purge = false, + virtual bool IsDeleteOk(const PkgIterator &Pkg,bool MarkPurge = false, unsigned long Depth = 0, bool FromUser = true); // read persistent states @@@ -493,6 -484,13 +493,6 @@@ virtual ~pkgDepCache(); private: - // Helper for Update(OpProgress) to remove pseudoinstalled arch all packages - // FIXME: they are private so shouldn't affect abi, but just in case… - __deprecated bool RemovePseudoInstalledPkg(PkgIterator &Pkg, std::set &recheck) { return true; }; - __deprecated bool ReInstallPseudoForGroup(unsigned long const &Grp, std::set &recheck) { return true; }; - __deprecated bool ReInstallPseudoForGroup(pkgCache::PkgIterator const &P, std::set &recheck) { return true; }; - - bool IsModeChangeOk(ModeList const mode, PkgIterator const &Pkg, unsigned long const Depth, bool const FromUser); }; diff --combined apt-pkg/packagemanager.cc index 1ae09347a,060cd3248..a3ba26f7c --- a/apt-pkg/packagemanager.cc +++ b/apt-pkg/packagemanager.cc @@@ -63,7 -63,7 +63,7 @@@ bool pkgPackageManager::GetArchives(pkg if (ordering == false) return _error->Error("Internal ordering error"); - for (pkgOrderList::iterator I = List->begin(); I != List->end(); I++) + for (pkgOrderList::iterator I = List->begin(); I != List->end(); ++I) { PkgIterator Pkg(Cache,*I); FileNames[Pkg->ID] = string(); @@@ -99,7 -99,7 +99,7 @@@ bool pkgPackageManager::FixMissing( List->SetFileList(FileNames); bool Bad = false; - for (PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { if (List->IsMissing(I) == false) continue; @@@ -140,7 -140,7 +140,7 @@@ void pkgPackageManager::ImmediateAdd(Pk D = I.CurrentVer().DependsList(); } - for ( /* nothing */ ; D.end() == false; D++) + for ( /* nothing */ ; D.end() == false; ++D) if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends) { if(!List->IsFlag(D.TargetPkg(), pkgOrderList::Immediate)) @@@ -169,7 -169,7 +169,7 @@@ bool pkgPackageManager::CreateOrderList static bool const NoImmConfigure = !_config->FindB("APT::Immediate-Configure",true); // Generate the list of affected packages and sort it - for (PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) + for (PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) { // Ignore no-version packages if (I->VersionList == 0) @@@ -229,7 -229,7 +229,7 @@@ bool pkgPackageManager::DepAlwaysTrue(D bool pkgPackageManager::CheckRConflicts(PkgIterator Pkg,DepIterator D, const char *Ver) { - for (;D.end() == false; D++) + for (;D.end() == false; ++D) { if (D->Type != pkgCache::Dep::Conflicts && D->Type != pkgCache::Dep::Obsoletes) @@@ -262,7 -262,7 +262,7 @@@ bool pkgPackageManager::ConfigureAll( pkgOrderList OList(&Cache); // Populate the order list - for (pkgOrderList::iterator I = List->begin(); I != List->end(); I++) + for (pkgOrderList::iterator I = List->begin(); I != List->end(); ++I) if (List->IsFlag(pkgCache::PkgIterator(Cache,*I), pkgOrderList::UnPacked) == true) OList.push_back(*I); @@@ -274,7 -274,7 +274,7 @@@ bool const ConfigurePkgs = (conf == "all"); // Perform the configuring - for (pkgOrderList::iterator I = OList.begin(); I != OList.end(); I++) + for (pkgOrderList::iterator I = OList.begin(); I != OList.end(); ++I) { PkgIterator Pkg(Cache,*I); @@@ -309,7 -309,7 +309,7 @@@ bool pkgPackageManager::SmartConfigure( return false; // Perform the configuring - for (pkgOrderList::iterator I = OList.begin(); I != OList.end(); I++) + for (pkgOrderList::iterator I = OList.begin(); I != OList.end(); ++I) { PkgIterator Pkg(Cache,*I); @@@ -319,7 -319,7 +319,7 @@@ List->Flag(Pkg,pkgOrderList::Configured,pkgOrderList::States); } - if (Cache[Pkg].InstVerIter(Cache)->MultiArch == pkgCache::Version::Same) + if ((Cache[Pkg].InstVerIter(Cache)->MultiArch & pkgCache::Version::Same) == pkgCache::Version::Same) for (PkgIterator P = Pkg.Group().PackageList(); P.end() == false; P = Pkg.Group().NextPkg(P)) { @@@ -364,13 -364,13 +364,13 @@@ bool pkgPackageManager::DepAdd(pkgOrder { if (D->Type != pkgCache::Dep::Depends && D->Type != pkgCache::Dep::PreDepends) { - D++; + ++D; continue; } // Grok or groups Bad = true; - for (bool LastOR = true; D.end() == false && LastOR == true; D++) + for (bool LastOR = true; D.end() == false && LastOR == true; ++D) { LastOR = (D->CompareOp & pkgCache::Dep::Or) == pkgCache::Dep::Or; @@@ -378,7 -378,7 +378,7 @@@ continue; SPtrArray VList = D.AllTargets(); - for (Version **I = VList; *I != 0 && Bad == true; I++) + for (Version **I = VList; *I != 0 && Bad == true; ++I) { VerIterator Ver(Cache,*I); PkgIterator Pkg = Ver.ParentPkg(); @@@ -444,7 -444,7 +444,7 @@@ bool pkgPackageManager::EarlyRemove(Pkg if (Pkg->CurrentVer != 0) { for (DepIterator D = Pkg.RevDependsList(); D.end() == false && - IsEssential == false; D++) + IsEssential == false; ++D) if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends) if ((D.ParentPkg()->Flags & pkgCache::Flag::Essential) != 0) IsEssential = true; @@@ -564,7 -564,7 +564,7 @@@ bool pkgPackageManager::SmartUnPack(Pkg return _error->Error("Couldn't configure pre-depend %s for %s, " "probably a dependency cycle.", End.TargetPkg().Name(),Pkg.Name()); - Start++; + ++Start; } else break; @@@ -597,12 -597,12 +597,12 @@@ return false; for (PrvIterator P = instVer.ProvidesList(); - P.end() == false; P++) + P.end() == false; ++P) CheckRConflicts(Pkg,P.ParentPkg().RevDependsList(),P.ProvideVersion()); List->Flag(Pkg,pkgOrderList::UnPacked,pkgOrderList::States); - if (instVer->MultiArch == pkgCache::Version::Same) + if ((instVer->MultiArch & pkgCache::Version::Same) == pkgCache::Version::Same) for (PkgIterator P = Pkg.Group().PackageList(); P.end() == false; P = Pkg.Group().NextPkg(P)) { @@@ -652,7 -652,7 +652,7 @@@ pkgPackageManager::OrderResult pkgPacka clog << "Done ordering" << endl; bool DoneSomething = false; - for (pkgOrderList::iterator I = List->begin(); I != List->end(); I++) + for (pkgOrderList::iterator I = List->begin(); I != List->end(); ++I) { PkgIterator Pkg(Cache,*I); @@@ -701,7 -701,7 +701,7 @@@ return Failed; // Sanity check - for (pkgOrderList::iterator I = List->begin(); I != List->end(); I++) + for (pkgOrderList::iterator I = List->begin(); I != List->end(); ++I) { if (List->IsFlag(*I,pkgOrderList::Configured) == false) { diff --combined apt-pkg/pkgcache.cc index 2b8cb6b86,ed24d9ea8..faccafbef --- a/apt-pkg/pkgcache.cc +++ b/apt-pkg/pkgcache.cc @@@ -84,8 -84,6 +84,8 @@@ pkgCache::Header::Header( memset(PkgHashTable,0,sizeof(PkgHashTable)); memset(GrpHashTable,0,sizeof(GrpHashTable)); memset(Pools,0,sizeof(Pools)); + + CacheFileSize = 0; } /*}}}*/ // Cache::Header::CheckSizes - Check if the two headers have same *sz /*{{{*/ @@@ -157,9 -155,6 +157,9 @@@ bool pkgCache::ReMap(bool const &Errorc HeaderP->CheckSizes(DefHeader) == false) return _error->Error(_("The package cache file is an incompatible version")); + if (Map.Size() < HeaderP->CacheFileSize) + return _error->Error(_("The package cache file is corrupted, it is too small")); + // Locate our VS.. if (HeaderP->VerSysName == 0 || (VS = pkgVersioningSystem::GetVS(StrP + HeaderP->VerSysName)) == 0) @@@ -180,7 -175,7 +180,7 @@@ unsigned long pkgCache::sHash(const string &Str) const { unsigned long Hash = 0; - for (string::const_iterator I = Str.begin(); I != Str.end(); I++) + for (string::const_iterator I = Str.begin(); I != Str.end(); ++I) Hash = 5*Hash + tolower_ascii(*I); return Hash % _count(HeaderP->PkgHashTable); } @@@ -188,7 -183,7 +188,7 @@@ unsigned long pkgCache::sHash(const char *Str) const { unsigned long Hash = 0; - for (const char *I = Str; *I != 0; I++) + for (const char *I = Str; *I != 0; ++I) Hash = 5*Hash + tolower_ascii(*I); return Hash % _count(HeaderP->PkgHashTable); } @@@ -574,7 -569,7 +574,7 @@@ bool pkgCache::DepIterator::SmartTarget virtual package libc-dev which is provided by libc5-dev and libc6-dev we must ignore libc5-dev when considering the provides list. */ PrvIterator PStart = Result.ProvidesList(); - for (; PStart.end() != true && PStart.OwnerPkg() == ParentPkg(); PStart++); + for (; PStart.end() != true && PStart.OwnerPkg() == ParentPkg(); ++PStart); // Nothing but indirect self provides if (PStart.end() == true) @@@ -582,7 -577,7 +582,7 @@@ // Check for single packages in the provides list PrvIterator P = PStart; - for (; P.end() != true; P++) + for (; P.end() != true; ++P) { // Skip over self provides if (P.OwnerPkg() == ParentPkg()) @@@ -616,7 -611,7 +616,7 @@@ pkgCache::Version **pkgCache::DepIterat PkgIterator DPkg = TargetPkg(); // Walk along the actual package providing versions - for (VerIterator I = DPkg.VersionList(); I.end() == false; I++) + for (VerIterator I = DPkg.VersionList(); I.end() == false; ++I) { if (Owner->VS->CheckDep(I.VerStr(),S->CompareOp,TargetVer()) == false) continue; @@@ -631,7 -626,7 +631,7 @@@ } // Follow all provides - for (PrvIterator I = DPkg.ProvidesList(); I.end() == false; I++) + for (PrvIterator I = DPkg.ProvidesList(); I.end() == false; ++I) { if (Owner->VS->CheckDep(I.ProvideVersion(),S->CompareOp,TargetVer()) == false) continue; @@@ -722,7 -717,7 +722,7 @@@ int pkgCache::VerIterator::CompareVer(c /* Start at A and look for B. If B is found then A > B otherwise B was before A so A < B */ VerIterator I = *this; - for (;I.end() == false; I++) + for (;I.end() == false; ++I) if (I == B) return 1; return -1; @@@ -734,7 -729,7 +734,7 @@@ bool pkgCache::VerIterator::Downloadable() const { VerFileIterator Files = FileList(); - for (; Files.end() == false; Files++) + for (; Files.end() == false; ++Files) if ((Files.File()->Flags & pkgCache::Flag::NotSource) != pkgCache::Flag::NotSource) return true; return false; @@@ -747,13 -742,16 +747,13 @@@ bool pkgCache::VerIterator::Automatic() const { VerFileIterator Files = FileList(); - for (; Files.end() == false; Files++) + for (; Files.end() == false; ++Files) // Do not check ButAutomaticUpgrades here as it is kind of automatic… if ((Files.File()->Flags & pkgCache::Flag::NotAutomatic) != pkgCache::Flag::NotAutomatic) return true; return false; } /*}}}*/ -// VerIterator::Pseudo - deprecated no-op method /*{{{*/ -bool pkgCache::VerIterator::Pseudo() const { return false; } - /*}}}*/ // VerIterator::NewestFile - Return the newest file version relation /*{{{*/ // --------------------------------------------------------------------- /* This looks at the version numbers associated with all of the sources @@@ -762,7 -760,7 +762,7 @@@ pkgCache::VerFileIterator pkgCache::Ver { VerFileIterator Files = FileList(); VerFileIterator Highest = Files; - for (; Files.end() == false; Files++) + for (; Files.end() == false; ++Files) { if (Owner->VS->CmpReleaseVer(Files.File().Version(),Highest.File().Version()) > 0) Highest = Files; @@@ -779,7 -777,7 +779,7 @@@ string pkgCache::VerIterator::RelStr() { bool First = true; string Res; - for (pkgCache::VerFileIterator I = this->FileList(); I.end() == false; I++) + for (pkgCache::VerFileIterator I = this->FileList(); I.end() == false; ++I) { // Do not print 'not source' entries' pkgCache::PkgFileIterator File = I.File(); @@@ -788,7 -786,7 +788,7 @@@ // See if we have already printed this out.. bool Seen = false; - for (pkgCache::VerFileIterator J = this->FileList(); I != J; J++) + for (pkgCache::VerFileIterator J = this->FileList(); I != J; ++J) { pkgCache::PkgFileIterator File2 = J.File(); if (File2->Label == 0 || File->Label == 0) @@@ -889,7 -887,7 +889,7 @@@ pkgCache::DescIterator pkgCache::VerIte { std::vector const lang = APT::Configuration::getLanguages(); for (std::vector::const_iterator l = lang.begin(); - l != lang.end(); l++) + l != lang.end(); ++l) { pkgCache::DescIterator Desc = DescriptionList(); for (; Desc.end() == false; ++Desc) diff --combined apt-pkg/pkgcachegen.cc index 49a7f7adc,dc5a830bd..f41bb5a0a --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@@ -98,7 -98,6 +98,7 @@@ pkgCacheGenerator::~pkgCacheGenerator( return; Cache.HeaderP->Dirty = false; + Cache.HeaderP->CacheFileSize = Map.Size(); Map.Sync(0,sizeof(pkgCache::Header)); } /*}}}*/ @@@ -221,7 -220,7 +221,7 @@@ bool pkgCacheGenerator::MergeList(ListP // don't add a new description if we have one for the given // md5 && language - for ( ; Desc.end() == false; Desc++) + for ( ; Desc.end() == false; ++Desc) if (MD5SumValue(Desc.md5()) == CurMd5 && Desc.LanguageCode() == List.DescriptionLanguage()) duplicate=true; @@@ -230,7 -229,7 +230,7 @@@ for (Desc = Ver.DescriptionList(); Desc.end() == false; - LastDesc = &Desc->NextDesc, Desc++) + LastDesc = &Desc->NextDesc, ++Desc) { if (MD5SumValue(Desc.md5()) == CurMd5) { @@@ -396,7 -395,7 +396,7 @@@ bool pkgCacheGenerator::MergeFileProvid unsigned long Hash = List.VersionHash(); pkgCache::VerIterator Ver = Pkg.VersionList(); Dynamic DynVer(Ver); - for (; Ver.end() == false; Ver++) + for (; Ver.end() == false; ++Ver) { if (Ver->Hash == Hash && Version.c_str() == Ver.VerStr()) { @@@ -512,7 -511,7 +512,7 @@@ bool pkgCacheGenerator::NewFileVer(pkgC // Link it to the end of the list map_ptrloc *Last = &Ver->FileList; - for (pkgCache::VerFileIterator V = Ver.FileList(); V.end() == false; V++) + for (pkgCache::VerFileIterator V = Ver.FileList(); V.end() == false; ++V) Last = &V->NextFile; VF->NextFile = *Last; *Last = VF.Index(); @@@ -569,7 -568,7 +569,7 @@@ bool pkgCacheGenerator::NewFileDesc(pkg // Link it to the end of the list map_ptrloc *Last = &Desc->FileList; - for (pkgCache::DescFileIterator D = Desc.FileList(); D.end() == false; D++) + for (pkgCache::DescFileIterator D = Desc.FileList(); D.end() == false; ++D) Last = &D->NextFile; DF->NextFile = *Last; @@@ -624,7 -623,7 +624,7 @@@ bool pkgCacheGenerator::FinishCache(OpP // Create Conflicts in between the group pkgCache::GrpIterator G = GetCache().GrpBegin(); Dynamic DynG(G); - for (; G.end() != true; G++) + for (; G.end() != true; ++G) { string const PkgName = G.Name(); pkgCache::PkgIterator P = G.PackageList(); @@@ -635,7 -634,7 +635,7 @@@ Dynamic DynallPkg(allPkg); pkgCache::VerIterator V = P.VersionList(); Dynamic DynV(V); - for (; V.end() != true; V++) + for (; V.end() != true; ++V) { // copy P.Arch() into a string here as a cache remap // in NewDepends() later may alter the pointer location @@@ -729,7 -728,7 +729,7 @@@ bool pkgCacheGenerator::NewDepends(pkgC if (OldDepLast == NULL) { OldDepLast = &Ver->DependsList; - for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false; D++) + for (pkgCache::DepIterator D = Ver.DependsList(); D.end() == false; ++D) OldDepLast = &D->NextDepends; } else if (oldMap != Map.Data()) OldDepLast += (map_ptrloc*) Map.Data() - (map_ptrloc*) oldMap; @@@ -959,7 -958,7 +959,7 @@@ static bool CheckValidity(const string verify the IMS data and check that it is on the disk too.. */ SPtrArray Visited = new bool[Cache.HeaderP->PackageFileCount]; memset(Visited,0,sizeof(*Visited)*Cache.HeaderP->PackageFileCount); - for (; Start != End; Start++) + for (; Start != End; ++Start) { if (Debug == true) std::clog << "Checking PkgFile " << (*Start)->Describe() << ": "; @@@ -1026,7 -1025,7 +1026,7 @@@ static unsigned long ComputeSize(FileIterator Start,FileIterator End) { unsigned long TotalSize = 0; - for (; Start != End; Start++) + for (; Start != End; ++Start) { if ((*Start)->HasPackages() == false) continue; @@@ -1044,7 -1043,7 +1044,7 @@@ static bool BuildCache(pkgCacheGenerato FileIterator Start, FileIterator End) { FileIterator I; - for (I = Start; I != End; I++) + for (I = Start; I != End; ++I) { if ((*I)->HasPackages() == false) continue; @@@ -1074,7 -1073,7 +1074,7 @@@ Progress->Done(); TotalSize = ComputeSize(Start, End); CurrentSize = 0; - for (I = Start; I != End; I++) + for (I = Start; I != End; ++I) { unsigned long Size = (*I)->Size(); if (Progress != NULL) @@@ -1121,12 -1120,12 +1121,12 @@@ bool pkgCacheGenerator::MakeStatusCache vector Files; for (vector::const_iterator i = List.begin(); i != List.end(); - i++) + ++i) { vector *Indexes = (*i)->GetIndexFiles(); for (vector::const_iterator j = Indexes->begin(); j != Indexes->end(); - j++) + ++j) Files.push_back (*j); } diff --combined apt-pkg/policy.cc index 2c22fe0da,6a5130d48..0cc77e0af --- a/apt-pkg/policy.cc +++ b/apt-pkg/policy.cc @@@ -81,7 -81,7 +81,7 @@@ pkgPolicy::pkgPolicy(pkgCache *Owner) bool pkgPolicy::InitDefaults() { // Initialize the priorities based on the status of the package file - for (pkgCache::PkgFileIterator I = Cache->FileBegin(); I != Cache->FileEnd(); I++) + for (pkgCache::PkgFileIterator I = Cache->FileBegin(); I != Cache->FileEnd(); ++I) { PFPriority[I->ID] = 500; if ((I->Flags & pkgCache::Flag::NotSource) == pkgCache::Flag::NotSource) @@@ -98,10 -98,10 +98,10 @@@ signed Cur = 989; StatusOverride = false; for (vector::const_iterator I = Defaults.begin(); I != Defaults.end(); - I++, Cur--) + ++I, --Cur) { pkgVersionMatch Match(I->Data,I->Type); - for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F != Cache->FileEnd(); F++) + for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F != Cache->FileEnd(); ++F) { if (Match.FileMatch(F) == true && Fixed[F->ID] == false) { @@@ -122,7 -122,7 +122,7 @@@ } if (_config->FindB("Debug::pkgPolicy",false) == true) - for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F != Cache->FileEnd(); F++) + for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F != Cache->FileEnd(); ++F) std::clog << "Prio of " << F.FileName() << ' ' << PFPriority[F->ID] << std::endl; return true; @@@ -162,12 -162,12 +162,12 @@@ pkgCache::VerIterator pkgPolicy::GetCan tracks the default when the default is taken away, and a permanent pin that stays at that setting. */ - for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() == false; Ver++) + for (pkgCache::VerIterator Ver = Pkg.VersionList(); Ver.end() == false; ++Ver) { /* Lets see if this version is the installed version */ bool instVer = (Pkg.CurrentVer() == Ver); - for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false; VF++) + for (pkgCache::VerFileIterator VF = Ver.FileList(); VF.end() == false; ++VF) { /* If this is the status file, and the current version is not the version in the status file (ie it is not installed, or somesuch) @@@ -319,10 -319,6 +319,10 @@@ signed short pkgPolicy::GetPriority(pkg } return 0; +} +signed short pkgPolicy::GetPriority(pkgCache::PkgFileIterator const &File) +{ + return PFPriority[File->ID]; } /*}}}*/ // PreferenceSection class - Overriding the default TrimRecord method /*{{{*/ @@@ -360,7 -356,7 +360,7 @@@ bool ReadPinDir(pkgPolicy &Plcy,string vector const List = GetListOfFilesInDir(Dir, "pref", true, true); // Read the files - for (vector::const_iterator I = List.begin(); I != List.end(); I++) + for (vector::const_iterator I = List.begin(); I != List.end(); ++I) if (ReadPinFile(Plcy, *I) == false) return false; return true; diff --combined apt-pkg/sourcelist.cc index aaff16316,a25358bf2..47800b0c2 --- a/apt-pkg/sourcelist.cc +++ b/apt-pkg/sourcelist.cc @@@ -173,7 -173,7 +173,7 @@@ pkgSourceList::pkgSourceList(string Fil /* */ pkgSourceList::~pkgSourceList() { - for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++) + for (const_iterator I = SrcList.begin(); I != SrcList.end(); ++I) delete *I; } /*}}}*/ @@@ -218,7 -218,7 +218,7 @@@ bool pkgSourceList::ReadMainList( /* */ void pkgSourceList::Reset() { - for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++) + for (const_iterator I = SrcList.begin(); I != SrcList.end(); ++I) delete *I; SrcList.erase(SrcList.begin(),SrcList.end()); } @@@ -296,11 -296,11 +296,11 @@@ bool pkgSourceList::ReadAppend(string F bool pkgSourceList::FindIndex(pkgCache::PkgFileIterator File, pkgIndexFile *&Found) const { - for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++) + for (const_iterator I = SrcList.begin(); I != SrcList.end(); ++I) { vector *Indexes = (*I)->GetIndexFiles(); for (vector::const_iterator J = Indexes->begin(); - J != Indexes->end(); J++) + J != Indexes->end(); ++J) { if ((*J)->FindInCache(*File.Cache()) == File) { @@@ -318,7 -318,7 +318,7 @@@ /* */ bool pkgSourceList::GetIndexes(pkgAcquire *Owner, bool GetAll) const { - for (const_iterator I = SrcList.begin(); I != SrcList.end(); I++) + for (const_iterator I = SrcList.begin(); I != SrcList.end(); ++I) if ((*I)->GetIndexes(Owner,GetAll) == false) return false; return true; @@@ -334,7 -334,7 +334,7 @@@ bool pkgSourceList::ReadSourceDir(strin vector const List = GetListOfFilesInDir(Dir, "list", true); // Read the files - for (vector::const_iterator I = List.begin(); I != List.end(); I++) + for (vector::const_iterator I = List.begin(); I != List.end(); ++I) if (ReadAppend(*I) == false) return false; return true; @@@ -346,18 -346,14 +346,18 @@@ /* */ time_t pkgSourceList::GetLastModifiedTime() { - // go over the parts + vector List; + string Main = _config->FindFile("Dir::Etc::sourcelist"); string Parts = _config->FindDir("Dir::Etc::sourceparts"); - vector const List = GetListOfFilesInDir(Parts, "list", true); + + // go over the parts + if (DirectoryExists(Parts) == true) + List = GetListOfFilesInDir(Parts, "list", true); // calculate the time time_t mtime_sources = GetModificationTime(Main); - for (vector::const_iterator I = List.begin(); I != List.end(); I++) + for (vector::const_iterator I = List.begin(); I != List.end(); ++I) mtime_sources = std::max(mtime_sources, GetModificationTime(*I)); return mtime_sources; diff --combined apt-pkg/tagfile.h index 23f5c57e6,a101d7b1e..3a2dee7c7 --- a/apt-pkg/tagfile.h +++ b/apt-pkg/tagfile.h @@@ -23,16 -23,16 +23,16 @@@ #include #include - + class pkgTagSection { const char *Section; - // We have a limit of 256 tags per section. unsigned int Indexes[256]; unsigned int AlphaIndexes[0x100]; - unsigned int TagCount; + // dpointer placeholder (for later in case we need it) + void *d; /* This very simple hash function for the last 8 letters gives very good performance on the debian package files */ @@@ -44,6 -44,7 +44,6 @@@ return Res & 0xFF; } - protected: const char *Stop; @@@ -78,14 -79,18 +78,14 @@@ Stop = this->Stop; }; - pkgTagSection() : Section(0), Stop(0) {}; + pkgTagSection() : Section(0), TagCount(0), Stop(0) {}; + virtual ~pkgTagSection() {}; }; +class pkgTagFilePrivate; class pkgTagFile { - FileFd &Fd; - char *Buffer; - char *Start; - char *End; - bool Done; - unsigned long iOffset; - unsigned long Size; + pkgTagFilePrivate *d; bool Fill(); bool Resize(); @@@ -93,11 -98,11 +93,11 @@@ public: bool Step(pkgTagSection &Section); - inline unsigned long Offset() {return iOffset;}; + unsigned long Offset(); bool Jump(pkgTagSection &Tag,unsigned long Offset); pkgTagFile(FileFd *F,unsigned long Size = 32*1024); - ~pkgTagFile(); + virtual ~pkgTagFile(); }; /* This is the list of things to rewrite. The rewriter diff --combined cmdline/apt-get.cc index 2c84176fc,1849f1335..df33e8547 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@@ -135,11 -135,6 +135,11 @@@ bool YnPrompt(bool Default=true c1out << _("Y") << endl; return true; } + else if (_config->FindB("APT::Get::Assume-No",false) == true) + { + c1out << _("N") << endl; + return false; + } char response[1024] = ""; cin.getline(response, sizeof(response)); @@@ -368,7 -363,7 +368,7 @@@ void ShowBroken(ostream &out,CacheFile if (Start == End) break; - Start++; + ++Start; } } } @@@ -542,7 -537,7 +542,7 @@@ bool ShowEssential(ostream &out,CacheFi continue; // Print out any essential package depenendents that are to be removed - for (pkgCache::DepIterator D = I.CurrentVer().DependsList(); D.end() == false; D++) + for (pkgCache::DepIterator D = I.CurrentVer().DependsList(); D.end() == false; ++D) { // Skip everything but depends if (D->Type != pkgCache::Dep::PreDepends && @@@ -579,7 -574,7 +579,7 @@@ void Stats(ostream &out,pkgDepCache &De unsigned long Downgrade = 0; unsigned long Install = 0; unsigned long ReInstall = 0; - for (pkgCache::PkgIterator I = Dep.PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Dep.PkgBegin(); I.end() == false; ++I) { if (Dep[I].NewInstall() == true) Install++; @@@ -671,7 -666,7 +671,7 @@@ public } // if we found no candidate which provide this package, show non-candidates if (provider == 0) - for (I = Pkg.ProvidesList(); I.end() == false; I++) + for (I = Pkg.ProvidesList(); I.end() == false; ++I) out << " " << I.OwnerPkg().FullName(true) << " " << I.OwnerVer().VerStr() << _(" [Not candidate version]") << endl; else @@@ -687,7 -682,7 +687,7 @@@ SPtrArray Seen = new bool[Cache.GetPkgCache()->Head().PackageCount]; memset(Seen,0,Cache.GetPkgCache()->Head().PackageCount*sizeof(*Seen)); for (pkgCache::DepIterator Dep = Pkg.RevDependsList(); - Dep.end() == false; Dep++) { + Dep.end() == false; ++Dep) { if (Dep->Type != pkgCache::Dep::Replaces) continue; if (Seen[Dep.ParentPkg()->ID] == true) @@@ -874,9 -869,7 +874,7 @@@ struct TryToInstall struct TryToRemove { pkgCacheFile* Cache; pkgProblemResolver* Fix; - bool FixBroken; bool PurgePkgs; - unsigned long AutoMarkChanged; TryToRemove(pkgCacheFile &Cache, pkgProblemResolver *PM) : Cache(&Cache), Fix(PM), PurgePkgs(_config->FindB("APT::Get::Purge", false)) {}; @@@ -928,7 -921,7 +926,7 @@@ void CacheFile::Sort( List = new pkgCache::Package *[Cache->Head().PackageCount]; memset(List,0,sizeof(*List)*Cache->Head().PackageCount); pkgCache::PkgIterator I = Cache->PkgBegin(); - for (;I.end() != true; I++) + for (;I.end() != true; ++I) List[I->ID] = I; SortCache = *this; @@@ -960,7 -953,7 +958,7 @@@ bool CacheFile::CheckDeps(bool AllowBro if ((DCache->PolicyBrokenCount() > 0)) { // upgrade all policy-broken packages with ForceImportantDeps=True - for (pkgCache::PkgIterator I = Cache->PkgBegin(); !I.end(); I++) + for (pkgCache::PkgIterator I = Cache->PkgBegin(); !I.end(); ++I) if ((*DCache)[I].NowPolicyBroken() == true) DCache->MarkInstall(I,true,0, false, true); } @@@ -1051,7 -1044,7 +1049,7 @@@ bool InstallPackages(CacheFile &Cache,b if (_config->FindB("APT::Get::Purge",false) == true) { pkgCache::PkgIterator I = Cache->PkgBegin(); - for (; I.end() == false; I++) + for (; I.end() == false; ++I) { if (I.Purge() == false && Cache[I].Mode == pkgDepCache::ModeDelete) Cache->MarkDelete(I,true); @@@ -1245,7 -1238,7 +1243,7 @@@ if (_config->FindB("APT::Get::Print-URIs") == true) { pkgAcquire::UriIterator I = Fetcher.UriBegin(); - for (; I != Fetcher.UriEnd(); I++) + for (; I != Fetcher.UriEnd(); ++I) cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << I->Owner->FileSize << ' ' << I->Owner->HashSum() << endl; return true; @@@ -1269,7 -1262,7 +1267,7 @@@ { if ((*I)->Local == true) { - I++; + ++I; continue; } @@@ -1289,7 -1282,7 +1287,7 @@@ // Print out errors bool Failed = false; - for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); I++) + for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); ++I) { if ((*I)->Status == pkgAcquire::Item::StatDone && (*I)->Complete == true) @@@ -1449,7 -1442,7 +1447,7 @@@ pkgSrcRecords::Parser *FindSrc(const ch // we have a default release, try to locate the pkg. we do it like // this because GetCandidateVer() will not "downgrade", that means // "apt-get source -t stable apt" won't work on a unstable system - for (pkgCache::VerIterator Ver = Pkg.VersionList();; Ver++) + for (pkgCache::VerIterator Ver = Pkg.VersionList();; ++Ver) { // try first only exact matches, later fuzzy matches if (Ver.end() == true) @@@ -1470,7 -1463,7 +1468,7 @@@ continue; for (pkgCache::VerFileIterator VF = Ver.FileList(); - VF.end() == false; VF++) + VF.end() == false; ++VF) { /* If this is the status file, and the current version is not the version in the status file (ie it is not installed, or somesuch) @@@ -1622,7 -1615,7 +1620,7 @@@ bool DoUpdate(CommandLine &CmdL return false; pkgAcquire::UriIterator I = Fetcher.UriBegin(); - for (; I != Fetcher.UriEnd(); I++) + for (; I != Fetcher.UriEnd(); ++I) cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << I->Owner->FileSize << ' ' << I->Owner->HashSum() << endl; return true; @@@ -1899,7 -1892,8 +1897,7 @@@ bool DoInstall(CommandLine &CmdL { // Call the scored problem resolver Fix->InstallProtect(); - if (Fix->Resolve(true) == false) - _error->Discard(); + Fix->Resolve(true); delete Fix; } @@@ -1925,11 -1919,8 +1923,11 @@@ c1out << _("The following information may help to resolve the situation:") << endl; c1out << endl; ShowBroken(c1out,Cache,false); - return _error->Error(_("Broken packages")); - } + if (_error->PendingError() == true) + return false; + else + return _error->Error(_("Broken packages")); + } } if (!DoAutomaticRemove(Cache)) return false; @@@ -2007,7 -1998,7 +2005,7 @@@ if(Start.TargetPkg().ProvidesList() != 0) { pkgCache::PrvIterator I = Start.TargetPkg().ProvidesList(); - for (; I.end() == false; I++) + for (; I.end() == false; ++I) { pkgCache::PkgIterator Pkg = I.OwnerPkg(); if (Cache[Pkg].CandidateVerIter(Cache) == I.OwnerVer() && @@@ -2030,7 -2021,7 +2028,7 @@@ if (Start >= End) break; - Start++; + ++Start; } if(foundInstalledInOrGroup == false) @@@ -2144,7 -2135,7 +2142,7 @@@ bool DoDSelectUpgrade(CommandLine &CmdL // Install everything with the install flag set pkgCache::PkgIterator I = Cache->PkgBegin(); - for (;I.end() != true; I++) + for (;I.end() != true; ++I) { /* Install the package only if it is a new install, the autoupgrader will deal with the rest */ @@@ -2154,7 -2145,7 +2152,7 @@@ /* Now install their deps too, if we do this above then order of the status file is significant for | groups */ - for (I = Cache->PkgBegin();I.end() != true; I++) + for (I = Cache->PkgBegin();I.end() != true; ++I) { /* Install the package only if it is a new install, the autoupgrader will deal with the rest */ @@@ -2163,7 -2154,7 +2161,7 @@@ } // Apply erasures now, they override everything else. - for (I = Cache->PkgBegin();I.end() != true; I++) + for (I = Cache->PkgBegin();I.end() != true; ++I) { // Remove packages if (I->SelectedState == pkgCache::State::DeInstall || @@@ -2180,7 -2171,7 +2178,7 @@@ // Hold back held packages. if (_config->FindB("APT::Ignore-Hold",false) == false) { - for (pkgCache::PkgIterator I = Cache->PkgBegin(); I.end() == false; I++) + for (pkgCache::PkgIterator I = Cache->PkgBegin(); I.end() == false; ++I) { if (I->SelectedState == pkgCache::State::Hold) { @@@ -2312,8 -2303,6 +2310,8 @@@ bool DoDownload(CommandLine &CmdL strprintf(descr, _("Downloading %s %s"), Pkg.Name(), Ver.VerStr()); // get the most appropriate hash HashString hash; + if (rec.SHA512Hash() != "") + hash = HashString("sha512", rec.SHA512Hash()); if (rec.SHA256Hash() != "") hash = HashString("sha256", rec.SHA256Hash()); else if (rec.SHA1Hash() != "") @@@ -2328,7 -2317,7 +2326,7 @@@ if (_config->FindB("APT::Get::Print-URIs") == true) { pkgAcquire::UriIterator I = Fetcher.UriBegin(); - for (; I != Fetcher.UriEnd(); I++) + for (; I != Fetcher.UriEnd(); ++I) cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << I->Owner->FileSize << ' ' << I->Owner->HashSum() << endl; return true; @@@ -2430,7 -2419,7 +2428,7 @@@ bool DoSource(CommandLine &CmdL Src.c_str(), vcs.c_str(), uri.c_str()); if(vcs == "Bzr") ioprintf(c1out,_("Please use:\n" - "bzr get %s\n" + "bzr branch %s\n" "to retrieve the latest (possibly unreleased) " "updates to the package.\n"), uri.c_str()); @@@ -2446,7 -2435,7 +2444,7 @@@ // Load them into the fetcher for (vector::const_iterator I = Lst.begin(); - I != Lst.end(); I++) + I != Lst.end(); ++I) { // Try to guess what sort of file it is we are getting. if (I->Type == "dsc") @@@ -2548,7 -2537,7 +2546,7 @@@ if (_config->FindB("APT::Get::Print-URIs") == true) { pkgAcquire::UriIterator I = Fetcher.UriBegin(); - for (; I != Fetcher.UriEnd(); I++) + for (; I != Fetcher.UriEnd(); ++I) cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << I->Owner->FileSize << ' ' << I->Owner->HashSum() << endl; delete[] Dsc; @@@ -2564,7 -2553,7 +2562,7 @@@ // Print error messages bool Failed = false; - for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); I++) + for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); ++I) { if ((*I)->Status == pkgAcquire::Item::StatDone && (*I)->Complete == true) @@@ -2593,7 -2582,7 +2591,7 @@@ if (Process == 0) { bool const fixBroken = _config->FindB("APT::Get::Fix-Broken", false); - for (unsigned I = 0; I != J; I++) + for (unsigned I = 0; I != J; ++I) { string Dir = Dsc[I].Package + '-' + Cache->VS().UpstreamVersion(Dsc[I].Version.c_str()); @@@ -2742,7 -2731,7 +2740,7 @@@ bool DoBuildDep(CommandLine &CmdL BuildDeps.push_back(rec); } - if (BuildDeps.size() == 0) + if (BuildDeps.empty() == true) { ioprintf(c1out,_("%s has no build depends.\n"),Src.c_str()); continue; @@@ -2752,7 -2741,7 +2750,7 @@@ vector ::iterator D; pkgProblemResolver Fix(Cache); bool skipAlternatives = false; // skip remaining alternatives in an or group - for (D = BuildDeps.begin(); D != BuildDeps.end(); D++) + for (D = BuildDeps.begin(); D != BuildDeps.end(); ++D) { bool hasAlternatives = (((*D).Op & pkgCache::Dep::Or) == pkgCache::Dep::Or); @@@ -2931,7 -2920,7 +2929,7 @@@ * installed */ pkgCache::PrvIterator Prv = Pkg.ProvidesList(); - for (; Prv.end() != true; Prv++) + for (; Prv.end() != true; ++Prv) { if (_config->FindB("Debug::BuildDeps",false) == true) cout << " Checking provider " << Prv.OwnerPkg().FullName() << endl; @@@ -3122,10 -3111,7 +3120,10 @@@ bool DownloadChangelog(CacheFile &Cache return true; // error - return _error->Error("changelog download failed"); + pkgRecords Recs(CacheFile); + pkgRecords::Parser &rec=Recs.Lookup(Ver.FileList()); + string srcpkg = rec.SourcePkg().empty() ? Pkg.Name() : rec.SourcePkg(); + return _error->Error("changelog for this version is not (yet) available; try https://launchpad.net/ubuntu/+source/%s/+changelog", srcpkg.c_str()); } /*}}}*/ // DisplayFileInPager - Display File with pager /*{{{*/ @@@ -3351,8 -3337,7 +3349,8 @@@ int main(int argc,const char *argv[] {'s',"dry-run","APT::Get::Simulate",0}, {'s',"no-act","APT::Get::Simulate",0}, {'y',"yes","APT::Get::Assume-Yes",0}, - {'y',"assume-yes","APT::Get::Assume-Yes",0}, + {'y',"assume-yes","APT::Get::Assume-Yes",0}, + {0,"assume-no","APT::Get::Assume-No",0}, {'f',"fix-broken","APT::Get::Fix-Broken",0}, {'u',"show-upgraded","APT::Get::Show-Upgraded",0}, {'m',"ignore-missing","APT::Get::Fix-Missing",0}, @@@ -3382,7 -3367,6 +3380,7 @@@ {0,"install-recommends","APT::Install-Recommends",CommandLine::Boolean}, {0,"install-suggests","APT::Install-Suggests",CommandLine::Boolean}, {0,"fix-policy","APT::Get::Fix-Policy-Broken",0}, + {0,"solver","APT::Solver",CommandLine::HasArg}, {'c',"config-file",0,CommandLine::ConfigFile}, {'o',"option",0,CommandLine::ArbItem}, {0,0,0,0}}; diff --combined debian/changelog index a0fb6e0fa,67e60dc34..80189bcc9 --- a/debian/changelog +++ b/debian/changelog @@@ -1,168 -1,29 +1,198 @@@ +apt (0.8.16~exp5ubuntu6) UNRELEASED; urgency=low + ++ [ Michael Vogt + * merged lp:~jr/ubuntu/oneiric/apt/bzr-get-rename, thanks to + Jonathan Riddell ++ ++ [ David Kalnischkies ] ++ * lots of cppcheck fixes + + -- Michael Vogt Thu, 11 Aug 2011 18:09:45 +0200 + +apt (0.8.16~exp5ubuntu5) oneiric; urgency=low + + * debian/control: + - fix VCS location + * methods/mirror.cc: + - include the architecture(s) in the query string as well so + that the server can make better decisions + + -- Michael Vogt Thu, 11 Aug 2011 18:03:19 +0200 + +apt (0.8.16~exp5ubuntu4) oneiric; urgency=low + + * Merge change from Robert Collins to upgrade ubuntu-keyring recommends + to a hard dependency to match Debian behaviour and fix LP: #816606 + + -- Adam Conrad Tue, 09 Aug 2011 14:48:24 -0600 + +apt (0.8.16~exp5ubuntu3) oneiric; urgency=low + + * apt-pkg/acquire.cc: + - fix potential divide-by-zero (LP: #823277) + + -- Michael Vogt Tue, 09 Aug 2011 15:56:44 +0200 + +apt (0.8.16~exp5ubuntu2) oneiric; urgency=low + + * test/integration/test-hashsum-verification: + - add regression test for hashsum verification + * apt-pkg/acquire-item.cc: + - if no Release.gpg file is found, still load the hashes for + verification (closes: #636314) and add test + * apt-pkg/pkgcachegen.cc: + - fix incorrect comparision when checking sources.list freshness + + -- Michael Vogt Tue, 09 Aug 2011 09:22:14 +0200 + +apt (0.8.16~exp5ubuntu1) oneiric; urgency=low + + * merged new version from debian/experimental, this includes + a ABI break and two new library packages + + -- Michael Vogt Mon, 08 Aug 2011 14:30:07 +0200 + +apt (0.8.16~exp5) UNRELEASED; urgency=low + + * apt-pkg/makefile: + - install sha256.h compat header + * apt-pkg/pkgcachegen.{cc,h}: + - use ref-to-ptr semantic in NewDepends() to ensure that the + libapt does not segfault if the cache is remapped in between + (LP: #812862) + + -- Michael Vogt Fri, 29 Jul 2011 13:44:01 +0200 + +apt (0.8.16~exp4) experimental; urgency=low + + [ Julian Andres Klode ] + * apt-pkg/pkgcache.h: + - [ABI break] Add pkgCache::Header::CacheFileSize, storing the cache size + * apt-pkg/pkgcachegen.cc: + - Write the file size to the cache + * apt-pkg/pkgcache.cc: + - Check that cache is at least CacheFileSize bytes large (LP: #16467) + + [ Michael Vogt ] + * merged latest fixes from debian-sid + * apt-pkg/cdrom.{cc,h}: + - cleanup old ABI break avoidance hacks + * [ABI break] apt-pkg/acquire-item.{cc,h}: + - cleanup around OptionalIndexTarget and SubIndexTarget + * [ABI break] merged patch from Jonathan Thomas to have a new + RecordField() function in the pkgRecorder parser. Many thanks + Thomas + * [ABI break] merge patch from Jonathan Thomas to speed up the + depcache by caching the install-recommends and install-suggests + values + * apt-pkg/contrib/fileutl.{cc,h}: + - add GetModificationTime() helper + * apt-pkg/pkgcachegen.cc: + - regenerate the cache if the sources.list changes to ensure + that changes in the ordering there will be honored by apt + * apt-pkg/sourcelist.{cc,h}: + - add pkgSourceList::GetLastModifiedTime() helper + + -- Michael Vogt Thu, 28 Jul 2011 16:57:08 +0200 + +apt (0.8.16~exp3) experimental; urgency=low + + [ David Kalnischkies ] + * apt-pkg/pkgcache.h: + - readd All{Foreign,Allowed} as suggested by Julian to + remain strictly API compatible + * apt-pkg/acquire*.{cc,h}: + - try even harder to support really big files in the fetcher by + converting (hopefully) everything to 'long long' (Closes: #632271) + * ftparchive/writer.cc: + - generate all checksums in one run over the file for Release + * cmdline/apt-get.cc: + - add an --assume-no option for testing to say 'no' to everything + * apt-pkg/deb/debmetaindex.cc: + - add trusted=yes option to mark unsigned (local) repository as trusted + based on a patch from Ansgar Burchardt, thanks a lot! (Closes: #596498) + + [ Michael Vogt ] + * merge fixes from the debian/unstable upload + * merge lp:~mvo/apt/sha512-template to get fixes for the + sha1/md5 verifiation (closes: #632520) + + -- Michael Vogt Fri, 15 Jul 2011 09:56:17 +0200 + +apt (0.8.16~exp2) experimental; urgency=low + + [ David Kalnischkies ] + * [ABI-Break] Implement EDSP in libapt-pkg so that all front-ends which + use the internal resolver can now be used also with external + ones as the usage is hidden in between the old API + * provide two edsp solvers in apt-utils: + - 'dump' to quickly output a complete scenario and + - 'apt' to use the internal as an external resolver + * apt-pkg/pkgcache.h: + - clean up mess with the "all" handling in MultiArch to + fix LP: #733741 cleanly for everyone now + * apt-pkg/depcache.cc: + - use a boolean instead of an int for Add/Remove in AddStates + similar to how it works with AddSizes + - let the Mark methods return if their marking was successful + - if a Breaks can't be upgraded, remove it. If it or a Conflict + can't be removed the installation of the breaker fails. + * cmdline/apt-get.cc: + - do not discard the error messages from the resolver and instead + only show the general 'Broken packages' message if nothing else + + [ Stefano Zacchiroli ] + * doc/external-dependency-solver-protocol.txt: + - describe EDSP and the configuration interface around it + + [ Michael Vogt ] + * [ABI-Break] merge lp:~mvo/apt/sha512-template to add support for sha512 + * [ABI-Break] merge lp:~mvo/apt/dpointer to support easier extending + without breaking the ABI + * increase ABI version and update package names + + -- Michael Vogt Wed, 29 Jun 2011 13:57:28 +0200 + +apt (0.8.16~exp1) experimental; urgency=low + + * merged with the debian/unstable upload + + -- Michael Vogt Wed, 29 Jun 2011 12:40:31 +0200 + + apt (0.8.15.6) unstable; urgency=low + + [ Michael Vogt ] + * apt-pkg/contrib/fileutl.{cc,h}: + - add GetModificationTime() helper + * apt-pkg/pkgcachegen.cc: + - regenerate the cache if the sources.list changes to ensure + that changes in the ordering there will be honored by apt + * apt-pkg/sourcelist.{cc,h}: + - add pkgSourceList::GetLastModifiedTime() helper + * apt-pkg/pkgcachegen.{cc,h}: + - use ref-to-ptr semantic in NewDepends() to ensure that the + libapt does not segfault if the cache is remapped in between + (LP: #812862) + - fix crash when P.Arch() was used but the cache got remapped + * test/integration/test-hashsum-verification: + - add regression test for hashsum verification + * apt-pkg/acquire-item.cc: + - if no Release.gpg file is found, still load the hashes for + verification (closes: #636314) and add test + + [ David Kalnischkies ] + * lots of cppcheck fixes + + -- Michael Vogt Mon, 15 Aug 2011 09:20:35 +0200 + +apt (0.8.15.5ubuntu1) oneiric; urgency=low + + * apt-pkg/pkgcachegen.{cc,h}: + - fix crash when P.Arch() was used but the cache got remapped + (LP: #812862) + + -- Michael Vogt Mon, 01 Aug 2011 15:18:50 +0200 + apt (0.8.15.5) unstable; urgency=low [ David Kalnischkies ] @@@ -171,28 -32,6 +201,28 @@@ -- Michael Vogt Thu, 28 Jul 2011 16:49:15 +0200 +apt (0.8.15.4ubuntu2) oneiric; urgency=low + + * apt-pkg/contrib/fileutl.{cc,h}: + - add GetModificationTime() helper + * apt-pkg/pkgcachegen.cc: + - regenerate the cache if the sources.list changes to ensure + that changes in the ordering there will be honored by apt + * apt-pkg/sourcelist.{cc,h}: + - add pkgSourceList::GetLastModifiedTime() helper + * apt-pkg/pkgcachegen.{cc,h}: + - use ref-to-ptr semantic in NewDepends() to ensure that the + libapt does not segfault if the cache is remapped in between + (LP: #812862) + + -- Michael Vogt Fri, 29 Jul 2011 18:25:22 +0200 + +apt (0.8.15.4ubuntu1) oneiric; urgency=low + + * merged from debian-sid + + -- Michael Vogt Tue, 26 Jul 2011 13:19:49 +0200 + apt (0.8.15.4) unstable; urgency=low [ David Miller ] @@@ -257,39 -96,6 +287,39 @@@ apt (0.8.15.3) unstable; urgency=lo -- Michael Vogt Mon, 25 Jul 2011 15:04:43 +0200 +apt (0.8.15.2ubuntu2) oneiric; urgency=low + + * cmdline/apt-get.cc: + - fix missing download progress in apt-get download + + -- Michael Vogt Fri, 22 Jul 2011 13:20:49 +0200 + +apt (0.8.15.2ubuntu1) oneiric; urgency=low + + [ Michael Vogt ] + * apt-pkg/acquire-item.cc: + - improve error message for a expired Release file + * apt-pkg/algorithms.cc: + - Hold back packages that would enter "policy-broken" state on upgrade + when doing a "apt-get upgrade" + + [ David Kalnischkies ] + * apt-pkg/pkgcachegen.cc: + - fallback to memory if file is not writeable even if access() + told us the opposite before (e.g. in fakeroot 1.16) (Closes: #630591) + * doc/sources.list.5.xml: + - document available [options] for sources.list entries (Closes: 632441) + * doc/apt.conf.5.xml: + - document APT::Architectures list (Closes: #612102) + * cmdline/apt-get.cc: + - restore all important dependencies for garbage packages (LP: #806274) + * apt-pkg/init.cc: + - use CndSet in pkgInitConfig (Closes: #629617) + * apt-pkg/depcache.cc: + - change default of APT::AutoRemove::SuggestsImportant to true + + -- Michael Vogt Fri, 15 Jul 2011 10:16:45 +0200 + apt (0.8.15.2) unstable; urgency=high * fix from David Kalnischkies for the InRelease gpg verification @@@ -297,277 -103,37 +327,277 @@@ -- Michael Vogt Tue, 12 Jul 2011 11:54:47 +0200 +apt (0.8.15.1ubuntu2) oneiric; urgency=low + + [ Brian Murray ] + * apt-pkg/deb/dpkgpm.cc: + - do not report errors encountered when decompressing packages + + [ Michael Vogt ] + * fix from David Kalnischkies for the InRelease gpg verification + code (LP: #784473) + + -- Michael Vogt Wed, 13 Jul 2011 14:42:02 +0200 + +apt (0.8.15.1ubuntu1) oneiric; urgency=low + + * merge from debian/sid + + -- Michael Vogt Thu, 30 Jun 2011 09:16:12 +0100 + apt (0.8.15.1) unstable; urgency=low - [ David Kalnischkies ] - * doc/makefile: - - create doxygen directory to avoid depending on magic (Closes: #628799) - * cmdline/apt-key: - - explicitly state that net-update is not supported if no url is set - - require to be root for add, rm, update and net-update - - clarify update vs. net-update in different distros (Closes: #632043) - * debian/apt.symbols: - - forgot 'mips' in the list for all architecture dependent symbols - - comment out gcc-4.5 specific symbols as gcc-4.6 is now default - - the symbol for PrintStatus() is architecture dependent - * apt-pkg/policy.cc: - - do not segfault in pinning if a package with this name doesn't exist. - Thanks to Ferdinand Thommes for the report! - - Defaults is a vector of Pin not of PkgPin - - ensure that only the first specific stanza for a package is used - - save all stanzas which had no effect in Unmatched - - allow package:architecure in Package: + [ David Kalnischkies ] + * doc/makefile: + - create doxygen directory to avoid depending on magic (Closes: #628799) + * cmdline/apt-key: + - explicitly state that net-update is not supported if no url is set + - require to be root for add, rm, update and net-update + - clarify update vs. net-update in different distros (Closes: #632043) + * debian/apt.symbols: + - forgot 'mips' in the list for all architecture dependent symbols + - comment out gcc-4.5 specific symbols as gcc-4.6 is now default + - the symbol for PrintStatus() is architecture dependent + * apt-pkg/policy.cc: + - do not segfault in pinning if a package with this name doesn't exist. + Thanks to Ferdinand Thommes for the report! + - Defaults is a vector of Pin not of PkgPin + - ensure that only the first specific stanza for a package is used + - save all stanzas which had no effect in Unmatched + - allow package:architecure in Package: + + -- Michael Vogt Thu, 30 Jun 2011 10:05:36 +0200 + +apt (0.8.15ubuntu1) oneiric; urgency=low + + * merged from debian-unstable, remainging changes: + - use ubuntu keyring and ubuntu archive keyring in apt-key + - run update-apt-xapian-index in apt.cron + - support apt-key net-update and verify keys against master-keyring + - run apt-key net-update in cron.daily + - different example sources.list + + -- Michael Vogt Wed, 29 Jun 2011 09:03:39 +0100 + +apt (0.8.15) unstable; urgency=low + + [ Julian Andres Klode ] + * apt-pkg/depcache.cc: + - Really release action groups only once (Closes: #622744) + - Make purge work again for config-files (LP: #244598) (Closes: #150831) + * apt-pkg/acquire-item.cc: + - Reject files known to be invalid (LP: #346386) (Closes: #627642) + * debian/apt.cron.daily: + - Check power after wait, patch by manuel-soto (LP: #705269) + * debian/control: + - Move ${shlibs:Depends} to Pre-Depends, as we do not want APT + unpacked if a library is too old and thus break upgrades + * doc/apt-key.8.xml: + - Document apt-key net-update (LP: #192810) + + [ Christian Perrier ] + * Galician translation update (Miguel Anxo Bouzada). Closes: #626505 + * Italian translation update (Milo Casagrande). Closes: #627834 + * German documentation translation update (Chris Leick). Closes: #629949 + * Catalan translation update (Jordi Mallach). Closes: #630657 + + [ David Kalnischkies ] + * fix a bunch of cppcheck warnings/errors based on a patch by + Niels Thykier, thanks! (Closes: #622805) + * apt-pkg/depcache.cc: + - really include 'rc' packages in the delete count by fixing a + typo which exists since 1999 in the source… (LP: #761175) + - if critical or-group can't be satisfied, exit directly. + * apt-pkg/acquire-method.cc: + - write directly to stdout instead of creating the message in + memory first before writing to avoid hitting limits + - fix order of CurrentURI and UsedMirror in Status() and Log() + * apt-pkg/orderlist.cc: + - let VisitRProvides report if the calls were successful + * apt-pkg/deb/dpkgpm.cc: + - replace obsolete usleep with nanosleep + - remove invalid pkgcache.bin and rebuild it if possible + - log reinstall commands in history.log + * debian/apt{,-utils}.symbols: + - update both experimental symbol-files to reflect 0.8.14 state + * debian/rules: + - remove unused embedded jquery by doxygen from libapt-pkg-doc + * cmdline/apt-mark.cc: + - reimplement apt-mark in c++ + - provide a 'showmanual' command (Closes: #582791) + - provide a 'dpkg --set-selections' wrapper to set/release holds + * cmdline/apt-get.cc: + - deprecate mostly undocumented 'markauto' in favor of 'apt-mark' + * cmdline/apt-cache.cc: + - deprecate mostly undocumented 'showauto' in favor of 'apt-mark' + * apt-pkg/pkgcache.cc: + - really ignore :arch in FindPkg() in non-multiarch environment + * doc/po/de.po: + - undo the translation of the command 'dump' in manpage of apt-config + as report by Burghard Grossmann on debian-l10n-german, thanks! + * apt-pkg/deb/debmetaindex.cc: + - do not download TranslationIndex if no Translation-* will be + downloaded later on anyway (Closes: #624218) + * test/versions.lst: + - disable obscure version number tests with versions dpkg doesn't + allow any more as they don't start with a number + * apt-pkg/acquire-worker.cc: + - print filename in the unmatching size warning (Closes: #623137) + * apt-pkg/acquire-item.cc: + - apply fix for poorly worded 'locate file' error message from + Ben Finney, thanks! (Closes: #623171) + * methods/http.cc: + - add config option to ignore a closed stdin to be able to easily + use the method as a simple standalone downloader + - Location header in redirects should be absolute URI, but some + servers just send an absolute path so still deal with it properly + - dequote URL taken from Location in redirects as we will otherwise + quote an already quoted string in the request later (Closes: #602412) + * apt-pkg/contrib/netrc.cc: + - replace non-posix gnu-extension strdupa with strdup + * apt-pkg/packagemanager.cc: + - ensure for Multi-Arch:same packages that they are unpacked in + lock step even in immediate configuration (Closes: #618288) + * apt-pkg/init.cc: + - don't set deprecated APT::Acquire::Translation, thanks Jörg Sommer! + * cmdline/apt-config.cc: + - show Acquire::Languages and APT::Architectures settings + in 'dump' (Closes: 626739) + * apt-pkg/orderlist.cc: + - ensure that an old version of a package with a provides can + never satisfy a dependency of a newer version of this package + + [ Michael Vogt ] + * methods/mirror.cc: + - ignore lines starting with "#" in the mirror file + - ignore non http urls in the mirrors + - append the dist (e.g. sid, wheezy) as a query string when + asking for a suitable mirror + * apt-pkg/deb/deblistparser.cc: + - include all known languages when building the apt cache + (LP: #794907) + * apt-pkg/deb/debindexfile.cc: + - remove some no longer valid checks for "TranslationsAvailable()" + + [ Kenneth Solbø Andersen ] + * apt-pkg/deb/dpkgpm.cc: + - set permissions of term.log to root.adm and 644 (LP: #404724) + + [ Chris Leick ] + * various typo and syntax corrections in doc/*.xml + + -- Michael Vogt Tue, 28 Jun 2011 18:00:48 +0200 + +apt (0.8.15~exp3) experimental; urgency=low + + * debian/control: + - add Breaks: 0.8.15~exp3) for libapt-pkg4.10 and + libapt-inst1.2 (thanks to Jonathan Nieder, closes: #630214) + - use depends for the ${shlibs:Depends} to make the breaks work + + -- Michael Vogt Fri, 17 Jun 2011 21:51:41 +0200 + +apt (0.8.15~exp2) experimental; urgency=low + + * debian/control: + - fix incorrect Replaces (closes: #630204) for libapt-inst1.2 + + -- Michael Vogt Wed, 15 Jun 2011 16:51:14 +0200 + +apt (0.8.15~exp1) experimental; urgency=low + + [ Julian Andres Klode ] + * apt-pkg/depcache.cc: + - Really release action groups only once (Closes: #622744) + - Make purge work again for config-files (LP: #244598) (Closes: #150831) + * apt-pkg/acquire-item.cc: + - Reject files known to be invalid (LP: #346386) (Closes: #627642) + * debian/apt.cron.daily: + - Check power after wait, patch by manuel-soto (LP: #705269) + * debian/control: + - Move ${shlibs:Depends} to Pre-Depends, as we do not want APT + unpacked if a library is too old and thus break upgrades + * doc/apt-key.8.xml: + - Document apt-key net-update (LP: #192810) + + [ Christian Perrier ] + * Galician translation update (Miguel Anxo Bouzada). Closes: #626505 + * Italian translation update (Milo Casagrande). Closes: #627834 + * German documentation translation update (Chris Leick). Closes: #629949 + + [ David Kalnischkies ] + * fix a bunch of cppcheck warnings/errors based on a patch by + Niels Thykier, thanks! (Closes: #622805) + * apt-pkg/depcache.cc: + - really include 'rc' packages in the delete count by fixing a + typo which exists since 1999 in the source… (LP: #761175) + - if critical or-group can't be satisfied, exit directly. + * apt-pkg/acquire-method.cc: + - write directly to stdout instead of creating the message in + memory first before writing to avoid hitting limits + - fix order of CurrentURI and UsedMirror in Status() and Log() + * apt-pkg/orderlist.cc: + - let VisitRProvides report if the calls were successful + * apt-pkg/deb/dpkgpm.cc: + - replace obsolete usleep with nanosleep + * debian/apt{,-utils}.symbols: + - update both experimental symbol-files to reflect 0.8.14 state + * debian/rules: + - remove unused embedded jquery by doxygen from libapt-pkg-doc + * cmdline/apt-mark.cc: + - reimplement apt-mark in c++ + - provide a 'showmanual' command (Closes: #582791) + - provide a 'dpkg --set-selections' wrapper to set/release holds + * cmdline/apt-get.cc: + - deprecate mostly undocumented 'markauto' in favor of 'apt-mark' + * cmdline/apt-cache.cc: + - deprecate mostly undocumented 'showauto' in favor of 'apt-mark' + * apt-pkg/pkgcache.cc: + - really ignore :arch in FindPkg() in non-multiarch environment + * doc/po/de.po: + - undo the translation of the command 'dump' in manpage of apt-config + as report by Burghard Grossmann on debian-l10n-german, thanks! + * apt-pkg/deb/debmetaindex.cc: + - do not download TranslationIndex if no Translation-* will be + downloaded later on anyway (Closes: #624218) + * test/versions.lst: + - disable obscure version number tests with versions dpkg doesn't + allow any more as they don't start with a number + * apt-pkg/acquire-worker.cc: + - print filename in the unmatching size warning (Closes: #623137) + * apt-pkg/acquire-item.cc: + - apply fix for poorly worded 'locate file' error message from + Ben Finney, thanks! (Closes: #623171) + * methods/http.cc: + - add config option to ignore a closed stdin to be able to easily + use the method as a simple standalone downloader + - Location header in redirects should be absolute URI, but some + servers just send an absolute path so still deal with it properly + - dequote URL taken from Location in redirects as we will otherwise + quote an already quoted string in the request later (Closes: #602412) + * apt-pkg/contrib/netrc.cc: + - replace non-posix gnu-extension strdupa with strdup + * apt-pkg/packagemanager.cc: + - ensure for Multi-Arch:same packages that they are unpacked in + lock step even in immediate configuration (Closes: #618288) + + [ Michael Vogt ] + * methods/mirror.cc: + - ignore lines starting with "#" in the mirror file + - ignore non http urls in the mirrors + - append the dist (e.g. sid, wheezy) as a query string when + asking for a suitable mirror + * debian/control: + - add libapt-pkg4.10 and libapt-inst1.2 library packages - -- Michael Vogt Thu, 30 Jun 2011 10:05:36 +0200 + -- Michael Vogt Fri, 10 Jun 2011 15:32:07 +0200 -apt (0.8.15) unstable; urgency=low +apt (0.8.14.2) UNRELEASED; urgency=low [ Julian Andres Klode ] * apt-pkg/depcache.cc: - Really release action groups only once (Closes: #622744) - Make purge work again for config-files (LP: #244598) (Closes: #150831) - * apt-pkg/acquire-item.cc: - - Reject files known to be invalid (LP: #346386) (Closes: #627642) * debian/apt.cron.daily: - Check power after wait, patch by manuel-soto (LP: #705269) * debian/control: @@@ -578,6 -144,9 +608,6 @@@ [ Christian Perrier ] * Galician translation update (Miguel Anxo Bouzada). Closes: #626505 - * Italian translation update (Milo Casagrande). Closes: #627834 - * German documentation translation update (Chris Leick). Closes: #629949 - * Catalan translation update (Jordi Mallach). Closes: #630657 [ David Kalnischkies ] * fix a bunch of cppcheck warnings/errors based on a patch by @@@ -594,6 -163,8 +624,6 @@@ - let VisitRProvides report if the calls were successful * apt-pkg/deb/dpkgpm.cc: - replace obsolete usleep with nanosleep - - remove invalid pkgcache.bin and rebuild it if possible - - log reinstall commands in history.log * debian/apt{,-utils}.symbols: - update both experimental symbol-files to reflect 0.8.14 state * debian/rules: @@@ -634,103 -205,35 +664,103 @@@ * apt-pkg/packagemanager.cc: - ensure for Multi-Arch:same packages that they are unpacked in lock step even in immediate configuration (Closes: #618288) - * apt-pkg/init.cc: - - don't set deprecated APT::Acquire::Translation, thanks Jörg Sommer! - * cmdline/apt-config.cc: - - show Acquire::Languages and APT::Architectures settings - in 'dump' (Closes: 626739) - * apt-pkg/orderlist.cc: - - ensure that an old version of a package with a provides can - never satisfy a dependency of a newer version of this package + + -- Michael Vogt Mon, 16 May 2011 14:57:52 +0200 + +apt (0.8.14.1ubuntu8) UNRELEASED; urgency=low + + [ Michael Vogt ] + * debian/apt.conf.changelog: + - add missing ";", thanks to Julian Andres Klode + + [ Brian Murray ] + * apt-pkg/deb/dpkgpm.cc: + - updated allocate memory string + - cannot access archive string is lowercase + * apt-pkg/deb/dpkgpm.cc: + - resolve issue where AptOrdering is included in DpkgTerminalLog in apport + attachments + + -- Brian Murray Wed, 15 Jun 2011 14:00:43 -0700 + +apt (0.8.14.1ubuntu7) oneiric; urgency=low [ Michael Vogt ] - * methods/mirror.cc: - - ignore lines starting with "#" in the mirror file - - ignore non http urls in the mirrors - - append the dist (e.g. sid, wheezy) as a query string when - asking for a suitable mirror * apt-pkg/deb/deblistparser.cc: - include all known languages when building the apt cache (LP: #794907) * apt-pkg/deb/debindexfile.cc: - remove some no longer valid checks for "TranslationsAvailable()" - [ Kenneth Solbø Andersen ] + -- Michael Vogt Thu, 09 Jun 2011 13:56:25 +0200 + +apt (0.8.14.1ubuntu6) oneiric; urgency=low + + [ Brian Murray ] * apt-pkg/deb/dpkgpm.cc: - - set permissions of term.log to root.adm and 644 (LP: #404724) + - prevent reporting of package installation failures due to inaccessible + local files (LP: #791102, #790040) + - include /var/log/apt/history.log in apport-package reports so we know + the context for the package management request + + [ Michael Vogt ] + * methods/mirror.cc: + - ignore lines starting with "#" in the mirror file + - ignore non http urls in the mirrors + - append the dist (e.g. sid, wheezy) as a query string when + asking for a suitable mirror + + -- Michael Vogt Tue, 07 Jun 2011 15:55:07 +0200 + +apt (0.8.14.1ubuntu5) oneiric; urgency=low + + * apt-pkg/acquire-item.cc: + - do not reject empty Packages files when checking them for + correctness + + -- Michael Vogt Tue, 31 May 2011 10:41:30 +0200 + +apt (0.8.14.1ubuntu4) oneiric; urgency=low + + [ Julian Andres Klode ] + * apt-pkg/acquire-item.cc: + - Reject files known to be invalid (LP: #346386) (Closes: #627642) + + -- Michael Vogt Mon, 30 May 2011 17:12:27 +0200 + +apt (0.8.14.1ubuntu3) oneiric; urgency=low + + * Rebuild with recent binutils. LP: #774175. + + -- Matthias Klose Mon, 23 May 2011 19:15:34 +0200 + +apt (0.8.14.1ubuntu2) oneiric; urgency=low + + * debian/rules: + - build in verbose mode by default (thanks to Matthias Klose) + * debian/control: + - add temporary build-dependency on gcc-4.6 (>= 4.6.0-6ubuntu2) + + -- Michael Vogt Tue, 03 May 2011 13:58:10 +0200 + +apt (0.8.14.1ubuntu1) oneiric; urgency=low + + [ Michael Vogt ] + * merged from the debian-sid bzr branch - [ Chris Leick ] - * various typo and syntax corrections in doc/*.xml + [ Julian Andres Klode ] + * apt-pkg/depcache.cc: + - Really release action groups only once (Closes: #622744) + - Make purge work again for config-files (LP: #244598) (Closes: #150831) + * debian/apt.cron.daily: + - Check power after wait, patch by manuel-soto (LP: #705269) + * debian/control: + - Move ${shlibs:Depends} to Pre-Depends, as we do not want APT + unpacked if a library is too old and thus break upgrades + * doc/apt-key.8.xml: + - Document apt-key net-update (LP: #192810) - -- Michael Vogt Tue, 28 Jun 2011 18:00:48 +0200 + -- Michael Vogt Fri, 29 Apr 2011 17:55:20 +0200 apt (0.8.14.1) unstable; urgency=low @@@ -774,42 -277,6 +804,42 @@@ apt (0.8.14) unstable; urgency=lo -- Julian Andres Klode Fri, 15 Apr 2011 14:28:15 +0200 +apt (0.8.13.2ubuntu3) natty-proposed; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - stop reporting of apport-package bug reports regarding + dpkg I/O errors (LP: #767776) + + -- Brian Murray Wed, 20 Apr 2011 15:05:12 -0700 + +apt (0.8.13.2ubuntu2) natty; urgency=low + + [ Michael Vogt ] + * debian/apt.cron.daily: + - run unattended-upgrades even if there was a error during + the apt-get update (LP: #676295) + + [ Julian Andres Klode ] + * apt-pkg/indexcopy.cc: + - Use RealFileExists() instead of FileExists(), allows amongst other + things a directory named Sources to exist on a CD-ROM (LP: #750694). + + [ David Kalnischkies ] + * apt-pkg/pkgcache.cc: + - use the native Architecture stored in the cache header instead of + loading it from configuration as suggested by Julian Andres Klode + + -- Michael Vogt Thu, 07 Apr 2011 12:52:21 +0200 + +apt (0.8.13.2ubuntu1) natty; urgency=low + + * merge fixes from debian-sid, most notable the handling of + arch=all architectures in python-apt (LP: #733741) + * apt-pkg/aptconfiguration.cc: + - fix comparing for a empty string + + -- Michael Vogt Tue, 05 Apr 2011 13:19:56 +0200 + apt (0.8.13.2) unstable; urgency=low [ David Kalnischkies ] @@@ -846,12 -313,6 +876,12 @@@ -- Michael Vogt Tue, 05 Apr 2011 09:40:28 +0200 +apt (0.8.13.1ubuntu1) natty; urgency=low + + * merged fixes from the debian-sid (LP: #744832) + + -- Michael Vogt Mon, 04 Apr 2011 14:40:51 +0200 + apt (0.8.13.1) unstable; urgency=low * apt-pkg/acquire-item.cc: Use stat buffer if stat was @@@ -859,24 -320,6 +889,24 @@@ -- Julian Andres Klode Sat, 02 Apr 2011 20:55:35 +0200 +apt (0.8.13ubuntu2) natty; urgency=low + + * po/makefile: + - add hack to run MSGMERGE again if it segfaults. this is to help + powerpc to bootstrap + * mirror method: + - merge fix from Matt Zimmerman, many thanks (LP: #741098) + - do not crash if the mirror file fails to download + + -- Michael Vogt Thu, 24 Mar 2011 18:01:38 +0100 + +apt (0.8.13ubuntu1) natty; urgency=low + + * merged from debian/sid, this adds important fixes in the + apt mirror method + + -- Michael Vogt Wed, 16 Mar 2011 08:23:19 +0100 + apt (0.8.13) unstable; urgency=low [ Thorsten Spindler ] @@@ -898,29 -341,6 +928,29 @@@ -- Michael Vogt Wed, 16 Mar 2011 08:04:42 +0100 +apt (0.8.12ubuntu2) unstable; urgency=low + + [ Thorsten Spindler ] + * methods/rsh.cc + - fix rsh/ssh option parsing (LP: #678080), thanks to + Ville Mattila + + [ Michael Vogt ] + * apt-pkg/acquire-item.cc: + - mark pkgAcqIndexTrans as Index-File to avoid asking the + user to insert the CD on each apt-get update + * methods/mirror.cc: + - improve debug output and fix bug in TryNextMirror + + -- Michael Vogt Thu, 10 Mar 2011 15:56:54 +0100 + +apt (0.8.12ubuntu1) natty; urgency=low + + * merged from debian/sid, this adds important fixes in the udev based + cdrom handling and multiarch handling + + -- Michael Vogt Thu, 10 Mar 2011 16:12:22 +0100 + apt (0.8.12) unstable; urgency=low [ Michael Vogt ] @@@ -974,23 -394,6 +1004,23 @@@ -- Michael Vogt Thu, 10 Mar 2011 14:46:48 +0100 +apt (0.8.11.5ubuntu2) natty; urgency=low + + [ Michael Vogt ] + * apt-pkg/deb/debindexfile.cc: + - ignore missing deb-src files in /var/lib/apt/lists, thanks + to Thorsten Spindler (LP: #85590) + * apt-pkg/contrib/fileutl.cc, apt-pkg/deb/dpkgpm.cc: + - honor Dpkg::Chroot-Directory in the RunScripts*() methods + + -- Michael Vogt Thu, 03 Mar 2011 17:39:30 +0100 + +apt (0.8.11.5ubuntu1) natty; urgency=low + + * Merged from debian/sid + + -- Michael Vogt Fri, 18 Feb 2011 12:01:19 +0100 + apt (0.8.11.5) unstable; urgency=low [ Christian Perrier ] @@@ -1222,27 -625,6 +1252,27 @@@ apt (0.8.10.1) unstable; urgency=lo -- Michael Vogt Mon, 17 Jan 2011 13:41:04 +0100 +apt (0.8.10ubuntu2) UNRELEASED; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - ignore lzma "Cannot allocate memory" errors, thanks to Brian + Murray + - add i18n support for the "short read in buffer_copy %s" handling + from dpkg + + -- Michael Vogt Tue, 11 Jan 2011 18:26:05 +0100 + +apt (0.8.10ubuntu1) natty; urgency=low + + [ Julian Andres Klode ] + * cmdline/apt-cache.cc: Create an error for apt-cache depends + if packages could not found (LP: #647045) + + [ Michael Vogt ] + * merged from debian-sid + + -- Michael Vogt Tue, 07 Dec 2010 15:53:49 +0100 + apt (0.8.10) unstable; urgency=low [ Programs translations ] @@@ -1262,48 -644,6 +1292,48 @@@ -- Michael Vogt Tue, 30 Nov 2010 10:42:17 +0100 +apt (0.8.9ubuntu4) natty; urgency=low + + [ Michael Vogt ] + * cmdline/apt-key: + - set timeout of wget for net-update to 90 seconds (thanks to \sh) + + [ Martin Pitt ] + * Revert r1819 and r1820 to disable compressed indexes by default again. + Testing has brought up a few places where this seriously degrades + performance, mostly in applications which iterate through all available + package records, like update-apt-xapian-index or synaptic. See + https://bugs.launchpad.net/ubuntu/+bugs?field.tag=apt-compressed-indexes + + -- Martin Pitt Thu, 25 Nov 2010 08:50:37 +0100 + +apt (0.8.9ubuntu3) natty; urgency=low + + * methods/http.cc: + - do not hang if Acquire::http::ProxyAutoDetect can not be + executed or returns no data (LP: #654393) + + -- Michael Vogt Mon, 22 Nov 2010 10:42:50 +0100 + +apt (0.8.9ubuntu2) natty; urgency=low + + * drop apt-changelog, apt-get changelog implements all the + features it provides + + -- Michael Vogt Thu, 18 Nov 2010 15:22:40 +0100 + +apt (0.8.9ubuntu1) natty; urgency=low + + * re-merged from the debian-sid bzr branch + * merged lp:~mvo/apt/mvo, this brings two new commands: + - apt-get download binary-pkgname to download a deb + - apt-get changelog binary-pkgname to display the changelog + * cmdline/apt-get.cc: + - if the changelog download failed, do not show the generic error + but point to launchpad instead + + -- Michael Vogt Thu, 18 Nov 2010 15:02:14 +0100 + apt (0.8.9) unstable; urgency=low [ Christian Perrier ] @@@ -1335,47 -675,6 +1365,47 @@@ -- Michael Vogt Thu, 18 Nov 2010 09:25:04 +0100 +apt (0.8.8ubuntu3) natty; urgency=low + + * cmdline/apt-changelog: Filter out multiple results for a source package, + just take the latest one. + * cmdline/apt-changelog: Read server name from configuration + APT::Changelog::Server instead of hardcoding it. This allows local users + to point to a local changelog mirror, or make this script work for Debian. + * Add debian/apt.conf.changelog: Configuration for apt-changelog with the + server for Ubuntu (changelogs.ubuntu.com). Install it in debian/rules. + * doc/apt-changelog.1.xml: Document the new option. + * test/integration/test-compressed-indexes, test/test-indexes.sh: + - Explicitly disable compressed indexes at the start. This ensures that we + will actually test uncompressed indexes regardless of the internal + default value of Acquire::GzipIndexes. + * apt-pkg/acquire-item.cc: Set Acquire::GzipIndexes to "true" by default, to + store compressed indexes. This feature is now mature enough for general + consumption. Update doc/apt.conf.5.xml accordingly. + * apt-pkg/aptconfiguration.cc: Have Acquire::CompressionTypes::Order default + to preferring "gz", so that compressed indexes will actually work. + + -- Martin Pitt Mon, 15 Nov 2010 12:14:15 +0100 + +apt (0.8.8ubuntu2) natty; urgency=low + + * Add cmdline/apt-changelog: Script to fetch package changelog from + changelogs.ubuntu.com. Install it in cmdline/makefile and debian/rules. + * Add doc/apt-changelog.1.xml, and install it in debian/rules. + + -- Martin Pitt Tue, 09 Nov 2010 11:32:27 +0100 + +apt (0.8.8ubuntu1) natty; urgency=low + + * merged from debian-unstable, remainging changes: + - use ubuntu keyring and ubuntu archive keyring in apt-key + - run update-apt-xapian-index in apt.cron + - support apt-key net-update and verify keys against master-keyring + - run apt-key net-update in cron.daily + - different example sources.list + + -- Michael Vogt Fri, 29 Oct 2010 10:07:09 -0400 + apt (0.8.8) unstable; urgency=low [ David Kalnischkies ] @@@ -1395,17 -694,6 +1425,17 @@@ -- Michael Vogt Thu, 28 Oct 2010 21:22:21 +0200 +apt (0.8.7ubuntu1) natty; urgency=low + + * merged from debian-unstable, remainging changes: + - use ubuntu keyring and ubuntu archive keyring in apt-key + - run update-apt-xapian-index in apt.cron + - support apt-key net-update and verify keys against master-keyring + - run apt-key net-update in cron.daily + - different example sources.list + + -- Michael Vogt Fri, 15 Oct 2010 18:31:17 +0200 + apt (0.8.7) unstable; urgency=low [ Manpages translations ] @@@ -1498,81 -786,14 +1528,81 @@@ apt (0.8.5) unstable; urgency=lo * doc/po/fr.po: - correct two syntax issues to ensure we can build fine - -- Michael Vogt Fri, 17 Sep 2010 22:05:06 +0200 + -- Michael Vogt Fri, 17 Sep 2010 22:05:06 +0200 + +apt (0.8.4) unstable; urgency=low + + [ Michael vogt ] + * ftparchive/writer.cc: + - write out {Files,Checksum-Sha1,Checksum-Sha256} only if + available LP: #633967. Thanks to Colin Watson + * apt-pkg/contrib/cdromutl.cc: + - if apt-cdrom is used on writable media (like usb-sticks), do + not use the root directory to identify the medium (as all + changes there change the ident id). Use the .disk directory + instead + + [ David Kalnischkies ] + * ftparchive/writer.cc: + - null the valid string instead of the date if Valid-Until is not set + * apt-pkg/acquire-item.cc: + - use also unsigned Release files again (Closes: #596189) + + [ Christian Perrier ] + * Fix missing space after dot in a message from apt-pkg + Translations unfuzzied. Thanks to Holger Wansing. + + -- Michael Vogt Fri, 10 Sep 2010 20:45:15 +0200 + +apt (0.8.3ubuntu7) maverick; urgency=low + + [ David Kalnischkies ] + * apt-pkg/depcache.cc: + - do not remove packages which the user requested for installation + explicitly while satisfying other install requests (Closes: #598669) + Test case: debootstrap, install exim4, run "apt-get install postfix" + This will result in exim4-heavy instead of postfix + + -- Michael Vogt Tue, 05 Oct 2010 14:13:38 +0200 + +apt (0.8.3ubuntu6) maverick; urgency=low + + [ Michael Vogt ] + * debian/apt.cron.daily: + - source /etc/default/locale (if available) so that the + apt-get update cron job fetches the right translated package + descriptions (LP: #652951) + + [ David Kalnischkies ] + * apt-pkg/depcache.cc: + - do not check endpointer packages instead of only those which prevented + NeverAutoRemove settings from having an effect (Closes: #598452) + * cmdline/apt-cache.cc: + - use the TranslatedDescription for searching and not the first + available one as it is maybe not an expected language (Closes: #597925) -apt (0.8.4) unstable; urgency=low + -- Michael Vogt Fri, 01 Oct 2010 15:25:00 +0200 - [ Michael vogt ] - * ftparchive/writer.cc: - - write out {Files,Checksum-Sha1,Checksum-Sha256} only if - available LP: #633967. Thanks to Colin Watson +apt (0.8.3ubuntu5) maverick; urgency=low + + * debian/apt.dirs: + - add missing /usr/share/apt so that the keyring is installed + into the right place (LP: #620576) + + -- Michael Vogt Wed, 22 Sep 2010 18:34:18 +0200 + +apt (0.8.3ubuntu4) maverick; urgency=low + + * merged lp:~mvo/apt/conflicts-on-virtuals to better deal + with conflicts/breaks against virtual packages (LP: #614993) + + -- Michael Vogt Wed, 15 Sep 2010 19:48:26 +0200 + +apt (0.8.3ubuntu3) maverick; urgency=low + + * merged fixes from debian-sid + + [ Michael Vogt ] * apt-pkg/contrib/cdromutl.cc: - if apt-cdrom is used on writable media (like usb-sticks), do not use the root directory to identify the medium (as all @@@ -1589,26 -810,7 +1619,26 @@@ * Fix missing space after dot in a message from apt-pkg Translations unfuzzied. Thanks to Holger Wansing. - -- Michael Vogt Fri, 10 Sep 2010 20:45:15 +0200 + -- Michael Vogt Fri, 10 Sep 2010 21:45:49 +0200 + +apt (0.8.3ubuntu2) maverick; urgency=low + + * ftparchive/writer.cc: + - write out {Files,Checksum-Sha1,Checksum-Sha256} only if + available LP: #633967. Thanks to Colin Watson + + -- Michael Vogt Thu, 09 Sep 2010 15:30:19 +0200 + +apt (0.8.3ubuntu1) maverick; urgency=low + + * merged fixes from debian-sid + * debian/rules: + - put ubuntu-archive.gpg back into the package (LP: #620576) + * apt-pkg/init.cc: + - ignore ".distUpgrade" and ".save" files in sources.list.d + (LP: #631770) + + -- Michael Vogt Tue, 07 Sep 2010 09:27:24 +0200 apt (0.8.3) unstable; urgency=low @@@ -1702,69 -904,6 +1732,69 @@@ apt (0.8.1) unstable; urgency=lo -- Michael Vogt Fri, 03 Sep 2010 18:36:11 +0200 +apt (0.8.0ubuntu3) maverick; urgency=low + + * merged fixes from the debian-sid bzr branch: + + [ Programs translations ] + * Simplified Chinese (Aron Xu). Closes: #594458 + * Bulgarian (Damyan Ivanov). Closes: #594627 + * Portuguese (Miguel Figueiredo). Closes: #594668 + * Korean (Changwoo Ryu). Closes: #594809 + + [ Manpages translations ] + * Portuguese (Américo Monteiro) + + [ David Kalnischkies ] + * cmdline/apt-cache.cc: + - remove useless GetInitialize method + * cmdline/apt-get.cc: + - remove direct calls of ReadMainList and use the wrapper instead + to protect us from useless re-reads and two-times notice display + - remove death code by removing unused GetInitialize + * apt-pkg/depcache.cc: + - now that apt-get purge works on 'rc' packages let the MarkDelete + pass this purge forward to the non-pseudo package for pseudos + * apt-pkg/contrib/fileutl.cc: + - apply SilentlyIgnore also on files without an extension + * apt-pkg/contrib/configuration.cc: + - fix autoremove by using correct config-option name and + don't make faulty assumptions in error handling (Closes: #594689) + * apt-pkg/versionmatch.cc: + - let the pin origin actually work as advertised in the manpage + which means "" are optional and pinning a local archive does + work - even if it is a non-flat archive (Closes: #594435) + + -- Michael Vogt Fri, 03 Sep 2010 17:05:53 +0200 + +apt (0.8.0ubuntu2) maverick; urgency=low + + * merged fixes from the debian-sid bzr branch: + + [ Programs translations ] + * Thai (Theppitak Karoonboonyanan). Closes: #592695 + * Russian (Yuri Kozlov). Closes: #594232 + * Slovak (Ivan Masár). Closes: #594255 + * Swedish (Daniel Nylander). Closes: #594241 + * Japanese (Kenshi Muto, Osamu Aoki). Closes: #594265 + * Italian (Milo Casagrande). Closes: #594238 + * Asturian (maacub). Closes: #594303 + + [ Christian Perrier ] + * Fix spelling error in cmdline/apt-get.cc. Thanks to Osamu Aoki + Closes: #594211 + + [ David Kalnischkies ] + * show in madison command again also source packages (LP: #614589) + + -- Michael Vogt Thu, 26 Aug 2010 18:56:23 +0200 + +apt (0.8.0ubuntu1) maverick; urgency=low + + * merged from debian/unstable + + -- Michael Vogt Tue, 24 Aug 2010 21:39:06 +0200 + apt (0.8.0) unstable; urgency=low [ Michael Vogt ] @@@ -1807,20 -946,6 +1837,20 @@@ apt (0.8.0~pre2) experimental; urgency= -- Michael Vogt Mon, 23 Aug 2010 19:09:08 +0200 +apt (0.8.0~pre1ubuntu2) maverick; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - enable apport reports again (got lost in the previous merge), + thanks to Matt Zimmerman + + -- Michael Vogt Mon, 23 Aug 2010 13:53:09 +0200 + +apt (0.8.0~pre1ubuntu1) maverick; urgency=low + + * merged fixes from debian/experimental + + -- Michael Vogt Fri, 13 Aug 2010 17:49:40 +0200 + apt (0.8.0~pre1) experimental; urgency=low [ Programs translations ] @@@ -1863,56 -988,6 +1893,56 @@@ -- Michael Vogt Fri, 13 Aug 2010 17:00:49 +0200 +apt (0.7.26~exp12ubuntu4) maverick; urgency=low + + [ Julian Andres Klode ] + * apt-pkg/contrib/fileutl.cc: + - Add WriteAtomic mode. + - Revert WriteEmpty to old behavior (LP: #613211) + * apt-pkg, methods: + - Convert users of WriteEmpty to WriteAtomic. + * apt-pkg/depcache.cc: + - Only try upgrade for Breaks if there is a newer version, otherwise + handle it as Conflicts (by removing it) (helps for #591882). + + [ Michael Vogt ] + * debian/control: + - Add recommends on gnupg to apt, apt-key uses it. + (changed from debian) + + -- Michael Vogt Wed, 11 Aug 2010 12:01:30 +0200 + +apt (0.7.26~exp12ubuntu3) maverick; urgency=low + + [ Colin Watson ] + * apt-pkg/cdrom.cc: + - fix off-by-one error in DropBinaryArch + + -- Michael Vogt Mon, 02 Aug 2010 21:04:18 +0200 + +apt (0.7.26~exp12ubuntu2) maverick; urgency=low + + * debian/apt.postinst: + - do not fail if ubuntu-keyring is not installed + + -- Michael Vogt Mon, 02 Aug 2010 11:47:59 +0200 + +apt (0.7.26~exp12ubuntu1) maverick; urgency=low + + * ABI break upload + * merged from debian/experimental, remaining changes: + - use ubuntu keyring and ubuntu archive keyring in apt-key + - run update-apt-xapian-index in apt.cron + - support apt-key net-update and verify keys against master-keyring + - run apt-key net-update in cron.daily + - different example sources.list + * debian/apt.postinst + - drop set_apt_proxy_from_gconf(), no longer needed in maverick + * apt-pkg/pkgcache.cc: + - re-evaluate the architectures cache when the cache is (re)opened + + -- Michael Vogt Fri, 30 Jul 2010 19:32:15 +0200 + apt (0.7.26~exp12) experimental; urgency=low [ Michael Vogt ] @@@ -2450,228 -1525,82 +2480,228 @@@ apt (0.7.26~exp3) experimental; urgency * cmdline/apt-get.cc: - if apt-get source foo=version or foo/distro can not be found, error out (LP: #502641) - * apt-pkg/packagemanager.cc: - - better debug output - * doc/examples/configure-index: - - add missing Debug::pkgPackageManager option - - -- Michael Vogt Thu, 01 Apr 2010 17:30:43 +0200 - -apt (0.7.26~exp2) experimental; urgency=low - - * fix crash when LANGUAGE is not set + * apt-pkg/packagemanager.cc: + - better debug output + * doc/examples/configure-index: + - add missing Debug::pkgPackageManager option + + -- Michael Vogt Thu, 01 Apr 2010 17:30:43 +0200 + +apt (0.7.26~exp2) experimental; urgency=low + + * fix crash when LANGUAGE is not set + + -- Michael Vogt Thu, 18 Feb 2010 22:07:23 +0100 + +apt (0.7.26~exp1) experimental; urgency=low + + [ David Kalnischkies ] + * [BREAK] add possibility to download and use multiply + Translation files, configurable with Acquire::Translation + (Closes: #444222, #448216, #550564) + * Ignore :qualifiers after package name in build dependencies + for now as long we don't understand them (Closes: #558103) + * apt-pkg/contrib/mmap.{cc,h}: + - extend it to have a growable flag - unused now but maybe... + * apt-pkg/pkgcache.h: + - use long instead of short for {Ver,Desc}File size, + patch from Víctor Manuel Jáquez Leal, thanks! (Closes: #538917) + * apt-pkg/acquire-item.cc: + - allow also to skip the last patch if target is reached, + thanks Bernhard R. Link! (Closes: #545699) + * ftparchive/writer.{cc,h}: + - add --arch option for packages and contents commands + - if an arch is given accept only *_all.deb and *_arch.deb instead + of *.deb. Thanks Stephan Bosch for the patch! (Closes: #319710) + - add APT::FTPArchive::AlwaysStat to disable the too aggressive + caching if versions are build multiply times (not recommend) + Patch by Christoph Goehre, thanks! (Closes: #463260) + * apt-pkg/deb/dpkgpm.cc: + - stdin redirected to /dev/null takes all CPU (Closes: #569488) + Thanks to Aurelien Jarno for providing (again) a patch! + * buildlib/apti18n.h.in, po/makefile: + - add ngettext support with P_() + * aptconfiguration.cc: + - include all existing Translation files in the Cache (Closes: 564137) + * debian/control: + - update with no changes to debian policy 3.8.4 + * doc/apt_preferences.5.xml: + - explicitly warn against careless use (Closes: #567669) + * debian/rules: + - remove creation of empty dir /usr/share/apt + * doc/apt-cdrom.8.xml: + - fix typo spotted by lintian: proc(c)eed + + [ Ivan Masár ] + * Slovak translation update. Closes: #568294 + + [ Michael Vogt ] + * [BREAK] merged lp:~mvo/apt/history + - this writes a /var/log/apt/history tagfile that contains details + from the transaction (complements term.log) + * methods/http.cc: + - add cache-control headers even if no cache is given to allow + adding options for intercepting proxies + - add Acquire::http::ProxyAutoDetect configuration that + can be used to call a external helper to figure out the + proxy configuration and return it to apt via stdout + (this is a step towards WPAD and zeroconf/avahi support) + * abicheck/ + - add new abitest tester using the ABI Compliance Checker from + http://ispras.linuxfoundation.org/index.php/ABI_compliance_checker + + [ Robert Collins ] + * Change the package index Info methods to allow apt-cache policy to be + useful when using several different archives on the same host. + (Closes: #329814, LP: #22354) + + -- Michael Vogt Thu, 18 Feb 2010 16:11:39 +0100 + +apt (0.7.25.3ubuntu10) maverick; urgency=low + + [ Michael Vogt ] + * debian/apt.conf.ubuntu: + - no longer install (empty) apt.conf.d/01ubuntu + * apt-pkg/deb/dpkgpm.cc: + - make the apt/term.log output unbuffered (thanks to Matt Zimmerman) + - fix FTBFS (LP: #600155) + + [ Matthias G. ] + * apt-pkg/deb/dpkgpm.cc: + - Fix segmentation fault when /var/log/apt ist missing. LP: #535509 + + -- Michael Vogt Thu, 08 Jul 2010 09:37:03 +0200 + +apt (0.7.25.3ubuntu9) lucid-proposed; urgency=low + + * debian/apt.postinst: + - do not fail if getent returns nothing useful (LP: #579647) + thanks to Jean-Baptiste Lallement + + -- Michael Vogt Fri, 14 May 2010 09:40:50 +0200 + +apt (0.7.25.3ubuntu8) lucid-proposed; urgency=low + + [ Loïc Minier ] + * Use https:// in Vcs-Bzr URL. + + [ Michael Vogt ] + * apt-pkg/deb/debrecords.cc: + - fix max tag buffer size (LP: #545336, closes: #578959) + * apt-pkg/indexfile.cc: + - If no "_" is found in the language code, try to find a "." + This is required for languages like Esperanto that have no + county associated with them (LP: #560956) + Thanks to "Aisano" for the fix + + -- Michael Vogt Wed, 05 May 2010 10:33:46 +0200 + +apt (0.7.25.3ubuntu7) lucid; urgency=low + + Cherry pick fixes from the lp:~mvo/apt/mvo branch: + + [ Evan Dandrea ] + * Remember hosts with general failures for + https://wiki.ubuntu.com/NetworklessInstallationFixes (LP: #556831). + + [ Michael Vogt ] + * improve debug output for Debug::pkgPackageManager + + -- Michael Vogt Wed, 14 Apr 2010 20:30:03 +0200 + +apt (0.7.25.3ubuntu6) lucid; urgency=low + + * cmdline/apt-get.cc: + - fix crash when pkg.VersionList() is empty (LP: #556056) + + -- Michael Vogt Thu, 08 Apr 2010 21:13:25 +0200 + +apt (0.7.25.3ubuntu5) lucid; urgency=low + + [ David Kalnischkies ] + * cmdline/apt-get.cc: + - try version match in FindSrc first exact than fuzzy (LP: #551178) + + [ Jean-Baptiste Lallement ] + * apt-pkg/contrib/strutl.cc: + - always escape '%' (LP: #130289) (Closes: #500560) + - unescape '%' sequence only if followed by 2 hex digit + - username/password are urlencoded in proxy string (RFC 3986) + + -- Michael Vogt Wed, 31 Mar 2010 21:59:42 +0200 + +apt (0.7.25.3ubuntu4) lucid; urgency=low + + [ David Kalnischkies ] + * apt-pkg/deb/debversion.cc: + - consider absent of debian revision equivalent to 0 (Closes: #573592) + LP: #540228 + * cmdline/apt-get.cc, apt-pkg/cdrom.cc: + - fix memory leaks in error conditions in DoSource() + * apt-pkg/deb/dpkgpm.cc: + - fix error message construction in OpenLog() + + -- Michael Vogt Fri, 26 Mar 2010 16:57:49 +0100 + +apt (0.7.25.3ubuntu3) lucid; urgency=low + + * apt-pkg/indexfile.cc: + - remove "cs" from languages that need the full langcode when + downloading translations (thanks to Steve Langasek) + + -- Michael Vogt Mon, 15 Mar 2010 09:42:39 +0100 + +apt (0.7.25.3ubuntu2) lucid; urgency=low + + [ Michael Vogt ] + * abicheck/ + - add new abitest tester using the ABI Compliance Checker from + http://ispras.linuxfoundation.org/index.php/ABI_compliance_checker + * debian/apt.conf.autoremove: + - add "oldlibs" to the APT::Never-MarkAuto-Sections as its used + for transitional packages + * apt-pkg/deb/dpkgpm.cc: + - fix backgrounding when dpkg runs (closes: #486222) + * cmdline/apt-mark: + - show error on incorrect aguments (LP: #517917), thanks to + Torsten Spindler + * cmdline/apt-get.cc: + - if apt-get source foo=version or foo/distro can not be found, + error out (LP: #502641) + * apt-pkg/indexfile.cc: + - deal correctly with three letter langcodes (LP: #391409) + * debian/apt.cron.daily: + - do not look into admin users gconf anymore for the http proxy + the user now needs to use the "Apply system-wide" UI in the + gnome-control-center to set it + * debian/apt.postinst: + - add set_apt_proxy_from_gconf() and run that once on upgrade if + there is no proxy configured already system-wide (LP: #432631) + From that point on gnome-control-center will have to warn if + the user makes changes to the proxy settings and does not apply + them system wide - -- Michael Vogt Thu, 18 Feb 2010 22:07:23 +0100 + [ Robert Collins ] + * Change the package index Info methods to allow apt-cache policy to be + useful when using several different archives on the same host. + (Closes: #329814, LP: #22354) -apt (0.7.26~exp1) experimental; urgency=low + -- Michael Vogt Fri, 12 Mar 2010 23:10:52 +0100 - [ David Kalnischkies ] - * [BREAK] add possibility to download and use multiply - Translation files, configurable with Acquire::Translation - (Closes: #444222, #448216, #550564) - * Ignore :qualifiers after package name in build dependencies - for now as long we don't understand them (Closes: #558103) - * apt-pkg/contrib/mmap.{cc,h}: - - extend it to have a growable flag - unused now but maybe... - * apt-pkg/pkgcache.h: - - use long instead of short for {Ver,Desc}File size, - patch from Víctor Manuel Jáquez Leal, thanks! (Closes: #538917) - * apt-pkg/acquire-item.cc: - - allow also to skip the last patch if target is reached, - thanks Bernhard R. Link! (Closes: #545699) - * ftparchive/writer.{cc,h}: - - add --arch option for packages and contents commands - - if an arch is given accept only *_all.deb and *_arch.deb instead - of *.deb. Thanks Stephan Bosch for the patch! (Closes: #319710) - - add APT::FTPArchive::AlwaysStat to disable the too aggressive - caching if versions are build multiply times (not recommend) - Patch by Christoph Goehre, thanks! (Closes: #463260) - * apt-pkg/deb/dpkgpm.cc: - - stdin redirected to /dev/null takes all CPU (Closes: #569488) - Thanks to Aurelien Jarno for providing (again) a patch! - * buildlib/apti18n.h.in, po/makefile: - - add ngettext support with P_() - * aptconfiguration.cc: - - include all existing Translation files in the Cache (Closes: 564137) - * debian/control: - - update with no changes to debian policy 3.8.4 - * doc/apt_preferences.5.xml: - - explicitly warn against careless use (Closes: #567669) - * debian/rules: - - remove creation of empty dir /usr/share/apt - * doc/apt-cdrom.8.xml: - - fix typo spotted by lintian: proc(c)eed +apt (0.7.25.3ubuntu1) lucid; urgency=low - [ Ivan Masár ] - * Slovak translation update. Closes: #568294 - [ Michael Vogt ] - * [BREAK] merged lp:~mvo/apt/history - - this writes a /var/log/apt/history tagfile that contains details - from the transaction (complements term.log) + * merged with the debian-sid branch * methods/http.cc: - - add cache-control headers even if no cache is given to allow - adding options for intercepting proxies - add Acquire::http::ProxyAutoDetect configuration that can be used to call a external helper to figure out the proxy configuration and return it to apt via stdout (this is a step towards WPAD and zeroconf/avahi support) - * abicheck/ - - add new abitest tester using the ABI Compliance Checker from - http://ispras.linuxfoundation.org/index.php/ABI_compliance_checker - - [ Robert Collins ] - * Change the package index Info methods to allow apt-cache policy to be - useful when using several different archives on the same host. - (Closes: #329814, LP: #22354) + + [ Ivan Masár ] + * Slovak translation update. Closes: #568294 - -- Michael Vogt Thu, 18 Feb 2010 16:11:39 +0100 + -- Michael Vogt Wed, 17 Feb 2010 23:33:32 +0100 apt (0.7.25.3) unstable; urgency=low @@@ -2793,39 -1722,6 +2823,39 @@@ apt (0.7.25.1) unstable; urgency=lo -- Michael Vogt Sat, 09 Jan 2010 21:52:36 +0100 +apt (0.7.25ubuntu4) lucid; urgency=low + + * cmdline/apt-cdrom.cc: + - make Acquire::cdrom::AutoDetect default, this can be + turned off with "--no-auto-detect" + * methods/http.cc: + - add cache-control headers even if no cache is given to allow + adding options for intercepting proxies + + -- Michael Vogt Tue, 02 Feb 2010 16:58:59 -0800 + +apt (0.7.25ubuntu3) lucid; urgency=low + + * cmdline/apt-get.cc: + - don't mark as manually if in download only (Closes: #468180) + + -- Michael Vogt Mon, 01 Feb 2010 18:41:15 +0100 + +apt (0.7.25ubuntu2) lucid; urgency=low + + * Change history branch so that it does not break the + apt ABI for the pkgPackageManager interface + (can be reverted on the next ABI break) + + -- Michael Vogt Wed, 23 Dec 2009 10:14:16 +0100 + +apt (0.7.25ubuntu1) lucid; urgency=low + + * Merged from the mvo branch + * merged from the lp:~mvo/apt/history branch + + -- Michael Vogt Tue, 22 Dec 2009 09:44:08 +0100 + apt (0.7.25) unstable; urgency=low [ Christian Perrier ] @@@ -2969,29 -1865,6 +2999,29 @@@ -- Michael Vogt Tue, 15 Dec 2009 09:21:55 +0100 +apt (0.7.24ubuntu1) lucid; urgency=low + + [ Michael Vogt ] + * apt-pkg/deb/dpkgpm.cc: + - include df -l output in the apport log as well (thanks to + tjaalton) + * apt-pkg/packagemanager.cc: + - add output about pre-depends configuring when debug::pkgPackageManager + is used + * methods/https.cc: + - fix incorrect use of CURLOPT_TIMEOUT, closes: #497983, LP: #354972 + thanks to Brian Thomason for the patch + * merge lp:~mvo/apt/netrc branch, this adds support for a + /etc/apt/auth.conf that can be used to store username/passwords + in a "netrc" style file (with the extension that it supports "/" + in a machine definition). Based on the maemo git branch. + + [ Brian Murray ] + * apt-pkg/depcache.cc, apt-pkg/indexcopy.cc: + - typo fix (LP: #462328) + + -- Michael Vogt Mon, 14 Dec 2009 09:27:26 +0100 + apt (0.7.24) unstable; urgency=low [ Nicolas François ] @@@ -3061,59 -1934,6 +3091,59 @@@ -- Michael Vogt Fri, 25 Sep 2009 19:57:25 +0200 +apt (0.7.23.1ubuntu2) karmic; urgency=low + + [ Michael Vogt ] + * debian/control: + - fix Vcr-Bzr header + + [ Kees Cook ] + * debian/apt.cron.daily: + - fix quotes for use with "eval", thanks to Lars Ljung (LP: #449535). + + -- Michael Vogt Thu, 15 Oct 2009 19:05:19 +0200 + +apt (0.7.23.1ubuntu1) karmic; urgency=low + + [ Matt Zimmerman ] + * apt-pkg/deb/dpkgpm.cc: + - Suppress apport reports on dpkg short reads (these I/O errors are not + generally indicative of a bug in the packaging) + + [ Loïc Minier ] + * cmdline/apt-key: + - Emit a warning if removed keys keyring is missing and skip associated + checks (LP: #218971) + + [ Brian Murray ] + * cmdline/apt-get.cc: + - typo fix (LP: #370094) + + [ Michael Vogt ] + * apt-pkg/deb/dpkgpm.cc: + - when tcgetattr() returns non-zero skip all pty magic + (thanks to Simon Richter, closes: #509866) + * apt-inst/contrib/arfile.cc: + - show propper error message for Invalid archive members + * apt-pkg/acquire-worker.cc: + - show error details of failed methods + * apt-pkg/contrib/fileutl.cc: + - if a process aborts with signal, show signal number + * methods/http.cc: + - ignore SIGPIPE, we deal with EPIPE from write in + HttpMethod::ServerDie() (LP: #385144) + * debian/apt.cron.daily: + - if the timestamp is too far in the future, delete it + (LP: #135262) + + [ Merge ] + * merged from debian, reverted the libdlopen-udev branch + because its too late in the release process for this now + * not merged the proxy behaviour change from 0.7.23 (that will + be part of lucid) + + -- Michael Vogt Wed, 23 Sep 2009 18:15:10 +0200 + apt (0.7.23.1) unstable; urgency=low [ Michael Vogt ] @@@ -3343,34 -2163,6 +3373,34 @@@ apt (0.7.22) unstable; urgency=lo -- Michael Vogt Wed, 29 Jul 2009 19:16:22 +0200 +apt (0.7.21ubuntu1) karmic; urgency=low + + * merged from the debian-sid bzr branch + + [ Christian Perrier ] + * Documentation translations: + - Fix a typo in apt-get(8) French translation. Closes: #525043 + Thanks to Guillaume Delacour for spotting it. + * Translations: + - fr.po + - sk.po. Closes: #525857 + - ru.po. Closes: #526816 + - eu.po. Closes: #528985 + - zh_CN.po. Closes: #531390 + - fr.po + - it.po. Closes: #531758 + - ca.po. Closes: #531921 + * Added translations + - ast.po (Asturian by Marcos Alvareez Costales). + Closes: #529007, #529730 + + [ Michael Vogt ] + * apt-pkg/acquire.cc: + - make the (internal) max pipeline depth of the acquire queue + configurable via Acquire::Max-Pipeline-Depth + + -- Michael Vogt Tue, 09 Jun 2009 15:49:07 +0200 + apt (0.7.21) unstable; urgency=low [ Christian Perrier ] @@@ -3384,154 -2176,35 +3414,154 @@@ - it.po. Closes: #522222 - sk.po. Closes: #520403 - [ Jamie Strandboge ] - * apt.cron.daily: catch invalid dates due to DST time changes - in the stamp files - + [ Jamie Strandboge ] + * apt.cron.daily: catch invalid dates due to DST time changes + in the stamp files + + [ Michael Vogt ] + * methods/gpgv.cc: + - properly check for expired and revoked keys (closes: #433091) + * apt-pkg/contrib/strutl.cc: + - fix TimeToStr i18n (LP: #289807) + * [ABI break] merge support for http redirects, thanks to + Jeff Licquia and Anthony Towns + * [ABI break] use int for the package IDs (thanks to Steve Cotton) + * apt-pkg/pkgcache.cc: + - do not run "dpkg --configure pkg" if pkg is in trigger-awaited + state (LP: #322955) + * methods/https.cc: + - add Acquire::https::AllowRedirect support + * Clarify the --help for 'purge' (LP: #243948) + * cmdline/apt-get.cc + - fix "apt-get source pkg" if there is a binary package and + a source package of the same name but from different + packages (LP: #330103) + + [ Colin Watson ] + * cmdline/acqprogress.cc: + - Call pkgAcquireStatus::Pulse even if quiet, so that we still get + dlstatus messages on the status-fd (LP: #290234). + + -- Michael Vogt Tue, 14 Apr 2009 14:12:51 +0200 + +apt (0.7.20.2ubuntu7) karmic; urgency=low + + * fix problematic use of tolower() when calculating the version + hash by using locale independant tolower_ascii() function. + Thanks to M. Vefa Bicakci (LP: #80248) + * build fixes for g++-4.4 + * include dmesg output in apport package failures + * include apt ordering into apport package failures + + -- Michael Vogt Fri, 24 Apr 2009 10:14:01 +0200 + +apt (0.7.20.2ubuntu6) jaunty; urgency=low + + [ Jamie Strandboge ] + * apt.cron.daily: catch invalid dates due to DST time changes + in the stamp files (LP: #354793) + + [ Michael Vogt ] + * methods/gpgv.cc: + - properly check for expired and revoked keys (closes: #433091) + LP: #356012 + + -- Michael Vogt Wed, 08 Apr 2009 22:39:50 +0200 + +apt (0.7.20.2ubuntu5) jaunty; urgency=low + + [ Colin Watson ] + * cmdline/acqprogress.cc: + - Call pkgAcquireStatus::Pulse even if quiet, so that we still get + dlstatus messages on the status-fd (LP: #290234). + + [ Michael Vogt ] + * debian/apt.cron.daily: + - do not clutter cron mail with bogus gconftool messages + (LP: #223502) + - merge fix for cache locking from debian (closes: #459344) + - run update-apt-xapian-index (with ionice) to ensure that + the index is up-to-date when synaptic is run (LP: #288797) + + -- Michael Vogt Mon, 30 Mar 2009 13:22:28 +0200 + +apt (0.7.20.2ubuntu4) jaunty; urgency=low + + * ftparchive/cachedb.cc: + - when apt-ftparchive clean is used, compact the database + at the end (thanks to cprov) + + -- Michael Vogt Thu, 26 Mar 2009 13:43:59 +0100 + +apt (0.7.20.2ubuntu3) jaunty; urgency=low + + * methods/mirror.cc: + - when download the mirror file and the server is down, + return a propper error message (LP: #278635) + + -- Michael Vogt Thu, 19 Mar 2009 15:42:15 +0100 + +apt (0.7.20.2ubuntu2) jaunty; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - revert termios patch (LP: #338514) + * cmdline/apt-get.cc + - fix "apt-get source pkg" if there is a binary package and + a source package of the same name but from different + packages (LP: #330103) + + -- Michael Vogt Mon, 09 Mar 2009 16:33:28 +0100 + +apt (0.7.20.2ubuntu1) jaunty; urgency=low + + [ Christian Perrier ] + * Translations: + - bg.po. Closes: #513211 + - zh_TW.po. Closes: #513311 + - nb.po. Closes: #513843 + [ Michael Vogt ] - * methods/gpgv.cc: - - properly check for expired and revoked keys (closes: #433091) - * apt-pkg/contrib/strutl.cc: - - fix TimeToStr i18n (LP: #289807) + * merged from the debian-sid branch * [ABI break] merge support for http redirects, thanks to Jeff Licquia and Anthony Towns * [ABI break] use int for the package IDs (thanks to Steve Cotton) + * apt-pkg/contrib/strutl.cc: + - fix TimeToStr i18n (LP: #289807) + * debian/apt.conf.autoremove: + - readd "linux-image" (and friends) to the auto-remove + blacklist + * fix some i18n issues (thanks to Gabor Kelemen) + LP: #263089 + * apt-pkg/deb/dpkgpm.cc: + - filter "ENOMEM" errors when creating apport reports + * cmdline/apt-get.cc: + - fix "apt-get source pkg=ver" if binary name != source name + (LP: #202219) + * apt-pkg/indexrecords.cc: + - fix some i18n issues + * apt-pkg/contrib/strutl.h: + - add new strprintf() function to make i18n strings easier + * apt-pkg/dev/debsystem.cc: + - add missing apti18n.h header + * cmdline/apt-get.cc: + - default to "false" for the "APT::Get::Build-Dep-Automatic" + option (follow debian here) * apt-pkg/pkgcache.cc: - do not run "dpkg --configure pkg" if pkg is in trigger-awaited state (LP: #322955) * methods/https.cc: - add Acquire::https::AllowRedirect support + - do not unlink files in partial/ (thanks to robbiew) + + [ Dereck Wonnacott ] * Clarify the --help for 'purge' (LP: #243948) - * cmdline/apt-get.cc - - fix "apt-get source pkg" if there is a binary package and - a source package of the same name but from different - packages (LP: #330103) - [ Colin Watson ] - * cmdline/acqprogress.cc: - - Call pkgAcquireStatus::Pulse even if quiet, so that we still get - dlstatus messages on the status-fd (LP: #290234). + [ Ian Weisser ] + * /apt-pkg/deb/debsystem.cc: + - add 'sudo' to the error message to "run 'dpkg --configure -a'" + (LP: #52697) - -- Michael Vogt Tue, 14 Apr 2009 14:12:51 +0200 + -- Michael Vogt Mon, 09 Feb 2009 14:21:05 +0100 apt (0.7.20.2) unstable; urgency=medium @@@ -3601,12 -2274,6 +3631,12 @@@ apt (0.7.20) unstable; urgency=lo -- Michael Vogt Mon, 05 Jan 2009 08:59:20 +0100 +apt (0.7.19ubuntu1) jaunty; urgency=low + + * merge from debian + + -- Michael Vogt Mon, 24 Nov 2008 10:52:20 +0100 + apt (0.7.19) unstable; urgency=low [ Eugene V. Lyubimkin ] @@@ -3905,90 -2572,6 +3935,90 @@@ apt (0.7.15~exp1) experimental; urgency -- Michael Vogt Tue, 16 Sep 2008 21:27:03 +0200 +apt (0.7.14ubuntu7) jaunty; urgency=low + + * cmdline/apt-cache.cc: + - remove the gettext from a string that consists entirely + of variables (LP: #56792) + * apt-pkg/deb/dpkgpm.cc: + - fix potential hang when in a backgroud process group + + -- Michael Vogt Tue, 28 Oct 2008 21:09:12 +0100 + +apt (0.7.14ubuntu6) intrepid; urgency=low + + * debian/apt.conf.autoremove: + - remove "linux-image" (and friends) from the auto-remove + blacklist. we have the kernel fallback infrastructure now + in intrepid (thanks to BenC) + * apt-pkg/indexcopy.cc: + - support having CDs with no Packages file (just a Packages.gz) + by not forcing a verification on non-existing files + (LP: #255545) + * apt-pkg/deb/dpkgpm.cc: + - improve the filtering for duplicated apport reports (thanks + to seb128 for pointing that problem out) + - do not report disk full errors from dpkg via apport + + -- Michael Vogt Thu, 07 Aug 2008 16:28:05 +0200 + +apt (0.7.14ubuntu5) intrepid; urgency=low + + * fix various -Wall warnings + * make "apt-get build-dep" installed packages marked automatic + by default. This can be changed by setting the value of + APT::Get::Build-Dep-Automatic to false (thanks to Aaron + Haviland, closes: #44874, LP: #248268) + + -- Michael Vogt Wed, 06 Aug 2008 14:00:51 +0200 + +apt (0.7.14ubuntu4) intrepid; urgency=low + + [ Michael Vogt ] + * apt-pkg/deb/dpkgpm.cc: + - fix uninitialized variable that caused no apport reports + to be written sometimes (thanks to Matt Zimmerman) + * merge patch that enforces stricter https server certificate + checking (thanks to Arnaud Ebalard, closes: #485960) + * allow per-mirror specific https settings + (thanks to Arnaud Ebalard, closes: #485965) + * add doc/examples/apt-https-method-example.cof + (thanks to Arnaud Ebalard, closes: #485964) + * add DPkg::NoTriggers option so that applications that call + apt/aptitude (like the installer) defer trigger processing + (thanks to Joey Hess) + * document --install-recommends and --no-install-recommends + (thanks to Dereck Wonnacott, LP: #126180) + + [ Dereck Wonnacott ] + * apt-ftparchive might write corrupt Release files (LP: #46439) + * Apply --important option to apt-cache depends (LP: #16947) + + -- Michael Vogt Tue, 05 Aug 2008 10:10:49 +0200 + +apt (0.7.14ubuntu3) intrepid; urgency=low + + [ Otavio Salvador ] + * Apply patch to avoid truncating of arbitrary files. Thanks to Bryan + Donlan for the patch. Closes: #482476 + * Avoid using dbus if dbus-daemon isn't running. Closes: #438803 + + [ Michael Vogt ] + * apt-pkg/deb/dpkgpm.cc: + - improve apt progress reporting, display trigger actions + * apt-pkg/depcache.cc: + - when checking for new important deps, skip critical ones + (LP: #236360) + + -- Michael Vogt Tue, 03 Jun 2008 17:27:07 +0200 + +apt (0.7.14ubuntu2) intrepid; urgency=low + + * debian/control: + - fix FTBFS by adding missing intltool dependency + + -- Michael Vogt Fri, 09 May 2008 13:50:22 +0200 + apt (0.7.14) unstable; urgency=low [ Christian Perrier ] @@@ -4169,300 -2752,29 +4199,300 @@@ apt (0.7.10) unstable; urgency=lo [ Program translations ] - Basque updated. Closes: #453088 - - Vietnamese updated. Closes: #453774, #459013 - - Japanese updated. Closes: #456909 - - Simplified Chinese updated. Closes: #458039 - - French updated. - - Norwegian Bokmål updated. Closes: #457917 + - Vietnamese updated. Closes: #453774, #459013 + - Japanese updated. Closes: #456909 + - Simplified Chinese updated. Closes: #458039 + - French updated. + - Norwegian Bokmål updated. Closes: #457917 + + [ Michael Vogt ] + * debian/rules + - fix https install location + * debian/apt.conf.daily: + - print warning if the cache can not be locked (closes: #454561), + thanks to Bastian Kleineidam + * methods/gpgv.cc: + - remove cruft code that caused timestamp/I-M-S issues + * ftparchive/contents.cc: + - fix error output + * apt-pkg/acquire-item.{cc,h}: + - make the authentication download code more robust against + servers/proxies with broken If-Range implementations + * apt-pkg/packagemanager.{cc,h}: + - propergate the Immediate flag to make hitting the + "E: Internal Error, Could not perform immediate configuration (2)" + harder + * debian/control: + - build against libdb-dev (instead of libdb4.4-dev) + * merged the apt--DoListUpdate branch, this provides a common interface + for "apt-get update" like operations for the frontends and also provides + hooks to run stuff in APT::Update::{Pre,Post}-Invoke + + [ Chris Cheney ] + * ftparchive/contents.cc: + - support lzma data members + * ftparchive/multicompress.cc: + - support lzma output + + [ Daniel Burrows ] + * apt-pkg/contrib/configuration.cc: + - if RootDir is set, then FindFile and FindDir will return paths + relative to the directory stored in RootDir, closes: #456457. + + [ Christian Perrier ] + * Fix wording for "After unpacking...". Thanks to Michael Gilbert + for the patch. Closes: #260825 + + -- Michael Vogt Mon, 07 Jan 2008 21:40:47 +0100 + +apt (0.7.9ubuntu17) hardy-proposed; urgency=low + + * apt-pkg/acquire-item.cc: + - fix signaure removal on transient network failures LP: #220627 + (thanks to Scott James Remnant) + + -- Michael Vogt Tue, 22 Apr 2008 16:32:49 +0200 + +apt (0.7.9ubuntu16) hardy; urgency=low + + * cmdline/apt-key: + - only check against master-keys in net-update to not break + custom CDs (thanks to Colin Watson) + + -- Michael Vogt Tue, 08 Apr 2008 14:17:14 +0200 + +apt (0.7.9ubuntu15) hardy; urgency=low + + * cmdline/apt-get.cc: + - do two passes when installing tasks, first ignoring dependencies, + then resolving them and run the problemResolver at the end + so that it can correct any missing dependencies. This should + fix livecd building for kubuntu (thanks to Jonathan Riddell + for reporting the problem) + + -- Michael Vogt Thu, 13 Mar 2008 23:25:45 +0100 + +apt (0.7.9ubuntu14) hardy; urgency=low + + * cmdline/apt-get.cc: + - fix incorrect help output for -f (LP: #57487) + - run the problemResolver after a task was installed + so that it can correct any missing dependencies + * typo fixes (LP: #107960) + + -- Michael Vogt Tue, 11 Mar 2008 21:46:07 +0100 + +apt (0.7.9ubuntu13) hardy; urgency=low + + [ Lionel Porcheron ] + * debian/apt.cron.daily: + - only call gconftool if gcontool is installed (LP: #194281) + + [ Michael Vogt ] + * doc/apt_preferences.5.xml: + - fix typo (LP: #150900) + * doc/example/sources.list: + - updated for hardy (LP: #195879) + * debian/apt.cron.daily: + - sleep random amount of time (default within 0-30min) before + starting the upate to hit the mirrors less hard + + -- Michael Vogt Tue, 04 Mar 2008 15:35:09 +0100 + +apt (0.7.9ubuntu12) hardy; urgency=low + + * debian/apt.cron.daily: + - use admin user proxy settings + * cmdline/apt-get.cc: + - fix task installation (thanks to Colin Watson) + + -- Michael Vogt Thu, 21 Feb 2008 15:07:44 +0100 + +apt (0.7.9ubuntu11) hardy; urgency=low + + * apt-pkg/algorithms.cc: + - add APT::Update::Post-Invoke-Success script slot + (LP: #188127) + + -- Michael Vogt Thu, 10 Jan 2008 12:06:12 +0100 + +apt (0.7.9ubuntu10) hardy; urgency=low + + * cmdline/apt-key: + - add "net-update" command that fetches the + ubuntu-archive-keyring.gpg and add keys from it that are + signed by the ubuntu-master-keyring.gpg + (apt-archive-key-signatures spec) + * debian/apt.cron.daily: + - add apt-key net-update to the nightly cron job + + -- Michael Vogt Wed, 13 Feb 2008 15:50:28 +0100 + +apt (0.7.9ubuntu9) hardy; urgency=low + + * fix FTBFS due to incorrect intltool build-depends + + -- Michael Vogt Mon, 11 Feb 2008 16:04:37 +0100 + +apt (0.7.9ubuntu8) hardy; urgency=low + + * share/apt-auth-failure.note: + - show update-notifier note if the nightly update fails with a + authentication failure (apt-authentication-reliability spec) + + -- Michael Vogt Mon, 11 Feb 2008 14:04:56 +0100 + +apt (0.7.9ubuntu7) hardy; urgency=low + + * methods/connect.cc: + - remember hosts with Resolve failures or connect Timeouts + see https://wiki.ubuntu.com/NetworklessInstallationFixes + * cmdlines/apt-key: + - fix bug in the new apt-key update code that imports only + keys signed with the master key (thanks to cjwatson) + + -- Michael Vogt Fri, 08 Feb 2008 11:38:35 +0100 + +apt (0.7.9ubuntu6) hardy; urgency=low + + * cmdline/apt-key: + - add support for a master-keyring that contains signing keys + that can be used to sign the archive signing keys. This should + make key-rollover easier. + * apt-pkg/deb/dpkgpm.cc: + - merged patch from Kees Cook to fix anoying upper-case display + on amd64 in sbuild + * apt-pkg/algorithms.cc: + - add APT::Update::Post-Invoke-Success script slot + - Make the breaks handling use the kill list. This means, that a + Breaks: Pkg (<< version) may put Pkg onto the remove list. + * apt-pkg/deb/dpkgpm.cc: + - add APT::Apport::MaxReports to limit the maximum number + of reports generated in a single run (default to 3) + * apt-pkg/deb/debmetaindex.cc: + - add missing "Release" file uri when apt-get update --print-uris + is run + + -- Michael Vogt Mon, 04 Feb 2008 14:28:02 +0100 + +apt (0.7.9ubuntu5) hardy; urgency=low + + * Merged apt-authentication-reliabilty branch. This means + that apt will refuse to update and use the old lists if + the authentication of a repository that used to be + authenticated fails. See + https://wiki.ubuntu.com/AptAuthenticationReliability + for more details. + + -- Michael Vogt Wed, 16 Jan 2008 10:36:10 +0100 + +apt (0.7.9ubuntu4) hardy; urgency=low + + * apt-pkg/algorithms.cc: + - Since APT::Get::List-Cleanup and APT::List-Cleanup both default to + true, the effect of the compatibility code was to require both of them + to be set to false in order to disable list cleanup; this broke the + installer. Instead, disable list cleanup if either of them is set to + false. + + -- Colin Watson Wed, 09 Jan 2008 22:34:37 +0000 + +apt (0.7.9ubuntu3) hardy; urgency=low + + * merged the apt--DoListUpdate branch, this provides a common interface + for "apt-get update" like operations for the frontends and also provides + hooks to run stuff in APT::Update::{Pre,Post}-Invoke + + -- Michael Vogt Mon, 07 Jan 2008 19:02:11 +0100 + +apt (0.7.9ubuntu2) hardy; urgency=low + + [ Otavio Salvador ] + * Applied patch from Aurelien Jarno to fix building + with newest dpkg-shlibdeps changing the packaging building order and a + patch from Robert Millan to fix parallel building, + closes: #452862. + * Applied patch from Alexander Winston + to use 'min' as symbol for minute, closes: #219034. + * Applied patch from Amos Waterland to allow apt to + work properly in initramfs, closes: #448316. + * Applied patch from Robert Millan to make apt-key and + apt-get to ignore time conflicts, closes: #451328. + * Applied patch from Peter Eisentraut to fix a + grammatical error ("manual installed" -> "manually installed"), + closes: #438136. + * Fix cron.daily job to not call fail if apt isn't installed, closes: + #443286. + + [ Daniel Burrows ] + * apt-pkg/contrib/configuration.cc: + - if RootDir is set, then FindFile and FindDir will return paths + relative to the directory stored in RootDir, closes: #456457. + + [ Christian Perrier ] + * Fix wording for "After unpacking...". Thans to Michael Gilbert + for the patch. Closes: #260825 + + [ Program translations ] + - Vietnamese updated. Closes: #453774 + - Japanese updated. Closes: #456909 + - French updated. + + [ Michael Vogt ] + * apt-pkg/packagemanager.{cc,h}: + - propergate the Immediate flag to make hitting the + "E: Internal Error, Could not perform immediate configuration (2)" + harder. (LP: #179247) + * debian/apt.conf.daily: + - print warning if the cache can not be locked (closes: #454561), + thanks to Bastian Kleineidam + * debian/control: + - build against libdb-dev (instead of libdb4.4-dev) + + -- Michael Vogt Thu, 03 Jan 2008 11:31:45 +0100 + +apt (0.7.9ubuntu1) hardy; urgency=low + + * merged from http://bzr.debian.org/apt/apt/debian-sid/, remaining + changes: + - mirror download method (pending merge with debian) + - no pdiff download by default (unsuitable for ubuntu) + - no recommends-by-default yet + - add "Original-Maintainer" field to tagfile + - show warning on apt-get source if the package is maintained + in a VCS (pedinging merge with debian) + - use ubuntu-archive keyring instead of debians one + - support metapackages section for autoremoval + - debian maintainer field change + - send ubuntu string in user-agent + + * Changes from the debian-sid bzr branch (but not uploaded to debian + yet): + + [ Otavio Salvador ] + * Applied patch from Mike O'Connor to add a manpage to + apt-mark, closes: #430207. + * Applied patch from Andrei Popescu to add a + note about some frontends in apt.8 manpage, closes: #438545. + * Applied patch from Aurelien Jarno to avoid CPU + getting crazy when /dev/null is redirected to stdin (which breaks + buildds), closes: #452858. + + [ Program translations ] + - Basque updated. Closes: #453088 [ Michael Vogt ] * debian/rules - fix https install location - * debian/apt.conf.daily: - - print warning if the cache can not be locked (closes: #454561), - thanks to Bastian Kleineidam * methods/gpgv.cc: - remove cruft code that caused timestamp/I-M-S issues * ftparchive/contents.cc: - fix error output + * methods/mirror.{cc,h}: + - only update mirror list on IndexFile updates * apt-pkg/acquire-item.{cc,h}: - make the authentication download code more robust against servers/proxies with broken If-Range implementations - * apt-pkg/packagemanager.{cc,h}: - - propergate the Immediate flag to make hitting the - "E: Internal Error, Could not perform immediate configuration (2)" - harder * debian/control: - build against libdb-dev (instead of libdb4.4-dev) * merged the apt--DoListUpdate branch, this provides a common interface @@@ -4474,8 -2786,17 +4504,8 @@@ - support lzma data members * ftparchive/multicompress.cc: - support lzma output - - [ Daniel Burrows ] - * apt-pkg/contrib/configuration.cc: - - if RootDir is set, then FindFile and FindDir will return paths - relative to the directory stored in RootDir, closes: #456457. - - [ Christian Perrier ] - * Fix wording for "After unpacking...". Thanks to Michael Gilbert - for the patch. Closes: #260825 - -- Michael Vogt Mon, 07 Jan 2008 21:40:47 +0100 + -- Michael Vogt Thu, 13 Dec 2007 14:46:27 +0100 apt (0.7.9) unstable; urgency=low @@@ -4602,193 -2923,6 +4632,193 @@@ apt (0.7.7) unstable; urgency=lo -- Michael Vogt Tue, 23 Oct 2007 14:58:03 +0200 +apt (0.7.6ubuntu14.1) gutsy-proposed; urgency=low + + [ Michael Vogt ] + * apt-pkg/deb/dpkgpm.{cc,h}: + - give up timeslice on EIO error in read from master terminal + * debian/apt.cron.daily: + - only run the cron job if apt-get check succeeds (LP: #131719) + + [ Martin Emrich ] + * apt-pkg/deb/dpkgpm.{cc,h}: + - rewrite dpkgpm.cc to use pselect() instead of select() + to block signals during select() (LP: #134858) + + -- Michael Vogt Sat, 20 Oct 2007 07:51:12 +0200 + +apt (0.7.6ubuntu14) gutsy; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - fix resource leak (LP: #148806) + + -- Michael Vogt Mon, 15 Oct 2007 20:57:44 +0200 + +apt (0.7.6ubuntu13) gutsy; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - fix crash in WriteApportReport (LP: #144537) + * apt-pkg/acquire-item.cc + - fix disappearing local Packages.gz file (LP: #131166) + * methods/https.cc: + - fix off-by-one error I-M-S handling + - cleanup after I-M-S hit + + -- Michael Vogt Tue, 09 Oct 2007 01:48:26 +0200 + +apt (0.7.6ubuntu12) gutsy; urgency=low + + [ Michael Vogt ] + * cmdline/apt-mark: + - Fix chmoding after have renamed the extended-states file + (thanks to Laurent Bigonville, LP: #140019) + * apt-pkg/deb/debmetaindex.cc: comparison with string literal results + in unspecified behaviour; + * Reset curl options and timestamp between downloaded files. Thanks to + Ryan Murray for the patch + + [Paul Sladen] + * Have 'cron.daily/apt' send D-Bus doesn't exist error messages + to the bit bucket. Thanks to 'dasdda'. (LP: #115397) + + -- Michael Vogt Wed, 03 Oct 2007 02:17:45 +0200 + +apt (0.7.6ubuntu11) gutsy; urgency=low + + * apt-pkg/contrib/mmap.cc: + - don't fail if msync() returns > 0 (LP: #144001) + + -- Colin Watson Sat, 22 Sep 2007 21:39:29 +0100 + +apt (0.7.6ubuntu10) gutsy; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - fix parse error when dpkg sends unexpected data + + -- Michael Vogt Tue, 18 Sep 2007 17:25:09 +0100 + +apt (0.7.6ubuntu9) gutsy; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - fix progress reporting precent calculation (LP: #137798) + * make apt build with g++ 4.3 + * fix missing SetExecClose() call when the status-fd is used + (LP: #136767) + * debian/apt.cron.daily: + - move unattended-upgrade before apt-get autoclean + * fix "purge" commandline argument, closes LP: #125733 + (thanks to Julien Danjou for the patch) + * cmdline/apt-get.cc: + - do not change the auto-installed information if a package + is reinstalled (LP: #139448) + + -- Michael Vogt Tue, 11 Sep 2007 20:55:00 +0200 + +apt (0.7.6ubuntu8) gutsy; urgency=low + + * apt-pkg/deb/dpkgpm.{cc,h}: + - fix bug in dpkg log writing when a signal is caught during + select() (LP: #134858) + - write end marker in the log as well + + -- Michael Vogt Wed, 05 Sep 2007 15:03:46 +0200 + +apt (0.7.6ubuntu7) gutsy; urgency=low + + * reupload to fix FTBFS + + -- Michael Vogt Thu, 16 Aug 2007 19:44:20 +0200 + +apt (0.7.6ubuntu6) gutsy; urgency=low + + * dpkg-triggers: Deal properly with new package states. + + -- Ian Jackson Wed, 15 Aug 2007 20:44:37 +0100 + +apt (0.7.6ubuntu5) UNRELEASED; urgency=low + + * apt-pkg/acquire-item.cc: + - fix file removal on local repo i-m-s hit (LP: #131166) + * tests/local-repo: + - added regression test for this bug + + -- Michael Vogt Thu, 09 Aug 2007 12:34:07 +0200 + +apt (0.7.6ubuntu4) gutsy; urgency=low + + * cmdline/apt-get.cc: + - remove YnPrompt when a XS-Vcs- tag is found, improve the + notice (LP: #129575) + * methods/copy.cc: + - take hashes here too + * apt-pkg/acquire-worker.cc: + - only pass on computed hash if we recived one from the method + + -- Michael Vogt Wed, 08 Aug 2007 19:30:29 +0200 + +apt (0.7.6ubuntu3) gutsy; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - fix packagename extraction when writting apport reports + * apt-pkg/pkgcachegen.cc: + - increase default mmap size (LP: #125640) + + -- Michael Vogt Tue, 07 Aug 2007 09:52:00 +0200 + +apt (0.7.6ubuntu2) gutsy; urgency=low + + * doc/examples/sources.list: + - change example source to gutsy + * apt-pkg/deb/dpkgpm.cc: + - do not break if no /dev/pts is available + + -- Michael Vogt Mon, 06 Aug 2007 15:17:57 +0200 + +apt (0.7.6ubuntu1) gutsy; urgency=low + + [ Michael Vogt ] + * apt-inst/contrib/extracttar.cc: + - fix fd leak for zero size files (thanks to Bill Broadley for + reporting this bug) + * apt-pkg/acquire-item.cc: + - remove zero size files on I-M-S hit + * methods/https.cc: + - only send LastModified if we actually have a file + - send range request with if-range + - delete failed downloads + (thanks to Thom May for his help here) + - delete zero size I-M-S hits + * apt-pkg/deb/dpkgpm.{cc,h}: + - merged dpkg-log branch, this lets you specify a + Dir::Log::Terminal file to log dpkg output to + (ABI break) + - when writting apport reports, attach the dpkg + terminal log too + * merged apt--sha256 branch to fully support the new + sha256 checksums in the Packages and Release files + (ABI break) + * apt-pkg/pkgcachegen.cc: + - increase default mmap size + * tests/local-repo: + - added local repository testcase + * make apt build with g++ 4.3 + * fix missing SetExecClose() call when the status-fd is used + * debian/apt.cron.daily: + - move unattended-upgrade before apt-get autoclean + * fix "purge" commandline argument, closes: #133421 + (thanks to Julien Danjou for the patch) + * cmdline/apt-get.cc: + - do not change the auto-installed information if a package + is reinstalled + * cmdline/apt-mark: + - Fix chmoding after have renamed the extended-states file (LP: #140019) + (thanks to Laurent Bigonville) + + [ Ian Jackson ] + * dpkg-triggers: Deal properly with new package states. + + -- Michael Vogt Thu, 02 Aug 2007 11:55:54 +0200 + apt (0.7.6) unstable; urgency=low * Applied patch from Aurelien Jarno to fix wrong @@@ -4816,14 -2950,6 +4846,14 @@@ apt (0.7.5) unstable; urgency=lo -- Otavio Salvador Wed, 25 Jul 2007 20:16:46 -0300 +apt (0.7.4ubuntu1) gutsy; urgency=low + + * debian/apt.conf.ubuntu, apt.conf.autoremove: + - Change metapackages to {restricted,universe,multiverse}/metapackages + in Install-Recommends-Sections and Never-MarkAuto-Sections + + -- Michael Vogt Thu, 26 Jul 2007 10:42:29 +0200 + apt (0.7.4) unstable; urgency=low [ Michael Vogt ] @@@ -4884,90 -3010,6 +4914,90 @@@ apt (0.7.3) unstable; urgency=lo -- Michael Vogt Sun, 01 Jul 2007 12:31:29 +0200 +apt (0.7.2ubuntu7) gutsy; urgency=low + + * fix build-dependencies + * fixes in the auto-mark code (thanks to Daniel + Burrows) + + -- Michael Vogt Mon, 9 Jul 2007 19:02:54 +0200 + +apt (0.7.2ubuntu6) gutsy; urgency=low + + [ Michael Vogt] + * cmdline/apt-get.cc: + - make the XS-Vcs-$foo warning more copy'n'paste + friendly (thanks to Matt Zimmerman) + - ignore the Vcs-Browser tag (Fixes LP: #121770) + * debian/apt.conf.autoremove: + - added "linux-ubuntu-modules" to APT::NeverAutoRemove + + [ Sarah Hobbs ] + * Change metapackages to *metapackages in Install-Recommends-Section + and Never-MarkAuto-Section of debian/apt.conf.autoremove, so that + the Recommends of metapackages in universe and multiverse will get + installed. + * Also make this change in doc/examples/configure-index. + * Added a Build Dependancies of automake, docbook-xsl, xsltproc, xmlto, + docbook to fix FTBFS. + * Added in previous changelog entries, as those who uploaded did not + actually commit to Bzr. + + -- Sarah Hobbs Mon, 09 Jul 2007 01:15:57 +1000 + +apt (0.7.2ubuntu5) gutsy; urgency=low + + * Rerun autoconf to fix the FTBFS. + + -- Michael Bienia Fri, 06 Jul 2007 19:17:33 +0200 + +apt (0.7.2ubuntu4) gutsy; urgency=low + + * Rebuild for the libcurl4 -> libcurl3 transition mess. + + -- Steve Kowalik Fri, 6 Jul 2007 12:44:05 +1000 + +apt (0.7.2ubuntu3) gutsy; urgency=low + + * cmdline/apt-get.cc: + - fix InstallTask code when a pkgRecord ends + with a single '\n' (thanks to Soren Hansen for reporting) + + -- Michael Vogt Wed, 27 Jun 2007 13:33:38 +0200 + +apt (0.7.2ubuntu2) gutsy; urgency=low + + * fixed compile errors with g++ 4.3 (thanks to + Daniel Burrows, closes: #429378) + * fix FTFBFS by changing build-depends to + libcurl4-gnutls-dev (closes: #428363) + + -- Michael Vogt Tue, 19 Jun 2007 13:47:03 +0200 + +apt (0.7.2ubuntu1) gutsy; urgency=low + + * apt-pkg/deb/dpkgpm.cc: + - apport integration added, this means that a apport + report is written on dpkg failures + * cmdline/apt-get.cc: + - merged http://people.ubuntu.com/~mvo/bzr/apt/xs-vcs-bzr/ + this will warn when Vcs- headers are found on apt-get source + (Fixes LP:#115959) + * merged from debian/unstable, remaining changes: + - maintainer field changed + - merged the apt--mirror branch + http://people.ubuntu.com/~mvo/bzr/apt/apt--mirror/ + - apport reporting on package install/upgrade/remove failure + - support for "Originial-Maintainer" field + - merged apt--xs-vcs-bzr branch + (http://people.ubuntu.com/~mvo/bzr/apt/xs-vcs-bzr/) + - use ubuntu archive keyring by default + - debian/apt.conf.autoremove + + install recommands for section "metapackages" + + do not mark direct dependencies of "metapackages" as autoremoved + + -- Michael Vogt Thu, 14 Jun 2007 10:38:36 +0200 + apt (0.7.2-0.1) unstable; urgency=low * Non-maintainer upload. @@@ -5061,144 -3103,34 +5091,144 @@@ apt (0.7.1) experimental; urgency=lo * apt-pkg/policy.cc: - allow multiple packages (thanks to David Foerster) - -- Michael Vogt Wed, 2 May 2007 13:43:44 +0200 + -- Michael Vogt Wed, 2 May 2007 13:43:44 +0200 + +apt (0.7.0) experimental; urgency=low + + * Package that contains all the new features + * Removed all #pragma interface/implementation + * Branch that contains all the new features: + * translated package descriptions + * task install support + * automatic dependency removal (thanks to Daniel Burrows) + * merged support for the new dpkg "Breaks" field + (thanks to Ian Jackson) + * handle network failures more gracefully on "update" + * support for unattended-upgrades (via unattended-upgrades + package) + * added apt-transport-https method + * merged "install-recommends" branch (ABI break): + - new "--install-recommends" + - install new recommends on "upgrade" if --install-recommends is + given + - new "--fix-policy" option to install all packages with unmet + important dependencies (usefull with --install-recommends to + see what not-installed recommends are on the system) + - fix of recommended packages display (only show CandidateVersion + fix or-group handling) + * merged "install-task" branch (use with "apt-get install taskname^") + + -- Michael Vogt Fri, 12 Jan 2007 20:48:07 +0100 + +apt (0.6.46.4ubuntu10) feisty; urgency=low + + * apt-pkg/depcache.cc: + - added "APT::Never-MarkAuto-Section" and consider dependencies + of packages in this section manual (LP#59893) + - ensure proper permissions in the extended_state file (LP#67037) + * debian/apt.conf.ubuntu: + - added APT::Never-MarkAuto-Section "metapackages" (LP#59893) + * cmdline/apt-get.cc: + - "apt-get install foo" on a already installed package foo will + clean the automatic installed flag (LP#72007) + - do not show packages already marked for removal as auto-installed + (LP#64493) + - applied patch to (optionally) hide the auto-remove information + (thanks to Frode M. Døving) (LP#69148) + + -- Michael Vogt Wed, 14 Mar 2007 13:32:32 +0100 + +apt (0.6.46.4ubuntu9) feisty; urgency=low + + * debian/control: + - set XS-Vcs-Bzr header + - Set Ubuntu maintainer address + * apt-pkg/cdrom.cc: + - only unmount if APT::CDROM::NoMount is false + - only umount if it was mounted by the method before + * cmdline/apt-get.cc: + - fix version output in autoremove list (LP#68941) + * apt-pkg/packagemanager.cc: + - do not spin 100% cpu in FixMissing() (LP#84476) + * apt-pkg/indexfile.cc: + - fix problem overwriting APT::Acquire::Translation + * doc/examples/configure-index: + - document APT::Acquire::Translation + + -- Michael Vogt Tue, 13 Mar 2007 15:24:39 +0100 + +apt (0.6.46.4ubuntu8) feisty; urgency=low + + * fix segfault in the pkgRecords destructor + * Bump ABI version + * debian/control: + - make the libcurl3-gnutls-dev versionized (LP#86614) + + -- Michael Vogt Mon, 26 Feb 2007 14:26:33 +0100 + +apt (0.6.46.4ubuntu7) feisty; urgency=low + + * Merged the apt--mirror branch. This means that a new 'mirror' + method is available that will allow dynamic mirror updates. + The sources.list entry looks something like this: + "deb mirror://mirrors.lp.net/get_mirror feisty main restricted" + + It also supports error reporting to a configurable url for mirror + problems/failures. + * Bump ABI version + + -- Michael Vogt Tue, 6 Feb 2007 11:38:06 +0100 + +apt (0.6.46.4ubuntu6) feisty; urgency=low + + * methods/http.cc: + - send apt version in User-Agent + * apt-pkg/deb/debrecords.cc: + - fix SHA1Hash() return value + * apt-pkg/algorithms.cc: + - fix resolver bug on removal triggered by weak-dependencies + with or-groups + - fix segfault (lp: #76530) + + -- Michael Vogt Wed, 20 Dec 2006 11:04:36 +0100 + +apt (0.6.46.4ubuntu5) feisty; urgency=low + + * added apt-transport-https package to provide a optional + https transport (apt-https spec) + + -- Michael Vogt Tue, 19 Dec 2006 16:23:43 +0100 -apt (0.7.0) experimental; urgency=low +apt (0.6.46.4ubuntu4) feisty; urgency=low + + * apt-pkg/algorithms.cc: + - only increase the score of installed applications if they + are not obsolete - * Package that contains all the new features - * Removed all #pragma interface/implementation - * Branch that contains all the new features: - * translated package descriptions - * task install support - * automatic dependency removal (thanks to Daniel Burrows) - * merged support for the new dpkg "Breaks" field + -- Michael Vogt Mon, 18 Dec 2006 19:39:05 +0100 + +apt (0.6.46.4ubuntu3) feisty; urgency=low + + * apt-pkg/algorithm.cc: + - use clog for all debugging + * apt-pkg/depcache.cc: + - never mark Required package for autoremoval (lp: #75882) + + -- Michael Vogt Mon, 18 Dec 2006 11:56:05 +0100 + +apt (0.6.46.4ubuntu2) feisty; urgency=low + + * apt-pkg/algorithms.cc: add missing call to MarkKeep + so that dist-upgrade isn't broken by unsatisfiable Breaks. (thanks to Ian Jackson) - * handle network failures more gracefully on "update" - * support for unattended-upgrades (via unattended-upgrades - package) - * added apt-transport-https method - * merged "install-recommends" branch (ABI break): - - new "--install-recommends" - - install new recommends on "upgrade" if --install-recommends is - given - - new "--fix-policy" option to install all packages with unmet - important dependencies (usefull with --install-recommends to - see what not-installed recommends are on the system) - - fix of recommended packages display (only show CandidateVersion - fix or-group handling) - * merged "install-task" branch (use with "apt-get install taskname^") - -- Michael Vogt Fri, 12 Jan 2007 20:48:07 +0100 + -- Michael Vogt Thu, 7 Dec 2006 23:07:24 +0100 + +apt (0.6.46.4ubuntu1) feisty; urgency=low + + * merged with debian + + -- Michael Vogt Thu, 7 Dec 2006 12:13:14 +0100 apt (0.6.46.4-0.1) unstable; urgency=emergency @@@ -5229,26 -3161,6 +5259,26 @@@ apt (0.6.46.4) unstable; urgency=hig -- Michael Vogt Thu, 7 Dec 2006 10:49:50 +0100 +apt (0.6.46.3ubuntu2) feisty; urgency=low + + * apt-pkg/algorithms.cc: add missing call to MarkKeep + so that dist-upgrade isn't broken by unsatisfiable Breaks. + + -- Ian Jackson Thu, 7 Dec 2006 15:46:52 +0000 + +apt (0.6.46.3ubuntu1) feisty; urgency=low + + * doc/apt-get.8.xml: + - documented autoremove, thanks to Vladimír Lapá%Gč%@ek + (lp: #62919) + * fix broken i18n in the dpkg progress reporting, thanks to + Frans Pop and Steinar Gunderson. (closes: #389261) + * po/en_GB.po: + - typo (lp: #61270) + * add apt-secure.8 to "See also" section + + -- Michael Vogt Thu, 23 Nov 2006 07:24:12 +0100 + apt (0.6.46.3-0.2) unstable; urgency=high * Non-maintainer upload with permission of Michael Vogt. @@@ -5361,173 -3273,6 +5391,173 @@@ apt (0.6.46) unstable; urgency=lo -- Michael Vogt Thu, 21 Sep 2006 10:25:03 +0200 +apt (0.6.45ubuntu14) edgy; urgency=low + + * cmdline/apt-get.cc: + - fix in the TryInstallTask() code to make sure that all package + there are marked manual install (lp: #61684) + + -- Michael Vogt Thu, 28 Sep 2006 00:34:20 +0200 + +apt (0.6.45ubuntu13) edgy; urgency=low + + * no-changes upload to make apt rebuild against latest g++ and + fix synaptic FTBFS (see bug: #62461 for details) + + -- Michael Vogt Tue, 26 Sep 2006 22:33:10 +0200 + +apt (0.6.45ubuntu12) edgy; urgency=low + + * apt-pkg/depcache.cc: + - fix in the sweep() code, set garbage flag for packages scheduled + for removal too + - do not change the autoFlag in MarkKeep(), this can lead to suprising + side effects + + -- Michael Vogt Thu, 21 Sep 2006 00:58:24 +0200 + +apt (0.6.45ubuntu11) edgy; urgency=low + + * removed "installtask" and change it so that tasknames can be given + with "apt-get install taskname^" + * improve the writeStateFile() code + + -- Michael Vogt Wed, 20 Sep 2006 14:14:24 +0200 + +apt (0.6.45ubuntu10) edgy; urgency=low + + * methods/http.cc: + - check more careful for incorrect proxy settings (closes: #378868) + * methods/gzip.cc: + - don't hang when /var is full (closes: #341537), thanks to + Luis Rodrigo Gallardo Cruz for the patch + * doc/examples/sources.list: + - removed non-us.debian.org from the example (closes: #380030,#316196) + * Merged from Christian Perrier bzr branch: + * ro.po: Updated to 514t. Closes: #388402 + * dz.po: Updated to 514t. Closes: #388184 + * it.po: Fixed typos. Closes: #387812 + * ku.po: New kurdish translation. Closes: #387766 + * sk.po: Updated to 514t. Closes: #386851 + * ja.po: Updated to 514t. Closes: #386537 + * gl.po: Updated to 514t. Closes: #386397 + * fr.po: Updated to 516t. + * fi.po: Updated to 512t. Closes: #382702 + * share/archive-archive.gpg: + - removed the outdated amd64 and debian-2004 keys + * apt-pkg/tagfile.cc: + - applied patch from Jeroen van Wolffelaar to make the tags + caseinsensitive (closes: #384182) + - reverted MMap use in the tagfile because it does not work + across pipes (closes: #383487) + * added "installtask" command + * added new ubuntu specific rewrite rule for "Original-Maintainer" + + -- Michael Vogt Tue, 19 Sep 2006 15:07:51 +0200 + +apt (0.6.45ubuntu9) edgy; urgency=low + + * cmdline/apt-get.cc: + - if --no-remove is given, do not run the AutoRemove code + + -- Michael Vogt Wed, 13 Sep 2006 11:54:20 +0200 + +apt (0.6.45ubuntu8) edgy; urgency=low + + * apt-pkg/algorithm.cc: + - fix pkgProblemResolver.InstallProtect() to preserve the auto-install + information (lp: #59457) + * cmdline/apt-get.cc: + - fix typo in autoremove information (lp: #59420) + * install apt-mark to modify the automatically install information for + packages + + -- Michael Vogt Fri, 8 Sep 2006 20:07:22 +0200 + +apt (0.6.45ubuntu7) edgy; urgency=low + + * apt-pkg/depcache.cc: + - fix a bug in the install-recommends-section code + + -- Michael Vogt Thu, 7 Sep 2006 18:22:38 +0200 + +apt (0.6.45ubuntu6) edgy; urgency=low + + [Michael Vogt] + * cmdline/apt-get.cc: + - always show auto-removable packages and give a hint how to remove + them + * debian/apt.conf.ubuntu: + - exlucde linux-image and linux-restricted-modules from ever being + auto-removed + - added "metapackages" as the section we want to install recommends + by default + * apt-pkg/depcache.cc: + - added support to turn install-recommends selectively on/off by + section + [Ian Jackson] + * Tests pass without code changes! Except that we need this: + * Bump cache file major version to force rebuild so that Breaks + dependencies are included. + * Don't depend on or suggest any particular dpkg or dpkg-dev versions; + --auto-deconfigure is very very old and dpkg-dev's Breaks support + is more or less orthogonal. + * Initial draft of `Breaks' implementation. Appears to compile, + but as yet *completely untested*. + + -- Michael Vogt Thu, 7 Sep 2006 11:50:52 +0200 + +apt (0.6.45ubuntu5) edgy; urgency=low + + * apt-pkg/pkgcachegen.cc: + - increase the APT::Cache-Limit to deal with the increased demand due + to the translated descriptions + * apt-pkg/deb/dpkgpm.cc: + - pass "--auto-deconfigure" to dpkg on install to support the + new "breaks" in dpkg + + -- Michael Vogt Tue, 15 Aug 2006 12:06:26 +0200 + +apt (0.6.45ubuntu4) edgy; urgency=low + + * cmdline/apt-get.cc: + - fix in the new --fix-polciy code + + -- Michael Vogt Mon, 14 Aug 2006 21:08:11 +0200 + +apt (0.6.45ubuntu3) edgy; urgency=low + + * ABI break + * merged latest apt--install-recommends (closes: #559000) + * added "--fix-policy" option to can be used as "--fix-broken" and + will install missing weak depends (recommends, and/or suggests + depending on the settings) + * merged the apt--ddtp branch + + -- Michael Vogt Fri, 11 Aug 2006 12:53:23 +0200 + +apt (0.6.45ubuntu2) edgy; urgency=low + + * debian/control: + - switched to libdb4.4 for building (closes: #381019) + * cmdline/apt-get.cc: + - show only the recommends/suggests for the candidate-version, not for all + versions of the package (closes: #257054) + - properly handle recommends/suggests or-groups when printing the list of + suggested/recommends packages (closes: #311619) + * merged "apt--install-recommends" branch: + - added "{no-}install-recommends" commandline option + - added APT::Install-{Recommends,Suggests} option + - currently Install-Recommends defaults to "False" + + -- Michael Vogt Wed, 9 Aug 2006 23:38:46 +0200 + +apt (0.6.45ubuntu1) edgy; urgency=low + + * merged with debian/unstable + + -- Michael Vogt Tue, 1 Aug 2006 15:43:22 +0200 + apt (0.6.45) unstable; urgency=low * apt-pkg/contrib/sha256.cc: @@@ -5573,37 -3318,6 +5603,37 @@@ -- Michael Vogt Thu, 27 Jul 2006 00:52:05 +0200 +apt (0.6.44.2ubuntu4) edgy; urgency=low + + * Make apt-get dselect-upgrade happy again + + -- Michael Vogt Fri, 21 Jul 2006 11:03:02 +0200 + +apt (0.6.44.2ubuntu3) edgy; urgency=low + + * Close extended_states file after writing it. + + -- Colin Watson Tue, 18 Jul 2006 00:12:13 +0100 + +apt (0.6.44.2ubuntu2) edgy; urgency=low + + * create a empty extended_states file if none exists already + + -- Michael Vogt Tue, 4 Jul 2006 09:23:03 +0200 + +apt (0.6.44.2ubuntu1) edgy; urgency=low + + * merged with debian/unstable + * merged the "auto-mark" branch to support aptitude like + marking of automatically installed dependencies and added + "apt-get remove --auto-remove" to remove unused auto-installed + packages again + * changed library version from 3.11 to 3.50 to make it clearly + different from the debian version (we are ABI incompatible because + of the auto-mark patch) + + -- Michael Vogt Mon, 3 Jul 2006 18:30:46 +0200 + apt (0.6.44.2exp1) experimental; urgency=low * added support for i18n of the package descriptions @@@ -5692,26 -3406,6 +5722,26 @@@ apt (0.6.44) unstable; urgency=lo -- Michael Vogt Mon, 8 May 2006 22:28:53 +0200 +apt (0.6.43.3ubuntu3) dapper; urgency=low + + * methods/http.cc: + - fix the user-agent string + + -- Michael Vogt Fri, 26 May 2006 18:09:32 +0200 + +apt (0.6.43.3ubuntu2) dapper; urgency=low + + * apt-pkg/deb/dpkgpm.cc: wording fixes (thanks to Matt Zimmerman) + + -- Michael Vogt Tue, 18 Apr 2006 13:24:40 +0200 + +apt (0.6.43.3ubuntu1) dapper; urgency=low + + * apt-pkg/acquire.cc: don't show ETA if it is 0 or absurdely large in + the status-fd (ubuntu #28954) + + -- Michael Vogt Tue, 28 Mar 2006 20:34:46 +0200 + apt (0.6.43.3) unstable; urgency=low * Merge bubulle@debian.org--2005/apt--main--0 up to patch-186: @@@ -5744,38 -3438,6 +5774,38 @@@ -- Michael Vogt Wed, 22 Feb 2006 10:13:04 +0100 +apt (0.6.43.2ubuntu1) dapper; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-182: + * 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 + * vi.po: Completed to 512 strings + * 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 + * LINGUAS: Add Welsh + * *.po: Updated from sources (512 strings) + * vi.po: Completed to 511 strings Closes: #348968 + * 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 + * apt-get update errors are only warnings nowdays + * be more careful with the signature file on network failures + + -- Michael Vogt Mon, 20 Feb 2006 22:27:48 +0100 + apt (0.6.43.2) unstable; urgency=low * Merge bubulle@debian.org--2005/apt--main--0 up to patch-166: @@@ -5799,24 -3461,6 +5829,24 @@@ -- Michael Vogt Thu, 19 Jan 2006 00:06:33 +0100 +apt (0.6.43.1ubuntu1) dapper; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-159: + - 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) + * add patch to fix http download corruption problem (thanks to + Petr Vandrovec, closes: #280844, #290694) + * added APT::Periodic::Unattended-Upgrade (requires the package + "unattended-upgrade") + + -- Michael Vogt Tue, 10 Jan 2006 17:09:31 +0100 + apt (0.6.43.1) unstable; urgency=low * Merge bubulle@debian.org--2005/apt--main--0 up to patch-148: @@@ -5840,19 -3484,6 +5870,19 @@@ -- Michael Vogt Fri, 6 Jan 2006 01:17:08 +0100 +apt (0.6.43ubuntu2) dapper; urgency=low + + * merged some missing bits that wheren't merged by baz in the previous + upload (*grumble*) + + -- Michael Vogt Thu, 8 Dec 2005 18:35:58 +0100 + +apt (0.6.43ubuntu1) dapper; urgency=low + + * merged with debian + + -- Michael Vogt Fri, 25 Nov 2005 11:36:29 +0100 + apt (0.6.43) unstable; urgency=medium * Merge bubulle@debian.org--2005/apt--main--0 up to patch-132: @@@ -5873,22 -3504,6 +5903,22 @@@ -- Michael Vogt Tue, 29 Nov 2005 00:17:07 +0100 +apt (0.6.42.3ubuntu2) dapper; urgency=low + + * Merge bubulle@debian.org--2005/apt--main--0 up to patch-131: + * zh_CN.po: Completed to 507 strings(Closes: #338267) + * gl.po: Completed to 510 strings (Closes: #338356) + * added support for "/etc/apt/sources.list.d" directory + (closes: #66325) + + -- Michael Vogt Mon, 14 Nov 2005 15:30:12 +0100 + +apt (0.6.42.3ubuntu1) dapper; urgency=low + + * synced with debian + + -- Michael Vogt Thu, 10 Nov 2005 05:05:56 +0100 + apt (0.6.42.3) unstable; urgency=low * Merge bubulle@debian.org--2005/apt--main--0 up to patch-129: @@@ -5995,80 -3610,6 +6025,80 @@@ apt (0.6.41) unstable; urgency=lo -- Michael Vogt Mon, 5 Sep 2005 22:59:03 +0200 +apt (0.6.40.1ubuntu8) breezy; urgency=low + + * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-62: + - fix for a bad memory/file leak in the mmap code (ubuntu #15603) + * po/de.po, po/fr.po: + - updated the translations + * po/makefile: + - create a single pot file in each domain dir to make rosetta happy + + -- Michael Vogt Wed, 28 Sep 2005 10:16:06 +0200 + +apt (0.6.40.1ubuntu7) breezy; urgency=low + + * updated the pot/po files , no code changes + + -- Michael Vogt Tue, 27 Sep 2005 18:38:16 +0200 + +apt (0.6.40.1ubuntu6) breezy; urgency=low + + * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-56: + - make it possible for apt to handle a failed MediaChange event and + fall back to other sources (ubuntu #13713) + + -- Michael Vogt Tue, 13 Sep 2005 22:09:50 +0200 + +apt (0.6.40.1ubuntu5) breezy; urgency=low + + * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-{50,51}. + This adds media-change reporting to the apt status-fd (ubuntu #15213) + * Cherry picked michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-55: + apt-pkg/cdrom.cc: + - unmount the cdrom when apt failed to locate any package files + + -- Michael Vogt Mon, 12 Sep 2005 15:44:26 +0200 + +apt (0.6.40.1ubuntu4) breezy; urgency=low + + * debian/apt.cron.daily: + - fix a embarrassing typo + + -- Michael Vogt Wed, 7 Sep 2005 10:10:37 +0200 + +apt (0.6.40.1ubuntu3) breezy; urgency=low + + * debian/apt.cron.daily: + - use the ctime as well when figuring what packages need to + be removed. This fixes the problem that packages copied with + "cp -a" (e.g. from the installer) have old mtimes (ubuntu #14504) + + -- Michael Vogt Tue, 6 Sep 2005 18:30:46 +0200 + +apt (0.6.40.1ubuntu2) breezy; urgency=low + + * improved the support for "error" and "conffile" reporting from + dpkg, added the format to README.progress-reporting + * added README.progress-reporting to the apt-doc package + * Do md5sum checking for file and cdrom method (closes: #319142) + * Change pkgPolicy::Pin from private to protected to let subclasses + access it too (closes: #321799) + * methods/connect.cc: + - send failure reason for EAI_AGAIN (TmpResolveFailure) to acuire-item + * apt-pkg/acquire-item.cc: + - fail early if a FailReason is TmpResolveFailure (avoids hangs during + the install when no network is available) + * merged michael.vogt@ubuntu.com--2005/apt--trust-cdrom--0 + + -- Michael Vogt Tue, 23 Aug 2005 19:44:55 +0200 + +apt (0.6.40.1ubuntu1) breezy; urgency=low + + * Synchronize with Debian + + -- Michael Vogt Fri, 5 Aug 2005 14:20:56 +0200 + apt (0.6.40.1) unstable; urgency=low * bugfix in the parsing code for the apt<->dpkg communication. apt @@@ -6078,12 -3619,6 +6108,12 @@@ -- Michael Vogt Fri, 5 Aug 2005 13:24:58 +0200 +apt (0.6.40ubuntu1) breezy; urgency=low + + * Synchronize with Debian + + -- Matt Zimmerman Thu, 4 Aug 2005 15:53:22 -0700 + apt (0.6.40) unstable; urgency=low * Patch from Jordi Mallach to mark some additional strings for translation @@@ -6099,39 -3634,6 +6129,39 @@@ -- Matt Zimmerman Thu, 28 Jul 2005 11:57:32 -0700 +apt (0.6.39ubuntu4) breezy; urgency=low + + * Fix keyring paths in apt-key, apt.postinst (I swear I remember doing this + before...) + + -- Matt Zimmerman Wed, 29 Jun 2005 08:39:17 -0700 + +apt (0.6.39ubuntu3) breezy; urgency=low + + * Fix keyring locations for Ubuntu in apt-key too. + + -- Colin Watson Wed, 29 Jun 2005 14:45:36 +0100 + +apt (0.6.39ubuntu2) breezy; urgency=low + + * Install ubuntu-archive.gpg rather than debian-archive.gpg as + /etc/apt/trusted.gpg. + + -- Colin Watson Wed, 29 Jun 2005 11:53:34 +0100 + +apt (0.6.39ubuntu1) breezy; urgency=low + + * Michael Vogt + - Change debian/bugscript to use #!/bin/bash (Closes: #313402) + - Fix a incorrect example in the man-page (closes: #282918) + - Support architecture-specific extra overrides + (closes: #225947). Thanks to Anthony Towns for idea and + the patch, thanks to Colin Watson for testing it. + - better report network timeouts from the methods to the acuire code, + only timeout once per sources.list line + + -- Matt Zimmerman Tue, 28 Jun 2005 11:52:24 -0700 + apt (0.6.39) unstable; urgency=low * Welsh translation update: daf@muse.19inch.net--2005/apt--main--0--patch-6 @@@ -6144,13 -3646,6 +6174,13 @@@ -- Matt Zimmerman Tue, 28 Jun 2005 11:51:09 -0700 +apt (0.6.38ubuntu1) breezy; urgency=low + + * First release from Ubuntu branch + * Merge with --main--0, switch back to Ubuntu keyring + + -- Matt Zimmerman Sat, 25 Jun 2005 16:52:41 -0700 + apt (0.6.38) unstable; urgency=low * Merge michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-6, a workaround diff --combined ftparchive/writer.cc index 60db8b990,7837ce6ce..9741aec78 --- a/ftparchive/writer.cc +++ b/ftparchive/writer.cc @@@ -19,7 -19,8 +19,7 @@@ #include #include #include -#include -#include +#include #include #include @@@ -63,7 -64,6 +63,7 @@@ FTWScanner::FTWScanner(string const &Ar DoMD5 = _config->FindB("APT::FTPArchive::MD5",true); DoSHA1 = _config->FindB("APT::FTPArchive::SHA1",true); DoSHA256 = _config->FindB("APT::FTPArchive::SHA256",true); + DoSHA512 = _config->FindB("APT::FTPArchive::SHA512",true); } /*}}}*/ // FTWScanner::Scanner - FTW Scanner /*{{{*/ @@@ -316,7 -316,6 +316,7 @@@ PackagesWriter::PackagesWriter(string c DoMD5 = _config->FindB("APT::FTPArchive::Packages::MD5",DoMD5); DoSHA1 = _config->FindB("APT::FTPArchive::Packages::SHA1",DoSHA1); DoSHA256 = _config->FindB("APT::FTPArchive::Packages::SHA256",DoSHA256); + DoSHA256 = _config->FindB("APT::FTPArchive::Packages::SHA512",true); DoAlwaysStat = _config->FindB("APT::FTPArchive::AlwaysStat", false); DoContents = _config->FindB("APT::FTPArchive::Contents",true); NoOverride = _config->FindB("APT::FTPArchive::NoOverrideMsg",false); @@@ -371,7 -370,7 +371,7 @@@ bool FTWScanner::SetExts(string const & bool PackagesWriter::DoPackage(string FileName) { // Pull all the data we need form the DB - if (Db.GetFileInfo(FileName, true, DoContents, true, DoMD5, DoSHA1, DoSHA256, DoAlwaysStat) + if (Db.GetFileInfo(FileName, true, DoContents, true, DoMD5, DoSHA1, DoSHA256, DoSHA512, DoAlwaysStat) == false) { return false; @@@ -447,8 -446,6 +447,8 @@@ SetTFRewriteData(Changes[End++], "SHA1", Db.SHA1Res.c_str()); if (DoSHA256 == true) SetTFRewriteData(Changes[End++], "SHA256", Db.SHA256Res.c_str()); + if (DoSHA512 == true) + SetTFRewriteData(Changes[End++], "SHA512", Db.SHA512Res.c_str()); SetTFRewriteData(Changes[End++], "Filename", NewFileName.c_str()); SetTFRewriteData(Changes[End++], "Priority", OverItem->Priority.c_str()); SetTFRewriteData(Changes[End++], "Status", 0); @@@ -494,7 -491,7 +494,7 @@@ } for (map::const_iterator I = OverItem->FieldOverride.begin(); - I != OverItem->FieldOverride.end(); I++) + I != OverItem->FieldOverride.end(); ++I) SetTFRewriteData(Changes[End++],I->first.c_str(),I->second.c_str()); SetTFRewriteData(Changes[End++], 0, 0); @@@ -626,7 -623,6 +626,7 @@@ bool SourcesWriter::DoPackage(string Fi MD5Summation MD5; SHA1Summation SHA1; SHA256Summation SHA256; + SHA256Summation SHA512; if (DoMD5 == true) MD5.Add((unsigned char *)Start,BlkEnd - Start); @@@ -634,8 -630,6 +634,8 @@@ SHA1.Add((unsigned char *)Start,BlkEnd - Start); if (DoSHA256 == true) SHA256.Add((unsigned char *)Start,BlkEnd - Start); + if (DoSHA512 == true) + SHA512.Add((unsigned char *)Start,BlkEnd - Start); // Add an extra \n to the end, just in case *BlkEnd++ = '\n'; @@@ -746,12 -740,6 +746,12 @@@ << strippedName << "\n " << Tags.FindS("Checksums-Sha256"); string const ChecksumsSha256 = ostreamSha256.str(); + std::ostringstream ostreamSha512; + if (Tags.Exists("Checksums-Sha512")) + ostreamSha512 << "\n " << string(SHA512.Result()) << " " << St.st_size << " " + << strippedName << "\n " << Tags.FindS("Checksums-Sha512"); + string const ChecksumsSha512 = ostreamSha512.str(); + // Strip the DirStrip prefix from the FileName and add the PathPrefix string NewFileName; if (DirStrip.empty() == false && @@@ -807,8 -795,6 +807,8 @@@ SetTFRewriteData(Changes[End++],"Checksums-Sha1",ChecksumsSha1.c_str()); if (ChecksumsSha256.empty() == false) SetTFRewriteData(Changes[End++],"Checksums-Sha256",ChecksumsSha256.c_str()); + if (ChecksumsSha512.empty() == false) + SetTFRewriteData(Changes[End++],"Checksums-Sha512",ChecksumsSha512.c_str()); if (Directory != "./") SetTFRewriteData(Changes[End++],"Directory",Directory.c_str()); SetTFRewriteData(Changes[End++],"Priority",BestPrio.c_str()); @@@ -830,7 -816,7 +830,7 @@@ SetTFRewriteData(Changes[End++], "Maintainer", NewMaint.c_str()); for (map::const_iterator I = SOverItem->FieldOverride.begin(); - I != SOverItem->FieldOverride.end(); I++) + I != SOverItem->FieldOverride.end(); ++I) SetTFRewriteData(Changes[End++],I->first.c_str(),I->second.c_str()); SetTFRewriteData(Changes[End++], 0, 0); @@@ -1039,18 -1025,29 +1039,18 @@@ bool ReleaseWriter::DoPackage(string Fi CheckSums[NewFileName].size = fd.Size(); + Hashes hs; + hs.AddFD(fd.Fd(), 0, DoMD5, DoSHA1, DoSHA256, DoSHA512); if (DoMD5 == true) - { - MD5Summation MD5; - MD5.AddFD(fd.Fd(), fd.Size()); - CheckSums[NewFileName].MD5 = MD5.Result(); - fd.Seek(0); - } + CheckSums[NewFileName].MD5 = hs.MD5.Result(); if (DoSHA1 == true) - { - SHA1Summation SHA1; - SHA1.AddFD(fd.Fd(), fd.Size()); - CheckSums[NewFileName].SHA1 = SHA1.Result(); - fd.Seek(0); - } + CheckSums[NewFileName].SHA1 = hs.SHA1.Result(); if (DoSHA256 == true) - { - SHA256Summation SHA256; - SHA256.AddFD(fd.Fd(), fd.Size()); - CheckSums[NewFileName].SHA256 = SHA256.Result(); - } - + CheckSums[NewFileName].SHA256 = hs.SHA256.Result(); + if (DoSHA512 == true) + CheckSums[NewFileName].SHA512 = hs.SHA512.Result(); fd.Close(); - + return true; } @@@ -1095,16 -1092,4 +1095,16 @@@ void ReleaseWriter::Finish( (*I).first.c_str()); } } + + fprintf(Output, "SHA512:\n"); + for(map::const_iterator I = CheckSums.begin(); + I != CheckSums.end(); + ++I) + { + fprintf(Output, " %s %32ld %s\n", + (*I).second.SHA512.c_str(), + (*I).second.size, + (*I).first.c_str()); + } + } diff --combined methods/mirror.cc index 7f28c04cb,cb24a06cf..a3e60ab15 --- a/methods/mirror.cc +++ b/methods/mirror.cc @@@ -8,7 -8,6 +8,7 @@@ ##################################################################### */ /*}}}*/ // Include Files /*{{{*/ +#include #include #include #include @@@ -55,7 -54,7 +55,7 @@@ using namespace std */ MirrorMethod::MirrorMethod() - : HttpMethod(), DownloadedMirrorFile(false) + : HttpMethod(), DownloadedMirrorFile(false), Debug(false) { }; @@@ -108,7 -107,7 +108,7 @@@ bool MirrorMethod::Clean(string Dir continue; // see if we have that uri - for(I=list.begin(); I != list.end(); I++) + for(I=list.begin(); I != list.end(); ++I) { string uri = (*I)->GetURI(); if(uri.find("mirror://") != 0) @@@ -135,24 -134,9 +135,24 @@@ bool MirrorMethod::DownloadMirrorFile(s string fetch = BaseUri; fetch.replace(0,strlen("mirror://"),"http://"); +#if 0 // no need for this, the getArchitectures() will also include the main + // arch + // append main architecture + fetch += "?arch=" + _config->Find("Apt::Architecture"); +#endif + + // append all architectures + std::vector vec = APT::Configuration::getArchitectures(); + for (std::vector::const_iterator I = vec.begin(); + I != vec.end(); I++) + if (I == vec.begin()) + fetch += "?arch" + (*I); + else + fetch += "&arch=" + (*I); + // append the dist as a query string if (Dist != "") - fetch += "?dist=" + Dist; + fetch += "&dist=" + Dist; if(Debug) clog << "MirrorMethod::DownloadMirrorFile(): '" << fetch << "'" @@@ -346,7 -330,7 +346,7 @@@ string MirrorMethod::GetMirrorFileName( vector::const_iterator I; pkgSourceList list; list.ReadMainList(); - for(I=list.begin(); I != list.end(); I++) + for(I=list.begin(); I != list.end(); ++I) { string uristr = (*I)->GetURI(); if(Debug)