From a77ad7c3ce8c8621936d3527a967ef36a361bc71 Mon Sep 17 00:00:00 2001 From: Arch Librarian Date: Mon, 20 Sep 2004 16:56:58 +0000 Subject: Work better if there are duplicate sources.list entries. Author: jgg Date: 2001-03-04 00:12:41 GMT Work better if there are duplicate sources.list entries. --- apt-pkg/pkgcachegen.cc | 15 +++++++++++---- debian/changelog | 5 +++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index 2fcccaf4a..a245f9fdf 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: pkgcachegen.cc,v 1.46 2001/02/20 07:03:17 jgg Exp $ +// $Id: pkgcachegen.cc,v 1.47 2001/03/04 00:12:41 jgg Exp $ /* ###################################################################### Package Cache Generator - Generator for the cache structure. @@ -492,10 +492,10 @@ static bool CheckValidity(string CacheFile,pkgIndexFile **Start, SPtrArray Visited = new bool[Cache.HeaderP->PackageFileCount]; memset(Visited,0,sizeof(*Visited)*Cache.HeaderP->PackageFileCount); for (; Start != End; Start++) - { + { if ((*Start)->HasPackages() == false) continue; - + if ((*Start)->Exists() == false) { _error->WarningE("stat",_("Couldn't stat source package list %s"), @@ -558,6 +558,13 @@ static bool BuildCache(pkgCacheGenerator &Gen, if ((*Start)->Exists() == false) continue; + if ((*Start)->FindInCache(Gen.GetCache()).end() == false) + { + _error->Warning("Duplicate sources.list entry %s", + (*Start)->Describe().c_str()); + continue; + } + unsigned long Size = (*Start)->Size(); Progress.OverallProgress(CurrentSize,TotalSize,Size,_("Reading Package Lists")); CurrentSize += Size; @@ -580,7 +587,7 @@ static bool BuildCache(pkgCacheGenerator &Gen, bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress, MMap **OutMap,bool AllowMem) { - unsigned long MapSize = _config->FindI("APT::Cache-Limit",4*1024*1024); + unsigned long MapSize = _config->FindI("APT::Cache-Limit",6*1024*1024); vector Files(List.begin(),List.end()); unsigned long EndOfSource = Files.size(); diff --git a/debian/changelog b/debian/changelog index 8e2fee212..594915b75 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,7 +6,7 @@ apt (0.5.1) unstable; urgency=low * Ignore .* for configuration directory processing. Closes: #86923 * Alfredo's no_proxy patch * Documentation fixes. Closes: #87091 - * JoeyH's double slash bug + * JoeyH's double slash bug. Closes: #87266 * Unintitialized buffer and apt-ftparchive contents generation. Closes: #87612 * Build-deps on virtual packages. Closes: #87639 @@ -19,7 +19,8 @@ apt (0.5.1) unstable; urgency=low * Dan's segfault * Some instances where the status file can source a package in a non-sensical way. Closes: #87390 - + * Work better if there are duplicate sources.list entries. + -- Jason Gunthorpe Thu, 22 Feb 2001 00:39:15 -0500 apt (0.5.0) unstable; urgency=low -- cgit v1.2.3