Blob Blame History Raw
diff --git a/cli.py b/cli.py
index 7c4047a..5ad4e2b 100644
--- a/cli.py
+++ b/cli.py
@@ -37,7 +37,7 @@ import yum.Errors
 import yum.logginglevels
 import yum.misc
 import yum.plugins
-import rpmUtils.arch
+from rpmUtils.arch import isMultiLibArch
 import rpmUtils.miscutils
 from yum.packages import parsePackages
 from yum import _
@@ -99,6 +99,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         self.registerCommand(yumcommands.HelpCommand())
         self.registerCommand(yumcommands.ReInstallCommand())        
         self.registerCommand(yumcommands.DowngradeCommand())        
+        self.registerCommand(yumcommands.VersionCommand())
 
     def registerCommand(self, command):
         for name in command.getNames():
@@ -687,12 +688,21 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
 
             try:
                 self.reinstall(pattern=arg)
-            except yum.Errors.ReinstallError:
+            except yum.Errors.ReinstallRemoveError:
+                self._checkMaybeYouMeant(arg, always_output=False)
+            except yum.Errors.ReinstallInstallError, e:
+                ipkg = self.rpmdb.returnPackages(patterns=[arg])[0]
+                xmsg = ''
+                if 'from_repo' in ipkg.yumdb_info:
+                    xmsg = ipkg.yumdb_info.from_repo
+                    xmsg = _(' (from %s)') % xmsg
                 self.verbose_logger.log(yum.logginglevels.INFO_2,
-                                        _('No package %s%s%s available.'),
-                                        self.term.MODE['bold'], arg,
-                                        self.term.MODE['normal'])
-                self._maybeYouMeant(arg)
+                                        _('Installed package %s%s%s%s not available.'),
+                                        self.term.MODE['bold'], ipkg,
+                                        self.term.MODE['normal'], xmsg)
+            except yum.Errors.ReinstallError, e:
+                assert False, "Shouldn't happen, but just in case"
+                self.verbose_logger.log(yum.logginglevels.INFO_2, e)
         if len(self.tsInfo) > oldcount:
             return 2, [_('Package(s) to reinstall')]
         return 0, [_('Nothing to do')]
@@ -1045,7 +1055,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         installedByKey = self.rpmdb.searchNevra(name=pkg.name)
         comparable = []
         for instpo in installedByKey:
-            if rpmUtils.arch.isMultiLibArch(instpo.arch) == rpmUtils.arch.isMultiLibArch(pkg.arch):
+            if isMultiLibArch(instpo.arch) == isMultiLibArch(pkg.arch):
                 comparable.append(instpo)
             else:
                 self.verbose_logger.log(yum.logginglevels.DEBUG_3,
@@ -1152,13 +1162,8 @@ class YumOptionParser(OptionParser):
             # 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)
+            elif not self.base.setCacheDir():
+                self.base.conf.cache = 1
 
             if opts.obsoletes:
                 self.base.conf.obsoletes = 1
diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index 521ffed..18e72ea 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -318,7 +318,7 @@ always (using ANSI codes) or never.
 Command-line option: \fB\-\-color\fP
 
 .IP \fBcolor_list_installed_older \fR
-The colorization/highlighting for pacakges in list/info installed which are
+The colorization/highlighting for packages in list/info installed which are
 older than the latest available package with the same name and arch.
 Default is `bold'.
 Possible values are a comma seperated list containing: bold, blink, dim,
@@ -327,43 +327,43 @@ fg:cyan, fg:white, bg:black, bg:red, bg:green, bg:yellow, bg:blue, bg:magenta,
 bg:cyan, bg:white.
 
 .IP \fBcolor_list_installed_newer \fR
-The colorization/highlighting for pacakges in list/info installed which are
+The colorization/highlighting for packages in list/info installed which are
 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 colorization/highlighting for packages 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
+The colorization/highlighting for packages in list/info installed which has
 no available package with the same name and arch.
 Default is `bold,red'.
 See color_list_installed_older for possible values.
 
 .IP \fBcolor_list_available_upgrade \fR
-The colorization/highlighting for pacakges in list/info available which is
+The colorization/highlighting for packages in list/info available which is
 an upgrade for the latest installed package with the same name and arch.
 Default is `bold,blue'.
 See color_list_installed_older for possible values.
 
 .IP \fBcolor_list_available_downgrade \fR
-The colorization/highlighting for pacakges in list/info available which is
+The colorization/highlighting for packages in list/info available which is
 a downgrade for the latest installed package with the same name and arch.
 Default is `dim,cyan'.
 See color_list_installed_older for possible values.
 
 .IP \fBcolor_list_available_install \fR
-The colorization/highlighting for pacakges in list/info available which has
+The colorization/highlighting for packages in list/info available which has
 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 colorization/highlighting for packages 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.
diff --git a/output.py b/output.py
index 7803275..3efccf2 100755
--- a/output.py
+++ b/output.py
@@ -141,10 +141,6 @@ class YumTerm:
         self.BG_COLOR = self.__ansi_forced_BG_COLOR
 
     def reinit(self, term_stream=None, color='auto'):
-        if color == 'never':
-            self.__enabled = False
-            return
-
         self.__enabled = True
         if not hasattr(urlgrabber.progress, 'terminal_width_cached'):
             self.columns = 80
@@ -153,7 +149,6 @@ class YumTerm:
         if color == 'always':
             self.__forced_init()
             return
-        assert color == 'auto'
 
         # Output modes:
         self.MODE = {
@@ -188,6 +183,11 @@ class YumTerm:
             'white' : ''
             }
 
+        if color == 'never':
+            self.__enabled = False
+            return
+        assert color == 'auto'
+
         # Curses isn't available on all platforms
         try:
             import curses
@@ -902,7 +902,7 @@ class YumOutput:
     def listTransaction(self):
         """returns a string rep of the  transaction in an easy-to-read way."""
         
-        self.tsInfo.makelists()
+        self.tsInfo.makelists(True, True)
         out = u""
         pkglist_lines = []
         data  = {'n' : {}, 'v' : {}, 'r' : {}}
@@ -938,6 +938,8 @@ class YumOutput:
         for (action, pkglist) in [(_('Installing'), self.tsInfo.installed),
                             (_('Updating'), self.tsInfo.updated),
                             (_('Removing'), self.tsInfo.removed),
+                            (_('Reinstalling'), self.tsInfo.reinstalled),
+                            (_('Downgrading'), self.tsInfo.downgraded),
                             (_('Installing for dependencies'), self.tsInfo.depinstalled),
                             (_('Updating for dependencies'), self.tsInfo.depupdated),
                             (_('Removing for dependencies'), self.tsInfo.depremoved)]:
@@ -963,7 +965,7 @@ class YumOutput:
             (n_wid, a_wid, v_wid, r_wid, s_wid) = columns
             assert s_wid == 5
 
-            out = u"""
+            out = [u"""
 %s
 %s
 %s
@@ -971,7 +973,7 @@ class YumOutput:
        self.fmtColumns(((_('Package'), -n_wid), (_('Arch'), -a_wid),
                         (_('Version'), -v_wid), (_('Repository'), -r_wid),
                         (_('Size'), s_wid)), u" "),
-       '=' * self.term.columns)
+       '=' * self.term.columns)]
 
         for (action, lines) in pkglist_lines:
             if lines:
@@ -989,21 +991,33 @@ class YumOutput:
                 totalmsg = totalmsg + msg
         
             if lines:
-                out = out + totalmsg
+                out.append(totalmsg)
 
         summary = _("""
 Transaction Summary
 %s
-Install  %5.5s Package(s)         
-Update   %5.5s Package(s)         
-Remove   %5.5s Package(s)         
-""") % ('=' * self.term.columns,
-        len(self.tsInfo.installed + self.tsInfo.depinstalled),
-        len(self.tsInfo.updated + self.tsInfo.depupdated),
-        len(self.tsInfo.removed + self.tsInfo.depremoved))
-        out = out + summary
+""") % ('=' * self.term.columns,)
+        out.append(summary)
+        num_in = len(self.tsInfo.installed + self.tsInfo.depinstalled)
+        num_up = len(self.tsInfo.updated + self.tsInfo.depupdated)
+        summary = _("""\
+Install   %5.5s Package(s)
+Upgrade   %5.5s Package(s)
+""") % (num_in, num_up,)
+        if num_in or num_up: # Always do this?
+            out.append(summary)
+        num_rm = len(self.tsInfo.removed + self.tsInfo.depremoved)
+        num_re = len(self.tsInfo.reinstalled)
+        num_dg = len(self.tsInfo.downgraded)
+        summary = _("""\
+Remove    %5.5s Package(s)
+Reinstall %5.5s Package(s)
+Downgrade %5.5s Package(s)
+""") % (num_rm, num_re, num_dg)
+        if num_rm or num_re or num_dg:
+            out.append(summary)
         
-        return out
+        return ''.join(out)
         
     def postTransactionOutput(self):
         out = ''
@@ -1125,7 +1139,8 @@ Remove   %5.5s Package(s)
 # to exit.
             # Where "interupt (ctrl-c) again" and "two" are highlighted.
             msg = _("""
- Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds to exit.
+ Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds
+to exit.
 """) % (hibeg, hiend, hibeg, delta_exit_str, hiend)
             self.verbose_logger.log(logginglevels.INFO_2, msg)
         elif now - self._last_interrupt < delta_exit_chk:
diff --git a/po/da.po b/po/da.po
index 68cef3a..5678fe7 100644
--- a/po/da.po
+++ b/po/da.po
@@ -1,5 +1,5 @@
 # Danish translation of yum
-# Copyright (C) 2008 THE yum'S COPYRIGHT HOLDER
+# Copyright (C) 2008 yum
 # This file is distributed under the same license as the yum package.
 # tim <timlau@fedoraproject.org>, 2008.
 # Kris Thomsen <lakristho@gmail.com>, 2009.
@@ -9,15 +9,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: yum 3.2.x\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-15 14:37+0000\n"
-"PO-Revision-Date: 2009-04-15 16:39+0200\n"
+"POT-Creation-Date: 2009-05-23 20:05+0000\n"
+"PO-Revision-Date: 2009-05-24 13:08+0200\n"
 "Last-Translator: Kris Thomsen <lakristho@gmail.com>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../callback.py:48 ../output.py:936 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:939 ../yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "Opdaterer"
 
@@ -25,7 +25,7 @@ msgstr "Opdaterer"
 msgid "Erasing"
 msgstr "Sletter"
 
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:935
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:938
 #: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
 msgid "Installing"
 msgstr "Installerer"
@@ -34,7 +34,7 @@ msgstr "Installerer"
 msgid "Obsoleted"
 msgstr "Overflødiggjort"
 
-#: ../callback.py:54 ../output.py:1043
+#: ../callback.py:54 ../output.py:1046
 msgid "Updated"
 msgstr "Opdateret"
 
@@ -42,7 +42,7 @@ msgstr "Opdateret"
 msgid "Erased"
 msgstr "Slettet"
 
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1041
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1044
 msgid "Installed"
 msgstr "Installeret"
 
@@ -64,7 +64,7 @@ msgstr "Error: ugyldig uddatastatus: %s for %s"
 msgid "Erased: %s"
 msgstr "Slettet: %s"
 
-#: ../callback.py:217 ../output.py:937
+#: ../callback.py:217 ../output.py:940
 msgid "Removing"
 msgstr "Sletter"
 
@@ -72,60 +72,60 @@ msgstr "Sletter"
 msgid "Cleanup"
 msgstr "Oprydning af"
 
-#: ../cli.py:104
+#: ../cli.py:107
 #, python-format
 msgid "Command \"%s\" already defined"
 msgstr "Kommandoen \"%s\" er allerede defineret"
 
-#: ../cli.py:116
+#: ../cli.py:119
 msgid "Setting up repositories"
 msgstr "Indstiller pakkearkiver"
 
-#: ../cli.py:127
+#: ../cli.py:130
 msgid "Reading repository metadata in from local files"
 msgstr "Læser pakkearkiv for metadata fra lokale filer"
 
-#: ../cli.py:190 ../utils.py:87
+#: ../cli.py:193 ../utils.py:87
 #, python-format
 msgid "Config Error: %s"
 msgstr "Konfigurationsfejl: %s"
 
-#: ../cli.py:193 ../cli.py:1229 ../utils.py:90
+#: ../cli.py:196 ../cli.py:1233 ../utils.py:90
 #, python-format
 msgid "Options Error: %s"
 msgstr "Fejl i indstilling: %s"
 
-#: ../cli.py:221
+#: ../cli.py:225
 #, python-format
 msgid "  Installed: %s-%s at %s"
 msgstr "  Installeret: %s-%s på %s"
 
-#: ../cli.py:223
+#: ../cli.py:227
 #, python-format
 msgid "  Built    : %s at %s"
 msgstr "  Bygget    : %s på %s"
 
-#: ../cli.py:225
+#: ../cli.py:229
 #, python-format
 msgid "  Committed: %s at %s"
 msgstr "  Indsendt: %s på %s"
 
-#: ../cli.py:264
+#: ../cli.py:268
 msgid "You need to give some command"
 msgstr "Du skal angive en kommando"
 
-#: ../cli.py:307
+#: ../cli.py:311
 msgid "Disk Requirements:\n"
 msgstr "Behov for diskplads:\n"
 
-#: ../cli.py:309
+#: ../cli.py:313
 #, python-format
 msgid "  At least %dMB needed on the %s filesystem.\n"
 msgstr "  Der er brug for mindst %dmb på %s-filsystemet.\n"
 
 #. TODO: simplify the dependency errors?
 #. Fixup the summary
-#: ../cli.py:314
+#: ../cli.py:318
 msgid ""
 "Error Summary\n"
 "-------------\n"
@@ -133,56 +133,56 @@ msgstr ""
 "Fejlopsummering\n"
 "---------------\n"
 
-#: ../cli.py:357
+#: ../cli.py:361
 msgid "Trying to run the transaction but nothing to do. Exiting."
 msgstr "Forsøger at udføre overførslen, men der intet at udføre. Afslutter."
 
-#: ../cli.py:393
+#: ../cli.py:397
 msgid "Exiting on user Command"
 msgstr "Afslutter efter brugerens ønske"
 
-#: ../cli.py:397
+#: ../cli.py:401
 msgid "Downloading Packages:"
 msgstr "Henter pakker:"
 
-#: ../cli.py:402
+#: ../cli.py:406
 msgid "Error Downloading Packages:\n"
 msgstr "Fejl ved hentning af pakker:\n"
 
-#: ../cli.py:416 ../yum/__init__.py:3613
+#: ../cli.py:420 ../yum/__init__.py:3728
 msgid "Running rpm_check_debug"
 msgstr "Kører rpm_check_debug"
 
-#: ../cli.py:419 ../yum/__init__.py:3616
+#: ../cli.py:423 ../yum/__init__.py:3731
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "FEJL i rpm_check_dedug vs afhængighedsløsning:"
 
-#: ../cli.py:423
+#: ../cli.py:427
 #, python-format
 msgid "Please report this error in %s"
 msgstr "Rapportér venligst denne fejl i %s"
 
-#: ../cli.py:429
+#: ../cli.py:433
 msgid "Running Transaction Test"
 msgstr "Kører overførselstest"
 
-#: ../cli.py:445
+#: ../cli.py:449
 msgid "Finished Transaction Test"
 msgstr "Afsluttede overførselstest"
 
-#: ../cli.py:447
+#: ../cli.py:451
 msgid "Transaction Check Error:\n"
 msgstr "Fejl i overførselskontrol:\n"
 
-#: ../cli.py:454
+#: ../cli.py:458
 msgid "Transaction Test Succeeded"
 msgstr "Overførselstest afsluttet uden fejl"
 
-#: ../cli.py:475
+#: ../cli.py:480
 msgid "Running Transaction"
 msgstr "Kører overførsel"
 
-#: ../cli.py:505
+#: ../cli.py:510
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
@@ -190,69 +190,69 @@ msgstr ""
 "Afviser automatisk importering af nøgler ved baggrundskørsel.\n"
 "Brug \"-y\" til at overskrive."
 
-#: ../cli.py:524 ../cli.py:558
+#: ../cli.py:529 ../cli.py:563
 msgid "  * Maybe you meant: "
 msgstr "  * Du mente måske: "
 
-#: ../cli.py:541 ../cli.py:549
+#: ../cli.py:546 ../cli.py:554
 #, python-format
 msgid "Package(s) %s%s%s available, but not installed."
 msgstr "Pakke(r) %s%s%S tilgængelig(e), men ikke installeret."
 
-#: ../cli.py:555 ../cli.py:586 ../cli.py:664
+#: ../cli.py:560 ../cli.py:591 ../cli.py:669 ../cli.py:693
 #, python-format
 msgid "No package %s%s%s available."
 msgstr "Pakken %s%s%s er ikke tilgængelig."
 
-#: ../cli.py:591 ../cli.py:691
+#: ../cli.py:596 ../cli.py:720
 msgid "Package(s) to install"
 msgstr "Pakke(r) til installation"
 
-#: ../cli.py:592 ../cli.py:670 ../cli.py:692 ../yumcommands.py:157
-#: ../yumcommands.py:1018
+#: ../cli.py:597 ../cli.py:675 ../cli.py:699 ../cli.py:721
+#: ../yumcommands.py:157
 msgid "Nothing to do"
 msgstr "Intet at udføre"
 
-#: ../cli.py:625
+#: ../cli.py:630
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d pakker markeret til opdatering"
 
-#: ../cli.py:628
+#: ../cli.py:633
 msgid "No Packages marked for Update"
 msgstr "Ingen pakker markeret til opdatering"
 
-#: ../cli.py:642
+#: ../cli.py:647
 #, python-format
 msgid "%d packages marked for removal"
 msgstr "%d pakker markeret til sletning"
 
-#: ../cli.py:645
+#: ../cli.py:650
 msgid "No Packages marked for removal"
 msgstr "Ingen pakker markeret til sletning"
 
-#: ../cli.py:669
+#: ../cli.py:674
 msgid "Package(s) to downgrade"
 msgstr "Pakke(r) til nedgradering"
 
-#: ../cli.py:682
+#: ../cli.py:698
+msgid "Package(s) to reinstall"
+msgstr "Pakke(r) til geninstallation"
+
+#: ../cli.py:711
 msgid "No Packages Provided"
 msgstr "Ingen pakker angivet"
 
-#: ../cli.py:737
-msgid "Matching packages for package list to user args"
-msgstr "Matcher pakker til pakkeliste baseret på brugerens argumenter"
-
-#: ../cli.py:786
+#: ../cli.py:795
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "Advarsel: Ingen match blev fundet for: %s"
 
-#: ../cli.py:789
+#: ../cli.py:798
 msgid "No Matches found"
 msgstr "Ingen match fundet"
 
-#: ../cli.py:828
+#: ../cli.py:837
 #, python-format
 msgid ""
 "Warning: 3.0.x versions of yum would erroneously match against filenames.\n"
@@ -261,108 +261,108 @@ msgstr ""
 "Advarsel: 3.0.x-versioner af yum vil matche fejlagtigt mod filnavne.\n"
 " Du kan bruge \"%s*/%s%s\" og/eller \"%s*bin/%s%s\" for at få den opførsel"
 
-#: ../cli.py:844
+#: ../cli.py:853
 #, python-format
 msgid "No Package Found for %s"
 msgstr "Ingen pakke fundet for %s"
 
-#: ../cli.py:856
+#: ../cli.py:865
 msgid "Cleaning up Everything"
 msgstr "Oprydning af alt"
 
-#: ../cli.py:870
+#: ../cli.py:879
 msgid "Cleaning up Headers"
 msgstr "Oprydning af headerfiler"
 
-#: ../cli.py:873
+#: ../cli.py:882
 msgid "Cleaning up Packages"
 msgstr "Oprydning af pakker"
 
-#: ../cli.py:876
+#: ../cli.py:885
 msgid "Cleaning up xml metadata"
 msgstr "Oprydning af xml-metadata"
 
-#: ../cli.py:879
+#: ../cli.py:888
 msgid "Cleaning up database cache"
 msgstr "Oprydning af mellemlager til database"
 
-#: ../cli.py:882
+#: ../cli.py:891
 msgid "Cleaning up expire-cache metadata"
 msgstr "Oprydning af udløbet mellemlager til metadata"
 
-#: ../cli.py:885
+#: ../cli.py:894
 msgid "Cleaning up plugins"
 msgstr "Oprydning af udvidelsesmoduler"
 
-#: ../cli.py:910
+#: ../cli.py:919
 msgid "Installed Groups:"
 msgstr "Installerede grupper:"
 
-#: ../cli.py:922
+#: ../cli.py:931
 msgid "Available Groups:"
 msgstr "Tilgængelige grupper:"
 
-#: ../cli.py:932
+#: ../cli.py:941
 msgid "Done"
 msgstr "Afsluttet"
 
-#: ../cli.py:943 ../cli.py:961 ../cli.py:967 ../yum/__init__.py:2463
+#: ../cli.py:952 ../cli.py:970 ../cli.py:976 ../yum/__init__.py:2521
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Advarsel: Gruppen %s findes ikke."
 
-#: ../cli.py:971
+#: ../cli.py:980
 msgid "No packages in any requested group available to install or update"
 msgstr ""
 "Ingen pakke i nogen de efterspurgte grupper, er tilgængelige til "
 "installation eller opdatering"
 
-#: ../cli.py:973
+#: ../cli.py:982
 #, python-format
 msgid "%d Package(s) to Install"
 msgstr "%d pakke(r) til installation"
 
-#: ../cli.py:983 ../yum/__init__.py:2475
+#: ../cli.py:992 ../yum/__init__.py:2533
 #, python-format
 msgid "No group named %s exists"
 msgstr "Gruppen %s findes ikke"
 
-#: ../cli.py:989
+#: ../cli.py:998
 msgid "No packages to remove from groups"
 msgstr "Ingen pakker at slette fra grupper"
 
-#: ../cli.py:991
+#: ../cli.py:1000
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d pakke(r) til sletning"
 
-#: ../cli.py:1033
+#: ../cli.py:1042
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "Pakken %s er allerede installeret, springer over"
 
-#: ../cli.py:1044
+#: ../cli.py:1053
 #, python-format
 msgid "Discarding non-comparable pkg %s.%s"
 msgstr "Ser bort fra ikke-kompatibel pakke %s.%s"
 
 #. we've not got any installed that match n or n+a
-#: ../cli.py:1070
+#: ../cli.py:1079
 #, python-format
 msgid "No other %s installed, adding to list for potential install"
 msgstr ""
 "Ingen andre %s er installeret, tilføjer til liste til mulig installation"
 
-#: ../cli.py:1090
+#: ../cli.py:1099
 msgid "Plugin Options"
 msgstr "Indstillinger til udvidelsesmodul"
 
-#: ../cli.py:1098
+#: ../cli.py:1107
 #, python-format
 msgid "Command line error: %s"
 msgstr "Kommandoliniefejl: %s"
 
-#: ../cli.py:1111
+#: ../cli.py:1120
 #, python-format
 msgid ""
 "\n"
@@ -373,257 +373,257 @@ msgstr ""
 "\n"
 "%s: %s indstilling kræver et argument"
 
-#: ../cli.py:1169
+#: ../cli.py:1173
 msgid "--color takes one of: auto, always, never"
 msgstr "--color tager en af: auto, altid, aldrig"
 
-#: ../cli.py:1276
+#: ../cli.py:1280
 msgid "show this help message and exit"
 msgstr "vis denne hjælpemeddelse og afslut"
 
-#: ../cli.py:1280
+#: ../cli.py:1284
 msgid "be tolerant of errors"
 msgstr "vær fejltolerant"
 
-#: ../cli.py:1282
+#: ../cli.py:1286
 msgid "run entirely from cache, don't update cache"
 msgstr "kør kun fra mellemlager, ingen opdatering af mellemlageret"
 
-#: ../cli.py:1284
+#: ../cli.py:1288
 msgid "config file location"
 msgstr "placering af konfigurationsfil"
 
-#: ../cli.py:1286
+#: ../cli.py:1290
 msgid "maximum command wait time"
 msgstr "maksimal ventetid på kommando"
 
-#: ../cli.py:1288
+#: ../cli.py:1292
 msgid "debugging output level"
 msgstr "debug-visningsniveau"
 
-#: ../cli.py:1292
+#: ../cli.py:1296
 msgid "show duplicates, in repos, in list/search commands"
 msgstr "vis gengangere, i pakkearkiver, i list/search-kommandoer"
 
-#: ../cli.py:1294
+#: ../cli.py:1298
 msgid "error output level"
 msgstr "fejlvisningsniveau"
 
-#: ../cli.py:1297
+#: ../cli.py:1301
 msgid "quiet operation"
 msgstr "stille operation"
 
-#: ../cli.py:1299
+#: ../cli.py:1303
 msgid "verbose operation"
 msgstr "uddybende operation"
 
-#: ../cli.py:1301
+#: ../cli.py:1305
 msgid "answer yes for all questions"
 msgstr "svar ja til alle spørgsmål"
 
-#: ../cli.py:1303
+#: ../cli.py:1307
 msgid "show Yum version and exit"
 msgstr "vis Yum-version og afslut"
 
-#: ../cli.py:1304
+#: ../cli.py:1308
 msgid "set install root"
 msgstr "sæt installationsroden"
 
-#: ../cli.py:1308
+#: ../cli.py:1312
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "aktivér en eller flere pakkearkiver (wildcards er tilladt)"
 
-#: ../cli.py:1312
+#: ../cli.py:1316
 msgid "disable one or more repositories (wildcards allowed)"
 msgstr "deaktivér en eller flere pakkearkiver (wildcards er tilladt)"
 
-#: ../cli.py:1315
+#: ../cli.py:1319
 msgid "exclude package(s) by name or glob"
 msgstr "ekskludér pakke(r) med navn eller klump"
 
-#: ../cli.py:1317
+#: ../cli.py:1321
 msgid "disable exclude from main, for a repo or for everything"
 msgstr "deaktivér ekskludering fra main, for et pakkearkiv eller for alt"
 
-#: ../cli.py:1320
+#: ../cli.py:1324
 msgid "enable obsoletes processing during updates"
 msgstr "aktivér overflødiggørelse under behandling af opdateringer"
 
-#: ../cli.py:1322
+#: ../cli.py:1326
 msgid "disable Yum plugins"
 msgstr "deaktivér Yum-udvidelsesmoduler"
 
-#: ../cli.py:1324
+#: ../cli.py:1328
 msgid "disable gpg signature checking"
 msgstr "deaktivér kontrol af gpg-signaturer"
 
-#: ../cli.py:1326
+#: ../cli.py:1330
 msgid "disable plugins by name"
 msgstr "deaktivér udvidelsesmoduler ved navn"
 
-#: ../cli.py:1329
+#: ../cli.py:1333
 msgid "enable plugins by name"
 msgstr "aktivér udvidelsesmoduler ved navn"
 
-#: ../cli.py:1332
+#: ../cli.py:1336
 msgid "skip packages with depsolving problems"
 msgstr "spring pakker med afhængighedsproblemer over"
 
-#: ../cli.py:1334
+#: ../cli.py:1338
 msgid "control whether color is used"
 msgstr "kontrollér om farve er brugt"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "Jan"
 msgstr "Jan"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "Feb"
 msgstr "Feb"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "Mar"
 msgstr "Mar"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "Apr"
 msgstr "Apr"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "May"
 msgstr "Maj"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "Jun"
 msgstr "Jun"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Jul"
 msgstr "Jul"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Aug"
 msgstr "Aug"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Sep"
 msgstr "Sep"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Oct"
 msgstr "Okt"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Nov"
 msgstr "Nov"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Dec"
 msgstr "Dec"
 
-#: ../output.py:312
+#: ../output.py:314
 msgid "Trying other mirror."
 msgstr "Prøver et andet filspejl."
 
-#: ../output.py:534
+#: ../output.py:536
 #, python-format
 msgid "Name       : %s%s%s"
 msgstr "Navn       : %s%s%s"
 
-#: ../output.py:535
+#: ../output.py:537
 #, python-format
 msgid "Arch       : %s"
 msgstr "Arkitektur       : %s"
 
-#: ../output.py:537
+#: ../output.py:539
 #, python-format
 msgid "Epoch      : %s"
 msgstr "Epoch      : %s"
 
-#: ../output.py:538
+#: ../output.py:540
 #, python-format
 msgid "Version    : %s"
 msgstr "Version    : %s"
 
-#: ../output.py:539
+#: ../output.py:541
 #, python-format
 msgid "Release    : %s"
 msgstr "Udgivelse    : %s"
 
-#: ../output.py:540
+#: ../output.py:542
 #, python-format
 msgid "Size       : %s"
 msgstr "Størrelse       : %s"
 
-#: ../output.py:541
+#: ../output.py:543
 #, python-format
 msgid "Repo       : %s"
 msgstr "Kilde      : %s"
 
-#: ../output.py:543
+#: ../output.py:545
 #, python-format
 msgid "From repo  : %s"
 msgstr "Fra kilde    : %s"
 
-#: ../output.py:545
+#: ../output.py:547
 #, python-format
 msgid "Committer  : %s"
 msgstr "Indsender  : %s"
 
-#: ../output.py:546
+#: ../output.py:548
 #, python-format
 msgid "Committime : %s"
 msgstr "Indsendingstid  : %s"
 
-#: ../output.py:547
+#: ../output.py:549
 #, python-format
 msgid "Buildtime  : %s"
 msgstr "Byggetid  : %s"
 
-#: ../output.py:549
+#: ../output.py:551
 #, python-format
 msgid "Installtime: %s"
 msgstr "Installationstid: %s"
 
-#: ../output.py:550
+#: ../output.py:552
 msgid "Summary    : "
 msgstr "Resumé    : "
 
-#: ../output.py:552
+#: ../output.py:554
 #, python-format
 msgid "URL        : %s"
 msgstr "URL        : %s"
 
-#: ../output.py:553
+#: ../output.py:555
 #, python-format
 msgid "License    : %s"
 msgstr "Licens     : %s"
 
-#: ../output.py:554
+#: ../output.py:556
 msgid "Description: "
 msgstr "Beskrivelse: "
 
-#: ../output.py:622
+#: ../output.py:624
 msgid "y"
 msgstr "j"
 
-#: ../output.py:622
+#: ../output.py:624
 msgid "yes"
 msgstr "ja"
 
-#: ../output.py:623
+#: ../output.py:625
 msgid "n"
 msgstr "n"
 
-#: ../output.py:623
+#: ../output.py:625
 msgid "no"
 msgstr "nej"
 
-#: ../output.py:627
+#: ../output.py:629
 msgid "Is this ok [y/N]: "
 msgstr "Er dette o.k. [j/N]: "
 
-#: ../output.py:718
+#: ../output.py:720
 #, python-format
 msgid ""
 "\n"
@@ -632,133 +632,133 @@ msgstr ""
 "\n"
 "Gruppe: %s"
 
-#: ../output.py:722
+#: ../output.py:724
 #, python-format
 msgid " Group-Id: %s"
 msgstr " Gruppeid: %s"
 
-#: ../output.py:727
+#: ../output.py:729
 #, python-format
 msgid " Description: %s"
 msgstr " Beskrivelse: %s"
 
-#: ../output.py:729
+#: ../output.py:731
 msgid " Mandatory Packages:"
 msgstr " Tvungne pakker:"
 
-#: ../output.py:730
+#: ../output.py:732
 msgid " Default Packages:"
 msgstr " Standardpakker:"
 
-#: ../output.py:731
+#: ../output.py:733
 msgid " Optional Packages:"
 msgstr " Valgfrie pakker:"
 
-#: ../output.py:732
+#: ../output.py:734
 msgid " Conditional Packages:"
 msgstr " Afhængige pakker:"
 
-#: ../output.py:752
+#: ../output.py:754
 #, python-format
 msgid "package: %s"
 msgstr "pakke: %s"
 
-#: ../output.py:754
+#: ../output.py:756
 msgid "  No dependencies for this package"
 msgstr "  Ingen afhængigheder for denne pakke"
 
-#: ../output.py:759
+#: ../output.py:761
 #, python-format
 msgid "  dependency: %s"
 msgstr "  afhængighed: %s"
 
-#: ../output.py:761
+#: ../output.py:763
 msgid "   Unsatisfied dependency"
 msgstr "   Ufuldendt afhængighed"
 
-#: ../output.py:833
+#: ../output.py:835
 #, python-format
 msgid "Repo        : %s"
 msgstr "Kilde       : %s"
 
-#: ../output.py:834
+#: ../output.py:836
 msgid "Matched from:"
 msgstr "Matchet af:"
 
-#: ../output.py:842
+#: ../output.py:845
 msgid "Description : "
 msgstr "Beskrivelse : "
 
-#: ../output.py:845
+#: ../output.py:848
 #, python-format
 msgid "URL         : %s"
 msgstr "URL         : %s"
 
-#: ../output.py:848
+#: ../output.py:851
 #, python-format
 msgid "License     : %s"
 msgstr "Licens      : %s"
 
-#: ../output.py:851
+#: ../output.py:854
 #, python-format
 msgid "Filename    : %s"
 msgstr "Filnavn     : %s"
 
-#: ../output.py:855
+#: ../output.py:858
 msgid "Other       : "
 msgstr "Andre       : "
 
-#: ../output.py:888
+#: ../output.py:891
 msgid "There was an error calculating total download size"
 msgstr "Der opstod en fejl i beregning af den totale hentningsstørrelse"
 
-#: ../output.py:893
+#: ../output.py:896
 #, python-format
 msgid "Total size: %s"
 msgstr "Total størrelse: %s"
 
-#: ../output.py:896
+#: ../output.py:899
 #, python-format
 msgid "Total download size: %s"
 msgstr "Total hentningsstørrelse: %s"
 
-#: ../output.py:938
+#: ../output.py:941
 msgid "Installing for dependencies"
 msgstr "Installerer til afhængigheder"
 
-#: ../output.py:939
+#: ../output.py:942
 msgid "Updating for dependencies"
 msgstr "Opdaterer til afhængigheder"
 
-#: ../output.py:940
+#: ../output.py:943
 msgid "Removing for dependencies"
 msgstr "Sletter til afhængigheder"
 
-#: ../output.py:947 ../output.py:1045
+#: ../output.py:950 ../output.py:1048
 msgid "Skipped (dependency problems)"
 msgstr "Sprunget over (afhængighedsproblemer)"
 
-#: ../output.py:968
+#: ../output.py:971
 msgid "Package"
 msgstr "Pakke"
 
-#: ../output.py:968
+#: ../output.py:971
 msgid "Arch"
 msgstr "Arkitektur"
 
-#: ../output.py:969
+#: ../output.py:972
 msgid "Version"
 msgstr "Version"
 
-#: ../output.py:969
+#: ../output.py:972
 msgid "Repository"
 msgstr "Pakkearkiv"
 
-#: ../output.py:970
+#: ../output.py:973
 msgid "Size"
 msgstr "Størrelse"
 
-#: ../output.py:982
+#: ../output.py:985
 #, python-format
 msgid ""
 "     replacing  %s%s%s.%s %s\n"
@@ -767,7 +767,7 @@ msgstr ""
 "     erstatter  %s%s%s.%s %s\n"
 "\n"
 
-#: ../output.py:991
+#: ../output.py:994
 #, python-format
 msgid ""
 "\n"
@@ -784,32 +784,32 @@ msgstr ""
 "Opdaterer    %5.5s pakke(r)         \n"
 "Sletter      %5.5s pakke(r)         \n"
 
-#: ../output.py:1039
+#: ../output.py:1042
 msgid "Removed"
 msgstr "Slettet"
 
-#: ../output.py:1040
+#: ../output.py:1043
 msgid "Dependency Removed"
 msgstr "Afhængighed slettet"
 
-#: ../output.py:1042
+#: ../output.py:1045
 msgid "Dependency Installed"
 msgstr "Afhængighed installeret"
 
-#: ../output.py:1044
+#: ../output.py:1047
 msgid "Dependency Updated"
 msgstr "Afhængighed opdateret"
 
-#: ../output.py:1046
+#: ../output.py:1049
 msgid "Replaced"
 msgstr "Erstattet"
 
-#: ../output.py:1047
+#: ../output.py:1050
 msgid "Failed"
 msgstr "Fejlede"
 
 #. Delta between C-c's so we treat as exit
-#: ../output.py:1113
+#: ../output.py:1116
 msgid "two"
 msgstr "to"
 
@@ -817,7 +817,7 @@ msgstr "to"
 #. Current download cancelled, interrupt (ctrl-c) again within two seconds
 #. to exit.
 #. Where "interupt (ctrl-c) again" and "two" are highlighted.
-#: ../output.py:1124
+#: ../output.py:1127
 #, python-format
 msgid ""
 "\n"
@@ -828,67 +828,67 @@ msgstr ""
 " Nuværende hentning afbrudt, %safbryd (ctrl-c) igen %s indenfor %s%s%s "
 "sekunder for at afslutte.\n"
 
-#: ../output.py:1134
+#: ../output.py:1137
 msgid "user interrupt"
 msgstr "afsluttet af bruger"
 
-#: ../output.py:1150
+#: ../output.py:1153
 msgid "Total"
 msgstr "Ialt"
 
-#: ../output.py:1164
+#: ../output.py:1168
 msgid "installed"
 msgstr "installeret"
 
-#: ../output.py:1165
+#: ../output.py:1169
 msgid "updated"
 msgstr "opdateret"
 
-#: ../output.py:1166
+#: ../output.py:1170
 msgid "obsoleted"
 msgstr "overflødiggjort"
 
-#: ../output.py:1167
+#: ../output.py:1171
 msgid "erased"
 msgstr "slettet"
 
-#: ../output.py:1171
+#: ../output.py:1175
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> Pakke %s.%s %s:%s-%s sat til at blive %s"
 
-#: ../output.py:1178
+#: ../output.py:1182
 msgid "--> Running transaction check"
 msgstr "--> Kører overførselskontrol"
 
-#: ../output.py:1183
+#: ../output.py:1187
 msgid "--> Restarting Dependency Resolution with new changes."
 msgstr "--> Genstarter afhængighedssøgning med nye ændringer."
 
-#: ../output.py:1188
+#: ../output.py:1192
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Afsluttede afhængighedssøgningen"
 
-#: ../output.py:1193
+#: ../output.py:1197 ../output.py:1202
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> Behandler afhængighed: %s for pakken: %s"
 
-#: ../output.py:1198
+#: ../output.py:1206
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Ikke fundet afhængighed: %s"
 
-#: ../output.py:1204
+#: ../output.py:1212 ../output.py:1217
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> Behandler konflikt: %s konflikter med %s"
 
-#: ../output.py:1207
+#: ../output.py:1221
 msgid "--> Populating transaction set with selected packages. Please wait."
 msgstr "--> Udfylder overførselssættet med valgte pakker. Vent venligst."
 
-#: ../output.py:1211
+#: ../output.py:1225
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
 msgstr "---> Henter headerfil for %s til at indsætte i overførselssættet."
@@ -1015,7 +1015,7 @@ msgid "Updated Packages"
 msgstr "Opdaterede pakker"
 
 #. This only happens in verbose mode
-#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:601
+#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:600
 msgid "Obsoleting Packages"
 msgstr "Overflødiggør pakker"
 
@@ -1084,158 +1084,158 @@ msgstr "Mellemlager for metadata oprettet"
 msgid "Remove cached data"
 msgstr "Sletter data fra cachen"
 
-#: ../yumcommands.py:552
+#: ../yumcommands.py:551
 msgid "Find what package provides the given value"
 msgstr "Finder pakker som leverer en given værdi"
 
-#: ../yumcommands.py:572
+#: ../yumcommands.py:571
 msgid "Check for available package updates"
 msgstr "Kontrol af tilgængelige pakkeopdateringer"
 
-#: ../yumcommands.py:621
+#: ../yumcommands.py:620
 msgid "Search package details for the given string"
 msgstr "Søger efter en given streng i pakkeinformationerne"
 
-#: ../yumcommands.py:627
+#: ../yumcommands.py:626
 msgid "Searching Packages: "
 msgstr "Søger i pakkerne: "
 
-#: ../yumcommands.py:644
+#: ../yumcommands.py:643
 msgid "Update packages taking obsoletes into account"
 msgstr "Opdaterer pakker, tager hensyn til overflødiggjorte pakker"
 
-#: ../yumcommands.py:652
+#: ../yumcommands.py:651
 msgid "Setting up Upgrade Process"
 msgstr "Opsætning af opgraderingsprocessen"
 
-#: ../yumcommands.py:666
+#: ../yumcommands.py:665
 msgid "Install a local RPM"
 msgstr "Installer en lokal RPM-fil"
 
-#: ../yumcommands.py:674
+#: ../yumcommands.py:673
 msgid "Setting up Local Package Process"
 msgstr "Opsætning af lokalpakkeprocessen"
 
-#: ../yumcommands.py:693
+#: ../yumcommands.py:692
 msgid "Determine which package provides the given dependency"
 msgstr "Bestem hvilken pakke som leverer en bestemt afhængighed"
 
-#: ../yumcommands.py:696
+#: ../yumcommands.py:695
 msgid "Searching Packages for Dependency:"
 msgstr "Søger efter afhængighed i pakkerne:"
 
-#: ../yumcommands.py:710
+#: ../yumcommands.py:709
 msgid "Run an interactive yum shell"
 msgstr "Kør en interaktiv Yum-skal"
 
-#: ../yumcommands.py:716
+#: ../yumcommands.py:715
 msgid "Setting up Yum Shell"
 msgstr "Opsætning af Yum-skal"
 
-#: ../yumcommands.py:734
+#: ../yumcommands.py:733
 msgid "List a package's dependencies"
 msgstr "Viser en pakkes afhængigheder"
 
-#: ../yumcommands.py:740
+#: ../yumcommands.py:739
 msgid "Finding dependencies: "
 msgstr "Finder afhængigheder: "
 
-#: ../yumcommands.py:756
+#: ../yumcommands.py:755
 msgid "Display the configured software repositories"
 msgstr "Viser de konfigurerede pakkearkiver"
 
-#: ../yumcommands.py:804 ../yumcommands.py:805
+#: ../yumcommands.py:803 ../yumcommands.py:804
 msgid "enabled"
 msgstr "aktiveret"
 
-#: ../yumcommands.py:813 ../yumcommands.py:814
+#: ../yumcommands.py:812 ../yumcommands.py:813
 msgid "disabled"
 msgstr "deaktiveret"
 
-#: ../yumcommands.py:828
+#: ../yumcommands.py:827
 msgid "Repo-id     : "
 msgstr "Kildeid     : "
 
-#: ../yumcommands.py:829
+#: ../yumcommands.py:828
 msgid "Repo-name   : "
 msgstr "Kildenavn   : "
 
-#: ../yumcommands.py:830
+#: ../yumcommands.py:829
 msgid "Repo-status : "
 msgstr "Kildestatus : "
 
-#: ../yumcommands.py:832
+#: ../yumcommands.py:831
 msgid "Repo-revision: "
 msgstr "Kilderevision: "
 
-#: ../yumcommands.py:836
+#: ../yumcommands.py:835
 msgid "Repo-tags   : "
 msgstr "Kildeflag   : "
 
-#: ../yumcommands.py:842
+#: ../yumcommands.py:841
 msgid "Repo-distro-tags: "
 msgstr "Kildedistroflag: "
 
-#: ../yumcommands.py:847
+#: ../yumcommands.py:846
 msgid "Repo-updated: "
 msgstr "Kildeopdateret: "
 
-#: ../yumcommands.py:849
+#: ../yumcommands.py:848
 msgid "Repo-pkgs   : "
 msgstr "Kildepakker   : "
 
-#: ../yumcommands.py:850
+#: ../yumcommands.py:849
 msgid "Repo-size   : "
 msgstr "Kildestørrelse   : "
 
-#: ../yumcommands.py:857
+#: ../yumcommands.py:856
 msgid "Repo-baseurl: "
 msgstr "Kildegrundurl: "
 
-#: ../yumcommands.py:861
+#: ../yumcommands.py:864
 msgid "Repo-metalink: "
 msgstr "Kildemetahenvisning: "
 
-#: ../yumcommands.py:865
+#: ../yumcommands.py:868
 msgid "  Updated    : "
 msgstr "  Opdateret    : "
 
-#: ../yumcommands.py:868
+#: ../yumcommands.py:871
 msgid "Repo-mirrors: "
 msgstr "Kildespejle: "
 
-#: ../yumcommands.py:872
+#: ../yumcommands.py:875
 msgid "Repo-exclude: "
 msgstr "Kildeekskluder: "
 
-#: ../yumcommands.py:876
+#: ../yumcommands.py:879
 msgid "Repo-include: "
 msgstr "Kildeinkluder: "
 
 #. Work out the first (id) and last (enabled/disalbed/count),
 #. then chop the middle (name)...
-#: ../yumcommands.py:886 ../yumcommands.py:912
+#: ../yumcommands.py:889 ../yumcommands.py:915
 msgid "repo id"
 msgstr "kildeid"
 
-#: ../yumcommands.py:900 ../yumcommands.py:901 ../yumcommands.py:915
+#: ../yumcommands.py:903 ../yumcommands.py:904 ../yumcommands.py:918
 msgid "status"
 msgstr "status"
 
-#: ../yumcommands.py:913
+#: ../yumcommands.py:916
 msgid "repo name"
 msgstr "kildenavn"
 
-#: ../yumcommands.py:939
+#: ../yumcommands.py:942
 msgid "Display a helpful usage message"
 msgstr "Viser hjælp om brugen af en kommando"
 
-#: ../yumcommands.py:973
+#: ../yumcommands.py:976
 #, python-format
 msgid "No help available for %s"
 msgstr "Ingen tilgængelig hjælp til %s"
 
-#: ../yumcommands.py:978
+#: ../yumcommands.py:981
 msgid ""
 "\n"
 "\n"
@@ -1245,7 +1245,7 @@ msgstr ""
 "\n"
 "aliaser: "
 
-#: ../yumcommands.py:980
+#: ../yumcommands.py:983
 msgid ""
 "\n"
 "\n"
@@ -1255,26 +1255,34 @@ msgstr ""
 "\n"
 "alias: "
 
-#: ../yumcommands.py:1008
+#: ../yumcommands.py:1011
 msgid "Setting up Reinstall Process"
 msgstr "Opsætning af geninstallationsprocessen"
 
-#: ../yumcommands.py:1017
-msgid "Package(s) to reinstall"
-msgstr "Pakke(r) til geninstallation"
-
-#: ../yumcommands.py:1024
+#: ../yumcommands.py:1019
 msgid "reinstall a package"
 msgstr "geninstallér en pakke"
 
-#: ../yumcommands.py:1042
+#: ../yumcommands.py:1037
 msgid "Setting up Downgrade Process"
 msgstr "Opsætning af nedgraderingsprocessen"
 
-#: ../yumcommands.py:1049
+#: ../yumcommands.py:1044
 msgid "downgrade a package"
 msgstr "nedgradér en pakke"
 
+#: ../yumcommands.py:1058
+msgid "Display a version for the machine and/or available repos."
+msgstr "Vis en version for maskinen og/eller tilgængelige pakkearkiver."
+
+#: ../yumcommands.py:1081
+msgid "Installed:"
+msgstr "Installeret:"
+
+#: ../yumcommands.py:1090
+msgid "Available:"
+msgstr "Tilgængelige:"
+
 #: ../yummain.py:42
 msgid ""
 "\n"
@@ -1432,7 +1440,7 @@ msgstr "Matchede %s som afhængighed for %s"
 msgid "Member: %s"
 msgstr "Medlem: %s"
 
-#: ../yum/depsolve.py:247 ../yum/depsolve.py:739
+#: ../yum/depsolve.py:247 ../yum/depsolve.py:760
 #, python-format
 msgid "%s converted to install"
 msgstr "%s konverteret til installation"
@@ -1447,148 +1455,148 @@ msgstr "Tilføjer pakke %s i mode %s"
 msgid "Removing Package %s"
 msgstr "Sletter Pakke %s"
 
-#: ../yum/depsolve.py:275
+#: ../yum/depsolve.py:286
 #, python-format
 msgid "%s requires: %s"
 msgstr "%s behøver: %s"
 
-#: ../yum/depsolve.py:333
+#: ../yum/depsolve.py:344
 msgid "Needed Require has already been looked up, cheating"
 msgstr "Afhængighed fundet tidligere, snyder"
 
-#: ../yum/depsolve.py:343
+#: ../yum/depsolve.py:354
 #, python-format
 msgid "Needed Require is not a package name. Looking up: %s"
 msgstr "Afhængighed er ikke et pakkenavn. Søger efter: %s"
 
-#: ../yum/depsolve.py:350
+#: ../yum/depsolve.py:361
 #, python-format
 msgid "Potential Provider: %s"
 msgstr "Mulig udbyder: %s"
 
-#: ../yum/depsolve.py:373
+#: ../yum/depsolve.py:384
 #, python-format
 msgid "Mode is %s for provider of %s: %s"
 msgstr "Tilstand er %s for udbyder af %s: %s"
 
-#: ../yum/depsolve.py:377
+#: ../yum/depsolve.py:388
 #, python-format
 msgid "Mode for pkg providing %s: %s"
 msgstr "Tilstand for pakke som leverer  %s: %s"
 
-#: ../yum/depsolve.py:381
+#: ../yum/depsolve.py:392
 #, python-format
 msgid "TSINFO: %s package requiring %s marked as erase"
 msgstr "TSINFO: %s pakker som behøver %s markeret til sletning"
 
-#: ../yum/depsolve.py:394
+#: ../yum/depsolve.py:405
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
 msgstr "TSINFO: Overflødiggør %s med %s for at finde afhængighed."
 
-#: ../yum/depsolve.py:397
+#: ../yum/depsolve.py:408
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
 msgstr "TSINFO: Opdaterer %s for at opfylde afhængighed."
 
-#: ../yum/depsolve.py:405
+#: ../yum/depsolve.py:416
 #, python-format
 msgid "Cannot find an update path for dep for: %s"
 msgstr "Kan ikke finde en opdateringsvej for afhængigheden for: %s"
 
-#: ../yum/depsolve.py:415
+#: ../yum/depsolve.py:426
 #, python-format
 msgid "Unresolvable requirement %s for %s"
 msgstr "Uløst afhængighed %s for %s"
 
-#: ../yum/depsolve.py:438
+#: ../yum/depsolve.py:449
 #, python-format
 msgid "Quick matched %s to require for %s"
 msgstr "Hurtigmatchede %s som afhængighed for %s"
 
 #. is it already installed?
-#: ../yum/depsolve.py:480
+#: ../yum/depsolve.py:491
 #, python-format
 msgid "%s is in providing packages but it is already installed, removing."
 msgstr "%s er i udbydet pakker, men er allerede installeret, fjerner."
 
-#: ../yum/depsolve.py:496
+#: ../yum/depsolve.py:507
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
 msgstr "Mulig løsningspakke %s har en nyere udgave i ts."
 
-#: ../yum/depsolve.py:507
+#: ../yum/depsolve.py:518
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
 msgstr "Mulig løsningspakke %s har en nyere udgave installeret."
 
-#: ../yum/depsolve.py:515 ../yum/depsolve.py:564
+#: ../yum/depsolve.py:526 ../yum/depsolve.py:575
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "Manglende afhængighed: %s behøves af følgende pakke %s"
 
-#: ../yum/depsolve.py:528
+#: ../yum/depsolve.py:539
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s er allerede i ts, springer den over"
 
-#: ../yum/depsolve.py:574
+#: ../yum/depsolve.py:585
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: Markerer %s som en opdatering for %s"
 
-#: ../yum/depsolve.py:582
+#: ../yum/depsolve.py:593
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: Markerer %s til installerer for %s"
 
-#: ../yum/depsolve.py:675 ../yum/depsolve.py:757
+#: ../yum/depsolve.py:696 ../yum/depsolve.py:778
 msgid "Success - empty transaction"
 msgstr "Succes -- tom overførsel"
 
-#: ../yum/depsolve.py:714 ../yum/depsolve.py:729
+#: ../yum/depsolve.py:735 ../yum/depsolve.py:750
 msgid "Restarting Loop"
 msgstr "Genstarter løkke"
 
-#: ../yum/depsolve.py:745
+#: ../yum/depsolve.py:766
 msgid "Dependency Process ending"
 msgstr "Afhængighedsproces afslutter"
 
-#: ../yum/depsolve.py:751
+#: ../yum/depsolve.py:772
 #, python-format
 msgid "%s from %s has depsolving problems"
 msgstr "%s fra %s har afhængighedsproblemer"
 
-#: ../yum/depsolve.py:758
+#: ../yum/depsolve.py:779
 msgid "Success - deps resolved"
 msgstr "Succes - afhængigheder løst"
 
-#: ../yum/depsolve.py:772
+#: ../yum/depsolve.py:793
 #, python-format
 msgid "Checking deps for %s"
 msgstr "Kontrollerer afhængigheder for %s"
 
-#: ../yum/depsolve.py:855
+#: ../yum/depsolve.py:876
 #, python-format
 msgid "looking for %s as a requirement of %s"
 msgstr "søger efter %s som afhængighed for %s"
 
-#: ../yum/depsolve.py:997
+#: ../yum/depsolve.py:1018
 #, python-format
 msgid "Running compare_providers() for %s"
 msgstr "Kører compare_providers() for %s"
 
-#: ../yum/depsolve.py:1031 ../yum/depsolve.py:1037
+#: ../yum/depsolve.py:1052 ../yum/depsolve.py:1058
 #, python-format
 msgid "better arch in po %s"
 msgstr "bedre arkitektur i po %s"
 
-#: ../yum/depsolve.py:1099
+#: ../yum/depsolve.py:1130
 #, python-format
 msgid "%s obsoletes %s"
 msgstr "%s overflødigør %s"
 
-#: ../yum/depsolve.py:1111
+#: ../yum/depsolve.py:1142
 #, python-format
 msgid ""
 "archdist compared %s to %s on %s\n"
@@ -1597,17 +1605,17 @@ msgstr ""
 "arkitekturdistribution sammenligner %s med %s på %s\n"
 "  Vinder: %s"
 
-#: ../yum/depsolve.py:1118
+#: ../yum/depsolve.py:1149
 #, python-format
 msgid "common sourcerpm %s and %s"
 msgstr "normal kilde-RPM %s og %s"
 
-#: ../yum/depsolve.py:1124
+#: ../yum/depsolve.py:1155
 #, python-format
 msgid "common prefix of %s between %s and %s"
 msgstr "normal præfiks af %s mellem %s og %s"
 
-#: ../yum/depsolve.py:1132
+#: ../yum/depsolve.py:1163
 #, python-format
 msgid "Best Order: %s"
 msgstr "Bedste orden: %s"
@@ -1633,67 +1641,67 @@ msgstr "doRpmDBSetup() vil forsvinde i en fremtidig version af Yum.\n"
 msgid "Reading Local RPMDB"
 msgstr "Læser lokal RPMDB"
 
-#: ../yum/__init__.py:441
+#: ../yum/__init__.py:444
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() vil forsvinde i en fremtidig version af Yum.\n"
 
-#: ../yum/__init__.py:461
+#: ../yum/__init__.py:464
 msgid "doSackSetup() will go away in a future version of Yum.\n"
 msgstr "doSackSetup() vil forsvinde i en fremtidig version af Yum.\n"
 
-#: ../yum/__init__.py:478
+#: ../yum/__init__.py:481
 msgid "Setting up Package Sacks"
 msgstr "Opsætning af pakkelister"
 
-#: ../yum/__init__.py:521
+#: ../yum/__init__.py:524
 #, python-format
 msgid "repo object for repo %s lacks a _resetSack method\n"
 msgstr "kildeobjekt for kilde %s mangler en _resetSack-metode\n"
 
-#: ../yum/__init__.py:522
+#: ../yum/__init__.py:525
 msgid "therefore this repo cannot be reset.\n"
 msgstr "derfor kan dette pakkearkiv ikke blive nulstillet.\n"
 
-#: ../yum/__init__.py:527
+#: ../yum/__init__.py:530
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
 msgstr "doUpdateSetup() vil forsvinde i en fremtidig version af Yum.\n"
 
-#: ../yum/__init__.py:539
+#: ../yum/__init__.py:542
 msgid "Building updates object"
 msgstr "Bygger opdateringsobjekt"
 
-#: ../yum/__init__.py:570
+#: ../yum/__init__.py:573
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
 msgstr "doGroupSetup() vil forsvinde i en fremtidig version af Yum.\n"
 
-#: ../yum/__init__.py:595
+#: ../yum/__init__.py:598
 msgid "Getting group metadata"
 msgstr "Henter gruppemetadata"
 
-#: ../yum/__init__.py:621
+#: ../yum/__init__.py:624
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "Tilfører gruppefil fra pakkearkiv: %s"
 
-#: ../yum/__init__.py:630
+#: ../yum/__init__.py:633
 #, python-format
 msgid "Failed to add groups file for repository: %s - %s"
 msgstr "Tilføjelse af gruppefil fejlede for følgende pakkearkiv: %s - %s"
 
-#: ../yum/__init__.py:636
+#: ../yum/__init__.py:639
 msgid "No Groups Available in any repository"
 msgstr "Ingen tilgængelige grupper i noget pakkearkiv"
 
-#: ../yum/__init__.py:686
+#: ../yum/__init__.py:689
 msgid "Importing additional filelist information"
 msgstr "Importerer yderligere information om filliste"
 
-#: ../yum/__init__.py:700
+#: ../yum/__init__.py:703
 #, python-format
 msgid "The program %s%s%s is found in the yum-utils package."
 msgstr "Programmet %s%s%s er fundet i yum-utils-pakken."
 
-#: ../yum/__init__.py:708
+#: ../yum/__init__.py:711
 msgid ""
 "There are unfinished transactions remaining. You might consider running yum-"
 "complete-transaction first to finish them."
@@ -1701,17 +1709,17 @@ msgstr ""
 "Der er uafsluttede overførsler tilbage. Du bør overveje at køre yum-complete-"
 "transaction først for at afslutte dem."
 
-#: ../yum/__init__.py:775
+#: ../yum/__init__.py:779
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Skip-broken runde %i"
 
-#: ../yum/__init__.py:827
+#: ../yum/__init__.py:831
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr "Skip-broken tog %i runder "
 
-#: ../yum/__init__.py:828
+#: ../yum/__init__.py:832
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1719,90 +1727,104 @@ msgstr ""
 "\n"
 "Pakker sprunget over på grund af problemer med afhængigheder:"
 
-#: ../yum/__init__.py:832
+#: ../yum/__init__.py:836
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s fra %s"
 
-#: ../yum/__init__.py:972
+#: ../yum/__init__.py:976
 msgid ""
 "Warning: scriptlet or other non-fatal errors occurred during transaction."
 msgstr ""
 "Advarsel: skriptlet eller andre ikke-fatale fejl opstod under overførslen."
 
-#: ../yum/__init__.py:987
+#: ../yum/__init__.py:991
 #, python-format
 msgid "Failed to remove transaction file %s"
 msgstr "Kunne ikke slette transaktionsfilen %s"
 
-#: ../yum/__init__.py:1051
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1020
+#, python-format
+msgid "%s was supposed to be installed but is not!"
+msgstr "%s skulle være blevet installeret, men det blev den ikke!"
+
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1046
+#, python-format
+msgid "%s was supposed to be removed but is not!"
+msgstr "%s skulle være blevet fjernet, men det blev den ikke!"
+
+#: ../yum/__init__.py:1092
 #, python-format
 msgid "excluding for cost: %s from %s"
 msgstr "ekskluderer for cost: %s fra %s"
 
-#: ../yum/__init__.py:1082
+#: ../yum/__init__.py:1123
 msgid "Excluding Packages in global exclude list"
 msgstr "Ekskluderer pakker i den globale ekskluderingsliste"
 
-#: ../yum/__init__.py:1084
+#: ../yum/__init__.py:1125
 #, python-format
 msgid "Excluding Packages from %s"
 msgstr "Ekskluderer pakker fra %s"
 
-#: ../yum/__init__.py:1113
+#: ../yum/__init__.py:1154
 #, python-format
 msgid "Reducing %s to included packages only"
 msgstr "Reducerer %s til kun at indholde inkluderede pakker"
 
-#: ../yum/__init__.py:1119
+#: ../yum/__init__.py:1160
 #, python-format
 msgid "Keeping included package %s"
 msgstr "Beholder inkluderet pakke %s"
 
-#: ../yum/__init__.py:1125
+#: ../yum/__init__.py:1166
 #, python-format
 msgid "Removing unmatched package %s"
 msgstr "Sletter umatchende pakke %s"
 
-#: ../yum/__init__.py:1128
+#: ../yum/__init__.py:1169
 msgid "Finished"
 msgstr "Afsluttet"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:1158
+#: ../yum/__init__.py:1199
 #, python-format
 msgid "Unable to check if PID %s is active"
 msgstr "Kunne ikke kontrollere om PID %s er aktiv"
 
 #. Another copy seems to be running.
-#: ../yum/__init__.py:1162
+#: ../yum/__init__.py:1203
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
 msgstr "Lås fundet %s: en anden kopi kører som PID %s."
 
-#: ../yum/__init__.py:1239
+#: ../yum/__init__.py:1280
 msgid "Package does not match intended download"
 msgstr "Pakken matcher ikke den planlagte nedhentning"
 
-#: ../yum/__init__.py:1254
+#: ../yum/__init__.py:1295
 msgid "Could not perform checksum"
 msgstr "Kunne ikke udføre checksum"
 
-#: ../yum/__init__.py:1257
+#: ../yum/__init__.py:1298
 msgid "Package does not match checksum"
 msgstr "Pakken matcher ikke checksum"
 
-#: ../yum/__init__.py:1299
+#: ../yum/__init__.py:1340
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
 msgstr "pakken fejlede checksum, men mellemlagring er aktiveret for %s"
 
-#: ../yum/__init__.py:1302 ../yum/__init__.py:1331
+#: ../yum/__init__.py:1343 ../yum/__init__.py:1372
 #, python-format
 msgid "using local copy of %s"
 msgstr "bruger lokal kopi af %s"
 
-#: ../yum/__init__.py:1343
+#: ../yum/__init__.py:1384
 #, python-format
 msgid ""
 "Insufficient space in download directory %s\n"
@@ -1813,11 +1835,11 @@ msgstr ""
 "    * fri     %s\n"
 "    * behøvet %s"
 
-#: ../yum/__init__.py:1390
+#: ../yum/__init__.py:1433
 msgid "Header is not complete."
 msgstr "Headerfil er ikke komplet."
 
-#: ../yum/__init__.py:1427
+#: ../yum/__init__.py:1470
 #, python-format
 msgid ""
 "Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1825,62 +1847,62 @@ msgstr ""
 "Headerfil er ikke i lokal cache og kun-caching-tilstand er aktiveret. Kan "
 "ikke hente %s"
 
-#: ../yum/__init__.py:1482
+#: ../yum/__init__.py:1525
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "Offentlig nøgle for %s er ikke installeret"
 
-#: ../yum/__init__.py:1486
+#: ../yum/__init__.py:1529
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Kunne ikke åbne pakke %s"
 
-#: ../yum/__init__.py:1494
+#: ../yum/__init__.py:1537
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "Offentlig nøgle for %s er ikke sikker"
 
-#: ../yum/__init__.py:1498
+#: ../yum/__init__.py:1541
 #, python-format
 msgid "Package %s is not signed"
 msgstr "Pakken %s er ikke signeret"
 
-#: ../yum/__init__.py:1536
+#: ../yum/__init__.py:1579
 #, python-format
 msgid "Cannot remove %s"
 msgstr "Kan ikke slette %s"
 
-#: ../yum/__init__.py:1540
+#: ../yum/__init__.py:1583
 #, python-format
 msgid "%s removed"
 msgstr "%s slettet"
 
-#: ../yum/__init__.py:1576
+#: ../yum/__init__.py:1619
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "Kan ikke slette %s filen %s"
 
-#: ../yum/__init__.py:1580
+#: ../yum/__init__.py:1623
 #, python-format
 msgid "%s file %s removed"
 msgstr "%s filen %s er slettet"
 
-#: ../yum/__init__.py:1582
+#: ../yum/__init__.py:1625
 #, python-format
 msgid "%d %s files removed"
 msgstr "%d %s filer slettet"
 
-#: ../yum/__init__.py:1651
+#: ../yum/__init__.py:1694
 #, python-format
 msgid "More than one identical match in sack for %s"
 msgstr "Mere end et identisk match i liste for %s"
 
-#: ../yum/__init__.py:1657
+#: ../yum/__init__.py:1700
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "Ingen opdateringer matcher %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:1875
+#: ../yum/__init__.py:1933
 msgid ""
 "searchPackages() will go away in a future version of "
 "Yum.                      Use searchGenerator() instead. \n"
@@ -1888,173 +1910,173 @@ msgstr ""
 "searchPackages() vil forsvinde i en fremtidig version af "
 "Yum.                      Brug searchGenerator() istedet. \n"
 
-#: ../yum/__init__.py:1917
+#: ../yum/__init__.py:1975
 #, python-format
 msgid "Searching %d packages"
 msgstr "Genemsøger %d pakker"
 
-#: ../yum/__init__.py:1921
+#: ../yum/__init__.py:1979
 #, python-format
 msgid "searching package %s"
 msgstr "gennemsøger pakke %s"
 
-#: ../yum/__init__.py:1933
+#: ../yum/__init__.py:1991
 msgid "searching in file entries"
 msgstr "gennemsøger filopslag"
 
-#: ../yum/__init__.py:1940
+#: ../yum/__init__.py:1998
 msgid "searching in provides entries"
 msgstr "søger efter afhængigheder"
 
-#: ../yum/__init__.py:1973
+#: ../yum/__init__.py:2031
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Leverer match: %s"
 
-#: ../yum/__init__.py:2022
+#: ../yum/__init__.py:2080
 msgid "No group data available for configured repositories"
 msgstr "Ingen tilgængelige gruppedata i konfigurerede pakkearkiver"
 
-#: ../yum/__init__.py:2053 ../yum/__init__.py:2072 ../yum/__init__.py:2103
-#: ../yum/__init__.py:2109 ../yum/__init__.py:2188 ../yum/__init__.py:2192
-#: ../yum/__init__.py:2489
+#: ../yum/__init__.py:2111 ../yum/__init__.py:2130 ../yum/__init__.py:2161
+#: ../yum/__init__.py:2167 ../yum/__init__.py:2246 ../yum/__init__.py:2250
+#: ../yum/__init__.py:2547
 #, python-format
 msgid "No Group named %s exists"
 msgstr "Gruppen %s findes ikke"
 
-#: ../yum/__init__.py:2084 ../yum/__init__.py:2205
+#: ../yum/__init__.py:2142 ../yum/__init__.py:2263
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "pakken %s var ikke markeret i gruppen %s"
 
-#: ../yum/__init__.py:2131
+#: ../yum/__init__.py:2189
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Tilføjer pakken %s fra gruppen %s"
 
-#: ../yum/__init__.py:2135
+#: ../yum/__init__.py:2193
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "Pakken %s er ikke tilgængelig til installation"
 
-#: ../yum/__init__.py:2232
+#: ../yum/__init__.py:2290
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "Pakken %s kunne ikke findes i pakkeliste"
 
-#: ../yum/__init__.py:2246
+#: ../yum/__init__.py:2304
 msgid ""
 "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
 msgstr ""
 "getInstalledPackageObject() vil forsvinde, brug self.rpmdb.searchPkgTuple"
 "().\n"
 
-#: ../yum/__init__.py:2302 ../yum/__init__.py:2347
+#: ../yum/__init__.py:2360 ../yum/__init__.py:2405
 msgid "Invalid version flag"
 msgstr "Ugyldig versionsflag"
 
-#: ../yum/__init__.py:2317 ../yum/__init__.py:2322
+#: ../yum/__init__.py:2375 ../yum/__init__.py:2380
 #, python-format
 msgid "No Package found for %s"
 msgstr "Ingen pakke fundet for %s"
 
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2580
 msgid "Package Object was not a package object instance"
 msgstr "Pakkeobjektet er ikke en pakkeobjektinstans"
 
-#: ../yum/__init__.py:2526
+#: ../yum/__init__.py:2584
 msgid "Nothing specified to install"
 msgstr "Der er intet angivet til installation"
 
-#: ../yum/__init__.py:2542 ../yum/__init__.py:3211
+#: ../yum/__init__.py:2600 ../yum/__init__.py:3312
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
 msgstr "Kontrollerer for virtueludbyder eller filudbyder for %s"
 
-#: ../yum/__init__.py:2548 ../yum/__init__.py:2824 ../yum/__init__.py:2984
-#: ../yum/__init__.py:3217
+#: ../yum/__init__.py:2606 ../yum/__init__.py:2882 ../yum/__init__.py:3045
+#: ../yum/__init__.py:3318
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "Ingen match for argument: %s"
 
-#: ../yum/__init__.py:2622
+#: ../yum/__init__.py:2680
 #, python-format
 msgid "Package %s installed and not available"
 msgstr "Pakken %s installeret og ikke tilgængelig"
 
-#: ../yum/__init__.py:2625
+#: ../yum/__init__.py:2683
 msgid "No package(s) available to install"
 msgstr "Ingen pakke(r) er tilgængelig(e) til installation"
 
-#: ../yum/__init__.py:2637
+#: ../yum/__init__.py:2695
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "Pakken: %s  - allerede i overførselssættet"
 
-#: ../yum/__init__.py:2652
+#: ../yum/__init__.py:2710
 #, python-format
 msgid "Package %s is obsoleted by %s, trying to install %s instead"
 msgstr "Pakke %s er overflødiggjort af %s, prøver at installere %s istedet"
 
-#: ../yum/__init__.py:2660
+#: ../yum/__init__.py:2718
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "Pakke %s er allerede installeret i den nyeste version"
 
-#: ../yum/__init__.py:2674
+#: ../yum/__init__.py:2732
 #, python-format
 msgid "Package matching %s already installed. Checking for update."
 msgstr "Pakken som matcher %s er allerede installeret. Søger efter opdatering."
 
 #. update everything (the easy case)
-#: ../yum/__init__.py:2760
+#: ../yum/__init__.py:2818
 msgid "Updating Everything"
 msgstr "Opdaterer alt"
 
-#: ../yum/__init__.py:2778 ../yum/__init__.py:2886 ../yum/__init__.py:2907
-#: ../yum/__init__.py:2933
+#: ../yum/__init__.py:2836 ../yum/__init__.py:2947 ../yum/__init__.py:2968
+#: ../yum/__init__.py:2994
 #, python-format
 msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
 msgstr ""
 "Ingen opdatering af pakke som allerede er overflødiggjort: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2813 ../yum/__init__.py:2981
+#: ../yum/__init__.py:2871 ../yum/__init__.py:3042
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: ../yum/__init__.py:2877
+#: ../yum/__init__.py:2938
 #, python-format
 msgid "Package is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Pakke er allerede overflødiggjort: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2910 ../yum/__init__.py:2936
+#: ../yum/__init__.py:2971 ../yum/__init__.py:2997
 #, python-format
 msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
 msgstr ""
 "Ingen opdatering af pakke som allerede er overflødiggjort: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2997
+#: ../yum/__init__.py:3058
 msgid "No package matched to remove"
 msgstr "Ingen pakker fundet til sletning"
 
-#: ../yum/__init__.py:3031 ../yum/__init__.py:3165
+#: ../yum/__init__.py:3092 ../yum/__init__.py:3183 ../yum/__init__.py:3267
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "Kan ikke åbne fil: %s. Springer over."
 
-#: ../yum/__init__.py:3034 ../yum/__init__.py:3168
+#: ../yum/__init__.py:3095 ../yum/__init__.py:3186 ../yum/__init__.py:3270
 #, python-format
 msgid "Examining %s: %s"
 msgstr "Undersøger %s: %s"
 
-#: ../yum/__init__.py:3042 ../yum/__init__.py:3171
+#: ../yum/__init__.py:3103 ../yum/__init__.py:3189 ../yum/__init__.py:3273
 #, python-format
 msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
 msgstr ""
 "Kan ikke tilføje pakke %s til overførsel. Ikke en kompatibel arkitektur: %s"
 
-#: ../yum/__init__.py:3050
+#: ../yum/__init__.py:3111
 #, python-format
 msgid ""
 "Package %s not installed, cannot update it. Run yum install to install it "
@@ -2063,92 +2085,92 @@ msgstr ""
 "Pakken %s er ikke installeret, så den kan ikke opdateres. Kør yum install "
 "for at installere den istedet."
 
-#: ../yum/__init__.py:3085 ../yum/__init__.py:3183
+#: ../yum/__init__.py:3146 ../yum/__init__.py:3200 ../yum/__init__.py:3284
 #, python-format
 msgid "Excluding %s"
 msgstr "Ekskluderer %s"
 
-#: ../yum/__init__.py:3090
+#: ../yum/__init__.py:3151
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Markerer %s til installation"
 
-#: ../yum/__init__.py:3096
+#: ../yum/__init__.py:3157
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "Markerer %s som en opdatering til %s"
 
-#: ../yum/__init__.py:3103
+#: ../yum/__init__.py:3164
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s kan ikke opdatere installeret pakke."
 
-#: ../yum/__init__.py:3118
+#: ../yum/__init__.py:3216
 msgid "Problem in reinstall: no package matched to remove"
 msgstr "Problem med geninstallation, ingen pakke fundet til at blive slettet"
 
-#: ../yum/__init__.py:3130 ../yum/__init__.py:3244
+#: ../yum/__init__.py:3228 ../yum/__init__.py:3345
 #, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "Pakke %s er tilladt at have flere installationer, springer over"
 
-#: ../yum/__init__.py:3144
+#: ../yum/__init__.py:3246
 msgid "Problem in reinstall: no package matched to install"
 msgstr "Problem med geninstallation: ingen pakke fundet til at installere"
 
-#: ../yum/__init__.py:3236
+#: ../yum/__init__.py:3337
 msgid "No package(s) available to downgrade"
 msgstr "Ingen pakke(r) er tilgængelig(e) til nedgradering"
 
-#: ../yum/__init__.py:3267
+#: ../yum/__init__.py:3381
 #, python-format
 msgid "No Match for available package: %s"
 msgstr "Ingen match for tilgængelig pakke: %s"
 
-#: ../yum/__init__.py:3273
+#: ../yum/__init__.py:3387
 #, python-format
 msgid "Only Upgrade available on package: %s"
 msgstr "Opgradér kun tilgængelig på pakke: %s"
 
-#: ../yum/__init__.py:3334
+#: ../yum/__init__.py:3449
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "Henter GPG-nøgle fra %s"
 
-#: ../yum/__init__.py:3354
+#: ../yum/__init__.py:3469
 msgid "GPG key retrieval failed: "
 msgstr "Hentning af GPG-nøglen mislykkedes: "
 
-#: ../yum/__init__.py:3365
+#: ../yum/__init__.py:3480
 #, python-format
 msgid "GPG key parsing failed: key does not have value %s"
 msgstr "Tolkning af GPG-nøgle mislykkedes: nøgle har ikke nogen værdi %s"
 
-#: ../yum/__init__.py:3397
+#: ../yum/__init__.py:3512
 #, python-format
 msgid "GPG key at %s (0x%s) is already installed"
 msgstr "GPG-nøgle på %s (0x%s) er allerede installeret"
 
 #. Try installing/updating GPG key
-#: ../yum/__init__.py:3402 ../yum/__init__.py:3464
+#: ../yum/__init__.py:3517 ../yum/__init__.py:3579
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "Importerer GPG-nøgle 0x%s \"%s\" fra %s"
 
-#: ../yum/__init__.py:3419
+#: ../yum/__init__.py:3534
 msgid "Not installing key"
 msgstr "Installerer ikke nøgle"
 
-#: ../yum/__init__.py:3425
+#: ../yum/__init__.py:3540
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "Importering af nøgle mislykkedes (kode %d)"
 
-#: ../yum/__init__.py:3426 ../yum/__init__.py:3485
+#: ../yum/__init__.py:3541 ../yum/__init__.py:3600
 msgid "Key imported successfully"
 msgstr "Nøglen blev importet med succes"
 
-#: ../yum/__init__.py:3431 ../yum/__init__.py:3490
+#: ../yum/__init__.py:3546 ../yum/__init__.py:3605
 #, python-format
 msgid ""
 "The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -2159,79 +2181,79 @@ msgstr ""
 "er ikke korrekt for denne pakke.\n"
 "Kontrollér at konfigurationen af nøgle-URL'er er korrekt for denne kilde."
 
-#: ../yum/__init__.py:3440
+#: ../yum/__init__.py:3555
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "Importering af nøgle(r) hjalp ikke, forkerte nøgle(r)?"
 
-#: ../yum/__init__.py:3459
+#: ../yum/__init__.py:3574
 #, python-format
 msgid "GPG key at %s (0x%s) is already imported"
 msgstr "GPG-nøgle på %s (0x%s) er allerede importeret"
 
-#: ../yum/__init__.py:3479
+#: ../yum/__init__.py:3594
 #, python-format
 msgid "Not installing key for repo %s"
 msgstr "Installerer ikke nøgle for kilde %s"
 
-#: ../yum/__init__.py:3484
+#: ../yum/__init__.py:3599
 msgid "Key import failed"
 msgstr "Importering af nøgle mislykkedes"
 
-#: ../yum/__init__.py:3575
+#: ../yum/__init__.py:3690
 msgid "Unable to find a suitable mirror."
 msgstr "Kunne ikke finde et passende filspejl."
 
-#: ../yum/__init__.py:3577
+#: ../yum/__init__.py:3692
 msgid "Errors were encountered while downloading packages."
 msgstr "Fejl blev fundet under hentning af pakker."
 
-#: ../yum/__init__.py:3618
+#: ../yum/__init__.py:3733
 #, python-format
 msgid "Please report this error at %s"
 msgstr "Rapportér venligst denne fejl på %s"
 
-#: ../yum/__init__.py:3642
+#: ../yum/__init__.py:3757
 msgid "Test Transaction Errors: "
 msgstr "Fejl i testoverførslen: "
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:204
+#: ../yum/plugins.py:205
 msgid "Loaded plugins: "
 msgstr "Indlæste udvidelsesmoduler: "
 
-#: ../yum/plugins.py:218 ../yum/plugins.py:224
+#: ../yum/plugins.py:219 ../yum/plugins.py:225
 #, python-format
 msgid "No plugin match for: %s"
 msgstr "Intet udvidelsesmodul til: %s"
 
-#: ../yum/plugins.py:254
+#: ../yum/plugins.py:255
 #, python-format
 msgid "Not loading \"%s\" plugin, as it is disabled"
 msgstr "Indlæser ikke \"%s\" udvidelsesmodul, fordi det er deaktiveret"
 
 #. Give full backtrace:
-#: ../yum/plugins.py:266
+#: ../yum/plugins.py:267
 #, python-format
 msgid "Plugin \"%s\" can't be imported"
 msgstr "Udvidelsesmodul \"%s\" kan ikke importeres"
 
-#: ../yum/plugins.py:273
+#: ../yum/plugins.py:274
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr ""
 "Udvidelsesmodul \"%s\" angiver ikke hvilken API-version der er påkrævet"
 
-#: ../yum/plugins.py:278
+#: ../yum/plugins.py:279
 #, python-format
 msgid "Plugin \"%s\" requires API %s. Supported API is %s."
 msgstr "Udvidelsesmodul \"%s\" krævet API %s. Understøttet API er %s."
 
-#: ../yum/plugins.py:311
+#: ../yum/plugins.py:312
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "Indlæser \"%s\" udvidelsesmodul"
 
-#: ../yum/plugins.py:318
+#: ../yum/plugins.py:319
 #, python-format
 msgid ""
 "Two or more plugins with the name \"%s\" exist in the plugin search path"
@@ -2239,19 +2261,19 @@ msgstr ""
 "To eller flere udvidelsesmoduler med navnet \"%s\" er fundet i søgestien for "
 "udvidelsesmoduler"
 
-#: ../yum/plugins.py:338
+#: ../yum/plugins.py:339
 #, python-format
 msgid "Configuration file %s not found"
 msgstr "Konfigurationsfilen %s er ikke fundet"
 
 #. for
 #. Configuration files for the plugin not found
-#: ../yum/plugins.py:341
+#: ../yum/plugins.py:342
 #, python-format
 msgid "Unable to find configuration file for plugin %s"
 msgstr "Kunne ikke finde konfigurationsfilen til udvidelsesmodul: %s"
 
-#: ../yum/plugins.py:499
+#: ../yum/plugins.py:500
 msgid "registration of commands not supported"
 msgstr "registrering af komandoer er ikke understøttet"
 
@@ -2289,6 +2311,9 @@ msgstr "Ødelagt headerfil %s"
 msgid "Error opening rpm %s - error %s"
 msgstr "Fejl ved åbning af RPM %s - fejl %s"
 
+#~ msgid "Matching packages for package list to user args"
+#~ msgstr "Matcher pakker til pakkeliste baseret på brugerens argumenter"
+
 #~ msgid "Parsing package install arguments"
 #~ msgstr "Behandler argumenter for pakkeinstallation"
 
diff --git a/po/ja.po b/po/ja.po
new file mode 100644
index 0000000..6f86fc8
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,2191 @@
+# translation of yum.master.po to ja_JP
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Tadashi Jokagi <elf@elf.no-ip.org>, 2008-2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: yum master\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-05-07 11:34+0900\n"
+"PO-Revision-Date: 2009-05-20 03:23+0900\n"
+"Last-Translator: Tadashi Jokagi <elf@elf.no-ip.org>\n"
+"Language-Team: Japanese <ja@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: callback.py:48 output.py:922 yum/rpmtrans.py:71
+msgid "Updating"
+msgstr "更新"
+
+#: callback.py:49 yum/rpmtrans.py:72
+msgid "Erasing"
+msgstr "削除中"
+
+#: callback.py:50 callback.py:51 callback.py:53 output.py:921
+#: yum/rpmtrans.py:73 yum/rpmtrans.py:74 yum/rpmtrans.py:76
+msgid "Installing"
+msgstr "インストールしています"
+
+#: callback.py:52 callback.py:58 yum/rpmtrans.py:75
+msgid "Obsoleted"
+msgstr "不要でした"
+
+#: callback.py:54 output.py:1029
+msgid "Updated"
+msgstr "更新しました"
+
+#: callback.py:55
+msgid "Erased"
+msgstr "削除しました"
+
+#: callback.py:56 callback.py:57 callback.py:59 output.py:1027
+msgid "Installed"
+msgstr "インストールしました"
+
+#: callback.py:130
+msgid "No header - huh?"
+msgstr "ヘッダーがありません - はて?"
+
+#: callback.py:168
+msgid "Repackage"
+msgstr "再パッケージ"
+
+#: callback.py:189
+#, python-format
+msgid "Error: invalid output state: %s for %s"
+msgstr "エラー: 不正な出力状態: %s for %s"
+
+#: callback.py:212
+#, python-format
+msgid "Erased: %s"
+msgstr "削除しました: %s"
+
+#: callback.py:217 output.py:923
+msgid "Removing"
+msgstr "削除"
+
+#: callback.py:219 yum/rpmtrans.py:77
+msgid "Cleanup"
+msgstr "整理中"
+
+#: cli.py:105
+#, python-format
+msgid "Command \"%s\" already defined"
+msgstr "コマンド「%s」はすでに定義済みです"
+
+#: cli.py:117
+msgid "Setting up repositories"
+msgstr "リポジトリーの設定"
+
+#: cli.py:128
+msgid "Reading repository metadata in from local files"
+msgstr "ローカルファイルからリポジトリーのメタデータを読み込んでいます"
+
+#: cli.py:192 utils.py:79
+#, python-format
+msgid "Config Error: %s"
+msgstr "設定エラー: %s"
+
+#: cli.py:195 cli.py:1190 utils.py:82
+#, python-format
+msgid "Options Error: %s"
+msgstr "オプションエラー: %s"
+
+#: cli.py:223
+#, python-format
+msgid "  Installed: %s-%s at %s"
+msgstr ""
+
+#: cli.py:225
+#, python-format
+msgid "  Built    : %s at %s"
+msgstr ""
+
+#: cli.py:227
+#, python-format
+msgid "  Committed: %s at %s"
+msgstr ""
+
+#: cli.py:266
+msgid "You need to give some command"
+msgstr "いくつかのコマンドを指定する必要があります"
+
+#: cli.py:309
+msgid "Disk Requirements:\n"
+msgstr "ディスク要求:\n"
+
+#: cli.py:311
+#, python-format
+msgid "  At least %dMB needed on the %s filesystem.\n"
+msgstr "  少なくとも %d MB の空き容量がファイルシステム %s で必要です。\n"
+
+#: cli.py:316
+msgid ""
+"Error Summary\n"
+"-------------\n"
+msgstr ""
+"エラーの要約\n"
+"-------------\n"
+
+#: cli.py:359
+msgid "Trying to run the transaction but nothing to do. Exiting."
+msgstr ""
+"トランザクションの実行を試みましたが、何もありませんでした。終了します。"
+
+#: cli.py:395
+msgid "Exiting on user Command"
+msgstr "ユーザーコマンドを終了しています"
+
+#: cli.py:399
+msgid "Downloading Packages:"
+msgstr "パッケージをダウンロードしています:"
+
+#: cli.py:404
+msgid "Error Downloading Packages:\n"
+msgstr "パッケージのダウンロードでエラー:\n"
+
+#: cli.py:418 yum/__init__.py:3362
+msgid "Running rpm_check_debug"
+msgstr "rpm_check_debug を実行しています"
+
+#: cli.py:421 yum/__init__.py:3365
+msgid "ERROR with rpm_check_debug vs depsolve:"
+msgstr ""
+
+#: cli.py:425
+#, python-format
+msgid "Please report this error in %s"
+msgstr "%s にこのエラーを報告してください"
+
+#: cli.py:431
+msgid "Running Transaction Test"
+msgstr "トランザクションのテストを実行しています"
+
+#: cli.py:447
+msgid "Finished Transaction Test"
+msgstr "トランザクションのテストを終了しました"
+
+#: cli.py:449
+msgid "Transaction Check Error:\n"
+msgstr "トランザクションの確認エラー\n"
+
+#: cli.py:456
+msgid "Transaction Test Succeeded"
+msgstr "トランザクションのテストを成功しました"
+
+#: cli.py:477
+msgid "Running Transaction"
+msgstr "トランザクションを実行しています"
+
+#: cli.py:507
+msgid ""
+"Refusing to automatically import keys when running unattended.\n"
+"Use \"-y\" to override."
+msgstr ""
+
+#: cli.py:526 cli.py:560
+msgid "  * Maybe you meant: "
+msgstr ""
+
+#: cli.py:543 cli.py:551
+#, python-format
+msgid "Package(s) %s%s%s available, but not installed."
+msgstr "パッケージ %s%s%s は利用できますが、インストールしませんでした。"
+
+#: cli.py:557 cli.py:590
+#, python-format
+msgid "No package %s%s%s available."
+msgstr "パッケージ %s%s%s は利用できません。"
+
+#: cli.py:595 cli.py:670 yumcommands.py:1010
+msgid "Package(s) to install"
+msgstr "インストールするパッケージ"
+
+#: cli.py:596 cli.py:671 yumcommands.py:159 yumcommands.py:1011
+msgid "Nothing to do"
+msgstr "何もしません"
+
+#: cli.py:629
+#, python-format
+msgid "%d packages marked for Update"
+msgstr "%d 個のパッケージが更新の設定しました"
+
+#: cli.py:632
+msgid "No Packages marked for Update"
+msgstr "更新と設定されたパッケージがありません"
+
+#: cli.py:646
+#, python-format
+msgid "%d packages marked for removal"
+msgstr "%d 個のパッケージが削除の設定しました"
+
+#: cli.py:649
+msgid "No Packages marked for removal"
+msgstr "削除と設定されたパッケージがありません"
+
+#: cli.py:661
+msgid "No Packages Provided"
+msgstr "パッケージが提供されていません"
+
+#: cli.py:716
+msgid "Matching packages for package list to user args"
+msgstr "ユーザーの引数にパッケージ一覧のパッケージを一致させています"
+
+#: cli.py:765
+#, python-format
+msgid "Warning: No matches found for: %s"
+msgstr "警告: 一致するものが見つかりません: %s"
+
+#: cli.py:768
+msgid "No Matches found"
+msgstr "見つかりませんでした"
+
+#: cli.py:807
+#, python-format
+msgid ""
+"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 ""
+
+#: cli.py:823
+#, python-format
+msgid "No Package Found for %s"
+msgstr "%s のパッケージが見つかりません"
+
+#: cli.py:835
+msgid "Cleaning up Everything"
+msgstr "すべて掃除しています"
+
+#: cli.py:849
+msgid "Cleaning up Headers"
+msgstr "ヘッダーを掃除しています"
+
+#: cli.py:852
+msgid "Cleaning up Packages"
+msgstr "パッケージを掃除しています"
+
+#: cli.py:855
+msgid "Cleaning up xml metadata"
+msgstr "XML メタデータを掃除しています"
+
+#: cli.py:858
+msgid "Cleaning up database cache"
+msgstr "データベースキャッシュを掃除しています"
+
+#: cli.py:861
+msgid "Cleaning up expire-cache metadata"
+msgstr "期限切れのメタデータキャッシュを掃除しています"
+
+#: cli.py:864
+msgid "Cleaning up plugins"
+msgstr "プラグインを掃除しています"
+
+#: cli.py:889
+msgid "Installed Groups:"
+msgstr "インストール済みグループ:"
+
+#: cli.py:896
+msgid "Available Groups:"
+msgstr "利用可能なグループ"
+
+#: cli.py:902
+msgid "Done"
+msgstr "完了"
+
+#: cli.py:913 cli.py:931 cli.py:937 yum/__init__.py:2410
+#, python-format
+msgid "Warning: Group %s does not exist."
+msgstr "警告: グループ %s が存在しません。"
+
+#: cli.py:941
+msgid "No packages in any requested group available to install or update"
+msgstr ""
+
+#: cli.py:943
+#, python-format
+msgid "%d Package(s) to Install"
+msgstr "%d 個のパッケージをインストールします"
+
+#: cli.py:953 yum/__init__.py:2422
+#, python-format
+msgid "No group named %s exists"
+msgstr "グループ名 %s が存在しません"
+
+#: cli.py:959
+msgid "No packages to remove from groups"
+msgstr "グループから削除するパッケージがありません"
+
+#: cli.py:961
+#, python-format
+msgid "%d Package(s) to remove"
+msgstr "%d 個のパッケージを削除します"
+
+#: cli.py:1003
+#, python-format
+msgid "Package %s is already installed, skipping"
+msgstr "パッケージ %s は既にインストールされているので飛ばします"
+
+#: cli.py:1014
+#, python-format
+msgid "Discarding non-comparable pkg %s.%s"
+msgstr "非互換のパッケージ %s.%s を破棄しています"
+
+#: cli.py:1040
+#, python-format
+msgid "No other %s installed, adding to list for potential install"
+msgstr ""
+
+#: cli.py:1059
+#, python-format
+msgid "Command line error: %s"
+msgstr "コマンドラインエラー: %s"
+
+#: cli.py:1072
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: オプション %sは引数が必要です "
+
+#: cli.py:1130
+msgid "--color takes one of: auto, always, never"
+msgstr "--color がとることができる値な次のうちひとつです: auto、always、never"
+
+#: cli.py:1232
+msgid "show this help message and exit"
+msgstr "このヘルプメッセージを表示して終了する"
+
+#: cli.py:1236
+msgid "be tolerant of errors"
+msgstr ""
+
+#: cli.py:1238
+msgid "run entirely from cache, don't update cache"
+msgstr "キャッシュから完全に実行します。キャッシュを更新しません"
+
+#: cli.py:1240
+msgid "config file location"
+msgstr "構成ファイルの場所"
+
+#: cli.py:1242
+msgid "maximum command wait time"
+msgstr "コマンドの最大待ち時間"
+
+#: cli.py:1244
+msgid "debugging output level"
+msgstr "デバッグ情報の出力レベル"
+
+#: cli.py:1248
+msgid "show duplicates, in repos, in list/search commands"
+msgstr "一覧/検索コマンドのリポジトリーの重複の表示"
+
+#: cli.py:1250
+msgid "error output level"
+msgstr "エラー出力レベル"
+
+#: cli.py:1253
+msgid "quiet operation"
+msgstr "静かに処理をする"
+
+#: cli.py:1255
+msgid "verbose operation"
+msgstr "冗長に処理をする"
+
+#: cli.py:1257
+msgid "answer yes for all questions"
+msgstr "すべての問い合わせに「yes」で答える"
+
+#: cli.py:1259
+msgid "show Yum version and exit"
+msgstr "Yum のバージョンを表示して終了する"
+
+#: cli.py:1260
+msgid "set install root"
+msgstr "インストールのベースディレクトリを設定する"
+
+#: cli.py:1264
+msgid "enable one or more repositories (wildcards allowed)"
+msgstr "ひとつ以上のリポジトリーを有効にする (ワイルドカード許可)"
+
+#: cli.py:1268
+msgid "disable one or more repositories (wildcards allowed)"
+msgstr "ひとつ以上のリポジトリーを無効にする (ワイルドカード許可)"
+
+#: cli.py:1271
+msgid "exclude package(s) by name or glob"
+msgstr "名前かワイルドカードでパッケージを除外する"
+
+#: cli.py:1273
+msgid "disable exclude from main, for a repo or for everything"
+msgstr ""
+
+#: cli.py:1276
+msgid "enable obsoletes processing during updates"
+msgstr "更新中に不要な処理を有効にします"
+
+#: cli.py:1278
+msgid "disable Yum plugins"
+msgstr "Yum プラグインを無効にする"
+
+#: cli.py:1280
+msgid "disable gpg signature checking"
+msgstr "GPG 署名の確認を無効にする"
+
+#: cli.py:1282
+msgid "disable plugins by name"
+msgstr "名前でプラグインを無効にする"
+
+#: cli.py:1285
+msgid "enable plugins by name"
+msgstr "名前でプラグインを有効にする"
+
+#: cli.py:1288
+msgid "skip packages with depsolving problems"
+msgstr "依存性に問題があるパッケージを飛ばす"
+
+#: cli.py:1290
+msgid "control whether color is used"
+msgstr ""
+
+#: output.py:298
+msgid "Jan"
+msgstr "1 月"
+
+#: output.py:298
+msgid "Feb"
+msgstr "2 月"
+
+#: output.py:298
+msgid "Mar"
+msgstr "3 月"
+
+#: output.py:298
+msgid "Apr"
+msgstr "4 月"
+
+#: output.py:298
+msgid "May"
+msgstr "5 月"
+
+#: output.py:298
+msgid "Jun"
+msgstr "6 月"
+
+#: output.py:299
+msgid "Jul"
+msgstr "7 月"
+
+#: output.py:299
+msgid "Aug"
+msgstr "8 月"
+
+#: output.py:299
+msgid "Sep"
+msgstr "9 月"
+
+#: output.py:299
+msgid "Oct"
+msgstr "10 月"
+
+#: output.py:299
+msgid "Nov"
+msgstr "11 月"
+
+#: output.py:299
+msgid "Dec"
+msgstr "12 月"
+
+#: output.py:309
+msgid "Trying other mirror."
+msgstr "他のミラーを試します。"
+
+#: output.py:525
+#, python-format
+msgid "Name       : %s%s%s"
+msgstr "名前          : %s%s%s"
+
+#: output.py:526
+#, python-format
+msgid "Arch       : %s"
+msgstr "アーキテクチャ: %s"
+
+#: output.py:528
+#, python-format
+msgid "Epoch      : %s"
+msgstr "エポック      : %s"
+
+#: output.py:529
+#, python-format
+msgid "Version    : %s"
+msgstr "バージョン    : %s"
+
+#: output.py:530
+#, python-format
+msgid "Release    : %s"
+msgstr "リリース      : %s"
+
+#: output.py:531
+#, python-format
+msgid "Size       : %s"
+msgstr "容量          : %s"
+
+#: output.py:532
+#, python-format
+msgid "Repo       : %s"
+msgstr "リポジトリー  : %s"
+
+#: output.py:534
+#, python-format
+msgid "Committer  : %s"
+msgstr "コミット者    : %s"
+
+#: output.py:535
+#, python-format
+msgid "Committime : %s"
+msgstr "コミット日時  : %s"
+
+#: output.py:536
+#, python-format
+msgid "Buildtime  : %s"
+msgstr "ビルド日時    : %s"
+
+#: output.py:538
+#, python-format
+msgid "Installtime: %s"
+msgstr "インストール日時 : %s "
+
+#: output.py:539
+msgid "Summary    : "
+msgstr "要約          : "
+
+#: output.py:541
+#, python-format
+msgid "URL        : %s"
+msgstr "URL           : %s"
+
+#: output.py:542
+#, python-format
+msgid "License    : %s"
+msgstr "ライセンス    : %s"
+
+#: output.py:543
+msgid "Description: "
+msgstr "説明          : "
+
+#: output.py:611
+msgid "y"
+msgstr "y"
+
+#: output.py:611
+msgid "yes"
+msgstr "はい"
+
+#: output.py:612
+msgid "n"
+msgstr "n"
+
+#: output.py:612
+msgid "no"
+msgstr "いいえ"
+
+# REMEMBER to Translate [Y/N] to the current locale
+#: output.py:616
+msgid "Is this ok [y/N]: "
+msgstr "これでいいですか? [y/N]"
+
+#: output.py:704
+#, python-format
+msgid ""
+"\n"
+"Group: %s"
+msgstr ""
+"\n"
+"グループ: %s"
+
+#: output.py:708
+#, python-format
+msgid " Group-Id: %s"
+msgstr " グループ ID: %s"
+
+#: output.py:713
+#, python-format
+msgid " Description: %s"
+msgstr " 説明: %s"
+
+#: output.py:715
+msgid " Mandatory Packages:"
+msgstr " 強制的なパッケージ:"
+
+#: output.py:716
+msgid " Default Packages:"
+msgstr " 標準パッケージ:"
+
+#: output.py:717
+msgid " Optional Packages:"
+msgstr " オプションパッケージ:"
+
+#: output.py:718
+msgid " Conditional Packages:"
+msgstr " 条件付パッケージ:"
+
+#: output.py:738
+#, python-format
+msgid "package: %s"
+msgstr "パッケージ    : %s"
+
+#: output.py:740
+msgid "  No dependencies for this package"
+msgstr "  このパッケージの依存はありません"
+
+#: output.py:745
+#, python-format
+msgid "  dependency: %s"
+msgstr "  依存性      : %s"
+
+#: output.py:747
+msgid "   Unsatisfied dependency"
+msgstr "  満たされていない依存性"
+
+#: output.py:819
+#, python-format
+msgid "Repo        : %s"
+msgstr "リポジトリー  : %s"
+
+#: output.py:820
+msgid "Matched from:"
+msgstr ""
+
+#: output.py:828
+msgid "Description : "
+msgstr "説明          : "
+
+#: output.py:831
+#, python-format
+msgid "URL         : %s"
+msgstr "URL           : %s"
+
+#: output.py:834
+#, python-format
+msgid "License     : %s"
+msgstr "ライセンス    : %s"
+
+#: output.py:837
+#, python-format
+msgid "Filename    : %s"
+msgstr "リリース      : %s"
+
+#: output.py:841
+msgid "Other       : "
+msgstr "その他        : "
+
+#: output.py:874
+msgid "There was an error calculating total download size"
+msgstr "総ダウンロード容量の計算中にエラーです"
+
+#: output.py:879
+#, python-format
+msgid "Total size: %s"
+msgstr "合計容量: %s"
+
+#: output.py:882
+#, python-format
+msgid "Total download size: %s"
+msgstr "総ダウンロード容量: %s"
+
+#: output.py:924
+msgid "Installing for dependencies"
+msgstr "依存性関連でのインストールをします"
+
+#: output.py:925
+msgid "Updating for dependencies"
+msgstr "依存性関連での更新をします"
+
+#: output.py:926
+msgid "Removing for dependencies"
+msgstr "依存性関連での削除をします"
+
+#: output.py:933 output.py:1031
+msgid "Skipped (dependency problems)"
+msgstr "飛ばしました (依存性の問題)"
+
+#: output.py:954
+msgid "Package"
+msgstr ""
+
+#: output.py:954
+msgid "Arch"
+msgstr ""
+
+#: output.py:955
+msgid "Version"
+msgstr ""
+
+#: output.py:955
+msgid "Repository"
+msgstr ""
+
+#: output.py:956
+msgid "Size"
+msgstr ""
+
+#: output.py:968
+#, python-format
+msgid ""
+"     replacing  %s%s%s.%s %s\n"
+"\n"
+msgstr "     置き換えています  %s%s%s.%s %s\n\n"
+
+#: output.py:977
+#, 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"
+"トランザクションの要約\n"
+"%s\n"
+"インストール  %5.5s パッケージ    \n"
+"更新          %5.5s パッケージ    \n"
+"削除          %5.5s パッケージ    \n"
+
+#: output.py:1025
+msgid "Removed"
+msgstr "削除しました"
+
+#: output.py:1026
+msgid "Dependency Removed"
+msgstr "依存性の削除をしました"
+
+#: output.py:1028
+msgid "Dependency Installed"
+msgstr "依存性関連をインストールしました"
+
+#: output.py:1030
+msgid "Dependency Updated"
+msgstr "依存性を更新しました"
+
+#: output.py:1032
+msgid "Replaced"
+msgstr "置換しました"
+
+#: output.py:1033
+msgid "Failed"
+msgstr "失敗しました"
+
+#: output.py:1099
+msgid "two"
+msgstr ""
+
+#: output.py:1106
+#, python-format
+msgid ""
+"\n"
+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
+"seconds to exit.\n"
+msgstr ""
+
+#: output.py:1116
+msgid "user interrupt"
+msgstr "ユーザーの割り込み"
+
+#: output.py:1132
+msgid "Total"
+msgstr "合計"
+
+#: output.py:1146
+msgid "installed"
+msgstr "インストール"
+
+#: output.py:1147
+msgid "updated"
+msgstr "更新"
+
+#: output.py:1148
+msgid "obsoleted"
+msgstr "不要"
+
+#: output.py:1149
+msgid "erased"
+msgstr "削除"
+
+#: output.py:1153
+#, python-format
+msgid "---> Package %s.%s %s:%s-%s set to be %s"
+msgstr "---> パッケージ %s.%s %s:%s-%s を%sに設定しました"
+
+#: output.py:1160
+msgid "--> Running transaction check"
+msgstr "--> トランザクションの確認を実行しています"
+
+#: output.py:1165
+msgid "--> Restarting Dependency Resolution with new changes."
+msgstr "--> 新しい変更と依存性の解決を再開しています。"
+
+#: output.py:1170
+msgid "--> Finished Dependency Resolution"
+msgstr "--> 依存性解決を終了しました"
+
+#: output.py:1175
+#, python-format
+msgid "--> Processing Dependency: %s for package: %s"
+msgstr "--> 依存性の処理をしています: %s のパッケージ: %s"
+
+#: output.py:1180
+#, python-format
+msgid "--> Unresolved Dependency: %s"
+msgstr "--> 未解決の依存性: %s"
+
+#: output.py:1186
+#, python-format
+msgid "--> Processing Conflict: %s conflicts %s"
+msgstr "--> 衝突を処理しています: %s は %s と衝突しています"
+
+#: output.py:1189
+msgid "--> Populating transaction set with selected packages. Please wait."
+msgstr ""
+
+#: output.py:1193
+#, python-format
+msgid "---> Downloading header for %s to pack into transaction set."
+msgstr ""
+"---> トランザクションセットに束ねるために %s のヘッダーをダウンロードしていま"
+"す"
+
+#: yumcommands.py:41
+msgid "You need to be root to perform this command."
+msgstr "このコマンドを実行するには root である必要があります。"
+
+#: 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 ""
+
+#: yumcommands.py:68
+#, python-format
+msgid "Error: Need to pass a list of pkgs to %s"
+msgstr "エラー: パッケージの一覧を %s に渡す必要があります"
+
+#: yumcommands.py:74
+msgid "Error: Need an item to match"
+msgstr "エラー: 一致する項目が必要です"
+
+#: yumcommands.py:80
+msgid "Error: Need a group or list of groups"
+msgstr "エラー: グループ化グループの一覧が必要です"
+
+#: yumcommands.py:89
+#, python-format
+msgid "Error: clean requires an option: %s"
+msgstr "エラー: clean は引数をひとつ要求します: %s"
+
+#: yumcommands.py:94
+#, python-format
+msgid "Error: invalid clean argument: %r"
+msgstr "エラー: 不正な clean の引数です: %r"
+
+#: yumcommands.py:107
+msgid "No argument to shell"
+msgstr "シェルへの引数がありません"
+
+#: yumcommands.py:110
+#, python-format
+msgid "Filename passed to shell: %s"
+msgstr "シェルに渡すファイル名: %s"
+
+#: yumcommands.py:114
+#, python-format
+msgid "File %s given as argument to shell does not exist."
+msgstr "シェルへの引数として渡したファイル %s は存在しません。"
+
+#: yumcommands.py:120
+msgid "Error: more than one file given as argument to shell."
+msgstr "エラー: シェルへの引数としてひとつ以上のファイルを渡しました。"
+
+#: yumcommands.py:169
+msgid "PACKAGE..."
+msgstr "パッケージ..."
+
+#: yumcommands.py:172
+msgid "Install a package or packages on your system"
+msgstr "システムにパッケージをインストールする"
+
+#: yumcommands.py:180
+msgid "Setting up Install Process"
+msgstr "インストール処理の設定をしています"
+
+#: yumcommands.py:191
+msgid "[PACKAGE...]"
+msgstr "[パッケージ...]"
+
+#: yumcommands.py:194
+msgid "Update a package or packages on your system"
+msgstr "システムのパッケージを更新する"
+
+#: yumcommands.py:201
+msgid "Setting up Update Process"
+msgstr "更新処理の設定をしています"
+
+#: yumcommands.py:243
+msgid "Display details about a package or group of packages"
+msgstr "パッケージもしくはパッケージのグループについての詳細を表示する"
+
+#: yumcommands.py:292
+msgid "Installed Packages"
+msgstr "インストール済みパッケージ"
+
+#: yumcommands.py:300
+msgid "Available Packages"
+msgstr "利用可能なパッケージ"
+
+#: yumcommands.py:304
+msgid "Extra Packages"
+msgstr "外部パッケージ"
+
+#: yumcommands.py:308
+msgid "Updated Packages"
+msgstr "更新したパッケージ"
+
+#: yumcommands.py:316 yumcommands.py:323 yumcommands.py:600
+msgid "Obsoleting Packages"
+msgstr "パッケージを不要にしています"
+
+#: yumcommands.py:325
+msgid "Recently Added Packages"
+msgstr "最近追加したパッケージ"
+
+#: yumcommands.py:332
+msgid "No matching Packages to list"
+msgstr "表示するパッケージはありません"
+
+#: yumcommands.py:346
+msgid "List a package or groups of packages"
+msgstr "パッケージグループの一覧を表示する"
+
+#: yumcommands.py:358
+msgid "Remove a package or packages from your system"
+msgstr "システムから削除するパッケージ"
+
+#: yumcommands.py:365
+msgid "Setting up Remove Process"
+msgstr "削除処理の設定をしています"
+
+#: yumcommands.py:379
+msgid "Setting up Group Process"
+msgstr "グループ処理の設定をしています"
+
+#: yumcommands.py:385
+msgid "No Groups on which to run command"
+msgstr ""
+
+#: yumcommands.py:398
+msgid "List available package groups"
+msgstr "利用できるパッケージグループの一覧"
+
+#: yumcommands.py:415
+msgid "Install the packages in a group on your system"
+msgstr "システムのグループのパッケージをインストールする"
+
+#: yumcommands.py:437
+msgid "Remove the packages in a group from your system"
+msgstr "システムからグループのパッケージを削除する"
+
+#: yumcommands.py:464
+msgid "Display details about a package group"
+msgstr "パッケージグループについての詳細を表示する"
+
+#: yumcommands.py:488
+msgid "Generate the metadata cache"
+msgstr "メタデータキャッシュを生成する"
+
+#: yumcommands.py:494
+msgid "Making cache files for all metadata files."
+msgstr "すべて飲めたデータファイルのキャッシュを作成します。"
+
+#: yumcommands.py:495
+msgid "This may take a while depending on the speed of this computer"
+msgstr ""
+
+#: yumcommands.py:516
+msgid "Metadata Cache Created"
+msgstr "メタデータのキャッシュを作成しました"
+
+#: yumcommands.py:530
+msgid "Remove cached data"
+msgstr "キャッシュデータを削除する"
+
+#: yumcommands.py:551
+msgid "Find what package provides the given value"
+msgstr ""
+
+#: yumcommands.py:571
+msgid "Check for available package updates"
+msgstr "更新に利用できるパッケージを確認する"
+
+#: yumcommands.py:620
+msgid "Search package details for the given string"
+msgstr "指定した文字列でパッケージの詳細を検索する"
+
+#: yumcommands.py:626
+msgid "Searching Packages: "
+msgstr "パッケージの検索中: "
+
+#: yumcommands.py:643
+msgid "Update packages taking obsoletes into account"
+msgstr ""
+
+#: yumcommands.py:651
+msgid "Setting up Upgrade Process"
+msgstr "更新処理の設定をしています"
+
+#: yumcommands.py:665
+msgid "Install a local RPM"
+msgstr "ローカル RPM のインストール"
+
+#: yumcommands.py:673
+msgid "Setting up Local Package Process"
+msgstr "ローカルパッケージ処理の設定をしています"
+
+#: yumcommands.py:692
+msgid "Determine which package provides the given dependency"
+msgstr ""
+
+#: yumcommands.py:695
+msgid "Searching Packages for Dependency:"
+msgstr "依存性のパッケージ検索:"
+
+#: yumcommands.py:709
+msgid "Run an interactive yum shell"
+msgstr "対話型の yum シェルを実行する"
+
+#: yumcommands.py:715
+msgid "Setting up Yum Shell"
+msgstr "Yum シェルの設定をしています"
+
+#: yumcommands.py:733
+msgid "List a package's dependencies"
+msgstr "パッケージの依存性の一覧を表示する"
+
+#: yumcommands.py:739
+msgid "Finding dependencies: "
+msgstr "依存性の検索中: "
+
+#: yumcommands.py:755
+msgid "Display the configured software repositories"
+msgstr "ソフトウェアリポジトリーの構成を表示する"
+
+#: yumcommands.py:803 yumcommands.py:804
+msgid "enabled"
+msgstr "有効"
+
+#: yumcommands.py:812 yumcommands.py:813
+msgid "disabled"
+msgstr "無効"
+
+#: yumcommands.py:827
+msgid "Repo-id     : "
+msgstr "リポジトリーID   : "
+
+#: yumcommands.py:828
+msgid "Repo-name   : "
+msgstr "リポジトリー名   : "
+
+#: yumcommands.py:829
+msgid "Repo-status : "
+msgstr "リポジトリーの状態: "
+
+#: yumcommands.py:831
+msgid "Repo-revision: "
+msgstr "リポジトリーのリビジョン: "
+
+#: yumcommands.py:835
+msgid "Repo-tags   : "
+msgstr "リポジトリータグ : "
+
+#: yumcommands.py:841
+msgid "Repo-distro-tags: "
+msgstr ""
+
+#: yumcommands.py:846
+msgid "Repo-updated: "
+msgstr ""
+
+#: yumcommands.py:848
+msgid "Repo-pkgs   : "
+msgstr ""
+
+#: yumcommands.py:849
+msgid "Repo-size   : "
+msgstr "リポジトリー容量 : %s"
+
+#: yumcommands.py:856
+msgid "Repo-baseurl: "
+msgstr ""
+
+#: yumcommands.py:860
+msgid "Repo-metalink: "
+msgstr ""
+
+#: yumcommands.py:863
+msgid "Repo-mirrors: "
+msgstr ""
+
+#: yumcommands.py:867
+msgid "Repo-exclude: "
+msgstr ""
+
+#: yumcommands.py:871
+msgid "Repo-include: "
+msgstr ""
+
+#: yumcommands.py:881 yumcommands.py:907
+msgid "repo id"
+msgstr ""
+
+#: yumcommands.py:895 yumcommands.py:896 yumcommands.py:910
+msgid "status"
+msgstr ""
+
+#: yumcommands.py:908
+msgid "repo name"
+msgstr ""
+
+#: yumcommands.py:934
+msgid "Display a helpful usage message"
+msgstr "役立つ使い方のメッセージを表示する"
+
+#: yumcommands.py:968
+#, python-format
+msgid "No help available for %s"
+msgstr "%s のヘルプは利用できません"
+
+#: yumcommands.py:973
+msgid ""
+"\n"
+"\n"
+"aliases: "
+msgstr ""
+"\n"
+"\n"
+"別名: "
+
+#: yumcommands.py:975
+msgid ""
+"\n"
+"\n"
+"alias: "
+msgstr ""
+"\n"
+"\n"
+"別名: "
+
+#: yumcommands.py:1003
+msgid "Setting up Reinstall Process"
+msgstr "再インストール処理の設定をしています"
+
+#: yumcommands.py:1017
+msgid "reinstall a package"
+msgstr "パッケージの再インストール"
+
+#: yummain.py:42
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel"
+msgstr ""
+"\n"
+"\n"
+"ユーザーの取り消しで終了しています"
+
+#: yummain.py:48
+msgid ""
+"\n"
+"\n"
+"Exiting on Broken Pipe"
+msgstr ""
+"\n"
+"\n"
+"パイプが壊れたため終了しています"
+
+#: yummain.py:126
+msgid "Running"
+msgstr "実行中"
+
+#: yummain.py:127
+msgid "Sleeping"
+msgstr "スリープ中"
+
+#: yummain.py:128
+msgid "Uninteruptable"
+msgstr ""
+
+#: yummain.py:129
+msgid "Zombie"
+msgstr "ゾンビ"
+
+#: yummain.py:130
+msgid "Traced/Stopped"
+msgstr ""
+
+#: yummain.py:131
+msgid "Unknown"
+msgstr "不明"
+
+#: yummain.py:135
+msgid "  The other application is: PackageKit"
+msgstr " 他のアプリケーション: PackageKit"
+
+#: yummain.py:137
+#, python-format
+msgid "  The other application is: %s"
+msgstr " 他のアプリケーション: %s"
+
+#: yummain.py:140
+#, python-format
+msgid "    Memory : %5s RSS (%5sB VSZ)"
+msgstr "   メモリー: %5s RSS (%5sB VSZ)"
+
+#: yummain.py:144
+#, python-format
+msgid "    Started: %s - %s ago"
+msgstr "    開始   : %s - %s 秒経過"
+
+#: yummain.py:146
+#, python-format
+msgid "    State  : %s, pid: %d"
+msgstr "    状態   : %s、PID: %d"
+
+#: yummain.py:171
+msgid ""
+"Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr ""
+"別のアプリケーションが現在 yum のロックを持っています。終了するまで待っていま"
+"す..."
+
+#: yummain.py:199 yummain.py:238
+#, python-format
+msgid "Error: %s"
+msgstr "エラー: %s"
+
+#: yummain.py:209 yummain.py:250
+#, python-format
+msgid "Unknown Error(s): Exit Code: %d:"
+msgstr "不明なエラー: 終了コード: %d:"
+
+#: yummain.py:216
+msgid "Resolving Dependencies"
+msgstr "依存性の解決をしています"
+
+#: yummain.py:240
+msgid " You could try using --skip-broken to work around the problem"
+msgstr " 問題を回避するために --skip-broken を用いることができません"
+
+#: yummain.py:241
+msgid ""
+" You could try running: package-cleanup --problems\n"
+"                        package-cleanup --dupes\n"
+"                        rpm -Va --nofiles --nodigest"
+msgstr ""
+" 実行を試せません: package-cleanup --problems\n"
+"                   package-cleanup --dupes\n"
+"                   rpm -Va --nofiles --nodigest"
+
+#: yummain.py:256
+msgid ""
+"\n"
+"Dependencies Resolved"
+msgstr ""
+"\n"
+"依存性を解決しました"
+
+#: yummain.py:270
+msgid "Complete!"
+msgstr "完了しました!"
+
+#: yummain.py:325
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel."
+msgstr "\n\n\nユーザーによる取り消しで終了しています。"
+
+#: yum/depsolve.py:84
+msgid "doTsSetup() will go away in a future version of Yum.\n"
+msgstr "doTsSetup() は Yum の将来のバージョンでなくなります。\n"
+
+#: yum/depsolve.py:99
+msgid "Setting up TransactionSets before config class is up"
+msgstr "構成クラスが終わる前にトランザクションセットを設定しています"
+
+#: yum/depsolve.py:150
+#, python-format
+msgid "Invalid tsflag in config file: %s"
+msgstr "構成ファイルの tsflag が不正です: %s"
+
+#: yum/depsolve.py:161
+#, python-format
+msgid "Searching pkgSack for dep: %s"
+msgstr "依存性の pkgSack を検索しています: %s"
+
+#: yum/depsolve.py:184
+#, python-format
+msgid "Potential match for %s from %s"
+msgstr ""
+
+#: yum/depsolve.py:192
+#, python-format
+msgid "Matched %s to require for %s"
+msgstr ""
+
+#: yum/depsolve.py:233
+#, python-format
+msgid "Member: %s"
+msgstr "メンバー: %s"
+
+#: yum/depsolve.py:247 yum/depsolve.py:738
+#, python-format
+msgid "%s converted to install"
+msgstr "%s をインストールに変更しました"
+
+#: yum/depsolve.py:254
+#, python-format
+msgid "Adding Package %s in mode %s"
+msgstr "モード %s にパッケージ %s を追加しています"
+
+#: yum/depsolve.py:264
+#, python-format
+msgid "Removing Package %s"
+msgstr "パッケージ %s の削除をしています"
+
+#: yum/depsolve.py:275
+#, python-format
+msgid "%s requires: %s"
+msgstr "%s の要求: %s"
+
+#: yum/depsolve.py:333
+msgid "Needed Require has already been looked up, cheating"
+msgstr "必要な要求は既に調べましたが不正をしています"
+
+#: yum/depsolve.py:343
+#, python-format
+msgid "Needed Require is not a package name. Looking up: %s"
+msgstr "必要な要求はパッケージ名ではありません。調べています: %s"
+
+#: yum/depsolve.py:350
+#, python-format
+msgid "Potential Provider: %s"
+msgstr ""
+
+#: yum/depsolve.py:373
+#, python-format
+msgid "Mode is %s for provider of %s: %s"
+msgstr ""
+
+#: yum/depsolve.py:377
+#, python-format
+msgid "Mode for pkg providing %s: %s"
+msgstr ""
+
+#: yum/depsolve.py:381
+#, python-format
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr ""
+
+#: yum/depsolve.py:394
+#, python-format
+msgid "TSINFO: Obsoleting %s with %s to resolve dep."
+msgstr ""
+
+#: yum/depsolve.py:397
+#, python-format
+msgid "TSINFO: Updating %s to resolve dep."
+msgstr ""
+
+#: yum/depsolve.py:405
+#, python-format
+msgid "Cannot find an update path for dep for: %s"
+msgstr ""
+
+#: yum/depsolve.py:415
+#, python-format
+msgid "Unresolvable requirement %s for %s"
+msgstr "要求された %s は %s で解決しませんでした"
+
+#: yum/depsolve.py:438
+#, python-format
+msgid "Quick matched %s to require for %s"
+msgstr ""
+
+#: yum/depsolve.py:480
+#, python-format
+msgid "%s is in providing packages but it is already installed, removing."
+msgstr ""
+"%s を提供するパッケージはすでにインストールされています。削除しています。"
+
+#: yum/depsolve.py:496
+#, python-format
+msgid "Potential resolving package %s has newer instance in ts."
+msgstr ""
+
+#: yum/depsolve.py:507
+#, python-format
+msgid "Potential resolving package %s has newer instance installed."
+msgstr ""
+
+#: yum/depsolve.py:515 yum/depsolve.py:564
+#, python-format
+msgid "Missing Dependency: %s is needed by package %s"
+msgstr "依存性の欠落: %s はパッケージ %s が必要としています"
+
+#: yum/depsolve.py:528
+#, python-format
+msgid "%s already in ts, skipping this one"
+msgstr ""
+
+#: yum/depsolve.py:574
+#, python-format
+msgid "TSINFO: Marking %s as update for %s"
+msgstr "TSINFO: %s を更新として %s で設定しています"
+
+#: yum/depsolve.py:582
+#, python-format
+msgid "TSINFO: Marking %s as install for %s"
+msgstr "TSINFO: %s をインストールとして %s で設定しています"
+
+#: yum/depsolve.py:675 yum/depsolve.py:756
+msgid "Success - empty transaction"
+msgstr "成功 - 空のトランザクション"
+
+#: yum/depsolve.py:713 yum/depsolve.py:728
+msgid "Restarting Loop"
+msgstr "ループを再開しています"
+
+#: yum/depsolve.py:744
+msgid "Dependency Process ending"
+msgstr "依存性の処理を終了しています"
+
+#: yum/depsolve.py:750
+#, python-format
+msgid "%s from %s has depsolving problems"
+msgstr "%s(%s) は依存性に問題があります"
+
+#: yum/depsolve.py:757
+msgid "Success - deps resolved"
+msgstr "成功 - 依存性を解決しました"
+
+#: yum/depsolve.py:771
+#, python-format
+msgid "Checking deps for %s"
+msgstr "%s の依存性を確認しています"
+
+#: yum/depsolve.py:854
+#, python-format
+msgid "looking for %s as a requirement of %s"
+msgstr ""
+
+#: yum/depsolve.py:996
+#, python-format
+msgid "Running compare_providers() for %s"
+msgstr "%s の compare_providers() を実行しています"
+
+#: yum/depsolve.py:1024 yum/depsolve.py:1030
+#, python-format
+msgid "better arch in po %s"
+msgstr ""
+
+#: yum/depsolve.py:1091
+#, python-format
+msgid "%s obsoletes %s"
+msgstr ""
+
+#: yum/depsolve.py:1107
+#, python-format
+msgid ""
+"archdist compared %s to %s on %s\n"
+"  Winner: %s"
+msgstr ""
+
+#: yum/depsolve.py:1114
+#, python-format
+msgid "common sourcerpm %s and %s"
+msgstr "%s と %s の共通ソース RPM(SRPM)"
+
+#: yum/depsolve.py:1120
+#, python-format
+msgid "common prefix of %s between %s and %s"
+msgstr "%s から %s と %s の共通接頭辞"
+
+#: yum/depsolve.py:1128
+#, python-format
+msgid "Best Order: %s"
+msgstr "最適の順序: %s"
+
+#: yum/__init__.py:176
+msgid "doConfigSetup() will go away in a future version of Yum.\n"
+msgstr "doConfigSetup() は Yum の将来のバージョンでなくなります。\n"
+
+#: yum/__init__.py:386
+#, python-format
+msgid "Repository %r is missing name in configuration, using id"
+msgstr "リポジトリー %r は構成中に名前がありませんので ID を使います"
+
+#: yum/__init__.py:424
+msgid "plugins already initialised"
+msgstr "プラグインは既に初期化されています"
+
+#: yum/__init__.py:431
+msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
+msgstr "dbRpmDBSetup() は Yum の将来のバージョンでなくなります。\n"
+
+#: yum/__init__.py:441
+msgid "Reading Local RPMDB"
+msgstr "ローカルの RPMDB を読み込んでいます"
+
+#: yum/__init__.py:459
+msgid "doRepoSetup() will go away in a future version of Yum.\n"
+msgstr "doRepoSetup() は Yum の将来のバージョンでなくなります。\n"
+
+#: yum/__init__.py:479
+msgid "doSackSetup() will go away in a future version of Yum.\n"
+msgstr "doSackSetup() は Yum の将来のバージョンでなくなります。\n"
+
+#: yum/__init__.py:496
+msgid "Setting up Package Sacks"
+msgstr ""
+
+#: yum/__init__.py:539
+#, python-format
+msgid "repo object for repo %s lacks a _resetSack method\n"
+msgstr ""
+
+#: yum/__init__.py:540
+msgid "therefore this repo cannot be reset.\n"
+msgstr ""
+
+#: yum/__init__.py:545
+msgid "doUpdateSetup() will go away in a future version of Yum.\n"
+msgstr "doUpdateSetup() は Yum の将来のバージョンでなくなります。\n"
+
+#: yum/__init__.py:557
+msgid "Building updates object"
+msgstr "オブジェクトの更新を構築しています"
+
+#: yum/__init__.py:588
+msgid "doGroupSetup() will go away in a future version of Yum.\n"
+msgstr "doGroupSetup() は Yum の将来のバージョンでなくなります。\n"
+
+#: yum/__init__.py:612
+msgid "Getting group metadata"
+msgstr "グループメタデータを取得しています"
+
+#: yum/__init__.py:637
+#, python-format
+msgid "Adding group file from repository: %s"
+msgstr "リポジトリーからグループファイルを追加しています: %s"
+
+#: yum/__init__.py:642
+#, python-format
+msgid "Failed to add groups file for repository: %s - %s"
+msgstr "リポジトリーのグループファイルに追加できませんでした: %s - %s"
+
+#: yum/__init__.py:648
+msgid "No Groups Available in any repository"
+msgstr "いずれかのリポジトリーに利用できるグループはありません"
+
+#: yum/__init__.py:698
+msgid "Importing additional filelist information"
+msgstr "追加ファイル一覧情報にインポートしています"
+
+#: yum/__init__.py:706
+msgid ""
+"There are unfinished transactions remaining. You might consider running yum-"
+"complete-transaction first to finish them."
+msgstr "終了していない残作業があります。それらを終了するためにはじめに yum-complete-transaction の実行を検討するかもしれません。"
+
+#: yum/__init__.py:772
+#, python-format
+msgid "Skip-broken round %i"
+msgstr ""
+
+#: yum/__init__.py:824
+#, python-format
+msgid "Skip-broken took %i rounds "
+msgstr ""
+
+#: yum/__init__.py:825
+msgid ""
+"\n"
+"Packages skipped because of dependency problems:"
+msgstr ""
+"\n"
+"パッケージは依存関係に問題があるため、飛ばします:"
+
+#: yum/__init__.py:829
+#, python-format
+msgid "    %s from %s"
+msgstr ""
+
+#: yum/__init__.py:968
+msgid ""
+"Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr "警告: スクリプト、もしくはその他で処理の間に致命的ではないエラーが発生しました。"
+
+#: yum/__init__.py:983
+#, python-format
+msgid "Failed to remove transaction file %s"
+msgstr "トランザクションファイル %s の削除に失敗しました"
+
+#: yum/__init__.py:1025
+#, python-format
+msgid "excluding for cost: %s from %s"
+msgstr ""
+
+#: yum/__init__.py:1056
+msgid "Excluding Packages in global exclude list"
+msgstr "全体の除外一覧でパッケージを除外します"
+
+#: yum/__init__.py:1058
+#, python-format
+msgid "Excluding Packages from %s"
+msgstr "%s からパッケージを除外しています"
+
+#: yum/__init__.py:1085
+#, python-format
+msgid "Reducing %s to included packages only"
+msgstr ""
+
+#: yum/__init__.py:1091
+#, python-format
+msgid "Keeping included package %s"
+msgstr ""
+
+#: yum/__init__.py:1097
+#, python-format
+msgid "Removing unmatched package %s"
+msgstr ""
+
+#: yum/__init__.py:1100
+msgid "Finished"
+msgstr "完了しました"
+
+#: yum/__init__.py:1130
+#, python-format
+msgid "Unable to check if PID %s is active"
+msgstr ""
+
+#: yum/__init__.py:1134
+#, python-format
+msgid "Existing lock %s: another copy is running as pid %s."
+msgstr "ロックファイル %s が存在します: PID %s として別に実行されています。"
+
+#: yum/__init__.py:1204
+msgid "Package does not match intended download"
+msgstr "パッケージは意図したダウンロードと一致しません"
+
+#: yum/__init__.py:1219
+msgid "Could not perform checksum"
+msgstr "チェックサムの実行ができません"
+
+#: yum/__init__.py:1222
+msgid "Package does not match checksum"
+msgstr "パッケージのチェックサムが一致しません"
+
+#: yum/__init__.py:1265
+#, python-format
+msgid "package fails checksum but caching is enabled for %s"
+msgstr "%s のためにキャッシュを有効にしていますが、パッケージのチェックサム演算に失敗します。"
+
+#: yum/__init__.py:1268 yum/__init__.py:1297
+#, python-format
+msgid "using local copy of %s"
+msgstr "%s のローカルコピーを使う"
+
+#: yum/__init__.py:1309
+#, python-format
+msgid ""
+"Insufficient space in download directory %s\n"
+"    * free   %s\n"
+"    * needed %s"
+msgstr ""
+"ダウンロードディレクトリー %s の空きが不十分です\n"
+"    * 空き容量 %s\n"
+"    * 必要容量 %s"
+
+#: yum/__init__.py:1356
+msgid "Header is not complete."
+msgstr "ヘッダーが完了していません。"
+
+#: yum/__init__.py:1393
+#, python-format
+msgid ""
+"Header not in local cache and caching-only mode enabled. Cannot download %s"
+msgstr "ヘッダーはキャッシュのみのモードが有効で、ローカルにありません。%s のダウンロードができません"
+
+#: yum/__init__.py:1448
+#, python-format
+msgid "Public key for %s is not installed"
+msgstr "%s の公開鍵がインストールされていません"
+
+#: yum/__init__.py:1452
+#, python-format
+msgid "Problem opening package %s"
+msgstr "パッケージ %s を開いている最中に問題です"
+
+#: yum/__init__.py:1460
+#, python-format
+msgid "Public key for %s is not trusted"
+msgstr "%s の公開鍵が信頼されません"
+
+#: yum/__init__.py:1464
+#, python-format
+msgid "Package %s is not signed"
+msgstr "パッケージ %s は署名されていません"
+
+#: yum/__init__.py:1502
+#, python-format
+msgid "Cannot remove %s"
+msgstr "%s を削除できません"
+
+#: yum/__init__.py:1505
+#, python-format
+msgid "%s removed"
+msgstr "%s を削除しました"
+
+#: yum/__init__.py:1541
+#, python-format
+msgid "Cannot remove %s file %s"
+msgstr "%s のファイル %s を削除できませんでした"
+
+#: yum/__init__.py:1544
+#, python-format
+msgid "%s file %s removed"
+msgstr "%s のファイル %s を削除しました"
+
+#: yum/__init__.py:1546
+#, python-format
+msgid "%d %s files removed"
+msgstr "%d %sファイルを削除しました"
+
+#: yum/__init__.py:1614
+#, python-format
+msgid "More than one identical match in sack for %s"
+msgstr ""
+
+#: yum/__init__.py:1619
+#, python-format
+msgid "Nothing matches %s.%s %s:%s-%s from update"
+msgstr "更新から %s.%s %s:%s-%s に一致しません"
+
+#: yum/__init__.py:1838
+msgid ""
+"searchPackages() will go away in a future version of "
+"Yum.                      Use searchGenerator() instead. \n"
+msgstr ""
+"searchPackages() は Yum の将来のバージョンでなくなりま"
+"す。                      代わりに searchGenerator() を使います。\n"
+
+#: yum/__init__.py:1876
+#, python-format
+msgid "Searching %d packages"
+msgstr "%d 個のパッケージを検索しています"
+
+#: yum/__init__.py:1879
+#, python-format
+msgid "searching package %s"
+msgstr "パッケージ %s を検索しています"
+
+#: yum/__init__.py:1890
+msgid "searching in file entries"
+msgstr "ファイルのエントリーから検索しています"
+
+#: yum/__init__.py:1896
+msgid "searching in provides entries"
+msgstr "提供されたエントリーを検索しています"
+
+#: yum/__init__.py:1929
+#, python-format
+msgid "Provides-match: %s"
+msgstr ""
+
+#: yum/__init__.py:1978
+msgid "No group data available for configured repositories"
+msgstr "構成されたリポジトリーに利用できるグループはありません"
+
+#: yum/__init__.py:2009 yum/__init__.py:2028 yum/__init__.py:2058
+#: yum/__init__.py:2064 yum/__init__.py:2143 yum/__init__.py:2147
+#, python-format
+msgid "No Group named %s exists"
+msgstr "グループ名 %s が存在しません"
+
+#: yum/__init__.py:2039 yum/__init__.py:2159
+#, python-format
+msgid "package %s was not marked in group %s"
+msgstr "パッケージ%s はグループ %s で設定されていません"
+
+#: yum/__init__.py:2085
+#, python-format
+msgid "Adding package %s from group %s"
+msgstr "パッケージ %s をグループ %s から追加しています"
+
+#: yum/__init__.py:2090
+#, python-format
+msgid "No package named %s available to be installed"
+msgstr ""
+
+#: yum/__init__.py:2186
+#, python-format
+msgid "Package tuple %s could not be found in packagesack"
+msgstr ""
+
+#: yum/__init__.py:2201
+msgid ""
+"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr ""
+
+#: yum/__init__.py:2253 yum/__init__.py:2294
+msgid "Invalid version flag"
+msgstr "不正なバージョンフラグ"
+
+#: yum/__init__.py:2268 yum/__init__.py:2272
+#, python-format
+msgid "No Package found for %s"
+msgstr "%s のパッケージが見つかりません"
+
+#: yum/__init__.py:2449
+msgid "Package Object was not a package object instance"
+msgstr ""
+
+#: yum/__init__.py:2453
+msgid "Nothing specified to install"
+msgstr "インストールへの指定がありません"
+
+#: yum/__init__.py:2469
+#, python-format
+msgid "Checking for virtual provide or file-provide for %s"
+msgstr ""
+
+#: yum/__init__.py:2475 yum/__init__.py:2740 yum/__init__.py:2900
+#, python-format
+msgid "No Match for argument: %s"
+msgstr "引数に一致しません: %s"
+
+#: yum/__init__.py:2548
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "パッケージ %s はインストール済みか利用できません"
+
+#: yum/__init__.py:2551
+msgid "No package(s) available to install"
+msgstr "インストールに利用できるパッケージはありません"
+
+#: yum/__init__.py:2564
+#, python-format
+msgid "Package: %s  - already in transaction set"
+msgstr "パッケージ: %s - すでにトランザクション設定をしています"
+
+#: yum/__init__.py:2580
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr ""
+"パッケージ %s は %s に不要です。代わりに %s のインストールを試みています"
+
+#: yum/__init__.py:2588
+#, python-format
+msgid "Package %s already installed and latest version"
+msgstr "パッケージ %s はインストール済みか最新バージョンです"
+
+#: yum/__init__.py:2595
+#, python-format
+msgid "Package matching %s already installed. Checking for update."
+msgstr ""
+"一致したパッケージ %s はすでにインストールされています。更新を確認していま"
+"す。"
+
+#: yum/__init__.py:2675
+msgid "Updating Everything"
+msgstr "すべて更新しています"
+
+#: yum/__init__.py:2693 yum/__init__.py:2802 yum/__init__.py:2823
+#: yum/__init__.py:2849
+#, python-format
+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
+msgstr "既に不要なパッケージの更新はありません: %s.%s %s:%s-%s"
+
+#: yum/__init__.py:2728 yum/__init__.py:2897
+#, python-format
+msgid "%s"
+msgstr "%s"
+
+#: yum/__init__.py:2793
+#, python-format
+msgid "Package is already obsoleted: %s.%s %s:%s-%s"
+msgstr "パッケージは既に不要です: %s.%s %s:%s-%s"
+
+#: yum/__init__.py:2826 yum/__init__.py:2852
+#, python-format
+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgstr ""
+"既にアップデートされているのでパッケージをアップデートしません: %s.%s %s:%s-%"
+"s"
+
+#: yum/__init__.py:2913
+msgid "No package matched to remove"
+msgstr "削除に一致するパッケージはありません"
+
+#: yum/__init__.py:2947
+#, python-format
+msgid "Cannot open file: %s. Skipping."
+msgstr "ファイル %s が開けません。飛ばします。"
+
+#: yum/__init__.py:2949
+#, python-format
+msgid "Examining %s: %s"
+msgstr "%s を調べています: %s"
+
+#: yum/__init__.py:2957
+#, python-format
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr ""
+"トランザクションにパッケージ %s を追加できません。アーキテクチャに互換性があ"
+"りません: %s"
+
+#: yum/__init__.py:2965
+#, python-format
+msgid ""
+"Package %s not installed, cannot update it. Run yum install to install it "
+"instead."
+msgstr ""
+"パッケージ %s はインストールされていないので更新できません。代わりに「yum "
+"install」を実行してインストールしてください。"
+
+#: yum/__init__.py:2998
+#, python-format
+msgid "Excluding %s"
+msgstr "%s の除外中"
+
+#: yum/__init__.py:3002
+#, python-format
+msgid "Marking %s to be installed"
+msgstr "%s をインストール済みとして設定しています"
+
+#: yum/__init__.py:3007
+#, python-format
+msgid "Marking %s as an update to %s"
+msgstr "次のリポジトリーへの更新として %s を設定します: %s"
+
+#: yum/__init__.py:3012
+#, python-format
+msgid "%s: does not update installed package."
+msgstr "%s: インストールされたパッケージを更新しません。"
+
+#: yum/__init__.py:3029
+msgid "Problem in reinstall: no package matched to remove"
+msgstr "再インストール中に問題: 削除するパッケージがありません"
+
+#: yum/__init__.py:3040
+#, python-format
+msgid "Package %s is allowed multiple installs, skipping"
+msgstr "パッケージ %s は複数インストールが許可されています。飛ばします"
+
+#: yum/__init__.py:3050
+msgid "Problem in reinstall: no package matched to install"
+msgstr "再インストール中に問題: インストールするパッケージがありません"
+
+#: yum/__init__.py:3085
+#, python-format
+msgid "Retrieving GPG key from %s"
+msgstr "%s から GPG 鍵を取得しています"
+
+#: yum/__init__.py:3105
+msgid "GPG key retrieval failed: "
+msgstr "GPG 鍵の取得に失敗しました: "
+
+#: yum/__init__.py:3116
+#, python-format
+msgid "GPG key parsing failed: key does not have value %s"
+msgstr "GPG 鍵の解析に失敗しました: 鍵は値 %s を持っていません"
+
+#: yum/__init__.py:3148
+#, python-format
+msgid "GPG key at %s (0x%s) is already installed"
+msgstr "GPG 鍵 %s (0x%s) はすでにインストールしています"
+
+#: yum/__init__.py:3153 yum/__init__.py:3214
+#, python-format
+msgid "Importing GPG key 0x%s \"%s\" from %s"
+msgstr "GPG 公開鍵 0x%s 「%s」を %s からインポートしています"
+
+#: yum/__init__.py:3169
+msgid "Not installing key"
+msgstr "インストールする鍵がありません"
+
+#: yum/__init__.py:3175
+#, python-format
+msgid "Key import failed (code %d)"
+msgstr "鍵のインポートに失敗しました (コード: %d)"
+
+#: yum/__init__.py:3176 yum/__init__.py:3236
+msgid "Key imported successfully"
+msgstr "鍵のインポートに成功しました"
+
+#: yum/__init__.py:3181 yum/__init__.py:3241
+#, 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 ""
+
+#: yum/__init__.py:3190
+msgid "Import of key(s) didn't help, wrong key(s)?"
+msgstr ""
+
+#: yum/__init__.py:3209
+#, python-format
+msgid "GPG key at %s (0x%s) is already imported"
+msgstr "GPG 鍵 %s (0x%s) はすでにインポートしています"
+
+#: yum/__init__.py:3228
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "リポジトリー %s の鍵がインストールされていません"
+
+#: yum/__init__.py:3235
+msgid "Key import failed"
+msgstr "鍵のインポートに失敗しました"
+
+#: yum/__init__.py:3325
+msgid "Unable to find a suitable mirror."
+msgstr "適当なミラーを見つけることができませんでした。"
+
+#: yum/__init__.py:3327
+msgid "Errors were encountered while downloading packages."
+msgstr "パッケージのダウンロード中にエラーに遭遇しました。"
+
+#: yum/__init__.py:3367
+#, python-format
+msgid "Please report this error at %s"
+msgstr "%s にこのエラーを報告してください"
+
+#: yum/__init__.py:3391
+msgid "Test Transaction Errors: "
+msgstr "テストトランザクションでエラー: "
+
+#: yum/plugins.py:204
+msgid "Loaded plugins: "
+msgstr "読み込んだプラグイン:"
+
+#: yum/plugins.py:218 yum/plugins.py:224
+#, python-format
+msgid "No plugin match for: %s"
+msgstr "プラグインが一致しません: %s"
+
+#: yum/plugins.py:254
+#, python-format
+msgid "Not loading \"%s\" plugin, as it is disabled"
+msgstr "無効になっているため、プラグイン「%s」は読み込みません"
+
+#: yum/plugins.py:266
+#, python-format
+msgid "Plugin \"%s\" can't be imported"
+msgstr "プラグイン「%s」はインポートできませんでした"
+
+#: yum/plugins.py:273
+#, python-format
+msgid "Plugin \"%s\" doesn't specify required API version"
+msgstr "プラグイン「%s」は要求された API バージョンを明記していません"
+
+#: yum/plugins.py:278
+#, python-format
+msgid "Plugin \"%s\" requires API %s. Supported API is %s."
+msgstr ""
+"プラグイン「%s」は API %s を要求しています。サポートした API は %s です。"
+
+#: yum/plugins.py:311
+#, python-format
+msgid "Loading \"%s\" plugin"
+msgstr "プラグイン「%s」を読み込んでいます"
+
+#: yum/plugins.py:318
+#, python-format
+msgid ""
+"Two or more plugins with the name \"%s\" exist in the plugin search path"
+msgstr ""
+
+#: yum/plugins.py:338
+#, python-format
+msgid "Configuration file %s not found"
+msgstr "構成ファイル %s が見つかりません"
+
+#: yum/plugins.py:341
+#, python-format
+msgid "Unable to find configuration file for plugin %s"
+msgstr "プラグイン %s の構成ファイルの検索に失敗しました"
+
+#: yum/plugins.py:495
+msgid "registration of commands not supported"
+msgstr "コマンドの登録をサポートしていません"
+
+#: yum/rpmtrans.py:78
+msgid "Repackaging"
+msgstr "再パッケージをしています"
+
+#: rpmUtils/oldUtils.py:26
+#, python-format
+msgid "Header cannot be opened or does not match %s, %s."
+msgstr "%s (%s) が一致しないかヘッダーが開けません"
+
+#: rpmUtils/oldUtils.py:46
+#, python-format
+msgid "RPM %s fails md5 check"
+msgstr "RPM %s は MD5 検査に失敗しました"
+
+#: rpmUtils/oldUtils.py:144
+msgid "Could not open RPM database for reading. Perhaps it is already in use?"
+msgstr ""
+"読み込みのために RPM データベースを開くことができません。おそらく既に使用して"
+"いませんか?"
+
+#: rpmUtils/oldUtils.py:174
+msgid "Got an empty Header, something has gone wrong"
+msgstr "空のヘッダーを取得しました。何かがうまくいっていません"
+
+#: rpmUtils/oldUtils.py:244 rpmUtils/oldUtils.py:251 rpmUtils/oldUtils.py:254
+#: rpmUtils/oldUtils.py:257
+#, python-format
+msgid "Damaged Header %s"
+msgstr "ヘッダー %s は損傷があります"
+
+#: rpmUtils/oldUtils.py:272
+#, python-format
+msgid "Error opening rpm %s - error %s"
+msgstr "RPM %s へのアクセスでエラー - %s エラー"
+
+#~ msgid "Parsing package install arguments"
+#~ msgstr "パッケージインストールの引数を解析しています"
+
+#~ msgid "Could not find update match for %s"
+#~ msgstr "%s に一致する更新を見つけることができません"
diff --git a/po/sv.po b/po/sv.po
index 22e1334..b8a0b67 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -3,21 +3,21 @@
 # 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.23 2009/06/18 19:46:27 skvidal Exp $
+# $Id: yum-HEAD.patch,v 1.23 2009/06/18 19:46:27 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"
+"POT-Creation-Date: 2009-05-21 14:38+0000\n"
+"PO-Revision-Date: 2009-05-23 18:52+0200\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
+#: ../callback.py:48 ../output.py:922 ../yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "Uppdaterar"
 
@@ -25,16 +25,16 @@ msgstr "Uppdaterar"
 msgid "Erasing"
 msgstr "Raderar"
 
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:908
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:921
 #: ../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"
+msgstr "Låter utgå"
 
-#: ../callback.py:54 ../output.py:1014
+#: ../callback.py:54 ../output.py:1029
 msgid "Updated"
 msgstr "Uppdaterade"
 
@@ -42,7 +42,7 @@ msgstr "Uppdaterade"
 msgid "Erased"
 msgstr "Raderade"
 
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1012
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1027
 msgid "Installed"
 msgstr "Installerade"
 
@@ -52,7 +52,7 @@ msgstr "Inget huvud - va?"
 
 #: ../callback.py:168
 msgid "Repackage"
-msgstr "Packetera om"
+msgstr "Paketera om"
 
 #: ../callback.py:189
 #, python-format
@@ -64,7 +64,7 @@ msgstr "Fel: ogiltig utdatatillstånd: %s för %s"
 msgid "Erased: %s"
 msgstr "Raderade: %s"
 
-#: ../callback.py:217 ../output.py:910
+#: ../callback.py:217 ../output.py:923
 msgid "Removing"
 msgstr "Tar bort"
 
@@ -85,47 +85,47 @@ msgstr "Gör i ordning förråd"
 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
+#: ../cli.py:192 ../utils.py:79
 #, python-format
 msgid "Config Error: %s"
 msgstr "Konfigurationsfel: %s"
 
-#: ../cli.py:194 ../cli.py:1178 ../utils.py:82
+#: ../cli.py:195 ../cli.py:1190 ../utils.py:82
 #, python-format
 msgid "Options Error: %s"
 msgstr "Fel bland flaggor: %s"
 
-#: ../cli.py:222
+#: ../cli.py:223
 #, python-format
 msgid "  Installed: %s-%s at %s"
 msgstr "  Installerade: %s-%s %s"
 
-#: ../cli.py:224
+#: ../cli.py:225
 #, python-format
 msgid "  Built    : %s at %s"
 msgstr "  Byggde      : %s %s"
 
-#: ../cli.py:226
+#: ../cli.py:227
 #, python-format
 msgid "  Committed: %s at %s"
 msgstr "  Verkställde : %s %s"
 
-#: ../cli.py:263
+#: ../cli.py:266
 msgid "You need to give some command"
 msgstr "Du måste ange något kommando"
 
-#: ../cli.py:305
+#: ../cli.py:309
 msgid "Disk Requirements:\n"
 msgstr "Diskbehov:\n"
 
-#: ../cli.py:307
+#: ../cli.py:311
 #, 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
+#: ../cli.py:316
 msgid ""
 "Error Summary\n"
 "-------------\n"
@@ -133,56 +133,56 @@ msgstr ""
 "Felsammandrag\n"
 "-------------\n"
 
-#: ../cli.py:355
+#: ../cli.py:359
 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
+#: ../cli.py:395
 msgid "Exiting on user Command"
 msgstr "Avslutar på användarens order"
 
-#: ../cli.py:395
+#: ../cli.py:399
 msgid "Downloading Packages:"
 msgstr "Hämtar paket:"
 
-#: ../cli.py:400
+#: ../cli.py:404
 msgid "Error Downloading Packages:\n"
 msgstr "Fel när paket hämtades:\n"
 
-#: ../cli.py:414 ../yum/__init__.py:3328
+#: ../cli.py:418 ../yum/__init__.py:3362
 msgid "Running rpm_check_debug"
 msgstr "Kör rpm_check_debug"
 
-#: ../cli.py:417 ../yum/__init__.py:3331
+#: ../cli.py:421 ../yum/__init__.py:3365
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "FEL med rpm_check_debug mot depsolve:"
 
-#: ../cli.py:421
+#: ../cli.py:425
 #, python-format
 msgid "Please report this error in %s"
 msgstr "Vänligen rapportera detta fel i %s"
 
-#: ../cli.py:427
+#: ../cli.py:431
 msgid "Running Transaction Test"
 msgstr "Kör transaktionstest"
 
-#: ../cli.py:443
+#: ../cli.py:447
 msgid "Finished Transaction Test"
 msgstr "Avslutade transaktionstest"
 
-#: ../cli.py:445
+#: ../cli.py:449
 msgid "Transaction Check Error:\n"
 msgstr "Transaktionskontrollfel:\n"
 
-#: ../cli.py:452
+#: ../cli.py:456
 msgid "Transaction Test Succeeded"
 msgstr "Transaktionskontrollen lyckades"
 
-#: ../cli.py:473
+#: ../cli.py:477
 msgid "Running Transaction"
 msgstr "Kör transaktionen"
 
-#: ../cli.py:503
+#: ../cli.py:507
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
@@ -190,271 +190,278 @@ 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
+#: ../cli.py:526 ../cli.py:560
 msgid "  * Maybe you meant: "
 msgstr "  * Du kanske menade: "
 
-#: ../cli.py:539 ../cli.py:547
+#: ../cli.py:543 ../cli.py:551
 #, 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
+#: ../cli.py:557 ../cli.py:590
 #, 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
+#: ../cli.py:595 ../cli.py:670 ../yumcommands.py:1010
 msgid "Package(s) to install"
 msgstr "Paket att installera"
 
-#: ../cli.py:592 ../cli.py:667 ../yumcommands.py:159 ../yumcommands.py:989
+#: ../cli.py:596 ../cli.py:671 ../yumcommands.py:159 ../yumcommands.py:1011
 msgid "Nothing to do"
 msgstr "Inget att göra"
 
-#: ../cli.py:625
+#: ../cli.py:629
 #, python-format
 msgid "%d packages marked for Update"
-msgstr "%d paket noterade för att uppdateras"
+msgstr "%d paket noterade att uppdateras"
 
-#: ../cli.py:628
+#: ../cli.py:632
 msgid "No Packages marked for Update"
-msgstr "Inga paket noterade för att uppdateras"
+msgstr "Inga paket noterade att uppdateras"
 
-#: ../cli.py:642
+#: ../cli.py:646
 #, python-format
 msgid "%d packages marked for removal"
-msgstr "%d paket noterade för att tas bort"
+msgstr "%d paket noterade att tas bort"
 
-#: ../cli.py:645
+#: ../cli.py:649
 msgid "No Packages marked for removal"
-msgstr "Inga paket noterade för att tas bort"
+msgstr "Inga paket noterade att tas bort"
 
-#: ../cli.py:657
+#: ../cli.py:661
 msgid "No Packages Provided"
 msgstr "Inga paket angivna"
 
-#: ../cli.py:712
+#: ../cli.py:716
 msgid "Matching packages for package list to user args"
 msgstr "Matchar paket för paketlistan mot användarargument"
 
-#: ../cli.py:761
+#: ../cli.py:765
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "Varning: Ingen matchning hittades för: %s"
 
-#: ../cli.py:764
+#: ../cli.py:768
 msgid "No Matches found"
 msgstr "Inga matchningar hittades"
 
-#: ../cli.py:803
+#: ../cli.py:807
 #, 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 ""
 "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"
+" Du kan använda \"%s*/%s%s\" och/eller \"%s*bin/%s%s\" för att få detta "
+"beteende"
 
-#: ../cli.py:819
+#: ../cli.py:823
 #, python-format
 msgid "No Package Found for %s"
 msgstr "Inga paket hittades för %s"
 
-#: ../cli.py:831
+#: ../cli.py:835
 msgid "Cleaning up Everything"
 msgstr "Rensar upp allt"
 
-#: ../cli.py:845
+#: ../cli.py:849
 msgid "Cleaning up Headers"
 msgstr "Rensar upp huvuden"
 
-#: ../cli.py:848
+#: ../cli.py:852
 msgid "Cleaning up Packages"
 msgstr "Rensar upp paket"
 
-#: ../cli.py:851
+#: ../cli.py:855
 msgid "Cleaning up xml metadata"
 msgstr "Rensar upp xml-metadata"
 
-#: ../cli.py:854
+#: ../cli.py:858
 msgid "Cleaning up database cache"
 msgstr "Rensar upp databas-cache"
 
-#: ../cli.py:857
+#: ../cli.py:861
 msgid "Cleaning up expire-cache metadata"
 msgstr "Rensar upp expire-cache-metadata"
 
-#: ../cli.py:860
+#: ../cli.py:864
 msgid "Cleaning up plugins"
 msgstr "Rensar upp insticksmoduler"
 
-#: ../cli.py:885
+#: ../cli.py:889
 msgid "Installed Groups:"
 msgstr "Installerade grupper:"
 
-#: ../cli.py:892
+#: ../cli.py:896
 msgid "Available Groups:"
 msgstr "Tillgängliga grupper:"
 
-#: ../cli.py:898
+#: ../cli.py:902
 msgid "Done"
 msgstr "Klart"
 
-#: ../cli.py:909 ../cli.py:927 ../cli.py:933 ../yum/__init__.py:2376
+#: ../cli.py:913 ../cli.py:931 ../cli.py:937 ../yum/__init__.py:2410
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Varning: Grupp %s finns inte."
 
-#: ../cli.py:937
+#: ../cli.py:941
 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"
+msgstr ""
+"Inget paket i någon begärd grupp är tillgängligt för installation eller "
+"uppdatering"
 
-#: ../cli.py:939
+#: ../cli.py:943
 #, python-format
 msgid "%d Package(s) to Install"
 msgstr "%d paket att installera"
 
-#: ../cli.py:949 ../yum/__init__.py:2388
+#: ../cli.py:953 ../yum/__init__.py:2422
 #, python-format
 msgid "No group named %s exists"
 msgstr "Ingen grupp med namnet %s finns"
 
-#: ../cli.py:955
+#: ../cli.py:959
 msgid "No packages to remove from groups"
 msgstr "Inget paket att ta bort från grupper"
 
-#: ../cli.py:957
+#: ../cli.py:961
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d paket att ta bort"
 
-#: ../cli.py:999
+#: ../cli.py:1003
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "Paket %s är redan installerat, hoppar över"
 
-#: ../cli.py:1010
+#: ../cli.py:1014
 #, 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
+#: ../cli.py:1040
 #, 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"
+msgstr ""
+"Ingen annat %s installerat, lägger till listan för potentiell installation"
 
-#: ../cli.py:1055
+#: ../cli.py:1059
 #, python-format
 msgid "Command line error: %s"
 msgstr "Kommandoradsfel: %s"
 
-#: ../cli.py:1068
+#: ../cli.py:1072
 #, python-format
 msgid ""
 "\n"
 "\n"
 "%s: %s option requires an argument"
-msgstr "\n\n%s: flaggan %s behöver ett argument"
+msgstr ""
+"\n"
+"\n"
+"%s: flaggan %s behöver ett argument"
 
-#: ../cli.py:1118
+#: ../cli.py:1130
 msgid "--color takes one of: auto, always, never"
 msgstr "--color tar en av: auto, always, never"
 
-#: ../cli.py:1220
+#: ../cli.py:1232
 msgid "show this help message and exit"
 msgstr "visa detta hjälpmeddelande och avsluta"
 
-#: ../cli.py:1224
+#: ../cli.py:1236
 msgid "be tolerant of errors"
 msgstr "var tolerant vid fel"
 
-#: ../cli.py:1226
+#: ../cli.py:1238
 msgid "run entirely from cache, don't update cache"
 msgstr "kör helt från cache, uppdatera inte cachen"
 
-#: ../cli.py:1228
+#: ../cli.py:1240
 msgid "config file location"
 msgstr "konfigurationsfilens plats"
 
-#: ../cli.py:1230
+#: ../cli.py:1242
 msgid "maximum command wait time"
 msgstr "maximal tid att vänta på kommandon"
 
-#: ../cli.py:1232
+#: ../cli.py:1244
 msgid "debugging output level"
 msgstr "nivå på felsökningsutskrifter"
 
-#: ../cli.py:1236
+#: ../cli.py:1248
 msgid "show duplicates, in repos, in list/search commands"
 msgstr "visa dubletter, i förråd, i list-/search-kommandon"
 
-#: ../cli.py:1238
+#: ../cli.py:1250
 msgid "error output level"
 msgstr "nivå på felutskrifter"
 
-#: ../cli.py:1241
+#: ../cli.py:1253
 msgid "quiet operation"
 msgstr "tyst operation"
 
-#: ../cli.py:1243
+#: ../cli.py:1255
 msgid "verbose operation"
 msgstr "utförlig operation"
 
-#: ../cli.py:1245
+#: ../cli.py:1257
 msgid "answer yes for all questions"
 msgstr "svara ja på alla frågor"
 
-#: ../cli.py:1247
+#: ../cli.py:1259
 msgid "show Yum version and exit"
 msgstr "visa Yum-version och avsluta"
 
-#: ../cli.py:1248
+#: ../cli.py:1260
 msgid "set install root"
 msgstr "ange installationsrot"
 
-#: ../cli.py:1252
+#: ../cli.py:1264
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "aktivera ett eller flera förråd (jokrertecken tillåts)"
 
-#: ../cli.py:1256
+#: ../cli.py:1268
 msgid "disable one or more repositories (wildcards allowed)"
-msgstr "avaktivera ett eller flera förråd (jokertecken tillåts)"
+msgstr "inaktivera ett eller flera förråd (jokertecken tillåts)"
 
-#: ../cli.py:1259
+#: ../cli.py:1271
 msgid "exclude package(s) by name or glob"
 msgstr "uteslut paket via namn eller mönster"
 
-#: ../cli.py:1261
+#: ../cli.py:1273
 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"
+msgstr "inaktivera uteslutningar från main, för ett förråd, eller för allt"
 
-#: ../cli.py:1264
+#: ../cli.py:1276
 msgid "enable obsoletes processing during updates"
 msgstr "aktivera bearbetning av utfasningar under uppdateringar"
 
-#: ../cli.py:1266
+#: ../cli.py:1278
 msgid "disable Yum plugins"
-msgstr "avaktivera Yum-insticksmoduler"
+msgstr "inaktivera Yum-insticksmoduler"
 
-#: ../cli.py:1268
+#: ../cli.py:1280
 msgid "disable gpg signature checking"
-msgstr "avaktivera kontroll av gpg-signatur"
+msgstr "inaktivera kontroll av gpg-signatur"
 
-#: ../cli.py:1270
+#: ../cli.py:1282
 msgid "disable plugins by name"
-msgstr "avaktivera insticksmoduler efter namn"
+msgstr "inaktivera insticksmoduler efter namn"
 
-#: ../cli.py:1273
+#: ../cli.py:1285
 msgid "enable plugins by name"
 msgstr "aktivera insticksmoduler efter namn"
 
-#: ../cli.py:1276
+#: ../cli.py:1288
 msgid "skip packages with depsolving problems"
 msgstr "hoppa över paket med problem vid beroendeupplösning"
 
-#: ../cli.py:1278
+#: ../cli.py:1290
 msgid "control whether color is used"
 msgstr "styr om färg skall användas"
 
@@ -583,162 +590,169 @@ msgstr "Licens     : %s"
 msgid "Description: "
 msgstr "Beskrivning: "
 
-#: ../output.py:607
+#: ../output.py:611
 msgid "y"
 msgstr "j"
 
-#: ../output.py:607
+#: ../output.py:611
 msgid "yes"
 msgstr "ja"
 
-#: ../output.py:608
+#: ../output.py:612
 msgid "n"
 msgstr "n"
 
-#: ../output.py:608
+#: ../output.py:612
 msgid "no"
 msgstr "nej"
 
-#: ../output.py:612
+#: ../output.py:616
 msgid "Is this ok [y/N]: "
 msgstr "Är detta ok [j/N]: "
 
-#: ../output.py:700
+#: ../output.py:704
 #, python-format
 msgid ""
 "\n"
 "Group: %s"
-msgstr "\nGrupp: %s"
+msgstr ""
+"\n"
+"Grupp: %s"
+
+#: ../output.py:708
+#, python-format
+msgid " Group-Id: %s"
+msgstr " Grupp-id: %s"
 
-#: ../output.py:707
+#: ../output.py:713
 #, python-format
 msgid " Description: %s"
 msgstr " Beskrivning: %s"
 
-#: ../output.py:709
+#: ../output.py:715
 msgid " Mandatory Packages:"
 msgstr " Obligatoriska paket:"
 
-#: ../output.py:710
+#: ../output.py:716
 msgid " Default Packages:"
 msgstr " Standardpaket:"
 
-#: ../output.py:711
+#: ../output.py:717
 msgid " Optional Packages:"
 msgstr " Valfria paket:"
 
-#: ../output.py:712
+#: ../output.py:718
 msgid " Conditional Packages:"
 msgstr " Villkorliga paket:"
 
-#: ../output.py:732
+#: ../output.py:738
 #, python-format
 msgid "package: %s"
 msgstr "paket: %s"
 
-#: ../output.py:734
+#: ../output.py:740
 msgid "  No dependencies for this package"
 msgstr "  Inga beroenden för detta paket"
 
-#: ../output.py:739
+#: ../output.py:745
 #, python-format
 msgid "  dependency: %s"
 msgstr "  beroende: %s"
 
-#: ../output.py:741
+#: ../output.py:747
 msgid "   Unsatisfied dependency"
 msgstr "   Ej uppfyllt beroende"
 
-#: ../output.py:813
+#: ../output.py:819
 #, python-format
 msgid "Repo        : %s"
 msgstr "Förråd      : %s"
 
-#: ../output.py:814
+#: ../output.py:820
 msgid "Matched from:"
 msgstr "Matchat från:"
 
-#: ../output.py:822
+#: ../output.py:828
 msgid "Description : "
 msgstr "Beskrivning : "
 
-#: ../output.py:825
+#: ../output.py:831
 #, python-format
 msgid "URL         : %s"
 msgstr "URL         : %s"
 
-#: ../output.py:828
+#: ../output.py:834
 #, python-format
 msgid "License     : %s"
 msgstr "Licens      : %s"
 
-#: ../output.py:831
+#: ../output.py:837
 #, python-format
 msgid "Filename    : %s"
 msgstr "Filnamn     : %s"
 
-#: ../output.py:835
+#: ../output.py:841
 msgid "Other       : "
 msgstr "Övrigt      : "
 
-#: ../output.py:868
+#: ../output.py:874
 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
+#: ../output.py:879
 #, python-format
 msgid "Total size: %s"
 msgstr "Total storlek: %s"
 
-#: ../output.py:876
+#: ../output.py:882
 #, python-format
 msgid "Total download size: %s"
 msgstr "Total storlek att hämta: %s"
 
-#: ../output.py:911
+#: ../output.py:924
 msgid "Installing for dependencies"
 msgstr "Installerar på grund av beroenden"
 
-#: ../output.py:912
+#: ../output.py:925
 msgid "Updating for dependencies"
 msgstr "Uppdaterar på grund av beroenden"
 
-#: ../output.py:913
+#: ../output.py:926
 msgid "Removing for dependencies"
 msgstr "Tar bort på grund av beroenden"
 
-#: ../output.py:920 ../output.py:1016
+#: ../output.py:933 ../output.py:1031
 msgid "Skipped (dependency problems)"
 msgstr "Hoppas över (beroendeproblem)"
 
-#: ../output.py:941
+#: ../output.py:954
 msgid "Package"
 msgstr "Paket"
 
-#: ../output.py:941
+#: ../output.py:954
 msgid "Arch"
 msgstr "Ark"
 
-#: ../output.py:942
+#: ../output.py:955
 msgid "Version"
 msgstr "Version"
 
-#: ../output.py:942
+#: ../output.py:955
 msgid "Repository"
 msgstr "Förråd"
 
-#: ../output.py:943
+#: ../output.py:956
 msgid "Size"
-msgstr "Strlk"
+msgstr "Storl."
 
-#: ../output.py:954
+#: ../output.py:968
 #, python-format
 msgid ""
-"     replacing  %s.%s %s\n"
+"     replacing  %s%s%s.%s %s\n"
 "\n"
-msgstr "     ersätter  %s.%s %s\n\n"
+msgstr "     ersätter  %s%s%s.%s %s\n\n"
 
-#: ../output.py:962
+#: ../output.py:977
 #, python-format
 msgid ""
 "\n"
@@ -749,109 +763,116 @@ msgid ""
 "Remove   %5.5s Package(s)         \n"
 msgstr ""
 "\n"
-"Transaktionssamanfattning\n"
+"Transaktionssammanfattning\n"
 "%s\n"
-"Installerar  %5.5s Package(s)         \n"
-"Uppdaterar   %5.5s Package(s)         \n"
-"Tar bort     %5.5s Package(s)         \n"
+"Installerar  %5.5s Paket         \n"
+"Uppdaterar   %5.5s Paket         \n"
+"Tar bort     %5.5s Paket         \n"
 
-#: ../output.py:1010
+#: ../output.py:1025
 msgid "Removed"
 msgstr "Borttagna"
 
-#: ../output.py:1011
+#: ../output.py:1026
 msgid "Dependency Removed"
 msgstr "Borttagna beroenden"
 
-#: ../output.py:1013
+#: ../output.py:1028
 msgid "Dependency Installed"
 msgstr "Installerade beroenden"
 
-#: ../output.py:1015
+#: ../output.py:1030
 msgid "Dependency Updated"
 msgstr "Uppdaterade beroenden"
 
-#: ../output.py:1017
+#: ../output.py:1032
 msgid "Replaced"
 msgstr "Ersatte"
 
-#: ../output.py:1018
+#: ../output.py:1033
 msgid "Failed"
 msgstr "Misslyckade"
 
+#. Delta between C-c's so we treat as exit
+#: ../output.py:1099
+msgid "two"
+msgstr "två"
+
 # 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
+# Det sista är den översättningen av strängen "two".
+#: ../output.py:1106
 #, 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"
+msgstr ""
+"\n"
+" Aktuell nedladdning avbröts, %savbryt (ctrl-c) igen%s inom %s%s%s sekunder "
+"för att avsluta.\n"
 
-#: ../output.py:1101
+#: ../output.py:1116
 msgid "user interrupt"
 msgstr "avbrott från användaren"
 
-#: ../output.py:1117
+#: ../output.py:1132
 msgid "Total"
 msgstr "Totalt"
 
-#: ../output.py:1131
+#: ../output.py:1146
 msgid "installed"
 msgstr "installeras"
 
-#: ../output.py:1132
+#: ../output.py:1147
 msgid "updated"
 msgstr "uppdateras"
 
-#: ../output.py:1133
+#: ../output.py:1148
 msgid "obsoleted"
 msgstr "fasas ut"
 
-#: ../output.py:1134
+#: ../output.py:1149
 msgid "erased"
 msgstr "raderas"
 
-#: ../output.py:1138
+#: ../output.py:1153
 #, 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
+#: ../output.py:1160
 msgid "--> Running transaction check"
 msgstr "--> Kör transaktionskontroll"
 
-#: ../output.py:1150
+#: ../output.py:1165
 msgid "--> Restarting Dependency Resolution with new changes."
 msgstr "--> Startar om beroendeupplösning med nya ändringar."
 
-#: ../output.py:1155
+#: ../output.py:1170
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Avslutade beroendeupplösning"
 
-#: ../output.py:1160
+#: ../output.py:1175
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> Bearbetar beroende: %s för paket: %s"
 
-#: ../output.py:1165
+#: ../output.py:1180
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Ej upplöst beroende: %s"
 
-#: ../output.py:1171
+#: ../output.py:1186
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> Bearbetar konflikt: %s står i konflikt med %s"
 
-#: ../output.py:1174
+#: ../output.py:1189
 msgid "--> Populating transaction set with selected packages. Please wait."
 msgstr "--> Fyller transaktionsmängden med valda paket.  Var god dröj."
 
-#: ../output.py:1178
+#: ../output.py:1193
 #, 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."
@@ -960,256 +981,263 @@ msgstr "Förbereder uppdateringsprocessen"
 msgid "Display details about a package or group of packages"
 msgstr "Visa detaljer om ett paket eller en grupp paket"
 
-#: ../yumcommands.py:284
+#: ../yumcommands.py:292
 msgid "Installed Packages"
 msgstr "Installerade paket"
 
-#: ../yumcommands.py:291
+#: ../yumcommands.py:300
 msgid "Available Packages"
 msgstr "Tillgängliga paket"
 
-#: ../yumcommands.py:295
+#: ../yumcommands.py:304
 msgid "Extra Packages"
 msgstr "Extra paket"
 
-#: ../yumcommands.py:297
+#: ../yumcommands.py:308
 msgid "Updated Packages"
 msgstr "Uppdaterade paket"
 
-#: ../yumcommands.py:304 ../yumcommands.py:311 ../yumcommands.py:578
+#. This only happens in verbose mode
+#: ../yumcommands.py:316 ../yumcommands.py:323 ../yumcommands.py:600
 msgid "Obsoleting Packages"
 msgstr "Fasar ut paket"
 
-#: ../yumcommands.py:313
+#: ../yumcommands.py:325
 msgid "Recently Added Packages"
 msgstr "Nyligen tillagda paket"
 
-#: ../yumcommands.py:320
+#: ../yumcommands.py:332
 msgid "No matching Packages to list"
 msgstr "Inga matchande paket att lista"
 
-#: ../yumcommands.py:334
+#: ../yumcommands.py:346
 msgid "List a package or groups of packages"
 msgstr "Lista ett paket eller en grupp paket"
 
-#: ../yumcommands.py:346
+#: ../yumcommands.py:358
 msgid "Remove a package or packages from your system"
 msgstr "Ta bort ett eller flera paket från ditt system"
 
-#: ../yumcommands.py:353
+#: ../yumcommands.py:365
 msgid "Setting up Remove Process"
 msgstr "Förbereder processen att ta bort"
 
-#: ../yumcommands.py:367
+#: ../yumcommands.py:379
 msgid "Setting up Group Process"
 msgstr "Förbereder grupprocessen"
 
-#: ../yumcommands.py:373
+#: ../yumcommands.py:385
 msgid "No Groups on which to run command"
 msgstr "Inga grupper att köra kommandot på"
 
-#: ../yumcommands.py:386
+#: ../yumcommands.py:398
 msgid "List available package groups"
 msgstr "Lista tillgängliga paketgrupper"
 
-#: ../yumcommands.py:403
+#: ../yumcommands.py:415
 msgid "Install the packages in a group on your system"
 msgstr "Installera paketen i en grupp på ditt system"
 
-#: ../yumcommands.py:425
+#: ../yumcommands.py:437
 msgid "Remove the packages in a group from your system"
 msgstr "Ta bort paketen in en grupp från ditt system"
 
-#: ../yumcommands.py:452
+#: ../yumcommands.py:464
 msgid "Display details about a package group"
 msgstr "Visa detaljer om en paketgrupp"
 
-#: ../yumcommands.py:476
+#: ../yumcommands.py:488
 msgid "Generate the metadata cache"
 msgstr "Generera metadata-cache:n"
 
-#: ../yumcommands.py:482
+#: ../yumcommands.py:494
 msgid "Making cache files for all metadata files."
 msgstr "Skapar cache-filer för alla metadatafiler."
 
-#: ../yumcommands.py:483
+#: ../yumcommands.py:495
 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
+#: ../yumcommands.py:516
 msgid "Metadata Cache Created"
 msgstr "Metadata-cache skapad"
 
-#: ../yumcommands.py:518
+#: ../yumcommands.py:530
 msgid "Remove cached data"
 msgstr "Ta bort cache:ade data"
 
-#: ../yumcommands.py:539
+#: ../yumcommands.py:551
 msgid "Find what package provides the given value"
 msgstr "Ta reda på vilka paket som tillhandahåller det angivna värdet"
 
-#: ../yumcommands.py:559
+#: ../yumcommands.py:571
 msgid "Check for available package updates"
 msgstr "Leta efter tillgängliga paketuppdateringar"
 
-#: ../yumcommands.py:598
+#: ../yumcommands.py:620
 msgid "Search package details for the given string"
 msgstr "Sök i paketdetaljer efter den angivna strängen"
 
-#: ../yumcommands.py:604
+#: ../yumcommands.py:626
 msgid "Searching Packages: "
 msgstr "Söker paket: "
 
-#: ../yumcommands.py:621
+#: ../yumcommands.py:643
 msgid "Update packages taking obsoletes into account"
 msgstr "Uppdatera paket med hänsyn tagen till utfasningar"
 
-#: ../yumcommands.py:629
+#: ../yumcommands.py:651
 msgid "Setting up Upgrade Process"
 msgstr "Förbereder uppgraderingsprocessen"
 
-#: ../yumcommands.py:643
+#: ../yumcommands.py:665
 msgid "Install a local RPM"
 msgstr "Installera en lokal RPM"
 
-#: ../yumcommands.py:651
+#: ../yumcommands.py:673
 msgid "Setting up Local Package Process"
 msgstr "Förbereder den lokala paketprocessen"
 
-#: ../yumcommands.py:670
+#: ../yumcommands.py:692
 msgid "Determine which package provides the given dependency"
 msgstr "Avgör vilket paket som tillhandahåller ett angivet beroende"
 
-#: ../yumcommands.py:673
+#: ../yumcommands.py:695
 msgid "Searching Packages for Dependency:"
 msgstr "Söker i paketen efter beroende:"
 
-#: ../yumcommands.py:687
+#: ../yumcommands.py:709
 msgid "Run an interactive yum shell"
 msgstr "Kör ett interactivt yum-skal"
 
-#: ../yumcommands.py:693
+#: ../yumcommands.py:715
 msgid "Setting up Yum Shell"
 msgstr "Förbereder ett yum-skal"
 
-#: ../yumcommands.py:711
+#: ../yumcommands.py:733
 msgid "List a package's dependencies"
 msgstr "Lista ett pakets beroenden"
 
-#: ../yumcommands.py:717
+#: ../yumcommands.py:739
 msgid "Finding dependencies: "
 msgstr "Letar efter beroenden: "
 
-#: ../yumcommands.py:733
+#: ../yumcommands.py:755
 msgid "Display the configured software repositories"
 msgstr "Visa konfigurerade programvaruförråd"
 
-#: ../yumcommands.py:781 ../yumcommands.py:782
+#: ../yumcommands.py:803 ../yumcommands.py:804
 msgid "enabled"
 msgstr "aktivt"
 
-#: ../yumcommands.py:790 ../yumcommands.py:791
+#: ../yumcommands.py:812 ../yumcommands.py:813
 msgid "disabled"
 msgstr "inaktivt"
 
-#: ../yumcommands.py:805
+#: ../yumcommands.py:827
 msgid "Repo-id     : "
 msgstr "Förråds-id      : "
 
-#: ../yumcommands.py:806
+#: ../yumcommands.py:828
 msgid "Repo-name   : "
 msgstr "Förrådsnamn     : "
 
-#: ../yumcommands.py:807
+#: ../yumcommands.py:829
 msgid "Repo-status : "
 msgstr "Förrådsstatus   : "
 
-#: ../yumcommands.py:809
+#: ../yumcommands.py:831
 msgid "Repo-revision: "
 msgstr "Förrådsversion  : "
 
-#: ../yumcommands.py:813
+#: ../yumcommands.py:835
 msgid "Repo-tags   : "
 msgstr "Förrådstaggar   : "
 
-#: ../yumcommands.py:819
+#: ../yumcommands.py:841
 msgid "Repo-distro-tags: "
 msgstr "Förråds-distro-taggar: "
 
-#: ../yumcommands.py:824
+#: ../yumcommands.py:846
 msgid "Repo-updated: "
 msgstr "Förråd uppdat.  : "
 
-#: ../yumcommands.py:826
+#: ../yumcommands.py:848
 msgid "Repo-pkgs   : "
 msgstr "Förrådspaket    : "
 
-#: ../yumcommands.py:827
+#: ../yumcommands.py:849
 msgid "Repo-size   : "
 msgstr "Förrådstorlek   : "
 
-#: ../yumcommands.py:834
+#: ../yumcommands.py:856
 msgid "Repo-baseurl: "
 msgstr "Förrådsbasurl   : "
 
-#: ../yumcommands.py:838
+#: ../yumcommands.py:860
 msgid "Repo-metalink: "
 msgstr "Förrådsmetalänk : "
 
-#: ../yumcommands.py:841
+#: ../yumcommands.py:863
 msgid "Repo-mirrors: "
 msgstr "Förrådspeglar   : "
 
-#: ../yumcommands.py:845
+#: ../yumcommands.py:867
 msgid "Repo-exclude: "
 msgstr "Förrådsuteslut  : "
 
-#: ../yumcommands.py:849
+#: ../yumcommands.py:871
 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
+#: ../yumcommands.py:881 ../yumcommands.py:907
 msgid "repo id"
 msgstr "förråds-id"
 
-#: ../yumcommands.py:873 ../yumcommands.py:874 ../yumcommands.py:888
+#: ../yumcommands.py:895 ../yumcommands.py:896 ../yumcommands.py:910
 msgid "status"
 msgstr "status"
 
-#: ../yumcommands.py:886
+#: ../yumcommands.py:908
 msgid "repo name"
 msgstr "förrådsnamn"
 
-#: ../yumcommands.py:912
+#: ../yumcommands.py:934
 msgid "Display a helpful usage message"
 msgstr "Visa ett hjälpsamt meddelande om användning"
 
-#: ../yumcommands.py:946
+#: ../yumcommands.py:968
 #, python-format
 msgid "No help available for %s"
 msgstr "Ingen hjälp tillgänglig för %s"
 
-#: ../yumcommands.py:951
+#: ../yumcommands.py:973
 msgid ""
 "\n"
 "\n"
 "aliases: "
-msgstr "\n\nalias: "
+msgstr ""
+"\n"
+"\n"
+"alias: "
 
-#: ../yumcommands.py:953
+#: ../yumcommands.py:975
 msgid ""
 "\n"
 "\n"
 "alias: "
-msgstr "\n\nalias: "
+msgstr ""
+"\n"
+"\n"
+"alias: "
 
-#: ../yumcommands.py:981
+#: ../yumcommands.py:1003
 msgid "Setting up Reinstall Process"
 msgstr "Förbereder ominstallationsprocessen"
 
-#: ../yumcommands.py:995
+#: ../yumcommands.py:1017
 msgid "reinstall a package"
 msgstr "ominstallera ett paket"
 
@@ -1218,99 +1246,126 @@ msgid ""
 "\n"
 "\n"
 "Exiting on user cancel"
-msgstr "\n\nSlutar efter att användaren avbröt"
+msgstr ""
+"\n"
+"\n"
+"Slutar efter att användaren avbröt"
 
 #: ../yummain.py:48
 msgid ""
 "\n"
 "\n"
 "Exiting on Broken Pipe"
-msgstr "\n\nSlutar med brutet rör (pipe)"
+msgstr ""
+"\n"
+"\n"
+"Slutar med brutet rör (pipe)"
 
-#: ../yummain.py:122
+#: ../yummain.py:126
 msgid "Running"
 msgstr "Kör"
 
-#: ../yummain.py:123
+#: ../yummain.py:127
 msgid "Sleeping"
 msgstr "Sover"
 
-#: ../yummain.py:124
+#: ../yummain.py:128
 msgid "Uninteruptable"
 msgstr "Oavbrytbar"
 
-#: ../yummain.py:125
+#: ../yummain.py:129
 msgid "Zombie"
 msgstr "Zombie"
 
-#: ../yummain.py:126
+#: ../yummain.py:130
 msgid "Traced/Stopped"
 msgstr "Spårad/Stoppad"
 
-#: ../yummain.py:127
+#: ../yummain.py:131
 msgid "Unknown"
 msgstr "Okänd"
 
-#: ../yummain.py:131
+#: ../yummain.py:135
 msgid "  The other application is: PackageKit"
 msgstr "  Det andra programmet är: PackageKit"
 
-#: ../yummain.py:133
+#: ../yummain.py:137
 #, python-format
 msgid "  The other application is: %s"
 msgstr "  Det andra programmet är: %s"
 
-#: ../yummain.py:136
+#: ../yummain.py:140
 #, python-format
 msgid "    Memory : %5s RSS (%5sB VSZ)"
 msgstr "    Minne   : %5s RSS (%5s B VSZ)"
 
-#: ../yummain.py:140
+#: ../yummain.py:144
 #, python-format
 msgid "    Started: %s - %s ago"
 msgstr "    Startade: %s - för %s sedan"
 
-#: ../yummain.py:142
+#: ../yummain.py:146
 #, python-format
 msgid "    State  : %s, pid: %d"
 msgstr "    Status  : %s, pid: %d"
 
-#: ../yummain.py:167
+#: ../yummain.py:171
 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 ..."
+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
+#: ../yummain.py:199 ../yummain.py:238
 #, python-format
 msgid "Error: %s"
 msgstr "Fel: %s"
 
-#: ../yummain.py:205 ../yummain.py:241
+#: ../yummain.py:209 ../yummain.py:250
 #, python-format
 msgid "Unknown Error(s): Exit Code: %d:"
 msgstr "Okänt fel: Felkod: %d:"
 
 #. Depsolve stage
-#: ../yummain.py:212
+#: ../yummain.py:216
 msgid "Resolving Dependencies"
 msgstr "Löser upp beroenden"
 
-#: ../yummain.py:247
+#: ../yummain.py:240
+msgid " You could try using --skip-broken to work around the problem"
+msgstr " Du kan försöka använda --skip-broken för att gå runt problemet"
+
+#: ../yummain.py:241
+msgid ""
+" You could try running: package-cleanup --problems\n"
+"                        package-cleanup --dupes\n"
+"                        rpm -Va --nofiles --nodigest"
+msgstr ""
+" Du kan försöka köra: package-cleanup --problems\n"
+"                      package-cleanup --dupes\n"
+"                      rpm -Va --nofiles --nodigest"
+
+#: ../yummain.py:256
 msgid ""
 "\n"
 "Dependencies Resolved"
-msgstr "\nBeroenden upplösta"
+msgstr ""
+"\n"
+"Beroenden upplösta"
 
-#: ../yummain.py:261
+#: ../yummain.py:270
 msgid "Complete!"
 msgstr "Klart!"
 
-#: ../yummain.py:308
+#: ../yummain.py:325
 msgid ""
 "\n"
 "\n"
 "Exiting on user cancel."
-msgstr "\n\nSlutar efter att användaren avbröt."
+msgstr ""
+"\n"
+"\n"
+"Slutar efter att användaren avbröt."
 
 #: ../yum/depsolve.py:84
 msgid "doTsSetup() will go away in a future version of Yum.\n"
@@ -1392,7 +1447,7 @@ 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"
+msgstr "TSINFO: paket %s behöver %s noteras att raderas"
 
 #: ../yum/depsolve.py:394
 #, python-format
@@ -1423,39 +1478,41 @@ msgstr "Snabb matcning av %s mot behov för %s"
 #: ../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."
+msgstr ""
+"%s finns bland tillhandahållande paket men det är redan installerat, tar "
+"bort."
 
-#: ../yum/depsolve.py:495
+#: ../yum/depsolve.py:496
 #, 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
+#: ../yum/depsolve.py:507
 #, 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
+#: ../yum/depsolve.py:515 ../yum/depsolve.py:564
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "Saknat beroende: %s behövs av paketet %s"
 
-#: ../yum/depsolve.py:527
+#: ../yum/depsolve.py:528
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s är redan i ts, hoppar över denna"
 
-#: ../yum/depsolve.py:573
+#: ../yum/depsolve.py:574
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: Noterar %s som en uppdatering av %s"
 
-#: ../yum/depsolve.py:581
+#: ../yum/depsolve.py:582
 #, 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
+#: ../yum/depsolve.py:675 ../yum/depsolve.py:756
 msgid "Success - empty transaction"
 msgstr "Klart - tom transaktion"
 
@@ -1496,12 +1553,12 @@ msgstr "Kör compare_providers() för %s"
 msgid "better arch in po %s"
 msgstr "bättre arkitektur i po %s"
 
-#: ../yum/depsolve.py:1084
+#: ../yum/depsolve.py:1091
 #, python-format
 msgid "%s obsoletes %s"
 msgstr "%s fasar ut %s"
 
-#: ../yum/depsolve.py:1100
+#: ../yum/depsolve.py:1107
 #, python-format
 msgid ""
 "archdist compared %s to %s on %s\n"
@@ -1510,202 +1567,209 @@ msgstr ""
 "arkitekturavstånd jämför %s med %s på %s\n"
 "  Vinnare: %s"
 
-#: ../yum/depsolve.py:1107
+#: ../yum/depsolve.py:1114
 #, python-format
 msgid "common sourcerpm %s and %s"
 msgstr "samma käll-rpm %s och %s"
 
-#: ../yum/depsolve.py:1113
+#: ../yum/depsolve.py:1120
 #, 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
+#: ../yum/depsolve.py:1128
 #, python-format
 msgid "Best Order: %s"
 msgstr "Bästa ordning: %s"
 
-#: ../yum/__init__.py:154
+#: ../yum/__init__.py:176
 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
+#. FIXME: Use critical? or exception?
+#: ../yum/__init__.py:386
 #, 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
+#: ../yum/__init__.py:424
 msgid "plugins already initialised"
 msgstr "insticksmoduler redan initierade"
 
-#: ../yum/__init__.py:385
+#: ../yum/__init__.py:431
 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
+#: ../yum/__init__.py:441
 msgid "Reading Local RPMDB"
 msgstr "Läser lokal RPMDB"
 
-#: ../yum/__init__.py:413
+#: ../yum/__init__.py:459
 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
+#: ../yum/__init__.py:479
 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
+#: ../yum/__init__.py:496
 msgid "Setting up Package Sacks"
 msgstr "Förbereder paketsäckar"
 
-#: ../yum/__init__.py:493
+#: ../yum/__init__.py:539
 #, 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
+#: ../yum/__init__.py:540
 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
+#: ../yum/__init__.py:545
 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
+#: ../yum/__init__.py:557
 msgid "Building updates object"
 msgstr "Bygger uppdateringsobjekt"
 
-#: ../yum/__init__.py:542
+#: ../yum/__init__.py:588
 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
+#: ../yum/__init__.py:612
 msgid "Getting group metadata"
 msgstr "Hämtar gruppmetadata"
 
-#: ../yum/__init__.py:592
+#: ../yum/__init__.py:637
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "Lägger till gruppfil från förrådet: %s"
 
-#: ../yum/__init__.py:601
+#: ../yum/__init__.py:642
 #, 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
+#: ../yum/__init__.py:648
 msgid "No Groups Available in any repository"
 msgstr "Inga grupper tillgängliga i något förråd"
 
-#: ../yum/__init__.py:657
+#: ../yum/__init__.py:698
 msgid "Importing additional filelist information"
 msgstr "Importerar ytterligare fillisteinformation"
 
-#: ../yum/__init__.py:666
+#: ../yum/__init__.py:706
 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."
+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
+#: ../yum/__init__.py:772
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Hoppa-över-trasiga runda %i"
 
-#: ../yum/__init__.py:784
+#: ../yum/__init__.py:824
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr "Hoppa-över-trasiga tog %i rundor "
 
-#: ../yum/__init__.py:785
+#: ../yum/__init__.py:825
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
-msgstr "\nPaket hoppades över på grund av beroendeproblem:"
+msgstr ""
+"\n"
+"Paket hoppades över på grund av beroendeproblem:"
 
-#: ../yum/__init__.py:789
+#: ../yum/__init__.py:829
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s från %s"
 
-#: ../yum/__init__.py:933
+#: ../yum/__init__.py:968
 msgid ""
 "Warning: scriptlet or other non-fatal errors occurred during transaction."
-msgstr "Varning: skript- eller annat icke ödesdigert fel inträffade under transaktionen."
+msgstr ""
+"Varning: skript- eller annat icke ödesdigert fel inträffade under "
+"transaktionen."
 
-#: ../yum/__init__.py:948
+#: ../yum/__init__.py:983
 #, python-format
 msgid "Failed to remove transaction file %s"
 msgstr "Kunde inte ta bort transaktionsfilen %s"
 
-#: ../yum/__init__.py:989
+#: ../yum/__init__.py:1025
 #, python-format
 msgid "excluding for cost: %s from %s"
 msgstr "utesluter på grund av kostnad: %s från %s"
 
-#: ../yum/__init__.py:1020
+#: ../yum/__init__.py:1056
 msgid "Excluding Packages in global exclude list"
 msgstr "Utesluter paket i global uteslutningslista"
 
-#: ../yum/__init__.py:1022
+#: ../yum/__init__.py:1058
 #, python-format
 msgid "Excluding Packages from %s"
 msgstr "Utesluter paket från %s"
 
-#: ../yum/__init__.py:1049
+#: ../yum/__init__.py:1085
 #, python-format
 msgid "Reducing %s to included packages only"
 msgstr "Reducerar %s till endast inkluderade paket"
 
-#: ../yum/__init__.py:1055
+#: ../yum/__init__.py:1091
 #, python-format
 msgid "Keeping included package %s"
 msgstr "Behåller inkluderat paket %s"
 
-#: ../yum/__init__.py:1061
+#: ../yum/__init__.py:1097
 #, python-format
 msgid "Removing unmatched package %s"
 msgstr "Tar bort ej matchat paket %s"
 
-#: ../yum/__init__.py:1064
+#: ../yum/__init__.py:1100
 msgid "Finished"
 msgstr "Klar"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:1094
+#: ../yum/__init__.py:1130
 #, 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
+#: ../yum/__init__.py:1134
 #, 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
+#: ../yum/__init__.py:1204
 msgid "Package does not match intended download"
 msgstr "Paketet matchar inte avsedd det avsett att laddas ner"
 
-#: ../yum/__init__.py:1180
+#: ../yum/__init__.py:1219
 msgid "Could not perform checksum"
 msgstr "Kunde inte utföra kontrollsummering"
 
-#: ../yum/__init__.py:1183
+#: ../yum/__init__.py:1222
 msgid "Package does not match checksum"
 msgstr "Paketet stämmer inte med kontrollsumman"
 
-#: ../yum/__init__.py:1226
+#: ../yum/__init__.py:1265
 #, 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
+#: ../yum/__init__.py:1268 ../yum/__init__.py:1297
 #, python-format
 msgid "using local copy of %s"
 msgstr "använder lokal kopia av %s"
 
-#: ../yum/__init__.py:1270
+#: ../yum/__init__.py:1309
 #, python-format
 msgid ""
 "Insufficient space in download directory %s\n"
@@ -1716,421 +1780,430 @@ msgstr ""
 "    * fritt   %s\n"
 "    * behovet %s"
 
-#: ../yum/__init__.py:1317
+#: ../yum/__init__.py:1356
 msgid "Header is not complete."
 msgstr "Huvudet är inte komplett."
 
-#: ../yum/__init__.py:1354
+#: ../yum/__init__.py:1393
 #, 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"
+msgstr ""
+"Huvudet finns inte i den lokala cachen och endast-cache-läget är aktiverat.  "
+"Kan inte hämta %s"
 
-#: ../yum/__init__.py:1409
+#: ../yum/__init__.py:1448
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "Den publika nyckeln för %s är inte installerad"
 
-#: ../yum/__init__.py:1413
+#: ../yum/__init__.py:1452
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Problem att öppna paketet %s"
 
-#: ../yum/__init__.py:1421
+#: ../yum/__init__.py:1460
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "Den publika nyckeln för %s är inte betrodd"
 
-#: ../yum/__init__.py:1425
+#: ../yum/__init__.py:1464
 #, python-format
 msgid "Package %s is not signed"
 msgstr "Paket %s är inte signerat"
 
-#: ../yum/__init__.py:1463
+#: ../yum/__init__.py:1502
 #, python-format
 msgid "Cannot remove %s"
 msgstr "Det går inte att ta bort %s"
 
-#: ../yum/__init__.py:1467
+#: ../yum/__init__.py:1505
 #, 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
+#: ../yum/__init__.py:1541
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "Det går inte att ta bort %s-filen %s"
 
-#: ../yum/__init__.py:1508
+#: ../yum/__init__.py:1544
 #, python-format
 msgid "%s file %s removed"
 msgstr "%s-filen %s borttagen"
 
-#: ../yum/__init__.py:1510
+#: ../yum/__init__.py:1546
 #, python-format
 msgid "%d %s files removed"
 msgstr "%d %s-filer borttagna"
 
-#: ../yum/__init__.py:1579
+#: ../yum/__init__.py:1614
 #, 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
+#: ../yum/__init__.py:1619
 #, 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
+#: ../yum/__init__.py:1838
 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"
+msgstr ""
+"searchPackages() kommer att försvinna i en framtida version av "
+"Yum.                      Använd searchGenerator() istället. \n"
 
-#: ../yum/__init__.py:1841
+#: ../yum/__init__.py:1876
 #, python-format
 msgid "Searching %d packages"
 msgstr "Söker i %d paket"
 
-#: ../yum/__init__.py:1845
+#: ../yum/__init__.py:1879
 #, python-format
 msgid "searching package %s"
 msgstr "söker i paketet %s"
 
-#: ../yum/__init__.py:1857
+#: ../yum/__init__.py:1890
 msgid "searching in file entries"
 msgstr "söker i filposter"
 
-#: ../yum/__init__.py:1864
+#: ../yum/__init__.py:1896
 msgid "searching in provides entries"
 msgstr "söker i tillhandahållandeposter"
 
-#: ../yum/__init__.py:1897
+#: ../yum/__init__.py:1929
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Tillhandahållandematchning: %s"
 
-#: ../yum/__init__.py:1946
+#: ../yum/__init__.py:1978
 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
+#: ../yum/__init__.py:2009 ../yum/__init__.py:2028 ../yum/__init__.py:2058
+#: ../yum/__init__.py:2064 ../yum/__init__.py:2143 ../yum/__init__.py:2147
 #, python-format
 msgid "No Group named %s exists"
 msgstr "Det finns ingen grupp med namnet %s"
 
-#: ../yum/__init__.py:2008 ../yum/__init__.py:2123
+#: ../yum/__init__.py:2039 ../yum/__init__.py:2159
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "paket %s noterades inte i gruppen %s"
 
-#: ../yum/__init__.py:2055
+#: ../yum/__init__.py:2085
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Lägger till paket %s från grupp %s"
 
-#: ../yum/__init__.py:2059
+#: ../yum/__init__.py:2090
 #, 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
+#: ../yum/__init__.py:2186
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "Pakettupel %s fanns inte i paketsäcken"
 
-#: ../yum/__init__.py:2163
+#: ../yum/__init__.py:2201
 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."
+msgstr ""
+"getInstalledPackageObject() kommer att försvinna, använd self.rpmdb."
+"searchPkgTuple().\n"
 
-#: ../yum/__init__.py:2217 ../yum/__init__.py:2260
+#: ../yum/__init__.py:2253 ../yum/__init__.py:2294
 msgid "Invalid version flag"
 msgstr "Ogiltig versionsflagga"
 
-#: ../yum/__init__.py:2232 ../yum/__init__.py:2236
+#: ../yum/__init__.py:2268 ../yum/__init__.py:2272
 #, python-format
 msgid "No Package found for %s"
 msgstr "Inga paket hittades för %s"
 
-#: ../yum/__init__.py:2415
+#: ../yum/__init__.py:2449
 msgid "Package Object was not a package object instance"
 msgstr "Paketobjektet var inte en paketobjektinstans"
 
-#: ../yum/__init__.py:2419
+#: ../yum/__init__.py:2453
 msgid "Nothing specified to install"
 msgstr "Inget angivet att installeras"
 
-#. only one in there
-#: ../yum/__init__.py:2437
+#: ../yum/__init__.py:2469
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
-msgstr "Kontrollerar virtuella tillhandahållanden eller filtillhandahållanden för %s"
+msgstr ""
+"Kontrollerar virtuella tillhandahållanden eller filtillhandahållanden för %s"
 
-#: ../yum/__init__.py:2443 ../yum/__init__.py:2691 ../yum/__init__.py:2861
+#: ../yum/__init__.py:2475 ../yum/__init__.py:2740 ../yum/__init__.py:2900
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "Ingen matchning för argument: %s"
 
-#: ../yum/__init__.py:2509
+#: ../yum/__init__.py:2548
 #, python-format
 msgid "Package %s installed and not available"
 msgstr "Paket %s installerat och inte tillgänligt"
 
-#: ../yum/__init__.py:2512
+#: ../yum/__init__.py:2551
 msgid "No package(s) available to install"
 msgstr "Inga paket tillgängliga att installera"
 
-#: ../yum/__init__.py:2524
+#: ../yum/__init__.py:2564
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "Paket: %s - redan i transaktionsmängden"
 
-#: ../yum/__init__.py:2539
+#: ../yum/__init__.py:2580
 #, 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
+#: ../yum/__init__.py:2588
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "Paket %s är redan installerast och senaste version"
 
-#: ../yum/__init__.py:2554
+#: ../yum/__init__.py:2595
 #, 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
+#: ../yum/__init__.py:2675
 msgid "Updating Everything"
 msgstr "Uppdaterar allt"
 
-#: ../yum/__init__.py:2653 ../yum/__init__.py:2763 ../yum/__init__.py:2784
-#: ../yum/__init__.py:2810
+#: ../yum/__init__.py:2693 ../yum/__init__.py:2802 ../yum/__init__.py:2823
+#: ../yum/__init__.py:2849
 #, 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
+#: ../yum/__init__.py:2728 ../yum/__init__.py:2897
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: ../yum/__init__.py:2754
+#: ../yum/__init__.py:2793
 #, 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
+#: ../yum/__init__.py:2826 ../yum/__init__.py:2852
 #, 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
+#: ../yum/__init__.py:2913
 msgid "No package matched to remove"
 msgstr "Inget paket matchar att tas bort"
 
-#: ../yum/__init__.py:2908
+#: ../yum/__init__.py:2947
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "Det går inte att öppna filen: %s.  Hoppar över."
 
-#: ../yum/__init__.py:2911
+#: ../yum/__init__.py:2949
 #, python-format
 msgid "Examining %s: %s"
 msgstr "Undersöker %s: %s"
 
-#: ../yum/__init__.py:2919
+#: ../yum/__init__.py:2957
 #, 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"
+msgstr ""
+"Kan inte lägga till paket %s till transaktionen.  Inte en kompatibel "
+"arkitektur: %s"
 
-#: ../yum/__init__.py:2927
+#: ../yum/__init__.py:2965
 #, 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."
+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
+#: ../yum/__init__.py:2998
 #, python-format
 msgid "Excluding %s"
 msgstr "Utesluter %s"
 
-#: ../yum/__init__.py:2965
+#: ../yum/__init__.py:3002
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Noterar %s för installation"
 
-#: ../yum/__init__.py:2971
+#: ../yum/__init__.py:3007
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "Noterar %s som en uppdatering av %s"
 
-#: ../yum/__init__.py:2978
+#: ../yum/__init__.py:3012
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: uppdaterar inte ett installerat paket."
 
-#: ../yum/__init__.py:2996
+#: ../yum/__init__.py:3029
 msgid "Problem in reinstall: no package matched to remove"
 msgstr "Problem att ominstallera: inget paket matchades att tas bort"
 
-#: ../yum/__init__.py:3007
+#: ../yum/__init__.py:3040
 #, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "Paket %s tillåts multipla installationer, hoppar över"
 
-#: ../yum/__init__.py:3014
+#: ../yum/__init__.py:3050
 msgid "Problem in reinstall: no package matched to install"
 msgstr "Problem att ominstallera: inget paket matchades att installeras"
 
-#: ../yum/__init__.py:3049
+#: ../yum/__init__.py:3085
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "Hämtar GPG-nyckel från %s"
 
-#: ../yum/__init__.py:3069
+#: ../yum/__init__.py:3105
 msgid "GPG key retrieval failed: "
 msgstr "Hämtandet av GPG-nyckeln misslyckades: "
 
-#: ../yum/__init__.py:3080
+#: ../yum/__init__.py:3116
 #, 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
+#: ../yum/__init__.py:3148
 #, 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
+#: ../yum/__init__.py:3153 ../yum/__init__.py:3214
 #, 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
+#: ../yum/__init__.py:3169
 msgid "Not installing key"
 msgstr "Installerar inte nyckeln"
 
-#: ../yum/__init__.py:3140
+#: ../yum/__init__.py:3175
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "Nyckelimport misslyckades (kod %d)"
 
-#: ../yum/__init__.py:3141 ../yum/__init__.py:3200
+#: ../yum/__init__.py:3176 ../yum/__init__.py:3236
 msgid "Key imported successfully"
 msgstr "Nyckelimport lyckades"
 
-#: ../yum/__init__.py:3146 ../yum/__init__.py:3205
+#: ../yum/__init__.py:3181 ../yum/__init__.py:3241
 #, 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"
+"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
+#: ../yum/__init__.py:3190
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "Import av nycklar hjälpte inte, fel nycklar?"
 
-#: ../yum/__init__.py:3174
+#: ../yum/__init__.py:3209
 #, 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
+#: ../yum/__init__.py:3228
 #, python-format
 msgid "Not installing key for repo %s"
 msgstr "Installerar inte nyckel för förråd %s"
 
-#: ../yum/__init__.py:3199
+#: ../yum/__init__.py:3235
 msgid "Key import failed"
 msgstr "Nyckelimport misslyckades"
 
-#: ../yum/__init__.py:3290
+#: ../yum/__init__.py:3325
 msgid "Unable to find a suitable mirror."
 msgstr "Kan inte hitta en lämplig spegel."
 
-#: ../yum/__init__.py:3292
+#: ../yum/__init__.py:3327
 msgid "Errors were encountered while downloading packages."
 msgstr "Fel uppstod när paket hämtades."
 
-#: ../yum/__init__.py:3333
+#: ../yum/__init__.py:3367
 #, python-format
 msgid "Please report this error at %s"
 msgstr "Rapportera gärna detta fel till %s"
 
-#: ../yum/__init__.py:3357
+#: ../yum/__init__.py:3391
 msgid "Test Transaction Errors: "
 msgstr "Transaktionstestfel: "
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:201
+#: ../yum/plugins.py:204
 msgid "Loaded plugins: "
 msgstr "Inlästa insticksmoduler: "
 
-#: ../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 "Ingen insticksmodul matchar: %s"
 
-#: ../yum/plugins.py:251
+#: ../yum/plugins.py:254
 #, python-format
-msgid "\"%s\" plugin is disabled"
-msgstr "Insticksmodulen \"%s\" avaktiverad"
+msgid "Not loading \"%s\" plugin, as it is disabled"
+msgstr "Läser inte in insticksmodulen \"%s\" eftersom den är inaktiverad"
 
 #. Give full backtrace:
-#: ../yum/plugins.py:263
+#: ../yum/plugins.py:266
 #, python-format
 msgid "Plugin \"%s\" can't be imported"
 msgstr "Insticksmodulen \"%s\" kan inte importeras"
 
-#: ../yum/plugins.py:270
+#: ../yum/plugins.py:273
 #, 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
+#: ../yum/plugins.py:278
 #, 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
+#: ../yum/plugins.py:311
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "Läser in insticksmodulen \"%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 "Två eller flera insticksmoduler med namnet \"%s\" finns i sökvägen för insticksmoduler"
+msgstr ""
+"Två eller flera insticksmoduler med namnet \"%s\" finns i sökvägen för "
+"insticksmoduler"
 
-#: ../yum/plugins.py:335
+#: ../yum/plugins.py:338
 #, 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
+#: ../yum/plugins.py:341
 #, python-format
 msgid "Unable to find configuration file for plugin %s"
 msgstr "Kan inte hitta konfigurationsfil för insticksmodulen %s"
 
-#: ../yum/plugins.py:492
+#: ../yum/plugins.py:495
 msgid "registration of commands not supported"
 msgstr "registrering av kommandon stöds inte"
 
@@ -2150,7 +2223,8 @@ 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?"
+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"
diff --git a/rpmUtils/arch.py b/rpmUtils/arch.py
index e88cbde..b493b6a 100644
--- a/rpmUtils/arch.py
+++ b/rpmUtils/arch.py
@@ -380,3 +380,41 @@ def getBaseArch(myarch=None):
     
         return basearch
         
+
+class ArchStorage(object):
+    """class for keeping track of what arch we have set and doing various 
+       permutations based on it"""
+    def __init__(self):
+        self.canonarch = None 
+        self.basearch = None
+        self.bestarch = None
+        self.compatarches = []
+        self.archlist = []
+        self.multilib = False
+        self.setup_arch()
+
+    def setup_arch(self, arch=None):
+        if arch:
+            self.canonarch = arch
+        else:
+            self.canonarch = getCanonArch()
+        
+        self.basearch = getBaseArch(myarch=self.canonarch)
+        self.archlist = getArchList(thisarch=self.canonarch)
+        self.bestarch = getBestArch(myarch=self.canonarch)
+        self.compatarches = getMultiArchInfo(arch=self.canonarch)
+        self.multilib = isMultiLibArch(arch=self.canonarch)
+        self.legit_multi_arches = legitMultiArchesInSameLib(arch = self.canonarch)
+
+    def get_best_arch_from_list(self, archlist, fromarch=None):
+        if not fromarch:
+            fromarch = self.canonarch
+        return getBestArchFromList(archlist, myarch=fromarch)
+
+    def score(self, arch):
+        return archDifference(self.canonarch, arch)
+
+    def get_arch_list(self, arch):
+        if not arch:
+            return self.archlist
+        return getArchList(thisarch=arch)
diff --git a/rpmUtils/updates.py b/rpmUtils/updates.py
index 0e697bc..3ce1eba 100644
--- a/rpmUtils/updates.py
+++ b/rpmUtils/updates.py
@@ -48,7 +48,12 @@ class Updates:
         self.myarch = rpmUtils.arch.canonArch # set this if you want to
                                               # test on some other arch
                                               # otherwise leave it alone
+        self._is_multilib = rpmUtils.arch.isMultiLibArch(self.myarch)
         
+        self._archlist = rpmUtils.arch.getArchList(self.myarch)
+
+        self._multilib_compat_arches = rpmUtils.arch.getMultiArchInfo(self.myarch)
+
         # make some dicts from installed and available
         self.installdict = self.makeNADict(self.installed, 1)
         self.availdict = self.makeNADict(self.available, 1)
@@ -291,7 +296,7 @@ class Updates:
         newpkgs = []
         newpkgs = self.availdict
         
-        archlist = rpmUtils.arch.getArchList(self.myarch)
+        archlist = self._archlist 
         for (n, a) in newpkgs.keys():
             # remove stuff not in our archdict
             # high log here
@@ -408,14 +413,14 @@ class Updates:
         # however, we do want to descend x86_64->noarch, sadly.
         
         archlists = []
-        if rpmUtils.arch.isMultiLibArch(arch=self.myarch):
+        if self._is_multilib:
             if rpmUtils.arch.multilibArches.has_key(self.myarch):
                 biarches = [self.myarch]
             else:
                 biarches = [self.myarch, rpmUtils.arch.arches[self.myarch]]
             biarches.append('noarch')
             
-            multicompat = rpmUtils.arch.getMultiArchInfo(self.myarch)[0]
+            multicompat = self._multilib_compat_arches[0]
             multiarchlist = rpmUtils.arch.getArchList(multicompat)
             archlists = [ set(biarches), set(multiarchlist) ]
             # archlists = [ biarches, multiarchlist ]
diff --git a/shell.py b/shell.py
index 2ac5c59..f1c82a3 100644
--- a/shell.py
+++ b/shell.py
@@ -86,13 +86,17 @@ class YumShell(cmd.Cmd):
         else:
             (cmd, args, line) = self.parseline(line)
             if cmd not in self.commandlist:
-                self.do_help('')
-                return False
+                xargs = [cmd]
+                self.base.plugins.run('args', args=xargs)
+                if xargs[0] == cmd:
+                    self.do_help('')
+                    return False
             if cmd == 'shell':
                 return
             self.base.cmdstring = line
             self.base.cmdstring = self.base.cmdstring.replace('\n', '')
             self.base.cmds = self._shlex_split(self.base.cmdstring)
+            self.base.plugins.run('args', args=self.base.cmds)
 
             try:
                 self.base.parseCommands()
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index e6c4619..02bbf8f 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -329,10 +329,7 @@ class DepsolveTests(DepsolveTests):
         self.xsack.addPackage(xpo64)
 
         self.assertEquals('ok', *self.resolveCode())
-        if self.canonArch == 'x86_64':
-            self.assertResult((po, xpo64))
-        else:
-            self.assertResult((po, xpo))
+        self.assertResult((po, xpo64))
 
     def testUpdateSinglePackage(self):
         ipo = FakePackage('zsh', '1', '1', None, 'i386')
@@ -648,11 +645,6 @@ class DepsolveTests(DepsolveTests):
 
     def testCompareProvidersSameLen2_noarch_to_64_1(self):
         # Make sure they are still ok, the other way around
-        myarch = self.canonArch
-
-        if myarch not in ('i386', 'x86_64'):
-            return
-            
 
         po = FakePackage('abcd', arch='noarch')
         po.addRequires('libxyz-1.so.0', None, (None, None, None))
@@ -666,20 +658,12 @@ class DepsolveTests(DepsolveTests):
         self.xsack.addPackage(po1)
 
         self.assertEquals('ok', *self.resolveCode())
-        if myarch == 'i386':
-            self.assertResult((po, po2))
-        
-        if myarch == 'x86_64':
-            self.assertResult((po, po1))
+        self.assertResult((po, po1))
         
 
     def testCompareProvidersSameLen2_noarch_to_64_2(self):
         # Make sure they are still ok, the other way around
-        myarch = self.canonArch
 
-        if myarch not in ('i386', 'x86_64'):
-            return
-                    
         po = FakePackage('abcd', arch='noarch')
         po.addRequires('libxyz-1.so.0', None, (None, None, None))
         self.tsInfo.addInstall(po)
@@ -692,10 +676,7 @@ class DepsolveTests(DepsolveTests):
         self.xsack.addPackage(po1)
         
         self.assertEquals('ok', *self.resolveCode())
-        if myarch == 'x86_64':
-            self.assertResult((po, po2))
-        if myarch == 'i386':
-            self.assertResult((po, po1))
+        self.assertResult((po, po2))
             
 
     def testCompareProvidersDiffLen_64(self):
@@ -1196,3 +1177,23 @@ class DepsolveTests(DepsolveTests):
 
         self.assertEquals('ok', *self.resolveCode())
         self.assertResult((ipo1, apo3))
+
+    def testCompareProvidersNoarchWithHigherVer_to_64(self):
+
+        po = FakePackage('abcd', arch='x86_64')
+        po.addRequires('libxyz-1.so.0', None, (None, None, None))
+        self.tsInfo.addInstall(po)
+
+        po3 = FakePackage('libbar', version='1.1', arch='x86_64')
+        po3.addProvides('libxyz-1.so.0', None,(None,None,None))
+        self.xsack.addPackage(po3)
+        po2 = FakePackage('libbar', version='1.2', arch='noarch')
+        po2.addProvides('libxyz-1.so.0', None,(None,None,None))
+        self.xsack.addPackage(po2)
+        po1 = FakePackage('libbar', version='1.1', arch='i386')
+        po1.addProvides('libxyz-1.so.0', None,(None,None,None))
+        self.xsack.addPackage(po1)
+        
+        self.assertEquals('ok', *self.resolveCode())
+        self.assertResult((po, po2))
+           
diff --git a/test/misc-tests.py b/test/misc-tests.py
index 4709ce1..d6e49d8 100644
--- a/test/misc-tests.py
+++ b/test/misc-tests.py
@@ -94,6 +94,7 @@ class MiscTests(DepsolveTests):
     def resolveCode(self,skip = False):
         solver = YumBase()
         solver.conf = FakeConf()
+        solver.arch.setup_arch('x86_64')
         solver.conf.skip_broken = skip
         solver.tsInfo = solver._tsInfo = self.tsInfo
         solver.rpmdb = self.rpmdb
diff --git a/test/simpleupdatetests.py b/test/simpleupdatetests.py
index d52cc9d..7307b5e 100644
--- a/test/simpleupdatetests.py
+++ b/test/simpleupdatetests.py
@@ -100,18 +100,12 @@ class SimpleUpdateTests(OperationsTests):
         p = self.pkgs
         res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_x86_64, p.update_i386, p.requires_update])
         self.assert_(res=='ok', msg)
-        if self.canonArch == 'x86_64':
-            self.assertResult((p.update_x86_64, p.requires_update))
-        else:
-            self.assertResult((p.update_i386, p.requires_update))
+        self.assertResult((p.update_x86_64, p.requires_update))
     def testUpdatenoarchToMultilibForDependency(self):
         p = self.pkgs
         res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_i386, p.update_x86_64, p.requires_update])
         self.assert_(res=='ok', msg)
-        if self.canonArch == 'x86_64':
-            self.assertResult((p.update_x86_64, p.requires_update))
-        else:
-            self.assertResult((p.update_i386, p.requires_update))
+        self.assertResult((p.update_x86_64, p.requires_update))
     def testUpdatenoarchToMultilibForDependency2(self):
         p = self.pkgs
         res, msg = self.runOperation(['update', 'bar'], [p.required, p.installed_noarch],
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index d6f763c..db71a21 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -585,6 +585,7 @@ class SkipBrokenTests(DepsolveTests):
     
     def resolveCode(self,skip = False):
         solver = YumBase()
+        solver.arch.setup_arch('x86_64')
         solver.conf = FakeConf()
         solver.conf.skip_broken = skip
         solver.tsInfo = solver._tsInfo = self.tsInfo
diff --git a/test/testbase.py b/test/testbase.py
index 9cab5f9..d91c01c 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -30,7 +30,7 @@ class FakeConf(object):
     def __init__(self):
         self.installonlypkgs = ['kernel']
         self.exclude = []
-        self.debuglevel = 0
+        self.debuglevel = 8
         self.obsoletes = True
         self.exactarch = False
         self.exactarchlist = []
@@ -156,7 +156,6 @@ class DepSolveProgressCallBack:
 class _DepsolveTestsBase(unittest.TestCase):
 
     res = {0 : 'empty', 2 : 'ok', 1 : 'err'}
-    canonArch = "x86_64"
 
     def __init__(self, methodName='runTest'):
         unittest.TestCase.__init__(self, methodName)
@@ -164,10 +163,9 @@ class _DepsolveTestsBase(unittest.TestCase):
         self.buildPkgs(self.pkgs)
 
     def setUp(self):
-        self._canonArch = arch.canonArch
-        arch.canonArch = self.canonArch
+        pass
     def tearDown(self):
-        arch.canonArch = self._canonArch
+        pass
 
     @staticmethod
     def buildPkgs(pkgs, *args):
@@ -284,6 +282,7 @@ class DepsolveTests(_DepsolveTestsBase):
     def resolveCode(self):
         solver = YumBase()
         solver.conf = FakeConf()
+        solver.arch.setup_arch('x86_64')
         solver.tsInfo = solver._tsInfo = self.tsInfo
         solver.rpmdb = self.rpmdb
         solver.pkgSack = self.xsack
@@ -325,6 +324,7 @@ class OperationsTests(_DepsolveTestsBase):
         requirements from.
         """
         depsolver = YumBaseCli()
+        depsolver.arch.setup_arch('x86_64')
         self.rpmdb = depsolver.rpmdb = FakeRpmDb()
         self.xsack = depsolver._pkgSack  = packageSack.PackageSack()
         self.repo = depsolver.repo = FakeRepo("installed")
diff --git a/yum/Errors.py b/yum/Errors.py
index 322765e..6f0ffe4 100644
--- a/yum/Errors.py
+++ b/yum/Errors.py
@@ -86,6 +86,12 @@ class RemoveError(YumBaseError):
 class ReinstallError(YumBaseError):
     pass
 
+class ReinstallRemoveError(ReinstallError):
+    pass
+
+class ReinstallInstallError(ReinstallError):
+    pass
+
 class DowngradeError(YumBaseError):
     pass
 
diff --git a/yum/__init__.py b/yum/__init__.py
index 6378cdc..1a3ee3f 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -43,8 +43,7 @@ except ImportError:
 import Errors
 import rpmsack
 import rpmUtils.updates
-import rpmUtils.arch
-from rpmUtils.arch import getCanonArch, archDifference, canCoinstall
+from rpmUtils.arch import canCoinstall, ArchStorage, isMultiLibArch
 import rpmUtils.transaction
 import comps
 import config
@@ -101,7 +100,8 @@ class _YumPreBaseConf:
         self.syslog_ident = None
         self.syslog_facility = None
         self.syslog_device = '/dev/log'
-
+        self.arch = None
+        self.releasever = None
 
 class YumBase(depsolve.Depsolve):
     """This is a primary structure and base class. It houses the objects and
@@ -129,9 +129,10 @@ class YumBase(depsolve.Depsolve):
         self.localPackages = [] # for local package handling
 
         self.mediagrabber = None
-
+        self.arch = ArchStorage()
         self.preconf = _YumPreBaseConf()
 
+
     def __del__(self):
         self.close()
         self.closeRpmDB()
@@ -203,6 +204,13 @@ class YumBase(depsolve.Depsolve):
         syslog_ident    = self.preconf.syslog_ident
         syslog_facility = self.preconf.syslog_facility
         syslog_device   = self.preconf.syslog_device
+        releasever = self.preconf.releasever
+        arch = self.preconf.arch
+
+        if arch: # if preconf is setting an arch we need to pass that up
+            self.arch.setup_arch(arch)
+        else:
+            arch = self.arch.canonarch
 
         #  We don't want people accessing/altering preconf after it becomes
         # worthless. So we delete it, and thus. it'll raise AttributeError
@@ -215,6 +223,9 @@ class YumBase(depsolve.Depsolve):
             fn = '/etc/yum.conf'
 
         startupconf = config.readStartupConfig(fn, root)
+        startupconf.arch = arch
+        startupconf.basearch = self.arch.basearch
+
         if startupconf.gaftonmode:
             global _
             _ = yum.i18n.dummy_wrapper
@@ -227,6 +238,8 @@ class YumBase(depsolve.Depsolve):
             startupconf.syslog_ident = syslog_ident
         if syslog_facility != None:
             startupconf.syslog_facility = syslog_facility
+        if releasever != None:
+            startupconf.releasever = releasever
 
         self.doLoggingSetup(startupconf.debuglevel, startupconf.errorlevel,
                             startupconf.syslog_ident,
@@ -427,6 +440,9 @@ class YumBase(depsolve.Depsolve):
 
     def closeRpmDB(self):
         """closes down the instances of the rpmdb we have wangling around"""
+        if self._rpmdb is not None:
+            self._rpmdb.ts = None
+            self._rpmdb.dropCachedData()
         self._rpmdb = None
         self._ts = None
         self._tsInfo = None
@@ -478,7 +494,7 @@ class YumBase(depsolve.Depsolve):
         self.verbose_logger.debug(_('Setting up Package Sacks'))
         sack_st = time.time()
         if not archlist:
-            archlist = rpmUtils.arch.getArchList()
+            archlist = self.arch.archlist
         
         archdict = {}
         for arch in archlist:
@@ -548,7 +564,11 @@ class YumBase(depsolve.Depsolve):
             obs_init = time.time()    
             self._up.rawobsoletes = self.pkgSack.returnObsoletes()
             self.verbose_logger.debug('up:Obs Init time: %0.3f' % (time.time() - obs_init))
-            
+
+        self._up.myarch = self.arch.canonarch
+        self._up._is_multilib = self.arch.multilib
+        self._up._archlist = self.arch.archlist
+        self._up._multilib_compat_arches = self.arch.compatarches
         self._up.exactarch = self.conf.exactarch
         self._up.exactarchlist = self.conf.exactarchlist
         up_pr_st = time.time()
@@ -861,11 +881,10 @@ class YumBase(depsolve.Depsolve):
     def _getPackagesToRemoveAllArch(self,po):
         ''' get all compatible arch packages in pkgSack'''
         pkgs = []
-        if rpmUtils.arch.isMultiLibArch():
-            archs = rpmUtils.arch.getArchList() 
+        if self.arch.multilib:
             n,a,e,v,r = po.pkgtup
             # skip for all compat archs
-            for a in archs:
+            for a in self.arch.archlist:
                 pkgtup = (n,a,e,v,r)
                 matched = self.pkgSack.searchNevra(n,e,v,r,a) 
                 pkgs.extend(matched)
@@ -879,10 +898,9 @@ class YumBase(depsolve.Depsolve):
 
     def _skipFromTransaction(self,po):
         skipped =  []
-        archs = rpmUtils.arch.getArchList() 
         n,a,e,v,r = po.pkgtup
         # skip for all compat archs
-        for a in archs:
+        for a in self.arch.archlist:
             pkgtup = (n,a,e,v,r)
             if self.tsInfo.exists(pkgtup):
                 for txmbr in self.tsInfo.getMembers(pkgtup):
@@ -1008,6 +1026,7 @@ class YumBase(depsolve.Depsolve):
         # for any kind of install add from_repo to the yumdb, and the cmdline
         # and the install reason
 
+        self.rpmdb.dropCachedData()
         for txmbr in self.tsInfo:
             if txmbr.output_state in TS_INSTALL_STATES:
                 if not self.rpmdb.contains(po=txmbr.po):
@@ -1017,11 +1036,21 @@ class YumBase(depsolve.Depsolve):
                                            ' but is not!' % txmbr.po))
                     continue
                 po = self.rpmdb.searchPkgTuple(txmbr.pkgtup)[0]
-                po.yumdb_info.from_repo = txmbr.po.repoid
+                rpo = txmbr.po
+                po.yumdb_info.from_repo = rpo.repoid
                 po.yumdb_info.reason = txmbr.reason
                 po.yumdb_info.releasever = self.yumvar['releasever']
                 if hasattr(self, 'cmds') and self.cmds:
                     po.yumdb_info.command_line = ' '.join(self.cmds)
+                csum = rpo.returnIdSum()
+                if csum is not None:
+                    po.yumdb_info.checksum_type = str(csum[0])
+                    po.yumdb_info.checksum_data = str(csum[1])
+                md = rpo.repo.repoXML
+                if md and md.revision is not None:
+                    po.yumdb_info.from_repo_revision  = str(md.revision)
+                if md:
+                    po.yumdb_info.from_repo_timestamp = str(md.timestamp)
             
             elif txmbr.output_state in TS_REMOVE_STATES:
                 if self.rpmdb.contains(po=txmbr.po):
@@ -1037,7 +1066,7 @@ class YumBase(depsolve.Depsolve):
             else:
                 self.verbose_logger.log(logginglevels.DEBUG_2, 'What is this? %s' % txmbr.po)
 
-
+        self.rpmdb.dropCachedData()
 
     def costExcludePackages(self):
         """exclude packages if they have an identical package in another repo
@@ -1102,24 +1131,8 @@ class YumBase(depsolve.Depsolve):
             excludelist = repo.getExcludePkgList()
             repoid = repo.id
 
-        if len(excludelist) == 0:
-            return
-
-        if not repo:
-            self.verbose_logger.log(logginglevels.INFO_2, _('Excluding Packages in global exclude list'))
-        else:
-            self.verbose_logger.log(logginglevels.INFO_2, _('Excluding Packages from %s'),
-                repo.name)
-
-        pkgs = self._pkgSack.returnPackages(repoid, patterns=excludelist,
-                                            ignore_case=False)
-
-        for po in pkgs:
-            self.verbose_logger.debug('Excluding %s', po)
-            po.repo.sack.delPackage(po)
-            
-        
-        self.verbose_logger.log(logginglevels.INFO_2, 'Finished')
+        for match in excludelist:
+            self.pkgSack.addPackageExcluder(repoid, 'exclude.match', match)
 
     def includePackages(self, repo):
         """removes packages from packageSacks based on list of packages, to include.
@@ -1130,29 +1143,9 @@ 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)
-        
-        self.verbose_logger.log(logginglevels.INFO_2,
-            _('Reducing %s to included packages only'), repo.name)
-        rmlist = []
-        keeplist = set(exactmatch + matched)
-        
-        for po in pkglist:
-            if po in keeplist:
-                self.verbose_logger.debug(_('Keeping included package %s'), po)
-                continue
-            else:
-                rmlist.append(po)
-        
-        for po in rmlist:
-            self.verbose_logger.debug(_('Removing unmatched package %s'), po)
-            po.repo.sack.delPackage(po)
-            
-        self.verbose_logger.log(logginglevels.INFO_2, _('Finished'))
+        for match in includelist:
+            self.pkgSack.addPackageExcluder(repo.id, 'include.match', match)
+        self.pkgSack.addPackageExcluder(repo.id, 'exclude.*')
         
     def doLock(self, lockfile = YUM_PID_FILE):
         """perform the yum locking, raise yum-based exceptions, not OSErrors"""
@@ -2208,10 +2201,10 @@ class YumBase(depsolve.Depsolve):
                     # sure we'll catch it if its added later in this transaction
                     pkgs = self.pkgSack.searchNevra(name=condreq)
                     if pkgs:
-                        if rpmUtils.arch.isMultiLibArch():
+                        if self.arch.multilib:
                             if self.conf.multilib_policy == 'best':
                                 use = []
-                                best = rpmUtils.arch.legitMultiArchesInSameLib()
+                                best = self.arch.legit_multi_arches
                                 best.append('noarch')
                                 for pkg in pkgs:
                                     if pkg.arch in best:
@@ -2416,7 +2409,7 @@ class YumBase(depsolve.Depsolve):
            multilib to singlelib packages""" 
     
         returnlist = []
-        compatArchList = rpmUtils.arch.getArchList(arch)
+        compatArchList = self.arch.get_arch_list(arch)
         multiLib = []
         singleLib = []
         noarch = []
@@ -2425,7 +2418,7 @@ class YumBase(depsolve.Depsolve):
                 continue
             elif po.arch in ("noarch"):
                 noarch.append(po)
-            elif rpmUtils.arch.isMultiLibArch(arch=po.arch):
+            elif isMultiLibArch(arch=po.arch):
                 multiLib.append(po)
             else:
                 singleLib.append(po)
@@ -2614,14 +2607,14 @@ class YumBase(depsolve.Depsolve):
 
                 
                 # only do these things if we're multilib
-                if rpmUtils.arch.isMultiLibArch():
+                if self.arch.multilib:
                     if was_pattern or not nevra_dict['arch']: # and only if they
                                                               # they didn't specify an arch
                         if self.conf.multilib_policy == 'best':
                             pkgs_by_name = {}
                             use = []
                             not_added = []
-                            best = rpmUtils.arch.legitMultiArchesInSameLib()
+                            best = self.arch.legit_multi_arches
                             best.append('noarch')
                             for pkg in pkgs:
                                 if pkg.arch in best:
@@ -3085,7 +3078,7 @@ class YumBase(depsolve.Depsolve):
         # do this: but it's not a config file sort of thing
         # FIXME: Should add noarch, yum localinstall works ...
         # just rm this method?
-        if po.arch not in rpmUtils.arch.getArchList():
+        if po.arch not in self.arch.archlist:
             self.logger.critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
             return tx_return
         
@@ -3110,8 +3103,8 @@ class YumBase(depsolve.Depsolve):
                     updatepkgs.append((po, installed_pkg))
             elif po.verEQ(installed_pkg):
                 if (po.arch != installed_pkg.arch and
-                    (rpmUtils.arch.isMultiLibArch(po.arch) or
-                     rpmUtils.arch.isMultiLibArch(installed_pkg.arch))):
+                    (isMultiLibArch(po.arch) or
+                     isMultiLibArch(installed_pkg.arch))):
                     installpkgs.append(po)
                 else:
                     donothingpkgs.append(po)
@@ -3171,7 +3164,7 @@ class YumBase(depsolve.Depsolve):
             self.verbose_logger.log(logginglevels.INFO_2,
                 _('Examining %s: %s'), po.localpath, po)
 
-        if po.arch not in rpmUtils.arch.getArchList():
+        if po.arch not in self.arch.archlist:
             self.logger.critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
             return []
 
@@ -3199,7 +3192,7 @@ class YumBase(depsolve.Depsolve):
         tx_mbrs = []
         tx_mbrs.extend(self.remove(po, **kwargs))
         if not tx_mbrs:
-            raise Errors.ReinstallError, _("Problem in reinstall: no package matched to remove")
+            raise Errors.ReinstallRemoveError, _("Problem in reinstall: no package matched to remove")
         templen = len(tx_mbrs)
         # this is a reinstall, so if we can't reinstall exactly what we uninstalled
         # then we really shouldn't go on
@@ -3229,7 +3222,7 @@ class YumBase(depsolve.Depsolve):
             if len(members) == 0:
                 self.tsInfo.remove(item.pkgtup)
                 tx_mbrs.remove(item)
-                raise Errors.ReinstallError, _("Problem in reinstall: no package matched to install")
+                raise Errors.ReinstallInstallError, _("Problem in reinstall: no package %s matched to install") % item.po
             new_members.extend(members)
 
         tx_mbrs.extend(new_members)
@@ -3255,7 +3248,7 @@ class YumBase(depsolve.Depsolve):
             self.verbose_logger.log(logginglevels.INFO_2,
                 _('Examining %s: %s'), po.localpath, po)
 
-        if po.arch not in rpmUtils.arch.getArchList():
+        if po.arch not in self.arch.archlist:
             self.logger.critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
             return []
 
@@ -3385,14 +3378,11 @@ class YumBase(depsolve.Depsolve):
             na = (po.name, po.arch)
             if na not in downgrade_apkgs:
                 continue
-            itxmbr = self.tsInfo.addErase(po)
-            atxmbr = self.tsInfo.addInstall(downgrade_apkgs[na])
-            if not atxmbr: # Fail?
-                self.tsInfo.remove(itxmbr.pkgtup)
+            txmbrs = self.tsInfo.addDowngrade(downgrade_apkgs[na], po)
+            if not txmbrs: # Fail?
                 continue
             self._add_prob_flags(rpm.RPMPROB_FILTER_OLDPACKAGE)
-            tx_return.append(itxmbr)
-            tx_return.append(atxmbr)
+            tx_return.extend(txmbrs)
 
         return tx_return
         
@@ -3596,6 +3586,36 @@ class YumBase(depsolve.Depsolve):
 
 
     def _limit_installonly_pkgs(self):
+        """ Limit packages based on conf.installonly_limit, if any of the
+            packages being installed have a provide in conf.installonlypkgs.
+            New in 3.2.24: Obey yumdb_info.installonly data. """
+
+        def _sort_and_filter_installonly(pkgs):
+            """ Allow the admin to specify some overrides fo installonly pkgs.
+                using the yumdb. """
+            ret_beg = []
+            ret_mid = []
+            ret_end = []
+            for pkg in sorted(pkgs):
+                if 'installonly' not in pkg.yumdb_info:
+                    ret_mid.append(pkg)
+                    continue
+
+                if pkg.yumdb_info.installonly == 'keep':
+                    continue
+
+                if True: # Don't to magic sorting, yet
+                    ret_mid.append(pkg)
+
+                if pkg.yumdb_info.installonly == 'remove-first':
+                    ret_beg.append(pkg)
+                elif pkg.yumdb_info.installonly == 'remove-last':
+                    ret_end.append(pkg)
+                else:
+                    ret_mid.append(pkg)
+
+            return ret_beg + ret_mid + ret_end
+
         if self.conf.installonly_limit < 1 :
             return 
             
@@ -3612,9 +3632,9 @@ class YumBase(depsolve.Depsolve):
                 if (m.name == instpkg or instpkg in m.po.provides_names) \
                        and m.ts_state in ('i', 'u'):
                     installed = self.rpmdb.searchNevra(name=m.name)
+                    installed = _sort_and_filter_installonly(installed)
                     if len(installed) >= self.conf.installonly_limit - 1: # since we're adding one
                         numleft = len(installed) - self.conf.installonly_limit + 1
-                        installed.sort(comparePoEVR)
                         for po in installed:
                             if (po.version, po.release) == (cur_kernel_v, cur_kernel_r): 
                                 # don't remove running
@@ -3828,3 +3848,19 @@ class YumBase(depsolve.Depsolve):
         self.repos.enableRepo(newrepo.id)
         return newrepo
 
+    def setCacheDir(self, force=False, tmpdir='/var/tmp', reuse=True,
+                    suffix='/$basearch/$releasever'):
+        ''' Set a new cache dir, using misc.getCacheDir() and var. replace
+            on suffix. '''
+
+        if not force and os.geteuid() == 0:
+            return True # We are root, not forced, so happy with the global dir.
+
+        cachedir = misc.getCacheDir(tmpdir, reuse)
+        if cachedir is None:
+            return False # Tried, but failed, to get a "user" cachedir
+
+        self.repos.setCacheDir(cachedir + varReplace(suffix, self.yumvar))
+
+        return True # We got a new cache dir
+
diff --git a/yum/config.py b/yum/config.py
index 9a47f1c..4737bd1 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -24,12 +24,11 @@ import warnings
 import rpm
 import copy
 import urlparse
-from parser import ConfigPreProcessor
+from parser import ConfigPreProcessor, varReplace
 from iniparse import INIConfig
 from iniparse.compat import NoSectionError, NoOptionError, ConfigParser
 from iniparse.compat import ParsingError
 import rpmUtils.transaction
-import rpmUtils.arch
 import Errors
 
 # Alter/patch these to change the default checking...
@@ -771,9 +770,10 @@ def readStartupConfig(configfile, root):
     for path in startupconf.pluginpath:
         if not path[0] == '/':
             raise Errors.ConfigError("All plugin search paths must be absolute")
-
     # Stuff this here to avoid later re-parsing
     startupconf._parser = parser
+    # setup the release ver here
+    startupconf.releasever = _getsysver(startupconf.installroot, startupconf.distroverpkg)
 
     return startupconf
 
@@ -789,9 +789,9 @@ def readMainConfig(startupconf):
 
     # Set up substitution vars
     yumvars = _getEnvVar()
-    yumvars['basearch'] = rpmUtils.arch.getBaseArch()          # FIXME make this configurable??
-    yumvars['arch'] = rpmUtils.arch.getCanonArch()             # FIXME make this configurable??
-    yumvars['releasever'] = _getsysver(startupconf.installroot, startupconf.distroverpkg)
+    yumvars['basearch'] = startupconf.basearch
+    yumvars['arch'] = startupconf.arch
+    yumvars['releasever'] = startupconf.releasever
 
     # Read [main] section
     yumconf = YumConf()
@@ -803,6 +803,7 @@ def readMainConfig(startupconf):
         ir_path = yumconf.installroot + path
         ir_path = ir_path.replace('//', '/') # os.path.normpath won't fix this and
                                              # it annoys me
+        ir_path = varReplace(ir_path, yumvars)
         setattr(yumconf, option, ir_path)
     
     # Add in some extra attributes which aren't actually configuration values 
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 370d12a..81de803 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -15,7 +15,7 @@
 # Copyright 2005 Duke University 
 
 """
-Depedancy resolution module for yum.
+Dependency resolution module for yum.
 """
 
 import os.path
@@ -24,8 +24,7 @@ import logging
 
 import rpmUtils.transaction
 import rpmUtils.miscutils
-import rpmUtils.arch
-from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch, canCoinstall
+from rpmUtils.arch import archDifference, canCoinstall
 import misc
 from misc import unique, version_tuple_to_string
 import rpm
@@ -1046,7 +1045,7 @@ class Depsolve(object):
             # return the package which is closer or None for equal, or equally useless
             
             x_dist = archDifference(req_compare_arch, x.arch)
-            if isMultiLibArch(): # only go to the next one if we're multilib - 
+            if self.arch.multilib: # only go to the next one if we're multilib - 
                 if x_dist == 0: # can't really use best's arch anyway...
                     self.verbose_logger.log(logginglevels.DEBUG_4,
                         _("better arch in po %s") %(y))
@@ -1106,6 +1105,7 @@ class Depsolve(object):
         
         # add the negative of the length of the name to the score
         
+        
         for po in pkgs:
             for nextpo in pkgs:
                 if po == nextpo:
@@ -1115,8 +1115,7 @@ class Depsolve(object):
                 # treat it like it's obsoleted. The problem here is X-1
                 # accidentally provides FOO, so you release X-2 without the
                 # provide, but X-1 is still picked over a real provider.
-                na = (po.name,po.arch)
-                lpos = self.pkgSack.returnNewestByNameArch(naTup=na)
+                lpos = self.pkgSack.returnNewestByName(po.name)
                 if not lpos or po != sorted(lpos)[-1]:
                     pkgresults[po] -= 1024
 
@@ -1130,9 +1129,9 @@ class Depsolve(object):
                         _("%s obsoletes %s") % (nextpo, po))
 
                 if reqpo:
-                    arches = (reqpo.arch, getBestArch())
+                    arches = (reqpo.arch, self.arch.bestarch)
                 else:
-                    arches = (getBestArch(),)
+                    arches = (self.arch.bestarch,)
                 
                 for thisarch in arches:
                     res = _compare_arch_distance(po, nextpo, thisarch)
diff --git a/yum/misc.py b/yum/misc.py
index 7d4ee61..2135634 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -24,13 +24,13 @@ except ImportError:
     gpgme = None
 try:
     import hashlib
-    _available_checksums = ['md5', 'sha1', 'sha256', 'sha512']
+    _available_checksums = set(['md5', 'sha1', 'sha256', 'sha512'])
     _default_checksums = ['sha256']
 except ImportError:
     # Python-2.4.z ... gah!
     import sha
     import md5
-    _available_checksums = ['md5', 'sha1']
+    _available_checksums = set(['md5', 'sha1'])
     _default_checksums = ['sha1']
     class hashlib:
 
diff --git a/yum/packageSack.py b/yum/packageSack.py
index f405217..16c4f1e 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -25,6 +25,22 @@ import fnmatch
 import misc
 from packages import parsePackages
 
+class PackageSackVersion:
+    def __init__(self):
+        self._num = 0
+        self._chksum = misc.Checksums(['sha1'])
+
+    def __str__(self):
+        return "%u:%s" % (self._num, self._chksum.hexdigest())
+
+    def update(self, pkg, csum):
+        self._num += 1
+        self._chksum.update(str(pkg))
+        if csum is not None:
+            self._chksum.update(csum[0])
+            self._chksum.update(csum[1])
+
+
 class PackageSackBase(object):
     """Base class that provides the interface for PackageSacks."""
     def __init__(self):
@@ -148,6 +164,29 @@ class PackageSackBase(object):
         """return list of all packages"""
         raise NotImplementedError()
 
+    def addPackageExcluder(self, repoid, excluder, *args):
+        """exclude packages, for a variety of reasons"""
+        raise NotImplementedError()
+
+    def simpleVersion(self):
+        """ Return a simple version for all available packages. """
+        main = PackageSackVersion()
+        arepos = {}
+        for pkg in sorted(self.returnPackages()):
+            csum = pkg.returnIdSum()
+            main.update(pkg, csum)
+
+            arevs = arepos.setdefault(pkg.repoid, {})
+            rpsv = arevs.setdefault(None, PackageSackVersion())
+            rpsv.update(pkg, csum)
+
+            if pkg.repo.repoXML.revision is not None:
+                rev = pkg.repo.repoXML.revision
+                rpsv = arevs.setdefault(rev, PackageSackVersion())
+                rpsv.update(pkg, csum)
+
+        return [main, arepos]
+
     def returnNewestByNameArch(self, naTup=None,
                                patterns=None, ignore_case=False):
         """return list of newest packages based on name, arch matching
@@ -397,6 +436,13 @@ class MetaSack(PackageSackBase):
         return self.sacks[repoid].returnPackages(patterns=patterns,
                                                  ignore_case=ignore_case)
 
+    def addPackageExcluder(self, repoid, excluder, *args):
+        """exclude packages, for a variety of reasons"""
+        if not repoid:
+            return self._computeAggregateListResult("addPackageExcluder",
+                                                    None, excluder, *args)
+        return self.sacks[repoid].addPackageExcluder(None, excluder, *args)
+
     def returnNewestByNameArch(self, naTup=None,
                                patterns=None, ignore_case=False):
         """return list of newest packages based on name, arch matching
diff --git a/yum/packages.py b/yum/packages.py
index e3a12f2..9827f9d 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -27,8 +27,8 @@ import re
 import fnmatch
 import stat
 import warnings
+from subprocess import Popen, PIPE
 from rpmUtils import RpmUtilsError
-import rpmUtils.arch
 import rpmUtils.miscutils
 from rpmUtils.miscutils import flagToString, stringToVersion
 import Errors
@@ -909,11 +909,11 @@ class YumAvailablePackage(PackageObject, RpmBase):
             if flags:
                 pcostring += ''' flags="%s"''' % flags
                 if e:
-                    pcostring += ''' epoch="%s"''' % e
+                    pcostring += ''' epoch="%s"''' % misc.to_xml(e, attrib=True)
                 if v:
-                    pcostring += ''' ver="%s"''' % v
+                    pcostring += ''' ver="%s"''' % misc.to_xml(v, attrib=True)
                 if r:
-                    pcostring += ''' rel="%s"''' % r
+                    pcostring += ''' rel="%s"''' % misc.to_xml(r, attrib=True)
                     
             pcostring += "/>\n"
             msg += pcostring
@@ -980,11 +980,11 @@ class YumAvailablePackage(PackageObject, RpmBase):
             if flags:
                 prcostring += ''' flags="%s"''' % flags
                 if e:
-                    prcostring += ''' epoch="%s"''' % e
+                    prcostring += ''' epoch="%s"''' % misc.to_xml(e, attrib=True)
                 if v:
-                    prcostring += ''' ver="%s"''' % v
+                    prcostring += ''' ver="%s"''' % misc.to_xml(v, attrib=True)
                 if r:
-                    prcostring += ''' rel="%s"''' % r
+                    prcostring += ''' rel="%s"''' % misc.to_xml(r, attrib=True)
             if pre:
                 prcostring += ''' pre="%s"''' % pre
                     
@@ -1386,8 +1386,14 @@ class YumInstalledPackage(YumHeaderPackage):
                 # stat
                 my_st = os.lstat(fn)
                 my_st_size = my_st.st_size
-                my_user  = pwd.getpwuid(my_st[stat.ST_UID])[0]
-                my_group = grp.getgrgid(my_st[stat.ST_GID])[0]
+                try:
+                    my_user  = pwd.getpwuid(my_st[stat.ST_UID])[0]
+                except KeyError, e:
+                    my_user = 'uid %s not found' % my_st[stat.ST_UID]
+                try:
+                    my_group = grp.getgrgid(my_st[stat.ST_GID])[0]
+                except KeyError, e:
+                    my_group = 'gid %s not found' % my_st[stat.ST_GID]
 
                 if mode < 0:
                     # Stupid rpm, should be unsigned value but is signed ...
@@ -1481,7 +1487,10 @@ class YumInstalledPackage(YumHeaderPackage):
                     if gen_csum and my_csum != csum and have_prelink:
                         #  This is how rpm -V works, try and if that fails try
                         # again with prelink.
-                        (ig, fp,er) = os.popen3([prelink_cmd, "-y", fn])
+                        p = Popen([prelink_cmd, "-y", fn], 
+                            shell=True, bufsize=-1, stdin=PIPE, 
+                            stdout=PIPE, stderr=PIPE, close_fds=True)
+                        (ig, fp, er) = (p.stdin, p.stdout, p.stderr)
                         # er.read(1024 * 1024) # Try and get most of the stderr
                         fp = _CountedReadFile(fp)
                         my_csum = misc.checksum(csum_type, fp)
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 5189b18..c5a5b77 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -25,7 +25,7 @@ from rpmUtils.transaction import initReadOnlyTransaction
 import misc
 import Errors
 from packages import YumInstalledPackage, parsePackages
-from packageSack import PackageSackBase
+from packageSack import PackageSackBase, PackageSackVersion
 
 # For returnPackages(patterns=)
 import fnmatch
@@ -140,7 +140,10 @@ class RPMDBPackageSack(PackageSackBase):
         self._simple_pkgtup_list = []
         self._get_pro_cache = {}
         self._get_req_cache = {}
-        misc.unshare_data()
+        #  We can be called on python shutdown (due to yb.__del__), at which
+        # point other modules might not be available.
+        if misc is not None:
+            misc.unshare_data()
         self._cache = {
             'provides' : { },
             'requires' : { },
@@ -332,6 +335,32 @@ class RPMDBPackageSack(PackageSackBase):
             pkgobjlist = pkgobjlist[0] + pkgobjlist[1]
         return pkgobjlist
 
+    def simpleVersion(self):
+        """ Return a simple version for all installed packages. """
+        main = PackageSackVersion()
+        irepos = {}
+        for pkg in sorted(self.returnPackages()):
+            ydbi = pkg.yumdb_info
+            csum = None
+            if 'checksum_type' in ydbi and 'checksum_data' in ydbi:
+                csum = (ydbi.checksum_type, ydbi.checksum_data)
+            main.update(pkg, csum)
+
+            repoid = 'installed'
+            rev = None
+            if 'from_repo' in pkg.yumdb_info:
+                repoid = '@' + pkg.yumdb_info.from_repo
+                if 'from_repo_revision' in pkg.yumdb_info:
+                    rev = pkg.yumdb_info.from_repo_revision
+            irevs = irepos.setdefault(repoid, {})
+            rpsv = irevs.setdefault(None, PackageSackVersion())
+            rpsv.update(pkg, csum)
+            if rev is not None:
+                rpsv = irevs.setdefault(rev, PackageSackVersion())
+                rpsv.update(pkg, csum)
+
+        return [main, irepos]
+
     @staticmethod
     def _find_search_fields(fields, searchstrings, hdr):
         count = 0
@@ -735,6 +764,9 @@ class RPMDBAdditionalDataPackage(object):
     def _read(self, attr):
         attr = _sanitize(attr)
 
+        if attr.endswith('.tmp'):
+            raise AttributeError, "%s has no attribute %s" % (self, attr)
+
         if attr in self._read_cached_data:
             return self._read_cached_data[attr]
 
@@ -751,7 +783,7 @@ class RPMDBAdditionalDataPackage(object):
     def _delete(self, attr):
         """remove the attribute file"""
 
-        self.get(attr)
+        attr = _sanitize(attr)
         fn = self._mydir + '/' + attr
         if attr in self._read_cached_data:
             del self._read_cached_data[attr]
@@ -776,18 +808,20 @@ class RPMDBAdditionalDataPackage(object):
         else:
             object.__delattr__(self, attr)
 
-    def __iter__(self):
+    def __iter__(self, show_hidden=False):
         for item in self._read_cached_data:
             yield item
         for item in glob.glob(self._mydir + '/*'):
             item = item[(len(self._mydir) + 1):]
             if item in self._read_cached_data:
                 continue
+            if not show_hidden and item.endswith('.tmp'):
+                continue
             yield item
 
     def clean(self):
         # purge out everything
-        for item in self:
+        for item in self.__iter__(show_hidden=True):
             self._delete(item)
         try:
             os.rmdir(self._mydir)
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 7d87e0b..96ed13c 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -60,6 +60,52 @@ def catchSqliteException(func):
 def _share_data(value):
     return misc.share_data(value)
 
+# FIXME: parsePackages()
+import re
+import fnmatch
+def _parse_pkg_n(match, regexp_match, n):
+    if match == n:
+        return True
+    if not regexp_match:
+        return False
+
+    if (match and n and match[0] not in ('?', '*') and match[0] != n[0]):
+        return False
+    if regexp_match(n):
+        return True
+    return False
+
+def _parse_pkg(match, regexp_match, data, e,v,r,a):
+
+    n = data['n']
+    assert e, 'Nothing in epoch'
+    # Worthless speed hacks?
+    if match == n:
+        return True
+    if (match and n and match[0] not in ('?', '*') and
+        match[0] != n[0] and match[0] != e[0]):
+        return False
+
+    if 'nameArch' not in data:
+        data['nameArch'] = '%s.%s' % (n, a)
+        data['nameVerRelArch'] = '%s-%s-%s.%s' % (n, v, r, a)
+        data['nameVer'] = '%s-%s' % (n, v)
+        data['nameVerRel'] = '%s-%s-%s' % (n, v, r)
+        data['envra'] = '%s:%s-%s-%s.%s' % (e, n, v, r, a)
+        data['nevra'] = '%s-%s:%s-%s.%s' % (n, e, v, r, a)
+    data = set([n, data['nameArch'], data['nameVerRelArch'], data['nameVer'],
+                data['nameVerRel'], data['envra'], data['nevra']])
+
+    if match in data:
+        return True
+    if not regexp_match:
+        return False
+
+    for item in data:
+        if regexp_match(item):
+            return True
+    return False
+
 class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
     def __init__(self, repo, db_obj):
         self.prco = { 'obsoletes': (),
@@ -291,8 +337,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         self.primarydb = {}
         self.filelistsdb = {}
         self.otherdb = {}
-        self.excludes = {}
+        self.excludes = {}     # of [repo] => {} of pkgId's => 1
         self._excludes = set() # of (repo, pkgKey)
+        self._exclude_whitelist = set() # of (repo, pkgKey)
         self._all_excludes = {}
         self._search_cache = {
             'provides' : { },
@@ -300,6 +347,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             }
         self._key2pkg = {}
         self._arch_allowed = None
+        self._pkgExcluder = []
 
     @catchSqliteException
     def _sql_MD(self, MD, repo, sql, *args):
@@ -364,6 +412,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         self.otherdb = {}
         self.excludes = {}
         self._excludes = set()
+        self._exclude_whitelist = set()
         self._all_excludes = {}
 
         yumRepo.YumPackageSack.close(self)
@@ -376,6 +425,11 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
     def _checkIndexes(self, failure='error'):
         return
 
+    def _delPackageRK(self, repo, pkgKey):
+        ''' Exclude a package so that _pkgExcluded*() knows it's gone.
+            Note that this doesn't update self.exclude. '''
+        self._excludes.add((repo, pkgKey))
+
     # Remove a package
     # Because we don't want to remove a package from the database we just
     # add it to the exclude list
@@ -383,7 +437,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         if not self.excludes.has_key(obj.repo):
             self.excludes[obj.repo] = {}
         self.excludes[obj.repo][obj.pkgId] = 1
-        self._excludes.add( (obj.repo, obj.pkgKey) )
+        self._delPackageRK(obj.repo, obj.pkgKey)
 
     def _delAllPackages(self, repo):
         """ Exclude all packages from the repo. """
@@ -408,36 +462,170 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
 
         return (repo, pkgKey) in self._excludes
 
-    def _pkgArchExcluded(self, pkgarch):
-        """ Test the arch for a package against the archlist we were passed. """
-        if self._arch_allowed is not None and pkgarch not in self._arch_allowed:
+    def _pkgExcludedRKNEVRA(self, repo,pkgKey, n,e,v,r,a):
+        ''' Main function to use for "can we use this package" question.
+                . Tests repo against allowed repos.
+                . Tests pkgKey against allowed packages.
+                . Tests arch against allowed arches.
+                . Tests addPackageExcluder() calls.
+        '''
+
+        if (repo, pkgKey) in self._exclude_whitelist:
+            return False
+
+        if self._pkgKeyExcluded(repo, pkgKey):
             return True
+
+        if self._arch_allowed is not None and a not in self._arch_allowed:
+            self._delPackageRK(repo, pkgKey)
+            return True
+
+        data = {'n' : n.lower()}
+        e = e.lower()
+        v = v.lower()
+        r = r.lower()
+        a = a.lower()
+
+        for repoid, excluder, match, regexp_match in self._pkgExcluder:
+            if repoid is not None and repoid != repo.id:
+                continue
+
+            if False: pass
+            elif excluder in ('exclude.eq', 'exclude.match'):
+                if _parse_pkg(match, regexp_match, data, e,v,r,a):
+                    self._delPackageRK(repo, pkgKey)
+                    return True
+
+            elif excluder in ('exclude.name.eq', 'exclude.name.match'):
+                if _parse_pkg_n(match, regexp_match, data['n']):
+                    self._delPackageRK(repo, pkgKey)
+                    return True
+
+            elif excluder in ('exclude.arch.eq', 'exclude.arch.match'):
+                if _parse_pkg_n(match, regexp_match, a):
+                    self._delPackageRK(repo, pkgKey)
+                    return True
+
+            elif excluder in ('exclude.nevra.eq', 'exclude.nevra.match'):
+                if 'nevra' not in data:
+                    data['nevra'] = '%s-%s:%s-%s.%s' % (n, e, v, r, a)
+                if _parse_pkg_n(match, regexp_match, data['nevra']):
+                    self._delPackageRK(repo, pkgKey)
+                    return True
+
+            elif excluder == 'exclude.name.in':
+                if data['n'] in match:
+                    self._delPackageRK(repo, pkgKey)
+                    return True
+
+            elif excluder == 'exclude.nevra.in':
+                if 'nevra' not in data:
+                    data['nevra'] = '%s-%s:%s-%s.%s' % (n, e, v, r, a)
+                if data['nevra'] in match:
+                    self._delPackageRK(repo, pkgKey)
+                    return True
+
+            elif excluder in ('include.eq', 'include.match'):
+                if _parse_pkg(match, regexp_match, data, e,v,r,a):
+                    break
+
+            elif excluder in ('include.name.eq', 'include.name.match'):
+                if _parse_pkg_n(match, regexp_match, data['n']):
+                    break
+
+            elif excluder in ('include.arch.eq', 'include.arch.match'):
+                if _parse_pkg_n(match, regexp_match, a):
+                    break
+
+            elif excluder in ('include.nevra.eq', 'include.nevra.match'):
+                if 'nevra' not in data:
+                    data['nevra'] = '%s-%s:%s-%s.%s' % (n, e, v, r, a)
+                if _parse_pkg_n(match, regexp_match, data['nevra']):
+                    break
+
+            elif excluder == 'include.name.in':
+                if data['n'] in match:
+                    break
+
+            elif excluder == 'include.nevra.in':
+                if 'nevra' not in data:
+                    data['nevra'] = '%s-%s:%s-%s.%s' % (n, e, v, r, a)
+                if data['nevra'] in match:
+                    break
+
+            elif excluder == 'exclude.*':
+                self._delPackageRK(repo, pkgKey)
+                return True
+
+            elif excluder == 'include.*':
+                break
+
+            else:
+                assert False, 'Bad excluder: ' + excluder
+
+        self._exclude_whitelist.add((repo, pkgKey))
         return False
 
-    def _pkgExcluded(self, po):
-        return (self._pkgKeyExcluded(po.repo, po.pkgKey) or
-                self._pkgArchExcluded(po.arch))
+    def _pkgExcludedRKT(self, repo,pkgKey, pkgtup):
+        ''' Helper function to call _pkgRKNEVRAExcluded.
+            Takes a repo, pkgKey and a package tuple'''
+        (n,a,e,v,r) = pkgtup
+        return self._pkgExcludedRKNEVRA(repo, pkgKey, n,e,v,r,a)
+
+    def _pkgExcludedRKD(self, repo,pkgKey, data):
+        ''' Helper function to call _pkgRKNEVRAExcluded.
+            Takes a repo, pkgKey and a dict of package data'''
+        (n,a,e,v,r) = (data['name'], data['arch'],
+                       data['epoch'], data['version'], data['release'])
+        return self._pkgExcludedRKNEVRA(repo, pkgKey, n,e,v,r,a)
 
-    def _packageByKey(self, repo, pkgKey):
+    def _pkgExcluded(self, po):
+        ''' Helper function to call _pkgRKNEVRAExcluded.
+            Takes a package object. '''
+        return self._pkgExcludedRKT(po.repo, po.pkgKey, po.pkgtup)
+
+    def addPackageExcluder(self, repoid, excluder, *args):
+        match        = None
+        regexp_match = None
+        if False: pass
+        elif excluder.endswith('.eq'):
+            assert len(args) == 1
+            match = args[0].lower()
+        elif excluder.endswith('.in'):
+            assert len(args) == 1
+            match = args[0]
+        elif excluder.endswith('.match'):
+            assert len(args) == 1
+            match = args[0].lower()
+            if misc.re_glob(match):
+                regexp_match = re.compile(fnmatch.translate(match)).match
+        elif excluder.endswith('.*'):
+            assert len(args) == 0
+        self._pkgExcluder.append((repoid, excluder, match, regexp_match))
+
+    def _packageByKey(self, repo, pkgKey, exclude=True):
         """ Lookup a pkg by it's pkgKey, if we don't have it load it """
+        # Speed hack, so we don't load the pkg. if the pkgKey is dead.
+        if exclude and self._pkgKeyExcluded(repo, pkgKey):
+            return None
+
         if not self._key2pkg.has_key(repo):
             self._key2pkg[repo] = {}
         if not self._key2pkg[repo].has_key(pkgKey):
-            sql = "SELECT pkgKey, pkgId, name, epoch, version, release " \
+            sql = "SELECT pkgKey, pkgId, name, epoch, version, release, arch " \
                   "FROM packages WHERE pkgKey = ?"
             data = self._sql_MD('primary', repo, sql, (pkgKey,)).fetchone()
             if data is None:
                 msg = "pkgKey %s doesn't exist in repo %s" % (pkgKey, repo)
                 raise Errors.RepoError, msg
-
+            if exclude and self._pkgExcludedRKD(repo, pkgKey, data):
+                return None
             self._key2pkg[repo][pkgKey] = self.pc(repo, data)
-        if self._pkgArchExcluded(self._key2pkg[repo][pkgKey].arch):
-            return None
         return self._key2pkg[repo][pkgKey]
         
-    def _packageByKeyData(self, repo, pkgKey, data):
+    def _packageByKeyData(self, repo, pkgKey, data, exclude=True):
         """ Like _packageByKey() but we already have the data for .pc() """
-        if self._pkgArchExcluded(data['arch']):
+        if exclude and self._pkgExcludedRKD(repo, pkgKey, data):
             return None
         if data['pkgKey'] not in self._key2pkg.get(repo, {}):
             po = self.pc(repo, data)
@@ -481,8 +669,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         """ Takes a cursor and maps the pkgKey rows into a list of packages. """
         if pkgs is None: pkgs = []
         for ob in cur:
-            if self._pkgKeyExcluded(repo, ob['pkgKey']):
-                continue
             if have_data:
                 pkg = self._packageByKeyData(repo, ob['pkgKey'], ob)
             else:
@@ -676,8 +862,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             cur = cache.cursor()
             executeSQL(cur, totalstring)
             for ob in cur:
-                if self._pkgKeyExcluded(rep, ob['pkgKey']):
-                    continue
                 pkg = self._packageByKey(rep, ob['pkgKey'])
                 if pkg is None:
                     continue
@@ -704,16 +888,12 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
                 obsoletes.flags as oflags\
                 from obsoletes,packages where obsoletes.pkgKey = packages.pkgKey")
             for ob in cur:
-                # If the package that is causing the obsoletes is excluded
-                # continue without processing the obsoletes
-                if self._pkgKeyExcluded(rep, ob['pkgKey']):
-                    continue
-                if self._pkgArchExcluded(ob['arch']):
-                    continue
-                    
                 key = ( _share_data(ob['name']), _share_data(ob['arch']),
                         _share_data(ob['epoch']), _share_data(ob['version']),
                         _share_data(ob['release']))
+                if self._pkgExcludedRKT(rep, ob['pkgKey'], key):
+                    continue
+
                 (n,f,e,v,r) = ( _share_data(ob['oname']),
                                 _share_data(ob['oflags']),
                                 _share_data(ob['oepoch']),
@@ -817,8 +997,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
                     if rpmUtils.miscutils.rangeCompare(req, val):
                         tmp.setdefault(pkgkey, []).append(val)
                 for pkgKey, hits in tmp.iteritems():
-                    if self._pkgKeyExcluded(rep, pkgKey):
-                        continue
                     pkg = self._packageByKey(rep, pkgKey)
                     if pkg is None:
                         continue
@@ -840,8 +1018,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
                 if rpmUtils.miscutils.rangeCompare(req, val):
                     tmp.setdefault(x['pkgKey'], []).append(val)
             for pkgKey, hits in tmp.iteritems():
-                if self._pkgKeyExcluded(rep, pkgKey):
-                    continue
                 pkg = self._packageByKey(rep, pkgKey)
                 if pkg is None:
                     continue
@@ -869,8 +1045,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             cur = cache.cursor()
             executeSQL(cur, "select DISTINCT pkgKey from files where name = ?", (name,))
             for ob in cur:
-                if self._pkgKeyExcluded(rep, ob['pkgKey']):
-                    continue
                 pkg = self._packageByKey(rep, ob['pkgKey'])
                 if pkg is None:
                     continue
@@ -1184,11 +1358,15 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
                 if pat_sqls:
                     qsql = _FULL_PARSE_QUERY_BEG + " OR ".join(pat_sqls)
                 executeSQL(cur, qsql, pat_data)
-                #  Note: Not using _sql_pkgKey2po() so that we can "un-exclude"
-                # things later on ... if that matters.
+                #  Note: If we are building the pkgobjlist, we don't exclude
+                # here, so that we can un-exclude later on ... if that matters.
                 for x in cur:
-                    po = self._packageByKeyData(repo, x['pkgKey'], x)
-                    if po is None: # Arch exclude is done here.
+                    exclude = not patterns
+                    if True: # NOTE: Can't unexclude things...
+                        exclude = True
+                    po = self._packageByKeyData(repo, x['pkgKey'], x,
+                                                exclude=exclude)
+                    if po is None:
                         continue
                     returnList.append(po)
         if not patterns:
@@ -1203,16 +1381,23 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         if self._skip_all():
             return []
 
-        if hasattr(self, 'pkgobjlist'):
+        internal_pkgoblist = hasattr(self, 'pkgobjlist')
+        if internal_pkgoblist:
             pkgobjlist = self.pkgobjlist
         else:
             pkgobjlist = self._buildPkgObjList(repoid, patterns, ignore_case)
 
-        if hasattr(self, 'pkgobjlist') and patterns:
+        if internal_pkgoblist and patterns:
+            internal_pkgoblist = False
             pkgobjlist = parsePackages(pkgobjlist, patterns, not ignore_case,
                                        unique='repo-pkgkey')
             pkgobjlist = pkgobjlist[0] + pkgobjlist[1]
 
+        if True: # NOTE: Can't unexclude things...
+            if internal_pkgoblist:
+                pkgobjlist = pkgobjlist[:]
+            return pkgobjlist
+
         returnList = []
         for po in pkgobjlist:
             if repoid is not None and repoid != po.repoid:
diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py
index 05820fa..84dbb4b 100644
--- a/yum/transactioninfo.py
+++ b/yum/transactioninfo.py
@@ -63,6 +63,8 @@ class TransactionData:
         self.depremoved = []
         self.depinstalled = []
         self.depupdated = []
+        self.reinstalled = []
+        self.downgraded = []
         
     def __len__(self):
         return len(self.pkgdict)
@@ -242,7 +244,7 @@ class TransactionData:
         
         return False
                 
-    def makelists(self):
+    def makelists(self, include_reinstall=False, include_downgrade=False):
         """returns lists of transaction Member objects based on mode:
            updated, installed, erased, obsoleted, depupdated, depinstalled
            deperased"""
@@ -256,8 +258,18 @@ class TransactionData:
         self.depremoved = []
         self.depinstalled = []
         self.depupdated = []
+        self.reinstalled = []
+        self.downgraded = []
         self.failed = []
 
+        if include_reinstall:
+            pkgtups = {'up' : set(), 'in' : set(), 'rm' : set()}
+            for txmbr in self.getMembers():
+                if txmbr.output_state in (TS_INSTALL, TS_TRUEINSTALL):
+                    pkgtups['in'].add(txmbr.po.pkgtup)
+                if txmbr.output_state ==  TS_ERASE:
+                    pkgtups['rm'].add(txmbr.po.pkgtup)
+
         for txmbr in self.getMembers():
             if txmbr.output_state == TS_UPDATE:
                 if txmbr.isDep:
@@ -265,7 +277,15 @@ class TransactionData:
                 else:
                     self.updated.append(txmbr)
                     
-            elif txmbr.output_state == TS_INSTALL or txmbr.output_state == TS_TRUEINSTALL:
+            elif txmbr.output_state in (TS_INSTALL, TS_TRUEINSTALL):
+                if include_reinstall and txmbr.po.pkgtup in pkgtups['rm']:
+                    self.reinstalled.append(txmbr)
+                    continue
+
+                if include_downgrade and txmbr.downgrades:
+                    self.downgraded.append(txmbr)
+                    continue
+
                 if txmbr.groups:
                     for g in txmbr.groups:
                         if g not in self.instgroups:
@@ -276,6 +296,12 @@ class TransactionData:
                     self.installed.append(txmbr)
             
             elif txmbr.output_state == TS_ERASE:
+                if include_reinstall and txmbr.po.pkgtup in pkgtups['in']:
+                    continue
+
+                if include_downgrade and txmbr.downgraded_by:
+                    continue
+
                 for g in txmbr.groups:
                     if g not in self.instgroups:
                         self.removedgroups.append(g)
@@ -368,6 +394,23 @@ class TransactionData:
         self.add(txmbr)
         return txmbr
 
+    def addDowngrade(self, po, oldpo):
+        """adds a package as an downgrade takes a packages object and returns
+           a pair of TransactionMember Objects"""
+
+        itxmbr = self.addErase(oldpo)
+        itxmbr.relatedto.append((po, 'downgradedby'))
+        itxmbr.downgraded_by.append(po)
+
+        atxmbr = self.addInstall(po)
+        if not atxmbr: # Fail?
+            self.remove(itxmbr.pkgtup)
+            return None
+        atxmbr.relatedto.append((oldpo, 'downgrades'))
+        atxmbr.downgrades.append(oldpo)
+
+        return (itxmbr, atxmbr)
+
     def addUpdated(self, po, updating_po):
         """adds a package as being updated by another pkg
            takes a packages object and returns a TransactionMember Object"""
@@ -544,6 +587,8 @@ class TransactionMember:
         self.obsoleted_by = []
         self.updates = []
         self.updated_by = []
+        self.downgrades = []
+        self.downgraded_by = []
         self.groups = [] # groups it's in
         self._poattr = ['pkgtup', 'repoid', 'name', 'arch', 'epoch', 'version',
                         'release']
diff --git a/yum/update_md.py b/yum/update_md.py
index b297704..b3a120e 100644
--- a/yum/update_md.py
+++ b/yum/update_md.py
@@ -113,6 +113,8 @@ class UpdateNotice(object):
             head += "Description : %s\n" % '\n'.join(desc)
 
         #  Get a list of arches we care about:
+        #XXX ARCH CHANGE - what happens here if we set the arch - we need to
+        # pass this in, perhaps
         arches = set(rpmUtils.arch.getArchList())
 
         filelist = "      Files :"
@@ -375,7 +377,12 @@ class UpdateMetadata(object):
 
         for event, elem in iterparse(infile):
             if elem.tag == 'update':
-                un = UpdateNotice(elem)
+                try:
+                    un = UpdateNotice(elem)
+                except UpdateNoticeException, e:
+                    print >> sys.stderr, "An update notice is broken, skipping."
+                    # what else should we do?
+                    continue
                 if not self._notices.has_key(un['update_id']):
                     self._notices[un['update_id']] = un
                     for pkg in un['pkglist']:
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index 94e352c..028d821 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -495,6 +495,21 @@ class YumRepository(Repository, config.RepoConf):
     grabfunc = property(lambda self: self._getgrabfunc())
     grab = property(lambda self: self._getgrab())
 
+    def _dirSetupMkdir_p(self, dpath):
+        """make the necessary directory path, if possible, raise on failure"""
+        if os.path.exists(dpath) and os.path.isdir(dpath):
+            return
+
+        if self.cache:
+            raise Errors.RepoError, "Cannot access repository dir %s" % dpath
+
+        try:
+            os.makedirs(dpath, mode=0755)
+        except OSError, e:
+            msg = "%s: %s %s: %s" % ("Error making cache directory",
+                                     dpath, "error was", e)
+            raise Errors.RepoError, msg
+
     def dirSetup(self):
         """make the necessary dirs, if possible, raise on failure"""
 
@@ -510,19 +525,8 @@ class YumRepository(Repository, config.RepoConf):
         self.setAttribute('_dir_setup_metadata_cookie', cookie)
 
         for dir in [self.cachedir, self.pkgdir]:
-            if self.cache == 0:
-                if os.path.exists(dir) and os.path.isdir(dir):
-                    continue
-                else:
-                    try:
-                        os.makedirs(dir, mode=0755)
-                    except OSError, e:
-                        raise Errors.RepoError, \
-                            "Error making cache directory: %s error was: %s" % (dir, e)
-            else:
-                if not os.path.exists(dir):
-                    raise Errors.RepoError, \
-                        "Cannot access repository dir %s" % dir
+            self._dirSetupMkdir_p(dir)
+
         # if we're using a cachedir that's not the system one, copy over these
         # basic items from the system one
         self._preload_md_from_system_cache('repomd.xml')
@@ -530,17 +534,35 @@ 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):
+    def _dirGetAttr(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 _dirSetAttr(self, attr, val):
+        """ Make the directory attributes call .dirSetup() if needed. """
+        attr = '_dir_setup_' + attr
+        if not hasattr(self, attr):
+            self.dirSetup()
+
+        if attr == '_dir_setup_pkgdir':
+            if not hasattr(self, '_old_pkgdirs'):
+                self._old_pkgdirs = []
+            self._old_pkgdirs.append(getattr(self, attr))
+
+        ret = setattr(self, attr, val)
+        if attr in ('_dir_setup_pkgdir', ):
+            self._dirSetupMkdir_p(val)
+        return ret
+    cachedir = property(lambda self: self._dirGetAttr('cachedir'))
+    pkgdir   = property(lambda self: self._dirGetAttr('pkgdir'),
+                        lambda self, x: self._dirSetAttr('pkgdir', x))
+    hdrdir   = property(lambda self: self._dirGetAttr('hdrdir'),
+                        lambda self, x: self._dirSetAttr('hdrdir', x))
+    gpgdir   = property(lambda self: self._dirGetAttr('gpgdir'),
+                        lambda self, x: self._dirSetAttr('gpgdir', x))
+    metadata_cookie = property(lambda self: self._dirGetAttr('metadata_cookie'))
 
     def baseurlSetup(self):
         warnings.warn('baseurlSetup() will go away in a future version of Yum.\n',
@@ -790,6 +812,11 @@ class YumRepository(Repository, config.RepoConf):
         local = package.localPkg()
         basepath = package.basepath
 
+        if self._preload_pkg_from_system_cache(package):
+            if package.verifyLocalPkg():
+                return local
+            misc.unlink_f(local)
+
         return self._getFile(url=basepath,
                         relative=remote,
                         local=local,
@@ -820,18 +847,28 @@ class YumRepository(Repository, config.RepoConf):
         age of the cookie is less than metadata_expire time then return true
         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:
-            repomdfn = self.cachedir + '/' + 'repomd.xml'
-            if not os.path.exists(repomdfn):
-                self._metadataCurrent = False
-        if self._metadataCurrent is None:
-            self._metadataCurrent = self.withinCacheAge(self.metadata_cookie,
-                                                        self.metadata_expire)
-        return self._metadataCurrent
+        if self._metadataCurrent is not None:
+            return self._metadataCurrent
+
+        mC_def = self.withinCacheAge(self.metadata_cookie, self.metadata_expire)
+        if not mC_def: # Normal path...
+            self._metadataCurrent = mC_def
+            return mC_def
+
+        # Edge cases, both repomd.xml and metalink (if used). Must exist.
+        repomdfn = self.cachedir + '/' + 'repomd.xml'
+        if not os.path.exists(repomdfn):
+            self._metadataCurrent = False
+            return False
+
+        self._hack_mirrorlist_for_anaconda()
+        mlfn = self.cachedir + '/' + 'metalink.xml'
+        if self.metalink and not os.path.exists(mlfn):
+            self._metadataCurrent = False
+            return False
+
+        self._metadataCurrent = True
+        return True
 
     #  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
@@ -1596,7 +1633,19 @@ class YumRepository(Repository, config.RepoConf):
 
         return returnlist
 
-    def _preload_file_from_system_cache(self, filename, subdir=''):
+    def _preload_file(self, fn, destfn):
+        """attempts to copy the file, if possible"""
+        # don't copy it if the copy in our users dir is newer or equal
+        if not os.path.exists(fn):
+            return False
+        if os.path.exists(destfn):
+            if os.stat(fn)[stat.ST_CTIME] <= os.stat(destfn)[stat.ST_CTIME]:
+                return False
+        shutil.copy2(fn, destfn)
+        return True
+
+    def _preload_file_from_system_cache(self, filename, subdir='',
+                                        destfn=None):
         """attempts to copy the file from the system-wide cache,
            if possible"""
         if not hasattr(self, 'old_base_cache_dir'):
@@ -1611,16 +1660,10 @@ class YumRepository(Repository, config.RepoConf):
             return False
 
         # 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 False
-        if os.path.exists(destfn):
-            if os.stat(fn)[stat.ST_CTIME] <= os.stat(destfn)[stat.ST_CTIME]:
-                return False
-        shutil.copy2(fn, destfn)
-        return True
+        fn = glob_repo_cache_dir   + '/' + subdir + os.path.basename(filename)
+        if destfn is None:
+            destfn = self.cachedir + '/' + subdir + os.path.basename(filename)
+        return self._preload_file(fn, destfn)
 
     def _preload_md_from_system_cache(self, filename):
         """attempts to copy the metadata file from the system-wide cache,
@@ -1630,7 +1673,19 @@ class YumRepository(Repository, config.RepoConf):
     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(pkg.localPkg(),subdir='packages/')
+        pname  = os.path.basename(pkg.localPkg())
+        destfn = os.path.join(self.pkgdir, pname)
+        if self._preload_file_from_system_cache(pkg.localPkg(),
+                                                subdir='packages/',
+                                                destfn=destfn):
+            return True
+
+        if not hasattr(self, '_old_pkgdirs'):
+            return False
+        for opkgdir in self._old_pkgdirs:
+            if self._preload_file(os.path.join(opkgdir, pname), destfn):
+                return True
+        return False
 
 
 def getMirrorList(mirrorlist, pdict = None):
diff --git a/yumcommands.py b/yumcommands.py
index 706d908..6a0e243 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -531,7 +531,6 @@ class CleanCommand(YumCommand):
         return _("Remove cached data")
 
     def doCheck(self, base, basecmd, extcmds):
-        checkRootUID(base)
         checkCleanArg(base, basecmd, extcmds)
         
     def doCommand(self, base, basecmd, extcmds):
@@ -857,6 +856,10 @@ class RepoListCommand(YumCommand):
                         out += [base.fmtKeyValFill(_("Repo-baseurl: "),
                                                    ", ".join(baseurls))]
 
+                    if enabled:
+                        #  This needs to be here due to the mirrorlists are
+                        # metalinks hack.
+                        repo.urls
                     if repo.metalink:
                         out += [base.fmtKeyValFill(_("Repo-metalink: "),
                                                    repo.metalink)]
@@ -1043,3 +1046,70 @@ class DowngradeCommand(YumCommand):
     def needTs(self, base, basecmd, extcmds):
         return False
         
+
+class VersionCommand(YumCommand):
+    def getNames(self):
+        return ['version']
+
+    def getUsage(self):
+        return "[all|installed|available]"
+
+    def getSummary(self):
+        return _("Display a version for the machine and/or available repos.")
+
+    def doCommand(self, base, basecmd, extcmds):
+        vcmd = 'installed'
+        if extcmds:
+            vcmd = extcmds[0]
+
+        def _append_repos(cols, repo_data):
+            for repoid in sorted(repo_data):
+                cur = repo_data[repoid]
+                if None in cur and len(cur) != 2:
+                    cols.append(("    %s" % repoid, str(cur[None])))
+                for rev in sorted(cur):
+                    if rev is None:
+                        continue
+                    cols.append(("    %s/%s" % (repoid, rev), str(cur[rev])))
+
+        rel = base.yumvar['releasever']
+        ba  = base.yumvar['basearch']
+        cols = []
+        if vcmd in ('installed', 'all'):
+            try:
+                data = base.rpmdb.simpleVersion()
+                cols.append(("%s %s/%s" % (_("Installed:"), rel, ba),
+                             str(data[0])))
+                if base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3):
+                    _append_repos(cols, data[1])
+            except yum.Errors.YumBaseError, e:
+                return 1, [str(e)]
+        if vcmd in ('available', 'all'):
+            try:
+                data = base.pkgSack.simpleVersion()
+                cols.append(("%s %s/%s" % (_("Available:"), rel, ba),
+                             str(data[0])))
+                if base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3):
+                    _append_repos(cols, data[1])
+            except yum.Errors.YumBaseError, e:
+                return 1, [str(e)]
+
+        data = {'rid' : {}, 'ver' : {}}
+        for (rid, ver) in cols:
+            for (d, v) in (('rid', len(rid)), ('ver', len(ver))):
+                data[d].setdefault(v, 0)
+                data[d][v] += 1
+        data = [data['rid'], data['ver']]
+        columns = base.calcColumns(data)
+        columns = (-columns[0], columns[1])
+
+        for line in cols:
+            print base.fmtColumns(zip(line, columns))
+
+        return 0, []
+
+    def needTs(self, base, basecmd, extcmds):
+        vcmd = 'installed'
+        if extcmds:
+            vcmd = extcmds[0]
+        return vcmd in ('available', 'all')