Blob Blame History Raw
diff --git a/cli.py b/cli.py
index 7c4047a..615a1f6 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():
@@ -419,10 +420,21 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
                  _('Running rpm_check_debug'))
             msgs = self._run_rpm_check_debug()
             if msgs:
-                print _('ERROR with rpm_check_debug vs depsolve:')
+                rpmlib_only = True
+                for msg in msgs:
+                    if msg.startswith('rpmlib('):
+                        continue
+                    rpmlib_only = False
+                if rpmlib_only:
+                    print _("ERROR You need to update rpm to handle:")
+                else:
+                    print _('ERROR with rpm_check_debug vs depsolve:')
+
                 for msg in msgs:
                     print to_utf8(msg)
-    
+
+                if rpmlib_only:
+                    return 1, [_('RPM needs to be updated')]
                 return 1, [_('Please report this error in %s') % self.conf.bugtracker_url]
 
             self.verbose_logger.debug('rpm_check_debug time: %0.3f' % (time.time() - rcd_st))
@@ -687,12 +699,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 +1066,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 +1173,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/comps.rng b/docs/comps.rng
new file mode 100644
index 0000000..b681bfb
--- /dev/null
+++ b/docs/comps.rng
@@ -0,0 +1,275 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Comps file Relax-NG Schema
+
+    © 2006 Nicolas Mailhot <nim at fedoraproject dot org>
+
+    TODO: re-add namespace to this file
+          use that namespace to comps.xml files
+          create grammar for comps.xml.in
+          add more documentation for comps elements
+-->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" 
+         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" 
+         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <start>
+    <ref name="comps"/>
+  </start>
+  <define name="comps">
+    <element name="comps">
+      <oneOrMore>
+        <ref name="group"/>
+      </oneOrMore>
+      <zeroOrMore>
+        <ref name="category"/>
+      </zeroOrMore>
+      <optional>
+        <interleave><!-- We don't care what order these are in -->
+          <ref name="whiteout"/>
+          <ref name="blacklist"/>
+        </interleave>
+      </optional>
+    </element>
+  </define>
+  <define name="group">
+    <element name="group">
+      <!-- Example documentation. Please add more. -->
+      <a:documentation>This defines a package group.</a:documentation>
+      <interleave>
+       <ref name="id"/>
+       <element name="default" a:defaultValue="true">
+         <a:documentation>Should the group be enabled by default?</a:documentation>
+         <ref name="boolean"/>
+       </element>
+       <element name="uservisible" a:defaultValue="true">
+         <a:documentation>Should the group be visible to users?</a:documentation>
+         <ref name="boolean"/>
+       </element>
+       <optional>
+         <element name="display_order">
+           <ref name="positiveInteger"/>
+         </element>
+       </optional>
+       <optional>
+         <element name="langonly">
+           <ref name="locale"/>
+         </element>
+       </optional>
+       <optional>
+         <ref name="groupreqlist"/>
+       </optional>
+       <ref name="packagelist"/>
+      </interleave>
+    </element>
+  </define>
+  <define name="groupreqlist">
+    <a:documentation>
+      Contains a list of other groups that this group requires.
+      This element has been ignored by yum et. al. since 2005 and should
+      therefore be considered deprecated.
+    </a:documentation>
+    <element name="grouplist">
+      <oneOrMore>
+        <ref name="groupreq"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="groupreq">
+    <element name="groupreq">
+      <ref name="groupname"/>
+    </element>
+  </define>
+  <define name="packagelist">
+    <element name="packagelist">
+      <oneOrMore>
+        <ref name="packagereq"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="packagereq">
+    <element name="packagereq">
+      <choice>
+        <attribute name="type" a:defaultValue="optional">
+          <choice>
+            <value>mandatory</value>
+            <value>default</value>
+            <value>optional</value>
+          </choice>
+        </attribute>
+        <group>
+          <attribute name="type" a:defaultValue="conditional">
+            <choice>
+              <value>conditional</value>
+            </choice>
+          </attribute>
+          <attribute name="requires">
+            <ref name="packagename"/>
+          </attribute>
+        </group>
+      </choice>
+      <optional>
+        <attribute name="basearchonly" a:defaultValue="false">
+          <ref name="boolean"/>
+        </attribute>
+      </optional>
+      <ref name="packagename"/>
+    </element>
+  </define>
+  <define name="category">
+    <element name="category">
+      <interleave>
+      <ref name="id"/>
+      <optional>
+        <element name="display_order">
+          <ref name="positiveInteger"/>
+        </element>
+      </optional>
+      <ref name="grouplist"/>
+     </interleave>
+    </element>
+  </define>
+  <define name="grouplist">
+    <element name="grouplist">
+      <oneOrMore>
+        <ref name="groupid"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="groupid">
+    <element name="groupid">
+      <ref name="string"/>
+    </element>
+  </define>
+  <define name="id">
+    <element name="id">
+      <ref name="ID"/>
+    </element>
+    <choice>
+      <!-- Either we have one _name and one _description (comps.xml.in) -->
+      <group>
+        <element name="_name">
+          <ref name="string"/>
+        </element>
+        <element name="_description">
+          <ref name="string"/>
+        </element>
+      </group>
+      <!-- Or we have one name, one description, and then zero-or-more
+           localized names and descriptions following that. -->
+      <group>
+        <element name="name">
+          <ref name="string"/>
+        </element>
+        <zeroOrMore>
+          <element name="name">
+            <attribute name="xml:lang">
+              <ref name="locale"/>
+            </attribute>
+            <ref name="string"/>
+          </element>
+        </zeroOrMore>
+        <element name="description">
+          <ref name="string"/>
+        </element>
+        <zeroOrMore>
+          <element name="description">
+            <attribute name="xml:lang">
+              <ref name="locale"/>
+            </attribute>
+            <ref name="string"/>
+          </element>
+        </zeroOrMore>
+      </group>
+    </choice>
+  </define>
+  <define name="blacklist">
+    <a:documentation>
+    The "blacklist" is a list of packages that will be *removed* if found
+    during an upgrade. Typically this is used to handle tricky upgrade cases
+    that can't be modeled with existing RPM Obsoletes/Conflicts/etc.
+
+    Here's an example: In FC6, hal was a multilib package, but in F7 we split
+    it into (non-multilib) hal and (multilib) hal-libs.
+    So the system starts with hal.x86_64 and hal.i386 (for multilib compat).
+    We want to upgrade to hal.x86_64 and hal-libs.x86_64, with hal-libs.i386
+    for multilib. Upgrading hal.x86_64 will bring in hal-libs.x86_64, and
+    upgrading hal.i386 brings in hal-libs.i386. Adding a blacklist item for
+    'hal.i386' causes anaconda to remove the (now-unneeded) hal.i386, 
+    which gives us the desired outcome.
+    </a:documentation>
+    <element name="blacklist">
+      <zeroOrMore>
+        <element name="package">
+          <attribute name="name">
+            <ref name="string"/>
+          </attribute>
+          <optional>
+            <attribute name="arch">
+              <ref name="string"/>
+              <a:documentation>
+                Arch to blacklist this package from. If unspecified, it will be
+                blocked on all arches.
+                <!-- Technically this should be an enum of known arches:
+                i386 x86_64 ppc ppc64 ia64 sparc alpha ... -->
+              </a:documentation>
+            </attribute>
+          </optional>
+        </element>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="whiteout">
+    <a:documentation>
+    The RPM "whiteout" list is used to by RPM to break dependency loops. 
+    Each "ignoredep" element has two attributes - "package" and "requires" -
+    which are both package names. While calculating dependencies, RPM will
+    ignore any dependency that results in p requiring r. 
+
+    This is used to keep upgrades from getting stuck on known dependency loops,
+    like with mutually dependent packages (e.g. xinitrc and xorg-x11)
+
+    To feed this info to RPM, each item should be converted to a string of the
+    form 'package>requires', and the RPM macro '_dependency_whiteout' should be
+    filled with a (whitespace-separated) list of these items.
+    </a:documentation>
+    <element name="whiteout">
+      <zeroOrMore>
+        <element name="ignoredep">
+          <attribute name="package">
+            <ref name="string"/>
+          </attribute>
+          <attribute name="requires">
+            <ref name="string"/>
+          </attribute>
+        </element>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="boolean">
+    <choice>
+      <value>true</value>
+      <value>True</value>
+      <value>false</value>
+      <value>False</value>
+    </choice>
+  </define>
+  <define name="groupname">
+    <data type="string"/>
+  </define>
+  <define name="ID">
+    <data type="ID"/>
+  </define>
+<!-- Should be a regexp -->
+  <define name="locale">
+    <data type="string"/>
+  </define>
+  <define name="packagename">
+    <data type="string"/>
+  </define>
+  <define name="positiveInteger">
+    <data type="positiveInteger"/>
+  </define>
+  <define name="string">
+    <data type="string"/>
+  </define>
+</grammar>
diff --git a/docs/yum.8 b/docs/yum.8
index c8116ee..3520912 100644
--- a/docs/yum.8
+++ b/docs/yum.8
@@ -7,7 +7,7 @@ yum \- Yellowdog Updater Modified
 .SH "DESCRIPTION"
 .PP 
 \fByum\fP is an interactive, rpm based, package manager. It can automatically
-perform system updates, including dependancy analysis and obsolete processing
+perform system updates, including dependency analysis and obsolete processing
 based on "repository" metadata. It can also perform installation of new
 packages, removal of old packages and perform queries on the installed and/or
 available packages among many other commands/services (see below)\&. \fByum\fP
@@ -106,7 +106,7 @@ Implemented so you could know if your machine had any updates that needed to
 be applied without running it interactively. Returns exit value of 100 if
 there are packages available for an update. Also returns a list of the pkgs
 to be updated in list format. Returns 0 if no packages are available for
-update. Returns 1 if an error occured.
+update. Returns 1 if an error occurred.
 Running in verbose mode also shows obsoletes.
 .IP
 .IP "\fBupgrade\fP"
@@ -166,11 +166,11 @@ as "installed" if all mandatory packages are installed, or if a group doesn't
 have any mandatory packages then it is installed if any of the optional or
 default package are installed.
 The optional "hidden" argument will also list groups marked as not being
-"user visible". If you pass the -v option, to enable verbose mode, then the
+"user visible". If you pass the \-v option, to enable verbose mode, then the
 groupid's are displayed.
 .IP 
 .IP "\fBgroupremove\fP"
-Is used to remove all of the pacakges in a group, unlike "groupinstall" this
+Is used to remove all of the packages in a group, unlike "groupinstall" this
 will remove everything regardless of group_package_types. It is worth pointing
 out that packages can be in more than one group, so "groupinstall X Y" followed
 by "groupremove Y" does not do give you the same result as "groupinstall X".
@@ -179,7 +179,7 @@ by "groupremove Y" does not do give you the same result as "groupinstall X".
 Is used to give the description and package list of a group (and which type
 those packages are marked as). Note that you can use the yum-filter-data and
 yum-list-data plugins to get/use the data the other way around (Ie. what
-groups own packages need updating). If you pass the -v option, to enable verbose
+groups own packages need updating). If you pass the \-v option, to enable verbose
 mode, then the package names are matched against installed/available packages
 similar to the list command.
 .IP 
@@ -222,7 +222,7 @@ dependencies for the given packages.
 .IP
 .IP "\fBrepolist\fP"
 Produces a list of configured repositories. The default is to list all
-enabled repositories. If you pass -v, for verbose mode, more information is
+enabled repositories. If you pass \-v, for verbose mode, more information is
 listed.
 .IP
 .IP "\fBhelp\fP"
@@ -309,7 +309,7 @@ main == disable excludes defined in [main] in yum.conf
 repoid == disable excludes defined for that repo
 .br
 .IP "\fB\-\-disableplugin=plugin\fP"
-Run with one or more plugins disabled, the argument is a comma seperated list
+Run with one or more plugins disabled, the argument is a comma separated list
 of wildcards to match against plugin names.
 .br
 .IP "\fB\-\-noplugins\fP"
@@ -333,7 +333,14 @@ This option currently does nothing.
 The following are the ways which you can invoke \fByum\fP in list
 mode\&.  Note that all \fBlist\fP commands include information on the
 version of the package\&.
-.IP 
+.IP
+.IP "\fBOUTPUT\fP"
+
+
+The format of the output of yum list is:
+
+name.arch \[epoch\:\]version-release  repo or \@installed-from-repo
+
 .IP "\fByum list [all | glob_exp1] [glob_exp2] [\&.\&.\&.]\fP"
 List all available and installed packages\&.
 .IP "\fByum list available [glob_exp1] [\&.\&.\&.]\fP"
diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index 521ffed..69b601d 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -22,21 +22,25 @@ repository/server. There should be one or more repository sections.
 The [main] section must exist for yum to do anything. It consists of the
 following options:
 
-.IP \fBcachedir\fR
+.IP
+\fBcachedir\fR
 Directory where yum should store its cache and db files. The default is
 `/var/cache/yum'.
 
-.IP \fBpersistdir\fR
+.IP
+\fBpersistdir\fR
 Directory where yum should store information that should persist over multiple
 runs. The default is `/var/lib/yum'.
 
-.IP \fBkeepcache\fR
+.IP
+\fBkeepcache\fR
 Either `1' or `0'. Determines whether or not yum keeps the cache
 of headers and packages after successful installation.  Default is '1'
 (keep files)
 .br
 
-.IP \fBreposdir\fR
+.IP
+\fBreposdir\fR
 A list of directories where yum should look for .repo files which define
 repositories to use. Default is `/etc/yum/repos.d'. Each
 file in this directory should contain one or more repository sections as
@@ -44,38 +48,46 @@ documented in \fB[repository] options\fR below. These will be merged with the
 repositories defined in /etc/yum/yum.conf to form the complete set of
 repositories that yum will use.
 
-.IP \fBdebuglevel\fR
+.IP
+\fBdebuglevel\fR
 Debug message output level. Practical range is 0\-10. Default is `2'.
 
-.IP \fBerrorlevel\fR
+.IP
+\fBerrorlevel\fR
 Error message output level. Practical range is 0\-10. Default is `2'.
 
-.IP \fBlogfile\fR
+.IP
+\fBlogfile\fR
 Full directory and file name for where yum should write its log file.
 
-.IP \fBgpgcheck\fR
+.IP
+\fBgpgcheck\fR
 Either `1' or `0'. This tells yum whether or not it should perform a GPG
 signature check on packages. When this is set in the [main] section it sets the
 default for all repositories. This option also determines whether or not an
 install of a package from a local RPM file will be GPG signature checked. The
 default is `0'.
 
-.IP \fBrepo_gpgcheck\fR
+.IP
+\fBrepo_gpgcheck\fR
 Either `1' or `0'. This tells yum whether or not it should perform a GPG
 signature check on the repodata. When this is set in the [main] section it sets the
 default for all repositories. The default is `0'.
 
-.IP \fBskip_broken\fR
+.IP
+\fBskip_broken\fR
 Either `1' or `0'. Resolve depsolve problems by removing packages that
 are causing problems from the transaction.
 
-.IP \fBassumeyes\fR
+.IP
+\fBassumeyes\fR
 Either `1' or `0'. Determines whether or not yum prompts for confirmation of
 critical actions. Default is `0' (do prompt).
 .br
 Command-line option: \fB\-y\fP
 
-.IP \fBalwaysprompt\fR
+.IP
+\fBalwaysprompt\fR
 Either `1' or `0'. Without this option, yum will not prompt for confirmation
 when the list of packages to be installed exactly matches those given on the
 command line. Unless \fBassumeyes\fR is enabled, it will still prompt for
@@ -83,7 +95,8 @@ package removal, or when additional packages need to be installed to fulfill
 dependencies. Default is `1'.
 .br
 
-.IP \fBtolerant\fR
+.IP
+\fBtolerant\fR
 Either `1' or `0'. If enabled, then yum will be tolerant of errors on the
 command line with regard to packages. For example: if you request to install
 foo, bar and baz and baz is installed; yum won't error out complaining that baz
@@ -91,38 +104,45 @@ is already installed. Default to `0' (not tolerant).
 .br
 Command-line option: \fB\-t\fP
 
-.IP \fBexclude\fR
+.IP
+\fBexclude\fR
 List of packages to exclude from updates or installs. This should be a space
 separated list.
 Shell globs using wildcards (eg. * and ?) are allowed.
 
-.IP \fBexactarch\fR
+.IP
+\fBexactarch\fR
 Either `1' or `0'. Set to `1' to make yum update only update the architectures
 of packages that you have installed. ie: with this enabled yum will not install
 an i686 package to update an i386 package. Default is `1'.
 
-.IP \fBinstallonlypkgs \fR
+.IP
+\fBinstallonlypkgs \fR
 List of packages that should only ever be installed, never updated. Kernels
 in particular fall into this category. Defaults to kernel, kernel-smp,
 kernel-bigmem, kernel-enterprise, kernel-debug, kernel-unsupported.
 
-.IP \fBinstallonly_limit \fR
+.IP
+\fBinstallonly_limit \fR
 Number of packages listed in installonlypkgs to keep installed at the same
 time. Setting to 0 disables this feature. Default is '0'. Note that this
 functionality used to be in the "installonlyn" plugin, where this option was
 altered via. tokeep.
 
-.IP \fBkernelpkgnames \fR
+.IP
+\fBkernelpkgnames \fR
 List of package names that are kernels. This is really only here for the
 updating of kernel packages and should be removed out in the yum 2.1 series.
 
-.IP \fBshowdupesfromrepos\fR
+.IP
+\fBshowdupesfromrepos\fR
 Either `0' or `1'. Set to `1' if you wish to show any duplicate packages from
 any repository, from package listings like the info or list commands. Set
 to `0' if you want only to see the newest packages from any repository.
 Default is `0'.
 
-.IP \fBobsoletes \fR
+.IP
+\fBobsoletes \fR
 This option only has affect during an \fBupdate\fR. It enables yum's
 obsoletes processing logic. Useful when doing distribution level upgrades. See
 also the yum \fBupgrade\fR command documentation for more details (yum(8)).
@@ -130,63 +150,75 @@ Default is `true'.
 .br
 Command-line option: \fB\-\-obsoletes\fP
 
-.IP \fBoverwrite_groups \fR
+.IP
+\fBoverwrite_groups \fR
 Either `0' or `1'. Used to determine yum's behaviour if two or more
 repositories offer the package groups with the same name. If
 \fBoverwrite_groups\fR is `1' then the group packages of the last matching
 repository will be used. If \fBoverwrite_groups\fR is `0' then the groups
 from all matching repositories will be merged together as one large group.
 
-.IP \fBenable_group_conditionals\fR
+.IP
+\fBenable_group_conditionals\fR
 Either `0' or `1'. Determines whether yum will allow the use of conditionals
 packages. Default is `1' (package conditionals are allowed).
 
-.IP \fBgroup_package_types\fR
+.IP
+\fBgroup_package_types\fR
 List of the following: optional, default, mandatory. Tells yum which type
 of packages in groups will be installed when 'groupinstall' is called. 
 Default is: default, mandatory
 
-.IP \fBinstallroot \fR
+.IP
+\fBinstallroot \fR
 Specifies an alternative installroot, relative to which all packages will be
 installed. 
 .br
 Command-line option: \fB\-\-installroot\fP
 
-.IP \fBdistroverpkg\fR
+.IP
+\fBdistroverpkg\fR
 The package used by yum to determine the "version" of the distribution. This
 can be any installed package. Default is `redhat-release'. You can see what
 provides this manually by using: "yum whatprovides redhat-release".
 
-.IP \fBdiskspacecheck\fR
+.IP
+\fBdiskspacecheck\fR
 Either `0' or `1'. Set this to `0' to disable the checking for sufficient
 diskspace before a RPM transaction is run. Default is `1' (perform the check).
 
-.IP \fBtsflags\fR
+.IP
+\fBtsflags\fR
 Comma or space separated list of transaction flags to pass to the rpm
 transaction set. These include 'noscripts', 'notriggers', 'nodocs', 'test', and 'repackage'.
 You can set all/any of them. However, if you don't know what these do in the
 context of an rpm transaction set you're best leaving it alone. Default is
 an empty list.
 
-.IP \fBrecent\fR
+.IP
+\fBrecent\fR
 Number of days back to look for `recent' packages added to a repository.
 Used by the \fBlist recent\fR command. Default is `7'.
 
-.IP \fBretries\fR
+.IP
+\fBretries\fR
 Set the number of times any attempt to retrieve a file should retry before 
 returning an error. Setting this to `0' makes yum try forever. Default is `10'.
 
-.IP \fBkeepalive \fR
+.IP
+\fBkeepalive \fR
 Either `0' or `1'. Set whether HTTP keepalive should be used for HTTP/1.1
 servers that support it. This can improve transfer speeds by using one
 connection when downloading multiple files from a repository. Default is `1'.
 
-.IP \fBtimeout \fR
+.IP
+\fBtimeout \fR
 Number of seconds to wait for a connection before timing out. Defaults to
 30 seconds. This may be too short of a time for extremely overloaded
 sites.
 
-.IP \fBhttp_caching\fR
+.IP
+\fBhttp_caching\fR
 Determines how upstream HTTP caches are instructed to handle any HTTP downloads
 that Yum does. This option can take the following values:
 
@@ -198,10 +230,11 @@ repository metadata downloads).
 `none' means that no HTTP downloads should be cached.
 
 The default is `all'. This is recommended unless you are experiencing caching
-related issues. Try to at least use `packages' to minimise load on repository
+related issues. Try to at least use `packages' to minimize load on repository
 servers.
 
-.IP \fBthrottle \fR
+.IP
+\fBthrottle \fR
 Enable bandwidth throttling for downloads. This option can be expressed as a
 absolute data rate in bytes/sec. An SI prefix (k, M or G) may be appended to the
 bandwidth value (eg. `5.5k' is 5.5 kilobytes/sec, `2M' is 2 Megabytes/sec).
@@ -212,47 +245,78 @@ the maximum available bandwidth.
 
 Set to `0' to disable bandwidth throttling. This is the default.
 
-.IP \fBbandwidth \fR
+.IP
+\fBbandwidth \fR
 Use to specify the maximum available network bandwidth in bytes/second.  Used
 with the \fBthrottle\fR option (above). If \fBthrottle\fR is a percentage and
 \fBbandwidth\fR is `0' then bandwidth throttling will be disabled. If
 \fBthrottle\fR is expressed as a data rate (bytes/sec) then this option is
 ignored. Default is `0' (no bandwidth throttling). 
 
-.IP \fBcommands\fR
+.IP
+\fBsslcacert \fR
+Path to the directory containing the databases of the certificate authorities
+yum should use to verify ssl certificates. Defaults to none - uses system
+default
+
+.IP
+\fBsslverify \fR
+Boolean - should yum verify ssl certificates/hosts at all. Defaults to True
+
+.IP
+\fBsslclientcert \fR
+Path to the ssl client certificate yum should use to connect to repos/remote sites
+Defaults to none.
+
+.IP
+\fBsslclientkey \fR
+Path to the ssl client key yum should use to connect to repos/remote sites
+Defaults to none.
+
+.IP
+\fBcommands\fR
 List of functional commands to run if no functional commands are specified
 on the command line (eg. "update foo bar baz quux").  None of the short options
-(eg. -y, -e, -d) are accepted for this option.
+(eg. \-y, \-e, \-d) are accepted for this option.
 
-." .IP \fBsyslog_ident \fR
-." XXX not implemented yet
+.IP
+\fBsyslog_ident \fR
+XXX not implemented yet
 
-." .IP \fBsyslog_facility \fR
-." XXX not implemented yet
+.IP
+\fBsyslog_facility \fR
+XXX not implemented yet
 
-.IP \fBproxy \fR
+.IP
+\fBproxy \fR
 url to the proxy server that yum should use.
 
-.IP \fBproxy_username \fR
+.IP
+\fBproxy_username \fR
 username to use for proxy
 
-.IP \fBproxy_password \fR
+.IP
+\fBproxy_password \fR
 password for this proxy
 
-.IP \fBplugins \fR
+.IP
+\fBplugins \fR
 Either `0' or `1'. Global switch to enable or disable yum plugins. Default is
 `0' (plugins disabled). See the \fBPLUGINS\fR section of the \fByum(8)\fR man
 for more information on installing yum plugins.
 
-.IP \fBpluginpath \fR
+.IP
+\fBpluginpath \fR
 A list of directories where yum should look for plugin modules. Default is
 `/usr/share/yum-plugins' and `/usr/lib/yum-plugins'.
 
-.IP \fBpluginconfpath \fR
+.IP
+\fBpluginconfpath \fR
 A list of directories where yum should look for plugin configuration files.
 Default is `/etc/yum/pluginconf.d'.
 
-.IP \fBmetadata_expire \fR
+.IP
+\fBmetadata_expire \fR
 Time (in seconds) after which the metadata will expire. So that if the
 current metadata downloaded is less than this many seconds old then yum will
 not update the metadata against the repository.  If you find that
@@ -265,7 +329,8 @@ never expire. Note that when using a metalink file the metalink must always
 be newer than the metadata for the repository, due to the validation, so this
 timeout also applies to the metalink file.
 
-.IP \fBmirrorlist_expire \fR
+.IP
+\fBmirrorlist_expire \fR
 Time (in seconds) after which the mirrorlist locally cached will expire. 
 If the current mirrorlist is less than this many seconds old then yum
 will not download another copy of the mirrorlist, it has the same extra format
@@ -273,12 +338,13 @@ as metadata_expire.
 If you find that yum is not downloading the mirrorlists as 
 often as you would like lower the value of this option.
 
-.IP \fBmdpolicy \fR
+.IP
+\fBmdpolicy \fR
 You can select from different metadata download policies depending on how much
 data you want to download with the main repository metadata index. The
 advantages of downloading more metadata with the index is that you can't get
 into situations where you need to use that metadata later and the versions
-available aren't compatible (or the user lacks privilages) and that if the
+available aren't compatible (or the user lacks privileges) and that if the
 metadata is corrupt in any way yum will revert to the previous metadata.
 
 `instant' - Just download the new metadata index, this is roughly what yum
@@ -295,7 +361,7 @@ This file also tends to be significantly smaller than most others.
 
 `group:main' - With the primary and updateinfo download the filelists metadata
 and the group metadata. The filelists data is required for operations like
-"yum install /bin/bash", and also some dependancy resolutions require it. The
+"yum install /bin/bash", and also some dependency resolutions require it. The
 group data is used in some graphical clients and for group operations like
 "yum grouplist Base".
 
@@ -303,91 +369,106 @@ group data is used in some graphical clients and for group operations like
 not listed above is the other metadata, which contains the changelog information
 which is used by yum-changelog. This is what "yum makecache" uses.
 
-.IP \fBmultilib_policy \fR
+.IP
+\fBmultilib_policy \fR
 Can be set to 'all' or 'best'. All means install all possible arches for any package you 
 want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on x86_64, 
 if it is available. Best means install the best arch for this platform, only.
 
-.IP \fBbugtracker_url \fR
+.IP
+\fBbugtracker_url \fR
 Url where bugs should be filed for yum. Configurable for local versions or distro-specific
 bugtrackers.
 
-.IP \fBcolor \fR
+.IP
+\fBcolor \fR
 Display colorized output automatically, depending on the output terminal,
 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
+.IP
+\fBcolor_list_installed_older \fR
+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,
+Possible values are a comma separated list containing: bold, blink, dim,
 reverse, underline, fg:black, fg:red, fg:green, fg:yellow, fg:blue, fg:magenta,
 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
+.IP
+\fBcolor_list_installed_newer \fR
+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
+.IP
+\fBcolor_list_installed_reinstall \fR
+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
+.IP
+\fBcolor_list_installed_extra \fR
+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
+.IP
+\fBcolor_list_available_upgrade \fR
+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
+.IP
+\fBcolor_list_available_downgrade \fR
+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
+.IP
+\fBcolor_list_available_install \fR
+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
+.IP
+\fBcolor_list_available_reinstall \fR
+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.
 
-.IP \fBcolor_search_match \fR
+.IP
+\fBcolor_search_match \fR
 The colorization/highlighting for text matches in search.
 Default is `bold'.
 See color_list_installed_older for possible values.
 
-.IP \fBcolor_update_installed \fR
+.IP
+\fBcolor_update_installed \fR
 The colorization/highlighting for packages in the "updates list" which are
 installed. The updates list is what is printed when you run "yum update",
 "yum list updates", "yum list obsoletes" and "yum check-update".
 Default is `normal'.
 See color_list_installed_older for possible values.
 
-.IP \fBcolor_update_local \fR
+.IP
+\fBcolor_update_local \fR
 The colorization/highlighting for packages in the "updates list" which are
 already downloaded. The updates list is what is printed when you run
 "yum update", "yum list updates", "yum list obsoletes" and "yum check-update".
 Default is `bold'.
 See color_list_installed_older for possible values.
 
-.IP \fBcolor_update_remote \fR
+.IP
+\fBcolor_update_remote \fR
 The colorization/highlighting for packages in the "updates list" which need to
 be downloaded. The updates list is what is printed when you run "yum update",
 "yum list updates", "yum list obsoletes" and "yum check-update".
@@ -397,7 +478,8 @@ See color_list_installed_older for possible values.
 .SH "[repository] OPTIONS"
 .LP 
 The repository section(s) take the following form:
-.IP \fBExample\fP:
+.IP
+\fBExample\fP:
 [repositoryid] 
 .br 
 name=Some name for this repository
@@ -405,13 +487,16 @@ name=Some name for this repository
 baseurl=url://path/to/repository/ 
 .br 
 
-.IP \fBrepositoryid\fR
+.IP
+\fBrepositoryid\fR
 Must be a unique name for each repository, one word.
 
-.IP \fBname\fR
+.IP
+\fBname\fR
 A human readable string describing the repository.
 
-.IP \fBbaseurl\fR
+.IP
+\fBbaseurl\fR
 Must be a URL to the directory where the yum repository's `repodata' directory
 lives. Can be an http://, ftp:// or file:// URL. You can specify multiple URLs
 in one baseurl statement. The best way to do this is like this:
@@ -434,7 +519,8 @@ you've been warned.
 You can use HTTP basic auth by prepending "user:password@" to the server
 name in the baseurl line.  For example: "baseurl=http://user:passwd@example.com/".
 
-.IP \fBmetalink\fR
+.IP
+\fBmetalink\fR
 Specifies a URL to a metalink file for the repomd.xml, a list of mirrors for
 the entire repository are generated by converting the mirrors for the
 repomd.xml file to a baseurl. The metalink file also contains the latest
@@ -446,7 +532,8 @@ below, can be used with this option. This option disables the mirrorlist option.
 As a special hack is the mirrorlist URL contains the word "metalink" then the
 value of mirrorlist is copied to metalink (if metalink is not set).
 
-.IP \fBmirrorlist\fR
+.IP
+\fBmirrorlist\fR
 Specifies a URL to a file containing a list of baseurls. This can be used
 instead of or with the \fBbaseurl\fR option. Substitution variables, described
 below, can be used with this option. 
@@ -454,19 +541,23 @@ As a special hack is the mirrorlist URL contains the word "metalink" then the
 value of mirrorlist is copied to metalink (if metalink is not set).
 
 
-.IP \fBenabled\fR
+.IP
+\fBenabled\fR
 Either `1' or `0'. This tells yum whether or not use this repository.
 
-.IP \fBgpgcheck\fR
+.IP
+\fBgpgcheck\fR
 Either `1' or `0'. This tells yum whether or not it should perform a GPG
 signature check on the packages gotten from this repository.
 
-.IP \fBrepo_gpgcheck\fR
+.IP
+\fBrepo_gpgcheck\fR
 Either `1' or `0'. This tells yum whether or not it should perform a GPG
 signature check on the repodata from this repository.
 
-.IP \fBgpgkey\fR
-A URL pointing to the ASCII-armoured GPG key file for the repository. This
+.IP
+\fBgpgkey\fR
+A URL pointing to the ASCII-armored GPG key file for the repository. This
 option is used if yum needs a public key to verify a package and the required
 key hasn't been imported into the RPM database. If this option is set, yum will
 automatically import the key from the specified URL. You will be prompted before
@@ -476,21 +567,25 @@ Multiple URLs may be specified here in the same manner as the \fBbaseurl\fR
 option (above). If a GPG key is required to install a package from a
 repository, all keys specified for that repository will be installed.
 
-.IP \fBexclude\fR
+.IP
+\fBexclude\fR
 Same as the [main] \fBexclude\fR option but only for this repository.
 Substitution variables, described below, are honored here.
 
-.IP \fBincludepkgs\fR
+.IP
+\fBincludepkgs\fR
 Inverse of exclude. This is a list of packages you want to use from a
 repository. If this option lists only one package then that is all yum will
 ever see from the repository. Defaults to an empty list.  Substitution
 variables, described below, are honored here.
 
-.IP \fBenablegroups\fR
+.IP
+\fBenablegroups\fR
 Either `0' or `1'. Determines whether yum will allow the use of package groups
 for this repository. Default is `1' (package groups are allowed).
 
-.IP \fBfailovermethod\fR
+.IP
+\fBfailovermethod\fR
 Either `roundrobin' or `priority'.
 
 `roundrobin' randomly selects a URL out of
@@ -502,50 +597,84 @@ sequentially.
 
 \fBfailovermethod\fR defaults to `roundrobin' if not specified.
 
-.IP \fBkeepalive\fR
+.IP
+\fBkeepalive\fR
 Either `1' or `0'. This tells yum whether or not HTTP/1.1 keepalive should be
 used with this repository. See the global option in the [main] section above
 for more information.
 
-.IP \fBtimeout\fR
+.IP
+\fBtimeout\fR
 Overrides the \fBtimeout\fR option from the [main] section for this repository.
 
-.IP \fBhttp_caching\fR
+.IP
+\fBhttp_caching\fR
 Overrides the \fBhttp_caching\fR option from the [main] section for this repository.
 
-.IP \fBretries\fR
+.IP
+\fBretries\fR
 Overrides the \fBretries\fR option from the [main] section for this repository.
 
-.IP \fBthrottle\fR
+.IP
+\fBthrottle\fR
 Overrides the \fBthrottle\fR option from the [main] section for this
 repository.
 
-.IP \fBbandwidth\fR
+.IP
+\fBbandwidth\fR
 Overrides the \fBbandwidth\fR option from the [main] section for this
 repository.
 
-.IP \fBmetadata_expire \fR
+
+.IP
+\fBsslcacert \fR
+Overrides the \fBsslcacert\fR option from the [main] section for this
+repository.
+
+.IP
+\fBsslverify \fR
+Overrides the \fBsslverify\fR option from the [main] section for this
+repository.
+
+.IP
+\fBsslclientcert \fR
+Overrides the \fBsslclientcert\fR option from the [main] section for this
+repository.
+
+.IP
+\fBsslclientkey \fR
+Overrides the \fBsslclientkey\fR option from the [main] section for this
+repository.
+
+
+.IP
+\fBmetadata_expire \fR
 Overrides the \fBmetadata_expire\fR option from the [main] section for this
 repository.
 
-.IP \fBmirrorlist_expire \fR
+.IP
+\fBmirrorlist_expire \fR
 Overrides the \fBmirrorlist_expire\fR option from the [main] section for this
 repository.
 
-.IP \fBproxy \fR
+.IP
+\fBproxy \fR
 url to the proxy server for this repository. Set to '_none_' to disable the 
 global proxy setting for this repository. If this is unset it 
 inherits it from the global setting
 
-.IP \fBproxy_username \fR
+.IP
+\fBproxy_username \fR
 username to use for proxy.
 If this is unset it inherits it from the global setting
 
-.IP \fBproxy_password \fR
+.IP
+\fBproxy_password \fR
 password for this proxy.
 If this is unset it inherits it from the global setting
 
-.IP \fBcost \fR
+.IP
+\fBcost \fR
 relative cost of accessing this repository. Useful for weighing one repo's packages
 as greater/less than any other. defaults to 1000
 
@@ -568,20 +697,24 @@ configuration files. They are available in the values of several options
 including \fBname\fR, \fBbaseurl\fR and \fBcommands\fB.
 .LP
 
-.IP \fB$releasever\fR
+.IP
+\fB$releasever\fR
 This will be replaced with the value of the version of the package listed
 in \fBdistroverpkg\fR. This defaults to the version of `redhat-release'
 package.
 
-.IP \fB$arch\fR
+.IP
+\fB$arch\fR
 This will be replaced with your architecture as listed by os.uname()[4] in
 Python.
 
-.IP \fB$basearch\fR
+.IP
+\fB$basearch\fR
 This will be replaced with your base architecture in yum. For example, if
 your $arch is i686 your $basearch will be i386.
 
-.IP \fB$YUM0-$YUM9\fR
+.IP
+\fB$YUM0-$YUM9\fR
 These will be replaced with the value of the shell environment variable of
 the same name. If the shell environment variable does not exist then the
 configuration file variable will not be replaced.
diff --git a/output.py b/output.py
index 7803275..2299a9c 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
@@ -861,7 +861,7 @@ class YumOutput:
                 item = self._sub_highlight(item, highlight, matchfor,
                                            ignore_case=True)
             if can_overflow:
-                print self.fmtKeyValFill(key, item)
+                print self.fmtKeyValFill(key, to_unicode(item))
             else:
                 print key % item
         print '\n\n'
@@ -902,8 +902,7 @@ class YumOutput:
     def listTransaction(self):
         """returns a string rep of the  transaction in an easy-to-read way."""
         
-        self.tsInfo.makelists()
-        out = u""
+        self.tsInfo.makelists(True, True)
         pkglist_lines = []
         data  = {'n' : {}, 'v' : {}, 'r' : {}}
         a_wid = 0 # Arch can't get "that big" ... so always use the max.
@@ -938,6 +937,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)]:
@@ -955,7 +956,9 @@ class YumOutput:
 
             pkglist_lines.append((action, lines))
 
-        if data['n']:
+        if not data['n']:
+            return u''
+        else:
             data    = [data['n'],    {}, data['v'], data['r'], {}]
             columns = [1,         a_wid,         1,         1,  5]
             columns = self.calcColumns(data, indent="  ", columns=columns,
@@ -963,7 +966,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 +974,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 +992,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 +1140,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:
@@ -1146,6 +1162,8 @@ Remove   %5.5s Package(s)
         tl = urlgrabber.progress.TerminalLine(8)
         self.verbose_logger.log(logginglevels.INFO_2, "-" * tl.rest())
         dl_time = time.time() - download_start_timestamp
+        if dl_time <= 0: # This stops divide by zero, among other problems
+            dl_time = 0.01
         ui_size = tl.add(' | %5sB' % self.format_number(remote_size))
         ui_time = tl.add(' %9s' % self.format_time(dl_time))
         ui_end  = tl.add(' ' * 5)
diff --git a/po/Makefile b/po/Makefile
index 31257c4..aad596a 100644
--- a/po/Makefile
+++ b/po/Makefile
@@ -69,4 +69,4 @@ install:	all
 	done
 
 %.mo: %.po
-	msgfmt -o $@ $<
+	msgfmt -o $@ $< -c
diff --git a/po/da.po b/po/da.po
index 68cef3a..dbef7ce 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."
+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"
@@ -1331,7 +1339,7 @@ msgstr "  Det andet program er: %s"
 #: ../yummain.py:140
 #, python-format
 msgid "    Memory : %5s RSS (%5sB VSZ)"
-msgstr "    Hukommelse : %5a RSS (%5sB VSZ)"
+msgstr "    Hukommelse : %5s RSS (%5sB VSZ)"
 
 #: ../yummain.py:144
 #, python-format
@@ -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/de.po b/po/de.po
index a7e2101..902ef1a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: yum\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-28 19:19+0000\n"
-"PO-Revision-Date: 2009-03-29 22:00+0100\n"
+"POT-Creation-Date: 2009-07-31 08:49+0000\n"
+"PO-Revision-Date: 2009-07-31 16:36+0100\n"
 "Last-Translator: Fabian Affolter <fab@fedoraproject.org>\n"
 "Language-Team: German <fedora-trans-de@redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -21,7 +21,7 @@ msgstr ""
 "X-Poedit-Language: German\n"
 
 #: ../callback.py:48
-#: ../output.py:922
+#: ../output.py:939
 #: ../yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "Aktualisieren"
@@ -34,7 +34,7 @@ msgstr "Löschen"
 #: ../callback.py:50
 #: ../callback.py:51
 #: ../callback.py:53
-#: ../output.py:921
+#: ../output.py:938
 #: ../yum/rpmtrans.py:73
 #: ../yum/rpmtrans.py:74
 #: ../yum/rpmtrans.py:76
@@ -48,7 +48,7 @@ msgid "Obsoleted"
 msgstr "Veraltet"
 
 #: ../callback.py:54
-#: ../output.py:1029
+#: ../output.py:1060
 msgid "Updated"
 msgstr "Aktualisiert"
 
@@ -59,7 +59,7 @@ msgstr "Gelöscht"
 #: ../callback.py:56
 #: ../callback.py:57
 #: ../callback.py:59
-#: ../output.py:1027
+#: ../output.py:1058
 msgid "Installed"
 msgstr "Installiert"
 
@@ -83,7 +83,7 @@ msgid "Erased: %s"
 msgstr "Gelöscht: %s"
 
 #: ../callback.py:217
-#: ../output.py:923
+#: ../output.py:940
 msgid "Removing"
 msgstr "Entfernen"
 
@@ -92,63 +92,63 @@ msgstr "Entfernen"
 msgid "Cleanup"
 msgstr "Aufräumen"
 
-#: ../cli.py:105
+#: ../cli.py:107
 #, python-format
 msgid "Command \"%s\" already defined"
 msgstr "Befehl \"%s\" ist bereits definiert"
 
-#: ../cli.py:117
+#: ../cli.py:119
 msgid "Setting up repositories"
 msgstr "Repositories werden eingerichtet"
 
-#: ../cli.py:128
+#: ../cli.py:130
 msgid "Reading repository metadata in from local files"
 msgstr "Lese Repository-Metadaten aus lokalen Dateien ein"
 
-#: ../cli.py:192
-#: ../utils.py:79
+#: ../cli.py:193
+#: ../utils.py:87
 #, python-format
 msgid "Config Error: %s"
 msgstr "Konfigurationsfehler: %s"
 
-#: ../cli.py:195
-#: ../cli.py:1190
-#: ../utils.py:82
+#: ../cli.py:196
+#: ../cli.py:1242
+#: ../utils.py:90
 #, python-format
 msgid "Options Error: %s"
 msgstr "Optionenfehler: %s"
 
-#: ../cli.py:223
+#: ../cli.py:225
 #, python-format
 msgid "  Installed: %s-%s at %s"
 msgstr "  Installiert: %s-%s am %s"
 
-#: ../cli.py:225
+#: ../cli.py:227
 #, python-format
 msgid "  Built    : %s at %s"
 msgstr "  Gebaut    : %s am %s"
 
-#: ../cli.py:227
+#: ../cli.py:229
 #, python-format
 msgid "  Committed: %s at %s"
 msgstr "  Übermittelt: %s am %s"
 
-#: ../cli.py:266
+#: ../cli.py:268
 msgid "You need to give some command"
 msgstr "Sie müssen irgendeinen Befehl eingeben"
 
-#: ../cli.py:309
+#: ../cli.py:311
 msgid "Disk Requirements:\n"
 msgstr "Festplattenplatz-Anforderungen:\n"
 
-#: ../cli.py:311
+#: ../cli.py:313
 #, python-format
 msgid "  At least %dMB needed on the %s filesystem.\n"
 msgstr "  Mindestens %d MB werden auf dem Dateisystem %s benötigt.\n"
 
 #. TODO: simplify the dependency errors?
 #. Fixup the summary
-#: ../cli.py:316
+#: ../cli.py:318
 msgid ""
 "Error Summary\n"
 "-------------\n"
@@ -156,58 +156,58 @@ msgstr ""
 "Fehler-Zusammenfassung\n"
 "----------------------\n"
 
-#: ../cli.py:359
+#: ../cli.py:361
 msgid "Trying to run the transaction but nothing to do. Exiting."
 msgstr "Versuche Transaktion auszuführen, aber es ist nichts zu tun. Beende."
 
-#: ../cli.py:395
+#: ../cli.py:397
 msgid "Exiting on user Command"
 msgstr "Beende nach Befehl des Benutzers"
 
-#: ../cli.py:399
+#: ../cli.py:401
 msgid "Downloading Packages:"
 msgstr "Lade Pakete herunter:"
 
-#: ../cli.py:404
+#: ../cli.py:406
 msgid "Error Downloading Packages:\n"
 msgstr "Fehler beim Herunterladen der Pakete:\n"
 
-#: ../cli.py:418
-#: ../yum/__init__.py:3362
+#: ../cli.py:420
+#: ../yum/__init__.py:3817
 msgid "Running rpm_check_debug"
 msgstr "Führe rpm_check_debug durch"
 
-#: ../cli.py:421
-#: ../yum/__init__.py:3365
+#: ../cli.py:423
+#: ../yum/__init__.py:3820
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "FEHLER mit rpm_check_debug gegen depsolve:"
 
-#: ../cli.py:425
+#: ../cli.py:427
 #, python-format
 msgid "Please report this error in %s"
 msgstr "Bitte melden Sie diesen Fehler unter %s"
 
-#: ../cli.py:431
+#: ../cli.py:433
 msgid "Running Transaction Test"
 msgstr "Führe Verarbeitungstest durch"
 
-#: ../cli.py:447
+#: ../cli.py:449
 msgid "Finished Transaction Test"
 msgstr "Verarbeitungstest beendet"
 
-#: ../cli.py:449
+#: ../cli.py:451
 msgid "Transaction Check Error:\n"
 msgstr "Prüffehler bei Verarbeitung:\n"
 
-#: ../cli.py:456
+#: ../cli.py:458
 msgid "Transaction Test Succeeded"
 msgstr "Verarbeitungstest erfolgreich"
 
-#: ../cli.py:477
+#: ../cli.py:480
 msgid "Running Transaction"
 msgstr "Führe Verarbeitung durch"
 
-#: ../cli.py:507
+#: ../cli.py:510
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
@@ -215,72 +215,87 @@ msgstr ""
 "Verweigere automatischen Import der Schlüssel, wenn unbeaufsichtigt ausgeführt.\n"
 "Benutze \"-y\" zum Überschreiben."
 
-#: ../cli.py:526
-#: ../cli.py:560
+#: ../cli.py:529
+#: ../cli.py:563
 msgid "  * Maybe you meant: "
 msgstr "  * Meinten Sie vielleicht:"
 
-#: ../cli.py:543
-#: ../cli.py:551
+#: ../cli.py:546
+#: ../cli.py:554
 #, python-format
 msgid "Package(s) %s%s%s available, but not installed."
 msgstr "Paket(e) %s%s%s verfügbar, aber nicht installiert."
 
-#: ../cli.py:557
-#: ../cli.py:590
+#: ../cli.py:560
+#: ../cli.py:591
+#: ../cli.py:669
 #, python-format
 msgid "No package %s%s%s available."
 msgstr "Kein Paket %s%s%s verfügbar."
 
-#: ../cli.py:595
-#: ../cli.py:670
-#: ../yumcommands.py:1010
+#: ../cli.py:596
+#: ../cli.py:729
 msgid "Package(s) to install"
 msgstr "Paket(e) zum Installieren"
 
-#: ../cli.py:596
-#: ../cli.py:671
-#: ../yumcommands.py:159
-#: ../yumcommands.py:1011
+#: ../cli.py:597
+#: ../cli.py:675
+#: ../cli.py:708
+#: ../cli.py:730
+#: ../yumcommands.py:160
 msgid "Nothing to do"
 msgstr "Nichts zu tun"
 
-#: ../cli.py:629
+#: ../cli.py:630
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d Pakete zur Aktualisierung markiert"
 
-#: ../cli.py:632
+#: ../cli.py:633
 msgid "No Packages marked for Update"
 msgstr "Keine Pakete für die Aktualisierung markiert"
 
-#: ../cli.py:646
+#: ../cli.py:647
 #, python-format
 msgid "%d packages marked for removal"
 msgstr "%d Pakete für die Entfernung markiert"
 
-#: ../cli.py:649
+#: ../cli.py:650
 msgid "No Packages marked for removal"
 msgstr "Keine Pakete für die Entfernung markiert"
 
-#: ../cli.py:661
+#: ../cli.py:674
+msgid "Package(s) to downgrade"
+msgstr "Paket(e) zum Downgrade"
+
+#: ../cli.py:698
+#, python-format
+msgid " (from %s)"
+msgstr " (von %s)"
+
+#: ../cli.py:700
+#, python-format
+msgid "Installed package %s%s%s%s not available."
+msgstr "Installiertes Paket %s%s%s%s nicht verfügbar."
+
+#: ../cli.py:707
+msgid "Package(s) to reinstall"
+msgstr "Paket(e) zum Neuinstallieren"
+
+#: ../cli.py:720
 msgid "No Packages Provided"
 msgstr "Keine Pakete bereitgestellt"
 
-#: ../cli.py:716
-msgid "Matching packages for package list to user args"
-msgstr "Übereinstimmende Pakete für Paket-Liste nach Benutzer-Argument"
-
-#: ../cli.py:765
+#: ../cli.py:804
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "Warnung: Keine Übereinstimmung gefunden für: %s"
 
-#: ../cli.py:768
+#: ../cli.py:807
 msgid "No Matches found"
 msgstr "Keine Übereinstimmungen gefunden"
 
-#: ../cli.py:807
+#: ../cli.py:846
 #, python-format
 msgid ""
 "Warning: 3.0.x versions of yum would erroneously match against filenames.\n"
@@ -289,107 +304,111 @@ msgstr ""
 "Warnung: 3.0.x Versionen von yum stimmen irrtümlicherweise mit Dateinamen ab.\n"
 " Sie können \"%s*/%s%s\" und/oder \"%s*bin/%s%s\" benutzen, um dieses Verhalten zu bekommen"
 
-#: ../cli.py:823
+#: ../cli.py:862
 #, python-format
 msgid "No Package Found for %s"
 msgstr "Kein Paket gefunden für %s"
 
 # Räume auf, säubere...weiss jemand eine Übersetzung, welche nicht an den Staubsauger erinnert. Fabian
-#: ../cli.py:835
+#: ../cli.py:874
 msgid "Cleaning up Everything"
 msgstr "Räume alles auf"
 
-#: ../cli.py:849
+#: ../cli.py:888
 msgid "Cleaning up Headers"
 msgstr "Räume Header auf"
 
-#: ../cli.py:852
+#: ../cli.py:891
 msgid "Cleaning up Packages"
 msgstr "Räume Pakete auf"
 
-#: ../cli.py:855
+#: ../cli.py:894
 msgid "Cleaning up xml metadata"
 msgstr "Räume XML-Metadaten auf"
 
-#: ../cli.py:858
+#: ../cli.py:897
 msgid "Cleaning up database cache"
 msgstr "Räume Datenbank-Speicher auf"
 
-#: ../cli.py:861
+#: ../cli.py:900
 msgid "Cleaning up expire-cache metadata"
 msgstr "Räume Metadaten für abgelaufene Caches auf"
 
-#: ../cli.py:864
+#: ../cli.py:903
 msgid "Cleaning up plugins"
 msgstr "Räume Plugins auf"
 
-#: ../cli.py:889
+#: ../cli.py:928
 msgid "Installed Groups:"
 msgstr "Installierte Gruppen:"
 
-#: ../cli.py:896
+#: ../cli.py:940
 msgid "Available Groups:"
 msgstr "Verfügbare Gruppen:"
 
-#: ../cli.py:902
+#: ../cli.py:950
 msgid "Done"
 msgstr "Fertig"
 
-#: ../cli.py:913
-#: ../cli.py:931
-#: ../cli.py:937
-#: ../yum/__init__.py:2410
+#: ../cli.py:961
+#: ../cli.py:979
+#: ../cli.py:985
+#: ../yum/__init__.py:2556
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Warnung: Gruppe %s existiert nicht."
 
-#: ../cli.py:941
+#: ../cli.py:989
 msgid "No packages in any requested group available to install or update"
 msgstr "Keine Pakete in irgendeiner Gruppe verfügbar zum Installieren oder Aktualisieren"
 
-#: ../cli.py:943
+#: ../cli.py:991
 #, python-format
 msgid "%d Package(s) to Install"
 msgstr "%d Paket(e) zum Installieren"
 
-#: ../cli.py:953
-#: ../yum/__init__.py:2422
+#: ../cli.py:1001
+#: ../yum/__init__.py:2568
 #, python-format
 msgid "No group named %s exists"
 msgstr "Es existiert keine Gruppe mit dem Namen %s"
 
-#: ../cli.py:959
+#: ../cli.py:1007
 msgid "No packages to remove from groups"
 msgstr "Keine Pakete zum Entfernen aus dem Gruppen gefunden"
 
-#: ../cli.py:961
+#: ../cli.py:1009
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d Paket(e) zum Entfernen"
 
-#: ../cli.py:1003
+#: ../cli.py:1051
 #, python-format
 msgid "Package %s is already installed, skipping"
-msgstr "Paket %s ist bereits installiert, überspringe"
+msgstr "Paket %s ist bereits installiert, überspringen"
 
 # Meint das nicht eher übergehe? -tl
-#: ../cli.py:1014
+#: ../cli.py:1062
 #, python-format
 msgid "Discarding non-comparable pkg %s.%s"
 msgstr "Verwerfe nicht vergleichbare Pakete %s.%s"
 
 #. we've not got any installed that match n or n+a
-#: ../cli.py:1040
+#: ../cli.py:1088
 #, python-format
 msgid "No other %s installed, adding to list for potential install"
 msgstr "Kein anderes %s installiert, füge es zur Liste für eine potentielle Installation hinzu"
 
-#: ../cli.py:1059
+#: ../cli.py:1108
+msgid "Plugin Options"
+msgstr "Plugin-Optionen"
+
+#: ../cli.py:1116
 #, python-format
 msgid "Command line error: %s"
 msgstr "Kommandozeilen-Fehler: %s"
 
-#: ../cli.py:1072
+#: ../cli.py:1129
 #, python-format
 msgid ""
 "\n"
@@ -400,252 +419,257 @@ msgstr ""
 "\n"
 "%s: %s Option benötigt ein Argument"
 
-#: ../cli.py:1130
+#: ../cli.py:1182
 msgid "--color takes one of: auto, always, never"
 msgstr "--color kann einen der folgenden Werte haben: auto, always, never"
 
-#: ../cli.py:1232
+#: ../cli.py:1289
 msgid "show this help message and exit"
 msgstr "Hilfeinformation anzeigen und beenden"
 
-#: ../cli.py:1236
+#: ../cli.py:1293
 msgid "be tolerant of errors"
 msgstr "fehlertolerant sein"
 
-#: ../cli.py:1238
+#: ../cli.py:1295
 msgid "run entirely from cache, don't update cache"
 msgstr "laufe komplett aus dem Zwischenspeicher, aktualisiere Zwischenspeicher nicht"
 
-#: ../cli.py:1240
+#: ../cli.py:1297
 msgid "config file location"
 msgstr "Ort der Konfigurationsdatei"
 
-#: ../cli.py:1242
+#: ../cli.py:1299
 msgid "maximum command wait time"
 msgstr "maximale Befehlswartezeit"
 
-#: ../cli.py:1244
+#: ../cli.py:1301
 msgid "debugging output level"
 msgstr "Debugging-Ausgabe-Stufe"
 
-#: ../cli.py:1248
+#: ../cli.py:1305
 msgid "show duplicates, in repos, in list/search commands"
-msgstr "Zeige Duplikate, in Repos, in Listen/Suchen-Befehlen"
+msgstr "Duplikate, in Repos und in Listen/Suchen-Befehlen, anzeigen"
 
-#: ../cli.py:1250
+#: ../cli.py:1307
 msgid "error output level"
 msgstr "Fehler-Ausgabe-Stufe"
 
-#: ../cli.py:1253
+#: ../cli.py:1310
 msgid "quiet operation"
 msgstr "Stiller Betrieb"
 
-#: ../cli.py:1255
+#: ../cli.py:1312
 msgid "verbose operation"
 msgstr "Wortreicher Betrieb"
 
-#: ../cli.py:1257
+#: ../cli.py:1314
 msgid "answer yes for all questions"
-msgstr "Beantworte alle Fragen mit 'ja'"
+msgstr "Beantwortet alle Fragen mit 'ja'"
 
-#: ../cli.py:1259
+#: ../cli.py:1316
 msgid "show Yum version and exit"
 msgstr "Yum-Version anzeigen und Programm beenden"
 
-#: ../cli.py:1260
+#: ../cli.py:1317
 msgid "set install root"
 msgstr "Wurzel-Installationsverzeichnis setzen"
 
-#: ../cli.py:1264
+#: ../cli.py:1321
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "aktiviere ein oder mehrere Repositories (Wildcards erlaubt)"
 
-#: ../cli.py:1268
+#: ../cli.py:1325
 msgid "disable one or more repositories (wildcards allowed)"
 msgstr "deaktiviere ein oder mehrere Repositories (Wildcards erlaubt)"
 
-#: ../cli.py:1271
+#: ../cli.py:1328
 msgid "exclude package(s) by name or glob"
 msgstr "schliesse Paket(e) nach Namen oder global aus"
 
-#: ../cli.py:1273
+#: ../cli.py:1330
 msgid "disable exclude from main, for a repo or for everything"
 msgstr "deaktiviere Ausschluss von 'main', einem Repository oder allem"
 
-#: ../cli.py:1276
+#: ../cli.py:1333
 msgid "enable obsoletes processing during updates"
 msgstr "aktiviere veraltetes Verarbeiten während Aktualisierung"
 
-#: ../cli.py:1278
+#: ../cli.py:1335
 msgid "disable Yum plugins"
 msgstr "deaktiviere Yum-Plugins"
 
-#: ../cli.py:1280
+#: ../cli.py:1337
 msgid "disable gpg signature checking"
 msgstr "deaktiviere GPG-Signatur-Prüfung"
 
-#: ../cli.py:1282
+#: ../cli.py:1339
 msgid "disable plugins by name"
 msgstr "deaktiviere Plugins nach Namen"
 
-#: ../cli.py:1285
+#: ../cli.py:1342
 msgid "enable plugins by name"
 msgstr "aktiviere Plugins nach Namen"
 
-#: ../cli.py:1288
+#: ../cli.py:1345
 msgid "skip packages with depsolving problems"
 msgstr "überspringe Pakete mit Abhängigkeitsauflösungsproblemen"
 
-#: ../cli.py:1290
+#: ../cli.py:1347
 msgid "control whether color is used"
 msgstr "kontrolliert, ob Farbe benutzt wird"
 
-#: ../output.py:298
+#: ../output.py:303
 msgid "Jan"
 msgstr "Jan"
 
-#: ../output.py:298
+#: ../output.py:303
 msgid "Feb"
 msgstr "Feb"
 
-#: ../output.py:298
+#: ../output.py:303
 msgid "Mar"
 msgstr "Mär"
 
-#: ../output.py:298
+#: ../output.py:303
 msgid "Apr"
 msgstr "Apr"
 
-#: ../output.py:298
+#: ../output.py:303
 msgid "May"
 msgstr "Mai"
 
-#: ../output.py:298
+#: ../output.py:303
 msgid "Jun"
 msgstr "Jun"
 
-#: ../output.py:299
+#: ../output.py:304
 msgid "Jul"
 msgstr "Jul"
 
-#: ../output.py:299
+#: ../output.py:304
 msgid "Aug"
 msgstr "Aug"
 
-#: ../output.py:299
+#: ../output.py:304
 msgid "Sep"
 msgstr "Sep"
 
-#: ../output.py:299
+#: ../output.py:304
 msgid "Oct"
 msgstr "Okt"
 
-#: ../output.py:299
+#: ../output.py:304
 msgid "Nov"
 msgstr "Nov"
 
-#: ../output.py:299
+#: ../output.py:304
 msgid "Dec"
 msgstr "Dez"
 
-#: ../output.py:309
+#: ../output.py:314
 msgid "Trying other mirror."
 msgstr "Versuche anderen Spiegel-Server."
 
-#: ../output.py:525
+#: ../output.py:536
 #, python-format
 msgid "Name       : %s%s%s"
 msgstr "Name       : %s%s%s"
 
-#: ../output.py:526
+#: ../output.py:537
 #, python-format
 msgid "Arch       : %s"
 msgstr "Architektur : %s"
 
-#: ../output.py:528
+#: ../output.py:539
 #, python-format
 msgid "Epoch      : %s"
 msgstr "Epoch      : %s"
 
-#: ../output.py:529
+#: ../output.py:540
 #, python-format
 msgid "Version    : %s"
 msgstr "Version    : %s"
 
-#: ../output.py:530
+#: ../output.py:541
 #, python-format
 msgid "Release    : %s"
 msgstr "Ausgabe    : %s"
 
-#: ../output.py:531
+#: ../output.py:542
 #, python-format
 msgid "Size       : %s"
 msgstr "Grösse     : %s"
 
-#: ../output.py:532
+#: ../output.py:543
 #, python-format
 msgid "Repo       : %s"
 msgstr "Repo       : %s"
 
-#: ../output.py:534
+#: ../output.py:545
+#, python-format
+msgid "From repo  : %s"
+msgstr "Aus repo    : %s"
+
+#: ../output.py:547
 #, python-format
 msgid "Committer  : %s"
 msgstr "Übermittler  : %s"
 
-#: ../output.py:535
+#: ../output.py:548
 #, python-format
 msgid "Committime : %s"
 msgstr "Übermittlungszeit  : %s"
 
-#: ../output.py:536
+#: ../output.py:549
 #, python-format
 msgid "Buildtime  : %s"
 msgstr "Build-Zeit  : %s"
 
-#: ../output.py:538
+#: ../output.py:551
 #, python-format
 msgid "Installtime: %s"
 msgstr "Installationszeit: %s"
 
-#: ../output.py:539
+#: ../output.py:552
 msgid "Summary    : "
 msgstr "Zusammenfassung    : "
 
-#: ../output.py:541
+#: ../output.py:554
 #, python-format
 msgid "URL        : %s"
 msgstr "URL        : %s"
 
-#: ../output.py:542
+#: ../output.py:555
 #, python-format
 msgid "License    : %s"
 msgstr "Lizenz     : %s"
 
-#: ../output.py:543
+#: ../output.py:556
 msgid "Description: "
 msgstr "Beschreibung:"
 
-#: ../output.py:611
+#: ../output.py:624
 msgid "y"
 msgstr "j"
 
-#: ../output.py:611
+#: ../output.py:624
 msgid "yes"
 msgstr "ja"
 
-#: ../output.py:612
+#: ../output.py:625
 msgid "n"
 msgstr "n"
 
-#: ../output.py:612
+#: ../output.py:625
 msgid "no"
 msgstr "nein"
 
-#: ../output.py:616
+#: ../output.py:629
 msgid "Is this ok [y/N]: "
 msgstr "Ist dies in Ordnung? [j/N] :"
 
-#: ../output.py:704
+#: ../output.py:720
 #, python-format
 msgid ""
 "\n"
@@ -654,134 +678,142 @@ msgstr ""
 "\n"
 "Gruppe: %s"
 
-#: ../output.py:708
+#: ../output.py:724
 #, python-format
 msgid " Group-Id: %s"
 msgstr " Gruppen-ID: %s"
 
-#: ../output.py:713
+#: ../output.py:729
 #, python-format
 msgid " Description: %s"
 msgstr " Beschreibung: %s"
 
-#: ../output.py:715
+#: ../output.py:731
 msgid " Mandatory Packages:"
 msgstr " Obligatorische Pakete:"
 
-#: ../output.py:716
+#: ../output.py:732
 msgid " Default Packages:"
 msgstr " Standard-Pakete:"
 
-#: ../output.py:717
+#: ../output.py:733
 msgid " Optional Packages:"
 msgstr " Optionale Pakete:"
 
-#: ../output.py:718
+#: ../output.py:734
 msgid " Conditional Packages:"
 msgstr " Zwangsbedingte Pakete:"
 
-#: ../output.py:738
+#: ../output.py:754
 #, python-format
 msgid "package: %s"
 msgstr "Paket: %s"
 
-#: ../output.py:740
+#: ../output.py:756
 msgid "  No dependencies for this package"
 msgstr "  Keine Abhängigkeiten für dieses Paket"
 
-#: ../output.py:745
+#: ../output.py:761
 #, python-format
 msgid "  dependency: %s"
 msgstr "  Abhängigkeit: %s"
 
-#: ../output.py:747
+#: ../output.py:763
 msgid "   Unsatisfied dependency"
 msgstr "   Nicht erfüllte Abhängigkeit"
 
-#: ../output.py:819
+#: ../output.py:835
 #, python-format
 msgid "Repo        : %s"
 msgstr "Repo        : %s"
 
-#: ../output.py:820
+#: ../output.py:836
 msgid "Matched from:"
 msgstr "Übereinstimmung von:"
 
-#: ../output.py:828
+#: ../output.py:845
 msgid "Description : "
 msgstr "Beschreibung : "
 
-#: ../output.py:831
+#: ../output.py:848
 #, python-format
 msgid "URL         : %s"
 msgstr "URL        : %s"
 
-#: ../output.py:834
+#: ../output.py:851
 #, python-format
 msgid "License     : %s"
 msgstr "Lizenz     : %s"
 
-#: ../output.py:837
+#: ../output.py:854
 #, python-format
 msgid "Filename    : %s"
 msgstr "Dateiname     : %s"
 
-#: ../output.py:841
+#: ../output.py:858
 msgid "Other       : "
 msgstr "Andere     : "
 
-#: ../output.py:874
+#: ../output.py:891
 msgid "There was an error calculating total download size"
 msgstr "Fehler beim Berechnen der Gesamtgrösse der Downloads"
 
-#: ../output.py:879
+#: ../output.py:896
 #, python-format
 msgid "Total size: %s"
 msgstr "Gesamtgrösse: %s"
 
-#: ../output.py:882
+#: ../output.py:899
 #, python-format
 msgid "Total download size: %s"
 msgstr "Gesamte Downloadgrösse: %s"
 
-#: ../output.py:924
+#: ../output.py:941
+msgid "Reinstalling"
+msgstr "Neuinstallieren"
+
+#: ../output.py:942
+msgid "Downgrading"
+msgstr "Downgrading"
+
+#: ../output.py:943
 msgid "Installing for dependencies"
 msgstr "Installiert für Abhängigkeiten"
 
-#: ../output.py:925
+#: ../output.py:944
 msgid "Updating for dependencies"
 msgstr "Aktualisiert für Abhängigkeiten"
 
-#: ../output.py:926
+#: ../output.py:945
 msgid "Removing for dependencies"
 msgstr "Entfernt für Abhängigkeiten"
 
-#: ../output.py:933
-#: ../output.py:1031
+#: ../output.py:952
+#: ../output.py:1062
 msgid "Skipped (dependency problems)"
 msgstr "Übersprungen (Abhängigkeitsprobleme)"
 
-#: ../output.py:954
+#: ../output.py:973
 msgid "Package"
 msgstr "Paket"
 
-#: ../output.py:954
+#: ../output.py:973
 msgid "Arch"
 msgstr "Arch"
 
-#: ../output.py:955
+#: ../output.py:974
 msgid "Version"
 msgstr "Version"
 
-#: ../output.py:955
+#: ../output.py:974
 msgid "Repository"
 msgstr "Repository"
 
-#: ../output.py:956
+#: ../output.py:975
 msgid "Size"
 msgstr "Grösse"
 
-#: ../output.py:968
+#: ../output.py:987
 #, python-format
 msgid ""
 "     replacing  %s%s%s.%s %s\n"
@@ -790,132 +822,154 @@ msgstr ""
 "     ersetze  %s%s%s.%s %s\n"
 "\n"
 
-#: ../output.py:977
+#: ../output.py:996
 #, 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"
-"Transaktionszusammenfassung\n"
+"Vorgangsübersicht\n"
 "%s\n"
-"Installieren      %5.5s Paket(e)         \n"
-"Aktualisieren     %5.5s Paket(e)         \n"
-"Entfernen          %5.5s Paket(e)         \n"
 
-#: ../output.py:1025
+#: ../output.py:1003
+#, python-format
+msgid ""
+"Install   %5.5s Package(s)\n"
+"Upgrade   %5.5s Package(s)\n"
+msgstr ""
+"Installieren   %5.5s Paket(e)\n"
+"Upgrade   %5.5s Paket(e)\n"
+
+#: ../output.py:1012
+#, python-format
+msgid ""
+"Remove    %5.5s Package(s)\n"
+"Reinstall %5.5s Package(s)\n"
+"Downgrade %5.5s Package(s)\n"
+msgstr ""
+"Entfernen    %5.5s Paket(e)\n"
+"Neuinstallieren %5.5s Paket(e)\n"
+"Downgrade %5.5s Paket(e)\n"
+
+#: ../output.py:1056
 msgid "Removed"
 msgstr "Entfernt"
 
-#: ../output.py:1026
+#: ../output.py:1057
 msgid "Dependency Removed"
 msgstr "Abhängigkeiten entfernt"
 
-#: ../output.py:1028
+#: ../output.py:1059
 msgid "Dependency Installed"
 msgstr "Abhängigkeit installiert"
 
-#: ../output.py:1030
+#: ../output.py:1061
 msgid "Dependency Updated"
 msgstr "Abhängigkeit aktualisiert"
 
-#: ../output.py:1032
+#: ../output.py:1063
 msgid "Replaced"
 msgstr "Ersetzt       "
 
-#: ../output.py:1033
+#: ../output.py:1064
 msgid "Failed"
 msgstr "Fehlgeschlagen"
 
 #. Delta between C-c's so we treat as exit
-#: ../output.py:1099
+#: ../output.py:1130
 msgid "two"
 msgstr "zwei"
 
-#: ../output.py:1106
+#. For translators: This is output like:
+#. Current download cancelled, interrupt (ctrl-c) again within two seconds
+#. to exit.
+#. Where "interupt (ctrl-c) again" and "two" are highlighted.
+#: ../output.py:1141
 #, python-format
 msgid ""
 "\n"
-" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds to exit.\n"
+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds\n"
+"to exit.\n"
 msgstr ""
 "\n"
-" Aktueller Download abgebrochen, %s unterbrechen Sie (Ctrl-c) erneut %s innerhalb %s%s%s Sekunden zum Beenden.\n"
+" Aktueller Download abgebrochen, %s unterbrechen Sie (Ctrl-c) erneut %s innerhalb %s%s%s Sekunden\n"
+"zum Beenden.\n"
 
-#: ../output.py:1116
+#: ../output.py:1152
 msgid "user interrupt"
 msgstr "Benutzer-Unterbrechung"
 
-#: ../output.py:1132
+#: ../output.py:1168
 msgid "Total"
 msgstr "Gesamt"
 
-#: ../output.py:1146
+#: ../output.py:1183
 msgid "installed"
 msgstr "installiert"
 
-#: ../output.py:1147
+#: ../output.py:1184
 msgid "updated"
 msgstr "aktualisiert"
 
-#: ../output.py:1148
+#: ../output.py:1185
 msgid "obsoleted"
 msgstr "veraltet"
 
-#: ../output.py:1149
+#: ../output.py:1186
 msgid "erased"
 msgstr "gelöscht"
 
 # Dies ist das Sorgenkind. So weit ich weiss, werden die Verben von oben bezogen. Eventuell könnte auch eine radikale Änderung eine Lösung sein. Fabian
-#: ../output.py:1153
+#: ../output.py:1190
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> Paket %s.%s %s:%s-%s markiert, um %s zu werden"
 
-#: ../output.py:1160
+#: ../output.py:1197
 msgid "--> Running transaction check"
 msgstr "--> Führe Transaktionsprüfung aus"
 
-#: ../output.py:1165
+#: ../output.py:1202
 msgid "--> Restarting Dependency Resolution with new changes."
 msgstr "--> Starte Abhängigkeitsauflösung mit den neuen Änderungen neu."
 
-#: ../output.py:1170
+#: ../output.py:1207
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Abhängigkeitsauflösung beendet"
 
-#: ../output.py:1175
+#: ../output.py:1212
+#: ../output.py:1217
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> Verarbeite Abhängigkeiten: %s für Paket: %s"
 
-#: ../output.py:1180
+#: ../output.py:1221
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Nicht aufgelöste Abhängigkeit: %s"
 
-#: ../output.py:1186
+#: ../output.py:1227
+#: ../output.py:1232
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> Verarbeite Konflikt: %s kollidiert mit %s"
 
-#: ../output.py:1189
+#: ../output.py:1236
 msgid "--> Populating transaction set with selected packages. Please wait."
 msgstr "--> Fülle Verarbeitungsset mit ausgewählten Paketen. Bitte warten."
 
-#: ../output.py:1193
+#: ../output.py:1240
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
 msgstr "---> Lade Header für %s herunter, um ins Verarbeitungsset zu packen."
 
-#: ../yumcommands.py:41
+#: ../yumcommands.py:40
 msgid "You need to be root to perform this command."
 msgstr "Sie müssen root sein, um diesen Befehl ausführen zu können."
 
-#: ../yumcommands.py:48
+#: ../yumcommands.py:47
 msgid ""
 "\n"
 "You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -945,316 +999,320 @@ msgstr ""
 "\n"
 "Für weitere Informationen kontaktieren Sie Ihren Distributions- oder Paket-Anbieter.\n"
 
-#: ../yumcommands.py:68
+#: ../yumcommands.py:67
 #, python-format
 msgid "Error: Need to pass a list of pkgs to %s"
 msgstr "Fehler: Muss eine Liste von Paketen an %s übergeben"
 
-#: ../yumcommands.py:74
+#: ../yumcommands.py:73
 msgid "Error: Need an item to match"
 msgstr "Fehler: Brauche einen Begriff, der passt"
 
-#: ../yumcommands.py:80
+#: ../yumcommands.py:79
 msgid "Error: Need a group or list of groups"
 msgstr "Fehler: Brauche eine Gruppe oder eine Liste von Gruppen"
 
-#: ../yumcommands.py:89
+#: ../yumcommands.py:88
 #, python-format
 msgid "Error: clean requires an option: %s"
 msgstr "Fehler: Aufräumen benötigt eine Option: %s"
 
-#: ../yumcommands.py:94
+#: ../yumcommands.py:93
 #, python-format
 msgid "Error: invalid clean argument: %r"
 msgstr "Fehler: Ungültiges Argument für Aufräumen: %r"
 
-#: ../yumcommands.py:107
+#: ../yumcommands.py:106
 msgid "No argument to shell"
 msgstr "Kein Argument für Shell"
 
-#: ../yumcommands.py:110
+#: ../yumcommands.py:108
 #, python-format
 msgid "Filename passed to shell: %s"
 msgstr "Dateinamen an Shell übergeben: %s"
 
-#: ../yumcommands.py:114
+#: ../yumcommands.py:112
 #, python-format
 msgid "File %s given as argument to shell does not exist."
 msgstr "Datei %s, angegeben als Argument für Shell, existiert nicht."
 
-#: ../yumcommands.py:120
+#: ../yumcommands.py:118
 msgid "Error: more than one file given as argument to shell."
 msgstr "Fehler: mehr als eine Datei als Argument an die Shell übergeben."
 
-#: ../yumcommands.py:169
+#: ../yumcommands.py:173
 msgid "PACKAGE..."
 msgstr "PAKET..."
 
-#: ../yumcommands.py:172
+#: ../yumcommands.py:176
 msgid "Install a package or packages on your system"
 msgstr "Installiere ein Paket oder Pakete auf Ihrem System"
 
-#: ../yumcommands.py:180
+#: ../yumcommands.py:184
 msgid "Setting up Install Process"
 msgstr "Einrichten des Installationsprozess"
 
-#: ../yumcommands.py:191
+#: ../yumcommands.py:198
 msgid "[PACKAGE...]"
 msgstr "[PAKET...]"
 
-#: ../yumcommands.py:194
+#: ../yumcommands.py:201
 msgid "Update a package or packages on your system"
 msgstr "Aktualisiere ein Paket oder Pakete auf Ihrem System"
 
-#: ../yumcommands.py:201
+#: ../yumcommands.py:208
 msgid "Setting up Update Process"
 msgstr "Einrichten des Aktualisierungsprozess"
 
-#: ../yumcommands.py:243
+#: ../yumcommands.py:256
 msgid "Display details about a package or group of packages"
 msgstr "Zeige Details über ein Paket oder einer Gruppe von Pakete an"
 
-#: ../yumcommands.py:292
+#: ../yumcommands.py:305
 msgid "Installed Packages"
 msgstr "Installierte Pakete"
 
-#: ../yumcommands.py:300
+#: ../yumcommands.py:313
 msgid "Available Packages"
 msgstr "Verfügbare Pakete"
 
-#: ../yumcommands.py:304
+#: ../yumcommands.py:317
 msgid "Extra Packages"
 msgstr "Extra-Pakete"
 
-#: ../yumcommands.py:308
+#: ../yumcommands.py:321
 msgid "Updated Packages"
 msgstr "Aktualisierte Pakete"
 
 #. This only happens in verbose mode
-#: ../yumcommands.py:316
-#: ../yumcommands.py:323
-#: ../yumcommands.py:600
+#: ../yumcommands.py:329
+#: ../yumcommands.py:336
+#: ../yumcommands.py:630
 msgid "Obsoleting Packages"
 msgstr "Veraltete Pakete"
 
-#: ../yumcommands.py:325
+#: ../yumcommands.py:338
 msgid "Recently Added Packages"
 msgstr "Kürzlich hinzugefügte Pakete"
 
-#: ../yumcommands.py:332
+#: ../yumcommands.py:345
 msgid "No matching Packages to list"
 msgstr "Keine übereinstimmenden Pakete zum Auflisten"
 
-#: ../yumcommands.py:346
+#: ../yumcommands.py:362
 msgid "List a package or groups of packages"
 msgstr "Liste von Paketen oder Gruppen von Paketen"
 
-#: ../yumcommands.py:358
+#: ../yumcommands.py:376
 msgid "Remove a package or packages from your system"
 msgstr "Entferne ein Paket oder Pakete auf Ihrem System"
 
-#: ../yumcommands.py:365
+#: ../yumcommands.py:383
 msgid "Setting up Remove Process"
 msgstr "Einrichten des Entfernungsprozess"
 
-#: ../yumcommands.py:379
+#: ../yumcommands.py:400
 msgid "Setting up Group Process"
 msgstr "Einrichten des Gruppenprozess"
 
-#: ../yumcommands.py:385
+#: ../yumcommands.py:406
 msgid "No Groups on which to run command"
 msgstr "Keine Gruppe, auf welcher der Befehl ausgeführt werden kann"
 
-#: ../yumcommands.py:398
+#: ../yumcommands.py:419
 msgid "List available package groups"
 msgstr "Verfügbare Gruppen anzeigen"
 
-#: ../yumcommands.py:415
+#: ../yumcommands.py:436
 msgid "Install the packages in a group on your system"
 msgstr "Installiere die Pakete in einer Gruppe auf Ihrem System"
 
-#: ../yumcommands.py:437
+#: ../yumcommands.py:458
 msgid "Remove the packages in a group from your system"
 msgstr "Entferne die Pakete in einer Gruppe von Ihrem System"
 
-#: ../yumcommands.py:464
+#: ../yumcommands.py:485
 msgid "Display details about a package group"
 msgstr "Zeigt Details über eine Paket-Gruppe an"
 
-#: ../yumcommands.py:488
+#: ../yumcommands.py:511
 msgid "Generate the metadata cache"
 msgstr "Generiere den Metadaten-Zwischenspeicher"
 
-#: ../yumcommands.py:494
+#: ../yumcommands.py:517
 msgid "Making cache files for all metadata files."
 msgstr "Erstelle Zwischenspeicherungsdatei für alle Metadaten-Dateien."
 
-#: ../yumcommands.py:495
+#: ../yumcommands.py:518
 msgid "This may take a while depending on the speed of this computer"
 msgstr "Dies kann eine Weile dauern, abhängig von der Geschwindigkeit dieses Computers"
 
-#: ../yumcommands.py:516
+#: ../yumcommands.py:539
 msgid "Metadata Cache Created"
 msgstr "Metadaten-Zwischenspeicher erstellt"
 
-#: ../yumcommands.py:530
+#: ../yumcommands.py:555
 msgid "Remove cached data"
 msgstr "Entferne gespeicherte Daten"
 
-#: ../yumcommands.py:551
+#: ../yumcommands.py:578
 msgid "Find what package provides the given value"
 msgstr "Suche ein Paket, das den gegebenen Wert bereitstellt"
 
-#: ../yumcommands.py:571
+#: ../yumcommands.py:601
 msgid "Check for available package updates"
 msgstr "Überprüfe auf verfügbare Paket-Aktualisierungen"
 
-#: ../yumcommands.py:620
+#: ../yumcommands.py:653
 msgid "Search package details for the given string"
 msgstr "Suche nach Paket-Details für die gegebene Zeichenkette"
 
-#: ../yumcommands.py:626
+#: ../yumcommands.py:659
 msgid "Searching Packages: "
 msgstr "Suche Pakete:"
 
-#: ../yumcommands.py:643
+#: ../yumcommands.py:679
 msgid "Update packages taking obsoletes into account"
 msgstr "Aktualisiere Pakete, berücksichtige veraltete"
 
 # Gibt es einen Unterschied zwischen Update und Upgrade Process? -tl
-#: ../yumcommands.py:651
+#: ../yumcommands.py:687
 msgid "Setting up Upgrade Process"
 msgstr "Einrichten des Upgradeprozesses"
 
-#: ../yumcommands.py:665
+#: ../yumcommands.py:704
 msgid "Install a local RPM"
 msgstr "Installiere ein lokales RPM"
 
-#: ../yumcommands.py:673
+#: ../yumcommands.py:712
 msgid "Setting up Local Package Process"
 msgstr "Einrichten der lokalen Paketverarbeitung"
 
-#: ../yumcommands.py:692
+#: ../yumcommands.py:734
 msgid "Determine which package provides the given dependency"
 msgstr "Bestimme, welche Pakete die gegebenen Abhängigkeiten bereitstellen"
 
-#: ../yumcommands.py:695
+#: ../yumcommands.py:737
 msgid "Searching Packages for Dependency:"
 msgstr "Suche Pakete für Abhängigkeit:"
 
-#: ../yumcommands.py:709
+#: ../yumcommands.py:754
 msgid "Run an interactive yum shell"
 msgstr "Führe eine interaktive Yum-Shell aus"
 
-#: ../yumcommands.py:715
+#: ../yumcommands.py:760
 msgid "Setting up Yum Shell"
 msgstr "Einrichten der Yum-Shell"
 
-#: ../yumcommands.py:733
+#: ../yumcommands.py:781
 msgid "List a package's dependencies"
 msgstr "Liste von Paket-Abhängigkeiten"
 
-#: ../yumcommands.py:739
+#: ../yumcommands.py:787
 msgid "Finding dependencies: "
 msgstr "Suche Abhängigkeiten:"
 
-#: ../yumcommands.py:755
+#: ../yumcommands.py:805
 msgid "Display the configured software repositories"
 msgstr "Zeige die konfigurierten Software-Repositories an"
 
-#: ../yumcommands.py:803
-#: ../yumcommands.py:804
+#: ../yumcommands.py:853
+#: ../yumcommands.py:854
 msgid "enabled"
 msgstr "aktiviert"
 
-#: ../yumcommands.py:812
-#: ../yumcommands.py:813
+#: ../yumcommands.py:862
+#: ../yumcommands.py:863
 msgid "disabled"
 msgstr "deaktiviert"
 
-#: ../yumcommands.py:827
+#: ../yumcommands.py:877
 msgid "Repo-id     : "
 msgstr "Repo-ID       : "
 
-#: ../yumcommands.py:828
+#: ../yumcommands.py:878
 msgid "Repo-name   : "
 msgstr "Repo-Name   : "
 
-#: ../yumcommands.py:829
+#: ../yumcommands.py:879
 msgid "Repo-status : "
 msgstr "Repo-Status : "
 
-#: ../yumcommands.py:831
+#: ../yumcommands.py:881
 msgid "Repo-revision: "
 msgstr "Repo-Revision: "
 
-#: ../yumcommands.py:835
+#: ../yumcommands.py:885
 msgid "Repo-tags   : "
 msgstr "Repo-Tags   : "
 
-#: ../yumcommands.py:841
+#: ../yumcommands.py:891
 msgid "Repo-distro-tags: "
 msgstr "Repo-Distro-Tags: "
 
-#: ../yumcommands.py:846
+#: ../yumcommands.py:896
 msgid "Repo-updated: "
 msgstr "Repo aktualisiert:"
 
-#: ../yumcommands.py:848
+#: ../yumcommands.py:898
 msgid "Repo-pkgs   : "
 msgstr "Repo-PKGS   : "
 
-#: ../yumcommands.py:849
+#: ../yumcommands.py:899
 msgid "Repo-size   : "
 msgstr "Repo-Grösse   : "
 
-#: ../yumcommands.py:856
+#: ../yumcommands.py:906
 msgid "Repo-baseurl: "
 msgstr "Repo BaseURL:"
 
-#: ../yumcommands.py:860
+#: ../yumcommands.py:914
 msgid "Repo-metalink: "
 msgstr "Repo-Metalink: "
 
-#: ../yumcommands.py:863
+#: ../yumcommands.py:918
+msgid "  Updated    : "
+msgstr "  Aktualisiert    : "
+
+#: ../yumcommands.py:921
 msgid "Repo-mirrors: "
 msgstr "Repo-Spiegel: "
 
-#: ../yumcommands.py:867
+#: ../yumcommands.py:925
 msgid "Repo-exclude: "
 msgstr "Repo ausgeschlossen:"
 
-#: ../yumcommands.py:871
+#: ../yumcommands.py:929
 msgid "Repo-include: "
 msgstr "Repo eingeschlossen:"
 
 #. Work out the first (id) and last (enabled/disalbed/count),
 #. then chop the middle (name)...
-#: ../yumcommands.py:881
-#: ../yumcommands.py:907
+#: ../yumcommands.py:939
+#: ../yumcommands.py:965
 msgid "repo id"
 msgstr "Repo-ID"
 
-#: ../yumcommands.py:895
-#: ../yumcommands.py:896
-#: ../yumcommands.py:910
+#: ../yumcommands.py:953
+#: ../yumcommands.py:954
+#: ../yumcommands.py:968
 msgid "status"
 msgstr "Status"
 
-#: ../yumcommands.py:908
+#: ../yumcommands.py:966
 msgid "repo name"
 msgstr "Repo-Name:"
 
-#: ../yumcommands.py:934
+#: ../yumcommands.py:1010
 msgid "Display a helpful usage message"
 msgstr "Zeigt eine kurze Verwendungsinformation"
 
-#: ../yumcommands.py:968
+#: ../yumcommands.py:1048
 #, python-format
 msgid "No help available for %s"
 msgstr "Keine Hilfe für %s vorhanden"
 
-#: ../yumcommands.py:973
+#: ../yumcommands.py:1053
 msgid ""
 "\n"
 "\n"
@@ -1264,7 +1322,7 @@ msgstr ""
 "\n"
 "Aliase: "
 
-#: ../yumcommands.py:975
+#: ../yumcommands.py:1055
 msgid ""
 "\n"
 "\n"
@@ -1274,14 +1332,46 @@ msgstr ""
 "\n"
 "Alias: "
 
-#: ../yumcommands.py:1003
+#: ../yumcommands.py:1071
+msgid "Command"
+msgstr "Befehl"
+
+#: ../yumcommands.py:1082
+msgid "Created"
+msgstr "Erzeugt"
+
+#: ../yumcommands.py:1083
+msgid "Summary"
+msgstr "Zusammenfassung"
+
+#: ../yumcommands.py:1130
 msgid "Setting up Reinstall Process"
 msgstr "Einrichten des Neuinstallationsprozess"
 
-#: ../yumcommands.py:1017
+#: ../yumcommands.py:1138
 msgid "reinstall a package"
 msgstr "Installiere Paket neu"
 
+#: ../yumcommands.py:1159
+msgid "Setting up Downgrade Process"
+msgstr "Einrichten des Downgrade-Prozesses"
+
+#: ../yumcommands.py:1166
+msgid "downgrade a package"
+msgstr "Downgrade eines Pakets"
+
+#: ../yumcommands.py:1183
+msgid "Display a version for the machine and/or available repos."
+msgstr "Eine Version für das System und/oder die verfügbaren Repositories anzeigen."
+
+#: ../yumcommands.py:1210
+msgid "Installed:"
+msgstr "Installiert:"
+
+#: ../yumcommands.py:1219
+msgid "Available:"
+msgstr "Verfügbar:"
+
 #: ../yummain.py:42
 msgid ""
 "\n"
@@ -1361,7 +1451,7 @@ msgid "Error: %s"
 msgstr "Fehler: %s"
 
 #: ../yummain.py:209
-#: ../yummain.py:250
+#: ../yummain.py:251
 #, python-format
 msgid "Unknown Error(s): Exit Code: %d:"
 msgstr "Unbekannte(r) Fehler: Exit Code: %d:"
@@ -1385,7 +1475,7 @@ msgstr ""
 "                        package-cleanup --dupes\n"
 "                        rpm -Va --nofiles --nodigest"
 
-#: ../yummain.py:256
+#: ../yummain.py:257
 msgid ""
 "\n"
 "Dependencies Resolved"
@@ -1393,12 +1483,12 @@ msgstr ""
 "\n"
 "Abhängigkeiten aufgelöst"
 
-#: ../yummain.py:270
+#: ../yummain.py:271
 msgid "Complete!"
 msgstr "Komplett!"
 
 # Ist eine ziemlich unschöne Übersetzung...Vorschläge? Fabian
-#: ../yummain.py:325
+#: ../yummain.py:318
 msgid ""
 "\n"
 "\n"
@@ -1408,201 +1498,201 @@ msgstr ""
 "\n"
 "Verlasse nach Abbruch durch den Benutzer."
 
-#: ../yum/depsolve.py:84
+#: ../yum/depsolve.py:83
 msgid "doTsSetup() will go away in a future version of Yum.\n"
 msgstr "doTsSetup() wird in zukünftigen Versionen von Yum verschwinden.\n"
 
-#: ../yum/depsolve.py:99
+#: ../yum/depsolve.py:98
 msgid "Setting up TransactionSets before config class is up"
 msgstr "Konfiguriere TransactionSets, bevor die Konfigurationsklasse gestartet ist"
 
-#: ../yum/depsolve.py:150
+#: ../yum/depsolve.py:149
 #, python-format
 msgid "Invalid tsflag in config file: %s"
 msgstr "Ungültiges tsflag in Konfigurationsdatei: %s"
 
-#: ../yum/depsolve.py:161
+#: ../yum/depsolve.py:160
 #, python-format
 msgid "Searching pkgSack for dep: %s"
 msgstr "Suche pkgSack für Abhängigkeiten: %s"
 
-#: ../yum/depsolve.py:184
+#: ../yum/depsolve.py:183
 #, python-format
 msgid "Potential match for %s from %s"
 msgstr "Potentielle Übereinstimmung für %s von %s"
 
-#: ../yum/depsolve.py:192
+#: ../yum/depsolve.py:191
 #, python-format
 msgid "Matched %s to require for %s"
 msgstr "Übereinstimmung von %s, welche gebraucht wird für %s"
 
-#: ../yum/depsolve.py:233
+#: ../yum/depsolve.py:232
 #, python-format
 msgid "Member: %s"
 msgstr "Mitglied: %s"
 
-#: ../yum/depsolve.py:247
-#: ../yum/depsolve.py:738
+#: ../yum/depsolve.py:246
+#: ../yum/depsolve.py:759
 #, python-format
 msgid "%s converted to install"
 msgstr "%s konvertiert zum Installieren"
 
-#: ../yum/depsolve.py:254
+#: ../yum/depsolve.py:253
 #, python-format
 msgid "Adding Package %s in mode %s"
 msgstr "Füge Paket %s hinzu in Modus %s"
 
-#: ../yum/depsolve.py:264
+#: ../yum/depsolve.py:263
 #, python-format
 msgid "Removing Package %s"
 msgstr "Entferne Paket %s"
 
-#: ../yum/depsolve.py:275
+#: ../yum/depsolve.py:285
 #, python-format
 msgid "%s requires: %s"
 msgstr "%s benötigt: %s"
 
-#: ../yum/depsolve.py:333
+#: ../yum/depsolve.py:343
 msgid "Needed Require has already been looked up, cheating"
 msgstr "Benötigte Anforderung wurde bereits nachgeschlagen, betrüge"
 
-#: ../yum/depsolve.py:343
+#: ../yum/depsolve.py:353
 #, python-format
 msgid "Needed Require is not a package name. Looking up: %s"
 msgstr "Benötigte Anforderung ist kein Paket-Name. Schlage nach: %s"
 
-#: ../yum/depsolve.py:350
+#: ../yum/depsolve.py:360
 #, python-format
 msgid "Potential Provider: %s"
 msgstr "Potentieller Anbieter: %s"
 
-#: ../yum/depsolve.py:373
+#: ../yum/depsolve.py:383
 #, python-format
 msgid "Mode is %s for provider of %s: %s"
 msgstr "Modus ist %s für Anbieter von %s: %s"
 
-#: ../yum/depsolve.py:377
+#: ../yum/depsolve.py:387
 #, python-format
 msgid "Mode for pkg providing %s: %s"
 msgstr "Modus für pkg-Bereitstellung %s: %s"
 
-#: ../yum/depsolve.py:381
+#: ../yum/depsolve.py:391
 #, python-format
 msgid "TSINFO: %s package requiring %s marked as erase"
 msgstr "TSINFO: %s Paket benötigt %s, welches als gelöscht markiert ist"
 
-#: ../yum/depsolve.py:394
+#: ../yum/depsolve.py:404
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
 msgstr "TSINFO: Ersetze %s durch %s zum Auflösen der Abhängigkeit."
 
-#: ../yum/depsolve.py:397
+#: ../yum/depsolve.py:407
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
 msgstr "TSINFO: Aktualisiere %s zum Auflösen der Abhängigkeit."
 
-#: ../yum/depsolve.py:405
+#: ../yum/depsolve.py:415
 #, python-format
 msgid "Cannot find an update path for dep for: %s"
 msgstr "Kann keinen Aktualisierungspfad finden für Abhängigkeit für: %s"
 
-#: ../yum/depsolve.py:415
+#: ../yum/depsolve.py:425
 #, python-format
 msgid "Unresolvable requirement %s for %s"
 msgstr "Unlösbare Anforderung %s für %s"
 
-#: ../yum/depsolve.py:438
+#: ../yum/depsolve.py:448
 #, python-format
 msgid "Quick matched %s to require for %s"
 msgstr "Übereinstimmung von %s, welche gebraucht wird für %s"
 
 #. is it already installed?
-#: ../yum/depsolve.py:480
+#: ../yum/depsolve.py:490
 #, python-format
 msgid "%s is in providing packages but it is already installed, removing."
 msgstr "%s ist in einem bereitgestellten Paket, aber bereits installiert, entferne."
 
-#: ../yum/depsolve.py:496
+#: ../yum/depsolve.py:506
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
 msgstr "Potentielles aufgelöstes Paket %s hat eine neuere Instanz in ts."
 
-#: ../yum/depsolve.py:507
+#: ../yum/depsolve.py:517
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
 msgstr "Potentielles aufgelöste Paket %s hat eine neuere Instanz installiert."
 
-#: ../yum/depsolve.py:515
-#: ../yum/depsolve.py:564
+#: ../yum/depsolve.py:525
+#: ../yum/depsolve.py:574
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "Fehlende Abhängigkeit: %s wird benötigt von Paket %s"
 
-#: ../yum/depsolve.py:528
+#: ../yum/depsolve.py:538
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s bereits in ts, überspringe dieses"
 
-#: ../yum/depsolve.py:574
+#: ../yum/depsolve.py:584
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: Markiere %s als Aktualisierung für %s"
 
-#: ../yum/depsolve.py:582
+#: ../yum/depsolve.py:592
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: Markiere %s als Installation für %s"
 
-#: ../yum/depsolve.py:675
-#: ../yum/depsolve.py:756
+#: ../yum/depsolve.py:695
+#: ../yum/depsolve.py:777
 msgid "Success - empty transaction"
 msgstr "Erfolg - Leere Transaktion"
 
-#: ../yum/depsolve.py:713
-#: ../yum/depsolve.py:728
+#: ../yum/depsolve.py:734
+#: ../yum/depsolve.py:749
 msgid "Restarting Loop"
 msgstr "Starte Schleife neu"
 
-#: ../yum/depsolve.py:744
+#: ../yum/depsolve.py:765
 msgid "Dependency Process ending"
 msgstr "Abhängigkeitsverarbeitung beendet"
 
-#: ../yum/depsolve.py:750
+#: ../yum/depsolve.py:771
 #, python-format
 msgid "%s from %s has depsolving problems"
 msgstr "%s von %s hat Abhängigkeitsauflöse-Probleme"
 
-#: ../yum/depsolve.py:757
+#: ../yum/depsolve.py:778
 msgid "Success - deps resolved"
 msgstr "Erfolg - Abhängigkeiten aufgelöst"
 
-#: ../yum/depsolve.py:771
+#: ../yum/depsolve.py:792
 #, python-format
 msgid "Checking deps for %s"
 msgstr "Prüfe Abhängigkeiten für %s"
 
-#: ../yum/depsolve.py:854
+#: ../yum/depsolve.py:875
 #, python-format
 msgid "looking for %s as a requirement of %s"
 msgstr "Suche nach %s als eine Anforderung von %s"
 
-#: ../yum/depsolve.py:996
+#: ../yum/depsolve.py:1017
 #, python-format
 msgid "Running compare_providers() for %s"
 msgstr "Führe compare_providers() aus für %s"
 
-#: ../yum/depsolve.py:1024
-#: ../yum/depsolve.py:1030
+#: ../yum/depsolve.py:1051
+#: ../yum/depsolve.py:1057
 #, python-format
 msgid "better arch in po %s"
 msgstr "bessere Architektur in po %s"
 
-#: ../yum/depsolve.py:1091
+#: ../yum/depsolve.py:1132
 #, python-format
 msgid "%s obsoletes %s"
 msgstr "%s ersetzt %s"
 
-#: ../yum/depsolve.py:1107
+#: ../yum/depsolve.py:1144
 #, python-format
 msgid ""
 "archdist compared %s to %s on %s\n"
@@ -1611,116 +1701,120 @@ msgstr ""
 "archdist verglichen %s zu %s auf %s\n"
 "  Gewinner: %s"
 
-#: ../yum/depsolve.py:1114
+#: ../yum/depsolve.py:1151
 #, python-format
 msgid "common sourcerpm %s and %s"
 msgstr "Gemeinsames Quellen-RPM %s und %s"
 
-#: ../yum/depsolve.py:1120
+#: ../yum/depsolve.py:1157
 #, python-format
 msgid "common prefix of %s between %s and %s"
 msgstr "Gemeinsamer Prefix von %s zwischen %s und %s"
 
 # Hat jemand eine Idee für eine bessere Übersetzung? Fabian
-#: ../yum/depsolve.py:1128
+#: ../yum/depsolve.py:1165
 #, python-format
 msgid "Best Order: %s"
 msgstr "Beste Bestellung: %s"
 
-#: ../yum/__init__.py:176
+#: ../yum/__init__.py:180
 msgid "doConfigSetup() will go away in a future version of Yum.\n"
 msgstr "doConfigSetup() wird in zukünftigen Versionen von Yum verschwinden.\n"
 
-#. FIXME: Use critical? or exception?
-#: ../yum/__init__.py:386
+#: ../yum/__init__.py:401
 #, python-format
 msgid "Repository %r is missing name in configuration, using id"
 msgstr "Bei Repository %r fehlt der Name in der Konfiguration, benutze id"
 
-#: ../yum/__init__.py:424
+#: ../yum/__init__.py:439
 msgid "plugins already initialised"
 msgstr "Plugins bereits initialisiert"
 
-#: ../yum/__init__.py:431
+#: ../yum/__init__.py:446
 msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
 msgstr "doRpmDBSetup() wird in zukünftigen Versionen von Yum verschwinden.\n"
 
-#: ../yum/__init__.py:441
+#: ../yum/__init__.py:457
 msgid "Reading Local RPMDB"
 msgstr "Lese lokale RPMDB"
 
-#: ../yum/__init__.py:459
+#: ../yum/__init__.py:478
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() wird in zukünftigen Versionen von Yum verschwinden.\n"
 
-#: ../yum/__init__.py:479
+#: ../yum/__init__.py:498
 msgid "doSackSetup() will go away in a future version of Yum.\n"
 msgstr "doSackSetup() wird in zukünftigen Versionen von Yum verschwinden \n"
 
-#: ../yum/__init__.py:496
+#: ../yum/__init__.py:528
 msgid "Setting up Package Sacks"
 msgstr "Einrichten des Paket-Behälters"
 
-#: ../yum/__init__.py:539
+#: ../yum/__init__.py:573
 #, python-format
 msgid "repo object for repo %s lacks a _resetSack method\n"
 msgstr "Repository-Objekt für Repository %s fehlt eine _resetSack-Methode\n"
 
-#: ../yum/__init__.py:540
+#: ../yum/__init__.py:574
 msgid "therefore this repo cannot be reset.\n"
 msgstr "deshalb kann dieses Repository nicht zurückgesetzt werden.\n"
 
-#: ../yum/__init__.py:545
+#: ../yum/__init__.py:579
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
 msgstr "doUpdateSetup() wird in zukünftigen Versionen von Yum verschwinden.\n"
 
-#: ../yum/__init__.py:557
+#: ../yum/__init__.py:591
 msgid "Building updates object"
 msgstr "Baue Aktualisierungsobjekt"
 
-#: ../yum/__init__.py:588
+#: ../yum/__init__.py:626
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
 msgstr "doGroupSetup() wird in zukünftigen Versionen von Yum verschwinden .\n"
 
-#: ../yum/__init__.py:612
+#: ../yum/__init__.py:651
 msgid "Getting group metadata"
 msgstr "Beziehe Gruppen-Metadaten"
 
-#: ../yum/__init__.py:637
+#: ../yum/__init__.py:677
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "Füge Gruppen-Datei von Repository hinzu: %s"
 
-#: ../yum/__init__.py:642
+#: ../yum/__init__.py:686
 #, python-format
 msgid "Failed to add groups file for repository: %s - %s"
 msgstr "Hinzufügen von Gruppen-Datei für Repository fehlgeschlagen: %s - %s"
 
-#: ../yum/__init__.py:648
+#: ../yum/__init__.py:692
 msgid "No Groups Available in any repository"
 msgstr "Keine Gruppen in irgendeinem Repository verfügbar"
 
-#: ../yum/__init__.py:698
+#: ../yum/__init__.py:742
 msgid "Importing additional filelist information"
 msgstr "Importiere zusätzlichen Dateilisten-Informationen"
 
-#: ../yum/__init__.py:706
+#: ../yum/__init__.py:756
+#, python-format
+msgid "The program %s%s%s is found in the yum-utils package."
+msgstr "Das Programm %s%s%s wurde in im yum-utils-Paket gefunden."
+
+#: ../yum/__init__.py:764
 msgid "There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them."
 msgstr "Es gibt noch nicht abgeschlossene Transaktionen. Sie sollten in Betracht ziehen, zuerst yum-complete-transaction auszuführen, um diese abzuschliessen."
 
 # Ob da die Übersetzung den Punkt trifft...Fabian
-#: ../yum/__init__.py:772
+#: ../yum/__init__.py:832
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Überspringe defekte Runde %i"
 
 # Ob da die Übersetzung den Punkt trifft...Fabian
-#: ../yum/__init__.py:824
+#: ../yum/__init__.py:884
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr "Überspringen der defekte brachte %i Runden"
 
-#: ../yum/__init__.py:825
+#: ../yum/__init__.py:885
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1728,90 +1822,70 @@ msgstr ""
 "\n"
 "Pakete übersprungen wegen Abhängigkeitsproblemen:"
 
-#: ../yum/__init__.py:829
+#: ../yum/__init__.py:889
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s von %s"
 
-#: ../yum/__init__.py:968
+#: ../yum/__init__.py:1027
 msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
 msgstr "Warnung: Es sind Scriptlet- oder andere nicht-fatale Fehler bei der Verarbeitung aufgetreten."
 
-#: ../yum/__init__.py:983
+#: ../yum/__init__.py:1042
 #, python-format
 msgid "Failed to remove transaction file %s"
 msgstr "Entfernen der Verarbeitungsdatei %s fehlgeschlagen"
 
-# verstehe ich nicht ganz, was gemeint ist. Fabian
-#: ../yum/__init__.py:1025
-#, python-format
-msgid "excluding for cost: %s from %s"
-msgstr "Ausschluss für Aufwand: %s von %s"
-
-#: ../yum/__init__.py:1056
-msgid "Excluding Packages in global exclude list"
-msgstr "Schliesse Pakete, die in der globalen Ausschlussliste sind, aus"
-
-#: ../yum/__init__.py:1058
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1071
 #, python-format
-msgid "Excluding Packages from %s"
-msgstr "Schliesse Pakete von %s aus"
+msgid "%s was supposed to be installed but is not!"
+msgstr "%s hätte installiert werden sollen, wurde aber nicht!"
 
-#: ../yum/__init__.py:1085
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1110
 #, python-format
-msgid "Reducing %s to included packages only"
-msgstr "Reduziere %s auf einbezogene Pakete"
-
-#: ../yum/__init__.py:1091
-#, python-format
-msgid "Keeping included package %s"
-msgstr "Behalte integriertes Paket %s"
-
-#: ../yum/__init__.py:1097
-#, python-format
-msgid "Removing unmatched package %s"
-msgstr "Entferne nicht übereinstimmendes Paket %s"
-
-#: ../yum/__init__.py:1100
-msgid "Finished"
-msgstr "Abgeschlossen"
+msgid "%s was supposed to be removed but is not!"
+msgstr "%s hätte entfernt werden sollen, wurde aber nicht!"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:1130
+#: ../yum/__init__.py:1226
 #, python-format
 msgid "Unable to check if PID %s is active"
 msgstr "Unfähig zu prüfen, ob PID %s ist aktiv"
 
 #. Another copy seems to be running.
-#: ../yum/__init__.py:1134
+#: ../yum/__init__.py:1230
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
 msgstr "Existierende Blockierung %s: eine andere Kopie läuft mit PID %s."
 
-#: ../yum/__init__.py:1204
+#: ../yum/__init__.py:1307
 msgid "Package does not match intended download"
 msgstr "Paket stimmt nicht mit dem vorgesehenen Herunterladen überein."
 
-#: ../yum/__init__.py:1219
+#: ../yum/__init__.py:1322
 msgid "Could not perform checksum"
 msgstr "Konnte Prüfsumme nicht bilden"
 
-#: ../yum/__init__.py:1222
+#: ../yum/__init__.py:1325
 msgid "Package does not match checksum"
 msgstr "Paket stimmt nicht mit der Prüfsumme überein"
 
-#: ../yum/__init__.py:1265
+#: ../yum/__init__.py:1367
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
 msgstr "Paket bei Prüfsummen-Prüfung durchgefallen, aber Zwischenspeicherung ist aktiviert für %s"
 
-#: ../yum/__init__.py:1268
-#: ../yum/__init__.py:1297
+#: ../yum/__init__.py:1370
+#: ../yum/__init__.py:1399
 #, python-format
 msgid "using local copy of %s"
 msgstr "benutze lokale Kopie von %s"
 
-#: ../yum/__init__.py:1309
+#: ../yum/__init__.py:1411
 #, python-format
 msgid ""
 "Insufficient space in download directory %s\n"
@@ -1822,326 +1896,363 @@ msgstr ""
 "    * frei     %s\n"
 "    * benötigt %s"
 
-#: ../yum/__init__.py:1356
+#: ../yum/__init__.py:1460
 msgid "Header is not complete."
 msgstr "Header ist nicht vollständig."
 
-#: ../yum/__init__.py:1393
+#: ../yum/__init__.py:1497
 #, python-format
 msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
 msgstr "Header ist nicht im lokalen Zwischenspeicher und Nur-Zwischenspeicher-Modus aktiviert. Kann %s nicht herunterladen"
 
-#: ../yum/__init__.py:1448
+#: ../yum/__init__.py:1552
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "Öffentlicher Schlüssel für %s ist nicht installiert"
 
-#: ../yum/__init__.py:1452
+#: ../yum/__init__.py:1556
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Problem beim Öffnen des Paketes %s"
 
-#: ../yum/__init__.py:1460
+#: ../yum/__init__.py:1564
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "Öffentlicher Schlüssel für %s ist nicht vertrauenswürdig"
 
-#: ../yum/__init__.py:1464
+#: ../yum/__init__.py:1568
 #, python-format
 msgid "Package %s is not signed"
 msgstr "Paket %s ist nicht unterschrieben"
 
-#: ../yum/__init__.py:1502
+#: ../yum/__init__.py:1606
 #, python-format
 msgid "Cannot remove %s"
 msgstr "Kann %s nicht entfernen"
 
-#: ../yum/__init__.py:1505
+#: ../yum/__init__.py:1610
 #, python-format
 msgid "%s removed"
 msgstr "%s entfernt"
 
-#: ../yum/__init__.py:1541
+#: ../yum/__init__.py:1646
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "Kann %s Datei nicht entfernen %s"
 
-#: ../yum/__init__.py:1544
+#: ../yum/__init__.py:1650
 #, python-format
 msgid "%s file %s removed"
 msgstr "%s Datei %s entfernt"
 
-#: ../yum/__init__.py:1546
+#: ../yum/__init__.py:1652
 #, python-format
 msgid "%d %s files removed"
 msgstr "%d %s Dateien entfernt"
 
-#: ../yum/__init__.py:1614
+#: ../yum/__init__.py:1721
 #, python-format
 msgid "More than one identical match in sack for %s"
 msgstr "Mehr als eine identische Übereinstimmung im Behälter für %s"
 
-#: ../yum/__init__.py:1619
+#: ../yum/__init__.py:1727
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "Keine Übereinstimmungen mit  %s.%s %s:%s-%s bei der Aktualisierung"
 
-#: ../yum/__init__.py:1838
+#: ../yum/__init__.py:1960
 msgid "searchPackages() will go away in a future version of Yum.                      Use searchGenerator() instead. \n"
 msgstr "searchPackages() wird in zukünftigen Versionen von Yum verschwinden.                      Benutze stattdessen searchGenerator(). \n"
 
-#: ../yum/__init__.py:1876
+#: ../yum/__init__.py:2002
 #, python-format
 msgid "Searching %d packages"
 msgstr "Suche %d Pakete"
 
-#: ../yum/__init__.py:1879
+#: ../yum/__init__.py:2006
 #, python-format
 msgid "searching package %s"
 msgstr "Suche Paket %s"
 
-#: ../yum/__init__.py:1890
+#: ../yum/__init__.py:2018
 msgid "searching in file entries"
 msgstr "Suche in Datei-Einträgen"
 
-#: ../yum/__init__.py:1896
+#: ../yum/__init__.py:2025
 msgid "searching in provides entries"
 msgstr "suche in bereitgestellten Einträgen"
 
-#: ../yum/__init__.py:1929
+#: ../yum/__init__.py:2058
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Stelle Übereinstimmung bereit: %s"
 
-#: ../yum/__init__.py:1978
+#: ../yum/__init__.py:2107
 msgid "No group data available for configured repositories"
 msgstr "Keine Gruppendaten für konfigurierte Repositories verfügbar"
 
-#: ../yum/__init__.py:2009
-#: ../yum/__init__.py:2028
-#: ../yum/__init__.py:2058
-#: ../yum/__init__.py:2064
-#: ../yum/__init__.py:2143
-#: ../yum/__init__.py:2147
+#: ../yum/__init__.py:2138
+#: ../yum/__init__.py:2157
+#: ../yum/__init__.py:2188
+#: ../yum/__init__.py:2194
+#: ../yum/__init__.py:2273
+#: ../yum/__init__.py:2277
+#: ../yum/__init__.py:2582
 #, python-format
 msgid "No Group named %s exists"
 msgstr "Kein Gruppe mit dem Namen %s vorhanden"
 
-#: ../yum/__init__.py:2039
-#: ../yum/__init__.py:2159
+#: ../yum/__init__.py:2169
+#: ../yum/__init__.py:2290
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "Paket %s war nicht markiert in Gruppe %s"
 
-#: ../yum/__init__.py:2085
+#: ../yum/__init__.py:2216
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Füge Paket %s aus Gruppe %s hinzu"
 
-#: ../yum/__init__.py:2090
+#: ../yum/__init__.py:2220
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "Kein Paket mit Namen %s verfügbar zum Installieren"
 
 # Paket-Behälter wird sicher nicht allen gefallen. Fabian
-#: ../yum/__init__.py:2186
+#: ../yum/__init__.py:2317
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "Paket-Tupel %s kann nicht gefunden werden im Paket-Behälter"
 
-#: ../yum/__init__.py:2201
+#: ../yum/__init__.py:2331
 msgid "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
 msgstr "getInstalledPackageObject() wird verschwinden, benutze self.rpmdb.searchPkgTuple().\n"
 
-#: ../yum/__init__.py:2253
-#: ../yum/__init__.py:2294
+#: ../yum/__init__.py:2387
+#: ../yum/__init__.py:2432
 msgid "Invalid version flag"
 msgstr "Ungültiges Versionsflag"
 
-#: ../yum/__init__.py:2268
-#: ../yum/__init__.py:2272
+#: ../yum/__init__.py:2402
+#: ../yum/__init__.py:2407
 #, python-format
 msgid "No Package found for %s"
 msgstr "Kein Paket gefunden für %s"
 
-#: ../yum/__init__.py:2449
+#: ../yum/__init__.py:2615
 msgid "Package Object was not a package object instance"
 msgstr "Paketobjekt war keine Paketobjektinstanz"
 
-#: ../yum/__init__.py:2453
+#: ../yum/__init__.py:2619
 msgid "Nothing specified to install"
 msgstr "Nichts angegeben zum Installieren"
 
-#: ../yum/__init__.py:2469
+#: ../yum/__init__.py:2635
+#: ../yum/__init__.py:3374
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
 msgstr "Überprüfe nach virtueller Bereitstellung oder Datei-Bereitstellung für %s"
 
-#: ../yum/__init__.py:2475
-#: ../yum/__init__.py:2740
-#: ../yum/__init__.py:2900
+#: ../yum/__init__.py:2641
+#: ../yum/__init__.py:2937
+#: ../yum/__init__.py:3104
+#: ../yum/__init__.py:3380
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "Kein Übereinstimmung für Argument: %s"
 
-#: ../yum/__init__.py:2548
+#: ../yum/__init__.py:2715
 #, python-format
 msgid "Package %s installed and not available"
 msgstr "Paket %s installiert und nicht verfügbar"
 
-#: ../yum/__init__.py:2551
+#: ../yum/__init__.py:2718
 msgid "No package(s) available to install"
 msgstr "Kein(e) Paket(e) zum Installieren verfügbar."
 
-#: ../yum/__init__.py:2564
+#: ../yum/__init__.py:2730
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "Paket: %s - bereits im Transaktionsset"
 
-#: ../yum/__init__.py:2580
+#: ../yum/__init__.py:2756
+#, python-format
+msgid "Package %s is obsoleted by %s which is already installed"
+msgstr "Paket %s wurde ersetzt durch %s, welches bereits installiert ist"
+
+#: ../yum/__init__.py:2759
 #, python-format
 msgid "Package %s is obsoleted by %s, trying to install %s instead"
 msgstr "Paket %s wurde ersetzt durch %s, versuche stattdessen %s zu installieren."
 
-#: ../yum/__init__.py:2588
+#: ../yum/__init__.py:2767
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "Paket %s ist bereits in der neusten Version installiert."
 
-#: ../yum/__init__.py:2595
+#: ../yum/__init__.py:2781
 #, python-format
 msgid "Package matching %s already installed. Checking for update."
 msgstr "Paket, das auf %s passt, ist bereits installiert. Überprüfe auf Aktualisierung."
 
 #. update everything (the easy case)
-#: ../yum/__init__.py:2675
+#: ../yum/__init__.py:2870
 msgid "Updating Everything"
 msgstr "Aktualisiere alles"
 
-#: ../yum/__init__.py:2693
-#: ../yum/__init__.py:2802
-#: ../yum/__init__.py:2823
-#: ../yum/__init__.py:2849
+#: ../yum/__init__.py:2891
+#: ../yum/__init__.py:3002
+#: ../yum/__init__.py:3031
+#: ../yum/__init__.py:3058
 #, python-format
 msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Aktualisiere Paket nicht, da es bereits veraltet ist: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2728
-#: ../yum/__init__.py:2897
+#: ../yum/__init__.py:2926
+#: ../yum/__init__.py:3101
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: ../yum/__init__.py:2793
+#: ../yum/__init__.py:2993
 #, python-format
 msgid "Package is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Paket ist bereits veraltet: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2826
-#: ../yum/__init__.py:2852
+#: ../yum/__init__.py:3026
+#, python-format
+msgid "Not Updating Package that is obsoleted: %s"
+msgstr "Aktualisiere Paket nicht, da es bereits veraltet ist: %s"
+
+#: ../yum/__init__.py:3035
+#: ../yum/__init__.py:3062
 #, python-format
 msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
 msgstr "Aktualisiere Paket nicht, da es bereits aktualisiert ist:  %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2913
+#: ../yum/__init__.py:3117
 msgid "No package matched to remove"
 msgstr "Kein Paket stimmt zum Entfernen überein"
 
-#: ../yum/__init__.py:2947
+#: ../yum/__init__.py:3151
+#: ../yum/__init__.py:3242
+#: ../yum/__init__.py:3329
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "Kann Datei nicht öffnen: %s. Überspringe."
 
-#: ../yum/__init__.py:2949
+#: ../yum/__init__.py:3154
+#: ../yum/__init__.py:3245
+#: ../yum/__init__.py:3332
 #, python-format
 msgid "Examining %s: %s"
 msgstr "Untersuche %s: %s"
 
-#: ../yum/__init__.py:2957
+#: ../yum/__init__.py:3162
+#: ../yum/__init__.py:3248
+#: ../yum/__init__.py:3335
 #, python-format
 msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
 msgstr "Kann Paket %s nicht zur Transaktion hinzufügen. Keine kompatible Architektur: %s"
 
-#: ../yum/__init__.py:2965
+#: ../yum/__init__.py:3170
 #, python-format
 msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
 msgstr "Paket %s nicht installiert, kann es nicht aktualisieren. Führen Sie stattdessen yum install aus, um es zu installieren."
 
-#: ../yum/__init__.py:2998
+#: ../yum/__init__.py:3205
+#: ../yum/__init__.py:3259
+#: ../yum/__init__.py:3346
 #, python-format
 msgid "Excluding %s"
 msgstr "Schliesse %s aus"
 
-#: ../yum/__init__.py:3002
+#: ../yum/__init__.py:3210
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Markiere %s zum Installieren"
 
-#: ../yum/__init__.py:3007
+#: ../yum/__init__.py:3216
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "Markiere %s als eine Aktualisierung für %s"
 
-#: ../yum/__init__.py:3012
+#: ../yum/__init__.py:3223
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: aktualisiert installierte Pakete nicht."
 
-#: ../yum/__init__.py:3029
+#: ../yum/__init__.py:3278
 msgid "Problem in reinstall: no package matched to remove"
 msgstr "Probleme beim Neuinstallieren: kein Paket stimmt zum Entfernen überein"
 
-#: ../yum/__init__.py:3040
+#: ../yum/__init__.py:3290
+#: ../yum/__init__.py:3407
 #, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "Paket %s darf mehrfach installiert sein, überspringe"
 
-#: ../yum/__init__.py:3050
-msgid "Problem in reinstall: no package matched to install"
-msgstr "Probleme beim Neuinstallieren: kein Paket stimmt zum Installieren überein"
+#: ../yum/__init__.py:3308
+#, python-format
+msgid "Problem in reinstall: no package %s matched to install"
+msgstr "Probleme beim Neuinstallieren: kein Paket %s stimmt zum Installieren überein"
 
-#: ../yum/__init__.py:3085
+#: ../yum/__init__.py:3399
+msgid "No package(s) available to downgrade"
+msgstr "Kein(e) Paket(e) zum Downgrade verfügbar"
+
+#: ../yum/__init__.py:3443
+#, python-format
+msgid "No Match for available package: %s"
+msgstr "Keine Übereinstimmung der verfügbare Pakete: %s"
+
+#: ../yum/__init__.py:3449
+#, python-format
+msgid "Only Upgrade available on package: %s"
+msgstr "Nur verfügbare Paket aktualisieren: %s"
+
+#: ../yum/__init__.py:3508
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "GPG-Schlüssel abrufen von %s"
 
-#: ../yum/__init__.py:3105
+#: ../yum/__init__.py:3528
 msgid "GPG key retrieval failed: "
 msgstr "GPG-Schlüssel-Abruf fehlgeschlagen:"
 
-#: ../yum/__init__.py:3116
+#: ../yum/__init__.py:3539
 #, python-format
 msgid "GPG key parsing failed: key does not have value %s"
 msgstr "GPG-Schlüssel-Analyse fehlgeschlagen: Schlüssel hat keinen Wert %s"
 
-#: ../yum/__init__.py:3148
+#: ../yum/__init__.py:3571
 #, python-format
 msgid "GPG key at %s (0x%s) is already installed"
 msgstr "GPG-Schlüssel unter %s (0x%s) ist bereits installiert"
 
 #. Try installing/updating GPG key
-#: ../yum/__init__.py:3153
-#: ../yum/__init__.py:3214
+#: ../yum/__init__.py:3576
+#: ../yum/__init__.py:3638
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "Importiere GPG-Schlüssel 0x%s \"%s\" von %s"
 
-#: ../yum/__init__.py:3169
+#: ../yum/__init__.py:3593
 msgid "Not installing key"
 msgstr "Nicht installierter Schlüssel"
 
-#: ../yum/__init__.py:3175
+#: ../yum/__init__.py:3599
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "Schlüssel-Import fehlgeschlagen (Code %d)"
 
-#: ../yum/__init__.py:3176
-#: ../yum/__init__.py:3236
+#: ../yum/__init__.py:3600
+#: ../yum/__init__.py:3659
 msgid "Key imported successfully"
 msgstr "Schlüssel erfolgreich importiert"
 
-#: ../yum/__init__.py:3181
-#: ../yum/__init__.py:3241
+#: ../yum/__init__.py:3605
+#: ../yum/__init__.py:3664
 #, python-format
 msgid ""
 "The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n"
@@ -2150,96 +2261,96 @@ msgstr ""
 "Die aufgelisteten GPG-Schlüssel für das \"%s\"-Repository sind bereits installiert, aber sie sind nicht korrekt für dieses Paket.\n"
 "Stellen Sie sicher, dass die korrekten Schlüssel-URLs für dieses Repository konfiguriert sind."
 
-#: ../yum/__init__.py:3190
+#: ../yum/__init__.py:3614
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "Importieren der Schlüssel hat nicht geholfen, falsche Schlüssel?"
 
-#: ../yum/__init__.py:3209
+#: ../yum/__init__.py:3633
 #, python-format
 msgid "GPG key at %s (0x%s) is already imported"
 msgstr "GPG-Schlüssel unter %s (0x%s) ist bereits importiert"
 
-#: ../yum/__init__.py:3228
+#: ../yum/__init__.py:3653
 #, python-format
 msgid "Not installing key for repo %s"
 msgstr "Installierte Schlüssel für Repo %s nicht"
 
-#: ../yum/__init__.py:3235
+#: ../yum/__init__.py:3658
 msgid "Key import failed"
 msgstr "Schlüssel-Import fehlgeschlagen"
 
-#: ../yum/__init__.py:3325
+#: ../yum/__init__.py:3779
 msgid "Unable to find a suitable mirror."
 msgstr "Es kann kein geeigneten Spiegelserver gefunden werden."
 
-#: ../yum/__init__.py:3327
+#: ../yum/__init__.py:3781
 msgid "Errors were encountered while downloading packages."
 msgstr "Beim Herunterladen der Pakete sind Fehler aufgetreten."
 
-#: ../yum/__init__.py:3367
+#: ../yum/__init__.py:3822
 #, python-format
 msgid "Please report this error at %s"
 msgstr "Bitte melden Sie diesen Fehler unter %s"
 
-#: ../yum/__init__.py:3391
+#: ../yum/__init__.py:3846
 msgid "Test Transaction Errors: "
 msgstr "Test-Transaktionsfehler: "
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:204
+#: ../yum/plugins.py:202
 msgid "Loaded plugins: "
 msgstr "Geladene Plugins: "
 
-#: ../yum/plugins.py:218
-#: ../yum/plugins.py:224
+#: ../yum/plugins.py:216
+#: ../yum/plugins.py:222
 #, python-format
 msgid "No plugin match for: %s"
 msgstr "Kein Plugin für Argument: %s"
 
-#: ../yum/plugins.py:254
+#: ../yum/plugins.py:252
 #, python-format
 msgid "Not loading \"%s\" plugin, as it is disabled"
 msgstr "\"%s\"-Plugin ist deaktiviert"
 
 #. Give full backtrace:
-#: ../yum/plugins.py:266
+#: ../yum/plugins.py:264
 #, python-format
 msgid "Plugin \"%s\" can't be imported"
 msgstr "Plugin \"%s\" kann nicht importiert werden"
 
-#: ../yum/plugins.py:273
+#: ../yum/plugins.py:271
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr "Plugin \"%s\" gibt keine benötigte API-Version an"
 
-#: ../yum/plugins.py:278
+#: ../yum/plugins.py:276
 #, python-format
 msgid "Plugin \"%s\" requires API %s. Supported API is %s."
 msgstr "Plugin \"%s\" benötigt API %s. Unterstützte API ist %s."
 
-#: ../yum/plugins.py:311
+#: ../yum/plugins.py:309
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "Lade \"%s\"-Plugin"
 
-#: ../yum/plugins.py:318
+#: ../yum/plugins.py:316
 #, python-format
 msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
 msgstr "Zwei oder mehr Plugins mit dem Namen \"%s\" existieren im Plugin-Suchpfad"
 
-#: ../yum/plugins.py:338
+#: ../yum/plugins.py:336
 #, python-format
 msgid "Configuration file %s not found"
 msgstr "Konfigurationsdatei %s nicht gefunden"
 
 #. for
 #. Configuration files for the plugin not found
-#: ../yum/plugins.py:341
+#: ../yum/plugins.py:339
 #, python-format
 msgid "Unable to find configuration file for plugin %s"
 msgstr "Kann Konfigurationsdatei für Plugin %s nicht finden"
 
-#: ../yum/plugins.py:495
+#: ../yum/plugins.py:497
 msgid "registration of commands not supported"
 msgstr "Registrierung von Befehlen nicht unterstützt"
 
@@ -2247,73 +2358,51 @@ msgstr "Registrierung von Befehlen nicht unterstützt"
 msgid "Repackaging"
 msgstr "Packe neu"
 
-#: ../rpmUtils/oldUtils.py:26
+#: ../rpmUtils/oldUtils.py:33
 #, python-format
 msgid "Header cannot be opened or does not match %s, %s."
 msgstr "Header kann nicht geöffnet werden oder stimmt nicht überein mit %s, %s."
 
-#: ../rpmUtils/oldUtils.py:46
+#: ../rpmUtils/oldUtils.py:53
 #, python-format
 msgid "RPM %s fails md5 check"
 msgstr "RPM %s besteht md5-Prüfung nicht"
 
-#: ../rpmUtils/oldUtils.py:144
+#: ../rpmUtils/oldUtils.py:151
 msgid "Could not open RPM database for reading. Perhaps it is already in use?"
 msgstr "Kann RPM-Datenbank nicht öffnen. Wird sie eventuell schon benutzt?"
 
-#: ../rpmUtils/oldUtils.py:174
+#: ../rpmUtils/oldUtils.py:183
 msgid "Got an empty Header, something has gone wrong"
 msgstr "Erhalte einen leeren Header, irgendetwas ging schief"
 
-#: ../rpmUtils/oldUtils.py:244
-#: ../rpmUtils/oldUtils.py:251
-#: ../rpmUtils/oldUtils.py:254
-#: ../rpmUtils/oldUtils.py:257
+#: ../rpmUtils/oldUtils.py:253
+#: ../rpmUtils/oldUtils.py:260
+#: ../rpmUtils/oldUtils.py:263
+#: ../rpmUtils/oldUtils.py:266
 #, python-format
 msgid "Damaged Header %s"
 msgstr "Defekter Header %s"
 
-#: ../rpmUtils/oldUtils.py:272
+#: ../rpmUtils/oldUtils.py:281
 #, python-format
 msgid "Error opening rpm %s - error %s"
 msgstr "Fehler bei Öffnen des RPM %s - Fehler %s"
 
-#~ msgid "Invalid versioned dependency string, try quoting it."
-#~ msgstr ""
-#~ "Ungültig versionierte Abhängigkeitszeichenkette, versuche es zu notieren."
-#~ msgid "Parsing package install arguments"
-#~ msgstr "Analysiere Installationsargumente des Pakets"
-#~ msgid "Could not find update match for %s"
-#~ msgstr "Kann keine Aktualisierungsübereinstimmung finden für %s"
+#~ msgid "Matching packages for package list to user args"
+#~ msgstr "Übereinstimmende Pakete für Paket-Liste nach Benutzer-Argument"
 #~ msgid ""
-#~ "Failure finding best provider of %s for %s, exceeded maximum loop length"
+#~ "\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 ""
-#~ "Fehler beim FInden des besten Providers von %s für %s, überschrittene "
-#~ "maximale Schleifenlänge"
-#~ msgid "Comparing best: %s to po: %s"
-#~ msgstr "Vergleiche besseres: %s zu po: %s"
-#~ msgid "Same: best %s == po: %s"
-#~ msgstr "Gleich: besser %s == po: %s"
-#~ msgid "po %s obsoletes best: %s"
-#~ msgstr "po %s veraltetes besser: %s"
-#~ msgid "po %s shares a sourcerpm with %s"
-#~ msgstr "po %s teilen ein Quellen-RPM mit %s"
-#~ msgid "best %s shares a sourcerpm with %s"
-#~ msgstr "besseres %s teilen ein Quellen-RPM mit %s"
-#~ msgid "po %s shares more of the name prefix with %s"
-#~ msgstr "po %s teilt mehr als den Prefixnamen mit %s"
-#~ msgid "po %s has a shorter name than best %s"
-#~ msgstr "po %s hat einen kürzeren Namen als das bessere %s"
-#~ msgid "bestpkg %s shares more of the name prefix with %s"
-#~ msgstr "bestpkg %s teilt mehr als als den Prefixnamen mit %s"
-#~ msgid "Package %s conflicts with %s."
-#~ msgstr "Paket %s kollidiert mit %s."
-#~ msgid "Looking for Obsoletes for %s"
-#~ msgstr "Suche nach veralteten Paketen für %s"
-#~ msgid "TSINFO: Updating %s to resolve conflict."
-#~ msgstr "TSINFO: Aktualisiere %s zum Lösen des Konflikts.."
-#~ msgid "%s conflicts: %s"
-#~ msgstr "%s kollidiert: %s"
-#~ msgid "%s conflicts with %s"
-#~ msgstr "%s kollidiert mit %s"
+#~ "\n"
+#~ "Transaktionszusammenfassung\n"
+#~ "%s\n"
+#~ "Installieren      %5.5s Paket(e)         \n"
+#~ "Aktualisieren     %5.5s Paket(e)         \n"
+#~ "Entfernen         %5.5s Paket(e)         \n"
 
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 0000000..df4008c
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,2395 @@
+# Fedora Spanish translation of yum.yum-3_2_X.
+# This file is distributed under the same license as the yum.yum-3_2_X. package.
+# Héctor Daniel Cabrera <h.daniel.cabrera@gmail.com>, 2009.
+# Domingo Becker <domingobecker@gmail.com>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Fedora Spanish translation of yum.yum-3_2_X.\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-08-12 08:58+0000\n"
+"PO-Revision-Date: \n"
+"Last-Translator: Héctor Daniel Cabrera <h.daniel.cabrera@gmail.com>\n"
+"Language-Team: Fedora Spanish <fedora-trans-es@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Spanish\n"
+"X-Poedit-Country: ARGENTINA\n"
+
+#: ../callback.py:48
+#: ../output.py:939
+#: ../yum/rpmtrans.py:71
+msgid "Updating"
+msgstr "Actualizando"
+
+#: ../callback.py:49
+#: ../yum/rpmtrans.py:72
+msgid "Erasing"
+msgstr "Eliminando"
+
+#: ../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 "Instalando"
+
+#: ../callback.py:52
+#: ../callback.py:58
+#: ../yum/rpmtrans.py:75
+msgid "Obsoleted"
+msgstr "Obsoleto"
+
+#: ../callback.py:54
+#: ../output.py:1060
+msgid "Updated"
+msgstr "Actualizado"
+
+#: ../callback.py:55
+msgid "Erased"
+msgstr "Eliminado"
+
+#: ../callback.py:56
+#: ../callback.py:57
+#: ../callback.py:59
+#: ../output.py:1058
+msgid "Installed"
+msgstr "Instalado"
+
+#: ../callback.py:130
+msgid "No header - huh?"
+msgstr "Sin encabezado - ¿ah?"
+
+#: ../callback.py:168
+msgid "Repackage"
+msgstr "Reempaquetar"
+
+#: ../callback.py:189
+#, python-format
+msgid "Error: invalid output state: %s for %s"
+msgstr "Error: estado de salida no válido: %s de %s"
+
+#: ../callback.py:212
+#, python-format
+msgid "Erased: %s"
+msgstr "Eliminado: %s"
+
+#: ../callback.py:217
+#: ../output.py:940
+msgid "Removing"
+msgstr "Eliminando"
+
+#: ../callback.py:219
+#: ../yum/rpmtrans.py:77
+msgid "Cleanup"
+msgstr "Limpieza"
+
+#: ../cli.py:107
+#, python-format
+msgid "Command \"%s\" already defined"
+msgstr "El comando \"%s\" ya ha sido definido"
+
+#: ../cli.py:119
+msgid "Setting up repositories"
+msgstr "Configurando los repositorios"
+
+#: ../cli.py:130
+msgid "Reading repository metadata in from local files"
+msgstr "Leyendo en archivos locales los metadatos de los repositorios"
+
+#: ../cli.py:193
+#: ../utils.py:87
+#, python-format
+msgid "Config Error: %s"
+msgstr "Error de configuración: %s"
+
+#: ../cli.py:196
+#: ../cli.py:1253
+#: ../utils.py:90
+#, python-format
+msgid "Options Error: %s"
+msgstr "Error de opciones: %s"
+
+#: ../cli.py:225
+#, python-format
+msgid "  Installed: %s-%s at %s"
+msgstr "  Instalado: %s-%s en %s"
+
+#: ../cli.py:227
+#, python-format
+msgid "  Built    : %s at %s"
+msgstr "  Construido: %s en %s"
+
+#: ../cli.py:229
+#, python-format
+msgid "  Committed: %s at %s"
+msgstr "  Enviado: %s en %s"
+
+#: ../cli.py:268
+msgid "You need to give some command"
+msgstr "Necesita ingresar algún comando"
+
+#: ../cli.py:311
+msgid "Disk Requirements:\n"
+msgstr "Requerimientos de disco:\n"
+
+#: ../cli.py:313
+#, python-format
+msgid "  At least %dMB needed on the %s filesystem.\n"
+msgstr "  Como mínimo se necesitan %dMB en el sistema de archivos %s.\n"
+
+#. TODO: simplify the dependency errors?
+#. Fixup the summary
+#: ../cli.py:318
+msgid ""
+"Error Summary\n"
+"-------------\n"
+msgstr ""
+"Resumen de errores\n"
+"-------------\n"
+
+#: ../cli.py:361
+msgid "Trying to run the transaction but nothing to do. Exiting."
+msgstr "Se intentó ejecutar la transacción pero no hay nada para hacer. Saliendo."
+
+#: ../cli.py:397
+msgid "Exiting on user Command"
+msgstr "Saliendo de acuerdo al comando del usuario"
+
+#: ../cli.py:401
+msgid "Downloading Packages:"
+msgstr "Descargando paquetes:"
+
+#: ../cli.py:406
+msgid "Error Downloading Packages:\n"
+msgstr "Error al descargar los paquetes:\n"
+
+#: ../cli.py:420
+#: ../yum/__init__.py:3820
+msgid "Running rpm_check_debug"
+msgstr "Ejecutando el rpm_check_debug"
+
+#: ../cli.py:429
+#: ../yum/__init__.py:3829
+msgid "ERROR You need to update rpm to handle:"
+msgstr "ERROR Necesita actualizar el rpm para manipular:"
+
+#: ../cli.py:431
+#: ../yum/__init__.py:3832
+msgid "ERROR with rpm_check_debug vs depsolve:"
+msgstr "ERROR con el rpm_check_debug vs depsolve:"
+
+#: ../cli.py:437
+msgid "RPM needs to be updated"
+msgstr "El RPM necesita ser actualizado"
+
+#: ../cli.py:438
+#, python-format
+msgid "Please report this error in %s"
+msgstr "Por favor, reporte este error en %s"
+
+#: ../cli.py:444
+msgid "Running Transaction Test"
+msgstr "Ejecutando prueba de transacción"
+
+#: ../cli.py:460
+msgid "Finished Transaction Test"
+msgstr "Prueba de transacción finalizada"
+
+#: ../cli.py:462
+msgid "Transaction Check Error:\n"
+msgstr "Error en la verificación de la transacción:\n"
+
+#: ../cli.py:469
+msgid "Transaction Test Succeeded"
+msgstr "La prueba de transacción ha sido exitosa"
+
+#: ../cli.py:491
+msgid "Running Transaction"
+msgstr "Ejecutando transacción"
+
+#: ../cli.py:521
+msgid ""
+"Refusing to automatically import keys when running unattended.\n"
+"Use \"-y\" to override."
+msgstr ""
+"Se rechaza la importación automática de claves cuando se ejecuta desatendida.\n"
+"Utilice \"-y\" para forzar."
+
+#: ../cli.py:540
+#: ../cli.py:574
+msgid "  * Maybe you meant: "
+msgstr "  * Tal vez quería decir: "
+
+#: ../cli.py:557
+#: ../cli.py:565
+#, python-format
+msgid "Package(s) %s%s%s available, but not installed."
+msgstr "El (los) paquete(s) %s%s%s se encuentra(n) disponible(s), pero no se ha(n) instalado."
+
+#: ../cli.py:571
+#: ../cli.py:602
+#: ../cli.py:680
+#, python-format
+msgid "No package %s%s%s available."
+msgstr "No existe disponible ningún paquete %s%s%s."
+
+#: ../cli.py:607
+#: ../cli.py:740
+msgid "Package(s) to install"
+msgstr "Paquete(s) a instalarse"
+
+#: ../cli.py:608
+#: ../cli.py:686
+#: ../cli.py:719
+#: ../cli.py:741
+#: ../yumcommands.py:157
+msgid "Nothing to do"
+msgstr "Nada para hacer"
+
+#: ../cli.py:641
+#, python-format
+msgid "%d packages marked for Update"
+msgstr "%d paquetes han sido seleccionados para ser actualizados"
+
+#: ../cli.py:644
+msgid "No Packages marked for Update"
+msgstr "No se han seleccionando paquetes para ser actualizados"
+
+#: ../cli.py:658
+#, python-format
+msgid "%d packages marked for removal"
+msgstr "%d paquetes han sido seleccionados para ser eliminados"
+
+#: ../cli.py:661
+msgid "No Packages marked for removal"
+msgstr "No se han seleccionado paquetes para ser eliminados"
+
+#: ../cli.py:685
+msgid "Package(s) to downgrade"
+msgstr "Paquete(s) a desactualizar"
+
+#: ../cli.py:709
+#, python-format
+msgid " (from %s)"
+msgstr " (desde %s)"
+
+#: ../cli.py:711
+#, python-format
+msgid "Installed package %s%s%s%s not available."
+msgstr "El paquete instalado %s%s%s%s no se encuentra disponible."
+
+#: ../cli.py:718
+msgid "Package(s) to reinstall"
+msgstr "Paquete(s) a reinstalar"
+
+#: ../cli.py:731
+msgid "No Packages Provided"
+msgstr "No se ha ofrecido ningún paquete"
+
+#: ../cli.py:815
+#, python-format
+msgid "Warning: No matches found for: %s"
+msgstr "Aviso: No se ha encontrado ningún resultado para: %s"
+
+#: ../cli.py:818
+msgid "No Matches found"
+msgstr "No se ha encontrado ningún resultado"
+
+#: ../cli.py:857
+#, 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 ""
+"Aviso: las versiones 3.0.x de yum podrían hacer corresponder equivocadamente los nombres de los archivos.\n"
+" Puede usar \"%s*/%s%s\" y/o \"%s*bin/%s%s\" para conseguir eso"
+
+#: ../cli.py:873
+#, python-format
+msgid "No Package Found for %s"
+msgstr "No se ha encontrado ningún paquete para %s"
+
+#: ../cli.py:885
+msgid "Cleaning up Everything"
+msgstr "Limpiando todo"
+
+#: ../cli.py:899
+msgid "Cleaning up Headers"
+msgstr "Limpiando encabezados"
+
+#: ../cli.py:902
+msgid "Cleaning up Packages"
+msgstr "Limpiando paquetes"
+
+#: ../cli.py:905
+msgid "Cleaning up xml metadata"
+msgstr "Limpiando metadatos xml"
+
+#: ../cli.py:908
+msgid "Cleaning up database cache"
+msgstr "Limpiando el caché de la base de datos"
+
+#: ../cli.py:911
+msgid "Cleaning up expire-cache metadata"
+msgstr "Limpiando metadatos expirados del caché"
+
+#: ../cli.py:914
+msgid "Cleaning up plugins"
+msgstr "Limpiando complementos"
+
+#: ../cli.py:939
+msgid "Installed Groups:"
+msgstr "Grupos instalados:"
+
+#: ../cli.py:951
+msgid "Available Groups:"
+msgstr "Grupos disponibles:"
+
+#: ../cli.py:961
+msgid "Done"
+msgstr "Listo"
+
+#: ../cli.py:972
+#: ../cli.py:990
+#: ../cli.py:996
+#: ../yum/__init__.py:2555
+#, python-format
+msgid "Warning: Group %s does not exist."
+msgstr "Aviso: el grupo %s no existe."
+
+#: ../cli.py:1000
+msgid "No packages in any requested group available to install or update"
+msgstr "En los grupos solicitados no existe disponible ningún paquete para ser instalado o actualizado"
+
+#: ../cli.py:1002
+#, python-format
+msgid "%d Package(s) to Install"
+msgstr "%d paquete(s) a instalar"
+
+#: ../cli.py:1012
+#: ../yum/__init__.py:2567
+#, python-format
+msgid "No group named %s exists"
+msgstr "No existe ningún grupo denominado %s"
+
+#: ../cli.py:1018
+msgid "No packages to remove from groups"
+msgstr "No existen paquetes a eliminarse de los grupos"
+
+#: ../cli.py:1020
+#, python-format
+msgid "%d Package(s) to remove"
+msgstr "%d paquete(s) a eliminar"
+
+#: ../cli.py:1062
+#, python-format
+msgid "Package %s is already installed, skipping"
+msgstr "Ya se encuentra instalado el paquete %s, ignorando"
+
+#: ../cli.py:1073
+#, python-format
+msgid "Discarding non-comparable pkg %s.%s"
+msgstr "Descartando paquete no comparable %s.%s"
+
+#. we've not got any installed that match n or n+a
+#: ../cli.py:1099
+#, python-format
+msgid "No other %s installed, adding to list for potential install"
+msgstr "No existe instalado otro %s, agregando a la lista para instalación posible"
+
+#: ../cli.py:1119
+msgid "Plugin Options"
+msgstr "Opciones de complementos"
+
+#: ../cli.py:1127
+#, python-format
+msgid "Command line error: %s"
+msgstr "Error en la línea de comando: %s"
+
+#: ../cli.py:1140
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: la opción %s necesita un argumento"
+
+#: ../cli.py:1193
+msgid "--color takes one of: auto, always, never"
+msgstr "--color acepta una de las siguientes opciones: auto, always, never"
+
+#: ../cli.py:1300
+msgid "show this help message and exit"
+msgstr "muestra este mensaje de ayuda y cierra"
+
+#: ../cli.py:1304
+msgid "be tolerant of errors"
+msgstr "sea tolerante con los errores"
+
+#: ../cli.py:1306
+msgid "run entirely from cache, don't update cache"
+msgstr "se ejecuta completamente a partir del caché, pero no lo actualiza"
+
+#: ../cli.py:1308
+msgid "config file location"
+msgstr "configurar ubicación de archivo"
+
+#: ../cli.py:1310
+msgid "maximum command wait time"
+msgstr "tiempo máximo de espera del comando"
+
+#: ../cli.py:1312
+msgid "debugging output level"
+msgstr "nivel de depuración de la salida"
+
+#: ../cli.py:1316
+msgid "show duplicates, in repos, in list/search commands"
+msgstr "muestra duplicados en los repositorios, y en los comandos para mostrar/buscar"
+
+#: ../cli.py:1318
+msgid "error output level"
+msgstr "nivel de error de la salida"
+
+#: ../cli.py:1321
+msgid "quiet operation"
+msgstr "operación discreta"
+
+#: ../cli.py:1323
+msgid "verbose operation"
+msgstr "operación detallada"
+
+#: ../cli.py:1325
+msgid "answer yes for all questions"
+msgstr "responde \"si\" a todas las preguntas"
+
+#: ../cli.py:1327
+msgid "show Yum version and exit"
+msgstr "muestra la versión de Yum y finaliza"
+
+#: ../cli.py:1328
+msgid "set install root"
+msgstr "define la raíz de instalación"
+
+#: ../cli.py:1332
+msgid "enable one or more repositories (wildcards allowed)"
+msgstr "activa uno o más repositorios (los comodines son permitidos)"
+
+#: ../cli.py:1336
+msgid "disable one or more repositories (wildcards allowed)"
+msgstr "desactiva uno o más repositorios (los comodines son permitidos)"
+
+#: ../cli.py:1339
+msgid "exclude package(s) by name or glob"
+msgstr "excluya paquete(s) de acuerdo a su nombre o glob "
+
+#: ../cli.py:1341
+msgid "disable exclude from main, for a repo or for everything"
+msgstr "deshabilita la posibilidad de exclusión desde main, para un repositorio o para todos"
+
+#: ../cli.py:1344
+msgid "enable obsoletes processing during updates"
+msgstr "habilita el proceso de paquetes obsoletos durante las actualizaciones"
+
+#: ../cli.py:1346
+msgid "disable Yum plugins"
+msgstr "deshabilita los complementos de Yum"
+
+#: ../cli.py:1348
+msgid "disable gpg signature checking"
+msgstr "deshabilita la verificación de firmas GPG"
+
+#: ../cli.py:1350
+msgid "disable plugins by name"
+msgstr "deshabilita complementos de acuerdo a su nombre"
+
+#: ../cli.py:1353
+msgid "enable plugins by name"
+msgstr "habilita complementos de acuerdo a su nombre"
+
+#: ../cli.py:1356
+msgid "skip packages with depsolving problems"
+msgstr "ignora paquetes con problemas de resolución de dependencias"
+
+#: ../cli.py:1358
+msgid "control whether color is used"
+msgstr "controla la utilización de colores"
+
+#: ../output.py:303
+msgid "Jan"
+msgstr "Ene"
+
+#: ../output.py:303
+msgid "Feb"
+msgstr "Feb"
+
+#: ../output.py:303
+msgid "Mar"
+msgstr "Mar"
+
+#: ../output.py:303
+msgid "Apr"
+msgstr "Abr"
+
+#: ../output.py:303
+msgid "May"
+msgstr "May"
+
+#: ../output.py:303
+msgid "Jun"
+msgstr "Jun"
+
+#: ../output.py:304
+msgid "Jul"
+msgstr "Jul"
+
+#: ../output.py:304
+msgid "Aug"
+msgstr "Ago"
+
+#: ../output.py:304
+msgid "Sep"
+msgstr "Sep"
+
+#: ../output.py:304
+msgid "Oct"
+msgstr "Oct"
+
+#: ../output.py:304
+msgid "Nov"
+msgstr "Nov"
+
+#: ../output.py:304
+msgid "Dec"
+msgstr "Dic"
+
+#: ../output.py:314
+msgid "Trying other mirror."
+msgstr "Intentando con otro espejo."
+
+#: ../output.py:536
+#, python-format
+msgid "Name       : %s%s%s"
+msgstr "Nombre       : %s%s%s"
+
+#: ../output.py:537
+#, python-format
+msgid "Arch       : %s"
+msgstr "Arquitectura       : %s"
+
+#: ../output.py:539
+#, python-format
+msgid "Epoch      : %s"
+msgstr "Período      : %s"
+
+#: ../output.py:540
+#, python-format
+msgid "Version    : %s"
+msgstr "Versión    : %s"
+
+#: ../output.py:541
+#, python-format
+msgid "Release    : %s"
+msgstr "Lanzamiento    : %s"
+
+#: ../output.py:542
+#, python-format
+msgid "Size       : %s"
+msgstr "Tamaño       : %s"
+
+#: ../output.py:543
+#, python-format
+msgid "Repo       : %s"
+msgstr "Repositorio       : %s"
+
+#: ../output.py:545
+#, python-format
+msgid "From repo  : %s"
+msgstr "Desde el repositorio  : %s"
+
+#: ../output.py:547
+#, python-format
+msgid "Committer  : %s"
+msgstr "Enviado por  : %s"
+
+#: ../output.py:548
+#, python-format
+msgid "Committime : %s"
+msgstr "Horario del envio : %s"
+
+#: ../output.py:549
+#, python-format
+msgid "Buildtime  : %s"
+msgstr "Horario de la construcción  : %s"
+
+#: ../output.py:551
+#, python-format
+msgid "Installtime: %s"
+msgstr "Horario de la instalación: %s"
+
+#: ../output.py:552
+msgid "Summary    : "
+msgstr "Resumen    : "
+
+#: ../output.py:554
+#, python-format
+msgid "URL        : %s"
+msgstr "URL        : %s"
+
+#: ../output.py:555
+#, python-format
+msgid "License    : %s"
+msgstr "Licencia    : %s"
+
+#: ../output.py:556
+msgid "Description: "
+msgstr "Descripción:"
+
+#: ../output.py:624
+msgid "y"
+msgstr "s"
+
+#: ../output.py:624
+msgid "yes"
+msgstr "si"
+
+#: ../output.py:625
+msgid "n"
+msgstr "n"
+
+#: ../output.py:625
+msgid "no"
+msgstr "no"
+
+#: ../output.py:629
+msgid "Is this ok [y/N]: "
+msgstr "Está de acuerdo [s/N]:"
+
+#: ../output.py:720
+#, python-format
+msgid ""
+"\n"
+"Group: %s"
+msgstr ""
+"\n"
+"Grupo: %s"
+
+#: ../output.py:724
+#, python-format
+msgid " Group-Id: %s"
+msgstr " Group-Id: %s"
+
+#: ../output.py:729
+#, python-format
+msgid " Description: %s"
+msgstr " Descripción: %s"
+
+#: ../output.py:731
+msgid " Mandatory Packages:"
+msgstr " Paquetes obligatorios:"
+
+#: ../output.py:732
+msgid " Default Packages:"
+msgstr " Paquetes predeterminados:"
+
+#: ../output.py:733
+msgid " Optional Packages:"
+msgstr " Paquetes opcionales:"
+
+#: ../output.py:734
+msgid " Conditional Packages:"
+msgstr " Paquetes condicionales:"
+
+#: ../output.py:754
+#, python-format
+msgid "package: %s"
+msgstr "paquete: %s"
+
+#: ../output.py:756
+msgid "  No dependencies for this package"
+msgstr " No existen dependencias para este paquete"
+
+#: ../output.py:761
+#, python-format
+msgid "  dependency: %s"
+msgstr " dependencia: %s"
+
+#: ../output.py:763
+msgid "   Unsatisfied dependency"
+msgstr " Dependencia no satisfecha"
+
+#: ../output.py:835
+#, python-format
+msgid "Repo        : %s"
+msgstr "Repositorio        : %s"
+
+#: ../output.py:836
+msgid "Matched from:"
+msgstr "Resultado obtenido desde:"
+
+#: ../output.py:845
+msgid "Description : "
+msgstr "Descripción :"
+
+#: ../output.py:848
+#, python-format
+msgid "URL         : %s"
+msgstr "URL         : %s"
+
+#: ../output.py:851
+#, python-format
+msgid "License     : %s"
+msgstr "Licencia     : %s"
+
+#: ../output.py:854
+#, python-format
+msgid "Filename    : %s"
+msgstr "Nombre del archivo    : %s"
+
+#: ../output.py:858
+msgid "Other       : "
+msgstr "Otro       : "
+
+#: ../output.py:891
+msgid "There was an error calculating total download size"
+msgstr "Hubo un error mientras se calculaba el tamaño total de la descarga"
+
+#: ../output.py:896
+#, python-format
+msgid "Total size: %s"
+msgstr "Tamaño total: %s"
+
+#: ../output.py:899
+#, python-format
+msgid "Total download size: %s"
+msgstr "Tamaño total de la descarga: %s"
+
+#: ../output.py:941
+msgid "Reinstalling"
+msgstr "Reinstalando"
+
+#: ../output.py:942
+msgid "Downgrading"
+msgstr "Desactualizando"
+
+#: ../output.py:943
+msgid "Installing for dependencies"
+msgstr "Instalando para las dependencias"
+
+#: ../output.py:944
+msgid "Updating for dependencies"
+msgstr "Actualizando para las dependencias"
+
+#: ../output.py:945
+msgid "Removing for dependencies"
+msgstr "Eliminando para las dependencias"
+
+#: ../output.py:952
+#: ../output.py:1062
+msgid "Skipped (dependency problems)"
+msgstr "Ignorando (problemas de dependencias)"
+
+#: ../output.py:973
+msgid "Package"
+msgstr "Paquete"
+
+#: ../output.py:973
+msgid "Arch"
+msgstr "Arquitectura"
+
+#: ../output.py:974
+msgid "Version"
+msgstr "Versión"
+
+#: ../output.py:974
+msgid "Repository"
+msgstr "Repositorio"
+
+#: ../output.py:975
+msgid "Size"
+msgstr "Tamaño"
+
+#: ../output.py:987
+#, python-format
+msgid ""
+"     replacing  %s%s%s.%s %s\n"
+"\n"
+msgstr ""
+"     reemplazando  %s%s%s.%s %s\n"
+"\n"
+
+#: ../output.py:996
+#, python-format
+msgid ""
+"\n"
+"Transaction Summary\n"
+"%s\n"
+msgstr ""
+"\n"
+"Resumen de la transacción\n"
+"%s\n"
+
+#: ../output.py:1003
+#, python-format
+msgid ""
+"Install   %5.5s Package(s)\n"
+"Upgrade   %5.5s Package(s)\n"
+msgstr ""
+"Instalar   %5.5s Paquete(s)\n"
+"Actualizar   %5.5s Paquete(s)\n"
+
+#: ../output.py:1012
+#, python-format
+msgid ""
+"Remove    %5.5s Package(s)\n"
+"Reinstall %5.5s Package(s)\n"
+"Downgrade %5.5s Package(s)\n"
+msgstr ""
+"Eliminar      %5.5s Paquete(s)\n"
+"Reinstalar    %5.5s Paquete(s)\n"
+"Desactualizar %5.5s Paquete(s)\n"
+
+#: ../output.py:1056
+msgid "Removed"
+msgstr "Eliminado(s)"
+
+#: ../output.py:1057
+msgid "Dependency Removed"
+msgstr "Dependencia(s) eliminada(s)"
+
+#: ../output.py:1059
+msgid "Dependency Installed"
+msgstr "Dependencia(s) instalada(s)"
+
+#: ../output.py:1061
+msgid "Dependency Updated"
+msgstr "Dependencia(s) actualizada(s)"
+
+#: ../output.py:1063
+msgid "Replaced"
+msgstr "Sustituido(s)"
+
+#: ../output.py:1064
+msgid "Failed"
+msgstr "Falló"
+
+#. Delta between C-c's so we treat as exit
+#: ../output.py:1130
+msgid "two"
+msgstr "dos"
+
+#. For translators: This is output like:
+#. Current download cancelled, interrupt (ctrl-c) again within two seconds
+#. to exit.
+#. Where "interupt (ctrl-c) again" and "two" are highlighted.
+#: ../output.py:1141
+#, python-format
+msgid ""
+"\n"
+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds\n"
+"to exit.\n"
+msgstr ""
+"\n"
+" Se ha cancelado la descarga actual, %sinterrumpa con (ctrl-c) nuevamente%s dentro de %s%s%s segundos\n"
+"para finalizar.\n"
+
+#: ../output.py:1152
+msgid "user interrupt"
+msgstr "interrupción solicitada por el usuario"
+
+#: ../output.py:1168
+msgid "Total"
+msgstr "Total"
+
+#: ../output.py:1183
+msgid "installed"
+msgstr "instalado"
+
+#: ../output.py:1184
+msgid "updated"
+msgstr "actualizado"
+
+#: ../output.py:1185
+msgid "obsoleted"
+msgstr "obsoleto"
+
+#: ../output.py:1186
+msgid "erased"
+msgstr "eliminado"
+
+#: ../output.py:1190
+#, python-format
+msgid "---> Package %s.%s %s:%s-%s set to be %s"
+msgstr "---> Paquete %s.%s %s:%s-%s definido para ser %s"
+
+#: ../output.py:1197
+msgid "--> Running transaction check"
+msgstr "--> Ejecutando prueba de transacción"
+
+#: ../output.py:1202
+msgid "--> Restarting Dependency Resolution with new changes."
+msgstr "--> Reiniciando la resolución de las dependencias con las nuevas modificaciones."
+
+#: ../output.py:1207
+msgid "--> Finished Dependency Resolution"
+msgstr "--> Resolución de dependencias finalizada"
+
+#: ../output.py:1212
+#: ../output.py:1217
+#, python-format
+msgid "--> Processing Dependency: %s for package: %s"
+msgstr "--> Procesando dependencias: %s para el paquete: %s"
+
+#: ../output.py:1221
+#, python-format
+msgid "--> Unresolved Dependency: %s"
+msgstr "--> Dependencia no resuelta: %s"
+
+#: ../output.py:1227
+#: ../output.py:1232
+#, python-format
+msgid "--> Processing Conflict: %s conflicts %s"
+msgstr "--> Procesando conflictos: %s choca con %s"
+
+#: ../output.py:1236
+msgid "--> Populating transaction set with selected packages. Please wait."
+msgstr "--> Construyendo el conjunto de las transacciones con los paquetes seleccionados. Por favor aguarde."
+
+#: ../output.py:1240
+#, python-format
+msgid "---> Downloading header for %s to pack into transaction set."
+msgstr "---> Descargando el encabezado de %s para incluirlo en el conjunto de transacciones."
+
+#: ../yumcommands.py:40
+msgid "You need to be root to perform this command."
+msgstr "Necesita ser usuario root para poder ejecutar este comando."
+
+#: ../yumcommands.py:47
+msgid ""
+"\n"
+"You have enabled checking of packages via GPG keys. This is a good thing. \n"
+"However, you do not have any GPG public keys installed. You need to download\n"
+"the keys for packages you wish to install and install them.\n"
+"You can do that by running the command:\n"
+"    rpm --import public.gpg.key\n"
+"\n"
+"\n"
+"Alternatively you can specify the url to the key you would like to use\n"
+"for a repository in the 'gpgkey' option in a repository section and yum \n"
+"will install it for you.\n"
+"\n"
+"For more information contact your distribution or package provider.\n"
+msgstr ""
+"\n"
+"Usted tiene habilitada la verificación de paquetes mediante llaves GPG. Eso es bueno. \n"
+"Sin embargo, usted no tiene ninguna llave pública GPG instalada. Necesita descargar\n"
+"e instalar las llaves de todos los paquetes que desee instalar.\n"
+"Esto puede hacerlo si ejecuta el comando:\n"
+"    rpm --import public.gpg.key\n"
+"\n"
+"\n"
+"También puede indicar la url de la llave del repositorio que desee utilizar\n"
+"en la opción 'gpgkey' en la sección del repositorio, y yum \n"
+"la instalará por usted.\n"
+"\n"
+"Para obtener mayor información, póngase en contacto con su distribución o con su proveedor de paquetes.\n"
+
+#: ../yumcommands.py:67
+#, python-format
+msgid "Error: Need to pass a list of pkgs to %s"
+msgstr "Error: Necesita pasar una lista de paquetes a %s "
+
+#: ../yumcommands.py:73
+msgid "Error: Need an item to match"
+msgstr "Error: Es necesario un ítem con el cual corresponderse"
+
+#: ../yumcommands.py:79
+msgid "Error: Need a group or list of groups"
+msgstr "Error: Es necesario un grupo o una lista de grupos"
+
+#: ../yumcommands.py:88
+#, python-format
+msgid "Error: clean requires an option: %s"
+msgstr "Error: la limpieza necesita una opción: %s"
+
+#: ../yumcommands.py:93
+#, python-format
+msgid "Error: invalid clean argument: %r"
+msgstr "Error: argumento de limpieza no válido: %r"
+
+#: ../yumcommands.py:106
+msgid "No argument to shell"
+msgstr "No hay argumento para el shell"
+
+#: ../yumcommands.py:108
+#, python-format
+msgid "Filename passed to shell: %s"
+msgstr "Nombre de archivo pasado al shell: %s"
+
+#: ../yumcommands.py:112
+#, python-format
+msgid "File %s given as argument to shell does not exist."
+msgstr "El archivo %s indicado como argumento para el shell no existe."
+
+#: ../yumcommands.py:118
+msgid "Error: more than one file given as argument to shell."
+msgstr "Error: se ha indicado más de un archivo como argumento para el shell"
+
+#: ../yumcommands.py:167
+msgid "PACKAGE..."
+msgstr "PAQUETE..."
+
+#: ../yumcommands.py:170
+msgid "Install a package or packages on your system"
+msgstr "Instala uno o varios paquetes en su sistema"
+
+#: ../yumcommands.py:178
+msgid "Setting up Install Process"
+msgstr "Configurando el proceso de instalación"
+
+#: ../yumcommands.py:189
+msgid "[PACKAGE...]"
+msgstr "[PAQUETE...]"
+
+#: ../yumcommands.py:192
+msgid "Update a package or packages on your system"
+msgstr "Actualiza uno o varios paquetes en su sistema"
+
+#: ../yumcommands.py:199
+msgid "Setting up Update Process"
+msgstr "Configurando el proceso de actualización"
+
+#: ../yumcommands.py:244
+msgid "Display details about a package or group of packages"
+msgstr "Muestra detalles acerca de un paquete o de un grupo de paquetes"
+
+#: ../yumcommands.py:293
+msgid "Installed Packages"
+msgstr "Paquetes instalados"
+
+#: ../yumcommands.py:301
+msgid "Available Packages"
+msgstr "Paquetes disponibles"
+
+#: ../yumcommands.py:305
+msgid "Extra Packages"
+msgstr "Paquetes extra"
+
+#: ../yumcommands.py:309
+msgid "Updated Packages"
+msgstr "Paquetes actualizados"
+
+#. This only happens in verbose mode
+#: ../yumcommands.py:317
+#: ../yumcommands.py:324
+#: ../yumcommands.py:600
+msgid "Obsoleting Packages"
+msgstr "Convirtiendo paquetes en obsoletos"
+
+#: ../yumcommands.py:326
+msgid "Recently Added Packages"
+msgstr "Paquetes añadidos recientemente"
+
+#: ../yumcommands.py:333
+msgid "No matching Packages to list"
+msgstr "No hay paquetes que se correspondan con la lista"
+
+#: ../yumcommands.py:347
+msgid "List a package or groups of packages"
+msgstr "Muestra un paquete o grupos de paquete"
+
+#: ../yumcommands.py:359
+msgid "Remove a package or packages from your system"
+msgstr "Elimina uno o varios paquetes de su sistema"
+
+#: ../yumcommands.py:366
+msgid "Setting up Remove Process"
+msgstr "Configurando el proceso de eliminación"
+
+#: ../yumcommands.py:380
+msgid "Setting up Group Process"
+msgstr "Configurando el proceso de grupo"
+
+#: ../yumcommands.py:386
+msgid "No Groups on which to run command"
+msgstr "No existen grupos sobre los cuales ejecutar el comando"
+
+#: ../yumcommands.py:399
+msgid "List available package groups"
+msgstr "Muestra los grupos de paquetes disponibles"
+
+#: ../yumcommands.py:416
+msgid "Install the packages in a group on your system"
+msgstr "Instala los paquetes en un grupo de su sistema"
+
+#: ../yumcommands.py:438
+msgid "Remove the packages in a group from your system"
+msgstr "Elimina los paquetes de un grupo de su sistema"
+
+#: ../yumcommands.py:465
+msgid "Display details about a package group"
+msgstr "Muestra detalles acerca de un grupo de paquetes"
+
+#: ../yumcommands.py:489
+msgid "Generate the metadata cache"
+msgstr "Genera el caché de metadatos"
+
+#: ../yumcommands.py:495
+msgid "Making cache files for all metadata files."
+msgstr "Creando los archivos de caché para todos los archivos de metadatos."
+
+#: ../yumcommands.py:496
+msgid "This may take a while depending on the speed of this computer"
+msgstr "Esto podría demorar algún tiempo, dependiendo de la velocidad de su equipo"
+
+#: ../yumcommands.py:517
+msgid "Metadata Cache Created"
+msgstr "Se ha creado el caché de metadatos"
+
+#: ../yumcommands.py:531
+msgid "Remove cached data"
+msgstr "Elimina los datos del caché"
+
+#: ../yumcommands.py:551
+msgid "Find what package provides the given value"
+msgstr "Localiza el paquete que ofrezca el valor indicado"
+
+#: ../yumcommands.py:571
+msgid "Check for available package updates"
+msgstr "Verifica la existencia de actualizaciones de paquetes"
+
+#: ../yumcommands.py:620
+msgid "Search package details for the given string"
+msgstr "Busca detalles en los paquetes para la cadena indicada"
+
+#: ../yumcommands.py:626
+msgid "Searching Packages: "
+msgstr "Buscando paquetes:"
+
+#: ../yumcommands.py:643
+msgid "Update packages taking obsoletes into account"
+msgstr "Actualiza los paquetes tomando en cuenta los obsoletos"
+
+#: ../yumcommands.py:651
+msgid "Setting up Upgrade Process"
+msgstr "Configurando el proceso de actualización"
+
+#: ../yumcommands.py:665
+msgid "Install a local RPM"
+msgstr "Instala un RPM local"
+
+#: ../yumcommands.py:673
+msgid "Setting up Local Package Process"
+msgstr "Configurando el proceso de instalación local de paquetes"
+
+#: ../yumcommands.py:692
+msgid "Determine which package provides the given dependency"
+msgstr "Determina qué paquetes ofrecen la dependencia indicada"
+
+#: ../yumcommands.py:695
+msgid "Searching Packages for Dependency:"
+msgstr "Buscando paquetes para la dependencia:"
+
+#: ../yumcommands.py:709
+msgid "Run an interactive yum shell"
+msgstr "Ejecuta una shell de Yum interactiva "
+
+#: ../yumcommands.py:715
+msgid "Setting up Yum Shell"
+msgstr "Configurando la shell de Yum"
+
+#: ../yumcommands.py:733
+msgid "List a package's dependencies"
+msgstr "Muestra las dependencias que necesita un paquete"
+
+#: ../yumcommands.py:739
+msgid "Finding dependencies: "
+msgstr "Buscando dependencias:"
+
+#: ../yumcommands.py:755
+msgid "Display the configured software repositories"
+msgstr "Muestra los repositorios de software configurados"
+
+#: ../yumcommands.py:803
+#: ../yumcommands.py:804
+msgid "enabled"
+msgstr "habilitado"
+
+#: ../yumcommands.py:812
+#: ../yumcommands.py:813
+msgid "disabled"
+msgstr "deshabilitado"
+
+#: ../yumcommands.py:827
+msgid "Repo-id      : "
+msgstr "Repo-id      : "
+
+#: ../yumcommands.py:828
+msgid "Repo-name    : "
+msgstr "Repo-name    : "
+
+#: ../yumcommands.py:829
+msgid "Repo-status  : "
+msgstr "Repo-status  : "
+
+#: ../yumcommands.py:831
+msgid "Repo-revision: "
+msgstr "Repo-revision: "
+
+#: ../yumcommands.py:835
+msgid "Repo-tags    : "
+msgstr "Repo-tags    : "
+
+#: ../yumcommands.py:841
+msgid "Repo-distro-tags: "
+msgstr "Repo-distro-tags: "
+
+#: ../yumcommands.py:846
+msgid "Repo-updated : "
+msgstr "Repo-updated : "
+
+#: ../yumcommands.py:848
+msgid "Repo-pkgs    : "
+msgstr "Repo-pkgs    : "
+
+#: ../yumcommands.py:849
+msgid "Repo-size    : "
+msgstr "Repo-size    : "
+
+#: ../yumcommands.py:856
+msgid "Repo-baseurl : "
+msgstr "Repo-baseurl : "
+
+#: ../yumcommands.py:864
+msgid "Repo-metalink: "
+msgstr "Repo-metalink: "
+
+#: ../yumcommands.py:868
+msgid "  Updated    : "
+msgstr "  Actualizados    : "
+
+#: ../yumcommands.py:871
+msgid "Repo-mirrors : "
+msgstr "Repo-mirrors : "
+
+#: ../yumcommands.py:875
+#: ../yummain.py:131
+msgid "Unknown"
+msgstr "Desconocido"
+
+#: ../yumcommands.py:881
+#, python-format
+msgid "Never (last: %s)"
+msgstr "Nunca (último: %s)"
+
+#: ../yumcommands.py:883
+#, python-format
+msgid "Instant (last: %s)"
+msgstr "Instante (último: %s)"
+
+#: ../yumcommands.py:886
+#, python-format
+msgid "%s second(s) (last: %s)"
+msgstr "%s segundo(s) (último: %s)"
+
+#: ../yumcommands.py:888
+msgid "Repo-expire  : "
+msgstr "Repo-expire  : "
+
+#: ../yumcommands.py:891
+msgid "Repo-exclude : "
+msgstr "Repo-exclude : "
+
+#: ../yumcommands.py:895
+msgid "Repo-include : "
+msgstr "Repo-include : "
+
+#. Work out the first (id) and last (enabled/disalbed/count),
+#. then chop the middle (name)...
+#: ../yumcommands.py:905
+#: ../yumcommands.py:931
+msgid "repo id"
+msgstr "id del repositorio"
+
+#: ../yumcommands.py:919
+#: ../yumcommands.py:920
+#: ../yumcommands.py:934
+msgid "status"
+msgstr "estado"
+
+#: ../yumcommands.py:932
+msgid "repo name"
+msgstr "nombre del repositorio"
+
+#: ../yumcommands.py:958
+msgid "Display a helpful usage message"
+msgstr "Muestra un mensaje de ayuda del uso"
+
+#: ../yumcommands.py:992
+#, python-format
+msgid "No help available for %s"
+msgstr "No existe asistencia disponible para %s"
+
+#: ../yumcommands.py:997
+msgid ""
+"\n"
+"\n"
+"aliases: "
+msgstr ""
+"\n"
+"\n"
+"apodos: "
+
+#: ../yumcommands.py:999
+msgid ""
+"\n"
+"\n"
+"alias: "
+msgstr ""
+"\n"
+"\n"
+"apodo: "
+
+#: ../yumcommands.py:1027
+msgid "Setting up Reinstall Process"
+msgstr "Configurando el proceso de reinstalación"
+
+#: ../yumcommands.py:1035
+msgid "reinstall a package"
+msgstr "reinstalar un paquete"
+
+#: ../yumcommands.py:1053
+msgid "Setting up Downgrade Process"
+msgstr "Configurando el proceso de desactualización"
+
+#: ../yumcommands.py:1060
+msgid "downgrade a package"
+msgstr "desactualizar un paquete a una versión anterior"
+
+#: ../yumcommands.py:1074
+msgid "Display a version for the machine and/or available repos."
+msgstr "Muestra una versión para la máquina y/o los repositorios disponibles."
+
+#: ../yumcommands.py:1101
+msgid "Installed:"
+msgstr "Instalado:"
+
+#: ../yumcommands.py:1110
+msgid "Available:"
+msgstr "Disponible:"
+
+#: ../yummain.py:42
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel"
+msgstr ""
+"\n"
+"\n"
+"Saliendo por cancelación del usuario"
+
+#: ../yummain.py:48
+msgid ""
+"\n"
+"\n"
+"Exiting on Broken Pipe"
+msgstr ""
+"\n"
+"\n"
+"Saliendo por tubería rota"
+
+#: ../yummain.py:126
+msgid "Running"
+msgstr "Ejecutando"
+
+#: ../yummain.py:127
+msgid "Sleeping"
+msgstr "Durmiendo"
+
+#: ../yummain.py:128
+msgid "Uninteruptable"
+msgstr "Ininterrumplible"
+
+#: ../yummain.py:129
+msgid "Zombie"
+msgstr "Zombi"
+
+#: ../yummain.py:130
+msgid "Traced/Stopped"
+msgstr "Rastreado/Detenido"
+
+#: ../yummain.py:135
+msgid "  The other application is: PackageKit"
+msgstr "  La otra aplicación es: PackageKit"
+
+#: ../yummain.py:137
+#, python-format
+msgid "  The other application is: %s"
+msgstr "  La otra aplicación es: %s"
+
+#: ../yummain.py:140
+#, python-format
+msgid "    Memory : %5s RSS (%5sB VSZ)"
+msgstr "    Memoria : %5s RSS (%5sB VSZ)"
+
+#: ../yummain.py:144
+#, python-format
+msgid "    Started: %s - %s ago"
+msgstr "    Iniciado: %s - %s atrás"
+
+#: ../yummain.py:146
+#, python-format
+msgid "    State  : %s, pid: %d"
+msgstr "    Estado  : %s, pid: %d"
+
+#: ../yummain.py:171
+msgid "Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr "Otra aplicación tiene retenido el bloqueo de Yum; esperándolo para salir... "
+
+#: ../yummain.py:199
+#: ../yummain.py:238
+#, python-format
+msgid "Error: %s"
+msgstr "Error: %s"
+
+#: ../yummain.py:209
+#: ../yummain.py:251
+#, python-format
+msgid "Unknown Error(s): Exit Code: %d:"
+msgstr "Error(es) desconocido(s): Código de salida: %d:"
+
+#. Depsolve stage
+#: ../yummain.py:216
+msgid "Resolving Dependencies"
+msgstr "Resolviendo dependencias"
+
+#: ../yummain.py:240
+msgid " You could try using --skip-broken to work around the problem"
+msgstr " Podría intentar utilizar el comando --skip-broken para sortear el problema"
+
+#: ../yummain.py:241
+msgid ""
+" You could try running: package-cleanup --problems\n"
+"                        package-cleanup --dupes\n"
+"                        rpm -Va --nofiles --nodigest"
+msgstr ""
+" Podría intentar ejecutar: package-cleanup --problems\n"
+"                        package-cleanup --dupes\n"
+"                        rpm -Va --nofiles --nodigest"
+
+#: ../yummain.py:257
+msgid ""
+"\n"
+"Dependencies Resolved"
+msgstr ""
+"\n"
+"Dependencias resueltas"
+
+#: ../yummain.py:271
+msgid "Complete!"
+msgstr "¡Listo!"
+
+#: ../yummain.py:318
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel."
+msgstr ""
+"\n"
+"\n"
+"Saliendo por cancelación del usuario."
+
+#: ../yum/depsolve.py:83
+msgid "doTsSetup() will go away in a future version of Yum.\n"
+msgstr "doTsSetup() desaparecerá en alguna versión posterior de Yum.\n"
+
+#: ../yum/depsolve.py:98
+msgid "Setting up TransactionSets before config class is up"
+msgstr "Configurando TransactionSets antes de la activación de clase de configuración"
+
+#: ../yum/depsolve.py:149
+#, python-format
+msgid "Invalid tsflag in config file: %s"
+msgstr "tsflag no válido en el archivo de configuración: %s"
+
+#: ../yum/depsolve.py:160
+#, python-format
+msgid "Searching pkgSack for dep: %s"
+msgstr "Buscando pkgSack para la dependencia: %s"
+
+#: ../yum/depsolve.py:183
+#, python-format
+msgid "Potential match for %s from %s"
+msgstr "Posible correspondencia para %s desde %s"
+
+#: ../yum/depsolve.py:191
+#, python-format
+msgid "Matched %s to require for %s"
+msgstr "Se ha encontrado %s para poder solicitar %s"
+
+#: ../yum/depsolve.py:232
+#, python-format
+msgid "Member: %s"
+msgstr "Miembro: %s"
+
+#: ../yum/depsolve.py:246
+#: ../yum/depsolve.py:756
+#, python-format
+msgid "%s converted to install"
+msgstr "%s convertido para instalar"
+
+#: ../yum/depsolve.py:253
+#, python-format
+msgid "Adding Package %s in mode %s"
+msgstr "Agregando paquete %s en modo %s"
+
+#: ../yum/depsolve.py:263
+#, python-format
+msgid "Removing Package %s"
+msgstr "Eliminando paquete %s"
+
+#: ../yum/depsolve.py:285
+#, python-format
+msgid "%s requires: %s"
+msgstr "%s necesita: %s"
+
+#: ../yum/depsolve.py:343
+msgid "Needed Require has already been looked up, cheating"
+msgstr "El requerimiento que se necesita ya fue buscado, haciendo trampa"
+
+#: ../yum/depsolve.py:353
+#, python-format
+msgid "Needed Require is not a package name. Looking up: %s"
+msgstr "El requerimiento necesitado no es un nombre de paquete. Buscando: %s"
+
+#: ../yum/depsolve.py:360
+#, python-format
+msgid "Potential Provider: %s"
+msgstr "Proveedor posible: %s"
+
+#: ../yum/depsolve.py:383
+#, python-format
+msgid "Mode is %s for provider of %s: %s"
+msgstr "El modo es %s para el proveedor de %s: %s"
+
+#: ../yum/depsolve.py:387
+#, python-format
+msgid "Mode for pkg providing %s: %s"
+msgstr "Modo para el paquete que ofrece %s: %s"
+
+#: ../yum/depsolve.py:391
+#, python-format
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: el paquete %s que necesita %s ha sido marcado para eliminarse"
+
+#: ../yum/depsolve.py:404
+#, python-format
+msgid "TSINFO: Obsoleting %s with %s to resolve dep."
+msgstr "TSINFO: Transformando a %s en obsoleto utilizando %s para resolver la dependencia."
+
+#: ../yum/depsolve.py:407
+#, python-format
+msgid "TSINFO: Updating %s to resolve dep."
+msgstr "TSINFO: Actualizando %s para resolver la dependencia."
+
+#: ../yum/depsolve.py:415
+#, python-format
+msgid "Cannot find an update path for dep for: %s"
+msgstr "No es posible encontrar un camino de actualización para la dependencia para: %s"
+
+#: ../yum/depsolve.py:425
+#, python-format
+msgid "Unresolvable requirement %s for %s"
+msgstr "Requerimiento %s irresoluble para %s"
+
+#: ../yum/depsolve.py:448
+#, python-format
+msgid "Quick matched %s to require for %s"
+msgstr "Rápidamente se ha localizado %s al ser requerido por %s"
+
+#. is it already installed?
+#: ../yum/depsolve.py:490
+#, python-format
+msgid "%s is in providing packages but it is already installed, removing."
+msgstr "%s se encuentra entre los paquetes provistos, pero ya está instalado, eliminando. "
+
+#: ../yum/depsolve.py:506
+#, python-format
+msgid "Potential resolving package %s has newer instance in ts."
+msgstr "El paquete de solución posible %s posee una nueva instancia en ts."
+
+#: ../yum/depsolve.py:517
+#, python-format
+msgid "Potential resolving package %s has newer instance installed."
+msgstr "El paquete de solución posible %s posee una nueva instancia ya instalada."
+
+#: ../yum/depsolve.py:525
+#: ../yum/depsolve.py:571
+#, python-format
+msgid "Missing Dependency: %s is needed by package %s"
+msgstr "No se encuentra una dependencia: es necesario %s para poder instalar el paquete %s"
+
+#: ../yum/depsolve.py:538
+#, python-format
+msgid "%s already in ts, skipping this one"
+msgstr "%s ya se encuentra en ts, ignorándolo"
+
+#: ../yum/depsolve.py:581
+#, python-format
+msgid "TSINFO: Marking %s as update for %s"
+msgstr "TSINFO: Seleccionado %s como actualización de %s"
+
+#: ../yum/depsolve.py:589
+#, python-format
+msgid "TSINFO: Marking %s as install for %s"
+msgstr "TSINFO: Seleccionando %s como una instalación para %s"
+
+#: ../yum/depsolve.py:692
+#: ../yum/depsolve.py:774
+msgid "Success - empty transaction"
+msgstr "Exito - transacción vacía"
+
+#: ../yum/depsolve.py:731
+#: ../yum/depsolve.py:746
+msgid "Restarting Loop"
+msgstr "Reiniciando el bucle"
+
+#: ../yum/depsolve.py:762
+msgid "Dependency Process ending"
+msgstr "Finalizando el proceso de dependencias"
+
+#: ../yum/depsolve.py:768
+#, python-format
+msgid "%s from %s has depsolving problems"
+msgstr "%s desde %s tiene problemas de resolución de dependencias"
+
+#: ../yum/depsolve.py:775
+msgid "Success - deps resolved"
+msgstr "Exito - dependencias resueltas"
+
+#: ../yum/depsolve.py:789
+#, python-format
+msgid "Checking deps for %s"
+msgstr "Verificando dependencias para %s"
+
+#: ../yum/depsolve.py:872
+#, python-format
+msgid "looking for %s as a requirement of %s"
+msgstr "localizando a %s como un requerimiento de %s"
+
+#: ../yum/depsolve.py:1014
+#, python-format
+msgid "Running compare_providers() for %s"
+msgstr "Ejecutando compare_providers() para %s"
+
+#: ../yum/depsolve.py:1048
+#: ../yum/depsolve.py:1054
+#, python-format
+msgid "better arch in po %s"
+msgstr "mejor arquitectura en po %s"
+
+#: ../yum/depsolve.py:1140
+#, python-format
+msgid "%s obsoletes %s"
+msgstr "%s hace obsoleto a %s"
+
+#: ../yum/depsolve.py:1152
+#, python-format
+msgid ""
+"archdist compared %s to %s on %s\n"
+"  Winner: %s"
+msgstr ""
+"archdist comparó %s con %s en %s\n"
+"  Vencedor: %s"
+
+#: ../yum/depsolve.py:1159
+#, python-format
+msgid "common sourcerpm %s and %s"
+msgstr "sourcerpm común %s y %s"
+
+#: ../yum/depsolve.py:1165
+#, python-format
+msgid "common prefix of %s between %s and %s"
+msgstr "prefijo común de %s entre %s y %s"
+
+#: ../yum/depsolve.py:1173
+#, python-format
+msgid "Best Order: %s"
+msgstr "Mejor orden: %s"
+
+#: ../yum/__init__.py:180
+msgid "doConfigSetup() will go away in a future version of Yum.\n"
+msgstr "doConfigSetup() desaparecerá en alguna versión posterior de Yum.\n"
+
+#: ../yum/__init__.py:401
+#, python-format
+msgid "Repository %r is missing name in configuration, using id"
+msgstr "Al repositorio %r le falta un nombre en su configuración, utilizando el id"
+
+#: ../yum/__init__.py:439
+msgid "plugins already initialised"
+msgstr "los complementos ya se encuentran inicializados"
+
+#: ../yum/__init__.py:446
+msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
+msgstr "doRpmDBSetup() desaparecerá en alguna versión posterior de Yum.\n"
+
+#: ../yum/__init__.py:457
+msgid "Reading Local RPMDB"
+msgstr "Leyendo RPDMDB local"
+
+#: ../yum/__init__.py:478
+msgid "doRepoSetup() will go away in a future version of Yum.\n"
+msgstr "doRepoSetup() desaparecerá en alguna versión posterior de Yum.\n"
+
+#: ../yum/__init__.py:498
+msgid "doSackSetup() will go away in a future version of Yum.\n"
+msgstr "doSackSetup() desaparecerá en alguna versión posterior de Yum.\n"
+
+#: ../yum/__init__.py:528
+msgid "Setting up Package Sacks"
+msgstr "Configurando sacos de paquetes"
+
+#: ../yum/__init__.py:573
+#, python-format
+msgid "repo object for repo %s lacks a _resetSack method\n"
+msgstr "el objeto del repositorio para el repositorio %s necesita de un método a _resetSack\n"
+
+#: ../yum/__init__.py:574
+msgid "therefore this repo cannot be reset.\n"
+msgstr "por lo tanto, este repositorio no puede ser restaurado.\n"
+
+#: ../yum/__init__.py:579
+msgid "doUpdateSetup() will go away in a future version of Yum.\n"
+msgstr "doUpdateSetup() desaparecerá en alguna versión posterior de Yum.\n"
+
+#: ../yum/__init__.py:591
+msgid "Building updates object"
+msgstr "Construyendo objeto de actualizaciones"
+
+#: ../yum/__init__.py:626
+msgid "doGroupSetup() will go away in a future version of Yum.\n"
+msgstr "doGroupSetup() desaparecerá en alguna versión posterior de Yum.\n"
+
+#: ../yum/__init__.py:651
+msgid "Getting group metadata"
+msgstr "Obteniendo metadatos de grupo"
+
+#: ../yum/__init__.py:677
+#, python-format
+msgid "Adding group file from repository: %s"
+msgstr "Agregando archivo de grupos desde el repositorio: %s"
+
+#: ../yum/__init__.py:686
+#, python-format
+msgid "Failed to add groups file for repository: %s - %s"
+msgstr "Falló al agregarse el archivo de grupos desde el repositorio: %s - %s"
+
+#: ../yum/__init__.py:692
+msgid "No Groups Available in any repository"
+msgstr "No hay grupos disponibles en ningún repositorio"
+
+#: ../yum/__init__.py:742
+msgid "Importing additional filelist information"
+msgstr "Importando información adicional de listas de archivo"
+
+#: ../yum/__init__.py:756
+#, python-format
+msgid "The program %s%s%s is found in the yum-utils package."
+msgstr "El programa %s%s%s se encuentra en el paquete yum-utils."
+
+#: ../yum/__init__.py:764
+msgid "There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them."
+msgstr "Existen transacciones restantes no finalizadas. Podría considerar primero ejecutar el comando yum-complete-transaction, de modo de poder finalizarlas."
+
+#: ../yum/__init__.py:832
+#, python-format
+msgid "Skip-broken round %i"
+msgstr "Etapa %i ignorando dependencias rotas"
+
+#: ../yum/__init__.py:884
+#, python-format
+msgid "Skip-broken took %i rounds "
+msgstr "El proceso de ignorar dependencias rotas llevó %i vueltas"
+
+#: ../yum/__init__.py:885
+msgid ""
+"\n"
+"Packages skipped because of dependency problems:"
+msgstr ""
+"\n"
+"Paquetes ignorados por problemas de dependencias:"
+
+#: ../yum/__init__.py:889
+#, python-format
+msgid "    %s from %s"
+msgstr "    %s de %s"
+
+#: ../yum/__init__.py:1027
+msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr "Aviso: scriptlet o algún otro tipo de error no fatal ha ocurrido durante la transacción."
+
+#: ../yum/__init__.py:1042
+#, python-format
+msgid "Failed to remove transaction file %s"
+msgstr "Falló al eliminar archivo de transacción %s"
+
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1071
+#, python-format
+msgid "%s was supposed to be installed but is not!"
+msgstr "¡se suponía que %s estuviera instalado, pero no lo está! "
+
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1110
+#, python-format
+msgid "%s was supposed to be removed but is not!"
+msgstr "¡se suponía que %s estuviera eliminado, pero no lo está! "
+
+#. Whoa. What the heck happened?
+#: ../yum/__init__.py:1225
+#, python-format
+msgid "Unable to check if PID %s is active"
+msgstr "No es posible verificar si se encuentra activo el PID %s"
+
+#. Another copy seems to be running.
+#: ../yum/__init__.py:1229
+#, python-format
+msgid "Existing lock %s: another copy is running as pid %s."
+msgstr "Bloqueo existente en %s: otra copia se encuentra en ejecución como pid %s."
+
+#: ../yum/__init__.py:1306
+msgid "Package does not match intended download"
+msgstr "El paquete no se corresponde con la descarga pretendida"
+
+#: ../yum/__init__.py:1321
+msgid "Could not perform checksum"
+msgstr "No se pudo realizar una suma de verificación"
+
+#: ../yum/__init__.py:1324
+msgid "Package does not match checksum"
+msgstr "El paquete no se corresponde con la suma de verificación"
+
+#: ../yum/__init__.py:1366
+#, python-format
+msgid "package fails checksum but caching is enabled for %s"
+msgstr "el paquete no ha superado la suma de verificación, pero el caché se encuentra habilitado para %s"
+
+#: ../yum/__init__.py:1369
+#: ../yum/__init__.py:1398
+#, python-format
+msgid "using local copy of %s"
+msgstr "utilizando una copia local de %s"
+
+#: ../yum/__init__.py:1410
+#, python-format
+msgid ""
+"Insufficient space in download directory %s\n"
+"    * free   %s\n"
+"    * needed %s"
+msgstr ""
+"Espacio insuficiente en el directorio de descarga %s\n"
+"    * libre   %s\n"
+"    * necesario %s"
+
+#: ../yum/__init__.py:1459
+msgid "Header is not complete."
+msgstr "El encabezado no está completo."
+
+#: ../yum/__init__.py:1496
+#, python-format
+msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
+msgstr "El encabezado no se encuentra en el caché local, y está habilitado el modo de solo cacheo. No es posible descargar %s"
+
+#: ../yum/__init__.py:1551
+#, python-format
+msgid "Public key for %s is not installed"
+msgstr "No se ha instalado la llave pública de %s "
+
+#: ../yum/__init__.py:1555
+#, python-format
+msgid "Problem opening package %s"
+msgstr "Problemas abriendo el paquete %s"
+
+#: ../yum/__init__.py:1563
+#, python-format
+msgid "Public key for %s is not trusted"
+msgstr "La llave pública de %s no es confiable"
+
+#: ../yum/__init__.py:1567
+#, python-format
+msgid "Package %s is not signed"
+msgstr "El paquete %s no está firmado"
+
+#: ../yum/__init__.py:1605
+#, python-format
+msgid "Cannot remove %s"
+msgstr "No es posible eliminar %s"
+
+#: ../yum/__init__.py:1609
+#, python-format
+msgid "%s removed"
+msgstr "%s eliminado"
+
+#: ../yum/__init__.py:1645
+#, python-format
+msgid "Cannot remove %s file %s"
+msgstr "No es posible eliminar %s archivo %s"
+
+#: ../yum/__init__.py:1649
+#, python-format
+msgid "%s file %s removed"
+msgstr "%s archivo %s eliminado"
+
+#: ../yum/__init__.py:1651
+#, python-format
+msgid "%d %s files removed"
+msgstr "%d %s archivos eliminados"
+
+#: ../yum/__init__.py:1720
+#, python-format
+msgid "More than one identical match in sack for %s"
+msgstr "Más de una correspondencia exacta en el saco para %s"
+
+#: ../yum/__init__.py:1726
+#, python-format
+msgid "Nothing matches %s.%s %s:%s-%s from update"
+msgstr "Nada se corresponde con %s.%s %s:%s-%s desde la actualización"
+
+#: ../yum/__init__.py:1959
+msgid "searchPackages() will go away in a future version of Yum.                      Use searchGenerator() instead. \n"
+msgstr "searchPackages() desaparecerá en alguna versión próxima de Yum. En su lugar utilice searchGenerator(). \n"
+
+#: ../yum/__init__.py:2001
+#, python-format
+msgid "Searching %d packages"
+msgstr "Buscando %d paquetes"
+
+#: ../yum/__init__.py:2005
+#, python-format
+msgid "searching package %s"
+msgstr "buscando paquete %s"
+
+#: ../yum/__init__.py:2017
+msgid "searching in file entries"
+msgstr "buscando en las entradas de archivo"
+
+#: ../yum/__init__.py:2024
+msgid "searching in provides entries"
+msgstr "buscando en las entradas \"provee\""
+
+#: ../yum/__init__.py:2057
+#, python-format
+msgid "Provides-match: %s"
+msgstr "Lo que se ha indicado combina con: %s"
+
+#: ../yum/__init__.py:2106
+msgid "No group data available for configured repositories"
+msgstr "No existen datos de grupo disponibles en los repositorios configurados"
+
+#: ../yum/__init__.py:2137
+#: ../yum/__init__.py:2156
+#: ../yum/__init__.py:2187
+#: ../yum/__init__.py:2193
+#: ../yum/__init__.py:2272
+#: ../yum/__init__.py:2276
+#: ../yum/__init__.py:2581
+#, python-format
+msgid "No Group named %s exists"
+msgstr "No existe un grupo denominado %s"
+
+#: ../yum/__init__.py:2168
+#: ../yum/__init__.py:2289
+#, python-format
+msgid "package %s was not marked in group %s"
+msgstr "el paquete %s no fue marcado en el grupo %s"
+
+#: ../yum/__init__.py:2215
+#, python-format
+msgid "Adding package %s from group %s"
+msgstr "Agregando paquete %s del grupo %s"
+
+#: ../yum/__init__.py:2219
+#, python-format
+msgid "No package named %s available to be installed"
+msgstr "No existe un paquete denominado %s disponible para ser instalado"
+
+#: ../yum/__init__.py:2316
+#, python-format
+msgid "Package tuple %s could not be found in packagesack"
+msgstr "La tupla %s de paquetes no pudo ser encontrada en el saco de paquetes"
+
+#: ../yum/__init__.py:2330
+msgid "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr "getInstalledPackageObject() desaparecerá en alguna versión próxima de Yum, utilice en su lugar self.rpmdb.searchPkgTuple().\n"
+
+#: ../yum/__init__.py:2386
+#: ../yum/__init__.py:2431
+msgid "Invalid version flag"
+msgstr "Marca de versión no válida"
+
+#: ../yum/__init__.py:2401
+#: ../yum/__init__.py:2406
+#, python-format
+msgid "No Package found for %s"
+msgstr "No se ha encontrado ningún paquete para %s"
+
+#: ../yum/__init__.py:2614
+msgid "Package Object was not a package object instance"
+msgstr "El objeto de paquete no era una instancia de objeto de paquete"
+
+#: ../yum/__init__.py:2618
+msgid "Nothing specified to install"
+msgstr "No se ha indicado nada para instalar"
+
+#: ../yum/__init__.py:2634
+#: ../yum/__init__.py:3377
+#, python-format
+msgid "Checking for virtual provide or file-provide for %s"
+msgstr "Verificando la provision virtual o provision de archivo de %s"
+
+#: ../yum/__init__.py:2640
+#: ../yum/__init__.py:2938
+#: ../yum/__init__.py:3105
+#: ../yum/__init__.py:3383
+#, python-format
+msgid "No Match for argument: %s"
+msgstr "No hay nada concordante con el argumento: %s"
+
+#: ../yum/__init__.py:2716
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "El paquete %s está instalado y no se encuentra disponible"
+
+#: ../yum/__init__.py:2719
+msgid "No package(s) available to install"
+msgstr "No existe(n) paquete(s) disponible(s) para instalar"
+
+#: ../yum/__init__.py:2731
+#, python-format
+msgid "Package: %s  - already in transaction set"
+msgstr "Paquete: %s - ya se encuentra en un conjunto de transacción"
+
+#: ../yum/__init__.py:2757
+#, python-format
+msgid "Package %s is obsoleted by %s which is already installed"
+msgstr "El paquete %s se hace obsoleto con %s, que ya se encuentra instalado"
+
+#: ../yum/__init__.py:2760
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr "El paquete %s se hace obsoleto con %s, en su lugar se está intentando instalar %s"
+
+#: ../yum/__init__.py:2768
+#, python-format
+msgid "Package %s already installed and latest version"
+msgstr "El paquete %s ya se encuentra instalado con su versión más reciente"
+
+#: ../yum/__init__.py:2782
+#, python-format
+msgid "Package matching %s already installed. Checking for update."
+msgstr "El paquete concordante con %s ya se encuentra instalado. Verificando si puede actualizarse."
+
+#. update everything (the easy case)
+#: ../yum/__init__.py:2871
+msgid "Updating Everything"
+msgstr "Actualizando todo"
+
+#: ../yum/__init__.py:2892
+#: ../yum/__init__.py:3003
+#: ../yum/__init__.py:3032
+#: ../yum/__init__.py:3059
+#, python-format
+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
+msgstr "Dejando sin actualizar el paquete que ya es obsoleto: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2927
+#: ../yum/__init__.py:3102
+#, python-format
+msgid "%s"
+msgstr "%s"
+
+#: ../yum/__init__.py:2994
+#, python-format
+msgid "Package is already obsoleted: %s.%s %s:%s-%s"
+msgstr "El paquete ya es obsoleto: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:3027
+#, python-format
+msgid "Not Updating Package that is obsoleted: %s"
+msgstr "Dejando sin actualizar el paquete que ya es obsoleto: %s"
+
+#: ../yum/__init__.py:3036
+#: ../yum/__init__.py:3063
+#, python-format
+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgstr "Dejando sin actualizar el paquete que ya se encuentra actualizado: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:3118
+msgid "No package matched to remove"
+msgstr "No hay paquete correspondiente para ser eliminado"
+
+#: ../yum/__init__.py:3152
+#: ../yum/__init__.py:3243
+#: ../yum/__init__.py:3332
+#, python-format
+msgid "Cannot open file: %s. Skipping."
+msgstr "No es posible abrir el archivo: %s. Ignorando."
+
+#: ../yum/__init__.py:3155
+#: ../yum/__init__.py:3246
+#: ../yum/__init__.py:3335
+#, python-format
+msgid "Examining %s: %s"
+msgstr "Examinando %s: %s"
+
+#: ../yum/__init__.py:3163
+#: ../yum/__init__.py:3249
+#: ../yum/__init__.py:3338
+#, python-format
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr "No es posible añadir el paquete %s a la transacción. La arquitectura no es compatible: %s"
+
+#: ../yum/__init__.py:3171
+#, python-format
+msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
+msgstr "El paquete %s no está instalado, no puede actualizarse. En su lugar, para instalarlo, ejecute el comando yum install."
+
+#: ../yum/__init__.py:3206
+#: ../yum/__init__.py:3260
+#: ../yum/__init__.py:3349
+#, python-format
+msgid "Excluding %s"
+msgstr "Excluyendo %s"
+
+#: ../yum/__init__.py:3211
+#, python-format
+msgid "Marking %s to be installed"
+msgstr "Marcando %s para ser instalado"
+
+#: ../yum/__init__.py:3217
+#, python-format
+msgid "Marking %s as an update to %s"
+msgstr "Marcando %s como una actualización de %s"
+
+#: ../yum/__init__.py:3224
+#, python-format
+msgid "%s: does not update installed package."
+msgstr "%s: no actualiza el paquete instalado."
+
+#: ../yum/__init__.py:3279
+msgid "Problem in reinstall: no package matched to remove"
+msgstr "Problema al reinstalar: no existe ningún paquete concordante para eliminar"
+
+#: ../yum/__init__.py:3292
+#: ../yum/__init__.py:3410
+#, python-format
+msgid "Package %s is allowed multiple installs, skipping"
+msgstr "El paquete %s permite múltiples instalaciones, ignorando"
+
+#: ../yum/__init__.py:3313
+#, python-format
+msgid "Problem in reinstall: no package %s matched to install"
+msgstr "Problema al reinstalar: no existe ningún paquete concordante con %s para instalar"
+
+#: ../yum/__init__.py:3402
+msgid "No package(s) available to downgrade"
+msgstr "No existe(n) paquete(s) disponible(s) para desactualizar"
+
+#: ../yum/__init__.py:3446
+#, python-format
+msgid "No Match for available package: %s"
+msgstr "Ninguna correspondencia disponible para el paquete: %s"
+
+#: ../yum/__init__.py:3452
+#, python-format
+msgid "Only Upgrade available on package: %s"
+msgstr "Solo existe la posibilidad de actualizar el paquete: %s"
+
+#: ../yum/__init__.py:3511
+#, python-format
+msgid "Retrieving GPG key from %s"
+msgstr "Obteniendo llave GPG desde %s"
+
+#: ../yum/__init__.py:3531
+msgid "GPG key retrieval failed: "
+msgstr "La obtención de la llave GPG ha fallado:"
+
+#: ../yum/__init__.py:3542
+#, python-format
+msgid "GPG key parsing failed: key does not have value %s"
+msgstr "El análisis de la llave GPG ha fallado: la llave no posee valor %s"
+
+#: ../yum/__init__.py:3574
+#, python-format
+msgid "GPG key at %s (0x%s) is already installed"
+msgstr "La llave GPG de %s (0x%s) ya se encuentra instalada"
+
+#. Try installing/updating GPG key
+#: ../yum/__init__.py:3579
+#: ../yum/__init__.py:3641
+#, python-format
+msgid "Importing GPG key 0x%s \"%s\" from %s"
+msgstr "Importando la llave GPG 0x%s \"%s\" desde %s"
+
+#: ../yum/__init__.py:3596
+msgid "Not installing key"
+msgstr "No se está instalando la llave"
+
+#: ../yum/__init__.py:3602
+#, python-format
+msgid "Key import failed (code %d)"
+msgstr "La importación de la llave falló (código %d)"
+
+#: ../yum/__init__.py:3603
+#: ../yum/__init__.py:3662
+msgid "Key imported successfully"
+msgstr "La llave ha sido importada exitosamente"
+
+#: ../yum/__init__.py:3608
+#: ../yum/__init__.py:3667
+#, 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 ""
+"Las llaves GPG listadas para el repositorio \"%s\" ya se encuentran instaladas, pero con este paquete no son correctas.\n"
+"Verifique que las URLs de la llave para este repositorio estén correctamente configuradas."
+
+#: ../yum/__init__.py:3617
+msgid "Import of key(s) didn't help, wrong key(s)?"
+msgstr "La importación de la(s) llave(s) no funcionó, ¿llave(s) equivocada(s)?"
+
+#: ../yum/__init__.py:3636
+#, python-format
+msgid "GPG key at %s (0x%s) is already imported"
+msgstr "La llave GPG de %s (0x%s) ya ha sido importada"
+
+#: ../yum/__init__.py:3656
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "No se está instalando la llave para el repositorio %s"
+
+#: ../yum/__init__.py:3661
+msgid "Key import failed"
+msgstr "Falló la importación de la llave"
+
+#: ../yum/__init__.py:3782
+msgid "Unable to find a suitable mirror."
+msgstr "No es posible encontrar un espejo que funcione."
+
+#: ../yum/__init__.py:3784
+msgid "Errors were encountered while downloading packages."
+msgstr "Fueron encontrados errores mientras los paquetes eran descargados."
+
+#: ../yum/__init__.py:3834
+#, python-format
+msgid "Please report this error at %s"
+msgstr "Por favor, informe este error en %s"
+
+#: ../yum/__init__.py:3858
+msgid "Test Transaction Errors: "
+msgstr "Errores de la prueba de transacción:"
+
+#. Mostly copied from YumOutput._outKeyValFill()
+#: ../yum/plugins.py:202
+msgid "Loaded plugins: "
+msgstr "Complementos cargados:"
+
+#: ../yum/plugins.py:216
+#: ../yum/plugins.py:222
+#, python-format
+msgid "No plugin match for: %s"
+msgstr "No hay un complemento que se corresponda con: %s"
+
+#: ../yum/plugins.py:252
+#, python-format
+msgid "Not loading \"%s\" plugin, as it is disabled"
+msgstr "El complemento \"%s\" no será cargado, puesto que se encuentra deshabilitado"
+
+#. Give full backtrace:
+#: ../yum/plugins.py:264
+#, python-format
+msgid "Plugin \"%s\" can't be imported"
+msgstr "El complemento \"%s\" no puede ser importado"
+
+#: ../yum/plugins.py:271
+#, python-format
+msgid "Plugin \"%s\" doesn't specify required API version"
+msgstr "El complemento \"%s\" no especifica la versión de API requerida"
+
+#: ../yum/plugins.py:276
+#, python-format
+msgid "Plugin \"%s\" requires API %s. Supported API is %s."
+msgstr "El complemento \"%s\" requiere el API %s. El API soportado es %s."
+
+#: ../yum/plugins.py:309
+#, python-format
+msgid "Loading \"%s\" plugin"
+msgstr "Cargando el complemento \"%s\""
+
+#: ../yum/plugins.py:316
+#, python-format
+msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
+msgstr "Existen dos o más complementos con el nombre \"%s\", en la ruta de búsqueda de complementos "
+
+#: ../yum/plugins.py:336
+#, python-format
+msgid "Configuration file %s not found"
+msgstr "No se encuentra el archivo de configuración %s"
+
+#. for
+#. Configuration files for the plugin not found
+#: ../yum/plugins.py:339
+#, python-format
+msgid "Unable to find configuration file for plugin %s"
+msgstr "No es posible encontrar el archivo de configuración para el complemento %s"
+
+#: ../yum/plugins.py:497
+msgid "registration of commands not supported"
+msgstr "registro de comando no soportado"
+
+#: ../yum/rpmtrans.py:78
+msgid "Repackaging"
+msgstr "Reempaquetando"
+
+#: ../rpmUtils/oldUtils.py:33
+#, python-format
+msgid "Header cannot be opened or does not match %s, %s."
+msgstr "El encabezado no puede abrirse, o no se corresponde con %s, %s."
+
+#: ../rpmUtils/oldUtils.py:53
+#, python-format
+msgid "RPM %s fails md5 check"
+msgstr "El RPM %s ha fallado la verificación md5"
+
+#: ../rpmUtils/oldUtils.py:151
+msgid "Could not open RPM database for reading. Perhaps it is already in use?"
+msgstr "No es posible abrir la base de datos de RPM para su lectura. ¿Tal vez se encuentre en uso?"
+
+#: ../rpmUtils/oldUtils.py:183
+msgid "Got an empty Header, something has gone wrong"
+msgstr "Se obtuvo un encabezado vacío, algo ha salido mal"
+
+#: ../rpmUtils/oldUtils.py:253
+#: ../rpmUtils/oldUtils.py:260
+#: ../rpmUtils/oldUtils.py:263
+#: ../rpmUtils/oldUtils.py:266
+#, python-format
+msgid "Damaged Header %s"
+msgstr "Encabezado %s dañado"
+
+#: ../rpmUtils/oldUtils.py:281
+#, python-format
+msgid "Error opening rpm %s - error %s"
+msgstr "Error al abrir el rpm %s - error %s"
+
diff --git a/po/fr.po b/po/fr.po
index 213b8db..819268f 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -162,7 +162,7 @@ msgstr "ERREUR de résolution de dépendance par rpm_check_debug :"
 
 #: ../cli.py:423, python-format
 msgid "Please report this error in %s"
-msgstr "Veuillez reporter cette erreur dans %"
+msgstr "Veuillez reporter cette erreur dans %s"
 
 #: ../cli.py:429
 msgid "Running Transaction Test"
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/nb.po b/po/nb.po
index 512a227..583a57e 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -4,21 +4,20 @@
 # This file is distributed under the same license as the yum package.
 # Terje Røsten <terje.rosten@ntnu.no>, 2008.
 # Kjartan Maraas <kmaraas@broadpark.no>, 2008.
-#
-
+# Sindre Wetjen <sindre.w@gmail.com>, 2009.
 msgid ""
 msgstr ""
-"Project-Id-Version: yum 3.2.10\n"
+"Project-Id-Version: yum 3.2.23\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-31 13:29+0000\n"
-"PO-Revision-Date: 2008-10-31 20:25+0100\n"
-"Last-Translator: Kjartan Maraas <kmaraas@broadpark.no>\n"
+"POT-Creation-Date: 2009-07-08 03:17+0000\n"
+"PO-Revision-Date: 2009-07-10 15:03+0200\n"
+"Last-Translator: Sindre Wetjen <sindre.w@gmail.com>\n"
 "Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../callback.py:48 ../output.py:516 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:939 ../yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "Oppdaterer"
 
@@ -26,16 +25,16 @@ msgstr "Oppdaterer"
 msgid "Erasing"
 msgstr "Fjerner"
 
-#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:515
+#: ../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 "Legger inn"
+msgstr "Installerer"
 
 #: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
 msgid "Obsoleted"
-msgstr "Er utgått"
+msgstr "Utgått"
 
-#: ../callback.py:54 ../output.py:562
+#: ../callback.py:54 ../output.py:1060
 msgid "Updated"
 msgstr "Oppdatert"
 
@@ -43,9 +42,9 @@ msgstr "Oppdatert"
 msgid "Erased"
 msgstr "Fjernet"
 
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:560
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1058
 msgid "Installed"
-msgstr "Lagt inn"
+msgstr "Installert"
 
 #: ../callback.py:130
 msgid "No header - huh?"
@@ -65,7 +64,7 @@ msgstr "Feil: ugyldig tilstand ut: %s for %s"
 msgid "Erased: %s"
 msgstr "Fjernet: %s"
 
-#: ../callback.py:217 ../output.py:517
+#: ../callback.py:217 ../output.py:940
 msgid "Removing"
 msgstr "Fjerner"
 
@@ -73,45 +72,60 @@ msgstr "Fjerner"
 msgid "Cleanup"
 msgstr "Rydder opp"
 
-#: ../cli.py:105
+#: ../cli.py:107
 #, python-format
 msgid "Command \"%s\" already defined"
 msgstr "Kommando «%s» er allerede definert"
 
-#: ../cli.py:117
+#: ../cli.py:119
 msgid "Setting up repositories"
 msgstr "Konfigurerer lagre"
 
-#: ../cli.py:128
+#: ../cli.py:130
 msgid "Reading repository metadata in from local files"
 msgstr "Leser inn data om lager fra lokale filer"
 
-#: ../cli.py:186 ../utils.py:71
+#: ../cli.py:193 ../utils.py:87
 #, python-format
 msgid "Config Error: %s"
 msgstr "Feil i konfigurasjon: %s"
 
-#: ../cli.py:189 ../cli.py:1081 ../utils.py:74
+#: ../cli.py:196 ../cli.py:1242 ../utils.py:90
 #, python-format
 msgid "Options Error: %s"
 msgstr "Feil i flagg: %s"
 
-#: ../cli.py:232
+#: ../cli.py:225
+#, python-format
+msgid "  Installed: %s-%s at %s"
+msgstr "Installert: %s-%s til %s"
+
+#: ../cli.py:227
+#, python-format
+msgid "  Built    : %s at %s"
+msgstr "  Bygd      : %s til %s"
+
+#: ../cli.py:229
+#, python-format
+msgid "  Committed: %s at %s"
+msgstr "Sendt inn: %s til %s"
+
+#: ../cli.py:268
 msgid "You need to give some command"
 msgstr "Du må oppgi en kommando"
 
-#: ../cli.py:274
+#: ../cli.py:311
 msgid "Disk Requirements:\n"
-msgstr "Krav til ledig diskplass:\n"
+msgstr "Krav til disk:\n"
 
-#: ../cli.py:276
+#: ../cli.py:313
 #, python-format
 msgid "  At least %dMB needed on the %s filesystem.\n"
 msgstr "Minst %dMB kreves på filsystem %s.\n"
 
 #. TODO: simplify the dependency errors?
 #. Fixup the summary
-#: ../cli.py:281
+#: ../cli.py:318
 msgid ""
 "Error Summary\n"
 "-------------\n"
@@ -119,55 +133,56 @@ msgstr ""
 "Sammendrag for feil\n"
 "---------------------\n"
 
-#: ../cli.py:320
+#: ../cli.py:361
 msgid "Trying to run the transaction but nothing to do. Exiting."
 msgstr "Prøver å kjøre transaksjonen, men den er tom. Avslutter."
 
-#: ../cli.py:350
+#: ../cli.py:397
 msgid "Exiting on user Command"
 msgstr "Avslutter på grunn av kommando fra bruker"
 
-#: ../cli.py:354
+#: ../cli.py:401
 msgid "Downloading Packages:"
 msgstr "Laster ned pakker:"
 
-#: ../cli.py:359
+#: ../cli.py:406
 msgid "Error Downloading Packages:\n"
 msgstr "Kunne ikke laste ned pakkene:\n"
 
-#: ../cli.py:373 ../yum/__init__.py:2826
+#: ../cli.py:420 ../yum/__init__.py:3776
 msgid "Running rpm_check_debug"
 msgstr "Kjører rpm_check_debug"
 
-#: ../cli.py:376 ../yum/__init__.py:2829
+#: ../cli.py:423 ../yum/__init__.py:3779
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "FEIL med rpm_check_debug i forhold til løsing av avhengigheter:"
 
-#: ../cli.py:380 ../yum/__init__.py:2831
-msgid "Please report this error in bugzilla"
-msgstr "Vennligst send en feilrapport til bugzilla"
+#: ../cli.py:427
+#, python-format
+msgid "Please report this error in %s"
+msgstr "Vennligst rapporter denne feilen i %s"
 
-#: ../cli.py:386
+#: ../cli.py:433
 msgid "Running Transaction Test"
-msgstr "Gjennomfører test av transaksjonen"
+msgstr "Kjører test på transaksjonen"
 
-#: ../cli.py:402
+#: ../cli.py:449
 msgid "Finished Transaction Test"
 msgstr "Transaksjonstesten er fullført"
 
-#: ../cli.py:404
+#: ../cli.py:451
 msgid "Transaction Check Error:\n"
 msgstr "Feil ved test av transaksjonen:\n"
 
-#: ../cli.py:411
+#: ../cli.py:458
 msgid "Transaction Test Succeeded"
 msgstr "Test av transaksjonen var vellykket"
 
-#: ../cli.py:432
+#: ../cli.py:480
 msgid "Running Transaction"
 msgstr "Utfører transaksjonen"
 
-#: ../cli.py:462
+#: ../cli.py:510
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
@@ -175,168 +190,190 @@ msgstr ""
 "Nekter å importere nøkler automatisk ved kjøring uten oppsyn.\n"
 "Bruk «-y» for å overstyre."
 
-#: ../cli.py:494
-msgid "Parsing package install arguments"
-msgstr "Analyserer argumentene for pakkeinstallasjon"
+#: ../cli.py:529 ../cli.py:563
+msgid "  * Maybe you meant: "
+msgstr "  * Du mente kanskje:"
 
-#: ../cli.py:504
+#: ../cli.py:546 ../cli.py:554
 #, python-format
-msgid "No package %s available."
-msgstr "Pakke: %s er ikke tilgjengelig."
+msgid "Package(s) %s%s%s available, but not installed."
+msgstr "Pakken(e) %s%s%s er tilgjengelig, men ikke installert."
 
-#: ../cli.py:508 ../cli.py:626 ../yumcommands.py:790
+#: ../cli.py:560 ../cli.py:591 ../cli.py:669
+#, python-format
+msgid "No package %s%s%s available."
+msgstr "Pakke %s%s%s er ikke tilgjengelig."
+
+#: ../cli.py:596 ../cli.py:729
 msgid "Package(s) to install"
-msgstr "Pakke(r) som skal legges inn"
+msgstr "Pakke(r) som skal installeres"
 
-#: ../cli.py:509 ../cli.py:627 ../yumcommands.py:147 ../yumcommands.py:791
+#: ../cli.py:597 ../cli.py:675 ../cli.py:708 ../cli.py:730
+#: ../yumcommands.py:157
 msgid "Nothing to do"
 msgstr "Ingenting å gjøre"
 
-#: ../cli.py:539 ../yum/__init__.py:2275 ../yum/__init__.py:2375
-#: ../yum/__init__.py:2387
-#, python-format
-msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
-msgstr "Vil ikke oppdatere pakke som allerede er foreldet: %s.%s %s:%s-%s"
-
-#: ../cli.py:571
-#, python-format
-msgid "Could not find update match for %s"
-msgstr "Kunne ikke finne oppdatering som passet for %s"
-
-#: ../cli.py:583
+#: ../cli.py:630
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d pakker merket for oppdatering"
 
-#: ../cli.py:586
+#: ../cli.py:633
 msgid "No Packages marked for Update"
 msgstr "Ingen pakker merket for oppdatering"
 
-#: ../cli.py:602
+#: ../cli.py:647
 #, python-format
 msgid "%d packages marked for removal"
 msgstr "%d pakker merket for fjerning"
 
-#: ../cli.py:605
+#: ../cli.py:650
 msgid "No Packages marked for removal"
 msgstr "Ingen pakker merket for fjerning"
 
-#: ../cli.py:617
+#: ../cli.py:674
+msgid "Package(s) to downgrade"
+msgstr "Pakke(r) som skal nedgraderes"
+
+#: ../cli.py:698
+#, python-format
+msgid " (from %s)"
+msgstr " (fra %s)"
+
+#: ../cli.py:700
+#, python-format
+msgid "Installed package %s%s%s%s not available."
+msgstr "Den installerte pakken %s%s%s%s er ikke tilgjengelig."
+
+#: ../cli.py:707
+msgid "Package(s) to reinstall"
+msgstr "Pakke(r) som skal ominstalleres"
+
+#: ../cli.py:720
 msgid "No Packages Provided"
 msgstr "Ingen pakker ble tilbudt"
 
-#: ../cli.py:657
-msgid "Matching packages for package list to user args"
-msgstr "Tilpasser pakkeliste etter brukers ønske"
-
-#: ../cli.py:705
+#: ../cli.py:804
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "Advarsel: Ingen treff funnet for: %s"
 
-#: ../cli.py:708
+#: ../cli.py:807
 msgid "No Matches found"
 msgstr "Fant ingen treff"
 
-#: ../cli.py:749
+#: ../cli.py:846
+#, 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 ""
+"Advarsel: 3.0.x versjonen av yum vil feilaktig samsvare mot filnavnene.\n"
+" Du kan bruke \"%s*/%s%s\" og/eller \"%s*bin/%s%s\" for å få den oppførselen."
+
+#: ../cli.py:862
 #, python-format
 msgid "No Package Found for %s"
 msgstr "Ingen pakke ble funnet for %s"
 
-#: ../cli.py:761
+#: ../cli.py:874
 msgid "Cleaning up Everything"
 msgstr "Rydder opp alt"
 
-#: ../cli.py:775
+#: ../cli.py:888
 msgid "Cleaning up Headers"
 msgstr "Rydder opp pakkehoder"
 
-#: ../cli.py:778
+#: ../cli.py:891
 msgid "Cleaning up Packages"
 msgstr "Rydder opp pakker"
 
-#: ../cli.py:781
+#: ../cli.py:894
 msgid "Cleaning up xml metadata"
 msgstr "Rydder opp i XML-metadata"
 
-#: ../cli.py:784
+#: ../cli.py:897
 msgid "Cleaning up database cache"
 msgstr "Rydder opp i mellomlager for database"
 
-#: ../cli.py:787
+#: ../cli.py:900
 msgid "Cleaning up expire-cache metadata"
 msgstr "Rydder opp i metadata for expire-cache"
 
-#: ../cli.py:790
+#: ../cli.py:903
 msgid "Cleaning up plugins"
-msgstr "Rydder opp i tillegg"
+msgstr "Rydder opp i programtillegg"
 
-#: ../cli.py:812
+#: ../cli.py:928
 msgid "Installed Groups:"
 msgstr "Installerte grupper:"
 
-#: ../cli.py:819
+#: ../cli.py:940
 msgid "Available Groups:"
 msgstr "Tilgjengelig grupper:"
 
-#: ../cli.py:825
+#: ../cli.py:950
 msgid "Done"
 msgstr "Ferdig"
 
-#: ../cli.py:836 ../cli.py:854 ../cli.py:860
+#: ../cli.py:961 ../cli.py:979 ../cli.py:985 ../yum/__init__.py:2525
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Advarsel: Gruppe %s eksisterer ikke."
 
-#: ../cli.py:864
+#: ../cli.py:989
 msgid "No packages in any requested group available to install or update"
 msgstr ""
 "Ingen pakker tilgjengelig for installering eller oppdatering i aktuelle "
 "grupper"
 
-#: ../cli.py:866
+#: ../cli.py:991
 #, python-format
 msgid "%d Package(s) to Install"
 msgstr "%d pakke(r) vil bli installert"
 
-#: ../cli.py:876
+#: ../cli.py:1001 ../yum/__init__.py:2537
 #, python-format
 msgid "No group named %s exists"
 msgstr "Det finnes ingen gruppe med navn %s"
 
-#: ../cli.py:882
+#: ../cli.py:1007
 msgid "No packages to remove from groups"
 msgstr "Ingen pakker å fjerne fra grupper"
 
-#: ../cli.py:884
+#: ../cli.py:1009
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d pakker vil bli fjernet"
 
-#: ../cli.py:926
+#: ../cli.py:1051
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "Pakke %s er allerede lagt inn, hopper over"
 
-#: ../cli.py:937
+#: ../cli.py:1062
 #, python-format
 msgid "Discarding non-comparable pkg %s.%s"
 msgstr "Vraker pakke som ikke kan sammenlignes %s.%s"
 
 #. we've not got any installed that match n or n+a
-#: ../cli.py:963
+#: ../cli.py:1088
 #, python-format
 msgid "No other %s installed, adding to list for potential install"
 msgstr ""
 "Ingen annen %s er lagt inn, legger til pakke til liste over potensielle "
 "pakker"
 
-#: ../cli.py:982
+#: ../cli.py:1108
+msgid "Plugin Options"
+msgstr "Programtilleggs valg"
+
+#: ../cli.py:1116
 #, python-format
 msgid "Command line error: %s"
 msgstr "Feil med kommandolinje: %s"
 
-#: ../cli.py:994
+#: ../cli.py:1129
 #, python-format
 msgid ""
 "\n"
@@ -347,225 +384,257 @@ msgstr ""
 "\n"
 "%s: flagg %s krever et argument"
 
-#: ../cli.py:1123
+#: ../cli.py:1182
+msgid "--color takes one of: auto, always, never"
+msgstr "--color tar et av: auto, alltid, aldri"
+
+#: ../cli.py:1289
 msgid "show this help message and exit"
 msgstr "vis denne hjelpteksten og avslutt"
 
-#: ../cli.py:1127
+#: ../cli.py:1293
 msgid "be tolerant of errors"
 msgstr "vær tolerant ved feil"
 
-#: ../cli.py:1129
+#: ../cli.py:1295
 msgid "run entirely from cache, don't update cache"
 msgstr "bruk kun lagrede filer ved kjøring, ikke oppdater lagrede filer"
 
-#: ../cli.py:1131
+#: ../cli.py:1297
 msgid "config file location"
 msgstr "plassering av konfigurasjonsfil"
 
-#: ../cli.py:1133
+#: ../cli.py:1299
 msgid "maximum command wait time"
 msgstr "maksimaltid for å vente på kommando"
 
-#: ../cli.py:1135
+#: ../cli.py:1301
 msgid "debugging output level"
 msgstr "nivå for tilbakemeldinger ved avlusing"
 
-#: ../cli.py:1139
+#: ../cli.py:1305
 msgid "show duplicates, in repos, in list/search commands"
 msgstr "vis duplikater i lager og i kommandoer for å liste/søke i pakker"
 
-#: ../cli.py:1141
+#: ../cli.py:1307
 msgid "error output level"
 msgstr "mengde tilbakemelding ved feil"
 
-#: ../cli.py:1144
+#: ../cli.py:1310
 msgid "quiet operation"
 msgstr "stille operasjon"
 
-#: ../cli.py:1146
+#: ../cli.py:1312
 msgid "verbose operation"
 msgstr "vis ekstra informasjon"
 
-#: ../cli.py:1148
+#: ../cli.py:1314
 msgid "answer yes for all questions"
 msgstr "svar Ja til alle spørsmål"
 
-#: ../cli.py:1150
+#: ../cli.py:1316
 msgid "show Yum version and exit"
 msgstr "vis Yum-versjon og avslutt"
 
-#: ../cli.py:1151
+#: ../cli.py:1317
 msgid "set install root"
 msgstr "sett rot for installasjonen"
 
-#: ../cli.py:1155
+#: ../cli.py:1321
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "legger til et eller flere lager (jokertegn er tillatt)"
 
-#: ../cli.py:1159
+#: ../cli.py:1325
 msgid "disable one or more repositories (wildcards allowed)"
 msgstr "slå av et eller flere lager (jokertegn er tillatt)"
 
-#: ../cli.py:1162
+#: ../cli.py:1328
 msgid "exclude package(s) by name or glob"
 msgstr "overse pakke(r) ved navn eller mønster"
 
-#: ../cli.py:1164
+#: ../cli.py:1330
 msgid "disable exclude from main, for a repo or for everything"
 msgstr "fjerner ekskludering av pakker, for et lager eller alle pakker"
 
-#: ../cli.py:1167
+#: ../cli.py:1333
 msgid "enable obsoletes processing during updates"
 msgstr "ta med foreldede pakker i beregningen ved oppdatering"
 
-#: ../cli.py:1169
+#: ../cli.py:1335
 msgid "disable Yum plugins"
-msgstr "ikke bruk tillegg til Yum"
+msgstr "ikke bruk programtilleggene til Yum"
 
-#: ../cli.py:1171
+#: ../cli.py:1337
 msgid "disable gpg signature checking"
 msgstr "ikke sjekk GPG-signaturer"
 
-#: ../cli.py:1173
+#: ../cli.py:1339
 msgid "disable plugins by name"
 msgstr "slå av tillegg til yum etter navn"
 
-#: ../cli.py:1176
+#: ../cli.py:1342
+msgid "enable plugins by name"
+msgstr "slå av programtillegg til yum etter navn"
+
+#: ../cli.py:1345
 msgid "skip packages with depsolving problems"
 msgstr "hopp over pakker som har problemer med avhengigheter"
 
-#: ../output.py:228
+#: ../cli.py:1347
+msgid "control whether color is used"
+msgstr "kontroller om farger er brukt"
+
+#: ../output.py:303
 msgid "Jan"
 msgstr "jan"
 
-#: ../output.py:228
+#: ../output.py:303
 msgid "Feb"
 msgstr "feb"
 
-#: ../output.py:228
+#: ../output.py:303
 msgid "Mar"
 msgstr "mar"
 
-#: ../output.py:228
+#: ../output.py:303
 msgid "Apr"
 msgstr "apr"
 
-#: ../output.py:228
+#: ../output.py:303
 msgid "May"
 msgstr "mai"
 
-#: ../output.py:228
+#: ../output.py:303
 msgid "Jun"
 msgstr "jun"
 
-#: ../output.py:229
+#: ../output.py:304
 msgid "Jul"
 msgstr "jul"
 
-#: ../output.py:229
+#: ../output.py:304
 msgid "Aug"
 msgstr "aug"
 
-#: ../output.py:229
+#: ../output.py:304
 msgid "Sep"
 msgstr "sep"
 
-#: ../output.py:229
+#: ../output.py:304
 msgid "Oct"
 msgstr "okt"
 
-#: ../output.py:229
+#: ../output.py:304
 msgid "Nov"
 msgstr "nov"
 
-#: ../output.py:229
+#: ../output.py:304
 msgid "Dec"
 msgstr "des"
 
-#: ../output.py:239
+#: ../output.py:314
 msgid "Trying other mirror."
 msgstr "Prøver et annet speil."
 
-#: ../output.py:293
+#: ../output.py:536
 #, python-format
-msgid "Name       : %s"
-msgstr "Navn       : %s"
+msgid "Name       : %s%s%s"
+msgstr "Navn       : %s%s%s"
 
-#: ../output.py:294
+#: ../output.py:537
 #, python-format
 msgid "Arch       : %s"
 msgstr "Arkitektur : %s"
 
-#: ../output.py:296
+#: ../output.py:539
 #, python-format
 msgid "Epoch      : %s"
 msgstr "Epoch      :%s"
 
-#: ../output.py:297
+#: ../output.py:540
 #, python-format
 msgid "Version    : %s"
 msgstr "Versjon    : %s"
 
-#: ../output.py:298
+#: ../output.py:541
 #, python-format
 msgid "Release    : %s"
 msgstr "Utgave     : %s"
 
-#: ../output.py:299
+#: ../output.py:542
 #, python-format
 msgid "Size       : %s"
 msgstr "Størrelse  : %s"
 
-#: ../output.py:300
+#: ../output.py:543
 #, python-format
 msgid "Repo       : %s"
 msgstr "Kilde      : %s"
 
-#: ../output.py:302
+#: ../output.py:545
+#, python-format
+msgid "From repo  : %s"
+msgstr "Fra arkiv    : %s"
+
+#: ../output.py:547
 #, python-format
 msgid "Committer  : %s"
 msgstr "Ansvarlig  : %s"
 
-#: ../output.py:303
+#: ../output.py:548
+#, python-format
+msgid "Committime : %s"
+msgstr "Utførelsestid  : %s"
+
+#: ../output.py:549
+#, python-format
+msgid "Buildtime  : %s"
+msgstr "Byggetid  : %s"
+
+#: ../output.py:551
+#, python-format
+msgid "Installtime: %s"
+msgstr "Installasjonstid: %s"
+
+#: ../output.py:552
 msgid "Summary    : "
-msgstr "Oversikt   :"
+msgstr "Sammendrag   :"
 
-#: ../output.py:305
+#: ../output.py:554
 #, python-format
 msgid "URL        : %s"
 msgstr "URL        : %s"
 
-#: ../output.py:306
+#: ../output.py:555
 #, python-format
 msgid "License    : %s"
 msgstr "Lisens     : %s"
 
-#: ../output.py:307
+#: ../output.py:556
 msgid "Description: "
 msgstr "Beskrivelse:"
 
-#: ../output.py:351
-msgid "Is this ok [y/N]: "
-msgstr "Er dette ok [j/N]:"
-
-#: ../output.py:359 ../output.py:362
+#: ../output.py:624
 msgid "y"
 msgstr "j"
 
-#: ../output.py:359
-msgid "n"
-msgstr "n"
-
-#: ../output.py:359 ../output.py:362
+#: ../output.py:624
 msgid "yes"
 msgstr "ja"
 
-#: ../output.py:359
+#: ../output.py:625
+msgid "n"
+msgstr "n"
+
+#: ../output.py:625
 msgid "no"
 msgstr "nei"
 
-#: ../output.py:370
+#: ../output.py:629
+msgid "Is this ok [y/N]: "
+msgstr "Er dette ok [j/N]:"
+
+#: ../output.py:720
 #, python-format
 msgid ""
 "\n"
@@ -574,218 +643,296 @@ msgstr ""
 "\n"
 "Gruppe:%s"
 
-#: ../output.py:372
+#: ../output.py:724
+#, python-format
+msgid " Group-Id: %s"
+msgstr "GruppeId:%s"
+
+#: ../output.py:729
 #, python-format
 msgid " Description: %s"
 msgstr " Beskrivelse: %s"
 
-#: ../output.py:374
+#: ../output.py:731
 msgid " Mandatory Packages:"
 msgstr "Obligatoriske pakker:"
 
-#: ../output.py:379
+#: ../output.py:732
 msgid " Default Packages:"
 msgstr "Standard pakker:"
 
-#: ../output.py:384
+#: ../output.py:733
 msgid " Optional Packages:"
 msgstr "Valgfrie pakker:"
 
-#: ../output.py:389
+#: ../output.py:734
 msgid " Conditional Packages:"
 msgstr "Betingede pakker:"
 
-#: ../output.py:398
+#: ../output.py:754
 #, python-format
 msgid "package: %s"
 msgstr "pakke: %s"
 
-#: ../output.py:400
+#: ../output.py:756
 msgid "  No dependencies for this package"
 msgstr " Ingen avhengigheter for denne pakka"
 
-#: ../output.py:405
+#: ../output.py:761
 #, python-format
 msgid "  dependency: %s"
 msgstr " avhengighet: %s"
 
-#: ../output.py:407
+#: ../output.py:763
 msgid "   Unsatisfied dependency"
 msgstr " avhengighet som ikke kunne tilfredstilles"
 
-#: ../output.py:465
+#: ../output.py:835
+#, python-format
+msgid "Repo        : %s"
+msgstr "Arkiv      : %s"
+
+#: ../output.py:836
 msgid "Matched from:"
 msgstr "Treff fra:"
 
-#: ../output.py:491
+#: ../output.py:845
+msgid "Description : "
+msgstr "Beskrivelse : "
+
+#: ../output.py:848
+#, python-format
+msgid "URL         : %s"
+msgstr "Nettadresse        : %s"
+
+#: ../output.py:851
+#, python-format
+msgid "License     : %s"
+msgstr "Lisens     : %s"
+
+#: ../output.py:854
+#, python-format
+msgid "Filename    : %s"
+msgstr "Filnavn     : %s"
+
+#: ../output.py:858
+msgid "Other       : "
+msgstr "Andre ting       : %s"
+
+#: ../output.py:891
 msgid "There was an error calculating total download size"
 msgstr "Kunne ikke finne ut størrelse på det som skal hentes ned"
 
-#: ../output.py:496
+#: ../output.py:896
 #, python-format
 msgid "Total size: %s"
 msgstr "Totale størrelse: %s"
 
-#: ../output.py:499
+#: ../output.py:899
 #, python-format
 msgid "Total download size: %s"
 msgstr "Totale størrelse på pakker som hentes: %s"
 
-#: ../output.py:511
+#: ../output.py:941
+msgid "Reinstalling"
+msgstr "Ominstallerer"
+
+#: ../output.py:942
+msgid "Downgrading"
+msgstr "Nedgraderer"
+
+#: ../output.py:943
+msgid "Installing for dependencies"
+msgstr "Legges inn på grunn avhengigheter"
+
+#: ../output.py:944
+msgid "Updating for dependencies"
+msgstr "Oppdateres på grunn avhengigheter"
+
+#: ../output.py:945
+msgid "Removing for dependencies"
+msgstr "Fjernes på grunn avhengigheter"
+
+#: ../output.py:952 ../output.py:1062
+msgid "Skipped (dependency problems)"
+msgstr "Hoppet over (problemer med avhengigheter)"
+
+#: ../output.py:973
 msgid "Package"
 msgstr "Pakke"
 
-#: ../output.py:511
+#: ../output.py:973
 msgid "Arch"
 msgstr "Arkitektur"
 
-#: ../output.py:511
+#: ../output.py:974
 msgid "Version"
 msgstr "Versjon"
 
-#: ../output.py:511
+#: ../output.py:974
 msgid "Repository"
 msgstr "Pakkeoversikt"
 
-#: ../output.py:511
+#: ../output.py:975
 msgid "Size"
 msgstr "Størrelse"
 
-#: ../output.py:518
-msgid "Installing for dependencies"
-msgstr "Legges inn på grunn avhengigheter"
-
-#: ../output.py:519
-msgid "Updating for dependencies"
-msgstr "Oppdateres på grunn avhengigheter"
-
-#: ../output.py:520
-msgid "Removing for dependencies"
-msgstr "Fjernes på grunn avhengigheter"
-
-#: ../output.py:532
+#: ../output.py:987
 #, python-format
 msgid ""
-"     replacing  %s.%s %s\n"
+"     replacing  %s%s%s.%s %s\n"
 "\n"
 msgstr ""
-"     erstatter   %s.%s %s\"\n"
+"     erstatter  %s%s%s.%s %s\"\n"
 "\n"
 
-#: ../output.py:540
+#: ../output.py:996
 #, python-format
 msgid ""
 "\n"
 "Transaction Summary\n"
-"=============================================================================\n"
-"Install  %5.5s Package(s)         \n"
-"Update   %5.5s Package(s)         \n"
-"Remove   %5.5s Package(s)         \n"
+"%s\n"
 msgstr ""
 "\n"
-"Oversikt over transaksjon\n"
-"=============================================================================\n"
-"Legger inn %5.5s pakker\n"
-"Oppdaterer %5.5s pakker\n"
-"Fjerner    %5.5s pakker\n"
+"Transaksjonsammendrag\n"
+"%s\n"
+
+#: ../output.py:1003
+#, python-format
+msgid ""
+"Install   %5.5s Package(s)\n"
+"Upgrade   %5.5s Package(s)\n"
+msgstr ""
+"Installer   %5.5s Pakke(r)\n"
+"Oppgradere   %5.5s Pakke(r)\n"
+
+#: ../output.py:1012
+#, python-format
+msgid ""
+"Remove    %5.5s Package(s)\n"
+"Reinstall %5.5s Package(s)\n"
+"Downgrade %5.5s Package(s)\n"
+msgstr ""
+"Fjern    %5.5s Pakke(r)\n"
+"Ominstaller %5.5s Pakke(r)\n"
+"Nedgrader %5.5s Pakke(r)\n"
 
-#: ../output.py:558
+#: ../output.py:1056
 msgid "Removed"
 msgstr "Fjernet"
 
-#: ../output.py:559
+#: ../output.py:1057
 msgid "Dependency Removed"
 msgstr "Fjernet på grunn avhengighet"
 
-#: ../output.py:561
+#: ../output.py:1059
 msgid "Dependency Installed"
 msgstr "Lagt inn på grunn av avhengighet"
 
-#: ../output.py:563
+#: ../output.py:1061
 msgid "Dependency Updated"
 msgstr "Oppdatert på grunn avhengighet"
 
-#: ../output.py:564
+#: ../output.py:1063
 msgid "Replaced"
 msgstr "Erstattet"
 
-#: ../output.py:622
+#: ../output.py:1064
+msgid "Failed"
+msgstr "Feilet"
+
+#. Delta between C-c's so we treat as exit
+#: ../output.py:1130
+msgid "two"
+msgstr "to"
+
+#. For translators: This is output like:
+#. Current download cancelled, interrupt (ctrl-c) again within two seconds
+#. to exit.
+#. Where "interupt (ctrl-c) again" and "two" are highlighted.
+#: ../output.py:1141
 #, python-format
 msgid ""
 "\n"
 " Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
-"seconds to exit.\n"
+"seconds\n"
+"to exit.\n"
 msgstr ""
 "\n"
 " Pågående nedlastning er avbrutt, %s avbryt (ved å trykke Ctrl-C) %s ganger "
-"til innen %s%s%s sekunder for å avslutte helt.\n"
+"til innen %s%s%s sekunder\n"
+"for å avslutte.\n"
 
-#: ../output.py:632
+#: ../output.py:1152
 msgid "user interrupt"
 msgstr "avbrutt av bruker"
 
-#: ../output.py:643
+#: ../output.py:1168
+msgid "Total"
+msgstr "Totalt"
+
+#: ../output.py:1183
 msgid "installed"
-msgstr "lagt inn"
+msgstr "installert"
 
-#: ../output.py:644
+#: ../output.py:1184
 msgid "updated"
 msgstr "oppdatert"
 
-#: ../output.py:645
+#: ../output.py:1185
 msgid "obsoleted"
 msgstr "foreldet"
 
-#: ../output.py:646
+#: ../output.py:1186
 msgid "erased"
 msgstr "fjernet"
 
-#: ../output.py:650
+#: ../output.py:1190
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> pakke %s.%s %s:%s-%s er satt til %s"
 
-#: ../output.py:657
+#: ../output.py:1197
 msgid "--> Running transaction check"
 msgstr "--> Utfører sjekk av transaksjonen"
 
-#: ../output.py:662
+#: ../output.py:1202
 msgid "--> Restarting Dependency Resolution with new changes."
 msgstr "--> Starter løsing av avhengigheter på nytt med endringer"
 
-#: ../output.py:667
+#: ../output.py:1207
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Alle avhengigheter er løst"
 
-#: ../output.py:672
+#: ../output.py:1212 ../output.py:1217
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> Beregner avhengighet: %s for pakke: %s"
 
-#: ../output.py:677
+#: ../output.py:1221
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Avhengigheter som ikke kunne bli tilfredstilt: %s"
 
-#: ../output.py:683
+#: ../output.py:1227 ../output.py:1232
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> Beregner konflikter: %s er i konflikt med %s"
 
-#: ../output.py:686
+#: ../output.py:1236
 msgid "--> Populating transaction set with selected packages. Please wait."
 msgstr "--> Fyller transaksjonen med valgte pakker. Vennligst vent."
 
-#: ../output.py:690
+#: ../output.py:1240
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
 msgstr "---> Henter ned filhode for pakke %s for å fylle transaksjonen."
 
-#: ../yumcommands.py:37
+#: ../yumcommands.py:40
 msgid "You need to be root to perform this command."
 msgstr "Du må være rootbruker for å utføre denne kommandoen."
 
-#: ../yumcommands.py:44
+#: ../yumcommands.py:47
 msgid ""
 "\n"
 "You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -814,266 +961,314 @@ msgstr ""
 "\n"
 "Kontakt din distribusjon eller pakkeansvarlig for mer informasjon.\n"
 
-#: ../yumcommands.py:64
+#: ../yumcommands.py:67
 #, python-format
 msgid "Error: Need to pass a list of pkgs to %s"
 msgstr "Feil: du må oppgi en liste med pakker som skal %s"
 
-#: ../yumcommands.py:70
+#: ../yumcommands.py:73
 msgid "Error: Need an item to match"
 msgstr "Feil: trenger noe å sammenligne med"
 
-#: ../yumcommands.py:76
+#: ../yumcommands.py:79
 msgid "Error: Need a group or list of groups"
 msgstr "Feil: trenger en gruppe eller en liste med grupper"
 
-#: ../yumcommands.py:85
+#: ../yumcommands.py:88
 #, python-format
 msgid "Error: clean requires an option: %s"
 msgstr "Feil: clean trenger minst et argument: %s"
 
-#: ../yumcommands.py:90
+#: ../yumcommands.py:93
 #, python-format
 msgid "Error: invalid clean argument: %r"
 msgstr "Feil: ugyldig argument gitt til kommandoen clean: %r"
 
-#: ../yumcommands.py:103
+#: ../yumcommands.py:106
 msgid "No argument to shell"
 msgstr "Ingen argumenter ble gitt til kommandoen shell"
 
-#: ../yumcommands.py:106
+#: ../yumcommands.py:108
 #, python-format
 msgid "Filename passed to shell: %s"
 msgstr "Følgende filnavn ble sendt til skallet: %s"
 
-#: ../yumcommands.py:110
+#: ../yumcommands.py:112
 #, python-format
 msgid "File %s given as argument to shell does not exist."
 msgstr ""
 "Filen %s som ble gitt som argument til kommandoen shell eksisterer ikke."
 
-#: ../yumcommands.py:116
+#: ../yumcommands.py:118
 msgid "Error: more than one file given as argument to shell."
 msgstr "Feil: mer enn en fil ble gitt som argument til kommandoen shell."
 
-#: ../yumcommands.py:157
+#: ../yumcommands.py:167
 msgid "PACKAGE..."
 msgstr "PAKKE..."
 
-#: ../yumcommands.py:160
+#: ../yumcommands.py:170
 msgid "Install a package or packages on your system"
 msgstr "Legg inn en eller flere pakker på systemet"
 
-#: ../yumcommands.py:169
+#: ../yumcommands.py:178
 msgid "Setting up Install Process"
 msgstr "Forberedelser for installasjon"
 
-#: ../yumcommands.py:180
+#: ../yumcommands.py:189
 msgid "[PACKAGE...]"
 msgstr "[PAKKE...]"
 
-#: ../yumcommands.py:183
+#: ../yumcommands.py:192
 msgid "Update a package or packages on your system"
 msgstr "Oppdater en eller flere pakker på systemet"
 
-#: ../yumcommands.py:191
+#: ../yumcommands.py:199
 msgid "Setting up Update Process"
 msgstr "Forberedelser for oppdatering"
 
-#: ../yumcommands.py:205
+#: ../yumcommands.py:244
 msgid "Display details about a package or group of packages"
 msgstr "Viser detaljer om en pakke eller en gruppe av grupper"
 
-#: ../yumcommands.py:213
+#: ../yumcommands.py:293
 msgid "Installed Packages"
 msgstr "Pakker som er installert"
 
-#: ../yumcommands.py:214
+#: ../yumcommands.py:301
 msgid "Available Packages"
 msgstr "Tilgjengelige pakker"
 
-#: ../yumcommands.py:215
+#: ../yumcommands.py:305
 msgid "Extra Packages"
 msgstr "Tilleggspakker"
 
-#: ../yumcommands.py:216
+#: ../yumcommands.py:309
 msgid "Updated Packages"
 msgstr "Oppdaterte pakker"
 
-#: ../yumcommands.py:222 ../yumcommands.py:228
+#. This only happens in verbose mode
+#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:600
 msgid "Obsoleting Packages"
 msgstr "Utdaterte pakker"
 
-#: ../yumcommands.py:229
+#: ../yumcommands.py:326
 msgid "Recently Added Packages"
 msgstr "Pakker som nylig er lagt til"
 
-#: ../yumcommands.py:235
+#: ../yumcommands.py:333
 msgid "No matching Packages to list"
 msgstr "Ingen passende pakker å liste opp"
 
-#: ../yumcommands.py:249
+#: ../yumcommands.py:347
 msgid "List a package or groups of packages"
 msgstr "Lag en liste med pakker eller grupper av pakker"
 
-#: ../yumcommands.py:261
+#: ../yumcommands.py:359
 msgid "Remove a package or packages from your system"
 msgstr "Fjern en eller flere pakker fra systemet"
 
-#: ../yumcommands.py:269
+#: ../yumcommands.py:366
 msgid "Setting up Remove Process"
 msgstr "Klargjør for fjerning av pakker"
 
-#: ../yumcommands.py:281
+#: ../yumcommands.py:380
 msgid "Setting up Group Process"
 msgstr "Klargjør grupper med pakker"
 
-#: ../yumcommands.py:287
+#: ../yumcommands.py:386
 msgid "No Groups on which to run command"
 msgstr "Ingen gruppe er valgt for aktuell kommando"
 
-#: ../yumcommands.py:300
+#: ../yumcommands.py:399
 msgid "List available package groups"
 msgstr "Lag liste over tilgjengelige pakkegrupper"
 
-#: ../yumcommands.py:317
+#: ../yumcommands.py:416
 msgid "Install the packages in a group on your system"
 msgstr "Legger inn pakkene i en gruppe på systemet"
 
-#: ../yumcommands.py:339
+#: ../yumcommands.py:438
 msgid "Remove the packages in a group from your system"
 msgstr "Fjern pakkene i en gruppe fra systemet"
 
-#: ../yumcommands.py:363
+#: ../yumcommands.py:465
 msgid "Display details about a package group"
 msgstr "Viser detaljer om en gruppe av pakker"
 
-#: ../yumcommands.py:387
+#: ../yumcommands.py:489
 msgid "Generate the metadata cache"
 msgstr "Lag mellomlager med metadata"
 
-#: ../yumcommands.py:393
+#: ../yumcommands.py:495
 msgid "Making cache files for all metadata files."
 msgstr "Lager mellomlager for samtlige filer med metadata."
 
-#: ../yumcommands.py:394
+#: ../yumcommands.py:496
 msgid "This may take a while depending on the speed of this computer"
 msgstr "Dette kan en stund avhengig av hvor rask datamaskinen er"
 
-#: ../yumcommands.py:415
+#: ../yumcommands.py:517
 msgid "Metadata Cache Created"
 msgstr "Mellomlager er ferdig lagd"
 
-#: ../yumcommands.py:429
+#: ../yumcommands.py:531
 msgid "Remove cached data"
 msgstr "Fjern mellomlager med metadata"
 
-#: ../yumcommands.py:450
+#: ../yumcommands.py:551
 msgid "Find what package provides the given value"
 msgstr "Finn hvilken pakke som inneholder etterspurt verdi"
 
-#: ../yumcommands.py:470
+#: ../yumcommands.py:571
 msgid "Check for available package updates"
 msgstr "Se etter tilgjengelige pakkeoppdateringer"
 
-#: ../yumcommands.py:493
+#: ../yumcommands.py:620
 msgid "Search package details for the given string"
 msgstr "Søker etter oppgitt streng i pakkedetaljene"
 
-#: ../yumcommands.py:499
+#: ../yumcommands.py:626
 msgid "Searching Packages: "
 msgstr "Søker i pakker: "
 
-#: ../yumcommands.py:516
+#: ../yumcommands.py:643
 msgid "Update packages taking obsoletes into account"
 msgstr "Oppdater pakker og ta hensyn til pakker som blir utdatert"
 
-#: ../yumcommands.py:525
+#: ../yumcommands.py:651
 msgid "Setting up Upgrade Process"
 msgstr "Klargjør for oppdatering"
 
-#: ../yumcommands.py:539
+#: ../yumcommands.py:665
 msgid "Install a local RPM"
 msgstr "Legger inn en RPM fra filsystemet"
 
-#: ../yumcommands.py:548
+#: ../yumcommands.py:673
 msgid "Setting up Local Package Process"
 msgstr "Klargjøring for pakker på lokalt filsystem"
 
-#: ../yumcommands.py:567
+#: ../yumcommands.py:692
 msgid "Determine which package provides the given dependency"
 msgstr "Finner hvilken pakke som tilbyr den gitte avhengigheten"
 
-#: ../yumcommands.py:570
+#: ../yumcommands.py:695
 msgid "Searching Packages for Dependency:"
 msgstr "Søker i pakker etter avhengighet:"
 
-#: ../yumcommands.py:584
+#: ../yumcommands.py:709
 msgid "Run an interactive yum shell"
 msgstr "Kjører det interaktive Yum-skallet"
 
-#: ../yumcommands.py:590
+#: ../yumcommands.py:715
 msgid "Setting up Yum Shell"
 msgstr "Klargjør Yum-skallet"
 
-#: ../yumcommands.py:608
+#: ../yumcommands.py:733
 msgid "List a package's dependencies"
 msgstr "Vis avhengigheter for en pakke"
 
-#: ../yumcommands.py:614
+#: ../yumcommands.py:739
 msgid "Finding dependencies: "
 msgstr "Finner avhengigheter: "
 
-#: ../yumcommands.py:630
+#: ../yumcommands.py:755
 msgid "Display the configured software repositories"
 msgstr "Viser de pakkeoversiktene som er satt opp"
 
-#: ../yumcommands.py:666
+#: ../yumcommands.py:803 ../yumcommands.py:804
 msgid "enabled"
 msgstr "aktiv"
 
-#: ../yumcommands.py:673
+#: ../yumcommands.py:812 ../yumcommands.py:813
 msgid "disabled"
 msgstr "inaktiv"
 
-#: ../yumcommands.py:682
-msgid "repo id"
-msgstr "id"
+#: ../yumcommands.py:827
+msgid "Repo-id     : "
+msgstr "ID for arkiv: "
 
-#: ../yumcommands.py:683
-msgid "repo name"
-msgstr "navn"
+#: ../yumcommands.py:828
+msgid "Repo-name   : "
+msgstr "Navn på arkiv : "
 
-#: ../yumcommands.py:683
-msgid "status"
-msgstr "status"
+#: ../yumcommands.py:829
+msgid "Repo-status : "
+msgstr "Arkivstatus : "
 
-#: ../yumcommands.py:686
-msgid "Repo-id     : "
-msgstr "ID for lager: "
+#: ../yumcommands.py:831
+msgid "Repo-revision: "
+msgstr "Arkivrevisjon: "
 
-#: ../yumcommands.py:687
-msgid "Repo-name   : "
-msgstr "Navn på lager : "
+#: ../yumcommands.py:835
+msgid "Repo-tags   : "
+msgstr "Arkivmerkelapper : "
+
+# Har noen et bedre forslag? Dette ser bare stygt ut.
+#: ../yumcommands.py:841
+msgid "Repo-distro-tags: "
+msgstr "Arkivdistribusjonsmerkelapper:"
 
-#: ../yumcommands.py:688
-msgid "Repo-enabled: "
-msgstr "Lager aktivt: "
+#: ../yumcommands.py:846
+msgid "Repo-updated: "
+msgstr "Arkivaktivitet:"
 
-#: ../yumcommands.py:689
+#: ../yumcommands.py:848
+msgid "Repo-pkgs   : "
+msgstr "Arkivpakker : "
+
+#: ../yumcommands.py:849
 msgid "Repo-size   : "
-msgstr "Størrelse på lager : "
+msgstr "Størrelse på arkiv : "
+
+#: ../yumcommands.py:856
+msgid "Repo-baseurl: "
+msgstr "Arkivets basisurl : "
+
+#: ../yumcommands.py:864
+msgid "Repo-metalink: "
+msgstr "Arkivmetalink: "
+
+#: ../yumcommands.py:868
+msgid "  Updated    : "
+msgstr "  Oppdatert    : "
+
+#: ../yumcommands.py:871
+msgid "Repo-mirrors: "
+msgstr "Arkivspeil: "
+
+#: ../yumcommands.py:875
+msgid "Repo-exclude: "
+msgstr "Arkivekskludert: "
 
-#: ../yumcommands.py:713
+#: ../yumcommands.py:879
+msgid "Repo-include: "
+msgstr "Arkivinkludert: "
+
+#. Work out the first (id) and last (enabled/disalbed/count),
+#. then chop the middle (name)...
+#: ../yumcommands.py:889 ../yumcommands.py:915
+msgid "repo id"
+msgstr "arkiv id"
+
+#: ../yumcommands.py:903 ../yumcommands.py:904 ../yumcommands.py:918
+msgid "status"
+msgstr "status"
+
+#: ../yumcommands.py:916
+msgid "repo name"
+msgstr "arkiv navn"
+
+#: ../yumcommands.py:942
 msgid "Display a helpful usage message"
 msgstr "Viser en hjelpetekst"
 
-#: ../yumcommands.py:747
+#: ../yumcommands.py:976
 #, python-format
 msgid "No help available for %s"
 msgstr "Ingen hjelp er tilgjengelig for %s"
 
-#: ../yumcommands.py:752
+#: ../yumcommands.py:981
 msgid ""
 "\n"
 "\n"
@@ -1083,7 +1278,7 @@ msgstr ""
 "\n"
 "alias:"
 
-#: ../yumcommands.py:754
+#: ../yumcommands.py:983
 msgid ""
 "\n"
 "\n"
@@ -1093,15 +1288,35 @@ msgstr ""
 "\n"
 "alias:"
 
-#: ../yumcommands.py:783
+#: ../yumcommands.py:1011
 msgid "Setting up Reinstall Process"
 msgstr "Klargjør for å legge inn pakke(r) på nytt"
 
-#: ../yumcommands.py:797
+#: ../yumcommands.py:1019
 msgid "reinstall a package"
-msgstr "legg inn en pakke på nytt"
+msgstr "ominstaller en pakke "
 
-#: ../yummain.py:55
+#: ../yumcommands.py:1037
+msgid "Setting up Downgrade Process"
+msgstr "Klargjør for oppdatering"
+
+#: ../yumcommands.py:1044
+msgid "downgrade a package"
+msgstr "nedgrader en pakke"
+
+#: ../yumcommands.py:1058
+msgid "Display a version for the machine and/or available repos."
+msgstr "Vi sen versjon for maskinen og/eller tilgjengelige arkiver"
+
+#: ../yumcommands.py:1085
+msgid "Installed:"
+msgstr "Installert:"
+
+#: ../yumcommands.py:1094
+msgid "Available:"
+msgstr "Tilgjengelig:"
+
+#: ../yummain.py:42
 msgid ""
 "\n"
 "\n"
@@ -1111,7 +1326,7 @@ msgstr ""
 "\n"
 "Avslutter etter ønske"
 
-#: ../yummain.py:61
+#: ../yummain.py:48
 msgid ""
 "\n"
 "\n"
@@ -1121,28 +1336,90 @@ msgstr ""
 "\n"
 "Avslutter på grunn av brutt rør"
 
-#: ../yummain.py:112
+#: ../yummain.py:126
+msgid "Running"
+msgstr "Kjører"
+
+#: ../yummain.py:127
+msgid "Sleeping"
+msgstr "Sover"
+
+#: ../yummain.py:128
+msgid "Uninteruptable"
+msgstr "Ikke mulig å avbryte"
+
+#: ../yummain.py:129
+msgid "Zombie"
+msgstr "Zombie"
+
+#: ../yummain.py:130
+msgid "Traced/Stopped"
+msgstr "Sporet/Stoppet"
+
+#: ../yummain.py:131
+msgid "Unknown"
+msgstr "Ukjent"
+
+#: ../yummain.py:135
+msgid "  The other application is: PackageKit"
+msgstr "  Det andre programmet er: PackageKit"
+
+#: ../yummain.py:137
+#, python-format
+msgid "  The other application is: %s"
+msgstr "  Det andre programmet er: %s"
+
+#: ../yummain.py:140
+#, python-format
+msgid "    Memory : %5s RSS (%5sB VSZ)"
+msgstr "    Minne : %5s RSS (%5sB VSZ)"
+
+#: ../yummain.py:144
+#, python-format
+msgid "    Started: %s - %s ago"
+msgstr "    Startet for %s - %s siden"
+
+#: ../yummain.py:146
+#, python-format
+msgid "    State  : %s, pid: %d"
+msgstr "    Status  : %s, pid: %d"
+
+#: ../yummain.py:171
 msgid ""
 "Another app is currently holding the yum lock; waiting for it to exit..."
 msgstr ""
 "Et annet program holder en fillås for Yum, venter til fillåsen frigjøres..."
 
-#: ../yummain.py:139 ../yummain.py:178
+#: ../yummain.py:199 ../yummain.py:238
 #, python-format
 msgid "Error: %s"
 msgstr "Feil: %s"
 
-#: ../yummain.py:149 ../yummain.py:185
+#: ../yummain.py:209 ../yummain.py:251
 #, python-format
 msgid "Unknown Error(s): Exit Code: %d:"
 msgstr "Ukjent feil: feilkode: %d:"
 
 #. Depsolve stage
-#: ../yummain.py:156
+#: ../yummain.py:216
 msgid "Resolving Dependencies"
 msgstr "Løser avhengigheter"
 
-#: ../yummain.py:191
+#: ../yummain.py:240
+msgid " You could try using --skip-broken to work around the problem"
+msgstr "Du kan prøve å bruke --skip-broken for å jobbe deg rundt problem"
+
+#: ../yummain.py:241
+msgid ""
+" You could try running: package-cleanup --problems\n"
+"                        package-cleanup --dupes\n"
+"                        rpm -Va --nofiles --nodigest"
+msgstr ""
+" Du kan prøve å kjøre: package-cleanup --problems\n"
+"                         package-cleanup --dupes\n"
+"                         rpm -Va --nofiles --nodigest"
+
+#: ../yummain.py:257
 msgid ""
 "\n"
 "Dependencies Resolved"
@@ -1150,11 +1427,11 @@ msgstr ""
 "\n"
 "Alle avhengigheter er løst"
 
-#: ../yummain.py:205
+#: ../yummain.py:271
 msgid "Complete!"
 msgstr "Ferdig!"
 
-#: ../yummain.py:252
+#: ../yummain.py:318
 msgid ""
 "\n"
 "\n"
@@ -1164,147 +1441,196 @@ msgstr ""
 "\n"
 "Avslutter etter ønske"
 
-#: ../yum/depsolve.py:78
+#: ../yum/depsolve.py:83
 msgid "doTsSetup() will go away in a future version of Yum.\n"
 msgstr "doTsSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#: ../yum/depsolve.py:91
+#: ../yum/depsolve.py:98
 msgid "Setting up TransactionSets before config class is up"
 msgstr "Setter opp transaksjons-sett før config klassen er klar"
 
-#: ../yum/depsolve.py:132
+#: ../yum/depsolve.py:149
 #, python-format
 msgid "Invalid tsflag in config file: %s"
 msgstr "Ugyldig tsflag in konfigurasjonsfil: %s"
 
-#: ../yum/depsolve.py:176
+#: ../yum/depsolve.py:160
+#, python-format
+msgid "Searching pkgSack for dep: %s"
+msgstr "Søker i pkgSack etter avhengighet: %s"
+
+#: ../yum/depsolve.py:183
+#, python-format
+msgid "Potential match for %s from %s"
+msgstr "Potensielt treff for %s i %s"
+
+#: ../yum/depsolve.py:191
+#, python-format
+msgid "Matched %s to require for %s"
+msgstr "Passende %s for å tilfredstille %s"
+
+#: ../yum/depsolve.py:232
 #, python-format
 msgid "Member: %s"
 msgstr "Medlem: %s"
 
-#: ../yum/depsolve.py:190 ../yum/depsolve.py:592
+#: ../yum/depsolve.py:246 ../yum/depsolve.py:759
 #, python-format
 msgid "%s converted to install"
 msgstr "%s ble omdannet til installering"
 
-#: ../yum/depsolve.py:197
+#: ../yum/depsolve.py:253
 #, python-format
 msgid "Adding Package %s in mode %s"
 msgstr "Legger til pakke %s in modus %s"
 
-#: ../yum/depsolve.py:207
+#: ../yum/depsolve.py:263
 #, python-format
 msgid "Removing Package %s"
 msgstr "Fjerner pakke %s"
 
-#: ../yum/depsolve.py:218
+#: ../yum/depsolve.py:285
 #, python-format
 msgid "%s requires: %s"
 msgstr "%s krever: %s"
 
-#: ../yum/depsolve.py:273
+#: ../yum/depsolve.py:343
+msgid "Needed Require has already been looked up, cheating"
+msgstr "Nødvendig avhengighet har allerede blitt plukket opp, jukser"
+
+#: ../yum/depsolve.py:353
+#, python-format
+msgid "Needed Require is not a package name. Looking up: %s"
+msgstr "Nødvendig avhengighet er ikke et navn på pakke. Ser etter: %s"
+
+#: ../yum/depsolve.py:360
+#, python-format
+msgid "Potential Provider: %s"
+msgstr "Potensiell tilbyder: %s"
+
+#: ../yum/depsolve.py:383
+#, python-format
+msgid "Mode is %s for provider of %s: %s"
+msgstr "Modus er %s for tilbyder av %s: %s"
+
+#: ../yum/depsolve.py:387
+#, python-format
+msgid "Mode for pkg providing %s: %s"
+msgstr "Modus for pakke som tilbyr %s: %s"
+
+#: ../yum/depsolve.py:391
+#, python-format
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: pakke %s som er nødvendig for %s vil bli fjernet"
+
+#: ../yum/depsolve.py:404
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
 msgstr "TSINFO: Bytter ut %s med %s for å løse opp i avhengighet."
 
-#: ../yum/depsolve.py:276
+#: ../yum/depsolve.py:407
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
 msgstr "TSINFO: Oppdaterer %s for å løse opp i avhengighet."
 
-#: ../yum/depsolve.py:279
+#: ../yum/depsolve.py:415
 #, python-format
 msgid "Cannot find an update path for dep for: %s"
 msgstr "Kunne ikke finne måte å oppdatere sti for avhengighet: %s."
 
-#: ../yum/depsolve.py:283
+#: ../yum/depsolve.py:425
 #, python-format
-msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: pakke %s som er nødvendig for %s vil bli fjernet"
+msgid "Unresolvable requirement %s for %s"
+msgstr "Avhengighet %s kan ikke løses opp: %s"
+
+#: ../yum/depsolve.py:448
+#, python-format
+msgid "Quick matched %s to require for %s"
+msgstr "Hurtigpasset %s for å tilfredstille %s"
 
 #. is it already installed?
-#: ../yum/depsolve.py:329
+#: ../yum/depsolve.py:490
 #, python-format
 msgid "%s is in providing packages but it is already installed, removing."
 msgstr "%s tilbyr pakker, men er allerede installert, fjerner denne."
 
-#: ../yum/depsolve.py:344
+#: ../yum/depsolve.py:506
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
 msgstr "Pakke %s som potensielt løser opp avhengighet har nyere instans in ts."
 
-#: ../yum/depsolve.py:355
+#: ../yum/depsolve.py:517
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
 msgstr "Pakke %s som potensielt løser opp avhengighet er allerde installert."
 
-#: ../yum/depsolve.py:363 ../yum/depsolve.py:410
+#: ../yum/depsolve.py:525 ../yum/depsolve.py:574
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "Uløst avhengighet: %s trengs av pakke %s"
 
-#: ../yum/depsolve.py:376
+#: ../yum/depsolve.py:538
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s er allerde i ts, hopper over denne"
 
-#: ../yum/depsolve.py:420
+#: ../yum/depsolve.py:584
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: Setter opp %s som oppdatering av %s"
 
-#: ../yum/depsolve.py:427
+#: ../yum/depsolve.py:592
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: Setter opp %s som pakke for installering av %s"
 
-#: ../yum/depsolve.py:518 ../yum/depsolve.py:610
+#: ../yum/depsolve.py:695 ../yum/depsolve.py:777
 msgid "Success - empty transaction"
 msgstr "Suksess - transaksjonen er tom"
 
-#: ../yum/depsolve.py:562 ../yum/depsolve.py:582
+#: ../yum/depsolve.py:734 ../yum/depsolve.py:749
 msgid "Restarting Loop"
 msgstr "Starter sløyfe på nytt"
 
-#: ../yum/depsolve.py:598
+#: ../yum/depsolve.py:765
 msgid "Dependency Process ending"
 msgstr "Beregning av avhengighet avsluttes"
 
-#: ../yum/depsolve.py:604
+#: ../yum/depsolve.py:771
 #, python-format
 msgid "%s from %s has depsolving problems"
 msgstr "%s fra %s har problemer med avhengigheter"
 
-#: ../yum/depsolve.py:611
+#: ../yum/depsolve.py:778
 msgid "Success - deps resolved"
 msgstr "Suksess - alle avhengigheter er tilfredstilt"
 
-#: ../yum/depsolve.py:625
+#: ../yum/depsolve.py:792
 #, python-format
 msgid "Checking deps for %s"
 msgstr "Sjekker avhengigheter for %s"
 
-#: ../yum/depsolve.py:687
+#: ../yum/depsolve.py:875
 #, python-format
 msgid "looking for %s as a requirement of %s"
 msgstr "leter etter %s som kreves av %s"
 
-#: ../yum/depsolve.py:814
+#: ../yum/depsolve.py:1017
 #, python-format
 msgid "Running compare_providers() for %s"
 msgstr "Kjører compare_providers() for %s"
 
-#: ../yum/depsolve.py:842 ../yum/depsolve.py:848
+#: ../yum/depsolve.py:1051 ../yum/depsolve.py:1057
 #, python-format
 msgid "better arch in po %s"
 msgstr "bedre arch i po %s"
 
-#: ../yum/depsolve.py:887
+#: ../yum/depsolve.py:1132
 #, python-format
 msgid "%s obsoletes %s"
 msgstr "%s faser ut %s"
 
-#: ../yum/depsolve.py:898
+#: ../yum/depsolve.py:1144
 #, python-format
 msgid ""
 "archdist compared %s to %s on %s\n"
@@ -1313,109 +1639,121 @@ msgstr ""
 "archdist sammenlignet %s med %s på %s\n"
 " Vinner: %s"
 
-#: ../yum/depsolve.py:905
+#: ../yum/depsolve.py:1151
 #, python-format
 msgid "common sourcerpm %s and %s"
-msgstr ""
+msgstr "felles kilderpm %s og %s"
 
-#: ../yum/depsolve.py:911
+#: ../yum/depsolve.py:1157
 #, python-format
 msgid "common prefix of %s between %s and %s"
-msgstr ""
+msgstr "felles prefiks fra %s mellom %s og %s"
 
-#: ../yum/depsolve.py:919
+#: ../yum/depsolve.py:1165
 #, python-format
 msgid "Best Order: %s"
 msgstr "Beste rekkefølge: %s"
 
-#: ../yum/__init__.py:148
+#: ../yum/__init__.py:156
 msgid "doConfigSetup() will go away in a future version of Yum.\n"
 msgstr "doConfigSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#. FIXME: Use critical? or exception?
-#: ../yum/__init__.py:323
+#: ../yum/__init__.py:377
 #, python-format
 msgid "Repository %r is missing name in configuration, using id"
 msgstr "Pakkelager %r mangler navn i konfigurasjonsfilen(e), bruker id"
 
-#: ../yum/__init__.py:359
+#: ../yum/__init__.py:415
 msgid "plugins already initialised"
 msgstr "tillegg til yum er allerede initiert"
 
-#: ../yum/__init__.py:366
+#: ../yum/__init__.py:422
 msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#: ../yum/__init__.py:376
+#: ../yum/__init__.py:433
 msgid "Reading Local RPMDB"
 msgstr "Leser inn lokal RPM-database"
 
-#: ../yum/__init__.py:394
+#: ../yum/__init__.py:454
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() vil forsvinne i en kommende utgave av Yum\n"
 
-#: ../yum/__init__.py:414
+#: ../yum/__init__.py:474
 msgid "doSackSetup() will go away in a future version of Yum.\n"
 msgstr "doSackSetup() vil forsvinne i en kommende utgave av Yum\n"
 
-#: ../yum/__init__.py:431
+#: ../yum/__init__.py:504
 msgid "Setting up Package Sacks"
 msgstr "Lager sekker med pakker"
 
-#: ../yum/__init__.py:474
+#: ../yum/__init__.py:549
 #, python-format
 msgid "repo object for repo %s lacks a _resetSack method\n"
 msgstr "objekt for pakkelager %s mangler metoden _resetSack\n"
 
-#: ../yum/__init__.py:475
+#: ../yum/__init__.py:550
 msgid "therefore this repo cannot be reset.\n"
 msgstr "derfor kan ikke denne pakkeoversikten nullstilles\n"
 
-#: ../yum/__init__.py:480
+#: ../yum/__init__.py:555
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
 msgstr "doUpdateSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#: ../yum/__init__.py:492
+#: ../yum/__init__.py:567
 msgid "Building updates object"
 msgstr "Bygger opp oppdateringsobjekt"
 
-#: ../yum/__init__.py:523
+#: ../yum/__init__.py:602
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
 msgstr "doGroupSetup() vil forsvinne i en kommende utgave av Yum.\n"
 
-#: ../yum/__init__.py:547
+#: ../yum/__init__.py:627
 msgid "Getting group metadata"
 msgstr "Henter metadata for grupper"
 
-#: ../yum/__init__.py:572
+#: ../yum/__init__.py:653
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "Legger til gruppefil fra pakkeoversikt: %s"
 
-#: ../yum/__init__.py:577
+#: ../yum/__init__.py:662
 #, python-format
 msgid "Failed to add groups file for repository: %s - %s"
 msgstr "Kunne ikke legge til gruppefil for pakkeoversikt: %s - %s"
 
-#: ../yum/__init__.py:583
+#: ../yum/__init__.py:668
 msgid "No Groups Available in any repository"
 msgstr "Ingen grupper tilgjengelig fra noen lagre"
 
-#: ../yum/__init__.py:633
+#: ../yum/__init__.py:718
 msgid "Importing additional filelist information"
 msgstr "Henter mer informasjon om fil-lister"
 
-#: ../yum/__init__.py:684
+#: ../yum/__init__.py:732
+#, python-format
+msgid "The program %s%s%s is found in the yum-utils package."
+msgstr "Programmet %s%s%s er funnet i yum-utils pakken."
+
+#: ../yum/__init__.py:740
+msgid ""
+"There are unfinished transactions remaining. You might consider running yum-"
+"complete-transaction first to finish them."
+msgstr ""
+"Det er uferdige transaksjoner igjen. Du vil kanskje vurdere å kjøre yum-"
+"complete-transaction først for å gjøre dem ferdig."
+
+#: ../yum/__init__.py:808
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Runde %i for å hoppe over feil avhengighet"
 
-#: ../yum/__init__.py:707
+#: ../yum/__init__.py:860
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr "På grunn feil i avhengigheter ble det gjennomført %i runder "
 
-#: ../yum/__init__.py:708
+#: ../yum/__init__.py:861
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1423,98 +1761,92 @@ msgstr ""
 "\n"
 "Pakker som ble oversett på grunn av problemer med avhengigheter:"
 
-#: ../yum/__init__.py:712
+#: ../yum/__init__.py:865
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s fra %s"
 
-#: ../yum/__init__.py:792
+#: ../yum/__init__.py:1003
 msgid ""
 "Warning: scriptlet or other non-fatal errors occurred during transaction."
 msgstr ""
+"Advarsel: et scriptlet eller andre ikkekritiske feil oppstod under "
+"transaksjonen."
 
-#: ../yum/__init__.py:807
+#: ../yum/__init__.py:1018
 #, python-format
 msgid "Failed to remove transaction file %s"
 msgstr "Kunne ikke fjerne transaksjonsfil %s"
 
-#: ../yum/__init__.py:847
-#, python-format
-msgid "excluding for cost: %s from %s"
-msgstr "ekskluderer på grunn av kostnad: %s fra %s"
-
-#: ../yum/__init__.py:878
-msgid "Excluding Packages in global exclude list"
-msgstr "Ekskluderer pakker som er i global liste med ekskluderte pakker"
-
-#: ../yum/__init__.py:880
-#, python-format
-msgid "Excluding Packages from %s"
-msgstr "Ekskluderer pakker fra %s"
-
-#: ../yum/__init__.py:906
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1047
 #, python-format
-msgid "Reducing %s to included packages only"
-msgstr "Reduserer %s til kun inkluderte pakker"
+msgid "%s was supposed to be installed but is not!"
+msgstr "%s var ment til å bli installert men er ikke!"
 
-#: ../yum/__init__.py:911
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1086
 #, python-format
-msgid "Keeping included package %s"
-msgstr "Tar vare på inkludert pakke %s"
+msgid "%s was supposed to be removed but is not!"
+msgstr "%s var ment til å bli fjernet men er ikke!"
 
-#: ../yum/__init__.py:917
+#: ../yum/__init__.py:1132
 #, python-format
-msgid "Removing unmatched package %s"
-msgstr "Fjerner upassende pakke: %s"
-
-#: ../yum/__init__.py:920
-msgid "Finished"
-msgstr "Ferdig"
+msgid "excluding for cost: %s from %s"
+msgstr "ekskluderer på grunn av kostnad: %s fra %s"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:950
+#: ../yum/__init__.py:1203
 #, python-format
 msgid "Unable to check if PID %s is active"
 msgstr "Kunne ikke sjekke om PID %s er aktiv"
 
 #. Another copy seems to be running.
-#: ../yum/__init__.py:954
+#: ../yum/__init__.py:1207
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
 msgstr "Det fins allerede en låsfil %s: en annen Yum kjører med PID %s."
 
-#: ../yum/__init__.py:1017
+#: ../yum/__init__.py:1284
 msgid "Package does not match intended download"
 msgstr "Det er forskjell mellom nedlastet og forventet størrelse"
 
-#: ../yum/__init__.py:1032
+#: ../yum/__init__.py:1299
 msgid "Could not perform checksum"
 msgstr "Kunne ikke beregne sjekksum"
 
-#: ../yum/__init__.py:1035
+#: ../yum/__init__.py:1302
 msgid "Package does not match checksum"
 msgstr "Pakken har ikke korrekt sjekksum"
 
-#: ../yum/__init__.py:1079
+#: ../yum/__init__.py:1344
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
 msgstr "sjekksummen til pakken er feil, men mellomlagring er satt på for %s"
 
-#: ../yum/__init__.py:1082
+#: ../yum/__init__.py:1347 ../yum/__init__.py:1376
 #, python-format
 msgid "using local copy of %s"
 msgstr "bruker lokal kopi av %s"
 
-#: ../yum/__init__.py:1107
+#: ../yum/__init__.py:1388
 #, python-format
-msgid "Insufficient space in download directory %s to download"
-msgstr "Det er ikke nok ledig plass i katalogen %s hvor pakkene blir lagret"
+msgid ""
+"Insufficient space in download directory %s\n"
+"    * free   %s\n"
+"    * needed %s"
+msgstr ""
+"Det er ikke nok ledig plass i nedlastingskatalogen %s\n"
+"    * ledig   %s \n"
+"    * trenger %s"
 
-#: ../yum/__init__.py:1140
+#: ../yum/__init__.py:1437
 msgid "Header is not complete."
 msgstr "Filhode er ikke fullstendig."
 
-#: ../yum/__init__.py:1180
+#: ../yum/__init__.py:1474
 #, python-format
 msgid ""
 "Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1522,62 +1854,62 @@ msgstr ""
 "Filhode er ikke tilgjengelig lokalt og mellomlager-modus er aktivert Kan "
 "ikke hente ned %s"
 
-#: ../yum/__init__.py:1235
+#: ../yum/__init__.py:1529
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "Offentlig nøkkel for %s er ikke lagt inn"
 
-#: ../yum/__init__.py:1239
+#: ../yum/__init__.py:1533
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Problem ved åpning av pakke %s"
 
-#: ../yum/__init__.py:1247
+#: ../yum/__init__.py:1541
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "Offentlig nøkkel %s er ikke til å stole på"
 
-#: ../yum/__init__.py:1251
+#: ../yum/__init__.py:1545
 #, python-format
 msgid "Package %s is not signed"
 msgstr "Pakken %s er ikke signert"
 
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1583
 #, python-format
 msgid "Cannot remove %s"
 msgstr "Kan ikke fjerne %s"
 
-#: ../yum/__init__.py:1292
+#: ../yum/__init__.py:1587
 #, python-format
 msgid "%s removed"
 msgstr "%s fjernet"
 
-#: ../yum/__init__.py:1328
+#: ../yum/__init__.py:1623
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "Kan ikke fjerne %s fra fil %s"
 
-#: ../yum/__init__.py:1331
+#: ../yum/__init__.py:1627
 #, python-format
 msgid "%s file %s removed"
 msgstr "%s fil %s er fjernet"
 
-#: ../yum/__init__.py:1333
+#: ../yum/__init__.py:1629
 #, python-format
 msgid "%d %s files removed"
 msgstr "%d %s filer fjernet"
 
-#: ../yum/__init__.py:1386
+#: ../yum/__init__.py:1698
 #, python-format
 msgid "More than one identical match in sack for %s"
 msgstr "Mer enn ett identisk passende treff i sekken %s"
 
-#: ../yum/__init__.py:1391
+#: ../yum/__init__.py:1704
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "Ingenting passer %s.%s %s:%s-%s fra oppdatering"
 
-#: ../yum/__init__.py:1585
+#: ../yum/__init__.py:1937
 msgid ""
 "searchPackages() will go away in a future version of "
 "Yum.                      Use searchGenerator() instead. \n"
@@ -1585,165 +1917,177 @@ msgstr ""
 "searchPackages() vil forsvinne i en kommende utgave av Yum.\n"
 "Bruk heller searchGenerator()\n"
 
-#: ../yum/__init__.py:1621
+#: ../yum/__init__.py:1979
 #, python-format
 msgid "Searching %d packages"
 msgstr "Søker etter %d pakker"
 
-#: ../yum/__init__.py:1624
+#: ../yum/__init__.py:1983
 #, python-format
 msgid "searching package %s"
 msgstr "søker etter pakke %s"
 
-#: ../yum/__init__.py:1635
+#: ../yum/__init__.py:1995
 msgid "searching in file entries"
 msgstr "søker i filoversikt"
 
-#: ../yum/__init__.py:1641
+#: ../yum/__init__.py:2002
 msgid "searching in provides entries"
 msgstr "søker i oppføringer av tilbud"
 
-#: ../yum/__init__.py:1671
+#: ../yum/__init__.py:2035
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Tilbyder-treff: %s"
 
-#: ../yum/__init__.py:1717
+#: ../yum/__init__.py:2084
 msgid "No group data available for configured repositories"
 msgstr "Ingen gruppedata tilgjengelig for konfigurerte pakkelager"
 
-#: ../yum/__init__.py:1743 ../yum/__init__.py:1762 ../yum/__init__.py:1788
-#: ../yum/__init__.py:1794 ../yum/__init__.py:1850 ../yum/__init__.py:1854
+#: ../yum/__init__.py:2115 ../yum/__init__.py:2134 ../yum/__init__.py:2165
+#: ../yum/__init__.py:2171 ../yum/__init__.py:2250 ../yum/__init__.py:2254
+#: ../yum/__init__.py:2551
 #, python-format
 msgid "No Group named %s exists"
 msgstr "Det eksisterer ingen gruppe med navn %s "
 
-#: ../yum/__init__.py:1773 ../yum/__init__.py:1866
+#: ../yum/__init__.py:2146 ../yum/__init__.py:2267
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "pakke %s var ikke med i gruppe %s"
 
-#: ../yum/__init__.py:1811
+#: ../yum/__init__.py:2193
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Legger til pakke %s fra gruppe %s"
 
-#: ../yum/__init__.py:1816
+#: ../yum/__init__.py:2197
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "Ingen pakke med navn %s er tilgjendelig for installering"
 
-#: ../yum/__init__.py:1891
+#: ../yum/__init__.py:2294
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "Pakke tuppel %s ble ikke funnet i sekken med pakker"
 
-#: ../yum/__init__.py:1959 ../yum/__init__.py:1999
-msgid "Invalid versioned dependency string, try quoting it."
+#: ../yum/__init__.py:2308
+msgid ""
+"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
 msgstr ""
-"Den versjonerte strengen med avhengigheter er ugyldig, prøv å sette den i "
-"anførelsestegn."
+"getInstalledPackageObject() vil bli borte, bruk self.rpmdb.searchPkgTuple"
+"().\n"
 
-#: ../yum/__init__.py:1961 ../yum/__init__.py:2001
+#: ../yum/__init__.py:2364 ../yum/__init__.py:2409
 msgid "Invalid version flag"
 msgstr "Ugyldig versjonsflagg"
 
-#: ../yum/__init__.py:1973 ../yum/__init__.py:1977
+#: ../yum/__init__.py:2379 ../yum/__init__.py:2384
 #, python-format
 msgid "No Package found for %s"
 msgstr "Ingen pakke for %s er funnet"
 
-#: ../yum/__init__.py:2105
+#: ../yum/__init__.py:2584
 msgid "Package Object was not a package object instance"
 msgstr "Pakkeobjekt var ikke en pakkeobjektinstans"
 
-#: ../yum/__init__.py:2109
+#: ../yum/__init__.py:2588
 msgid "Nothing specified to install"
 msgstr "Ingenting oppgitt for installasjon"
 
-#. only one in there
-#: ../yum/__init__.py:2124
+#: ../yum/__init__.py:2604 ../yum/__init__.py:3333
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
 msgstr "Sjekker for virtuelle tilbydere eller tilbydere av filer for %s"
 
-#: ../yum/__init__.py:2130 ../yum/__init__.py:2446
+#: ../yum/__init__.py:2610 ../yum/__init__.py:2900 ../yum/__init__.py:3063
+#: ../yum/__init__.py:3339
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "Ingen treff for argument: %s"
 
-#. FIXME - this is where we could check to see if it already installed
-#. for returning better errors
-#: ../yum/__init__.py:2185
+#: ../yum/__init__.py:2684
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "Pakke %s er installert og ikke tilgjengelig"
+
+#: ../yum/__init__.py:2687
 msgid "No package(s) available to install"
 msgstr "Ingen pakke(r) er tilgjengelig for installering"
 
-#: ../yum/__init__.py:2198
+#: ../yum/__init__.py:2699
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "Pakke: %s - allerede i transaksjonensettet"
 
-#: ../yum/__init__.py:2212
+#: ../yum/__init__.py:2725
+#, python-format
+msgid "Package %s is obsoleted by %s which is already installed"
+msgstr "Pakke %s er foreldet av %s som allerede er installert"
+
+#: ../yum/__init__.py:2728
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr "Pakke %s er foreldet av %s, prøver å installere %s isteden."
+
+#: ../yum/__init__.py:2736
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "Pakke %s er allerede installert i siste versjon"
 
-#: ../yum/__init__.py:2219
+#: ../yum/__init__.py:2750
 #, python-format
 msgid "Package matching %s already installed. Checking for update."
 msgstr "Pakke med treff på %s er allerede lagt inn. Ser etter oppdatering"
 
-#: ../yum/__init__.py:2230
-#, fuzzy, python-format
-msgid "Package %s is obsoleted by %s, trying to install %s instead"
-msgstr ""
-"Pakka %s er ikke installert, så den kan ikke oppdateres. Bruk kommandoen yum "
-"install for å legge den inn."
-
 #. update everything (the easy case)
-#: ../yum/__init__.py:2263
+#: ../yum/__init__.py:2836
 msgid "Updating Everything"
 msgstr "Oppdaterer alt"
 
-#: ../yum/__init__.py:2366
+#: ../yum/__init__.py:2854 ../yum/__init__.py:2965 ../yum/__init__.py:2986
+#: ../yum/__init__.py:3012
 #, python-format
-msgid "Package is already obsoleted: %s.%s %s:%s-%s"
-msgstr "Pakka er allerede foreldet:  %s.%s %s:%s-%s"
-
-#: ../yum/__init__.py:2390
-#, fuzzy, python-format
-msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Vil ikke oppdatere pakke som allerede er foreldet: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2443
+#: ../yum/__init__.py:2889 ../yum/__init__.py:3060
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#. FIXME we should give the caller some nice way to hush this warning
-#. probably just a kwarg of 'silence_warnings' or something
-#. b/c when this is called from groupRemove() it makes a lot of
-#. garbage noise
-#: ../yum/__init__.py:2462
+#: ../yum/__init__.py:2956
+#, python-format
+msgid "Package is already obsoleted: %s.%s %s:%s-%s"
+msgstr "Pakka er allerede foreldet:  %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:2989 ../yum/__init__.py:3015
+#, python-format
+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgstr "Oppdatere ikke pakken som allerede er oppdatert: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:3076
 msgid "No package matched to remove"
 msgstr "Kunne ikke finne noen passende pakke for fjerning"
 
-#: ../yum/__init__.py:2496
+#: ../yum/__init__.py:3110 ../yum/__init__.py:3201 ../yum/__init__.py:3288
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "Kunne ikke åpne fil: %s. Hopper over."
 
-#: ../yum/__init__.py:2498
+#: ../yum/__init__.py:3113 ../yum/__init__.py:3204 ../yum/__init__.py:3291
 #, python-format
 msgid "Examining %s: %s"
 msgstr "Undersøker: %s: %s"
 
-#: ../yum/__init__.py:2504
+#: ../yum/__init__.py:3121 ../yum/__init__.py:3207 ../yum/__init__.py:3294
 #, python-format
 msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
 msgstr ""
+"Kan ikke legge til pakke %s til transaksjonen. Det er ikke en kompatibel "
+"arkitektur: %s"
 
-#: ../yum/__init__.py:2512
+#: ../yum/__init__.py:3129
 #, python-format
 msgid ""
 "Package %s not installed, cannot update it. Run yum install to install it "
@@ -1752,77 +2096,93 @@ msgstr ""
 "Pakka %s er ikke installert, så den kan ikke oppdateres. Bruk kommandoen yum "
 "install for å legge den inn."
 
-#: ../yum/__init__.py:2545
+#: ../yum/__init__.py:3164 ../yum/__init__.py:3218 ../yum/__init__.py:3305
 #, python-format
 msgid "Excluding %s"
 msgstr "Ekskluderer %s"
 
-#: ../yum/__init__.py:2549
+#: ../yum/__init__.py:3169
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Setter av %s for kommende installering"
 
-#: ../yum/__init__.py:2554
+#: ../yum/__init__.py:3175
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "Setter av %s som en oppdatering av %s"
 
-#: ../yum/__init__.py:2559
+#: ../yum/__init__.py:3182
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: vil ikke oppdatere installert pakke."
 
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:3237
 msgid "Problem in reinstall: no package matched to remove"
 msgstr "Problem ved reinstall: kunne ikke finne passende pakke og fjerne"
 
-#: ../yum/__init__.py:2587
-#, fuzzy, python-format
+#: ../yum/__init__.py:3249 ../yum/__init__.py:3366
+#, python-format
 msgid "Package %s is allowed multiple installs, skipping"
-msgstr "Pakke %s er allerede lagt inn, hopper over"
+msgstr "Pakke %s er tillatt flere installeringer, hopper over."
+
+#: ../yum/__init__.py:3267
+#, python-format
+msgid "Problem in reinstall: no package %s matched to install"
+msgstr "Problem i ominstalleringen: ingen pakke %s funnet for installering."
 
-#: ../yum/__init__.py:2594
-msgid "Problem in reinstall: no package matched to install"
-msgstr "Problem ved reinstall: kunne ikke finne passende pakke og installere "
+#: ../yum/__init__.py:3358
+msgid "No package(s) available to downgrade"
+msgstr "Ingen pakke(r) er tilgjengelig for nedgradering"
+
+#: ../yum/__init__.py:3402
+#, python-format
+msgid "No Match for available package: %s"
+msgstr "Ingen treff for tilgjengelig pakke: %s"
+
+#: ../yum/__init__.py:3408
+#, python-format
+msgid "Only Upgrade available on package: %s"
+msgstr "Bare oppgraderinger tilgjengelig på pakke: %s"
 
-#: ../yum/__init__.py:2641
+#: ../yum/__init__.py:3467
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "Henter GPG-nøkkel fra %s"
 
-#: ../yum/__init__.py:2647
+#: ../yum/__init__.py:3487
 msgid "GPG key retrieval failed: "
 msgstr "Henting av GPG-nøkkel feilet: "
 
-#: ../yum/__init__.py:2663
-msgid "GPG key parsing failed: "
-msgstr "Analyse av GPG-nøkkel feilet: "
+#: ../yum/__init__.py:3498
+#, python-format
+msgid "GPG key parsing failed: key does not have value %s"
+msgstr "Analyse av GPG-nøkkel feilet: nøkkelen har ikke verdi %s"
 
-#: ../yum/__init__.py:2667
+#: ../yum/__init__.py:3530
 #, python-format
 msgid "GPG key at %s (0x%s) is already installed"
 msgstr "GPG-nøkkel ved %s (0x%s) er allerede lagt inn"
 
 #. Try installing/updating GPG key
-#: ../yum/__init__.py:2672
+#: ../yum/__init__.py:3535 ../yum/__init__.py:3597
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "Legger inn GPG-nøkkel 0x%s \"%s\" fra %s"
 
-#: ../yum/__init__.py:2685
+#: ../yum/__init__.py:3552
 msgid "Not installing key"
 msgstr "Legger ikke inn nøkkel"
 
-#: ../yum/__init__.py:2691
+#: ../yum/__init__.py:3558
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "Import av nøkkel feilet (kode %d)"
 
-#: ../yum/__init__.py:2694
+#: ../yum/__init__.py:3559 ../yum/__init__.py:3618
 msgid "Key imported successfully"
 msgstr "Nøkler ble lagt inn med suksess"
 
-#: ../yum/__init__.py:2699
+#: ../yum/__init__.py:3564 ../yum/__init__.py:3623
 #, python-format
 msgid ""
 "The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -1834,134 +2194,178 @@ msgstr ""
 "Sjekk at korrekt URL (gpgkey opsjonen) er oppgitt for denne\n"
 "pakkeoversikten."
 
-#: ../yum/__init__.py:2708
+#: ../yum/__init__.py:3573
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "Import av nøkler hjalp ikke, feil nøkler?"
 
-#: ../yum/__init__.py:2789
+#: ../yum/__init__.py:3592
+#, python-format
+msgid "GPG key at %s (0x%s) is already imported"
+msgstr "GPG-nøkkel ved %s (0x%s) er allerede importert"
+
+#: ../yum/__init__.py:3612
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "Legger ikke inn nøkkel for arkiv %s"
+
+#: ../yum/__init__.py:3617
+msgid "Key import failed"
+msgstr "Import av nøkkel feilet"
+
+#: ../yum/__init__.py:3738
 msgid "Unable to find a suitable mirror."
 msgstr "Kunne ikke finne passende filspeil"
 
-#: ../yum/__init__.py:2791
+#: ../yum/__init__.py:3740
 msgid "Errors were encountered while downloading packages."
 msgstr "Det oppstod feil ved nedlastning av pakker."
 
-#: ../yum/__init__.py:2854
+#: ../yum/__init__.py:3781
+#, python-format
+msgid "Please report this error at %s"
+msgstr "Vennligst send en feilrapport til %s"
+
+#: ../yum/__init__.py:3805
 msgid "Test Transaction Errors: "
 msgstr "Feil ved testtransaksjon: "
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:197
+#: ../yum/plugins.py:202
 msgid "Loaded plugins: "
 msgstr "Tillegg som er i bruk:"
 
-#: ../yum/plugins.py:208
-#, fuzzy, python-format
+#: ../yum/plugins.py:216 ../yum/plugins.py:222
+#, python-format
 msgid "No plugin match for: %s"
-msgstr "Intet treff for argument: %s"
+msgstr "Intet programtilleggs treff for: %s"
+
+#: ../yum/plugins.py:252
+#, python-format
+msgid "Not loading \"%s\" plugin, as it is disabled"
+msgstr "Laster ikke programtillegg \"%s\", siden den er deaktivert"
 
-#: ../yum/plugins.py:221
+#. Give full backtrace:
+#: ../yum/plugins.py:264
 #, python-format
-msgid "\"%s\" plugin is disabled"
-msgstr "Tillegg: %s er ikke aktiv."
+msgid "Plugin \"%s\" can't be imported"
+msgstr "Programtillegg \"%s\" kan ikke bli importert"
 
-#: ../yum/plugins.py:233
+#: ../yum/plugins.py:271
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr "Tillegg \"%s\" tilfredstiller ikke versjonskravene fra Yum."
 
-#: ../yum/plugins.py:237
+#: ../yum/plugins.py:276
 #, python-format
 msgid "Plugin \"%s\" requires API %s. Supported API is %s."
 msgstr "Tillegg \"%s\" krever API versjon: %s. Men støttet API versjon er %s."
 
-#: ../yum/plugins.py:266
+#: ../yum/plugins.py:309
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "Laster tillegg \"%s\""
 
-#: ../yum/plugins.py:273
+#: ../yum/plugins.py:316
 #, python-format
 msgid ""
 "Two or more plugins with the name \"%s\" exist in the plugin search path"
 msgstr "Det finnes to eller flere tillegg med navn «%s» i søkestien for tillegg"
 
-#: ../yum/plugins.py:293
+#: ../yum/plugins.py:336
 #, python-format
 msgid "Configuration file %s not found"
 msgstr "Konfigurasjonsfila %s ble ikke funnet"
 
 #. for
 #. Configuration files for the plugin not found
-#: ../yum/plugins.py:296
+#: ../yum/plugins.py:339
 #, python-format
 msgid "Unable to find configuration file for plugin %s"
 msgstr "Kunne ikke finne konfigurasjon for tillegg %s"
 
-#: ../yum/plugins.py:450
+#: ../yum/plugins.py:497
 msgid "registration of commands not supported"
 msgstr "registering av kommandoer er ikke støttet"
 
 #: ../yum/rpmtrans.py:78
-#, fuzzy
 msgid "Repackaging"
 msgstr "Pakker på nytt"
 
-#: ../rpmUtils/oldUtils.py:26
+#: ../rpmUtils/oldUtils.py:33
 #, python-format
 msgid "Header cannot be opened or does not match %s, %s."
 msgstr "Kunne ikke åpne filhode eller filhode %s passet ikke til %s."
 
-#: ../rpmUtils/oldUtils.py:46
+#: ../rpmUtils/oldUtils.py:53
 #, python-format
 msgid "RPM %s fails md5 check"
 msgstr "RPM pakke %s feilet i sjekk av md5-sum"
 
-#: ../rpmUtils/oldUtils.py:144
+#: ../rpmUtils/oldUtils.py:151
 msgid "Could not open RPM database for reading. Perhaps it is already in use?"
 msgstr "Kunne ikk åpen RPM database for lesing. I bruk av noen andre?"
 
-#: ../rpmUtils/oldUtils.py:174
+#: ../rpmUtils/oldUtils.py:183
 msgid "Got an empty Header, something has gone wrong"
 msgstr "Filhode var tomt, noe har gått galt"
 
-#: ../rpmUtils/oldUtils.py:244 ../rpmUtils/oldUtils.py:251
-#: ../rpmUtils/oldUtils.py:254 ../rpmUtils/oldUtils.py:257
+#: ../rpmUtils/oldUtils.py:253 ../rpmUtils/oldUtils.py:260
+#: ../rpmUtils/oldUtils.py:263 ../rpmUtils/oldUtils.py:266
 #, python-format
 msgid "Damaged Header %s"
 msgstr "Filhode til %s er ødelagt"
 
-#: ../rpmUtils/oldUtils.py:272
+#: ../rpmUtils/oldUtils.py:281
 #, python-format
 msgid "Error opening rpm %s - error %s"
 msgstr "Kunne ikke åpen rpm pakke %s - feilen er %s"
 
-#~ msgid "Searching pkgSack for dep: %s"
-#~ msgstr "Søker i pkgSack etter avhengighet: %s"
+#~ msgid "Parsing package install arguments"
+#~ msgstr "Analyserer argumentene for pakkeinstallasjon"
 
-#~ msgid "Potential match for %s from %s"
-#~ msgstr "Potensielt treff for %s i %s"
+#~ msgid "Could not find update match for %s"
+#~ msgstr "Kunne ikke finne oppdatering som passet for %s"
 
-#~ msgid "Matched %s to require for %s"
-#~ msgstr "Passende %s for å tilfredstille %s"
+#~ msgid "Matching packages for package list to user args"
+#~ msgstr "Tilpasser pakkeliste etter brukers ønske"
 
-#~ msgid "Needed Require has already been looked up, cheating"
-#~ msgstr "Nødvendig avhengighet har allerede blitt plukket opp, jukser"
+#~ msgid ""
+#~ "\n"
+#~ "Transaction Summary\n"
+#~ "=============================================================================\n"
+#~ "Install  %5.5s Package(s)         \n"
+#~ "Update   %5.5s Package(s)         \n"
+#~ "Remove   %5.5s Package(s)         \n"
+#~ msgstr ""
+#~ "\n"
+#~ "Oversikt over transaksjon\n"
+#~ "=============================================================================\n"
+#~ "Legger inn %5.5s pakker\n"
+#~ "Oppdaterer %5.5s pakker\n"
+#~ "Fjerner    %5.5s pakker\n"
 
-#~ msgid "Needed Require is not a package name. Looking up: %s"
-#~ msgstr "Nødvendig avhengighet er ikke et navn på pakke. Ser etter: %s"
+#~ msgid "Excluding Packages in global exclude list"
+#~ msgstr "Ekskluderer pakker som er i global liste med ekskluderte pakker"
 
-#~ msgid "Potential Provider: %s"
-#~ msgstr "Potensiell tilbyder: %s"
+#~ msgid "Excluding Packages from %s"
+#~ msgstr "Ekskluderer pakker fra %s"
 
-#~ msgid "Mode is %s for provider of %s: %s"
-#~ msgstr "Modus er %s for tilbyder av %s: %s"
+#~ msgid "Reducing %s to included packages only"
+#~ msgstr "Reduserer %s til kun inkluderte pakker"
 
-#~ msgid "Mode for pkg providing %s: %s"
-#~ msgstr "Modus for pakke som tilbyr %s: %s"
+#~ msgid "Keeping included package %s"
+#~ msgstr "Tar vare på inkludert pakke %s"
 
-#~ msgid "Unresolvable requirement %s for %s"
-#~ msgstr "Avhengighet %s kan ikke løses opp: %s"
+#~ msgid "Removing unmatched package %s"
+#~ msgstr "Fjerner upassende pakke: %s"
+
+#~ msgid "Finished"
+#~ msgstr "Ferdig"
+
+#~ msgid "Invalid versioned dependency string, try quoting it."
+#~ msgstr ""
+#~ "Den versjonerte strengen med avhengigheter er ugyldig, prøv å sette den i "
+#~ "anførelsestegn."
 
 #~ msgid "Looking for Obsoletes for %s"
 #~ msgstr "Leter opp informasjon utgåtte pakker for %s"
@@ -1978,9 +2382,6 @@ msgstr "Kunne ikke åpen rpm pakke %s - feilen er %s"
 #~ msgid "%s conflicts with %s"
 #~ msgstr "%s er i konflikt med %s"
 
-#~ msgid "Package %s needs %s, this is not available."
-#~ msgstr "Pakke %s trenger %s, dessverre er denne ikke tilgjengelig."
-
 #~ msgid "Package %s conflicts with %s."
 #~ msgstr "Pakke %s er i konflikt med %s."
 
diff --git a/po/pl.po b/po/pl.po
index 8da727a..ba98fc0 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,15 +5,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-09 14:52+0200\n"
-"PO-Revision-Date: 2009-04-09 16:19+0200\n"
+"POT-Creation-Date: 2009-06-22 21:06+0200\n"
+"PO-Revision-Date: 2009-06-22 21:07+0200\n"
 "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
 "Language-Team: Polish <pl@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:936 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:939 ../yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "Aktualizowanie"
 
@@ -21,7 +21,7 @@ msgstr "Aktualizowanie"
 msgid "Erasing"
 msgstr "Usuwanie"
 
-#: ../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 "Instalowanie"
@@ -30,7 +30,7 @@ msgstr "Instalowanie"
 msgid "Obsoleted"
 msgstr "Przestarzałe"
 
-#: ../callback.py:54 ../output.py:1043
+#: ../callback.py:54 ../output.py:1060
 msgid "Updated"
 msgstr "Zaktualizowano"
 
@@ -38,7 +38,7 @@ msgstr "Zaktualizowano"
 msgid "Erased"
 msgstr "Usunięto"
 
-#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1041
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1058
 msgid "Installed"
 msgstr "Zainstalowano"
 
@@ -60,7 +60,7 @@ msgstr "Błąd: nieprawidłowy stan wyjścia: %s dla %s"
 msgid "Erased: %s"
 msgstr "Usunięto: %s"
 
-#: ../callback.py:217 ../output.py:937
+#: ../callback.py:217 ../output.py:940
 msgid "Removing"
 msgstr "Usuwanie"
 
@@ -68,60 +68,60 @@ msgstr "Usuwanie"
 msgid "Cleanup"
 msgstr "Czyszczenie"
 
-#: ../cli.py:104
+#: ../cli.py:107
 #, python-format
 msgid "Command \"%s\" already defined"
 msgstr "Polecenie \"%s\" zostało już określone"
 
-#: ../cli.py:116
+#: ../cli.py:119
 msgid "Setting up repositories"
 msgstr "Ustawianie repozytoriów"
 
-#: ../cli.py:127
+#: ../cli.py:130
 msgid "Reading repository metadata in from local files"
 msgstr "Odczytywanie metadanych repozytoriów z lokalnych plików"
 
-#: ../cli.py:190 ../utils.py:87
+#: ../cli.py:193 ../utils.py:87
 #, python-format
 msgid "Config Error: %s"
 msgstr "Błąd konfiguracji: %s"
 
-#: ../cli.py:193 ../cli.py:1231 ../utils.py:90
+#: ../cli.py:196 ../cli.py:1242 ../utils.py:90
 #, python-format
 msgid "Options Error: %s"
 msgstr "Błąd opcji: %s"
 
-#: ../cli.py:221
+#: ../cli.py:225
 #, python-format
 msgid "  Installed: %s-%s at %s"
 msgstr "  Zainstalowane: %s-%s o %s"
 
-#: ../cli.py:223
+#: ../cli.py:227
 #, python-format
 msgid "  Built    : %s at %s"
 msgstr "  Zbudowane    : %s o %s"
 
-#: ../cli.py:225
+#: ../cli.py:229
 #, python-format
 msgid "  Committed: %s at %s"
 msgstr "  Wysłane: %s o %s"
 
-#: ../cli.py:264
+#: ../cli.py:268
 msgid "You need to give some command"
 msgstr "Musisz podać jakieś polecenie"
 
-#: ../cli.py:307
+#: ../cli.py:311
 msgid "Disk Requirements:\n"
 msgstr "Wymagana przestrzeń na dysku:\n"
 
-#: ../cli.py:309
+#: ../cli.py:313
 #, python-format
 msgid "  At least %dMB needed on the %s filesystem.\n"
 msgstr "  Potrzeba co najmniej %d MB w systemie plików %s.\n"
 
 #. TODO: simplify the dependency errors?
 #. Fixup the summary
-#: ../cli.py:314
+#: ../cli.py:318
 msgid ""
 "Error Summary\n"
 "-------------\n"
@@ -129,56 +129,56 @@ msgstr ""
 "Podsumowanie błędów\n"
 "-------------------\n"
 
-#: ../cli.py:357
+#: ../cli.py:361
 msgid "Trying to run the transaction but nothing to do. Exiting."
 msgstr "Próbowano wykonać transakcję, ale nie ma nic do zrobienia. Zamykanie."
 
-#: ../cli.py:393
+#: ../cli.py:397
 msgid "Exiting on user Command"
 msgstr "Zamykanie na polecenie użytkownika"
 
-#: ../cli.py:397
+#: ../cli.py:401
 msgid "Downloading Packages:"
 msgstr "Pobieranie pakietów:"
 
-#: ../cli.py:402
+#: ../cli.py:406
 msgid "Error Downloading Packages:\n"
 msgstr "Błąd podczas pobierania pakietów:\n"
 
-#: ../cli.py:416 ../yum/__init__.py:3575
+#: ../cli.py:420 ../yum/__init__.py:3750
 msgid "Running rpm_check_debug"
 msgstr "Wykonywanie rpm_check_debug"
 
-#: ../cli.py:419 ../yum/__init__.py:3578
+#: ../cli.py:423 ../yum/__init__.py:3753
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "BŁĄD rpm_check_debug i rozwiązywania zależności:"
 
-#: ../cli.py:423
+#: ../cli.py:427
 #, python-format
 msgid "Please report this error in %s"
 msgstr "Zgłoś ten błąd na %s"
 
-#: ../cli.py:429
+#: ../cli.py:433
 msgid "Running Transaction Test"
 msgstr "Wykonywanie testu transakcji"
 
-#: ../cli.py:445
+#: ../cli.py:449
 msgid "Finished Transaction Test"
 msgstr "Zakończono test transakcji"
 
-#: ../cli.py:447
+#: ../cli.py:451
 msgid "Transaction Check Error:\n"
 msgstr "Błąd podczas sprawdzania transakcji:\n"
 
-#: ../cli.py:454
+#: ../cli.py:458
 msgid "Transaction Test Succeeded"
 msgstr "Test transakcji został zakończony powodzeniem"
 
-#: ../cli.py:475
+#: ../cli.py:480
 msgid "Running Transaction"
 msgstr "Wykonywanie transakcji"
 
-#: ../cli.py:505
+#: ../cli.py:510
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
@@ -187,69 +187,79 @@ msgstr ""
 "uruchomienia.\n"
 "Użyj \"-y\", aby wymusić."
 
-#: ../cli.py:524 ../cli.py:558
+#: ../cli.py:529 ../cli.py:563
 msgid "  * Maybe you meant: "
 msgstr "  * Czy chodziło o: "
 
-#: ../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 "Pakiety %s%s%s są dostępne, ale nie są zainstalowane."
 
-#: ../cli.py:555 ../cli.py:586 ../cli.py:666
+#: ../cli.py:560 ../cli.py:591 ../cli.py:669
 #, python-format
 msgid "No package %s%s%s available."
 msgstr "Nie ma pakietu %s%s%s."
 
-#: ../cli.py:591 ../cli.py:693
+#: ../cli.py:596 ../cli.py:729
 msgid "Package(s) to install"
 msgstr "Pakiety do zainstalowania"
 
-#: ../cli.py:592 ../cli.py:672 ../cli.py:694 ../yumcommands.py:157
-#: ../yumcommands.py:1018
+#: ../cli.py:597 ../cli.py:675 ../cli.py:708 ../cli.py:730
+#: ../yumcommands.py:157
 msgid "Nothing to do"
 msgstr "Nie ma niczego do zrobienia"
 
-#: ../cli.py:625
+#: ../cli.py:630
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d pakietów oznaczonych do aktualizacji"
 
-#: ../cli.py:628
+#: ../cli.py:633
 msgid "No Packages marked for Update"
 msgstr "Brak pakietów oznaczonych do aktualizacji"
 
-#: ../cli.py:642
+#: ../cli.py:647
 #, python-format
 msgid "%d packages marked for removal"
 msgstr "%d pakietów oznaczonych do usunięcia"
 
-#: ../cli.py:645
+#: ../cli.py:650
 msgid "No Packages marked for removal"
 msgstr "Brak pakietów oznaczonych do usunięcia"
 
-#: ../cli.py:671
+#: ../cli.py:674
 msgid "Package(s) to downgrade"
 msgstr "Pakiety do instalacji starszej wersji"
 
-#: ../cli.py:684
+#: ../cli.py:698
+#, python-format
+msgid " (from %s)"
+msgstr " (z %s)"
+
+#: ../cli.py:700
+#, python-format
+msgid "Installed package %s%s%s%s not available."
+msgstr "Zainstalowany pakiet %s%s%s%s jest niedostępny."
+
+#: ../cli.py:707
+msgid "Package(s) to reinstall"
+msgstr "Pakiety do ponownego zainstalowania"
+
+#: ../cli.py:720
 msgid "No Packages Provided"
 msgstr "Nie podano pakietów"
 
-#: ../cli.py:739
-msgid "Matching packages for package list to user args"
-msgstr "Dopasowywanie listy pakietów do parametrów użytkownika"
-
-#: ../cli.py:788
+#: ../cli.py:804
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "Ostrzeżenie: nie znaleziono wyników dla: %s"
 
-#: ../cli.py:791
+#: ../cli.py:807
 msgid "No Matches found"
 msgstr "Brak wyników"
 
-#: ../cli.py:830
+#: ../cli.py:846
 #, python-format
 msgid ""
 "Warning: 3.0.x versions of yum would erroneously match against filenames.\n"
@@ -258,108 +268,108 @@ msgstr ""
 "Ostrzeżenie: wersje 3.0.x yuma błędnie dopasowują nazwy plików.\n"
 " Można użyć \"%s*/%s%s\" i/lub \"%s*bin/%s%s\", aby uzyskać to zachowanie"
 
-#: ../cli.py:846
+#: ../cli.py:862
 #, python-format
 msgid "No Package Found for %s"
 msgstr "Nie znaleziono pakietów dla %s"
 
-#: ../cli.py:858
+#: ../cli.py:874
 msgid "Cleaning up Everything"
 msgstr "Czyszczenie wszystkiego"
 
-#: ../cli.py:872
+#: ../cli.py:888
 msgid "Cleaning up Headers"
 msgstr "Czyszczenie nagłówków"
 
-#: ../cli.py:875
+#: ../cli.py:891
 msgid "Cleaning up Packages"
 msgstr "Czyszczenie pakietów"
 
-#: ../cli.py:878
+#: ../cli.py:894
 msgid "Cleaning up xml metadata"
 msgstr "Czytanie metadanych XML"
 
-#: ../cli.py:881
+#: ../cli.py:897
 msgid "Cleaning up database cache"
 msgstr "Czyszczenie pamięci podręcznej bazy danych"
 
-#: ../cli.py:884
+#: ../cli.py:900
 msgid "Cleaning up expire-cache metadata"
 msgstr "Czytanie metadanych wygasłej pamięci podręcznej"
 
-#: ../cli.py:887
+#: ../cli.py:903
 msgid "Cleaning up plugins"
 msgstr "Czyszczenie wtyczek"
 
-#: ../cli.py:912
+#: ../cli.py:928
 msgid "Installed Groups:"
 msgstr "Zainstalowane grupy:"
 
-#: ../cli.py:924
+#: ../cli.py:940
 msgid "Available Groups:"
 msgstr "Dostępne grupy:"
 
-#: ../cli.py:934
+#: ../cli.py:950
 msgid "Done"
 msgstr "Zakończono"
 
-#: ../cli.py:945 ../cli.py:963 ../cli.py:969 ../yum/__init__.py:2463
+#: ../cli.py:961 ../cli.py:979 ../cli.py:985 ../yum/__init__.py:2513
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Ostrzeżenie: grupa %s nie istnieje."
 
-#: ../cli.py:973
+#: ../cli.py:989
 msgid "No packages in any requested group available to install or update"
 msgstr ""
 "Brak pakietów dostępnych do instalacji lub aktualizacji w żadnej z żądanych "
 "grup"
 
-#: ../cli.py:975
+#: ../cli.py:991
 #, python-format
 msgid "%d Package(s) to Install"
 msgstr "%d pakietów do instalacji"
 
-#: ../cli.py:985 ../yum/__init__.py:2475
+#: ../cli.py:1001 ../yum/__init__.py:2525
 #, python-format
 msgid "No group named %s exists"
 msgstr "Grupa o nazwie %s nie istnieje"
 
-#: ../cli.py:991
+#: ../cli.py:1007
 msgid "No packages to remove from groups"
 msgstr "Brak pakietów do usunięcia z grup"
 
-#: ../cli.py:993
+#: ../cli.py:1009
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d pakietów do usunięcia"
 
-#: ../cli.py:1035
+#: ../cli.py:1051
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "Pakiet %s jest już zainstalowany, pomijanie"
 
-#: ../cli.py:1046
+#: ../cli.py:1062
 #, python-format
 msgid "Discarding non-comparable pkg %s.%s"
 msgstr "Odrzucanie pakietu %s.%s, którego nie można porównać"
 
 #. we've not got any installed that match n or n+a
-#: ../cli.py:1072
+#: ../cli.py:1088
 #, python-format
 msgid "No other %s installed, adding to list for potential install"
 msgstr ""
 "Inne %s nie są zainstalowane, dodawanie do listy potencjalnie instalowanych"
 
-#: ../cli.py:1092
+#: ../cli.py:1108
 msgid "Plugin Options"
 msgstr "Opcje wtyczki"
 
-#: ../cli.py:1100
+#: ../cli.py:1116
 #, python-format
 msgid "Command line error: %s"
 msgstr "Błąd wiersza poleceń: %s"
 
-#: ../cli.py:1113
+#: ../cli.py:1129
 #, python-format
 msgid ""
 "\n"
@@ -370,257 +380,257 @@ msgstr ""
 "\n"
 "%s: opcja %s wymaga parametru"
 
-#: ../cli.py:1171
+#: ../cli.py:1182
 msgid "--color takes one of: auto, always, never"
 msgstr "--color przyjmuje jedną z: auto, always, never"
 
-#: ../cli.py:1278
+#: ../cli.py:1289
 msgid "show this help message and exit"
 msgstr "wyświetla ten komunikat pomocy i wyłącza"
 
-#: ../cli.py:1282
+#: ../cli.py:1293
 msgid "be tolerant of errors"
 msgstr "toleruje błędy"
 
-#: ../cli.py:1284
+#: ../cli.py:1295
 msgid "run entirely from cache, don't update cache"
 msgstr "uruchamia wyłącznie z pamięci podręcznej i nie aktualizuje jej"
 
-#: ../cli.py:1286
+#: ../cli.py:1297
 msgid "config file location"
 msgstr "położenie pliku konfiguracji"
 
-#: ../cli.py:1288
+#: ../cli.py:1299
 msgid "maximum command wait time"
 msgstr "maksymalny czas oczekiwania na polecenie"
 
-#: ../cli.py:1290
+#: ../cli.py:1301
 msgid "debugging output level"
 msgstr "poziom wyjścia debugowania"
 
-#: ../cli.py:1294
+#: ../cli.py:1305
 msgid "show duplicates, in repos, in list/search commands"
 msgstr "wyświetla duplikaty w repozytoriach w poleceniach list/search"
 
-#: ../cli.py:1296
+#: ../cli.py:1307
 msgid "error output level"
 msgstr "poziom wyjścia błędów"
 
-#: ../cli.py:1299
+#: ../cli.py:1310
 msgid "quiet operation"
 msgstr "mało komunikatów"
 
-#: ../cli.py:1301
+#: ../cli.py:1312
 msgid "verbose operation"
 msgstr "dużo komunikatów"
 
-#: ../cli.py:1303
+#: ../cli.py:1314
 msgid "answer yes for all questions"
 msgstr "odpowiada tak na wszystkie pytania"
 
-#: ../cli.py:1305
+#: ../cli.py:1316
 msgid "show Yum version and exit"
 msgstr "wyświetla wersję yuma i wyłącza"
 
-#: ../cli.py:1306
+#: ../cli.py:1317
 msgid "set install root"
 msgstr "ustawia roota instalacji"
 
-#: ../cli.py:1310
+#: ../cli.py:1321
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "włącza jedno lub więcej repozytoriów (wieloznaczniki są dozwolone)"
 
-#: ../cli.py:1314
+#: ../cli.py:1325
 msgid "disable one or more repositories (wildcards allowed)"
 msgstr "wyłącza jedno lub więcej repozytoriów (wieloznaczniki są dozwolone)"
 
-#: ../cli.py:1317
+#: ../cli.py:1328
 msgid "exclude package(s) by name or glob"
 msgstr "wyklucza pakiety po nazwie lub wyrażeniu regularnym"
 
-#: ../cli.py:1319
+#: ../cli.py:1330
 msgid "disable exclude from main, for a repo or for everything"
 msgstr "wyłącza wykluczanie z głównego, dla repozytorium lub wszystkiego"
 
-#: ../cli.py:1322
+#: ../cli.py:1333
 msgid "enable obsoletes processing during updates"
 msgstr "włącza przetwarzanie przestarzałych pakietów podczas aktualizacji"
 
-#: ../cli.py:1324
+#: ../cli.py:1335
 msgid "disable Yum plugins"
 msgstr "wyłącza wtyczki yuma"
 
-#: ../cli.py:1326
+#: ../cli.py:1337
 msgid "disable gpg signature checking"
 msgstr "wyłącza sprawdzanie podpisu GPG"
 
-#: ../cli.py:1328
+#: ../cli.py:1339
 msgid "disable plugins by name"
 msgstr "wyłącza wtyczki po nazwie"
 
-#: ../cli.py:1331
+#: ../cli.py:1342
 msgid "enable plugins by name"
 msgstr "włącza wtyczki po nazwie"
 
-#: ../cli.py:1334
+#: ../cli.py:1345
 msgid "skip packages with depsolving problems"
 msgstr "pomija pakiety mające problemy z rozwiązaniem zależności"
 
-#: ../cli.py:1336
+#: ../cli.py:1347
 msgid "control whether color is used"
 msgstr "kontroluje użycie kolorów"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "Jan"
 msgstr "sty"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "Feb"
 msgstr "lut"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "Mar"
 msgstr "mar"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "Apr"
 msgstr "kwi"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "May"
 msgstr "maj"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "Jun"
 msgstr "cze"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Jul"
 msgstr "lip"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Aug"
 msgstr "sie"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Sep"
 msgstr "wrz"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Oct"
 msgstr "paź"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Nov"
 msgstr "lis"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Dec"
 msgstr "gru"
 
-#: ../output.py:312
+#: ../output.py:314
 msgid "Trying other mirror."
 msgstr "Próbowanie innego serwera lustrzanego."
 
-#: ../output.py:534
+#: ../output.py:536
 #, python-format
 msgid "Name       : %s%s%s"
 msgstr "Nazwa              : %s%s%s"
 
-#: ../output.py:535
+#: ../output.py:537
 #, python-format
 msgid "Arch       : %s"
 msgstr "Architektura       : %s"
 
-#: ../output.py:537
+#: ../output.py:539
 #, python-format
 msgid "Epoch      : %s"
 msgstr "Epoka              : %s"
 
-#: ../output.py:538
+#: ../output.py:540
 #, python-format
 msgid "Version    : %s"
 msgstr "Wersja             : %s"
 
-#: ../output.py:539
+#: ../output.py:541
 #, python-format
 msgid "Release    : %s"
 msgstr "Wydanie            : %s"
 
-#: ../output.py:540
+#: ../output.py:542
 #, python-format
 msgid "Size       : %s"
 msgstr "Rozmiar            : %s"
 
-#: ../output.py:541
+#: ../output.py:543
 #, python-format
 msgid "Repo       : %s"
 msgstr "Repozytorium       : %s"
 
-#: ../output.py:543
+#: ../output.py:545
 #, python-format
 msgid "From repo  : %s"
 msgstr "Z repozytorium     : %s"
 
-#: ../output.py:545
+#: ../output.py:547
 #, python-format
 msgid "Committer  : %s"
 msgstr "Twórca             : %s"
 
-#: ../output.py:546
+#: ../output.py:548
 #, python-format
 msgid "Committime : %s"
 msgstr "Czas wysłania      : %s"
 
-#: ../output.py:547
+#: ../output.py:549
 #, python-format
 msgid "Buildtime  : %s"
 msgstr "Czas zbudowania    : %s"
 
-#: ../output.py:549
+#: ../output.py:551
 #, python-format
 msgid "Installtime: %s"
 msgstr "Czas zainstalowania: %s"
 
-#: ../output.py:550
+#: ../output.py:552
 msgid "Summary    : "
 msgstr "Podsumowanie       : "
 
-#: ../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 "Licencja           : %s"
 
-#: ../output.py:554
+#: ../output.py:556
 msgid "Description: "
 msgstr "Opis               : "
 
-#: ../output.py:622
+#: ../output.py:624
 msgid "y"
 msgstr "t"
 
-#: ../output.py:622
+#: ../output.py:624
 msgid "yes"
 msgstr "tak"
 
-#: ../output.py:623
+#: ../output.py:625
 msgid "n"
 msgstr "n"
 
-#: ../output.py:623
+#: ../output.py:625
 msgid "no"
 msgstr "nie"
 
-#: ../output.py:627
+#: ../output.py:629
 msgid "Is this ok [y/N]: "
 msgstr "W porządku? [t/N]: "
 
-#: ../output.py:718
+#: ../output.py:720
 #, python-format
 msgid ""
 "\n"
@@ -629,133 +639,141 @@ msgstr ""
 "\n"
 "Grupa: %s"
 
-#: ../output.py:722
+#: ../output.py:724
 #, python-format
 msgid " Group-Id: %s"
 msgstr " Identyfikator grupy: %s"
 
-#: ../output.py:727
+#: ../output.py:729
 #, python-format
 msgid " Description: %s"
 msgstr " Opis: %s"
 
-#: ../output.py:729
+#: ../output.py:731
 msgid " Mandatory Packages:"
 msgstr " Pakiety obowiązkowe:"
 
-#: ../output.py:730
+#: ../output.py:732
 msgid " Default Packages:"
 msgstr " Domyślne pakiety:"
 
-#: ../output.py:731
+#: ../output.py:733
 msgid " Optional Packages:"
 msgstr " Pakiety opcjonalne:"
 
-#: ../output.py:732
+#: ../output.py:734
 msgid " Conditional Packages:"
 msgstr " Pakiety warunkowe:"
 
-#: ../output.py:752
+#: ../output.py:754
 #, python-format
 msgid "package: %s"
 msgstr "pakiet: %s"
 
-#: ../output.py:754
+#: ../output.py:756
 msgid "  No dependencies for this package"
 msgstr "  Brak zależności dla tego pakietu"
 
-#: ../output.py:759
+#: ../output.py:761
 #, python-format
 msgid "  dependency: %s"
 msgstr "  zależność: %s"
 
-#: ../output.py:761
+#: ../output.py:763
 msgid "   Unsatisfied dependency"
 msgstr "   Nierozwiązana zależność"
 
-#: ../output.py:833
+#: ../output.py:835
 #, python-format
 msgid "Repo        : %s"
 msgstr "Repozytorium: %s"
 
-#: ../output.py:834
+#: ../output.py:836
 msgid "Matched from:"
 msgstr "Dopasowano z:"
 
-#: ../output.py:842
+#: ../output.py:845
 msgid "Description : "
 msgstr "Opis        : "
 
-#: ../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 "Licencja    : %s"
 
-#: ../output.py:851
+#: ../output.py:854
 #, python-format
 msgid "Filename    : %s"
 msgstr "Nazwa pliku : %s"
 
-#: ../output.py:855
+#: ../output.py:858
 msgid "Other       : "
 msgstr "Inne        : "
 
-#: ../output.py:888
+#: ../output.py:891
 msgid "There was an error calculating total download size"
 msgstr "Wystąpił błąd podczas obliczania całkowitego rozmiaru pobierania"
 
-#: ../output.py:893
+#: ../output.py:896
 #, python-format
 msgid "Total size: %s"
 msgstr "Całkowity rozmiar: %s"
 
-#: ../output.py:896
+#: ../output.py:899
 #, python-format
 msgid "Total download size: %s"
 msgstr "Całkowity rozmiar pobierania: %s"
 
-#: ../output.py:938
+#: ../output.py:941
+msgid "Reinstalling"
+msgstr "Ponowne instalowanie"
+
+#: ../output.py:942
+msgid "Downgrading"
+msgstr "Instalowanie starszej wersji"
+
+#: ../output.py:943
 msgid "Installing for dependencies"
 msgstr "Instalowanie, aby rozwiązać zależności"
 
-#: ../output.py:939
+#: ../output.py:944
 msgid "Updating for dependencies"
 msgstr "Aktualizowanie, aby rozwiązać zależności"
 
-#: ../output.py:940
+#: ../output.py:945
 msgid "Removing for dependencies"
 msgstr "Usuwanie, aby rozwiązać zależności"
 
-#: ../output.py:947 ../output.py:1045
+#: ../output.py:952 ../output.py:1062
 msgid "Skipped (dependency problems)"
 msgstr "Pominięto (problemy z zależnościami)"
 
-#: ../output.py:968
+#: ../output.py:973
 msgid "Package"
 msgstr "Pakiet"
 
-#: ../output.py:968
+#: ../output.py:973
 msgid "Arch"
 msgstr "Architektura"
 
-#: ../output.py:969
+#: ../output.py:974
 msgid "Version"
 msgstr "Wersja"
 
-#: ../output.py:969
+#: ../output.py:974
 msgid "Repository"
 msgstr "Repozytorium"
 
-#: ../output.py:970
+#: ../output.py:975
 msgid "Size"
 msgstr "Rozmiar"
 
-#: ../output.py:982
+#: ../output.py:987
 #, python-format
 msgid ""
 "     replacing  %s%s%s.%s %s\n"
@@ -764,49 +782,63 @@ msgstr ""
 "     zastępuje  %s%s%s.%s %s\n"
 "\n"
 
-#: ../output.py:991
+#: ../output.py:996
 #, 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"
 "Podsumowanie transakcji\n"
 "%s\n"
-"Instalowanie   %5.5s pakietów     \n"
-"Aktualizowanie %5.5s pakietów     \n"
-"Usuwanie       %5.5s pakietów     \n"
 
-#: ../output.py:1039
+#: ../output.py:1003
+#, python-format
+msgid ""
+"Install   %5.5s Package(s)\n"
+"Upgrade   %5.5s Package(s)\n"
+msgstr ""
+"Instalacja   %5.5s pakiet(y)\n"
+"Aktualizacja %5.5s pakiet(y)\n"
+
+#: ../output.py:1012
+#, python-format
+msgid ""
+"Remove    %5.5s Package(s)\n"
+"Reinstall %5.5s Package(s)\n"
+"Downgrade %5.5s Package(s)\n"
+msgstr ""
+"Usunięcie                  %5.5s pakiet(y)\n"
+"Ponowna instalacja         %5.5s pakiet(y)\n"
+"Instalacja starszej wersji %5.5s pakiet(y)\n"
+
+#: ../output.py:1056
 msgid "Removed"
 msgstr "Usunięto"
 
-#: ../output.py:1040
+#: ../output.py:1057
 msgid "Dependency Removed"
 msgstr "Usunięto zależność"
 
-#: ../output.py:1042
+#: ../output.py:1059
 msgid "Dependency Installed"
 msgstr "Zainstalowano zależność"
 
-#: ../output.py:1044
+#: ../output.py:1061
 msgid "Dependency Updated"
 msgstr "Zaktualizowano zależność"
 
-#: ../output.py:1046
+#: ../output.py:1063
 msgid "Replaced"
 msgstr "Zastąpiono"
 
-#: ../output.py:1047
+#: ../output.py:1064
 msgid "Failed"
 msgstr "Nie powiodło się"
 
 #. Delta between C-c's so we treat as exit
-#: ../output.py:1113
+#: ../output.py:1130
 msgid "two"
 msgstr "dwóch"
 
@@ -814,78 +846,79 @@ msgstr "dwóch"
 #. 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:1141
 #, python-format
 msgid ""
 "\n"
 " Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
-"seconds to exit.\n"
+"seconds\n"
+"to exit.\n"
 msgstr ""
 "\n"
-" Obecne pobieranie zostało anulowane, %sprzerwij (Ctrl-C) ponownie%s w ciągu "
+" Obecne pobieranie zostało anulowane, %sprzerwij (ctrl-c) ponownie%s w ciągu "
 "%s%s%s sekund, aby zakończyć.\n"
 
-#: ../output.py:1134
+#: ../output.py:1152
 msgid "user interrupt"
 msgstr "przerwane przez użytkownika"
 
-#: ../output.py:1150
+#: ../output.py:1168
 msgid "Total"
 msgstr "Razem"
 
-#: ../output.py:1164
+#: ../output.py:1183
 msgid "installed"
 msgstr "zainstalowany"
 
-#: ../output.py:1165
+#: ../output.py:1184
 msgid "updated"
 msgstr "zaktualizowany"
 
-#: ../output.py:1166
+#: ../output.py:1185
 msgid "obsoleted"
 msgstr "zastąpiony"
 
-#: ../output.py:1167
+#: ../output.py:1186
 msgid "erased"
 msgstr "usunięty"
 
-#: ../output.py:1171
+#: ../output.py:1190
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> Pakiet %s.%s %s:%s-%s zostanie %s"
 
-#: ../output.py:1178
+#: ../output.py:1197
 msgid "--> Running transaction check"
 msgstr "--> Wykonywanie sprawdzania transakcji"
 
-#: ../output.py:1183
+#: ../output.py:1202
 msgid "--> Restarting Dependency Resolution with new changes."
 msgstr "--> Ponowne uruchamianie rozwiązywania zależności z nowymi zmianami."
 
-#: ../output.py:1188
+#: ../output.py:1207
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Zakończono rozwiązywanie zależności"
 
-#: ../output.py:1193
+#: ../output.py:1212 ../output.py:1217
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> Przetwarzanie zależności: %s dla pakietu: %s"
 
-#: ../output.py:1198
+#: ../output.py:1221
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Nierozwiązana zależność: %s"
 
-#: ../output.py:1204
+#: ../output.py:1227 ../output.py:1232
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> Przetwarzanie konfliktów: %s jest w konflikcie z %s"
 
-#: ../output.py:1207
+#: ../output.py:1236
 msgid "--> Populating transaction set with selected packages. Please wait."
 msgstr "--> Układanie zestawu transakcji z wybranymi pakietami. Proszę czekać."
 
-#: ../output.py:1211
+#: ../output.py:1240
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
 msgstr "---> Pobieranie nagłówka dla %s do umieszczenia w zestawie transakcji."
@@ -1011,7 +1044,7 @@ msgid "Updated Packages"
 msgstr "Zaktualizowane pakiety"
 
 #. 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 "Zastępowanie przestarzałych pakietów"
 
@@ -1079,158 +1112,158 @@ msgstr "Utworzono pamięć podręczną metadanych"
 msgid "Remove cached data"
 msgstr "Usunięto dane z pamięci podręcznej"
 
-#: ../yumcommands.py:552
+#: ../yumcommands.py:551
 msgid "Find what package provides the given value"
 msgstr "Znajdź pakiet dostarczający podaną wartość"
 
-#: ../yumcommands.py:572
+#: ../yumcommands.py:571
 msgid "Check for available package updates"
 msgstr "Sprawdź dostępne aktualizacje pakietów"
 
-#: ../yumcommands.py:621
+#: ../yumcommands.py:620
 msgid "Search package details for the given string"
 msgstr "Znajdź szczegóły pakietów dla podanego łańcucha tekstowego"
 
-#: ../yumcommands.py:627
+#: ../yumcommands.py:626
 msgid "Searching Packages: "
 msgstr "Wyszukiwanie pakietów: "
 
-#: ../yumcommands.py:644
+#: ../yumcommands.py:643
 msgid "Update packages taking obsoletes into account"
 msgstr "Zaktualizuj pakiety, w tym przestarzałe"
 
-#: ../yumcommands.py:652
+#: ../yumcommands.py:651
 msgid "Setting up Upgrade Process"
 msgstr "Ustawianie procesu aktualizacji"
 
-#: ../yumcommands.py:666
+#: ../yumcommands.py:665
 msgid "Install a local RPM"
 msgstr "Zainstaluj lokalny pakiet RPM"
 
-#: ../yumcommands.py:674
+#: ../yumcommands.py:673
 msgid "Setting up Local Package Process"
 msgstr "Ustawianie procesu lokalnego pakietu"
 
-#: ../yumcommands.py:693
+#: ../yumcommands.py:692
 msgid "Determine which package provides the given dependency"
 msgstr "Określ, który pakiet dostarcza podaną zależność"
 
-#: ../yumcommands.py:696
+#: ../yumcommands.py:695
 msgid "Searching Packages for Dependency:"
 msgstr "Wyszukiwanie pakietów dla zależności:"
 
-#: ../yumcommands.py:710
+#: ../yumcommands.py:709
 msgid "Run an interactive yum shell"
 msgstr "Uruchom interaktywną powłokę yuma"
 
-#: ../yumcommands.py:716
+#: ../yumcommands.py:715
 msgid "Setting up Yum Shell"
 msgstr "Ustawianie powłoki yuma"
 
-#: ../yumcommands.py:734
+#: ../yumcommands.py:733
 msgid "List a package's dependencies"
 msgstr "Wyświetl listę zależności pakietu"
 
-#: ../yumcommands.py:740
+#: ../yumcommands.py:739
 msgid "Finding dependencies: "
 msgstr "Wyszukiwanie zależności: "
 
-#: ../yumcommands.py:756
+#: ../yumcommands.py:755
 msgid "Display the configured software repositories"
 msgstr "Wyświetl skonfigurowane repozytoria oprogramowania"
 
-#: ../yumcommands.py:804 ../yumcommands.py:805
+#: ../yumcommands.py:803 ../yumcommands.py:804
 msgid "enabled"
 msgstr "włączone"
 
-#: ../yumcommands.py:813 ../yumcommands.py:814
+#: ../yumcommands.py:812 ../yumcommands.py:813
 msgid "disabled"
 msgstr "wyłączone"
 
-#: ../yumcommands.py:828
+#: ../yumcommands.py:827
 msgid "Repo-id     : "
 msgstr "Identyfikator repozytorium        : "
 
-#: ../yumcommands.py:829
+#: ../yumcommands.py:828
 msgid "Repo-name   : "
 msgstr "Nazwa repozytorium                : "
 
-#: ../yumcommands.py:830
+#: ../yumcommands.py:829
 msgid "Repo-status : "
 msgstr "Stan repozytorium                 : "
 
-#: ../yumcommands.py:832
+#: ../yumcommands.py:831
 msgid "Repo-revision: "
 msgstr "Wersja repozytorium               : "
 
-#: ../yumcommands.py:836
+#: ../yumcommands.py:835
 msgid "Repo-tags   : "
 msgstr "Znaczniki repozytorium            : "
 
-#: ../yumcommands.py:842
+#: ../yumcommands.py:841
 msgid "Repo-distro-tags: "
 msgstr "Znaczniki dystrybucji repozytorium: "
 
-#: ../yumcommands.py:847
+#: ../yumcommands.py:846
 msgid "Repo-updated: "
 msgstr "Aktualizacje repozytorium         : "
 
-#: ../yumcommands.py:849
+#: ../yumcommands.py:848
 msgid "Repo-pkgs   : "
 msgstr "Pakiety repozytorium              : "
 
-#: ../yumcommands.py:850
+#: ../yumcommands.py:849
 msgid "Repo-size   : "
 msgstr "Rozmiar repozytorium              : "
 
-#: ../yumcommands.py:857
+#: ../yumcommands.py:856
 msgid "Repo-baseurl: "
 msgstr "Podstawowy URL repozytorium       : "
 
-#: ../yumcommands.py:861
+#: ../yumcommands.py:864
 msgid "Repo-metalink: "
 msgstr "Metaodnośnik repozytorium         : "
 
-#: ../yumcommands.py:865
+#: ../yumcommands.py:868
 msgid "  Updated    : "
 msgstr "  Zaktualizowano                  : "
 
-#: ../yumcommands.py:868
+#: ../yumcommands.py:871
 msgid "Repo-mirrors: "
 msgstr "Serwery lustrzane repozytorium    : "
 
-#: ../yumcommands.py:872
+#: ../yumcommands.py:875
 msgid "Repo-exclude: "
 msgstr "Wykluczenia z repozytorium        : "
 
-#: ../yumcommands.py:876
+#: ../yumcommands.py:879
 msgid "Repo-include: "
 msgstr "Dołączone z repozytorium          : "
 
 #. 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 "ID repozytorium"
 
-#: ../yumcommands.py:900 ../yumcommands.py:901 ../yumcommands.py:915
+#: ../yumcommands.py:903 ../yumcommands.py:904 ../yumcommands.py:918
 msgid "status"
 msgstr "stan"
 
-#: ../yumcommands.py:913
+#: ../yumcommands.py:916
 msgid "repo name"
 msgstr "nazwa repozytorium"
 
-#: ../yumcommands.py:939
+#: ../yumcommands.py:942
 msgid "Display a helpful usage message"
 msgstr "Wyświetl pomocny komunikat o używaniu"
 
-#: ../yumcommands.py:973
+#: ../yumcommands.py:976
 #, python-format
 msgid "No help available for %s"
 msgstr "Brak pomocy dla %s"
 
-#: ../yumcommands.py:978
+#: ../yumcommands.py:981
 msgid ""
 "\n"
 "\n"
@@ -1240,7 +1273,7 @@ msgstr ""
 "\n"
 "aliasy: "
 
-#: ../yumcommands.py:980
+#: ../yumcommands.py:983
 msgid ""
 "\n"
 "\n"
@@ -1250,26 +1283,34 @@ msgstr ""
 "\n"
 "alias: "
 
-#: ../yumcommands.py:1008
+#: ../yumcommands.py:1011
 msgid "Setting up Reinstall Process"
 msgstr "Ustawianie procesu ponownej instalacji"
 
-#: ../yumcommands.py:1017
-msgid "Package(s) to reinstall"
-msgstr "Pakiety do ponownego zainstalowania"
-
-#: ../yumcommands.py:1024
+#: ../yumcommands.py:1019
 msgid "reinstall a package"
 msgstr "ponownie zainstaluj pakiet"
 
-#: ../yumcommands.py:1042
+#: ../yumcommands.py:1037
 msgid "Setting up Downgrade Process"
 msgstr "Ustawianie procesu instalacji starszej wersji pakietu"
 
-#: ../yumcommands.py:1049
+#: ../yumcommands.py:1044
 msgid "downgrade a package"
 msgstr "zainstaluj starszą wersję pakietu"
 
+#: ../yumcommands.py:1058
+msgid "Display a version for the machine and/or available repos."
+msgstr "Wyświetl wersję dla komputera i/lub dostępnych repozytoriów."
+
+#: ../yumcommands.py:1085
+msgid "Installed:"
+msgstr "Zainstalowano:"
+
+#: ../yumcommands.py:1094
+msgid "Available:"
+msgstr "Dostępne:"
+
 #: ../yummain.py:42
 msgid ""
 "\n"
@@ -1394,200 +1435,200 @@ msgstr ""
 "\n"
 "Zamykanie na polecenie użytkownika."
 
-#: ../yum/depsolve.py:84
+#: ../yum/depsolve.py:83
 msgid "doTsSetup() will go away in a future version of Yum.\n"
 msgstr "doTsSetup() zostanie usunięte w przyszłych wersjach yuma.\n"
 
-#: ../yum/depsolve.py:99
+#: ../yum/depsolve.py:98
 msgid "Setting up TransactionSets before config class is up"
 msgstr "Ustawianie zestawów transakcji przed włączeniem klasy konfiguracji"
 
-#: ../yum/depsolve.py:150
+#: ../yum/depsolve.py:149
 #, python-format
 msgid "Invalid tsflag in config file: %s"
 msgstr "Nieprawidłowa flaga zestawu transakcji tsflag w pliku konfiguracji: %s"
 
-#: ../yum/depsolve.py:161
+#: ../yum/depsolve.py:160
 #, python-format
 msgid "Searching pkgSack for dep: %s"
 msgstr "Wyszukiwanie zestawu pakietów dla zależności: %s"
 
-#: ../yum/depsolve.py:184
+#: ../yum/depsolve.py:183
 #, python-format
 msgid "Potential match for %s from %s"
 msgstr "Potencjalny wynik dla %s z %s"
 
-#: ../yum/depsolve.py:192
+#: ../yum/depsolve.py:191
 #, python-format
 msgid "Matched %s to require for %s"
 msgstr "%s pasuje jako wymaganie dla %s"
 
-#: ../yum/depsolve.py:233
+#: ../yum/depsolve.py:232
 #, python-format
 msgid "Member: %s"
 msgstr "Członek: %s"
 
-#: ../yum/depsolve.py:247 ../yum/depsolve.py:739
+#: ../yum/depsolve.py:246 ../yum/depsolve.py:759
 #, python-format
 msgid "%s converted to install"
 msgstr "%s przekonwertowano do zainstalowania"
 
-#: ../yum/depsolve.py:254
+#: ../yum/depsolve.py:253
 #, python-format
 msgid "Adding Package %s in mode %s"
 msgstr "Dodawanie pakietu %s w trybie %s"
 
-#: ../yum/depsolve.py:264
+#: ../yum/depsolve.py:263
 #, python-format
 msgid "Removing Package %s"
 msgstr "Usuwanie pakietu %s"
 
-#: ../yum/depsolve.py:275
+#: ../yum/depsolve.py:285
 #, python-format
 msgid "%s requires: %s"
 msgstr "%s wymaga: %s"
 
-#: ../yum/depsolve.py:333
+#: ../yum/depsolve.py:343
 msgid "Needed Require has already been looked up, cheating"
 msgstr "Wymagana zależność została już znaleziona, oszukiwanie"
 
-#: ../yum/depsolve.py:343
+#: ../yum/depsolve.py:353
 #, python-format
 msgid "Needed Require is not a package name. Looking up: %s"
 msgstr "Wymagana zależność nie jest nazwą pakietu. Wyszukiwanie: %s"
 
-#: ../yum/depsolve.py:350
+#: ../yum/depsolve.py:360
 #, python-format
 msgid "Potential Provider: %s"
 msgstr "Potencjalny dostawca: %s"
 
-#: ../yum/depsolve.py:373
+#: ../yum/depsolve.py:383
 #, python-format
 msgid "Mode is %s for provider of %s: %s"
 msgstr "Tryb to %s dla dostawcy %s: %s"
 
-#: ../yum/depsolve.py:377
+#: ../yum/depsolve.py:387
 #, python-format
 msgid "Mode for pkg providing %s: %s"
 msgstr "Tryb dla pakietu dostarczającego %s: %s"
 
-#: ../yum/depsolve.py:381
+#: ../yum/depsolve.py:391
 #, python-format
 msgid "TSINFO: %s package requiring %s marked as erase"
 msgstr "TSINFO: pakiet %s wymagający %s został oznaczony jako do usunięcia"
 
-#: ../yum/depsolve.py:394
+#: ../yum/depsolve.py:404
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
 msgstr ""
 "TSINFO: zastępowanie przestarzałego pakietu %s pakietem %s, aby rozwiązać "
 "zależność."
 
-#: ../yum/depsolve.py:397
+#: ../yum/depsolve.py:407
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
 msgstr "TSINFO: aktualizowanie %s, aby rozwiązać zależność."
 
-#: ../yum/depsolve.py:405
+#: ../yum/depsolve.py:415
 #, python-format
 msgid "Cannot find an update path for dep for: %s"
 msgstr "Nie można znaleźć ścieżki aktualizacji dla zależności dla: %s"
 
-#: ../yum/depsolve.py:415
+#: ../yum/depsolve.py:425
 #, python-format
 msgid "Unresolvable requirement %s for %s"
 msgstr "Nie można rozwiązać wymagania %s dla %s"
 
-#: ../yum/depsolve.py:438
+#: ../yum/depsolve.py:448
 #, python-format
 msgid "Quick matched %s to require for %s"
 msgstr "Szybko dopasowano %s jako wymaganie %s"
 
 #. is it already installed?
-#: ../yum/depsolve.py:480
+#: ../yum/depsolve.py:490
 #, python-format
 msgid "%s is in providing packages but it is already installed, removing."
 msgstr ""
 "%s jest w dostarczających pakietach, ale jest już zainstalowany, usuwanie."
 
-#: ../yum/depsolve.py:496
+#: ../yum/depsolve.py:506
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
 msgstr ""
 "Pakiet %s potencjalnie rozwiązujący ma nowszą wersję w zestawie transakcji."
 
-#: ../yum/depsolve.py:507
+#: ../yum/depsolve.py:517
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
 msgstr "Pakiet %s potencjalnie rozwiązujący ma zainstalowaną nowszą wersję."
 
-#: ../yum/depsolve.py:515 ../yum/depsolve.py:564
+#: ../yum/depsolve.py:525 ../yum/depsolve.py:574
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "Brakująca zależność: %s jest wymagane przez pakiet %s"
 
-#: ../yum/depsolve.py:528
+#: ../yum/depsolve.py:538
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s jest już w zestawie transakcji, pomijanie"
 
-#: ../yum/depsolve.py:574
+#: ../yum/depsolve.py:584
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: oznaczanie %s jako aktualizacji dla %s"
 
-#: ../yum/depsolve.py:582
+#: ../yum/depsolve.py:592
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: oznaczanie %s jako do zainstalowania dla %s"
 
-#: ../yum/depsolve.py:675 ../yum/depsolve.py:757
+#: ../yum/depsolve.py:695 ../yum/depsolve.py:777
 msgid "Success - empty transaction"
 msgstr "Powodzenie - pusta transakcja"
 
-#: ../yum/depsolve.py:714 ../yum/depsolve.py:729
+#: ../yum/depsolve.py:734 ../yum/depsolve.py:749
 msgid "Restarting Loop"
 msgstr "Ponowne uruchamianie pętli"
 
-#: ../yum/depsolve.py:745
+#: ../yum/depsolve.py:765
 msgid "Dependency Process ending"
 msgstr "Kończenie procesu zależności"
 
-#: ../yum/depsolve.py:751
+#: ../yum/depsolve.py:771
 #, python-format
 msgid "%s from %s has depsolving problems"
 msgstr "%s z %s ma problemy z rozwiązywaniem zależności"
 
-#: ../yum/depsolve.py:758
+#: ../yum/depsolve.py:778
 msgid "Success - deps resolved"
 msgstr "Powodzenie - rozwiązano zależności"
 
-#: ../yum/depsolve.py:772
+#: ../yum/depsolve.py:792
 #, python-format
 msgid "Checking deps for %s"
 msgstr "Sprawdzanie zależności dla %s"
 
-#: ../yum/depsolve.py:855
+#: ../yum/depsolve.py:875
 #, python-format
 msgid "looking for %s as a requirement of %s"
 msgstr "wyszukiwanie %s jako wymagania %s"
 
-#: ../yum/depsolve.py:997
+#: ../yum/depsolve.py:1017
 #, python-format
 msgid "Running compare_providers() for %s"
 msgstr "Wykonywanie compare_providers() dla %s"
 
-#: ../yum/depsolve.py:1031 ../yum/depsolve.py:1037
+#: ../yum/depsolve.py:1051 ../yum/depsolve.py:1057
 #, python-format
 msgid "better arch in po %s"
 msgstr "lepsze arch w po %s"
 
-#: ../yum/depsolve.py:1099
+#: ../yum/depsolve.py:1132
 #, python-format
 msgid "%s obsoletes %s"
 msgstr "%s zastępuje %s"
 
-#: ../yum/depsolve.py:1111
+#: ../yum/depsolve.py:1144
 #, python-format
 msgid ""
 "archdist compared %s to %s on %s\n"
@@ -1596,103 +1637,103 @@ msgstr ""
 "archdist porównało %s do %s na %s\n"
 "  Zwycięzca: %s"
 
-#: ../yum/depsolve.py:1118
+#: ../yum/depsolve.py:1151
 #, python-format
 msgid "common sourcerpm %s and %s"
 msgstr "wspólny źródłowy pakiet RPM %s i %s"
 
-#: ../yum/depsolve.py:1124
+#: ../yum/depsolve.py:1157
 #, python-format
 msgid "common prefix of %s between %s and %s"
 msgstr "wspólny przedrostek %s dla %s i %s"
 
-#: ../yum/depsolve.py:1132
+#: ../yum/depsolve.py:1165
 #, python-format
 msgid "Best Order: %s"
 msgstr "Najlepszy porządek: %s"
 
-#: ../yum/__init__.py:158
+#: ../yum/__init__.py:159
 msgid "doConfigSetup() will go away in a future version of Yum.\n"
 msgstr "doConfigSetup() zostanie usunięte w przyszłych wersjach yuma.\n"
 
-#: ../yum/__init__.py:367
+#: ../yum/__init__.py:380
 #, python-format
 msgid "Repository %r is missing name in configuration, using id"
 msgstr "Repozytorium %r nie posiada nazwy w konfiguracji, używanie ID"
 
-#: ../yum/__init__.py:405
+#: ../yum/__init__.py:418
 msgid "plugins already initialised"
 msgstr "wtyczki zostały już zainicjowane"
 
-#: ../yum/__init__.py:412
+#: ../yum/__init__.py:425
 msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
 msgstr "doRpmDBSetup() zostanie usunięte w przyszłych wersjach yuma.\n"
 
-#: ../yum/__init__.py:423
+#: ../yum/__init__.py:436
 msgid "Reading Local RPMDB"
 msgstr "Odczytywanie lokalnej bazy danych RPM"
 
-#: ../yum/__init__.py:441
+#: ../yum/__init__.py:457
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() zostanie usunięte w przyszłych wersjach yuma.\n"
 
-#: ../yum/__init__.py:461
+#: ../yum/__init__.py:477
 msgid "doSackSetup() will go away in a future version of Yum.\n"
 msgstr "doSackSetup() zostanie usunięte w przyszłych wersjach yuma.\n"
 
-#: ../yum/__init__.py:478
+#: ../yum/__init__.py:494
 msgid "Setting up Package Sacks"
 msgstr "Ustawianie zestawów pakietów"
 
-#: ../yum/__init__.py:521
+#: ../yum/__init__.py:537
 #, python-format
 msgid "repo object for repo %s lacks a _resetSack method\n"
 msgstr "obiekt repozytorium %s nie posiada metody _resetSack\n"
 
-#: ../yum/__init__.py:522
+#: ../yum/__init__.py:538
 msgid "therefore this repo cannot be reset.\n"
 msgstr "więc to repozytorium nie może zostać przywrócone.\n"
 
-#: ../yum/__init__.py:527
+#: ../yum/__init__.py:543
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
 msgstr "doUpdateSetup() zostanie usunięte w przyszłych wersjach yuma.\n"
 
-#: ../yum/__init__.py:539
+#: ../yum/__init__.py:555
 msgid "Building updates object"
 msgstr "Budowanie obiektu aktualizacji"
 
-#: ../yum/__init__.py:570
+#: ../yum/__init__.py:590
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
 msgstr "doGroupSetup() zostanie usunięte w przyszłych wersjach yuma.\n"
 
-#: ../yum/__init__.py:595
+#: ../yum/__init__.py:615
 msgid "Getting group metadata"
 msgstr "Pobieranie metadanych grup"
 
-#: ../yum/__init__.py:621
+#: ../yum/__init__.py:641
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "Dodawanie pliku grup z repozytorium: %s"
 
-#: ../yum/__init__.py:630
+#: ../yum/__init__.py:650
 #, python-format
 msgid "Failed to add groups file for repository: %s - %s"
 msgstr "Dodanie pliku grup dla repozytorium nie powiodło się: %s - %s"
 
-#: ../yum/__init__.py:636
+#: ../yum/__init__.py:656
 msgid "No Groups Available in any repository"
 msgstr "Brak dostępnych grup we wszystkich repozytoriach"
 
-#: ../yum/__init__.py:686
+#: ../yum/__init__.py:706
 msgid "Importing additional filelist information"
 msgstr "Importowanie dodatkowych informacji o liście plików"
 
-#: ../yum/__init__.py:700
+#: ../yum/__init__.py:720
 #, python-format
 msgid "The program %s%s%s is found in the yum-utils package."
 msgstr "Program %s%s%s można znaleźć w pakiecie yum-utils."
 
-#: ../yum/__init__.py:708
+#: ../yum/__init__.py:728
 msgid ""
 "There are unfinished transactions remaining. You might consider running yum-"
 "complete-transaction first to finish them."
@@ -1700,17 +1741,17 @@ msgstr ""
 "Pozostały niezakończone transakcje. Rozważ wykonanie yum-complete-"
 "transaction, aby najpierw je zakończyć."
 
-#: ../yum/__init__.py:775
+#: ../yum/__init__.py:796
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Pierwsza runda pomijania uszkodzonych %i"
 
-#: ../yum/__init__.py:827
+#: ../yum/__init__.py:848
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr "Pomijanie uszkodzonych zajęło %i rund "
 
-#: ../yum/__init__.py:828
+#: ../yum/__init__.py:849
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1718,92 +1759,78 @@ msgstr ""
 "\n"
 "Pakiety pominięto z powodu problemów z zależnościami:"
 
-#: ../yum/__init__.py:832
+#: ../yum/__init__.py:853
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s z %s"
 
-#: ../yum/__init__.py:972
+#: ../yum/__init__.py:991
 msgid ""
 "Warning: scriptlet or other non-fatal errors occurred during transaction."
 msgstr ""
 "Ostrzeżenie: podczas transakcji wystąpił skrypt lub inne nie fatalne błędy."
 
-#: ../yum/__init__.py:987
+#: ../yum/__init__.py:1006
 #, python-format
 msgid "Failed to remove transaction file %s"
 msgstr "Usunięcie pliku transakcji %s nie powiodło się"
 
-#: ../yum/__init__.py:1051
-#, python-format
-msgid "excluding for cost: %s from %s"
-msgstr "wykluczanie z kosztów: %s z %s"
-
-#: ../yum/__init__.py:1082
-msgid "Excluding Packages in global exclude list"
-msgstr "Wykluczanie pakietów na globalnej liście wykluczonych pakietów"
-
-#: ../yum/__init__.py:1084
-#, python-format
-msgid "Excluding Packages from %s"
-msgstr "Wykluczanie pakietów z %s"
-
-#: ../yum/__init__.py:1113
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1035
 #, python-format
-msgid "Reducing %s to included packages only"
-msgstr "Zmniejszanie %s tylko do dołączonych pakietów"
+msgid "%s was supposed to be installed but is not!"
+msgstr "%s miało zostać zainstalowane, ale nie zostało!"
 
-#: ../yum/__init__.py:1119
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1074
 #, python-format
-msgid "Keeping included package %s"
-msgstr "Utrzymywanie dołączonego pakietu %s"
+msgid "%s was supposed to be removed but is not!"
+msgstr "%s miało zostać usunięte, ale nie zostało!"
 
-#: ../yum/__init__.py:1125
+#: ../yum/__init__.py:1120
 #, python-format
-msgid "Removing unmatched package %s"
-msgstr "Usuwanie niepasującego pakietu %s"
-
-#: ../yum/__init__.py:1128
-msgid "Finished"
-msgstr "Zakończono"
+msgid "excluding for cost: %s from %s"
+msgstr "wykluczanie z kosztów: %s z %s"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:1158
+#: ../yum/__init__.py:1191
 #, python-format
 msgid "Unable to check if PID %s is active"
 msgstr "Nie można sprawdzić, czy PID %s jest aktywny"
 
 #. Another copy seems to be running.
-#: ../yum/__init__.py:1162
+#: ../yum/__init__.py:1195
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
 msgstr "Istnieje blokada %s: inna kopia jest uruchomiona jako PID %s."
 
-#: ../yum/__init__.py:1239
+#: ../yum/__init__.py:1272
 msgid "Package does not match intended download"
 msgstr "Pakiet nie zgadza się z zamierzonym pobieraniem"
 
-#: ../yum/__init__.py:1254
+#: ../yum/__init__.py:1287
 msgid "Could not perform checksum"
 msgstr "Nie można wykonać sprawdzenia sum kontrolnych"
 
-#: ../yum/__init__.py:1257
+#: ../yum/__init__.py:1290
 msgid "Package does not match checksum"
 msgstr "Sumy kontrolne pakietu nie zgadzają się"
 
-#: ../yum/__init__.py:1299
+#: ../yum/__init__.py:1332
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
 msgstr ""
 "sprawdzenie sum kontrolnych pakietu nie powiodło się, ale zapisywanie w "
 "pamięci podręcznej dla %s jest włączone"
 
-#: ../yum/__init__.py:1302 ../yum/__init__.py:1331
+#: ../yum/__init__.py:1335 ../yum/__init__.py:1364
 #, python-format
 msgid "using local copy of %s"
 msgstr "używanie lokalnej kopii %s"
 
-#: ../yum/__init__.py:1343
+#: ../yum/__init__.py:1376
 #, python-format
 msgid ""
 "Insufficient space in download directory %s\n"
@@ -1814,11 +1841,11 @@ msgstr ""
 "    * wolne   %s\n"
 "    * wymagane %s"
 
-#: ../yum/__init__.py:1390
+#: ../yum/__init__.py:1425
 msgid "Header is not complete."
 msgstr "Nagłówek nie jest kompletny."
 
-#: ../yum/__init__.py:1427
+#: ../yum/__init__.py:1462
 #, python-format
 msgid ""
 "Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1826,62 +1853,62 @@ msgstr ""
 "Nagłówek nie jest w lokalnej pamięci podręcznej, a tryb używania tylko "
 "pamięci podręcznej jest włączony. Nie można pobrać %s"
 
-#: ../yum/__init__.py:1482
+#: ../yum/__init__.py:1517
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "Klucz publiczny dla %s nie jest zainstalowany"
 
-#: ../yum/__init__.py:1486
+#: ../yum/__init__.py:1521
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Podczas otwierania pakietu %s wystąpił problem"
 
-#: ../yum/__init__.py:1494
+#: ../yum/__init__.py:1529
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "Klucz publiczny dla %s nie jest zaufany"
 
-#: ../yum/__init__.py:1498
+#: ../yum/__init__.py:1533
 #, python-format
 msgid "Package %s is not signed"
 msgstr "Pakiet %s nie jest podpisany"
 
-#: ../yum/__init__.py:1536
+#: ../yum/__init__.py:1571
 #, python-format
 msgid "Cannot remove %s"
 msgstr "Nie można usunąć %s"
 
-#: ../yum/__init__.py:1540
+#: ../yum/__init__.py:1575
 #, python-format
 msgid "%s removed"
 msgstr "Usunięto %s"
 
-#: ../yum/__init__.py:1576
+#: ../yum/__init__.py:1611
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "Nie można usunąć %s pliku %s"
 
-#: ../yum/__init__.py:1580
+#: ../yum/__init__.py:1615
 #, python-format
 msgid "%s file %s removed"
 msgstr "Usunięto %s plik %s"
 
-#: ../yum/__init__.py:1582
+#: ../yum/__init__.py:1617
 #, python-format
 msgid "%d %s files removed"
 msgstr "Usunięto %d %s plików"
 
-#: ../yum/__init__.py:1651
+#: ../yum/__init__.py:1686
 #, python-format
 msgid "More than one identical match in sack for %s"
 msgstr "Więcej niż jeden identyczny wynik znajduje się w zestawie dla %s"
 
-#: ../yum/__init__.py:1657
+#: ../yum/__init__.py:1692
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "Nic nie pasuje do %s.%s %s:%s-%s z aktualizacji"
 
-#: ../yum/__init__.py:1875
+#: ../yum/__init__.py:1925
 msgid ""
 "searchPackages() will go away in a future version of "
 "Yum.                      Use searchGenerator() instead. \n"
@@ -1889,172 +1916,172 @@ msgstr ""
 "searchPackages()  zostanie usunięte w przyszłych wersjach "
 "yuma.                      Zamiast tego użyj searchGenerator(). \n"
 
-#: ../yum/__init__.py:1917
+#: ../yum/__init__.py:1967
 #, python-format
 msgid "Searching %d packages"
 msgstr "Wyszukiwanie %d pakietów"
 
-#: ../yum/__init__.py:1921
+#: ../yum/__init__.py:1971
 #, python-format
 msgid "searching package %s"
 msgstr "wyszukiwanie pakietu %s"
 
-#: ../yum/__init__.py:1933
+#: ../yum/__init__.py:1983
 msgid "searching in file entries"
 msgstr "wyszukiwanie we wpisach plików"
 
-#: ../yum/__init__.py:1940
+#: ../yum/__init__.py:1990
 msgid "searching in provides entries"
 msgstr "wyszukiwanie we wpisach dostarczania"
 
-#: ../yum/__init__.py:1973
+#: ../yum/__init__.py:2023
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Wyniki dostarczania: %s"
 
-#: ../yum/__init__.py:2022
+#: ../yum/__init__.py:2072
 msgid "No group data available for configured repositories"
 msgstr "Brak dostępnych danych grup dla skonfigurowanych repozytoriów"
 
-#: ../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:2103 ../yum/__init__.py:2122 ../yum/__init__.py:2153
+#: ../yum/__init__.py:2159 ../yum/__init__.py:2238 ../yum/__init__.py:2242
+#: ../yum/__init__.py:2539
 #, python-format
 msgid "No Group named %s exists"
 msgstr "Grupa o nazwie %s nie istnieje"
 
-#: ../yum/__init__.py:2084 ../yum/__init__.py:2205
+#: ../yum/__init__.py:2134 ../yum/__init__.py:2255
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "pakiet %s nie został oznaczony w grupie %s"
 
-#: ../yum/__init__.py:2131
+#: ../yum/__init__.py:2181
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Dodawanie pakietu %s z grupy %s"
 
-#: ../yum/__init__.py:2135
+#: ../yum/__init__.py:2185
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "Brak dostępnego pakietu o nazwie %s do zainstalowania"
 
-#: ../yum/__init__.py:2232
+#: ../yum/__init__.py:2282
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "Nie można znaleźć krotki pakietu %s w zestawie pakietów"
 
-#: ../yum/__init__.py:2246
+#: ../yum/__init__.py:2296
 msgid ""
 "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
 msgstr ""
 "getInstalledPackageObject() zostanie usunięte, użyj self.rpmdb.searchPkgTuple"
 "().\n"
 
-#: ../yum/__init__.py:2302 ../yum/__init__.py:2347
+#: ../yum/__init__.py:2352 ../yum/__init__.py:2397
 msgid "Invalid version flag"
 msgstr "Nieprawidłowa flaga wersji"
 
-#: ../yum/__init__.py:2317 ../yum/__init__.py:2322
+#: ../yum/__init__.py:2367 ../yum/__init__.py:2372
 #, python-format
 msgid "No Package found for %s"
 msgstr "Nie znaleziono pakietu %s"
 
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2572
 msgid "Package Object was not a package object instance"
 msgstr "Obiekt pakietu nie był instancją obiektu pakietu"
 
-#: ../yum/__init__.py:2526
+#: ../yum/__init__.py:2576
 msgid "Nothing specified to install"
 msgstr "Nie podano nic do zainstalowania"
 
-#: ../yum/__init__.py:2542 ../yum/__init__.py:3173
+#: ../yum/__init__.py:2592 ../yum/__init__.py:3307
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
 msgstr "Sprawdzanie wirtualnych zależności lub plików dla %s"
 
-#: ../yum/__init__.py:2548 ../yum/__init__.py:2824 ../yum/__init__.py:2984
-#: ../yum/__init__.py:3179
+#: ../yum/__init__.py:2598 ../yum/__init__.py:2874 ../yum/__init__.py:3037
+#: ../yum/__init__.py:3313
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "Brak wyników dla parametru: %s"
 
-#: ../yum/__init__.py:2622
+#: ../yum/__init__.py:2672
 #, python-format
 msgid "Package %s installed and not available"
 msgstr "Pakiet %s jest zainstalowany, ale nie jest dostępny"
 
-#: ../yum/__init__.py:2625
+#: ../yum/__init__.py:2675
 msgid "No package(s) available to install"
 msgstr "Brak pakietów dostępnych do instalacji"
 
-#: ../yum/__init__.py:2637
+#: ../yum/__init__.py:2687
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "Pakiet: %s  - jest już w zestawie transakcji"
 
-#: ../yum/__init__.py:2652
+#: ../yum/__init__.py:2702
 #, python-format
 msgid "Package %s is obsoleted by %s, trying to install %s instead"
 msgstr ""
 "Pakiet %s został zastąpiony przez %s, próbowanie instalacji %s zamiast niego"
 
-#: ../yum/__init__.py:2660
+#: ../yum/__init__.py:2710
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "Pakiet %s jest już zainstalowany w najnowszej wersji"
 
-#: ../yum/__init__.py:2674
+#: ../yum/__init__.py:2724
 #, python-format
 msgid "Package matching %s already installed. Checking for update."
 msgstr ""
 "Pakiet pasujący do %s jest już zainstalowany. Sprawdzanie aktualizacji."
 
 #. update everything (the easy case)
-#: ../yum/__init__.py:2760
+#: ../yum/__init__.py:2810
 msgid "Updating Everything"
 msgstr "Aktualizowanie wszystkiego"
 
-#: ../yum/__init__.py:2778 ../yum/__init__.py:2886 ../yum/__init__.py:2907
-#: ../yum/__init__.py:2933
+#: ../yum/__init__.py:2828 ../yum/__init__.py:2939 ../yum/__init__.py:2960
+#: ../yum/__init__.py:2986
 #, python-format
 msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Przestarzały pakiet nie zostanie zaktualizowany: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2813 ../yum/__init__.py:2981
+#: ../yum/__init__.py:2863 ../yum/__init__.py:3034
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: ../yum/__init__.py:2877
+#: ../yum/__init__.py:2930
 #, python-format
 msgid "Package is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Pakiet został już zastąpiony: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2910 ../yum/__init__.py:2936
+#: ../yum/__init__.py:2963 ../yum/__init__.py:2989
 #, python-format
 msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
 msgstr "Już zaktualizowany pakiet nie zostanie zaktualizowany: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2997
+#: ../yum/__init__.py:3050
 msgid "No package matched to remove"
 msgstr "Brak pasujących pakietów do usunięcia"
 
-#: ../yum/__init__.py:3031
+#: ../yum/__init__.py:3084 ../yum/__init__.py:3175 ../yum/__init__.py:3262
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "Nie można otworzyć pliku: %s. Pomijanie."
 
-#: ../yum/__init__.py:3034
+#: ../yum/__init__.py:3087 ../yum/__init__.py:3178 ../yum/__init__.py:3265
 #, python-format
 msgid "Examining %s: %s"
 msgstr "Sprawdzanie %s: %s"
 
-#: ../yum/__init__.py:3042
+#: ../yum/__init__.py:3095 ../yum/__init__.py:3181 ../yum/__init__.py:3268
 #, python-format
 msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
 msgstr "Nie można dodać pakietu %s do transakcji. Niezgodna architektura: %s"
 
-#: ../yum/__init__.py:3050
+#: ../yum/__init__.py:3103
 #, python-format
 msgid ""
 "Package %s not installed, cannot update it. Run yum install to install it "
@@ -2063,97 +2090,98 @@ msgstr ""
 "Pakiet %s nie jest zainstalowany, nie można go zaktualizować. Uruchom yum "
 "install, aby go zainstalować."
 
-#: ../yum/__init__.py:3085
+#: ../yum/__init__.py:3138 ../yum/__init__.py:3192 ../yum/__init__.py:3279
 #, python-format
 msgid "Excluding %s"
 msgstr "Wykluczanie %s"
 
-#: ../yum/__init__.py:3090
+#: ../yum/__init__.py:3143
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Oznaczanie %s do zainstalowania"
 
-#: ../yum/__init__.py:3096
+#: ../yum/__init__.py:3149
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "Oznaczanie %s jako aktualizacji %s"
 
-#: ../yum/__init__.py:3103
+#: ../yum/__init__.py:3156
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: nie aktualizuj zainstalowanego pakietu."
 
-#: ../yum/__init__.py:3118
+#: ../yum/__init__.py:3211
 msgid "Problem in reinstall: no package matched to remove"
 msgstr ""
 "Podczas ponownego instalowania wystąpił problem: brak pasujących pakietów do "
 "usunięcia"
 
-#: ../yum/__init__.py:3130 ../yum/__init__.py:3206
+#: ../yum/__init__.py:3223 ../yum/__init__.py:3340
 #, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "Pakiet %s może być wielokrotnie instalowany, pomijanie"
 
-#: ../yum/__init__.py:3144
-msgid "Problem in reinstall: no package matched to install"
+#: ../yum/__init__.py:3241
+#, python-format
+msgid "Problem in reinstall: no package %s matched to install"
 msgstr ""
-"Podczas ponownego instalowania wystąpił problem: brak pasujących pakietów do "
-"zainstalowania"
+"Podczas ponownego instalowania wystąpił problem: brak pakietu %s pasującego "
+"do zainstalowania"
 
-#: ../yum/__init__.py:3198
+#: ../yum/__init__.py:3332
 msgid "No package(s) available to downgrade"
 msgstr "Brak pakietów dostępnych do instalacji starszej wersji"
 
-#: ../yum/__init__.py:3229
+#: ../yum/__init__.py:3376
 #, python-format
 msgid "No Match for available package: %s"
 msgstr "Brak wyników dla dostępnych pakietów: %s"
 
-#: ../yum/__init__.py:3235
+#: ../yum/__init__.py:3382
 #, python-format
 msgid "Only Upgrade available on package: %s"
 msgstr "Dla pakietu dostępna jest tylko aktualizacja: %s"
 
-#: ../yum/__init__.py:3296
+#: ../yum/__init__.py:3441
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "Pobieranie klucza GPG z %s"
 
-#: ../yum/__init__.py:3316
+#: ../yum/__init__.py:3461
 msgid "GPG key retrieval failed: "
 msgstr "Pobranie klucza GPG nie powiodło się: "
 
-#: ../yum/__init__.py:3327
+#: ../yum/__init__.py:3472
 #, python-format
 msgid "GPG key parsing failed: key does not have value %s"
 msgstr ""
 "Przeanalizowanie klucza GPG nie powiodło się: klucz nie posiada wartości %s"
 
-#: ../yum/__init__.py:3359
+#: ../yum/__init__.py:3504
 #, python-format
 msgid "GPG key at %s (0x%s) is already installed"
 msgstr "Klucz GPG %s (0x%s) jest już zainstalowany"
 
 #. Try installing/updating GPG key
-#: ../yum/__init__.py:3364 ../yum/__init__.py:3426
+#: ../yum/__init__.py:3509 ../yum/__init__.py:3571
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "Importowanie klucza GPG 0x%s \"%s\" z %s"
 
-#: ../yum/__init__.py:3381
+#: ../yum/__init__.py:3526
 msgid "Not installing key"
 msgstr "Klucz nie zostanie zainstalowany"
 
-#: ../yum/__init__.py:3387
+#: ../yum/__init__.py:3532
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "Zaimportowanie klucza nie powiodło się (kod %d)"
 
-#: ../yum/__init__.py:3388 ../yum/__init__.py:3447
+#: ../yum/__init__.py:3533 ../yum/__init__.py:3592
 msgid "Key imported successfully"
 msgstr "Klucz został pomyślnie zaimportowany"
 
-#: ../yum/__init__.py:3393 ../yum/__init__.py:3452
+#: ../yum/__init__.py:3538 ../yum/__init__.py:3597
 #, python-format
 msgid ""
 "The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -2165,78 +2193,78 @@ msgstr ""
 "Sprawdź, czy dla tego repozytorium skonfigurowane są poprawne adresy do "
 "kluczy."
 
-#: ../yum/__init__.py:3402
+#: ../yum/__init__.py:3547
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "Zaimportowanie kluczy nie pomogło, błędne klucze?"
 
-#: ../yum/__init__.py:3421
+#: ../yum/__init__.py:3566
 #, python-format
 msgid "GPG key at %s (0x%s) is already imported"
 msgstr "Klucz GPG %s (0x%s) został już zaimportowany"
 
-#: ../yum/__init__.py:3441
+#: ../yum/__init__.py:3586
 #, python-format
 msgid "Not installing key for repo %s"
 msgstr "Klucz dla repozytorium %s nie zostanie zainstalowany"
 
-#: ../yum/__init__.py:3446
+#: ../yum/__init__.py:3591
 msgid "Key import failed"
 msgstr "Zaimportowanie klucza nie powiodło się"
 
-#: ../yum/__init__.py:3537
+#: ../yum/__init__.py:3712
 msgid "Unable to find a suitable mirror."
 msgstr "Nie można znaleźć odpowiedniego serwera lustrzanego."
 
-#: ../yum/__init__.py:3539
+#: ../yum/__init__.py:3714
 msgid "Errors were encountered while downloading packages."
 msgstr "Podczas pobierania pakietów wystąpiły błędy."
 
-#: ../yum/__init__.py:3580
+#: ../yum/__init__.py:3755
 #, python-format
 msgid "Please report this error at %s"
 msgstr "Zgłoś ten błąd na %s"
 
-#: ../yum/__init__.py:3604
+#: ../yum/__init__.py:3779
 msgid "Test Transaction Errors: "
 msgstr "Błędy testu transakcji: "
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:204
+#: ../yum/plugins.py:205
 msgid "Loaded plugins: "
 msgstr "Wczytane wtyczki: "
 
-#: ../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 "Brak wyników dla wtyczki: %s"
 
-#: ../yum/plugins.py:254
+#: ../yum/plugins.py:255
 #, python-format
 msgid "Not loading \"%s\" plugin, as it is disabled"
 msgstr "Wtyczka \"%s\" nie została wczytana, ponieważ jest wyłączona"
 
 #. Give full backtrace:
-#: ../yum/plugins.py:266
+#: ../yum/plugins.py:267
 #, python-format
 msgid "Plugin \"%s\" can't be imported"
 msgstr "Nie można zaimportować wtyczki \"%s\""
 
-#: ../yum/plugins.py:273
+#: ../yum/plugins.py:274
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr "Wtyczka \"%s\" nie określa wymaganej wersji API"
 
-#: ../yum/plugins.py:278
+#: ../yum/plugins.py:279
 #, python-format
 msgid "Plugin \"%s\" requires API %s. Supported API is %s."
 msgstr "Wtyczka \"%s\" wymaga API %s. Obsługiwane API to %s."
 
-#: ../yum/plugins.py:311
+#: ../yum/plugins.py:312
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "Wczytywanie wtyczki \"%s\""
 
-#: ../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"
@@ -2244,19 +2272,19 @@ msgstr ""
 "Istnieją dwie lub więcej wtyczek o nazwie \"%s\" w ścieżce wyszukiwania "
 "wtyczek"
 
-#: ../yum/plugins.py:338
+#: ../yum/plugins.py:339
 #, python-format
 msgid "Configuration file %s not found"
 msgstr "Nie znaleziono pliku konfiguracji %s"
 
 #. 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 "Nie można naleźć pliku konfiguracji dla wtyczki %s"
 
-#: ../yum/plugins.py:499
+#: ../yum/plugins.py:500
 msgid "registration of commands not supported"
 msgstr "rejestracja poleceń nie jest obsługiwana"
 
diff --git a/po/pt_BR.po b/po/pt_BR.po
index f5cf1b3..887333b 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -6,8 +6,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Yum\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-19 19:44+0000\n"
-"PO-Revision-Date: 2009-04-19 19:28-0300\n"
+"POT-Creation-Date: 2009-07-21 15:04+0000\n"
+"PO-Revision-Date: 2009-07-21 14:43-0300\n"
 "Last-Translator: Igor Pires Soares <igor@projetofedora.org>\n"
 "Language-Team: Brazilian Portuguese <fedora-trans-pt_br@redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -18,7 +18,7 @@ msgstr ""
 "X-Poedit-Country: BRAZIL\n"
 
 #: ../callback.py:48
-#: ../output.py:937
+#: ../output.py:939
 #: ../yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "Atualizando"
@@ -31,7 +31,7 @@ msgstr "Apagando"
 #: ../callback.py:50
 #: ../callback.py:51
 #: ../callback.py:53
-#: ../output.py:936
+#: ../output.py:938
 #: ../yum/rpmtrans.py:73
 #: ../yum/rpmtrans.py:74
 #: ../yum/rpmtrans.py:76
@@ -45,7 +45,7 @@ msgid "Obsoleted"
 msgstr "Obsoletos"
 
 #: ../callback.py:54
-#: ../output.py:1044
+#: ../output.py:1060
 msgid "Updated"
 msgstr "Atualizados"
 
@@ -56,7 +56,7 @@ msgstr "Removidos"
 #: ../callback.py:56
 #: ../callback.py:57
 #: ../callback.py:59
-#: ../output.py:1042
+#: ../output.py:1058
 msgid "Installed"
 msgstr "Instalados"
 
@@ -79,7 +79,7 @@ msgid "Erased: %s"
 msgstr "Removidos: %s"
 
 #: ../callback.py:217
-#: ../output.py:938
+#: ../output.py:940
 msgid "Removing"
 msgstr "Removendo"
 
@@ -88,63 +88,63 @@ msgstr "Removendo"
 msgid "Cleanup"
 msgstr "Limpeza"
 
-#: ../cli.py:104
+#: ../cli.py:107
 #, python-format
 msgid "Command \"%s\" already defined"
 msgstr "Comando \"%s\" já definido"
 
-#: ../cli.py:116
+#: ../cli.py:119
 msgid "Setting up repositories"
 msgstr "Configurando repositórios"
 
-#: ../cli.py:127
+#: ../cli.py:130
 msgid "Reading repository metadata in from local files"
 msgstr "Lendo metadados do repositório a partir dos arquivos locais"
 
-#: ../cli.py:190
+#: ../cli.py:193
 #: ../utils.py:87
 #, python-format
 msgid "Config Error: %s"
 msgstr "Erro de configuração: %s"
 
-#: ../cli.py:193
-#: ../cli.py:1229
+#: ../cli.py:196
+#: ../cli.py:1242
 #: ../utils.py:90
 #, python-format
 msgid "Options Error: %s"
 msgstr "Erro nas opções: %s"
 
-#: ../cli.py:221
+#: ../cli.py:225
 #, python-format
 msgid "  Installed: %s-%s at %s"
 msgstr "  Instalados: %s-%s em %s"
 
-#: ../cli.py:223
+#: ../cli.py:227
 #, python-format
 msgid "  Built    : %s at %s"
 msgstr "  Construídos    : %s em %s"
 
-#: ../cli.py:225
+#: ../cli.py:229
 #, python-format
 msgid "  Committed: %s at %s"
 msgstr "  Enviados: %s em %s"
 
-#: ../cli.py:264
+#: ../cli.py:268
 msgid "You need to give some command"
 msgstr "Você precisa dar algum comando"
 
-#: ../cli.py:307
+#: ../cli.py:311
 msgid "Disk Requirements:\n"
 msgstr "Requisitos de disco:\n"
 
-#: ../cli.py:309
+#: ../cli.py:313
 #, python-format
 msgid "  At least %dMB needed on the %s filesystem.\n"
 msgstr "  Pelo menos %d MB são necessários no sistema de arquivos %s.\n"
 
 #. TODO: simplify the dependency errors?
 #. Fixup the summary
-#: ../cli.py:314
+#: ../cli.py:318
 msgid ""
 "Error Summary\n"
 "-------------\n"
@@ -152,58 +152,58 @@ msgstr ""
 "Sumário de erros\n"
 "-------------\n"
 
-#: ../cli.py:357
+#: ../cli.py:361
 msgid "Trying to run the transaction but nothing to do. Exiting."
 msgstr "Tentando executar a transação, mas não há nada a ser feito. Saindo."
 
-#: ../cli.py:393
+#: ../cli.py:397
 msgid "Exiting on user Command"
 msgstr "Saindo pelo comando do usuário"
 
-#: ../cli.py:397
+#: ../cli.py:401
 msgid "Downloading Packages:"
 msgstr "Baixando pacotes:"
 
-#: ../cli.py:402
+#: ../cli.py:406
 msgid "Error Downloading Packages:\n"
 msgstr "Erro ao baixar pacotes:\n"
 
-#: ../cli.py:416
-#: ../yum/__init__.py:3627
+#: ../cli.py:420
+#: ../yum/__init__.py:3817
 msgid "Running rpm_check_debug"
 msgstr "Executando o rpm_check_debug"
 
-#: ../cli.py:419
-#: ../yum/__init__.py:3630
+#: ../cli.py:423
+#: ../yum/__init__.py:3820
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "Erro com o rpm_check_debug vs depsolve:"
 
-#: ../cli.py:423
+#: ../cli.py:427
 #, python-format
 msgid "Please report this error in %s"
 msgstr "Por favor, relate esse erro em %s"
 
-#: ../cli.py:429
+#: ../cli.py:433
 msgid "Running Transaction Test"
 msgstr "Executando teste de transação"
 
-#: ../cli.py:445
+#: ../cli.py:449
 msgid "Finished Transaction Test"
 msgstr "Teste de transação finalizado"
 
-#: ../cli.py:447
+#: ../cli.py:451
 msgid "Transaction Check Error:\n"
 msgstr "Erro na verificação da transação:\n"
 
-#: ../cli.py:454
+#: ../cli.py:458
 msgid "Transaction Test Succeeded"
 msgstr "Teste de transação completo"
 
-#: ../cli.py:475
+#: ../cli.py:480
 msgid "Running Transaction"
 msgstr "Executando a transação"
 
-#: ../cli.py:505
+#: ../cli.py:510
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
@@ -211,77 +211,87 @@ msgstr ""
 "Recusa de importação automática das chaves ao executar de forma não assistida.\n"
 "Use \"-y\" para sobrescrever."
 
-#: ../cli.py:524
-#: ../cli.py:558
+#: ../cli.py:529
+#: ../cli.py:563
 msgid "  * Maybe you meant: "
 msgstr "  * Talvez você queira dizer: "
 
-#: ../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 "Pacotes %s%s%s disponíveis, mas já instalados."
 
-#: ../cli.py:555
-#: ../cli.py:586
-#: ../cli.py:664
+#: ../cli.py:560
+#: ../cli.py:591
+#: ../cli.py:669
 #, python-format
 msgid "No package %s%s%s available."
 msgstr "Nenhum pacote %s%s%s disponível."
 
-#: ../cli.py:591
-#: ../cli.py:691
+#: ../cli.py:596
+#: ../cli.py:729
 msgid "Package(s) to install"
 msgstr "Pacotes a serem instalados"
 
-#: ../cli.py:592
-#: ../cli.py:670
-#: ../cli.py:692
-#: ../yumcommands.py:157
-#: ../yumcommands.py:1018
+#: ../cli.py:597
+#: ../cli.py:675
+#: ../cli.py:708
+#: ../cli.py:730
+#: ../yumcommands.py:160
 msgid "Nothing to do"
 msgstr "Nada a ser feito"
 
-#: ../cli.py:625
+#: ../cli.py:630
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d pacotes marcados para atualização"
 
-#: ../cli.py:628
+#: ../cli.py:633
 msgid "No Packages marked for Update"
 msgstr "Nenhum pacote marcado para atualização"
 
-#: ../cli.py:642
+#: ../cli.py:647
 #, python-format
 msgid "%d packages marked for removal"
 msgstr "%d pacotes marcados para remoção"
 
-#: ../cli.py:645
+#: ../cli.py:650
 msgid "No Packages marked for removal"
 msgstr "Nenhum pacote marcado para remoção"
 
-#: ../cli.py:669
+#: ../cli.py:674
 msgid "Package(s) to downgrade"
 msgstr "Pacote(s) a ser(em) retrocedido(s)"
 
-#: ../cli.py:682
+#: ../cli.py:698
+#, python-format
+msgid " (from %s)"
+msgstr " (a partir de %s)"
+
+#: ../cli.py:700
+#, python-format
+msgid "Installed package %s%s%s%s not available."
+msgstr "O pacote instalado %s%s%s%s não está disponível."
+
+#: ../cli.py:707
+msgid "Package(s) to reinstall"
+msgstr "Pacote(s) a ser(em) reinstalado(s)"
+
+#: ../cli.py:720
 msgid "No Packages Provided"
 msgstr "Nenhum pacote fornecido"
 
-#: ../cli.py:737
-msgid "Matching packages for package list to user args"
-msgstr "Resultado dos pacotes para a lista de pacotes dos argumentos do usuário"
-
-#: ../cli.py:786
+#: ../cli.py:804
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "Aviso: nenhum resultado para: %s"
 
-#: ../cli.py:789
+#: ../cli.py:807
 msgid "No Matches found"
 msgstr "Nenhum pacote localizado"
 
-#: ../cli.py:828
+#: ../cli.py:846
 #, python-format
 msgid ""
 "Warning: 3.0.x versions of yum would erroneously match against filenames.\n"
@@ -290,109 +300,109 @@ msgstr ""
 "Aviso: as versões 3.0.x do yum iriam corresponder erroneamente pelos nomes de arquivos.\n"
 " Você pode usar \"%s*/%s%s\" e/ou \"%s*bin/%s%s\" para obter esse comportamento."
 
-#: ../cli.py:844
+#: ../cli.py:862
 #, python-format
 msgid "No Package Found for %s"
 msgstr "Nenhum pacote localizado para %s"
 
-#: ../cli.py:856
+#: ../cli.py:874
 msgid "Cleaning up Everything"
 msgstr "Limpando tudo"
 
-#: ../cli.py:870
+#: ../cli.py:888
 msgid "Cleaning up Headers"
 msgstr "Limpando cabeçalhos"
 
-#: ../cli.py:873
+#: ../cli.py:891
 msgid "Cleaning up Packages"
 msgstr "Limpando pacotes"
 
-#: ../cli.py:876
+#: ../cli.py:894
 msgid "Cleaning up xml metadata"
 msgstr "Limpando metadados em xml"
 
-#: ../cli.py:879
+#: ../cli.py:897
 msgid "Cleaning up database cache"
 msgstr "Limpando cache do banco de dados"
 
-#: ../cli.py:882
+#: ../cli.py:900
 msgid "Cleaning up expire-cache metadata"
 msgstr "Limpando metadados expirados do cache"
 
-#: ../cli.py:885
+#: ../cli.py:903
 msgid "Cleaning up plugins"
 msgstr "Limpando plugins"
 
-#: ../cli.py:910
+#: ../cli.py:928
 msgid "Installed Groups:"
 msgstr "Grupos instalados:"
 
-#: ../cli.py:922
+#: ../cli.py:940
 msgid "Available Groups:"
 msgstr "Grupos disponíveis:"
 
-#: ../cli.py:932
+#: ../cli.py:950
 msgid "Done"
 msgstr "Concluído"
 
-#: ../cli.py:943
 #: ../cli.py:961
-#: ../cli.py:967
-#: ../yum/__init__.py:2463
+#: ../cli.py:979
+#: ../cli.py:985
+#: ../yum/__init__.py:2556
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Aviso: O grupo %s não existe."
 
-#: ../cli.py:971
+#: ../cli.py:989
 msgid "No packages in any requested group available to install or update"
 msgstr "Nenhum pacote disponível para instalação ou atualização nos grupos requisitados"
 
-#: ../cli.py:973
+#: ../cli.py:991
 #, python-format
 msgid "%d Package(s) to Install"
 msgstr "%d pacote(s) a ser(em) instalado(s)"
 
-#: ../cli.py:983
-#: ../yum/__init__.py:2475
+#: ../cli.py:1001
+#: ../yum/__init__.py:2568
 #, python-format
 msgid "No group named %s exists"
 msgstr "Nenhum grupo de nome %s existe"
 
-#: ../cli.py:989
+#: ../cli.py:1007
 msgid "No packages to remove from groups"
 msgstr "Nenhum pacote a ser removido a partir dos grupos"
 
-#: ../cli.py:991
+#: ../cli.py:1009
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d pacote(s) a ser(em) removido(s)"
 
-#: ../cli.py:1033
+#: ../cli.py:1051
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "O pacote %s já está instalado, ignorando"
 
-#: ../cli.py:1044
+#: ../cli.py:1062
 #, python-format
 msgid "Discarding non-comparable pkg %s.%s"
 msgstr "Descartando pacote não comparável %s.%s"
 
 #. we've not got any installed that match n or n+a
-#: ../cli.py:1070
+#: ../cli.py:1088
 #, python-format
 msgid "No other %s installed, adding to list for potential install"
 msgstr "Nenhum outro %s instalado, adicionado à lista para potencial instalação"
 
-#: ../cli.py:1090
+#: ../cli.py:1108
 msgid "Plugin Options"
 msgstr "Opções do plugin"
 
-#: ../cli.py:1098
+#: ../cli.py:1116
 #, python-format
 msgid "Command line error: %s"
 msgstr "Erro na linha de comando: %s"
 
-#: ../cli.py:1111
+#: ../cli.py:1129
 #, python-format
 msgid ""
 "\n"
@@ -403,257 +413,257 @@ msgstr ""
 "\n"
 "%s: a opção %s requer um argumento"
 
-#: ../cli.py:1169
+#: ../cli.py:1182
 msgid "--color takes one of: auto, always, never"
 msgstr "--color aceita uma destas opções: auto, always, never"
 
-#: ../cli.py:1276
+#: ../cli.py:1289
 msgid "show this help message and exit"
 msgstr "mostrar essa mensagem ajuda e sai"
 
-#: ../cli.py:1280
+#: ../cli.py:1293
 msgid "be tolerant of errors"
 msgstr "ser tolerante com os erros"
 
-#: ../cli.py:1282
+#: ../cli.py:1295
 msgid "run entirely from cache, don't update cache"
 msgstr "executar por completo a partir do cache, não atualiza o cache"
 
-#: ../cli.py:1284
+#: ../cli.py:1297
 msgid "config file location"
 msgstr "configurar localização do arquivo"
 
-#: ../cli.py:1286
+#: ../cli.py:1299
 msgid "maximum command wait time"
 msgstr "Tempo máximo de espera do comando"
 
-#: ../cli.py:1288
+#: ../cli.py:1301
 msgid "debugging output level"
 msgstr "nível de depuração na saída"
 
-#: ../cli.py:1292
+#: ../cli.py:1305
 msgid "show duplicates, in repos, in list/search commands"
 msgstr "mostrar duplicados em repos e em comandos de pesquisa/listagem"
 
-#: ../cli.py:1294
+#: ../cli.py:1307
 msgid "error output level"
 msgstr "nível de erro na saída"
 
-#: ../cli.py:1297
+#: ../cli.py:1310
 msgid "quiet operation"
 msgstr "operação discreta"
 
-#: ../cli.py:1299
+#: ../cli.py:1312
 msgid "verbose operation"
 msgstr "operação detalhada"
 
-#: ../cli.py:1301
+#: ../cli.py:1314
 msgid "answer yes for all questions"
 msgstr "responder sim para todas as perguntas"
 
-#: ../cli.py:1303
+#: ../cli.py:1316
 msgid "show Yum version and exit"
 msgstr "mostrar versão do Yum ao sair"
 
-#: ../cli.py:1304
+#: ../cli.py:1317
 msgid "set install root"
 msgstr "definir raiz de instalação"
 
-#: ../cli.py:1308
+#: ../cli.py:1321
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "habilitar um ou mais repositórios (curingas são permitidos)"
 
-#: ../cli.py:1312
+#: ../cli.py:1325
 msgid "disable one or more repositories (wildcards allowed)"
 msgstr "desabilitar um ou mais repositórios (curingas são permitidos)"
 
-#: ../cli.py:1315
+#: ../cli.py:1328
 msgid "exclude package(s) by name or glob"
 msgstr "excluir pacote(s) por nome ou glob"
 
-#: ../cli.py:1317
+#: ../cli.py:1330
 msgid "disable exclude from main, for a repo or for everything"
 msgstr "desabilitar a exclusão a partir do principal, para um repositório ou para tudo"
 
-#: ../cli.py:1320
+#: ../cli.py:1333
 msgid "enable obsoletes processing during updates"
 msgstr "Habilitar processo de obsolescência durante as atualizações"
 
-#: ../cli.py:1322
+#: ../cli.py:1335
 msgid "disable Yum plugins"
 msgstr "desabilitar plugins do Yum"
 
-#: ../cli.py:1324
+#: ../cli.py:1337
 msgid "disable gpg signature checking"
 msgstr "desabilitar verificação de assinaturas gpg"
 
-#: ../cli.py:1326
+#: ../cli.py:1339
 msgid "disable plugins by name"
 msgstr "desabilitar plugins pelo nome"
 
-#: ../cli.py:1329
+#: ../cli.py:1342
 msgid "enable plugins by name"
 msgstr "habilita plugins pelo nome"
 
-#: ../cli.py:1332
+#: ../cli.py:1345
 msgid "skip packages with depsolving problems"
 msgstr "ignorar pacotes com problemas de solução de dependências"
 
-#: ../cli.py:1334
+#: ../cli.py:1347
 msgid "control whether color is used"
 msgstr "controla o uso da cor"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "Jan"
 msgstr "Jan"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "Feb"
 msgstr "Fev"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "Mar"
 msgstr "Mar"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "Apr"
 msgstr "Abr"
 
-#: ../output.py:301
+#: ../output.py:303
 msgid "May"
 msgstr "Mai"
 
-#: ../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 "Ago"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Sep"
 msgstr "Set"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Oct"
 msgstr "Out"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Nov"
 msgstr "Nov"
 
-#: ../output.py:302
+#: ../output.py:304
 msgid "Dec"
 msgstr "Dez"
 
-#: ../output.py:312
+#: ../output.py:314
 msgid "Trying other mirror."
 msgstr "Tentando outro espelho."
 
-#: ../output.py:534
+#: ../output.py:536
 #, python-format
 msgid "Name       : %s%s%s"
 msgstr "Nome       : %s%s%s"
 
-#: ../output.py:535
+#: ../output.py:537
 #, python-format
 msgid "Arch       : %s"
 msgstr "Arq.   : %s"
 
-#: ../output.py:537
+#: ../output.py:539
 #, python-format
 msgid "Epoch      : %s"
 msgstr "Período      : %s"
 
-#: ../output.py:538
+#: ../output.py:540
 #, python-format
 msgid "Version    : %s"
 msgstr "Versão    : %s"
 
-#: ../output.py:539
+#: ../output.py:541
 #, python-format
 msgid "Release    : %s"
 msgstr "Lançamento  : %s"
 
-#: ../output.py:540
+#: ../output.py:542
 #, python-format
 msgid "Size       : %s"
 msgstr "Tamanho   : %s"
 
-#: ../output.py:541
+#: ../output.py:543
 #, python-format
 msgid "Repo       : %s"
 msgstr "Repo       : %s"
 
-#: ../output.py:543
+#: ../output.py:545
 #, python-format
 msgid "From repo  : %s"
 msgstr "Do repositório: %s"
 
-#: ../output.py:545
+#: ../output.py:547
 #, python-format
 msgid "Committer  : %s"
 msgstr "Enviado por  : %s"
 
-#: ../output.py:546
+#: ../output.py:548
 #, python-format
 msgid "Committime : %s"
 msgstr "Horário do envio : %s"
 
-#: ../output.py:547
+#: ../output.py:549
 #, python-format
 msgid "Buildtime  : %s"
 msgstr "Horário da construção  : %s"
 
-#: ../output.py:549
+#: ../output.py:551
 #, python-format
 msgid "Installtime: %s"
 msgstr "Horário da instalação: %s"
 
-#: ../output.py:550
+#: ../output.py:552
 msgid "Summary    : "
 msgstr "Sumário    : "
 
-#: ../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 "Licença   : %s"
 
-#: ../output.py:554
+#: ../output.py:556
 msgid "Description: "
 msgstr "Descrição: "
 
-#: ../output.py:622
+#: ../output.py:624
 msgid "y"
 msgstr "s"
 
-#: ../output.py:622
+#: ../output.py:624
 msgid "yes"
 msgstr "sim"
 
-#: ../output.py:623
+#: ../output.py:625
 msgid "n"
 msgstr "n"
 
-#: ../output.py:623
+#: ../output.py:625
 msgid "no"
 msgstr "não"
 
-#: ../output.py:627
+#: ../output.py:629
 msgid "Is this ok [y/N]: "
 msgstr "Correto? [s/N]:"
 
-#: ../output.py:718
+#: ../output.py:720
 #, python-format
 msgid ""
 "\n"
@@ -662,134 +672,142 @@ msgstr ""
 "\n"
 "Grupo: %s"
 
-#: ../output.py:722
+#: ../output.py:724
 #, python-format
 msgid " Group-Id: %s"
 msgstr " Group-Id: %s"
 
-#: ../output.py:727
+#: ../output.py:729
 #, python-format
 msgid " Description: %s"
 msgstr " Descrição: %s"
 
-#: ../output.py:729
+#: ../output.py:731
 msgid " Mandatory Packages:"
 msgstr " Pacotes obrigatórios:"
 
-#: ../output.py:730
+#: ../output.py:732
 msgid " Default Packages:"
 msgstr " Pacotes padrão:"
 
-#: ../output.py:731
+#: ../output.py:733
 msgid " Optional Packages:"
 msgstr " Pacotes opcionais:"
 
-#: ../output.py:732
+#: ../output.py:734
 msgid " Conditional Packages:"
 msgstr " Pacotes condicionais:"
 
-#: ../output.py:752
+#: ../output.py:754
 #, python-format
 msgid "package: %s"
 msgstr "pacote: %s"
 
-#: ../output.py:754
+#: ../output.py:756
 msgid "  No dependencies for this package"
 msgstr "  Nenhuma dependência para este pacote"
 
-#: ../output.py:759
+#: ../output.py:761
 #, python-format
 msgid "  dependency: %s"
 msgstr "  dependência: %s"
 
-#: ../output.py:761
+#: ../output.py:763
 msgid "   Unsatisfied dependency"
 msgstr "   Dependência não satisfeita"
 
-#: ../output.py:833
+#: ../output.py:835
 #, python-format
 msgid "Repo        : %s"
 msgstr "Repo        : %s"
 
-#: ../output.py:834
+#: ../output.py:836
 msgid "Matched from:"
 msgstr "Resultado a partir de:"
 
-#: ../output.py:843
+#: ../output.py:845
 msgid "Description : "
 msgstr "Descrição : "
 
-#: ../output.py:846
+#: ../output.py:848
 #, python-format
 msgid "URL         : %s"
 msgstr "URL         : %s"
 
-#: ../output.py:849
+#: ../output.py:851
 #, python-format
 msgid "License     : %s"
 msgstr "Licença     : %s"
 
-#: ../output.py:852
+#: ../output.py:854
 #, python-format
 msgid "Filename    : %s"
 msgstr "Nome de arquivo    : %s"
 
-#: ../output.py:856
+#: ../output.py:858
 msgid "Other       : "
 msgstr "Outro       : "
 
-#: ../output.py:889
+#: ../output.py:891
 msgid "There was an error calculating total download size"
 msgstr "Houve um erro no cálculo do tamanho total do download"
 
-#: ../output.py:894
+#: ../output.py:896
 #, python-format
 msgid "Total size: %s"
 msgstr "Tamanho total: %s"
 
-#: ../output.py:897
+#: ../output.py:899
 #, python-format
 msgid "Total download size: %s"
 msgstr "Tamanho total do download: %s"
 
-#: ../output.py:939
+#: ../output.py:941
+msgid "Reinstalling"
+msgstr "Reinstalando"
+
+#: ../output.py:942
+msgid "Downgrading"
+msgstr "Desatualizando"
+
+#: ../output.py:943
 msgid "Installing for dependencies"
 msgstr "Instalando para as dependências"
 
-#: ../output.py:940
+#: ../output.py:944
 msgid "Updating for dependencies"
 msgstr "Atualizando para as dependências"
 
-#: ../output.py:941
+#: ../output.py:945
 msgid "Removing for dependencies"
 msgstr "Removendo para as dependências"
 
-#: ../output.py:948
-#: ../output.py:1046
+#: ../output.py:952
+#: ../output.py:1062
 msgid "Skipped (dependency problems)"
 msgstr "Ignorado (problemas de dependências)"
 
-#: ../output.py:969
+#: ../output.py:973
 msgid "Package"
 msgstr "Pacote"
 
-#: ../output.py:969
+#: ../output.py:973
 msgid "Arch"
 msgstr "Arq."
 
-#: ../output.py:970
+#: ../output.py:974
 msgid "Version"
 msgstr "Versão"
 
-#: ../output.py:970
+#: ../output.py:974
 msgid "Repository"
 msgstr "Repo"
 
-#: ../output.py:971
+#: ../output.py:975
 msgid "Size"
 msgstr "Tam."
 
-#: ../output.py:983
+#: ../output.py:987
 #, python-format
 msgid ""
 "     replacing  %s%s%s.%s %s\n"
@@ -798,49 +816,63 @@ msgstr ""
 "     substituindo %s%s%s.%s %s\n"
 "\n"
 
-#: ../output.py:992
+#: ../output.py:996
 #, 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"
-"Sumário da transação\n"
+"Resumo da transação\n"
 "%s\n"
-"Instalar  %5.5s pacote(s)         \n"
-"Atualizar   %5.5s pacote(s)         \n"
-"Remover   %5.5s pacote(s)         \n"
 
-#: ../output.py:1040
+#: ../output.py:1003
+#, python-format
+msgid ""
+"Install   %5.5s Package(s)\n"
+"Upgrade   %5.5s Package(s)\n"
+msgstr ""
+"Instalar   %5.5s Pacote(s)\n"
+"Atualizar   %5.5s Pacote(s)\n"
+
+#: ../output.py:1012
+#, python-format
+msgid ""
+"Remove    %5.5s Package(s)\n"
+"Reinstall %5.5s Package(s)\n"
+"Downgrade %5.5s Package(s)\n"
+msgstr ""
+"Remover    %5.5s Pacote(s)\n"
+"Reinstalar %5.5s Pacote(s)\n"
+"Desatualizar %5.5s Pacote(s)\n"
+
+#: ../output.py:1056
 msgid "Removed"
 msgstr "Removido(s)"
 
-#: ../output.py:1041
+#: ../output.py:1057
 msgid "Dependency Removed"
 msgstr "Dependência(s) removida(s)"
 
-#: ../output.py:1043
+#: ../output.py:1059
 msgid "Dependency Installed"
 msgstr "Dependência(s) instalada(s)"
 
-#: ../output.py:1045
+#: ../output.py:1061
 msgid "Dependency Updated"
 msgstr "Dependência(s) atualizada(s)"
 
-#: ../output.py:1047
+#: ../output.py:1063
 msgid "Replaced"
 msgstr "Substituído(s)"
 
-#: ../output.py:1048
+#: ../output.py:1064
 msgid "Failed"
 msgstr "Falhou"
 
 #. Delta between C-c's so we treat as exit
-#: ../output.py:1114
+#: ../output.py:1130
 msgid "two"
 msgstr "dois"
 
@@ -848,76 +880,80 @@ msgstr "dois"
 #. Current download cancelled, interrupt (ctrl-c) again within two seconds
 #. to exit.
 #. Where "interupt (ctrl-c) again" and "two" are highlighted.
-#: ../output.py:1125
+#: ../output.py:1141
 #, python-format
 msgid ""
 "\n"
-" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds to exit.\n"
+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds\n"
+"to exit.\n"
 msgstr ""
 "\n"
-" Download atual cancelado, interrupção %s, (ctrl-c) novamente %s com %s%s%s segundos até sair.\n"
+" Download atual cancelado, %sinterrompa com (ctrl-c) novamente%s dentro de %s%s%s segundos\n"
+"para sair.\n"
 
-#: ../output.py:1135
+#: ../output.py:1152
 msgid "user interrupt"
 msgstr "interrupção do usuário"
 
-#: ../output.py:1151
+#: ../output.py:1168
 msgid "Total"
 msgstr "Total"
 
-#: ../output.py:1165
+#: ../output.py:1183
 msgid "installed"
 msgstr "instalado"
 
-#: ../output.py:1166
+#: ../output.py:1184
 msgid "updated"
 msgstr "atualizado"
 
-#: ../output.py:1167
+#: ../output.py:1185
 msgid "obsoleted"
 msgstr "obsoleto"
 
-#: ../output.py:1168
+#: ../output.py:1186
 msgid "erased"
 msgstr "removido"
 
-#: ../output.py:1172
+#: ../output.py:1190
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> Pacote %s.%s %s:%s-%s definido para ser %s"
 
-#: ../output.py:1179
+#: ../output.py:1197
 msgid "--> Running transaction check"
 msgstr "--> Executando verificação da transação"
 
-#: ../output.py:1184
+#: ../output.py:1202
 msgid "--> Restarting Dependency Resolution with new changes."
 msgstr "--> Reiniciando resolução de dependências com as novas alterações."
 
-#: ../output.py:1189
+#: ../output.py:1207
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Resolução de dependências finalizada"
 
-#: ../output.py:1194
+#: ../output.py:1212
+#: ../output.py:1217
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> Processando dependência: %s para o pacote: %s"
 
-#: ../output.py:1199
+#: ../output.py:1221
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Dependência não resolvida: %s"
 
-#: ../output.py:1205
+#: ../output.py:1227
+#: ../output.py:1232
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> Processando conflito: %s conflita com %s"
 
-#: ../output.py:1208
+#: ../output.py:1236
 msgid "--> Populating transaction set with selected packages. Please wait."
 msgstr "--> Construindo conjunto de transações com os pacotes selecionados. Por favor aguarde."
 
-#: ../output.py:1212
+#: ../output.py:1240
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
 msgstr "--> Baixando cabeçalho do %s para inclusão no conjunto de transações."
@@ -997,278 +1033,278 @@ msgstr "O arquivo %s, passado como um argumento para o shell, não existe."
 msgid "Error: more than one file given as argument to shell."
 msgstr "Erro: mais de um arquivo passado como argumento para o shell."
 
-#: ../yumcommands.py:167
+#: ../yumcommands.py:173
 msgid "PACKAGE..."
 msgstr "PACOTE..."
 
-#: ../yumcommands.py:170
+#: ../yumcommands.py:176
 msgid "Install a package or packages on your system"
 msgstr "Instala um ou mais pacotes no seu sistema"
 
-#: ../yumcommands.py:178
+#: ../yumcommands.py:184
 msgid "Setting up Install Process"
 msgstr "Configurando o processo de instalação"
 
-#: ../yumcommands.py:189
+#: ../yumcommands.py:198
 msgid "[PACKAGE...]"
 msgstr "[PACOTE...]"
 
-#: ../yumcommands.py:192
+#: ../yumcommands.py:201
 msgid "Update a package or packages on your system"
 msgstr "Atualiza um ou mais pacotes do seu sistema"
 
-#: ../yumcommands.py:199
+#: ../yumcommands.py:208
 msgid "Setting up Update Process"
 msgstr "Configurando o processo de atualização"
 
-#: ../yumcommands.py:244
+#: ../yumcommands.py:256
 msgid "Display details about a package or group of packages"
 msgstr "Mostra detalhes sobre um pacote ou grupos de pacotes"
 
-#: ../yumcommands.py:293
+#: ../yumcommands.py:305
 msgid "Installed Packages"
 msgstr "Pacotes instalados"
 
-#: ../yumcommands.py:301
+#: ../yumcommands.py:313
 msgid "Available Packages"
 msgstr "Pacotes disponíveis"
 
-#: ../yumcommands.py:305
+#: ../yumcommands.py:317
 msgid "Extra Packages"
 msgstr "Pacotes extras"
 
-#: ../yumcommands.py:309
+#: ../yumcommands.py:321
 msgid "Updated Packages"
 msgstr "Pacotes atualizados"
 
 #. This only happens in verbose mode
-#: ../yumcommands.py:317
-#: ../yumcommands.py:324
-#: ../yumcommands.py:601
+#: ../yumcommands.py:329
+#: ../yumcommands.py:336
+#: ../yumcommands.py:630
 msgid "Obsoleting Packages"
 msgstr "Tornando pacotes obsoletos"
 
-#: ../yumcommands.py:326
+#: ../yumcommands.py:338
 msgid "Recently Added Packages"
 msgstr "Pacotes adicionados recentemente"
 
-#: ../yumcommands.py:333
+#: ../yumcommands.py:345
 msgid "No matching Packages to list"
 msgstr "Nenhum pacote correspondente a ser listado"
 
-#: ../yumcommands.py:347
+#: ../yumcommands.py:362
 msgid "List a package or groups of packages"
 msgstr "Lista um pacote ou grupos de pacotes"
 
-#: ../yumcommands.py:359
+#: ../yumcommands.py:376
 msgid "Remove a package or packages from your system"
 msgstr "Remove um ou mais pacotes do seu sistema"
 
-#: ../yumcommands.py:366
+#: ../yumcommands.py:383
 msgid "Setting up Remove Process"
 msgstr "Configurando o processo de remoção"
 
-#: ../yumcommands.py:380
+#: ../yumcommands.py:400
 msgid "Setting up Group Process"
 msgstr "Configurando o processo de grupos"
 
-#: ../yumcommands.py:386
+#: ../yumcommands.py:406
 msgid "No Groups on which to run command"
 msgstr "Não há grupos nos quais executar o comando"
 
-#: ../yumcommands.py:399
+#: ../yumcommands.py:419
 msgid "List available package groups"
 msgstr "Lista os grupos de pacotes disponíveis"
 
-#: ../yumcommands.py:416
+#: ../yumcommands.py:436
 msgid "Install the packages in a group on your system"
 msgstr "Instala pacotes em um grupo ou no seu sistema"
 
-#: ../yumcommands.py:438
+#: ../yumcommands.py:458
 msgid "Remove the packages in a group from your system"
 msgstr "Remove pacotes de um grupo ou do seu sistema"
 
-#: ../yumcommands.py:465
+#: ../yumcommands.py:485
 msgid "Display details about a package group"
 msgstr "Mostra detalhes sobre um grupo de pacotes"
 
-#: ../yumcommands.py:489
+#: ../yumcommands.py:511
 msgid "Generate the metadata cache"
 msgstr "Gera o cache de metadados"
 
-#: ../yumcommands.py:495
+#: ../yumcommands.py:517
 msgid "Making cache files for all metadata files."
 msgstr "Realizando cache de arquivos para todos os metadados."
 
-#: ../yumcommands.py:496
+#: ../yumcommands.py:518
 msgid "This may take a while depending on the speed of this computer"
 msgstr "Isso pode demorar um pouco, dependendo da velocidade deste computador"
 
-#: ../yumcommands.py:517
+#: ../yumcommands.py:539
 msgid "Metadata Cache Created"
 msgstr "Cache de metadados criado"
 
-#: ../yumcommands.py:531
+#: ../yumcommands.py:555
 msgid "Remove cached data"
 msgstr "Remove os dados do cache"
 
-#: ../yumcommands.py:552
+#: ../yumcommands.py:578
 msgid "Find what package provides the given value"
 msgstr "Localiza qual pacote fornece o valor dado"
 
-#: ../yumcommands.py:572
+#: ../yumcommands.py:601
 msgid "Check for available package updates"
 msgstr "Verifica por atualizações de pacotes disponíveis"
 
-#: ../yumcommands.py:621
+#: ../yumcommands.py:653
 msgid "Search package details for the given string"
 msgstr "Pesquisa detalhes do pacote para a string fornecida"
 
-#: ../yumcommands.py:627
+#: ../yumcommands.py:659
 msgid "Searching Packages: "
 msgstr "Pesquisando por pacotes:"
 
-#: ../yumcommands.py:644
+#: ../yumcommands.py:679
 msgid "Update packages taking obsoletes into account"
 msgstr "Atualiza pacotes levando em conta os obsoletos"
 
-#: ../yumcommands.py:652
+#: ../yumcommands.py:687
 msgid "Setting up Upgrade Process"
 msgstr "Configurando o processo de atualização"
 
-#: ../yumcommands.py:666
+#: ../yumcommands.py:704
 msgid "Install a local RPM"
 msgstr "Instala um RPM local"
 
-#: ../yumcommands.py:674
+#: ../yumcommands.py:712
 msgid "Setting up Local Package Process"
 msgstr "Configurando o processo de pacote local"
 
-#: ../yumcommands.py:693
+#: ../yumcommands.py:734
 msgid "Determine which package provides the given dependency"
 msgstr "Determina qual pacote fornece a dependência dada"
 
-#: ../yumcommands.py:696
+#: ../yumcommands.py:737
 msgid "Searching Packages for Dependency:"
 msgstr "Pesquisando pacotes por dependência:"
 
-#: ../yumcommands.py:710
+#: ../yumcommands.py:754
 msgid "Run an interactive yum shell"
 msgstr "Executa um shell interativo do yum"
 
-#: ../yumcommands.py:716
+#: ../yumcommands.py:760
 msgid "Setting up Yum Shell"
 msgstr "Configurando o shell do Yum"
 
-#: ../yumcommands.py:734
+#: ../yumcommands.py:781
 msgid "List a package's dependencies"
 msgstr "Lista as dependências de um pacote"
 
-#: ../yumcommands.py:740
+#: ../yumcommands.py:787
 msgid "Finding dependencies: "
 msgstr "Localizando dependências:"
 
-#: ../yumcommands.py:756
+#: ../yumcommands.py:805
 msgid "Display the configured software repositories"
 msgstr "Exibe os repositórios de software configurados"
 
-#: ../yumcommands.py:804
-#: ../yumcommands.py:805
+#: ../yumcommands.py:853
+#: ../yumcommands.py:854
 msgid "enabled"
 msgstr "habilitado"
 
-#: ../yumcommands.py:813
-#: ../yumcommands.py:814
+#: ../yumcommands.py:862
+#: ../yumcommands.py:863
 msgid "disabled"
 msgstr "desabilitado"
 
-#: ../yumcommands.py:828
+#: ../yumcommands.py:877
 msgid "Repo-id     : "
 msgstr "Repo-id     : "
 
-#: ../yumcommands.py:829
+#: ../yumcommands.py:878
 msgid "Repo-name   : "
 msgstr "Repo-name   : "
 
-#: ../yumcommands.py:830
+#: ../yumcommands.py:879
 msgid "Repo-status : "
 msgstr "Repo-status : "
 
-#: ../yumcommands.py:832
+#: ../yumcommands.py:881
 msgid "Repo-revision: "
 msgstr "Repo-revision: "
 
-#: ../yumcommands.py:836
+#: ../yumcommands.py:885
 msgid "Repo-tags   : "
 msgstr "Repo-tags   : "
 
-#: ../yumcommands.py:842
+#: ../yumcommands.py:891
 msgid "Repo-distro-tags: "
 msgstr "Repo-distro-tags: "
 
-#: ../yumcommands.py:847
+#: ../yumcommands.py:896
 msgid "Repo-updated: "
 msgstr "Repo-updated: "
 
-#: ../yumcommands.py:849
+#: ../yumcommands.py:898
 msgid "Repo-pkgs   : "
 msgstr "Repo-pkgs   : "
 
-#: ../yumcommands.py:850
+#: ../yumcommands.py:899
 msgid "Repo-size   : "
 msgstr "Repo-size   : "
 
-#: ../yumcommands.py:857
+#: ../yumcommands.py:906
 msgid "Repo-baseurl: "
 msgstr "Repo-baseurl: "
 
-#: ../yumcommands.py:861
+#: ../yumcommands.py:914
 msgid "Repo-metalink: "
 msgstr "Repo-metalink: "
 
-#: ../yumcommands.py:865
+#: ../yumcommands.py:918
 msgid "  Updated    : "
 msgstr "  Atualizados :"
 
-#: ../yumcommands.py:868
+#: ../yumcommands.py:921
 msgid "Repo-mirrors: "
 msgstr "Repo-mirrors: "
 
-#: ../yumcommands.py:872
+#: ../yumcommands.py:925
 msgid "Repo-exclude: "
 msgstr "Repo-exclude: "
 
-#: ../yumcommands.py:876
+#: ../yumcommands.py:929
 msgid "Repo-include: "
 msgstr "Repo-include: "
 
 #. Work out the first (id) and last (enabled/disalbed/count),
 #. then chop the middle (name)...
-#: ../yumcommands.py:886
-#: ../yumcommands.py:912
+#: ../yumcommands.py:939
+#: ../yumcommands.py:965
 msgid "repo id"
 msgstr "id do repo"
 
-#: ../yumcommands.py:900
-#: ../yumcommands.py:901
-#: ../yumcommands.py:915
+#: ../yumcommands.py:953
+#: ../yumcommands.py:954
+#: ../yumcommands.py:968
 msgid "status"
 msgstr "status"
 
-#: ../yumcommands.py:913
+#: ../yumcommands.py:966
 msgid "repo name"
 msgstr "nome do repo"
 
-#: ../yumcommands.py:939
+#: ../yumcommands.py:1010
 msgid "Display a helpful usage message"
 msgstr "Exibe uma mensagem de uso para ajuda"
 
-#: ../yumcommands.py:973
+#: ../yumcommands.py:1048
 #, python-format
 msgid "No help available for %s"
 msgstr "Nenhuma ajuda disponível para %s"
 
-#: ../yumcommands.py:978
+#: ../yumcommands.py:1053
 msgid ""
 "\n"
 "\n"
@@ -1278,7 +1314,7 @@ msgstr ""
 "\n"
 "apelidos: "
 
-#: ../yumcommands.py:980
+#: ../yumcommands.py:1055
 msgid ""
 "\n"
 "\n"
@@ -1288,26 +1324,46 @@ msgstr ""
 "\n"
 "apelido: "
 
-#: ../yumcommands.py:1008
+#: ../yumcommands.py:1071
+msgid "Command"
+msgstr "Comando"
+
+#: ../yumcommands.py:1082
+msgid "Created"
+msgstr "Criado"
+
+#: ../yumcommands.py:1083
+msgid "Summary"
+msgstr "Resumo"
+
+#: ../yumcommands.py:1130
 msgid "Setting up Reinstall Process"
 msgstr "Configurando o processo de reinstalação"
 
-#: ../yumcommands.py:1017
-msgid "Package(s) to reinstall"
-msgstr "Pacote(s) a ser(em) reinstalado(s)"
-
-#: ../yumcommands.py:1024
+#: ../yumcommands.py:1138
 msgid "reinstall a package"
 msgstr "reinstala um pacote"
 
-#: ../yumcommands.py:1042
+#: ../yumcommands.py:1159
 msgid "Setting up Downgrade Process"
 msgstr "Configurando o processo de retrocesso"
 
-#: ../yumcommands.py:1049
+#: ../yumcommands.py:1166
 msgid "downgrade a package"
 msgstr "retrocedendo um pacote"
 
+#: ../yumcommands.py:1183
+msgid "Display a version for the machine and/or available repos."
+msgstr "Exibe uma versão para a máquina e/ou os repositórios disponíveis."
+
+#: ../yumcommands.py:1210
+msgid "Installed:"
+msgstr "Instalados:"
+
+#: ../yumcommands.py:1219
+msgid "Available:"
+msgstr "Disponíveis:"
+
 #: ../yummain.py:42
 msgid ""
 "\n"
@@ -1433,201 +1489,201 @@ msgstr ""
 "\n"
 "Saindo pelo cancelamento do usuário."
 
-#: ../yum/depsolve.py:84
+#: ../yum/depsolve.py:83
 msgid "doTsSetup() will go away in a future version of Yum.\n"
 msgstr "doTsSetup() será removida em uma futura versão do Yum.\n"
 
-#: ../yum/depsolve.py:99
+#: ../yum/depsolve.py:98
 msgid "Setting up TransactionSets before config class is up"
 msgstr "Configurando TransactionSets antes da ativação da classe de configuração"
 
-#: ../yum/depsolve.py:150
+#: ../yum/depsolve.py:149
 #, python-format
 msgid "Invalid tsflag in config file: %s"
 msgstr "tsflag inválido no arquivo de configuração: %s"
 
-#: ../yum/depsolve.py:161
+#: ../yum/depsolve.py:160
 #, python-format
 msgid "Searching pkgSack for dep: %s"
 msgstr "Pesquisando pkgSack para a dep.: %s"
 
-#: ../yum/depsolve.py:184
+#: ../yum/depsolve.py:183
 #, python-format
 msgid "Potential match for %s from %s"
 msgstr "Correspondência potencial para o %s a partir de %s"
 
-#: ../yum/depsolve.py:192
+#: ../yum/depsolve.py:191
 #, python-format
 msgid "Matched %s to require for %s"
 msgstr "%s encontrado para solicitar o %s"
 
-#: ../yum/depsolve.py:233
+#: ../yum/depsolve.py:232
 #, python-format
 msgid "Member: %s"
 msgstr "Membro: %s"
 
-#: ../yum/depsolve.py:247
-#: ../yum/depsolve.py:739
+#: ../yum/depsolve.py:246
+#: ../yum/depsolve.py:759
 #, python-format
 msgid "%s converted to install"
 msgstr "%s convertido para instalar"
 
-#: ../yum/depsolve.py:254
+#: ../yum/depsolve.py:253
 #, python-format
 msgid "Adding Package %s in mode %s"
 msgstr "Adicionando pacote %s no modo %s"
 
-#: ../yum/depsolve.py:264
+#: ../yum/depsolve.py:263
 #, python-format
 msgid "Removing Package %s"
 msgstr "Removendo pacote %s"
 
-#: ../yum/depsolve.py:275
+#: ../yum/depsolve.py:285
 #, python-format
 msgid "%s requires: %s"
 msgstr "%s requer: %s"
 
-#: ../yum/depsolve.py:333
+#: ../yum/depsolve.py:343
 msgid "Needed Require has already been looked up, cheating"
 msgstr "O requerimento necessário já foi localizado, enganando"
 
-#: ../yum/depsolve.py:343
+#: ../yum/depsolve.py:353
 #, python-format
 msgid "Needed Require is not a package name. Looking up: %s"
 msgstr "O requerimento necessário não é o nome de um pacote. Localizando: %s"
 
-#: ../yum/depsolve.py:350
+#: ../yum/depsolve.py:360
 #, python-format
 msgid "Potential Provider: %s"
 msgstr "Fornecedor em potencial: %s"
 
-#: ../yum/depsolve.py:373
+#: ../yum/depsolve.py:383
 #, python-format
 msgid "Mode is %s for provider of %s: %s"
 msgstr "O modo é %s para o fornecedor do %s: %s"
 
-#: ../yum/depsolve.py:377
+#: ../yum/depsolve.py:387
 #, python-format
 msgid "Mode for pkg providing %s: %s"
 msgstr "Modo para o pacote que fornece o %s: %s"
 
-#: ../yum/depsolve.py:381
+#: ../yum/depsolve.py:391
 #, python-format
 msgid "TSINFO: %s package requiring %s marked as erase"
 msgstr "TSINFO: o pacote %s que requer o %s foi marcado para remoção"
 
-#: ../yum/depsolve.py:394
+#: ../yum/depsolve.py:404
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
 msgstr "TSINFO: Tornando %s obsoleto com o %s para resolver a dependência."
 
-#: ../yum/depsolve.py:397
+#: ../yum/depsolve.py:407
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
 msgstr "TSINFO: Atualizando %s para resolver a dependência."
 
-#: ../yum/depsolve.py:405
+#: ../yum/depsolve.py:415
 #, python-format
 msgid "Cannot find an update path for dep for: %s"
 msgstr "Não foi possível encontrar um caminho de atualização para a dep. para: %s"
 
-#: ../yum/depsolve.py:415
+#: ../yum/depsolve.py:425
 #, python-format
 msgid "Unresolvable requirement %s for %s"
 msgstr "Requerimento %s insolúvel para o %s"
 
-#: ../yum/depsolve.py:438
+#: ../yum/depsolve.py:448
 #, python-format
 msgid "Quick matched %s to require for %s"
 msgstr "%s localizado rapidamente a ser requerido por %s"
 
 #. is it already installed?
-#: ../yum/depsolve.py:480
+#: ../yum/depsolve.py:490
 #, python-format
 msgid "%s is in providing packages but it is already installed, removing."
 msgstr "%s está nos pacotes fornecedores mas já está instalado, removendo."
 
-#: ../yum/depsolve.py:496
+#: ../yum/depsolve.py:506
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
 msgstr "O pacote de solução em potencial %s tem uma instância mais nova no ct."
 
-#: ../yum/depsolve.py:507
+#: ../yum/depsolve.py:517
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
 msgstr "O pacote de solução em potencial %s tem uma instância mais nova instalada."
 
-#: ../yum/depsolve.py:515
-#: ../yum/depsolve.py:564
+#: ../yum/depsolve.py:525
+#: ../yum/depsolve.py:574
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "Dependência faltando: %s é requerido pelo pacote %s"
 
-#: ../yum/depsolve.py:528
+#: ../yum/depsolve.py:538
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s já está no ct, pulando esse"
 
-#: ../yum/depsolve.py:574
+#: ../yum/depsolve.py:584
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: Marcando %s como uma atualização para o %s"
 
-#: ../yum/depsolve.py:582
+#: ../yum/depsolve.py:592
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: Marcando %s como uma instalação para o %s"
 
-#: ../yum/depsolve.py:675
-#: ../yum/depsolve.py:757
+#: ../yum/depsolve.py:695
+#: ../yum/depsolve.py:777
 msgid "Success - empty transaction"
 msgstr "Sucesso - transação vazia"
 
-#: ../yum/depsolve.py:714
-#: ../yum/depsolve.py:729
+#: ../yum/depsolve.py:734
+#: ../yum/depsolve.py:749
 msgid "Restarting Loop"
 msgstr "Reiniciando o loop"
 
-#: ../yum/depsolve.py:745
+#: ../yum/depsolve.py:765
 msgid "Dependency Process ending"
 msgstr "Término do processo de dependências"
 
-#: ../yum/depsolve.py:751
+#: ../yum/depsolve.py:771
 #, python-format
 msgid "%s from %s has depsolving problems"
 msgstr "%s a partir de %s tem problemas de resolução de dependências"
 
-#: ../yum/depsolve.py:758
+#: ../yum/depsolve.py:778
 msgid "Success - deps resolved"
 msgstr "Sucesso - dependências resolvidas"
 
-#: ../yum/depsolve.py:772
+#: ../yum/depsolve.py:792
 #, python-format
 msgid "Checking deps for %s"
 msgstr "Verificando dependências para %s"
 
-#: ../yum/depsolve.py:855
+#: ../yum/depsolve.py:875
 #, python-format
 msgid "looking for %s as a requirement of %s"
 msgstr "procurando por %s como um requerimento do %s"
 
-#: ../yum/depsolve.py:997
+#: ../yum/depsolve.py:1017
 #, python-format
 msgid "Running compare_providers() for %s"
 msgstr "Executando compare_providers() para %s"
 
-#: ../yum/depsolve.py:1031
-#: ../yum/depsolve.py:1037
+#: ../yum/depsolve.py:1051
+#: ../yum/depsolve.py:1057
 #, python-format
 msgid "better arch in po %s"
 msgstr "melhor arquitetura no po %s"
 
-#: ../yum/depsolve.py:1109
+#: ../yum/depsolve.py:1132
 #, python-format
 msgid "%s obsoletes %s"
 msgstr "%s torna %s obsoleto"
 
-#: ../yum/depsolve.py:1121
+#: ../yum/depsolve.py:1144
 #, python-format
 msgid ""
 "archdist compared %s to %s on %s\n"
@@ -1636,117 +1692,117 @@ msgstr ""
 "archdist comparou %s com %s em %s\n"
 "  Vencedor: %s"
 
-#: ../yum/depsolve.py:1128
+#: ../yum/depsolve.py:1151
 #, python-format
 msgid "common sourcerpm %s and %s"
 msgstr "Sourcerpm comum %s e %s"
 
-#: ../yum/depsolve.py:1134
+#: ../yum/depsolve.py:1157
 #, python-format
 msgid "common prefix of %s between %s and %s"
 msgstr "prefixo comum de %s entre %s e %s"
 
-#: ../yum/depsolve.py:1142
+#: ../yum/depsolve.py:1165
 #, python-format
 msgid "Best Order: %s"
 msgstr "Melhor ordem: %s"
 
-#: ../yum/__init__.py:158
+#: ../yum/__init__.py:180
 msgid "doConfigSetup() will go away in a future version of Yum.\n"
 msgstr "doConfigSetup() será removida em uma futura versão do Yum.\n"
 
-#: ../yum/__init__.py:367
+#: ../yum/__init__.py:401
 #, python-format
 msgid "Repository %r is missing name in configuration, using id"
 msgstr "O repositório %r não tem nome na configuração, usando o id"
 
-#: ../yum/__init__.py:405
+#: ../yum/__init__.py:439
 msgid "plugins already initialised"
 msgstr "plugins já inicializados"
 
-#: ../yum/__init__.py:412
+#: ../yum/__init__.py:446
 msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
 msgstr "doRpmDBSetup() será removida em uma futura versão do Yum.\n"
 
-#: ../yum/__init__.py:423
+#: ../yum/__init__.py:457
 msgid "Reading Local RPMDB"
 msgstr "Lendo RPMDB local"
 
-#: ../yum/__init__.py:441
+#: ../yum/__init__.py:478
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() será removida em uma futura versão do Yum.\n"
 
-#: ../yum/__init__.py:461
+#: ../yum/__init__.py:498
 msgid "doSackSetup() will go away in a future version of Yum.\n"
 msgstr "doSackSetup() será removida em uma futura versão do Yum.\n"
 
-#: ../yum/__init__.py:478
+#: ../yum/__init__.py:528
 msgid "Setting up Package Sacks"
 msgstr "Configurando sacos de pacotes"
 
-#: ../yum/__init__.py:521
+#: ../yum/__init__.py:573
 #, python-format
 msgid "repo object for repo %s lacks a _resetSack method\n"
 msgstr "o objeto de repositório para o %s necessita de um método _resetSack\n"
 
-#: ../yum/__init__.py:522
+#: ../yum/__init__.py:574
 msgid "therefore this repo cannot be reset.\n"
 msgstr "conseqüentemente este repo não pode ser restaurado.\n"
 
-#: ../yum/__init__.py:527
+#: ../yum/__init__.py:579
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
 msgstr "doUpdateSetup() será removida em uma futura versão do Yum.\n"
 
-#: ../yum/__init__.py:539
+#: ../yum/__init__.py:591
 msgid "Building updates object"
 msgstr "Construindo objeto de atualizações"
 
-#: ../yum/__init__.py:570
+#: ../yum/__init__.py:626
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
 msgstr "doGroupSetup() será removida em uma futura versão do Yum.\n"
 
-#: ../yum/__init__.py:595
+#: ../yum/__init__.py:651
 msgid "Getting group metadata"
 msgstr "Obtendo metadados do grupo"
 
-#: ../yum/__init__.py:621
+#: ../yum/__init__.py:677
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "Adicionando arquivo de grupo a partir do repositório: %s"
 
-#: ../yum/__init__.py:630
+#: ../yum/__init__.py:686
 #, python-format
 msgid "Failed to add groups file for repository: %s - %s"
 msgstr "Falha ao adicionar o arquivo de grupos para o repositório: %s - %s"
 
-#: ../yum/__init__.py:636
+#: ../yum/__init__.py:692
 msgid "No Groups Available in any repository"
 msgstr "Nenhum grupo disponível em nenhum repositório"
 
-#: ../yum/__init__.py:686
+#: ../yum/__init__.py:742
 msgid "Importing additional filelist information"
 msgstr "Importando informações adicionais da lista de arquivos"
 
-#: ../yum/__init__.py:700
+#: ../yum/__init__.py:756
 #, python-format
 msgid "The program %s%s%s is found in the yum-utils package."
 msgstr "O programa %s%s%s está localizado no pacote yum-utils."
 
-#: ../yum/__init__.py:708
+#: ../yum/__init__.py:764
 msgid "There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them."
 msgstr "Há transações não finalizadas restantes. Você pode considerar executar o yum-complete-transaction primeiro para finalizá-las."
 
-#: ../yum/__init__.py:775
+#: ../yum/__init__.py:832
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Rodada de ignoração de dependências quebradas %i"
 
-#: ../yum/__init__.py:827
+#: ../yum/__init__.py:884
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr "A ignoração de dependências quebradas levou %i rodadas"
 
-#: ../yum/__init__.py:828
+#: ../yum/__init__.py:885
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1754,89 +1810,70 @@ msgstr ""
 "\n"
 "Pacotes ignorados devido a problemas de dependências:"
 
-#: ../yum/__init__.py:832
+#: ../yum/__init__.py:889
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s a partir de %s"
 
-#: ../yum/__init__.py:972
+#: ../yum/__init__.py:1027
 msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
 msgstr "Aviso: scriptlet ou outros erros não fatais ocorreram durante a transação."
 
-#: ../yum/__init__.py:987
+#: ../yum/__init__.py:1042
 #, python-format
 msgid "Failed to remove transaction file %s"
 msgstr "Falha ao remover o arquivo de transação %s"
 
-#: ../yum/__init__.py:1051
-#, python-format
-msgid "excluding for cost: %s from %s"
-msgstr "excluindo para custo: %s a partir de %s"
-
-#: ../yum/__init__.py:1082
-msgid "Excluding Packages in global exclude list"
-msgstr "Excluindo pacotes na lista global de excluídos"
-
-#: ../yum/__init__.py:1084
-#, python-format
-msgid "Excluding Packages from %s"
-msgstr "Excluindo pacotes de %s"
-
-#: ../yum/__init__.py:1113
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1071
 #, python-format
-msgid "Reducing %s to included packages only"
-msgstr "Reduzindo %s apenas aos pacotes inclusos"
+msgid "%s was supposed to be installed but is not!"
+msgstr "%s deveria ter sido instalado mas não foi!"
 
-#: ../yum/__init__.py:1119
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1110
 #, python-format
-msgid "Keeping included package %s"
-msgstr "Mantendo o pacote incluso %s"
-
-#: ../yum/__init__.py:1125
-#, python-format
-msgid "Removing unmatched package %s"
-msgstr "Removendo pacote não encontrado %s"
-
-#: ../yum/__init__.py:1128
-msgid "Finished"
-msgstr "Concluído"
+msgid "%s was supposed to be removed but is not!"
+msgstr "%s deveria ter sido removido mas não foi!"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:1158
+#: ../yum/__init__.py:1226
 #, python-format
 msgid "Unable to check if PID %s is active"
 msgstr "Não foi possível verificar se o PID %s está ativo"
 
 #. Another copy seems to be running.
-#: ../yum/__init__.py:1162
+#: ../yum/__init__.py:1230
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
 msgstr "Bloqueio existente em %s: outra cópia está em execução com o pid %s."
 
-#: ../yum/__init__.py:1239
+#: ../yum/__init__.py:1307
 msgid "Package does not match intended download"
 msgstr "O pacote não corresponde ao download pretendido"
 
-#: ../yum/__init__.py:1254
+#: ../yum/__init__.py:1322
 msgid "Could not perform checksum"
 msgstr "Não foi possível realizar a soma de verificação"
 
-#: ../yum/__init__.py:1257
+#: ../yum/__init__.py:1325
 msgid "Package does not match checksum"
 msgstr "O pacote não corresponde à soma de verificação"
 
-#: ../yum/__init__.py:1299
+#: ../yum/__init__.py:1367
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
 msgstr "o pacote falhou na soma de verificação mas o cache está habilitado para o %s"
 
-#: ../yum/__init__.py:1302
-#: ../yum/__init__.py:1331
+#: ../yum/__init__.py:1370
+#: ../yum/__init__.py:1399
 #, python-format
 msgid "using local copy of %s"
 msgstr "usando cópia local do %s"
 
-#: ../yum/__init__.py:1343
+#: ../yum/__init__.py:1411
 #, python-format
 msgid ""
 "Insufficient space in download directory %s\n"
@@ -1847,347 +1884,362 @@ msgstr ""
 "    * livre   %s\n"
 "    * necessário %s"
 
-#: ../yum/__init__.py:1390
+#: ../yum/__init__.py:1460
 msgid "Header is not complete."
 msgstr "O cabeçalho não está completo."
 
-#: ../yum/__init__.py:1427
+#: ../yum/__init__.py:1497
 #, python-format
 msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
 msgstr "O cabeçalho não está no cache local e o modo de somente cache está habilitado. Não foi possível baixar o %s."
 
-#: ../yum/__init__.py:1482
+#: ../yum/__init__.py:1552
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "A chave pública para o %s não está instalada"
 
-#: ../yum/__init__.py:1486
+#: ../yum/__init__.py:1556
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Problema ao abrir o pacote %s"
 
-#: ../yum/__init__.py:1494
+#: ../yum/__init__.py:1564
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "A chave pública para o %s não é confiável"
 
-#: ../yum/__init__.py:1498
+#: ../yum/__init__.py:1568
 #, python-format
 msgid "Package %s is not signed"
 msgstr "O pacote %s não está assinado"
 
-#: ../yum/__init__.py:1536
+#: ../yum/__init__.py:1606
 #, python-format
 msgid "Cannot remove %s"
 msgstr "Não foi possível remover %s"
 
-#: ../yum/__init__.py:1540
+#: ../yum/__init__.py:1610
 #, python-format
 msgid "%s removed"
 msgstr "%s removido"
 
-#: ../yum/__init__.py:1576
+#: ../yum/__init__.py:1646
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "Não foi possível remover %s arquivo %s"
 
-#: ../yum/__init__.py:1580
+#: ../yum/__init__.py:1650
 #, python-format
 msgid "%s file %s removed"
 msgstr "%s arquivo %s removido"
 
-#: ../yum/__init__.py:1582
+#: ../yum/__init__.py:1652
 #, python-format
 msgid "%d %s files removed"
 msgstr "%d %s arquivos removidos"
 
-#: ../yum/__init__.py:1651
+#: ../yum/__init__.py:1721
 #, python-format
 msgid "More than one identical match in sack for %s"
 msgstr "Mais de uma correspondência idêntica no saco para %s"
 
-#: ../yum/__init__.py:1657
+#: ../yum/__init__.py:1727
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "Nada corresponde ao %s.%s %s:%s-%s a partir da atualização"
 
-#: ../yum/__init__.py:1875
+#: ../yum/__init__.py:1960
 msgid "searchPackages() will go away in a future version of Yum.                      Use searchGenerator() instead. \n"
 msgstr "searchPackages() será removida em uma futura versão do Yum. Ao invés disso, use a searchGenerator().\n"
 
-#: ../yum/__init__.py:1917
+#: ../yum/__init__.py:2002
 #, python-format
 msgid "Searching %d packages"
 msgstr "Pesquisando por %d pacotes"
 
-#: ../yum/__init__.py:1921
+#: ../yum/__init__.py:2006
 #, python-format
 msgid "searching package %s"
 msgstr "pesquisando pelo pacote %s"
 
-#: ../yum/__init__.py:1933
+#: ../yum/__init__.py:2018
 msgid "searching in file entries"
 msgstr "pesquisando nas entradas do arquivo"
 
-#: ../yum/__init__.py:1940
+#: ../yum/__init__.py:2025
 msgid "searching in provides entries"
 msgstr "pesquisando nas entradas dos fornecimentos"
 
-#: ../yum/__init__.py:1973
+#: ../yum/__init__.py:2058
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Fornecimento combina com: %s"
 
-#: ../yum/__init__.py:2022
+#: ../yum/__init__.py:2107
 msgid "No group data available for configured repositories"
 msgstr "Nenhum dado de grupos disponível para os repositório configurados"
 
-#: ../yum/__init__.py:2053
-#: ../yum/__init__.py:2072
-#: ../yum/__init__.py:2103
-#: ../yum/__init__.py:2109
+#: ../yum/__init__.py:2138
+#: ../yum/__init__.py:2157
 #: ../yum/__init__.py:2188
-#: ../yum/__init__.py:2192
-#: ../yum/__init__.py:2489
+#: ../yum/__init__.py:2194
+#: ../yum/__init__.py:2273
+#: ../yum/__init__.py:2277
+#: ../yum/__init__.py:2582
 #, python-format
 msgid "No Group named %s exists"
 msgstr "Não existe nenhum grupo de nome %s"
 
-#: ../yum/__init__.py:2084
-#: ../yum/__init__.py:2205
+#: ../yum/__init__.py:2169
+#: ../yum/__init__.py:2290
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "o pacote %s não foi marcado no grupo %s"
 
-#: ../yum/__init__.py:2131
+#: ../yum/__init__.py:2216
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Adicionando o pacote %s do grupo %s"
 
-#: ../yum/__init__.py:2135
+#: ../yum/__init__.py:2220
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "Nenhum pacote de nome %s disponível para ser instalado"
 
-#: ../yum/__init__.py:2232
+#: ../yum/__init__.py:2317
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "A tupla %s do pacote não pôde ser encontrada no packagesack"
 
-#: ../yum/__init__.py:2246
+#: ../yum/__init__.py:2331
 msgid "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
 msgstr "getInstalledPackageObject() será deixada de lado, use a self.rpmdb.searchPkgTuple().\n"
 
-#: ../yum/__init__.py:2302
-#: ../yum/__init__.py:2347
+#: ../yum/__init__.py:2387
+#: ../yum/__init__.py:2432
 msgid "Invalid version flag"
 msgstr "Sinalizador de versão inválido"
 
-#: ../yum/__init__.py:2317
-#: ../yum/__init__.py:2322
+#: ../yum/__init__.py:2402
+#: ../yum/__init__.py:2407
 #, python-format
 msgid "No Package found for %s"
 msgstr "Nenhum pacote encontrado para %s"
 
-#: ../yum/__init__.py:2522
+#: ../yum/__init__.py:2615
 msgid "Package Object was not a package object instance"
 msgstr "O pacote de objeto não era uma instância de pacote de objeto"
 
-#: ../yum/__init__.py:2526
+#: ../yum/__init__.py:2619
 msgid "Nothing specified to install"
 msgstr "Nada especificado para instalar"
 
-#: ../yum/__init__.py:2542
-#: ../yum/__init__.py:3211
+#: ../yum/__init__.py:2635
+#: ../yum/__init__.py:3374
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
 msgstr "Verificando por fornecimento virtual ou de arquivo para %s"
 
-#: ../yum/__init__.py:2548
-#: ../yum/__init__.py:2824
-#: ../yum/__init__.py:2984
-#: ../yum/__init__.py:3217
+#: ../yum/__init__.py:2641
+#: ../yum/__init__.py:2937
+#: ../yum/__init__.py:3104
+#: ../yum/__init__.py:3380
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "Nenhuma correspondência para o argumento: %s"
 
-#: ../yum/__init__.py:2622
+#: ../yum/__init__.py:2715
 #, python-format
 msgid "Package %s installed and not available"
 msgstr "Pacote %s instalado, mas não disponível"
 
-#: ../yum/__init__.py:2625
+#: ../yum/__init__.py:2718
 msgid "No package(s) available to install"
 msgstr "Nenhum pacote disponível para instalar"
 
-#: ../yum/__init__.py:2637
+#: ../yum/__init__.py:2730
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "Pacote: %s - já está no conjunto de transações"
 
-#: ../yum/__init__.py:2652
+#: ../yum/__init__.py:2756
+#, python-format
+msgid "Package %s is obsoleted by %s which is already installed"
+msgstr "O pacote %s foi tornado obsoleto pelo %s, o qual já está instalado"
+
+#: ../yum/__init__.py:2759
 #, python-format
 msgid "Package %s is obsoleted by %s, trying to install %s instead"
 msgstr "O pacote %s foi tornado obsoleto por %s, tentando instalar %s ao invés disso"
 
-#: ../yum/__init__.py:2660
+#: ../yum/__init__.py:2767
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "O pacote %s já está instalado em sua última versão"
 
-#: ../yum/__init__.py:2674
+#: ../yum/__init__.py:2781
 #, python-format
 msgid "Package matching %s already installed. Checking for update."
 msgstr "O pacote %s já está instalado. Verificando por uma atualização."
 
 #. update everything (the easy case)
-#: ../yum/__init__.py:2760
+#: ../yum/__init__.py:2870
 msgid "Updating Everything"
 msgstr "Atualizando tudo"
 
-#: ../yum/__init__.py:2778
-#: ../yum/__init__.py:2886
-#: ../yum/__init__.py:2907
-#: ../yum/__init__.py:2933
+#: ../yum/__init__.py:2891
+#: ../yum/__init__.py:3002
+#: ../yum/__init__.py:3031
+#: ../yum/__init__.py:3058
 #, python-format
 msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
 msgstr "Pacote já obsoleto não será atualizado: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2813
-#: ../yum/__init__.py:2981
+#: ../yum/__init__.py:2926
+#: ../yum/__init__.py:3101
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: ../yum/__init__.py:2877
+#: ../yum/__init__.py:2993
 #, python-format
 msgid "Package is already obsoleted: %s.%s %s:%s-%s"
 msgstr "O pacote já está obsoleto: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2910
-#: ../yum/__init__.py:2936
+#: ../yum/__init__.py:3026
+#, python-format
+msgid "Not Updating Package that is obsoleted: %s"
+msgstr "Não atualizando o pacote que está obsoleto: %s"
+
+#: ../yum/__init__.py:3035
+#: ../yum/__init__.py:3062
 #, python-format
 msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
 msgstr "Pacote já atualizado não será atualizado novamente: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2997
+#: ../yum/__init__.py:3117
 msgid "No package matched to remove"
 msgstr "Nenhum pacote encontrado para remoção"
 
-#: ../yum/__init__.py:3031
-#: ../yum/__init__.py:3165
+#: ../yum/__init__.py:3151
+#: ../yum/__init__.py:3242
+#: ../yum/__init__.py:3329
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "Não foi possível abrir o arquivo: %s. Ignorando."
 
-#: ../yum/__init__.py:3034
-#: ../yum/__init__.py:3168
+#: ../yum/__init__.py:3154
+#: ../yum/__init__.py:3245
+#: ../yum/__init__.py:3332
 #, python-format
 msgid "Examining %s: %s"
 msgstr "Examinando %s: %s"
 
-#: ../yum/__init__.py:3042
-#: ../yum/__init__.py:3171
+#: ../yum/__init__.py:3162
+#: ../yum/__init__.py:3248
+#: ../yum/__init__.py:3335
 #, python-format
 msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
 msgstr "Não foi possível adicionar o pacote %s à transação. %s não é uma arquitetura compatível."
 
-#: ../yum/__init__.py:3050
+#: ../yum/__init__.py:3170
 #, python-format
 msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
 msgstr "O pacote %s não está instalado, não é possível atualizá-lo. Execute o yum install para instalá-lo."
 
-#: ../yum/__init__.py:3085
-#: ../yum/__init__.py:3183
+#: ../yum/__init__.py:3205
+#: ../yum/__init__.py:3259
+#: ../yum/__init__.py:3346
 #, python-format
 msgid "Excluding %s"
 msgstr "Excluindo %s"
 
-#: ../yum/__init__.py:3090
+#: ../yum/__init__.py:3210
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Marcando %s para ser instalado"
 
-#: ../yum/__init__.py:3096
+#: ../yum/__init__.py:3216
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "Marcando %s como uma atualização do %s"
 
-#: ../yum/__init__.py:3103
+#: ../yum/__init__.py:3223
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: não atualiza o pacote instalado."
 
-#: ../yum/__init__.py:3118
+#: ../yum/__init__.py:3278
 msgid "Problem in reinstall: no package matched to remove"
 msgstr "Problema na reinstalação: nenhum pacote encontrado para remoção"
 
-#: ../yum/__init__.py:3130
-#: ../yum/__init__.py:3244
+#: ../yum/__init__.py:3290
+#: ../yum/__init__.py:3407
 #, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "O pacote %s permite múltiplas instalações, ignorando"
 
-#: ../yum/__init__.py:3144
-msgid "Problem in reinstall: no package matched to install"
-msgstr "Problema na reinstalação: nenhum pacote encontrado para instalação"
+#: ../yum/__init__.py:3308
+#, python-format
+msgid "Problem in reinstall: no package %s matched to install"
+msgstr "Problema na reinstalação: nenhum pacote %s encontrado para instalação"
 
-#: ../yum/__init__.py:3236
+#: ../yum/__init__.py:3399
 msgid "No package(s) available to downgrade"
 msgstr "Nenhum pacote disponível para ser retrocedido"
 
-#: ../yum/__init__.py:3280
+#: ../yum/__init__.py:3443
 #, python-format
 msgid "No Match for available package: %s"
 msgstr "Nenhuma correspondência disponível para o pacote: %s"
 
-#: ../yum/__init__.py:3286
+#: ../yum/__init__.py:3449
 #, python-format
 msgid "Only Upgrade available on package: %s"
 msgstr "Somente a atualização está disponível para o pacote: %s"
 
-#: ../yum/__init__.py:3348
+#: ../yum/__init__.py:3508
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "Obtendo a chave GPG a partir de %s"
 
-#: ../yum/__init__.py:3368
+#: ../yum/__init__.py:3528
 msgid "GPG key retrieval failed: "
 msgstr "A obtenção da chave GPG falhou:"
 
-#: ../yum/__init__.py:3379
+#: ../yum/__init__.py:3539
 #, python-format
 msgid "GPG key parsing failed: key does not have value %s"
 msgstr "Falha na análise da chave GPG: ela não tem o valor %s"
 
-#: ../yum/__init__.py:3411
+#: ../yum/__init__.py:3571
 #, python-format
 msgid "GPG key at %s (0x%s) is already installed"
 msgstr "A chave GPG em %s (0x%s) já está instalada"
 
 #. Try installing/updating GPG key
-#: ../yum/__init__.py:3416
-#: ../yum/__init__.py:3478
+#: ../yum/__init__.py:3576
+#: ../yum/__init__.py:3638
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "Importando chave GPG 0x%s \"%s\" a partir de %s"
 
-#: ../yum/__init__.py:3433
+#: ../yum/__init__.py:3593
 msgid "Not installing key"
 msgstr "Não está instalando a chave"
 
-#: ../yum/__init__.py:3439
+#: ../yum/__init__.py:3599
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "Falha na importação da chave (código %d)"
 
-#: ../yum/__init__.py:3440
-#: ../yum/__init__.py:3499
+#: ../yum/__init__.py:3600
+#: ../yum/__init__.py:3659
 msgid "Key imported successfully"
 msgstr "Chave importada com sucesso"
 
-#: ../yum/__init__.py:3445
-#: ../yum/__init__.py:3504
+#: ../yum/__init__.py:3605
+#: ../yum/__init__.py:3664
 #, python-format
 msgid ""
 "The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n"
@@ -2196,96 +2248,96 @@ msgstr ""
 "As chaves GPG listadas para o repositório \"%s\" já estão instaladas, mas não estão corretas para este pacote.\n"
 "Verifique se as URLs corretas das chaves estão configuradas para esse repositório."
 
-#: ../yum/__init__.py:3454
+#: ../yum/__init__.py:3614
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "A importação da(s) chave(s) não ajudou, chave(s) errada(s)?"
 
-#: ../yum/__init__.py:3473
+#: ../yum/__init__.py:3633
 #, python-format
 msgid "GPG key at %s (0x%s) is already imported"
 msgstr "A chave GPG em %s (0x%s) já foi importada"
 
-#: ../yum/__init__.py:3493
+#: ../yum/__init__.py:3653
 #, python-format
 msgid "Not installing key for repo %s"
 msgstr "A chave para o repositório %s não será instalada"
 
-#: ../yum/__init__.py:3498
+#: ../yum/__init__.py:3658
 msgid "Key import failed"
 msgstr "Falha na importação da chave"
 
-#: ../yum/__init__.py:3589
+#: ../yum/__init__.py:3779
 msgid "Unable to find a suitable mirror."
 msgstr "Não foi possível encontrar um espelho apropriado."
 
-#: ../yum/__init__.py:3591
+#: ../yum/__init__.py:3781
 msgid "Errors were encountered while downloading packages."
 msgstr "Foram encontrados erros ao baixar os pacotes."
 
-#: ../yum/__init__.py:3632
+#: ../yum/__init__.py:3822
 #, python-format
 msgid "Please report this error at %s"
 msgstr "Por favor, relate esse erro em %s"
 
-#: ../yum/__init__.py:3656
+#: ../yum/__init__.py:3846
 msgid "Test Transaction Errors: "
 msgstr "Erros do teste de transação:"
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:204
+#: ../yum/plugins.py:202
 msgid "Loaded plugins: "
 msgstr "Plugins carregados: "
 
-#: ../yum/plugins.py:218
-#: ../yum/plugins.py:224
+#: ../yum/plugins.py:216
+#: ../yum/plugins.py:222
 #, python-format
 msgid "No plugin match for: %s"
 msgstr "Nenhum plugin correspondente para: %s"
 
-#: ../yum/plugins.py:254
+#: ../yum/plugins.py:252
 #, python-format
 msgid "Not loading \"%s\" plugin, as it is disabled"
 msgstr "O plugin \"%s\" não será carregado, pois está desabilitado"
 
 #. Give full backtrace:
-#: ../yum/plugins.py:266
+#: ../yum/plugins.py:264
 #, python-format
 msgid "Plugin \"%s\" can't be imported"
 msgstr "O plugin \"%s\" não pôde ser importado"
 
-#: ../yum/plugins.py:273
+#: ../yum/plugins.py:271
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr "O plugin \"%s\" não especifica a versão requerida da API"
 
-#: ../yum/plugins.py:278
+#: ../yum/plugins.py:276
 #, python-format
 msgid "Plugin \"%s\" requires API %s. Supported API is %s."
 msgstr "O plugin \"%s\" requer a API %s. A API suportada é a %s."
 
-#: ../yum/plugins.py:311
+#: ../yum/plugins.py:309
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "Carregando o plugin \"%s\""
 
-#: ../yum/plugins.py:318
+#: ../yum/plugins.py:316
 #, python-format
 msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
 msgstr "Dois ou mais plugins com o nome \"%s\" existem no caminho de pesquisa plugins"
 
-#: ../yum/plugins.py:338
+#: ../yum/plugins.py:336
 #, python-format
 msgid "Configuration file %s not found"
 msgstr "Arquivos de configuração %s não encontrado"
 
 #. for
 #. Configuration files for the plugin not found
-#: ../yum/plugins.py:341
+#: ../yum/plugins.py:339
 #, python-format
 msgid "Unable to find configuration file for plugin %s"
 msgstr "Não foi possível encontrar o arquivo de configuração para o plugin %s"
 
-#: ../yum/plugins.py:499
+#: ../yum/plugins.py:497
 msgid "registration of commands not supported"
 msgstr "O registro de comandos não é suportado"
 
@@ -2324,6 +2376,37 @@ msgstr "Cabeçalho %s danificado"
 msgid "Error opening rpm %s - error %s"
 msgstr "Erro ao abrir o rpm %s - erro %s"
 
+#~ msgid "Matching packages for package list to user args"
+#~ msgstr ""
+#~ "Resultado dos pacotes para a lista de pacotes dos argumentos do usuário"
+#~ 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"
+#~ "Sumário da transação\n"
+#~ "%s\n"
+#~ "Instalar  %5.5s pacote(s)         \n"
+#~ "Atualizar   %5.5s pacote(s)         \n"
+#~ "Remover   %5.5s pacote(s)         \n"
+#~ msgid "excluding for cost: %s from %s"
+#~ msgstr "excluindo para custo: %s a partir de %s"
+#~ msgid "Excluding Packages in global exclude list"
+#~ msgstr "Excluindo pacotes na lista global de excluídos"
+#~ msgid "Excluding Packages from %s"
+#~ msgstr "Excluindo pacotes de %s"
+#~ msgid "Reducing %s to included packages only"
+#~ msgstr "Reduzindo %s apenas aos pacotes inclusos"
+#~ msgid "Keeping included package %s"
+#~ msgstr "Mantendo o pacote incluso %s"
+#~ msgid "Removing unmatched package %s"
+#~ msgstr "Removendo pacote não encontrado %s"
+#~ msgid "Finished"
+#~ msgstr "Concluído"
 #~ msgid "Invalid versioned dependency string, try quoting it."
 #~ msgstr "String de dependência versionada inválida, tente citá-la."
 #~ msgid "Entering rpm code"
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.30 2009/08/31 20:52:07 skvidal Exp $
+# $Id: yum-HEAD.patch,v 1.30 2009/08/31 20:52:07 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..d22782b 100644
--- a/rpmUtils/arch.py
+++ b/rpmUtils/arch.py
@@ -291,7 +291,7 @@ def getCanonX86_64Arch(arch):
     if vendor is None:
         return arch
 
-    if vendor.find("Authentic AMD") != -1:
+    if vendor.find("Authentic AMD") != -1 or vendor.find("AuthenticAMD") != -1:
         return "amd64"
     if vendor.find("GenuineIntel") != -1:
         return "ia32e"
@@ -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/miscutils.py b/rpmUtils/miscutils.py
index 0e04194..a925027 100644
--- a/rpmUtils/miscutils.py
+++ b/rpmUtils/miscutils.py
@@ -146,7 +146,8 @@ def rangeCompare(reqtuple, provtuple):
     if reqn != n:
         return 0
 
-    if f is None or reqf is None:
+    # unversioned satisfies everything
+    if not f or not reqf:
         return 1
 
     # and you thought we were done having fun
@@ -172,8 +173,12 @@ def rangeCompare(reqtuple, provtuple):
         if reqf in ['GT', 'GE', 4, 12]:
             return 1
         if reqf in ['EQ', 8]:
-            if f in ['LE', 10]:
+            if f in ['LE', 10, 'LT', 2]:
+                return 1                
+        if reqf in ['LE', 'LT', 'EQ', 10, 2, 8]:
+            if f in ['LE', 'LT', 10, 2]:
                 return 1
+
     if rc == 0:
         if reqf in ['GT', 4]:
             if f in ['GT', 'GE', 4, 12]:
@@ -409,7 +414,7 @@ def hdrFromPackage(ts, package):
         raise rpmUtils.RpmUtilsError, "RPM Error opening Package"
     if type(hdr) != rpm.hdr:
         os.close(fdno)
-        raise rpmUtils.RpmUtilsError, "RPM Error opening Package"
+        raise rpmUtils.RpmUtilsError, "RPM Error opening Package (type)"
     
     os.close(fdno)
     return hdr
diff --git a/rpmUtils/updates.py b/rpmUtils/updates.py
index 0e697bc..f2d43f8 100644
--- a/rpmUtils/updates.py
+++ b/rpmUtils/updates.py
@@ -48,10 +48,15 @@ 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)
+        self.availdict = self.makeNADict(self.available, 0) # Done in doUpdate
 
         # holder for our updates dict
         self.updatesdict = {}
@@ -288,19 +293,10 @@ class Updates:
                         # make the new ones a list b/c while we _shouldn't_
                         # have multiple updaters, we might and well, it needs
                         # to be solved one way or the other <sigh>
-        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
-            if a is None:
-                for (arch, e,v,r) in newpkgs[(n, a)]:
-                    if arch not in archlist:
-                        newpkgs[(n, a)].remove((arch, e,v,r))
-                continue
-                
             if a not in archlist:
                 # high log here
                 del newpkgs[(n, a)]
@@ -309,19 +305,12 @@ class Updates:
         # remove the older stuff - if we're doing an update we only want the
         # newest evrs                
         for (n, a) in newpkgs:
-            if a is None:
-                continue
-
             (new_e,new_v,new_r) = self.returnNewest(newpkgs[(n, a)])
-            for (e, v, r) in newpkgs[(n, a)]:
+            for (e, v, r) in newpkgs[(n, a)][:]:
                 if (new_e, new_v, new_r) != (e, v, r):
                     newpkgs[(n, a)].remove((e, v, r))
 
-                
         for (n, a) in newpkgs:
-            if a is None: # the None archs are only for lookups
-                continue
-           
             # simple ones - look for exact matches or older stuff
             if self.installdict.has_key((n, a)):
                 for (rpm_e, rpm_v, rpm_r) in self.installdict[(n, a)]:
@@ -337,6 +326,11 @@ class Updates:
                             except ValueError:
                                 pass
 
+        # Now we add the (n, None) entries back...
+        for na in newpkgs.keys():
+            all_arches = map(lambda x: (na[1], x[0], x[1], x[2]), newpkgs[na])
+            newpkgs.setdefault((na[0], None), []).extend(all_arches)
+
         # get rid of all the empty dict entries:
         for nakey in newpkgs.keys():
             if len(newpkgs[nakey]) == 0:
@@ -408,14 +402,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/operationstests.py b/test/operationstests.py
index df52f9a..18f4b84 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -68,7 +68,7 @@ class ComplicatedObsoletesTests(OperationsTests):
         p = self.pkgs
         res, msg = self.runOperation(['update'], [p.installed], [p.obsoletes, p.obsoletes2])
         self.assert_(res=='ok', msg)
-        if new_behavior:
+        if True or new_behavior:
             self.assertResult((p.obsoletes2,))
         else:
             self.assertResult((p.obsoletes,))
@@ -85,7 +85,7 @@ class ComplicatedObsoletesTests(OperationsTests):
         if new_behavior:
             self.assertResult((p.obsoletecircle,))
         else:
-            self.assertResult((p.obsoletes,))
+            self.assertResult((p.obsoletes2,))
     def testObsoleteCircleNext(self):
         p = self.pkgs
         res, msg = self.runOperation(['update'], [p.obsoletes], [p.obsoletecircle, p.obsoletes, p.obsoletes2])
@@ -109,7 +109,7 @@ class ComplicatedObsoletesTests(OperationsTests):
         if new_behavior:
             self.assertResult((p.obsoletecircle,))
         else:
-            self.assertResult((p.obsoletes,))
+            self.assertResult((p.obsoletes2,))
     # continue endlessly
     
 class KernelTests(OperationsTests):
diff --git a/test/packagetests.py b/test/packagetests.py
index 628247d..e658cfa 100644
--- a/test/packagetests.py
+++ b/test/packagetests.py
@@ -184,9 +184,72 @@ class BuildPackageDictRefTests(unittest.TestCase):
 
         self.assertEquals(0, len(unseen_keys))
 
+def _perms(evr): # Magic comp. sci. stuff ... oooh
+    e, v, r = evr
+    for num in range(8):
+        perm = []
+        if num & 1:
+            perm.append(e)
+        else:
+            perm.append(None)
+        if num & 2:
+            perm.append(v)
+        else:
+            perm.append(None)
+        if num & 4:
+            perm.append(r)
+        else:
+            perm.append(None)
+        yield tuple(perm)
+
 class RangeCompareTests(unittest.TestCase):
 
     def testRangeCompare(self):
+        def tst(requires, provides, result):
+            print requires, provides
+            self.assertEquals(miscutils.rangeCompare(requires, provides),result)
+        def tst_lege_prov(requires, provides, result):
+            if not result or provides[1] != 'EQ':
+                return
+            for flag in ('GE', 'LE'): # EQ is a subset of either LE or GE
+                nprovides = (provides[0], flag, provides[2])
+                tst(requires, nprovides, result)
+        def tst_lege_reqs(requires, provides, result):
+            tst_lege_prov(requires, provides, result)
+            if not result or requires[1] != 'EQ':
+                return
+            for flag in ('GE', 'LE'): # EQ is a subset of either LE or GE
+                nrequires = (requires[0], flag, requires[2])
+                tst(nrequires, provides, result)
+                tst_lege_prov(nrequires, provides, result)
+        def tst_none_reqs(requires, provides, result):
+            if (not result or requires[1] or provides[1] != 'EQ' or
+                requires[2] != (None, None, None)):
+                return
+            tst_lege_prov(requires, provides, result)
+            # Doesn't matter about versions
+            for flag in ('GE', 'EQ', 'LE'):
+                nrequires = (requires[0], flag, requires[2])
+                tst(nrequires, provides, result)
+                tst_lege_prov(nrequires, provides, result)
+        def tst_none_expand(requires, provides, result, *args):
+            if requires[2] != (None, None, None):
+                return
+            # Expand parts of the version, replacing with data from provides.
+            # Eg. (None, None, None) and ('1', '2', '3') becomes:
+            #     (None, None, None)
+            #     ('1',  None,  None)
+            #     (None,  '2',  None)
+            #     (None, None,  '3')
+            #     ('1',   '2',  None)
+            #     ...
+            #     ('1',   '2',   '3')
+
+            for evr in _perms(provides[2]):
+                nrequires = (requires[0], requires[1], evr)
+                for func in args:
+                    func(nrequires, provides, result)
+
         for requires, provides, result in (
             (('foo', 'EQ', ('0', '1.4.4', '0')),   ('foo', 'EQ', ('0', '1.4.4', '0')),  1),
             (('foo', 'EQ', ('0', '1.4.4', '0')),   ('foo', 'EQ', ('0', '1.4.4', None)), 1),
@@ -195,5 +258,25 @@ class RangeCompareTests(unittest.TestCase):
             (('foo', 'GE', ('0', '1.4.4', '7.1')), ('foo', 'EQ', ('0', '1.4.4', '7')),  0),
             (('foo', 'EQ', ('0', '1.4', None)),    ('foo', 'EQ', ('0', '1.4.4', '7')),  0),
             (('foo', 'GT', ('1', '1.4.4', None)),  ('foo', 'EQ', ('3', '1.2.4', '7')),  1),
+            (('foo', None, (None, None, None)),    ('foo', 'EQ', ('3', '1.2.4', '7')),  1),
+            (('fuu', None, (None, None, None)),    ('foo', 'EQ', ('3', '1.2.4', '7')),  0),
+            (('foo', None, (None, None, None)),    ('foo', 'GT', ('3', '1.2.4', '7')),  1),
+
+            (('foo', 'EQ', (None, None, None)),    ('foo', 'GT', ('3', '1.2.4', '7')),  0),
+            (('foo', 'LT', (None, None, None)),    ('foo', 'GT', ('3', '1.2.4', '7')),  0),
+            (('foo', 'LE', (None, None, None)),    ('foo', 'GT', ('3', '1.2.4', '7')),  0),
+            (('foo', 'GE', (None, None, None)),    ('foo', 'GT', ('3', '1.2.4', '7')),  1),
+            (('foo', 'GT', (None, None, None)),    ('foo', 'GT', ('3', '1.2.4', '7')),  1),
+
+            (('foo', 'EQ', (None, None, None)),    ('foo', 'LT', ('3', '1.2.4', '7')),  0),
+            (('foo', 'LT', (None, None, None)),    ('foo', 'LT', ('3', '1.2.4', '7')),  1),
+            (('foo', 'LE', (None, None, None)),    ('foo', 'LT', ('3', '1.2.4', '7')),  1),
+            (('foo', 'GE', (None, None, None)),    ('foo', 'LT', ('3', '1.2.4', '7')),  0),
+            (('foo', 'GT', (None, None, None)),    ('foo', 'LT', ('3', '1.2.4', '7')),  0),
             ):
-            self.assertEquals(miscutils.rangeCompare(requires, provides), result)
+
+            tst(requires, provides, result)
+
+            tst_lege_reqs(requires, provides, result)
+            tst_none_expand(requires, provides, result,
+                            tst, tst_lege_reqs, tst_none_reqs)
diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 4fdf67c..cf1821f 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -436,8 +436,142 @@ class SimpleObsoletesTests(OperationsTests):
         res, msg = self.runOperation(['update'],
                                      [rp1], [aop1, aop2])
         self.assert_(res=='err', msg)
-        # self.assertResult((aop1,aop2))
+        # FIXME: This is really what should happen, but just sucking works too
+        # self.assert_(res=='ok', msg)
+        # self.assertResult((aop1,))
 
+    def _helperRLDaplMess(self):
+        rp1 = FakePackage('dapl',       '1.2.1', '7', arch='i386')
+        rp2 = FakePackage('dapl-devel', '1.2.1', '7', arch='i386')
+        rp2.addRequires('dapl', 'EQ', ('0', '1.2.1', '7'))
+
+        arp1 = FakePackage('dapl',       '1.2.1.1', '7', arch='i386')
+        arp2 = FakePackage('dapl-devel', '1.2.1.1', '7', arch='i386')
+        arp2.addRequires('dapl', 'EQ', ('0', '1.2.1.1', '7'))
+        arp3 = FakePackage('dapl',       '2.0.15', '1.el4', arch='i386')
+        arp4 = FakePackage('dapl-devel', '2.0.15', '1.el4', arch='i386')
+        arp4.addRequires('dapl', 'EQ', ('0', '2.0.15', '1.el4'))
+
+        aop1 = FakePackage('compat-dapl-1.2.5', '2.0.7', '2.el4', arch='i386')
+        aop1.addObsoletes('dapl', 'LE', (None, '1.2.1.1', None))
+        aop2 = FakePackage('compat-dapl-devel-1.2.5', '2.0.7', '2.el4',
+                           arch='i386')
+        aop2.addObsoletes('dapl-devel', 'LE', (None, '1.2.1.1', None))
+        aop2.addRequires('dapl', 'EQ', ('0', '2.0.7', '2.el4'))
+
+        aoop1 = FakePackage('compat-dapl', '2.0.15', '1.el4', arch='i386')
+        aoop1.addObsoletes('dapl', 'LE', (None, '1.2.1.1', None))
+        aoop1.addObsoletes('compat-dapl-1.2.5', None, (None, None, None))
+        aoop2 = FakePackage('compat-dapl-devel', '2.0.15', '1.el4', arch='i386')
+        aoop2.addObsoletes('dapl-devel', 'LE', (None, '1.2.1.1', None))
+        aoop2.addObsoletes('compat-dapl-devel-1.2.5', None, (None, None, None))
+        aoop2.addRequires('compat-dapl', 'EQ', ('0', '2.0.15', '1.el4'))
+
+        return [rp1, rp2], [arp1, arp2, arp3, arp4,
+                            aop1, aop2, aoop1, aoop2], [aoop1, aoop2], locals()
+
+    def testRLDaplMess1(self):
+        rps, aps, ret, all = self._helperRLDaplMess()
+        res, msg = self.runOperation(['update'], rps, aps)
+
+        self.assert_(res=='ok', msg)
+        self.assertResult(ret)
+
+    def testRLDaplMess2(self):
+        rps, aps, ret, all = self._helperRLDaplMess()
+        res, msg = self.runOperation(['update', 'dapl'], rps, aps)
+
+        self.assert_(res=='ok', msg)
+        self.assertResult(ret)
+
+    def testRLDaplMess3(self):
+        rps, aps, ret, all = self._helperRLDaplMess()
+        res, msg = self.runOperation(['update', 'dapl-devel'], rps, aps)
+
+        self.assert_(res=='ok', msg)
+        self.assertResult(ret)
+
+    def testRLDaplMess4(self):
+        rps, aps, ret, all = self._helperRLDaplMess()
+        res, msg = self.runOperation(['install', 'compat-dapl'], rps, aps)
+
+        self.assert_(res=='ok', msg)
+        self.assertResult(ret)
+
+    def testRLDaplMess5(self):
+        rps, aps, ret, all = self._helperRLDaplMess()
+        res, msg = self.runOperation(['install', 'compat-dapl-devel'], rps, aps)
+
+        self.assert_(res=='ok', msg)
+        self.assertResult(ret)
+
+    def testRLDaplMess6(self):
+        rps, aps, ret, all = self._helperRLDaplMess()
+        res, msg = self.runOperation(['install', 'compat-dapl-1.2.5'], rps, aps)
+
+        self.assert_(res=='ok', msg)
+        self.assertResult(ret)
+
+    def testRLDaplMess7(self):
+        rps, aps, ret, all = self._helperRLDaplMess()
+        res, msg = self.runOperation(['install', 'compat-dapl-devel-1.2.5'],
+                                     rps, aps)
+
+        self.assert_(res=='ok', msg)
+        self.assertResult(ret)
+
+    # Now we get a bit weird, as we have obsoletes fighting with updates
+    def testRLDaplMessWeirdInst1(self):
+        rps, aps, ret, all = self._helperRLDaplMess()
+        res, msg = self.runOperation(['install', 'dapl-1.2.1.1-7'], rps, aps)
+
+        self.assert_(res=='ok', msg)
+        self.assertResult(ret)
+    def testRLDaplMessWeirdInst2(self):
+        rps, aps, ret, all = self._helperRLDaplMess()
+        res, msg = self.runOperation(['install', 'dapl-2.0.15',
+                                      'dapl-devel-2.0.15'], rps, aps)
+
+        self.assert_(res=='ok', msg)
+        self.assertResult((all['arp3'], all['arp4']))
+    def testRLDaplMessWeirdInst3(self):
+        rps, aps, ret, all = self._helperRLDaplMess()
+        res, msg = self.runOperation(['install', 'dapl-2.0.15'], rps, aps)
+
+        self.assert_(res=='ok', msg)
+        # This will almost certainly fail, but it's pretty weird:
+        self.assertResult((all['arp3'], all['aoop1'], all['aoop2']))
+        # FIXME: Optimally we'd get:
+        # self.assertResult((all['arp3'], all['arp4']))
+    def testRLDaplMessWeirdUp1(self):
+        rps, aps, ret, all = self._helperRLDaplMess()
+        res, msg = self.runOperation(['update', 'dapl-1.2.1.1-7'], rps, aps)
+
+        self.assert_(res=='ok', msg)
+        self.assertResult(ret)
+    def testRLDaplMessWeirdUp2(self):
+        rps, aps, ret, all = self._helperRLDaplMess()
+        res, msg = self.runOperation(['update', 'dapl-2.0.15',
+                                      'dapl-devel-2.0.15'], rps, aps)
+
+        self.assert_(res=='ok', msg)
+        self.assertResult((all['arp3'], all['arp4']))
+    def testRLDaplMessWeirdUp3(self):
+        rps, aps, ret, all = self._helperRLDaplMess()
+        res, msg = self.runOperation(['update', 'dapl-2.0.15'], rps, aps)
+
+        self.assert_(res=='ok', msg)
+        # This will almost certainly fail, but it's pretty weird:
+        self.assertResult((all['arp3'], all['aoop1'], all['aoop2']))
+        # FIXME: Optimally we'd get:
+        # self.assertResult((all['arp3'], all['arp4']))
+
+    def testRLDaplFixUpdateNotInstall(self):
+        rps, aps, ret, all = self._helperRLDaplMess()
+        res, msg = self.runOperation(['update', 'dapl-1.2.1*'], [], rps + aps)
+
+        # self.assert_(res=='err', msg)
+        self.assertResult([])
 
 class GitMetapackageObsoletesTests(OperationsTests):
 
diff --git a/test/simpleupdatetests.py b/test/simpleupdatetests.py
index d52cc9d..f02cc75 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],
@@ -683,3 +677,90 @@ class SimpleUpdateTests(OperationsTests):
                                      [p11, pr12, py12])
         self.assert_(res=='ok', msg)
         self.assertResult((pi12,py12))
+
+    def testUpdateMultiArchConflict(self):
+        pi1 = FakePackage('A', '1', '1', '0', 'i386')
+        pi2 = FakePackage('B', '1', '1', '0', 'i386')
+        pi3 = FakePackage('B', '1', '1', '0', 'x86_64')
+
+        pa1 = FakePackage('A', '1', '2', '0', 'i386')
+        pa2 = FakePackage('B', '1', '2', '0', 'i386')
+        pa2.addConflicts('A', 'LE', ('0', '1', '1'))
+        pa3 = FakePackage('B', '1', '2', '0', 'x86_64')
+        pa3.addConflicts('A', 'LE', ('0', '1', '1'))
+
+        res, msg = self.runOperation(['update', 'B'],
+                                     [pi1, pi2, pi3],
+                                     [pa1, pa2, pa3])
+        self.assert_(res=='ok', msg)
+        self.assertResult((pa1, pa2, pa3))
+
+    #  What I was trying to model here is a problem where the Fedora builders
+    # tried to install "ncurses-libs" and got a choice of:
+    # ncurses-libs-1.x86_64, ncurses-libs-1.i586, ncurses-libs-1.x86_64
+    # ...and the we should have picked one of the .x86_64 packages in
+    # _compare_providers(), but we picked the .i586 one.
+    #  However that didn't happen, as the testcases "just worked".
+    #  But from experimenting it was observed that if you just had one .x86_64
+    # and one .i586 then _compare_providers() got the right answer. So these
+    # testcases model that problem in _compare_providers(), kinda.
+    #  Then we can fix that problem, which should also fix the original problem
+    # whatever the hell that was.
+    def testUpdateMultiAvailPkgs1(self):
+        pa1 = FakePackage('A', '1', '1', '0', 'x86_64')
+        pa1.addRequires('blah', 'EQ', ('0', '1', '1'))
+        pa2 = FakePackage('B', '1', '1', '0', 'i586')
+        pa2.addProvides('blah', 'EQ', ('0', '1', '1'))
+        pa3 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('one'))
+        pa3.addProvides('blah', 'EQ', ('0', '1', '1'))
+        pa4 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('two'))
+        pa4.addProvides('blah', 'EQ', ('0', '1', '1'))
+
+        res, msg = self.runOperation(['install', 'A'],
+                                     [],
+                                     [pa1, pa2, pa3, pa4])
+        self.assert_(res=='ok', msg)
+        self.assertResult((pa1, pa3))
+
+    def testUpdateMultiAvailPkgs2(self):
+        pa1 = FakePackage('A', '1', '1', '0', 'x86_64')
+        pa1.addRequires('blah', 'EQ', ('0', '1', '1'))
+        pa2 = FakePackage('B', '1', '1', '0', 'i586')
+        pa2.addProvides('blah', 'EQ', ('0', '1', '1'))
+        pa3 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('one'))
+        pa3.addProvides('blah', 'EQ', ('0', '1', '1'))
+        pa4 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('two'))
+        pa4.addProvides('blah', 'EQ', ('0', '1', '1'))
+
+        res, msg = self.runOperation(['install', 'A'],
+                                     [],
+                                     [pa1, pa2, pa4, pa3])
+        self.assert_(res=='ok', msg)
+        self.assertResult((pa1, pa3))
+
+    def testUpdateMultiAvailPkgs3(self):
+        pa1 = FakePackage('A', '1', '1', '0', 'x86_64')
+        pa1.addRequires('B', 'EQ', ('0', '1', '1'))
+        pa2 = FakePackage('B', '1', '1', '0', 'i386')
+        pa3 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('one'))
+        pa4 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('two'))
+
+        res, msg = self.runOperation(['install', 'A'],
+                                     [],
+                                     [pa1, pa2, pa3, pa4])
+        self.assert_(res=='ok', msg)
+        self.assertResult((pa1, pa3))
+
+
+    def testUpdateMultiAvailPkgs4(self):
+        pa1 = FakePackage('A', '1', '1', '0', 'x86_64')
+        pa1.addRequires('B', 'EQ', ('0', '1', '1'))
+        pa2 = FakePackage('B', '1', '1', '0', 'i386')
+        pa3 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('one'))
+        pa4 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('two'))
+
+        res, msg = self.runOperation(['install', 'A'],
+                                     [],
+                                     [pa1, pa2, pa4, pa3])
+        self.assert_(res=='ok', msg)
+        self.assertResult((pa1, pa3))
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..cadc28b 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 = []
@@ -49,6 +49,17 @@ class FakeRepo(object):
     def __init__(self, id=None,sack=None):
         self.id = id
         self.sack = sack
+        self.cost = 1000
+
+    def __cmp__(self, other):
+        """ Sort base class repos. by alphanumeric on their id, also
+            see __cmp__ in YumRepository(). """
+        if self.id > other.id:
+            return 1
+        elif self.id < other.id:
+            return -1
+        else:
+            return 0
 
 class FakePackage(packages.YumAvailablePackage):
 
@@ -156,7 +167,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 +174,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 +293,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
@@ -291,10 +301,14 @@ class DepsolveTests(_DepsolveTestsBase):
         for po in self.rpmdb:
             po.repoid = po.repo.id = "installed"
         for po in self.xsack:
-            po.repoid = po.repo.id = "TestRepository"
+            if po.repo.id is None:
+                po.repo.id = "TestRepository"
+            po.repoid = po.repo.id
         for txmbr in self.tsInfo:
             if txmbr.ts_state in ('u', 'i'):
-                txmbr.po.repoid = txmbr.po.repo.id = "TestRepository"
+                if txmbr.po.repo.id is None:
+                    txmbr.po.repo.id = "TestRepository"
+                txmbr.po.repoid = txmbr.po.repo.id
             else:
                 txmbr.po.repoid = txmbr.po.repo.id = "installed"
 
@@ -325,6 +339,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")
@@ -338,7 +353,9 @@ class OperationsTests(_DepsolveTestsBase):
             po.repoid = po.repo.id = "installed"
             self.depsolver.rpmdb.addPackage(po)
         for po in available:
-            po.repoid = po.repo.id = "TestRepository"
+            if po.repo.id is None:
+                po.repo.id = "TestRepository"
+            po.repoid = po.repo.id
             self.depsolver._pkgSack.addPackage(po)
 
         self.depsolver.basecmd = args[0]
diff --git a/test/yum-pylintrc b/test/yum-pylintrc
index f7aee50..bb9339a 100644
--- a/test/yum-pylintrc
+++ b/test/yum-pylintrc
@@ -80,9 +80,9 @@ disable-msg-cat=C,R
 # W1001: *Use of "property" on an old style class*
 # W0221: *Arguments number differs from %s method*
 # W0703: *Catch "Exception"*
-# W1010: *Exception doesn't inherit from standard "Exception" class* (give false positives on ex. KeyboardInterrupt)
+# W0710: *Exception doesn't inherit from standard "Exception" class* (give false positives on ex. KeyboardInterrupt)
 # W0631: *Using possibly undefined loop variable %r* (Gives to many false positives)
-disable-msg=E1101,F0401,W0704,W0612,W0212,W0613,W0602,W0511,W0401,W0614,W0232,W0201,W0603,W0621,W0142,W0102,W0105,W0702,W0231,E0202,W0622,W0403,W0223,W0104,W1001,W0221,W0703,W1010,W0631
+disable-msg=E1101,F0401,W0704,W0612,W0212,W0613,W0602,W0511,W0401,W0614,W0232,W0201,W0603,W0621,W0142,W0102,W0105,W0702,W0231,E0202,W0622,W0403,W0223,W0104,W1001,W0221,W0703,W0710,W0631
 
 
 [REPORTS]
diff --git a/test/yum-release-i18n-test.sh b/test/yum-release-i18n-test.sh
index 33f5491..93ddcb3 100755
--- a/test/yum-release-i18n-test.sh
+++ b/test/yum-release-i18n-test.sh
@@ -53,9 +53,9 @@ I18N="C \
 cmd()
 {
   echo $beg_hdr
-  echo "Doing: LANG=$lang yum --enablerepo=development $@"
+  echo "Doing: LANG=$lang yum --enablerepo=rawhide $@"
   echo $end_hdr
-  LANG=$lang yum --enablerepo=development "$@"
+  LANG=$lang yum --enablerepo=rawhide "$@"
 }
 scmd()
 {
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..97e38c3 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -36,18 +36,14 @@ import yum.i18n
 _ = yum.i18n._
 P_ = yum.i18n.P_
 
-try:
-    from iniparse.compat import ParsingError, RawConfigParser as ConfigParser
-except ImportError:
-    from ConfigParser import ParsingError, ConfigParser
+import config
+from config import ParsingError, ConfigParser
 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
 from repos import RepoStorage
 import misc
 from parser import ConfigPreProcessor, varReplace
@@ -72,6 +68,8 @@ from yum.i18n import to_unicode
 
 import string
 
+from weakref import proxy as weakref
+
 from urlgrabber.grabber import default_grabber
 
 __version__ = '3.2.23'
@@ -101,7 +99,30 @@ class _YumPreBaseConf:
         self.syslog_ident = None
         self.syslog_facility = None
         self.syslog_device = '/dev/log'
+        self.arch = None
+        self.releasever = None
+
+class _YumCostExclude:
+    """ This excludes packages that are in repos. of lower cost than the passed
+        repo. """
 
+    def __init__(self, repo, repos):
+        self.repo   = weakref(repo)
+        self._repos = weakref(repos)
+
+    def __contains__(self, pkgtup):
+        # (n, a, e, v, r) = pkgtup
+        for repo in self._repos.listEnabled():
+            if repo.cost >= self.repo.cost:
+                break
+            #  searchNevra is a bit slower, although more generic for repos. 
+            # that don't use sqlitesack as the backend ... although they are
+            # probably screwed anyway.
+            #
+            # if repo.sack.searchNevra(n, e, v, r, a):
+            if pkgtup in repo.sack._pkgtup2pkgs:
+                return True
+        return False
 
 class YumBase(depsolve.Depsolve):
     """This is a primary structure and base class. It houses the objects and
@@ -129,9 +150,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,10 +225,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
 
-        #  We don't want people accessing/altering preconf after it becomes
-        # worthless. So we delete it, and thus. it'll raise AttributeError
-        del self.preconf
+        if arch: # if preconf is setting an arch we need to pass that up
+            self.arch.setup_arch(arch)
+        else:
+            arch = self.arch.canonarch
 
         # TODO: Remove this block when we no longer support configs outside
         # of /etc/yum/
@@ -215,6 +240,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 +255,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,
@@ -238,6 +268,10 @@ class YumBase(depsolve.Depsolve):
 
         self._conf = config.readMainConfig(startupconf)
 
+        #  We don't want people accessing/altering preconf after it becomes
+        # worthless. So we delete it, and thus. it'll raise AttributeError
+        del self.preconf
+
         # run the postconfig plugin hook
         self.plugins.run('postconfig')
         self.yumvar = self.conf.yumvar
@@ -427,6 +461,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
@@ -467,7 +504,20 @@ class YumBase(depsolve.Depsolve):
         """populates the package sacks for information from our repositories,
            takes optional archlist for archs to include"""
 
-        if self._pkgSack and thisrepo is None:
+        # FIXME: Fist of death ... normally we'd do either:
+        #
+        # 1. use self._pkgSack is not None, and only init. once.
+        # 2. auto. correctly re-init each time a repo is added/removed
+        #
+        # ...we should probably just smeg it and do #2, but it's hard and will
+        # probably break something (but it'll "fix" excludes).
+        #  #1 can't be done atm. because we did self._pkgSack and external
+        # tools now rely on being able to create an empty sack and then have it
+        # auto. re-init when they add some stuff. So we add a bit more "clever"
+        # and don't setup the pkgSack to not be None when it's empty. This means
+        # we skip excludes/includes/etc. ... but there's no packages, so
+        # hopefully that's ok.
+        if self._pkgSack is not None and thisrepo is None:
             return self._pkgSack
         
         if thisrepo is None:
@@ -478,7 +528,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:
@@ -486,6 +536,8 @@ class YumBase(depsolve.Depsolve):
         
         self.repos.getPackageSack().setCompatArchs(archdict)
         self.repos.populateSack(which=repos)
+        if not self.repos.getPackageSack():
+            return self.repos.getPackageSack() # ha ha, see above
         self._pkgSack = self.repos.getPackageSack()
         
         self.excludePackages()
@@ -495,8 +547,8 @@ class YumBase(depsolve.Depsolve):
         if repos == 'enabled':
             repos = self.repos.listEnabled()
         for repo in repos:
-            self.excludePackages(repo)
             self.includePackages(repo)
+            self.excludePackages(repo)
         self.plugins.run('exclude')
         self._pkgSack.buildIndexes()
 
@@ -548,7 +600,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 +917,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 +934,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 +1062,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 +1072,34 @@ 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])
+
+                if isinstance(rpo, YumLocalPackage):
+                    try:
+                        st = os.stat(rpo.localPkg())
+                        lp_ctime = str(int(st.st_ctime))
+                        lp_mtime = str(int(st.st_mtime))
+                        po.yumdb_info.from_repo_revision  = lp_ctime
+                        po.yumdb_info.from_repo_timestamp = lp_mtime
+                    except: pass
+
+                if not hasattr(rpo.repo, 'repoXML'):
+                    continue
+
+                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,48 +1115,32 @@ 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
-        and their repo.cost value is the greater one"""
+        """ Create an excluder for repos. with higher cost. Eg.
+            repo-A:cost=1 repo-B:cost=2 ... here we setup an excluder on repo-B
+            that looks for pkgs in repo-B."""
         
-        # check to see if the cost per repo is anything other than equal
         # if all the repo.costs are equal then don't bother running things
         costs = {}
         for r in self.repos.listEnabled():
-            costs[r.cost] = 1
+            costs.setdefault(r.cost, []).append(r)
 
-        if len(costs) <= 1: # if all of our costs are the same then return
+        if len(costs) <= 1:
             return
-            
-        def _sort_by_cost(a, b):
-            if a.repo.cost < b.repo.cost:
-                return -1
-            if a.repo.cost == b.repo.cost:
-                return 0
-            if a.repo.cost > b.repo.cost:
-                return 1
-                
-        pkgdict = {}
-        for po in self.pkgSack:
-            if not pkgdict.has_key(po.pkgtup):
-                pkgdict[po.pkgtup] = []
-            pkgdict[po.pkgtup].append(po)
-        
-        for pkgs in pkgdict.values():
-            if len(pkgs) == 1:
-                continue
-                
-            pkgs.sort(_sort_by_cost)
-            lowcost = pkgs[0].repo.cost
-            #print '%s : %s : %s' % (pkgs[0], pkgs[0].repo, pkgs[0].repo.cost)
-            for pkg in pkgs[1:]:
-                if pkg.repo.cost > lowcost:
-                    msg = _('excluding for cost: %s from %s') % (pkg, pkg.repo.id)
-                    self.verbose_logger.log(logginglevels.DEBUG_3, msg)
-                    pkg.repo.sack.delPackage(pkg)
-            
+
+        done = False
+        exid = "yum.costexcludes"
+        orepos = []
+        for cost in sorted(costs):
+            if done: # Skip the first one, as they have lowest cost so are good.
+                for repo in costs[cost]:
+                    yce = _YumCostExclude(repo, self.repos)
+                    repo.sack.addPackageExcluder(repo.id, exid,
+                                                 'exclude.pkgtup.in', yce)
+            orepos.extend(costs[cost])
+            done = True
 
     def excludePackages(self, repo=None):
         """removes packages from packageSacks based on global exclude lists,
@@ -1096,30 +1158,19 @@ class YumBase(depsolve.Depsolve):
                 return
             excludelist = self.conf.exclude
             repoid = None
+            exid_beg = 'yum.excludepkgs'
         else:
             if repo.id in self.conf.disable_excludes:
                 return
             excludelist = repo.getExcludePkgList()
             repoid = repo.id
+            exid_beg = 'yum.excludepkgs.' + repoid
 
-        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')
+        count = 0
+        for match in excludelist:
+            count += 1
+            exid = "%s.%u" % (exid_beg, count)
+            self.pkgSack.addPackageExcluder(repoid, exid,'exclude.match', match)
 
     def includePackages(self, repo):
         """removes packages from packageSacks based on list of packages, to include.
@@ -1130,29 +1181,18 @@ 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'))
+        # includepkgs actually means "exclude everything that doesn't match".
+        #  So we mark everything, then wash those we want to keep and then
+        # exclude everything that is marked.
+        exid = "yum.includepkgs.1"
+        self.pkgSack.addPackageExcluder(repo.id, exid, 'mark.washed')
+        count = 0
+        for match in includelist:
+            count += 1
+            exid = "%s.%u" % ("yum.includepkgs.2", count)
+            self.pkgSack.addPackageExcluder(repo.id, exid, 'wash.match', match)
+        exid = "yum.includepkgs.3"
+        self.pkgSack.addPackageExcluder(repo.id, exid, 'exclude.marked')
         
     def doLock(self, lockfile = YUM_PID_FILE):
         """perform the yum locking, raise yum-based exceptions, not OSErrors"""
@@ -2208,10 +2248,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:
@@ -2355,15 +2395,20 @@ class YumBase(depsolve.Depsolve):
         """Pass in a generic [build]require string and this function will 
            pass back the best(or first) package it finds providing that dep."""
         
+        # we get all sorts of randomness here
+        errstring = depstring
+        if type(depstring) not in types.StringTypes:
+            errtring = str(depstring)
+        
         try:
             pkglist = self.returnPackagesByDep(depstring)
         except Errors.YumBaseError:
-            raise Errors.YumBaseError, _('No Package found for %s') % depstring
+            raise Errors.YumBaseError, _('No Package found for %s') % errstring
         
         ps = ListPackageSack(pkglist)
         result = self._bestPackageFromList(ps.returnNewestByNameArch())
         if result is None:
-            raise Errors.YumBaseError, _('No Package found for %s') % depstring
+            raise Errors.YumBaseError, _('No Package found for %s') % errstring
         
         return result
 
@@ -2416,7 +2461,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 +2470,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)
@@ -2466,6 +2511,14 @@ class YumBase(depsolve.Depsolve):
 
         return returnlist
 
+    # FIXME: This doesn't really work, as it assumes one obsoleter for each pkg
+    # when we can have:
+    # 1 pkg obsoleted by multiple pkgs _and_
+    # 1 pkg obsoleting multiple pkgs
+    # ...and we need to detect loops, and get the arches "right" and do this
+    # for chains. Atm. I hate obsoletes, and I can't get it to work better,
+    # easily ... so screw it, don't create huge chains of obsoletes with some
+    # loops in there too ... or I'll have to hurt you.
     def _pkg2obspkg(self, po):
         """ Given a package return the package it's obsoleted by and so
             we should install instead. Or None if there isn't one. """
@@ -2538,10 +2591,18 @@ class YumBase(depsolve.Depsolve):
 
     def _find_obsoletees(self, po):
         """ Return the pkgs. that are obsoleted by the po we pass in. """
-        for (obstup, inst_tup) in self.up.getObsoletersTuples(name=po.name):
-            if po.pkgtup == obstup:
-                installed_pkg =  self.rpmdb.searchPkgTuple(inst_tup)[0]
-                yield installed_pkg
+        if not isinstance(po, YumLocalPackage):
+            for (obstup, inst_tup) in self.up.getObsoletersTuples(name=po.name):
+                if po.pkgtup == obstup:
+                    installed_pkg =  self.rpmdb.searchPkgTuple(inst_tup)[0]
+                    yield installed_pkg
+        else:
+            for (obs_n, obs_f, (obs_e, obs_v, obs_r)) in po.obsoletes:
+                for pkg in self.rpmdb.searchNevra(name=obs_n):
+                    installedtup = (pkg.name, 'EQ', (pkg.epoch, 
+                                   pkg.ver, pkg.release))
+                    if po.inPrcoRange('obsoletes', installedtup):
+                        yield pkg
 
     def _add_prob_flags(self, *flags):
         """ Add all of the passed flags to the tsInfo.probFilterFlags array. """
@@ -2614,14 +2675,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:
@@ -2658,6 +2719,8 @@ class YumBase(depsolve.Depsolve):
                                                  ignore_case=False)
             if 'name' in kwargs:
                 pkgs = self.rpmdb.searchNevra(name=kwargs['name'])
+            if 'pkgtup' in kwargs:
+                pkgs = self.rpmdb.searchNevra(name=kwargs['pkgtup'][0])
             # Warning here does "weird" things when doing:
             # yum --disablerepo='*' install '*'
             # etc. ... see RHBZ#480402
@@ -2693,9 +2756,23 @@ class YumBase(depsolve.Depsolve):
             # at which point ignore everything.
             obsoleting_pkg = self._test_loop(po, self._pkg2obspkg)
             if obsoleting_pkg is not None:
-                self.verbose_logger.warning(_('Package %s is obsoleted by %s, trying to install %s instead'),
-                    po.name, obsoleting_pkg.name, obsoleting_pkg)               
-                self.install(po=obsoleting_pkg)
+                # this is not a definitive check but it'll make sure we don't
+                # pull in foo.i586 when foo.x86_64 already obsoletes the pkg and
+                # is already installed
+                already_obs = None
+                poprovtup = (po.name, 'EQ', (po.epoch, po.ver, po.release))
+                for pkg in self.rpmdb.searchNevra(name=obsoleting_pkg.name):
+                    if pkg.inPrcoRange('obsoletes', poprovtup):
+                        already_obs = pkg
+                        continue
+
+                if already_obs:
+                    self.verbose_logger.warning(_('Package %s is obsoleted by %s which is already installed'), 
+                                                po, already_obs)
+                else:
+                    self.verbose_logger.warning(_('Package %s is obsoleted by %s, trying to install %s instead'),
+                        po.name, obsoleting_pkg.name, obsoleting_pkg)               
+                    tx_return.extend(self.install(po=obsoleting_pkg))
                 continue
             
             # make sure it's not already installed
@@ -2730,6 +2807,11 @@ class YumBase(depsolve.Depsolve):
                     self._add_prob_flags(rpm.RPMPROB_FILTER_REPLACEPKG,
                                          rpm.RPMPROB_FILTER_REPLACENEWFILES,
                                          rpm.RPMPROB_FILTER_REPLACEOLDFILES)
+                    #  Yum needs the remove to happen before we allow the
+                    # install of the same version. But rpm doesn't like that
+                    # as it then has an install which removes the old version
+                    # and a remove, which also tries to remove the old version.
+                    self.tsInfo.remove(ipkg.pkgtup)
                     break
                 if ipkg.verGT(po):
                     self._add_prob_flags(rpm.RPMPROB_FILTER_OLDPACKAGE)
@@ -2744,7 +2826,7 @@ class YumBase(depsolve.Depsolve):
             else:
                 txmbr = self.tsInfo.addInstall(po)
                 tx_return.append(txmbr)
-        
+
         return tx_return
 
     def _check_new_update_provides(self, opkg, npkg):
@@ -2753,6 +2835,7 @@ class YumBase(depsolve.Depsolve):
             too, to the latest version. """
         oprovs = set(opkg.returnPrco('provides'))
         nprovs = set(npkg.returnPrco('provides'))
+        tx_return = []
         for prov in oprovs.difference(nprovs):
             reqs = self.tsInfo.getRequires(*prov)
             for pkg in reqs:
@@ -2760,10 +2843,11 @@ class YumBase(depsolve.Depsolve):
                     if not npkg.inPrcoRange('provides', req):
                         naTup = (pkg.name, pkg.arch)
                         for pkg in self.pkgSack.returnNewestByNameArch(naTup):
-                            self.update(po=pkg)
+                            tx_return.extend(self.update(po=pkg))
                         break
+        return tx_return
 
-    def _newer_update_in_trans(self, pkgtup, available_pkg):
+    def _newer_update_in_trans(self, pkgtup, available_pkg, tx_return):
         """ We return True if there is a newer package already in the
             transaction. If there is an older one, we remove it (and update any
             deps. that aren't satisfied by the newer pkg) and return False so
@@ -2777,8 +2861,9 @@ class YumBase(depsolve.Depsolve):
                 else:
                     for ntxmbr in self.tsInfo.getMembers(po.pkgtup):
                         self.tsInfo.remove(ntxmbr.po.pkgtup)
-                        self._check_new_update_provides(ntxmbr.po,
-                                                        available_pkg)
+                        txs = self._check_new_update_provides(ntxmbr.po,
+                                                              available_pkg)
+                        tx_return.extend(txs)
             if count:
                 found = True
             else:
@@ -2810,6 +2895,9 @@ class YumBase(depsolve.Depsolve):
 
             for (obsoleting, installed) in obsoletes:
                 obsoleting_pkg = self.getPackageObject(obsoleting)
+                topkg = self._test_loop(obsoleting_pkg, self._pkg2obspkg)
+                if topkg is not None:
+                    obsoleting_pkg = topkg
                 installed_pkg =  self.rpmdb.searchPkgTuple(installed)[0]
                 txmbr = self.tsInfo.addObsoleting(obsoleting_pkg, installed_pkg)
                 self.tsInfo.addObsoleted(installed_pkg, obsoleting_pkg)
@@ -2861,7 +2949,11 @@ class YumBase(depsolve.Depsolve):
             #  Always look for available packages, it doesn't seem to do any
             # harm (apart from some time). And it fixes weird edge cases where
             # "update a" (which requires a new b) is different from "update b"
-            m =self.pkgSack.returnNewestByNameArch(patterns=[kwargs['pattern']])
+            try:
+                pats = [kwargs['pattern']]
+                m = self.pkgSack.returnNewestByNameArch(patterns=pats)
+            except Errors.PackageSackError:
+                m = []
             availpkgs.extend(m)
 
             if not availpkgs and not instpkgs:
@@ -2949,11 +3041,20 @@ class YumBase(depsolve.Depsolve):
                     tx_return.append(txmbr)
                         
         for available_pkg in availpkgs:
+            #  Make sure we're not installing a package which is obsoleted by
+            # something else in the repo. Unless there is a obsoletion loop,
+            # at which point ignore everything.
+            obsoleting_pkg = self._test_loop(available_pkg, self._pkg2obspkg)
+            if obsoleting_pkg is not None:
+                self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is obsoleted: %s'), available_pkg)
+                tx_return.extend(self.update(po=obsoleting_pkg))
+                continue
             for updated in self.up.updating_dict.get(available_pkg.pkgtup, []):
                 if self.tsInfo.isObsoleted(updated):
                     self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'), 
                                             updated)
-                elif self._newer_update_in_trans(updated, available_pkg):
+                elif self._newer_update_in_trans(updated, available_pkg,
+                                                 tx_return):
                     self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already updated: %s.%s %s:%s-%s'), 
                                             updated)
                 
@@ -2979,7 +3080,8 @@ class YumBase(depsolve.Depsolve):
                 if self.tsInfo.isObsoleted(ipkg.pkgtup):
                     self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'), 
                                             ipkg.pkgtup)
-                elif self._newer_update_in_trans(ipkg.pkgtup, available_pkg):
+                elif self._newer_update_in_trans(ipkg.pkgtup, available_pkg,
+                                                 tx_return):
                     self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already updated: %s.%s %s:%s-%s'), 
                                             ipkg.pkgtup)
                 elif ipkg.verLT(available_pkg):
@@ -2987,12 +3089,6 @@ class YumBase(depsolve.Depsolve):
                     if requiringPo:
                         txmbr.setAsDep(requiringPo)
                     tx_return.append(txmbr)
-                
-                #else:
-                    #magically make allowdowngrade work here
-                    # yum --allow-downgrade update something-specific here
-                    # could work but we will need to be careful with it
-                    # maybe a downgrade command is necessary
 
         return tx_return
         
@@ -3065,7 +3161,6 @@ class YumBase(depsolve.Depsolve):
         # append it to self.localPackages
         # check if it can be installed or updated based on nevra versus rpmdb
         # don't import the repos until we absolutely need them for depsolving
-
         tx_return = []
         installpkgs = []
         updatepkgs = []
@@ -3085,7 +3180,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 +3205,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)
@@ -3148,7 +3243,20 @@ class YumBase(depsolve.Depsolve):
         for po in donothingpkgs:
             self.verbose_logger.log(logginglevels.INFO_2,
                 _('%s: does not update installed package.'), po.localpath)
-
+        
+        # this checks to make sure that any of the to-be-installed pkgs
+        # does not obsolete something else that's installed
+        # this doesn't handle the localpkgs obsoleting EACH OTHER or
+        # anything else in the transaction set, though. That could/should
+        # be fixed later but a fair bit of that is a pebkac and should be
+        # said as "don't do that". potential 'fixme'
+        for txmbr in tx_return:
+            if txmbr.po.obsoletes:
+                for obs_pkg in self._find_obsoletees(txmbr.po):
+                    self.tsInfo.addObsoleted(obs_pkg, txmbr.po)
+                    txmbr.obsoletes.append(obs_pkg)
+                    self.tsInfo.addObsoleting(txmbr.po,obs_pkg)
+                
         return tx_return
 
     def reinstallLocal(self, pkg, po=None):
@@ -3171,7 +3279,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 []
 
@@ -3197,14 +3305,18 @@ class YumBase(depsolve.Depsolve):
                              rpm.RPMPROB_FILTER_REPLACEOLDFILES)
 
         tx_mbrs = []
-        tx_mbrs.extend(self.remove(po, **kwargs))
+        if po: # The po, is the "available" po ... we want the installed po
+            tx_mbrs.extend(self.remove(pkgtup=po.pkgtup))
+        else:
+            tx_mbrs.extend(self.remove(**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
         new_members = []
-        for item in tx_mbrs:
+        failed = []
+        for item in tx_mbrs[:]:
             #FIXME future - if things in the rpm transaction handling get
             # a bit finer-grained, then we should allow reinstalls of kernels
             # for now, banned and dropped.
@@ -3222,16 +3334,17 @@ class YumBase(depsolve.Depsolve):
             if isinstance(po, YumLocalPackage):
                 members = self.install(po=po)
             else:
-                members = self.install(name=item.name, arch=item.arch,
-                                       ver=item.version, release=item.release,
-                                       epoch=item.epoch)
+                members = self.install(pkgtup=item.pkgtup)
             self.conf.obsoletes = old_conf_obs
             if len(members) == 0:
                 self.tsInfo.remove(item.pkgtup)
                 tx_mbrs.remove(item)
-                raise Errors.ReinstallError, _("Problem in reinstall: no package matched to install")
+                failed.append(str(item.po))
+                continue
             new_members.extend(members)
 
+        if failed and not tx_mbrs:
+            raise Errors.ReinstallInstallError, _("Problem in reinstall: no package %s matched to install") % ", ".join(failed)
         tx_mbrs.extend(new_members)
         return tx_mbrs
         
@@ -3255,7 +3368,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 +3498,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 +3706,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 +3752,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
@@ -3714,6 +3854,15 @@ class YumBase(depsolve.Depsolve):
                  _('Running rpm_check_debug'))
             msgs = self._run_rpm_check_debug()
             if msgs:
+                rpmlib_only = True
+                for msg in msgs:
+                    if msg.startswith('rpmlib('):
+                        continue
+                    rpmlib_only = False
+                if rpmlib_only:
+                    retmsgs = [_("ERROR You need to update rpm to handle:")]
+                    retmsgs.extend(msgs)
+                    raise Errors.YumRPMCheckError, retmsgs
                 retmsgs = [_('ERROR with rpm_check_debug vs depsolve:')]
                 retmsgs.extend(msgs) 
                 retmsgs.append(_('Please report this error at %s') 
@@ -3828,3 +3977,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..2f057c3 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -18,18 +18,25 @@
 """
 Configuration parser and default values for yum.
 """
+_use_iniparse = True
 
 import os
 import warnings
 import rpm
 import copy
 import urlparse
-from parser import ConfigPreProcessor
-from iniparse import INIConfig
-from iniparse.compat import NoSectionError, NoOptionError, ConfigParser
-from iniparse.compat import ParsingError
+import shlex
+from parser import ConfigPreProcessor, varReplace
+try:
+    from iniparse import INIConfig
+    from iniparse.compat import NoSectionError, NoOptionError, ParsingError
+    from iniparse.compat import RawConfigParser as ConfigParser
+except ImportError:
+    _use_iniparse = False
+if not _use_iniparse:
+    from ConfigParser import NoSectionError, NoOptionError, ParsingError
+    from ConfigParser import ConfigParser
 import rpmUtils.transaction
-import rpmUtils.arch
 import Errors
 
 # Alter/patch these to change the default checking...
@@ -214,6 +221,10 @@ class UrlListOption(ListOption):
         
     def parse(self, s):
         out = []
+        s = s.replace('\n', ' ')
+        s = s.replace(',', ' ')
+        items = [ item.replace(' ', '%20') for item in shlex.split(s) ]
+        s = ' '.join(items)
         for url in super(UrlListOption, self).parse(s):
             out.append(self._urloption.parse(url))
         return out
@@ -687,6 +698,12 @@ class YumConf(StartupConf):
 
     color_search_match = Option('bold')
     
+    sslcacert = Option()
+    sslverify = BoolOption(True)
+    sslclientcert = Option()
+    sslclientkey = Option()
+
+
     _reposlist = []
 
 class RepoConf(BaseConfig):
@@ -740,6 +757,12 @@ class RepoConf(BaseConfig):
     mdpolicy = Inherit(YumConf.mdpolicy)
     cost = IntOption(1000)
     
+    sslcacert = Inherit(YumConf.sslcacert)
+    sslverify = Inherit(YumConf.sslverify)
+    sslclientcert = Inherit(YumConf.sslclientcert)
+    sslclientkey = Inherit(YumConf.sslclientkey)
+
+    
 def readStartupConfig(configfile, root):
     '''
     Parse Yum's main configuration file and return a StartupConf instance.
@@ -771,9 +794,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 +813,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 +827,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 
@@ -864,7 +889,11 @@ def _getsysver(installroot, distroverpkg):
     '''
     ts = rpmUtils.transaction.initReadOnlyTransaction(root=installroot)
     ts.pushVSFlags(~(rpm._RPMVSF_NOSIGNATURES|rpm._RPMVSF_NODIGESTS))
-    idx = ts.dbMatch('provides', distroverpkg)
+    try:
+        idx = ts.dbMatch('provides', distroverpkg)
+    except TypeError, e:
+        # This is code for "cannot open rpmdb"
+        raise Errors.YumBaseError("Error: " + e.message)
     # we're going to take the first one - if there is more than one of these
     # then the user needs a beating
     if idx.count() == 0:
@@ -884,6 +913,10 @@ def writeRawRepoFile(repo,only=None):
     @param only: List of attributes to work on (None = All)
     It work by reading the repo file, changes the values there shall be changed and write it back to disk.
     """
+
+    if not _use_iniparse:
+        return
+
     ini = INIConfig(open(repo.repofile))
     # Updated the ConfigParser with the changed values    
     cfgOptions = repo.cfg.options(repo.id)
diff --git a/yum/constants.py b/yum/constants.py
index 3711fc0..06d5a6b 100644
--- a/yum/constants.py
+++ b/yum/constants.py
@@ -111,3 +111,11 @@ PATTERNS_INDEXED_MAX = 128
 
 RPM_CHECKSUM_TYPES = { 1:'md5', 2:'sha1', 8:'sha256', 9:'sha384', 10:'sha512',
                        11:'sha224' } # from RFC 4880
+
+
+# for repo verification/checks
+REPO_PROBLEM_REPOMD=1
+REPO_PROBLEM_METADATA=2
+REPO_PROBLEM_COMPS=3
+REPO_PROBLEM_OTHER=4
+REPO_PROBLEM_PACKAGE=5
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 370d12a..d6b1b02 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
@@ -555,18 +554,15 @@ class Depsolve(object):
                     self._last_req = pkg
                     return checkdeps, missingdep
 
-        # find out which arch of the ones we can choose from is closest
-        # to the arch of the requesting pkg
-        newest = provSack.returnNewestByNameArch()
-        if len(newest) > 1: # there's no way this can be zero
-                            
-            pkgresults = self._compare_providers(newest, requiringPo)
-            # take the first one...
-            best = pkgresults[0][0]                   
-                
-        elif len(newest) == 1:
-            best = newest[0]
-        
+        pkgs = provSack.returnPackages()
+        if len(pkgs) == 1: # Minor opt.
+            best = pkgs[0]
+        else:
+            #  Always do compare providers for multiple pkgs, it deals with
+            # newest etc. ... so no need to do NewestNameArch() ... and it
+            # stops compare_providers from being clever.
+            pkgresults = self._compare_providers(pkgs, requiringPo)
+            best = pkgresults[0][0]
         
         if self.rpmdb.contains(po=best): # is it already installed?
             missingdep = 1
@@ -1046,7 +1042,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))
@@ -1061,18 +1057,30 @@ class Depsolve(object):
             if y_dist == x_dist:
                 return None
             return x
+
+        #  Actual start of _compare_providers().
+
+        # Do a NameArch filtering, based on repo. __cmp__
+        unique_nevra_pkgs = {}
+        for pkg in pkgs:
+            if (pkg.pkgtup in unique_nevra_pkgs and
+                unique_nevra_pkgs[pkg.pkgtup].repo <= pkg.repo):
+                continue
+            unique_nevra_pkgs[pkg.pkgtup] = pkg
+        pkgs = unique_nevra_pkgs.values()
             
         pkgresults = {}
         ipkgresults = {}
 
         for pkg in pkgs:
             pkgresults[pkg] = 0
-            if self.rpmdb.contains(pkg.name):
+
+            rpmdbpkgs = self.rpmdb.searchNevra(name=pkg.name)
+            if rpmdbpkgs:
                 #  We only want to count things as "installed" if they are
                 # older than what we are comparing, because this then an update
                 # so we give preference. If they are newer then obsoletes/etc.
                 # could play a part ... this probably needs a better fix.
-                rpmdbpkgs = self.rpmdb.returnPackages(patterns=[pkg.name])
                 newest = sorted(rpmdbpkgs)[-1]
                 if newest.verLT(pkg):
                     ipkgresults[pkg] = 0
@@ -1106,6 +1114,8 @@ class Depsolve(object):
         
         # add the negative of the length of the name to the score
         
+        
+        lpos = {}
         for po in pkgs:
             for nextpo in pkgs:
                 if po == nextpo:
@@ -1115,9 +1125,9 @@ 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)
-                if not lpos or po != sorted(lpos)[-1]:
+                if po.name not in lpos:
+                    lpos[po.name] = self.pkgSack.returnNewestByName(po.name)[:1]
+                if not lpos[po.name] or not po.verEQ(lpos[po.name][0]):
                     pkgresults[po] -= 1024
 
                 obsoleted = False
@@ -1130,9 +1140,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/metalink.py b/yum/metalink.py
index 1f406bb..c7f5f83 100755
--- a/yum/metalink.py
+++ b/yum/metalink.py
@@ -32,7 +32,7 @@ except ImportError:
     import cElementTree
 xmlparse = cElementTree.parse
 
-class MetaLinkRepoErrorParseFail(Errors.YumBaseError):
+class MetaLinkRepoErrorParseFail(Errors.RepoError):
     """ An exception thrown for an unparsable MetaLinkRepoMD file. """
     pass
 
diff --git a/yum/misc.py b/yum/misc.py
index 7d4ee61..68ab9e4 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -10,6 +10,7 @@ import base64
 import struct
 import re
 import errno
+import Errors
 import pgpmsg
 import tempfile
 import glob
@@ -24,13 +25,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:
 
@@ -629,8 +630,13 @@ def bunzipFile(source,dest):
             break
         
         if not data: break
-        destination.write(data)
 
+        try:
+            destination.write(data)
+        except (OSError, IOError), e:
+            msg = "Error writing to file %s: %s" % (dest, str(e))
+            raise Errors.MiscError, msg
+    
     destination.close()
     s_fn.close()
 
@@ -815,7 +821,7 @@ def setup_locale(override_codecs=True, override_time=False):
 
 
 def get_my_lang_code():
-    mylang = locale.getlocale()
+    mylang = locale.getlocale(locale.LC_MESSAGES)
     if mylang == (None, None): # odd :)
         mylang = 'C'
     else:
diff --git a/yum/packageSack.py b/yum/packageSack.py
index f405217..3716410 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -25,6 +25,30 @@ 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 __eq__(self, other):
+        if other is None: return False
+        if self._num != other._num: return False
+        if self._chksum.digest() != other._chksum.digest(): return False
+        return True
+    def __ne__(self, other):
+        return not (self == other)
+
+    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 +172,35 @@ class PackageSackBase(object):
         """return list of all packages"""
         raise NotImplementedError()
 
+    def addPackageExcluder(self, repoid, excluderid, excluder, *args):
+        """ Add an "excluder" for all packages in the repo/sack. Can basically
+            do anything based on nevra, changes lots of exclude decisions from
+            "preload package; test; delPackage" into "load excluder".
+            Excluderid is used so the caller doesn't have to track
+            "have I loaded the excluder for this repo.", it's probably only
+            useful when repoid is None ... if it turns out utterly worthless
+            then it's still not a huge wart. """
+        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
@@ -390,13 +443,29 @@ class MetaSack(PackageSackBase):
 
 
     def returnPackages(self, repoid=None, patterns=None, ignore_case=False):
-        """return list of all packages, takes optional repoid"""
+        """Returns a list of packages. Note that the packages are
+           always filtered to those matching the patterns/case. An optional
+           repoid allows you to easily get data for a specific repo. """
         if not repoid:
             return self._computeAggregateListResult("returnPackages",
                                                     None, patterns, ignore_case)
         return self.sacks[repoid].returnPackages(patterns=patterns,
                                                  ignore_case=ignore_case)
 
+    def addPackageExcluder(self, repoid, excluderid, excluder, *args):
+        """ Add an "excluder" for all packages in the repo/sack. Can basically
+            do anything based on nevra, changes lots of exclude decisions from
+            "preload package; test; delPackage" into "load excluder".
+            Excluderid is used so the caller doesn't have to track
+            "have I loaded the excluder for this repo.", it's probably only
+            useful when repoid is None ... if it turns out utterly worthless
+            then it's still not a huge wart. """
+        if not repoid:
+            calr = self._computeAggregateListResult
+            return calr("addPackageExcluder", None, excluderid, excluder, *args)
+        return self.sacks[repoid].addPackageExcluder(None,
+                                                     excluderid,excluder, *args)
+
     def returnNewestByNameArch(self, naTup=None,
                                patterns=None, ignore_case=False):
         """return list of newest packages based on name, arch matching
@@ -691,10 +760,7 @@ class PackageSack(PackageSackBase):
         repoid = obj.repoid
         (name, arch, epoch, ver, rel) = obj.pkgtup
         
-        if self.compatarchs:
-            if self.compatarchs.has_key(arch):
-                self._addToDictAsList(self.pkgsByRepo, repoid, obj)
-        else:
+        if not self.compatarchs or arch in self.compatarchs:
             self._addToDictAsList(self.pkgsByRepo, repoid, obj)
         if self.indexesBuilt:
             self._addPackageToIndex(obj)
diff --git a/yum/packages.py b/yum/packages.py
index e3a12f2..9a56fc4 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
@@ -907,13 +907,13 @@ class YumAvailablePackage(PackageObject, RpmBase):
         for (name, flags, (e,v,r)) in mylist:
             pcostring = '''      <rpm:entry name="%s"''' % misc.to_xml(name, attrib=True)
             if flags:
-                pcostring += ''' flags="%s"''' % flags
+                pcostring += ''' flags="%s"''' % misc.to_xml(flags, attrib=True)
                 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
@@ -978,13 +978,13 @@ class YumAvailablePackage(PackageObject, RpmBase):
                 continue
             prcostring = '''      <rpm:entry name="%s"''' % misc.to_xml(name, attrib=True)
             if flags:
-                prcostring += ''' flags="%s"''' % flags
+                prcostring += ''' flags="%s"''' % misc.to_xml(flags, attrib=True)
                 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
                     
@@ -1121,9 +1121,15 @@ class YumHeaderPackage(YumAvailablePackage):
         #FIXME - if an error - return AttributeError, not KeyError 
         # ONLY FIX THIS AFTER THE API BREAK
         if thing.startswith('__') and thing.endswith('__'):
-            if not hasattr(self, thing):
-                raise AttributeError, "%s has no attribute %s" % (self, thing)
-        return self.hdr[thing]
+            # If these existed, then we wouldn't get here ...
+            # So these are missing.
+            raise AttributeError, "%s has no attribute %s" % (self, thing)
+        try:
+            return self.hdr[thing]
+        except KeyError:
+            #  Note above, API break to fix this ... this at least is a nicer
+            # msg. so we know what we accessed that is bad.
+            raise KeyError, "%s has no attribute %s" % (self, thing)
 
     def doepoch(self):
         tmpepoch = self.hdr['epoch']
@@ -1154,24 +1160,13 @@ class YumHeaderPackage(YumAvailablePackage):
                 if not self.__mode_cache.has_key(mode):
                     self.__mode_cache[mode] = stat.S_ISDIR(mode)
           
+                fkey = 'file'
                 if self.__mode_cache[mode]:
-                    if not self.files.has_key('dir'):
-                        self.files['dir'] = []
-                    self.files['dir'].append(fn)
-                else:
-                    if flag is None:
-                        if not self.files.has_key('file'):
-                            self.files['file'] = []
-                        self.files['file'].append(fn)
-                    else:
-                        if (flag & 64):
-                            if not self.files.has_key('ghost'):
-                                self.files['ghost'] = []
-                            self.files['ghost'].append(fn)
-                            continue
-                        if not self.files.has_key('file'):
-                            self.files['file'] = []
-                        self.files['file'].append(fn)
+                    fkey = 'dir'
+                elif flag is not None and (flag & 64):
+                    fkey = 'ghost'
+                self.files.setdefault(fkey, []).append(fn)
+
             self._loadedfiles = True
             
     def returnFileEntries(self, ftype='file'):
@@ -1386,8 +1381,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 +1482,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)
@@ -1548,9 +1552,9 @@ class YumLocalPackage(YumHeaderPackage):
         
         try:
             hdr = rpmUtils.miscutils.hdrFromPackage(ts, self.localpath)
-        except RpmUtilsError:
+        except RpmUtilsError, e:
             raise Errors.MiscError, \
-                'Could not open local rpm file: %s' % self.localpath
+                'Could not open local rpm file: %s: %s' % (self.localpath, e)
         
         fakerepo = FakeRepository(filename)
         fakerepo.cost = 0
diff --git a/yum/plugins.py b/yum/plugins.py
index 68f70a4..27b1aa5 100644
--- a/yum/plugins.py
+++ b/yum/plugins.py
@@ -22,11 +22,8 @@ import gettext
 import logging
 import logginglevels
 from constants import *
-try:
-    import iniparse.compat as ConfigParser
-except ImportError:
-    import ConfigParser
 import config 
+from config import ParsingError, ConfigParser
 import Errors
 from parser import ConfigPreProcessor
 
@@ -342,11 +339,11 @@ class YumPlugins:
             self.verbose_logger.log(logginglevels.INFO_2, _("Unable to find configuration file for plugin %s")
                 % modname)
             return None
-        parser = ConfigParser.ConfigParser()
+        parser = ConfigParser()
         confpp_obj = ConfigPreProcessor(conffilename)
         try:
             parser.readfp(confpp_obj)
-        except ConfigParser.ParsingError, e:
+        except ParsingError, e:
             raise Errors.ConfigError("Couldn't parse %s: %s" % (conffilename,
                 str(e)))
         return parser
diff --git a/yum/repos.py b/yum/repos.py
index 5d9a343..32d3426 100644
--- a/yum/repos.py
+++ b/yum/repos.py
@@ -59,6 +59,10 @@ class RepoStorage:
         self.gpg_import_func = _wrap_ayum_getKeyForRepo(ayum)
         self.confirm_func = None
 
+        # This allow listEnabled() to be O(1) most of the time.
+        self._cache_enabled_repos = []
+        self.quick_enable_disable = {}
+
     def doSetup(self, thisrepo = None):
         
         self.ayum.plugins.run('prereposetup')
@@ -92,7 +96,11 @@ class RepoStorage:
         if self.repos.has_key(repoobj.id):
             raise Errors.DuplicateRepoError, 'Repository %s is listed more than once in the configuration' % (repoobj.id)
         self.repos[repoobj.id] = repoobj
-        
+        if hasattr(repoobj, 'quick_enable_disable'):
+            self.quick_enable_disable.update(repoobj.quick_enable_disable)
+            repoobj.quick_enable_disable = self.quick_enable_disable
+        else:
+            self._cache_enabled_repos = None
 
     def delete(self, repoid):
         if self.repos.has_key(repoid):
@@ -163,12 +171,21 @@ class RepoStorage:
         
     def listEnabled(self):
         """return list of enabled repo objects"""
+
+        if (self._cache_enabled_repos is not None and
+            not self.quick_enable_disable):
+            return self._cache_enabled_repos
+
         returnlist = []
         for repo in self.repos.values():
             if repo.isEnabled():
                 returnlist.append(repo)
 
         returnlist.sort()
+
+        if self._cache_enabled_repos is not None:
+            self._cache_enabled_repos = returnlist
+            self.quick_enable_disable.clear()
         return returnlist
 
     def listGroupsEnabled(self):
@@ -266,6 +283,7 @@ class Repository:
 
     def __init__(self, repoid):
         self.id = repoid
+        self.quick_enable_disable = {}
         self.disable()
 
     def __cmp__(self, other):
@@ -303,9 +321,11 @@ class Repository:
 
     def enable(self):
         self.setAttribute('enabled', 1)
+        self.quick_enable_disable[self.id] = True
                     
     def disable(self):
         self.setAttribute('enabled', 0)
+        self.quick_enable_disable[self.id] = False
 
     def getExcludePkgList(self):
         excludeList = self.getAttribute('exclude')
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 5189b18..fbeb9b3 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
@@ -65,9 +65,10 @@ class RPMInstalledPackage(YumInstalledPackage):
     def __getattr__(self, varname):
         self.hdr = val = self._get_hdr()
         self._has_hdr = True
+        # If these existed, then we wouldn't get here ... and nothing in the DB
+        # starts and ends with __'s. So these are missing.
         if varname.startswith('__') and varname.endswith('__'):
-            if not hasattr(self, varname):
-                raise AttributeError, "%s has no attribute %s" % (self, varname)
+            raise AttributeError, "%s has no attribute %s" % (self, varname)
             
         if varname != 'hdr':   #  This is unusual, for anything that happens
             val = val[varname] # a lot we should preload at __init__.
@@ -140,7 +141,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' : { },
@@ -265,12 +269,12 @@ class RPMDBPackageSack(PackageSackBase):
         
         (name, arch) = naTup
 
-        allpkg = [ po.pkgtup for po in self._search(name=name, arch=arch) ]
+        allpkg = self._search(name=name, arch=arch)
 
         if not allpkg:
             raise Errors.PackageSackError, 'No Package Matching %s' % name
 
-        return misc.newestInList(allpkg)
+        return [ po.pkgtup for po in misc.newestInList(allpkg) ]
 
     def returnNewestByName(self, name=None):
         if not name:
@@ -319,6 +323,9 @@ class RPMDBPackageSack(PackageSackBase):
         return False
 
     def returnPackages(self, repoid=None, patterns=None, ignore_case=False):
+        """Returns a list of packages. Note that the packages are
+           always filtered to those matching the patterns/case. repoid is
+           ignored, and is just here for compatibility with non-rpmdb sacks. """
         if not self._completely_loaded:
             rpats = self._compile_patterns(patterns, ignore_case)
             for hdr, idx in self._all_packages():
@@ -332,6 +339,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
@@ -419,8 +452,7 @@ class RPMDBPackageSack(PackageSackBase):
 
 
     def _search(self, name=None, epoch=None, ver=None, rel=None, arch=None):
-        '''Generator that yields matching packages
-        '''
+        '''List of matching packages, to zero or more of NEVRA.'''
         pkgtup = (name, arch, epoch, ver, rel)
         if self._tup2pkg.has_key(pkgtup):
             return [self._tup2pkg[pkgtup]]
@@ -735,6 +767,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 +786,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 +811,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/rpmtrans.py b/yum/rpmtrans.py
index 806fd25..053b272 100644
--- a/yum/rpmtrans.py
+++ b/yum/rpmtrans.py
@@ -510,6 +510,9 @@ class RPMTransaction:
             # right behavior should be
                 
     def _scriptError(self, bytes, total, h):
+        if not isinstance(h, types.TupleType):
+            # fun with install/erase transactions, see rhbz#484729
+            h = (h, None)
         hdr, rpmloc = h[0], h[1]
         remove_hdr = False # if we're in a clean up/remove then hdr will not be an rpm.hdr
         if not isinstance(hdr, rpm.hdr):
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 7d87e0b..b6c14c5 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -36,6 +36,7 @@ import operator
 from yum.misc import seq_max_split
 from yum.i18n import to_utf8, to_unicode
 import sys
+import re
 
 def catchSqliteException(func):
     """This decorator converts sqlite exceptions into RepoError"""
@@ -60,6 +61,120 @@ 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
+
+def _excluder_match(excluder, match, regexp_match, data, e,v,r,a):
+    if False: pass
+    elif excluder in ('eq', 'match'):
+        if _parse_pkg(match, regexp_match, data, e,v,r,a):
+            return True
+
+    elif excluder in ('name.eq', 'name.match'):
+        if _parse_pkg_n(match, regexp_match, data['n']):
+            return True
+
+    elif excluder in ('arch.eq', 'arch.match'):
+        if _parse_pkg_n(match, regexp_match, a):
+            return True
+
+    elif excluder == 'nevr.eq':
+        if 'nevr' not in data:
+            data['nevr'] = '%s-%s:%s-%s' % (data['n'], e, v, r)
+        if match == data['nevr']:
+            return True
+
+    elif excluder in ('nevra.eq', 'nevra.match'):
+        if 'nevra' not in data:
+            data['nevra'] = '%s-%s:%s-%s.%s' % (data['n'], e, v, r, a)
+        if _parse_pkg_n(match, regexp_match, data['nevra']):
+            return True
+
+    elif excluder == 'name.in':
+        if data['n'] in match:
+            return True
+
+    elif excluder == 'nevr.in':
+        if 'nevr' not in data:
+            data['nevr'] = '%s-%s:%s-%s' % (data['n'], e, v, r)
+        if data['nevr'] in match:
+            return True
+
+    elif excluder == 'nevra.in':
+        if 'nevra' not in data:
+            data['nevra'] = '%s-%s:%s-%s.%s' % (data['n'], e, v, r, a)
+        if data['nevra'] in match:
+            return True
+
+    elif excluder == 'pkgtup.eq':
+        if match == data['pkgtup']:
+            return True
+
+    elif excluder == 'pkgtup.in':
+        if data['pkgtup'] in match:
+            return True
+
+    elif excluder == 'marked':
+        if data['marked']:
+            return True
+
+    elif excluder == 'washed':
+        if not data['marked']:
+            return True
+
+    elif excluder == '*':
+        return True
+
+    else:
+        assert False, 'Bad excluder: ' + excluder
+        return None
+
+    return False
+
+
 class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
     def __init__(self, repo, db_obj):
         self.prco = { 'obsoletes': (),
@@ -103,13 +218,9 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
             except (IndexError, KeyError):
                 pass
 
-        for item in ['pkgId']:
-            try:
-                setattr(self, item, db_obj[item])
-            except (IndexError, KeyError):
-                pass
-
         try:
+            self.pkgId = db_obj['pkgId']
+
             checksum_type = _share_data(db_obj['checksum_type'])
             check_sum = (checksum_type, db_obj['pkgId'], True)
             self._checksums = [ check_sum ]
@@ -144,9 +255,10 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
                          'checksum_value' : 'pkgId',
                         }
 
+        # If these existed, then we wouldn't get here ... and nothing in the DB
+        # starts and ends with __'s. So these are missing.
         if varname.startswith('__') and varname.endswith('__'):
-            if not hasattr(self, varname):
-                raise AttributeError, varname
+            raise AttributeError, varname
         
         dbname = varname
         if db2simplemap.has_key(varname):
@@ -291,15 +403,22 @@ 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' : { },
             'requires' : { },
             }
         self._key2pkg = {}
+        self._pkgname2pkgkeys = {}
+        self._pkgtup2pkgs = {}
+        self._pkgnames_loaded = set()
         self._arch_allowed = None
+        self._pkgExcluder = []
+        self._pkgExcludeIds = {}
+        self._pkgobjlist_dirty = False
 
     @catchSqliteException
     def _sql_MD(self, MD, repo, sql, *args):
@@ -315,6 +434,18 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         sql = "SELECT count(pkgId) FROM packages"
         return self._sql_MD('primary', repo, sql).fetchone()[0]
         
+    def _clean_pkgobjlist(self):
+        """ If the pkgobjlist is dirty (possible pkgs on it which are excluded)
+            then clean it, and return the clean list. """
+        assert hasattr(self, 'pkgobjlist')
+
+        if self._pkgobjlist_dirty:
+            pol = filter(lambda x: not self._pkgExcluded(x), self.pkgobjlist)
+            self.pkgobjlist = pol
+            self._pkgobjlist_dirty = False
+
+        return self.pkgobjlist
+
     def __len__(self):
         # First check if everything is excluded
         all_excluded = True
@@ -325,14 +456,13 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         if all_excluded:
             return 0
             
+        if hasattr(self, 'pkgobjlist'):
+            return len(self._clean_pkgobjlist())
+
         exclude_num = 0
         for repo in self.excludes:
             exclude_num += len(self.excludes[repo])
-        if hasattr(self, 'pkgobjlist'):
-            return len(self.pkgobjlist) - exclude_num
-        
         pkg_num = 0
-        sql = "SELECT count(pkgId) FROM packages"
         for repo in self.primarydb:
             pkg_num += self._sql_MD_pkg_num('primary', repo)
         return pkg_num - exclude_num
@@ -344,7 +474,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             del self._memoize_provides
         if hasattr(self, 'pkgobjlist'):
             del self.pkgobjlist
+        self._pkgobjlist_dirty = False
         self._key2pkg = {}
+        self._pkgname2pkgkeys = {}
+        self._pkgnames_loaded = set()
         self._search_cache = {
             'provides' : { },
             'requires' : { },
@@ -364,7 +497,11 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         self.otherdb = {}
         self.excludes = {}
         self._excludes = set()
+        self._exclude_whitelist = set()
         self._all_excludes = {}
+        self._pkgExcluder = []
+        self._pkgExcludeIds = {}
+        self._pkgobjlist_dirty = False
 
         yumRepo.YumPackageSack.close(self)
 
@@ -376,6 +513,18 @@ 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))
+        # Don't keep references around, just wastes memory.
+        if repo in self._key2pkg:
+            po = self._key2pkg[repo].pop(pkgKey, None)
+            if po is not None: # Will also be in the pkgtup2pkgs cache...
+                pos = self._pkgtup2pkgs[po.pkgtup]
+                pos = filter(lambda x: id(x) == id(po), pos)
+                self._pkgtup2pkgs[po.pkgtup] = pos
+
     # 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 +532,10 @@ 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) )
+        if (obj.repo, obj.pkgKey) in self._exclude_whitelist:
+            self._exclude_whitelist.discard((obj.repo, obj.pkgKey))
+        self._delPackageRK(obj.repo, obj.pkgKey)
+        self._pkgobjlist_dirty = True
 
     def _delAllPackages(self, repo):
         """ Exclude all packages from the repo. """
@@ -392,6 +544,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             del self.excludes[repo]
         if repo in self._key2pkg:
             del self._key2pkg[repo]
+        if repo in self._pkgname2pkgkeys:
+            del self._pkgname2pkgkeys[repo]
 
     def _excluded(self, repo, pkgId):
         if repo in self._all_excludes:
@@ -408,42 +562,195 @@ 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
+
+        if not self._pkgExcluder:
+            return False
+
+        data = {'n' : n.lower(), 'pkgtup' : (n, a, e, v, r), 'marked' : False}
+        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
+
+            exSPLIT = excluder.split('.', 1)
+            if len(exSPLIT) != 2:
+                assert False, 'Bad excluder: ' + excluder
+                continue
+
+            exT, exM = exSPLIT
+            if False: pass
+            elif exT == 'exclude':
+                if _excluder_match(exM, match, regexp_match, data, e,v,r,a):
+                    self._delPackageRK(repo, pkgKey)
+                    return True
+
+            elif exT == 'include':
+                if _excluder_match(exM, match, regexp_match, data, e,v,r,a):
+                    break
+
+            elif exT == 'mark':
+                if data['marked']:
+                    pass # Speed opt. don't do matches we don't need to do.
+                elif _excluder_match(exM, match, regexp_match, data, e,v,r,a):
+                    data['marked'] = True
+
+            elif exT == 'wash':
+                if not data['marked']:
+                    pass # Speed opt. don't do matches we don't need to do.
+                elif _excluder_match(exM, match, regexp_match, data, e,v,r,a):
+                    data['marked'] = False
+
+            else:
+                assert False, 'Bad excluder: ' + excluder
+
+        self._exclude_whitelist.add((repo, pkgKey))
         return False
 
+    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 _pkgExcluded(self, po):
-        return (self._pkgKeyExcluded(po.repo, po.pkgKey) or
-                self._pkgArchExcluded(po.arch))
+        ''' Helper function to call _pkgRKNEVRAExcluded.
+            Takes a package object. '''
+        return self._pkgExcludedRKT(po.repo, po.pkgKey, po.pkgtup)
+
+    def addPackageExcluder(self, repoid, excluderid, excluder, *args):
+        """ Add an "excluder" for all packages in the repo/sack. Can basically
+            do anything based on nevra, changes lots of exclude decisions from
+            "preload package; test; delPackage" into "load excluder".
+            Excluderid is used so the caller doesn't have to track
+            "have I loaded the excluder for this repo.", it's probably only
+            useful when repoid is None ... if it turns out utterly worthless
+            then it's still not a huge wart. """
+        if excluderid is not None and excluderid in self._pkgExcludeIds:
+            return
 
-    def _packageByKey(self, repo, pkgKey):
+        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
+        elif excluder.endswith('.marked'):
+            assert len(args) == 0
+        elif excluder.endswith('.washed'):
+            assert len(args) == 0
+        #  Really need to do this, need to cleanup pkgExcluder first though
+        # or it does nothing.
+        # self._pkgobjlist_dirty = True
+        self._pkgExcluder.append((repoid, excluder, match, regexp_match))
+        if excluderid is not None:
+            self._pkgExcludeIds[excluderid] = len(self._pkgExcluder)
+
+    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] = {}
+            self._pkgname2pkgkeys[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
-
-            self._key2pkg[repo][pkgKey] = self.pc(repo, data)
-        if self._pkgArchExcluded(self._key2pkg[repo][pkgKey].arch):
-            return None
+            if exclude and self._pkgExcludedRKD(repo, pkgKey, data):
+                return None
+            po = self.pc(repo, data)
+            self._key2pkg[repo][pkgKey] = po
+            self._pkgtup2pkgs.setdefault(po.pkgtup, []).append(po)
+            pkgkeys = self._pkgname2pkgkeys[repo].setdefault(data['name'], [])
+            pkgkeys.append(pkgKey)
         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 repo not in self._key2pkg:
+            self._key2pkg[repo] = {}
+            self._pkgname2pkgkeys[repo] = {}
         if data['pkgKey'] not in self._key2pkg.get(repo, {}):
             po = self.pc(repo, data)
-            self._key2pkg.setdefault(repo, {})[pkgKey] = po
+            self._key2pkg[repo][pkgKey] = po
+            self._pkgtup2pkgs.setdefault(po.pkgtup, []).append(po)
+            pkgkeys = self._pkgname2pkgkeys[repo].setdefault(data['name'], [])
+            pkgkeys.append(pkgKey)
         return self._key2pkg[repo][data['pkgKey']]
 
+    def _pkgtupByKeyData(self, repo, pkgKey, data):
+        """ Like _packageByKeyData() but we don't create the package, we just
+            return the pkgtup. """
+        if self._pkgExcludedRKD(repo, pkgKey, data):
+            return None
+        if repo not in self._key2pkg:
+            self._key2pkg[repo] = {}
+            self._pkgname2pkgkeys[repo] = {}
+        if data['pkgKey'] in self._key2pkg.get(repo, {}):
+            return self._key2pkg[repo][data['pkgKey']].pkgtup
+        return (data['name'], data['arch'],
+                data['epoch'], data['version'], data['release'])
+
+    def _packagesByName(self, pkgname):
+        """ Load all pkgnames from cache, with a given name. """
+        ret = []
+        for repo in self.primarydb:
+            pkgkeys = self._pkgname2pkgkeys.get(repo, {}).get(pkgname, [])
+            if not pkgkeys:
+                continue
+
+            for pkgkey in pkgkeys:
+                pkg = self._packageByKey(repo, pkgkey)
+                if pkg is None:
+                    continue
+                ret.append(pkg)
+        return ret
+
     def addDict(self, repo, datatype, dataobj, callback=None):
         if self.added.has_key(repo):
             if datatype in self.added[repo]:
@@ -481,8 +788,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:
@@ -528,6 +833,22 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         return skip_all
 
     @catchSqliteException
+    def _search_primary_files(self, name):
+        querytype = 'glob'
+        if not misc.re_glob(name):
+            querytype = '='        
+        results = []
+        
+        for (rep,cache) in self.primarydb.items():
+            if rep in self._all_excludes:
+                continue
+            cur = cache.cursor()
+            executeSQL(cur, "select DISTINCT pkgKey from files where name %s ?" % querytype, (name,))
+            self._sql_pkgKey2po(rep, cur, results)
+
+        return misc.unique(results)
+        
+    @catchSqliteException
     def searchFiles(self, name, strict=False):
         """search primary if file will be in there, if not, search filelists, use globs, if possible"""
         
@@ -539,16 +860,28 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         # if so, just use those for the lookup
         
         glob = True
+        file_glob = True
         querytype = 'glob'
+        dirname  = os.path.dirname(name)
+        filename = os.path.basename(name)
         if strict or not misc.re_glob(name):
             glob = False
+            file_glob = False
             querytype = '='
+        elif not misc.re_glob(filename):
+            file_glob = False
 
         # Take off the trailing slash to act like rpm
         if name[-1] == '/':
             name = name[:-1]
        
         pkgs = []
+
+        # ultra simple optimization 
+        if misc.re_primary_filename(name):
+            if not misc.re_glob(dirname): # is the dirname a glob?
+                return self._search_primary_files(name)
+        
         if len(self.filelistsdb) == 0:
             # grab repo object from primarydb and force filelists population in this sack using repo
             # sack.populate(repo, mdtype, callback, cacheonly)
@@ -566,41 +899,53 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             if pri_pkgs != fil_pkgs:
                 raise Errors.RepoError
 
+        sql_params = []
+        dirname_check = ""
+        if not glob:
+            (pattern, esc) = self._sql_esc(filename)
+            dirname_check = "dirname = ? and filenames LIKE ? %s and " % esc
+            sql_params.append(dirname)
+            sql_params.append('%' + pattern + '%')
+        elif not file_glob:
+            (pattern, esc) = self._sql_esc(filename)
+            dirname_check = "dirname GLOB ? and filenames LIKE ? %s and " % esc
+            sql_params.append(dirname)
+            sql_params.append('%' + pattern + '%')
+
         for (rep,cache) in self.filelistsdb.items():
             if rep in self._all_excludes:
                 continue
 
             cur = cache.cursor()
 
-            if glob:
-                dirname_check = ""
-            else:
-                dirname = os.path.dirname(name)
-                dirname_check = "dirname = \"%s\" and " % dirname
-
             # grab the entries that are a single file in the 
             # filenames section, use sqlites globbing if it is a glob
             executeSQL(cur, "select pkgKey from filelist where \
                     %s length(filetypes) = 1 and \
                     dirname || ? || filenames \
-                    %s ?" % (dirname_check, querytype), ('/', name))
+                    %s ?" % (dirname_check, querytype), sql_params + ['/',name])
             self._sql_pkgKey2po(rep, cur, pkgs)
 
-            def filelist_globber(dirname, filenames):
-                files = filenames.split('/')
-                fns = map(lambda f: '%s/%s' % (dirname, f), files)
-                if glob:
-                    matches = fnmatch.filter(fns, name)
-                else:
-                    matches = filter(lambda x: name==x, fns)
-                return len(matches)
+            if file_glob:
+                name_re = re.compile(fnmatch.translate(name))
+            def filelist_globber(sql_dirname, sql_filenames):
+                files = sql_filenames.split('/')
+                if not file_glob:
+                    return filename in files
+
+                fns = map(lambda f: '%s/%s' % (sql_dirname, f), files)
+                for match in fns:
+                    if name_re.match(match):
+                        return True
+                return False
 
             cache.create_function("filelist_globber", 2, filelist_globber)
             # for all the ones where filenames is multiple files, 
             # make the files up whole and use python's globbing method
             executeSQL(cur, "select pkgKey from filelist where \
                              %s length(filetypes) > 1 \
-                             and filelist_globber(dirname,filenames)" % dirname_check)
+                             and filelist_globber(dirname,filenames)" % dirname_check,
+                       sql_params)
 
             self._sql_pkgKey2po(rep, cur, pkgs)
 
@@ -676,8 +1021,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 +1047,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 +1156,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 +1177,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
@@ -862,20 +1197,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             return result
 
         # If it is a filename, search the primary.xml file info
-        for (rep,cache) in self.primarydb.items():
-            if rep in self._all_excludes:
-                continue
-
-            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
-                result[pkg] = [(name, None, None)]
-        self._search_cache[prcotype][req] = result
+        
+        for pkg in self._search_primary_files(name):
+            result[pkg] = [(name, None, None)]
+            self._search_cache[prcotype][req] = result
         return result
 
     def getProvides(self, name, flags=None, version=(None, None, None)):
@@ -892,23 +1217,25 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         if self._skip_all():
             return []
         
+        loaded_all_names = hasattr(self, 'pkgobjlist')
         returnList = []
-        if hasattr(self, 'pkgobjlist'):
-            names = set(names)
-            for po in self.pkgobjlist:
-                if po.name not in names:
-                    continue
-                if self._pkgExcluded(po):
-                    continue
-                returnList.append(po)
+        user_names = set(names)
+        names = []
+        for pkgname in user_names:
+            if loaded_all_names or pkgname in self._pkgnames_loaded:
+                returnList.extend(self._packagesByName(pkgname))
+            else:
+                names.append(pkgname)
+
+        if not names:
             return returnList
 
         max_entries = constants.PATTERNS_INDEXED_MAX
         if len(names) > max_entries:
-            returnList = set() # Unique
+            # Unique is done at user_names time, above.
             for names in seq_max_split(names, max_entries):
-                returnList.update(self.searchNames(names))
-            return list(returnList)
+                returnList.extend(self.searchNames(names))
+            return returnList
 
         pat_sqls = []
         qsql = """select pkgId,pkgKey,name,epoch,version,release,arch
@@ -919,10 +1246,13 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
 
         for (repo, cache) in self.primarydb.items():
             cur = cache.cursor()
-            executeSQL(cur, qsql, list(names))
+            executeSQL(cur, qsql, names)
 
             self._sql_pkgKey2po(repo, cur, returnList, have_data=True)
 
+        # Mark all the processed pkgnames as fully loaded
+        self._pkgnames_loaded.update([name for name in names])
+
         return returnList
  
     @catchSqliteException
@@ -951,10 +1281,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             return results
 
         # If it is a filename, search the primary.xml file info
-        for (rep,cache) in self.primarydb.items():
-            cur = cache.cursor()
-            executeSQL(cur, "select DISTINCT pkgKey from files where name %s ?" % querytype, (name,))
-            self._sql_pkgKey2po(rep, cur, results)
+        results.extend(self._search_primary_files(name))
 
         # if its in the primary.xml files then skip the other check
         if misc.re_primary_filename(name) and not glob:
@@ -1129,16 +1456,13 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         unmatched = misc.unique(unmatched)
         return exactmatch, matched, unmatched
 
-    @catchSqliteException
-    def _buildPkgObjList(self, repoid=None, patterns=None, ignore_case=False):
-        """Builds a list of packages, only containing nevra information. No
-           excludes are done at this stage. """
+    def _setupPkgObjList(self, repoid=None, patterns=None, ignore_case=False):
+        """Setup need_full and patterns for _yieldSQLDataList, also see if
+           we can get away with just using searchNames(). """
 
         if patterns is None:
             patterns = []
 
-        returnList = []
-        
         fields = ['name', 'sql_nameArch', 'sql_nameVerRelArch',
                   'sql_nameVer', 'sql_nameVerRel',
                   'sql_envra', 'sql_nevra']
@@ -1158,12 +1482,22 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             patterns = self._sql_esc_glob(patterns)
         else:
             tmp = []
+            need_glob = False
             for pat in patterns:
                 if misc.re_glob(pat):
                     tmp.append((pat, 'glob'))
+                    need_glob = True
                 else:
                     tmp.append((pat, '='))
+            if not need_full and not need_glob and patterns:
+                return (need_full, patterns, fields, True)
             patterns = tmp
+        return (need_full, patterns, fields, False)
+
+    @catchSqliteException
+    def _yieldSQLDataList(self, repoid, patterns, fields, ignore_case):
+        """Yields all the package data for the given params. Excludes are done
+           at this stage. """
 
         for (repo,cache) in self.primarydb.items():
             if (repoid == None or repoid == repo.id):
@@ -1184,45 +1518,97 @@ 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.
                 for x in cur:
-                    po = self._packageByKeyData(repo, x['pkgKey'], x)
-                    if po is None: # Arch exclude is done here.
-                        continue
-                    returnList.append(po)
-        if not patterns:
+                    yield (repo, x)
+
+    def _buildPkgObjList(self, repoid=None, patterns=None, ignore_case=False):
+        """Builds a list of packages, only containing nevra information.
+           Excludes are done at this stage. """
+
+        returnList = []
+
+        data = self._setupPkgObjList(repoid, patterns, ignore_case)
+        (need_full, patterns, fields, names) = data
+        if names:
+            return self.searchNames(patterns)
+
+        for (repo, x) in self._yieldSQLDataList(repoid, patterns, fields,
+                                                ignore_case):
+            po = self._packageByKeyData(repo, x['pkgKey'], x)
+            if po is None:
+                continue
+            returnList.append(po)
+        if not patterns and repoid is None:
             self.pkgobjlist = returnList
+            self._pkgnames_loaded = set() # Save memory
+        if not need_full and repoid is None:
+            # Mark all the processed pkgnames as fully loaded
+            self._pkgnames_loaded.update([po.name for po in returnList])
+
         return returnList
                 
     def returnPackages(self, repoid=None, patterns=None, ignore_case=False):
         """Returns a list of packages, only containing nevra information. The
-           packages are processed for excludes. Note that patterns is just
-           a hint, we are free it ignore it. """
+           packages are processed for excludes. Note that the packages are
+           always filtered to those matching the patterns/case. """
 
         if self._skip_all():
             return []
 
-        if hasattr(self, 'pkgobjlist'):
-            pkgobjlist = self.pkgobjlist
+        internal_pkgoblist = hasattr(self, 'pkgobjlist')
+        if internal_pkgoblist:
+            pkgobjlist = self._clean_pkgobjlist()
         else:
             pkgobjlist = self._buildPkgObjList(repoid, patterns, ignore_case)
+            internal_pkgoblist = hasattr(self, 'pkgobjlist')
 
-        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]
 
+        # Can't unexclude things, and new excludes are done above...
+        if repoid is None:
+            if internal_pkgoblist:
+                pkgobjlist = pkgobjlist[:]
+            return pkgobjlist
+
         returnList = []
         for po in pkgobjlist:
-            if repoid is not None and repoid != po.repoid:
-                continue
-            if self._pkgExcluded(po):
+            if repoid != po.repoid:
                 continue
             returnList.append(po)
 
         return returnList
 
+    def simplePkgList(self, patterns=None, ignore_case=False):
+        """Returns a list of pkg tuples (n, a, e, v, r), optionally from a
+           single repoid. Note that the packages are always filtered to those
+           matching the patterns/case. """
+
+        if self._skip_all():
+            return []
+
+        internal_pkgoblist = hasattr(self, 'pkgobjlist')
+        if internal_pkgoblist:
+            return yumRepo.YumPackageSack.simplePkgList(self, patterns,
+                                                        ignore_case)
+
+        repoid = None
+        returnList = []
+        # Haven't loaded everything, so _just_ get the pkgtups...
+        data = self._setupPkgObjList(repoid, patterns, ignore_case)
+        (need_full, patterns, fields, names) = data
+        for (repo, x) in self._yieldSQLDataList(repoid, patterns, fields,
+                                                ignore_case):
+            # NOTE: Can't unexclude things...
+            pkgtup = self._pkgtupByKeyData(repo, x['pkgKey'], x)
+            if pkgtup is None:
+                continue
+            returnList.append(pkgtup)
+        return returnList
+
     @catchSqliteException
     def searchNevra(self, name=None, epoch=None, ver=None, rel=None, arch=None):        
         """return list of pkgobjects matching the nevra requested"""
@@ -1231,6 +1617,18 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
 
         returnList = []
         
+        if name: # Almost always true...
+            for pkg in self.searchNames(names=[name]):
+                match = True
+                for (col, var) in [('epoch', epoch), ('version', ver),
+                                   ('arch', arch), ('release', rel)]:
+                    if var and getattr(pkg, col) != var:
+                        match = False
+                        break
+                if match:
+                    returnList.append(pkg)
+            return returnList
+
         # make sure some dumbass didn't pass us NOTHING to search on
         empty = True
         for arg in (name, epoch, ver, rel, arch):
diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py
index 05820fa..be772e5 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,6 +258,8 @@ class TransactionData:
         self.depremoved = []
         self.depinstalled = []
         self.depupdated = []
+        self.reinstalled = []
+        self.downgraded = []
         self.failed = []
 
         for txmbr in self.getMembers():
@@ -265,7 +269,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 self.rpmdb.contains(po=txmbr.po):
+                    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 +288,9 @@ class TransactionData:
                     self.installed.append(txmbr)
             
             elif txmbr.output_state == TS_ERASE:
+                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 +383,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 +576,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..fac218a 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -19,6 +19,7 @@ import time
 import types
 import urlparse
 urlparse.uses_fragment.append("media")
+import gzip
 
 import Errors
 from urlgrabber.grabber import URLGrabber
@@ -33,6 +34,7 @@ import sqlitecachec
 import sqlitesack
 from yum import config
 from yum import misc
+from yum import comps
 from constants import *
 import metalink
 
@@ -473,7 +475,12 @@ class YumRepository(Repository, config.RepoConf):
                                     timeout=self.timeout,
                                     copy_local=self.copy_local,
                                     http_headers=headers,
-                                    reget='simple')
+                                    reget='simple',
+                                    ssl_verify_peer=self.sslverify,
+                                    ssl_verify_host=self.sslverify,
+                                    ssl_ca_cert=self.sslcacert,
+                                    ssl_cert=self.sslclientcert,
+                                    ssl_key=self.sslclientkey)
 
         self._grabfunc.opts.user_agent = default_grabber.opts.user_agent
 
@@ -495,6 +502,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 +532,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 +541,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',
@@ -602,6 +631,9 @@ class YumRepository(Repository, config.RepoConf):
         goodurls = []
         skipped = None
         for url in url_list:
+            # obvious bogons get ignored b/c, we could get more interesting checks but <shrug>
+            if url in ['', None]:
+                continue
             url = parser.varReplace(url, self.yumvar)
             if url[-1] != '/':
                 url= url + '/'
@@ -640,7 +672,12 @@ class YumRepository(Repository, config.RepoConf):
                                     retry = self.retries,
                                     throttle = self.throttle,
                                     progress_obj = self.callback,
-                                    proxies=self.proxy_dict)
+                                    proxies=self.proxy_dict,
+                                    ssl_verify_peer=self.sslverify,
+                                    ssl_verify_host=self.sslverify,
+                                    ssl_ca_cert=self.sslcacert,
+                                    ssl_cert=self.sslclientcert,
+                                    ssl_key=self.sslclientkey)
                     ug.opts.user_agent = default_grabber.opts.user_agent
                     result = ug.urlgrab(url, local, text=self.id + "/metalink")
 
@@ -743,6 +780,11 @@ class YumRepository(Repository, config.RepoConf):
                             timeout=self.timeout,
                             checkfunc=checkfunc,
                             http_headers=headers,
+                            ssl_verify_peer=self.sslverify,
+                            ssl_verify_host=self.sslverify,
+                            ssl_ca_cert=self.sslcacert,
+                            ssl_cert=self.sslclientcert,
+                            ssl_key=self.sslclientkey                            
                             )
 
             ug.opts.user_agent = default_grabber.opts.user_agent
@@ -790,6 +832,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 +867,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 +1653,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 +1680,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 +1693,87 @@ 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 _verify_md(self):
+        problems = []
+        print 'verifying md'
+        try:
+            md_types = self.repoXML.fileTypes()
+        except Errors.RepoError, e:
+            prb = RepoVerifyProblem(1, "failed to load repomd.xml", str(e))
+            problems.append(prb)
+            return problems
+
+        for md_type in md_types:
+            print 'verifying %s' % md_type
+            try:
+                self.retrieveMD(md_type)
+            except Errors.RepoError, e:
+                msg = "%s metadata missing or does not match checksum" % md_type
+                prb = RepoVerifyProblem(2, msg, str(e))
+                problems.append(prb)
+
+        return problems
+
+    def _verify_comps(self):
+        print 'verifying comps'
+        problems = []
+        # grab the comps for this repo
+        # run the xmllint on it
+        # chuck it into a comps object
+        # make sure it parses
+
+        grpfile = self.getGroups()
+
+        # open it up as a file object so iterparse can cope with our gz file
+        if grpfile is not None and grpfile.endswith('.gz'):
+            grpfile = gzip.open(grpfile)
+        try:
+            c = comps.Comps()
+            c.add(grpfile)
+        except (Errors.GroupsError, Errors.CompsException), e:
+            msg = "comps file failed to add"
+            prb = RepoVerifyProblem(REPO_PROBLEM_COMPS, msg, str(e))
+            problems.add(prb)
+        else:
+            if c.compscount == 0:
+                msg = "no groups in comps"
+                prb = RepoVerifyProblem(REPO_PROBLEM_COMPS, msg, "")
+                problems.add(prb)
+
+        return problems
+
+    def _verify_packages(self):
+        return []
+
+    def verify(self, items=['repodata', 'comps']):
+        """download/verify the specified items
+           @items = ['repodata', 'comps'] can include: repodata, comps, packages
+        """
+        problems = []
+        if 'repodata' in items:
+            problems.extend(self._verify_md())
+        if 'comps' in items:        
+            if self.enablegroups:
+                problems.extend(self._verify_comps())
+        if 'packages' in items:
+            problems.extend(self._verify_packages())
+        # what else can we verify?
+
+        return problems
 
 
 def getMirrorList(mirrorlist, pdict = None):
@@ -1670,3 +1813,11 @@ def getMirrorList(mirrorlist, pdict = None):
 
     return returnlist
 
+class RepoVerifyProblem:
+    """ Holder for each "problem" we find with a repo.verify(). """
+    
+    def __init__(self, type, msg, details, fake=False):
+        self.type           = type
+        self.message        = msg
+        self.details        = details
+        self.fake           = fake
diff --git a/yumcommands.py b/yumcommands.py
index 706d908..bd73d0c 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):
@@ -825,15 +824,15 @@ class RepoListCommand(YumCommand):
                         md = repo.repoXML
                     else:
                         md = None
-                    out = [base.fmtKeyValFill(_("Repo-id     : "), repo),
-                           base.fmtKeyValFill(_("Repo-name   : "), repo.name),
-                           base.fmtKeyValFill(_("Repo-status : "), ui_enabled)]
+                    out = [base.fmtKeyValFill(_("Repo-id      : "), repo),
+                           base.fmtKeyValFill(_("Repo-name    : "), repo.name),
+                           base.fmtKeyValFill(_("Repo-status  : "), ui_enabled)]
                     if md and md.revision is not None:
                         out += [base.fmtKeyValFill(_("Repo-revision: "),
                                                    md.revision)]
                     if md and md.tags['content']:
                         tags = md.tags['content']
-                        out += [base.fmtKeyValFill(_("Repo-tags   : "),
+                        out += [base.fmtKeyValFill(_("Repo-tags    : "),
                                                    ", ".join(sorted(tags)))]
 
                     if md and md.tags['distro']:
@@ -844,19 +843,23 @@ class RepoListCommand(YumCommand):
                                                        ", ".join(sorted(tags))))]
 
                     if md:
-                        out += [base.fmtKeyValFill(_("Repo-updated: "),
+                        out += [base.fmtKeyValFill(_("Repo-updated : "),
                                                    time.ctime(md.timestamp)),
-                                base.fmtKeyValFill(_("Repo-pkgs   : "), ui_num),
-                                base.fmtKeyValFill(_("Repo-size   : "),ui_size)]
+                                base.fmtKeyValFill(_("Repo-pkgs    : "),ui_num),
+                                base.fmtKeyValFill(_("Repo-size    : "),ui_size)]
 
                     if hasattr(repo, '_orig_baseurl'):
                         baseurls = repo._orig_baseurl
                     else:
                         baseurls = repo.baseurl
                     if baseurls:
-                        out += [base.fmtKeyValFill(_("Repo-baseurl: "),
+                        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)]
@@ -865,15 +868,31 @@ class RepoListCommand(YumCommand):
                             out += [base.fmtKeyValFill(_("  Updated    : "),
                                                        time.ctime(ts))]
                     elif repo.mirrorlist:
-                        out += [base.fmtKeyValFill(_("Repo-mirrors: "),
+                        out += [base.fmtKeyValFill(_("Repo-mirrors : "),
                                                    repo.mirrorlist)]
 
+                    if not os.path.exists(repo.metadata_cookie):
+                        last = _("Unknown")
+                    else:
+                        last = os.stat(repo.metadata_cookie).st_mtime
+                        last = time.ctime(last)
+
+                    if repo.metadata_expire <= -1:
+                        num = _("Never (last: %s)") % last
+                    elif not repo.metadata_expire:
+                        num = _("Instant (last: %s)") % last
+                    else:
+                        num = locale.format("%d", repo.metadata_expire, True)
+                        num = _("%s second(s) (last: %s)") % (num, last)
+
+                    out += [base.fmtKeyValFill(_("Repo-expire  : "), num)]
+
                     if repo.exclude:
-                        out += [base.fmtKeyValFill(_("Repo-exclude: "),
+                        out += [base.fmtKeyValFill(_("Repo-exclude : "),
                                                    ", ".join(repo.exclude))]
 
                     if repo.includepkgs:
-                        out += [base.fmtKeyValFill(_("Repo-include: "),
+                        out += [base.fmtKeyValFill(_("Repo-include : "),
                                                    ", ".join(repo.includepkgs))]
 
                     base.verbose_logger.log(logginglevels.DEBUG_3,
@@ -1043,3 +1062,74 @@ 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]
+                ncols = []
+                last_rev = None
+                for rev in sorted(cur):
+                    if rev is None:
+                        continue
+                    last_rev = cur[rev]
+                    ncols.append(("    %s/%s" % (repoid, rev), str(cur[rev])))
+                if None in cur and (not last_rev or cur[None] != last_rev):
+                    cols.append(("    %s" % repoid, str(cur[None])))
+                cols.extend(ncols)
+
+        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')
diff --git a/yummain.py b/yummain.py
index 281d0fc..964975b 100755
--- a/yummain.py
+++ b/yummain.py
@@ -46,6 +46,8 @@ def main(args):
     def exIOError(e):
         if e.errno == 32:
             logger.critical(_('\n\nExiting on Broken Pipe'))
+        else:
+            logger.critical(_('\n\n%s') % str(e))
         if unlock(): return 200
         return 1