diff options
author | David Kalnischkies <kalnischkies@gmail.com> | 2010-02-10 17:42:39 +0100 |
---|---|---|
committer | David Kalnischkies <kalnischkies@gmail.com> | 2010-02-10 17:42:39 +0100 |
commit | 8b32e9209ecfab776f064e3c4ccab249307ae49d (patch) | |
tree | df0a6a283bff447e55a9345425eba17c1e90bb5c /apt-pkg/depcache.h | |
parent | 857e9c13d8d9808fcd1ac8ff3469f6c0b90b7fea (diff) |
Pre-MultiArch a package which depends on a package with architecture "all"
can be sure that a package comeing in as a dependency of this package
will be of the same architecture as itself (or all). We don't want to break
this, so internal an arch all package is represented as many arch depending
packages. The only problem we have now is that we only know that a arch
all package is installed or not - we don't know for which architecture it
was installed: So we will look at all these broken arch all pseudo packages
and "remove" them.
Diffstat (limited to 'apt-pkg/depcache.h')
-rw-r--r-- | apt-pkg/depcache.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h index 0306861a1..63cd954ad 100644 --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@ -46,6 +46,7 @@ #include <vector> #include <memory> +#include <set> class pkgDepCache : protected pkgCache::Namespace { @@ -442,9 +443,6 @@ class pkgDepCache : protected pkgCache::Namespace virtual bool IsDeleteOk(const PkgIterator &Pkg,bool Purge = false, unsigned long Depth = 0, bool FromUser = true); - // This is for debuging - void Update(OpProgress *Prog = 0); - // read persistent states bool readStateFile(OpProgress *prog); bool writeStateFile(OpProgress *prog, bool InstalledOnly=false); @@ -460,9 +458,15 @@ class pkgDepCache : protected pkgCache::Namespace inline unsigned long BadCount() {return iBadCount;}; bool Init(OpProgress *Prog); - + // Generate all state information + void Update(OpProgress *Prog = 0); + pkgDepCache(pkgCache *Cache,Policy *Plcy = 0); virtual ~pkgDepCache(); + + private: + // Helper for Update(OpProgress) to remove pseudoinstalled arch all packages + bool RemovePseudoInstalledPkg(PkgIterator &Pkg, std::set<unsigned long> &recheck); }; #endif |