// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: pkgcachegen.cc,v 1.52 2002/07/08 03:13:30 jgg Exp $
+// $Id: pkgcachegen.cc,v 1.53.2.1 2003/12/24 23:09:17 mdz Exp $
/* ######################################################################
Package Cache Generator - Generator for the cache structure.
#include <apt-pkg/sptr.h>
#include <apt-pkg/pkgsystem.h>
+#include <apt-pkg/tagfile.h>
+
#include <apti18n.h>
#include <vector>
pkgCache::PkgIterator Pkg;
if (NewPackage(Pkg,PackageName) == false)
- return _error->Error(_("Error occured while processing %s (NewPackage)"),PackageName.c_str());
+ return _error->Error(_("Error occurred while processing %s (NewPackage)"),PackageName.c_str());
Counter++;
if (Counter % 100 == 0 && Progress != 0)
Progress->Progress(List.Offset());
if (Version.empty() == true)
{
if (List.UsePackage(Pkg,pkgCache::VerIterator(Cache)) == false)
- return _error->Error(_("Error occured while processing %s (UsePackage1)"),
+ return _error->Error(_("Error occurred while processing %s (UsePackage1)"),
PackageName.c_str());
continue;
}
if (Res == 0 && Ver->Hash == Hash)
{
if (List.UsePackage(Pkg,Ver) == false)
- return _error->Error(_("Error occured while processing %s (UsePackage2)"),
+ return _error->Error(_("Error occurred while processing %s (UsePackage2)"),
PackageName.c_str());
if (NewFileVer(Ver,List) == false)
- return _error->Error(_("Error occured while processing %s (NewFileVer1)"),
+ return _error->Error(_("Error occurred while processing %s (NewFileVer1)"),
PackageName.c_str());
// Read only a single record and return
Ver->ParentPkg = Pkg.Index();
Ver->Hash = Hash;
if (List.NewVersion(Ver) == false)
- return _error->Error(_("Error occured while processing %s (NewVersion1)"),
+ return _error->Error(_("Error occurred while processing %s (NewVersion1)"),
PackageName.c_str());
if (List.UsePackage(Pkg,Ver) == false)
- return _error->Error(_("Error occured while processing %s (UsePackage3)"),
+ return _error->Error(_("Error occurred while processing %s (UsePackage3)"),
PackageName.c_str());
if (NewFileVer(Ver,List) == false)
- return _error->Error(_("Error occured while processing %s (NewVersion2)"),
+ return _error->Error(_("Error occurred while processing %s (NewVersion2)"),
PackageName.c_str());
// Read only a single record and return
pkgCache::PkgIterator Pkg = Cache.FindPkg(PackageName);
if (Pkg.end() == true)
- return _error->Error(_("Error occured while processing %s (FindPkg)"),
+ return _error->Error(_("Error occurred while processing %s (FindPkg)"),
PackageName.c_str());
Counter++;
if (Counter % 100 == 0 && Progress != 0)
if (Ver->Hash == Hash && Version.c_str() == Ver.VerStr())
{
if (List.CollectFileProvides(Cache,Ver) == false)
- return _error->Error(_("Error occured while processing %s (CollectFileProvides)"),PackageName.c_str());
+ return _error->Error(_("Error occurred while processing %s (CollectFileProvides)"),PackageName.c_str());
break;
}
}
}
unsigned long Size = (*I)->Size();
- Progress.OverallProgress(CurrentSize,TotalSize,Size,_("Reading Package Lists"));
+ Progress.OverallProgress(CurrentSize,TotalSize,Size,_("Reading package lists"));
CurrentSize += Size;
if ((*I)->Merge(Gen,Progress) == false)
bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress,
MMap **OutMap,bool AllowMem)
{
- unsigned long MapSize = _config->FindI("APT::Cache-Limit",6*1024*1024);
+ unsigned long MapSize = _config->FindI("APT::Cache-Limit",12*1024*1024);
+
+ vector<pkgIndexFile *> Files;
+ for (vector<metaIndex *>::const_iterator i = List.begin();
+ i != List.end();
+ i++)
+ {
+ vector <pkgIndexFile *> *Indexes = (*i)->GetIndexFiles();
+ for (vector<pkgIndexFile *>::const_iterator j = Indexes->begin();
+ j != Indexes->end();
+ j++)
+ Files.push_back (*j);
+ }
- vector<pkgIndexFile *> Files(List.begin(),List.end());
unsigned long EndOfSource = Files.size();
if (_system->AddStatusFiles(Files) == false)
return false;
if (Writeable == false && AllowMem == false && CacheFile.empty() == false)
return _error->Error(_("Unable to write to %s"),flNotFile(CacheFile).c_str());
- Progress.OverallProgress(0,1,1,_("Reading Package Lists"));
+ Progress.OverallProgress(0,1,1,_("Reading package lists"));
// Cache is OK, Fin.
if (CheckValidity(CacheFile,Files.begin(),Files.end(),OutMap) == true)
{
- Progress.OverallProgress(1,1,1,_("Reading Package Lists"));
+ Progress.OverallProgress(1,1,1,_("Reading package lists"));
return true;
}
/* */
bool pkgMakeOnlyStatusCache(OpProgress &Progress,DynamicMMap **OutMap)
{
- unsigned long MapSize = _config->FindI("APT::Cache-Limit",4*1024*1024);
+ unsigned long MapSize = _config->FindI("APT::Cache-Limit",8*1024*1024);
vector<pkgIndexFile *> Files;
unsigned long EndOfSource = Files.size();
if (_system->AddStatusFiles(Files) == false)
TotalSize = ComputeSize(Files.begin()+EndOfSource,Files.end());
// Build the status cache
- Progress.OverallProgress(0,1,1,_("Reading Package Lists"));
+ Progress.OverallProgress(0,1,1,_("Reading package lists"));
pkgCacheGenerator Gen(Map.Get(),&Progress);
if (_error->PendingError() == true)
return false;