summaryrefslogtreecommitdiff
path: root/apt/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'apt/package.py')
-rw-r--r--apt/package.py34
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)