diff options
Diffstat (limited to 'apt/package.py')
| -rw-r--r-- | apt/package.py | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/apt/package.py b/apt/package.py index 13481be3..b82f1aa0 100644 --- a/apt/package.py +++ b/apt/package.py @@ -24,6 +24,10 @@ import sys import random import string +#from gettext import gettext as _ +import gettext +def _(s): return gettext.dgettext("python-apt", s) + class BaseDependency(object): " a single dependency " def __init__(self, name, rel, ver, pre): @@ -200,6 +204,9 @@ class Package(object): """ Return the short description (one line summary) """ if not self._lookupRecord(): return "" + ver = self._depcache.GetCandidateVer(self._pkg) + desc_iter = ver.TranslatedDescription + self._records.Lookup(desc_iter.FileList.pop(0)) return self._records.ShortDesc summary = property(summary) @@ -207,12 +214,17 @@ class Package(object): """ Return the formated long description """ if not self._lookupRecord(): return "" + # get the translated description + ver = self._depcache.GetCandidateVer(self._pkg) + desc_iter = ver.TranslatedDescription + self._records.Lookup(desc_iter.FileList.pop(0)) desc = "" try: - tmp = unicode(self._records.LongDesc) - except UnicodeDecodeError: - tmp = "Invalid unicode in description" - for line in string.split(tmp, "\n"): + s = unicode(self._records.LongDesc,"utf-8") + except UnicodeDecodeError,e: + s = _("Invalid unicode in description for '%s' (%s). " + "Please report.") % (self.name,e) + for line in string.split(s,"\n"): tmp = string.strip(line) if tmp == ".": desc += "\n" @@ -345,10 +357,13 @@ class Package(object): self._pcache.cachePreChange() self._depcache.MarkKeep(self._pkg) self._pcache.cachePostChange() - def markDelete(self, autoFix=True): - """ mark a package for delete. Run the resolver if autoFix is set """ + def markDelete(self, autoFix=True, purge=False): + """ mark a package for delete. Run the resolver if autoFix is set. + Mark the package as purge (remove with configuration) if 'purge' + is set. + """ self._pcache.cachePreChange() - self._depcache.MarkDelete(self._pkg) + self._depcache.MarkDelete(self._pkg, purge) # try to fix broken stuffsta if autoFix and self._depcache.BrokenCount > 0: Fix = apt_pkg.GetPkgProblemResolver(self._depcache) @@ -358,12 +373,13 @@ class Package(object): Fix.InstallProtect() Fix.Resolve() self._pcache.cachePostChange() - def markInstall(self, autoFix=True, autoInst=True): + def markInstall(self, autoFix=True, autoInst=True, fromUser=True): """ mark a package for install. Run the resolver if autoFix is set, automatically install required dependencies if autoInst is set + record it as automatically installed when fromuser is set to false """ self._pcache.cachePreChange() - self._depcache.MarkInstall(self._pkg, autoInst) + self._depcache.MarkInstall(self._pkg, autoInst, fromUser) # try to fix broken stuff if autoFix and self._depcache.BrokenCount > 0: fixer = apt_pkg.GetPkgProblemResolver(self._depcache) |
