Blob Blame History Raw
diff --git a/README b/README
index ca0c1b4..c3570fd 100644
--- a/README
+++ b/README
@@ -26,8 +26,8 @@ Yum is run with one of the following options:
 
 See the man page for more information (man yum)
 Also see the webpage and wiki for more information:
-web page: http://linux.duke.edu/yum/
-wiki: http://wiki.linux.duke.edu/Yum
+web page: http://yum.baseurl.org/
+wiki: http://yum.baseurl.org/wiki
 
 3.2.X Branch - yum-3_2_X
       Starting commit is roughly: a3c91d7f6a15f31a42d020127b2da2877dfc137d
diff --git a/cli.py b/cli.py
index d0d785e..0374667 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)
@@ -204,7 +208,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
             done = False
             def sm_ui_time(x):
                 return time.strftime("%Y-%m-%d %H:%M", time.gmtime(x))
-            for pkg in self.rpmdb.returnPackages(patterns=yum_progs):
+            for pkg in sorted(self.rpmdb.returnPackages(patterns=yum_progs)):
                 # We should only have 1 version of each...
                 if done: print ""
                 done = True
@@ -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,
@@ -1088,10 +1099,18 @@ class YumOptionParser(OptionParser):
             # Handle remaining options
             if opts.assumeyes:
                 self.base.conf.assumeyes =1
-            # seems a good place for it - to go back to yum 3.0.X behavior
-            # if not root then caching is enabled
-            if opts.cacheonly or self.base.conf.uid != 0:
+
+            #  Instead of going cache-only for a non-root user, try to use a
+            # user writable cachedir. If that fails fall back to cache-only.
+            if opts.cacheonly:
                 self.base.conf.cache = 1
+            elif self.base.conf.uid != 0:
+                cachedir = yum.misc.getCacheDir()
+                if cachedir is None:
+                    self.base.conf.cache = 1
+                else:
+                    self.base.conf.cachedir = cachedir
+                    self.base.repos.setCacheDir(cachedir)
 
             if opts.obsoletes:
                 self.base.conf.obsoletes = 1
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/docs/yum.conf.5 b/docs/yum.conf.5
index 15462b7..3a03d6b 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -330,6 +330,12 @@ newer than the latest available package with the same name and arch.
 Default is `bold,yellow'.
 See color_list_installed_older for possible values.
 
+.IP \fBcolor_list_installed_reinstall \fR
+The colorization/highlighting for pacakges in list/info installed which is
+the same version as the latest available package with the same name and arch.
+Default is `normal'.
+See color_list_installed_older for possible values.
+
 .IP \fBcolor_list_installed_extra \fR
 The colorization/highlighting for pacakges in list/info installed which has
 no available package with the same name and arch.
@@ -354,11 +360,38 @@ no installed package with the same name and arch.
 Default is `normal'.
 See color_list_installed_older for possible values.
 
+.IP \fBcolor_list_available_reinstall \fR
+The colorization/highlighting for pacakges in list/info available which is
+the same version as the installed package with the same name and arch.
+Default is `bold,underline,green.
+See color_list_installed_older for possible values.
+
 .IP \fBcolor_search_match \fR
 The colorization/highlighting for text matches in search.
 Default is `bold'.
 See color_list_installed_older for possible values.
 
+.IP \fBcolor_update_installed \fR
+The colorization/highlighting for packages in the "updates list" which are
+installed. The updates list is what is printed when you run "yum update",
+"yum list updates", "yum list obsoletes" and "yum check-update".
+Default is `normal'.
+See color_list_installed_older for possible values.
+
+.IP \fBcolor_update_local \fR
+The colorization/highlighting for packages in the "updates list" which are
+already downloaded. The updates list is what is printed when you run
+"yum update", "yum list updates", "yum list obsoletes" and "yum check-update".
+Default is `bold'.
+See color_list_installed_older for possible values.
+
+.IP \fBcolor_update_remote \fR
+The colorization/highlighting for packages in the "updates list" which need to
+be downloaded. The updates list is what is printed when you run "yum update",
+"yum list updates", "yum list obsoletes" and "yum check-update".
+Default is `normal'.
+See color_list_installed_older for possible values.
+
 .SH "[repository] OPTIONS"
 .LP 
 The repository section(s) take the following form:
@@ -408,11 +441,16 @@ checksum data. This data is checked against any downloaded repomd.xml file
 and all of the information from the metalink file must match. This can be used
 instead of or with the \fBbaseurl\fR option. Substitution variables, described
 below, can be used with this option. This option disables the mirrorlist option.
+As a special hack is the mirrorlist URL contains the word "metalink" then the
+value of mirrorlist is copied to metalink (if metalink is not set).
 
 .IP \fBmirrorlist\fR
 Specifies a URL to a file containing a list of baseurls. This can be used
 instead of or with the \fBbaseurl\fR option. Substitution variables, described
 below, can be used with this option. 
+As a special hack is the mirrorlist URL contains the word "metalink" then the
+value of mirrorlist is copied to metalink (if metalink is not set).
+
 
 .IP \fBenabled\fR
 Either `1' or `0'. This tells yum whether or not use this repository.
diff --git a/output.py b/output.py
index 3416459..62af285 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
 
@@ -553,8 +551,12 @@ class YumOutput:
 
         if columns is not None:
             # New style, output all info. for both old/new with old indented
-            self.simpleList(changePkg, columns=columns)
-            self.simpleList(instPkg,   columns=columns, indent=' ' * 4)
+            chi = self.conf.color_update_remote
+            if changePkg.repo.id != 'installed' and changePkg.verifyLocalPkg():
+                chi = self.conf.color_update_local
+            self.simpleList(changePkg, columns=columns, highlight=chi)
+            self.simpleList(instPkg,   columns=columns, indent=' ' * 4,
+                            highlight=self.conf.color_update_installed)
             return
 
         # Old style
@@ -702,6 +704,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)
@@ -897,7 +901,14 @@ class YumOutput:
             if a is None: # gpgkeys are weird
                 a = 'noarch'
 
-            lines.append((n, a, evr, repoid, size, obsoletes))
+            # none, partial, full?
+            if po.repo.id == 'installed':
+                hi = self.conf.color_update_installed
+            elif po.verifyLocalPkg():
+                hi = self.conf.color_update_local
+            else:
+                hi = self.conf.color_update_remote
+            lines.append((n, a, evr, repoid, size, obsoletes, hi))
             #  Create a dict of field_length => number of packages, for
             # each field.
             for (d, v) in (("n",len(n)), ("v",len(evr)), ("r",len(repoid))):
@@ -948,13 +959,15 @@ class YumOutput:
         for (action, lines) in pkglist_lines:
             if lines:
                 totalmsg = u"%s:\n" % action
-            for (n, a, evr, repoid, size, obsoletes) in lines:
-                columns = ((n,   -n_wid), (a,      -a_wid),
+            for (n, a, evr, repoid, size, obsoletes, hi) in lines:
+                columns = ((n,   -n_wid, hi), (a,      -a_wid),
                            (evr, -v_wid), (repoid, -r_wid), (size, s_wid))
                 msg = self.fmtColumns(columns, u" ", u"\n")
+                hibeg, hiend = self._highlight(self.conf.color_update_installed)
                 for obspo in obsoletes:
-                    appended = _('     replacing  %s.%s %s\n\n') % (obspo.name,
-                        obspo.arch, obspo.printVer())
+                    appended = _('     replacing  %s%s%s.%s %s\n\n')
+                    appended %= (hibeg, obspo.name, hiend,
+                                 obspo.arch, obspo.printVer())
                     msg = msg+appended
                 totalmsg = totalmsg + msg
         
@@ -1016,7 +1029,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 +1095,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 +1223,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 +1235,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..839bbe3 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,17 +1,18 @@
 # 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.
-# Dominik Sandjaja <dominiksandjaja@fedoraproject.org>, 2008.
+#
+# Fabian Affolter <fab@fedoraproject.org>, 2007,2008,2009.
+# Dominik Sandjaja <dominiksandjaja@fedoraproject.org>, 2008,2009.
 # Thomas Spura <tomspur@fedoraproject.org>, 2008.
 #
 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"
-"Last-Translator: Fabian Affolter <fab@fedoraproject.org>\n"
+"POT-Creation-Date: 2009-02-04 01:24+0000\n"
+"PO-Revision-Date: 2009-02-20 23:38+0100\n"
+"Last-Translator: Dominik Sandjaja <dominiksandjaja@fedoraproject.org>\n"
 "Language-Team: German <fedora-trans-de@redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\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"
+msgstr "Führe Verarbeitungstest 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"
+msgstr "schließe 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"
+msgstr "Größe     : %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"
+msgstr "Fehler beim Berechnen der Gesamtgröße der Downloads"
 
-#: ../output.py:772
+#: ../output.py:873
 #, python-format
 msgid "Total size: %s"
-msgstr "Gesamtgrösse: %s"
+msgstr "Gesamtgröße: %s"
 
-#: ../output.py:775
+#: ../output.py:876
 #, python-format
 msgid "Total download size: %s"
-msgstr "Gesamte Downloadgrösse: %s"
+msgstr "Gesamte Downloadgröße: %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"
+msgstr "Größe"
 
-#: ../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   : "
+msgstr "Repo-Größe   : "
 
-#: ../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."
+msgstr "Es gibt noch nicht abgeschlossene Transaktionen. Sie sollten in Betracht ziehen, zuerst yum-complete-transaction auszuführen, um diese abzuschließen."
 
 # 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"
+msgstr "Schließe 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"
+msgstr "Schließe Pakete von %s aus"
 
-#: ../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..a45623c 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,13 +1,13 @@
 # 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-02-25 13:32+0000\n"
+"PO-Revision-Date: 2009-02-25 15:23-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 +18,7 @@ msgstr ""
 "X-Poedit-Country: BRAZIL\n"
 
 #: ../callback.py:48
-#: ../output.py:911
+#: ../output.py:922
 #: ../yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "Atualizando"
@@ -31,7 +31,7 @@ msgstr "Apagando"
 #: ../callback.py:50
 #: ../callback.py:51
 #: ../callback.py:53
-#: ../output.py:910
+#: ../output.py:921
 #: ../yum/rpmtrans.py:73
 #: ../yum/rpmtrans.py:74
 #: ../yum/rpmtrans.py:76
@@ -45,7 +45,7 @@ msgid "Obsoleted"
 msgstr "Obsoletos"
 
 #: ../callback.py:54
-#: ../output.py:1016
+#: ../output.py:1029
 msgid "Updated"
 msgstr "Atualizados"
 
@@ -56,7 +56,7 @@ msgstr "Removidos"
 #: ../callback.py:56
 #: ../callback.py:57
 #: ../callback.py:59
-#: ../output.py:1014
+#: ../output.py:1027
 msgid "Installed"
 msgstr "Instalados"
 
@@ -79,7 +79,7 @@ msgid "Erased: %s"
 msgstr "Removidos: %s"
 
 #: ../callback.py:217
-#: ../output.py:912
+#: ../output.py:923
 msgid "Removing"
 msgstr "Removendo"
 
@@ -101,50 +101,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:1189
 #: ../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:265
 msgid "You need to give some command"
 msgstr "Você precisa dar algum comando"
 
-#: ../cli.py:301
+#: ../cli.py:308
 msgid "Disk Requirements:\n"
 msgstr "Requisitos de disco:\n"
 
-#: ../cli.py:303
+#: ../cli.py:310
 #, 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:315
 msgid ""
 "Error Summary\n"
 "-------------\n"
@@ -152,66 +152,58 @@ msgstr ""
 "Sumário de erros\n"
 "-------------\n"
 
-#: ../cli.py:351
+#: ../cli.py:358
 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:394
 msgid "Exiting on user Command"
 msgstr "Saindo pelo comando do usuário"
 
-#: ../cli.py:385
+#: ../cli.py:398
 msgid "Downloading Packages:"
 msgstr "Baixando pacotes:"
 
-#: ../cli.py:390
+#: ../cli.py:403
 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:417
+#: ../yum/__init__.py:3348
 msgid "Running rpm_check_debug"
 msgstr "Executando o rpm_check_debug"
 
-#: ../cli.py:409
-#: ../yum/__init__.py:3333
+#: ../cli.py:420
+#: ../yum/__init__.py:3351
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "Erro com o rpm_check_debug vs depsolve:"
 
-#: ../cli.py:413
+#: ../cli.py:424
 #, python-format
 msgid "Please report this error in %s"
 msgstr "Por favor, relate esse erro em %s"
 
-#: ../cli.py:419
+#: ../cli.py:430
 msgid "Running Transaction Test"
 msgstr "Executando teste de transação"
 
-#: ../cli.py:435
+#: ../cli.py:446
 msgid "Finished Transaction Test"
 msgstr "Teste de transação finalizado"
 
-#: ../cli.py:437
+#: ../cli.py:448
 msgid "Transaction Check Error:\n"
 msgstr "Erro na verificação da transação:\n"
 
-#: ../cli.py:444
+#: ../cli.py:455
 msgid "Transaction Test Succeeded"
 msgstr "Teste de transação completo"
 
-#: ../cli.py:465
+#: ../cli.py:476
 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:506
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
@@ -219,183 +211,179 @@ 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:525
+#: ../cli.py:559
 msgid "  * Maybe you meant: "
 msgstr "  * Talvez você queira dizer: "
 
-#: ../cli.py:533
-#: ../cli.py:541
+#: ../cli.py:542
+#: ../cli.py:550
 #, 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:556
+#: ../cli.py:589
 #, 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:594
+#: ../cli.py:669
+#: ../yumcommands.py:1010
 msgid "Package(s) to install"
 msgstr "Pacotes a serem instalados"
 
-#: ../cli.py:588
-#: ../cli.py:663
-#: ../yumcommands.py:151
-#: ../yumcommands.py:985
+#: ../cli.py:595
+#: ../cli.py:670
+#: ../yumcommands.py:159
+#: ../yumcommands.py:1011
 msgid "Nothing to do"
 msgstr "Nada a ser feito"
 
-#: ../cli.py:621
+#: ../cli.py:628
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d pacotes marcados para atualização"
 
-#: ../cli.py:624
+#: ../cli.py:631
 msgid "No Packages marked for Update"
 msgstr "Nenhum pacote marcado para atualização"
 
-#: ../cli.py:638
+#: ../cli.py:645
 #, python-format
 msgid "%d packages marked for removal"
 msgstr "%d pacotes marcados para remoção"
 
-#: ../cli.py:641
+#: ../cli.py:648
 msgid "No Packages marked for removal"
 msgstr "Nenhum pacote marcado para remoção"
 
-#: ../cli.py:653
+#: ../cli.py:660
 msgid "No Packages Provided"
 msgstr "Nenhum pacote fornecido"
 
-#: ../cli.py:708
+#: ../cli.py:715
 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:764
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "Aviso: nenhum resultado para: %s"
 
-#: ../cli.py:760
+#: ../cli.py:767
 msgid "No Matches found"
 msgstr "Nenhum pacote localizado"
 
-#: ../cli.py:799
+#: ../cli.py:806
 #, python-format
 msgid ""
-"Warning: 3.0.x versions of yum would erronously match against filenames.\n"
+"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"
 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"
+"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:822
 #, python-format
 msgid "No Package Found for %s"
 msgstr "Nenhum pacote localizado para %s"
 
-#: ../cli.py:827
+#: ../cli.py:834
 msgid "Cleaning up Everything"
 msgstr "Limpando tudo"
 
-#: ../cli.py:841
+#: ../cli.py:848
 msgid "Cleaning up Headers"
 msgstr "Limpando cabeçalhos"
 
-#: ../cli.py:844
+#: ../cli.py:851
 msgid "Cleaning up Packages"
 msgstr "Limpando pacotes"
 
-#: ../cli.py:847
+#: ../cli.py:854
 msgid "Cleaning up xml metadata"
 msgstr "Limpando metadados em xml"
 
-#: ../cli.py:850
+#: ../cli.py:857
 msgid "Cleaning up database cache"
 msgstr "Limpando cache do banco de dados"
 
-#: ../cli.py:853
+#: ../cli.py:860
 msgid "Cleaning up expire-cache metadata"
 msgstr "Limpando metadados expirados do cache"
 
-#: ../cli.py:856
+#: ../cli.py:863
 msgid "Cleaning up plugins"
 msgstr "Limpando plugins"
 
-#: ../cli.py:881
+#: ../cli.py:888
 msgid "Installed Groups:"
 msgstr "Grupos instalados:"
 
-#: ../cli.py:888
+#: ../cli.py:895
 msgid "Available Groups:"
 msgstr "Grupos disponíveis:"
 
-#: ../cli.py:894
+#: ../cli.py:901
 msgid "Done"
 msgstr "Concluído"
 
-#: ../cli.py:905
-#: ../cli.py:923
-#: ../cli.py:929
-#: ../yum/__init__.py:2388
+#: ../cli.py:912
+#: ../cli.py:930
+#: ../cli.py:936
+#: ../yum/__init__.py:2390
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Aviso: O grupo %s não existe."
 
-#: ../cli.py:933
+#: ../cli.py:940
 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:942
 #, 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:952
+#: ../yum/__init__.py:2402
 #, python-format
 msgid "No group named %s exists"
 msgstr "Nenhum grupo de nome %s existe"
 
-#: ../cli.py:951
+#: ../cli.py:958
 msgid "No packages to remove from groups"
 msgstr "Nenhum pacote a ser removido a partir dos grupos"
 
-#: ../cli.py:953
+#: ../cli.py:960
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d pacote(s) a ser(em) removido(s)"
 
-#: ../cli.py:995
+#: ../cli.py:1002
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "O pacote %s já está instalado, ignorando"
 
-#: ../cli.py:1006
+#: ../cli.py:1013
 #, 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:1039
 #, 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:1058
 #, python-format
 msgid "Command line error: %s"
 msgstr "Erro na linha de comando: %s"
 
-#: ../cli.py:1064
+#: ../cli.py:1071
 #, python-format
 msgid ""
 "\n"
@@ -406,252 +394,252 @@ msgstr ""
 "\n"
 "%s: a opção %s requer um argumento"
 
-#: ../cli.py:1114
+#: ../cli.py:1129
 msgid "--color takes one of: auto, always, never"
 msgstr "--color aceita uma destas opções: auto, always, never"
 
-#: ../cli.py:1216
+#: ../cli.py:1231
 msgid "show this help message and exit"
 msgstr "mostrar essa mensagem ajuda e sai"
 
-#: ../cli.py:1220
+#: ../cli.py:1235
 msgid "be tolerant of errors"
 msgstr "ser tolerante com os erros"
 
-#: ../cli.py:1222
+#: ../cli.py:1237
 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:1239
 msgid "config file location"
 msgstr "configurar localização do arquivo"
 
-#: ../cli.py:1226
+#: ../cli.py:1241
 msgid "maximum command wait time"
 msgstr "Tempo máximo de espera do comando"
 
-#: ../cli.py:1228
+#: ../cli.py:1243
 msgid "debugging output level"
 msgstr "nível de depuração na saída"
 
-#: ../cli.py:1232
+#: ../cli.py:1247
 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:1249
 msgid "error output level"
 msgstr "nível de erro na saída"
 
-#: ../cli.py:1237
+#: ../cli.py:1252
 msgid "quiet operation"
 msgstr "operação discreta"
 
-#: ../cli.py:1239
+#: ../cli.py:1254
 msgid "verbose operation"
 msgstr "operação detalhada"
 
-#: ../cli.py:1241
+#: ../cli.py:1256
 msgid "answer yes for all questions"
 msgstr "responder sim para todas as perguntas"
 
-#: ../cli.py:1243
+#: ../cli.py:1258
 msgid "show Yum version and exit"
 msgstr "mostrar versão do Yum ao sair"
 
-#: ../cli.py:1244
+#: ../cli.py:1259
 msgid "set install root"
 msgstr "definir raiz de instalação"
 
-#: ../cli.py:1248
+#: ../cli.py:1263
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "habilitar um ou mais repositórios (curingas são permitidos)"
 
-#: ../cli.py:1252
+#: ../cli.py:1267
 msgid "disable one or more repositories (wildcards allowed)"
 msgstr "desabilitar um ou mais repositórios (curingas são permitidos)"
 
-#: ../cli.py:1255
+#: ../cli.py:1270
 msgid "exclude package(s) by name or glob"
 msgstr "excluir pacote(s) por nome ou glob"
 
-#: ../cli.py:1257
+#: ../cli.py:1272
 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:1275
 msgid "enable obsoletes processing during updates"
 msgstr "Habilitar processo de obsolescência durante as atualizações"
 
-#: ../cli.py:1262
+#: ../cli.py:1277
 msgid "disable Yum plugins"
 msgstr "desabilitar plugins do Yum"
 
-#: ../cli.py:1264
+#: ../cli.py:1279
 msgid "disable gpg signature checking"
 msgstr "desabilitar verificação de assinaturas gpg"
 
-#: ../cli.py:1266
+#: ../cli.py:1281
 msgid "disable plugins by name"
 msgstr "desabilitar plugins pelo nome"
 
-#: ../cli.py:1269
+#: ../cli.py:1284
 msgid "enable plugins by name"
 msgstr "habilita plugins pelo nome"
 
-#: ../cli.py:1272
+#: ../cli.py:1287
 msgid "skip packages with depsolving problems"
 msgstr "ignorar pacotes com problemas de solução de dependências"
 
-#: ../cli.py:1274
+#: ../cli.py:1289
 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:611
 msgid "y"
 msgstr "s"
 
-#: ../output.py:609
+#: ../output.py:611
 msgid "yes"
 msgstr "sim"
 
-#: ../output.py:610
+#: ../output.py:612
 msgid "n"
 msgstr "n"
 
-#: ../output.py:610
+#: ../output.py:612
 msgid "no"
 msgstr "não"
 
-#: ../output.py:614
+#: ../output.py:616
 msgid "Is this ok [y/N]: "
 msgstr "Correto? [s/N]:"
 
-#: ../output.py:702
+#: ../output.py:704
 #, python-format
 msgid ""
 "\n"
@@ -660,138 +648,143 @@ msgstr ""
 "\n"
 "Grupo: %s"
 
-#: ../output.py:709
+#: ../output.py:708
+#, python-format
+msgid " Group-Id: %s"
+msgstr " Group-Id: %s"
+
+#: ../output.py:713
 #, python-format
 msgid " Description: %s"
 msgstr " Descrição: %s"
 
-#: ../output.py:711
+#: ../output.py:715
 msgid " Mandatory Packages:"
 msgstr " Pacotes obrigatórios:"
 
-#: ../output.py:712
+#: ../output.py:716
 msgid " Default Packages:"
 msgstr " Pacotes padrão:"
 
-#: ../output.py:713
+#: ../output.py:717
 msgid " Optional Packages:"
 msgstr " Pacotes opcionais:"
 
-#: ../output.py:714
+#: ../output.py:718
 msgid " Conditional Packages:"
 msgstr " Pacotes condicionais:"
 
-#: ../output.py:734
+#: ../output.py:738
 #, python-format
 msgid "package: %s"
 msgstr "pacote: %s"
 
-#: ../output.py:736
+#: ../output.py:740
 msgid "  No dependencies for this package"
 msgstr "  Nenhuma dependência para este pacote"
 
-#: ../output.py:741
+#: ../output.py:745
 #, python-format
 msgid "  dependency: %s"
 msgstr "  dependência: %s"
 
-#: ../output.py:743
+#: ../output.py:747
 msgid "   Unsatisfied dependency"
 msgstr "   Dependência não satisfeita"
 
-#: ../output.py:815
+#: ../output.py:819
 #, python-format
 msgid "Repo        : %s"
 msgstr "Repo        : %s"
 
-#: ../output.py:816
+#: ../output.py:820
 msgid "Matched from:"
 msgstr "Resultado a partir de:"
 
-#: ../output.py:824
+#: ../output.py:828
 msgid "Description : "
 msgstr "Descrição : "
 
-#: ../output.py:827
+#: ../output.py:831
 #, python-format
 msgid "URL         : %s"
 msgstr "URL         : %s"
 
-#: ../output.py:830
+#: ../output.py:834
 #, python-format
 msgid "License     : %s"
 msgstr "Licença     : %s"
 
-#: ../output.py:833
+#: ../output.py:837
 #, python-format
 msgid "Filename    : %s"
 msgstr "Nome de arquivo    : %s"
 
-#: ../output.py:837
+#: ../output.py:841
 msgid "Other       : "
 msgstr "Outro       : "
 
-#: ../output.py:870
+#: ../output.py:874
 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:879
 #, python-format
 msgid "Total size: %s"
 msgstr "Tamanho total: %s"
 
-#: ../output.py:878
+#: ../output.py:882
 #, python-format
 msgid "Total download size: %s"
 msgstr "Tamanho total do download: %s"
 
-#: ../output.py:913
+#: ../output.py:924
 msgid "Installing for dependencies"
 msgstr "Instalando para as dependências"
 
-#: ../output.py:914
+#: ../output.py:925
 msgid "Updating for dependencies"
 msgstr "Atualizando para as dependências"
 
-#: ../output.py:915
+#: ../output.py:926
 msgid "Removing for dependencies"
 msgstr "Removendo para as dependências"
 
-#: ../output.py:922
-#: ../output.py:1018
+#: ../output.py:933
+#: ../output.py:1031
 msgid "Skipped (dependency problems)"
 msgstr "Ignorado (problemas de dependências)"
 
-#: ../output.py:943
+#: ../output.py:954
 msgid "Package"
 msgstr "Pacote"
 
-#: ../output.py:943
+#: ../output.py:954
 msgid "Arch"
 msgstr "Arq."
 
-#: ../output.py:944
+#: ../output.py:955
 msgid "Version"
 msgstr "Versão"
 
-#: ../output.py:944
+#: ../output.py:955
 msgid "Repository"
 msgstr "Repo"
 
-#: ../output.py:945
+#: ../output.py:956
 msgid "Size"
-msgstr "Tamanho"
+msgstr "Tam."
 
-#: ../output.py:956
+#: ../output.py:968
 #, python-format
 msgid ""
-"     replacing  %s.%s %s\n"
+"     replacing  %s%s%s.%s %s\n"
 "\n"
 msgstr ""
-"     substituindo  %s.%s %s\n"
+"     substituindo %s%s%s.%s %s\n"
 "\n"
 
-#: ../output.py:964
+#: ../output.py:977
 #, python-format
 msgid ""
 "\n"
@@ -808,27 +801,36 @@ msgstr ""
 "Atualizar   %5.5s pacote(s)         \n"
 "Remover   %5.5s pacote(s)         \n"
 
-#: ../output.py:1012
+#: ../output.py:1025
 msgid "Removed"
 msgstr "Removido(s)"
 
-#: ../output.py:1013
+#: ../output.py:1026
 msgid "Dependency Removed"
 msgstr "Dependência(s) removida(s)"
 
-#: ../output.py:1015
+#: ../output.py:1028
 msgid "Dependency Installed"
 msgstr "Dependência(s) instalada(s)"
 
-#: ../output.py:1017
+#: ../output.py:1030
 msgid "Dependency Updated"
 msgstr "Dependência(s) atualizada(s)"
 
-#: ../output.py:1019
+#: ../output.py:1032
 msgid "Replaced"
 msgstr "Substituído(s)"
 
-#: ../output.py:1092
+#: ../output.py:1033
+msgid "Failed"
+msgstr "Falhou"
+
+#. Delta between C-c's so we treat as exit
+#: ../output.py:1099
+msgid "two"
+msgstr "dois"
+
+#: ../output.py:1106
 #, python-format
 msgid ""
 "\n"
@@ -837,67 +839,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:1116
 msgid "user interrupt"
 msgstr "interrupção do usuário"
 
-#: ../output.py:1118
+#: ../output.py:1132
 msgid "Total"
 msgstr "Total"
 
-#: ../output.py:1132
+#: ../output.py:1146
 msgid "installed"
 msgstr "instalado"
 
-#: ../output.py:1133
+#: ../output.py:1147
 msgid "updated"
 msgstr "atualizado"
 
-#: ../output.py:1134
+#: ../output.py:1148
 msgid "obsoleted"
 msgstr "obsoleto"
 
-#: ../output.py:1135
+#: ../output.py:1149
 msgid "erased"
 msgstr "removido"
 
-#: ../output.py:1139
+#: ../output.py:1153
 #, 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:1160
 msgid "--> Running transaction check"
 msgstr "--> Executando verificação da transação"
 
-#: ../output.py:1151
+#: ../output.py:1165
 msgid "--> Restarting Dependency Resolution with new changes."
 msgstr "--> Reiniciando resolução de dependências com as novas alterações."
 
-#: ../output.py:1156
+#: ../output.py:1170
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Resolução de dependências finalizada"
 
-#: ../output.py:1161
+#: ../output.py:1175
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> Processando dependência: %s para o pacote: %s"
 
-#: ../output.py:1166
+#: ../output.py:1180
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Dependência não resolvida: %s"
 
-#: ../output.py:1172
+#: ../output.py:1186
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> Processando conflito: %s conflita com %s"
 
-#: ../output.py:1175
+#: ../output.py:1189
 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:1193
 #, 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 +979,274 @@ 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:292
 msgid "Installed Packages"
 msgstr "Pacotes instalados"
 
-#: ../yumcommands.py:285
+#: ../yumcommands.py:300
 msgid "Available Packages"
 msgstr "Pacotes disponíveis"
 
-#: ../yumcommands.py:289
+#: ../yumcommands.py:304
 msgid "Extra Packages"
 msgstr "Pacotes extras"
 
-#: ../yumcommands.py:291
+#: ../yumcommands.py:308
 msgid "Updated Packages"
 msgstr "Pacotes atualizados"
 
-#: ../yumcommands.py:298
-#: ../yumcommands.py:305
-#: ../yumcommands.py:574
+#. This only happens in verbose mode
+#: ../yumcommands.py:316
+#: ../yumcommands.py:323
+#: ../yumcommands.py:600
 msgid "Obsoleting Packages"
 msgstr "Tornando pacotes obsoletos"
 
-#: ../yumcommands.py:307
+#: ../yumcommands.py:325
 msgid "Recently Added Packages"
 msgstr "Pacotes adicionados recentemente"
 
-#: ../yumcommands.py:314
+#: ../yumcommands.py:332
 msgid "No matching Packages to list"
 msgstr "Nenhum pacote correspondente a ser listado"
 
-#: ../yumcommands.py:328
+#: ../yumcommands.py:346
 msgid "List a package or groups of packages"
 msgstr "Lista um pacote ou grupos de pacotes"
 
-#: ../yumcommands.py:340
+#: ../yumcommands.py:358
 msgid "Remove a package or packages from your system"
 msgstr "Remove um ou mais pacotes do seu sistema"
 
-#: ../yumcommands.py:348
+#: ../yumcommands.py:365
 msgid "Setting up Remove Process"
 msgstr "Configurando o processo de remoção"
 
-#: ../yumcommands.py:363
+#: ../yumcommands.py:379
 msgid "Setting up Group Process"
 msgstr "Configurando o processo de grupos"
 
-#: ../yumcommands.py:369
+#: ../yumcommands.py:385
 msgid "No Groups on which to run command"
 msgstr "Não há grupos nos quais executar o comando"
 
-#: ../yumcommands.py:382
+#: ../yumcommands.py:398
 msgid "List available package groups"
 msgstr "Lista os grupos de pacotes disponíveis"
 
-#: ../yumcommands.py:399
+#: ../yumcommands.py:415
 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:437
 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:464
 msgid "Display details about a package group"
 msgstr "Mostra detalhes sobre um grupo de pacotes"
 
-#: ../yumcommands.py:472
+#: ../yumcommands.py:488
 msgid "Generate the metadata cache"
 msgstr "Gera o cache de metadados"
 
-#: ../yumcommands.py:478
+#: ../yumcommands.py:494
 msgid "Making cache files for all metadata files."
 msgstr "Realizando cache de arquivos para todos os metadados."
 
-#: ../yumcommands.py:479
+#: ../yumcommands.py:495
 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:516
 msgid "Metadata Cache Created"
 msgstr "Cache de metadados criado"
 
-#: ../yumcommands.py:514
+#: ../yumcommands.py:530
 msgid "Remove cached data"
 msgstr "Remove os dados do cache"
 
-#: ../yumcommands.py:535
+#: ../yumcommands.py:551
 msgid "Find what package provides the given value"
 msgstr "Localiza qual pacote fornece o valor dado"
 
-#: ../yumcommands.py:555
+#: ../yumcommands.py:571
 msgid "Check for available package updates"
 msgstr "Verifica por atualizações de pacotes disponíveis"
 
-#: ../yumcommands.py:594
+#: ../yumcommands.py:620
 msgid "Search package details for the given string"
 msgstr "Pesquisa detalhes do pacote para a string fornecida"
 
-#: ../yumcommands.py:600
+#: ../yumcommands.py:626
 msgid "Searching Packages: "
 msgstr "Pesquisando por pacotes:"
 
-#: ../yumcommands.py:617
+#: ../yumcommands.py:643
 msgid "Update packages taking obsoletes into account"
 msgstr "Atualiza pacotes levando em conta os obsoletos"
 
-#: ../yumcommands.py:626
+#: ../yumcommands.py:651
 msgid "Setting up Upgrade Process"
 msgstr "Configurando o processo de atualização"
 
-#: ../yumcommands.py:640
+#: ../yumcommands.py:665
 msgid "Install a local RPM"
 msgstr "Instala um RPM local"
 
-#: ../yumcommands.py:649
+#: ../yumcommands.py:673
 msgid "Setting up Local Package Process"
 msgstr "Configurando o processo de pacote local"
 
-#: ../yumcommands.py:668
+#: ../yumcommands.py:692
 msgid "Determine which package provides the given dependency"
 msgstr "Determina qual pacote fornece a dependência dada"
 
-#: ../yumcommands.py:671
+#: ../yumcommands.py:695
 msgid "Searching Packages for Dependency:"
 msgstr "Pesquisando pacotes por dependência:"
 
-#: ../yumcommands.py:685
+#: ../yumcommands.py:709
 msgid "Run an interactive yum shell"
 msgstr "Executa um shell interativo do yum"
 
-#: ../yumcommands.py:691
+#: ../yumcommands.py:715
 msgid "Setting up Yum Shell"
 msgstr "Configurando o shell do Yum"
 
-#: ../yumcommands.py:709
+#: ../yumcommands.py:733
 msgid "List a package's dependencies"
 msgstr "Lista as dependências de um pacote"
 
-#: ../yumcommands.py:715
+#: ../yumcommands.py:739
 msgid "Finding dependencies: "
 msgstr "Localizando dependências:"
 
-#: ../yumcommands.py:731
+#: ../yumcommands.py:755
 msgid "Display the configured software repositories"
 msgstr "Exibe os repositórios de software configurados"
 
-#: ../yumcommands.py:779
-#: ../yumcommands.py:780
+#: ../yumcommands.py:803
+#: ../yumcommands.py:804
 msgid "enabled"
 msgstr "habilitado"
 
-#: ../yumcommands.py:788
-#: ../yumcommands.py:789
+#: ../yumcommands.py:812
+#: ../yumcommands.py:813
 msgid "disabled"
 msgstr "desabilitado"
 
-#: ../yumcommands.py:800
+#: ../yumcommands.py:827
 msgid "Repo-id     : "
 msgstr "Repo-id     : "
 
-#: ../yumcommands.py:801
+#: ../yumcommands.py:828
 msgid "Repo-name   : "
 msgstr "Repo-name   : "
 
-#: ../yumcommands.py:802
+#: ../yumcommands.py:829
 msgid "Repo-status : "
 msgstr "Repo-status : "
 
-#: ../yumcommands.py:804
+#: ../yumcommands.py:831
 msgid "Repo-revision: "
 msgstr "Repo-revision: "
 
-#: ../yumcommands.py:808
+#: ../yumcommands.py:835
 msgid "Repo-tags   : "
 msgstr "Repo-tags   : "
 
-#: ../yumcommands.py:814
+#: ../yumcommands.py:841
 msgid "Repo-distro-tags: "
 msgstr "Repo-distro-tags: "
 
-#: ../yumcommands.py:819
+#: ../yumcommands.py:846
 msgid "Repo-updated: "
 msgstr "Repo-updated: "
 
-#: ../yumcommands.py:821
+#: ../yumcommands.py:848
 msgid "Repo-pkgs   : "
 msgstr "Repo-pkgs   : "
 
-#: ../yumcommands.py:822
+#: ../yumcommands.py:849
 msgid "Repo-size   : "
 msgstr "Repo-size   : "
 
-#: ../yumcommands.py:829
+#: ../yumcommands.py:856
 msgid "Repo-baseurl: "
 msgstr "Repo-baseurl: "
 
-#: ../yumcommands.py:833
+#: ../yumcommands.py:860
 msgid "Repo-metalink: "
 msgstr "Repo-metalink: "
 
-#: ../yumcommands.py:836
+#: ../yumcommands.py:863
 msgid "Repo-mirrors: "
 msgstr "Repo-mirrors: "
 
-#: ../yumcommands.py:840
+#: ../yumcommands.py:867
 msgid "Repo-exclude: "
 msgstr "Repo-exclude: "
 
-#: ../yumcommands.py:844
+#: ../yumcommands.py:871
 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:881
+#: ../yumcommands.py:907
 msgid "repo id"
 msgstr "id do repo"
 
-#: ../yumcommands.py:868
-#: ../yumcommands.py:869
-#: ../yumcommands.py:883
+#: ../yumcommands.py:895
+#: ../yumcommands.py:896
+#: ../yumcommands.py:910
 msgid "status"
 msgstr "status"
 
-#: ../yumcommands.py:881
+#: ../yumcommands.py:908
 msgid "repo name"
 msgstr "nome do repo"
 
-#: ../yumcommands.py:907
+#: ../yumcommands.py:934
 msgid "Display a helpful usage message"
 msgstr "Exibe uma mensagem de uso para ajuda"
 
-#: ../yumcommands.py:941
+#: ../yumcommands.py:968
 #, python-format
 msgid "No help available for %s"
 msgstr "Nenhuma ajuda disponível para %s"
 
-#: ../yumcommands.py:946
+#: ../yumcommands.py:973
 msgid ""
 "\n"
 "\n"
@@ -1253,7 +1256,7 @@ msgstr ""
 "\n"
 "apelidos: "
 
-#: ../yumcommands.py:948
+#: ../yumcommands.py:975
 msgid ""
 "\n"
 "\n"
@@ -1263,15 +1266,15 @@ msgstr ""
 "\n"
 "apelido: "
 
-#: ../yumcommands.py:977
+#: ../yumcommands.py:1003
 msgid "Setting up Reinstall Process"
 msgstr "Configurando o processo de reinstalação"
 
-#: ../yumcommands.py:991
+#: ../yumcommands.py:1017
 msgid "reinstall a package"
 msgstr "reinstala um pacote"
 
-#: ../yummain.py:41
+#: ../yummain.py:42
 msgid ""
 "\n"
 "\n"
@@ -1281,7 +1284,7 @@ msgstr ""
 "\n"
 "Saindo pelo cancelamento do usuário"
 
-#: ../yummain.py:47
+#: ../yummain.py:48
 msgid ""
 "\n"
 "\n"
@@ -1291,28 +1294,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:124
+msgid "Running"
+msgstr "Executando"
 
 #: ../yummain.py:125
-#: ../yummain.py:164
+msgid "Sleeping"
+msgstr "Dormindo"
+
+#: ../yummain.py:126
+msgid "Uninteruptable"
+msgstr "Ininterrompível"
+
+#: ../yummain.py:127
+msgid "Zombie"
+msgstr "Zumbi"
+
+#: ../yummain.py:128
+msgid "Traced/Stopped"
+msgstr "Rastreado/Parado"
+
+#: ../yummain.py:129
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: ../yummain.py:133
+msgid "  The other application is: PackageKit"
+msgstr "  O outro aplicativo é: PackageKit"
+
+#: ../yummain.py:135
+#, python-format
+msgid "  The other application is: %s"
+msgstr "  O outro aplicativo é: %s"
+
+#: ../yummain.py:138
+#, python-format
+msgid "    Memory : %5s RSS (%5sB VSZ)"
+msgstr "    Memória: %5s RSS (%5sB VSZ)"
+
+#: ../yummain.py:142
+#, python-format
+msgid "    Started: %s - %s ago"
+msgstr "    Iniciado: %s - %s atrás"
+
+#: ../yummain.py:144
+#, python-format
+msgid "    State  : %s, pid: %d"
+msgstr "    Estado: %s, pid: %d"
+
+#: ../yummain.py:169
+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:197
+#: ../yummain.py:236
 #, python-format
 msgid "Error: %s"
 msgstr "Error: %s"
 
-#: ../yummain.py:135
-#: ../yummain.py:171
+#: ../yummain.py:207
+#: ../yummain.py:243
 #, 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:214
 msgid "Resolving Dependencies"
 msgstr "Resolvendo dependências"
 
-#: ../yummain.py:177
+#: ../yummain.py:249
 msgid ""
 "\n"
 "Dependencies Resolved"
@@ -1320,11 +1371,11 @@ msgstr ""
 "\n"
 "Dependências resolvidas"
 
-#: ../yummain.py:191
+#: ../yummain.py:263
 msgid "Complete!"
 msgstr "Concluído!"
 
-#: ../yummain.py:238
+#: ../yummain.py:310
 msgid ""
 "\n"
 "\n"
@@ -1368,7 +1419,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 +1468,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:1091
 #, python-format
 msgid "%s obsoletes %s"
 msgstr "%s torna %s obsoleto"
 
-#: ../yum/depsolve.py:1079
+#: ../yum/depsolve.py:1107
 #, python-format
 msgid ""
 "archdist compared %s to %s on %s\n"
@@ -1537,112 +1588,112 @@ msgstr ""
 "archdist comparou %s com %s em %s\n"
 "  Vencedor: %s"
 
-#: ../yum/depsolve.py:1086
+#: ../yum/depsolve.py:1114
 #, python-format
 msgid "common sourcerpm %s and %s"
 msgstr "Sourcerpm comum %s e %s"
 
-#: ../yum/depsolve.py:1092
+#: ../yum/depsolve.py:1120
 #, 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:1128
 #, 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:406
 msgid "Reading Local RPMDB"
 msgstr "Lendo RPMDB local"
 
-#: ../yum/__init__.py:388
+#: ../yum/__init__.py:424
 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:444
 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:461
 msgid "Setting up Package Sacks"
 msgstr "Configurando sacos de pacotes"
 
-#: ../yum/__init__.py:468
+#: ../yum/__init__.py:504
 #, 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:505
 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:510
 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:522
 msgid "Building updates object"
 msgstr "Construindo objeto de atualizações"
 
-#: ../yum/__init__.py:517
+#: ../yum/__init__.py:553
 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:578
 msgid "Getting group metadata"
 msgstr "Obtendo metadados do grupo"
 
-#: ../yum/__init__.py:567
+#: ../yum/__init__.py:604
 #, 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:613
 #, 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:619
 msgid "No Groups Available in any repository"
 msgstr "Nenhum grupo disponível em nenhum repositório"
 
-#: ../yum/__init__.py:632
+#: ../yum/__init__.py:669
 msgid "Importing additional filelist information"
 msgstr "Importando informações adicionais da lista de arquivos"
 
-#: ../yum/__init__.py:641
+#: ../yum/__init__.py:678
 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:744
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Rodada de ignoração de dependências quebradas %i"
 
-#: ../yum/__init__.py:759
+#: ../yum/__init__.py:796
 #, 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:797
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1650,89 +1701,89 @@ msgstr ""
 "\n"
 "Pacotes ignorados devido a problemas de dependências:"
 
-#: ../yum/__init__.py:764
+#: ../yum/__init__.py:801
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s a partir de %s"
 
-#: ../yum/__init__.py:908
+#: ../yum/__init__.py:945
 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:960
 #, 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:1002
 #, 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:1033
 msgid "Excluding Packages in global exclude list"
 msgstr "Excluindo pacotes na lista global de excluídos"
 
-#: ../yum/__init__.py:998
+#: ../yum/__init__.py:1035
 #, python-format
 msgid "Excluding Packages from %s"
 msgstr "Excluindo pacotes de %s"
 
-#: ../yum/__init__.py:1025
+#: ../yum/__init__.py:1064
 #, python-format
 msgid "Reducing %s to included packages only"
 msgstr "Reduzindo %s apenas aos pacotes inclusos"
 
-#: ../yum/__init__.py:1031
+#: ../yum/__init__.py:1070
 #, python-format
 msgid "Keeping included package %s"
 msgstr "Mantendo o pacote incluso %s"
 
-#: ../yum/__init__.py:1037
+#: ../yum/__init__.py:1076
 #, python-format
 msgid "Removing unmatched package %s"
 msgstr "Removendo pacote não encontrado %s"
 
-#: ../yum/__init__.py:1040
+#: ../yum/__init__.py:1079
 msgid "Finished"
 msgstr "Concluído"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:1070
+#: ../yum/__init__.py:1109
 #, 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:1113
 #, 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:1180
 msgid "Package does not match intended download"
 msgstr "O pacote não corresponde ao download pretendido"
 
-#: ../yum/__init__.py:1160
+#: ../yum/__init__.py:1195
 msgid "Could not perform checksum"
 msgstr "Não foi possível realizar a soma de verificação"
 
-#: ../yum/__init__.py:1163
+#: ../yum/__init__.py:1198
 msgid "Package does not match checksum"
 msgstr "O pacote não corresponde à soma de verificação"
 
-#: ../yum/__init__.py:1206
+#: ../yum/__init__.py:1241
 #, 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:1244
+#: ../yum/__init__.py:1273
 #, python-format
 msgid "using local copy of %s"
 msgstr "usando cópia local do %s"
 
-#: ../yum/__init__.py:1251
+#: ../yum/__init__.py:1285
 #, python-format
 msgid ""
 "Insufficient space in download directory %s\n"
@@ -1743,331 +1794,330 @@ msgstr ""
 "    * livre   %s\n"
 "    * necessário %s"
 
-#: ../yum/__init__.py:1298
+#: ../yum/__init__.py:1332
 msgid "Header is not complete."
 msgstr "O cabeçalho não está completo."
 
-#: ../yum/__init__.py:1338
+#: ../yum/__init__.py:1369
 #, 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:1424
 #, 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:1428
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Problema ao abrir o pacote %s"
 
-#: ../yum/__init__.py:1405
+#: ../yum/__init__.py:1436
 #, 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:1440
 #, python-format
 msgid "Package %s is not signed"
 msgstr "O pacote %s não está assinado"
 
-#: ../yum/__init__.py:1447
+#: ../yum/__init__.py:1478
 #, python-format
 msgid "Cannot remove %s"
 msgstr "Não foi possível remover %s"
 
-#: ../yum/__init__.py:1451
+#: ../yum/__init__.py:1482
 #, python-format
 msgid "%s removed"
 msgstr "%s removido"
 
-#: ../yum/__init__.py:1488
+#: ../yum/__init__.py:1518
 #, 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:1522
 #, python-format
 msgid "%s file %s removed"
 msgstr "%s arquivo %s removido"
 
-#: ../yum/__init__.py:1494
+#: ../yum/__init__.py:1524
 #, python-format
 msgid "%d %s files removed"
 msgstr "%d %s arquivos removidos"
 
-#: ../yum/__init__.py:1563
+#: ../yum/__init__.py:1593
 #, 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:1599
 #, 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:1817
 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:1855
 #, python-format
 msgid "Searching %d packages"
 msgstr "Pesquisando por %d pacotes"
 
-#: ../yum/__init__.py:1829
+#: ../yum/__init__.py:1859
 #, python-format
 msgid "searching package %s"
 msgstr "pesquisando pelo pacote %s"
 
-#: ../yum/__init__.py:1841
+#: ../yum/__init__.py:1871
 msgid "searching in file entries"
 msgstr "pesquisando nas entradas do arquivo"
 
-#: ../yum/__init__.py:1848
+#: ../yum/__init__.py:1878
 msgid "searching in provides entries"
 msgstr "pesquisando nas entradas dos fornecimentos"
 
-#: ../yum/__init__.py:1881
+#: ../yum/__init__.py:1911
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Fornecimento combina com: %s"
 
-#: ../yum/__init__.py:1930
+#: ../yum/__init__.py:1960
 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:1991
+#: ../yum/__init__.py:2010
+#: ../yum/__init__.py:2041
+#: ../yum/__init__.py:2047
+#: ../yum/__init__.py:2120
+#: ../yum/__init__.py:2124
 #, 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:2022
+#: ../yum/__init__.py:2137
 #, 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:2069
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Adicionando o pacote %s do grupo %s"
 
-#: ../yum/__init__.py:2043
+#: ../yum/__init__.py:2073
 #, 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:2162
 #, 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:2177
 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:2229
+#: ../yum/__init__.py:2272
 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:2231
+#: ../yum/__init__.py:2274
 msgid "Invalid version flag"
 msgstr "Sinalizador de versão inválido"
 
-#: ../yum/__init__.py:2216
-#: ../yum/__init__.py:2220
+#: ../yum/__init__.py:2246
+#: ../yum/__init__.py:2250
 #, python-format
 msgid "No Package found for %s"
 msgstr "Nenhum pacote encontrado para %s"
 
-#: ../yum/__init__.py:2428
+#: ../yum/__init__.py:2429
 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:2433
 msgid "Nothing specified to install"
 msgstr "Nada especificado para instalar"
 
-#. only one in there
-#: ../yum/__init__.py:2450
+#: ../yum/__init__.py:2449
 #, 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:2455
+#: ../yum/__init__.py:2708
+#: ../yum/__init__.py:2878
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "Nenhuma correspondência para o argumento: %s"
 
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2526
 #, 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:2529
 msgid "No package(s) available to install"
 msgstr "Nenhum pacote disponível para instalar"
 
-#: ../yum/__init__.py:2537
+#: ../yum/__init__.py:2541
 #, 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:2556
 #, 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:2564
 #, 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:2571
 #, 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:2652
 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:2670
+#: ../yum/__init__.py:2780
+#: ../yum/__init__.py:2801
+#: ../yum/__init__.py:2827
 #, 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:2705
+#: ../yum/__init__.py:2875
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: ../yum/__init__.py:2759
+#: ../yum/__init__.py:2771
 #, 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:2804
+#: ../yum/__init__.py:2830
 #, 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:2891
 msgid "No package matched to remove"
 msgstr "Nenhum pacote encontrado para remoção"
 
-#: ../yum/__init__.py:2910
+#: ../yum/__init__.py:2925
 #, 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:2928
 #, python-format
 msgid "Examining %s: %s"
 msgstr "Examinando %s: %s"
 
-#: ../yum/__init__.py:2921
+#: ../yum/__init__.py:2936
 #, 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:2944
 #, 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:2977
 #, python-format
 msgid "Excluding %s"
 msgstr "Excluindo %s"
 
-#: ../yum/__init__.py:2967
+#: ../yum/__init__.py:2982
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Marcando %s para ser instalado"
 
-#: ../yum/__init__.py:2973
+#: ../yum/__init__.py:2988
 #, 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:2995
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: não atualiza o pacote instalado."
 
-#: ../yum/__init__.py:2998
+#: ../yum/__init__.py:3013
 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:3025
 #, 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:3034
 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:3069
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "Obtendo a chave GPG a partir de %s"
 
-#: ../yum/__init__.py:3071
+#: ../yum/__init__.py:3089
 msgid "GPG key retrieval failed: "
 msgstr "A obtenção da chave GPG falhou:"
 
-#: ../yum/__init__.py:3082
+#: ../yum/__init__.py:3100
 #, 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:3132
 #, 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:3137
+#: ../yum/__init__.py:3199
 #, 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:3154
 msgid "Not installing key"
 msgstr "Não está instalando a chave"
 
-#: ../yum/__init__.py:3142
+#: ../yum/__init__.py:3160
 #, 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:3161
+#: ../yum/__init__.py:3220
 msgid "Key imported successfully"
 msgstr "Chave importada com sucesso"
 
-#: ../yum/__init__.py:3148
-#: ../yum/__init__.py:3207
+#: ../yum/__init__.py:3166
+#: ../yum/__init__.py:3225
 #, python-format
 msgid ""
 "The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n"
@@ -2076,96 +2126,96 @@ 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:3175
 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:3194
 #, 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:3214
 #, 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:3219
 msgid "Key import failed"
 msgstr "Falha na importação da chave"
 
-#: ../yum/__init__.py:3292
+#: ../yum/__init__.py:3310
 msgid "Unable to find a suitable mirror."
 msgstr "Não foi possível encontrar um espelho apropriado."
 
-#: ../yum/__init__.py:3294
+#: ../yum/__init__.py:3312
 msgid "Errors were encountered while downloading packages."
 msgstr "Foram encontrados erros ao baixar os pacotes."
 
-#: ../yum/__init__.py:3335
+#: ../yum/__init__.py:3353
 #, python-format
 msgid "Please report this error at %s"
 msgstr "Por favor, relate esse erro em %s"
 
-#: ../yum/__init__.py:3359
+#: ../yum/__init__.py:3377
 msgid "Test Transaction Errors: "
 msgstr "Erros do teste de transação:"
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:201
+#: ../yum/plugins.py:204
 msgid "Loaded plugins: "
 msgstr "Plugins carregados: "
 
-#: ../yum/plugins.py:215
-#: ../yum/plugins.py:221
+#: ../yum/plugins.py:218
+#: ../yum/plugins.py:224
 #, python-format
 msgid "No plugin match for: %s"
 msgstr "Nenhum plugin correspondente para: %s"
 
-#: ../yum/plugins.py:251
+#: ../yum/plugins.py:254
 #, python-format
-msgid "\"%s\" plugin is disabled"
-msgstr "O plugin \"%s\" está desabilitado"
+msgid "Not loading \"%s\" plugin, as it is disabled"
+msgstr "O plugin \"%s\" não será carregado, pois está desabilitado"
 
 #. Give full backtrace:
-#: ../yum/plugins.py:263
+#: ../yum/plugins.py:266
 #, python-format
 msgid "Plugin \"%s\" can't be imported"
 msgstr "O plugin \"%s\" não pôde ser importado"
 
-#: ../yum/plugins.py:270
+#: ../yum/plugins.py:273
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr "O plugin \"%s\" não especifica a versão requerida da API"
 
-#: ../yum/plugins.py:275
+#: ../yum/plugins.py:278
 #, python-format
 msgid "Plugin \"%s\" requires API %s. Supported API is %s."
 msgstr "O plugin \"%s\" requer a API %s. A API suportada é a %s."
 
-#: ../yum/plugins.py:308
+#: ../yum/plugins.py:311
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "Carregando o plugin \"%s\""
 
-#: ../yum/plugins.py:315
+#: ../yum/plugins.py:318
 #, python-format
 msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
 msgstr "Dois ou mais plugins com o nome \"%s\" existem no caminho de pesquisa plugins"
 
-#: ../yum/plugins.py:335
+#: ../yum/plugins.py:338
 #, python-format
 msgid "Configuration file %s not found"
 msgstr "Arquivos de configuração %s não encontrado"
 
 #. for
 #. Configuration files for the plugin not found
-#: ../yum/plugins.py:338
+#: ../yum/plugins.py:341
 #, python-format
 msgid "Unable to find configuration file for plugin %s"
 msgstr "Não foi possível encontrar o arquivo de configuração para o plugin %s"
 
-#: ../yum/plugins.py:492
+#: ../yum/plugins.py:495
 msgid "registration of commands not supported"
 msgstr "O registro de comandos não é suportado"
 
@@ -2204,6 +2254,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/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..22e1334
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,2168 @@
+# Swedish messages for yum
+# Copyright © 2009 Free Software Foundation
+# This file is distributed under the same license as the yum package.
+# Göran Uddeborg <goeran@uddeborg.se>, 2009.
+#
+# $Id: yum-HEAD.patch,v 1.14 2009/03/04 16:51:24 skvidal Exp $
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: yum\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-01-23 13:23+0000\n"
+"PO-Revision-Date: 2009-02-20 22:45+0100\n"
+"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../callback.py:48 ../output.py:909 ../yum/rpmtrans.py:71
+msgid "Updating"
+msgstr "Uppdaterar"
+
+#: ../callback.py:49 ../yum/rpmtrans.py:72
+msgid "Erasing"
+msgstr "Raderar"
+
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:908
+#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
+msgid "Installing"
+msgstr "Installerar"
+
+#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
+msgid "Obsoleted"
+msgstr "Utgick"
+
+#: ../callback.py:54 ../output.py:1014
+msgid "Updated"
+msgstr "Uppdaterade"
+
+#: ../callback.py:55
+msgid "Erased"
+msgstr "Raderade"
+
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1012
+msgid "Installed"
+msgstr "Installerade"
+
+#: ../callback.py:130
+msgid "No header - huh?"
+msgstr "Inget huvud - va?"
+
+#: ../callback.py:168
+msgid "Repackage"
+msgstr "Packetera om"
+
+#: ../callback.py:189
+#, python-format
+msgid "Error: invalid output state: %s for %s"
+msgstr "Fel: ogiltig utdatatillstånd: %s för %s"
+
+#: ../callback.py:212
+#, python-format
+msgid "Erased: %s"
+msgstr "Raderade: %s"
+
+#: ../callback.py:217 ../output.py:910
+msgid "Removing"
+msgstr "Tar bort"
+
+#: ../callback.py:219 ../yum/rpmtrans.py:77
+msgid "Cleanup"
+msgstr "Rensar upp"
+
+#: ../cli.py:105
+#, python-format
+msgid "Command \"%s\" already defined"
+msgstr "Kommando \"%s\" redan definierat"
+
+#: ../cli.py:117
+msgid "Setting up repositories"
+msgstr "Gör i ordning förråd"
+
+#: ../cli.py:128
+msgid "Reading repository metadata in from local files"
+msgstr "Läser in förrådsmetadata från lokala filer"
+
+#: ../cli.py:191 ../utils.py:79
+#, python-format
+msgid "Config Error: %s"
+msgstr "Konfigurationsfel: %s"
+
+#: ../cli.py:194 ../cli.py:1178 ../utils.py:82
+#, python-format
+msgid "Options Error: %s"
+msgstr "Fel bland flaggor: %s"
+
+#: ../cli.py:222
+#, python-format
+msgid "  Installed: %s-%s at %s"
+msgstr "  Installerade: %s-%s %s"
+
+#: ../cli.py:224
+#, python-format
+msgid "  Built    : %s at %s"
+msgstr "  Byggde      : %s %s"
+
+#: ../cli.py:226
+#, python-format
+msgid "  Committed: %s at %s"
+msgstr "  Verkställde : %s %s"
+
+#: ../cli.py:263
+msgid "You need to give some command"
+msgstr "Du måste ange något kommando"
+
+#: ../cli.py:305
+msgid "Disk Requirements:\n"
+msgstr "Diskbehov:\n"
+
+#: ../cli.py:307
+#, python-format
+msgid "  At least %dMB needed on the %s filesystem.\n"
+msgstr "  Åtminstone %d MB behövs på filsystemet %s.\n"
+
+#. TODO: simplify the dependency errors?
+#. Fixup the summary
+#: ../cli.py:312
+msgid ""
+"Error Summary\n"
+"-------------\n"
+msgstr ""
+"Felsammandrag\n"
+"-------------\n"
+
+#: ../cli.py:355
+msgid "Trying to run the transaction but nothing to do. Exiting."
+msgstr "Försöker köra transaktionen men det finns inget att göra.  Avslutar."
+
+#: ../cli.py:391
+msgid "Exiting on user Command"
+msgstr "Avslutar på användarens order"
+
+#: ../cli.py:395
+msgid "Downloading Packages:"
+msgstr "Hämtar paket:"
+
+#: ../cli.py:400
+msgid "Error Downloading Packages:\n"
+msgstr "Fel när paket hämtades:\n"
+
+#: ../cli.py:414 ../yum/__init__.py:3328
+msgid "Running rpm_check_debug"
+msgstr "Kör rpm_check_debug"
+
+#: ../cli.py:417 ../yum/__init__.py:3331
+msgid "ERROR with rpm_check_debug vs depsolve:"
+msgstr "FEL med rpm_check_debug mot depsolve:"
+
+#: ../cli.py:421
+#, python-format
+msgid "Please report this error in %s"
+msgstr "Vänligen rapportera detta fel i %s"
+
+#: ../cli.py:427
+msgid "Running Transaction Test"
+msgstr "Kör transaktionstest"
+
+#: ../cli.py:443
+msgid "Finished Transaction Test"
+msgstr "Avslutade transaktionstest"
+
+#: ../cli.py:445
+msgid "Transaction Check Error:\n"
+msgstr "Transaktionskontrollfel:\n"
+
+#: ../cli.py:452
+msgid "Transaction Test Succeeded"
+msgstr "Transaktionskontrollen lyckades"
+
+#: ../cli.py:473
+msgid "Running Transaction"
+msgstr "Kör transaktionen"
+
+#: ../cli.py:503
+msgid ""
+"Refusing to automatically import keys when running unattended.\n"
+"Use \"-y\" to override."
+msgstr ""
+"Vägrar att automatiskt importera nycklar vid oövervakad körning.\n"
+"Använd \"-y\" för att åsidosätta."
+
+#: ../cli.py:522 ../cli.py:556
+msgid "  * Maybe you meant: "
+msgstr "  * Du kanske menade: "
+
+#: ../cli.py:539 ../cli.py:547
+#, python-format
+msgid "Package(s) %s%s%s available, but not installed."
+msgstr "Paket %s%s%s tillgängliga, men inte installerade."
+
+#: ../cli.py:553 ../cli.py:586
+#, python-format
+msgid "No package %s%s%s available."
+msgstr "Inget paket %s%s%s tillgängligt."
+
+#: ../cli.py:591 ../cli.py:666 ../yumcommands.py:988
+msgid "Package(s) to install"
+msgstr "Paket att installera"
+
+#: ../cli.py:592 ../cli.py:667 ../yumcommands.py:159 ../yumcommands.py:989
+msgid "Nothing to do"
+msgstr "Inget att göra"
+
+#: ../cli.py:625
+#, python-format
+msgid "%d packages marked for Update"
+msgstr "%d paket noterade för att uppdateras"
+
+#: ../cli.py:628
+msgid "No Packages marked for Update"
+msgstr "Inga paket noterade för att uppdateras"
+
+#: ../cli.py:642
+#, python-format
+msgid "%d packages marked for removal"
+msgstr "%d paket noterade för att tas bort"
+
+#: ../cli.py:645
+msgid "No Packages marked for removal"
+msgstr "Inga paket noterade för att tas bort"
+
+#: ../cli.py:657
+msgid "No Packages Provided"
+msgstr "Inga paket angivna"
+
+#: ../cli.py:712
+msgid "Matching packages for package list to user args"
+msgstr "Matchar paket för paketlistan mot användarargument"
+
+#: ../cli.py:761
+#, python-format
+msgid "Warning: No matches found for: %s"
+msgstr "Varning: Ingen matchning hittades för: %s"
+
+#: ../cli.py:764
+msgid "No Matches found"
+msgstr "Inga matchningar hittades"
+
+#: ../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 ""
+"Varing: versionerna 3.0.x av yum matchade felaktigt mot filnamn.\n"
+" Du kan använda \"%s*/%s%s\" och/eller \"%s*bin/%s%s\" för att få detta beteende"
+
+#: ../cli.py:819
+#, python-format
+msgid "No Package Found for %s"
+msgstr "Inga paket hittades för %s"
+
+#: ../cli.py:831
+msgid "Cleaning up Everything"
+msgstr "Rensar upp allt"
+
+#: ../cli.py:845
+msgid "Cleaning up Headers"
+msgstr "Rensar upp huvuden"
+
+#: ../cli.py:848
+msgid "Cleaning up Packages"
+msgstr "Rensar upp paket"
+
+#: ../cli.py:851
+msgid "Cleaning up xml metadata"
+msgstr "Rensar upp xml-metadata"
+
+#: ../cli.py:854
+msgid "Cleaning up database cache"
+msgstr "Rensar upp databas-cache"
+
+#: ../cli.py:857
+msgid "Cleaning up expire-cache metadata"
+msgstr "Rensar upp expire-cache-metadata"
+
+#: ../cli.py:860
+msgid "Cleaning up plugins"
+msgstr "Rensar upp insticksmoduler"
+
+#: ../cli.py:885
+msgid "Installed Groups:"
+msgstr "Installerade grupper:"
+
+#: ../cli.py:892
+msgid "Available Groups:"
+msgstr "Tillgängliga grupper:"
+
+#: ../cli.py:898
+msgid "Done"
+msgstr "Klart"
+
+#: ../cli.py:909 ../cli.py:927 ../cli.py:933 ../yum/__init__.py:2376
+#, python-format
+msgid "Warning: Group %s does not exist."
+msgstr "Varning: Grupp %s finns inte."
+
+#: ../cli.py:937
+msgid "No packages in any requested group available to install or update"
+msgstr "Inget paket i någon begärd grupp är tillgängligt för installation eller uppdatering"
+
+#: ../cli.py:939
+#, python-format
+msgid "%d Package(s) to Install"
+msgstr "%d paket att installera"
+
+#: ../cli.py:949 ../yum/__init__.py:2388
+#, python-format
+msgid "No group named %s exists"
+msgstr "Ingen grupp med namnet %s finns"
+
+#: ../cli.py:955
+msgid "No packages to remove from groups"
+msgstr "Inget paket att ta bort från grupper"
+
+#: ../cli.py:957
+#, python-format
+msgid "%d Package(s) to remove"
+msgstr "%d paket att ta bort"
+
+#: ../cli.py:999
+#, python-format
+msgid "Package %s is already installed, skipping"
+msgstr "Paket %s är redan installerat, hoppar över"
+
+#: ../cli.py:1010
+#, python-format
+msgid "Discarding non-comparable pkg %s.%s"
+msgstr "Kastar ojämförbart paket %s.%s"
+
+#. we've not got any installed that match n or n+a
+#: ../cli.py:1036
+#, python-format
+msgid "No other %s installed, adding to list for potential install"
+msgstr "Ingen annat %s installerat, lägger till listan för potentiell installation"
+
+#: ../cli.py:1055
+#, python-format
+msgid "Command line error: %s"
+msgstr "Kommandoradsfel: %s"
+
+#: ../cli.py:1068
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr "\n\n%s: flaggan %s behöver ett argument"
+
+#: ../cli.py:1118
+msgid "--color takes one of: auto, always, never"
+msgstr "--color tar en av: auto, always, never"
+
+#: ../cli.py:1220
+msgid "show this help message and exit"
+msgstr "visa detta hjälpmeddelande och avsluta"
+
+#: ../cli.py:1224
+msgid "be tolerant of errors"
+msgstr "var tolerant vid fel"
+
+#: ../cli.py:1226
+msgid "run entirely from cache, don't update cache"
+msgstr "kör helt från cache, uppdatera inte cachen"
+
+#: ../cli.py:1228
+msgid "config file location"
+msgstr "konfigurationsfilens plats"
+
+#: ../cli.py:1230
+msgid "maximum command wait time"
+msgstr "maximal tid att vänta på kommandon"
+
+#: ../cli.py:1232
+msgid "debugging output level"
+msgstr "nivå på felsökningsutskrifter"
+
+#: ../cli.py:1236
+msgid "show duplicates, in repos, in list/search commands"
+msgstr "visa dubletter, i förråd, i list-/search-kommandon"
+
+#: ../cli.py:1238
+msgid "error output level"
+msgstr "nivå på felutskrifter"
+
+#: ../cli.py:1241
+msgid "quiet operation"
+msgstr "tyst operation"
+
+#: ../cli.py:1243
+msgid "verbose operation"
+msgstr "utförlig operation"
+
+#: ../cli.py:1245
+msgid "answer yes for all questions"
+msgstr "svara ja på alla frågor"
+
+#: ../cli.py:1247
+msgid "show Yum version and exit"
+msgstr "visa Yum-version och avsluta"
+
+#: ../cli.py:1248
+msgid "set install root"
+msgstr "ange installationsrot"
+
+#: ../cli.py:1252
+msgid "enable one or more repositories (wildcards allowed)"
+msgstr "aktivera ett eller flera förråd (jokrertecken tillåts)"
+
+#: ../cli.py:1256
+msgid "disable one or more repositories (wildcards allowed)"
+msgstr "avaktivera ett eller flera förråd (jokertecken tillåts)"
+
+#: ../cli.py:1259
+msgid "exclude package(s) by name or glob"
+msgstr "uteslut paket via namn eller mönster"
+
+#: ../cli.py:1261
+msgid "disable exclude from main, for a repo or for everything"
+msgstr "avaktivera uteslutningar från main, för ett förråd, eller för allt"
+
+#: ../cli.py:1264
+msgid "enable obsoletes processing during updates"
+msgstr "aktivera bearbetning av utfasningar under uppdateringar"
+
+#: ../cli.py:1266
+msgid "disable Yum plugins"
+msgstr "avaktivera Yum-insticksmoduler"
+
+#: ../cli.py:1268
+msgid "disable gpg signature checking"
+msgstr "avaktivera kontroll av gpg-signatur"
+
+#: ../cli.py:1270
+msgid "disable plugins by name"
+msgstr "avaktivera insticksmoduler efter namn"
+
+#: ../cli.py:1273
+msgid "enable plugins by name"
+msgstr "aktivera insticksmoduler efter namn"
+
+#: ../cli.py:1276
+msgid "skip packages with depsolving problems"
+msgstr "hoppa över paket med problem vid beroendeupplösning"
+
+#: ../cli.py:1278
+msgid "control whether color is used"
+msgstr "styr om färg skall användas"
+
+#: ../output.py:298
+msgid "Jan"
+msgstr "jan"
+
+#: ../output.py:298
+msgid "Feb"
+msgstr "feb"
+
+#: ../output.py:298
+msgid "Mar"
+msgstr "mar"
+
+#: ../output.py:298
+msgid "Apr"
+msgstr "apr"
+
+#: ../output.py:298
+msgid "May"
+msgstr "maj"
+
+#: ../output.py:298
+msgid "Jun"
+msgstr "jun"
+
+#: ../output.py:299
+msgid "Jul"
+msgstr "jul"
+
+#: ../output.py:299
+msgid "Aug"
+msgstr "aug"
+
+#: ../output.py:299
+msgid "Sep"
+msgstr "sep"
+
+#: ../output.py:299
+msgid "Oct"
+msgstr "okt"
+
+#: ../output.py:299
+msgid "Nov"
+msgstr "nov"
+
+#: ../output.py:299
+msgid "Dec"
+msgstr "dec"
+
+#: ../output.py:309
+msgid "Trying other mirror."
+msgstr "Försöker med en annan spegel."
+
+#: ../output.py:525
+#, python-format
+msgid "Name       : %s%s%s"
+msgstr "Namn       : %s%s%s"
+
+#: ../output.py:526
+#, python-format
+msgid "Arch       : %s"
+msgstr "Arkitektur : %s"
+
+#: ../output.py:528
+#, python-format
+msgid "Epoch      : %s"
+msgstr "Epok       : %s"
+
+#: ../output.py:529
+#, python-format
+msgid "Version    : %s"
+msgstr "Version    : %s"
+
+#: ../output.py:530
+#, python-format
+msgid "Release    : %s"
+msgstr "Utgåva     : %s"
+
+#: ../output.py:531
+#, python-format
+msgid "Size       : %s"
+msgstr "Storlek    : %s"
+
+#: ../output.py:532
+#, python-format
+msgid "Repo       : %s"
+msgstr "Förråd     : %s"
+
+#: ../output.py:534
+#, python-format
+msgid "Committer  : %s"
+msgstr "Verkställare: %s"
+
+#: ../output.py:535
+#, python-format
+msgid "Committime : %s"
+msgstr "Verkställt : %s"
+
+#: ../output.py:536
+#, python-format
+msgid "Buildtime  : %s"
+msgstr "Byggt      : %s"
+
+#: ../output.py:538
+#, python-format
+msgid "Installtime: %s"
+msgstr "Installerat: %s"
+
+#: ../output.py:539
+msgid "Summary    : "
+msgstr "Sammandrag : "
+
+#: ../output.py:541
+#, python-format
+msgid "URL        : %s"
+msgstr "URL        : %s"
+
+#: ../output.py:542
+#, python-format
+msgid "License    : %s"
+msgstr "Licens     : %s"
+
+#: ../output.py:543
+msgid "Description: "
+msgstr "Beskrivning: "
+
+#: ../output.py:607
+msgid "y"
+msgstr "j"
+
+#: ../output.py:607
+msgid "yes"
+msgstr "ja"
+
+#: ../output.py:608
+msgid "n"
+msgstr "n"
+
+#: ../output.py:608
+msgid "no"
+msgstr "nej"
+
+#: ../output.py:612
+msgid "Is this ok [y/N]: "
+msgstr "Är detta ok [j/N]: "
+
+#: ../output.py:700
+#, python-format
+msgid ""
+"\n"
+"Group: %s"
+msgstr "\nGrupp: %s"
+
+#: ../output.py:707
+#, python-format
+msgid " Description: %s"
+msgstr " Beskrivning: %s"
+
+#: ../output.py:709
+msgid " Mandatory Packages:"
+msgstr " Obligatoriska paket:"
+
+#: ../output.py:710
+msgid " Default Packages:"
+msgstr " Standardpaket:"
+
+#: ../output.py:711
+msgid " Optional Packages:"
+msgstr " Valfria paket:"
+
+#: ../output.py:712
+msgid " Conditional Packages:"
+msgstr " Villkorliga paket:"
+
+#: ../output.py:732
+#, python-format
+msgid "package: %s"
+msgstr "paket: %s"
+
+#: ../output.py:734
+msgid "  No dependencies for this package"
+msgstr "  Inga beroenden för detta paket"
+
+#: ../output.py:739
+#, python-format
+msgid "  dependency: %s"
+msgstr "  beroende: %s"
+
+#: ../output.py:741
+msgid "   Unsatisfied dependency"
+msgstr "   Ej uppfyllt beroende"
+
+#: ../output.py:813
+#, python-format
+msgid "Repo        : %s"
+msgstr "Förråd      : %s"
+
+#: ../output.py:814
+msgid "Matched from:"
+msgstr "Matchat från:"
+
+#: ../output.py:822
+msgid "Description : "
+msgstr "Beskrivning : "
+
+#: ../output.py:825
+#, python-format
+msgid "URL         : %s"
+msgstr "URL         : %s"
+
+#: ../output.py:828
+#, python-format
+msgid "License     : %s"
+msgstr "Licens      : %s"
+
+#: ../output.py:831
+#, python-format
+msgid "Filename    : %s"
+msgstr "Filnamn     : %s"
+
+#: ../output.py:835
+msgid "Other       : "
+msgstr "Övrigt      : "
+
+#: ../output.py:868
+msgid "There was an error calculating total download size"
+msgstr "Ett fel uppstod vid beräkningen av total storlek att hämta"
+
+#: ../output.py:873
+#, python-format
+msgid "Total size: %s"
+msgstr "Total storlek: %s"
+
+#: ../output.py:876
+#, python-format
+msgid "Total download size: %s"
+msgstr "Total storlek att hämta: %s"
+
+#: ../output.py:911
+msgid "Installing for dependencies"
+msgstr "Installerar på grund av beroenden"
+
+#: ../output.py:912
+msgid "Updating for dependencies"
+msgstr "Uppdaterar på grund av beroenden"
+
+#: ../output.py:913
+msgid "Removing for dependencies"
+msgstr "Tar bort på grund av beroenden"
+
+#: ../output.py:920 ../output.py:1016
+msgid "Skipped (dependency problems)"
+msgstr "Hoppas över (beroendeproblem)"
+
+#: ../output.py:941
+msgid "Package"
+msgstr "Paket"
+
+#: ../output.py:941
+msgid "Arch"
+msgstr "Ark"
+
+#: ../output.py:942
+msgid "Version"
+msgstr "Version"
+
+#: ../output.py:942
+msgid "Repository"
+msgstr "Förråd"
+
+#: ../output.py:943
+msgid "Size"
+msgstr "Strlk"
+
+#: ../output.py:954
+#, python-format
+msgid ""
+"     replacing  %s.%s %s\n"
+"\n"
+msgstr "     ersätter  %s.%s %s\n\n"
+
+#: ../output.py:962
+#, python-format
+msgid ""
+"\n"
+"Transaction Summary\n"
+"%s\n"
+"Install  %5.5s Package(s)         \n"
+"Update   %5.5s Package(s)         \n"
+"Remove   %5.5s Package(s)         \n"
+msgstr ""
+"\n"
+"Transaktionssamanfattning\n"
+"%s\n"
+"Installerar  %5.5s Package(s)         \n"
+"Uppdaterar   %5.5s Package(s)         \n"
+"Tar bort     %5.5s Package(s)         \n"
+
+#: ../output.py:1010
+msgid "Removed"
+msgstr "Borttagna"
+
+#: ../output.py:1011
+msgid "Dependency Removed"
+msgstr "Borttagna beroenden"
+
+#: ../output.py:1013
+msgid "Dependency Installed"
+msgstr "Installerade beroenden"
+
+#: ../output.py:1015
+msgid "Dependency Updated"
+msgstr "Uppdaterade beroenden"
+
+#: ../output.py:1017
+msgid "Replaced"
+msgstr "Ersatte"
+
+#: ../output.py:1018
+msgid "Failed"
+msgstr "Misslyckade"
+
+# Alla utom fjärde %s ger styrtecken för att styra fetstil.
+#
+# Det sista är den hårdkodade strängen "two", felrapporterad:
+# http://yum.baseurl.org/ticket/34
+#: ../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 Aktuell nedladdning avbröts, %savbryt (ctrl-c) igen%s inom %s%s%s sekunder för att avsluta.\n"
+
+#: ../output.py:1101
+msgid "user interrupt"
+msgstr "avbrott från användaren"
+
+#: ../output.py:1117
+msgid "Total"
+msgstr "Totalt"
+
+#: ../output.py:1131
+msgid "installed"
+msgstr "installeras"
+
+#: ../output.py:1132
+msgid "updated"
+msgstr "uppdateras"
+
+#: ../output.py:1133
+msgid "obsoleted"
+msgstr "fasas ut"
+
+#: ../output.py:1134
+msgid "erased"
+msgstr "raderas"
+
+#: ../output.py:1138
+#, python-format
+msgid "---> Package %s.%s %s:%s-%s set to be %s"
+msgstr "---> Paket %s.%s %s:%s-%s satt till att %s"
+
+#: ../output.py:1145
+msgid "--> Running transaction check"
+msgstr "--> Kör transaktionskontroll"
+
+#: ../output.py:1150
+msgid "--> Restarting Dependency Resolution with new changes."
+msgstr "--> Startar om beroendeupplösning med nya ändringar."
+
+#: ../output.py:1155
+msgid "--> Finished Dependency Resolution"
+msgstr "--> Avslutade beroendeupplösning"
+
+#: ../output.py:1160
+#, python-format
+msgid "--> Processing Dependency: %s for package: %s"
+msgstr "--> Bearbetar beroende: %s för paket: %s"
+
+#: ../output.py:1165
+#, python-format
+msgid "--> Unresolved Dependency: %s"
+msgstr "--> Ej upplöst beroende: %s"
+
+#: ../output.py:1171
+#, python-format
+msgid "--> Processing Conflict: %s conflicts %s"
+msgstr "--> Bearbetar konflikt: %s står i konflikt med %s"
+
+#: ../output.py:1174
+msgid "--> Populating transaction set with selected packages. Please wait."
+msgstr "--> Fyller transaktionsmängden med valda paket.  Var god dröj."
+
+#: ../output.py:1178
+#, python-format
+msgid "---> Downloading header for %s to pack into transaction set."
+msgstr "---> Hämtar huvud för %s för att paketera i transaktionsmängden."
+
+#: ../yumcommands.py:41
+msgid "You need to be root to perform this command."
+msgstr "Du måste vara root för att utföra detta kommando."
+
+#: ../yumcommands.py:48
+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"
+"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"
+"\n"
+"\n"
+"Alternatively you can specify the url to the key you would like to use\n"
+"for a repository in the 'gpgkey' option in a repository section and yum \n"
+"will install it for you.\n"
+"\n"
+"For more information contact your distribution or package provider.\n"
+msgstr ""
+"\n"
+"Du har aktiverat kontroll av paket med GPG-nycklar.  Det är bra.  Doch har\n"
+"du inte några publika GPG-nycklar installerade.  Du behöver hämta nycklarna\n"
+"för paket som du vill installera och installera dem.\n"
+"Du kan göra det genom att köra kommandot:\n"
+"    rpm --import public.gpg.key\n"
+"\n"
+"\n"
+"Alternativt kan du ange URL:en till nyckeln du vill använda för ett förråd\n"
+"i alternativet gpgkey i en förrådssektion och yum kommer installera den åt\n"
+"dig.\n"
+"\n"
+"För mer information, kontakta leverantören av din distribution eller paket.\n"
+
+#: ../yumcommands.py:68
+#, python-format
+msgid "Error: Need to pass a list of pkgs to %s"
+msgstr "Fel: Behöver skicka en lista paket till %s"
+
+#: ../yumcommands.py:74
+msgid "Error: Need an item to match"
+msgstr "Fel: Behöver något att matcha emot"
+
+#: ../yumcommands.py:80
+msgid "Error: Need a group or list of groups"
+msgstr "Fel: Behöver en grupp eller lista av grupper"
+
+#: ../yumcommands.py:89
+#, python-format
+msgid "Error: clean requires an option: %s"
+msgstr "Fel: clean behöver ett argument: %s"
+
+#: ../yumcommands.py:94
+#, python-format
+msgid "Error: invalid clean argument: %r"
+msgstr "Fel: felaktigt argument till clean: %r"
+
+#: ../yumcommands.py:107
+msgid "No argument to shell"
+msgstr "Inget argument till skalet"
+
+#: ../yumcommands.py:110
+#, python-format
+msgid "Filename passed to shell: %s"
+msgstr "Filnamn skickat till skalet: %s"
+
+#: ../yumcommands.py:114
+#, python-format
+msgid "File %s given as argument to shell does not exist."
+msgstr "Filen %s som gavs som ett argument till skalet finns inte."
+
+#: ../yumcommands.py:120
+msgid "Error: more than one file given as argument to shell."
+msgstr "Fel: mer än en fil angiven som argument till skalet."
+
+#: ../yumcommands.py:169
+msgid "PACKAGE..."
+msgstr "PAKET..."
+
+#: ../yumcommands.py:172
+msgid "Install a package or packages on your system"
+msgstr "Installera ett eller flera paket på ditt system"
+
+#: ../yumcommands.py:180
+msgid "Setting up Install Process"
+msgstr "Förbereder installationsprocessen"
+
+#: ../yumcommands.py:191
+msgid "[PACKAGE...]"
+msgstr "[PAKET...]"
+
+#: ../yumcommands.py:194
+msgid "Update a package or packages on your system"
+msgstr "Uppdatera ett eller flera paket på ditt system"
+
+#: ../yumcommands.py:201
+msgid "Setting up Update Process"
+msgstr "Förbereder uppdateringsprocessen"
+
+#: ../yumcommands.py:243
+msgid "Display details about a package or group of packages"
+msgstr "Visa detaljer om ett paket eller en grupp paket"
+
+#: ../yumcommands.py:284
+msgid "Installed Packages"
+msgstr "Installerade paket"
+
+#: ../yumcommands.py:291
+msgid "Available Packages"
+msgstr "Tillgängliga paket"
+
+#: ../yumcommands.py:295
+msgid "Extra Packages"
+msgstr "Extra paket"
+
+#: ../yumcommands.py:297
+msgid "Updated Packages"
+msgstr "Uppdaterade paket"
+
+#: ../yumcommands.py:304 ../yumcommands.py:311 ../yumcommands.py:578
+msgid "Obsoleting Packages"
+msgstr "Fasar ut paket"
+
+#: ../yumcommands.py:313
+msgid "Recently Added Packages"
+msgstr "Nyligen tillagda paket"
+
+#: ../yumcommands.py:320
+msgid "No matching Packages to list"
+msgstr "Inga matchande paket att lista"
+
+#: ../yumcommands.py:334
+msgid "List a package or groups of packages"
+msgstr "Lista ett paket eller en grupp paket"
+
+#: ../yumcommands.py:346
+msgid "Remove a package or packages from your system"
+msgstr "Ta bort ett eller flera paket från ditt system"
+
+#: ../yumcommands.py:353
+msgid "Setting up Remove Process"
+msgstr "Förbereder processen att ta bort"
+
+#: ../yumcommands.py:367
+msgid "Setting up Group Process"
+msgstr "Förbereder grupprocessen"
+
+#: ../yumcommands.py:373
+msgid "No Groups on which to run command"
+msgstr "Inga grupper att köra kommandot på"
+
+#: ../yumcommands.py:386
+msgid "List available package groups"
+msgstr "Lista tillgängliga paketgrupper"
+
+#: ../yumcommands.py:403
+msgid "Install the packages in a group on your system"
+msgstr "Installera paketen i en grupp på ditt system"
+
+#: ../yumcommands.py:425
+msgid "Remove the packages in a group from your system"
+msgstr "Ta bort paketen in en grupp från ditt system"
+
+#: ../yumcommands.py:452
+msgid "Display details about a package group"
+msgstr "Visa detaljer om en paketgrupp"
+
+#: ../yumcommands.py:476
+msgid "Generate the metadata cache"
+msgstr "Generera metadata-cache:n"
+
+#: ../yumcommands.py:482
+msgid "Making cache files for all metadata files."
+msgstr "Skapar cache-filer för alla metadatafiler."
+
+#: ../yumcommands.py:483
+msgid "This may take a while depending on the speed of this computer"
+msgstr "Detta kan ta ett tag beroende på datorns fart"
+
+#: ../yumcommands.py:504
+msgid "Metadata Cache Created"
+msgstr "Metadata-cache skapad"
+
+#: ../yumcommands.py:518
+msgid "Remove cached data"
+msgstr "Ta bort cache:ade data"
+
+#: ../yumcommands.py:539
+msgid "Find what package provides the given value"
+msgstr "Ta reda på vilka paket som tillhandahåller det angivna värdet"
+
+#: ../yumcommands.py:559
+msgid "Check for available package updates"
+msgstr "Leta efter tillgängliga paketuppdateringar"
+
+#: ../yumcommands.py:598
+msgid "Search package details for the given string"
+msgstr "Sök i paketdetaljer efter den angivna strängen"
+
+#: ../yumcommands.py:604
+msgid "Searching Packages: "
+msgstr "Söker paket: "
+
+#: ../yumcommands.py:621
+msgid "Update packages taking obsoletes into account"
+msgstr "Uppdatera paket med hänsyn tagen till utfasningar"
+
+#: ../yumcommands.py:629
+msgid "Setting up Upgrade Process"
+msgstr "Förbereder uppgraderingsprocessen"
+
+#: ../yumcommands.py:643
+msgid "Install a local RPM"
+msgstr "Installera en lokal RPM"
+
+#: ../yumcommands.py:651
+msgid "Setting up Local Package Process"
+msgstr "Förbereder den lokala paketprocessen"
+
+#: ../yumcommands.py:670
+msgid "Determine which package provides the given dependency"
+msgstr "Avgör vilket paket som tillhandahåller ett angivet beroende"
+
+#: ../yumcommands.py:673
+msgid "Searching Packages for Dependency:"
+msgstr "Söker i paketen efter beroende:"
+
+#: ../yumcommands.py:687
+msgid "Run an interactive yum shell"
+msgstr "Kör ett interactivt yum-skal"
+
+#: ../yumcommands.py:693
+msgid "Setting up Yum Shell"
+msgstr "Förbereder ett yum-skal"
+
+#: ../yumcommands.py:711
+msgid "List a package's dependencies"
+msgstr "Lista ett pakets beroenden"
+
+#: ../yumcommands.py:717
+msgid "Finding dependencies: "
+msgstr "Letar efter beroenden: "
+
+#: ../yumcommands.py:733
+msgid "Display the configured software repositories"
+msgstr "Visa konfigurerade programvaruförråd"
+
+#: ../yumcommands.py:781 ../yumcommands.py:782
+msgid "enabled"
+msgstr "aktivt"
+
+#: ../yumcommands.py:790 ../yumcommands.py:791
+msgid "disabled"
+msgstr "inaktivt"
+
+#: ../yumcommands.py:805
+msgid "Repo-id     : "
+msgstr "Förråds-id      : "
+
+#: ../yumcommands.py:806
+msgid "Repo-name   : "
+msgstr "Förrådsnamn     : "
+
+#: ../yumcommands.py:807
+msgid "Repo-status : "
+msgstr "Förrådsstatus   : "
+
+#: ../yumcommands.py:809
+msgid "Repo-revision: "
+msgstr "Förrådsversion  : "
+
+#: ../yumcommands.py:813
+msgid "Repo-tags   : "
+msgstr "Förrådstaggar   : "
+
+#: ../yumcommands.py:819
+msgid "Repo-distro-tags: "
+msgstr "Förråds-distro-taggar: "
+
+#: ../yumcommands.py:824
+msgid "Repo-updated: "
+msgstr "Förråd uppdat.  : "
+
+#: ../yumcommands.py:826
+msgid "Repo-pkgs   : "
+msgstr "Förrådspaket    : "
+
+#: ../yumcommands.py:827
+msgid "Repo-size   : "
+msgstr "Förrådstorlek   : "
+
+#: ../yumcommands.py:834
+msgid "Repo-baseurl: "
+msgstr "Förrådsbasurl   : "
+
+#: ../yumcommands.py:838
+msgid "Repo-metalink: "
+msgstr "Förrådsmetalänk : "
+
+#: ../yumcommands.py:841
+msgid "Repo-mirrors: "
+msgstr "Förrådspeglar   : "
+
+#: ../yumcommands.py:845
+msgid "Repo-exclude: "
+msgstr "Förrådsuteslut  : "
+
+#: ../yumcommands.py:849
+msgid "Repo-include: "
+msgstr "Förrådsinkludera: "
+
+#. 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 "förråds-id"
+
+#: ../yumcommands.py:873 ../yumcommands.py:874 ../yumcommands.py:888
+msgid "status"
+msgstr "status"
+
+#: ../yumcommands.py:886
+msgid "repo name"
+msgstr "förrådsnamn"
+
+#: ../yumcommands.py:912
+msgid "Display a helpful usage message"
+msgstr "Visa ett hjälpsamt meddelande om användning"
+
+#: ../yumcommands.py:946
+#, python-format
+msgid "No help available for %s"
+msgstr "Ingen hjälp tillgänglig för %s"
+
+#: ../yumcommands.py:951
+msgid ""
+"\n"
+"\n"
+"aliases: "
+msgstr "\n\nalias: "
+
+#: ../yumcommands.py:953
+msgid ""
+"\n"
+"\n"
+"alias: "
+msgstr "\n\nalias: "
+
+#: ../yumcommands.py:981
+msgid "Setting up Reinstall Process"
+msgstr "Förbereder ominstallationsprocessen"
+
+#: ../yumcommands.py:995
+msgid "reinstall a package"
+msgstr "ominstallera ett paket"
+
+#: ../yummain.py:42
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel"
+msgstr "\n\nSlutar efter att användaren avbröt"
+
+#: ../yummain.py:48
+msgid ""
+"\n"
+"\n"
+"Exiting on Broken Pipe"
+msgstr "\n\nSlutar med brutet rör (pipe)"
+
+#: ../yummain.py:122
+msgid "Running"
+msgstr "Kör"
+
+#: ../yummain.py:123
+msgid "Sleeping"
+msgstr "Sover"
+
+#: ../yummain.py:124
+msgid "Uninteruptable"
+msgstr "Oavbrytbar"
+
+#: ../yummain.py:125
+msgid "Zombie"
+msgstr "Zombie"
+
+#: ../yummain.py:126
+msgid "Traced/Stopped"
+msgstr "Spårad/Stoppad"
+
+#: ../yummain.py:127
+msgid "Unknown"
+msgstr "Okänd"
+
+#: ../yummain.py:131
+msgid "  The other application is: PackageKit"
+msgstr "  Det andra programmet är: PackageKit"
+
+#: ../yummain.py:133
+#, python-format
+msgid "  The other application is: %s"
+msgstr "  Det andra programmet är: %s"
+
+#: ../yummain.py:136
+#, python-format
+msgid "    Memory : %5s RSS (%5sB VSZ)"
+msgstr "    Minne   : %5s RSS (%5s B VSZ)"
+
+#: ../yummain.py:140
+#, python-format
+msgid "    Started: %s - %s ago"
+msgstr "    Startade: %s - för %s sedan"
+
+#: ../yummain.py:142
+#, python-format
+msgid "    State  : %s, pid: %d"
+msgstr "    Status  : %s, pid: %d"
+
+#: ../yummain.py:167
+msgid ""
+"Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr "Ett annat program håller för närvarande yum-låset, väntar på att den skall avsluta ..."
+
+#: ../yummain.py:195 ../yummain.py:234
+#, python-format
+msgid "Error: %s"
+msgstr "Fel: %s"
+
+#: ../yummain.py:205 ../yummain.py:241
+#, python-format
+msgid "Unknown Error(s): Exit Code: %d:"
+msgstr "Okänt fel: Felkod: %d:"
+
+#. Depsolve stage
+#: ../yummain.py:212
+msgid "Resolving Dependencies"
+msgstr "Löser upp beroenden"
+
+#: ../yummain.py:247
+msgid ""
+"\n"
+"Dependencies Resolved"
+msgstr "\nBeroenden upplösta"
+
+#: ../yummain.py:261
+msgid "Complete!"
+msgstr "Klart!"
+
+#: ../yummain.py:308
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel."
+msgstr "\n\nSlutar efter att användaren avbröt."
+
+#: ../yum/depsolve.py:84
+msgid "doTsSetup() will go away in a future version of Yum.\n"
+msgstr "doTsSetup() kommer att försvinna i en framtida version av Yum.\n"
+
+#: ../yum/depsolve.py:99
+msgid "Setting up TransactionSets before config class is up"
+msgstr "Förbereder transaktionsmängder före konfigurationsklass är uppe"
+
+#: ../yum/depsolve.py:150
+#, python-format
+msgid "Invalid tsflag in config file: %s"
+msgstr "Ogiltig tsflag i konfigurationsfil: %s"
+
+#: ../yum/depsolve.py:161
+#, python-format
+msgid "Searching pkgSack for dep: %s"
+msgstr "Söker pkgSack efter beroende: %s"
+
+#: ../yum/depsolve.py:184
+#, python-format
+msgid "Potential match for %s from %s"
+msgstr "Potentiell match av %s från %s"
+
+#: ../yum/depsolve.py:192
+#, python-format
+msgid "Matched %s to require for %s"
+msgstr "Matchade %s mot behov från %s"
+
+#: ../yum/depsolve.py:233
+#, python-format
+msgid "Member: %s"
+msgstr "Medlem: %s"
+
+#: ../yum/depsolve.py:247 ../yum/depsolve.py:738
+#, python-format
+msgid "%s converted to install"
+msgstr "%s konverterad till att installera"
+
+#: ../yum/depsolve.py:254
+#, python-format
+msgid "Adding Package %s in mode %s"
+msgstr "Lägger till paket %s i läge %s"
+
+#: ../yum/depsolve.py:264
+#, python-format
+msgid "Removing Package %s"
+msgstr "Tar bort paket %s"
+
+#: ../yum/depsolve.py:275
+#, python-format
+msgid "%s requires: %s"
+msgstr "%s behöver: %s"
+
+#: ../yum/depsolve.py:333
+msgid "Needed Require has already been looked up, cheating"
+msgstr "Nödvändigt behov har redan slagits upp, fuskar"
+
+#: ../yum/depsolve.py:343
+#, python-format
+msgid "Needed Require is not a package name. Looking up: %s"
+msgstr "Nödvändigt behov är inte ett paketnamn.  Slår upp: %s"
+
+#: ../yum/depsolve.py:350
+#, python-format
+msgid "Potential Provider: %s"
+msgstr "Potentiell tillhandahållare: %s"
+
+#: ../yum/depsolve.py:373
+#, python-format
+msgid "Mode is %s for provider of %s: %s"
+msgstr "Läget är %s för tillhandahållare av %s: %s"
+
+#: ../yum/depsolve.py:377
+#, python-format
+msgid "Mode for pkg providing %s: %s"
+msgstr "Läge för paket som tillhandahåller %s: %s"
+
+#: ../yum/depsolve.py:381
+#, python-format
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: paket %s behöver %s noterat att raderas"
+
+#: ../yum/depsolve.py:394
+#, python-format
+msgid "TSINFO: Obsoleting %s with %s to resolve dep."
+msgstr "TSINFO: Fasar ut %s med %s för att lösa upp beroenden."
+
+#: ../yum/depsolve.py:397
+#, python-format
+msgid "TSINFO: Updating %s to resolve dep."
+msgstr "TSINFO: Uppdaterar %s för att lösa upp beroenden"
+
+#: ../yum/depsolve.py:405
+#, python-format
+msgid "Cannot find an update path for dep for: %s"
+msgstr "Hittar ingen uppdateringsväg för beroende för: %s"
+
+#: ../yum/depsolve.py:415
+#, python-format
+msgid "Unresolvable requirement %s for %s"
+msgstr "Ej upplösbart behov %s för %s"
+
+#: ../yum/depsolve.py:438
+#, python-format
+msgid "Quick matched %s to require for %s"
+msgstr "Snabb matcning av %s mot behov för %s"
+
+#. is it already installed?
+#: ../yum/depsolve.py:480
+#, python-format
+msgid "%s is in providing packages but it is already installed, removing."
+msgstr "%s finns bland tillhandahållande paket men det är redan installerat, tar bort."
+
+#: ../yum/depsolve.py:495
+#, python-format
+msgid "Potential resolving package %s has newer instance in ts."
+msgstr "Potentiellt upplösande paket %s har nyare instans i ts."
+
+#: ../yum/depsolve.py:506
+#, python-format
+msgid "Potential resolving package %s has newer instance installed."
+msgstr "Potentiellt upplösande paket %s har nyare instans installerad."
+
+#: ../yum/depsolve.py:514 ../yum/depsolve.py:563
+#, python-format
+msgid "Missing Dependency: %s is needed by package %s"
+msgstr "Saknat beroende: %s behövs av paketet %s"
+
+#: ../yum/depsolve.py:527
+#, python-format
+msgid "%s already in ts, skipping this one"
+msgstr "%s är redan i ts, hoppar över denna"
+
+#: ../yum/depsolve.py:573
+#, python-format
+msgid "TSINFO: Marking %s as update for %s"
+msgstr "TSINFO: Noterar %s som en uppdatering av %s"
+
+#: ../yum/depsolve.py:581
+#, python-format
+msgid "TSINFO: Marking %s as install for %s"
+msgstr "TSINFO: Noterar %s som en installation av %s"
+
+#: ../yum/depsolve.py:674 ../yum/depsolve.py:756
+msgid "Success - empty transaction"
+msgstr "Klart - tom transaktion"
+
+#: ../yum/depsolve.py:713 ../yum/depsolve.py:728
+msgid "Restarting Loop"
+msgstr "Startar om slingan"
+
+#: ../yum/depsolve.py:744
+msgid "Dependency Process ending"
+msgstr "Beroendeprocessen avslutas"
+
+#: ../yum/depsolve.py:750
+#, python-format
+msgid "%s from %s has depsolving problems"
+msgstr "%s från %s har problem att lösa beroenden"
+
+#: ../yum/depsolve.py:757
+msgid "Success - deps resolved"
+msgstr "Klart - beroenden upplösta"
+
+#: ../yum/depsolve.py:771
+#, python-format
+msgid "Checking deps for %s"
+msgstr "Kontrollerar beroenden för %s"
+
+#: ../yum/depsolve.py:854
+#, python-format
+msgid "looking for %s as a requirement of %s"
+msgstr "letar efter %s som ett behov för %s"
+
+#: ../yum/depsolve.py:996
+#, python-format
+msgid "Running compare_providers() for %s"
+msgstr "Kör compare_providers() för %s"
+
+#: ../yum/depsolve.py:1024 ../yum/depsolve.py:1030
+#, python-format
+msgid "better arch in po %s"
+msgstr "bättre arkitektur i po %s"
+
+#: ../yum/depsolve.py:1084
+#, python-format
+msgid "%s obsoletes %s"
+msgstr "%s fasar ut %s"
+
+#: ../yum/depsolve.py:1100
+#, python-format
+msgid ""
+"archdist compared %s to %s on %s\n"
+"  Winner: %s"
+msgstr ""
+"arkitekturavstånd jämför %s med %s på %s\n"
+"  Vinnare: %s"
+
+#: ../yum/depsolve.py:1107
+#, python-format
+msgid "common sourcerpm %s and %s"
+msgstr "samma käll-rpm %s och %s"
+
+#: ../yum/depsolve.py:1113
+#, python-format
+msgid "common prefix of %s between %s and %s"
+msgstr "gemensamt prefix för %s mellan %s och %s"
+
+#: ../yum/depsolve.py:1121
+#, python-format
+msgid "Best Order: %s"
+msgstr "Bästa ordning: %s"
+
+#: ../yum/__init__.py:154
+msgid "doConfigSetup() will go away in a future version of Yum.\n"
+msgstr "doConfigSetup() kommer att försvinna i en framtida version av Yum.\n"
+
+#: ../yum/__init__.py:340
+#, python-format
+msgid "Repository %r is missing name in configuration, using id"
+msgstr "Förrådet %r saknar namn i konfigurationen, använder id"
+
+#: ../yum/__init__.py:378
+msgid "plugins already initialised"
+msgstr "insticksmoduler redan initierade"
+
+#: ../yum/__init__.py:385
+msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
+msgstr "doRpmDBSetup() kommer att försvinna i en framtida version av Yum.\n"
+
+#: ../yum/__init__.py:395
+msgid "Reading Local RPMDB"
+msgstr "Läser lokal RPMDB"
+
+#: ../yum/__init__.py:413
+msgid "doRepoSetup() will go away in a future version of Yum.\n"
+msgstr "doRepoSetup() kommer att försvinna i en framtida version av Yum.\n"
+
+#: ../yum/__init__.py:433
+msgid "doSackSetup() will go away in a future version of Yum.\n"
+msgstr "doSackSetup() kommer att försvinna i en framtida version av Yum.\n"
+
+#: ../yum/__init__.py:450
+msgid "Setting up Package Sacks"
+msgstr "Förbereder paketsäckar"
+
+#: ../yum/__init__.py:493
+#, python-format
+msgid "repo object for repo %s lacks a _resetSack method\n"
+msgstr "förrådsobjekt för förrådet %s saknar en _resetSack-metod\n"
+
+#: ../yum/__init__.py:494
+msgid "therefore this repo cannot be reset.\n"
+msgstr "därför kan inte detta förråd återställas.\n"
+
+#: ../yum/__init__.py:499
+msgid "doUpdateSetup() will go away in a future version of Yum.\n"
+msgstr "doUpdateSetup() kommer att försvinna i en framtida version av Yum.\n"
+
+#: ../yum/__init__.py:511
+msgid "Building updates object"
+msgstr "Bygger uppdateringsobjekt"
+
+#: ../yum/__init__.py:542
+msgid "doGroupSetup() will go away in a future version of Yum.\n"
+msgstr "doGroupSetup() kommer att försvinna i en framtida version av Yum.\n"
+
+#: ../yum/__init__.py:566
+msgid "Getting group metadata"
+msgstr "Hämtar gruppmetadata"
+
+#: ../yum/__init__.py:592
+#, python-format
+msgid "Adding group file from repository: %s"
+msgstr "Lägger till gruppfil från förrådet: %s"
+
+#: ../yum/__init__.py:601
+#, python-format
+msgid "Failed to add groups file for repository: %s - %s"
+msgstr "Kunde inte lägga till gruppfil för förrådet: %s - %s"
+
+#: ../yum/__init__.py:607
+msgid "No Groups Available in any repository"
+msgstr "Inga grupper tillgängliga i något förråd"
+
+#: ../yum/__init__.py:657
+msgid "Importing additional filelist information"
+msgstr "Importerar ytterligare fillisteinformation"
+
+#: ../yum/__init__.py:666
+msgid ""
+"There are unfinished transactions remaining. You might consider running yum-"
+"complete-transaction first to finish them."
+msgstr "Det finns oavslutade transaktioner kvar.  Du kan överväga att köra yumcomplete-transaction först för att avsluta dem."
+
+#: ../yum/__init__.py:732
+#, python-format
+msgid "Skip-broken round %i"
+msgstr "Hoppa-över-trasiga runda %i"
+
+#: ../yum/__init__.py:784
+#, python-format
+msgid "Skip-broken took %i rounds "
+msgstr "Hoppa-över-trasiga tog %i rundor "
+
+#: ../yum/__init__.py:785
+msgid ""
+"\n"
+"Packages skipped because of dependency problems:"
+msgstr "\nPaket hoppades över på grund av beroendeproblem:"
+
+#: ../yum/__init__.py:789
+#, python-format
+msgid "    %s from %s"
+msgstr "    %s från %s"
+
+#: ../yum/__init__.py:933
+msgid ""
+"Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr "Varning: skript- eller annat icke ödesdigert fel inträffade under transaktionen."
+
+#: ../yum/__init__.py:948
+#, python-format
+msgid "Failed to remove transaction file %s"
+msgstr "Kunde inte ta bort transaktionsfilen %s"
+
+#: ../yum/__init__.py:989
+#, python-format
+msgid "excluding for cost: %s from %s"
+msgstr "utesluter på grund av kostnad: %s från %s"
+
+#: ../yum/__init__.py:1020
+msgid "Excluding Packages in global exclude list"
+msgstr "Utesluter paket i global uteslutningslista"
+
+#: ../yum/__init__.py:1022
+#, python-format
+msgid "Excluding Packages from %s"
+msgstr "Utesluter paket från %s"
+
+#: ../yum/__init__.py:1049
+#, python-format
+msgid "Reducing %s to included packages only"
+msgstr "Reducerar %s till endast inkluderade paket"
+
+#: ../yum/__init__.py:1055
+#, python-format
+msgid "Keeping included package %s"
+msgstr "Behåller inkluderat paket %s"
+
+#: ../yum/__init__.py:1061
+#, python-format
+msgid "Removing unmatched package %s"
+msgstr "Tar bort ej matchat paket %s"
+
+#: ../yum/__init__.py:1064
+msgid "Finished"
+msgstr "Klar"
+
+#. Whoa. What the heck happened?
+#: ../yum/__init__.py:1094
+#, python-format
+msgid "Unable to check if PID %s is active"
+msgstr "Kan inte kontrollera om PID %s är aktiv"
+
+#. Another copy seems to be running.
+#: ../yum/__init__.py:1098
+#, python-format
+msgid "Existing lock %s: another copy is running as pid %s."
+msgstr "Existerande lås %s: en annan kopia kör som pid %s."
+
+#: ../yum/__init__.py:1165
+msgid "Package does not match intended download"
+msgstr "Paketet matchar inte avsedd det avsett att laddas ner"
+
+#: ../yum/__init__.py:1180
+msgid "Could not perform checksum"
+msgstr "Kunde inte utföra kontrollsummering"
+
+#: ../yum/__init__.py:1183
+msgid "Package does not match checksum"
+msgstr "Paketet stämmer inte med kontrollsumman"
+
+#: ../yum/__init__.py:1226
+#, python-format
+msgid "package fails checksum but caching is enabled for %s"
+msgstr "paketet misslyckas med kontrollsumman men cachning är aktiverat för %s"
+
+#: ../yum/__init__.py:1229 ../yum/__init__.py:1258
+#, python-format
+msgid "using local copy of %s"
+msgstr "använder lokal kopia av %s"
+
+#: ../yum/__init__.py:1270
+#, python-format
+msgid ""
+"Insufficient space in download directory %s\n"
+"    * free   %s\n"
+"    * needed %s"
+msgstr ""
+"Otillräckligt utrymme i hämtningskatalogen %s\n"
+"    * fritt   %s\n"
+"    * behovet %s"
+
+#: ../yum/__init__.py:1317
+msgid "Header is not complete."
+msgstr "Huvudet är inte komplett."
+
+#: ../yum/__init__.py:1354
+#, python-format
+msgid ""
+"Header not in local cache and caching-only mode enabled. Cannot download %s"
+msgstr "Huvudet finns inte i den lokala cachen och endast-cache-läget är aktiverat.  Kan inte hämta %s"
+
+#: ../yum/__init__.py:1409
+#, python-format
+msgid "Public key for %s is not installed"
+msgstr "Den publika nyckeln för %s är inte installerad"
+
+#: ../yum/__init__.py:1413
+#, python-format
+msgid "Problem opening package %s"
+msgstr "Problem att öppna paketet %s"
+
+#: ../yum/__init__.py:1421
+#, python-format
+msgid "Public key for %s is not trusted"
+msgstr "Den publika nyckeln för %s är inte betrodd"
+
+#: ../yum/__init__.py:1425
+#, python-format
+msgid "Package %s is not signed"
+msgstr "Paket %s är inte signerat"
+
+#: ../yum/__init__.py:1463
+#, python-format
+msgid "Cannot remove %s"
+msgstr "Det går inte att ta bort %s"
+
+#: ../yum/__init__.py:1467
+#, python-format
+msgid "%s removed"
+msgstr "%s borttaget"
+
+# Första %s blir ett oöversatt engelskt ord.
+# Felrapporterat: http://yum.baseurl.org/ticket/41
+#: ../yum/__init__.py:1504
+#, python-format
+msgid "Cannot remove %s file %s"
+msgstr "Det går inte att ta bort %s-filen %s"
+
+#: ../yum/__init__.py:1508
+#, python-format
+msgid "%s file %s removed"
+msgstr "%s-filen %s borttagen"
+
+#: ../yum/__init__.py:1510
+#, python-format
+msgid "%d %s files removed"
+msgstr "%d %s-filer borttagna"
+
+#: ../yum/__init__.py:1579
+#, python-format
+msgid "More than one identical match in sack for %s"
+msgstr "Mer än en identisk matchning i säcken för %s"
+
+#: ../yum/__init__.py:1585
+#, python-format
+msgid "Nothing matches %s.%s %s:%s-%s from update"
+msgstr "Ingenting matchar %s.%s %s:%s-%s från uppdateringarna"
+
+#: ../yum/__init__.py:1803
+msgid ""
+"searchPackages() will go away in a future version of "
+"Yum.                      Use searchGenerator() instead. \n"
+msgstr "searchPackages() kommer att försvinna i en framtida version av Yum.                      Använd searchGenerator() istället. \n"
+
+#: ../yum/__init__.py:1841
+#, python-format
+msgid "Searching %d packages"
+msgstr "Söker i %d paket"
+
+#: ../yum/__init__.py:1845
+#, python-format
+msgid "searching package %s"
+msgstr "söker i paketet %s"
+
+#: ../yum/__init__.py:1857
+msgid "searching in file entries"
+msgstr "söker i filposter"
+
+#: ../yum/__init__.py:1864
+msgid "searching in provides entries"
+msgstr "söker i tillhandahållandeposter"
+
+#: ../yum/__init__.py:1897
+#, python-format
+msgid "Provides-match: %s"
+msgstr "Tillhandahållandematchning: %s"
+
+#: ../yum/__init__.py:1946
+msgid "No group data available for configured repositories"
+msgstr "Inga gruppdata är tillgängliga för de konfigurerade förråden"
+
+#: ../yum/__init__.py:1977 ../yum/__init__.py:1996 ../yum/__init__.py:2027
+#: ../yum/__init__.py:2033 ../yum/__init__.py:2106 ../yum/__init__.py:2110
+#, python-format
+msgid "No Group named %s exists"
+msgstr "Det finns ingen grupp med namnet %s"
+
+#: ../yum/__init__.py:2008 ../yum/__init__.py:2123
+#, python-format
+msgid "package %s was not marked in group %s"
+msgstr "paket %s noterades inte i gruppen %s"
+
+#: ../yum/__init__.py:2055
+#, python-format
+msgid "Adding package %s from group %s"
+msgstr "Lägger till paket %s från grupp %s"
+
+#: ../yum/__init__.py:2059
+#, python-format
+msgid "No package named %s available to be installed"
+msgstr "Inget paket med namnet %s är tillgängligt för installation"
+
+#: ../yum/__init__.py:2148
+#, python-format
+msgid "Package tuple %s could not be found in packagesack"
+msgstr "Pakettupel %s fanns inte i paketsäcken"
+
+#: ../yum/__init__.py:2163
+msgid ""
+"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr "getInstalledPackageObject() kommer att försvinna, använd self.rpmdb.searchPkgTuple().\n"
+
+#: ../yum/__init__.py:2215 ../yum/__init__.py:2258
+msgid "Invalid versioned dependency string, try quoting it."
+msgstr "Ogiltig versionsberoendesträng, försök att citera den."
+
+#: ../yum/__init__.py:2217 ../yum/__init__.py:2260
+msgid "Invalid version flag"
+msgstr "Ogiltig versionsflagga"
+
+#: ../yum/__init__.py:2232 ../yum/__init__.py:2236
+#, python-format
+msgid "No Package found for %s"
+msgstr "Inga paket hittades för %s"
+
+#: ../yum/__init__.py:2415
+msgid "Package Object was not a package object instance"
+msgstr "Paketobjektet var inte en paketobjektinstans"
+
+#: ../yum/__init__.py:2419
+msgid "Nothing specified to install"
+msgstr "Inget angivet att installeras"
+
+#. only one in there
+#: ../yum/__init__.py:2437
+#, python-format
+msgid "Checking for virtual provide or file-provide for %s"
+msgstr "Kontrollerar virtuella tillhandahållanden eller filtillhandahållanden för %s"
+
+#: ../yum/__init__.py:2443 ../yum/__init__.py:2691 ../yum/__init__.py:2861
+#, python-format
+msgid "No Match for argument: %s"
+msgstr "Ingen matchning för argument: %s"
+
+#: ../yum/__init__.py:2509
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "Paket %s installerat och inte tillgänligt"
+
+#: ../yum/__init__.py:2512
+msgid "No package(s) available to install"
+msgstr "Inga paket tillgängliga att installera"
+
+#: ../yum/__init__.py:2524
+#, python-format
+msgid "Package: %s  - already in transaction set"
+msgstr "Paket: %s - redan i transaktionsmängden"
+
+#: ../yum/__init__.py:2539
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr "Paket %s fasas ut av %s, försöker installera %s istället"
+
+#: ../yum/__init__.py:2547
+#, python-format
+msgid "Package %s already installed and latest version"
+msgstr "Paket %s är redan installerast och senaste version"
+
+#: ../yum/__init__.py:2554
+#, python-format
+msgid "Package matching %s already installed. Checking for update."
+msgstr "Paket som matchar %s är redan installerat.  Letar efter uppdatering."
+
+#. update everything (the easy case)
+#: ../yum/__init__.py:2635
+msgid "Updating Everything"
+msgstr "Uppdaterar allt"
+
+#: ../yum/__init__.py:2653 ../yum/__init__.py:2763 ../yum/__init__.py:2784
+#: ../yum/__init__.py:2810
+#, python-format
+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
+msgstr "Uppdaterar inte paket som redan är utfasade: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2688 ../yum/__init__.py:2858
+#, python-format
+msgid "%s"
+msgstr "%s"
+
+#: ../yum/__init__.py:2754
+#, python-format
+msgid "Package is already obsoleted: %s.%s %s:%s-%s"
+msgstr "Paketet är redan utfasat: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2787 ../yum/__init__.py:2813
+#, python-format
+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgstr "Uppdaterar inte paket som redan är uppdaterat: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2874
+msgid "No package matched to remove"
+msgstr "Inget paket matchar att tas bort"
+
+#: ../yum/__init__.py:2908
+#, python-format
+msgid "Cannot open file: %s. Skipping."
+msgstr "Det går inte att öppna filen: %s.  Hoppar över."
+
+#: ../yum/__init__.py:2911
+#, python-format
+msgid "Examining %s: %s"
+msgstr "Undersöker %s: %s"
+
+#: ../yum/__init__.py:2919
+#, python-format
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr "Kan inte lägga till paket %s till transaktionen.  Inte en kompatibel arkitektur: %s"
+
+#: ../yum/__init__.py:2927
+#, python-format
+msgid ""
+"Package %s not installed, cannot update it. Run yum install to install it "
+"instead."
+msgstr "Paket %s är inte installerat, kan inte uppdatera det.  Kör yum install för att installera det istället."
+
+#: ../yum/__init__.py:2960
+#, python-format
+msgid "Excluding %s"
+msgstr "Utesluter %s"
+
+#: ../yum/__init__.py:2965
+#, python-format
+msgid "Marking %s to be installed"
+msgstr "Noterar %s för installation"
+
+#: ../yum/__init__.py:2971
+#, python-format
+msgid "Marking %s as an update to %s"
+msgstr "Noterar %s som en uppdatering av %s"
+
+#: ../yum/__init__.py:2978
+#, python-format
+msgid "%s: does not update installed package."
+msgstr "%s: uppdaterar inte ett installerat paket."
+
+#: ../yum/__init__.py:2996
+msgid "Problem in reinstall: no package matched to remove"
+msgstr "Problem att ominstallera: inget paket matchades att tas bort"
+
+#: ../yum/__init__.py:3007
+#, python-format
+msgid "Package %s is allowed multiple installs, skipping"
+msgstr "Paket %s tillåts multipla installationer, hoppar över"
+
+#: ../yum/__init__.py:3014
+msgid "Problem in reinstall: no package matched to install"
+msgstr "Problem att ominstallera: inget paket matchades att installeras"
+
+#: ../yum/__init__.py:3049
+#, python-format
+msgid "Retrieving GPG key from %s"
+msgstr "Hämtar GPG-nyckel från %s"
+
+#: ../yum/__init__.py:3069
+msgid "GPG key retrieval failed: "
+msgstr "Hämtandet av GPG-nyckeln misslyckades: "
+
+#: ../yum/__init__.py:3080
+#, python-format
+msgid "GPG key parsing failed: key does not have value %s"
+msgstr "GPG-nyckeltolkning misslyckades: nyckeln har inte värde %s"
+
+#: ../yum/__init__.py:3112
+#, python-format
+msgid "GPG key at %s (0x%s) is already installed"
+msgstr "GPG-nyckel vid %s (0x%s) är redan installerad"
+
+#. Try installing/updating GPG key
+#: ../yum/__init__.py:3117 ../yum/__init__.py:3179
+#, python-format
+msgid "Importing GPG key 0x%s \"%s\" from %s"
+msgstr "Importerar GPG-nyckel 0x%s \"%s\" från %s"
+
+#: ../yum/__init__.py:3134
+msgid "Not installing key"
+msgstr "Installerar inte nyckeln"
+
+#: ../yum/__init__.py:3140
+#, python-format
+msgid "Key import failed (code %d)"
+msgstr "Nyckelimport misslyckades (kod %d)"
+
+#: ../yum/__init__.py:3141 ../yum/__init__.py:3200
+msgid "Key imported successfully"
+msgstr "Nyckelimport lyckades"
+
+#: ../yum/__init__.py:3146 ../yum/__init__.py:3205
+#, python-format
+msgid ""
+"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 ""
+"GPG-nycklarna uppräknade för förrådet \"%s\" är redan installerade men de är inte korrekta för detta paket.\n"
+"Kontrollera att de rätta nyckel-URL:erna är konfigurerade för detta förråd."
+
+#: ../yum/__init__.py:3155
+msgid "Import of key(s) didn't help, wrong key(s)?"
+msgstr "Import av nycklar hjälpte inte, fel nycklar?"
+
+#: ../yum/__init__.py:3174
+#, python-format
+msgid "GPG key at %s (0x%s) is already imported"
+msgstr "GPG-nyckel vid %s (0x%s) är redan importerad"
+
+#: ../yum/__init__.py:3194
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "Installerar inte nyckel för förråd %s"
+
+#: ../yum/__init__.py:3199
+msgid "Key import failed"
+msgstr "Nyckelimport misslyckades"
+
+#: ../yum/__init__.py:3290
+msgid "Unable to find a suitable mirror."
+msgstr "Kan inte hitta en lämplig spegel."
+
+#: ../yum/__init__.py:3292
+msgid "Errors were encountered while downloading packages."
+msgstr "Fel uppstod när paket hämtades."
+
+#: ../yum/__init__.py:3333
+#, python-format
+msgid "Please report this error at %s"
+msgstr "Rapportera gärna detta fel till %s"
+
+#: ../yum/__init__.py:3357
+msgid "Test Transaction Errors: "
+msgstr "Transaktionstestfel: "
+
+#. Mostly copied from YumOutput._outKeyValFill()
+#: ../yum/plugins.py:201
+msgid "Loaded plugins: "
+msgstr "Inlästa insticksmoduler: "
+
+#: ../yum/plugins.py:215 ../yum/plugins.py:221
+#, python-format
+msgid "No plugin match for: %s"
+msgstr "Ingen insticksmodul matchar: %s"
+
+#: ../yum/plugins.py:251
+#, python-format
+msgid "\"%s\" plugin is disabled"
+msgstr "Insticksmodulen \"%s\" avaktiverad"
+
+#. Give full backtrace:
+#: ../yum/plugins.py:263
+#, python-format
+msgid "Plugin \"%s\" can't be imported"
+msgstr "Insticksmodulen \"%s\" kan inte importeras"
+
+#: ../yum/plugins.py:270
+#, python-format
+msgid "Plugin \"%s\" doesn't specify required API version"
+msgstr "Insticksmodulen \"%s\" specificerare inte nödvändig API-version"
+
+#: ../yum/plugins.py:275
+#, python-format
+msgid "Plugin \"%s\" requires API %s. Supported API is %s."
+msgstr "Insticksmodulen \"%s\" kräver API %s.  API:er som stöds är %s."
+
+#: ../yum/plugins.py:308
+#, python-format
+msgid "Loading \"%s\" plugin"
+msgstr "Läser in insticksmodulen \"%s\""
+
+#: ../yum/plugins.py:315
+#, python-format
+msgid ""
+"Two or more plugins with the name \"%s\" exist in the plugin search path"
+msgstr "Två eller flera insticksmoduler med namnet \"%s\" finns i sökvägen för insticksmoduler"
+
+#: ../yum/plugins.py:335
+#, python-format
+msgid "Configuration file %s not found"
+msgstr "Konfigurationsfilen %s finns inte"
+
+#. for
+#. Configuration files for the plugin not found
+#: ../yum/plugins.py:338
+#, python-format
+msgid "Unable to find configuration file for plugin %s"
+msgstr "Kan inte hitta konfigurationsfil för insticksmodulen %s"
+
+#: ../yum/plugins.py:492
+msgid "registration of commands not supported"
+msgstr "registrering av kommandon stöds inte"
+
+#: ../yum/rpmtrans.py:78
+msgid "Repackaging"
+msgstr "Paketerar om"
+
+#: ../rpmUtils/oldUtils.py:26
+#, python-format
+msgid "Header cannot be opened or does not match %s, %s."
+msgstr "Huvudet kan inte öppnas eller matchar inte %s, %s."
+
+#: ../rpmUtils/oldUtils.py:46
+#, python-format
+msgid "RPM %s fails md5 check"
+msgstr "RPM %s misslyckas med md5-kontroll"
+
+#: ../rpmUtils/oldUtils.py:144
+msgid "Could not open RPM database for reading. Perhaps it is already in use?"
+msgstr "Det gick inte att öppna RPM-databasen för läsning.  Kanske den redan används?"
+
+#: ../rpmUtils/oldUtils.py:174
+msgid "Got an empty Header, something has gone wrong"
+msgstr "Fick ett tomt huvud, någonting har gått fel"
+
+#: ../rpmUtils/oldUtils.py:244 ../rpmUtils/oldUtils.py:251
+#: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
+#, python-format
+msgid "Damaged Header %s"
+msgstr "Trasigt huvud %s"
+
+#: ../rpmUtils/oldUtils.py:272
+#, python-format
+msgid "Error opening rpm %s - error %s"
+msgstr "Fel när rpm %s öppnades - fel %s"
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/shell.py b/shell.py
index 97bd963..2ac5c59 100644
--- a/shell.py
+++ b/shell.py
@@ -38,6 +38,7 @@ class YumShell(cmd.Cmd):
         self.base = base
         self.prompt = '> '
         self.result = 0
+        self.identchars += '-'
         self.from_file = False # if we're running from a file, set this
         self.resultmsgs = ['Leaving Shell']
         if (len(base.extcmds)) > 0:
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..5acadca 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()        
@@ -488,12 +524,12 @@ class YumBase(depsolve.Depsolve):
         up_st = time.time()
 
         self._up = rpmUtils.updates.Updates(self.rpmdb.simplePkgList(), self.pkgSack.simplePkgList())
-        if self.conf.debuglevel >= 6:
+        if self.conf.debuglevel >= 7:
             self._up.debug = 1
         
         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,12 +954,12 @@ 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.rpmdb.dropCachedData() # drop out the rpm cache so we don't step on bad hdr indexes
         self.plugins.run('posttrans')
         return resultobject
 
@@ -1017,6 +1054,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 +1107,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 +1148,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 +1267,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 +1279,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 +1312,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 +1359,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 +1380,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 +1473,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 +1507,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
@@ -2192,12 +2222,10 @@ class YumBase(depsolve.Depsolve):
         
         if depstring[0] != '/':
             # not a file dep - look at it for being versioned
-            if re.search('[>=<]', depstring):  # versioned
-                try:
-                    depname, flagsymbol, depver = depstring.split()
-                except ValueError, e:
-                    raise Errors.YumBaseError, _('Invalid versioned dependency string, try quoting it.')
-                if not SYMBOLFLAGS.has_key(flagsymbol):
+            dep_split = depstring.split()
+            if len(dep_split) == 3:
+                depname, flagsymbol, depver = dep_split
+                if not flagsymbol in SYMBOLFLAGS:
                     raise Errors.YumBaseError, _('Invalid version flag')
                 depflags = SYMBOLFLAGS[flagsymbol]
                 
@@ -2235,15 +2263,13 @@ class YumBase(depsolve.Depsolve):
         
         if depstring[0] != '/':
             # not a file dep - look at it for being versioned
-            if re.search('[>=<]', depstring):  # versioned
-                try:
-                    depname, flagsymbol, depver = depstring.split()
-                except ValueError:
-                    raise Errors.YumBaseError, _('Invalid versioned dependency string, try quoting it.')
-                if not SYMBOLFLAGS.has_key(flagsymbol):
+            dep_split = depstring.split()
+            if len(dep_split) == 3:
+                depname, flagsymbol, depver = dep_split
+                if not flagsymbol in SYMBOLFLAGS:
                     raise Errors.YumBaseError, _('Invalid version flag')
                 depflags = SYMBOLFLAGS[flagsymbol]
-        
+
         return self.rpmdb.getProvides(depname, depflags, depver).keys()
 
     def _bestPackageFromList(self, pkglist):
@@ -2260,36 +2286,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 +2434,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 +2510,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 +2814,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)
@@ -3015,6 +3017,7 @@ class YumBase(depsolve.Depsolve):
             # for now, banned and dropped.
             if self.allowedMultipleInstalls(item.po):
                 self.tsInfo.remove(item.pkgtup)
+                tx_mbrs.remove(item)
                 msg = _("Package %s is allowed multiple installs, skipping") % item.po
                 self.verbose_logger.log(logginglevels.INFO_2, msg)
                 continue
@@ -3022,10 +3025,12 @@ class YumBase(depsolve.Depsolve):
             members = self.install(name=item.name, arch=item.arch,
                            ver=item.version, release=item.release, epoch=item.epoch)
             if len(members) == 0:
+                self.tsInfo.remove(item.pkgtup)
+                tx_mbrs.remove(item)
                 raise Errors.ReinstallError, _("Problem in reinstall: no package matched to install")
             new_members.extend(members)
 
-        tx_mbrs.extend(new_members)            
+        tx_mbrs.extend(new_members)
         return tx_mbrs
         
 
diff --git a/yum/config.py b/yum/config.py
index 2219605..ebe4b51 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)
@@ -677,12 +675,18 @@ class YumConf(StartupConf):
                                     'tty' : 'auto', 'if-tty' : 'auto'})
     color_list_installed_older = Option('bold')
     color_list_installed_newer = Option('bold,yellow')
+    color_list_installed_reinstall = Option('normal')
     color_list_installed_extra = Option('bold,red')
 
     color_list_available_upgrade = Option('bold,blue')
     color_list_available_downgrade = Option('dim,cyan')
+    color_list_available_reinstall = Option('bold,underline,green')
     color_list_available_install = Option('normal')
 
+    color_update_installed = Option('normal')
+    color_update_local     = Option('bold')
+    color_update_remote    = Option('normal')
+
     color_search_match = Option('bold')
     
     _reposlist = []
diff --git a/yum/constants.py b/yum/constants.py
index c6de596..3711fc0 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]
@@ -107,3 +108,6 @@ PATTERNS_MAX = 8
 #  We have another value here because name is indexed and sqlite is _much_
 # faster even at large numbers of patterns.
 PATTERNS_INDEXED_MAX = 128
+
+RPM_CHECKSUM_TYPES = { 1:'md5', 2:'sha1', 8:'sha256', 9:'sha384', 10:'sha512',
+                       11:'sha224' } # from RFC 4880
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/metalink.py b/yum/metalink.py
index ff36393..1f406bb 100755
--- a/yum/metalink.py
+++ b/yum/metalink.py
@@ -221,12 +221,26 @@ class MetaLinkRepoMD:
 
     def urls(self):
         """ Iterate plain urls for the mirrors, like the old mirrorlist. """
+
+        # Get the hostname from a url, stripping away any usernames/passwords
+        # Borrowd from fastestmirror
+        url2host = lambda url: url.split('/')[2].split('@')[-1]
+        hosts = set() # Don't want multiple urls for one host in plain mode
+                      # The list of URLs is sorted, so http is before ftp
+
         for mirror in self.mirrors:
             url = mirror.url
 
             # This is what yum supports atm. ... no rsync etc.
-            if not (url.startswith("http:") or url.startswith("ftp:") or
-                    url.startswith("file:") or url.startswith("https:")):
+            if url.startswith("file:"):
+                pass
+            elif (url.startswith("http:") or url.startswith("ftp:") or
+                  url.startswith("https:")):
+                host = url2host(url)
+                if host in hosts:
+                    continue
+                hosts.add(host)
+            else:
                 continue
 
             #  The mirror urls in the metalink file are for repomd.xml so it
diff --git a/yum/misc.py b/yum/misc.py
index e0e8256..eeb142f 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
@@ -88,6 +91,18 @@ def re_primary_filename(filename):
             return True
     return False
 
+_re_compiled_pri_dnames_match = None
+def re_primary_dirname(dirname):
+    global _re_compiled_pri_dnames_match
+    if _re_compiled_pri_dnames_match is None:
+        one   = re.compile('.*bin\/.*')
+        two   = re.compile('^\/etc\/.*')
+        _re_compiled_pri_dnames_match = (one, two)
+    for rec in _re_compiled_pri_dnames_match:
+        if rec.match(dirname):
+            return True
+    return False
+
 _re_compiled_full_match = None
 def re_full_search_needed(s):
     """ Tests if a string needs a full nevra match, instead of just name. """
@@ -130,18 +145,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 +192,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
@@ -498,7 +511,7 @@ def valid_detached_sig(sig_file, signed_file, gpghome=None):
 
     return False
 
-def getCacheDir(tmpdir='/var/tmp'):
+def getCacheDir(tmpdir='/var/tmp', reuse=True):
     """return a path to a valid and safe cachedir - only used when not running
        as root or when --tempcache is set"""
     
@@ -509,15 +522,17 @@ def getCacheDir(tmpdir='/var/tmp'):
     except KeyError:
         return None # if it returns None then, well, it's bollocksed
 
-    # check for /var/tmp/yum-username-* - 
-    prefix = 'yum-%s-' % username    
-    dirpath = '%s/%s*' % (tmpdir, prefix)
-    cachedirs = glob.glob(dirpath)
-    
-    for thisdir in cachedirs:
-        stats = os.lstat(thisdir)
-        if S_ISDIR(stats[0]) and S_IMODE(stats[0]) == 448 and stats[4] == uid:
-            return thisdir
+    prefix = 'yum-'
+
+    if reuse:
+        # check for /var/tmp/yum-username-* - 
+        prefix = 'yum-%s-' % username    
+        dirpath = '%s/%s*' % (tmpdir, prefix)
+        cachedirs = sorted(glob.glob(dirpath))
+        for thisdir in cachedirs:
+            stats = os.lstat(thisdir)
+            if S_ISDIR(stats[0]) and S_IMODE(stats[0]) == 448 and stats[4] == uid:
+                return thisdir
 
     # make the dir (tempfile.mkdtemp())
     cachedir = tempfile.mkdtemp(prefix=prefix, dir=tmpdir)
@@ -616,7 +631,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 +771,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..bad2e62 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."""
@@ -39,6 +40,20 @@ class PackageSackBase(object):
         else:
             return iter(ret)
 
+    def __cmp__(self, other):
+        if other is None:
+            return 1
+
+        s_repos = list(self.added)
+        o_repos = list(other.added)
+        if len(s_repos) != len(o_repos):
+            return len(s_repos) - len(o_repos)
+        for (s_repo, o_repo) in zip(sorted(s_repos), sorted(o_repos)):
+            ret = cmp(s_repo, o_repo)
+            if ret:
+                return ret
+        return 0
+
     def setCompatArchs(self, compatArchs):
         raise NotImplementedError()
 
@@ -219,6 +234,18 @@ class PackageSackBase(object):
         """returns a list of package objects that are not required by
            any other package in this repository"""
            
+        def _return_all_provides(po):
+            """ Return all the provides, via. yield. """
+            # These are done one by one, so that we get lazy loading
+            for prov in po.provides_names:
+                yield prov
+            for prov in po.filelist:
+                yield prov
+            for prov in po.dirlist:
+                yield prov
+            for prov in po.ghostlist:
+                yield prov
+
         # fixme - maybe cache this list?
         
         req = {}
@@ -235,7 +262,7 @@ class PackageSackBase(object):
      
         for po in self.returnPackages(repoid=repoid):
             preq = 0
-            for p in po.provides_names + po.filelist + po.dirlist + po.ghostlist:
+            for p in _return_all_provides(po):
                 if req.has_key(p):
                     # Don't count a package that provides its require
                     s = req[p]
@@ -259,7 +286,7 @@ class MetaSack(PackageSackBase):
 
     def __len__(self):
         ret = 0
-        for sack in self.sacks.values():
+        for sack in sorted(self.sacks.values()):
             ret += len(sack)
         return ret
 
@@ -448,7 +475,7 @@ class MetaSack(PackageSackBase):
 
     def _computeAggregateListResult(self, methodName, *args):
         result = []
-        for sack in self.sacks.values():
+        for sack in sorted(self.sacks.values()):
             if hasattr(sack, methodName):
                 method = getattr(sack, methodName)
                 try:
@@ -463,7 +490,7 @@ class MetaSack(PackageSackBase):
 
     def _computeAggregateDictResult(self, methodName, *args):
         result = {}
-        for sack in self.sacks.values():
+        for sack in sorted(self.sacks.values()):
             if hasattr(sack, methodName):
                 method = getattr(sack, methodName)
                 try:
@@ -752,6 +779,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..60d4dfb 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -34,6 +34,7 @@ from rpmUtils.miscutils import flagToString, stringToVersion
 import Errors
 import errno
 import struct
+from constants import *
 
 import urlparse
 urlparse.uses_fragment.append("media")
@@ -41,14 +42,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 +219,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 +290,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 +462,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 +491,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
     
@@ -630,7 +660,7 @@ class YumAvailablePackage(PackageObject, RpmBase):
     def verifyLocalPkg(self):
         """check the package checksum vs the localPkg
            return True if pkg is good, False if not"""
-           
+
         (csum_type, csum) = self.returnIdSum()
         
         try:
@@ -756,26 +786,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
@@ -837,37 +868,23 @@ class YumAvailablePackage(PackageObject, RpmBase):
         return msg
     
     def _return_primary_files(self, list_of_files=None):
-        fileglobs = ['.*bin\/.*', '^\/etc\/.*', '^\/usr\/lib\/sendmail$']
-        file_re = []
-        for glob in fileglobs:
-            file_re.append(re.compile(glob))        
-
-
         returns = {}
         if list_of_files is None:
             list_of_files = self.returnFileEntries('file')
         for item in list_of_files:
             if item is None:
                 continue
-            for glob in file_re:
-                if glob.match(item):
-                    returns[item] = 1
+            if misc.re_primary_filename(item):
+                returns[item] = 1
         return returns.keys()
 
     def _return_primary_dirs(self):
-        dirglobs = ['.*bin\/.*', '^\/etc\/.*']
-        dir_re = []
-        
-        for glob in dirglobs:
-            dir_re.append(re.compile(glob))
-
         returns = {}
         for item in self.returnFileEntries('dir'):
             if item is None:
                 continue
-            for glob in dir_re:
-                if glob.match(item):
-                    returns[item] = 1
+            if misc.re_primary_dirname(item):
+                returns[item] = 1
         return returns.keys()
         
         
@@ -927,11 +944,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))
@@ -1190,7 +1208,7 @@ class _PkgVerifyProb:
         return ret
 
 # From: lib/rpmvf.h ... not in rpm *sigh*
-_RPMVERIFY_MD5      = (1 << 0)
+_RPMVERIFY_DIGEST     = (1 << 0)
 _RPMVERIFY_FILESIZE = (1 << 1)
 _RPMVERIFY_LINKTO   = (1 << 2)
 _RPMVERIFY_USER     = (1 << 3)
@@ -1234,9 +1252,18 @@ class YumInstalledPackage(YumHeaderPackage):
         prelink_cmd = "/usr/sbin/prelink"
         have_prelink = os.path.exists(prelink_cmd)
 
+        # determine what checksum algo to use:
+        csum_type = 'md5' # default for legacy
+        if hasattr(rpm, 'RPMTAG_FILEDIGESTALGO'):
+            csum_num = self.hdr[rpm.RPMTAG_FILEDIGESTALGO]
+            if csum_num:
+                if csum_num in RPM_CHECKSUM_TYPES:
+                    csum_type = RPM_CHECKSUM_TYPES[csum_num]
+                # maybe an else with an error code here? or even a verify issue?
+
         for filetuple in fi:
             #tuple is: (filename, fsize, mode, mtime, flags, frdev?, inode, link,
-            #           state, vflags?, user, group, md5sum(or none for dirs) 
+            #           state, vflags?, user, group, checksum(or none for dirs) 
             (fn, size, mode, mtime, flags, dev, inode, link, state, vflags, 
                        user, group, csum) = filetuple
             if patterns:
@@ -1376,15 +1403,15 @@ class YumInstalledPackage(YumHeaderPackage):
                 # just so we get the size correct.
                 if (check_content and
                     ((have_prelink and vflags & _RPMVERIFY_FILESIZE) or
-                     (csum and vflags & _RPMVERIFY_MD5))):
+                     (csum and vflags & _RPMVERIFY_DIGEST))):
                     try:
-                        my_csum = misc.checksum('md5', fn)
+                        my_csum = misc.checksum(csum_type, fn)
                         gen_csum = True
                     except Errors.MiscError:
                         # Don't have permission?
                         gen_csum = False
 
-                    if csum and vflags & _RPMVERIFY_MD5 and not gen_csum:
+                    if csum and vflags & _RPMVERIFY_DIGEST and not gen_csum:
                         prob = _PkgVerifyProb('genchecksum',
                                               'checksum not available', ftypes)
                         prob.database_value = csum
@@ -1397,10 +1424,10 @@ class YumInstalledPackage(YumHeaderPackage):
                         (ig, fp,er) = os.popen3([prelink_cmd, "-y", fn])
                         # er.read(1024 * 1024) # Try and get most of the stderr
                         fp = _CountedReadFile(fp)
-                        my_csum = misc.checksum('md5', fp)
+                        my_csum = misc.checksum(csum_type, fp)
                         my_st_size = fp.read_size
 
-                    if (csum and vflags & _RPMVERIFY_MD5 and gen_csum and
+                    if (csum and vflags & _RPMVERIFY_DIGEST and gen_csum and
                         my_csum != csum):
                         prob = _PkgVerifyProb('checksum',
                                               'checksum does not match', ftypes)
@@ -1477,7 +1504,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 +1521,19 @@ 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):
+        self._do_checksum()
+        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..63d1493 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')
@@ -160,6 +167,7 @@ class RepoStorage:
             if repo.isEnabled():
                 returnlist.append(repo)
 
+        returnlist.sort()
         return returnlist
 
     def listGroupsEnabled(self):
@@ -260,6 +268,8 @@ class Repository:
         self.disable()
 
     def __cmp__(self, other):
+        """ Sort base class repos. by alphanumeric on their id, also
+            see __cmp__ in YumRepository(). """
         if self.id > other.id:
             return 1
         elif self.id < other.id:
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 31ae142..c9a6d81 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -96,6 +96,9 @@ class RPMDBPackageSack(PackageSackBase):
         self._get_pro_cache = {}
         self._get_req_cache  = {}
         self.ts = None
+        self.auto_close = False # this forces a self.ts.close() after
+                                     # most operations so it doesn't leave
+                                     # any lingering locks.
 
         self._cache = {
             'provides' : { },
@@ -135,6 +138,8 @@ class RPMDBPackageSack(PackageSackBase):
     def readOnlyTS(self):
         if not self.ts:
             self.ts =  initReadOnlyTransaction(root=self.root)
+        if not self.ts.open:
+            self.ts = initReadOnlyTransaction(root=self.root)
         return self.ts
 
     def buildIndexes(self):
@@ -168,6 +173,9 @@ class RPMDBPackageSack(PackageSackBase):
             if not result.has_key(pkg.pkgid):
                 result[pkg.pkgid] = pkg
         
+        if self.auto_close:
+            self.ts.close()
+
         return result.values()
 
     def searchFiles(self, name):
@@ -184,6 +192,10 @@ class RPMDBPackageSack(PackageSackBase):
         del mi
 
         result = result.values()
+
+        if self.auto_close:
+            self.ts.close()
+
         return result
         
     def searchPrco(self, name, prcotype):
@@ -209,6 +221,10 @@ class RPMDBPackageSack(PackageSackBase):
         
         result = result.values()
         self._cache[prcotype][name] = result
+
+        if self.auto_close:
+            self.ts.close()
+
         return result
 
     def searchProvides(self, name):
@@ -363,6 +379,9 @@ class RPMDBPackageSack(PackageSackBase):
             if hdr['name'] != 'gpg-pubkey':
                 yield (hdr, mi.instance())
         del mi
+        if self.auto_close:
+            self.ts.close()
+
 
     def _header_from_index(self, idx):
         """returns a package header having been given an index"""
@@ -382,6 +401,9 @@ class RPMDBPackageSack(PackageSackBase):
             del hdr
 
         del mi
+        if self.auto_close:
+            self.ts.close()
+
 
     def _search(self, name=None, epoch=None, ver=None, rel=None, arch=None):
         '''Generator that yields matching packages
@@ -422,6 +444,10 @@ class RPMDBPackageSack(PackageSackBase):
                     break
             else:
                 ret.append(po)
+
+        if self.auto_close:
+            self.ts.close()
+
         return ret
 
     def _makePackageObject(self, hdr, index):
diff --git a/yum/rpmtrans.py b/yum/rpmtrans.py
index 0961b34..9844e2f 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):
@@ -409,7 +406,7 @@ class RPMTransaction:
         self.lastmsg = None
         hdr = None
         if h is not None:
-            hdr, rpmloc = h
+            hdr, rpmloc = h[0], h[1]
             handle = self._makeHandle(hdr)
             fd = os.open(rpmloc, os.O_RDONLY)
             self.filehandles[handle]=fd
@@ -424,7 +421,7 @@ class RPMTransaction:
     def _instCloseFile(self, bytes, total, h):
         hdr = None
         if h is not None:
-            hdr, rpmloc = h
+            hdr, rpmloc = h[0], h[1]
             handle = self._makeHandle(hdr)
             os.close(self.filehandles[handle])
             fd = 0
@@ -448,7 +445,7 @@ class RPMTransaction:
                                 self.complete_actions, self.total_actions)
 
             else:
-                hdr, rpmloc = h
+                hdr, rpmloc = h[0], h[1]
                 pkgtup = self._dopkgtup(hdr)
                 txmbrs = self.base.tsInfo.getMembers(pkgtup=pkgtup)
                 for txmbr in txmbrs:
@@ -488,21 +485,41 @@ class RPMTransaction:
         pass
         
     def _cpioError(self, bytes, total, h):
-        (hdr, rpmloc) = h
+        hdr, rpmloc = h[0], h[1]
         pkgtup = self._dopkgtup(hdr)
         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?
     
     def _unpackError(self, bytes, total, h):
-        (hdr, rpmloc) = h
+        hdr, rpmloc = h[0], h[1]
         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[0], h[1]
+        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
+            scriptlet_name = rpm.tagnames.get(bytes, "<unknown>")
+            if total:
+                msg = ("Error in %s scriptlet in rpm package %s" % 
+                        (scriptlet_name, txmbr.po))
+                txmbr.output_state = TS_FAILED
+            else:
+                msg = ("Non-fatal %s scriptlet failure in rpm package %s" % 
+                       (scriptlet_name, 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..7599808 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__
@@ -206,7 +209,8 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
             cur = self._sql_MD('other',
                                "SELECT date, author, changelog " \
                                "FROM   changelog JOIN packages USING(pkgKey) " \
-                               "WHERE  pkgId = ?", (self.pkgId,))
+                               "WHERE  pkgId = ? ORDER BY date DESC",
+                               (self.pkgId,))
             # Check count(pkgId) here, the same way we do in searchFiles()?
             # Failure mode is much less of a problem.
             for ob in cur:
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..24b3b04 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
@@ -287,6 +281,19 @@ class YumRepository(Repository, config.RepoConf):
         self._grabfunc = None
         self._grab = None
 
+    def __cmp__(self, other):
+        """ Sort yum repos. by cost, and then by alphanumeric on their id. """
+        if other is None:
+            return 1
+        if hasattr(other, 'cost'):
+            ocost = other.cost
+        else:
+            ocost = 1000
+        ret = cmp(self.cost, ocost)
+        if ret:
+            return 1
+        return cmp(self.id, other.id)
+
     def _getSack(self):
         # FIXME: Note that having the repo hold the sack, which holds "repos"
         # is not only confusing but creates a circular dep.
@@ -384,7 +391,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 +402,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 +509,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,12 +538,38 @@ 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',
                 Errors.YumFutureDeprecationWarning, stacklevel=2)
         self._baseurlSetup()
 
+    def _hack_mirrorlist_for_anaconda(self):
+        #  Anaconda doesn't like having mirrorlist and metalink, so we allow
+        # mirrorlist to act like metalink. Except we'd really like to know which
+        # we have without parsing it ... and want to store it in the right
+        # place etc.
+        #  So here is #1 hack: see if the metalin kis unset and the mirrorlist
+        # URL contains the string "metalink", if it does we copy it over.
+        if self.metalink:
+            return
+        if not self.mirrorlist:
+            return
+        if self.mirrorlist.find("metalink") == -1:
+            return
+        self.metalink = self.mirrorlist
+
     def _baseurlSetup(self):
         """go through the baseurls and mirrorlists and populate self.urls
            with valid ones, run  self.check() at the end to make sure it worked"""
@@ -548,6 +581,7 @@ class YumRepository(Repository, config.RepoConf):
         self._orig_baseurl = self.baseurl
 
         mirrorurls = []
+        self._hack_mirrorlist_for_anaconda()
         if self.metalink and not self.mirrorlistparsed:
             # FIXME: This is kind of lying to API callers
             mirrorurls.extend(list(self.metalink_data.urls()))
@@ -563,7 +597,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 +670,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)
@@ -706,7 +737,7 @@ class YumRepository(Repository, config.RepoConf):
             except Errors.MediaError, e:
                 verbose_logger.log(logginglevels.DEBUG_2, "Error getting package from media; falling back to url %s" %(e,))
 
-        if url is not None and scheme != "media":
+        if url and scheme != "media":
             ug = URLGrabber(keepalive = self.keepalive,
                             bandwidth = self.bandwidth,
                             retry = self.retries,
@@ -795,12 +826,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 +902,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 +918,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 +935,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 +950,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 +972,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 +991,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 +1012,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:
@@ -1088,6 +1119,7 @@ class YumRepository(Repository, config.RepoConf):
         if not oxml: # No old repomd.xml data
             return False
 
+        self._hack_mirrorlist_for_anaconda()
         if not self.metalink: # Nothing to check it against
             return False
 
@@ -1150,6 +1182,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 +1200,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 +1284,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()
@@ -1345,6 +1382,7 @@ class YumRepository(Repository, config.RepoConf):
         except Errors.RepoMDError, e:
             raise URLGrabError(-1, 'Error importing repomd.xml for %s: %s' % (self, e))
 
+        self._hack_mirrorlist_for_anaconda()
         if self.metalink and not self._checkRepoMetalink(repoXML):
             raise URLGrabError(-1, 'repomd.xml does not match metalink for %s' %
                                self)
@@ -1422,7 +1460,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 +1586,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..8a8a620 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:
@@ -245,6 +251,7 @@ class InfoCommand(YumCommand):
         else:
             update_pkgs = {}
             inst_pkgs   = {}
+            local_pkgs  = {}
 
             columns = None
             if basecmd == 'list':
@@ -271,25 +278,36 @@ class InfoCommand(YumCommand):
                     if key not in inst_pkgs or pkg.verGT(inst_pkgs[key]):
                         inst_pkgs[key] = pkg
 
+            if highlight and ypl.updates:
+                # Do the local/remote split we get in "yum updates"
+                for po in sorted(ypl.updates):
+                    if po.repo.id != 'installed' and po.verifyLocalPkg():
+                        local_pkgs[(po.name, po.arch)] = po
+
             # Output the packages:
             clio = base.conf.color_list_installed_older
             clin = base.conf.color_list_installed_newer
+            clir = base.conf.color_list_installed_reinstall
             clie = base.conf.color_list_installed_extra
             rip = base.listPkgs(ypl.installed, _('Installed Packages'), basecmd,
                                 highlight_na=update_pkgs, columns=columns,
                                 highlight_modes={'>' : clio, '<' : clin,
-                                                 'not in' : clie})
+                                                 '=' : clir, 'not in' : clie})
             clau = base.conf.color_list_available_upgrade
             clad = base.conf.color_list_available_downgrade
+            clar = base.conf.color_list_available_reinstall
             clai = base.conf.color_list_available_install
             rap = base.listPkgs(ypl.available, _('Available Packages'), basecmd,
                                 highlight_na=inst_pkgs, columns=columns,
                                 highlight_modes={'<' : clau, '>' : clad,
-                                                 'not in' : clai})
+                                                 '=' : clar, 'not in' : clai})
             rep = base.listPkgs(ypl.extras, _('Extra Packages'), basecmd,
                                 columns=columns)
+            cul = base.conf.color_update_local
+            cur = base.conf.color_update_remote
             rup = base.listPkgs(ypl.updates, _('Updated Packages'), basecmd,
-                                columns=columns)
+                                highlight_na=local_pkgs, columns=columns,
+                                highlight_modes={'=' : cul, 'not in' : cur})
 
             # XXX put this into the ListCommand at some point
             if len(ypl.obsoletes) > 0 and basecmd == 'list': 
@@ -344,8 +362,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 +376,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:
@@ -566,11 +582,21 @@ class CheckUpdateCommand(YumCommand):
 
             columns = _list_cmd_calc_columns(base, ypl)
             if len(ypl.updates) > 0:
+                local_pkgs = {}
+                highlight = base.term.MODE['bold']
+                if highlight:
+                    # Do the local/remote split we get in "yum updates"
+                    for po in sorted(ypl.updates):
+                        if po.repo.id != 'installed' and po.verifyLocalPkg():
+                            local_pkgs[(po.name, po.arch)] = po
+
+                cul = base.conf.color_update_local
+                cur = base.conf.color_update_remote
                 base.listPkgs(ypl.updates, '', outputType='list',
-                              columns=columns)
+                              highlight_na=local_pkgs, columns=columns,
+                              highlight_modes={'=' : cul, 'not in' : cur})
                 result = 100
             if len(ypl.obsoletes) > 0: # This only happens in verbose mode
-                rop = [0, '']
                 print _('Obsoleting Packages')
                 # The tuple is (newPkg, oldPkg) ... so sort by new
                 for obtup in sorted(ypl.obsoletesTuples,
@@ -622,8 +648,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 +670,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 +712,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 +736,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 +820,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 +1000,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..cb4185b 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
@@ -162,6 +234,10 @@ def main(args):
         # Fatal error
         for msg in resultmsgs:
             logger.critical(_('Error: %s'), msg)
+        if not base.conf.skip_broken:
+            verbose_logger.info(_(" You could try using --skip-broken to work around the problem"))
+        verbose_logger.info(_(" You could try running: package-cleanup --problems\n"
+                              "                        package-cleanup --dupes"))
         if unlock(): return 200
         return 1
     elif result == 2:
@@ -193,7 +269,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 +278,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)