Blob Blame History Raw
diff --git a/cli.py b/cli.py
index d0d785e..baf019f 100644
--- a/cli.py
+++ b/cli.py
@@ -174,14 +174,18 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
        
         # Read up configuration options and initialise plugins
         try:
-            self._getConfig(opts.conffile, root, 
-                    init_plugins=not opts.noplugins,
-                    plugin_types=(yum.plugins.TYPE_CORE, yum.plugins.TYPE_INTERACTIVE),
-                    optparser=self.optparser,
-                    debuglevel=opts.debuglevel,
-                    errorlevel=opts.errorlevel,
-                    disabled_plugins=self.optparser._splitArg(opts.disableplugins),
-                    enabled_plugins=self.optparser._splitArg(opts.enableplugins))
+            pc = self.preconf
+            pc.fn = opts.conffile
+            pc.root = root
+            pc.init_plugins = not opts.noplugins
+            pc.plugin_types = (yum.plugins.TYPE_CORE,
+                               yum.plugins.TYPE_INTERACTIVE)
+            pc.optparser = self.optparser
+            pc.debuglevel = opts.debuglevel
+            pc.errorlevel = opts.errorlevel
+            pc.disabled_plugins = self.optparser._splitArg(opts.disableplugins)
+            pc.enabled_plugins  = self.optparser._splitArg(opts.enableplugins)
+            self.conf
                     
         except yum.Errors.ConfigError, e:
             self.logger.critical(_('Config Error: %s'), e)
@@ -249,8 +253,10 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         base command + argument makes any sense at all""" 
 
         self.verbose_logger.debug('Yum Version: %s', yum.__version__)
-        self.verbose_logger.debug('COMMAND: %s', self.cmdstring)
-        self.verbose_logger.debug('Installroot: %s', self.conf.installroot)
+        self.verbose_logger.log(yum.logginglevels.DEBUG_4,
+                                'COMMAND: %s', self.cmdstring)
+        self.verbose_logger.log(yum.logginglevels.DEBUG_4,
+                                'Installroot: %s', self.conf.installroot)
         if len(self.conf.commands) == 0 and len(self.cmds) < 1:
             self.cmds = self.conf.commands
         else:
@@ -264,9 +270,10 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         self.extcmds = self.cmds[1:] # out extended arguments/commands
         
         if len(self.extcmds) > 0:
-            self.verbose_logger.debug('Ext Commands:\n')
+            self.verbose_logger.log(yum.logginglevels.DEBUG_4,
+                                    'Ext Commands:\n')
             for arg in self.extcmds:
-                self.verbose_logger.debug('   %s', arg)
+                self.verbose_logger.log(yum.logginglevels.DEBUG_4, '   %s', arg)
         
         if not self.yum_cli_commands.has_key(self.basecmd):
             self.usage()
@@ -351,9 +358,15 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
                 self.verbose_logger.info(_('Trying to run the transaction but nothing to do. Exiting.'))
                 return 1
 
-        # output what will be done:
-        self.verbose_logger.log(yum.logginglevels.INFO_1,
-            self.listTransaction())
+        # NOTE: In theory we can skip this in -q -y mode, for a slight perf.
+        #       gain. But it's probably doom to have a different code path.
+        lsts = self.listTransaction()
+        if self.verbose_logger.isEnabledFor(yum.logginglevels.INFO_1):
+            self.verbose_logger.log(yum.logginglevels.INFO_1, lsts)
+        elif not self.conf.assumeyes:
+            #  If we are in quiet, and assumeyes isn't on we want to output
+            # at least the transaction list anyway.
+            self.logger.warn(lsts)
         
         # Check which packages have to be downloaded
         downloadpkgs = []
@@ -564,8 +577,6 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         toBeInstalled = {} # keyed on name
         passToUpdate = [] # list of pkgtups to pass along to updatecheck
 
-        self.verbose_logger.log(yum.logginglevels.INFO_2,
-            _('Parsing package install arguments'))
         for arg in userlist:
             if os.path.exists(arg) and arg.endswith('.rpm'): # this is hurky, deal w/it
                 val, msglist = self.localInstall(filelist=[arg])
@@ -792,7 +803,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
             for arg in args:
                 if '*' in arg or (arg and arg[0] == '/'):
                     continue
-                self.logger.warning(_('Warning: 3.0.x versions of yum would erronously match against filenames.\n You can use "%s*/%s%s" and/or "%s*bin/%s%s" to get that behaviour'),
+                self.logger.warning(_('Warning: 3.0.x versions of yum would erroneously match against filenames.\n You can use "%s*/%s%s" and/or "%s*bin/%s%s" to get that behaviour'),
                                     self.term.MODE['bold'], arg,
                                     self.term.MODE['normal'],
                                     self.term.MODE['bold'], arg,
diff --git a/docs/yum.8 b/docs/yum.8
index 6eebd80..3818902 100644
--- a/docs/yum.8
+++ b/docs/yum.8
@@ -59,6 +59,8 @@ gnome\-packagekit application\&.
 .br
 .I \fR * localupdate rpmfile1 [rpmfile2] [\&.\&.\&.] 
 .br
+.I \fR * reinstall package1
+.br
 .I \fR * deplist package1 [package2] [\&.\&.\&.] 
 .br
 .I \fR * repolist [all|enabled|disabled] 
@@ -187,6 +189,11 @@ rpm files of which an older version is already installed will be installed,
 the remaining specified packages will be ignored.
 If required the enabled repositories will be used to resolve dependencies.
 .IP
+.IP "\fBreinstall\fP"
+Will reinstall the identically versioned package as is currently installed. 
+It will not necessarily work for all pkgs. Kernels, in particular are not
+going to play nicely with this.
+.IP
 .IP "\fBdeplist\fP"
 Produces a list of all dependencies and what packages provide those
 dependencies for the given packages.
diff --git a/output.py b/output.py
index 3416459..74081d3 100755
--- a/output.py
+++ b/output.py
@@ -75,7 +75,7 @@ class YumTerm:
     __enabled = True
 
     if hasattr(urlgrabber.progress, 'terminal_width_cached'):
-        __auto_columns = property(lambda self: _term_width())
+        columns = property(lambda self: _term_width())
 
     __cap_names = {
         'underline' : 'smul',
@@ -143,9 +143,7 @@ class YumTerm:
             return
 
         self.__enabled = True
-        if hasattr(urlgrabber.progress, 'terminal_width_cached'):
-            self.columns = self.__auto_columns
-        else:
+        if not hasattr(urlgrabber.progress, 'terminal_width_cached'):
             self.columns = 80
         self.lines = 24
 
@@ -702,6 +700,8 @@ class YumOutput:
         print _('\nGroup: %s') % group.ui_name
 
         verb = self.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)
+        if verb:
+            print _(' Group-Id: %s') % to_unicode(group.groupid)
         pkg_names2pkgs = None
         if verb:
             pkg_names2pkgs = self._group_names2aipkgs(group.packages)
@@ -1016,7 +1016,8 @@ Remove   %5.5s Package(s)
                                   (_('Updated'), self.tsInfo.updated),
                                   (_('Dependency Updated'), self.tsInfo.depupdated),
                                   (_('Skipped (dependency problems)'), self.skipped_packages),
-                                  (_('Replaced'), self.tsInfo.obsoleted)]:
+                                  (_('Replaced'), self.tsInfo.obsoleted),
+                                  (_('Failed'), self.tsInfo.failed)]:
             msgs = []
             if len(pkglist) > 0:
                 out += '\n%s:\n' % action
@@ -1081,8 +1082,8 @@ Remove   %5.5s Package(s)
 
         @param cbobj: urlgrabber callback obj
         '''
-        delta_exit_chk = 2.0   # Delta between C-c's so we treat as exit
-        delta_exit_str = "two" # Human readable version of above
+        delta_exit_chk = 2.0      # Delta between C-c's so we treat as exit
+        delta_exit_str = _("two") # Human readable version of above
 
         now = time.time()
 
@@ -1209,7 +1210,7 @@ class YumCliRPMCallBack(RPMBaseCallback):
     Yum specific callback class for RPM operations.
     """
 
-    _width = property(lambda x: _term_width())
+    width = property(lambda x: _term_width())
 
     def __init__(self):
         RPMBaseCallback.__init__(self)
@@ -1221,8 +1222,6 @@ class YumCliRPMCallBack(RPMBaseCallback):
         self.mark = "#"
         self.marks = 22
         
-        self.width = self._width
-        
     def event(self, package, action, te_current, te_total, ts_current, ts_total):
         # this is where a progress bar would be called
         process = self.action[action]
diff --git a/po/ca.po b/po/ca.po
index f4a0eb3..4519720 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -21,33 +21,45 @@ msgid ""
 msgstr ""
 "Project-Id-Version: yum\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-11-06 01:31+0000\n"
-"PO-Revision-Date: 2008-11-06 19:39+0200\n"
-"Last-Translator: Xavier Conde Rueda <xavi.conde@gmail.com>\n"
-"Language-Team: Language-Team: Catalan <fedora@softcatala.net>\n"
+"POT-Creation-Date: 2008-12-12 13:25+0000\n"
+"PO-Revision-Date: 2009-02-01 15:03+0100\n"
+"Last-Translator: Agustí Grau <fletxa@gmail.com>\n"
+"Language-Team: Catalan <fedora@softcatala.net>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Poedit-Language: Catalan\n"
 
-#: ../callback.py:48 ../output.py:808 ../yum/rpmtrans.py:71
+#: ../callback.py:48
+#: ../output.py:911
+#: ../yum/rpmtrans.py:71
 msgid "Updating"
-msgstr "S'està actualitzant"
+msgstr "Actualitzant"
 
-#: ../callback.py:49 ../yum/rpmtrans.py:72
+#: ../callback.py:49
+#: ../yum/rpmtrans.py:72
 msgid "Erasing"
 msgstr "S'està esborrant"
 
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:807
-#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
+#: ../callback.py:50
+#: ../callback.py:51
+#: ../callback.py:53
+#: ../output.py:910
+#: ../yum/rpmtrans.py:73
+#: ../yum/rpmtrans.py:74
+#: ../yum/rpmtrans.py:76
 msgid "Installing"
-msgstr "S'està instal·lant"
+msgstr "Instal·lant"
 
-#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
+#: ../callback.py:52
+#: ../callback.py:58
+#: ../yum/rpmtrans.py:75
 msgid "Obsoleted"
 msgstr "Obsolet"
 
-#: ../callback.py:54 ../output.py:913
+#: ../callback.py:54
+#: ../output.py:1016
 msgid "Updated"
 msgstr "Actualitzat"
 
@@ -55,7 +67,10 @@ msgstr "Actualitzat"
 msgid "Erased"
 msgstr "Esborrat"
 
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:911
+#: ../callback.py:56
+#: ../callback.py:57
+#: ../callback.py:59
+#: ../output.py:1014
 msgid "Installed"
 msgstr "Instal·lat"
 
@@ -77,11 +92,13 @@ msgstr "Error: estat de sortida invàlid: %s per a %s"
 msgid "Erased: %s"
 msgstr "Esborrat: %s"
 
-#: ../callback.py:217 ../output.py:809
+#: ../callback.py:217
+#: ../output.py:912
 msgid "Removing"
 msgstr "S'està esborrant"
 
-#: ../callback.py:219 ../yum/rpmtrans.py:77
+#: ../callback.py:219
+#: ../yum/rpmtrans.py:77
 msgid "Cleanup"
 msgstr "Neteja"
 
@@ -98,12 +115,15 @@ msgstr "Configurant repositoris"
 msgid "Reading repository metadata in from local files"
 msgstr "S'estan llegint les metadades de repositoris des de fitxers locals"
 
-#: ../cli.py:187 ../utils.py:71
+#: ../cli.py:187
+#: ../utils.py:79
 #, python-format
 msgid "Config Error: %s"
 msgstr "Error de configuració: %s"
 
-#: ../cli.py:190 ../cli.py:1128 ../utils.py:74
+#: ../cli.py:190
+#: ../cli.py:1174
+#: ../utils.py:82
 #, python-format
 msgid "Options Error: %s"
 msgstr "Error d'opcions: %s"
@@ -148,8 +168,7 @@ msgstr ""
 
 #: ../cli.py:351
 msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr ""
-"S'ha intentat executar la transacció però no hi ha cap tasca a fer. S'està sortint."
+msgstr "S'ha intentat executar la transacció però no hi ha cap tasca a fer. S'està sortint."
 
 #: ../cli.py:381
 msgid "Exiting on user Command"
@@ -163,39 +182,50 @@ msgstr "S'estan descarregant els següents paquets:"
 msgid "Error Downloading Packages:\n"
 msgstr "S'ha produït un error descarregant els següents paquets:\n"
 
-#: ../cli.py:404 ../yum/__init__.py:3244
+#: ../cli.py:402
+msgid "Entering rpm code"
+msgstr "S'està entrant en codi rpm"
+
+#: ../cli.py:406
+#: ../yum/__init__.py:3330
 msgid "Running rpm_check_debug"
 msgstr "S'està executant rpm_check_debug"
 
-#: ../cli.py:407 ../yum/__init__.py:3247
+#: ../cli.py:409
+#: ../yum/__init__.py:3333
 msgid "ERROR with rpm_check_debug vs depsolve:"
-msgstr "ERROR amb rpm_check_debug vs depsolve:"
+msgstr "S'ha produït un error amb rpm_check_debug contra depsolve:"
 
-#: ../cli.py:411 ../yum/__init__.py:3249
-msgid "Please report this error in bugzilla"
-msgstr "Siusplau, informeu d'aquest error al bugzilla"
+#: ../cli.py:413
+#, python-format
+msgid "Please report this error in %s"
+msgstr "Siusplau, informeu d'aquest error a %s"
 
-#: ../cli.py:417
+#: ../cli.py:419
 msgid "Running Transaction Test"
 msgstr "S'està executant la transacció de prova"
 
-#: ../cli.py:433
+#: ../cli.py:435
 msgid "Finished Transaction Test"
 msgstr "Ha acabat la transacció de prova"
 
-#: ../cli.py:435
+#: ../cli.py:437
 msgid "Transaction Check Error:\n"
 msgstr "S'ha produït un error en la transacció de prova:\n"
 
-#: ../cli.py:442
+#: ../cli.py:444
 msgid "Transaction Test Succeeded"
 msgstr "La transacció de prova ha acabat amb èxit"
 
-#: ../cli.py:463
+#: ../cli.py:465
 msgid "Running Transaction"
 msgstr "S'està executant la transacció"
 
-#: ../cli.py:493
+#: ../cli.py:470
+msgid "Leaving rpm code"
+msgstr "Deixant codi rpm"
+
+#: ../cli.py:497
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
@@ -203,178 +233,183 @@ msgstr ""
 "No s'importaran automàticament les claus en una execució desatesa.\n"
 "Feu servir \"-y\" per a importar les claus."
 
-#: ../cli.py:512 ../cli.py:545
+#: ../cli.py:516
+#: ../cli.py:550
 msgid "  * Maybe you meant: "
 msgstr "  * Potser volíeu dir: "
 
-#: ../cli.py:528 ../cli.py:536
+#: ../cli.py:533
+#: ../cli.py:541
 #, python-format
 msgid "Package(s) %s%s%s available, but not installed."
 msgstr "Paquets %s%s%s disponibles, però no instal·lats."
 
-#: ../cli.py:542 ../cli.py:577
+#: ../cli.py:547
+#: ../cli.py:582
 #, python-format
 msgid "No package %s%s%s available."
 msgstr "El paquet %s%s%s no està disponible."
 
-#: ../cli.py:567
+#: ../cli.py:572
 msgid "Parsing package install arguments"
 msgstr "S'estan analitzant els arguments del paquet a instal·lar"
 
-#: ../cli.py:582 ../cli.py:657 ../yumcommands.py:933
+#: ../cli.py:587
+#: ../cli.py:662
+#: ../yumcommands.py:984
 msgid "Package(s) to install"
 msgstr "Paquets a instal·lar"
 
-#: ../cli.py:583 ../cli.py:658 ../yumcommands.py:151 ../yumcommands.py:934
+#: ../cli.py:588
+#: ../cli.py:663
+#: ../yumcommands.py:151
+#: ../yumcommands.py:985
 msgid "Nothing to do"
 msgstr "Res a fer"
 
-#: ../cli.py:616
+#: ../cli.py:621
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d paquets marcats per a actualitzar"
 
-#: ../cli.py:619
+#: ../cli.py:624
 msgid "No Packages marked for Update"
 msgstr "No hi ha cap paquet marcat per a actualitzar"
 
-#: ../cli.py:633
+#: ../cli.py:638
 #, python-format
 msgid "%d packages marked for removal"
 msgstr "%d paquets marcats per a esborrar"
 
-#: ../cli.py:636
+#: ../cli.py:641
 msgid "No Packages marked for removal"
 msgstr "No hi ha cap paquet marcat per a esborrar"
 
-#: ../cli.py:648
+#: ../cli.py:653
 msgid "No Packages Provided"
 msgstr "No s'ha proporcionat cap paquet"
 
-#: ../cli.py:689
+#: ../cli.py:708
 msgid "Matching packages for package list to user args"
-msgstr ""
-"S'està comparant els paquets per a la llista de paquets amb els arguments de "
-"l'usuari"
+msgstr "S'està comparant els paquets per a la llista de paquets amb els arguments de l'usuari"
 
-#: ../cli.py:731
+#: ../cli.py:757
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "Avís: no s'ha trobat cap coincidència per a: %s"
 
-#: ../cli.py:734
+#: ../cli.py:760
 msgid "No Matches found"
 msgstr "No s'ha trobat cap coincidència"
 
-#: ../cli.py:773
+#: ../cli.py:799
 #, python-format
 msgid ""
 "Warning: 3.0.x versions of yum would erronously match against filenames.\n"
 " You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
 msgstr ""
-"Avís: les versions 3.0.x del yum comproven incorrectament els noms de "
-"fitxer.\n"
+"Avís: les versions 3.0.x del yum comproven incorrectament els noms de fitxer.\n"
 " Podeu usar \"%s*/%s%s\" i/o \"%s*bin/%s%s\" per obtenir aquest comportament"
 
-#: ../cli.py:789
+#: ../cli.py:815
 #, python-format
 msgid "No Package Found for %s"
 msgstr "No s'ha trobat cap paquet per a %s"
 
-#: ../cli.py:801
+#: ../cli.py:827
 msgid "Cleaning up Everything"
 msgstr "S'està netejant tot"
 
-#: ../cli.py:815
+#: ../cli.py:841
 msgid "Cleaning up Headers"
 msgstr "S'estan netejant les capçaleres"
 
-#: ../cli.py:818
+#: ../cli.py:844
 msgid "Cleaning up Packages"
 msgstr "S'estan netejant els paquets"
 
-#: ../cli.py:821
+#: ../cli.py:847
 msgid "Cleaning up xml metadata"
 msgstr "S'estan netejant les metadades xml"
 
-#: ../cli.py:824
+#: ../cli.py:850
 msgid "Cleaning up database cache"
 msgstr "S'està netejant la memòria cau de la base de dades"
 
-#: ../cli.py:827
+#: ../cli.py:853
 msgid "Cleaning up expire-cache metadata"
 msgstr "S'està netejant la memòria cau de metadades que han vençut"
 
-#: ../cli.py:830
+#: ../cli.py:856
 msgid "Cleaning up plugins"
-msgstr "S'estan netejant les extensions"
+msgstr "S'estan netejant els connectors"
 
-#: ../cli.py:851
+#: ../cli.py:881
 msgid "Installed Groups:"
 msgstr "Grups instal·lats:"
 
-#: ../cli.py:858
+#: ../cli.py:888
 msgid "Available Groups:"
 msgstr "Grups disponibles:"
 
-#: ../cli.py:864
+#: ../cli.py:894
 msgid "Done"
 msgstr "Fet"
 
-#: ../cli.py:875 ../cli.py:893 ../cli.py:899 ../yum/__init__.py:2336
+#: ../cli.py:905
+#: ../cli.py:923
+#: ../cli.py:929
+#: ../yum/__init__.py:2388
 #, python-format
 msgid "Warning: Group %s does not exist."
-msgstr "Avís: El grup %s no existeix"
+msgstr "Avís: El grup %s no existeix."
 
-#: ../cli.py:903
+#: ../cli.py:933
 msgid "No packages in any requested group available to install or update"
-msgstr ""
-"No hi ha cap paquet disponible per a instal·lar o actualitzar en els grups "
-"sol·licitats"
+msgstr "No hi ha cap paquet disponible per a instal·lar o actualitzar en els grups sol·licitats"
 
-#: ../cli.py:905
+#: ../cli.py:935
 #, python-format
 msgid "%d Package(s) to Install"
 msgstr "%d paquets a instal·lar"
 
-#: ../cli.py:915 ../yum/__init__.py:2348
+#: ../cli.py:945
+#: ../yum/__init__.py:2400
 #, python-format
 msgid "No group named %s exists"
 msgstr "No existeix cap grup anomenat %s"
 
-#: ../cli.py:921
+#: ../cli.py:951
 msgid "No packages to remove from groups"
 msgstr "No hi ha cap paquet a esborrar dels grups"
 
-#: ../cli.py:923
+#: ../cli.py:953
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d paquets a esborrar"
 
-#: ../cli.py:965
+#: ../cli.py:995
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "El paquet %s ja està instal·lat, s'ometrà"
 
-#: ../cli.py:976
+#: ../cli.py:1006
 #, python-format
 msgid "Discarding non-comparable pkg %s.%s"
 msgstr "S'està descartant el paquet no comparable %s.%s"
 
 #. we've not got any installed that match n or n+a
-#: ../cli.py:1002
+#: ../cli.py:1032
 #, python-format
 msgid "No other %s installed, adding to list for potential install"
-msgstr ""
-"No hi ha cap altre %s instal·lat, s'afegeix a la llista per a una possible "
-"instal·lació"
+msgstr "No hi ha cap altre %s instal·lat, s'afegeix a la llista per a una possible instal·lació"
 
-#: ../cli.py:1021
+#: ../cli.py:1051
 #, python-format
 msgid "Command line error: %s"
 msgstr "Error en la línia d'ordres: %s"
 
-#: ../cli.py:1034
+#: ../cli.py:1064
 #, python-format
 msgid ""
 "\n"
@@ -385,246 +420,253 @@ msgstr ""
 "\n"
 "%s: l'opció %s necessita un argument"
 
-#: ../cli.py:1170
+#: ../cli.py:1114
+msgid "--color takes one of: auto, always, never"
+msgstr "--color pren un valor d'entre: auto, always, never"
+
+#: ../cli.py:1216
 msgid "show this help message and exit"
 msgstr "mostra el missatge d'ajuda i surt"
 
-#: ../cli.py:1174
+#: ../cli.py:1220
 msgid "be tolerant of errors"
 msgstr "sigues tolerant amb els errors"
 
-#: ../cli.py:1176
+#: ../cli.py:1222
 msgid "run entirely from cache, don't update cache"
 msgstr "executa totalment des de la memòria cau, no l'actualitzis"
 
-#: ../cli.py:1178
+#: ../cli.py:1224
 msgid "config file location"
 msgstr "ubicació del fitxer de configuració"
 
-#: ../cli.py:1180
+#: ../cli.py:1226
 msgid "maximum command wait time"
 msgstr "temps màxim d'espera d'ordres"
 
-#: ../cli.py:1182
+#: ../cli.py:1228
 msgid "debugging output level"
 msgstr "nivell de sortida de depuració"
 
-#: ../cli.py:1186
+#: ../cli.py:1232
 msgid "show duplicates, in repos, in list/search commands"
 msgstr "mostra duplicats, en repositoris, en les ordres per llistar i cercar"
 
-#: ../cli.py:1188
+#: ../cli.py:1234
 msgid "error output level"
 msgstr "nivell de sortida d'error"
 
-#: ../cli.py:1191
+#: ../cli.py:1237
 msgid "quiet operation"
 msgstr "operació silenciosa"
 
-#: ../cli.py:1193
+#: ../cli.py:1239
 msgid "verbose operation"
 msgstr "operació descriptiva"
 
-#: ../cli.py:1195
+#: ../cli.py:1241
 msgid "answer yes for all questions"
 msgstr "respon sí a totes les preguntes"
 
-#: ../cli.py:1197
+#: ../cli.py:1243
 msgid "show Yum version and exit"
 msgstr "mostra la versió del Yum i surt"
 
-#: ../cli.py:1198
+#: ../cli.py:1244
 msgid "set install root"
 msgstr "estableix l'arrel de la instal·lació"
 
-#: ../cli.py:1202
+#: ../cli.py:1248
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "habilita un o més repositoris (es permeten caràcters de reemplaçament)"
 
-#: ../cli.py:1206
+#: ../cli.py:1252
 msgid "disable one or more repositories (wildcards allowed)"
-msgstr ""
-"deshabilita un o més repositoris (es permeten caràcters de reemplaçament)"
+msgstr "deshabilita un o més repositoris (es permeten caràcters de reemplaçament)"
 
-#: ../cli.py:1209
+#: ../cli.py:1255
 msgid "exclude package(s) by name or glob"
 msgstr "exclou els paquets per nom o expressió regular del glob"
 
-#: ../cli.py:1211
+#: ../cli.py:1257
 msgid "disable exclude from main, for a repo or for everything"
 msgstr "inhabilita l'exclusió des de l'inici, per a un repositori o per a tot"
 
-#: ../cli.py:1214
+#: ../cli.py:1260
 msgid "enable obsoletes processing during updates"
 msgstr "habilita el processament d'obsolets durant les actualitzacions"
 
-#: ../cli.py:1216
+#: ../cli.py:1262
 msgid "disable Yum plugins"
-msgstr "inhabilita les extensions de Yum"
+msgstr "inhabilita els connectors de Yum"
 
-#: ../cli.py:1218
+#: ../cli.py:1264
 msgid "disable gpg signature checking"
 msgstr "inhabilita la comprobació de signatures gpg"
 
-#: ../cli.py:1220
+#: ../cli.py:1266
 msgid "disable plugins by name"
-msgstr "inhabilita extensions per nom"
+msgstr "inhabilita els connectors pel seu nom"
 
-#: ../cli.py:1223
+#: ../cli.py:1269
 msgid "enable plugins by name"
-msgstr "habilita extensions per nom"
+msgstr "habilita els connectors pel seu nom"
 
-#: ../cli.py:1226
+#: ../cli.py:1272
 msgid "skip packages with depsolving problems"
 msgstr "omet paquets amb problemes de resolució de dependències"
 
-#: ../output.py:248
+#: ../cli.py:1274
+msgid "control whether color is used"
+msgstr "controla sempre que s'usi color"
+
+#: ../output.py:301
 msgid "Jan"
 msgstr "Gen"
 
-#: ../output.py:248
+#: ../output.py:301
 msgid "Feb"
 msgstr "Feb"
 
-#: ../output.py:248
+#: ../output.py:301
 msgid "Mar"
 msgstr "Mar"
 
-#: ../output.py:248
+#: ../output.py:301
 msgid "Apr"
 msgstr "Abr"
 
-#: ../output.py:248
+#: ../output.py:301
 msgid "May"
 msgstr "Mai"
 
-#: ../output.py:248
+#: ../output.py:301
 msgid "Jun"
 msgstr "Jun"
 
-#: ../output.py:249
+#: ../output.py:302
 msgid "Jul"
 msgstr "Jul"
 
-#: ../output.py:249
+#: ../output.py:302
 msgid "Aug"
 msgstr "Ago"
 
-#: ../output.py:249
+#: ../output.py:302
 msgid "Sep"
 msgstr "Set"
 
-#: ../output.py:249
+#: ../output.py:302
 msgid "Oct"
 msgstr "Oct"
 
-#: ../output.py:249
+#: ../output.py:302
 msgid "Nov"
 msgstr "Nov"
 
-#: ../output.py:249
+#: ../output.py:302
 msgid "Dec"
 msgstr "Des"
 
-#: ../output.py:259
+#: ../output.py:312
 msgid "Trying other mirror."
 msgstr "S'està intentant un altre servidor rèplica."
 
-#: ../output.py:439
+#: ../output.py:527
 #, python-format
 msgid "Name       : %s%s%s"
-msgstr "Nom       : %s%s%s"
+msgstr "Nom        : %s%s%s"
 
-#: ../output.py:440
+#: ../output.py:528
 #, python-format
 msgid "Arch       : %s"
-msgstr "Arq       : %s"
+msgstr "Arq        : %s"
 
-#: ../output.py:442
+#: ../output.py:530
 #, python-format
 msgid "Epoch      : %s"
 msgstr "Època      : %s"
 
-#: ../output.py:443
+#: ../output.py:531
 #, python-format
 msgid "Version    : %s"
-msgstr "Versió    : %s"
+msgstr "Versió     : %s"
 
-#: ../output.py:444
+#: ../output.py:532
 #, python-format
 msgid "Release    : %s"
 msgstr "Release    : %s"
 
-#: ../output.py:445
+#: ../output.py:533
 #, python-format
 msgid "Size       : %s"
 msgstr "Mida       : %s"
 
-#: ../output.py:446
+#: ../output.py:534
 #, python-format
 msgid "Repo       : %s"
 msgstr "Repo       : %s"
 
-#: ../output.py:448
+#: ../output.py:536
 #, python-format
 msgid "Committer  : %s"
 msgstr "Desenvolupador  : %s"
 
-#: ../output.py:449
+#: ../output.py:537
 #, python-format
 msgid "Committime : %s"
-msgstr "Pujat : %s"
+msgstr "Pujat      : %s"
 
-#: ../output.py:450
+#: ../output.py:538
 #, python-format
 msgid "Buildtime  : %s"
 msgstr "Temps de creació  : %s"
 
-#: ../output.py:452
+#: ../output.py:540
 #, python-format
 msgid "Installtime: %s"
 msgstr "Temps d'instal·lació: %s"
 
-#: ../output.py:453
+#: ../output.py:541
 msgid "Summary    : "
-msgstr "Resum    : "
+msgstr "Resum      : "
 
-#: ../output.py:455
+#: ../output.py:543
 #, python-format
 msgid "URL        : %s"
 msgstr "URL        : %s"
 
-#: ../output.py:456
+#: ../output.py:544
 #, python-format
 msgid "License    : %s"
-msgstr "Llicència    : %s"
+msgstr "Llicència  : %s"
 
-#: ../output.py:457
+#: ../output.py:545
 msgid "Description: "
 msgstr "Descripció: "
 
-#: ../output.py:514
+#: ../output.py:609
 msgid "y"
 msgstr "s"
 
-#: ../output.py:514
+#: ../output.py:609
 msgid "yes"
 msgstr "sí"
 
-#: ../output.py:515
+#: ../output.py:610
 msgid "n"
 msgstr "n"
 
-#: ../output.py:515
+#: ../output.py:610
 msgid "no"
 msgstr "no"
 
 # REMEMBER to Translate [Y/N] to the current locale
-#: ../output.py:519
+#: ../output.py:614
 msgid "Is this ok [y/N]: "
 msgstr "És correcte [s/N]: "
 
-#: ../output.py:601
+#: ../output.py:702
 #, python-format
 msgid ""
 "\n"
@@ -633,123 +675,129 @@ msgstr ""
 "\n"
 "Grup: %s"
 
-#: ../output.py:608
+#: ../output.py:709
 #, python-format
 msgid " Description: %s"
 msgstr " Descripció: %s"
 
-#: ../output.py:610
+#: ../output.py:711
 msgid " Mandatory Packages:"
 msgstr " Paquets obligatoris:"
 
-#: ../output.py:611
+#: ../output.py:712
 msgid " Default Packages:"
 msgstr " Paquets per defecte:"
 
-#: ../output.py:612
+#: ../output.py:713
 msgid " Optional Packages:"
 msgstr " Paquets opcionals:"
 
-#: ../output.py:613
+#: ../output.py:714
 msgid " Conditional Packages:"
 msgstr " Paquets condicionals:"
 
-#: ../output.py:633
+#: ../output.py:734
 #, python-format
 msgid "package: %s"
 msgstr "paquet: %s"
 
-#: ../output.py:635
+#: ../output.py:736
 msgid "  No dependencies for this package"
 msgstr "  No hi ha dependències per a aquest paquet"
 
-#: ../output.py:640
+#: ../output.py:741
 #, python-format
 msgid "  dependency: %s"
 msgstr "  dependència: %s"
 
-#: ../output.py:642
+#: ../output.py:743
 msgid "   Unsatisfied dependency"
 msgstr "   Dependència insatisfeta"
 
-#: ../output.py:714
+#: ../output.py:815
+#, python-format
+msgid "Repo        : %s"
+msgstr "Repo        : %s"
+
+#: ../output.py:816
 msgid "Matched from:"
 msgstr "Coincidències amb:"
 
-#: ../output.py:722
+#: ../output.py:824
 msgid "Description : "
-msgstr "Descripció: "
+msgstr "Descripció  : "
 
-#: ../output.py:725
+#: ../output.py:827
 #, python-format
 msgid "URL         : %s"
 msgstr "URL         : %s"
 
-#: ../output.py:728
+#: ../output.py:830
 #, python-format
 msgid "License     : %s"
 msgstr "Llicència   : %s"
 
-#: ../output.py:731
+#: ../output.py:833
 #, python-format
 msgid "Filename    : %s"
 msgstr "Fitxer      : %s"
 
-#: ../output.py:735
+#: ../output.py:837
 msgid "Other       : "
 msgstr "Altre       : "
 
-#: ../output.py:767
+#: ../output.py:870
 msgid "There was an error calculating total download size"
 msgstr "S'ha produït un error en calcular la mida total de la descàrrega"
 
-#: ../output.py:772
+#: ../output.py:875
 #, python-format
 msgid "Total size: %s"
 msgstr "Mida total: %s"
 
-#: ../output.py:775
+#: ../output.py:878
 #, python-format
 msgid "Total download size: %s"
 msgstr "Mida total de la descàrrega: %s"
 
-#: ../output.py:810
+#: ../output.py:913
 msgid "Installing for dependencies"
 msgstr "S'està instal·lant per dependències"
 
-#: ../output.py:811
+#: ../output.py:914
 msgid "Updating for dependencies"
 msgstr "S'està actualitzant degut a les dependències"
 
-#: ../output.py:812
+#: ../output.py:915
 msgid "Removing for dependencies"
 msgstr "S'està esborrant degut a les dependències"
 
-#: ../output.py:819 ../output.py:915
+#: ../output.py:922
+#: ../output.py:1018
 msgid "Skipped (dependency problems)"
 msgstr "Ignorat degut a problemes de dependències:"
 
-#: ../output.py:840
+#: ../output.py:943
 msgid "Package"
 msgstr "Paquet"
 
-#: ../output.py:840
+#: ../output.py:943
 msgid "Arch"
 msgstr "Arq"
 
-#: ../output.py:841
+#: ../output.py:944
 msgid "Version"
 msgstr "Versió"
 
-#: ../output.py:841
+#: ../output.py:944
 msgid "Repository"
 msgstr "Repositori"
 
-#: ../output.py:842
+#: ../output.py:945
 msgid "Size"
 msgstr "Mida"
 
-#: ../output.py:853
+#: ../output.py:956
 #, python-format
 msgid ""
 "     replacing  %s.%s %s\n"
@@ -758,7 +806,7 @@ msgstr ""
 "     s'està reemplaçant  %s.%s %s\n"
 "\n"
 
-#: ../output.py:861
+#: ../output.py:964
 #, python-format
 msgid ""
 "\n"
@@ -775,106 +823,99 @@ msgstr ""
 "Actualitza %5.5s paquets         \n"
 "Esborra    %5.5s paquets         \n"
 
-#: ../output.py:909
+#: ../output.py:1012
 msgid "Removed"
 msgstr "Esborrat"
 
-#: ../output.py:910
+#: ../output.py:1013
 msgid "Dependency Removed"
 msgstr "Dependència esborrada"
 
-#: ../output.py:912
+#: ../output.py:1015
 msgid "Dependency Installed"
 msgstr "Dependència instal·lada"
 
-#: ../output.py:914
+#: ../output.py:1017
 msgid "Dependency Updated"
 msgstr "Dependència actualitzada"
 
-#: ../output.py:916
+#: ../output.py:1019
 msgid "Replaced"
 msgstr "Reemplaçat"
 
-#: ../output.py:989
+#: ../output.py:1092
 #, python-format
 msgid ""
 "\n"
-" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
-"seconds to exit.\n"
+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds to exit.\n"
 msgstr ""
 "\n"
-"S'ha cancel·lat la descàrrega actual, %sinterromp (crtl-c) de nou%s en %s%s%"
-"s segons per a sortir.\n"
+" S'ha cancel·lat la descàrrega actual, %sinterromp (crtl-c) de nou%s en %s%s%s segons per a sortir.\n"
 
-#: ../output.py:999
+#: ../output.py:1102
 msgid "user interrupt"
 msgstr "interrupció de l'usuari"
 
-#: ../output.py:1015
+#: ../output.py:1118
 msgid "Total"
 msgstr "Total"
 
-#: ../output.py:1029
+#: ../output.py:1132
 msgid "installed"
 msgstr "instal·lat"
 
-#: ../output.py:1030
+#: ../output.py:1133
 msgid "updated"
 msgstr "actualitzat"
 
-#: ../output.py:1031
+#: ../output.py:1134
 msgid "obsoleted"
 msgstr "obsolet"
 
-#: ../output.py:1032
+#: ../output.py:1135
 msgid "erased"
 msgstr "esborrat"
 
-#: ../output.py:1036
+#: ../output.py:1139
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> Paquet %s.%s %s:%s-%s passarà a ser %s"
 
-#: ../output.py:1043
+#: ../output.py:1146
 msgid "--> Running transaction check"
 msgstr "--> S'està executant la transacció de prova"
 
-#: ../output.py:1048
+#: ../output.py:1151
 msgid "--> Restarting Dependency Resolution with new changes."
-msgstr ""
-"--> Tornant a calcular la resolució de dependències amb els nous canvis."
+msgstr "--> Tornant a calcular la resolució de dependències amb els nous canvis."
 
-#: ../output.py:1053
+#: ../output.py:1156
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Ha finalitzat la resolució de dependències"
 
-#: ../output.py:1058
+#: ../output.py:1161
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> S'està processant la dependència %s per al paquet: %s"
 
-#: ../output.py:1063
+#: ../output.py:1166
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Dependència no resolta: %s"
 
-#: ../output.py:1069
+#: ../output.py:1172
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> S'està processant el conflicte: %s té un conflicte amb %s"
 
-#: ../output.py:1072
+#: ../output.py:1175
 msgid "--> Populating transaction set with selected packages. Please wait."
-msgstr ""
-"--> S'està poblant la transacció amb els paquets sel·leccionats. Si us plau, "
-"espereu."
+msgstr "--> S'està poblant la transacció amb els paquets sel·leccionats. Si us plau, espereu."
 
-#: ../output.py:1076
+#: ../output.py:1179
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
-msgstr ""
-"---> S'està descarregant la capçalera per a %s per a empaquetar dins de la "
-"transacció de prova."
+msgstr "---> S'està descarregant la capçalera per a %s per a empaquetar dins de la transacció de prova."
 
 #: ../yumcommands.py:41
 msgid "You need to be root to perform this command."
@@ -884,8 +925,7 @@ msgstr "Heu de ser root per a executar aquesta ordre."
 msgid ""
 "\n"
 "You have enabled checking of packages via GPG keys. This is a good thing. \n"
-"However, you do not have any GPG public keys installed. You need to "
-"download\n"
+"However, you do not have any GPG public keys installed. You need to download\n"
 "the keys for packages you wish to install and install them.\n"
 "You can do that by running the command:\n"
 "    rpm --import public.gpg.key\n"
@@ -898,10 +938,8 @@ msgid ""
 "For more information contact your distribution or package provider.\n"
 msgstr ""
 "\n"
-"Heu habilitat la comprovació de paquets utilitzant claus GPG. És una bona "
-"opció. \n"
-"No obstant, no teniu cap clau pública GPG instal·lada. Necessiteu "
-"descarregar\n"
+"Heu habilitat la comprovació de paquets utilitzant claus GPG. És una bona opció. \n"
+"No obstant, no teniu cap clau pública GPG instal·lada. Necessiteu descarregar\n"
 "les claus per als paquets que desitgeu instal·lar i instal·lar-les.\n"
 "Podeu fer-ho executant l'ordre:\n"
 "    rpm --import clau.pública.gpg\n"
@@ -911,8 +949,7 @@ msgstr ""
 "per a un repositori en l'opció 'gpgkey' en la secció d'un repositori i yum \n"
 "la instal·larà per vosaltres.\n"
 "\n"
-"Per a més informació contacteu el vostre distribuÏdor o proveïdor de "
-"paquets.\n"
+"Per a més informació contacteu el vostre distribuïdor o proveïdor de paquets.\n"
 
 #: ../yumcommands.py:68
 #, python-format
@@ -953,8 +990,7 @@ msgstr "El fitxer %s donat com a argument a l'intèrpret d'ordres no existeix."
 
 #: ../yumcommands.py:120
 msgid "Error: more than one file given as argument to shell."
-msgstr ""
-"Error: s'ha donat més d'un fitxer com a argument per a l'intèrpret d'ordres."
+msgstr "Error: s'ha donat més d'un fitxer com a argument per a l'intèrpret d'ordres."
 
 #: ../yumcommands.py:161
 msgid "PACKAGE..."
@@ -984,239 +1020,245 @@ msgstr "S'està preparant el procés d'actualització"
 msgid "Display details about a package or group of packages"
 msgstr "Mostra detalls sobre un paquet o un grup de paquets"
 
-#. Output the packages:
-#: ../yumcommands.py:262
+#: ../yumcommands.py:278
 msgid "Installed Packages"
 msgstr "Paquets instal·lats"
 
-#: ../yumcommands.py:264
+#: ../yumcommands.py:285
 msgid "Available Packages"
 msgstr "Paquets disponibles"
 
-#: ../yumcommands.py:266
+#: ../yumcommands.py:289
 msgid "Extra Packages"
 msgstr "Paquets extra"
 
-#: ../yumcommands.py:268
+#: ../yumcommands.py:291
 msgid "Updated Packages"
 msgstr "Paquets actualitzats"
 
-#: ../yumcommands.py:275 ../yumcommands.py:282 ../yumcommands.py:551
+#: ../yumcommands.py:298
+#: ../yumcommands.py:305
+#: ../yumcommands.py:574
 msgid "Obsoleting Packages"
 msgstr "Paquets obsolets"
 
-#: ../yumcommands.py:284
+#: ../yumcommands.py:307
 msgid "Recently Added Packages"
 msgstr "Paquets recentment afegits"
 
-#: ../yumcommands.py:291
+#: ../yumcommands.py:314
 msgid "No matching Packages to list"
 msgstr "No hi ha paquets coincidents per llistar"
 
-#: ../yumcommands.py:305
+#: ../yumcommands.py:328
 msgid "List a package or groups of packages"
 msgstr "Llista un paquet o un grup de paquets"
 
-#: ../yumcommands.py:317
+#: ../yumcommands.py:340
 msgid "Remove a package or packages from your system"
 msgstr "Esborra un o més paquets del vostre sistema"
 
-#: ../yumcommands.py:325
+#: ../yumcommands.py:348
 msgid "Setting up Remove Process"
 msgstr "S'està preparant el procés d'esborrat"
 
-#: ../yumcommands.py:340
+#: ../yumcommands.py:363
 msgid "Setting up Group Process"
 msgstr "S'està preparant el procés de grup"
 
-#: ../yumcommands.py:346
+#: ../yumcommands.py:369
 msgid "No Groups on which to run command"
 msgstr "No hi ha cap grup on executar l'ordre"
 
-#: ../yumcommands.py:359
+#: ../yumcommands.py:382
 msgid "List available package groups"
 msgstr "Llista els grups de paquets disponibles"
 
-#: ../yumcommands.py:376
+#: ../yumcommands.py:399
 msgid "Install the packages in a group on your system"
 msgstr "Instal·la els paquets en un grup en el vostre sistema"
 
-#: ../yumcommands.py:398
+#: ../yumcommands.py:421
 msgid "Remove the packages in a group from your system"
 msgstr "Esborra els paquets en un grup en el vostre sistema"
 
-#: ../yumcommands.py:425
+#: ../yumcommands.py:448
 msgid "Display details about a package group"
 msgstr "Mostra detalls sobre un grup de paquets"
 
-#: ../yumcommands.py:449
+#: ../yumcommands.py:472
 msgid "Generate the metadata cache"
 msgstr "Genera les metadades de la memòria cau"
 
-#: ../yumcommands.py:455
+#: ../yumcommands.py:478
 msgid "Making cache files for all metadata files."
-msgstr ""
-"S'estan fent els fitxers de memòria cau per a tots els fitxers de metadades."
+msgstr "S'estan fent els fitxers de memòria cau per a tots els fitxers de metadades."
 
-#: ../yumcommands.py:456
+#: ../yumcommands.py:479
 msgid "This may take a while depending on the speed of this computer"
 msgstr "Això pot trigar una estona depenent de la velocitat d'aquest ordinador"
 
-#: ../yumcommands.py:477
+#: ../yumcommands.py:500
 msgid "Metadata Cache Created"
 msgstr "S'han creat les metadades per a la memòria cau"
 
-#: ../yumcommands.py:491
+#: ../yumcommands.py:514
 msgid "Remove cached data"
 msgstr "S'han esborrat les dades de la memòria cau"
 
-#: ../yumcommands.py:512
+#: ../yumcommands.py:535
 msgid "Find what package provides the given value"
 msgstr "Troba quin paquet proporciona el valor donat"
 
-#: ../yumcommands.py:532
+#: ../yumcommands.py:555
 msgid "Check for available package updates"
 msgstr "Comprova si hi ha actualitzacions de paquets disponibles"
 
-#: ../yumcommands.py:571
+#: ../yumcommands.py:594
 msgid "Search package details for the given string"
 msgstr "Busca detalls del paquet per la cadena donada"
 
-#: ../yumcommands.py:577
+#: ../yumcommands.py:600
 msgid "Searching Packages: "
 msgstr "S'estan buscant paquets: "
 
-#: ../yumcommands.py:594
+#: ../yumcommands.py:617
 msgid "Update packages taking obsoletes into account"
 msgstr "Actualitza paquets tenint en compte els obsolets"
 
-#: ../yumcommands.py:603
+#: ../yumcommands.py:626
 msgid "Setting up Upgrade Process"
 msgstr "S'està preparant el procés d'actualització"
 
-#: ../yumcommands.py:617
+#: ../yumcommands.py:640
 msgid "Install a local RPM"
 msgstr "Instal·la un RPM local"
 
-#: ../yumcommands.py:626
+#: ../yumcommands.py:649
 msgid "Setting up Local Package Process"
 msgstr "S'està configurant el procés local de paquets"
 
-#: ../yumcommands.py:645
+#: ../yumcommands.py:668
 msgid "Determine which package provides the given dependency"
 msgstr "Determina quin paquet satisfà la dependència donada"
 
-#: ../yumcommands.py:648
+#: ../yumcommands.py:671
 msgid "Searching Packages for Dependency:"
 msgstr "S'estan buscant paquets per a la dependència:"
 
-#: ../yumcommands.py:662
+#: ../yumcommands.py:685
 msgid "Run an interactive yum shell"
 msgstr "Executa un intèrpret d'ordres interactiu de yum"
 
-#: ../yumcommands.py:668
+#: ../yumcommands.py:691
 msgid "Setting up Yum Shell"
 msgstr "S'està preparant l'intèrpret d'ordres de yum"
 
-#: ../yumcommands.py:686
+#: ../yumcommands.py:709
 msgid "List a package's dependencies"
 msgstr "Llista les dependències d'un paquet"
 
-#: ../yumcommands.py:692
+#: ../yumcommands.py:715
 msgid "Finding dependencies: "
 msgstr "S'estan trobant dependències: "
 
-#: ../yumcommands.py:708
+#: ../yumcommands.py:731
 msgid "Display the configured software repositories"
 msgstr "Mostra els repositoris de programari configurats"
 
-#: ../yumcommands.py:756 ../yumcommands.py:769 ../yumcommands.py:770
+#: ../yumcommands.py:779
+#: ../yumcommands.py:780
 msgid "enabled"
 msgstr "habilitat"
 
-#: ../yumcommands.py:765 ../yumcommands.py:768
+#: ../yumcommands.py:788
+#: ../yumcommands.py:789
 msgid "disabled"
 msgstr "deshabilitat"
 
-#: ../yumcommands.py:777
-msgid "repo id"
-msgstr "id repo"
-
-#: ../yumcommands.py:778
-msgid "repo name"
-msgstr "nom repo"
-
-#: ../yumcommands.py:780
-msgid "status"
-msgstr "estat"
-
-#: ../yumcommands.py:790
+#: ../yumcommands.py:800
 msgid "Repo-id     : "
 msgstr "Id-repo         : "
 
-#: ../yumcommands.py:791
+#: ../yumcommands.py:801
 msgid "Repo-name   : "
 msgstr "Nom-repo        : "
 
-#: ../yumcommands.py:792
+#: ../yumcommands.py:802
 msgid "Repo-status : "
 msgstr "Estat-repo      : "
 
-#: ../yumcommands.py:794
-
+#: ../yumcommands.py:804
 msgid "Repo-revision: "
 msgstr "Repo-revisió    : "
 
-#: ../yumcommands.py:798
+#: ../yumcommands.py:808
 msgid "Repo-tags   : "
 msgstr "Repo-etiquetes  : "
 
-#: ../yumcommands.py:804
+#: ../yumcommands.py:814
 msgid "Repo-distro-tags: "
 msgstr "Repo-etiq-dist  : "
 
-#: ../yumcommands.py:809
+#: ../yumcommands.py:819
 msgid "Repo-updated: "
 msgstr "Repo-actualitzat: "
 
-#: ../yumcommands.py:811
+#: ../yumcommands.py:821
 msgid "Repo-pkgs   : "
 msgstr "Paquets-repo    : "
 
-#: ../yumcommands.py:812
+#: ../yumcommands.py:822
 msgid "Repo-size   : "
 msgstr "Mida-repo       : "
 
-#: ../yumcommands.py:819
+#: ../yumcommands.py:829
 msgid "Repo-baseurl: "
 msgstr "URL-base-repo   : "
 
-#: ../yumcommands.py:823
+#: ../yumcommands.py:833
 msgid "Repo-metalink: "
 msgstr "Repo-metaenllaç : "
 
-#: ../yumcommands.py:826
+#: ../yumcommands.py:836
 msgid "Repo-mirrors: "
 msgstr "Miralls-repo    : "
 
-#: ../yumcommands.py:830
+#: ../yumcommands.py:840
 msgid "Repo-exclude: "
 msgstr "Repo-exclou     : "
 
-#: ../yumcommands.py:834
+#: ../yumcommands.py:844
 msgid "Repo-include: "
 msgstr "Repo-inclou     : "
 
-#: ../yumcommands.py:856
+#. Work out the first (id) and last (enabled/disalbed/count),
+#. then chop the middle (name)...
+#: ../yumcommands.py:854
+#: ../yumcommands.py:880
+msgid "repo id"
+msgstr "id repo"
+
+#: ../yumcommands.py:868
+#: ../yumcommands.py:869
+#: ../yumcommands.py:883
+msgid "status"
+msgstr "estat"
+
+#: ../yumcommands.py:881
+msgid "repo name"
+msgstr "nom repo"
+
+#: ../yumcommands.py:907
 msgid "Display a helpful usage message"
 msgstr "Mostra un missatge d'ajuda d'ús"
 
-#: ../yumcommands.py:890
+#: ../yumcommands.py:941
 #, python-format
 msgid "No help available for %s"
 msgstr "No hi ha ajuda disponible per a %s"
 
-#: ../yumcommands.py:895
+#: ../yumcommands.py:946
 msgid ""
 "\n"
 "\n"
@@ -1226,7 +1268,7 @@ msgstr ""
 "\n"
 "àlies: "
 
-#: ../yumcommands.py:897
+#: ../yumcommands.py:948
 msgid ""
 "\n"
 "\n"
@@ -1236,11 +1278,11 @@ msgstr ""
 "\n"
 "àlies: "
 
-#: ../yumcommands.py:926
+#: ../yumcommands.py:977
 msgid "Setting up Reinstall Process"
 msgstr "S'està preparant el procés de reinstal·lació"
 
-#: ../yumcommands.py:940
+#: ../yumcommands.py:991
 msgid "reinstall a package"
 msgstr "reinstal·la un paquet"
 
@@ -1265,17 +1307,17 @@ msgstr ""
 "S'està sortint en trobar la canonada trencada"
 
 #: ../yummain.py:98
-msgid ""
-"Another app is currently holding the yum lock; waiting for it to exit..."
-msgstr ""
-"Alguna altra aplicació té el bloqueig del yum; s'està esperant a que surti..."
+msgid "Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr "Alguna altra aplicació té el bloqueig del yum; s'està esperant a que surti..."
 
-#: ../yummain.py:125 ../yummain.py:164
+#: ../yummain.py:125
+#: ../yummain.py:164
 #, python-format
 msgid "Error: %s"
 msgstr "Error: %s"
 
-#: ../yummain.py:135 ../yummain.py:171
+#: ../yummain.py:135
+#: ../yummain.py:171
 #, python-format
 msgid "Unknown Error(s): Exit Code: %d:"
 msgstr "Errors desconeguts: Codi de sortida: %d:"
@@ -1313,9 +1355,7 @@ msgstr "doTsSetup() desapareixerà en una futura versió de Yum.\n"
 
 #: ../yum/depsolve.py:99
 msgid "Setting up TransactionSets before config class is up"
-msgstr ""
-"S'està configurant TransactionSets abans que la classe de configuració "
-"estigui iniciada"
+msgstr "S'està configurant TransactionSets abans que la classe de configuració estigui iniciada"
 
 #: ../yum/depsolve.py:150
 #, python-format
@@ -1342,7 +1382,8 @@ msgstr "La coincidència %s es requereix per a %s"
 msgid "Member: %s"
 msgstr "Membre: %s"
 
-#: ../yum/depsolve.py:247 ../yum/depsolve.py:734
+#: ../yum/depsolve.py:247
+#: ../yum/depsolve.py:734
 #, python-format
 msgid "%s converted to install"
 msgstr "%s convertits per a instal·lar"
@@ -1364,8 +1405,7 @@ msgstr "%s requereix: %s"
 
 #: ../yum/depsolve.py:333
 msgid "Needed Require has already been looked up, cheating"
-msgstr ""
-"El requeriment necessari ja s'ha buscat anteriorment, s'estan fent trampes"
+msgstr "El requeriment necessari ja s'ha buscat anteriorment, s'estan fent trampes"
 
 #: ../yum/depsolve.py:343
 #, python-format
@@ -1395,8 +1435,7 @@ msgstr "TSINFO: el paquet %s requereix %s marcat per a esborrar"
 #: ../yum/depsolve.py:393
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
-msgstr ""
-"TSINFO: S'està marcant com a obsolet %s amb %s per resoldre dependències."
+msgstr "TSINFO: S'està marcant com a obsolet %s amb %s per resoldre dependències."
 
 #: ../yum/depsolve.py:396
 #, python-format
@@ -1422,27 +1461,23 @@ msgstr "La coincidència %s es requereix per a %s"
 #: ../yum/depsolve.py:479
 #, python-format
 msgid "%s is in providing packages but it is already installed, removing."
-msgstr ""
-"%s es troba en els paquets proporcionats però ja es troba instal·lat, s'està "
-"esborrant."
+msgstr "%s es troba en els paquets proporcionats però ja es troba instal·lat, s'està esborrant."
 
 #: ../yum/depsolve.py:494
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
-msgstr ""
-"El paquet potencial que resol dependències %s té una instància nova a ts"
+msgstr "El paquet potencial que resol dependències %s té una instància nova a ts"
 
 #: ../yum/depsolve.py:505
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
-msgstr ""
-"El paquet potencial que resol dependències %s té una nova instància "
-"insta·lada."
+msgstr "El paquet potencial que resol dependències %s té una nova instància insta·lada."
 
-#: ../yum/depsolve.py:513 ../yum/depsolve.py:562
+#: ../yum/depsolve.py:513
+#: ../yum/depsolve.py:562
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
-msgstr "La dependència que falta: %s es necessita per al paquet %s"
+msgstr "Manca una dependència: %s es necessita per al paquet %s"
 
 #: ../yum/depsolve.py:526
 #, python-format
@@ -1459,11 +1494,13 @@ msgstr "TSINFO: S'està marcant %s com a actualització per a %s"
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: S'està marcant %s com a instal·lació per a %s"
 
-#: ../yum/depsolve.py:672 ../yum/depsolve.py:752
+#: ../yum/depsolve.py:672
+#: ../yum/depsolve.py:752
 msgid "Success - empty transaction"
 msgstr "Èxit - transacció buida"
 
-#: ../yum/depsolve.py:711 ../yum/depsolve.py:724
+#: ../yum/depsolve.py:711
+#: ../yum/depsolve.py:724
 msgid "Restarting Loop"
 msgstr "S'està recomençant el bucle"
 
@@ -1495,7 +1532,8 @@ msgstr "s'està buscant %s com a requeriment de %s"
 msgid "Running compare_providers() for %s"
 msgstr "S'està executant compare_providers() per a %s"
 
-#: ../yum/depsolve.py:1018 ../yum/depsolve.py:1024
+#: ../yum/depsolve.py:1018
+#: ../yum/depsolve.py:1024
 #, python-format
 msgid "better arch in po %s"
 msgstr "millor arq en el po %s"
@@ -1606,24 +1644,20 @@ msgid "Importing additional filelist information"
 msgstr "S'està important informació adicional de la llista de fitxers"
 
 #: ../yum/__init__.py:641
-msgid ""
-"There are unfinished transactions remaining. You might consider running yum-"
-"complete-transaction first to finish them."
-msgstr ""
-"Encara hi ha transaccions sense acabar. Hauríeu de considerar executar yum-"
-"complete-transaction abans per acabar-les."
+msgid "There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them."
+msgstr "Encara hi ha transaccions sense acabar. Hauríeu de considerar executar yum-complete-transaction abans per acabar-les."
 
-#: ../yum/__init__.py:702
+#: ../yum/__init__.py:707
 #, python-format
 msgid "Skip-broken round %i"
-msgstr "Intent %i d'omissió dels trencats"
+msgstr "Intent %i d'omissió dels paquets trencats"
 
-#: ../yum/__init__.py:751
+#: ../yum/__init__.py:759
 #, python-format
 msgid "Skip-broken took %i rounds "
-msgstr "L'omisió dels trencats ha necessitat %i intents"
+msgstr "L'omissió dels paquets trencats ha necessitat %i intents"
 
-#: ../yum/__init__.py:752
+#: ../yum/__init__.py:760
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1631,93 +1665,89 @@ msgstr ""
 "\n"
 "Paquets omesos degut a problemes de dependències:"
 
-#: ../yum/__init__.py:756
+#: ../yum/__init__.py:764
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s des de %s"
 
-#: ../yum/__init__.py:878
-msgid ""
-"Warning: scriptlet or other non-fatal errors occurred during transaction."
-msgstr ""
-"Avís: ha fallat l'scriptlet o s'han produït altre tipus d'errors no fatals "
-"durant la transacció."
+#: ../yum/__init__.py:908
+msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr "Avís: ha fallat l'scriptlet o s'han produït altre tipus d'errors no fatals durant la transacció."
 
-#: ../yum/__init__.py:894
+#: ../yum/__init__.py:924
 #, python-format
 msgid "Failed to remove transaction file %s"
 msgstr "No s'ha pogut esborrar el fitxer de transaccions %s"
 
-#: ../yum/__init__.py:935
+#: ../yum/__init__.py:965
 #, python-format
 msgid "excluding for cost: %s from %s"
 msgstr "s'està excloent per cost: %s de %s"
 
-#: ../yum/__init__.py:966
+#: ../yum/__init__.py:996
 msgid "Excluding Packages in global exclude list"
 msgstr "S'estan excloent paquets en la llista global d'exclusió"
 
-#: ../yum/__init__.py:968
+#: ../yum/__init__.py:998
 #, python-format
 msgid "Excluding Packages from %s"
 msgstr "S'estan excloent paquets de %s"
 
-#: ../yum/__init__.py:995
+#: ../yum/__init__.py:1025
 #, python-format
 msgid "Reducing %s to included packages only"
 msgstr "S'està reduint %s únicament a paquets inclosos."
 
-#: ../yum/__init__.py:1001
+#: ../yum/__init__.py:1031
 #, python-format
 msgid "Keeping included package %s"
 msgstr "S'està mantenint el paquet inclòs %s"
 
-#: ../yum/__init__.py:1007
+#: ../yum/__init__.py:1037
 #, python-format
 msgid "Removing unmatched package %s"
 msgstr "S'està esborrant el paquet sense coincidències %s"
 
-#: ../yum/__init__.py:1010
+#: ../yum/__init__.py:1040
 msgid "Finished"
 msgstr "Finalitzat"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:1040
+#: ../yum/__init__.py:1070
 #, python-format
 msgid "Unable to check if PID %s is active"
 msgstr "No s'ha pogut comprovar si el PID %s es troba actiu"
 
 #. Another copy seems to be running.
-#: ../yum/__init__.py:1044
+#: ../yum/__init__.py:1074
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
 msgstr "Bloqueig existent %s: una altra còpia s'està executant amb pid %s."
 
-#: ../yum/__init__.py:1115
+#: ../yum/__init__.py:1145
 msgid "Package does not match intended download"
 msgstr "El paquet no coincideix amb la descàrrega intentada"
 
-#: ../yum/__init__.py:1130
+#: ../yum/__init__.py:1160
 msgid "Could not perform checksum"
 msgstr "No s'ha pogut realitzar la suma de verificació"
 
-#: ../yum/__init__.py:1133
+#: ../yum/__init__.py:1163
 msgid "Package does not match checksum"
 msgstr "No coincideix la suma de verificació del paquet"
 
-#: ../yum/__init__.py:1176
+#: ../yum/__init__.py:1206
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
-msgstr ""
-"la suma de verificació del paquet falla però l'ús de memòria cau està "
-"habilitat per a %s"
+msgstr "la suma de verificació del paquet falla però l'ús de memòria cau està habilitat per a %s"
 
-#: ../yum/__init__.py:1179 ../yum/__init__.py:1207
+#: ../yum/__init__.py:1209
+#: ../yum/__init__.py:1237
 #, python-format
 msgid "using local copy of %s"
 msgstr "s'està utilitzant la còpia local de %s"
 
-#: ../yum/__init__.py:1221
+#: ../yum/__init__.py:1251
 #, python-format
 msgid ""
 "Insufficient space in download directory %s\n"
@@ -1728,376 +1758,371 @@ msgstr ""
 "    * lliure    %s\n"
 "    * necessari %s"
 
-#: ../yum/__init__.py:1268
+#: ../yum/__init__.py:1298
 msgid "Header is not complete."
 msgstr "La capçalera no està completa."
 
-#: ../yum/__init__.py:1308
+#: ../yum/__init__.py:1338
 #, python-format
-msgid ""
-"Header not in local cache and caching-only mode enabled. Cannot download %s"
-msgstr ""
-"La capçalera no es troba en la memòria cau local i està habilitat el mode de "
-"només memòria cau. No es pot descarregar %s"
+msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
+msgstr "La capçalera no es troba en la memòria cau local i està habilitat el mode de només memòria cau. No es pot descarregar %s"
 
-#: ../yum/__init__.py:1363
+#: ../yum/__init__.py:1393
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "La clau pública per a %s no està instal·lada"
 
-#: ../yum/__init__.py:1367
+#: ../yum/__init__.py:1397
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Hi ha hagut un problema obrint el paquet %s"
 
-#: ../yum/__init__.py:1375
+#: ../yum/__init__.py:1405
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "La clau pública per a %s no és de confiança"
 
-#: ../yum/__init__.py:1379
+#: ../yum/__init__.py:1409
 #, python-format
 msgid "Package %s is not signed"
 msgstr "El paquet %s no està signat"
 
-#: ../yum/__init__.py:1417
+#: ../yum/__init__.py:1447
 #, python-format
 msgid "Cannot remove %s"
 msgstr "No es pot esborrar %s"
 
-#: ../yum/__init__.py:1421
+#: ../yum/__init__.py:1451
 #, python-format
 msgid "%s removed"
 msgstr "S'ha esborrat %s"
 
-#: ../yum/__init__.py:1458
+#: ../yum/__init__.py:1488
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "No es pot esborrar %s fitxer %s"
 
-#: ../yum/__init__.py:1462
+#: ../yum/__init__.py:1492
 #, python-format
 msgid "%s file %s removed"
 msgstr "%s fitxer %s esborrat"
 
-#: ../yum/__init__.py:1464
+#: ../yum/__init__.py:1494
 #, python-format
 msgid "%d %s files removed"
 msgstr "%d %s fitxers esborrats"
 
-#: ../yum/__init__.py:1526
+#: ../yum/__init__.py:1563
 #, python-format
 msgid "More than one identical match in sack for %s"
 msgstr "Hi ha més d'una coincidència idèntica en el sac per a %s"
 
-#: ../yum/__init__.py:1532
+#: ../yum/__init__.py:1569
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "No hi ha coincidències %s.%s-%s:%s-%s de l'actualització"
 
-#: ../yum/__init__.py:1740
-msgid ""
-"searchPackages() will go away in a future version of "
-"Yum.                      Use searchGenerator() instead. \n"
-msgstr ""
-"searchPackages() desapareixerà en una futura versió de "
-"Yum.                      Useu searchGenerator(). \n"
+#: ../yum/__init__.py:1787
+msgid "searchPackages() will go away in a future version of Yum.                      Use searchGenerator() instead. \n"
+msgstr "searchPackages() desapareixerà en una futura versió de Yum.                      Useu searchGenerator(). \n"
 
-#: ../yum/__init__.py:1778
+#: ../yum/__init__.py:1825
 #, python-format
 msgid "Searching %d packages"
 msgstr "S'estan buscant %d paquets"
 
-#: ../yum/__init__.py:1782
+#: ../yum/__init__.py:1829
 #, python-format
 msgid "searching package %s"
 msgstr "s'està buscant el paquet %s"
 
-#: ../yum/__init__.py:1794
+#: ../yum/__init__.py:1841
 msgid "searching in file entries"
 msgstr "s'està buscant en les entrades de fitxers"
 
-#: ../yum/__init__.py:1801
+#: ../yum/__init__.py:1848
 msgid "searching in provides entries"
 msgstr "s'està buscant en les entrades proporcionades"
 
-#: ../yum/__init__.py:1834
+#: ../yum/__init__.py:1881
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Proporciona-coincideix: %s"
 
-#: ../yum/__init__.py:1883
+#: ../yum/__init__.py:1930
 msgid "No group data available for configured repositories"
-msgstr "No hi ha dades de grup disponible en cap dels repositoris configurats"
+msgstr "No hi ha dades de grup disponibles en cap dels repositoris configurats"
 
-#: ../yum/__init__.py:1909 ../yum/__init__.py:1928 ../yum/__init__.py:1959
-#: ../yum/__init__.py:1965 ../yum/__init__.py:2038 ../yum/__init__.py:2042
+#: ../yum/__init__.py:1961
+#: ../yum/__init__.py:1980
+#: ../yum/__init__.py:2011
+#: ../yum/__init__.py:2017
+#: ../yum/__init__.py:2090
+#: ../yum/__init__.py:2094
 #, python-format
 msgid "No Group named %s exists"
 msgstr "No existeix cap grup anomenat %s"
 
-#: ../yum/__init__.py:1940 ../yum/__init__.py:2055
+#: ../yum/__init__.py:1992
+#: ../yum/__init__.py:2107
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "el paquet %s no estava marcat en el grup %s"
 
-#: ../yum/__init__.py:1987
+#: ../yum/__init__.py:2039
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "S'està afegint el paquet %s del grup %s"
 
-#: ../yum/__init__.py:1991
+#: ../yum/__init__.py:2043
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "No hi ha cap paquet anomenat %s disponible per a ser instal·lat"
 
-#: ../yum/__init__.py:2080
+#: ../yum/__init__.py:2132
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "No s'ha pogut trobar la tupla de paquets %s al sac de paquets"
 
-#: ../yum/__init__.py:2095
-msgid ""
-"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
-msgstr ""
-"getInstalledPackageObject() desapareixarà, useu self.rpmdb.searchPkgTuple"
-"().\n"
+#: ../yum/__init__.py:2147
+msgid "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr "getInstalledPackageObject() desapareixarà, useu self.rpmdb.searchPkgTuple().\n"
 
-#: ../yum/__init__.py:2147 ../yum/__init__.py:2190
+#: ../yum/__init__.py:2199
+#: ../yum/__init__.py:2242
 msgid "Invalid versioned dependency string, try quoting it."
-msgstr ""
-"La cadena de versió de dependència és invàlida, proveu-ho entre cometes."
+msgstr "La cadena de versió de dependència és invàlida, proveu-ho entre cometes."
 
-#: ../yum/__init__.py:2149 ../yum/__init__.py:2192
+#: ../yum/__init__.py:2201
+#: ../yum/__init__.py:2244
 msgid "Invalid version flag"
-msgstr "Versió de flag invàlida"
+msgstr "Marcador de versió invàlid"
 
-#: ../yum/__init__.py:2164 ../yum/__init__.py:2168
+#: ../yum/__init__.py:2216
+#: ../yum/__init__.py:2220
 #, python-format
 msgid "No Package found for %s"
 msgstr "No s'ha trobat cap paquet per a %s"
 
-#: ../yum/__init__.py:2367
+#: ../yum/__init__.py:2428
 msgid "Package Object was not a package object instance"
 msgstr "L'objecte paquet no era una instància d'objecte paquet"
 
-#: ../yum/__init__.py:2371
+#: ../yum/__init__.py:2432
 msgid "Nothing specified to install"
 msgstr "No hi ha res especificat per a instal·lar"
 
 #. only one in there
-#: ../yum/__init__.py:2389
+#: ../yum/__init__.py:2450
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
-msgstr ""
-"S'està verificant si hi ha un proveïdor virtual o un fitxer proveïdor per a %"
-"s"
+msgstr "S'està verificant si hi ha un proveïdor virtual o un fitxer proveïdor per a %s"
 
-#: ../yum/__init__.py:2395 ../yum/__init__.py:2777
+#: ../yum/__init__.py:2456
+#: ../yum/__init__.py:2696
+#: ../yum/__init__.py:2863
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "No hi ha cap coincidència per a l'argument: %s"
 
-#: ../yum/__init__.py:2461
+#: ../yum/__init__.py:2522
 #, python-format
 msgid "Package %s installed and not available"
 msgstr "El paquet %s es troba instal·lat però no és disponible"
 
-#: ../yum/__init__.py:2464
+#: ../yum/__init__.py:2525
 msgid "No package(s) available to install"
 msgstr "No hi ha cap paquet disponible per a instal·lar"
 
-#: ../yum/__init__.py:2476
+#: ../yum/__init__.py:2537
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "El paquet: %s  - ja està en la transacció"
 
-#: ../yum/__init__.py:2489
+#: ../yum/__init__.py:2552
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr "El paquet %s és obsolet degut a %s, es provarà d'instal·lar %s"
+
+#: ../yum/__init__.py:2560
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "El paquet %s ja es troba instal·lat i en l'última versió."
 
-#: ../yum/__init__.py:2496
+#: ../yum/__init__.py:2567
 #, python-format
 msgid "Package matching %s already installed. Checking for update."
-msgstr ""
-"El paquet coincident %s ja es troba instal·lat. S'està buscant una "
-"actualització."
-
-#: ../yum/__init__.py:2506
-#, python-format
-msgid "Package %s is obsoleted by %s, trying to install %s instead"
-msgstr "El paquet %s és obsolet degut a %s, es provarà d'instal·lar %s"
+msgstr "El paquet coincident %s ja es troba instal·lat. S'està buscant una actualització."
 
 #. update everything (the easy case)
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2640
 msgid "Updating Everything"
 msgstr "S'està actualitzant tot"
 
-#: ../yum/__init__.py:2588 ../yum/__init__.py:2693 ../yum/__init__.py:2704
-#: ../yum/__init__.py:2726
+#: ../yum/__init__.py:2658
+#: ../yum/__init__.py:2768
+#: ../yum/__init__.py:2790
+#: ../yum/__init__.py:2812
 #, python-format
 msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
 msgstr "No s'actualitzarà el paquet obsolet: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2684
+#: ../yum/__init__.py:2693
+#: ../yum/__init__.py:2860
+#, python-format
+msgid "%s"
+msgstr "%s"
+
+#: ../yum/__init__.py:2759
 #, python-format
 msgid "Package is already obsoleted: %s.%s %s:%s-%s"
-msgstr "El paquet és obsolet: %s.%s. %s:%s-%s"
+msgstr "El paquet és obsolet: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2707 ../yum/__init__.py:2729
+#: ../yum/__init__.py:2793
+#: ../yum/__init__.py:2815
 #, python-format
 msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
 msgstr "No s'actualitzarà el paquet actualitzat: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2774
-#, python-format
-msgid "%s"
-msgstr "%s"
-
-#: ../yum/__init__.py:2790
+#: ../yum/__init__.py:2876
 msgid "No package matched to remove"
 msgstr "No hi ha cap paquet coincident per a esborrar"
 
-#: ../yum/__init__.py:2824
+#: ../yum/__init__.py:2910
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "No es pot obrir el fitxer %s. S'ometrà."
 
-#: ../yum/__init__.py:2827
+#: ../yum/__init__.py:2913
 #, python-format
 msgid "Examining %s: %s"
 msgstr "S'està examinant %s: %s"
 
-#: ../yum/__init__.py:2835
+#: ../yum/__init__.py:2921
 #, python-format
 msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
-msgstr ""
-"No s'ha pogut afegir el paquet %s a la transacció. No és una arquitectura "
-"compatible: %s"
+msgstr "No s'ha pogut afegir el paquet %s a la transacció. No és una arquitectura compatible: %s"
 
-#: ../yum/__init__.py:2843
+#: ../yum/__init__.py:2929
 #, python-format
-msgid ""
-"Package %s not installed, cannot update it. Run yum install to install it "
-"instead."
-msgstr ""
-"El paquet %s no està instal·lat; no es pot actualitzar. Executa yum install "
-"per a instal·lar-lo."
+msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
+msgstr "El paquet %s no està instal·lat; no es pot actualitzar. Executa yum install per a instal·lar-lo."
 
-#: ../yum/__init__.py:2876
+#: ../yum/__init__.py:2962
 #, python-format
 msgid "Excluding %s"
 msgstr "S'està excloent %s"
 
-#: ../yum/__init__.py:2881
+#: ../yum/__init__.py:2967
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "S'està marcant %s per a ser instal·lat"
 
-#: ../yum/__init__.py:2887
+#: ../yum/__init__.py:2973
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "S'està marcant %s com a actualització de %s"
 
-#: ../yum/__init__.py:2894
+#: ../yum/__init__.py:2980
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s no actualitza el paquet instal·lat."
 
-#: ../yum/__init__.py:2912
+#: ../yum/__init__.py:2998
 msgid "Problem in reinstall: no package matched to remove"
-msgstr ""
-"Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a esborrar"
+msgstr "Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a esborrar"
 
-#: ../yum/__init__.py:2923
+#: ../yum/__init__.py:3009
 #, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "El paquet %s permet múltiples instal·lacions, s'està ometent"
 
-#: ../yum/__init__.py:2930
+#: ../yum/__init__.py:3016
 msgid "Problem in reinstall: no package matched to install"
-msgstr ""
-"Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a "
-"instal·lar"
+msgstr "Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a instal·lar"
 
-#: ../yum/__init__.py:2965
+#: ../yum/__init__.py:3051
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "S'està recuperant la clau GPG des de %s"
 
-#: ../yum/__init__.py:2985
+#: ../yum/__init__.py:3071
 msgid "GPG key retrieval failed: "
 msgstr "La recuperació de la clau GPG ha fallat: "
 
-#: ../yum/__init__.py:2996
+#: ../yum/__init__.py:3082
 #, python-format
 msgid "GPG key parsing failed: key does not have value %s"
 msgstr "L'ànalisi de la clau GPG ha fallat: la clau no té el valor %s"
 
-#: ../yum/__init__.py:3028
+#: ../yum/__init__.py:3114
 #, python-format
 msgid "GPG key at %s (0x%s) is already installed"
 msgstr "La clau GPG de %s (0x%s) ja està instal·lada"
 
 #. Try installing/updating GPG key
-#: ../yum/__init__.py:3033 ../yum/__init__.py:3095
+#: ../yum/__init__.py:3119
+#: ../yum/__init__.py:3181
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "S'està important la clau GPG 0x%s \"%s\" des de %s"
 
-#: ../yum/__init__.py:3050
+#: ../yum/__init__.py:3136
 msgid "Not installing key"
 msgstr "No s'està instal·lant la clau"
 
-#: ../yum/__init__.py:3056
+#: ../yum/__init__.py:3142
 #, python-format
 msgid "Key import failed (code %d)"
-msgstr "L'importació de la clau ha fallat (codi %d)"
+msgstr "La importació de la clau ha fallat (codi %d)"
 
-#: ../yum/__init__.py:3057 ../yum/__init__.py:3116
+#: ../yum/__init__.py:3143
+#: ../yum/__init__.py:3202
 msgid "Key imported successfully"
 msgstr "La clau s'ha importat amb èxit"
 
-#: ../yum/__init__.py:3062 ../yum/__init__.py:3121
+#: ../yum/__init__.py:3148
+#: ../yum/__init__.py:3207
 #, python-format
 msgid ""
-"The GPG keys listed for the \"%s\" repository are already installed but they "
-"are not correct for this package.\n"
+"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n"
 "Check that the correct key URLs are configured for this repository."
 msgstr ""
-"Les claus GPG llistades pel repositori \"%s\" ja estan instal·lades però no "
-"són correctes per a aquest paquet.\n"
-"Comproveu que les URL de clau correctes estan configurades per a aquest "
-"repositori."
+"Les claus GPG llistades per al repositori \"%s\" ja estan instal·lades però no són correctes per a aquest paquet.\n"
+"Comproveu que les URL de claus correctes estan configurades per a aquest repositori."
 
-#: ../yum/__init__.py:3071
+#: ../yum/__init__.py:3157
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "La importació de claus no ha ajudat, eren claus incorrectes?"
 
-#: ../yum/__init__.py:3090
+#: ../yum/__init__.py:3176
 #, python-format
 msgid "GPG key at %s (0x%s) is already imported"
 msgstr "La clau GPG a %s (0x%s) ja ha estat importada"
 
-#: ../yum/__init__.py:3110
+#: ../yum/__init__.py:3196
 #, python-format
 msgid "Not installing key for repo %s"
 msgstr "No s'està instal·lant la clau per al repositori %s"
 
-#: ../yum/__init__.py:3115
+#: ../yum/__init__.py:3201
 msgid "Key import failed"
 msgstr "Ha fallat la importació de la clau"
 
-#: ../yum/__init__.py:3206
+#: ../yum/__init__.py:3292
 msgid "Unable to find a suitable mirror."
 msgstr "No s'ha pogut trobar un servidor rèplica vàlid."
 
-#: ../yum/__init__.py:3208
+#: ../yum/__init__.py:3294
 msgid "Errors were encountered while downloading packages."
 msgstr "S'han trobat errors descarregant paquets."
 
-#: ../yum/__init__.py:3272
+#: ../yum/__init__.py:3335
+#, python-format
+msgid "Please report this error at %s"
+msgstr "Siusplau, informeu d'aquest error al %s"
+
+#: ../yum/__init__.py:3359
 msgid "Test Transaction Errors: "
 msgstr "Errors en la transacció de prova: "
 
@@ -2106,7 +2131,8 @@ msgstr "Errors en la transacció de prova: "
 msgid "Loaded plugins: "
 msgstr "Connectors carregats: "
 
-#: ../yum/plugins.py:215 ../yum/plugins.py:221
+#: ../yum/plugins.py:215
+#: ../yum/plugins.py:221
 #, python-format
 msgid "No plugin match for: %s"
 msgstr "No hi ha cap connector que coincideixi amb: %s"
@@ -2120,7 +2146,7 @@ msgstr "El connector \"%s\" està deshabilitat"
 #: ../yum/plugins.py:263
 #, python-format
 msgid "Plugin \"%s\" can't be imported"
-msgstr "No s'ha pogut importar el connector «%s»"
+msgstr "No s'ha pogut importar el connector \"%s\""
 
 #: ../yum/plugins.py:270
 #, python-format
@@ -2139,11 +2165,8 @@ msgstr "S'està carregant el connector \"%s\""
 
 #: ../yum/plugins.py:315
 #, python-format
-msgid ""
-"Two or more plugins with the name \"%s\" exist in the plugin search path"
-msgstr ""
-"Existeixen dos o més connectors amb el mateix nom \"%s\" en el camí de cerca "
-"de connectors"
+msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
+msgstr "Existeixen dos o més connectors amb el mateix nom \"%s\" en el camí de cerca de connectors"
 
 #: ../yum/plugins.py:335
 #, python-format
@@ -2173,58 +2196,26 @@ msgstr "La capçalera no es pot obrir o no coincideix amb %s, %s"
 #: ../rpmUtils/oldUtils.py:46
 #, python-format
 msgid "RPM %s fails md5 check"
-msgstr "falla la comprobació md5 per al RPM %s"
+msgstr "Falla la comprobació md5 per al RPM %s"
 
 #: ../rpmUtils/oldUtils.py:144
 msgid "Could not open RPM database for reading. Perhaps it is already in use?"
-msgstr ""
-"No s'ha pogut obrir la base de dades RPM per a llegir-la. Potser ja està en "
-"ús?"
+msgstr "No s'ha pogut obrir la base de dades RPM per a llegir-la. Potser ja està en ús?"
 
 #: ../rpmUtils/oldUtils.py:174
 msgid "Got an empty Header, something has gone wrong"
 msgstr "S'ha obtingut una capçalera buida, alguna cosa ha anat malament"
 
-#: ../rpmUtils/oldUtils.py:244 ../rpmUtils/oldUtils.py:251
-#: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
+#: ../rpmUtils/oldUtils.py:244
+#: ../rpmUtils/oldUtils.py:251
+#: ../rpmUtils/oldUtils.py:254
+#: ../rpmUtils/oldUtils.py:257
 #, python-format
 msgid "Damaged Header %s"
-msgstr "Capçalera danyada %s"
+msgstr "Capçalera malmesa %s"
 
 #: ../rpmUtils/oldUtils.py:272
 #, python-format
 msgid "Error opening rpm %s - error %s"
-msgstr "Error en obrir rpm %s - error %s"
-
-#~ msgid "Could not find update match for %s"
-#~ msgstr "No s'ha pogut trobar cap actualització per a %s"
-
-#~ msgid ""
-#~ "Failure finding best provider of %s for %s, exceeded maximum loop length"
-#~ msgstr ""
-#~ "S'ha produït un error trobant el millor proveïdor de %s per a %s, el "
-#~ "bucle ha excedit la longitud màxima"
-
-#~ msgid "Comparing best: %s to po: %s"
-#~ msgstr "S'està comparant el millor: %s amb po: %s"
-
-#~ msgid "Same: best %s == po: %s"
-#~ msgstr "Igual: el millor %s == po: %s"
-
-#~ msgid "po %s obsoletes best: %s"
-#~ msgstr "el po %s deixa com a obsolet el millor: %s"
-
-#~ msgid "po %s shares a sourcerpm with %s"
-#~ msgstr "el po %s comparteix un rpm origen amb %s"
-
-#~ msgid "best %s shares a sourcerpm with %s"
-#~ msgstr "el millor %s comparteix un rpm origen amb %s"
-
-#~ msgid "po %s shares more of the name prefix with %s"
-#~ msgstr "el po %s comparteix més que el prefix del nom amb %s"
-
-#~ msgid "po %s has a shorter name than best %s"
-#~ msgstr "el po %s té un nom més curt que el millor %s"
+msgstr "S'ha produïut un error en obrir rpm %s - error %s"
 
-#~ msgid "bestpkg %s shares more of the name prefix with %s"
-#~ msgstr "el millor paquet %s comparteix més el prefix del nom amb %s"
diff --git a/po/de.po b/po/de.po
index f4e419d..d48061f 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,7 +1,8 @@
 # German translation of yum
 # Copyright (C) 2006 Duke
 # This file is distributed under the same license as the yum package.
-# Fabian Affolter <fab@fedoraproject.org>, 2007,2008.
+#
+# Fabian Affolter <fab@fedoraproject.org>, 2007,2008,2009.
 # Dominik Sandjaja <dominiksandjaja@fedoraproject.org>, 2008.
 # Thomas Spura <tomspur@fedoraproject.org>, 2008.
 #
@@ -9,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: yum\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-11-13 05:44+0000\n"
-"PO-Revision-Date: 2008-11-15 21:05+0100\n"
+"POT-Creation-Date: 2009-02-04 01:24+0000\n"
+"PO-Revision-Date: 2009-02-05 11:28+0100\n"
 "Last-Translator: Fabian Affolter <fab@fedoraproject.org>\n"
 "Language-Team: German <fedora-trans-de@redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -20,7 +21,7 @@ msgstr ""
 "X-Poedit-Language: German\n"
 
 #: ../callback.py:48
-#: ../output.py:808
+#: ../output.py:909
 #: ../yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "Aktualisieren"
@@ -33,7 +34,7 @@ msgstr "Löschen"
 #: ../callback.py:50
 #: ../callback.py:51
 #: ../callback.py:53
-#: ../output.py:807
+#: ../output.py:908
 #: ../yum/rpmtrans.py:73
 #: ../yum/rpmtrans.py:74
 #: ../yum/rpmtrans.py:76
@@ -47,7 +48,7 @@ msgid "Obsoleted"
 msgstr "Veraltet"
 
 #: ../callback.py:54
-#: ../output.py:913
+#: ../output.py:1014
 msgid "Updated"
 msgstr "Aktualisiert"
 
@@ -58,7 +59,7 @@ msgstr "Gelöscht"
 #: ../callback.py:56
 #: ../callback.py:57
 #: ../callback.py:59
-#: ../output.py:911
+#: ../output.py:1012
 msgid "Installed"
 msgstr "Installiert"
 
@@ -74,7 +75,7 @@ msgstr "Neu verpackt"
 #: ../callback.py:189
 #, python-format
 msgid "Error: invalid output state: %s for %s"
-msgstr "Fehler: Ungültiger Ausgabe-Zustand: %s for %s"
+msgstr "Fehler: Ungültiger Ausgabe-Zustand: %s für %s"
 
 #: ../callback.py:212
 #, python-format
@@ -82,7 +83,7 @@ msgid "Erased: %s"
 msgstr "Gelöscht: %s"
 
 #: ../callback.py:217
-#: ../output.py:809
+#: ../output.py:910
 msgid "Removing"
 msgstr "Entfernen"
 
@@ -104,50 +105,50 @@ msgstr "Repositories werden eingerichtet"
 msgid "Reading repository metadata in from local files"
 msgstr "Lese Repository-Metadaten aus lokalen Dateien ein"
 
-#: ../cli.py:187
+#: ../cli.py:191
 #: ../utils.py:79
 #, python-format
 msgid "Config Error: %s"
 msgstr "Konfigurationsfehler: %s"
 
-#: ../cli.py:190
-#: ../cli.py:1132
+#: ../cli.py:194
+#: ../cli.py:1178
 #: ../utils.py:82
 #, python-format
 msgid "Options Error: %s"
 msgstr "Optionenfehler: %s"
 
-#: ../cli.py:218
+#: ../cli.py:222
 #, python-format
 msgid "  Installed: %s-%s at %s"
 msgstr "  Installiert: %s-%s am %s"
 
-#: ../cli.py:220
+#: ../cli.py:224
 #, python-format
 msgid "  Built    : %s at %s"
 msgstr "  Gebaut    : %s am %s"
 
-#: ../cli.py:222
+#: ../cli.py:226
 #, python-format
 msgid "  Committed: %s at %s"
-msgstr "  Ünermittelt: %s am %s"
+msgstr "  Übermittelt: %s am %s"
 
-#: ../cli.py:259
+#: ../cli.py:263
 msgid "You need to give some command"
 msgstr "Sie müssen irgendeinen Befehl eingeben"
 
-#: ../cli.py:301
+#: ../cli.py:305
 msgid "Disk Requirements:\n"
 msgstr "Festplattenplatz-Anforderungen:\n"
 
-#: ../cli.py:303
+#: ../cli.py:307
 #, python-format
 msgid "  At least %dMB needed on the %s filesystem.\n"
 msgstr "  Mindestens %d MB werden auf dem Dateisystem %s benötigt.\n"
 
 #. TODO: simplify the dependency errors?
 #. Fixup the summary
-#: ../cli.py:308
+#: ../cli.py:312
 msgid ""
 "Error Summary\n"
 "-------------\n"
@@ -155,58 +156,58 @@ msgstr ""
 "Fehler-Zusammenfassung\n"
 "-------------\n"
 
-#: ../cli.py:351
+#: ../cli.py:355
 msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr "Versuche Transaktion auzuführen, aber es ist nichts zu tun. Beende."
+msgstr "Versuche Transaktion auszuführen, aber es ist nichts zu tun. Beende."
 
-#: ../cli.py:381
+#: ../cli.py:391
 msgid "Exiting on user Command"
 msgstr "Beende nach Befehl des Benutzers"
 
-#: ../cli.py:385
+#: ../cli.py:395
 msgid "Downloading Packages:"
 msgstr "Lade Pakete herunter:"
 
-#: ../cli.py:390
+#: ../cli.py:400
 msgid "Error Downloading Packages:\n"
 msgstr "Fehler beim Herunterladen der Pakete:\n"
 
-#: ../cli.py:404
-#: ../yum/__init__.py:3287
+#: ../cli.py:414
+#: ../yum/__init__.py:3342
 msgid "Running rpm_check_debug"
 msgstr "Führe rpm_check_debug durch"
 
-#: ../cli.py:407
-#: ../yum/__init__.py:3290
+#: ../cli.py:417
+#: ../yum/__init__.py:3345
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "FEHLER mit rpm_check_debug gegen depsolve:"
 
-#: ../cli.py:411
-#: ../yum/__init__.py:3292
-msgid "Please report this error in bugzilla"
-msgstr "Bitte melden Sie diesen Fehler in Bugzilla"
+#: ../cli.py:421
+#, python-format
+msgid "Please report this error in %s"
+msgstr "Bitte melden Sie diesen Fehler unter %s"
 
-#: ../cli.py:417
+#: ../cli.py:427
 msgid "Running Transaction Test"
 msgstr "Führe Verarbeitungsstest durch"
 
-#: ../cli.py:433
+#: ../cli.py:443
 msgid "Finished Transaction Test"
 msgstr "Verarbeitungstest beendet"
 
-#: ../cli.py:435
+#: ../cli.py:445
 msgid "Transaction Check Error:\n"
 msgstr "Prüffehler bei Verarbeitung:\n"
 
-#: ../cli.py:442
+#: ../cli.py:452
 msgid "Transaction Test Succeeded"
 msgstr "Verarbeitungstest erfolgreich"
 
-#: ../cli.py:463
+#: ../cli.py:473
 msgid "Running Transaction"
 msgstr "Führe Verarbeitung durch"
 
-#: ../cli.py:493
+#: ../cli.py:503
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
@@ -214,185 +215,181 @@ msgstr ""
 "Verweigere automatischen Import der Schlüssel, wenn unbeaufsichtigt ausgeführt.\n"
 "Benutze \"-y\" zum Überschreiben."
 
-#: ../cli.py:512
-#: ../cli.py:545
+#: ../cli.py:522
+#: ../cli.py:556
 msgid "  * Maybe you meant: "
 msgstr " * Meinten Sie vielleicht:"
 
-#: ../cli.py:528
-#: ../cli.py:536
+#: ../cli.py:539
+#: ../cli.py:547
 #, python-format
 msgid "Package(s) %s%s%s available, but not installed."
 msgstr "Paket(e) %s%s%s verfügbar, aber nicht installiert."
 
-#: ../cli.py:542
-#: ../cli.py:577
+#: ../cli.py:553
+#: ../cli.py:586
 #, python-format
 msgid "No package %s%s%s available."
 msgstr "Kein Paket  %s%s%s verfügbar."
 
-#: ../cli.py:567
-msgid "Parsing package install arguments"
-msgstr "Analysiere Installationsargumente des Pakets"
-
-#: ../cli.py:582
-#: ../cli.py:657
-#: ../yumcommands.py:933
+#: ../cli.py:591
+#: ../cli.py:666
+#: ../yumcommands.py:988
 msgid "Package(s) to install"
 msgstr "Paket(e) zum Installieren"
 
-#: ../cli.py:583
-#: ../cli.py:658
-#: ../yumcommands.py:151
-#: ../yumcommands.py:934
+#: ../cli.py:592
+#: ../cli.py:667
+#: ../yumcommands.py:159
+#: ../yumcommands.py:989
 msgid "Nothing to do"
 msgstr "Nichts zu tun"
 
-#: ../cli.py:616
+#: ../cli.py:625
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d Pakete zur Aktualisierung markiert"
 
-#: ../cli.py:619
+#: ../cli.py:628
 msgid "No Packages marked for Update"
 msgstr "Keine Pakete für die Aktualisierung markiert"
 
-#: ../cli.py:633
+#: ../cli.py:642
 #, python-format
 msgid "%d packages marked for removal"
 msgstr "%d Pakete für die Entfernung markiert"
 
-#: ../cli.py:636
+#: ../cli.py:645
 msgid "No Packages marked for removal"
 msgstr "Keine Pakete für die Entfernung markiert"
 
-#: ../cli.py:648
+#: ../cli.py:657
 msgid "No Packages Provided"
 msgstr "Keine Pakete bereitgestellt"
 
-#: ../cli.py:689
+#: ../cli.py:712
 msgid "Matching packages for package list to user args"
 msgstr "Übereinstimmende Pakete für Paket-Liste nach Benutzer-Argument"
 
-#: ../cli.py:731
+#: ../cli.py:761
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "Warnung: Keine Übereinstimmung gefunden für: %s"
 
-#: ../cli.py:734
+#: ../cli.py:764
 msgid "No Matches found"
 msgstr "Keine Übereinstimmungen gefunden"
 
 # dies geht sicher auch noch verständlicher. Fabian
-#: ../cli.py:773
+#: ../cli.py:803
 #, python-format
 msgid ""
 "Warning: 3.0.x versions of yum would erronously match against filenames.\n"
 " You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
 msgstr ""
-"Warnung: 3.0.x Versionen von yum stimmen irrtümlicherweisen gegen Dateinamen überein.\n"
+"Warnung: 3.0.x Versionen von yum stimmen irrtümlicherweise gegen Dateinamen überein.\n"
 " Sie können \"%s*/%s%s\" und/oder \"%s*bin/%s%s\" benutzen, um dieses Verhalten zu bekommen"
 
-#: ../cli.py:789
+#: ../cli.py:819
 #, python-format
 msgid "No Package Found for %s"
 msgstr "Kein Paket gefunden für %s"
 
 # Räume auf, säubere...weiss jemand eine Übersetzung, welche nicht an den Staubsauger erinnert. Fabian
-#: ../cli.py:801
+#: ../cli.py:831
 msgid "Cleaning up Everything"
 msgstr "Räume alles auf"
 
-#: ../cli.py:815
+#: ../cli.py:845
 msgid "Cleaning up Headers"
 msgstr "Räume Header auf"
 
-#: ../cli.py:818
+#: ../cli.py:848
 msgid "Cleaning up Packages"
 msgstr "Räume Pakete auf"
 
-#: ../cli.py:821
+#: ../cli.py:851
 msgid "Cleaning up xml metadata"
 msgstr "Räume XML-Metadaten auf"
 
-#: ../cli.py:824
+#: ../cli.py:854
 msgid "Cleaning up database cache"
 msgstr "Räume Datenbank-Speicher auf"
 
-#: ../cli.py:827
+#: ../cli.py:857
 msgid "Cleaning up expire-cache metadata"
 msgstr "Räume Metadaten für abgelaufene Caches auf"
 
-#: ../cli.py:830
+#: ../cli.py:860
 msgid "Cleaning up plugins"
 msgstr "Räume Plugins auf"
 
-#: ../cli.py:855
+#: ../cli.py:885
 msgid "Installed Groups:"
 msgstr "Installierte Gruppen:"
 
-#: ../cli.py:862
+#: ../cli.py:892
 msgid "Available Groups:"
 msgstr "Verfügbare Gruppen:"
 
-#: ../cli.py:868
+#: ../cli.py:898
 msgid "Done"
 msgstr "Fertig"
 
-#: ../cli.py:879
-#: ../cli.py:897
-#: ../cli.py:903
-#: ../yum/__init__.py:2368
+#: ../cli.py:909
+#: ../cli.py:927
+#: ../cli.py:933
+#: ../yum/__init__.py:2387
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Warnung: Gruppe %s existiert nicht."
 
-#: ../cli.py:907
+#: ../cli.py:937
 msgid "No packages in any requested group available to install or update"
 msgstr "Keine Pakete in irgendeiner Gruppe verfügbar zum Installieren oder Aktualisieren"
 
-#: ../cli.py:909
+#: ../cli.py:939
 #, python-format
 msgid "%d Package(s) to Install"
 msgstr "%d Paket(e) zum Installieren"
 
-#: ../cli.py:919
-#: ../yum/__init__.py:2380
+#: ../cli.py:949
+#: ../yum/__init__.py:2399
 #, python-format
 msgid "No group named %s exists"
 msgstr "Es existiert keine Gruppe mit dem Namen %s"
 
-#: ../cli.py:925
+#: ../cli.py:955
 msgid "No packages to remove from groups"
 msgstr "Keine Pakete zum Entfernen aus dem Gruppen gefunden"
 
-#: ../cli.py:927
+#: ../cli.py:957
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d Paket(e) zum Entfernen"
 
-#: ../cli.py:969
+#: ../cli.py:999
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "Paket %s ist bereits installiert, überspringe"
 
-#: ../cli.py:980
+#: ../cli.py:1010
 #, python-format
 msgid "Discarding non-comparable pkg %s.%s"
 msgstr "Verwerfe nicht vergleichbare Pakete %s.%s"
 
 #. we've not got any installed that match n or n+a
-#: ../cli.py:1006
+#: ../cli.py:1036
 #, python-format
 msgid "No other %s installed, adding to list for potential install"
 msgstr "Kein anderes %s installiert, füge es zur Liste für eine potentielle Installation hinzu"
 
-#: ../cli.py:1025
+#: ../cli.py:1055
 #, python-format
 msgid "Command line error: %s"
 msgstr "Kommandozeilen-Fehler: %s"
 
-#: ../cli.py:1038
+#: ../cli.py:1068
 #, python-format
 msgid ""
 "\n"
@@ -403,244 +400,252 @@ msgstr ""
 "\n"
 "%s: %s Option benötigt ein Argument"
 
-#: ../cli.py:1174
+#: ../cli.py:1118
+msgid "--color takes one of: auto, always, never"
+msgstr "--color kann einen der folgenden Werte haben: auto, always, never"
+
+#: ../cli.py:1220
 msgid "show this help message and exit"
 msgstr "Hilfeinformation anzeigen und beenden"
 
-#: ../cli.py:1178
+#: ../cli.py:1224
 msgid "be tolerant of errors"
 msgstr "fehlertolerant sein"
 
-#: ../cli.py:1180
+#: ../cli.py:1226
 msgid "run entirely from cache, don't update cache"
 msgstr "laufe komplett aus dem Zwischenspeicher, aktualisiere Zwischenspeicher nicht"
 
-#: ../cli.py:1182
+#: ../cli.py:1228
 msgid "config file location"
 msgstr "Ort der Konfigurationsdatei"
 
-#: ../cli.py:1184
+#: ../cli.py:1230
 msgid "maximum command wait time"
 msgstr "maximale Befehlswartezeit"
 
-#: ../cli.py:1186
+#: ../cli.py:1232
 msgid "debugging output level"
 msgstr "Debugging-Ausgabe-Stufe"
 
-#: ../cli.py:1190
+#: ../cli.py:1236
 msgid "show duplicates, in repos, in list/search commands"
 msgstr "Zeige Duplikate, in Repos, in Listen/Suchen-Befehlen"
 
-#: ../cli.py:1192
+#: ../cli.py:1238
 msgid "error output level"
 msgstr "Fehler-Ausgabe-Stufe"
 
-#: ../cli.py:1195
+#: ../cli.py:1241
 msgid "quiet operation"
 msgstr "Stiller Betrieb"
 
-#: ../cli.py:1197
+#: ../cli.py:1243
 msgid "verbose operation"
 msgstr "Wortreicher Betrieb"
 
-#: ../cli.py:1199
+#: ../cli.py:1245
 msgid "answer yes for all questions"
 msgstr "Beantworte alle Fragen mit 'ja'"
 
-#: ../cli.py:1201
+#: ../cli.py:1247
 msgid "show Yum version and exit"
 msgstr "Yum-Version anzeigen und Programm beenden"
 
-#: ../cli.py:1202
+#: ../cli.py:1248
 msgid "set install root"
 msgstr "Wurzel-Installationsverzeichnis setzen"
 
-#: ../cli.py:1206
+#: ../cli.py:1252
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "aktiviere eines oder mehrere Repositories (Wildcards erlaubt)"
 
-#: ../cli.py:1210
+#: ../cli.py:1256
 msgid "disable one or more repositories (wildcards allowed)"
 msgstr "deaktiviere eines oder mehrere Repositories (Wildcards erlaubt)"
 
-#: ../cli.py:1213
+#: ../cli.py:1259
 msgid "exclude package(s) by name or glob"
 msgstr "schliesse Paket(e) nach Namen oder global aus"
 
-#: ../cli.py:1215
+#: ../cli.py:1261
 msgid "disable exclude from main, for a repo or for everything"
 msgstr "deaktiviere Ausschluss von 'main', einem Repository oder allem"
 
-#: ../cli.py:1218
+#: ../cli.py:1264
 msgid "enable obsoletes processing during updates"
 msgstr "aktiviere veraltetes Verarbeiten während Aktualisierung"
 
-#: ../cli.py:1220
+#: ../cli.py:1266
 msgid "disable Yum plugins"
 msgstr "deaktiviere Yum-Plugins"
 
-#: ../cli.py:1222
+#: ../cli.py:1268
 msgid "disable gpg signature checking"
 msgstr "deaktiviere GPG-Signatur-Prüfung"
 
-#: ../cli.py:1224
+#: ../cli.py:1270
 msgid "disable plugins by name"
 msgstr "deaktiviere Plugins nach Namen"
 
-#: ../cli.py:1227
+#: ../cli.py:1273
 msgid "enable plugins by name"
 msgstr "aktiviere Plugins nach Namen"
 
-#: ../cli.py:1230
+#: ../cli.py:1276
 msgid "skip packages with depsolving problems"
 msgstr "überspringe Pakete mit Abhängigkeitsauflösungsproblemen"
 
-#: ../output.py:248
+#: ../cli.py:1278
+msgid "control whether color is used"
+msgstr "kontrolliert, ob Farbe benutzt wird"
+
+#: ../output.py:298
 msgid "Jan"
 msgstr "Jan"
 
-#: ../output.py:248
+#: ../output.py:298
 msgid "Feb"
 msgstr "Feb"
 
-#: ../output.py:248
+#: ../output.py:298
 msgid "Mar"
 msgstr "Mär"
 
-#: ../output.py:248
+#: ../output.py:298
 msgid "Apr"
 msgstr "Apr"
 
-#: ../output.py:248
+#: ../output.py:298
 msgid "May"
 msgstr "Mai"
 
-#: ../output.py:248
+#: ../output.py:298
 msgid "Jun"
 msgstr "Jun"
 
-#: ../output.py:249
+#: ../output.py:299
 msgid "Jul"
 msgstr "Jul"
 
-#: ../output.py:249
+#: ../output.py:299
 msgid "Aug"
 msgstr "Aug"
 
-#: ../output.py:249
+#: ../output.py:299
 msgid "Sep"
 msgstr "Sep"
 
-#: ../output.py:249
+#: ../output.py:299
 msgid "Oct"
 msgstr "Okt"
 
-#: ../output.py:249
+#: ../output.py:299
 msgid "Nov"
 msgstr "Nov"
 
-#: ../output.py:249
+#: ../output.py:299
 msgid "Dec"
 msgstr "Dez"
 
-#: ../output.py:259
+#: ../output.py:309
 msgid "Trying other mirror."
 msgstr "Versuche anderen Spiegel-Server."
 
-#: ../output.py:439
+#: ../output.py:525
 #, python-format
 msgid "Name       : %s%s%s"
 msgstr "Name       : %s%s%s"
 
-#: ../output.py:440
+#: ../output.py:526
 #, python-format
 msgid "Arch       : %s"
 msgstr "Architektur : %s"
 
-#: ../output.py:442
+#: ../output.py:528
 #, python-format
 msgid "Epoch      : %s"
 msgstr "Epoch      : %s"
 
-#: ../output.py:443
+#: ../output.py:529
 #, python-format
 msgid "Version    : %s"
 msgstr "Version    : %s"
 
-#: ../output.py:444
+#: ../output.py:530
 #, python-format
 msgid "Release    : %s"
 msgstr "Ausgabe    : %s"
 
-#: ../output.py:445
+#: ../output.py:531
 #, python-format
 msgid "Size       : %s"
 msgstr "Grösse     : %s"
 
-#: ../output.py:446
+#: ../output.py:532
 #, python-format
 msgid "Repo       : %s"
 msgstr "Repo       : %s"
 
-#: ../output.py:448
+#: ../output.py:534
 #, python-format
 msgid "Committer  : %s"
 msgstr "Übermittler  : %s"
 
-#: ../output.py:449
+#: ../output.py:535
 #, python-format
 msgid "Committime : %s"
 msgstr "Übermittlungszeit  : %s"
 
-#: ../output.py:450
+#: ../output.py:536
 #, python-format
 msgid "Buildtime  : %s"
 msgstr "Build-Zeit  : %s"
 
-#: ../output.py:452
+#: ../output.py:538
 #, python-format
 msgid "Installtime: %s"
 msgstr "Installationszeit: %s"
 
-#: ../output.py:453
+#: ../output.py:539
 msgid "Summary    : "
 msgstr "Zusammenfassung    : "
 
-#: ../output.py:455
+#: ../output.py:541
 #, python-format
 msgid "URL        : %s"
 msgstr "URL        : %s"
 
-#: ../output.py:456
+#: ../output.py:542
 #, python-format
 msgid "License    : %s"
 msgstr "Lizenz     : %s"
 
-#: ../output.py:457
+#: ../output.py:543
 msgid "Description: "
 msgstr "Beschreibung:"
 
-#: ../output.py:514
+#: ../output.py:607
 msgid "y"
 msgstr "j"
 
-#: ../output.py:514
+#: ../output.py:607
 msgid "yes"
 msgstr "ja"
 
-#: ../output.py:515
+#: ../output.py:608
 msgid "n"
 msgstr "n"
 
-#: ../output.py:515
+#: ../output.py:608
 msgid "no"
 msgstr "nein"
 
-#: ../output.py:519
+#: ../output.py:612
 msgid "Is this ok [y/N]: "
 msgstr "Ist dies in Ordnung? [j/N] :"
 
-#: ../output.py:601
+#: ../output.py:700
 #, python-format
 msgid ""
 "\n"
@@ -649,124 +654,129 @@ msgstr ""
 "\n"
 "Gruppe: %s"
 
-#: ../output.py:608
+#: ../output.py:707
 #, python-format
 msgid " Description: %s"
 msgstr " Beschreibung: %s"
 
-#: ../output.py:610
+#: ../output.py:709
 msgid " Mandatory Packages:"
 msgstr " Obligatorische Pakete:"
 
-#: ../output.py:611
+#: ../output.py:710
 msgid " Default Packages:"
 msgstr " Standard-Pakete:"
 
-#: ../output.py:612
+#: ../output.py:711
 msgid " Optional Packages:"
 msgstr " Optionale Pakete:"
 
-#: ../output.py:613
+#: ../output.py:712
 msgid " Conditional Packages:"
 msgstr " Zwangsbedingte Pakete:"
 
-#: ../output.py:633
+#: ../output.py:732
 #, python-format
 msgid "package: %s"
 msgstr "Paket: %s"
 
-#: ../output.py:635
+#: ../output.py:734
 msgid "  No dependencies for this package"
 msgstr "  Keine Abhängigkeiten für dieses Paket"
 
-#: ../output.py:640
+#: ../output.py:739
 #, python-format
 msgid "  dependency: %s"
 msgstr "  Abhängigkeit: %s"
 
-#: ../output.py:642
+#: ../output.py:741
 msgid "   Unsatisfied dependency"
 msgstr "   Nicht erfüllte Abhängigkeit"
 
-#: ../output.py:714
+#: ../output.py:813
+#, python-format
+msgid "Repo        : %s"
+msgstr "Repo        : %s"
+
+#: ../output.py:814
 msgid "Matched from:"
 msgstr "Übereinstimmung von:"
 
-#: ../output.py:722
+#: ../output.py:822
 msgid "Description : "
 msgstr "Beschreibung : "
 
-#: ../output.py:725
+#: ../output.py:825
 #, python-format
 msgid "URL         : %s"
 msgstr "URL        : %s"
 
-#: ../output.py:728
+#: ../output.py:828
 #, python-format
 msgid "License     : %s"
 msgstr "Lizenz     : %s"
 
-#: ../output.py:731
+#: ../output.py:831
 #, python-format
 msgid "Filename    : %s"
 msgstr "Dateiname     : %s"
 
-#: ../output.py:735
+#: ../output.py:835
 msgid "Other       : "
 msgstr "Andere     : "
 
-#: ../output.py:767
+#: ../output.py:868
 msgid "There was an error calculating total download size"
 msgstr "Fehler beim Berechnen der Gesamtgrösse der Downloads"
 
-#: ../output.py:772
+#: ../output.py:873
 #, python-format
 msgid "Total size: %s"
 msgstr "Gesamtgrösse: %s"
 
-#: ../output.py:775
+#: ../output.py:876
 #, python-format
 msgid "Total download size: %s"
 msgstr "Gesamte Downloadgrösse: %s"
 
-#: ../output.py:810
+#: ../output.py:911
 msgid "Installing for dependencies"
 msgstr "Installiert für Abhängigkeiten"
 
-#: ../output.py:811
+#: ../output.py:912
 msgid "Updating for dependencies"
 msgstr "Aktualisiert für Abhängigkeiten"
 
-#: ../output.py:812
+#: ../output.py:913
 msgid "Removing for dependencies"
 msgstr "Entfernt für Abhängigkeiten"
 
-#: ../output.py:819
-#: ../output.py:915
+#: ../output.py:920
+#: ../output.py:1016
 msgid "Skipped (dependency problems)"
 msgstr "Übersprungen (Abhängigkeitsprobleme)"
 
-#: ../output.py:840
+#: ../output.py:941
 msgid "Package"
 msgstr "Paket"
 
-#: ../output.py:840
+#: ../output.py:941
 msgid "Arch"
 msgstr "Arch"
 
-#: ../output.py:841
+#: ../output.py:942
 msgid "Version"
 msgstr "Version"
 
-#: ../output.py:841
+#: ../output.py:942
 msgid "Repository"
 msgstr "Repository"
 
-#: ../output.py:842
+#: ../output.py:943
 msgid "Size"
 msgstr "Grösse"
 
-#: ../output.py:853
+#: ../output.py:954
 #, python-format
 msgid ""
 "     replacing  %s.%s %s\n"
@@ -775,7 +785,7 @@ msgstr ""
 "     ersetze  %s.%s %s\n"
 "\n"
 
-#: ../output.py:861
+#: ../output.py:962
 #, python-format
 msgid ""
 "\n"
@@ -790,99 +800,103 @@ msgstr ""
 "%s\n"
 "Installieren      %5.5s Paket(e)         \n"
 "Aktualisieren     %5.5s Paket(e)         \n"
-"Enfernen          %5.5s Paket(e)         \n"
+"Entfernen          %5.5s Paket(e)         \n"
 
-#: ../output.py:909
+#: ../output.py:1010
 msgid "Removed"
 msgstr "Entfernt"
 
-#: ../output.py:910
+#: ../output.py:1011
 msgid "Dependency Removed"
 msgstr "Abhängigkeiten entfernt"
 
-#: ../output.py:912
+#: ../output.py:1013
 msgid "Dependency Installed"
 msgstr "Abhängigkeit installiert"
 
-#: ../output.py:914
+#: ../output.py:1015
 msgid "Dependency Updated"
 msgstr "Abhängigkeit aktualisiert"
 
-#: ../output.py:916
+#: ../output.py:1017
 msgid "Replaced"
 msgstr "Ersetzt       "
 
-#: ../output.py:989
+#: ../output.py:1018
+msgid "Failed"
+msgstr "Fehlgeschlagen"
+
+#: ../output.py:1091
 #, python-format
 msgid ""
 "\n"
 " Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds to exit.\n"
 msgstr ""
 "\n"
-" Aktueller Download abgebrochen, %s unterbrechen Sie (ctrl-c) erneut %s innerhalb %s%s%s Sekunden zum Beenden.\n"
+" Aktueller Download abgebrochen, %s unterbrechen Sie (Ctrl-c) erneut %s innerhalb %s%s%s Sekunden zum Beenden.\n"
 
-#: ../output.py:999
+#: ../output.py:1101
 msgid "user interrupt"
 msgstr "Benutzer-Unterbrechung"
 
-#: ../output.py:1015
+#: ../output.py:1117
 msgid "Total"
 msgstr "Total"
 
-#: ../output.py:1029
+#: ../output.py:1131
 msgid "installed"
 msgstr "installiert"
 
-#: ../output.py:1030
+#: ../output.py:1132
 msgid "updated"
 msgstr "aktualisiert"
 
-#: ../output.py:1031
+#: ../output.py:1133
 msgid "obsoleted"
 msgstr "veraltet"
 
-#: ../output.py:1032
+#: ../output.py:1134
 msgid "erased"
 msgstr "gelöscht"
 
 # Dies ist das Sorgenkind. So weit ich weiss, werden die Verben von oben bezogen. Eventuell könnte auch eine radikale Änderung eine Lösung sein. Fabian
-#: ../output.py:1036
+#: ../output.py:1138
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> Paket %s.%s %s:%s-%s markiert, um %s zu werden"
 
-#: ../output.py:1043
+#: ../output.py:1145
 msgid "--> Running transaction check"
 msgstr "--> Führe Transaktionsprüfung aus"
 
-#: ../output.py:1048
+#: ../output.py:1150
 msgid "--> Restarting Dependency Resolution with new changes."
 msgstr "--> Starte Abhängigkeitsauflösung mit den neuen Änderungen neu."
 
-#: ../output.py:1053
+#: ../output.py:1155
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Abhängigkeitsauflösung beendet"
 
-#: ../output.py:1058
+#: ../output.py:1160
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> Verarbeite Abhängigkeiten: %s für Paket: %s"
 
-#: ../output.py:1063
+#: ../output.py:1165
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Nicht aufgelöste Abhängigkeit: %s"
 
-#: ../output.py:1069
+#: ../output.py:1171
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> Verarbeite Konflikt: %s kollidiert mit %s"
 
-#: ../output.py:1072
+#: ../output.py:1174
 msgid "--> Populating transaction set with selected packages. Please wait."
 msgstr "--> Fülle Verarbeitungsset mit ausgewählten Paketen. Bitte warten."
 
-#: ../output.py:1076
+#: ../output.py:1178
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
 msgstr "---> Lade Header für %s herunter, um ins Verarbeitungsset zu packen."
@@ -962,270 +976,273 @@ msgstr "Datei %s, angegeben als Argument für Shell, existiert nicht."
 msgid "Error: more than one file given as argument to shell."
 msgstr "Fehler: mehr als eine Datei als Argument an die Shell übergeben."
 
-#: ../yumcommands.py:161
+#: ../yumcommands.py:169
 msgid "PACKAGE..."
 msgstr "PAKET..."
 
-#: ../yumcommands.py:164
+#: ../yumcommands.py:172
 msgid "Install a package or packages on your system"
 msgstr "Installiere ein Paket oder Pakete auf Ihrem System"
 
-#: ../yumcommands.py:173
+#: ../yumcommands.py:180
 msgid "Setting up Install Process"
 msgstr "Einrichten des Installationsprozess"
 
-#: ../yumcommands.py:184
+#: ../yumcommands.py:191
 msgid "[PACKAGE...]"
 msgstr "[PAKET...]"
 
-#: ../yumcommands.py:187
+#: ../yumcommands.py:194
 msgid "Update a package or packages on your system"
 msgstr "Aktualisiere ein Paket oder Pakete auf Ihrem System"
 
-#: ../yumcommands.py:195
+#: ../yumcommands.py:201
 msgid "Setting up Update Process"
 msgstr "Einrichten des Aktualisierungsprozess"
 
-#: ../yumcommands.py:237
+#: ../yumcommands.py:243
 msgid "Display details about a package or group of packages"
 msgstr "Zeige Details über ein Paket oder einer Gruppe von Pakete an"
 
-#. Output the packages:
-#: ../yumcommands.py:262
+#: ../yumcommands.py:284
 msgid "Installed Packages"
 msgstr "Installierte Pakete"
 
-#: ../yumcommands.py:264
+#: ../yumcommands.py:291
 msgid "Available Packages"
 msgstr "Verfügbare Pakete"
 
-#: ../yumcommands.py:266
+#: ../yumcommands.py:295
 msgid "Extra Packages"
 msgstr "Extra-Pakete"
 
-#: ../yumcommands.py:268
+#: ../yumcommands.py:297
 msgid "Updated Packages"
 msgstr "Aktualisierte Pakete"
 
-#: ../yumcommands.py:275
-#: ../yumcommands.py:282
-#: ../yumcommands.py:551
+#: ../yumcommands.py:304
+#: ../yumcommands.py:311
+#: ../yumcommands.py:578
 msgid "Obsoleting Packages"
 msgstr "Veraltete Pakete"
 
-#: ../yumcommands.py:284
+#: ../yumcommands.py:313
 msgid "Recently Added Packages"
 msgstr "Kürzlich hinzugefügte Pakete"
 
-#: ../yumcommands.py:291
+#: ../yumcommands.py:320
 msgid "No matching Packages to list"
 msgstr "Keine übereinstimmenden Pakete zum Auflisten"
 
-#: ../yumcommands.py:305
+#: ../yumcommands.py:334
 msgid "List a package or groups of packages"
 msgstr "Liste von Pakete oder Gruppen von Paketen"
 
-#: ../yumcommands.py:317
+#: ../yumcommands.py:346
 msgid "Remove a package or packages from your system"
 msgstr "Entferne ein Paket oder Pakete auf Ihrem System"
 
-#: ../yumcommands.py:325
+#: ../yumcommands.py:353
 msgid "Setting up Remove Process"
 msgstr "Einrichten des Entfernungsprozess"
 
-#: ../yumcommands.py:340
+#: ../yumcommands.py:367
 msgid "Setting up Group Process"
 msgstr "Einrichten des Gruppenprozess"
 
-#: ../yumcommands.py:346
+#: ../yumcommands.py:373
 msgid "No Groups on which to run command"
 msgstr "Keine Gruppe, auf welcher der Befehl ausgeführt werden kann"
 
-#: ../yumcommands.py:359
+#: ../yumcommands.py:386
 msgid "List available package groups"
 msgstr "Verfügbare Gruppen anzeigen"
 
-#: ../yumcommands.py:376
+#: ../yumcommands.py:403
 msgid "Install the packages in a group on your system"
 msgstr "Installiere die Pakete in einer Gruppe auf Ihrem System"
 
-#: ../yumcommands.py:398
+#: ../yumcommands.py:425
 msgid "Remove the packages in a group from your system"
 msgstr "Entferne die Pakete in einer Gruppe von Ihrem System"
 
-#: ../yumcommands.py:425
+#: ../yumcommands.py:452
 msgid "Display details about a package group"
 msgstr "Zeigt Details über eine Paket-Gruppe an"
 
-#: ../yumcommands.py:449
+#: ../yumcommands.py:476
 msgid "Generate the metadata cache"
 msgstr "Generiere den Metadaten-Zwischenspeicher"
 
-#: ../yumcommands.py:455
+#: ../yumcommands.py:482
 msgid "Making cache files for all metadata files."
 msgstr "Erstelle Zwischenspeicherungsdatei für alle Metadaten-Dateien."
 
-#: ../yumcommands.py:456
+#: ../yumcommands.py:483
 msgid "This may take a while depending on the speed of this computer"
 msgstr "Dies kann eine Weile dauert, abhängig von der Geschwindigkeit dieses Computers"
 
-#: ../yumcommands.py:477
+#: ../yumcommands.py:504
 msgid "Metadata Cache Created"
 msgstr "Metadaten-Zwischenspeicher erstellt"
 
-#: ../yumcommands.py:491
+#: ../yumcommands.py:518
 msgid "Remove cached data"
 msgstr "Entferne gespeicherte Daten"
 
-#: ../yumcommands.py:512
+#: ../yumcommands.py:539
 msgid "Find what package provides the given value"
 msgstr "Suche ein Paket, welches den gegebenen Wert bereitstellen"
 
-#: ../yumcommands.py:532
+#: ../yumcommands.py:559
 msgid "Check for available package updates"
 msgstr "Überprüfe auf verfügbare Paket-Aktualisierungen"
 
-#: ../yumcommands.py:571
+#: ../yumcommands.py:598
 msgid "Search package details for the given string"
 msgstr "Suche nach Paket-Details für die gegebene Zeichenkette"
 
-#: ../yumcommands.py:577
+#: ../yumcommands.py:604
 msgid "Searching Packages: "
 msgstr "Suche Pakete:"
 
-#: ../yumcommands.py:594
+#: ../yumcommands.py:621
 msgid "Update packages taking obsoletes into account"
 msgstr "Aktualisiere Pakete, berücksichtige veraltete"
 
-#: ../yumcommands.py:603
+#: ../yumcommands.py:629
 msgid "Setting up Upgrade Process"
 msgstr "Einrichten des Upgradeprozess"
 
-#: ../yumcommands.py:617
+#: ../yumcommands.py:643
 msgid "Install a local RPM"
 msgstr "Installiere ein lokales RPM"
 
-#: ../yumcommands.py:626
+#: ../yumcommands.py:651
 msgid "Setting up Local Package Process"
 msgstr "Einrichten der lokalen Paketverarbeitung"
 
-#: ../yumcommands.py:645
+#: ../yumcommands.py:670
 msgid "Determine which package provides the given dependency"
 msgstr "Bestimme, welche Pakete die gegebenen Abhängigkeiten bereitstellen"
 
-#: ../yumcommands.py:648
+#: ../yumcommands.py:673
 msgid "Searching Packages for Dependency:"
 msgstr "Suche Pakete für Abhängigkeit:"
 
-#: ../yumcommands.py:662
+#: ../yumcommands.py:687
 msgid "Run an interactive yum shell"
 msgstr "Führe eine interaktive Yum-Shell aus"
 
-#: ../yumcommands.py:668
+#: ../yumcommands.py:693
 msgid "Setting up Yum Shell"
 msgstr "Einrichten der Yum-Shell"
 
-#: ../yumcommands.py:686
+#: ../yumcommands.py:711
 msgid "List a package's dependencies"
 msgstr "Liste von Paket-Abhängigkeiten"
 
-#: ../yumcommands.py:692
+#: ../yumcommands.py:717
 msgid "Finding dependencies: "
 msgstr "Suche Abhängigkeiten:"
 
-#: ../yumcommands.py:708
+#: ../yumcommands.py:733
 msgid "Display the configured software repositories"
 msgstr "Zeige die konfigurierten Software-Repositories an"
 
-#: ../yumcommands.py:756
-#: ../yumcommands.py:769
-#: ../yumcommands.py:770
+#: ../yumcommands.py:781
+#: ../yumcommands.py:782
 msgid "enabled"
 msgstr "aktiviert"
 
-#: ../yumcommands.py:765
-#: ../yumcommands.py:768
+#: ../yumcommands.py:790
+#: ../yumcommands.py:791
 msgid "disabled"
 msgstr "deaktiviert"
 
-#: ../yumcommands.py:777
-msgid "repo id"
-msgstr "Repo-ID"
-
-#: ../yumcommands.py:778
-msgid "repo name"
-msgstr "Repo-Name:"
-
-#: ../yumcommands.py:780
-msgid "status"
-msgstr "Status"
-
-#: ../yumcommands.py:790
+#: ../yumcommands.py:805
 msgid "Repo-id     : "
 msgstr "Repo-ID       : "
 
-#: ../yumcommands.py:791
+#: ../yumcommands.py:806
 msgid "Repo-name   : "
 msgstr "Repo-Name   : "
 
-#: ../yumcommands.py:792
+#: ../yumcommands.py:807
 msgid "Repo-status : "
 msgstr "Repo-Status : "
 
-#: ../yumcommands.py:794
+#: ../yumcommands.py:809
 msgid "Repo-revision: "
 msgstr "Repo-Revision: "
 
-#: ../yumcommands.py:798
+#: ../yumcommands.py:813
 msgid "Repo-tags   : "
 msgstr "Repo-Tags   : "
 
-#: ../yumcommands.py:804
+#: ../yumcommands.py:819
 msgid "Repo-distro-tags: "
 msgstr "Repo-Distro-Tags: "
 
-#: ../yumcommands.py:809
+#: ../yumcommands.py:824
 msgid "Repo-updated: "
 msgstr "Repo aktualisiert:"
 
-#: ../yumcommands.py:811
+#: ../yumcommands.py:826
 msgid "Repo-pkgs   : "
 msgstr "Repo-PKGS   : "
 
-#: ../yumcommands.py:812
+#: ../yumcommands.py:827
 msgid "Repo-size   : "
 msgstr "Repo-Grösse   : "
 
-#: ../yumcommands.py:819
+#: ../yumcommands.py:834
 msgid "Repo-baseurl: "
 msgstr "Repo BaseURL:"
 
-#: ../yumcommands.py:823
+#: ../yumcommands.py:838
 msgid "Repo-metalink: "
 msgstr "Repo-Metalink: "
 
-#: ../yumcommands.py:826
+#: ../yumcommands.py:841
 msgid "Repo-mirrors: "
 msgstr "Repo-Spiegel: "
 
-#: ../yumcommands.py:830
+#: ../yumcommands.py:845
 msgid "Repo-exclude: "
 msgstr "Repo ausgeschlossen:"
 
-#: ../yumcommands.py:834
+#: ../yumcommands.py:849
 msgid "Repo-include: "
 msgstr "Repo eingeschlossen:"
 
-#: ../yumcommands.py:856
+#. Work out the first (id) and last (enabled/disalbed/count),
+#. then chop the middle (name)...
+#: ../yumcommands.py:859
+#: ../yumcommands.py:885
+msgid "repo id"
+msgstr "Repo-ID"
+
+#: ../yumcommands.py:873
+#: ../yumcommands.py:874
+#: ../yumcommands.py:888
+msgid "status"
+msgstr "Status"
+
+#: ../yumcommands.py:886
+msgid "repo name"
+msgstr "Repo-Name:"
+
+#: ../yumcommands.py:912
 msgid "Display a helpful usage message"
 msgstr "Zeigt eine kurze Verwendungsinformation"
 
-#: ../yumcommands.py:890
+#: ../yumcommands.py:946
 #, python-format
 msgid "No help available for %s"
 msgstr "Keine Hilfe für %s vorhanden"
 
-#: ../yumcommands.py:895
+#: ../yumcommands.py:951
 msgid ""
 "\n"
 "\n"
@@ -1235,7 +1252,7 @@ msgstr ""
 "\n"
 "Aliase: "
 
-#: ../yumcommands.py:897
+#: ../yumcommands.py:953
 msgid ""
 "\n"
 "\n"
@@ -1245,15 +1262,15 @@ msgstr ""
 "\n"
 "Alias: "
 
-#: ../yumcommands.py:926
+#: ../yumcommands.py:981
 msgid "Setting up Reinstall Process"
 msgstr "Einrichten des Neuinstallationsprozess"
 
-#: ../yumcommands.py:940
+#: ../yumcommands.py:995
 msgid "reinstall a package"
 msgstr "Installiere Paket neu"
 
-#: ../yummain.py:41
+#: ../yummain.py:42
 msgid ""
 "\n"
 "\n"
@@ -1263,7 +1280,7 @@ msgstr ""
 "\n"
 "Beende nach Abbruch durch den Benutzer"
 
-#: ../yummain.py:47
+#: ../yummain.py:48
 msgid ""
 "\n"
 "\n"
@@ -1273,28 +1290,76 @@ msgstr ""
 "\n"
 "Beende wegen defekter Pipe"
 
-#: ../yummain.py:98
-msgid "Another app is currently holding the yum lock; waiting for it to exit..."
-msgstr "Eine andere Anwendung hält momentan den Yum-Lock. Warte, dass sie beendet wird..."
+#: ../yummain.py:124
+msgid "Running"
+msgstr "Läuft"
 
 #: ../yummain.py:125
-#: ../yummain.py:164
+msgid "Sleeping"
+msgstr "Schläft"
+
+#: ../yummain.py:126
+msgid "Uninteruptable"
+msgstr "Nicht unterbrechbar"
+
+#: ../yummain.py:127
+msgid "Zombie"
+msgstr "Zombie"
+
+#: ../yummain.py:128
+msgid "Traced/Stopped"
+msgstr "Verfolgt/Gestoppt"
+
+#: ../yummain.py:129
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#: ../yummain.py:133
+msgid "  The other application is: PackageKit"
+msgstr "  Die andere Anwendung ist: PackageKit"
+
+#: ../yummain.py:135
+#, python-format
+msgid "  The other application is: %s"
+msgstr "  Die andere Anwendung ist: %s"
+
+#: ../yummain.py:138
+#, python-format
+msgid "    Memory : %5s RSS (%5sB VSZ)"
+msgstr "    Speicher : %5s RSS (%5sB VSZ)"
+
+#: ../yummain.py:142
+#, python-format
+msgid "    Started: %s - %s ago"
+msgstr "  Gestartet: %s - vor %s"
+
+#: ../yummain.py:144
+#, python-format
+msgid "    State  : %s, pid: %d"
+msgstr "    Status  : %s, pid: %d"
+
+#: ../yummain.py:169
+msgid "Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr "Eine andere Anwendung blockiert momentan yum. Warte, dass sie beendet wird..."
+
+#: ../yummain.py:197
+#: ../yummain.py:236
 #, python-format
 msgid "Error: %s"
 msgstr "Fehler: %s"
 
-#: ../yummain.py:135
-#: ../yummain.py:171
+#: ../yummain.py:207
+#: ../yummain.py:243
 #, python-format
 msgid "Unknown Error(s): Exit Code: %d:"
 msgstr "Unbekannte(r) Fehlercode: Exit Code: %d:"
 
 #. Depsolve stage
-#: ../yummain.py:142
+#: ../yummain.py:214
 msgid "Resolving Dependencies"
 msgstr "Löse Abhängigkeiten auf"
 
-#: ../yummain.py:177
+#: ../yummain.py:249
 msgid ""
 "\n"
 "Dependencies Resolved"
@@ -1302,12 +1367,12 @@ msgstr ""
 "\n"
 "Abhängigkeiten aufgelöst"
 
-#: ../yummain.py:191
+#: ../yummain.py:263
 msgid "Complete!"
 msgstr "Komplett!"
 
 # Ist eine ziemlich unschöne Übersetzung...Vorschläge? Fabian
-#: ../yummain.py:238
+#: ../yummain.py:310
 msgid ""
 "\n"
 "\n"
@@ -1351,7 +1416,7 @@ msgid "Member: %s"
 msgstr "Mitglied: %s"
 
 #: ../yum/depsolve.py:247
-#: ../yum/depsolve.py:734
+#: ../yum/depsolve.py:738
 #, python-format
 msgid "%s converted to install"
 msgstr "%s konvertiert zum Installieren"
@@ -1400,118 +1465,118 @@ msgstr "Modus für pkg-Bereitstellung %s: %s"
 msgid "TSINFO: %s package requiring %s marked as erase"
 msgstr "TSINFO: %s Paket benötigt %s markiert als gelöscht"
 
-#: ../yum/depsolve.py:393
+#: ../yum/depsolve.py:394
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
 msgstr "TSINFO: Veraltetes %s mit %s zum Auflösen der Abhängigkeit."
 
-#: ../yum/depsolve.py:396
+#: ../yum/depsolve.py:397
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
 msgstr "TSINFO: Aktualisiere %s zum Auflösen der Abhängigkeit."
 
-#: ../yum/depsolve.py:404
+#: ../yum/depsolve.py:405
 #, python-format
 msgid "Cannot find an update path for dep for: %s"
 msgstr "Kann keine Aktualisierungspfad für Abhängigkeit finden für: %s"
 
-#: ../yum/depsolve.py:414
+#: ../yum/depsolve.py:415
 #, python-format
 msgid "Unresolvable requirement %s for %s"
 msgstr "Unlösbare Anforderung %s für %s"
 
-#: ../yum/depsolve.py:437
+#: ../yum/depsolve.py:438
 #, python-format
 msgid "Quick matched %s to require for %s"
 msgstr "Übereinstimmung von %s, welche gebraucht wird für %s"
 
 #. is it already installed?
-#: ../yum/depsolve.py:479
+#: ../yum/depsolve.py:480
 #, python-format
 msgid "%s is in providing packages but it is already installed, removing."
 msgstr "%s ist in einem bereitgestellten Paket, aber bereits installiert, entferne."
 
-#: ../yum/depsolve.py:494
+#: ../yum/depsolve.py:495
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
 msgstr "Potentielles aufgelöste Paket %s hat eine neuere Instanz in ts."
 
-#: ../yum/depsolve.py:505
+#: ../yum/depsolve.py:506
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
 msgstr "Potentielles aufgelöste Paket %s hat eine neuere Instanz installiert."
 
-#: ../yum/depsolve.py:513
-#: ../yum/depsolve.py:562
+#: ../yum/depsolve.py:514
+#: ../yum/depsolve.py:563
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "Fehlende Abhängigkeit: %s wird benötigt von Paket %s"
 
-#: ../yum/depsolve.py:526
+#: ../yum/depsolve.py:527
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s bereits in ts, überspringe dies"
 
-#: ../yum/depsolve.py:572
+#: ../yum/depsolve.py:573
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: Markiere %s als Aktualisierung für %s"
 
-#: ../yum/depsolve.py:580
+#: ../yum/depsolve.py:581
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: Markiert %s als Installation für %s"
 
-#: ../yum/depsolve.py:672
-#: ../yum/depsolve.py:752
+#: ../yum/depsolve.py:674
+#: ../yum/depsolve.py:756
 msgid "Success - empty transaction"
 msgstr "Erfolg - Leere Transaktion"
 
-#: ../yum/depsolve.py:711
-#: ../yum/depsolve.py:724
+#: ../yum/depsolve.py:713
+#: ../yum/depsolve.py:728
 msgid "Restarting Loop"
 msgstr "Starte Schleife neu"
 
-#: ../yum/depsolve.py:740
+#: ../yum/depsolve.py:744
 msgid "Dependency Process ending"
 msgstr "Abhängigkeitsverarbeitung beendet"
 
-#: ../yum/depsolve.py:746
+#: ../yum/depsolve.py:750
 #, python-format
 msgid "%s from %s has depsolving problems"
 msgstr "%s von %s hat Abhängigkeitsauflöse-Probleme"
 
-#: ../yum/depsolve.py:753
+#: ../yum/depsolve.py:757
 msgid "Success - deps resolved"
 msgstr "Erfolg - Abhängigkeiten aufgelöst"
 
-#: ../yum/depsolve.py:767
+#: ../yum/depsolve.py:771
 #, python-format
 msgid "Checking deps for %s"
 msgstr "Prüfe Abhängigkeiten für %s"
 
-#: ../yum/depsolve.py:850
+#: ../yum/depsolve.py:854
 #, python-format
 msgid "looking for %s as a requirement of %s"
 msgstr "schauen nach %s als eine Anforderung von %s"
 
-#: ../yum/depsolve.py:990
+#: ../yum/depsolve.py:996
 #, python-format
 msgid "Running compare_providers() for %s"
 msgstr "Führe compare_providers() aus für %s"
 
-#: ../yum/depsolve.py:1018
 #: ../yum/depsolve.py:1024
+#: ../yum/depsolve.py:1030
 #, python-format
 msgid "better arch in po %s"
 msgstr "bessere Architektur in po %s"
 
-#: ../yum/depsolve.py:1063
+#: ../yum/depsolve.py:1084
 #, python-format
 msgid "%s obsoletes %s"
 msgstr " %s veraltete %s"
 
-#: ../yum/depsolve.py:1079
+#: ../yum/depsolve.py:1100
 #, python-format
 msgid ""
 "archdist compared %s to %s on %s\n"
@@ -1520,115 +1585,115 @@ msgstr ""
 "Archdist verglichen %s zu %s auf %s\n"
 "  Gewinner: %s"
 
-#: ../yum/depsolve.py:1086
+#: ../yum/depsolve.py:1107
 #, python-format
 msgid "common sourcerpm %s and %s"
 msgstr "Gemeinsames Quellen-RPM %s und %s"
 
-#: ../yum/depsolve.py:1092
+#: ../yum/depsolve.py:1113
 #, python-format
 msgid "common prefix of %s between %s and %s"
 msgstr "Gemeinsamer Prefix von %s zwischen %s und %s"
 
 # Hat jemand eine Idee für eine bessere Übersetzung? Fabian
-#: ../yum/depsolve.py:1100
+#: ../yum/depsolve.py:1121
 #, python-format
 msgid "Best Order: %s"
 msgstr "Beste Bestellung: %s"
 
-#: ../yum/__init__.py:135
+#: ../yum/__init__.py:154
 msgid "doConfigSetup() will go away in a future version of Yum.\n"
 msgstr "doConfigSetup() wird in zukünftigen Version von Yum verschwinden.\n"
 
-#: ../yum/__init__.py:315
+#: ../yum/__init__.py:350
 #, python-format
 msgid "Repository %r is missing name in configuration, using id"
 msgstr "Bei Repository %r fehlt der Name in der Konfiguration, benutze id"
 
-#: ../yum/__init__.py:353
+#: ../yum/__init__.py:388
 msgid "plugins already initialised"
 msgstr "Plugins bereits initialisiert"
 
-#: ../yum/__init__.py:360
+#: ../yum/__init__.py:395
 msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
 msgstr "doRpmDBSetup() wird in zukünftigen Version von Yum verschwinden.\n"
 
-#: ../yum/__init__.py:370
+#: ../yum/__init__.py:405
 msgid "Reading Local RPMDB"
 msgstr "Lese lokale RPMDB"
 
-#: ../yum/__init__.py:388
+#: ../yum/__init__.py:423
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() wird in zukünftigen Version von Yum verschwinden.\n"
 
-#: ../yum/__init__.py:408
+#: ../yum/__init__.py:443
 msgid "doSackSetup() will go away in a future version of Yum.\n"
 msgstr "doSackSetup() wird in zukünftigen Version von Yum verschwinden \n"
 
-#: ../yum/__init__.py:425
+#: ../yum/__init__.py:460
 msgid "Setting up Package Sacks"
 msgstr "Einrichten des Paket-Behälters"
 
-#: ../yum/__init__.py:468
+#: ../yum/__init__.py:503
 #, python-format
 msgid "repo object for repo %s lacks a _resetSack method\n"
 msgstr "Repository-Objekt für Repository %s fehlt a _resetSack method\n"
 
-#: ../yum/__init__.py:469
+#: ../yum/__init__.py:504
 msgid "therefore this repo cannot be reset.\n"
 msgstr "deshalb dieses Repository kann nicht zurückgesetzt werden.\n"
 
-#: ../yum/__init__.py:474
+#: ../yum/__init__.py:509
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
 msgstr "doUpdateSetup() wird in zukünftigen Version von Yum verschwinden.\n"
 
-#: ../yum/__init__.py:486
+#: ../yum/__init__.py:521
 msgid "Building updates object"
 msgstr "Baue Aktualisierungsobjekt"
 
-#: ../yum/__init__.py:517
+#: ../yum/__init__.py:552
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
 msgstr "doGroupSetup() wird in zukünftigen Version von Yum verschwinden .\n"
 
-#: ../yum/__init__.py:541
+#: ../yum/__init__.py:576
 msgid "Getting group metadata"
 msgstr "Beziehe Gruppen-Metadaten"
 
-#: ../yum/__init__.py:567
+#: ../yum/__init__.py:602
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "Füge Gruppen-Datei von Repository hinzu: %s"
 
-#: ../yum/__init__.py:576
+#: ../yum/__init__.py:611
 #, python-format
 msgid "Failed to add groups file for repository: %s - %s"
 msgstr "Hinzufügen von Gruppen-Datei für Repository fehlgeschlagen: %s - %s"
 
-#: ../yum/__init__.py:582
+#: ../yum/__init__.py:617
 msgid "No Groups Available in any repository"
 msgstr "Keine Gruppen in irgendeinem Repository verfügbar"
 
-#: ../yum/__init__.py:632
+#: ../yum/__init__.py:667
 msgid "Importing additional filelist information"
 msgstr "Importiere zusätzlichen Dateilisten-Informationen"
 
-#: ../yum/__init__.py:641
+#: ../yum/__init__.py:676
 msgid "There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them."
 msgstr "Es gibt noch nicht abgeschlossene Transaktionen. Sie sollten in Betracht ziehen, zuerst  yum-complete-transaction auszuführen, um sie abzuschliessen."
 
 # Ob da die Übersetzung den Punkt trifft...Fabian
-#: ../yum/__init__.py:707
+#: ../yum/__init__.py:742
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Überspringe defekte Runde %i"
 
 # Ob da die Übersetzung den Punkt trifft...Fabian
-#: ../yum/__init__.py:756
+#: ../yum/__init__.py:794
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr "Überspringen der defekte brachte %i Runden"
 
-#: ../yum/__init__.py:757
+#: ../yum/__init__.py:795
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1636,91 +1701,91 @@ msgstr ""
 "\n"
 "Pakete übersprungen wegen Abhängigkeitsproblemen:"
 
-#: ../yum/__init__.py:761
+#: ../yum/__init__.py:799
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s von %s"
 
-#: ../yum/__init__.py:905
+#: ../yum/__init__.py:943
 msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
 msgstr "Warnung: Es sind Scriptlet- oder andere nicht-fatale Fehler bei der Verarbeitung aufgetreten."
 
-#: ../yum/__init__.py:921
+#: ../yum/__init__.py:958
 #, python-format
 msgid "Failed to remove transaction file %s"
 msgstr "Entfernen der Verarbeitungsdatei %s fehlgeschlagen"
 
 # verstehe ich nicht ganz, was gemeint ist. Fabian
-#: ../yum/__init__.py:962
+#: ../yum/__init__.py:999
 #, python-format
 msgid "excluding for cost: %s from %s"
-msgstr "Ausschluss für Aufwand: %s from %s"
+msgstr "Ausschluss für Aufwand: %s von %s"
 
 # Dies gefällt auch nicht allen. Fabian
-#: ../yum/__init__.py:993
+#: ../yum/__init__.py:1030
 msgid "Excluding Packages in global exclude list"
 msgstr "Schliesse Pakete, welche in der globalen Ausschlussliste sind, aus"
 
-#: ../yum/__init__.py:995
+#: ../yum/__init__.py:1032
 #, python-format
 msgid "Excluding Packages from %s"
 msgstr "Schliesse Pakete aus von %s"
 
-#: ../yum/__init__.py:1022
+#: ../yum/__init__.py:1061
 #, python-format
 msgid "Reducing %s to included packages only"
 msgstr "Reduziere %s nur zum Einbeziehen der Pakete"
 
-#: ../yum/__init__.py:1028
+#: ../yum/__init__.py:1067
 #, python-format
 msgid "Keeping included package %s"
 msgstr "Behalte integriertes Paket %s"
 
-#: ../yum/__init__.py:1034
+#: ../yum/__init__.py:1073
 #, python-format
 msgid "Removing unmatched package %s"
 msgstr "Entferne nicht übereinstimmendes Paket %s"
 
-#: ../yum/__init__.py:1037
+#: ../yum/__init__.py:1076
 msgid "Finished"
 msgstr "Abgeschlossen"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:1067
+#: ../yum/__init__.py:1106
 #, python-format
 msgid "Unable to check if PID %s is active"
 msgstr "Unfähig zum Prüfen, ob PID %s ist aktiv"
 
 #. Another copy seems to be running.
-#: ../yum/__init__.py:1071
+#: ../yum/__init__.py:1110
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
 msgstr "Existierende Blockierung %s: eine andere Kopie läuft mit PID %s."
 
-#: ../yum/__init__.py:1142
+#: ../yum/__init__.py:1177
 msgid "Package does not match intended download"
 msgstr "Paket stimmt nicht mit dem vorgesehenen Herunterladen überein."
 
-#: ../yum/__init__.py:1157
+#: ../yum/__init__.py:1192
 msgid "Could not perform checksum"
 msgstr "Konnte Prüfsumme nicht bilden"
 
-#: ../yum/__init__.py:1160
+#: ../yum/__init__.py:1195
 msgid "Package does not match checksum"
 msgstr "Paket stimmt nicht mit der Prüfsumme überein"
 
-#: ../yum/__init__.py:1203
+#: ../yum/__init__.py:1238
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
 msgstr "Paket bei Checksumme-Prüfung durchgefallen, aber Zwischenspeicherung ist aktiviert für %s"
 
-#: ../yum/__init__.py:1206
-#: ../yum/__init__.py:1234
+#: ../yum/__init__.py:1241
+#: ../yum/__init__.py:1270
 #, python-format
 msgid "using local copy of %s"
 msgstr "benutze lokale Kopie von %s"
 
-#: ../yum/__init__.py:1248
+#: ../yum/__init__.py:1282
 #, python-format
 msgid ""
 "Insufficient space in download directory %s\n"
@@ -1731,330 +1796,331 @@ msgstr ""
 "    * frei   %s\n"
 "    * benötigt %s"
 
-#: ../yum/__init__.py:1295
+#: ../yum/__init__.py:1329
 msgid "Header is not complete."
 msgstr "Header ist nicht vollständig."
 
-#: ../yum/__init__.py:1335
+#: ../yum/__init__.py:1366
 #, python-format
 msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
 msgstr "Header ist nicht im lokalen Zwischenspeicher und Nur-Zwischenspeicher-Modus aktiviert. Kann %s nicht herunterladen"
 
-#: ../yum/__init__.py:1390
+#: ../yum/__init__.py:1421
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "Öffentlicher Schlüssel für %s ist nicht installiert"
 
-#: ../yum/__init__.py:1394
+#: ../yum/__init__.py:1425
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Problem beim Öffnen des Paketes %s"
 
-#: ../yum/__init__.py:1402
+#: ../yum/__init__.py:1433
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "Öffentlicher Schlüssel für %s ist nicht vertrauenswürdig"
 
-#: ../yum/__init__.py:1406
+#: ../yum/__init__.py:1437
 #, python-format
 msgid "Package %s is not signed"
 msgstr "Paket %s ist nicht unterschrieben"
 
-#: ../yum/__init__.py:1444
+#: ../yum/__init__.py:1475
 #, python-format
 msgid "Cannot remove %s"
 msgstr "Kann %s nicht entfernen"
 
-#: ../yum/__init__.py:1448
+#: ../yum/__init__.py:1479
 #, python-format
 msgid "%s removed"
 msgstr "%s entfernt"
 
-#: ../yum/__init__.py:1485
+#: ../yum/__init__.py:1515
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "Kann %s Datei nicht entfernt %s"
 
-#: ../yum/__init__.py:1489
+#: ../yum/__init__.py:1519
 #, python-format
 msgid "%s file %s removed"
 msgstr "%s Datei %s entfernt"
 
-#: ../yum/__init__.py:1491
+#: ../yum/__init__.py:1521
 #, python-format
 msgid "%d %s files removed"
 msgstr "%d %s Dateien entfernt"
 
-#: ../yum/__init__.py:1553
+#: ../yum/__init__.py:1590
 #, python-format
 msgid "More than one identical match in sack for %s"
 msgstr "Mehr als eine identische Übereinstimmung im Behälter für %s"
 
-#: ../yum/__init__.py:1559
+#: ../yum/__init__.py:1596
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "Keine Übereinstimmungen  %s.%s %s:%s-%s mit der Aktualisierung"
 
-#: ../yum/__init__.py:1767
+#: ../yum/__init__.py:1814
 msgid "searchPackages() will go away in a future version of Yum.                      Use searchGenerator() instead. \n"
 msgstr "searchPackages() wird in zukünftigen Version von Yum verschwinden.                      Benutze stattdessen searchGenerator(). \n"
 
-#: ../yum/__init__.py:1805
+#: ../yum/__init__.py:1852
 #, python-format
 msgid "Searching %d packages"
 msgstr "Suche %d Pakete"
 
-#: ../yum/__init__.py:1809
+#: ../yum/__init__.py:1856
 #, python-format
 msgid "searching package %s"
 msgstr "Suche Paket %s"
 
-#: ../yum/__init__.py:1821
+#: ../yum/__init__.py:1868
 msgid "searching in file entries"
 msgstr "Suche in Datei-Einträgen"
 
-#: ../yum/__init__.py:1828
+#: ../yum/__init__.py:1875
 msgid "searching in provides entries"
 msgstr "suche in bereitgestellten Einträgen"
 
-#: ../yum/__init__.py:1861
+#: ../yum/__init__.py:1908
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Stelle Übereinstimmung bereit: %s"
 
-#: ../yum/__init__.py:1910
+#: ../yum/__init__.py:1957
 msgid "No group data available for configured repositories"
 msgstr "Keine Gruppe für konfigurierte Repositories verfügbar"
 
-#: ../yum/__init__.py:1941
-#: ../yum/__init__.py:1960
-#: ../yum/__init__.py:1991
-#: ../yum/__init__.py:1997
-#: ../yum/__init__.py:2070
-#: ../yum/__init__.py:2074
+#: ../yum/__init__.py:1988
+#: ../yum/__init__.py:2007
+#: ../yum/__init__.py:2038
+#: ../yum/__init__.py:2044
+#: ../yum/__init__.py:2117
+#: ../yum/__init__.py:2121
 #, python-format
 msgid "No Group named %s exists"
 msgstr "Kein Gruppe mit dem Namen %s vorhanden"
 
-#: ../yum/__init__.py:1972
-#: ../yum/__init__.py:2087
+#: ../yum/__init__.py:2019
+#: ../yum/__init__.py:2134
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "Paket %s war nicht markiert in Gruppe %s"
 
-#: ../yum/__init__.py:2019
+#: ../yum/__init__.py:2066
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Füge Paket %s aus Gruppe %s hinzu"
 
-#: ../yum/__init__.py:2023
+#: ../yum/__init__.py:2070
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "Kein Paket mit Namen %s verfügbar zum Installieren"
 
 # Paket-Behälter wird sicher nicht allen gefallen. Fabian
-#: ../yum/__init__.py:2112
+#: ../yum/__init__.py:2159
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "Paket-Tupel %s kann nicht gefunden werden im Paket-Behälter"
 
-#: ../yum/__init__.py:2127
+#: ../yum/__init__.py:2174
 msgid "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
 msgstr "getInstalledPackageObject() wird verschwinden, benutze self.rpmdb.searchPkgTuple().\n"
 
-#: ../yum/__init__.py:2179
-#: ../yum/__init__.py:2222
+#: ../yum/__init__.py:2226
+#: ../yum/__init__.py:2269
 msgid "Invalid versioned dependency string, try quoting it."
 msgstr "Ungültig versionierte Abhängigkeitszeichenkette, versuche es zu notieren."
 
-#: ../yum/__init__.py:2181
-#: ../yum/__init__.py:2224
+#: ../yum/__init__.py:2228
+#: ../yum/__init__.py:2271
 msgid "Invalid version flag"
 msgstr "Ungültiges Versionsflag"
 
-#: ../yum/__init__.py:2196
-#: ../yum/__init__.py:2200
+#: ../yum/__init__.py:2243
+#: ../yum/__init__.py:2247
 #, python-format
 msgid "No Package found for %s"
 msgstr "Kein Paket gefunden für %s"
 
-#: ../yum/__init__.py:2399
+#: ../yum/__init__.py:2426
 msgid "Package Object was not a package object instance"
 msgstr "Paketobjekt war keine Paketobjektinstanz"
 
-#: ../yum/__init__.py:2403
+#: ../yum/__init__.py:2430
 msgid "Nothing specified to install"
 msgstr "Nichts angegeben zum Installieren"
 
-#. only one in there
-#: ../yum/__init__.py:2421
+#: ../yum/__init__.py:2446
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
 msgstr "Überprüfe nach virtueller Bereitstellung oder Datei-Bereitstellung für %s"
 
-#: ../yum/__init__.py:2427
-#: ../yum/__init__.py:2820
+#: ../yum/__init__.py:2452
+#: ../yum/__init__.py:2705
+#: ../yum/__init__.py:2875
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "Kein Übereinstimmung für Argument: %s"
 
-#: ../yum/__init__.py:2493
+#: ../yum/__init__.py:2523
 #, python-format
 msgid "Package %s installed and not available"
 msgstr "Paket %s installiert und nicht verfügbar"
 
-#: ../yum/__init__.py:2496
+#: ../yum/__init__.py:2526
 msgid "No package(s) available to install"
 msgstr "Kein(e) Paket(e) zum Installieren verfügbar."
 
-#: ../yum/__init__.py:2508
+#: ../yum/__init__.py:2538
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "Paket: %s - bereits im Transaktionsset"
 
-#: ../yum/__init__.py:2521
+#: ../yum/__init__.py:2553
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr "Paket %s von %s ist veraltet, versuche stattdessen %s zu installieren."
+
+#: ../yum/__init__.py:2561
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "Paket %s ist bereits installiert und ist in der neusten Version vorhanden."
 
-#: ../yum/__init__.py:2528
+#: ../yum/__init__.py:2568
 #, python-format
 msgid "Package matching %s already installed. Checking for update."
 msgstr "Paket, das auf %s passt, ist bereits installiert. Überprüfe auf Aktualisierung."
 
-#: ../yum/__init__.py:2538
-#, python-format
-msgid "Package %s is obsoleted by %s, trying to install %s instead"
-msgstr "Paket %svon %s ist veraltet, versuche stattdessen %s zu installieren."
-
 #. update everything (the easy case)
-#: ../yum/__init__.py:2619
+#: ../yum/__init__.py:2649
 msgid "Updating Everything"
 msgstr "Aktualisiere alles"
 
-#: ../yum/__init__.py:2631
-#: ../yum/__init__.py:2736
-#: ../yum/__init__.py:2747
-#: ../yum/__init__.py:2769
+#: ../yum/__init__.py:2667
+#: ../yum/__init__.py:2777
+#: ../yum/__init__.py:2798
+#: ../yum/__init__.py:2824
 #, python-format
 msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Aktualisiere Paket nicht, da es bereits veraltet ist: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2727
+#: ../yum/__init__.py:2702
+#: ../yum/__init__.py:2872
+#, python-format
+msgid "%s"
+msgstr "%s"
+
+#: ../yum/__init__.py:2768
 #, python-format
 msgid "Package is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Paket ist bereits veraltet: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2750
-#: ../yum/__init__.py:2772
+#: ../yum/__init__.py:2801
+#: ../yum/__init__.py:2827
 #, python-format
 msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
 msgstr "Aktualisiere Paket nicht, da es bereits veraltet ist:  %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2817
-#, python-format
-msgid "%s"
-msgstr "%s"
-
-#: ../yum/__init__.py:2833
+#: ../yum/__init__.py:2888
 msgid "No package matched to remove"
 msgstr "Kein Paket stimmt zum Entfernen überein"
 
-#: ../yum/__init__.py:2867
+#: ../yum/__init__.py:2922
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "Kann Datei nicht öffnen: %s. Überspringen."
 
-#: ../yum/__init__.py:2870
+#: ../yum/__init__.py:2925
 #, python-format
 msgid "Examining %s: %s"
 msgstr "Untersuche %s: %s"
 
-#: ../yum/__init__.py:2878
+#: ../yum/__init__.py:2933
 #, python-format
 msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
 msgstr "Kann Paket %s nicht zur Transaktion hinzufügen. Keine kompatible Architektur: %s"
 
-#: ../yum/__init__.py:2886
+#: ../yum/__init__.py:2941
 #, python-format
 msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
 msgstr "Paket %s nicht installiert, kann es nicht aktualisieren. Führen Sie stattdessen yum install aus, um es zu installieren."
 
-#: ../yum/__init__.py:2919
+#: ../yum/__init__.py:2974
 #, python-format
 msgid "Excluding %s"
 msgstr "Exklusive %s"
 
-#: ../yum/__init__.py:2924
+#: ../yum/__init__.py:2979
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Markiere %s zum Installieren"
 
-#: ../yum/__init__.py:2930
+#: ../yum/__init__.py:2985
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "Markiere %s als eine Aktualisierung für %s"
 
-#: ../yum/__init__.py:2937
+#: ../yum/__init__.py:2992
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: aktualisiert installierte Pakete nicht."
 
-#: ../yum/__init__.py:2955
+#: ../yum/__init__.py:3010
 msgid "Problem in reinstall: no package matched to remove"
 msgstr "Probleme beim Neuinstallieren: kein Paket stimmt zum Entfernen überein"
 
-#: ../yum/__init__.py:2966
+#: ../yum/__init__.py:3021
 #, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "Paket %s darf mehrfach installiert sein, überspringe"
 
-#: ../yum/__init__.py:2973
+#: ../yum/__init__.py:3028
 msgid "Problem in reinstall: no package matched to install"
 msgstr "Probleme beim Neuinstallieren: kein Paket stimmt zum Installieren überein"
 
-#: ../yum/__init__.py:3008
+#: ../yum/__init__.py:3063
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "GPG-Schlüssel abrufen von %s"
 
-#: ../yum/__init__.py:3028
+#: ../yum/__init__.py:3083
 msgid "GPG key retrieval failed: "
 msgstr "GPG-Schlüssel-Abruf fehlgeschlagen:"
 
-#: ../yum/__init__.py:3039
+#: ../yum/__init__.py:3094
 #, python-format
 msgid "GPG key parsing failed: key does not have value %s"
 msgstr "GPG-Schlüssel-Analyse fehlgeschlagen: Schlüssel hat keinen Wert %s"
 
-#: ../yum/__init__.py:3071
+#: ../yum/__init__.py:3126
 #, python-format
 msgid "GPG key at %s (0x%s) is already installed"
 msgstr "GPG-Schlüssel unter %s (0x%s) ist bereits installiert"
 
 #. Try installing/updating GPG key
-#: ../yum/__init__.py:3076
-#: ../yum/__init__.py:3138
+#: ../yum/__init__.py:3131
+#: ../yum/__init__.py:3193
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "Importiere GPG-Schlüssel 0x%s \"%s\" von %s"
 
-#: ../yum/__init__.py:3093
+#: ../yum/__init__.py:3148
 msgid "Not installing key"
 msgstr "Nicht installierter Schlüssel"
 
-#: ../yum/__init__.py:3099
+#: ../yum/__init__.py:3154
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "Schlüssel-Import fehlgeschlagen (Code %d)"
 
-#: ../yum/__init__.py:3100
-#: ../yum/__init__.py:3159
+#: ../yum/__init__.py:3155
+#: ../yum/__init__.py:3214
 msgid "Key imported successfully"
 msgstr "Schlüssel erfolgreich importiert"
 
-#: ../yum/__init__.py:3105
-#: ../yum/__init__.py:3164
+#: ../yum/__init__.py:3160
+#: ../yum/__init__.py:3219
 #, python-format
 msgid ""
 "The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n"
@@ -2063,33 +2129,38 @@ msgstr ""
 "Die aufgelisteten GPG-Schlüssel für das \"%s\"-Repository sind bereits installiert, aber sie sind nicht korrekt für dieses Paket.\n"
 "Stellen Sie sicher, dass die korrekten Schlüssel-URLs für dieses Repository konfiguriert sind."
 
-#: ../yum/__init__.py:3114
+#: ../yum/__init__.py:3169
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "Importieren der Schlüssel hat nicht geholfen, falsche Schlüssel?"
 
-#: ../yum/__init__.py:3133
+#: ../yum/__init__.py:3188
 #, python-format
 msgid "GPG key at %s (0x%s) is already imported"
 msgstr "GPG-Schlüssel unter %s (0x%s) ist bereits importiert"
 
-#: ../yum/__init__.py:3153
+#: ../yum/__init__.py:3208
 #, python-format
 msgid "Not installing key for repo %s"
 msgstr "Nicht installierter Schlüssel für Repo %s"
 
-#: ../yum/__init__.py:3158
+#: ../yum/__init__.py:3213
 msgid "Key import failed"
 msgstr "Schlüssel-Import fehlgeschlagen"
 
-#: ../yum/__init__.py:3249
+#: ../yum/__init__.py:3304
 msgid "Unable to find a suitable mirror."
-msgstr "Es kann kein geeigneter Mirror gefunden werden."
+msgstr "Es kann kein geeigneten Spiegelserver gefunden werden."
 
-#: ../yum/__init__.py:3251
+#: ../yum/__init__.py:3306
 msgid "Errors were encountered while downloading packages."
 msgstr "Beim Herunterladen der Pakete sind Fehler aufgetreten."
 
-#: ../yum/__init__.py:3315
+#: ../yum/__init__.py:3347
+#, python-format
+msgid "Please report this error at %s"
+msgstr "Bitte melden Sie diesen Fehler unter %s"
+
+#: ../yum/__init__.py:3371
 msgid "Test Transaction Errors: "
 msgstr "Test-Transaktionsfehler"
 
@@ -2187,6 +2258,8 @@ msgstr "Defekter Header %s"
 msgid "Error opening rpm %s - error %s"
 msgstr "Fehler bei Öffnen des RPM %s - Fehler %s"
 
+#~ msgid "Parsing package install arguments"
+#~ msgstr "Analysiere Installationsargumente des Pakets"
 #~ msgid "Could not find update match for %s"
 #~ msgstr "Kann keine Aktualisierungsübereinstimmung finden für %s"
 #~ msgid ""
diff --git a/po/pt_BR.po b/po/pt_BR.po
index fe1a944..2fab3ab 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,13 +1,14 @@
 # Brazilian Portuguese translation of Yum
 # This file is distributed under the same license as the Yum package.
-# Igor Pires Soares <igor@projetofedora.org>, 2007,2008.
+# Igor Pires Soares <igor@projetofedora.org>, 2007,2008,2009.
 #
+
 msgid ""
 msgstr ""
 "Project-Id-Version: Yum\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-16 01:25+0000\n"
-"PO-Revision-Date: 2008-12-16 00:40-0300\n"
+"POT-Creation-Date: 2009-01-29 13:23+0000\n"
+"PO-Revision-Date: 2009-01-29 15:53-0300\n"
 "Last-Translator: Igor Pires Soares <igor@projetofedora.org>\n"
 "Language-Team: Brazilian Portuguese <fedora-trans-pt_br@redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -18,7 +19,7 @@ msgstr ""
 "X-Poedit-Country: BRAZIL\n"
 
 #: ../callback.py:48
-#: ../output.py:911
+#: ../output.py:909
 #: ../yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "Atualizando"
@@ -31,7 +32,7 @@ msgstr "Apagando"
 #: ../callback.py:50
 #: ../callback.py:51
 #: ../callback.py:53
-#: ../output.py:910
+#: ../output.py:908
 #: ../yum/rpmtrans.py:73
 #: ../yum/rpmtrans.py:74
 #: ../yum/rpmtrans.py:76
@@ -45,7 +46,7 @@ msgid "Obsoleted"
 msgstr "Obsoletos"
 
 #: ../callback.py:54
-#: ../output.py:1016
+#: ../output.py:1014
 msgid "Updated"
 msgstr "Atualizados"
 
@@ -56,7 +57,7 @@ msgstr "Removidos"
 #: ../callback.py:56
 #: ../callback.py:57
 #: ../callback.py:59
-#: ../output.py:1014
+#: ../output.py:1012
 msgid "Installed"
 msgstr "Instalados"
 
@@ -79,7 +80,7 @@ msgid "Erased: %s"
 msgstr "Removidos: %s"
 
 #: ../callback.py:217
-#: ../output.py:912
+#: ../output.py:910
 msgid "Removing"
 msgstr "Removendo"
 
@@ -101,50 +102,50 @@ msgstr "Configurando repositórios"
 msgid "Reading repository metadata in from local files"
 msgstr "Lendo metadados do repositório a partir dos arquivos locais"
 
-#: ../cli.py:187
+#: ../cli.py:191
 #: ../utils.py:79
 #, python-format
 msgid "Config Error: %s"
 msgstr "Erro de configuração: %s"
 
-#: ../cli.py:190
-#: ../cli.py:1174
+#: ../cli.py:194
+#: ../cli.py:1178
 #: ../utils.py:82
 #, python-format
 msgid "Options Error: %s"
 msgstr "Erro nas opções: %s"
 
-#: ../cli.py:218
+#: ../cli.py:222
 #, python-format
 msgid "  Installed: %s-%s at %s"
 msgstr "  Instalados: %s-%s em %s"
 
-#: ../cli.py:220
+#: ../cli.py:224
 #, python-format
 msgid "  Built    : %s at %s"
 msgstr "  Construídos    : %s em %s"
 
-#: ../cli.py:222
+#: ../cli.py:226
 #, python-format
 msgid "  Committed: %s at %s"
 msgstr "  Enviados: %s em %s"
 
-#: ../cli.py:259
+#: ../cli.py:263
 msgid "You need to give some command"
 msgstr "Você precisa dar algum comando"
 
-#: ../cli.py:301
+#: ../cli.py:305
 msgid "Disk Requirements:\n"
 msgstr "Requisitos de disco:\n"
 
-#: ../cli.py:303
+#: ../cli.py:307
 #, python-format
 msgid "  At least %dMB needed on the %s filesystem.\n"
 msgstr "  Pelo menos %d MB são necessários no sistema de arquivos %s.\n"
 
 #. TODO: simplify the dependency errors?
 #. Fixup the summary
-#: ../cli.py:308
+#: ../cli.py:312
 msgid ""
 "Error Summary\n"
 "-------------\n"
@@ -152,66 +153,58 @@ msgstr ""
 "Sumário de erros\n"
 "-------------\n"
 
-#: ../cli.py:351
+#: ../cli.py:355
 msgid "Trying to run the transaction but nothing to do. Exiting."
 msgstr "Tentando executar a transação, mas não há nada a ser feito. Saindo."
 
-#: ../cli.py:381
+#: ../cli.py:391
 msgid "Exiting on user Command"
 msgstr "Saindo pelo comando do usuário"
 
-#: ../cli.py:385
+#: ../cli.py:395
 msgid "Downloading Packages:"
 msgstr "Baixando pacotes:"
 
-#: ../cli.py:390
+#: ../cli.py:400
 msgid "Error Downloading Packages:\n"
 msgstr "Erro ao baixar pacotes:\n"
 
-#: ../cli.py:402
-msgid "Entering rpm code"
-msgstr "Entrando no código rpm"
-
-#: ../cli.py:406
-#: ../yum/__init__.py:3330
+#: ../cli.py:414
+#: ../yum/__init__.py:3338
 msgid "Running rpm_check_debug"
 msgstr "Executando o rpm_check_debug"
 
-#: ../cli.py:409
-#: ../yum/__init__.py:3333
+#: ../cli.py:417
+#: ../yum/__init__.py:3341
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "Erro com o rpm_check_debug vs depsolve:"
 
-#: ../cli.py:413
+#: ../cli.py:421
 #, python-format
 msgid "Please report this error in %s"
 msgstr "Por favor, relate esse erro em %s"
 
-#: ../cli.py:419
+#: ../cli.py:427
 msgid "Running Transaction Test"
 msgstr "Executando teste de transação"
 
-#: ../cli.py:435
+#: ../cli.py:443
 msgid "Finished Transaction Test"
 msgstr "Teste de transação finalizado"
 
-#: ../cli.py:437
+#: ../cli.py:445
 msgid "Transaction Check Error:\n"
 msgstr "Erro na verificação da transação:\n"
 
-#: ../cli.py:444
+#: ../cli.py:452
 msgid "Transaction Test Succeeded"
 msgstr "Teste de transação completo"
 
-#: ../cli.py:465
+#: ../cli.py:473
 msgid "Running Transaction"
 msgstr "Executando a transação"
 
-#: ../cli.py:470
-msgid "Leaving rpm code"
-msgstr "Saindo do código rpm"
-
-#: ../cli.py:497
+#: ../cli.py:503
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
@@ -219,76 +212,72 @@ msgstr ""
 "Recusa de importação automática das chaves ao executar de forma não assistida.\n"
 "Use \"-y\" para sobrescrever."
 
-#: ../cli.py:516
-#: ../cli.py:550
+#: ../cli.py:522
+#: ../cli.py:556
 msgid "  * Maybe you meant: "
 msgstr "  * Talvez você queira dizer: "
 
-#: ../cli.py:533
-#: ../cli.py:541
+#: ../cli.py:539
+#: ../cli.py:547
 #, python-format
 msgid "Package(s) %s%s%s available, but not installed."
 msgstr "Pacotes %s%s%s disponíveis, mas já instalados."
 
-#: ../cli.py:547
-#: ../cli.py:582
+#: ../cli.py:553
+#: ../cli.py:586
 #, python-format
 msgid "No package %s%s%s available."
 msgstr "Nenhum pacote %s%s%s disponível."
 
-#: ../cli.py:572
-msgid "Parsing package install arguments"
-msgstr "Analisando argumentos da instalação de pacotes"
-
-#: ../cli.py:587
-#: ../cli.py:662
-#: ../yumcommands.py:984
+#: ../cli.py:591
+#: ../cli.py:666
+#: ../yumcommands.py:988
 msgid "Package(s) to install"
 msgstr "Pacotes a serem instalados"
 
-#: ../cli.py:588
-#: ../cli.py:663
-#: ../yumcommands.py:151
-#: ../yumcommands.py:985
+#: ../cli.py:592
+#: ../cli.py:667
+#: ../yumcommands.py:159
+#: ../yumcommands.py:989
 msgid "Nothing to do"
 msgstr "Nada a ser feito"
 
-#: ../cli.py:621
+#: ../cli.py:625
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d pacotes marcados para atualização"
 
-#: ../cli.py:624
+#: ../cli.py:628
 msgid "No Packages marked for Update"
 msgstr "Nenhum pacote marcado para atualização"
 
-#: ../cli.py:638
+#: ../cli.py:642
 #, python-format
 msgid "%d packages marked for removal"
 msgstr "%d pacotes marcados para remoção"
 
-#: ../cli.py:641
+#: ../cli.py:645
 msgid "No Packages marked for removal"
 msgstr "Nenhum pacote marcado para remoção"
 
-#: ../cli.py:653
+#: ../cli.py:657
 msgid "No Packages Provided"
 msgstr "Nenhum pacote fornecido"
 
-#: ../cli.py:708
+#: ../cli.py:712
 msgid "Matching packages for package list to user args"
 msgstr "Resultado dos pacotes para a lista de pacotes dos argumentos do usuário"
 
-#: ../cli.py:757
+#: ../cli.py:761
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "Aviso: nenhum resultado para: %s"
 
-#: ../cli.py:760
+#: ../cli.py:764
 msgid "No Matches found"
 msgstr "Nenhum pacote localizado"
 
-#: ../cli.py:799
+#: ../cli.py:803
 #, python-format
 msgid ""
 "Warning: 3.0.x versions of yum would erronously match against filenames.\n"
@@ -297,105 +286,105 @@ msgstr ""
 "Aviso: as versões 3.0.x do yum iriam corresponder erroneamente pelos nomes de arquivos\n"
 " Você pode usar \"%s*/%s%s\" e/ou \"%s*bin/%s%s\" para obter esse comportamento"
 
-#: ../cli.py:815
+#: ../cli.py:819
 #, python-format
 msgid "No Package Found for %s"
 msgstr "Nenhum pacote localizado para %s"
 
-#: ../cli.py:827
+#: ../cli.py:831
 msgid "Cleaning up Everything"
 msgstr "Limpando tudo"
 
-#: ../cli.py:841
+#: ../cli.py:845
 msgid "Cleaning up Headers"
 msgstr "Limpando cabeçalhos"
 
-#: ../cli.py:844
+#: ../cli.py:848
 msgid "Cleaning up Packages"
 msgstr "Limpando pacotes"
 
-#: ../cli.py:847
+#: ../cli.py:851
 msgid "Cleaning up xml metadata"
 msgstr "Limpando metadados em xml"
 
-#: ../cli.py:850
+#: ../cli.py:854
 msgid "Cleaning up database cache"
 msgstr "Limpando cache do banco de dados"
 
-#: ../cli.py:853
+#: ../cli.py:857
 msgid "Cleaning up expire-cache metadata"
 msgstr "Limpando metadados expirados do cache"
 
-#: ../cli.py:856
+#: ../cli.py:860
 msgid "Cleaning up plugins"
 msgstr "Limpando plugins"
 
-#: ../cli.py:881
+#: ../cli.py:885
 msgid "Installed Groups:"
 msgstr "Grupos instalados:"
 
-#: ../cli.py:888
+#: ../cli.py:892
 msgid "Available Groups:"
 msgstr "Grupos disponíveis:"
 
-#: ../cli.py:894
+#: ../cli.py:898
 msgid "Done"
 msgstr "Concluído"
 
-#: ../cli.py:905
-#: ../cli.py:923
-#: ../cli.py:929
-#: ../yum/__init__.py:2388
+#: ../cli.py:909
+#: ../cli.py:927
+#: ../cli.py:933
+#: ../yum/__init__.py:2386
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Aviso: O grupo %s não existe."
 
-#: ../cli.py:933
+#: ../cli.py:937
 msgid "No packages in any requested group available to install or update"
 msgstr "Nenhum pacote disponível para instalação ou atualização nos grupos requisitados"
 
-#: ../cli.py:935
+#: ../cli.py:939
 #, python-format
 msgid "%d Package(s) to Install"
 msgstr "%d pacote(s) a ser(em) instalado(s)"
 
-#: ../cli.py:945
-#: ../yum/__init__.py:2400
+#: ../cli.py:949
+#: ../yum/__init__.py:2398
 #, python-format
 msgid "No group named %s exists"
 msgstr "Nenhum grupo de nome %s existe"
 
-#: ../cli.py:951
+#: ../cli.py:955
 msgid "No packages to remove from groups"
 msgstr "Nenhum pacote a ser removido a partir dos grupos"
 
-#: ../cli.py:953
+#: ../cli.py:957
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d pacote(s) a ser(em) removido(s)"
 
-#: ../cli.py:995
+#: ../cli.py:999
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "O pacote %s já está instalado, ignorando"
 
-#: ../cli.py:1006
+#: ../cli.py:1010
 #, python-format
 msgid "Discarding non-comparable pkg %s.%s"
 msgstr "Descartando pacote não comparável %s.%s"
 
 #. we've not got any installed that match n or n+a
-#: ../cli.py:1032
+#: ../cli.py:1036
 #, python-format
 msgid "No other %s installed, adding to list for potential install"
 msgstr "Nenhum outro %s instalado, adicionado à lista para potencial instalação"
 
-#: ../cli.py:1051
+#: ../cli.py:1055
 #, python-format
 msgid "Command line error: %s"
 msgstr "Erro na linha de comando: %s"
 
-#: ../cli.py:1064
+#: ../cli.py:1068
 #, python-format
 msgid ""
 "\n"
@@ -406,252 +395,252 @@ msgstr ""
 "\n"
 "%s: a opção %s requer um argumento"
 
-#: ../cli.py:1114
+#: ../cli.py:1118
 msgid "--color takes one of: auto, always, never"
 msgstr "--color aceita uma destas opções: auto, always, never"
 
-#: ../cli.py:1216
+#: ../cli.py:1220
 msgid "show this help message and exit"
 msgstr "mostrar essa mensagem ajuda e sai"
 
-#: ../cli.py:1220
+#: ../cli.py:1224
 msgid "be tolerant of errors"
 msgstr "ser tolerante com os erros"
 
-#: ../cli.py:1222
+#: ../cli.py:1226
 msgid "run entirely from cache, don't update cache"
 msgstr "executar por completo a partir do cache, não atualiza o cache"
 
-#: ../cli.py:1224
+#: ../cli.py:1228
 msgid "config file location"
 msgstr "configurar localização do arquivo"
 
-#: ../cli.py:1226
+#: ../cli.py:1230
 msgid "maximum command wait time"
 msgstr "Tempo máximo de espera do comando"
 
-#: ../cli.py:1228
+#: ../cli.py:1232
 msgid "debugging output level"
 msgstr "nível de depuração na saída"
 
-#: ../cli.py:1232
+#: ../cli.py:1236
 msgid "show duplicates, in repos, in list/search commands"
 msgstr "mostrar duplicados em repos e em comandos de pesquisa/listagem"
 
-#: ../cli.py:1234
+#: ../cli.py:1238
 msgid "error output level"
 msgstr "nível de erro na saída"
 
-#: ../cli.py:1237
+#: ../cli.py:1241
 msgid "quiet operation"
 msgstr "operação discreta"
 
-#: ../cli.py:1239
+#: ../cli.py:1243
 msgid "verbose operation"
 msgstr "operação detalhada"
 
-#: ../cli.py:1241
+#: ../cli.py:1245
 msgid "answer yes for all questions"
 msgstr "responder sim para todas as perguntas"
 
-#: ../cli.py:1243
+#: ../cli.py:1247
 msgid "show Yum version and exit"
 msgstr "mostrar versão do Yum ao sair"
 
-#: ../cli.py:1244
+#: ../cli.py:1248
 msgid "set install root"
 msgstr "definir raiz de instalação"
 
-#: ../cli.py:1248
+#: ../cli.py:1252
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "habilitar um ou mais repositórios (curingas são permitidos)"
 
-#: ../cli.py:1252
+#: ../cli.py:1256
 msgid "disable one or more repositories (wildcards allowed)"
 msgstr "desabilitar um ou mais repositórios (curingas são permitidos)"
 
-#: ../cli.py:1255
+#: ../cli.py:1259
 msgid "exclude package(s) by name or glob"
 msgstr "excluir pacote(s) por nome ou glob"
 
-#: ../cli.py:1257
+#: ../cli.py:1261
 msgid "disable exclude from main, for a repo or for everything"
 msgstr "desabilitar a exclusão a partir do principal, para um repositório ou para tudo"
 
-#: ../cli.py:1260
+#: ../cli.py:1264
 msgid "enable obsoletes processing during updates"
 msgstr "Habilitar processo de obsolescência durante as atualizações"
 
-#: ../cli.py:1262
+#: ../cli.py:1266
 msgid "disable Yum plugins"
 msgstr "desabilitar plugins do Yum"
 
-#: ../cli.py:1264
+#: ../cli.py:1268
 msgid "disable gpg signature checking"
 msgstr "desabilitar verificação de assinaturas gpg"
 
-#: ../cli.py:1266
+#: ../cli.py:1270
 msgid "disable plugins by name"
 msgstr "desabilitar plugins pelo nome"
 
-#: ../cli.py:1269
+#: ../cli.py:1273
 msgid "enable plugins by name"
 msgstr "habilita plugins pelo nome"
 
-#: ../cli.py:1272
+#: ../cli.py:1276
 msgid "skip packages with depsolving problems"
 msgstr "ignorar pacotes com problemas de solução de dependências"
 
-#: ../cli.py:1274
+#: ../cli.py:1278
 msgid "control whether color is used"
 msgstr "controla o uso da cor"
 
-#: ../output.py:300
+#: ../output.py:298
 msgid "Jan"
 msgstr "Jan"
 
-#: ../output.py:300
+#: ../output.py:298
 msgid "Feb"
 msgstr "Fev"
 
-#: ../output.py:300
+#: ../output.py:298
 msgid "Mar"
 msgstr "Mar"
 
-#: ../output.py:300
+#: ../output.py:298
 msgid "Apr"
 msgstr "Abr"
 
-#: ../output.py:300
+#: ../output.py:298
 msgid "May"
 msgstr "Mai"
 
-#: ../output.py:300
+#: ../output.py:298
 msgid "Jun"
 msgstr "Jun"
 
-#: ../output.py:301
+#: ../output.py:299
 msgid "Jul"
 msgstr "Jul"
 
-#: ../output.py:301
+#: ../output.py:299
 msgid "Aug"
 msgstr "Ago"
 
-#: ../output.py:301
+#: ../output.py:299
 msgid "Sep"
 msgstr "Set"
 
-#: ../output.py:301
+#: ../output.py:299
 msgid "Oct"
 msgstr "Out"
 
-#: ../output.py:301
+#: ../output.py:299
 msgid "Nov"
 msgstr "Nov"
 
-#: ../output.py:301
+#: ../output.py:299
 msgid "Dec"
 msgstr "Dez"
 
-#: ../output.py:311
+#: ../output.py:309
 msgid "Trying other mirror."
 msgstr "Tentando outro espelho."
 
-#: ../output.py:527
+#: ../output.py:525
 #, python-format
 msgid "Name       : %s%s%s"
 msgstr "Nome       : %s%s%s"
 
-#: ../output.py:528
+#: ../output.py:526
 #, python-format
 msgid "Arch       : %s"
 msgstr "Arq.   : %s"
 
-#: ../output.py:530
+#: ../output.py:528
 #, python-format
 msgid "Epoch      : %s"
 msgstr "Período      : %s"
 
-#: ../output.py:531
+#: ../output.py:529
 #, python-format
 msgid "Version    : %s"
 msgstr "Versão    : %s"
 
-#: ../output.py:532
+#: ../output.py:530
 #, python-format
 msgid "Release    : %s"
 msgstr "Lançamento  : %s"
 
-#: ../output.py:533
+#: ../output.py:531
 #, python-format
 msgid "Size       : %s"
 msgstr "Tamanho   : %s"
 
-#: ../output.py:534
+#: ../output.py:532
 #, python-format
 msgid "Repo       : %s"
 msgstr "Repo       : %s"
 
-#: ../output.py:536
+#: ../output.py:534
 #, python-format
 msgid "Committer  : %s"
 msgstr "Enviado por  : %s"
 
-#: ../output.py:537
+#: ../output.py:535
 #, python-format
 msgid "Committime : %s"
 msgstr "Horário do envio : %s"
 
-#: ../output.py:538
+#: ../output.py:536
 #, python-format
 msgid "Buildtime  : %s"
 msgstr "Horário da construção  : %s"
 
-#: ../output.py:540
+#: ../output.py:538
 #, python-format
 msgid "Installtime: %s"
 msgstr "Horário da instalação: %s"
 
-#: ../output.py:541
+#: ../output.py:539
 msgid "Summary    : "
 msgstr "Sumário    : "
 
-#: ../output.py:543
+#: ../output.py:541
 #, python-format
 msgid "URL        : %s"
 msgstr "URL        : %s"
 
-#: ../output.py:544
+#: ../output.py:542
 #, python-format
 msgid "License    : %s"
 msgstr "Licença   : %s"
 
-#: ../output.py:545
+#: ../output.py:543
 msgid "Description: "
 msgstr "Descrição: "
 
-#: ../output.py:609
+#: ../output.py:607
 msgid "y"
 msgstr "s"
 
-#: ../output.py:609
+#: ../output.py:607
 msgid "yes"
 msgstr "sim"
 
-#: ../output.py:610
+#: ../output.py:608
 msgid "n"
 msgstr "n"
 
-#: ../output.py:610
+#: ../output.py:608
 msgid "no"
 msgstr "não"
 
-#: ../output.py:614
+#: ../output.py:612
 msgid "Is this ok [y/N]: "
 msgstr "Correto? [s/N]:"
 
-#: ../output.py:702
+#: ../output.py:700
 #, python-format
 msgid ""
 "\n"
@@ -660,129 +649,129 @@ msgstr ""
 "\n"
 "Grupo: %s"
 
-#: ../output.py:709
+#: ../output.py:707
 #, python-format
 msgid " Description: %s"
 msgstr " Descrição: %s"
 
-#: ../output.py:711
+#: ../output.py:709
 msgid " Mandatory Packages:"
 msgstr " Pacotes obrigatórios:"
 
-#: ../output.py:712
+#: ../output.py:710
 msgid " Default Packages:"
 msgstr " Pacotes padrão:"
 
-#: ../output.py:713
+#: ../output.py:711
 msgid " Optional Packages:"
 msgstr " Pacotes opcionais:"
 
-#: ../output.py:714
+#: ../output.py:712
 msgid " Conditional Packages:"
 msgstr " Pacotes condicionais:"
 
-#: ../output.py:734
+#: ../output.py:732
 #, python-format
 msgid "package: %s"
 msgstr "pacote: %s"
 
-#: ../output.py:736
+#: ../output.py:734
 msgid "  No dependencies for this package"
 msgstr "  Nenhuma dependência para este pacote"
 
-#: ../output.py:741
+#: ../output.py:739
 #, python-format
 msgid "  dependency: %s"
 msgstr "  dependência: %s"
 
-#: ../output.py:743
+#: ../output.py:741
 msgid "   Unsatisfied dependency"
 msgstr "   Dependência não satisfeita"
 
-#: ../output.py:815
+#: ../output.py:813
 #, python-format
 msgid "Repo        : %s"
 msgstr "Repo        : %s"
 
-#: ../output.py:816
+#: ../output.py:814
 msgid "Matched from:"
 msgstr "Resultado a partir de:"
 
-#: ../output.py:824
+#: ../output.py:822
 msgid "Description : "
 msgstr "Descrição : "
 
-#: ../output.py:827
+#: ../output.py:825
 #, python-format
 msgid "URL         : %s"
 msgstr "URL         : %s"
 
-#: ../output.py:830
+#: ../output.py:828
 #, python-format
 msgid "License     : %s"
 msgstr "Licença     : %s"
 
-#: ../output.py:833
+#: ../output.py:831
 #, python-format
 msgid "Filename    : %s"
 msgstr "Nome de arquivo    : %s"
 
-#: ../output.py:837
+#: ../output.py:835
 msgid "Other       : "
 msgstr "Outro       : "
 
-#: ../output.py:870
+#: ../output.py:868
 msgid "There was an error calculating total download size"
 msgstr "Houve um erro no cálculo do tamanho total do download"
 
-#: ../output.py:875
+#: ../output.py:873
 #, python-format
 msgid "Total size: %s"
 msgstr "Tamanho total: %s"
 
-#: ../output.py:878
+#: ../output.py:876
 #, python-format
 msgid "Total download size: %s"
 msgstr "Tamanho total do download: %s"
 
-#: ../output.py:913
+#: ../output.py:911
 msgid "Installing for dependencies"
 msgstr "Instalando para as dependências"
 
-#: ../output.py:914
+#: ../output.py:912
 msgid "Updating for dependencies"
 msgstr "Atualizando para as dependências"
 
-#: ../output.py:915
+#: ../output.py:913
 msgid "Removing for dependencies"
 msgstr "Removendo para as dependências"
 
-#: ../output.py:922
-#: ../output.py:1018
+#: ../output.py:920
+#: ../output.py:1016
 msgid "Skipped (dependency problems)"
 msgstr "Ignorado (problemas de dependências)"
 
-#: ../output.py:943
+#: ../output.py:941
 msgid "Package"
 msgstr "Pacote"
 
-#: ../output.py:943
+#: ../output.py:941
 msgid "Arch"
 msgstr "Arq."
 
-#: ../output.py:944
+#: ../output.py:942
 msgid "Version"
 msgstr "Versão"
 
-#: ../output.py:944
+#: ../output.py:942
 msgid "Repository"
 msgstr "Repo"
 
-#: ../output.py:945
+#: ../output.py:943
 msgid "Size"
-msgstr "Tamanho"
+msgstr "Tam."
 
-#: ../output.py:956
+#: ../output.py:954
 #, python-format
 msgid ""
 "     replacing  %s.%s %s\n"
@@ -791,7 +780,7 @@ msgstr ""
 "     substituindo  %s.%s %s\n"
 "\n"
 
-#: ../output.py:964
+#: ../output.py:962
 #, python-format
 msgid ""
 "\n"
@@ -808,27 +797,31 @@ msgstr ""
 "Atualizar   %5.5s pacote(s)         \n"
 "Remover   %5.5s pacote(s)         \n"
 
-#: ../output.py:1012
+#: ../output.py:1010
 msgid "Removed"
 msgstr "Removido(s)"
 
-#: ../output.py:1013
+#: ../output.py:1011
 msgid "Dependency Removed"
 msgstr "Dependência(s) removida(s)"
 
-#: ../output.py:1015
+#: ../output.py:1013
 msgid "Dependency Installed"
 msgstr "Dependência(s) instalada(s)"
 
-#: ../output.py:1017
+#: ../output.py:1015
 msgid "Dependency Updated"
 msgstr "Dependência(s) atualizada(s)"
 
-#: ../output.py:1019
+#: ../output.py:1017
 msgid "Replaced"
 msgstr "Substituído(s)"
 
-#: ../output.py:1092
+#: ../output.py:1018
+msgid "Failed"
+msgstr "Falhou"
+
+#: ../output.py:1091
 #, python-format
 msgid ""
 "\n"
@@ -837,67 +830,67 @@ msgstr ""
 "\n"
 " Download atual cancelado, interrupção %s, (ctrl-c) novamente %s com %s%s%s segundos até sair.\n"
 
-#: ../output.py:1102
+#: ../output.py:1101
 msgid "user interrupt"
 msgstr "interrupção do usuário"
 
-#: ../output.py:1118
+#: ../output.py:1117
 msgid "Total"
 msgstr "Total"
 
-#: ../output.py:1132
+#: ../output.py:1131
 msgid "installed"
 msgstr "instalado"
 
-#: ../output.py:1133
+#: ../output.py:1132
 msgid "updated"
 msgstr "atualizado"
 
-#: ../output.py:1134
+#: ../output.py:1133
 msgid "obsoleted"
 msgstr "obsoleto"
 
-#: ../output.py:1135
+#: ../output.py:1134
 msgid "erased"
 msgstr "removido"
 
-#: ../output.py:1139
+#: ../output.py:1138
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> Pacote %s.%s %s:%s-%s definido para ser %s"
 
-#: ../output.py:1146
+#: ../output.py:1145
 msgid "--> Running transaction check"
 msgstr "--> Executando verificação da transação"
 
-#: ../output.py:1151
+#: ../output.py:1150
 msgid "--> Restarting Dependency Resolution with new changes."
 msgstr "--> Reiniciando resolução de dependências com as novas alterações."
 
-#: ../output.py:1156
+#: ../output.py:1155
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Resolução de dependências finalizada"
 
-#: ../output.py:1161
+#: ../output.py:1160
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> Processando dependência: %s para o pacote: %s"
 
-#: ../output.py:1166
+#: ../output.py:1165
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Dependência não resolvida: %s"
 
-#: ../output.py:1172
+#: ../output.py:1171
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> Processando conflito: %s conflita com %s"
 
-#: ../output.py:1175
+#: ../output.py:1174
 msgid "--> Populating transaction set with selected packages. Please wait."
 msgstr "--> Construindo conjunto de transações com os pacotes selecionados. Por favor aguarde."
 
-#: ../output.py:1179
+#: ../output.py:1178
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
 msgstr "--> Baixando cabeçalho do %s para inclusão no conjunto de transações."
@@ -977,273 +970,273 @@ msgstr "O arquivo %s, passado como um argumento para o shell, não existe."
 msgid "Error: more than one file given as argument to shell."
 msgstr "Erro: mais de um arquivo passado como argumento para o shell."
 
-#: ../yumcommands.py:161
+#: ../yumcommands.py:169
 msgid "PACKAGE..."
 msgstr "PACOTE..."
 
-#: ../yumcommands.py:164
+#: ../yumcommands.py:172
 msgid "Install a package or packages on your system"
 msgstr "Instala um ou mais pacotes no seu sistema"
 
-#: ../yumcommands.py:173
+#: ../yumcommands.py:180
 msgid "Setting up Install Process"
 msgstr "Configurando o processo de instalação"
 
-#: ../yumcommands.py:184
+#: ../yumcommands.py:191
 msgid "[PACKAGE...]"
 msgstr "[PACOTE...]"
 
-#: ../yumcommands.py:187
+#: ../yumcommands.py:194
 msgid "Update a package or packages on your system"
 msgstr "Atualiza um ou mais pacotes do seu sistema"
 
-#: ../yumcommands.py:195
+#: ../yumcommands.py:201
 msgid "Setting up Update Process"
 msgstr "Configurando o processo de atualização"
 
-#: ../yumcommands.py:237
+#: ../yumcommands.py:243
 msgid "Display details about a package or group of packages"
 msgstr "Mostra detalhes sobre um pacote ou grupos de pacotes"
 
-#: ../yumcommands.py:278
+#: ../yumcommands.py:284
 msgid "Installed Packages"
 msgstr "Pacotes instalados"
 
-#: ../yumcommands.py:285
+#: ../yumcommands.py:291
 msgid "Available Packages"
 msgstr "Pacotes disponíveis"
 
-#: ../yumcommands.py:289
+#: ../yumcommands.py:295
 msgid "Extra Packages"
 msgstr "Pacotes extras"
 
-#: ../yumcommands.py:291
+#: ../yumcommands.py:297
 msgid "Updated Packages"
 msgstr "Pacotes atualizados"
 
-#: ../yumcommands.py:298
-#: ../yumcommands.py:305
-#: ../yumcommands.py:574
+#: ../yumcommands.py:304
+#: ../yumcommands.py:311
+#: ../yumcommands.py:578
 msgid "Obsoleting Packages"
 msgstr "Tornando pacotes obsoletos"
 
-#: ../yumcommands.py:307
+#: ../yumcommands.py:313
 msgid "Recently Added Packages"
 msgstr "Pacotes adicionados recentemente"
 
-#: ../yumcommands.py:314
+#: ../yumcommands.py:320
 msgid "No matching Packages to list"
 msgstr "Nenhum pacote correspondente a ser listado"
 
-#: ../yumcommands.py:328
+#: ../yumcommands.py:334
 msgid "List a package or groups of packages"
 msgstr "Lista um pacote ou grupos de pacotes"
 
-#: ../yumcommands.py:340
+#: ../yumcommands.py:346
 msgid "Remove a package or packages from your system"
 msgstr "Remove um ou mais pacotes do seu sistema"
 
-#: ../yumcommands.py:348
+#: ../yumcommands.py:353
 msgid "Setting up Remove Process"
 msgstr "Configurando o processo de remoção"
 
-#: ../yumcommands.py:363
+#: ../yumcommands.py:367
 msgid "Setting up Group Process"
 msgstr "Configurando o processo de grupos"
 
-#: ../yumcommands.py:369
+#: ../yumcommands.py:373
 msgid "No Groups on which to run command"
 msgstr "Não há grupos nos quais executar o comando"
 
-#: ../yumcommands.py:382
+#: ../yumcommands.py:386
 msgid "List available package groups"
 msgstr "Lista os grupos de pacotes disponíveis"
 
-#: ../yumcommands.py:399
+#: ../yumcommands.py:403
 msgid "Install the packages in a group on your system"
 msgstr "Instala pacotes em um grupo ou no seu sistema"
 
-#: ../yumcommands.py:421
+#: ../yumcommands.py:425
 msgid "Remove the packages in a group from your system"
 msgstr "Remove pacotes de um grupo ou do seu sistema"
 
-#: ../yumcommands.py:448
+#: ../yumcommands.py:452
 msgid "Display details about a package group"
 msgstr "Mostra detalhes sobre um grupo de pacotes"
 
-#: ../yumcommands.py:472
+#: ../yumcommands.py:476
 msgid "Generate the metadata cache"
 msgstr "Gera o cache de metadados"
 
-#: ../yumcommands.py:478
+#: ../yumcommands.py:482
 msgid "Making cache files for all metadata files."
 msgstr "Realizando cache de arquivos para todos os metadados."
 
-#: ../yumcommands.py:479
+#: ../yumcommands.py:483
 msgid "This may take a while depending on the speed of this computer"
 msgstr "Isso pode demorar um pouco, dependendo da velocidade deste computador"
 
-#: ../yumcommands.py:500
+#: ../yumcommands.py:504
 msgid "Metadata Cache Created"
 msgstr "Cache de metadados criado"
 
-#: ../yumcommands.py:514
+#: ../yumcommands.py:518
 msgid "Remove cached data"
 msgstr "Remove os dados do cache"
 
-#: ../yumcommands.py:535
+#: ../yumcommands.py:539
 msgid "Find what package provides the given value"
 msgstr "Localiza qual pacote fornece o valor dado"
 
-#: ../yumcommands.py:555
+#: ../yumcommands.py:559
 msgid "Check for available package updates"
 msgstr "Verifica por atualizações de pacotes disponíveis"
 
-#: ../yumcommands.py:594
+#: ../yumcommands.py:598
 msgid "Search package details for the given string"
 msgstr "Pesquisa detalhes do pacote para a string fornecida"
 
-#: ../yumcommands.py:600
+#: ../yumcommands.py:604
 msgid "Searching Packages: "
 msgstr "Pesquisando por pacotes:"
 
-#: ../yumcommands.py:617
+#: ../yumcommands.py:621
 msgid "Update packages taking obsoletes into account"
 msgstr "Atualiza pacotes levando em conta os obsoletos"
 
-#: ../yumcommands.py:626
+#: ../yumcommands.py:629
 msgid "Setting up Upgrade Process"
 msgstr "Configurando o processo de atualização"
 
-#: ../yumcommands.py:640
+#: ../yumcommands.py:643
 msgid "Install a local RPM"
 msgstr "Instala um RPM local"
 
-#: ../yumcommands.py:649
+#: ../yumcommands.py:651
 msgid "Setting up Local Package Process"
 msgstr "Configurando o processo de pacote local"
 
-#: ../yumcommands.py:668
+#: ../yumcommands.py:670
 msgid "Determine which package provides the given dependency"
 msgstr "Determina qual pacote fornece a dependência dada"
 
-#: ../yumcommands.py:671
+#: ../yumcommands.py:673
 msgid "Searching Packages for Dependency:"
 msgstr "Pesquisando pacotes por dependência:"
 
-#: ../yumcommands.py:685
+#: ../yumcommands.py:687
 msgid "Run an interactive yum shell"
 msgstr "Executa um shell interativo do yum"
 
-#: ../yumcommands.py:691
+#: ../yumcommands.py:693
 msgid "Setting up Yum Shell"
 msgstr "Configurando o shell do Yum"
 
-#: ../yumcommands.py:709
+#: ../yumcommands.py:711
 msgid "List a package's dependencies"
 msgstr "Lista as dependências de um pacote"
 
-#: ../yumcommands.py:715
+#: ../yumcommands.py:717
 msgid "Finding dependencies: "
 msgstr "Localizando dependências:"
 
-#: ../yumcommands.py:731
+#: ../yumcommands.py:733
 msgid "Display the configured software repositories"
 msgstr "Exibe os repositórios de software configurados"
 
-#: ../yumcommands.py:779
-#: ../yumcommands.py:780
+#: ../yumcommands.py:781
+#: ../yumcommands.py:782
 msgid "enabled"
 msgstr "habilitado"
 
-#: ../yumcommands.py:788
-#: ../yumcommands.py:789
+#: ../yumcommands.py:790
+#: ../yumcommands.py:791
 msgid "disabled"
 msgstr "desabilitado"
 
-#: ../yumcommands.py:800
+#: ../yumcommands.py:805
 msgid "Repo-id     : "
 msgstr "Repo-id     : "
 
-#: ../yumcommands.py:801
+#: ../yumcommands.py:806
 msgid "Repo-name   : "
 msgstr "Repo-name   : "
 
-#: ../yumcommands.py:802
+#: ../yumcommands.py:807
 msgid "Repo-status : "
 msgstr "Repo-status : "
 
-#: ../yumcommands.py:804
+#: ../yumcommands.py:809
 msgid "Repo-revision: "
 msgstr "Repo-revision: "
 
-#: ../yumcommands.py:808
+#: ../yumcommands.py:813
 msgid "Repo-tags   : "
 msgstr "Repo-tags   : "
 
-#: ../yumcommands.py:814
+#: ../yumcommands.py:819
 msgid "Repo-distro-tags: "
 msgstr "Repo-distro-tags: "
 
-#: ../yumcommands.py:819
+#: ../yumcommands.py:824
 msgid "Repo-updated: "
 msgstr "Repo-updated: "
 
-#: ../yumcommands.py:821
+#: ../yumcommands.py:826
 msgid "Repo-pkgs   : "
 msgstr "Repo-pkgs   : "
 
-#: ../yumcommands.py:822
+#: ../yumcommands.py:827
 msgid "Repo-size   : "
 msgstr "Repo-size   : "
 
-#: ../yumcommands.py:829
+#: ../yumcommands.py:834
 msgid "Repo-baseurl: "
 msgstr "Repo-baseurl: "
 
-#: ../yumcommands.py:833
+#: ../yumcommands.py:838
 msgid "Repo-metalink: "
 msgstr "Repo-metalink: "
 
-#: ../yumcommands.py:836
+#: ../yumcommands.py:841
 msgid "Repo-mirrors: "
 msgstr "Repo-mirrors: "
 
-#: ../yumcommands.py:840
+#: ../yumcommands.py:845
 msgid "Repo-exclude: "
 msgstr "Repo-exclude: "
 
-#: ../yumcommands.py:844
+#: ../yumcommands.py:849
 msgid "Repo-include: "
 msgstr "Repo-include: "
 
 #. Work out the first (id) and last (enabled/disalbed/count),
 #. then chop the middle (name)...
-#: ../yumcommands.py:854
-#: ../yumcommands.py:880
+#: ../yumcommands.py:859
+#: ../yumcommands.py:885
 msgid "repo id"
 msgstr "id do repo"
 
-#: ../yumcommands.py:868
-#: ../yumcommands.py:869
-#: ../yumcommands.py:883
+#: ../yumcommands.py:873
+#: ../yumcommands.py:874
+#: ../yumcommands.py:888
 msgid "status"
 msgstr "status"
 
-#: ../yumcommands.py:881
+#: ../yumcommands.py:886
 msgid "repo name"
 msgstr "nome do repo"
 
-#: ../yumcommands.py:907
+#: ../yumcommands.py:912
 msgid "Display a helpful usage message"
 msgstr "Exibe uma mensagem de uso para ajuda"
 
-#: ../yumcommands.py:941
+#: ../yumcommands.py:946
 #, python-format
 msgid "No help available for %s"
 msgstr "Nenhuma ajuda disponível para %s"
 
-#: ../yumcommands.py:946
+#: ../yumcommands.py:951
 msgid ""
 "\n"
 "\n"
@@ -1253,7 +1246,7 @@ msgstr ""
 "\n"
 "apelidos: "
 
-#: ../yumcommands.py:948
+#: ../yumcommands.py:953
 msgid ""
 "\n"
 "\n"
@@ -1263,15 +1256,15 @@ msgstr ""
 "\n"
 "apelido: "
 
-#: ../yumcommands.py:977
+#: ../yumcommands.py:981
 msgid "Setting up Reinstall Process"
 msgstr "Configurando o processo de reinstalação"
 
-#: ../yumcommands.py:991
+#: ../yumcommands.py:995
 msgid "reinstall a package"
 msgstr "reinstala um pacote"
 
-#: ../yummain.py:41
+#: ../yummain.py:42
 msgid ""
 "\n"
 "\n"
@@ -1281,7 +1274,7 @@ msgstr ""
 "\n"
 "Saindo pelo cancelamento do usuário"
 
-#: ../yummain.py:47
+#: ../yummain.py:48
 msgid ""
 "\n"
 "\n"
@@ -1291,28 +1284,76 @@ msgstr ""
 "\n"
 "Saindo por um pipe defeituoso"
 
-#: ../yummain.py:98
-msgid "Another app is currently holding the yum lock; waiting for it to exit..."
-msgstr "Outra aplicação está retendo o bloqueio do yum; esperando por ele para sair..."
+#: ../yummain.py:122
+msgid "Running"
+msgstr "Executando"
+
+#: ../yummain.py:123
+msgid "Sleeping"
+msgstr "Dormindo"
+
+#: ../yummain.py:124
+msgid "Uninteruptable"
+msgstr "Ininterrompível"
 
 #: ../yummain.py:125
-#: ../yummain.py:164
+msgid "Zombie"
+msgstr "Zumbi"
+
+#: ../yummain.py:126
+msgid "Traced/Stopped"
+msgstr "Rastreado/Parado"
+
+#: ../yummain.py:127
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: ../yummain.py:131
+msgid "  The other application is: PackageKit"
+msgstr "  O outro aplicativo é: PackageKit"
+
+#: ../yummain.py:133
+#, python-format
+msgid "  The other application is: %s"
+msgstr "  O outro aplicativo é: %s"
+
+#: ../yummain.py:136
+#, python-format
+msgid "    Memory : %5s RSS (%5sB VSZ)"
+msgstr "    Memória: %5s RSS (%5sB VSZ)"
+
+#: ../yummain.py:140
+#, python-format
+msgid "    Started: %s - %s ago"
+msgstr "    Iniciado: %s - %s atrás"
+
+#: ../yummain.py:142
+#, python-format
+msgid "    State  : %s, pid: %d"
+msgstr "    Estado: %s, pid: %d"
+
+#: ../yummain.py:167
+msgid "Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr "Outro aplicativo está retendo o bloqueio do yum; esperando por ele para sair..."
+
+#: ../yummain.py:195
+#: ../yummain.py:234
 #, python-format
 msgid "Error: %s"
 msgstr "Error: %s"
 
-#: ../yummain.py:135
-#: ../yummain.py:171
+#: ../yummain.py:205
+#: ../yummain.py:241
 #, python-format
 msgid "Unknown Error(s): Exit Code: %d:"
 msgstr "Erro(s) desconhecido(s): código de saída: %d:"
 
 #. Depsolve stage
-#: ../yummain.py:142
+#: ../yummain.py:212
 msgid "Resolving Dependencies"
 msgstr "Resolvendo dependências"
 
-#: ../yummain.py:177
+#: ../yummain.py:247
 msgid ""
 "\n"
 "Dependencies Resolved"
@@ -1320,11 +1361,11 @@ msgstr ""
 "\n"
 "Dependências resolvidas"
 
-#: ../yummain.py:191
+#: ../yummain.py:261
 msgid "Complete!"
 msgstr "Concluído!"
 
-#: ../yummain.py:238
+#: ../yummain.py:308
 msgid ""
 "\n"
 "\n"
@@ -1368,7 +1409,7 @@ msgid "Member: %s"
 msgstr "Membro: %s"
 
 #: ../yum/depsolve.py:247
-#: ../yum/depsolve.py:734
+#: ../yum/depsolve.py:738
 #, python-format
 msgid "%s converted to install"
 msgstr "%s convertido para instalar"
@@ -1417,118 +1458,118 @@ msgstr "Modo para o pacote que fornece o %s: %s"
 msgid "TSINFO: %s package requiring %s marked as erase"
 msgstr "TSINFO: o pacote %s que requer o %s foi marcado para remoção"
 
-#: ../yum/depsolve.py:393
+#: ../yum/depsolve.py:394
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
 msgstr "TSINFO: Tornando %s obsoleto com o %s para resolver a dependência."
 
-#: ../yum/depsolve.py:396
+#: ../yum/depsolve.py:397
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
 msgstr "TSINFO: Atualizando %s para resolver a dependência."
 
-#: ../yum/depsolve.py:404
+#: ../yum/depsolve.py:405
 #, python-format
 msgid "Cannot find an update path for dep for: %s"
 msgstr "Não foi possível encontrar um caminho de atualização para a dep. para: %s"
 
-#: ../yum/depsolve.py:414
+#: ../yum/depsolve.py:415
 #, python-format
 msgid "Unresolvable requirement %s for %s"
 msgstr "Requerimento %s insolúvel para o %s"
 
-#: ../yum/depsolve.py:437
+#: ../yum/depsolve.py:438
 #, python-format
 msgid "Quick matched %s to require for %s"
 msgstr "%s localizado rapidamente a ser requerido por %s"
 
 #. is it already installed?
-#: ../yum/depsolve.py:479
+#: ../yum/depsolve.py:480
 #, python-format
 msgid "%s is in providing packages but it is already installed, removing."
 msgstr "%s está nos pacotes fornecedores mas já está instalado, removendo."
 
-#: ../yum/depsolve.py:494
+#: ../yum/depsolve.py:495
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
 msgstr "O pacote de solução em potencial %s tem uma instância mais nova no ct."
 
-#: ../yum/depsolve.py:505
+#: ../yum/depsolve.py:506
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
 msgstr "O pacote de solução em potencial %s tem uma instância mais nova instalada."
 
-#: ../yum/depsolve.py:513
-#: ../yum/depsolve.py:562
+#: ../yum/depsolve.py:514
+#: ../yum/depsolve.py:563
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "Dependência faltando: %s é requerido pelo pacote %s"
 
-#: ../yum/depsolve.py:526
+#: ../yum/depsolve.py:527
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s já está no ct, pulando esse"
 
-#: ../yum/depsolve.py:572
+#: ../yum/depsolve.py:573
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: Marcando %s como uma atualização para o %s"
 
-#: ../yum/depsolve.py:580
+#: ../yum/depsolve.py:581
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: Marcando %s como uma instalação para o %s"
 
-#: ../yum/depsolve.py:672
-#: ../yum/depsolve.py:752
+#: ../yum/depsolve.py:674
+#: ../yum/depsolve.py:756
 msgid "Success - empty transaction"
 msgstr "Sucesso - transação vazia"
 
-#: ../yum/depsolve.py:711
-#: ../yum/depsolve.py:724
+#: ../yum/depsolve.py:713
+#: ../yum/depsolve.py:728
 msgid "Restarting Loop"
 msgstr "Reiniciando o loop"
 
-#: ../yum/depsolve.py:740
+#: ../yum/depsolve.py:744
 msgid "Dependency Process ending"
 msgstr "Término do processo de dependências"
 
-#: ../yum/depsolve.py:746
+#: ../yum/depsolve.py:750
 #, python-format
 msgid "%s from %s has depsolving problems"
 msgstr "%s a partir de %s tem problemas de resolução de dependências"
 
-#: ../yum/depsolve.py:753
+#: ../yum/depsolve.py:757
 msgid "Success - deps resolved"
 msgstr "Sucesso - dependências resolvidas"
 
-#: ../yum/depsolve.py:767
+#: ../yum/depsolve.py:771
 #, python-format
 msgid "Checking deps for %s"
 msgstr "Verificando dependências para %s"
 
-#: ../yum/depsolve.py:850
+#: ../yum/depsolve.py:854
 #, python-format
 msgid "looking for %s as a requirement of %s"
 msgstr "procurando por %s como um requerimento do %s"
 
-#: ../yum/depsolve.py:990
+#: ../yum/depsolve.py:996
 #, python-format
 msgid "Running compare_providers() for %s"
 msgstr "Executando compare_providers() para %s"
 
-#: ../yum/depsolve.py:1018
 #: ../yum/depsolve.py:1024
+#: ../yum/depsolve.py:1030
 #, python-format
 msgid "better arch in po %s"
 msgstr "melhor arquitetura no po %s"
 
-#: ../yum/depsolve.py:1063
+#: ../yum/depsolve.py:1084
 #, python-format
 msgid "%s obsoletes %s"
 msgstr "%s torna %s obsoleto"
 
-#: ../yum/depsolve.py:1079
+#: ../yum/depsolve.py:1100
 #, python-format
 msgid ""
 "archdist compared %s to %s on %s\n"
@@ -1537,112 +1578,112 @@ msgstr ""
 "archdist comparou %s com %s em %s\n"
 "  Vencedor: %s"
 
-#: ../yum/depsolve.py:1086
+#: ../yum/depsolve.py:1107
 #, python-format
 msgid "common sourcerpm %s and %s"
 msgstr "Sourcerpm comum %s e %s"
 
-#: ../yum/depsolve.py:1092
+#: ../yum/depsolve.py:1113
 #, python-format
 msgid "common prefix of %s between %s and %s"
 msgstr "prefixo comum de %s entre %s e %s"
 
-#: ../yum/depsolve.py:1100
+#: ../yum/depsolve.py:1121
 #, python-format
 msgid "Best Order: %s"
 msgstr "Melhor ordem: %s"
 
-#: ../yum/__init__.py:135
+#: ../yum/__init__.py:154
 msgid "doConfigSetup() will go away in a future version of Yum.\n"
 msgstr "doConfigSetup() será removida em uma futura versão do Yum.\n"
 
-#: ../yum/__init__.py:315
+#: ../yum/__init__.py:350
 #, python-format
 msgid "Repository %r is missing name in configuration, using id"
 msgstr "O repositório %r não tem nome na configuração, usando o id"
 
-#: ../yum/__init__.py:353
+#: ../yum/__init__.py:388
 msgid "plugins already initialised"
 msgstr "plugins já inicializados"
 
-#: ../yum/__init__.py:360
+#: ../yum/__init__.py:395
 msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
 msgstr "doRpmDBSetup() será removida em uma futura versão do Yum.\n"
 
-#: ../yum/__init__.py:370
+#: ../yum/__init__.py:405
 msgid "Reading Local RPMDB"
 msgstr "Lendo RPMDB local"
 
-#: ../yum/__init__.py:388
+#: ../yum/__init__.py:423
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() será removida em uma futura versão do Yum.\n"
 
-#: ../yum/__init__.py:408
+#: ../yum/__init__.py:443
 msgid "doSackSetup() will go away in a future version of Yum.\n"
 msgstr "doSackSetup() será removida em uma futura versão do Yum.\n"
 
-#: ../yum/__init__.py:425
+#: ../yum/__init__.py:460
 msgid "Setting up Package Sacks"
 msgstr "Configurando sacos de pacotes"
 
-#: ../yum/__init__.py:468
+#: ../yum/__init__.py:503
 #, python-format
 msgid "repo object for repo %s lacks a _resetSack method\n"
 msgstr "o objeto de repositório para o %s necessita de um método _resetSack\n"
 
-#: ../yum/__init__.py:469
+#: ../yum/__init__.py:504
 msgid "therefore this repo cannot be reset.\n"
 msgstr "conseqüentemente este repo não pode ser restaurado.\n"
 
-#: ../yum/__init__.py:474
+#: ../yum/__init__.py:509
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
 msgstr "doUpdateSetup() será removida em uma futura versão do Yum.\n"
 
-#: ../yum/__init__.py:486
+#: ../yum/__init__.py:521
 msgid "Building updates object"
 msgstr "Construindo objeto de atualizações"
 
-#: ../yum/__init__.py:517
+#: ../yum/__init__.py:552
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
 msgstr "doGroupSetup() será removida em uma futura versão do Yum.\n"
 
-#: ../yum/__init__.py:541
+#: ../yum/__init__.py:576
 msgid "Getting group metadata"
 msgstr "Obtendo metadados do grupo"
 
-#: ../yum/__init__.py:567
+#: ../yum/__init__.py:602
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "Adicionando arquivo de grupo a partir do repositório: %s"
 
-#: ../yum/__init__.py:576
+#: ../yum/__init__.py:611
 #, python-format
 msgid "Failed to add groups file for repository: %s - %s"
 msgstr "Falha ao adicionar o arquivo de grupos para o repositório: %s - %s"
 
-#: ../yum/__init__.py:582
+#: ../yum/__init__.py:617
 msgid "No Groups Available in any repository"
 msgstr "Nenhum grupo disponível em nenhum repositório"
 
-#: ../yum/__init__.py:632
+#: ../yum/__init__.py:667
 msgid "Importing additional filelist information"
 msgstr "Importando informações adicionais da lista de arquivos"
 
-#: ../yum/__init__.py:641
+#: ../yum/__init__.py:676
 msgid "There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them."
 msgstr "Há transações não finalizadas restantes. Você pode considerar executar o yum-complete-transaction primeiro para finalizá-las."
 
-#: ../yum/__init__.py:707
+#: ../yum/__init__.py:742
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Rodada de ignoração de dependências quebradas %i"
 
-#: ../yum/__init__.py:759
+#: ../yum/__init__.py:794
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr "A ignoração de dependências quebradas levou %i rodadas"
 
-#: ../yum/__init__.py:760
+#: ../yum/__init__.py:795
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1650,89 +1691,89 @@ msgstr ""
 "\n"
 "Pacotes ignorados devido a problemas de dependências:"
 
-#: ../yum/__init__.py:764
+#: ../yum/__init__.py:799
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s a partir de %s"
 
-#: ../yum/__init__.py:908
+#: ../yum/__init__.py:943
 msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
 msgstr "Aviso: scriptlet ou outros erros não fatais ocorreram durante a transação."
 
-#: ../yum/__init__.py:924
+#: ../yum/__init__.py:958
 #, python-format
 msgid "Failed to remove transaction file %s"
 msgstr "Falha ao remover o arquivo de transação %s"
 
-#: ../yum/__init__.py:965
+#: ../yum/__init__.py:999
 #, python-format
 msgid "excluding for cost: %s from %s"
 msgstr "excluindo para custo: %s a partir de %s"
 
-#: ../yum/__init__.py:996
+#: ../yum/__init__.py:1030
 msgid "Excluding Packages in global exclude list"
 msgstr "Excluindo pacotes na lista global de excluídos"
 
-#: ../yum/__init__.py:998
+#: ../yum/__init__.py:1032
 #, python-format
 msgid "Excluding Packages from %s"
 msgstr "Excluindo pacotes de %s"
 
-#: ../yum/__init__.py:1025
+#: ../yum/__init__.py:1059
 #, python-format
 msgid "Reducing %s to included packages only"
 msgstr "Reduzindo %s apenas aos pacotes inclusos"
 
-#: ../yum/__init__.py:1031
+#: ../yum/__init__.py:1065
 #, python-format
 msgid "Keeping included package %s"
 msgstr "Mantendo o pacote incluso %s"
 
-#: ../yum/__init__.py:1037
+#: ../yum/__init__.py:1071
 #, python-format
 msgid "Removing unmatched package %s"
 msgstr "Removendo pacote não encontrado %s"
 
-#: ../yum/__init__.py:1040
+#: ../yum/__init__.py:1074
 msgid "Finished"
 msgstr "Concluído"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:1070
+#: ../yum/__init__.py:1104
 #, python-format
 msgid "Unable to check if PID %s is active"
 msgstr "Não foi possível verificar se o PID %s está ativo"
 
 #. Another copy seems to be running.
-#: ../yum/__init__.py:1074
+#: ../yum/__init__.py:1108
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
 msgstr "Bloqueio existente em %s: outra cópia está em execução com o pid %s."
 
-#: ../yum/__init__.py:1145
+#: ../yum/__init__.py:1175
 msgid "Package does not match intended download"
 msgstr "O pacote não corresponde ao download pretendido"
 
-#: ../yum/__init__.py:1160
+#: ../yum/__init__.py:1190
 msgid "Could not perform checksum"
 msgstr "Não foi possível realizar a soma de verificação"
 
-#: ../yum/__init__.py:1163
+#: ../yum/__init__.py:1193
 msgid "Package does not match checksum"
 msgstr "O pacote não corresponde à soma de verificação"
 
-#: ../yum/__init__.py:1206
+#: ../yum/__init__.py:1236
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
 msgstr "o pacote falhou na soma de verificação mas o cache está habilitado para o %s"
 
-#: ../yum/__init__.py:1209
-#: ../yum/__init__.py:1237
+#: ../yum/__init__.py:1239
+#: ../yum/__init__.py:1268
 #, python-format
 msgid "using local copy of %s"
 msgstr "usando cópia local do %s"
 
-#: ../yum/__init__.py:1251
+#: ../yum/__init__.py:1280
 #, python-format
 msgid ""
 "Insufficient space in download directory %s\n"
@@ -1743,331 +1784,331 @@ msgstr ""
 "    * livre   %s\n"
 "    * necessário %s"
 
-#: ../yum/__init__.py:1298
+#: ../yum/__init__.py:1327
 msgid "Header is not complete."
 msgstr "O cabeçalho não está completo."
 
-#: ../yum/__init__.py:1338
+#: ../yum/__init__.py:1364
 #, python-format
 msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
 msgstr "O cabeçalho não está no cache local e o modo de somente cache está habilitado. Não foi possível baixar o %s."
 
-#: ../yum/__init__.py:1393
+#: ../yum/__init__.py:1419
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "A chave pública para o %s não está instalada"
 
-#: ../yum/__init__.py:1397
+#: ../yum/__init__.py:1423
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Problema ao abrir o pacote %s"
 
-#: ../yum/__init__.py:1405
+#: ../yum/__init__.py:1431
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "A chave pública para o %s não é confiável"
 
-#: ../yum/__init__.py:1409
+#: ../yum/__init__.py:1435
 #, python-format
 msgid "Package %s is not signed"
 msgstr "O pacote %s não está assinado"
 
-#: ../yum/__init__.py:1447
+#: ../yum/__init__.py:1473
 #, python-format
 msgid "Cannot remove %s"
 msgstr "Não foi possível remover %s"
 
-#: ../yum/__init__.py:1451
+#: ../yum/__init__.py:1477
 #, python-format
 msgid "%s removed"
 msgstr "%s removido"
 
-#: ../yum/__init__.py:1488
+#: ../yum/__init__.py:1514
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "Não foi possível remover %s arquivo %s"
 
-#: ../yum/__init__.py:1492
+#: ../yum/__init__.py:1518
 #, python-format
 msgid "%s file %s removed"
 msgstr "%s arquivo %s removido"
 
-#: ../yum/__init__.py:1494
+#: ../yum/__init__.py:1520
 #, python-format
 msgid "%d %s files removed"
 msgstr "%d %s arquivos removidos"
 
-#: ../yum/__init__.py:1563
+#: ../yum/__init__.py:1589
 #, python-format
 msgid "More than one identical match in sack for %s"
 msgstr "Mais de uma correspondência idêntica no saco para %s"
 
-#: ../yum/__init__.py:1569
+#: ../yum/__init__.py:1595
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "Nada corresponde ao %s.%s %s:%s-%s a partir da atualização"
 
-#: ../yum/__init__.py:1787
+#: ../yum/__init__.py:1813
 msgid "searchPackages() will go away in a future version of Yum.                      Use searchGenerator() instead. \n"
 msgstr "searchPackages() será removida em uma futura versão do Yum. Ao invés disso, use a searchGenerator().\n"
 
-#: ../yum/__init__.py:1825
+#: ../yum/__init__.py:1851
 #, python-format
 msgid "Searching %d packages"
 msgstr "Pesquisando por %d pacotes"
 
-#: ../yum/__init__.py:1829
+#: ../yum/__init__.py:1855
 #, python-format
 msgid "searching package %s"
 msgstr "pesquisando pelo pacote %s"
 
-#: ../yum/__init__.py:1841
+#: ../yum/__init__.py:1867
 msgid "searching in file entries"
 msgstr "pesquisando nas entradas do arquivo"
 
-#: ../yum/__init__.py:1848
+#: ../yum/__init__.py:1874
 msgid "searching in provides entries"
 msgstr "pesquisando nas entradas dos fornecimentos"
 
-#: ../yum/__init__.py:1881
+#: ../yum/__init__.py:1907
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Fornecimento combina com: %s"
 
-#: ../yum/__init__.py:1930
+#: ../yum/__init__.py:1956
 msgid "No group data available for configured repositories"
 msgstr "Nenhum dado de grupos disponível para os repositório configurados"
 
-#: ../yum/__init__.py:1961
-#: ../yum/__init__.py:1980
-#: ../yum/__init__.py:2011
-#: ../yum/__init__.py:2017
-#: ../yum/__init__.py:2090
-#: ../yum/__init__.py:2094
+#: ../yum/__init__.py:1987
+#: ../yum/__init__.py:2006
+#: ../yum/__init__.py:2037
+#: ../yum/__init__.py:2043
+#: ../yum/__init__.py:2116
+#: ../yum/__init__.py:2120
 #, python-format
 msgid "No Group named %s exists"
 msgstr "Não existe nenhum grupo de nome %s"
 
-#: ../yum/__init__.py:1992
-#: ../yum/__init__.py:2107
+#: ../yum/__init__.py:2018
+#: ../yum/__init__.py:2133
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "o pacote %s não foi marcado no grupo %s"
 
-#: ../yum/__init__.py:2039
+#: ../yum/__init__.py:2065
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Adicionando o pacote %s do grupo %s"
 
-#: ../yum/__init__.py:2043
+#: ../yum/__init__.py:2069
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "Nenhum pacote de nome %s disponível para ser instalado"
 
-#: ../yum/__init__.py:2132
+#: ../yum/__init__.py:2158
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "A tupla %s do pacote não pôde ser encontrada no packagesack"
 
-#: ../yum/__init__.py:2147
+#: ../yum/__init__.py:2173
 msgid "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
 msgstr "getInstalledPackageObject() será deixada de lado, use a self.rpmdb.searchPkgTuple().\n"
 
-#: ../yum/__init__.py:2199
-#: ../yum/__init__.py:2242
+#: ../yum/__init__.py:2225
+#: ../yum/__init__.py:2268
 msgid "Invalid versioned dependency string, try quoting it."
 msgstr "String de dependência versionada inválida, tente citá-la."
 
-#: ../yum/__init__.py:2201
-#: ../yum/__init__.py:2244
+#: ../yum/__init__.py:2227
+#: ../yum/__init__.py:2270
 msgid "Invalid version flag"
 msgstr "Sinalizador de versão inválido"
 
-#: ../yum/__init__.py:2216
-#: ../yum/__init__.py:2220
+#: ../yum/__init__.py:2242
+#: ../yum/__init__.py:2246
 #, python-format
 msgid "No Package found for %s"
 msgstr "Nenhum pacote encontrado para %s"
 
-#: ../yum/__init__.py:2428
+#: ../yum/__init__.py:2425
 msgid "Package Object was not a package object instance"
 msgstr "O pacote de objeto não era uma instância de pacote de objeto"
 
-#: ../yum/__init__.py:2432
+#: ../yum/__init__.py:2429
 msgid "Nothing specified to install"
 msgstr "Nada especificado para instalar"
 
 #. only one in there
-#: ../yum/__init__.py:2450
+#: ../yum/__init__.py:2447
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
 msgstr "Verificando por fornecimento virtual ou de arquivo para %s"
 
-#: ../yum/__init__.py:2456
-#: ../yum/__init__.py:2696
-#: ../yum/__init__.py:2863
+#: ../yum/__init__.py:2453
+#: ../yum/__init__.py:2701
+#: ../yum/__init__.py:2871
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "Nenhuma correspondência para o argumento: %s"
 
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2519
 #, python-format
 msgid "Package %s installed and not available"
 msgstr "Pacote %s instalado, mas não disponível"
 
-#: ../yum/__init__.py:2525
+#: ../yum/__init__.py:2522
 msgid "No package(s) available to install"
 msgstr "Nenhum pacote disponível para instalar"
 
-#: ../yum/__init__.py:2537
+#: ../yum/__init__.py:2534
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "Pacote: %s - já está no conjunto de transações"
 
-#: ../yum/__init__.py:2552
+#: ../yum/__init__.py:2549
 #, python-format
 msgid "Package %s is obsoleted by %s, trying to install %s instead"
 msgstr "O pacote %s foi tornado obsoleto por %s, tentando instalar %s ao invés disso"
 
-#: ../yum/__init__.py:2560
+#: ../yum/__init__.py:2557
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "O pacote %s já está instalado em sua última versão"
 
-#: ../yum/__init__.py:2567
+#: ../yum/__init__.py:2564
 #, python-format
 msgid "Package matching %s already installed. Checking for update."
 msgstr "O pacote %s já está instalado. Verificando por uma atualização."
 
 #. update everything (the easy case)
-#: ../yum/__init__.py:2640
+#: ../yum/__init__.py:2645
 msgid "Updating Everything"
 msgstr "Atualizando tudo"
 
-#: ../yum/__init__.py:2658
-#: ../yum/__init__.py:2768
-#: ../yum/__init__.py:2790
-#: ../yum/__init__.py:2812
+#: ../yum/__init__.py:2663
+#: ../yum/__init__.py:2773
+#: ../yum/__init__.py:2794
+#: ../yum/__init__.py:2820
 #, python-format
 msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Pacote já obsoleto não será atualizado: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2693
-#: ../yum/__init__.py:2860
+#: ../yum/__init__.py:2698
+#: ../yum/__init__.py:2868
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: ../yum/__init__.py:2759
+#: ../yum/__init__.py:2764
 #, python-format
 msgid "Package is already obsoleted: %s.%s %s:%s-%s"
 msgstr "O pacote já está obsoleto: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2793
-#: ../yum/__init__.py:2815
+#: ../yum/__init__.py:2797
+#: ../yum/__init__.py:2823
 #, python-format
 msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
 msgstr "Pacote já atualizado não será atualizado novamente: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2876
+#: ../yum/__init__.py:2884
 msgid "No package matched to remove"
 msgstr "Nenhum pacote encontrado para remoção"
 
-#: ../yum/__init__.py:2910
+#: ../yum/__init__.py:2918
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "Não foi possível abrir o arquivo: %s. Ignorando."
 
-#: ../yum/__init__.py:2913
+#: ../yum/__init__.py:2921
 #, python-format
 msgid "Examining %s: %s"
 msgstr "Examinando %s: %s"
 
-#: ../yum/__init__.py:2921
+#: ../yum/__init__.py:2929
 #, python-format
 msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
 msgstr "Não foi possível adicionar o pacote %s à transação. %s não é uma arquitetura compatível."
 
-#: ../yum/__init__.py:2929
+#: ../yum/__init__.py:2937
 #, python-format
 msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
 msgstr "O pacote %s não está instalado, não é possível atualizá-lo. Execute o yum install para instalá-lo."
 
-#: ../yum/__init__.py:2962
+#: ../yum/__init__.py:2970
 #, python-format
 msgid "Excluding %s"
 msgstr "Excluindo %s"
 
-#: ../yum/__init__.py:2967
+#: ../yum/__init__.py:2975
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Marcando %s para ser instalado"
 
-#: ../yum/__init__.py:2973
+#: ../yum/__init__.py:2981
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "Marcando %s como uma atualização do %s"
 
-#: ../yum/__init__.py:2980
+#: ../yum/__init__.py:2988
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: não atualiza o pacote instalado."
 
-#: ../yum/__init__.py:2998
+#: ../yum/__init__.py:3006
 msgid "Problem in reinstall: no package matched to remove"
 msgstr "Problema na reinstalação: nenhum pacote encontrado para remoção"
 
-#: ../yum/__init__.py:3009
+#: ../yum/__init__.py:3017
 #, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "O pacote %s permite múltiplas instalações, ignorando"
 
-#: ../yum/__init__.py:3016
+#: ../yum/__init__.py:3024
 msgid "Problem in reinstall: no package matched to install"
 msgstr "Problema na reinstalação: nenhum pacote encontrado para instalação"
 
-#: ../yum/__init__.py:3051
+#: ../yum/__init__.py:3059
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "Obtendo a chave GPG a partir de %s"
 
-#: ../yum/__init__.py:3071
+#: ../yum/__init__.py:3079
 msgid "GPG key retrieval failed: "
 msgstr "A obtenção da chave GPG falhou:"
 
-#: ../yum/__init__.py:3082
+#: ../yum/__init__.py:3090
 #, python-format
 msgid "GPG key parsing failed: key does not have value %s"
 msgstr "Falha na análise da chave GPG: ela não tem o valor %s"
 
-#: ../yum/__init__.py:3114
+#: ../yum/__init__.py:3122
 #, python-format
 msgid "GPG key at %s (0x%s) is already installed"
 msgstr "A chave GPG em %s (0x%s) já está instalada"
 
 #. Try installing/updating GPG key
-#: ../yum/__init__.py:3119
-#: ../yum/__init__.py:3181
+#: ../yum/__init__.py:3127
+#: ../yum/__init__.py:3189
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "Importando chave GPG 0x%s \"%s\" a partir de %s"
 
-#: ../yum/__init__.py:3136
+#: ../yum/__init__.py:3144
 msgid "Not installing key"
 msgstr "Não está instalando a chave"
 
-#: ../yum/__init__.py:3142
+#: ../yum/__init__.py:3150
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "Falha na importação da chave (código %d)"
 
-#: ../yum/__init__.py:3143
-#: ../yum/__init__.py:3202
+#: ../yum/__init__.py:3151
+#: ../yum/__init__.py:3210
 msgid "Key imported successfully"
 msgstr "Chave importada com sucesso"
 
-#: ../yum/__init__.py:3148
-#: ../yum/__init__.py:3207
+#: ../yum/__init__.py:3156
+#: ../yum/__init__.py:3215
 #, python-format
 msgid ""
 "The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n"
@@ -2076,38 +2117,38 @@ msgstr ""
 "As chaves GPG listadas para o repositório \"%s\" já estão instaladas, mas não estão corretas para este pacote.\n"
 "Verifique se as URLs corretas das chaves estão configuradas para esse repositório."
 
-#: ../yum/__init__.py:3157
+#: ../yum/__init__.py:3165
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "A importação da(s) chave(s) não ajudou, chave(s) errada(s)?"
 
-#: ../yum/__init__.py:3176
+#: ../yum/__init__.py:3184
 #, python-format
 msgid "GPG key at %s (0x%s) is already imported"
 msgstr "A chave GPG em %s (0x%s) já foi importada"
 
-#: ../yum/__init__.py:3196
+#: ../yum/__init__.py:3204
 #, python-format
 msgid "Not installing key for repo %s"
 msgstr "A chave para o repositório %s não será instalada"
 
-#: ../yum/__init__.py:3201
+#: ../yum/__init__.py:3209
 msgid "Key import failed"
 msgstr "Falha na importação da chave"
 
-#: ../yum/__init__.py:3292
+#: ../yum/__init__.py:3300
 msgid "Unable to find a suitable mirror."
 msgstr "Não foi possível encontrar um espelho apropriado."
 
-#: ../yum/__init__.py:3294
+#: ../yum/__init__.py:3302
 msgid "Errors were encountered while downloading packages."
 msgstr "Foram encontrados erros ao baixar os pacotes."
 
-#: ../yum/__init__.py:3335
+#: ../yum/__init__.py:3343
 #, python-format
 msgid "Please report this error at %s"
 msgstr "Por favor, relate esse erro em %s"
 
-#: ../yum/__init__.py:3359
+#: ../yum/__init__.py:3367
 msgid "Test Transaction Errors: "
 msgstr "Erros do teste de transação:"
 
@@ -2204,6 +2245,12 @@ msgstr "Cabeçalho %s danificado"
 msgid "Error opening rpm %s - error %s"
 msgstr "Erro ao abrir o rpm %s - erro %s"
 
+#~ msgid "Entering rpm code"
+#~ msgstr "Entrando no código rpm"
+#~ msgid "Leaving rpm code"
+#~ msgstr "Saindo do código rpm"
+#~ msgid "Parsing package install arguments"
+#~ msgstr "Analisando argumentos da instalação de pacotes"
 #~ msgid "Could not find update match for %s"
 #~ msgstr "Não foi possível encontrar uma atualização correspondente ao %s"
 #~ msgid ""
diff --git a/rpmUtils/__init__.py b/rpmUtils/__init__.py
index 4b35611..3c230db 100644
--- a/rpmUtils/__init__.py
+++ b/rpmUtils/__init__.py
@@ -6,5 +6,4 @@ class RpmUtilsError(Exception):
     """ Exception thrown for anything rpmUtils related. """
 
     def __init__(self, args=None):
-        Exception.__init__(self)
-        self.args = args
+        Exception.__init__(self, args)
diff --git a/rpmUtils/arch.py b/rpmUtils/arch.py
index 5402455..fb59ad4 100644
--- a/rpmUtils/arch.py
+++ b/rpmUtils/arch.py
@@ -57,7 +57,8 @@ arches = {
     "alpha":      "noarch",
 
     # arm
-    "armv61": "armv5tejl",
+    "armv7l": "armv6l",
+    "armv6l": "armv5tejl",
     "armv5tejl": "armv5tel",
     "armv5tel": "noarch",
 
@@ -125,13 +126,14 @@ def getBestArchFromList(archlist, myarch=None):
         then return the best arch from the list for the canonArch.
     """
     
+    if len(archlist) == 0:
+        return None
+
     if myarch is None:
         myarch = canonArch
     
     mybestarch = getBestArch(myarch)
     
-    if len(archlist) == 0:
-        return None
     bestarch = getBestArch(myarch)
     if bestarch != myarch:
         bestarchchoice = getBestArchFromList(archlist, bestarch)
diff --git a/rpmUtils/miscutils.py b/rpmUtils/miscutils.py
index e9fb3e5..ee8cd79 100644
--- a/rpmUtils/miscutils.py
+++ b/rpmUtils/miscutils.py
@@ -111,7 +111,11 @@ def pkgTupleFromHeader(hdr):
        None epoch to 0, as well."""
    
     name = hdr['name']
-    arch = hdr['arch']
+    if hdr[rpm.RPMTAG_SOURCERPM]:
+        arch = hdr['arch']
+    else:
+        arch = 'src'
+        
     ver = hdr['version']
     rel = hdr['release']
     epoch = hdr['epoch']
@@ -157,7 +161,7 @@ def rangeCompare(reqtuple, provtuple):
     if r is None:
         reqr = None
 
-    rc = rpmUtils.miscutils.compareEVR((e, v, r), (reqe, reqv, reqr))
+    rc = compareEVR((e, v, r), (reqe, reqv, reqr))
 
     # does not match unless
     if rc >= 1:
diff --git a/rpmUtils/updates.py b/rpmUtils/updates.py
index 062a522..5506273 100644
--- a/rpmUtils/updates.py
+++ b/rpmUtils/updates.py
@@ -18,6 +18,8 @@ import rpmUtils
 import rpmUtils.miscutils
 import rpmUtils.arch
 
+def _vertup_cmp(tup1, tup2):
+    return rpmUtils.miscutils.compareEVR(tup1, tup2)
 class Updates:
     """
     This class computes and keeps track of updates and obsoletes.
@@ -38,8 +40,10 @@ class Updates:
         self.obsoleting_dict = {} # obsoleting pkgtup -> [ obsoleted pkgtups ]
 
         self.exactarch = 1 # don't change archs by default
-        self.exactarchlist = ['kernel', 'kernel-smp', 'glibc', 'kernel-hugemem',
-                              'kernel-enterprise', 'kernel-bigmem', 'kernel-BOOT']
+        self.exactarchlist = set(['kernel', 'kernel-smp', 'glibc',
+                                  'kernel-hugemem',
+                                  'kernel-enterprise', 'kernel-bigmem',
+                                  'kernel-BOOT'])
                               
         self.myarch = rpmUtils.arch.canonArch # set this if you want to
                                               # test on some other arch
@@ -97,7 +101,7 @@ class Updates:
     def debugprint(self, msg):
         if self.debug:
             print msg
-        
+
     def makeNADict(self, pkglist, Nonelists):
         """return lists of (e,v,r) tuples as value of a dict keyed on (n, a)
             optionally will return a (n, None) entry with all the a for that
@@ -140,28 +144,21 @@ class Updates:
         """returns a list of package tuples in a list (n, a, e, v, r)
            takes a package name, a list of archs, and a list of pkgs in
            (n, a, e, v, r) form."""
-        # go through list and throw out all pkgs not in archlist
-        matchlist = []
-        for (n, a, e, v, r) in pkglist:
-            if name == n:
-                if a in archlist:
-                    matchlist.append((n, a, e, v, r))
-
-        if len(matchlist) == 0:
-            return []
-            
-        # get all the evr's in a tuple list for returning the highest
-        verlist = []
-        for (n, a, e, v, r) in matchlist:
-            verlist.append((e,v,r))
-
-        (high_e, high_v, high_r) = self.returnNewest(verlist)
-            
         returnlist = []
-        for (n, a, e, v, r) in matchlist:
-            if (high_e, high_v, high_r) == (e, v, r):
-                returnlist.append((n,a,e,v,r))
-                
+        high_vertup = None
+        for pkgtup in pkglist:
+            (n, a, e, v, r) = pkgtup
+            # FIXME: returnlist used to _possibly_ contain things not in
+            #        archlist ... was that desired?
+            if name == n and a in archlist:
+                vertup = (e, v, r)
+                if (high_vertup is None or
+                    (_vertup_cmp(high_vertup, vertup) < 0)):
+                    high_vertup = vertup
+                    returnlist = []
+                if vertup == high_vertup:
+                    returnlist.append(pkgtup)
+
         return returnlist
            
     def condenseUpdates(self):
@@ -295,7 +292,6 @@ class Updates:
         newpkgs = self.availdict
         
         archlist = rpmUtils.arch.getArchList(self.myarch)
-                
         for (n, a) in newpkgs.keys():
             # remove stuff not in our archdict
             # high log here
@@ -421,9 +417,11 @@ class Updates:
             
             multicompat = rpmUtils.arch.getMultiArchInfo(self.myarch)[0]
             multiarchlist = rpmUtils.arch.getArchList(multicompat)
-            archlists = [ biarches, multiarchlist ]
+            archlists = [ set(biarches), set(multiarchlist) ]
+            # archlists = [ biarches, multiarchlist ]
         else:
-            archlists = [ archlist ]
+            archlists = [ set(archlist) ]
+            # archlists = [ archlist ]
             
         for n in complexupdate:
             for thisarchlist in archlists:
@@ -435,19 +433,18 @@ class Updates:
 
                 highestinstalledpkgs = self.returnHighestVerFromAllArchsByName(n,
                                          thisarchlist, tmplist)
+                hipdict = self.makeNADict(highestinstalledpkgs, 0)
                                          
                 
-                tmplist = []
-                for (a, e, v, r) in newpkgs[(n, None)]:
-                    tmplist.append((n, a, e, v, r))                        
-                highestavailablepkgs = self.returnHighestVerFromAllArchsByName(n,
-                                         thisarchlist, tmplist)
+                if n in self.exactarchlist:
+                    tmplist = []
+                    for (a, e, v, r) in newpkgs[(n, None)]:
+                        tmplist.append((n, a, e, v, r))
+                    highestavailablepkgs = self.returnHighestVerFromAllArchsByName(n,
+                                             thisarchlist, tmplist)
 
-                hapdict = self.makeNADict(highestavailablepkgs, 0)
-                hipdict = self.makeNADict(highestinstalledpkgs, 0)
+                    hapdict = self.makeNADict(highestavailablepkgs, 0)
 
-                # now we have the two sets of pkgs
-                if n in self.exactarchlist:
                     for (n, a) in hipdict:
                         if hapdict.has_key((n, a)):
                             self.debugprint('processing %s.%s' % (n, a))
@@ -465,16 +462,25 @@ class Updates:
                     # this is where we have to have an arch contest if there
                     # is more than one arch updating with the highest ver
                     instarchs = []
-                    availarchs = []
                     for (n,a) in hipdict:
                         instarchs.append(a)
-                    for (n,a) in hapdict:
-                        availarchs.append(a)
                     
                     rpm_a = rpmUtils.arch.getBestArchFromList(instarchs, myarch=self.myarch)
+                    if rpm_a is None:
+                        continue
+
+                    tmplist = []
+                    for (a, e, v, r) in newpkgs[(n, None)]:
+                        tmplist.append((n, a, e, v, r))
+                    highestavailablepkgs = self.returnHighestVerFromAllArchsByName(n,
+                                             thisarchlist, tmplist)
+
+                    hapdict = self.makeNADict(highestavailablepkgs, 0)
+                    availarchs = []
+                    for (n,a) in hapdict:
+                        availarchs.append(a)
                     a = rpmUtils.arch.getBestArchFromList(availarchs, myarch=self.myarch)
-                    
-                    if rpm_a is None or a is None:
+                    if a is None:
                         continue
                         
                     (rpm_e, rpm_v, rpm_r) = hipdict[(n, rpm_a)][0] # there can be just one
diff --git a/test/operationstests.py b/test/operationstests.py
index 12a1627..df52f9a 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -127,17 +127,17 @@ class KernelTests(OperationsTests):
         pkgs.avail.append(FakePackage('kernel', '2.6.23.1', '42',arch='i686'))
         pkgs.avail.append(FakePackage('kernel', '2.6.23.1', '42',arch='i586'))
     
-    def testKernelInstall(self):
+    def testKernelInstall1(self):
         p = self.pkgs
         res, msg = self.runOperation(['install','kernel'], p.inst, p.avail)
         self.assertResult(p.inst)
 
-    def testKernelInstall(self):
+    def testKernelInstall2(self):
         p = self.pkgs
         res, msg = self.runOperation(['install','kernel-2.6.23.1-42'], p.inst, p.avail)
         self.assertResult(p.inst + [ p.avail[4] ] )
 
-    def testKernelInstall(self):
+    def testKernelInstall3(self):
         p = self.pkgs
         res, msg = self.runOperation(['install','kernel-2.6.23.8'], p.inst, p.avail)
         self.assertResult(p.inst)
diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 956516b..4fdf67c 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -423,6 +423,21 @@ class SimpleObsoletesTests(OperationsTests):
         self.assert_(res=='ok', msg)
         self.assertResult((ap, aop, dep1, dep2, dep3))
 
+    def testMultipleObsoleters(self):
+        rp1        = FakePackage('foo', '1', '1', '0', 'noarch')
+
+        aop1        = FakePackage('bar', '1', '1', '0', 'noarch')
+        aop1.addObsoletes('foo', 'LT', ('0', '1', '2'))
+        aop1.addConflicts('bazing')
+        aop2        = FakePackage('bazing', '1', '1', '0', 'noarch')
+        aop2.addObsoletes('foo', 'LT', ('0', '1', '2'))
+        aop2.addConflicts('bar')
+
+        res, msg = self.runOperation(['update'],
+                                     [rp1], [aop1, aop2])
+        self.assert_(res=='err', msg)
+        # self.assertResult((aop1,aop2))
+
 
 class GitMetapackageObsoletesTests(OperationsTests):
 
diff --git a/test/simpleupdatetests.py b/test/simpleupdatetests.py
index f372e85..d52cc9d 100644
--- a/test/simpleupdatetests.py
+++ b/test/simpleupdatetests.py
@@ -479,3 +479,207 @@ class SimpleUpdateTests(OperationsTests):
                                      [foo20, bar12])
         self.assert_(res=='ok', msg)
         self.assertResult((bar12,))
+
+    def testUpdateMultiRequiresVersions1(self):
+        pi11 = FakePackage('perl', '1', '1', '0', 'i386')
+        pr11 = FakePackage('perl', '1', '1', '0', 'i386')
+        p12 = FakePackage('perl', '1', '2', '0', 'i386')
+
+        pvi11 = FakePackage('perl-version', '1', '1', '0', 'i386')
+        pvi11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pvi11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pvr11 = FakePackage('perl-version', '1', '1', '0', 'i386')
+        pvr11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pvr11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pv12 = FakePackage('perl-version', '1', '2', '0', 'i386')
+        pv12.addRequires('perl', 'GE', ('0', '0', '0'))
+        pv12.addRequires('perl', 'EQ', ('0', '1', '2'))
+
+        res, msg = self.runOperation(['update', 'perl'],
+                                     [pi11, pvi11],
+                                     [p12, pv12])
+        self.assert_(res=='ok', msg)
+        self.assertResult((p12,pv12))
+
+    def testUpdateMultiRequiresVersions2(self):
+        pi11 = FakePackage('perl', '1', '1', '0', 'i386')
+        pr11 = FakePackage('perl', '1', '1', '0', 'i386')
+        p12 = FakePackage('perl', '1', '2', '0', 'i386')
+
+        pvi11 = FakePackage('perl-version', '1', '1', '0', 'i386')
+        pvi11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pvi11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pvr11 = FakePackage('perl-version', '1', '1', '0', 'i386')
+        pvr11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pvr11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pv12 = FakePackage('perl-version', '1', '2', '0', 'i386')
+        pv12.addRequires('perl', 'GE', ('0', '0', '0'))
+        pv12.addRequires('perl', 'EQ', ('0', '1', '2'))
+
+        res, msg = self.runOperation(['update', 'perl'],
+                                     [pi11, pvi11],
+                                     [pr11,p12, pvr11,pv12])
+        self.assert_(res=='ok', msg)
+        self.assertResult((p12,pv12))
+
+    def testUpdateMultiRequiresVersions3(self):
+        pi11 = FakePackage('perl', '1', '1', '0', 'i386')
+        pr11 = FakePackage('perl', '1', '1', '0', 'i386')
+        p12 = FakePackage('perl', '1', '2', '0', 'i386')
+
+        pvi11 = FakePackage('perl-version', '1', '1', '0', 'i386')
+        pvi11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pvi11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pvr11 = FakePackage('perl-version', '1', '1', '0', 'i386')
+        pvr11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pvr11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pv12 = FakePackage('perl-version', '1', '2', '0', 'i386')
+        pv12.addRequires('perl', 'GE', ('0', '0', '0'))
+        pv12.addRequires('perl', 'EQ', ('0', '1', '2'))
+
+        res, msg = self.runOperation(['update', 'perl-version'],
+                                     [pi11, pvi11],
+                                     [pr11,p12, pvr11,pv12])
+        self.assert_(res=='ok', msg)
+        self.assertResult((p12,pv12))
+
+    def testUpdateMultiRequiresVersions4(self):
+        pi11 = FakePackage('perl', '1', '1', '0', 'i386')
+        pr11 = FakePackage('perl', '1', '1', '0', 'i386')
+        p12 = FakePackage('perl', '1', '2', '0', 'i386')
+
+        pvi11 = FakePackage('perl-version', '1', '1', '0', 'i386')
+        pvi11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pvi11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pvr11 = FakePackage('perl-version', '1', '1', '0', 'i386')
+        pvr11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pvr11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pv12 = FakePackage('perl-version', '1', '2', '0', 'i386')
+        pv12.addRequires('perl', 'GE', ('0', '0', '0'))
+        pv12.addRequires('perl', 'EQ', ('0', '1', '2'))
+
+        pbi11 = FakePackage('perl-blah', '1', '1', '0', 'i386')
+        pbi11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pbi11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pbr11 = FakePackage('perl-blah', '1', '1', '0', 'i386')
+        pbr11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pbr11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pb12 = FakePackage('perl-blah', '1', '2', '0', 'i386')
+        pb12.addRequires('perl', 'EQ', ('0', '1', '2'))
+        pb12.addRequires('perl', 'GE', ('0', '0', '0'))
+
+        res, msg = self.runOperation(['update', 'perl-version'],
+                                     [pi11, pbi11, pvi11],
+                                     [pr11,p12, pbr11,pb12, pvr11,pv12])
+        self.assert_(res=='ok', msg)
+        self.assertResult((p12,pb12,pv12))
+
+    def testUpdateMultiRequiresVersions5(self):
+        pi11 = FakePackage('perl', '1', '1', '0', 'i386')
+        pr11 = FakePackage('perl', '1', '1', '0', 'i386')
+        p12 = FakePackage('perl', '1', '2', '0', 'i386')
+
+        pvi11 = FakePackage('perl-version', '1', '1', '0', 'i386')
+        pvi11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pvi11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pvr11 = FakePackage('perl-version', '1', '1', '0', 'i386')
+        pvr11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pvr11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pv12 = FakePackage('perl-version', '1', '2', '0', 'i386')
+        pv12.addRequires('perl', 'GE', ('0', '0', '0'))
+        pv12.addRequires('perl', 'EQ', ('0', '1', '2'))
+
+        pbi11 = FakePackage('perl-blah', '1', '1', '0', 'i386')
+        pbi11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pbi11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pbr11 = FakePackage('perl-blah', '1', '1', '0', 'i386')
+        pbr11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pbr11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pb12 = FakePackage('perl-blah', '1', '2', '0', 'i386')
+        pb12.addRequires('perl', 'EQ', ('0', '1', '2'))
+        pb12.addRequires('perl', 'GE', ('0', '0', '0'))
+
+        res, msg = self.runOperation(['update', 'perl-blah'],
+                                     [pi11, pbi11, pvi11],
+                                     [pr11,p12, pbr11,pb12, pvr11,pv12])
+        self.assert_(res=='ok', msg)
+        self.assertResult((p12,pb12,pv12))
+
+    def testUpdateMultiRequiresVersions8(self):
+        pi11 = FakePackage('perl', '1', '1', '0', 'i386')
+        pr11 = FakePackage('perl', '1', '1', '0', 'i386')
+        p12 = FakePackage('perl', '1', '2', '0', 'i386')
+
+        pvi11 = FakePackage('perl-version', '1', '1', '0', 'i386')
+        pvi11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pvi11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pvr11 = FakePackage('perl-version', '1', '1', '0', 'i386')
+        pvr11.addRequires('perl', 'GE', ('0', '0', '0'))
+        pvr11.addRequires('perl', 'EQ', ('0', '1', '1'))
+        pv12 = FakePackage('perl-version', '1', '2', '0', 'i386')
+        pv12.addRequires('perl', 'GE', ('0', '0', '0'))
+        pv12.addRequires('perl', 'EQ', ('0', '1', '2'))
+        pv13 = FakePackage('perl-version', '1', '3', '0', 'i386')
+        pv13.addRequires('perl', 'GE', ('0', '0', '0'))
+        pv13.addRequires('perl', 'EQ', ('0', '1', '3'))
+
+        res, msg = self.runOperation(['update', 'perl'],
+                                     [pi11, pvi11],
+                                     [pr11,p12, pvr11,pv12,pv13])
+        # FIXME: This fails ... it tries to install pv13 instead
+        self.assert_(res=='err', msg)
+        # self.assert_(res=='ok', msg)
+        # self.assertResult((p12,pv12))
+
+    def testInstallFilenamePkgSplit1(self):
+        pi11 = FakePackage('phoo', '1', '1', '0', 'i386')
+        pi11.addProvides('/path/to/phooy', 'EQ', ('0', '1', '1'))
+        pr11 = FakePackage('phoo', '1', '1', '0', 'i386')
+        pr11.addProvides('/path/to/phooy', 'EQ', ('0', '1', '1'))
+        p12 = FakePackage('phoo', '1', '2', '0', 'i386')
+        py12 = FakePackage('phoo-y', '1', '2', '0', 'i386')
+        py12.addProvides('/path/to/phooy', 'EQ', ('0', '1', '2'))
+
+
+        res, msg = self.runOperation(['update', '/path/to/phooy'],
+                                     [pi11],
+                                     [pr11,p12, py12])
+        self.assert_(res=='ok', msg)
+        # FIXME: We'd really like it to be:
+        # self.assertResult((p12,py12))
+        # ...but there is no info. you can work this out with.
+        self.assertResult((p12,))
+
+    def testInstallFilenamePkgSplit2(self):
+        pi11 = FakePackage('phoo', '1', '1', '0', 'i386')
+        pi11.addProvides('/path/to/phooy', 'EQ', ('0', '1', '1'))
+        pr11 = FakePackage('phoo', '1', '1', '0', 'i386')
+        pr11.addProvides('/path/to/phooy', 'EQ', ('0', '1', '1'))
+        p12 = FakePackage('phoo', '1', '2', '0', 'i386')
+        p12.addObsoletes('phoo', 'LE', ('0', '1', '1'))
+        py12 = FakePackage('phoo-y', '1', '2', '0', 'i386')
+        py12.addProvides('/path/to/phooy', 'EQ', ('0', '1', '2'))
+        py12.addObsoletes('phoo', 'LE', ('0', '1', '1'))
+
+        res, msg = self.runOperation(['update', '/path/to/phooy'],
+                                     [pi11],
+                                     [pr11,p12, py12])
+        self.assert_(res=='ok', msg)
+        self.assertResult((p12,py12))
+
+    def testInstallFilenamePkgSplit3(self):
+        p11 = FakePackage('phoo', '1', '1', '0', 'i386')
+        p11.addProvides('/path/to/phooy', 'EQ', ('0', '1', '1'))
+        pi12 = FakePackage('phoo', '1', '2', '0', 'i386')
+        pi12.addObsoletes('phoo', 'LE', ('0', '1', '1'))
+        pr12 = FakePackage('phoo', '1', '2', '0', 'i386')
+        pr12.addObsoletes('phoo', 'LE', ('0', '1', '1'))
+        py12 = FakePackage('phoo-y', '1', '2', '0', 'i386')
+        py12.addProvides('/path/to/phooy', 'EQ', ('0', '1', '2'))
+        py12.addObsoletes('phoo', 'LE', ('0', '1', '1'))
+
+        res, msg = self.runOperation(['install', '/path/to/phooy'],
+                                     [pi12],
+                                     [p11, pr12, py12])
+        self.assert_(res=='ok', msg)
+        self.assertResult((pi12,py12))
diff --git a/test/testbase.py b/test/testbase.py
index d0ff1c3..9cab5f9 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -42,6 +42,7 @@ class FakeConf(object):
         self.multilib_policy = 'best'
         self.persistdir = '/should-not-exist-bad-test!'
         self.showdupesfromrepos = False
+        self.uid = 0
 
 class FakeRepo(object):
 
@@ -72,6 +73,7 @@ class FakePackage(packages.YumAvailablePackage):
 
         # Just a unique integer
         self.id = self.__hash__()
+        self.pkgKey = self.__hash__()
 
     def addProvides(self, name, flag=None, evr=(None, None, None)):
         self.prco['provides'].append((name, flag, evr))
@@ -323,7 +325,7 @@ class OperationsTests(_DepsolveTestsBase):
         requirements from.
         """
         depsolver = YumBaseCli()
-        self.rpmdb = depsolver.rpmdb = packageSack.PackageSack()
+        self.rpmdb = depsolver.rpmdb = FakeRpmDb()
         self.xsack = depsolver._pkgSack  = packageSack.PackageSack()
         self.repo = depsolver.repo = FakeRepo("installed")
         depsolver.conf = FakeConf()
diff --git a/test/yum-leak-test.py b/test/yum-leak-test.py
new file mode 100755
index 0000000..f3d6de3
--- /dev/null
+++ b/test/yum-leak-test.py
@@ -0,0 +1,11 @@
+#! /usr/bin/python -tt
+
+import yum, os, sys, time, gc
+
+while True:
+    yb = yum.YumBase()
+    yb.repos.setCacheDir(yum.misc.getCacheDir())
+    yb.rpmdb.returnPackages()
+    yb.pkgSack.returnPackages()
+    time.sleep(4)
+    # print "DBG:", gc.get_referrers(yb)
diff --git a/utils.py b/utils.py
index cea9110..13a698c 100644
--- a/utils.py
+++ b/utils.py
@@ -61,20 +61,20 @@ class YumUtilBase(YumBaseCli):
         root = self._parser.getRoot(opts)
         # Read up configuration options and initialise plugins
         try:
-            disabled_plugins = None
+            pc = self.preconf
+            pc.fn = opts.conffile
+            pc.root = root
+            pc.init_plugins = not opts.noplugins
+            pc.plugin_types = pluginsTypes
+            pc.optparser = self._parser
+            pc.debuglevel = opts.debuglevel
+            pc.errorlevel = opts.errorlevel
             if hasattr(opts, "disableplugins"):
-                disabled_plugins = self._parser._splitArg(opts.disableplugins)
-            enabled_plugins  = None
+                pc.disabled_plugins =self._parser._splitArg(opts.disableplugins)
             if hasattr(opts, "enableplugins"):
-                enabled_plugins = self._parser._splitArg(opts.enableplugins)
-            self._getConfig(opts.conffile, root, 
-                    init_plugins=not opts.noplugins,
-                    plugin_types= pluginsTypes,
-                    optparser=self._parser,
-                    debuglevel=opts.debuglevel,
-                    errorlevel=opts.errorlevel,
-                    disabled_plugins=disabled_plugins,
-                    enabled_plugins=enabled_plugins)
+                pc.enabled_plugins = self._parser._splitArg(opts.enableplugins)
+            self.conf
+
         except yum.Errors.ConfigError, e:
             self.logger.critical(_('Config Error: %s'), e)
             sys.exit(1)
diff --git a/yum/Errors.py b/yum/Errors.py
index be6bda2..de777a6 100644
--- a/yum/Errors.py
+++ b/yum/Errors.py
@@ -47,10 +47,11 @@ class YumRPMCheckError(YumBaseError):
     pass
         
 class LockError(YumBaseError):
-    def __init__(self, errno, msg):
+    def __init__(self, errno, msg, pid=0):
         YumBaseError.__init__(self)
         self.errno = errno
         self.msg = msg
+        self.pid = pid
         
 class DepError(YumBaseError):
     pass
diff --git a/yum/__init__.py b/yum/__init__.py
index 65b2d65..9334f98 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -54,7 +54,7 @@ import transactioninfo
 import urlgrabber
 from urlgrabber.grabber import URLGrabber, URLGrabError
 from urlgrabber.progress import format_number
-from packageSack import packagesNewestByNameArch, packagesNewestByName
+from packageSack import packagesNewestByNameArch
 import depsolve
 import plugins
 import logginglevels
@@ -82,6 +82,23 @@ __version_info__ = tuple([ int(num) for num in __version__.split('.')])
 # multiple YumBase() objects.
 default_grabber.opts.user_agent += " yum/" + __version__
 
+class _YumPreBaseConf:
+    """This is the configuration interface for the YumBase configuration.
+       So if you want to change if plugins are on/off, or debuglevel/etc.
+       you tweak it here, and when yb.conf does it's thing ... it happens. """
+
+    def __init__(self):
+        self.fn = '/etc/yum/yum.conf'
+        self.root = '/'
+        self.init_plugins = True
+        self.plugin_types = (plugins.TYPE_CORE,)
+        self.optparser = None
+        self.debuglevel = None
+        self.errorlevel = None
+        self.disabled_plugins = None
+        self.enabled_plugins = None
+
+
 class YumBase(depsolve.Depsolve):
     """This is a primary structure and base class. It houses the objects and
        methods needed to perform most things in yum. It is almost an abstract
@@ -109,6 +126,8 @@ class YumBase(depsolve.Depsolve):
 
         self.mediagrabber = None
 
+        self.preconf = _YumPreBaseConf()
+
     def __del__(self):
         self.close()
         self.closeRpmDB()
@@ -125,8 +144,8 @@ class YumBase(depsolve.Depsolve):
     def doGenericSetup(self, cache=0):
         """do a default setup for all the normal/necessary yum components,
            really just a shorthand for testing"""
-        
-        self._getConfig(init_plugins=False)
+
+        self.preconf.init_plugins = False
         self.conf.cache = cache
 
     def doConfigSetup(self, fn='/etc/yum/yum.conf', root='/', init_plugins=True,
@@ -134,38 +153,54 @@ class YumBase(depsolve.Depsolve):
             errorlevel=None):
         warnings.warn(_('doConfigSetup() will go away in a future version of Yum.\n'),
                 Errors.YumFutureDeprecationWarning, stacklevel=2)
-                
-        return self._getConfig(fn=fn, root=root, init_plugins=init_plugins,
-             plugin_types=plugin_types, optparser=optparser, debuglevel=debuglevel,
-             errorlevel=errorlevel)
+
+        if hasattr(self, 'preconf'):
+            self.preconf.fn = fn
+            self.preconf.root = root
+            self.preconf.init_plugins = init_plugins
+            self.preconf.plugin_types = plugin_types
+            self.preconf.optparser = optparser
+            self.preconf.debuglevel = debuglevel
+            self.preconf.errorlevel = errorlevel
+
+        return self.conf
         
-    def _getConfig(self, fn='/etc/yum/yum.conf', root='/', init_plugins=True,
-            plugin_types=(plugins.TYPE_CORE,), optparser=None, debuglevel=None,
-            errorlevel=None,disabled_plugins=None,enabled_plugins=None):
+    def _getConfig(self, **kwargs):
         '''
         Parse and load Yum's configuration files and call hooks initialise
-        plugins and logging.
-
-        @param fn: Path to main configuration file to parse (yum.conf).
-        @param root: Filesystem root to use.
-        @param init_plugins: If False, plugins will not be loaded here. If
-            True, plugins will be loaded if the "plugins" option is enabled in
-            the configuration file.
-        @param plugin_types: As per doPluginSetup()
-        @param optparser: As per doPluginSetup()
-        @param debuglevel: Debug level to use for logging. If None, the debug
-            level will be read from the configuration file.
-        @param errorlevel: Error level to use for logging. If None, the debug
-            level will be read from the configuration file.
-        @param disabled_plugins: Plugins to be disabled    
-        @param enabled_plugins: Plugins to be enabled
-        '''
+        plugins and logging. Uses self.preconf for pre-configuration,
+        configuration. '''
 
         # ' xemacs syntax hack
 
+        if kwargs:
+            warnings.warn('Use .preconf instead of passing args to _getConfig')
+
         if self._conf:
             return self._conf
         conf_st = time.time()            
+
+        if kwargs:
+            for arg in ('fn', 'root', 'init_plugins', 'plugin_types',
+                        'optparser', 'debuglevel', 'errorlevel',
+                        'disabled_plugins', 'enabled_plugins'):
+                if arg in kwargs:
+                    setattr(self.preconf, arg, kwargs[arg])
+
+        fn = self.preconf.fn
+        root = self.preconf.root
+        init_plugins = self.preconf.init_plugins
+        plugin_types = self.preconf.plugin_types
+        optparser = self.preconf.optparser
+        debuglevel = self.preconf.debuglevel
+        errorlevel = self.preconf.errorlevel
+        disabled_plugins = self.preconf.disabled_plugins
+        enabled_plugins = self.preconf.enabled_plugins
+
+        #  We don't want people accessing/altering preconf after it becomes
+        # worthless. So we delete it, and thus. it'll raise AttributeError
+        del self.preconf
+
         # TODO: Remove this block when we no longer support configs outside
         # of /etc/yum/
         if fn == '/etc/yum/yum.conf' and not os.path.exists(fn):
@@ -293,7 +328,7 @@ class YumBase(depsolve.Depsolve):
                 reposdir = self.conf.installroot + '/' + reposdir
 
             if os.path.isdir(reposdir):
-                for repofn in glob.glob('%s/*.repo' % reposdir):
+                for repofn in sorted(glob.glob('%s/*.repo' % reposdir)):
                     thisrepo_age = os.stat(repofn)[8]
                     if thisrepo_age < repo_config_age:
                         thisrepo_age = repo_config_age
@@ -367,7 +402,8 @@ class YumBase(depsolve.Depsolve):
 
         if self._rpmdb is None:
             rpmdb_st = time.time()
-            self.verbose_logger.debug(_('Reading Local RPMDB'))
+            self.verbose_logger.log(logginglevels.DEBUG_4,
+                                    _('Reading Local RPMDB'))
             self._rpmdb = rpmsack.RPMDBPackageSack(root=self.conf.installroot)
             self.verbose_logger.debug('rpmdb time: %0.3f' % (time.time() - rpmdb_st))
         return self._rpmdb
@@ -392,7 +428,7 @@ class YumBase(depsolve.Depsolve):
 
     def _getRepos(self, thisrepo=None, doSetup = False):
         """ For each enabled repository set up the basics of the repository. """
-        self._getConfig() # touch the config class first
+        self.conf # touch the config class first
 
         if doSetup:
             repo_st = time.time()        
@@ -493,7 +529,7 @@ class YumBase(depsolve.Depsolve):
         
         if self.conf.obsoletes:
             obs_init = time.time()    
-            self._up.rawobsoletes = self.pkgSack.returnObsoletes(newest=True)
+            self._up.rawobsoletes = self.pkgSack.returnObsoletes()
             self.verbose_logger.debug('up:Obs Init time: %0.3f' % (time.time() - obs_init))
             
         self._up.exactarch = self.conf.exactarch
@@ -538,7 +574,8 @@ class YumBase(depsolve.Depsolve):
             return self._comps
 
         group_st = time.time()            
-        self.verbose_logger.debug(_('Getting group metadata'))
+        self.verbose_logger.log(logginglevels.DEBUG_4,
+                                _('Getting group metadata'))
         reposWithGroups = []
         self.repos.doSetup()
         for repo in self.repos.listGroupsEnabled():
@@ -563,7 +600,7 @@ class YumBase(depsolve.Depsolve):
             if repo.groups_added: # already added the groups from this repo
                 continue
                 
-            self.verbose_logger.log(logginglevels.DEBUG_1,
+            self.verbose_logger.log(logginglevels.DEBUG_4,
                 _('Adding group file from repository: %s'), repo)
             groupfile = repo.getGroups()
             # open it up as a file object so iterparse can cope with our gz file
@@ -917,11 +954,10 @@ class YumBase(depsolve.Depsolve):
         for i in ('ts_all_fn', 'ts_done_fn'):
             if hasattr(cb, i):
                 fn = getattr(cb, i)
-                if os.path.exists(fn):
-                    try:
-                        os.unlink(fn)
-                    except (IOError, OSError), e:
-                        self.logger.critical(_('Failed to remove transaction file %s') % fn)
+                try:
+                    misc.unlink_f(fn)
+                except (IOError, OSError), e:
+                    self.logger.critical(_('Failed to remove transaction file %s') % fn)
 
         self.plugins.run('posttrans')
         return resultobject
@@ -1017,6 +1053,8 @@ class YumBase(depsolve.Depsolve):
         if len(includelist) == 0:
             return
         
+        # FIXME: Here we have to get all packages, and then exclude those that
+        #        don't match. Need a "negation" flag for returnPackages().
         pkglist = self.pkgSack.returnPackages(repo.id)
         exactmatch, matched, unmatched = \
            parsePackages(pkglist, includelist, casematch=1)
@@ -1068,11 +1106,11 @@ class YumBase(depsolve.Depsolve):
                     else:
                         # Whoa. What the heck happened?
                         msg = _('Unable to check if PID %s is active') % oldpid
-                        raise Errors.LockError(1, msg)
+                        raise Errors.LockError(1, msg, oldpid)
                 else:
                     # Another copy seems to be running.
                     msg = _('Existing lock %s: another copy is running as pid %s.') % (lockfile, oldpid)
-                    raise Errors.LockError(0, msg)
+                    raise Errors.LockError(0, msg, oldpid)
         # We've got the lock, store it so we can auto-unlock on __del__...
         self._lockfile = lockfile
     
@@ -1109,11 +1147,7 @@ class YumBase(depsolve.Depsolve):
             return 1
     
     def _unlock(self, filename):
-        try:
-            os.unlink(filename)
-        except OSError, msg:
-            pass
-
+        misc.unlink_f(filename)
 
     def verifyPkg(self, fo, po, raiseError):
         """verifies the package is what we expect it to be
@@ -1232,10 +1266,10 @@ class YumBase(depsolve.Depsolve):
             #  Recheck if the file is there, works around a couple of weird
             # edge cases.
             local = po.localPkg()
+            i += 1
             if os.path.exists(local):
                 if self.verifyPkg(local, po, False):
                     self.verbose_logger.debug(_("using local copy of %s") %(po,))
-                    i -= 1
                     remote_size -= po.size
                     if hasattr(urlgrabber.progress, 'text_meter_total_size'):
                         urlgrabber.progress.text_meter_total_size(remote_size,
@@ -1244,7 +1278,6 @@ class YumBase(depsolve.Depsolve):
                 if os.path.getsize(local) >= po.size:
                     os.unlink(local)
 
-            i += 1
             checkfunc = (self.verifyPkg, (po, 1), {})
             dirstat = os.statvfs(po.repo.pkgdir)
             if (dirstat.f_bavail * dirstat.f_bsize) <= long(po.size):
@@ -1278,7 +1311,7 @@ class YumBase(depsolve.Depsolve):
                 if errors.has_key(po):
                     del errors[po]
 
-        if callback_total is not None:
+        if callback_total is not None and not errors:
             callback_total(remote_pkgs, remote_size, beg_download)
 
         self.plugins.run('postdownload', pkglist=pkglist, errors=errors)
@@ -1325,10 +1358,7 @@ class YumBase(depsolve.Depsolve):
             except URLGrabError, e:
                 # might add a check for length of file - if it is < 
                 # required doing a reget
-                try:
-                    os.unlink(local)
-                except OSError, e:
-                    pass
+                misc.unlink_f(local)
             else:
                 po.hdrpath = local
                 return
@@ -1349,11 +1379,11 @@ class YumBase(depsolve.Depsolve):
         except Errors.RepoError, e:
             saved_repo_error = e
             try:
-                os.unlink(local)
+                misc.unlink_f(local)
             except OSError, e:
                 raise Errors.RepoError, saved_repo_error
             else:
-                raise
+                raise Errors.RepoError, saved_repo_error
         else:
             po.hdrpath = hdrpath
             return
@@ -1442,7 +1472,7 @@ class YumBase(depsolve.Depsolve):
             if not os.path.exists(fn):
                 continue
             try:
-                os.unlink(fn)
+                misc.unlink_f(fn)
             except OSError, e:
                 self.logger.warning(_('Cannot remove %s'), fn)
                 continue
@@ -1476,14 +1506,13 @@ class YumBase(depsolve.Depsolve):
         removed = 0
         for ext in exts:
             for repo in self.repos.listEnabled():
-                repo.dirSetup()
                 path = getattr(repo, pathattr)
                 if os.path.exists(path) and os.path.isdir(path):
                     filelist = misc.getFileList(path, ext, filelist)
 
         for item in filelist:
             try:
-                os.unlink(item)
+                misc.unlink_f(item)
             except OSError, e:
                 self.logger.critical(_('Cannot remove %s file %s'), filetype, item)
                 continue
@@ -2260,36 +2289,8 @@ class YumBase(depsolve.Depsolve):
         if len(pkglist) == 1:
             return pkglist[0]
 
-        bestlist  = packagesNewestByNameArch(pkglist)
-        #  Here we need the list of the latest version of each package
-        # the problem we are trying to fix is: ABC-1.2.i386 and ABC-1.3.noarch
-        # so in the above we need to "exclude" ABC < 1.3, which is done by
-        # making another list from newest by name and then make sure any pkg is
-        # in nbestlist.
-        nbestlist = packagesNewestByName(bestlist)
-
-        best = nbestlist[0]
-        nbestlist = set(nbestlist)
-        for pkg in bestlist:
-            if pkg == best:
-                continue
-            if pkg not in nbestlist:
-                continue
-
-            # This is basically _compare_providers() ... but without a reqpo
-            if len(pkg.name) < len(best.name): # shortest name silliness
-                best = pkg
-                continue
-            elif len(pkg.name) > len(best.name):
-                continue
-
-            # compare arch
-            arch = rpmUtils.arch.getBestArchFromList([pkg.arch, best.arch])
-            if arch == pkg.arch:
-                best = pkg
-                continue
-
-        return best
+        bestlist = self._compare_providers(pkglist, None)
+        return bestlist[0][0]
 
     def bestPackagesFromList(self, pkglist, arch=None, single_name=False):
         """Takes a list of packages, returns the best packages.
@@ -2436,16 +2437,14 @@ class YumBase(depsolve.Depsolve):
 
                 was_pattern = True
                 pats = [kwargs['pattern']]
-                exactmatch, matched, unmatched = \
-                    parsePackages(self.pkgSack.returnPackages(patterns=pats),
-                                  pats, casematch=1)
-                pkgs.extend(exactmatch)
-                pkgs.extend(matched)
+                mypkgs = self.pkgSack.returnPackages(patterns=pats,
+                                                      ignore_case=False)
+                pkgs.extend(mypkgs)
                 # if we have anything left unmatched, let's take a look for it
                 # being a dep like glibc.so.2 or /foo/bar/baz
                 
-                if len(unmatched) > 0:
-                    arg = unmatched[0] #only one in there
+                if not mypkgs:
+                    arg = kwargs['pattern']
                     self.verbose_logger.debug(_('Checking for virtual provide or file-provide for %s'), 
                         arg)
 
@@ -2514,10 +2513,15 @@ class YumBase(depsolve.Depsolve):
             # Do we still want to return errors here?
             # We don't in the cases below, so I didn't here...
             if 'pattern' in kwargs:
-                pkgs = self.rpmdb.returnPackages(patterns=[kwargs['pattern']])
+                pkgs = self.rpmdb.returnPackages(patterns=[kwargs['pattern']],
+                                                 ignore_case=False)
             if 'name' in kwargs:
                 pkgs = self.rpmdb.searchNevra(name=kwargs['name'])
-            for pkg in pkgs:
+            # Warning here does "weird" things when doing:
+            # yum --disablerepo='*' install '*'
+            # etc. ... see RHBZ#480402
+            if False:
+              for pkg in pkgs:
                 self.verbose_logger.warning(_('Package %s installed and not available'), pkg)
             if pkgs:
                 return []
@@ -2813,10 +2817,11 @@ class YumBase(depsolve.Depsolve):
             #        it to of what is installed. in the meantime name.arch is
             #        most likely correct
             pot_updated = self.rpmdb.searchNevra(name=available_pkg.name, arch=available_pkg.arch)
-            # only compare against the newest of what's installed
-            if pot_updated:
-                pot_updated.sort()
-                ipkg = pot_updated[-1]
+            if pot_updated and self.allowedMultipleInstalls(available_pkg):
+                # only compare against the newest of what's installed for kernel
+                pot_updated = sorted(pot_updated)[-1:]
+
+            for ipkg in pot_updated:
                 if self.tsInfo.isObsoleted(ipkg.pkgtup):
                     self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'), 
                                             ipkg.pkgtup)
diff --git a/yum/config.py b/yum/config.py
index 2219605..ae7b2f9 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -650,11 +650,9 @@ class YumConf(StartupConf):
     throttle = ThrottleOption(0)
 
     http_caching = SelectionOption('all', ('none', 'packages', 'all'))
-    #  Time in seconds (1.5h), yum-updatesd runs once per. hour by default
-    # this time means we don't do interactive network checks/updates if
-    # yum-updatesd is running.
-    metadata_expire = SecondsOption(60 * 90)
-    mirrorlist_expire = SecondsOption(86400) # time in seconds (1 day)
+    metadata_expire = SecondsOption(60 * 60 * 6) # Time in seconds (6h).
+    # Time in seconds (1 day). NOTE: This isn't used when using metalinks
+    mirrorlist_expire = SecondsOption(60 * 60 * 24)
     rpm_check_debug = BoolOption(True)
     disable_excludes = ListOption()    
     skip_broken = BoolOption(False)
diff --git a/yum/constants.py b/yum/constants.py
index c6de596..e4dd184 100644
--- a/yum/constants.py
+++ b/yum/constants.py
@@ -28,6 +28,7 @@ TS_OBSOLETED = 50
 TS_OBSOLETING = 60
 TS_AVAILABLE = 70
 TS_UPDATED = 90
+TS_FAILED = 100
 
 TS_INSTALL_STATES = [TS_INSTALL, TS_TRUEINSTALL, TS_UPDATE, TS_OBSOLETING]
 TS_REMOVE_STATES = [TS_ERASE, TS_OBSOLETED, TS_UPDATED]
diff --git a/yum/depsolve.py b/yum/depsolve.py
index ff66b4b..97f2b3f 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -1040,7 +1040,14 @@ class Depsolve(object):
         for pkg in pkgs:
             pkgresults[pkg] = 0
             if self.rpmdb.contains(pkg.name):
-                ipkgresults[pkg] = 0
+                #  We only want to count things as "installed" if they are
+                # older than what we are comparing, because this then an update
+                # so we give preference. If they are newer then obsoletes/etc.
+                # could play a part ... this probably needs a better fix.
+                rpmdbpkgs = self.rpmdb.returnPackages(patterns=[pkg.name])
+                newest = sorted(rpmdbpkgs)[-1]
+                if newest.verLT(pkg):
+                    ipkgresults[pkg] = 0
 
         #  This is probably only for "renames". What happens is that pkgA-1 gets
         # obsoleted by pkgB but pkgB requires pkgA-2, now _if_ the pkgA txmbr
@@ -1090,7 +1097,7 @@ class Depsolve(object):
                 if reqpo:
                     arches = (reqpo.arch, getBestArch())
                 else:
-                    arches = (getBestArch())
+                    arches = (getBestArch(),)
                 
                 for thisarch in arches:
                     res = _compare_arch_distance(po, nextpo, thisarch)
diff --git a/yum/misc.py b/yum/misc.py
index e0e8256..ead141d 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -9,6 +9,7 @@ from cStringIO import StringIO
 import base64
 import struct
 import re
+import errno
 import pgpmsg
 import tempfile
 import glob
@@ -24,11 +25,13 @@ except ImportError:
 try:
     import hashlib
     _available_checksums = ['md5', 'sha1', 'sha256', 'sha512']
+    _default_checksums = ['sha256']
 except ImportError:
     # Python-2.4.z ... gah!
     import sha
     import md5
     _available_checksums = ['md5', 'sha1']
+    _default_checksums = ['sha1']
     class hashlib:
 
         @staticmethod
@@ -130,18 +133,16 @@ def unique(s):
     if n == 0:
         return []
 
-    # Try using a dict first, as that's the fastest and will usually
+    # Try using a set first, as that's the fastest and will usually
     # work.  If it doesn't work, it will usually fail quickly, so it
     # usually doesn't cost much to *try* it.  It requires that all the
     # sequence elements be hashable, and support equality comparison.
-    u = {}
     try:
-        for x in s:
-            u[x] = 1
+        u = set(s)
     except TypeError:
         del u  # move on to the next method
     else:
-        return u.keys()
+        return list(u)
 
     # We can't hash all the elements.  Second fastest is to sort,
     # which brings the equal elements together; then duplicates are
@@ -179,7 +180,7 @@ class Checksums:
 
     def __init__(self, checksums=None, ignore_missing=False):
         if checksums is None:
-            checksums = ['sha256']
+            checksums = _default_checksums
         self._sumalgos = []
         self._sumtypes = []
         self._len = 0
@@ -512,7 +513,7 @@ def getCacheDir(tmpdir='/var/tmp'):
     # check for /var/tmp/yum-username-* - 
     prefix = 'yum-%s-' % username    
     dirpath = '%s/%s*' % (tmpdir, prefix)
-    cachedirs = glob.glob(dirpath)
+    cachedirs = sorted(glob.glob(dirpath))
     
     for thisdir in cachedirs:
         stats = os.lstat(thisdir)
@@ -616,7 +617,7 @@ def get_running_kernel_version_release(ts):
             
     # we've got nothing so far, so... we glob for the file that MIGHT have
     # this kernels and then look up the file in our rpmdb
-    fns = glob.glob('/boot/vmlinuz*%s*' % ver)
+    fns = sorted(glob.glob('/boot/vmlinuz*%s*' % ver))
     for fn in fns:
         mi = ts.dbMatch('basenames', fn)
         for h in mi:
@@ -756,6 +757,15 @@ def to_xml(item, attrib=False):
         item = xml.sax.saxutils.escape(item)
     return item
 
+def unlink_f(filename):
+    """ Call os.unlink, but don't die if the file isn't there. This is the main
+        difference between "rm -f" and plain "rm". """
+    try:
+        os.unlink(filename)
+    except OSError, e:
+        if e.errno != errno.ENOENT:
+            raise
+
 # ---------- i18n ----------
 import locale
 import sys
diff --git a/yum/packageSack.py b/yum/packageSack.py
index f3d2a4d..b95d1a7 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -23,6 +23,7 @@ import warnings
 import re
 import fnmatch
 import misc
+from packages import parsePackages
 
 class PackageSackBase(object):
     """Base class that provides the interface for PackageSacks."""
@@ -752,6 +753,10 @@ class PackageSack(PackageSackBase):
                 # nothing to return
                 pass
         
+        if patterns:
+            returnList = parsePackages(returnList, patterns, not ignore_case,
+                                       unique='repo-pkgkey')
+            returnList = returnList[0] + returnList[1]
         return returnList
 
     def returnNewestByNameArch(self, naTup=None,
diff --git a/yum/packages.py b/yum/packages.py
index 31b6045..bc3d6d5 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -41,14 +41,25 @@ urlparse.uses_fragment.append("media")
 # For verify
 import pwd
 import grp
+import sys
 
 def comparePoEVR(po1, po2):
     """
-    Compare two PackageEVR objects.
+    Compare two Package or PackageEVR objects.
     """
     (e1, v1, r1) = (po1.epoch, po1.version, po1.release)
     (e2, v2, r2) = (po2.epoch, po2.version, po2.release)
     return rpmUtils.miscutils.compareEVR((e1, v1, r1), (e2, v2, r2))
+def comparePoEVREQ(po1, po2):
+    """
+    Compare two Package or PackageEVR objects for equality.
+    """
+    (e1, v1, r1) = (po1.epoch, po1.version, po1.release)
+    (e2, v2, r2) = (po2.epoch, po2.version, po2.release)
+    if r1 != r2: return False
+    if v1 != v2: return False
+    if e1 != e2: return False
+    return True
 
 def buildPkgRefDict(pkgs, casematch=True):
     """take a list of pkg objects and return a dict the contains all the possible
@@ -207,10 +218,29 @@ class PackageObject(object):
         if ret == 0 and hasattr(self, 'repoid') and hasattr(other, 'repoid'):
             ret = cmp(self.repoid, other.repoid)
         return ret
+    def __eq__(self, other):
+        """ Compare packages for yes/no equality, includes everything in the
+            UI package comparison. """
+        if not other:
+            return False
+        if self.pkgtup != other.pkgtup:
+            return False
+        if self.repoid != other.repoid:
+            return False
+        return True
+    def __ne__(self, other):
+        if not (self == other):
+            return True
+        return False
 
     def verEQ(self, other):
-        """ Uses verCMP, tests if the _rpm-versions_ are the same. """
-        return self.verCMP(other) == 0
+        """ Compare package to another one, only rpm-version equality. """
+        if not other:
+            return False
+        ret = cmp(self.name, other.name)
+        if ret != 0:
+            return False
+        return comparePoEVREQ(self, other)
     def verLT(self, other):
         """ Uses verCMP, tests if the other _rpm-version_ is <  ours. """
         return self.verCMP(other) <  0
@@ -259,22 +289,21 @@ class RpmBase(object):
         self.licenses = []
         self._hash = None
 
-    #  Do we still need __eq__ and __ne__ given that
-    # PackageObject has a working __cmp__?
+    # FIXME: This is identical to PackageObject.__eq__ and __ne__, should be
+    #        remove (is .repoid fine here? ... we need it, maybe .repo.id).
     def __eq__(self, other):
         if not other: # check if other not is a package object. 
             return False
-        if comparePoEVR(self, other) == 0 and self.arch == other.arch and self.name == other.name:
-            return True
-        return False
-
+        if self.pkgtup != other.pkgtup:
+            return False
+        if self.repoid != other.repoid:
+            return False
+        return True
     def __ne__(self, other):
-        if not other:
-            return True
-        if comparePoEVR(self, other) != 0 or self.arch != other.arch or self.name != other.name:
+        if not (self == other):
             return True
         return False
-       
+
     def returnEVR(self):
         return PackageEVR(self.epoch, self.version, self.release)
     
@@ -432,7 +461,9 @@ class PackageEVR:
     def __init__(self,e,v,r):
         self.epoch = e
         self.ver = v
+        self.version = v
         self.rel = r
+        self.release = r
         
     def compare(self,other):
         return rpmUtils.miscutils.compareEVR((self.epoch, self.ver, self.rel), (other.epoch, other.ver, other.rel))
@@ -459,12 +490,10 @@ class PackageEVR:
         return False
 
     def __eq__(self, other):
-        if self.compare(other) == 0:
-            return True
-        return False
+        return comparePoEVREQ(self, other)
 
     def __ne__(self, other):
-        if self.compare(other) != 0:
+        if not (self == other):
             return True
         return False
     
@@ -756,26 +785,27 @@ class YumAvailablePackage(PackageObject, RpmBase):
         
         packager = url = ''
         if self.packager:
-            packager = misc.to_xml(self.packager)
+            packager = misc.to_unicode(misc.to_xml(self.packager))
         
         if self.url:
-            url = misc.to_xml(self.url)
-                    
+            url = misc.to_unicode(misc.to_xml(self.url))
+        (csum_type, csum, csumid) = self.checksums[0]
         msg = """
   <name>%s</name>
   <arch>%s</arch>
   <version epoch="%s" ver="%s" rel="%s"/>
-  <checksum type="sha" pkgid="YES">%s</checksum>
+  <checksum type="%s" pkgid="YES">%s</checksum>
   <summary>%s</summary>
   <description>%s</description>
   <packager>%s</packager>
   <url>%s</url>
   <time file="%s" build="%s"/>
   <size package="%s" installed="%s" archive="%s"/>\n""" % (self.name, 
-         self.arch, self.epoch, self.ver, self.rel, self.checksum, 
-         misc.to_xml(self.summary), misc.to_xml(self.description), packager, 
-         url, self.filetime, self.buildtime, self.packagesize, self.size, 
-         self.archivesize)
+         self.arch, self.epoch, self.ver, self.rel, csum_type, csum, 
+         misc.to_unicode(misc.to_xml(self.summary)), 
+         misc.to_unicode(misc.to_xml(self.description)), 
+         packager, url, self.filetime, 
+         self.buildtime, self.packagesize, self.size, self.archivesize)
         
         msg += self._return_remote_location()
         return msg
@@ -927,11 +957,12 @@ class YumAvailablePackage(PackageObject, RpmBase):
         if not self.changelog:
             return ""
         msg = "\n"
-        clog_count = 0
-        for (ts, author, content) in reversed(sorted(self.changelog)):
-            if clog_limit and clog_count >= clog_limit:
-                break
-            clog_count += 1
+        # We need to output them "backwards", so the oldest is first
+        if not clog_limit:
+            clogs = self.changelog
+        else:
+            clogs = self.changelog[:clog_limit]
+        for (ts, author, content) in reversed(clogs):
             msg += """<changelog author="%s" date="%s">%s</changelog>\n""" % (
                         misc.to_xml(author, attrib=True), misc.to_xml(str(ts)), 
                         misc.to_xml(content))
@@ -1477,7 +1508,7 @@ class YumLocalPackage(YumHeaderPackage):
         self._hdrstart = None
         self._hdrend = None
         self.arch = self.isSrpm()
-        self.checksum_type = 'sha'
+        self.checksum_type = 'sha256'
 
         # these can be set by callers that need these features (ex: createrepo)
         self._reldir = None 
@@ -1494,14 +1525,18 @@ class YumLocalPackage(YumHeaderPackage):
     def localPkg(self):
         return self.localpath
     
-    def _do_checksum(self, checksum_type='sha'):
+    def _do_checksum(self, checksum_type='sha256'):
         if not self._checksum:
             self._checksum = misc.checksum(checksum_type, self.localpath)
-            
+            self._checksums = [(checksum_type, self._checksum, 1)]
+
         return self._checksum    
 
     checksum = property(fget=lambda self: self._do_checksum())   
-    
+
+    def returnChecksums(self):
+        return self._checksums
+
     def _get_header_byte_range(self):
         """takes an rpm file or fileobject and returns byteranges for location of the header"""
         if self._hdrstart and self._hdrend:
diff --git a/yum/plugins.py b/yum/plugins.py
index 287fba7..cfc8bd6 100644
--- a/yum/plugins.py
+++ b/yum/plugins.py
@@ -171,8 +171,9 @@ class YumPlugins:
         conduitcls = eval(conduitcls)       # Convert name to class object
 
         for modname, func in self._pluginfuncs[slotname]:
-            self.verbose_logger.debug('Running "%s" handler for "%s" plugin', slotname,
-                modname)
+            self.verbose_logger.log(logginglevels.DEBUG_4,
+                                    'Running "%s" handler for "%s" plugin',
+                                    slotname, modname)
     
             _, conf = self._plugins[modname]
             func(conduitcls(self, self.base, conf, **kwargs))
@@ -193,10 +194,12 @@ class YumPlugins:
         for dir in self.searchpath:
             if not os.path.isdir(dir):
                 continue
-            for modulefile in glob.glob('%s/*.py' % dir):
+            for modulefile in sorted(glob.glob('%s/*.py' % dir)):
                 self._loadplugin(modulefile, types)
 
-        if self._plugins:
+        # If we are in verbose mode we get the full 'Loading "blah" plugin' lines
+        if (self._plugins and
+            not self.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)):
             # Mostly copied from YumOutput._outKeyValFill()
             key = _("Loaded plugins: ")
             val = ", ".join(sorted(self._plugins))
@@ -248,7 +251,7 @@ class YumPlugins:
                                   config.BoolOption(False)) and
              not self._plugin_cmdline_match(modname, self.enabledPlugins,
                                             self._used_enable_plugin))):
-            self.verbose_logger.debug(_('"%s" plugin is disabled'), modname)
+            self.verbose_logger.debug(_('Not loading "%s" plugin, as it is disabled'), modname)
             return
 
         try:
diff --git a/yum/repos.py b/yum/repos.py
index c4c2449..694fd93 100644
--- a/yum/repos.py
+++ b/yum/repos.py
@@ -43,9 +43,16 @@ class RepoStorage:
         # callbacks for handling gpg key imports for repomd.xml sig checks
         # need to be set from outside of the repos object to do anything
         # even quasi-useful
-        self.gpg_import_func = self.ayum.getKeyForRepo # defaults to what is probably sane-ish
+        # defaults to what is probably sane-ish
+        self.gpg_import_func = self._wrap_ayum_getKeyForRepo
         self.confirm_func = None
 
+    def _wrap_ayum_getKeyForRepo(repo, callback=None):
+        """ This is a wrapper for calling self.ayum.getKeyForRepo() because
+            otherwise we take a real reference through the bound method and
+            that is d00m. """
+        return self.ayum.getKeyForRepo(repo, callback)
+
     def doSetup(self, thisrepo = None):
         
         self.ayum.plugins.run('prereposetup')
diff --git a/yum/rpmtrans.py b/yum/rpmtrans.py
index 0961b34..85896fa 100644
--- a/yum/rpmtrans.py
+++ b/yum/rpmtrans.py
@@ -25,7 +25,7 @@ import types
 import sys
 from yum.constants import *
 from yum import _
-
+import misc
 
 class NoOutputCallBack:
     def __init__(self):
@@ -301,13 +301,10 @@ class RPMTransaction:
             self._ts_done.write(msg)
             self._ts_done.flush()
         except (IOError, OSError), e:
-            try:
-                #  Having incomplete transactions is probably worse than having
-                # nothing.
-                del self._ts_done
-                os.unlink(self.ts_done_fn)
-            except:
-                pass
+            #  Having incomplete transactions is probably worse than having
+            # nothing.
+            del self._ts_done
+            misc.unlink_f(self.ts_done_fn)
         self._te_tuples.pop(0)
     
     def ts_all(self):
@@ -354,12 +351,9 @@ class RPMTransaction:
             fo.flush()
             fo.close()
         except (IOError, OSError), e:
-            try:
-                #  Having incomplete transactions is probably worse than having
-                # nothing.
-                os.unlink(self.ts_all_fn)
-            except:
-                pass
+            #  Having incomplete transactions is probably worse than having
+            # nothing.
+            misc.unlink_f(self.ts_all_fn)
 
     def callback( self, what, bytes, total, h, user ):
         if what == rpm.RPMCALLBACK_TRANS_START:
@@ -390,6 +384,9 @@ class RPMTransaction:
             self._cpioError(bytes, total, h)
         elif what == rpm.RPMCALLBACK_UNPACK_ERROR:
             self._unpackError(bytes, total, h)
+        # SCRIPT_ERROR is only in rpm >= 4.6.0
+        elif hasattr(rpm, "RPMCALLBACK_SCRIPT_ERROR") and what == rpm.RPMCALLBACK_SCRIPT_ERROR:
+            self._scriptError(bytes, total, h)
     
     
     def _transStart(self, bytes, total, h):
@@ -493,6 +490,7 @@ class RPMTransaction:
         txmbrs = self.base.tsInfo.getMembers(pkgtup=pkgtup)
         for txmbr in txmbrs:
             msg = "Error in cpio payload of rpm package %s" % txmbr.po
+            txmbr.output_state = TS_FAILED
             self.display.errorlog(msg)
             # FIXME - what else should we do here? raise a failure and abort?
     
@@ -501,8 +499,24 @@ class RPMTransaction:
         pkgtup = self._dopkgtup(hdr)
         txmbrs = self.base.tsInfo.getMembers(pkgtup=pkgtup)
         for txmbr in txmbrs:
+            txmbr.output_state = TS_FAILED
             msg = "Error unpacking rpm package %s" % txmbr.po
             self.display.errorlog(msg)
             # FIXME - should we raise? I need a test case pkg to see what the
             # right behavior should be
                 
+    def _scriptError(self, bytes, total, h):
+        (hdr, rpmloc) = h
+        pkgtup = self._dopkgtup(hdr)
+        txmbrs = self.base.tsInfo.getMembers(pkgtup=pkgtup)
+        for txmbr in txmbrs:
+            # "bytes" carries the failed scriptlet tag,
+            # "total" carries fatal/non-fatal status
+            if total:
+                msg = "Error in %s scriptlet in rpm package %s" % (rpm.tagnames[bytes], txmbr.po)
+                txmbr.output_state = TS_FAILED
+            else:
+                msg = "Non-fatal %s scriptlet failure in rpm package %s" % (rpm.tagnames[bytes], txmbr.po)
+            self.display.errorlog(msg)
+            # FIXME - what else should we do here? raise a failure and abort?
+    
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index c2f4fbd..9726be9 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -46,7 +46,10 @@ def catchSqliteException(func):
             # 2.4.x requires this, but 2.6.x complains about even hasattr()
             # of e.message ... *sigh*
             if sys.hexversion < 0x02050000:
-                raise Errors.RepoError, str(e.message)
+                if hasattr(e,'message'):
+                    raise Errors.RepoError, str(e.message)
+                else:
+                    raise Errors.RepoError, str(e)
             raise Errors.RepoError, str(e)
 
     newFunc.__name__ = func.__name__
diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py
index d5cce8b..3bb616b 100644
--- a/yum/transactioninfo.py
+++ b/yum/transactioninfo.py
@@ -257,6 +257,7 @@ class TransactionData:
         self.depremoved = []
         self.depinstalled = []
         self.depupdated = []
+        self.failed = []
 
         for txmbr in self.getMembers():
             if txmbr.output_state == TS_UPDATE:
@@ -289,6 +290,8 @@ class TransactionData:
                 
             elif txmbr.output_state == TS_OBSOLETING:
                 self.installed.append(txmbr)
+            elif txmbr.output_state == TS_FAILED:
+                self.failed.append(txmbr)
                 
             else:
                 pass
@@ -302,6 +305,7 @@ class TransactionData:
         self.depremoved.sort()
         self.instgroups.sort()
         self.removedgroups.sort()
+        self.failed.sort()
 
     
     def addInstall(self, po):
diff --git a/yum/update_md.py b/yum/update_md.py
index a2b2008..bd87c31 100644
--- a/yum/update_md.py
+++ b/yum/update_md.py
@@ -24,7 +24,7 @@ Update metadata (updateinfo.xml) parsing.
 import sys
 import gzip
 
-from yum.i18n import utf8_text_wrap
+from yum.i18n import utf8_text_wrap, to_utf8
 from yum.yumRepo import YumRepository
 from yum.misc import to_xml
 
@@ -377,11 +377,13 @@ class UpdateMetadata(object):
                             no = self._no_cache.setdefault(file['name'], set())
                             no.add(un)
 
-    def __str__(self):
-        ret = ''
+    def __unicode__(self):
+        ret = u''
         for notice in self.notices:
-            ret += str(notice)
+            ret += unicode(notice)
         return ret
+    def __str__(self):
+        return to_utf8(self.__unicode__())
 
     def xml(self, fileobj=None):
         msg = """<?xml version="1.0"?>\n<updates>"""
@@ -408,6 +410,9 @@ class UpdateMetadata(object):
 
 def main():
     """ update_md test function. """
+    import yum.misc
+
+    yum.misc.setup_locale()
     def usage():
         print >> sys.stderr, "Usage: %s <update metadata> ..." % sys.argv[0]
         sys.exit(1)
@@ -420,7 +425,7 @@ def main():
         um = UpdateMetadata()
         for srcfile in sys.argv[1:]:
             um.add(srcfile)
-        print um
+        print unicode(um)
     except IOError:
         print >> sys.stderr, "%s: No such file:\'%s\'" % (sys.argv[0],
                                                           sys.argv[1:])
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 7a83756..d177886 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -172,7 +172,7 @@ class YumPackageSack(packageSack.PackageSack):
                         db_un_fn = db_fn.replace('.bz2', '')
                         if not repo.cache:
                             misc.bunzipFile(db_fn, db_un_fn)
-                            os.unlink(db_fn)
+                            misc.unlink_f(db_fn)
                             db_un_fn = self._check_uncompressed_db(repo, mydbtype)
 
                 dobj = repo.cacheHandler.open_database(db_un_fn)
@@ -201,6 +201,7 @@ class YumPackageSack(packageSack.PackageSack):
 
         result = None
 
+        repo._preload_md_from_system_cache(os.path.basename(db_un_fn))
         if os.path.exists(db_un_fn):
             if skip_old_DBMD_check and repo._using_old_MD:
                 return db_un_fn
@@ -209,11 +210,7 @@ class YumPackageSack(packageSack.PackageSack):
                 repo.checkMD(db_un_fn, mdtype, openchecksum=True)
             except URLGrabError:
                 if not repo.cache:
-                    try:
-                        os.unlink(db_un_fn)
-                    except OSError, e:
-                        if e.errno != errno.ENOENT:
-                            raise # Could have an error before anything happens
+                    misc.unlink_f(db_un_fn)
             else:
                 result = db_un_fn
 
@@ -255,9 +252,6 @@ class YumRepository(Repository, config.RepoConf):
                                  # config is very, very old
         # throw in some stubs for things that will be set by the config class
         self.basecachedir = ""
-        self.cachedir = ""
-        self.pkgdir = ""
-        self.hdrdir = ""
         self.cost = 1000
         self.copy_local = 0
         # holder for stuff we've grabbed
@@ -384,7 +378,7 @@ class YumRepository(Repository, config.RepoConf):
         try:
             config.writeRawRepoFile(self,only=['enabled'])
         except IOError, e:
-            if e.errno == 13:
+            if e.errno == errno.EACCES:
                 self.logger.warning(e)
             else:
                 raise IOError, str(e)
@@ -395,7 +389,7 @@ class YumRepository(Repository, config.RepoConf):
         try:
             config.writeRawRepoFile(self,only=['enabled'])
         except IOError, e:
-            if e.errno == 13:
+            if e.errno == errno.EACCES:
                 self.logger.warning(e)
             else:
                 raise IOError, str(e)
@@ -502,13 +496,13 @@ class YumRepository(Repository, config.RepoConf):
         cachedir = os.path.join(self.basecachedir, self.id)
         pkgdir = os.path.join(cachedir, 'packages')
         hdrdir = os.path.join(cachedir, 'headers')
-        self.setAttribute('cachedir', cachedir)
-        self.setAttribute('pkgdir', pkgdir)
-        self.setAttribute('hdrdir', hdrdir)
-        self.setAttribute('gpgdir', self.cachedir + '/gpgdir')
+        self.setAttribute('_dir_setup_cachedir', cachedir)
+        self.setAttribute('_dir_setup_pkgdir', pkgdir)
+        self.setAttribute('_dir_setup_hdrdir', hdrdir)
+        self.setAttribute('_dir_setup_gpgdir', self.cachedir + '/gpgdir')
 
         cookie = self.cachedir + '/' + self.metadata_cookie_fn
-        self.setAttribute('metadata_cookie', cookie)
+        self.setAttribute('_dir_setup_metadata_cookie', cookie)
 
         for dir in [self.cachedir, self.pkgdir]:
             if self.cache == 0:
@@ -531,6 +525,17 @@ class YumRepository(Repository, config.RepoConf):
         self._preload_md_from_system_cache('mirrorlist.txt')
         self._preload_md_from_system_cache('metalink.xml')
 
+    def _dirAttr(self, attr):
+        """ Make the directory attributes call .dirSetup() if needed. """
+        attr = '_dir_setup_' + attr
+        if not hasattr(self, attr):
+            self.dirSetup()
+        return getattr(self, attr)
+    cachedir = property(lambda self: self._dirAttr('cachedir'))
+    pkgdir   = property(lambda self: self._dirAttr('pkgdir'))
+    hdrdir   = property(lambda self: self._dirAttr('hdrdir'))
+    gpgdir   = property(lambda self: self._dirAttr('gpgdir'))
+    metadata_cookie = property(lambda self: self._dirAttr('metadata_cookie'))
 
     def baseurlSetup(self):
         warnings.warn('baseurlSetup() will go away in a future version of Yum.\n',
@@ -563,7 +568,7 @@ class YumRepository(Repository, config.RepoConf):
             if hasattr(self, 'mirrorlist_file') and os.path.exists(self.mirrorlist_file):
                 if not self.cache:
                     try:
-                        os.unlink(self.mirrorlist_file)
+                        misc.unlink_f(self.mirrorlist_file)
                     except (IOError, OSError), e:
                         print 'Could not delete bad mirrorlist file: %s - %s' % (self.mirrorlist_file, e)
                     else:
@@ -636,10 +641,7 @@ class YumRepository(Repository, config.RepoConf):
                     # Downloaded file failed to parse, revert (dito. above):
                     print "Could not parse metalink %s error was \n%s"%(url, e)
                     self._metadataCurrent = True
-                    try:
-                        os.unlink(result)
-                    except:
-                        pass
+                    misc.unlink_f(result)
 
             if self._metadataCurrent:
                 self._metalink = metalink.MetaLinkRepoMD(self.metalink_filename)
@@ -795,12 +797,17 @@ class YumRepository(Repository, config.RepoConf):
         else return False. This result is cached, so that metalink/repomd.xml
         are synchronized."""
         if self._metadataCurrent is None:
+            mlfn = self.cachedir + '/' + 'metalink.xml'
+            if self.metalink and not os.path.exists(mlfn):
+                self._metadataCurrent = False
+        if self._metadataCurrent is None:
             self._metadataCurrent = self.withinCacheAge(self.metadata_cookie,
                                                         self.metadata_expire)
         return self._metadataCurrent
 
-    #  The problem is that the metalink _cannot_ be newer than the repomd.xml
-    # or the checksums can be off.
+    #  The metalink _shouldn't_ be newer than the repomd.xml or the checksums
+    # will be off, but we only really care when we are downloading the
+    # repomd.xml ... so keep it in mind that they can be off on disk.
     #  Also see _getMetalink()
     def _metalinkCurrent(self):
         if self._metadataCurrent is not None:
@@ -866,7 +873,6 @@ class YumRepository(Repository, config.RepoConf):
             self.mediafunc = mediafunc
             self.gpg_import_func = gpg_import_func
             self.confirm_func = confirm_func
-            self.dirSetup()
         except Errors.RepoError, e:
             raise
         if not self.mediafunc and self.mediaid and not self.mirrorlist and not self.baseurl:
@@ -883,14 +889,10 @@ class YumRepository(Repository, config.RepoConf):
 
     def _getFileRepoXML(self, local, text=None, grab_can_fail=None):
         """ Call _getFile() for the repomd.xml file. """
-        def _cleanup_tmp():
-            try:
-                os.unlink(tfname)
-            except:
-                pass
         checkfunc = (self._checkRepoXML, (), {})
         if grab_can_fail is None:
             grab_can_fail = 'old_repo_XML' in self._oldRepoMDData
+        tfname = ''
         try:
             # This is named so that "yum clean metadata" picks it up
             tfname = tempfile.mktemp(prefix='repomd', suffix="tmp.xml",
@@ -904,12 +906,12 @@ class YumRepository(Repository, config.RepoConf):
                                    cache=self.http_caching == 'all')
 
         except URLGrabError, e:
-            _cleanup_tmp()
+            misc.unlink_f(tfname)
             if grab_can_fail:
                 return None
             raise Errors.RepoError, 'Error downloading file %s: %s' % (local, e)
         except (Errors.NoMoreMirrorsRepoError, Errors.RepoError):
-            _cleanup_tmp()
+            misc.unlink_f(tfname)
             if grab_can_fail:
                 return None
             raise
@@ -919,7 +921,7 @@ class YumRepository(Repository, config.RepoConf):
             os.rename(result, local)
         except:
             # But in case it doesn't...
-            _cleanup_tmp()
+            misc.unlink_f(tfname)
             if grab_can_fail:
                 return None
             raise Errors.RepoError, 'Error renaming file %s to %s' % (result,
@@ -941,7 +943,7 @@ class YumRepository(Repository, config.RepoConf):
         """ If we have an older repomd.xml file available, save it out. """
         # Cleanup old trash...
         for fname in glob.glob(self.cachedir + "/*.old.tmp"):
-            os.unlink(fname)
+            misc.unlink_f(fname)
 
         if os.path.exists(local):
             old_local = local + '.old.tmp' # locked, so this is ok
@@ -960,7 +962,7 @@ class YumRepository(Repository, config.RepoConf):
 
         # Unique names mean the rename doesn't work anymore.
         for fname in self._oldRepoMDData['new_MD_files']:
-            os.unlink(fname)
+            misc.unlink_f(fname)
 
         old_data = self._oldRepoMDData
         self._oldRepoMDData = {}
@@ -981,12 +983,12 @@ class YumRepository(Repository, config.RepoConf):
         self._oldRepoMDData = {}
 
         if 'old_local' in old_data:
-            os.unlink(old_data['old_local'])
+            misc.unlink_f(old_data['old_local'])
 
         if 'old_MD_files' not in old_data:
             return
         for revert in old_data['old_MD_files']:
-            os.unlink(revert + '.old.tmp')
+            misc.unlink_f(revert + '.old.tmp')
 
     def _get_mdtype_data(self, mdtype, repoXML=None):
         if repoXML is None:
@@ -1150,6 +1152,8 @@ class YumRepository(Repository, config.RepoConf):
                 return True
         return False
 
+    # mmdtype is unused, but in theory was == primary
+    # dbmtype == primary_db etc.
     def _groupCheckDataMDValid(self, data, dbmdtype, mmdtype, file_check=False):
         """ Check that we already have this data, and that it's valid. Given
             the DB mdtype and the main mdtype (no _db suffix). """
@@ -1166,7 +1170,10 @@ class YumRepository(Repository, config.RepoConf):
             if not os.path.exists(local):
                 local = local.replace('.bz2', '')
                 compressed = True
-        # if we can, make a copy of the system-wide-cache version of this file
+        #  If we can, make a copy of the system-wide-cache version of this file,
+        # note that we often don't get here. So we also do this in
+        # YumPackageSack.populate ... and we look for the uncompressed versions
+        # in retrieveMD.
         self._preload_md_from_system_cache(os.path.basename(local))
         if not self._checkMD(local, dbmdtype, openchecksum=compressed,
                              data=data, check_can_fail=True):
@@ -1247,7 +1254,7 @@ class YumRepository(Repository, config.RepoConf):
                 dl_local = local
                 local = local.replace('.bz2', '')
                 misc.bunzipFile(dl_local, local)
-                os.unlink(dl_local)
+                misc.unlink_f(dl_local)
             self._oldRepoMDData['new_MD_files'].append(local)
 
         self._doneOldRepoXML()
@@ -1422,7 +1429,8 @@ class YumRepository(Repository, config.RepoConf):
                     "Caching enabled but no local cache of %s from %s" % (local,
                            self)
 
-        if os.path.exists(local):
+        if (os.path.exists(local) or
+            self._preload_md_from_system_cache(os.path.basename(local))):
             if self._checkMD(local, mdtype, check_can_fail=True):
                 self.retrieved[mdtype] = 1
                 return local # it's the same return the local one
@@ -1547,30 +1555,40 @@ class YumRepository(Repository, config.RepoConf):
 
         return returnlist
 
-    def _preload_md_from_system_cache(self, filename):
-        """attempts to download the file from the system-wide cache, if possible"""
+    def _preload_file_from_system_cache(self, filename, subdir=''):
+        """attempts to copy the file from the system-wide cache,
+           if possible"""
         if not hasattr(self, 'old_base_cache_dir'):
-            return
+            return False
         if self.old_base_cache_dir == "":
-            return
+            return False
 
         glob_repo_cache_dir=os.path.join(self.old_base_cache_dir, self.id)
         if not os.path.exists(glob_repo_cache_dir):
-            return
+            return False
         if os.path.normpath(glob_repo_cache_dir) == os.path.normpath(self.cachedir):
-            return
+            return False
 
-        # copy repomd.xml, cachecookie and mirrorlist.txt
-        fn = glob_repo_cache_dir + '/' + filename
-        destfn = self.cachedir + '/' + os.path.basename(filename)
+        # Try to copy whatever file it is
+        fn = glob_repo_cache_dir + '/' + subdir + os.path.basename(filename)
+        destfn = self.cachedir   + '/' + subdir + os.path.basename(filename)
         # don't copy it if the copy in our users dir is newer or equal
         if not os.path.exists(fn):
-            return
+            return False
         if os.path.exists(destfn):
             if os.stat(fn)[stat.ST_CTIME] <= os.stat(destfn)[stat.ST_CTIME]:
-                return
-        #print 'copying %s to %s' % (fn, destfn)
+                return False
         shutil.copy2(fn, destfn)
+        return True
+
+    def _preload_md_from_system_cache(self, filename):
+        """attempts to copy the metadata file from the system-wide cache,
+           if possible"""
+        return self._preload_file_from_system_cache(filename)
+    def _preload_pkg_from_system_cache(self, pkg):
+        """attempts to copy the package from the system-wide cache,
+           if possible"""
+        return self._preload_file_from_system_cache(filename,subdir='packages/')
 
 
 def getMirrorList(mirrorlist, pdict = None):
diff --git a/yumcommands.py b/yumcommands.py
index 3783292..0334b6d 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -123,6 +123,14 @@ def checkShellArg(base, basecmd, extcmds):
 
 class YumCommand:
         
+    def __init__(self):
+        self.done_command_once = False
+
+    def doneCommand(self, base, msg, *args):
+        if not self.done_command_once:
+            base.verbose_logger.log(logginglevels.INFO_2, msg, *args)
+        self.done_command_once = True
+
     def getNames(self):
         return []
 
@@ -169,8 +177,7 @@ class InstallCommand(YumCommand):
         checkPackageArg(base, basecmd, extcmds)
 
     def doCommand(self, base, basecmd, extcmds):
-        base.verbose_logger.log(logginglevels.INFO_2, 
-                _("Setting up Install Process"))
+        self.doneCommand(base, _("Setting up Install Process"))
         try:
             return base.installPkgs(extcmds)
         except yum.Errors.YumBaseError, e:
@@ -191,8 +198,7 @@ class UpdateCommand(YumCommand):
         checkGPGKey(base)
 
     def doCommand(self, base, basecmd, extcmds):
-        base.verbose_logger.log(logginglevels.INFO_2, 
-                _("Setting up Update Process"))
+        self.doneCommand(base, _("Setting up Update Process"))
         try:
             return base.updatePkgs(extcmds)
         except yum.Errors.YumBaseError, e:
@@ -344,8 +350,7 @@ class EraseCommand(YumCommand):
         checkPackageArg(base, basecmd, extcmds)
 
     def doCommand(self, base, basecmd, extcmds):
-        base.verbose_logger.log(logginglevels.INFO_2, 
-                _("Setting up Remove Process"))
+        self.doneCommand(base, _("Setting up Remove Process"))
         try:
             return base.erasePkgs(extcmds)
         except yum.Errors.YumBaseError, e:
@@ -359,8 +364,7 @@ class EraseCommand(YumCommand):
 
 class GroupCommand(YumCommand):
     def doCommand(self, base, basecmd, extcmds):
-        base.verbose_logger.log(logginglevels.INFO_2, 
-                _("Setting up Group Process"))
+        self.doneCommand(base, _("Setting up Group Process"))
 
         base.doRepoSetup(dosack=0)
         try:
@@ -622,8 +626,7 @@ class UpgradeCommand(YumCommand):
 
     def doCommand(self, base, basecmd, extcmds):
         base.conf.obsoletes = 1
-        base.verbose_logger.log(logginglevels.INFO_2, 
-                _("Setting up Upgrade Process"))
+        self.doneCommand(base, _("Setting up Upgrade Process"))
         try:
             return base.updatePkgs(extcmds)
         except yum.Errors.YumBaseError, e:
@@ -645,8 +648,7 @@ class LocalInstallCommand(YumCommand):
         checkPackageArg(base, basecmd, extcmds)
         
     def doCommand(self, base, basecmd, extcmds):
-        base.verbose_logger.log(logginglevels.INFO_2,
-                                _("Setting up Local Package Process"))
+        self.doneCommand(base, _("Setting up Local Package Process"))
 
         updateonly = basecmd == 'localupdate'
         try:
@@ -688,7 +690,7 @@ class ShellCommand(YumCommand):
         checkShellArg(base, basecmd, extcmds)
 
     def doCommand(self, base, basecmd, extcmds):
-        base.verbose_logger.log(logginglevels.INFO_2, _('Setting up Yum Shell'))
+        self.doneCommand(base, _('Setting up Yum Shell'))
         try:
             return base.doShell()
         except yum.Errors.YumBaseError, e:
@@ -712,7 +714,7 @@ class DepListCommand(YumCommand):
         checkPackageArg(base, basecmd, extcmds)
 
     def doCommand(self, base, basecmd, extcmds):
-       base.verbose_logger.log(logginglevels.INFO_2, _("Finding dependencies: "))
+       self.doneCommand(base, _("Finding dependencies: "))
        try:
           return base.deplist(extcmds)
        except yum.Errors.YumBaseError, e:
@@ -796,26 +798,29 @@ class RepoListCommand(YumCommand):
                     cols.append((str(repo), repo.name,
                                  (ui_enabled, ui_endis_wid), ui_num))
                 else:
-                    md = repo.repoXML
+                    if enabled:
+                        md = repo.repoXML
+                    else:
+                        md = None
                     out = [base.fmtKeyValFill(_("Repo-id     : "), repo),
                            base.fmtKeyValFill(_("Repo-name   : "), repo.name),
                            base.fmtKeyValFill(_("Repo-status : "), ui_enabled)]
-                    if md.revision is not None:
+                    if md and md.revision is not None:
                         out += [base.fmtKeyValFill(_("Repo-revision: "),
                                                    md.revision)]
-                    if md.tags['content']:
+                    if md and md.tags['content']:
                         tags = md.tags['content']
                         out += [base.fmtKeyValFill(_("Repo-tags   : "),
                                                    ", ".join(sorted(tags)))]
 
-                    if md.tags['distro']:
+                    if md and md.tags['distro']:
                         for distro in sorted(md.tags['distro']):
                             tags = md.tags['distro'][distro]
                             out += [base.fmtKeyValFill(_("Repo-distro-tags: "),
                                                        "[%s]: %s" % (distro,
                                                        ", ".join(sorted(tags))))]
 
-                    if enabled:
+                    if md:
                         out += [base.fmtKeyValFill(_("Repo-updated: "),
                                                    time.ctime(md.timestamp)),
                                 base.fmtKeyValFill(_("Repo-pkgs   : "), ui_num),
@@ -973,8 +978,7 @@ class ReInstallCommand(YumCommand):
         checkPackageArg(base, basecmd, extcmds)
 
     def doCommand(self, base, basecmd, extcmds):
-        base.verbose_logger.log(logginglevels.INFO_2, 
-                _("Setting up Reinstall Process"))
+        self.doneCommand(base, _("Setting up Reinstall Process"))
         oldcount = len(base.tsInfo)
         try:
             for item in extcmds:
diff --git a/yummain.py b/yummain.py
index fde590c..f3639a6 100755
--- a/yummain.py
+++ b/yummain.py
@@ -19,9 +19,10 @@ Entrance point for the yum command line interface.
 """
 
 import os
+import os.path
 import sys
 import logging
-import time # test purposes only
+import time
 
 from yum import Errors
 from yum import plugins
@@ -52,7 +53,7 @@ def main(args):
         '''Called when a plugin raises PluginYumExit.
 
         Log the plugin's exit message if one was supplied.
-        '''
+        ''' # ' xemacs hack
         exitmsg = str(e)
         if exitmsg:
             logger.warn('\n\n%s', exitmsg)
@@ -72,6 +73,76 @@ def main(args):
             return 200
         return 0
 
+    def jiffies_to_seconds(jiffies):
+        Hertz = 100 # FIXME: Hack, need to get this, AT_CLKTCK elf note *sigh*
+        return int(jiffies) / Hertz
+    def seconds_to_ui_time(seconds):
+        if seconds >= 60 * 60 * 24:
+            return "%d day(s) %d:%02d:%02d" % (seconds / (60 * 60 * 24),
+                                               (seconds / (60 * 60)) % 24,
+                                               (seconds / 60) % 60,
+                                               seconds % 60)
+        if seconds >= 60 * 60:
+            return "%d:%02d:%02d" % (seconds / (60 * 60), (seconds / 60) % 60,
+                                     (seconds % 60))
+        return "%02d:%02d" % ((seconds / 60), seconds % 60)
+    def show_lock_owner(pid):
+        if not pid:
+            return
+
+        # Maybe true if /proc isn't mounted, or not Linux ... or something.
+        if (not os.path.exists("/proc/%d/status" % pid) or
+            not os.path.exists("/proc/stat") or
+            not os.path.exists("/proc/%d/stat" % pid)):
+            return
+
+        ps = {}
+        for line in open("/proc/%d/status" % pid):
+            if line[-1] != '\n':
+                continue
+            data = line[:-1].split(':\t', 1)
+            if data[1].endswith(' kB'):
+                data[1] = data[1][:-3]
+            ps[data[0].strip().lower()] = data[1].strip()
+        if 'vmrss' not in ps:
+            return
+        if 'vmsize' not in ps:
+            return
+        boot_time = None
+        for line in open("/proc/stat"):
+            if line.startswith("btime "):
+                boot_time = int(line[len("btime "):-1])
+                break
+        if boot_time is None:
+            return
+        ps_stat = open("/proc/%d/stat" % pid).read().split()
+        ps['utime'] = jiffies_to_seconds(ps_stat[13])
+        ps['stime'] = jiffies_to_seconds(ps_stat[14])
+        ps['cutime'] = jiffies_to_seconds(ps_stat[15])
+        ps['cstime'] = jiffies_to_seconds(ps_stat[16])
+        ps['start_time'] = boot_time + jiffies_to_seconds(ps_stat[21])
+        ps['state'] = {'R' : _('Running'),
+                       'S' : _('Sleeping'),
+                       'D' : _('Uninteruptable'),
+                       'Z' : _('Zombie'),
+                       'T' : _('Traced/Stopped')
+                       }.get(ps_stat[2], _('Unknown'))
+
+        # This yumBackend isn't very friendly, so...
+        if ps['name'] == 'yumBackend.py':
+            nmsg = _("  The other application is: PackageKit")
+        else:
+            nmsg = _("  The other application is: %s") % ps['name']
+
+        logger.critical("%s", nmsg)
+        logger.critical(_("    Memory : %5s RSS (%5sB VSZ)") %
+                        (base.format_number(int(ps['vmrss']) * 1024),
+                         base.format_number(int(ps['vmsize']) * 1024)))
+        ago = seconds_to_ui_time(int(time.time()) - ps['start_time'])
+        logger.critical(_("    Started: %s - %s ago") %
+                        (time.ctime(ps['start_time']), ago))
+        logger.critical(_("    State  : %s, pid: %d") % (ps['state'], pid))
+
     logger = logging.getLogger("yum.main")
     verbose_logger = logging.getLogger("yum.verbose.main")
 
@@ -96,6 +167,7 @@ def main(args):
                 lockerr = "%s" %(e.msg,)
                 logger.critical(lockerr)
             logger.critical(_("Another app is currently holding the yum lock; waiting for it to exit..."))
+            show_lock_owner(e.pid)
             time.sleep(2)
         else:
             break
@@ -193,7 +265,7 @@ def main(args):
     return return_code
 
 def hotshot(func, *args, **kwargs):
-    import hotshot.stats, os.path
+    import hotshot.stats
     fn = os.path.expanduser("~/yum.prof")
     prof = hotshot.Profile(fn)
     rc = prof.runcall(func, *args, **kwargs)
@@ -202,7 +274,7 @@ def hotshot(func, *args, **kwargs):
     return rc
 
 def cprof(func, *args, **kwargs):
-    import cProfile, pstats, os.path
+    import cProfile, pstats
     fn = os.path.expanduser("~/yum.prof")
     prof = cProfile.Profile()
     rc = prof.runcall(func, *args, **kwargs)