Blob Blame History Raw
diff --git a/cli.py b/cli.py
index 1fc0594..07a93c5 100644
--- a/cli.py
+++ b/cli.py
@@ -467,7 +467,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
                     my_inst_pkgs = []
 
                 if my_inst_pkgs:
-                    self.verbose_logger.log(yum.logginglevels.DEBUG_3,
+                    self.verbose_logger.log(yum.logginglevels.INFO_2,
                         'Requested dep: %s is provided by installed package', str(arg))
                     
                     continue # we don't need to look, we have it
@@ -490,6 +490,10 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
                         
             installable = yum.misc.unique(exactmatch + matched)
             exactarchlist = self.conf.exactarchlist
+
+            if len(installable) == 0:
+                self.verbose_logger.log(yum.logginglevels.INFO_2,
+                                        'No package %s available.', arg)
             
             # we look through each returned possibility and rule out the
             # ones that we obviously can't use
diff --git a/output.py b/output.py
index 0f5eb5a..8aff587 100644
--- a/output.py
+++ b/output.py
@@ -21,6 +21,8 @@ import sys
 import time
 import logging
 import types
+import gettext
+import rpm
 from i18n import _
 
 from urlgrabber.progress import TextMeter
@@ -42,6 +44,10 @@ class YumOutput:
     def __init__(self):
         self.logger = logging.getLogger("yum.cli")
         self.verbose_logger = logging.getLogger("yum.verbose.cli")
+        if hasattr(rpm, "expandMacro"):
+            self.i18ndomains = rpm.expandMacro("%_i18ndomains").split(":")
+        else:
+            self.i18ndomains = ["redhat-dist"]
     
     def printtime(self):
         months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
@@ -71,11 +77,16 @@ class YumOutput:
         
     def infoOutput(self, pkg):
         def enc(s):
-            # this sucks.  what we get back from the rpmdb
-            # are strings, but they may actually have unicode so we
-            # can't encode them
+            """Get the translated version from specspo and ensure that
+            it's actually encoded in UTF-8."""
             if type(s) == unicode:
-                return s.encode("UTF-8")
+                s = s.encode("UTF-8")
+            if len(s) > 0:
+                for d in self.i18ndomains:
+                    t = gettext.dgettext(d, s)
+                    if t != s:
+                        s = t
+                        break
             return s
         print _("Name   : %s") % pkg.name
         print _("Arch   : %s") % pkg.arch
@@ -495,7 +506,7 @@ class YumCliRPMCallBack(RPMBaseCallback):
                 self.lastmsg = msg
             if te_current == te_total:
                 print " "
-        
+
     def _makefmt(self, percent, ts_current, ts_total, progress = True):
         l = len(str(ts_total))
         size = "%s.%s" % (l, l)
diff --git a/yum/__init__.py b/yum/__init__.py
index 39121e2..ee31ae1 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -365,7 +365,7 @@ class YumBase(depsolve.Depsolve):
             return self._pkgSack
         
         if thisrepo is None:
-            repos = self.repos.listEnabled()
+            repos = 'enabled'
         else:
             repos = self.repos.findRepos(thisrepo)
         
@@ -385,7 +385,8 @@ class YumBase(depsolve.Depsolve):
         self.excludePackages()
         self._pkgSack.excludeArchs(archlist)
         
-        #FIXME - this could be faster, too.
+        if repos == 'enabled':
+            repos = self.repos.listEnabled()
         for repo in repos:
             self.excludePackages(repo)
             self.includePackages(repo)
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 4075116..08693eb 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -707,7 +707,7 @@ class Depsolve(object):
             while CheckDeps:
                 self.cheaterlookup = {}
                 if self.dsCallback: self.dsCallback.tscheck()
-                CheckDeps, checkremoves, checkinstalls, missing = self._resolveRequires(errors)
+                CheckDeps, checkinstalls, checkremoves, missing = self._resolveRequires(errors)
                 CheckInstalls |= checkinstalls
                 CheckRemoves |= checkremoves
 
diff --git a/yum/packages.py b/yum/packages.py
index d11816e..5be3722 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -628,7 +628,7 @@ class YumHeaderPackage(YumAvailablePackage):
         self.description = self.hdr['description']
         self.pkgid = self.hdr[rpm.RPMTAG_SHA1HEADER]
         if not self.pkgid:
-            self.pkgid = self.hdr[rpm.RPMTAG_SIGMD5]
+            self.pkgid = "%s.%s" %(self.hdr['name'], self.hdr['buildtime'])
         self.packagesize = self.hdr['size']
         self.__mode_cache = {}
         self.__prcoPopulated = False
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 48ec521..8b8793f 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -665,6 +665,9 @@ class YumRepository(Repository, config.RepoConf):
            file. If any of them are newer then invalidate the cache
            """
 
+        # -1 is special and should never get refreshed
+        if expiration_time == -1 and os.path.exists(myfile):
+            return True
         val = False
         if os.path.exists(myfile):
             cookie_info = os.stat(myfile)
@@ -701,7 +704,9 @@ class YumRepository(Repository, config.RepoConf):
             self.dirSetup()
         except Errors.RepoError, e:
             raise
-
+        if not self.mediafunc and self.mediaid and not self.mirrorlist and not self.baseurl:
+            verbose_logger.log(logginglevels.DEBUG_2, "Disabling media repo for non-media-aware frontend")
+            self.enabled = False
 
     def _loadRepoXML(self, text=None):
         """retrieve/check/read in repomd.xml from the repository"""