diff options
-rw-r--r-- | apt-pkg/pkgcachegen.cc | 14 | ||||
-rw-r--r-- | debian/changelog | 1 | ||||
-rw-r--r-- | doc/apt.conf.5.yo | 4 | ||||
-rw-r--r-- | doc/examples/apt.conf | 3 |
4 files changed, 16 insertions, 6 deletions
diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index 0a645ca7e..5aaba78f3 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.41 1999/07/26 17:46:07 jgg Exp $ +// $Id: pkgcachegen.cc,v 1.42 1999/10/29 04:49:37 jgg Exp $ /* ###################################################################### Package Cache Generator - Generator for the cache structure. @@ -724,6 +724,8 @@ bool pkgGenerateSrcCache(pkgSourceList &List,OpProgress &Progress, xstatus files into it. */ bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress) { + unsigned long MapSize = _config->FindI("APT::Cache-Limit",4*1024*1024); + Progress.OverallProgress(0,1,1,"Reading Package Lists"); string CacheFile = _config->FindFile("Dir::Cache::pkgcache"); @@ -736,7 +738,7 @@ bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress) string SCacheFile = _config->FindFile("Dir::Cache::srcpkgcache"); FileFd SCacheF(SCacheFile,FileFd::WriteEmpty); FileFd CacheF(CacheFile,FileFd::WriteEmpty); - DynamicMMap Map(CacheF,MMap::Public); + DynamicMMap Map(CacheF,MMap::Public,MapSize); if (_error->PendingError() == true) return false; @@ -767,7 +769,7 @@ bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress) FileFd SCacheF(SCacheFile,FileFd::ReadOnly); FileFd CacheF(CacheFile,FileFd::WriteEmpty); - DynamicMMap Map(CacheF,MMap::Public); + DynamicMMap Map(CacheF,MMap::Public,MapSize); if (_error->PendingError() == true) return false; @@ -794,6 +796,8 @@ bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress) creates a memory block and puts the cache in there. */ MMap *pkgMakeStatusCacheMem(pkgSourceList &List,OpProgress &Progress) { + unsigned long MapSize = _config->FindI("APT::Cache-Limit",4*1024*1024); + /* If the cache file is writeable this is just a wrapper for MakeStatusCache */ string CacheFile = _config->FindFile("Dir::Cache::pkgcache"); @@ -828,7 +832,7 @@ MMap *pkgMakeStatusCacheMem(pkgSourceList &List,OpProgress &Progress) // Rebuild the source and package caches if (SrcOk == false) { - DynamicMMap *Map = new DynamicMMap(MMap::Public); + DynamicMMap *Map = new DynamicMMap(MMap::Public,MapSize); if (_error->PendingError() == true) { delete Map; @@ -875,7 +879,7 @@ MMap *pkgMakeStatusCacheMem(pkgSourceList &List,OpProgress &Progress) // We use the source cache to generate the package cache string SCacheFile = _config->FindFile("Dir::Cache::srcpkgcache"); FileFd SCacheF(SCacheFile,FileFd::ReadOnly); - DynamicMMap *Map = new DynamicMMap(MMap::Public); + DynamicMMap *Map = new DynamicMMap(MMap::Public,MapSize); if (_error->PendingError() == true) { delete Map; diff --git a/debian/changelog b/debian/changelog index 6a83a5844..db75e6f99 100644 --- a/debian/changelog +++ b/debian/changelog @@ -28,6 +28,7 @@ apt (0.3.13.1) unstable; urgency=low * Remove is not 'sticky'. Closes: #48392 * Slightly more accurate 'can not find package' message. Closes: #48311 * --trivial-only and --no-remove. Closes: #48518 + * Increased the cache size. Closes: #47648 -- Jason Gunthorpe <jgg@debian.org> Fri, 3 Sep 1999 09:04:28 -0700 diff --git a/doc/apt.conf.5.yo b/doc/apt.conf.5.yo index 4d3f3fd9f..212ac05ec 100644 --- a/doc/apt.conf.5.yo +++ b/doc/apt.conf.5.yo @@ -76,6 +76,10 @@ packages. SUCH A LOOP SHOULD NEVER EXIST AND IS A GRAVE BUG. This option will work if the essential packages are not tar, gzip, libc, dpkg, bash or anything that those packages depend on. +dit(bf(Cache-Limit)) +APT uses a fixed size memory mapped cache file to store the 'available' +information. This sets the size of that cache. + dit(bf(Get)) The Get subsection controls the bf(apt-get(8)) tool, please see its documentation for more information about the options here. diff --git a/doc/examples/apt.conf b/doc/examples/apt.conf index bd09694b5..c6e506cb8 100644 --- a/doc/examples/apt.conf +++ b/doc/examples/apt.conf @@ -1,4 +1,4 @@ -// $Id: apt.conf,v 1.40 1999/10/28 05:54:46 jgg Exp $ +// $Id: apt.conf,v 1.41 1999/10/29 04:49:37 jgg Exp $ /* This file is an index of all APT configuration directives. It should NOT actually be used as a real config file, though it is a completely valid file. Most of the options have sane default values, unless @@ -62,6 +62,7 @@ APT Clean-Installed "true"; Immediate-Configure "true"; // DO NOT turn this off, see the man page Force-LoopBreak "false"; // DO NOT turn this on, see the man page + Cache-Limit "4194304"; }; // Options for the downloading routines |