diff options
| author | Michael Vogt <michael.vogt@ubuntu.com> | 2005-06-20 21:26:23 +0000 |
|---|---|---|
| committer | Michael Vogt <michael.vogt@ubuntu.com> | 2005-06-20 21:26:23 +0000 |
| commit | c25600f6cfb209dde14fbfc17aaef78519411a30 (patch) | |
| tree | fb9e5b57e2404b76e568689b7d719461d5f10e90 /apt | |
| parent | 33c18310943c8ee582fe57b1295e753f417d5eb8 (diff) | |
| download | python-apt-c25600f6cfb209dde14fbfc17aaef78519411a30.tar.gz | |
* added support for the pkgProblemResolver()
Diffstat (limited to 'apt')
| -rw-r--r-- | apt/cache.py | 6 | ||||
| -rw-r--r-- | apt/package.py | 20 |
2 files changed, 20 insertions, 6 deletions
diff --git a/apt/cache.py b/apt/cache.py index 39dca925..9852f26f 100644 --- a/apt/cache.py +++ b/apt/cache.py @@ -142,11 +142,13 @@ class FilteredCache(object): " set the current active filter " self._filters = [] self._filters.append(filter) - self._reapplyFilter() + #self._reapplyFilter() + # force a cache-change event that will result in a refiltering + self.cache.CachePostChange() def FilterCachePostChange(self): " called internally if the cache changes, emit a signal then " - print "FilterCachePostChange()" + #print "FilterCachePostChange()" self._reapplyFilter() # def connect(self, name, callback): diff --git a/apt/package.py b/apt/package.py index de9a9dbb..806cb0c3 100644 --- a/apt/package.py +++ b/apt/package.py @@ -19,12 +19,18 @@ class Package(object): ver = self._depcache.GetCandidateVer(self._pkg) else: ver = self._pkg.CurrentVer + + # check if we found a version + if ver == None: + print "No version for: %s (Candiate: %s)" % (self._pkg.Name, UseCandidate) + return False + if ver.FileList == None: - print "got: %s " % ver.FileList - return + print "No FileList for: %s " % self._pkg.Name() + return False file, index = ver.FileList.pop(0) self._records.Lookup((file,index)) - + return True # basic information def Name(self): @@ -123,9 +129,15 @@ class Package(object): self._pcache.CachePreChange() self._depcache.MarkDelete(self._pkg) self._pcache.CachePostChange() - def MarkInstall(self): + def MarkInstall(self, autoFix=True): self._pcache.CachePreChange() self._depcache.MarkInstall(self._pkg) + # try to fix broken stuff + if autoFix and self._depcache.BrokenCount > 0: + fixer = apt_pkg.GetPkgProblemResolver(self._depcache) + fixer.Clear(self._pkg) + fixer.Protect(self._pkg) + fixer.Resolve(True) self._pcache.CachePostChange() def MarkUpgrade(self): if self.IsUpgradable(): |
