Blob Blame Raw
diff --git a/cli.py b/cli.py
index 615a1f6..332be99 100644
--- a/cli.py
+++ b/cli.py
@@ -100,6 +100,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         self.registerCommand(yumcommands.ReInstallCommand())        
         self.registerCommand(yumcommands.DowngradeCommand())        
         self.registerCommand(yumcommands.VersionCommand())
+        self.registerCommand(yumcommands.HistoryCommand())
 
     def registerCommand(self, command):
         for name in command.getNames():
@@ -206,8 +207,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
 
         if opts.version:
             self.conf.cache = 1
-            yum_progs = ['yum', 'yum-metadata-parser', 'rpm',
-                         'yum-rhn-plugin']
+            yum_progs = self.run_with_package_names
             done = False
             def sm_ui_time(x):
                 return time.strftime("%Y-%m-%d %H:%M", time.gmtime(x))
diff --git a/docs/yum.8 b/docs/yum.8
index 3520912..9cd68dd 100644
--- a/docs/yum.8
+++ b/docs/yum.8
@@ -67,6 +67,10 @@ gnome\-packagekit application\&.
 .br
 .I \fR * repolist [all|enabled|disabled] 
 .br
+.I \fR * version [all|installed|available|group-*|grouplist|groupinfo]
+.br
+.I \fR * history [info|list|summary|redo|undo|new] 
+.br
 .I \fR * help [command] 
 .br
 .PP 
@@ -225,6 +229,26 @@ Produces a list of configured repositories. The default is to list all
 enabled repositories. If you pass \-v, for verbose mode, more information is
 listed.
 .IP
+.IP "\fBversion\fP"
+Produces a "version" of the rpmdb, and of the enabled repositories if "all" is
+given as the first argument. You can also specify version groups in the
+version-groups config. file. If you pass \-v, for verbose mode, more
+information is listed. The version is calculated by taking a sha1 hash of the
+packages (in sorted order), and the checksum_type/checksum_data entries from
+the yumdb. Note that this rpmdb version is now also used significantly within
+yum (esp. in yum history).
+.IP
+.IP "\fBhistory\fP"
+The history command allows the user to view what has happened in past
+transactions (assuming the history_record config. option is set). You can use
+info/list/summary to view what happend, undo/redo to act on that information
+and new to start a new history file.
+
+The info/list/summary commands take either a transactions id or a package (with
+wildcards, as in \fBSpecifying package names\fP), all three can also be passed
+no arguments. list can be passed the keyword "all" to list all the transactions.
+undo/redo just take a transaction id.
+.IP
 .IP "\fBhelp\fP"
 Produces help, either for all commands or if given a command name then the help
 for that particular command\&.
@@ -266,7 +290,8 @@ Sets the maximum amount of time yum will wait before performing a command \- it
 Tells yum to run entirely from cache - does not download or update any
 headers unless it has to to perform the requested action.
 .IP "\fB\-\-version\fP" 
-Reports the \fByum\fP version number and exits.
+Reports the \fByum\fP version number and installed package versions for
+everything in history_record_packages (can be added to by plugins).
 .IP "\fB\-\-showduplicates\fP" 
 Doesn't limit packages to their latest versions in the info, list and search
 commands (will also affect plugins which use the doPackageLists() API).
@@ -450,6 +475,7 @@ configuration options.
 .SH "FILES"
 .nf
 /etc/yum/yum.conf
+/etc/yum/version-groups.conf
 /etc/yum/repos.d/
 /etc/yum/pluginconf.d/
 /var/cache/yum/
diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
index 69b601d..8976b0c 100644
--- a/docs/yum.conf.5
+++ b/docs/yum.conf.5
@@ -128,6 +128,9 @@ 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.
+Note that as of version 3.2.24, yum will now look in the yumdb for a installonly
+attribute on installed packages. If that attribute is "keep", then they will
+never be removed.
 
 .IP
 \fBkernelpkgnames \fR
@@ -274,6 +277,21 @@ Path to the ssl client key yum should use to connect to repos/remote sites
 Defaults to none.
 
 .IP
+\fBhistory_record \fR
+Boolean - should yum record history entries for transactions. This takes some
+disk space, and some extra time in the transactions. But it allos how to know a
+lot of information about what has happened before, and display it to the user
+with the history info/list/summary commands. yum also provides the
+history undo/redo commands. Defaults to True.
+
+.IP
+\fBhistory_record_packages \fR
+This is a list of package names that should be recorded as having helped the
+transaction. yum plugins have an API to add themself to this, so it should not
+normally be necessary to add packages here. Not that this is also used for the
+packages to look for in --version. Defaults to rpm, yum, yum-metadata-parser.
+
+.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
diff --git a/etc/Makefile b/etc/Makefile
index 1ba5a1f..7a083f7 100644
--- a/etc/Makefile
+++ b/etc/Makefile
@@ -1,3 +1,5 @@
+YUMETC=$(DESTDIR)/etc/yum
+
 all:
 	echo "Nothing to do"
 
@@ -8,7 +10,9 @@ install:
 	mkdir -p $(DESTDIR)/etc/yum/
 	mkdir -p $(DESTDIR)/etc/yum/repos.d
 
-	install -m 644 yum.conf $(DESTDIR)/etc/yum/yum.conf
+	install -m 644 yum.conf $(YUMETC)/yum.conf
+
+	install -m 644 version-groups.conf $(YUMETC)/version-groups.conf
 
 	mkdir -p $(DESTDIR)/etc/logrotate.d
 	install -m 644 yum.logrotate $(DESTDIR)/etc/logrotate.d/yum
diff --git a/etc/version-groups.conf b/etc/version-groups.conf
new file mode 100644
index 0000000..57d97dd
--- /dev/null
+++ b/etc/version-groups.conf
@@ -0,0 +1,11 @@
+#  This file allows you to create "groups" of package names, which are used by
+# the version command.
+
+[yum]
+#  These are the top level things to do with yum, we don't list Eg. libselinux
+# even though that's require by rpm(-libs).
+run_with_packages = true
+pkglist = glibc, sqlite, libcurl, nss,
+          rpm, rpm-libs, rpm-python, 
+          python,
+          python-iniparse, python-urlgrabber, python-pycurl 
diff --git a/output.py b/output.py
index 2299a9c..d0b9f7f 100755
--- a/output.py
+++ b/output.py
@@ -22,6 +22,7 @@ import time
 import logging
 import types
 import gettext
+import pwd
 import rpm
 
 import re # For YumTerm
@@ -40,6 +41,7 @@ from yum.constants import *
 from yum import logginglevels, _
 from yum.rpmtrans import RPMBaseCallback
 from yum.packageSack import packagesNewestByNameArch
+import yum.packages
 
 from yum.i18n import utf8_width, utf8_width_fill, utf8_text_fill
 
@@ -1172,6 +1174,328 @@ to exit.
                               ui_bs, ui_size, ui_time, ui_end)
         self.verbose_logger.log(logginglevels.INFO_2, msg)
 
+    def _history_uiactions(self, hpkgs):
+        actions = set()
+        count = 0
+        for hpkg in hpkgs:
+            st = hpkg.state
+            if st == 'True-Install':
+                st = 'Install'
+            if st == 'Obsoleted': #  This is just a UI tweak, as we can't have
+                                  # just one but we need to count them all.
+                st = 'Obsoleting'
+            if st in ('Install', 'Update', 'Erase', 'Reinstall', 'Downgrade',
+                      'Obsoleting'):
+                actions.add(st)
+                count += 1
+        assert len(actions) <= 6
+        if len(actions) > 1:
+            return count, ", ".join([x[0] for x in sorted(actions)])
+
+        # So empty transactions work, although that "shouldn't" really happen
+        return count, "".join(list(actions))
+
+    def _pwd_ui_username(self, uid, limit=None):
+        # loginuid is set to -1 on init.
+        if uid is None or uid == 0xFFFFFFFF:
+            loginid = _("<unset>")
+            name = _("System") + " " + loginid
+            if limit is not None and len(name) > limit:
+                name = loginid
+            return name
+
+        try:
+            user = pwd.getpwuid(uid)
+            fullname = user.pw_gecos.split(';', 2)[0]
+            name = "%s <%s>" % (fullname, user.pw_name)
+            if limit is not None and len(name) > limit:
+                name = "%s ... <%s>" % (fullname.split()[0], user.pw_name)
+                if len(name) > limit:
+                    name = "<%s>" % user.pw_name
+            return name
+        except KeyError:
+            return str(uid)
+
+    def _history_list_transactions(self, extcmds):
+        tids = set()
+        pats = []
+        usertids = extcmds[1:]
+        printall = False
+        if usertids:
+            printall = True
+            if usertids[0] == 'all':
+                usertids.pop(0)
+        for tid in usertids:
+            try:
+                int(tid)
+                tids.add(tid)
+            except ValueError:
+                pats.append(tid)
+        if pats:
+            tids.update(self.history.search(pats))
+
+        if not tids and usertids:
+            self.logger.critical(_('Bad transaction IDs, or package(s), given'))
+            return None, None
+        return tids, printall
+
+    def historyListCmd(self, extcmds):
+        """ Shows the user a list of data about the history. """
+
+        tids, printall = self._history_list_transactions(extcmds)
+        if tids is None:
+            return 1, ['Failed history info']
+
+        fmt = "%-6s | %-22s | %-16s | %-14s | %-7s"
+        print fmt % ("ID", "Login user", "Date and time", "Action(s)","Altered")
+        print "-" * 79
+        fmt = "%6u | %-22.22s | %-16s | %-14s | %4u"
+        done = 0
+        limit = 20
+        if printall:
+            limit = None
+        for old in self.history.old(tids, limit=limit):
+            if not printall and done >= limit:
+                break
+
+            done += 1
+            name = self._pwd_ui_username(old.loginuid, 22)
+            tm = time.strftime("%Y-%m-%d %H:%M",
+                               time.localtime(old.beg_timestamp))
+            num, uiacts = self._history_uiactions(old.trans_data)
+            if old.altered_lt_rpmdb and old.altered_gt_rpmdb:
+                print fmt % (old.tid, name, tm, uiacts, num), "><"
+            elif old.return_code is None:
+                print fmt % (old.tid, name, tm, uiacts, num), "**"
+            elif old.altered_lt_rpmdb:
+                print fmt % (old.tid, name, tm, uiacts, num), " <"
+            elif old.altered_gt_rpmdb:
+                print fmt % (old.tid, name, tm, uiacts, num), "> "
+            else:
+                print fmt % (old.tid, name, tm, uiacts, num)
+        lastdbv = self.history.last()
+        if lastdbv is not None:
+            #  If this is the last transaction, is good and it doesn't
+            # match the current rpmdb ... then mark it as bad.
+            rpmdbv  = self.rpmdb.simpleVersion(main_only=True)[0]
+            if lastdbv.end_rpmdbversion != rpmdbv:
+                errstring = _('Warning: RPMDB has been altered since the last yum transaction.')
+                self.logger.warning(errstring)
+
+    def _history_get_transactions(self, extcmds):
+        if len(extcmds) < 2:
+            self.logger.critical(_('No transaction ID given'))
+            return None
+
+        tids = []
+        try:
+            int(extcmds[1])
+            tids.append(extcmds[1])
+        except ValueError:
+            self.logger.critical(_('Bad transaction ID given'))
+            return None
+
+        old = self.history.old(tids)
+        if not old:
+            self.logger.critical(_('Not found given transaction ID'))
+            return None
+        return old
+    def _history_get_transaction(self, extcmds):
+        old = self._history_get_transactions(extcmds)
+        if old is None:
+            return None
+        if len(old) > 1:
+            self.logger.critical(_('Found more than one transaction ID!'))
+        return old[0]
+
+    def historyInfoCmd(self, extcmds):
+        tids = set()
+        pats = []
+        for tid in extcmds[1:]:
+            try:
+                int(tid)
+                tids.add(tid)
+            except ValueError:
+                pats.append(tid)
+        if pats:
+            tids.update(self.history.search(pats))
+
+        if not tids and len(extcmds) < 2:
+            old = self.history.last()
+            if old is not None:
+                tids.add(old.tid)
+
+        if not tids:
+            self.logger.critical(_('No transaction ID, or package, given'))
+            return 1, ['Failed history info']
+
+        lastdbv = self.history.last()
+        if lastdbv is not None:
+            lasttid = lastdbv.tid
+            lastdbv = lastdbv.end_rpmdbversion
+
+        done = False
+        for tid in self.history.old(tids):
+            if lastdbv is not None and tid.tid == lasttid:
+                #  If this is the last transaction, is good and it doesn't
+                # match the current rpmdb ... then mark it as bad.
+                rpmdbv  = self.rpmdb.simpleVersion(main_only=True)[0]
+                if lastdbv != rpmdbv:
+                    tid.altered_gt_rpmdb = True
+            lastdbv = None
+
+            if done:
+                print "-" * 79
+            done = True
+            self._historyInfoCmd(tid, pats)
+
+    def _historyInfoCmd(self, old, pats=[]):
+        name = self._pwd_ui_username(old.loginuid)
+
+        print _("Transaction ID :"), old.tid
+        begtm = time.ctime(old.beg_timestamp)
+        print _("Begin time     :"), begtm
+        if old.beg_rpmdbversion is not None:
+            if old.altered_lt_rpmdb:
+                print _("Begin rpmdb    :"), old.beg_rpmdbversion, "**"
+            else:
+                print _("Begin rpmdb    :"), old.beg_rpmdbversion
+        if old.end_timestamp is not None:
+            endtm = time.ctime(old.end_timestamp)
+            endtms = endtm.split()
+            if begtm.startswith(endtms[0]): # Chop uninteresting prefix
+                begtms = begtm.split()
+                sofar = 0
+                for i in range(len(endtms)):
+                    if i > len(begtms):
+                        break
+                    if begtms[i] != endtms[i]:
+                        break
+                    sofar += len(begtms[i]) + 1
+                endtm = (' ' * sofar) + endtm[sofar:]
+            diff = _("(%s seconds)") % (old.end_timestamp - old.beg_timestamp)
+            print _("End time       :"), endtm, diff
+        if old.end_rpmdbversion is not None:
+            if old.altered_gt_rpmdb:
+                print _("End rpmdb      :"), old.end_rpmdbversion, "**"
+            else:
+                print _("End rpmdb      :"), old.end_rpmdbversion
+        print _("User           :"), name
+        if old.return_code is None:
+            print _("Return-Code    :"), "**", _("Aborted"), "**"
+        elif old.return_code:
+            print _("Return-Code    :"), _("Failure:"), old.return_code
+        else:
+            print _("Return-Code    :"), _("Success")
+        print _("Transaction performed with  :")
+        for hpkg in old.trans_with:
+            prefix = " " * 4
+            state  = _('Installed')
+            ipkgs = self.rpmdb.searchNames([hpkg.name])
+            ipkgs.sort()
+            if not ipkgs:
+                state  = _('Erased')
+            elif hpkg.pkgtup in (ipkg.pkgtup for ipkg in ipkgs):
+                pass
+            elif ipkgs[-1] > hpkg:
+                state  = _('Updated')
+            elif ipkgs[0] < hpkg:
+                state  = _('Downgraded')
+            else: # multiple versions installed, both older and newer
+                state  = _('Weird')
+            print "%s%-12s %s" % (prefix, state, hpkg)
+        print _("Packages Altered:")
+        self.historyInfoCmdPkgsAltered(old, pats)
+
+    def historyInfoCmdPkgsAltered(self, old, pats=[]):
+        for hpkg in old.trans_data:
+            prefix = " " * 4
+            if not hpkg.done:
+                prefix = " ** "
+
+            highlight = 'normal'
+            if pats:
+                x,m,u = yum.packages.parsePackages([hpkg], pats)
+                if x or m:
+                    highlight = 'bold'
+            (hibeg, hiend) = self._highlight(highlight)
+
+            # To chop the name off we need nevra strings, str(pkg) gives envra
+            # so we have to do it by hand ... *sigh*.
+            if hpkg.epoch == '0':
+                cn = str(hpkg)
+            else:
+                cn = "%s-%s:%s-%s.%s" % (hpkg.name, hpkg.epoch,
+                                         hpkg.version, hpkg.release, hpkg.arch)
+
+            if False: pass
+            elif hpkg.state == 'Update':
+                ln = len(hpkg.name) + 1
+                cn = (" " * ln) + cn[ln:]
+                print "%s%s%-12s%s %s" % (prefix, hibeg, hpkg.state, hiend, cn)
+            elif hpkg.state == 'Downgraded':
+                ln = len(hpkg.name) + 1
+                cn = (" " * ln) + cn[ln:]
+                print "%s%s%-12s%s %s" % (prefix, hibeg, hpkg.state, hiend, cn)
+            elif hpkg.state == 'True-Install':
+                print "%s%s%-12s%s %s" % (prefix, hibeg, "Install", hiend,  cn)
+            else:
+                print "%s%s%-12s%s %s" % (prefix, hibeg, hpkg.state, hiend, cn)
+
+    def historySummaryCmd(self, extcmds):
+        tids, printall = self._history_list_transactions(extcmds)
+        if tids is None:
+            return 1, ['Failed history info']
+
+        fmt = "%-26s | %-19s | %-16s | %-8s"
+        print fmt % ("Login user", "Time", "Action(s)", "Altered")
+        print "-" * 79
+        fmt = "%-26.26s | %-19.19s | %-16s | %8u"
+        data = {'day' : {}, 'week' : {},
+                'fortnight' : {}, 'quarter' : {}, 'half' : {}, 
+                'year' : {}, 'all' : {}}
+        for old in self.history.old(tids):
+            name = self._pwd_ui_username(old.loginuid, 26)
+            period = 'all'
+            now = time.time()
+            if False: pass
+            elif old.beg_timestamp > (now - (24 * 60 * 60)):
+                period = 'day'
+            elif old.beg_timestamp > (now - (24 * 60 * 60 *  7)):
+                period = 'week'
+            elif old.beg_timestamp > (now - (24 * 60 * 60 * 14)):
+                period = 'fortnight'
+            elif old.beg_timestamp > (now - (24 * 60 * 60 *  7 * 13)):
+                period = 'quarter'
+            elif old.beg_timestamp > (now - (24 * 60 * 60 *  7 * 26)):
+                period = 'half'
+            elif old.beg_timestamp > (now - (24 * 60 * 60 * 365)):
+                period = 'year'
+            data[period].setdefault(name, []).append(old)
+        _period2user = {'day'       : _("Last day"),
+                        'week'      : _("Last week"),
+                        'fortnight' : _("Last 2 weeks"), # US default :p
+                        'quarter'   : _("Last 3 months"),
+                        'half'      : _("Last 6 months"),
+                        'year'      : _("Last year"),
+                        'all'       : _("Over a year ago")}
+        done = 0
+        for period in ('day', 'week', 'fortnight', 'quarter', 'half', 'year',
+                       'all'):
+            if not data[period]:
+                continue
+            for name in sorted(data[period]):
+                if not printall and done > 19:
+                    break
+                done += 1
+
+                hpkgs = []
+                for old in data[period][name]:
+                    hpkgs.extend(old.trans_data)
+                count, uiacts = self._history_uiactions(hpkgs)
+                uperiod = _period2user[period]
+                print fmt % (name, uperiod, uiacts, count)
+
 
 class DepSolveProgressCallBack:
     """provides text output callback functions for Dependency Solver callback"""
diff --git a/po/ca.po b/po/ca.po
index 3bef4b5..1869dc2 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -5,6 +5,7 @@
 #
 # Josep Maria Brunetti Fernández <josepb@gmail.com>, 2008
 # Xavier Conde Rueda <xavi.conde@gmail.com>, 2008
+# Josep Torné Llavall <josep.torne@gmail.com>, 2009
 #
 # This file is translated according to the glossary and style guide of
 #   Softcatalà. If you plan to modify this file, please read first the page
@@ -21,8 +22,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: yum\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-27 19:24+0000\n"
-"PO-Revision-Date: 2009-03-31 22:25+0100\n"
+"POT-Creation-Date: 2009-09-05 08:55+0000\n"
+"PO-Revision-Date: 2009-09-06 22:25+0100\n"
 "Last-Translator: Agustí Grau <fedora@softcatala.org>\n"
 "Language-Team: Catalan <fedora@softcatala.net>\n"
 "MIME-Version: 1.0\n"
@@ -31,46 +32,32 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Poedit-Language: Catalan\n"
 
-#: ../callback.py:48
-#: ../output.py:922
-#: ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:938 ../yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "Actualitzant"
 
-#: ../callback.py:49
-#: ../yum/rpmtrans.py:72
+#: ../callback.py:49 ../yum/rpmtrans.py:72
 msgid "Erasing"
-msgstr "S'està esborrant"
-
-#: ../callback.py:50
-#: ../callback.py:51
-#: ../callback.py:53
-#: ../output.py:921
-#: ../yum/rpmtrans.py:73
-#: ../yum/rpmtrans.py:74
-#: ../yum/rpmtrans.py:76
+msgstr "Suprimint"
+
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:937
+#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
 msgid "Installing"
 msgstr "Instal·lant"
 
-#: ../callback.py:52
-#: ../callback.py:58
-#: ../yum/rpmtrans.py:75
+#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
 msgid "Obsoleted"
 msgstr "Obsolet"
 
-#: ../callback.py:54
-#: ../output.py:1029
+#: ../callback.py:54 ../output.py:1061
 msgid "Updated"
 msgstr "Actualitzat"
 
 #: ../callback.py:55
 msgid "Erased"
-msgstr "Esborrat"
+msgstr "Suprimit"
 
-#: ../callback.py:56
-#: ../callback.py:57
-#: ../callback.py:59
-#: ../output.py:1027
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1059
 msgid "Installed"
 msgstr "Instal·lat"
 
@@ -90,75 +77,70 @@ msgstr "Error: estat de sortida invàlid: %s per a %s"
 #: ../callback.py:212
 #, python-format
 msgid "Erased: %s"
-msgstr "Esborrat: %s"
+msgstr "Suprimit: %s"
 
-#: ../callback.py:217
-#: ../output.py:923
+#: ../callback.py:217 ../output.py:939
 msgid "Removing"
-msgstr "S'està esborrant"
+msgstr "Suprimint"
 
-#: ../callback.py:219
-#: ../yum/rpmtrans.py:77
+#: ../callback.py:219 ../yum/rpmtrans.py:77
 msgid "Cleanup"
 msgstr "Neteja"
 
-#: ../cli.py:106
+#: ../cli.py:107
 #, python-format
 msgid "Command \"%s\" already defined"
 msgstr "L'ordre «%s» ja està definida"
 
-#: ../cli.py:118
+#: ../cli.py:119
 msgid "Setting up repositories"
 msgstr "Configurant repositoris"
 
-#: ../cli.py:129
+#: ../cli.py:130
 msgid "Reading repository metadata in from local files"
 msgstr "S'estan llegint les metadades de repositoris des de fitxers locals"
 
-#: ../cli.py:192
-#: ../utils.py:79
+#: ../cli.py:193 ../utils.py:87
 #, python-format
 msgid "Config Error: %s"
 msgstr "Error de configuració: %s"
 
-#: ../cli.py:195
-#: ../cli.py:1224
-#: ../utils.py:82
+#: ../cli.py:196 ../cli.py:1253 ../utils.py:90
 #, python-format
 msgid "Options Error: %s"
 msgstr "Error d'opcions: %s"
 
-#: ../cli.py:223
+#: ../cli.py:225
 #, python-format
 msgid "  Installed: %s-%s at %s"
 msgstr "  Instal·lat: %s-%s a %s"
 
-#: ../cli.py:225
+#: ../cli.py:227
 #, python-format
 msgid "  Built    : %s at %s"
 msgstr "  Muntat    : %s a %s"
 
-#: ../cli.py:227
+#: ../cli.py:229
 #, python-format
 msgid "  Committed: %s at %s"
 msgstr "  Pujat: %s a %s"
 
-#: ../cli.py:266
+#: ../cli.py:268
 msgid "You need to give some command"
 msgstr "Cal que doneu alguna ordre"
 
-#: ../cli.py:309
+#: ../cli.py:311
 msgid "Disk Requirements:\n"
 msgstr "Requeriments de disc:\n"
 
-#: ../cli.py:311
+#: ../cli.py:313
 #, python-format
 msgid "  At least %dMB needed on the %s filesystem.\n"
 msgstr "  Es necessiten almenys %dMB al sistema de fitxers %s.\n"
 
 #. TODO: simplify the dependency errors?
 #. Fixup the summary
-#: ../cli.py:316
+#: ../cli.py:318
 msgid ""
 "Error Summary\n"
 "-------------\n"
@@ -166,58 +148,66 @@ msgstr ""
 "Resum d'errors\n"
 "-------------\n"
 
-#: ../cli.py:359
+#: ../cli.py:361
 msgid "Trying to run the transaction but nothing to do. Exiting."
-msgstr "S'ha intentat executar la transacció però no hi ha cap tasca a fer. S'està sortint."
+msgstr ""
+"S'ha intentat executar la transacció però no hi ha cap tasca a fer. S'està "
+"sortint."
 
-#: ../cli.py:395
+#: ../cli.py:397
 msgid "Exiting on user Command"
 msgstr "S'està sortint de l'ordre de l'usuari"
 
-#: ../cli.py:399
+#: ../cli.py:401
 msgid "Downloading Packages:"
-msgstr "S'estan descarregant els següents paquets:"
+msgstr "S'estan baixant els següents paquets:"
 
-#: ../cli.py:404
+#: ../cli.py:406
 msgid "Error Downloading Packages:\n"
-msgstr "S'ha produït un error descarregant els següents paquets:\n"
+msgstr "S'ha produït un error baixant els següents paquets:\n"
 
-#: ../cli.py:418
-#: ../yum/__init__.py:3520
+#: ../cli.py:420 ../yum/__init__.py:3854
 msgid "Running rpm_check_debug"
 msgstr "S'està executant rpm_check_debug"
 
-#: ../cli.py:421
-#: ../yum/__init__.py:3523
+#: ../cli.py:429 ../yum/__init__.py:3863
+msgid "ERROR You need to update rpm to handle:"
+msgstr "S'ha produït un error. Necessiteu actualitzar el gestor rpm:"
+
+#: ../cli.py:431 ../yum/__init__.py:3866
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "S'ha produït un error amb rpm_check_debug contra depsolve:"
 
-#: ../cli.py:425
+#: ../cli.py:437
+msgid "RPM needs to be updated"
+msgstr "Cal actualitzar l'RPM"
+
+#: ../cli.py:438
 #, python-format
 msgid "Please report this error in %s"
 msgstr "Siusplau, informeu d'aquest error a %s"
 
-#: ../cli.py:431
+#: ../cli.py:444
 msgid "Running Transaction Test"
 msgstr "S'està executant la transacció de prova"
 
-#: ../cli.py:447
+#: ../cli.py:460
 msgid "Finished Transaction Test"
 msgstr "Ha acabat la transacció de prova"
 
-#: ../cli.py:449
+#: ../cli.py:462
 msgid "Transaction Check Error:\n"
 msgstr "S'ha produït un error en la transacció de prova:\n"
 
-#: ../cli.py:456
+#: ../cli.py:469
 msgid "Transaction Test Succeeded"
 msgstr "La transacció de prova ha acabat amb èxit"
 
-#: ../cli.py:477
+#: ../cli.py:491
 msgid "Running Transaction"
 msgstr "S'està executant la transacció"
 
-#: ../cli.py:507
+#: ../cli.py:521
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
@@ -225,184 +215,191 @@ msgstr ""
 "No s'importaran automàticament les claus en una execució desatesa.\n"
 "Feu servir \"-y\" per a importar les claus."
 
-#: ../cli.py:526
-#: ../cli.py:560
+#: ../cli.py:540 ../cli.py:574
 msgid "  * Maybe you meant: "
 msgstr "  * Potser volíeu dir: "
 
-#: ../cli.py:543
-#: ../cli.py:551
+#: ../cli.py:557 ../cli.py:565
 #, python-format
 msgid "Package(s) %s%s%s available, but not installed."
 msgstr "Paquets %s%s%s disponibles, però no instal·lats."
 
-#: ../cli.py:557
-#: ../cli.py:588
-#: ../cli.py:668
+#: ../cli.py:571 ../cli.py:602 ../cli.py:680
 #, python-format
 msgid "No package %s%s%s available."
 msgstr "El paquet %s%s%s no està disponible."
 
-#: ../cli.py:593
-#: ../cli.py:695
+#: ../cli.py:607 ../cli.py:740
 msgid "Package(s) to install"
 msgstr "Paquets a instal·lar"
 
-#: ../cli.py:594
-#: ../cli.py:674
-#: ../cli.py:696
-#: ../yumcommands.py:159
-#: ../yumcommands.py:1013
+#: ../cli.py:608 ../cli.py:686 ../cli.py:719 ../cli.py:741
+#: ../yumcommands.py:157
 msgid "Nothing to do"
 msgstr "Res a fer"
 
-#: ../cli.py:627
+#: ../cli.py:641
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d paquets marcats per a actualitzar"
 
-#: ../cli.py:630
+#: ../cli.py:644
 msgid "No Packages marked for Update"
 msgstr "No hi ha cap paquet marcat per a actualitzar"
 
-#: ../cli.py:644
+#: ../cli.py:658
 #, python-format
 msgid "%d packages marked for removal"
-msgstr "%d paquets marcats per a esborrar"
+msgstr "%d paquets marcats per a suprimir"
 
-#: ../cli.py:647
+#: ../cli.py:661
 msgid "No Packages marked for removal"
-msgstr "No hi ha cap paquet marcat per a esborrar"
+msgstr "No hi ha cap paquet marcat per a suprimir"
 
-#: ../cli.py:673
+#: ../cli.py:685
 msgid "Package(s) to downgrade"
 msgstr "Paquets per a desactualitzar"
 
-#: ../cli.py:686
+#: ../cli.py:709
+#, python-format
+msgid " (from %s)"
+msgstr " (des de %s)"
+
+#: ../cli.py:711
+#, python-format
+msgid "Installed package %s%s%s%s not available."
+msgstr "El paquet instal·lat %s%s%s%s no està disponible."
+
+#: ../cli.py:718
+msgid "Package(s) to reinstall"
+msgstr "Paquets a reinstal·lar"
+
+#: ../cli.py:731
 msgid "No Packages Provided"
 msgstr "No s'ha proporcionat cap paquet"
 
-#: ../cli.py:741
-msgid "Matching packages for package list to user args"
-msgstr "S'està comparant els paquets per a la llista de paquets amb els arguments de l'usuari"
-
-#: ../cli.py:790
+#: ../cli.py:815
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "Avís: no s'ha trobat cap coincidència per a: %s"
 
-#: ../cli.py:793
+#: ../cli.py:818
 msgid "No Matches found"
 msgstr "No s'ha trobat cap coincidència"
 
-#: ../cli.py:832
+#: ../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 ""
-"Avís: les versions 3.0.x del yum comproven incorrectament els noms de fitxer.\n"
+"Avís: les versions 3.0.x del yum comproven incorrectament els noms de "
+"fitxer.\n"
 " Podeu usar \"%s*/%s%s\" i/o \"%s*bin/%s%s\" per obtenir aquest comportament"
 
-#: ../cli.py:848
+#: ../cli.py:873
 #, python-format
 msgid "No Package Found for %s"
 msgstr "No s'ha trobat cap paquet per a %s"
 
-#: ../cli.py:860
+#: ../cli.py:885
 msgid "Cleaning up Everything"
 msgstr "S'està netejant tot"
 
-#: ../cli.py:874
+#: ../cli.py:899
 msgid "Cleaning up Headers"
 msgstr "S'estan netejant les capçaleres"
 
-#: ../cli.py:877
+#: ../cli.py:902
 msgid "Cleaning up Packages"
 msgstr "S'estan netejant els paquets"
 
-#: ../cli.py:880
+#: ../cli.py:905
 msgid "Cleaning up xml metadata"
 msgstr "S'estan netejant les metadades xml"
 
-#: ../cli.py:883
+#: ../cli.py:908
 msgid "Cleaning up database cache"
 msgstr "S'està netejant la memòria cau de la base de dades"
 
-#: ../cli.py:886
+#: ../cli.py:911
 msgid "Cleaning up expire-cache metadata"
 msgstr "S'està netejant la memòria cau de metadades que han vençut"
 
-#: ../cli.py:889
+#: ../cli.py:914
 msgid "Cleaning up plugins"
 msgstr "S'estan netejant els connectors"
 
-#: ../cli.py:914
+#: ../cli.py:939
 msgid "Installed Groups:"
 msgstr "Grups instal·lats:"
 
-#: ../cli.py:926
+#: ../cli.py:951
 msgid "Available Groups:"
 msgstr "Grups disponibles:"
 
-#: ../cli.py:936
+#: ../cli.py:961
 msgid "Done"
 msgstr "Fet"
 
-#: ../cli.py:947
-#: ../cli.py:965
-#: ../cli.py:971
-#: ../yum/__init__.py:2421
+#: ../cli.py:972 ../cli.py:990 ../cli.py:996 ../yum/__init__.py:2560
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Avís: El grup %s no existeix."
 
-#: ../cli.py:975
+#: ../cli.py:1000
 msgid "No packages in any requested group available to install or update"
-msgstr "No hi ha cap paquet disponible per a instal·lar o actualitzar en els grups sol·licitats"
+msgstr ""
+"No hi ha cap paquet disponible per a instal·lar o actualitzar en els grups "
+"sol·licitats"
 
-#: ../cli.py:977
+#: ../cli.py:1002
 #, python-format
 msgid "%d Package(s) to Install"
 msgstr "%d paquets a instal·lar"
 
-#: ../cli.py:987
-#: ../yum/__init__.py:2433
+#: ../cli.py:1012 ../yum/__init__.py:2572
 #, python-format
 msgid "No group named %s exists"
 msgstr "No existeix cap grup anomenat %s"
 
-#: ../cli.py:993
+#: ../cli.py:1018
 msgid "No packages to remove from groups"
-msgstr "No hi ha cap paquet a esborrar dels grups"
+msgstr "No hi ha cap paquet a suprimir dels grups"
 
-#: ../cli.py:995
+#: ../cli.py:1020
 #, python-format
 msgid "%d Package(s) to remove"
-msgstr "%d paquets a esborrar"
+msgstr "%d paquets a suprimir"
 
-#: ../cli.py:1037
+#: ../cli.py:1062
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "El paquet %s ja està instal·lat, s'ometrà"
 
-#: ../cli.py:1048
+#: ../cli.py:1073
 #, python-format
 msgid "Discarding non-comparable pkg %s.%s"
 msgstr "S'està descartant el paquet no comparable %s.%s"
 
 #. we've not got any installed that match n or n+a
-#: ../cli.py:1074
+#: ../cli.py:1099
 #, python-format
 msgid "No other %s installed, adding to list for potential install"
-msgstr "No hi ha cap altre %s instal·lat, s'afegeix a la llista per a una possible instal·lació"
+msgstr ""
+"No hi ha cap altre %s instal·lat, s'afegeix a la llista per a una possible "
+"instal·lació"
 
-#: ../cli.py:1093
+#: ../cli.py:1119
+msgid "Plugin Options"
+msgstr "Opcions del connector"
+
+#: ../cli.py:1127
 #, python-format
 msgid "Command line error: %s"
 msgstr "Error en la línia d'ordres: %s"
 
-#: ../cli.py:1106
+#: ../cli.py:1140
 #, python-format
 msgid ""
 "\n"
@@ -413,253 +410,259 @@ msgstr ""
 "\n"
 "%s: l'opció %s necessita un argument"
 
-#: ../cli.py:1164
+#: ../cli.py:1193
 msgid "--color takes one of: auto, always, never"
 msgstr "--color pren un valor d'entre: auto, always, never"
 
-#: ../cli.py:1266
+#: ../cli.py:1300
 msgid "show this help message and exit"
 msgstr "mostra el missatge d'ajuda i surt"
 
-#: ../cli.py:1270
+#: ../cli.py:1304
 msgid "be tolerant of errors"
 msgstr "sigues tolerant amb els errors"
 
-#: ../cli.py:1272
+#: ../cli.py:1306
 msgid "run entirely from cache, don't update cache"
 msgstr "executa totalment des de la memòria cau, no l'actualitzis"
 
-#: ../cli.py:1274
+#: ../cli.py:1308
 msgid "config file location"
 msgstr "ubicació del fitxer de configuració"
 
-#: ../cli.py:1276
+#: ../cli.py:1310
 msgid "maximum command wait time"
 msgstr "temps màxim d'espera d'ordres"
 
-#: ../cli.py:1278
+#: ../cli.py:1312
 msgid "debugging output level"
 msgstr "nivell de sortida de depuració"
 
-#: ../cli.py:1282
+#: ../cli.py:1316
 msgid "show duplicates, in repos, in list/search commands"
 msgstr "mostra duplicats, en repositoris, en les ordres per llistar i cercar"
 
-#: ../cli.py:1284
+#: ../cli.py:1318
 msgid "error output level"
 msgstr "nivell de sortida d'error"
 
-#: ../cli.py:1287
+#: ../cli.py:1321
 msgid "quiet operation"
 msgstr "operació silenciosa"
 
-#: ../cli.py:1289
+#: ../cli.py:1323
 msgid "verbose operation"
 msgstr "operació descriptiva"
 
-#: ../cli.py:1291
+#: ../cli.py:1325
 msgid "answer yes for all questions"
 msgstr "respon sí a totes les preguntes"
 
-#: ../cli.py:1293
+#: ../cli.py:1327
 msgid "show Yum version and exit"
 msgstr "mostra la versió del Yum i surt"
 
-#: ../cli.py:1294
+#: ../cli.py:1328
 msgid "set install root"
 msgstr "estableix l'arrel de la instal·lació"
 
-#: ../cli.py:1298
+#: ../cli.py:1332
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "habilita un o més repositoris (es permeten caràcters de reemplaçament)"
 
-#: ../cli.py:1302
+#: ../cli.py:1336
 msgid "disable one or more repositories (wildcards allowed)"
-msgstr "deshabilita un o més repositoris (es permeten caràcters de reemplaçament)"
+msgstr ""
+"deshabilita un o més repositoris (es permeten caràcters de reemplaçament)"
 
-#: ../cli.py:1305
+#: ../cli.py:1339
 msgid "exclude package(s) by name or glob"
 msgstr "exclou els paquets per nom o expressió regular del glob"
 
-#: ../cli.py:1307
+#: ../cli.py:1341
 msgid "disable exclude from main, for a repo or for everything"
 msgstr "inhabilita l'exclusió des de l'inici, per a un repositori o per a tot"
 
-#: ../cli.py:1310
+#: ../cli.py:1344
 msgid "enable obsoletes processing during updates"
 msgstr "habilita el processament d'obsolets durant les actualitzacions"
 
-#: ../cli.py:1312
+#: ../cli.py:1346
 msgid "disable Yum plugins"
 msgstr "inhabilita els connectors de Yum"
 
-#: ../cli.py:1314
+#: ../cli.py:1348
 msgid "disable gpg signature checking"
 msgstr "inhabilita la comprobació de signatures gpg"
 
-#: ../cli.py:1316
+#: ../cli.py:1350
 msgid "disable plugins by name"
 msgstr "inhabilita els connectors pel seu nom"
 
-#: ../cli.py:1319
+#: ../cli.py:1353
 msgid "enable plugins by name"
 msgstr "habilita els connectors pel seu nom"
 
-#: ../cli.py:1322
+#: ../cli.py:1356
 msgid "skip packages with depsolving problems"
 msgstr "omet paquets amb problemes de resolució de dependències"
 
-#: ../cli.py:1324
+#: ../cli.py:1358
 msgid "control whether color is used"
 msgstr "controla sempre que s'usi color"
 
-#: ../output.py:298
+#: ../output.py:303
 msgid "Jan"
 msgstr "Gen"
 
-#: ../output.py:298
+#: ../output.py:303
 msgid "Feb"
 msgstr "Feb"
 
-#: ../output.py:298
+#: ../output.py:303
 msgid "Mar"
 msgstr "Mar"
 
-#: ../output.py:298
+#: ../output.py:303
 msgid "Apr"
 msgstr "Abr"
 
-#: ../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 "Ago"
 
-#: ../output.py:299
+#: ../output.py:304
 msgid "Sep"
 msgstr "Set"
 
-#: ../output.py:299
+#: ../output.py:304
 msgid "Oct"
 msgstr "Oct"
 
-#: ../output.py:299
+#: ../output.py:304
 msgid "Nov"
 msgstr "Nov"
 
-#: ../output.py:299
+#: ../output.py:304
 msgid "Dec"
 msgstr "Des"
 
-#: ../output.py:309
+#: ../output.py:314
 msgid "Trying other mirror."
 msgstr "S'està intentant un altre servidor rèplica."
 
-#: ../output.py:525
+#: ../output.py:536
 #, python-format
 msgid "Name       : %s%s%s"
 msgstr "Nom        : %s%s%s"
 
-#: ../output.py:526
+#: ../output.py:537
 #, python-format
 msgid "Arch       : %s"
 msgstr "Arq        : %s"
 
-#: ../output.py:528
+#: ../output.py:539
 #, python-format
 msgid "Epoch      : %s"
 msgstr "Època      : %s"
 
-#: ../output.py:529
+#: ../output.py:540
 #, python-format
 msgid "Version    : %s"
 msgstr "Versió     : %s"
 
-#: ../output.py:530
+#: ../output.py:541
 #, python-format
 msgid "Release    : %s"
 msgstr "Release    : %s"
 
-#: ../output.py:531
+#: ../output.py:542
 #, python-format
 msgid "Size       : %s"
 msgstr "Mida       : %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 "Des del repo  : %s"
+
+#: ../output.py:547
 #, python-format
 msgid "Committer  : %s"
 msgstr "Desenvolupador  : %s"
 
-#: ../output.py:535
+#: ../output.py:548
 #, python-format
 msgid "Committime : %s"
 msgstr "Pujat      : %s"
 
-#: ../output.py:536
+#: ../output.py:549
 #, python-format
 msgid "Buildtime  : %s"
 msgstr "Temps de creació  : %s"
 
-#: ../output.py:538
+#: ../output.py:551
 #, python-format
 msgid "Installtime: %s"
 msgstr "Temps d'instal·lació: %s"
 
-#: ../output.py:539
+#: ../output.py:552
 msgid "Summary    : "
 msgstr "Resum      : "
 
-#: ../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 "Llicència  : %s"
 
-#: ../output.py:543
+#: ../output.py:556
 msgid "Description: "
 msgstr "Descripció: "
 
-#: ../output.py:611
+#: ../output.py:624
 msgid "y"
 msgstr "s"
 
-#: ../output.py:611
+#: ../output.py:624
 msgid "yes"
 msgstr "sí"
 
-#: ../output.py:612
+#: ../output.py:625
 msgid "n"
 msgstr "n"
 
-#: ../output.py:612
+#: ../output.py:625
 msgid "no"
 msgstr "no"
 
 # REMEMBER to Translate [Y/N] to the current locale
-#: ../output.py:616
+#: ../output.py:629
 msgid "Is this ok [y/N]: "
 msgstr "És correcte [s/N]: "
 
-#: ../output.py:704
+#: ../output.py:720
 #, python-format
 msgid ""
 "\n"
@@ -668,134 +671,142 @@ msgstr ""
 "\n"
 "Grup: %s"
 
-#: ../output.py:708
+#: ../output.py:724
 #, python-format
 msgid " Group-Id: %s"
 msgstr " Id de Grup: %s"
 
-#: ../output.py:713
+#: ../output.py:729
 #, python-format
 msgid " Description: %s"
 msgstr " Descripció: %s"
 
-#: ../output.py:715
+#: ../output.py:731
 msgid " Mandatory Packages:"
 msgstr " Paquets obligatoris:"
 
-#: ../output.py:716
+#: ../output.py:732
 msgid " Default Packages:"
 msgstr " Paquets per defecte:"
 
-#: ../output.py:717
+#: ../output.py:733
 msgid " Optional Packages:"
 msgstr " Paquets opcionals:"
 
-#: ../output.py:718
+#: ../output.py:734
 msgid " Conditional Packages:"
 msgstr " Paquets condicionals:"
 
-#: ../output.py:738
+#: ../output.py:754
 #, python-format
 msgid "package: %s"
 msgstr "paquet: %s"
 
-#: ../output.py:740
+#: ../output.py:756
 msgid "  No dependencies for this package"
 msgstr "  No hi ha dependències per a aquest paquet"
 
-#: ../output.py:745
+#: ../output.py:761
 #, python-format
 msgid "  dependency: %s"
 msgstr "  dependència: %s"
 
-#: ../output.py:747
+#: ../output.py:763
 msgid "   Unsatisfied dependency"
 msgstr "   Dependència insatisfeta"
 
-#: ../output.py:819
+#: ../output.py:835
 #, python-format
 msgid "Repo        : %s"
 msgstr "Repo        : %s"
 
-#: ../output.py:820
+#: ../output.py:836
 msgid "Matched from:"
 msgstr "Coincidències amb:"
 
-#: ../output.py:828
+#: ../output.py:845
 msgid "Description : "
 msgstr "Descripció  : "
 
-#: ../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 "Llicència   : %s"
 
-#: ../output.py:837
+#: ../output.py:854
 #, python-format
 msgid "Filename    : %s"
 msgstr "Fitxer      : %s"
 
-#: ../output.py:841
+#: ../output.py:858
 msgid "Other       : "
 msgstr "Altre       : "
 
-#: ../output.py:874
+#: ../output.py:891
 msgid "There was an error calculating total download size"
 msgstr "S'ha produït un error en calcular la mida total de la descàrrega"
 
-#: ../output.py:879
+#: ../output.py:896
 #, python-format
 msgid "Total size: %s"
 msgstr "Mida total: %s"
 
-#: ../output.py:882
+#: ../output.py:899
 #, python-format
 msgid "Total download size: %s"
 msgstr "Mida total de la descàrrega: %s"
 
-#: ../output.py:924
+#: ../output.py:940
+#, 
+msgid "Reinstalling"
+msgstr "Tornant a instal·lar"
+
+#: ../output.py:941
+msgid "Downgrading"
+msgstr "Desfent l'actualització"
+
+#: ../output.py:942
 msgid "Installing for dependencies"
 msgstr "S'està instal·lant per dependències"
 
-#: ../output.py:925
+#: ../output.py:943
 msgid "Updating for dependencies"
 msgstr "S'està actualitzant degut a les dependències"
 
-#: ../output.py:926
+#: ../output.py:944
 msgid "Removing for dependencies"
-msgstr "S'està esborrant degut a les dependències"
+msgstr "S'està suprimint degut a les dependències"
 
-#: ../output.py:933
-#: ../output.py:1031
+#: ../output.py:951 ../output.py:1063
 msgid "Skipped (dependency problems)"
 msgstr "Ignorat degut a problemes de dependències:"
 
-#: ../output.py:954
+#: ../output.py:974
 msgid "Package"
 msgstr "Paquet"
 
-#: ../output.py:954
+#: ../output.py:974
 msgid "Arch"
 msgstr "Arq"
 
-#: ../output.py:955
+#: ../output.py:975
 msgid "Version"
 msgstr "Versió"
 
-#: ../output.py:955
+#: ../output.py:975
 msgid "Repository"
 msgstr "Repositori"
 
-#: ../output.py:956
+#: ../output.py:976
 msgid "Size"
 msgstr "Mida"
 
-#: ../output.py:968
+#: ../output.py:988
 #, python-format
 msgid ""
 "     replacing  %s%s%s.%s %s\n"
@@ -804,135 +815,164 @@ msgstr ""
 "     s'està reemplaçant  %s%s%s.%s %s\n"
 "\n"
 
-#: ../output.py:977
+#: ../output.py:997
 #, 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"
-"Resum de transaccions\n"
+"Resum de la transacció\n"
 "%s\n"
-"Instal·la  %5.5s paquets         \n"
-"Actualitza %5.5s paquets         \n"
-"Esborra    %5.5s paquets         \n"
 
-#: ../output.py:1025
+#: ../output.py:1004
+#, python-format
+msgid ""
+"Install   %5.5s Package(s)\n"
+"Upgrade   %5.5s Package(s)\n"
+msgstr ""
+"Instal·la     %5.5s paquets\n"
+"Actualitza    %5.5s paquets\n"
+
+
+#: ../output.py:1013
+#, python-format //paraula downgrade
+msgid ""
+"Remove    %5.5s Package(s)\n"
+"Reinstall %5.5s Package(s)\n"
+"Downgrade %5.5s Package(s)\n"
+msgstr ""
+"Suprimeix     %5.5s paquets\n"
+"Reinstal·la   %5.5s paquets\n"
+"Desactualitza %5.5s paquets\n"
+
+#: ../output.py:1057
 msgid "Removed"
-msgstr "Esborrat"
+msgstr "Suprimit"
 
-#: ../output.py:1026
+#: ../output.py:1058
 msgid "Dependency Removed"
-msgstr "Dependència esborrada"
+msgstr "Dependència suprimida"
 
-#: ../output.py:1028
+#: ../output.py:1060
 msgid "Dependency Installed"
 msgstr "Dependència instal·lada"
 
-#: ../output.py:1030
+#: ../output.py:1062
 msgid "Dependency Updated"
 msgstr "Dependència actualitzada"
 
-#: ../output.py:1032
+#: ../output.py:1064
 msgid "Replaced"
 msgstr "Reemplaçat"
 
-#: ../output.py:1033
+#: ../output.py:1065
 msgid "Failed"
 msgstr "Ha fallat"
 
 #. Delta between C-c's so we treat as exit
-#: ../output.py:1099
+#: ../output.py:1131
 msgid "two"
 msgstr "dos"
 
-#: ../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:1142
 #, 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"
-" S'ha cancel·lat la descàrrega actual, %sinterromp (crtl-c) de nou%s en %s%s%s segons per a sortir.\n"
+" S'ha cancel·lat la descàrrega actual, %sinterromp (crtl-c) de nou%s en %s%s%s "
+"segons\n"
+"per a sortir.\n"
 
-#: ../output.py:1116
+#: ../output.py:1153
 msgid "user interrupt"
 msgstr "interrupció de l'usuari"
 
-#: ../output.py:1132
+#: ../output.py:1171
 msgid "Total"
 msgstr "Total"
 
-#: ../output.py:1146
+#: ../output.py:1186
 msgid "installed"
 msgstr "instal·lat"
 
-#: ../output.py:1147
+#: ../output.py:1187
 msgid "updated"
 msgstr "actualitzat"
 
-#: ../output.py:1148
+#: ../output.py:1188
 msgid "obsoleted"
 msgstr "obsolet"
 
-#: ../output.py:1149
+#: ../output.py:1189
 msgid "erased"
-msgstr "esborrat"
+msgstr "suprimit"
 
-#: ../output.py:1153
+#: ../output.py:1193
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> Paquet %s.%s %s:%s-%s passarà a ser %s"
 
-#: ../output.py:1160
+#: ../output.py:1200
 msgid "--> Running transaction check"
 msgstr "--> S'està executant la transacció de prova"
 
-#: ../output.py:1165
+#: ../output.py:1205
 msgid "--> Restarting Dependency Resolution with new changes."
-msgstr "--> Tornant a calcular la resolució de dependències amb els nous canvis."
+msgstr ""
+"--> Tornant a calcular la resolució de dependències amb els nous canvis."
 
-#: ../output.py:1170
+#: ../output.py:1210
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Ha finalitzat la resolució de dependències"
 
-#: ../output.py:1175
+#: ../output.py:1215 ../output.py:1220
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> S'està processant la dependència %s per al paquet: %s"
 
-#: ../output.py:1180
+#: ../output.py:1224
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Dependència no resolta: %s"
 
-#: ../output.py:1186
+#: ../output.py:1230 ../output.py:1235
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> S'està processant el conflicte: %s té un conflicte amb %s"
 
-#: ../output.py:1189
+#: ../output.py:1239
 msgid "--> Populating transaction set with selected packages. Please wait."
-msgstr "--> S'està poblant la transacció amb els paquets sel·leccionats. Si us plau, espereu."
+msgstr ""
+"--> S'està poblant la transacció amb els paquets sel·leccionats. Si us plau, "
+"espereu."
 
-#: ../output.py:1193
+#: ../output.py:1243
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
-msgstr "---> S'està descarregant la capçalera per a %s per a empaquetar dins de la transacció de prova."
+msgstr ""
+"---> S'està baixant la capçalera per a %s per a empaquetar dins de la "
+"transacció de prova."
 
-#: ../yumcommands.py:41
+#: ../yumcommands.py:40
 msgid "You need to be root to perform this command."
 msgstr "Heu de ser root per a executar aquesta ordre."
 
-#: ../yumcommands.py:48
+#: ../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"
+"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"
@@ -945,8 +985,10 @@ msgid ""
 "For more information contact your distribution or package provider.\n"
 msgstr ""
 "\n"
-"Heu habilitat la comprovació de paquets utilitzant claus GPG. És una bona opció. \n"
-"No obstant, no teniu cap clau pública GPG instal·lada. Necessiteu descarregar\n"
+"Heu habilitat la comprovació de paquets utilitzant claus GPG. És una bona "
+"opció. \n"
+"No obstant, no teniu cap clau pública GPG instal·lada. Necessiteu "
+"baixar\n"
 "les claus per als paquets que desitgeu instal·lar i instal·lar-les.\n"
 "Podeu fer-ho executant l'ordre:\n"
 "    rpm --import clau.pública.gpg\n"
@@ -956,163 +998,164 @@ msgstr ""
 "per a un repositori en l'opció 'gpgkey' en la secció d'un repositori i yum \n"
 "la instal·larà per vosaltres.\n"
 "\n"
-"Per a més informació contacteu el vostre distribuïdor o proveïdor de paquets.\n"
+"Per a més informació contacteu el vostre distribuïdor o proveïdor de "
+"paquets.\n"
 
-#: ../yumcommands.py:68
+#: ../yumcommands.py:67
 #, python-format
 msgid "Error: Need to pass a list of pkgs to %s"
 msgstr "Error: es necessita passar una llista de paquets a %s"
 
-#: ../yumcommands.py:74
+#: ../yumcommands.py:73
 msgid "Error: Need an item to match"
 msgstr "Error: es necessita algun element per comparar"
 
-#: ../yumcommands.py:80
+#: ../yumcommands.py:79
 msgid "Error: Need a group or list of groups"
 msgstr "Error: es necessita un grup o una llista de grups"
 
-#: ../yumcommands.py:89
+#: ../yumcommands.py:88
 #, python-format
 msgid "Error: clean requires an option: %s"
 msgstr "Error: la neteja requereix una opció: %s"
 
-#: ../yumcommands.py:94
+#: ../yumcommands.py:93
 #, python-format
 msgid "Error: invalid clean argument: %r"
 msgstr "Error: argument invàlid per a la neteja: %r"
 
-#: ../yumcommands.py:107
+#: ../yumcommands.py:106
 msgid "No argument to shell"
 msgstr "No hi ha arguments per a l'intèrpret d'ordres"
 
-#: ../yumcommands.py:110
+#: ../yumcommands.py:108
 #, python-format
 msgid "Filename passed to shell: %s"
 msgstr "Nom del fitxer passat a l'intèrpret d'ordres: %s"
 
-#: ../yumcommands.py:114
+#: ../yumcommands.py:112
 #, python-format
 msgid "File %s given as argument to shell does not exist."
 msgstr "El fitxer %s donat com a argument a l'intèrpret d'ordres no existeix."
 
-#: ../yumcommands.py:120
+#: ../yumcommands.py:118
 msgid "Error: more than one file given as argument to shell."
-msgstr "Error: s'ha donat més d'un fitxer com a argument per a l'intèrpret d'ordres."
+msgstr ""
+"Error: s'ha donat més d'un fitxer com a argument per a l'intèrpret d'ordres."
 
-#: ../yumcommands.py:169
+#: ../yumcommands.py:167
 msgid "PACKAGE..."
 msgstr "PAQUET..."
 
-#: ../yumcommands.py:172
+#: ../yumcommands.py:170
 msgid "Install a package or packages on your system"
 msgstr "Instal·la un o més paquets al vostre sistema"
 
-#: ../yumcommands.py:180
+#: ../yumcommands.py:178
 msgid "Setting up Install Process"
 msgstr "S'està preparant el procés d'instal·lació"
 
-#: ../yumcommands.py:191
+#: ../yumcommands.py:189
 msgid "[PACKAGE...]"
 msgstr "[PAQUET...]"
 
-#: ../yumcommands.py:194
+#: ../yumcommands.py:192
 msgid "Update a package or packages on your system"
 msgstr "S'ha actualitzat un o més paquets al vostre sistema"
 
-#: ../yumcommands.py:201
+#: ../yumcommands.py:199
 msgid "Setting up Update Process"
 msgstr "S'està preparant el procés d'actualització"
 
-#: ../yumcommands.py:243
+#: ../yumcommands.py:244
 msgid "Display details about a package or group of packages"
 msgstr "Mostra detalls sobre un paquet o un grup de paquets"
 
-#: ../yumcommands.py:292
+#: ../yumcommands.py:293
 msgid "Installed Packages"
 msgstr "Paquets instal·lats"
 
-#: ../yumcommands.py:300
+#: ../yumcommands.py:301
 msgid "Available Packages"
 msgstr "Paquets disponibles"
 
-#: ../yumcommands.py:304
+#: ../yumcommands.py:305
 msgid "Extra Packages"
 msgstr "Paquets extra"
 
-#: ../yumcommands.py:308
+#: ../yumcommands.py:309
 msgid "Updated Packages"
 msgstr "Paquets actualitzats"
 
 #. This only happens in verbose mode
-#: ../yumcommands.py:316
-#: ../yumcommands.py:323
-#: ../yumcommands.py:600
+#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:600
 msgid "Obsoleting Packages"
 msgstr "Paquets obsolets"
 
-#: ../yumcommands.py:325
+#: ../yumcommands.py:326
 msgid "Recently Added Packages"
 msgstr "Paquets recentment afegits"
 
-#: ../yumcommands.py:332
+#: ../yumcommands.py:333
 msgid "No matching Packages to list"
 msgstr "No hi ha paquets coincidents per llistar"
 
-#: ../yumcommands.py:346
+#: ../yumcommands.py:347
 msgid "List a package or groups of packages"
 msgstr "Llista un paquet o un grup de paquets"
 
-#: ../yumcommands.py:358
+#: ../yumcommands.py:359
 msgid "Remove a package or packages from your system"
-msgstr "Esborra un o més paquets del vostre sistema"
+msgstr "Suprimeix un o més paquets del vostre sistema"
 
-#: ../yumcommands.py:365
+#: ../yumcommands.py:366
 msgid "Setting up Remove Process"
-msgstr "S'està preparant el procés d'esborrat"
+msgstr "S'està preparant el procés de supressió"
 
-#: ../yumcommands.py:379
+#: ../yumcommands.py:380
 msgid "Setting up Group Process"
 msgstr "S'està preparant el procés de grup"
 
-#: ../yumcommands.py:385
+#: ../yumcommands.py:386
 msgid "No Groups on which to run command"
 msgstr "No hi ha cap grup on executar l'ordre"
 
-#: ../yumcommands.py:398
+#: ../yumcommands.py:399
 msgid "List available package groups"
 msgstr "Llista els grups de paquets disponibles"
 
-#: ../yumcommands.py:415
+#: ../yumcommands.py:416
 msgid "Install the packages in a group on your system"
 msgstr "Instal·la els paquets en un grup en el vostre sistema"
 
-#: ../yumcommands.py:437
+#: ../yumcommands.py:438
 msgid "Remove the packages in a group from your system"
-msgstr "Esborra els paquets en un grup en el vostre sistema"
+msgstr "Suprimeix els paquets en un grup en el vostre sistema"
 
-#: ../yumcommands.py:464
+#: ../yumcommands.py:465
 msgid "Display details about a package group"
 msgstr "Mostra detalls sobre un grup de paquets"
 
-#: ../yumcommands.py:488
+#: ../yumcommands.py:489
 msgid "Generate the metadata cache"
 msgstr "Genera les metadades de la memòria cau"
 
-#: ../yumcommands.py:494
+#: ../yumcommands.py:495
 msgid "Making cache files for all metadata files."
-msgstr "S'estan fent els fitxers de memòria cau per a tots els fitxers de metadades."
+msgstr ""
+"S'estan fent els fitxers de memòria cau per a tots els fitxers de metadades."
 
-#: ../yumcommands.py:495
+#: ../yumcommands.py:496
 msgid "This may take a while depending on the speed of this computer"
 msgstr "Això pot trigar una estona depenent de la velocitat d'aquest ordinador"
 
-#: ../yumcommands.py:516
+#: ../yumcommands.py:517
 msgid "Metadata Cache Created"
 msgstr "S'han creat les metadades per a la memòria cau"
 
-#: ../yumcommands.py:530
+#: ../yumcommands.py:531
 msgid "Remove cached data"
-msgstr "S'han esborrat les dades de la memòria cau"
+msgstr "S'han suprimit les dades de la memòria cau"
 
 #: ../yumcommands.py:551
 msgid "Find what package provides the given value"
@@ -1174,99 +1217,122 @@ msgstr "S'estan trobant dependències: "
 msgid "Display the configured software repositories"
 msgstr "Mostra els repositoris de programari configurats"
 
-#: ../yumcommands.py:803
-#: ../yumcommands.py:804
+#: ../yumcommands.py:803 ../yumcommands.py:804
 msgid "enabled"
 msgstr "habilitat"
 
-#: ../yumcommands.py:812
-#: ../yumcommands.py:813
+#: ../yumcommands.py:812 ../yumcommands.py:813
 msgid "disabled"
 msgstr "deshabilitat"
 
 #: ../yumcommands.py:827
-msgid "Repo-id     : "
-msgstr "Id-repo         : "
+msgid "Repo-id      : "
+msgstr "Id-repo           : "
 
 #: ../yumcommands.py:828
-msgid "Repo-name   : "
-msgstr "Nom-repo        : "
+msgid "Repo-name    : "
+msgstr "Nom-repo          : "
 
 #: ../yumcommands.py:829
-msgid "Repo-status : "
-msgstr "Estat-repo      : "
+msgid "Repo-status  : "
+msgstr "Estat-repo        : "
 
 #: ../yumcommands.py:831
 msgid "Repo-revision: "
-msgstr "Repo-revisió    : "
+msgstr "Repo-revisió      : "
 
 #: ../yumcommands.py:835
-msgid "Repo-tags   : "
-msgstr "Repo-etiquetes  : "
+msgid "Repo-tags    : "
+msgstr "Repo-etiquetes    : "
 
 #: ../yumcommands.py:841
 msgid "Repo-distro-tags: "
-msgstr "Repo-etiq-dist  : "
+msgstr "Repo-etiq-dist    : "
 
 #: ../yumcommands.py:846
-msgid "Repo-updated: "
-msgstr "Repo-actualitzat: "
+msgid "Repo-updated : "
+msgstr "Repo-actualitzat  : "
 
 #: ../yumcommands.py:848
-msgid "Repo-pkgs   : "
-msgstr "Paquets-repo    : "
+msgid "Repo-pkgs    : "
+msgstr "Paquets-repo      : "
 
 #: ../yumcommands.py:849
-msgid "Repo-size   : "
-msgstr "Mida-repo       : "
+msgid "Repo-size    : "
+msgstr "Mida-repo         : "
 
 #: ../yumcommands.py:856
-msgid "Repo-baseurl: "
-msgstr "URL-base-repo   : "
+msgid "Repo-baseurl : "
+msgstr "URL-base-repo     : "
 
-#: ../yumcommands.py:860
+#: ../yumcommands.py:864
 msgid "Repo-metalink: "
-msgstr "Repo-metaenllaç : "
-
-#: ../yumcommands.py:863
-msgid "Repo-mirrors: "
-msgstr "Miralls-repo    : "
+msgstr "Repo-metaenllaç   : "
 
-#: ../yumcommands.py:867
-msgid "Repo-exclude: "
-msgstr "Repo-exclou     : "
+#: ../yumcommands.py:868
+#,
+msgid "  Updated    : "
+msgstr "  Actualitzat     : "
 
 #: ../yumcommands.py:871
-msgid "Repo-include: "
-msgstr "Repo-inclou     : "
+msgid "Repo-mirrors : "
+msgstr "Miralls-repo      : "
+
+#: ../yumcommands.py:875 ../yummain.py:133
+msgid "Unknown"
+msgstr "Desconegut"
+
+#: ../yumcommands.py:881
+#, python-format
+msgid "Never (last: %s)"
+msgstr "Mai (últim: %s)"
+
+#: ../yumcommands.py:883
+#, python-format
+msgid "Instant (last: %s)"
+msgstr "Temps d'instal·lació (últim: %s)"
+
+#: ../yumcommands.py:886
+#, python-format
+msgid "%s second(s) (last: %s)"
+msgstr "%s segons (últim: %s)"
+
+#: ../yumcommands.py:888
+msgid "Repo-expire  : "
+msgstr "Venç-repo   : "
+
+#: ../yumcommands.py:891
+msgid "Repo-exclude : "
+msgstr "Repo-exclou : "
+
+#: ../yumcommands.py:895
+msgid "Repo-include : "
+msgstr "Repo-inclou : "
 
 #. Work out the first (id) and last (enabled/disalbed/count),
 #. then chop the middle (name)...
-#: ../yumcommands.py:881
-#: ../yumcommands.py:907
+#: ../yumcommands.py:905 ../yumcommands.py:931
 msgid "repo id"
 msgstr "id repo"
 
-#: ../yumcommands.py:895
-#: ../yumcommands.py:896
-#: ../yumcommands.py:910
+#: ../yumcommands.py:919 ../yumcommands.py:920 ../yumcommands.py:934
 msgid "status"
 msgstr "estat"
 
-#: ../yumcommands.py:908
+#: ../yumcommands.py:932
 msgid "repo name"
 msgstr "nom repo"
 
-#: ../yumcommands.py:934
+#: ../yumcommands.py:958
 msgid "Display a helpful usage message"
 msgstr "Mostra un missatge d'ajuda d'ús"
 
-#: ../yumcommands.py:968
+#: ../yumcommands.py:992
 #, python-format
 msgid "No help available for %s"
 msgstr "No hi ha ajuda disponible per a %s"
 
-#: ../yumcommands.py:973
+#: ../yumcommands.py:997
 msgid ""
 "\n"
 "\n"
@@ -1276,7 +1342,7 @@ msgstr ""
 "\n"
 "àlies: "
 
-#: ../yumcommands.py:975
+#: ../yumcommands.py:999
 msgid ""
 "\n"
 "\n"
@@ -1286,26 +1352,36 @@ msgstr ""
 "\n"
 "àlies: "
 
-#: ../yumcommands.py:1003
+#: ../yumcommands.py:1027
 msgid "Setting up Reinstall Process"
 msgstr "S'està preparant el procés de reinstal·lació"
 
-#: ../yumcommands.py:1012
-msgid "Package(s) to reinstall"
-msgstr "Paquets a reinstal·lar"
-
-#: ../yumcommands.py:1019
+#: ../yumcommands.py:1035
 msgid "reinstall a package"
 msgstr "reinstal·la un paquet"
 
-#: ../yumcommands.py:1037
+#: ../yumcommands.py:1053
 msgid "Setting up Downgrade Process"
 msgstr "S'està preparant el procés de desactualització"
 
-#: ../yumcommands.py:1044
+#: ../yumcommands.py:1060
 msgid "downgrade a package"
 msgstr "desactualitza un paquet"
 
+#: ../yumcommands.py:1074
+msgid "Display a version for the machine and/or available repos."
+msgstr "Mostra una versió per a la màquina i/o repositoris disponibles"
+
+#: ../yumcommands.py:1101
+#,
+msgid "Installed:"
+msgstr "Instal·lat:"
+
+#: ../yumcommands.py:1110
+#, 
+msgid "Available:"
+msgstr "Disponible:"
+
 #: ../yummain.py:42
 msgid ""
 "\n"
@@ -1326,80 +1402,87 @@ msgstr ""
 "\n"
 "S'està sortint en trobar la canonada trencada"
 
-#: ../yummain.py:126
+#: ../yummain.py:50
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s"
+msgstr ""
+"\n"
+"\n"
+"%s"
+
+#: ../yummain.py:128
 msgid "Running"
 msgstr "S'està executant"
 
-#: ../yummain.py:127
+#: ../yummain.py:129
 msgid "Sleeping"
 msgstr "Està dormint"
 
-#: ../yummain.py:128
+#: ../yummain.py:130
 msgid "Uninteruptable"
 msgstr "Ininterrumpible"
 
-#: ../yummain.py:129
+#: ../yummain.py:131
 msgid "Zombie"
 msgstr "Zombi"
 
-#: ../yummain.py:130
+#: ../yummain.py:132
 msgid "Traced/Stopped"
 msgstr "Traçat/aturat"
 
-#: ../yummain.py:131
-msgid "Unknown"
-msgstr "Desconegut"
-
-#: ../yummain.py:135
+#: ../yummain.py:137
 msgid "  The other application is: PackageKit"
 msgstr "  L'altre aplicatiu és: PackageKit"
 
-#: ../yummain.py:137
+#: ../yummain.py:139
 #, python-format
 msgid "  The other application is: %s"
 msgstr "  L'altre aplicatiu és: %s"
 
-#: ../yummain.py:140
+#: ../yummain.py:142
 #, python-format
 msgid "    Memory : %5s RSS (%5sB VSZ)"
 msgstr "    Memòria : %5s RSS (%5sB VSZ)"
 
-#: ../yummain.py:144
+#: ../yummain.py:146
 #, python-format
 msgid "    Started: %s - %s ago"
 msgstr "    Iniciat: fa %s-%s"
 
-#: ../yummain.py:146
+#: ../yummain.py:148
 #, python-format
 msgid "    State  : %s, pid: %d"
 msgstr "    Estat  : %s, pid: %d"
 
-#: ../yummain.py:171
-msgid "Another app is currently holding the yum lock; waiting for it to exit..."
-msgstr "Alguna altra aplicació té el bloqueig del yum; s'està esperant a que surti..."
+#: ../yummain.py:173
+msgid ""
+"Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr ""
+"Alguna altra aplicació té el bloqueig del yum; s'està esperant a que surti..."
 
-#: ../yummain.py:199
-#: ../yummain.py:238
+#: ../yummain.py:201 ../yummain.py:240
 #, python-format
 msgid "Error: %s"
 msgstr "Error: %s"
 
-#: ../yummain.py:209
-#: ../yummain.py:250
+#: ../yummain.py:211 ../yummain.py:253
 #, python-format
 msgid "Unknown Error(s): Exit Code: %d:"
 msgstr "Errors desconeguts: Codi de sortida: %d:"
 
 #. Depsolve stage
-#: ../yummain.py:216
+#: ../yummain.py:218
 msgid "Resolving Dependencies"
 msgstr "S'estan resolent dependències"
 
-#: ../yummain.py:240
+#: ../yummain.py:242
 msgid " You could try using --skip-broken to work around the problem"
 msgstr " Hauríeu de provar utilitzant --skip-broken per evitar el problema"
 
-#: ../yummain.py:241
+#: ../yummain.py:243
 msgid ""
 " You could try running: package-cleanup --problems\n"
 "                        package-cleanup --dupes\n"
@@ -1409,7 +1492,7 @@ msgstr ""
 "                        package-cleanup --dupes\n"
 "                        rpm -Va --nofiles --nodigest"
 
-#: ../yummain.py:256
+#: ../yummain.py:259
 msgid ""
 "\n"
 "Dependencies Resolved"
@@ -1417,11 +1500,11 @@ msgstr ""
 "\n"
 "Dependències resoltes"
 
-#: ../yummain.py:270
+#: ../yummain.py:273
 msgid "Complete!"
 msgstr "Completat!"
 
-#: ../yummain.py:317
+#: ../yummain.py:320
 msgid ""
 "\n"
 "\n"
@@ -1431,201 +1514,205 @@ msgstr ""
 "\n"
 "S'està sortint de l'ordre de l'usuari."
 
-#: ../yum/depsolve.py:84
+#: ../yum/depsolve.py:83
 msgid "doTsSetup() will go away in a future version of Yum.\n"
 msgstr "doTsSetup() desapareixerà en una futura versió de Yum.\n"
 
-#: ../yum/depsolve.py:99
+#: ../yum/depsolve.py:98
 msgid "Setting up TransactionSets before config class is up"
-msgstr "S'està configurant TransactionSets abans que la classe de configuració estigui iniciada"
+msgstr ""
+"S'està configurant TransactionSets abans que la classe de configuració "
+"estigui iniciada"
 
-#: ../yum/depsolve.py:150
+#: ../yum/depsolve.py:149
 #, python-format
 msgid "Invalid tsflag in config file: %s"
 msgstr "Tsflag invàlid en el fitxer de configuració: %s"
 
-#: ../yum/depsolve.py:161
+#: ../yum/depsolve.py:160
 #, python-format
 msgid "Searching pkgSack for dep: %s"
 msgstr "S'està buscant pkgSack per a la dependència: %s"
 
-#: ../yum/depsolve.py:184
+#: ../yum/depsolve.py:183
 #, python-format
 msgid "Potential match for %s from %s"
 msgstr "Coincidència potencial per a %s de %s"
 
-#: ../yum/depsolve.py:192
+#: ../yum/depsolve.py:191
 #, python-format
 msgid "Matched %s to require for %s"
 msgstr "La coincidència %s es requereix per a %s"
 
-#: ../yum/depsolve.py:233
+#: ../yum/depsolve.py:232
 #, python-format
 msgid "Member: %s"
 msgstr "Membre: %s"
 
-#: ../yum/depsolve.py:247
-#: ../yum/depsolve.py:739
+#: ../yum/depsolve.py:246 ../yum/depsolve.py:756
 #, python-format
 msgid "%s converted to install"
 msgstr "%s convertits per a instal·lar"
 
-#: ../yum/depsolve.py:254
+#: ../yum/depsolve.py:253
 #, python-format
 msgid "Adding Package %s in mode %s"
 msgstr "S'està afegint el paquet %s en mode %s"
 
-#: ../yum/depsolve.py:264
+#: ../yum/depsolve.py:263
 #, python-format
 msgid "Removing Package %s"
-msgstr "S'està esborrant el paquet %s"
+msgstr "S'està suprimint el paquet %s"
 
-#: ../yum/depsolve.py:275
+#: ../yum/depsolve.py:285
 #, python-format
 msgid "%s requires: %s"
 msgstr "%s requereix: %s"
 
-#: ../yum/depsolve.py:333
+#: ../yum/depsolve.py:343
 msgid "Needed Require has already been looked up, cheating"
-msgstr "El requeriment necessari ja s'ha buscat anteriorment, s'estan fent trampes"
+msgstr ""
+"El requeriment necessari ja s'ha buscat anteriorment, s'estan fent trampes"
 
-#: ../yum/depsolve.py:343
+#: ../yum/depsolve.py:353
 #, python-format
 msgid "Needed Require is not a package name. Looking up: %s"
 msgstr "El requeriment necessari no és un nom de paquet. S'està buscant: %s"
 
-#: ../yum/depsolve.py:350
+#: ../yum/depsolve.py:360
 #, python-format
 msgid "Potential Provider: %s"
 msgstr "Proveïdor potencial: %s"
 
-#: ../yum/depsolve.py:373
+#: ../yum/depsolve.py:383
 #, python-format
 msgid "Mode is %s for provider of %s: %s"
 msgstr "El mode és %s per al proveïdor de %s: %s"
 
-#: ../yum/depsolve.py:377
+#: ../yum/depsolve.py:387
 #, python-format
 msgid "Mode for pkg providing %s: %s"
 msgstr "Mode per al paquet que proporciona %s: %s"
 
-#: ../yum/depsolve.py:381
+#: ../yum/depsolve.py:391
 #, python-format
 msgid "TSINFO: %s package requiring %s marked as erase"
-msgstr "TSINFO: el paquet %s requereix %s marcat per a esborrar"
+msgstr "TSINFO: el paquet %s requereix %s marcat per a suprimir"
 
-#: ../yum/depsolve.py:394
+#: ../yum/depsolve.py:404
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
-msgstr "TSINFO: S'està marcant com a obsolet %s amb %s per resoldre dependències."
+msgstr ""
+"TSINFO: S'està marcant com a obsolet %s amb %s per resoldre dependències."
 
-#: ../yum/depsolve.py:397
+#: ../yum/depsolve.py:407
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
 msgstr "TSINFO: S'està actualitzant %s per a resoldre dependències."
 
-#: ../yum/depsolve.py:405
+#: ../yum/depsolve.py:415
 #, python-format
 msgid "Cannot find an update path for dep for: %s"
 msgstr "No es pot trobar un camí d'actualització de dependències per a: %s"
 
-#: ../yum/depsolve.py:415
+#: ../yum/depsolve.py:425
 #, python-format
 msgid "Unresolvable requirement %s for %s"
 msgstr "No es pot resoldre el requeriment %s per a %s"
 
-#: ../yum/depsolve.py:438
+#: ../yum/depsolve.py:448
 #, python-format
 msgid "Quick matched %s to require for %s"
 msgstr "La coincidència %s es requereix per a %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 es troba en els paquets proporcionats però ja es troba instal·lat, s'està esborrant."
+msgstr ""
+"%s es troba en els paquets proporcionats però ja es troba instal·lat, s'està "
+"suprimint."
 
-#: ../yum/depsolve.py:496
+#: ../yum/depsolve.py:506
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
-msgstr "El paquet potencial que resol dependències %s té una instància nova a ts"
+msgstr ""
+"El paquet potencial que resol dependències %s té una instància nova a ts"
 
-#: ../yum/depsolve.py:507
+#: ../yum/depsolve.py:517
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
-msgstr "El paquet potencial que resol dependències %s té una nova instància insta·lada."
+msgstr ""
+"El paquet potencial que resol dependències %s té una nova instància "
+"insta·lada."
 
-#: ../yum/depsolve.py:515
-#: ../yum/depsolve.py:564
+#: ../yum/depsolve.py:525 ../yum/depsolve.py:571
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "Manca una dependència: %s es necessita per al paquet %s"
 
-#: ../yum/depsolve.py:528
+#: ../yum/depsolve.py:538
 #, python-format
 msgid "%s already in ts, skipping this one"
 msgstr "%s ja es troba en ts, s'està ometent"
 
-#: ../yum/depsolve.py:574
+#: ../yum/depsolve.py:581
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: S'està marcant %s com a actualització per a %s"
 
-#: ../yum/depsolve.py:582
+#: ../yum/depsolve.py:589
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: S'està marcant %s com a instal·lació per a %s"
 
-#: ../yum/depsolve.py:675
-#: ../yum/depsolve.py:757
+#: ../yum/depsolve.py:692 ../yum/depsolve.py:774
 msgid "Success - empty transaction"
 msgstr "Èxit - transacció buida"
 
-#: ../yum/depsolve.py:714
-#: ../yum/depsolve.py:729
+#: ../yum/depsolve.py:731 ../yum/depsolve.py:746
 msgid "Restarting Loop"
 msgstr "S'està recomençant el bucle"
 
-#: ../yum/depsolve.py:745
+#: ../yum/depsolve.py:762
 msgid "Dependency Process ending"
 msgstr "Està acabant el procés de dependències"
 
-#: ../yum/depsolve.py:751
+#: ../yum/depsolve.py:768
 #, python-format
 msgid "%s from %s has depsolving problems"
 msgstr "%s de %s té problemes resolent dependències"
 
-#: ../yum/depsolve.py:758
+#: ../yum/depsolve.py:775
 msgid "Success - deps resolved"
 msgstr "Èxit - dependències resoltes"
 
-#: ../yum/depsolve.py:772
+#: ../yum/depsolve.py:789
 #, python-format
 msgid "Checking deps for %s"
 msgstr "S'estan comprobant les dependències per a %s"
 
-#: ../yum/depsolve.py:855
+#: ../yum/depsolve.py:872
 #, python-format
 msgid "looking for %s as a requirement of %s"
 msgstr "s'està buscant %s com a requeriment de %s"
 
-#: ../yum/depsolve.py:997
+#: ../yum/depsolve.py:1014
 #, python-format
 msgid "Running compare_providers() for %s"
 msgstr "S'està executant compare_providers() per a %s"
 
-#: ../yum/depsolve.py:1025
-#: ../yum/depsolve.py:1031
+#: ../yum/depsolve.py:1048 ../yum/depsolve.py:1054
 #, python-format
 msgid "better arch in po %s"
 msgstr "millor arq en el po %s"
 
-#: ../yum/depsolve.py:1092
+#: ../yum/depsolve.py:1140
 #, python-format
 msgid "%s obsoletes %s"
 msgstr "%s fa obsolet %s"
 
-#: ../yum/depsolve.py:1108
+#: ../yum/depsolve.py:1152
 #, python-format
 msgid ""
 "archdist compared %s to %s on %s\n"
@@ -1634,112 +1721,121 @@ msgstr ""
 "archdist ha comparat %s amb %s a %s\n"
 "  Ha guanyat: %s"
 
-#: ../yum/depsolve.py:1115
+#: ../yum/depsolve.py:1159
 #, python-format
 msgid "common sourcerpm %s and %s"
 msgstr "rpm font comú %s i %s"
 
-#: ../yum/depsolve.py:1121
+#: ../yum/depsolve.py:1165
 #, python-format
 msgid "common prefix of %s between %s and %s"
 msgstr "prefix comú de %s entre %s i %s"
 
-#: ../yum/depsolve.py:1129
+#: ../yum/depsolve.py:1173
 #, python-format
 msgid "Best Order: %s"
 msgstr "Millor ordre: %s"
 
-#: ../yum/__init__.py:158
+#: ../yum/__init__.py:180
 msgid "doConfigSetup() will go away in a future version of Yum.\n"
 msgstr "doConfigsetup() desapareixerà en una futura versió de Yum.\n"
 
-#: ../yum/__init__.py:367
+#: ../yum/__init__.py:401
 #, python-format
 msgid "Repository %r is missing name in configuration, using id"
 msgstr "Falta el nom del repositori %r en la configuració, s'utilitzarà l'id"
 
-#: ../yum/__init__.py:405
+#: ../yum/__init__.py:439
 msgid "plugins already initialised"
 msgstr "els connectors ja estan inicialitzats"
 
-#: ../yum/__init__.py:412
+#: ../yum/__init__.py:446
 msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
 msgstr "doRpmDBSetup() desapareixerà en una futura versió de Yum.\n"
 
-#: ../yum/__init__.py:423
+#: ../yum/__init__.py:457
 msgid "Reading Local RPMDB"
 msgstr "S'està llegint un RPMDB local"
 
-#: ../yum/__init__.py:441
+#: ../yum/__init__.py:478
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() desapareixerà en una futura versió de Yum.\n"
 
-#: ../yum/__init__.py:461
+#: ../yum/__init__.py:498
 msgid "doSackSetup() will go away in a future version of Yum.\n"
 msgstr "doSackSetup() desapareixerà en una versió futura de Yum.\n"
 
-#: ../yum/__init__.py:478
+#: ../yum/__init__.py:528
 msgid "Setting up Package Sacks"
 msgstr "S'estan configurant els sacs de paquets"
 
-#: ../yum/__init__.py:521
+#: ../yum/__init__.py:573
 #, python-format
 msgid "repo object for repo %s lacks a _resetSack method\n"
 msgstr "l'objecte repositori per al repositori %s no té un mètode _resetSack\n"
 
-#: ../yum/__init__.py:522
+#: ../yum/__init__.py:574
 msgid "therefore this repo cannot be reset.\n"
 msgstr "Aquest repositori no es pot reiniciar.\n"
 
-#: ../yum/__init__.py:527
+#: ../yum/__init__.py:579
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
 msgstr "doUpdateSetup() desapareixerà en una futura versió de Yum.\n"
 
-#: ../yum/__init__.py:539
+#: ../yum/__init__.py:591
 msgid "Building updates object"
 msgstr "S'està construint l'objecte d'actualitzacions"
 
-#: ../yum/__init__.py:570
+#: ../yum/__init__.py:626
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
 msgstr "doGroupSetup() desapareixerà en una futura versió de Yum.\n"
 
-#: ../yum/__init__.py:595
+#: ../yum/__init__.py:651
 msgid "Getting group metadata"
 msgstr "S'estan obtenint les metadades del grup"
 
-#: ../yum/__init__.py:621
+#: ../yum/__init__.py:677
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "S'està afegint el fitxer del grup des del repositori: %s"
 
-#: ../yum/__init__.py:630
+#: ../yum/__init__.py:686
 #, python-format
 msgid "Failed to add groups file for repository: %s - %s"
 msgstr "No s'ha pogut afegir el fitxer dels grups des del repositori: %s - %s"
 
-#: ../yum/__init__.py:636
+#: ../yum/__init__.py:692
 msgid "No Groups Available in any repository"
 msgstr "No hi ha cap grup disponible en cap repositori"
 
-#: ../yum/__init__.py:686
+#: ../yum/__init__.py:742
 msgid "Importing additional filelist information"
 msgstr "S'està important informació adicional de la llista de fitxers"
 
-#: ../yum/__init__.py:695
-msgid "There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them."
-msgstr "Encara hi ha transaccions sense acabar. Hauríeu de considerar executar yum-complete-transaction abans per acabar-les."
+#: ../yum/__init__.py:756
+#, python-format
+msgid "The program %s%s%s is found in the yum-utils package."
+msgstr "El programa %s%s%s es troba en el paquet yum-utils."
+
+#: ../yum/__init__.py:764
+msgid ""
+"There are unfinished transactions remaining. You might consider running yum-"
+"complete-transaction first to finish them."
+msgstr ""
+"Encara hi ha transaccions sense acabar. Hauríeu de considerar executar yum-"
+"complete-transaction abans per acabar-les."
 
-#: ../yum/__init__.py:761
+#: ../yum/__init__.py:832
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Intent %i d'omissió dels paquets trencats"
 
-#: ../yum/__init__.py:813
+#: ../yum/__init__.py:884
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr "L'omissió dels paquets trencats ha necessitat %i intents"
 
-#: ../yum/__init__.py:814
+#: ../yum/__init__.py:885
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1747,89 +1843,74 @@ msgstr ""
 "\n"
 "Paquets omesos degut a problemes de dependències:"
 
-#: ../yum/__init__.py:818
+#: ../yum/__init__.py:889
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s des de %s"
 
-#: ../yum/__init__.py:958
-msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
-msgstr "Avís: ha fallat l'scriptlet o s'han produït altre tipus d'errors no fatals durant la transacció."
+#: ../yum/__init__.py:1027
+msgid ""
+"Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr ""
+"Avís: ha fallat l'scriptlet o s'han produït altre tipus d'errors no fatals "
+"durant la transacció."
 
-#: ../yum/__init__.py:973
+#: ../yum/__init__.py:1042
 #, python-format
 msgid "Failed to remove transaction file %s"
-msgstr "No s'ha pogut esborrar el fitxer de transaccions %s"
+msgstr "No s'ha pogut suprimir el fitxer de transaccions %s"
 
-#: ../yum/__init__.py:1015
+#. 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 for cost: %s from %s"
-msgstr "s'està excloent per cost: %s de %s"
-
-#: ../yum/__init__.py:1046
-msgid "Excluding Packages in global exclude list"
-msgstr "S'estan excloent paquets en la llista global d'exclusió"
+msgid "%s was supposed to be installed but is not!"
+msgstr "S'havia d'instal·lar %s però no s'ha realitzat!"
 
-#: ../yum/__init__.py:1048
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1110
 #, python-format
-msgid "Excluding Packages from %s"
-msgstr "S'estan excloent paquets de %s"
-
-#: ../yum/__init__.py:1077
-#, python-format
-msgid "Reducing %s to included packages only"
-msgstr "S'està reduint %s únicament a paquets inclosos."
-
-#: ../yum/__init__.py:1083
-#, python-format
-msgid "Keeping included package %s"
-msgstr "S'està mantenint el paquet inclòs %s"
-
-#: ../yum/__init__.py:1089
-#, python-format
-msgid "Removing unmatched package %s"
-msgstr "S'està esborrant el paquet sense coincidències %s"
-
-#: ../yum/__init__.py:1092
-msgid "Finished"
-msgstr "Finalitzat"
+msgid "%s was supposed to be removed but is not!"
+msgstr "S'havia de suprimir %s però no s'ha realitzat!"
 
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:1122
+#: ../yum/__init__.py:1225
 #, python-format
 msgid "Unable to check if PID %s is active"
 msgstr "No s'ha pogut comprovar si el PID %s es troba actiu"
 
 #. Another copy seems to be running.
-#: ../yum/__init__.py:1126
+#: ../yum/__init__.py:1229
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
 msgstr "Bloqueig existent %s: una altra còpia s'està executant amb pid %s."
 
-#: ../yum/__init__.py:1196
+#: ../yum/__init__.py:1306
 msgid "Package does not match intended download"
 msgstr "El paquet no coincideix amb la descàrrega intentada"
 
-#: ../yum/__init__.py:1211
+#: ../yum/__init__.py:1321
 msgid "Could not perform checksum"
 msgstr "No s'ha pogut realitzar la suma de verificació"
 
-#: ../yum/__init__.py:1214
+#: ../yum/__init__.py:1324
 msgid "Package does not match checksum"
 msgstr "No coincideix la suma de verificació del paquet"
 
-#: ../yum/__init__.py:1257
+#: ../yum/__init__.py:1366
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
-msgstr "la suma de verificació del paquet falla però l'ús de memòria cau està habilitat per a %s"
+msgstr ""
+"la suma de verificació del paquet falla però l'ús de memòria cau està "
+"habilitat per a %s"
 
-#: ../yum/__init__.py:1260
-#: ../yum/__init__.py:1289
+#: ../yum/__init__.py:1369 ../yum/__init__.py:1398
 #, python-format
 msgid "using local copy of %s"
 msgstr "s'està utilitzant la còpia local de %s"
 
-#: ../yum/__init__.py:1301
+#: ../yum/__init__.py:1410
 #, python-format
 msgid ""
 "Insufficient space in download directory %s\n"
@@ -1840,441 +1921,462 @@ msgstr ""
 "    * lliure    %s\n"
 "    * necessari %s"
 
-#: ../yum/__init__.py:1348
+#: ../yum/__init__.py:1459
 msgid "Header is not complete."
 msgstr "La capçalera no està completa."
 
-#: ../yum/__init__.py:1385
+#: ../yum/__init__.py:1496
 #, python-format
-msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
-msgstr "La capçalera no es troba en la memòria cau local i està habilitat el mode de només memòria cau. No es pot descarregar %s"
+msgid ""
+"Header not in local cache and caching-only mode enabled. Cannot download %s"
+msgstr ""
+"La capçalera no es troba en la memòria cau local i està habilitat el mode de "
+"només memòria cau. No es pot baixar %s"
 
-#: ../yum/__init__.py:1440
+#: ../yum/__init__.py:1551
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "La clau pública per a %s no està instal·lada"
 
-#: ../yum/__init__.py:1444
+#: ../yum/__init__.py:1555
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Hi ha hagut un problema obrint el paquet %s"
 
-#: ../yum/__init__.py:1452
+#: ../yum/__init__.py:1563
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "La clau pública per a %s no és de confiança"
 
-#: ../yum/__init__.py:1456
+#: ../yum/__init__.py:1567
 #, python-format
 msgid "Package %s is not signed"
 msgstr "El paquet %s no està signat"
 
-#: ../yum/__init__.py:1494
+#: ../yum/__init__.py:1605
 #, python-format
 msgid "Cannot remove %s"
-msgstr "No es pot esborrar %s"
+msgstr "No es pot suprimir %s"
 
-#: ../yum/__init__.py:1498
+#: ../yum/__init__.py:1609
 #, python-format
 msgid "%s removed"
-msgstr "S'ha esborrat %s"
+msgstr "S'ha suprimit %s"
 
-#: ../yum/__init__.py:1534
+#: ../yum/__init__.py:1645
 #, python-format
 msgid "Cannot remove %s file %s"
-msgstr "No es pot esborrar %s fitxer %s"
+msgstr "No es pot suprimir %s fitxer %s"
 
-#: ../yum/__init__.py:1538
+#: ../yum/__init__.py:1649
 #, python-format
 msgid "%s file %s removed"
-msgstr "%s fitxer %s esborrat"
+msgstr "%s fitxer %s suprimit"
 
-#: ../yum/__init__.py:1540
+#: ../yum/__init__.py:1651
 #, python-format
 msgid "%d %s files removed"
-msgstr "%d %s fitxers esborrats"
+msgstr "%d %s fitxers suprimits"
 
-#: ../yum/__init__.py:1609
+#: ../yum/__init__.py:1720
 #, python-format
 msgid "More than one identical match in sack for %s"
 msgstr "Hi ha més d'una coincidència idèntica en el sac per a %s"
 
-#: ../yum/__init__.py:1615
+#: ../yum/__init__.py:1726
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "No hi ha coincidències %s.%s-%s:%s-%s de l'actualització"
 
-#: ../yum/__init__.py:1833
-msgid "searchPackages() will go away in a future version of Yum.                      Use searchGenerator() instead. \n"
-msgstr "searchPackages() desapareixerà en una futura versió de Yum.                      Useu searchGenerator(). \n"
+#: ../yum/__init__.py:1959
+msgid ""
+"searchPackages() will go away in a future version of "
+"Yum.                      Use searchGenerator() instead. \n"
+msgstr ""
+"searchPackages() desapareixerà en una futura versió de "
+"Yum.                      Useu searchGenerator(). \n"
 
-#: ../yum/__init__.py:1875
+#: ../yum/__init__.py:2001
 #, python-format
 msgid "Searching %d packages"
 msgstr "S'estan buscant %d paquets"
 
-#: ../yum/__init__.py:1879
+#: ../yum/__init__.py:2005
 #, python-format
 msgid "searching package %s"
 msgstr "s'està buscant el paquet %s"
 
-#: ../yum/__init__.py:1891
+#: ../yum/__init__.py:2017
 msgid "searching in file entries"
 msgstr "s'està buscant en les entrades de fitxers"
 
-#: ../yum/__init__.py:1898
+#: ../yum/__init__.py:2024
 msgid "searching in provides entries"
 msgstr "s'està buscant en les entrades proporcionades"
 
-#: ../yum/__init__.py:1931
+#: ../yum/__init__.py:2057
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Proporciona-coincideix: %s"
 
-#: ../yum/__init__.py:1980
+#: ../yum/__init__.py:2106
 msgid "No group data available for configured repositories"
 msgstr "No hi ha dades de grup disponibles en cap dels repositoris configurats"
 
-#: ../yum/__init__.py:2011
-#: ../yum/__init__.py:2030
-#: ../yum/__init__.py:2061
-#: ../yum/__init__.py:2067
-#: ../yum/__init__.py:2146
-#: ../yum/__init__.py:2150
-#: ../yum/__init__.py:2447
+#: ../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:2586
 #, python-format
 msgid "No Group named %s exists"
 msgstr "No existeix cap grup anomenat %s"
 
-#: ../yum/__init__.py:2042
-#: ../yum/__init__.py:2163
+#: ../yum/__init__.py:2168 ../yum/__init__.py:2289
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "el paquet %s no estava marcat en el grup %s"
 
-#: ../yum/__init__.py:2089
+#: ../yum/__init__.py:2215
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "S'està afegint el paquet %s del grup %s"
 
-#: ../yum/__init__.py:2093
+#: ../yum/__init__.py:2219
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "No hi ha cap paquet anomenat %s disponible per a ser instal·lat"
 
-#: ../yum/__init__.py:2190
+#: ../yum/__init__.py:2316
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr "No s'ha pogut trobar la tupla de paquets %s al sac de paquets"
 
-#: ../yum/__init__.py:2205
-msgid "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
-msgstr "getInstalledPackageObject() desapareixarà, useu self.rpmdb.searchPkgTuple().\n"
+#: ../yum/__init__.py:2330
+msgid ""
+"getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
+msgstr ""
+"getInstalledPackageObject() desapareixarà, useu self.rpmdb.searchPkgTuple"
+"().\n"
 
-#: ../yum/__init__.py:2261
-#: ../yum/__init__.py:2305
+#: ../yum/__init__.py:2386 ../yum/__init__.py:2436
 msgid "Invalid version flag"
 msgstr "Marcador de versió invàlid"
 
-#: ../yum/__init__.py:2276
-#: ../yum/__init__.py:2280
+#: ../yum/__init__.py:2406 ../yum/__init__.py:2411
 #, python-format
 msgid "No Package found for %s"
 msgstr "No s'ha trobat cap paquet per a %s"
 
-#: ../yum/__init__.py:2480
+#: ../yum/__init__.py:2627
 msgid "Package Object was not a package object instance"
 msgstr "L'objecte paquet no era una instància d'objecte paquet"
 
-#: ../yum/__init__.py:2484
+#: ../yum/__init__.py:2631
 msgid "Nothing specified to install"
 msgstr "No hi ha res especificat per a instal·lar"
 
-#: ../yum/__init__.py:2500
-#: ../yum/__init__.py:3127
+#: ../yum/__init__.py:2647 ../yum/__init__.py:3411
 #, python-format
 msgid "Checking for virtual provide or file-provide for %s"
-msgstr "S'està verificant si hi ha un proveïdor virtual o un fitxer proveïdor per a %s"
+msgstr ""
+"S'està verificant si hi ha un proveïdor virtual o un fitxer proveïdor per a %"
+"s"
 
-#: ../yum/__init__.py:2506
-#: ../yum/__init__.py:2783
-#: ../yum/__init__.py:2943
-#: ../yum/__init__.py:3133
+#: ../yum/__init__.py:2653 ../yum/__init__.py:2960 ../yum/__init__.py:3127
+#: ../yum/__init__.py:3417
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "No hi ha cap coincidència per a l'argument: %s"
 
-#: ../yum/__init__.py:2580
+#: ../yum/__init__.py:2729
 #, python-format
 msgid "Package %s installed and not available"
 msgstr "El paquet %s es troba instal·lat però no és disponible"
 
-#: ../yum/__init__.py:2583
+#: ../yum/__init__.py:2732
 msgid "No package(s) available to install"
 msgstr "No hi ha cap paquet disponible per a instal·lar"
 
-#: ../yum/__init__.py:2595
+#: ../yum/__init__.py:2744
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "El paquet: %s  - ja està en la transacció"
 
-#: ../yum/__init__.py:2610
+#: ../yum/__init__.py:2770
+#, python-format
+msgid "Package %s is obsoleted by %s which is already installed"
+msgstr "El paquet %s és obsolet degut a %s, que ja està instal·lat"
+
+#: ../yum/__init__.py:2773
 #, python-format
 msgid "Package %s is obsoleted by %s, trying to install %s instead"
-msgstr "El paquet %s és obsolet degut a %s, es provarà d'instal·lar %s"
+msgstr "El paquet %s és obsolet degut a %s, es provarà d'instal·lar %s en el seu lloc"
 
-#: ../yum/__init__.py:2618
+#: ../yum/__init__.py:2781
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "El paquet %s ja es troba instal·lat i en l'última versió."
 
-#: ../yum/__init__.py:2632
+#: ../yum/__init__.py:2795
 #, python-format
 msgid "Package matching %s already installed. Checking for update."
-msgstr "El paquet coincident %s ja es troba instal·lat. S'està buscant una actualització."
+msgstr ""
+"El paquet coincident %s ja es troba instal·lat. S'està buscant una "
+"actualització."
 
 #. update everything (the easy case)
-#: ../yum/__init__.py:2718
+#: ../yum/__init__.py:2889
 msgid "Updating Everything"
 msgstr "S'està actualitzant tot"
 
-#: ../yum/__init__.py:2736
-#: ../yum/__init__.py:2845
-#: ../yum/__init__.py:2866
-#: ../yum/__init__.py:2892
+#: ../yum/__init__.py:2910 ../yum/__init__.py:3025 ../yum/__init__.py:3054
+#: ../yum/__init__.py:3081
 #, python-format
 msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
 msgstr "No s'actualitzarà el paquet obsolet: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2771
-#: ../yum/__init__.py:2940
+#: ../yum/__init__.py:2945 ../yum/__init__.py:3124
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: ../yum/__init__.py:2836
+#: ../yum/__init__.py:3016
 #, python-format
 msgid "Package is already obsoleted: %s.%s %s:%s-%s"
 msgstr "El paquet és obsolet: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2869
-#: ../yum/__init__.py:2895
+#: ../yum/__init__.py:3049
+#, python-format
+msgid "Not Updating Package that is obsoleted: %s"
+msgstr "No s'actualitzarà el paquet obsolet: %s"
+
+#: ../yum/__init__.py:3058 ../yum/__init__.py:3085
 #, python-format
 msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
 msgstr "No s'actualitzarà el paquet actualitzat: %s.%s %s:%s-%s"
 
-#: ../yum/__init__.py:2956
+#: ../yum/__init__.py:3140
 msgid "No package matched to remove"
-msgstr "No hi ha cap paquet coincident per a esborrar"
+msgstr "No hi ha cap paquet coincident per a suprimir"
 
-#: ../yum/__init__.py:2990
+#: ../yum/__init__.py:3173 ../yum/__init__.py:3277 ../yum/__init__.py:3366
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "No es pot obrir el fitxer %s. S'ometrà."
 
-#: ../yum/__init__.py:2993
+#: ../yum/__init__.py:3176 ../yum/__init__.py:3280 ../yum/__init__.py:3369
 #, python-format
 msgid "Examining %s: %s"
 msgstr "S'està examinant %s: %s"
 
-#: ../yum/__init__.py:3001
+#: ../yum/__init__.py:3184 ../yum/__init__.py:3283 ../yum/__init__.py:3372
 #, python-format
 msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
-msgstr "No s'ha pogut afegir el paquet %s a la transacció. No és una arquitectura compatible: %s"
+msgstr ""
+"No s'ha pogut afegir el paquet %s a la transacció. No és una arquitectura "
+"compatible: %s"
 
-#: ../yum/__init__.py:3009
+#: ../yum/__init__.py:3192
 #, python-format
-msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
-msgstr "El paquet %s no està instal·lat; no es pot actualitzar. Executeu «yum install» per a instal·lar-lo."
+msgid ""
+"Package %s not installed, cannot update it. Run yum install to install it "
+"instead."
+msgstr ""
+"El paquet %s no està instal·lat; no es pot actualitzar. Executeu «yum "
+"install» per a instal·lar-lo."
 
-#: ../yum/__init__.py:3044
+#: ../yum/__init__.py:3227 ../yum/__init__.py:3294 ../yum/__init__.py:3383
 #, python-format
 msgid "Excluding %s"
 msgstr "S'està excloent %s"
 
-#: ../yum/__init__.py:3049
+#: ../yum/__init__.py:3232
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "S'està marcant %s per a ser instal·lat"
 
-#: ../yum/__init__.py:3055
+#: ../yum/__init__.py:3238
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "S'està marcant %s com a actualització de %s"
 
-#: ../yum/__init__.py:3062
+#: ../yum/__init__.py:3245
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s no actualitza el paquet instal·lat."
 
-#: ../yum/__init__.py:3077
+#: ../yum/__init__.py:3313
 msgid "Problem in reinstall: no package matched to remove"
-msgstr "Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a esborrar"
+msgstr ""
+"Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a suprimir"
 
-#: ../yum/__init__.py:3089
-#: ../yum/__init__.py:3160
+#: ../yum/__init__.py:3326 ../yum/__init__.py:3444
 #, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "El paquet %s permet múltiples instal·lacions, s'està ometent"
 
-#: ../yum/__init__.py:3098
-msgid "Problem in reinstall: no package matched to install"
-msgstr "Hi ha un problema en reinstal·lar: no hi ha cap paquet marcat per a instal·lar"
+#: ../yum/__init__.py:3347
+#, python-format
+msgid "Problem in reinstall: no package %s matched to install"
+msgstr ""
+"Hi ha un problema en reinstal·lar: no hi ha cap paquet %s marcat per a "
+"instal·lar"
 
-#: ../yum/__init__.py:3152
+#: ../yum/__init__.py:3436
 msgid "No package(s) available to downgrade"
 msgstr "No hi ha cap paquet disponible per a desactualitzar"
 
-#: ../yum/__init__.py:3183
+#: ../yum/__init__.py:3480
 #, python-format
 msgid "No Match for available package: %s"
 msgstr "No hi ha cap paquet disponible que coincideixi: %s"
 
-#: ../yum/__init__.py:3189
+#: ../yum/__init__.py:3486
 #, python-format
 msgid "Only Upgrade available on package: %s"
 msgstr "Només hi ha una actualització disponible per al paquet: %s"
 
-#: ../yum/__init__.py:3241
+#: ../yum/__init__.py:3545
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "S'està recuperant la clau GPG des de %s"
 
-#: ../yum/__init__.py:3261
+#: ../yum/__init__.py:3565
 msgid "GPG key retrieval failed: "
 msgstr "La recuperació de la clau GPG ha fallat: "
 
-#: ../yum/__init__.py:3272
+#: ../yum/__init__.py:3576
 #, python-format
 msgid "GPG key parsing failed: key does not have value %s"
 msgstr "L'ànalisi de la clau GPG ha fallat: la clau no té el valor %s"
 
-#: ../yum/__init__.py:3304
+#: ../yum/__init__.py:3608
 #, python-format
 msgid "GPG key at %s (0x%s) is already installed"
 msgstr "La clau GPG de %s (0x%s) ja està instal·lada"
 
 #. Try installing/updating GPG key
-#: ../yum/__init__.py:3309
-#: ../yum/__init__.py:3371
+#: ../yum/__init__.py:3613 ../yum/__init__.py:3675
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "S'està important la clau GPG 0x%s \"%s\" des de %s"
 
-#: ../yum/__init__.py:3326
+#: ../yum/__init__.py:3630
 msgid "Not installing key"
 msgstr "No s'està instal·lant la clau"
 
-#: ../yum/__init__.py:3332
+#: ../yum/__init__.py:3636
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "La importació de la clau ha fallat (codi %d)"
 
-#: ../yum/__init__.py:3333
-#: ../yum/__init__.py:3392
+#: ../yum/__init__.py:3637 ../yum/__init__.py:3696
 msgid "Key imported successfully"
 msgstr "La clau s'ha importat amb èxit"
 
-#: ../yum/__init__.py:3338
-#: ../yum/__init__.py:3397
+#: ../yum/__init__.py:3642 ../yum/__init__.py:3701
 #, python-format
 msgid ""
-"The GPG keys listed for the \"%s\" repository are already installed but they are not correct for this package.\n"
+"The GPG keys listed for the \"%s\" repository are already installed but they "
+"are not correct for this package.\n"
 "Check that the correct key URLs are configured for this repository."
 msgstr ""
-"Les claus GPG llistades per al repositori \"%s\" ja estan instal·lades però no són correctes per a aquest paquet.\n"
-"Comproveu que les URL de claus correctes estan configurades per a aquest repositori."
+"Les claus GPG llistades per al repositori \"%s\" ja estan instal·lades però "
+"no són correctes per a aquest paquet.\n"
+"Comproveu que les URL de claus correctes estan configurades per a aquest "
+"repositori."
 
-#: ../yum/__init__.py:3347
+#: ../yum/__init__.py:3651
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "La importació de claus no ha ajudat, eren claus incorrectes?"
 
-#: ../yum/__init__.py:3366
+#: ../yum/__init__.py:3670
 #, python-format
 msgid "GPG key at %s (0x%s) is already imported"
 msgstr "La clau GPG a %s (0x%s) ja ha estat importada"
 
-#: ../yum/__init__.py:3386
+#: ../yum/__init__.py:3690
 #, python-format
 msgid "Not installing key for repo %s"
 msgstr "No s'està instal·lant la clau per al repositori %s"
 
-#: ../yum/__init__.py:3391
+#: ../yum/__init__.py:3695
 msgid "Key import failed"
 msgstr "Ha fallat la importació de la clau"
 
-#: ../yum/__init__.py:3482
+#: ../yum/__init__.py:3816
 msgid "Unable to find a suitable mirror."
 msgstr "No s'ha pogut trobar un servidor rèplica vàlid."
 
-#: ../yum/__init__.py:3484
+#: ../yum/__init__.py:3818
 msgid "Errors were encountered while downloading packages."
-msgstr "S'han trobat errors descarregant paquets."
+msgstr "S'han trobat errors baixant paquets."
 
-#: ../yum/__init__.py:3525
+#: ../yum/__init__.py:3868
 #, python-format
 msgid "Please report this error at %s"
 msgstr "Siusplau, informeu d'aquest error al %s"
 
-#: ../yum/__init__.py:3549
+#: ../yum/__init__.py:3892
 msgid "Test Transaction Errors: "
 msgstr "Errors en la transacció de prova: "
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:204
+#: ../yum/plugins.py:202
 msgid "Loaded plugins: "
 msgstr "Connectors carregats: "
 
-#: ../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 "No hi ha cap connector que coincideixi amb: %s"
 
-#: ../yum/plugins.py:254
+#: ../yum/plugins.py:252
 #, python-format
 msgid "Not loading \"%s\" plugin, as it is disabled"
 msgstr "No s'està carregant el connector \"%s\", ja que està deshabilitat"
 
 #. Give full backtrace:
-#: ../yum/plugins.py:266
+#: ../yum/plugins.py:264
 #, python-format
 msgid "Plugin \"%s\" can't be imported"
 msgstr "No s'ha pogut importar el connector \"%s\""
 
-#: ../yum/plugins.py:273
+#: ../yum/plugins.py:271
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr "El connector \"%s\" no especifica la versió de l'API requerida."
 
-#: ../yum/plugins.py:278
+#: ../yum/plugins.py:276
 #, python-format
 msgid "Plugin \"%s\" requires API %s. Supported API is %s."
 msgstr "El connector \"%s\" requereix l'API %s. L'API disponible és %s"
 
-#: ../yum/plugins.py:311
+#: ../yum/plugins.py:309
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "S'està carregant el connector \"%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 "Existeixen dos o més connectors amb el mateix nom \"%s\" en el camí de cerca de connectors"
+msgid ""
+"Two or more plugins with the name \"%s\" exist in the plugin search path"
+msgstr ""
+"Existeixen dos o més connectors amb el mateix nom \"%s\" en el camí de cerca "
+"de connectors"
 
-#: ../yum/plugins.py:338
+#: ../yum/plugins.py:336
 #, python-format
 msgid "Configuration file %s not found"
 msgstr "No s'ha trobat el fitxer de configuració %s"
 
 #. 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 "No s'ha pogut trobar un fitxer de configuració per al connector %s"
 
-#: ../yum/plugins.py:495
+#: ../yum/plugins.py:497
 msgid "registration of commands not supported"
 msgstr "l'enregistrament d'ordres no està suportat"
 
@@ -2282,44 +2384,87 @@ msgstr "l'enregistrament d'ordres no està suportat"
 msgid "Repackaging"
 msgstr "Reempaquetant"
 
-#: ../rpmUtils/oldUtils.py:31
+#: ../rpmUtils/oldUtils.py:33
 #, python-format
 msgid "Header cannot be opened or does not match %s, %s."
 msgstr "La capçalera no es pot obrir o no coincideix amb %s, %s"
 
-#: ../rpmUtils/oldUtils.py:51
+#: ../rpmUtils/oldUtils.py:53
 #, python-format
 msgid "RPM %s fails md5 check"
 msgstr "Falla la comprobació md5 per al RPM %s"
 
-#: ../rpmUtils/oldUtils.py:149
+#: ../rpmUtils/oldUtils.py:151
 msgid "Could not open RPM database for reading. Perhaps it is already in use?"
-msgstr "No s'ha pogut obrir la base de dades RPM per a llegir-la. Potser ja està en ús?"
+msgstr ""
+"No s'ha pogut obrir la base de dades RPM per a llegir-la. Potser ja està en "
+"ús?"
 
-#: ../rpmUtils/oldUtils.py:181
+#: ../rpmUtils/oldUtils.py:183
 msgid "Got an empty Header, something has gone wrong"
 msgstr "S'ha obtingut una capçalera buida, alguna cosa ha anat malament"
 
-#: ../rpmUtils/oldUtils.py:251
-#: ../rpmUtils/oldUtils.py:258
-#: ../rpmUtils/oldUtils.py:261
-#: ../rpmUtils/oldUtils.py:264
+#: ../rpmUtils/oldUtils.py:253 ../rpmUtils/oldUtils.py:260
+#: ../rpmUtils/oldUtils.py:263 ../rpmUtils/oldUtils.py:266
 #, python-format
 msgid "Damaged Header %s"
 msgstr "Capçalera malmesa %s"
 
-#: ../rpmUtils/oldUtils.py:279
+#: ../rpmUtils/oldUtils.py:281
 #, python-format
 msgid "Error opening rpm %s - error %s"
-msgstr "S'ha produïut un error en obrir rpm %s - error %s"
+msgstr "S'ha produït un error en obrir l'rpm %s - error %s"
+
+#~ msgid "Matching packages for package list to user args"
+#~ msgstr ""
+#~ "S'està comparant els paquets per a la llista de paquets amb els arguments "
+#~ "de l'usuari"
+
+#~ 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"
+#~ "Resum de transaccions\n"
+#~ "%s\n"
+#~ "Instal·la  %5.5s paquets         \n"
+#~ "Actualitza %5.5s paquets         \n"
+#~ "Esborra    %5.5s paquets         \n"
+
+#~ msgid "excluding for cost: %s from %s"
+#~ msgstr "s'està excloent per cost: %s de %s"
+
+#~ msgid "Excluding Packages in global exclude list"
+#~ msgstr "S'estan excloent paquets en la llista global d'exclusió"
+
+#~ msgid "Excluding Packages from %s"
+#~ msgstr "S'estan excloent paquets de %s"
+
+#~ msgid "Reducing %s to included packages only"
+#~ msgstr "S'està reduint %s únicament a paquets inclosos."
+
+#~ msgid "Keeping included package %s"
+#~ msgstr "S'està mantenint el paquet inclòs %s"
+
+#~ msgid "Removing unmatched package %s"
+#~ msgstr "S'està esborrant el paquet sense coincidències %s"
+
+#~ msgid "Finished"
+#~ msgstr "Finalitzat"
 
 #~ msgid "Entering rpm code"
 #~ msgstr "S'està entrant en codi rpm"
+
 #~ msgid "Leaving rpm code"
 #~ msgstr "Deixant codi rpm"
+
 #~ msgid "Parsing package install arguments"
 #~ msgstr "S'estan analitzant els arguments del paquet a instal·lar"
+
 #~ msgid "Invalid versioned dependency string, try quoting it."
 #~ msgstr ""
 #~ "La cadena de versió de dependència és invàlida, proveu-ho entre cometes."
-
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 0000000..18305e3
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,2518 @@
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Adam Pribyl <pribyl@lowlevel.cz>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-09-29 09:25+0000\n"
+"PO-Revision-Date: 2009-09-29 17:44+0200\n"
+"Last-Translator: Adam Pribyl <pribyl@lowlevel.cz>\n"
+"Language-Team: Czech <fedora-cs-list@redhat.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: ../callback.py:48 ../output.py:940 ../yum/rpmtrans.py:71
+msgid "Updating"
+msgstr "Aktualizuje se"
+
+#: ../callback.py:49 ../yum/rpmtrans.py:72
+msgid "Erasing"
+msgstr "Maže se"
+
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:939
+#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
+msgid "Installing"
+msgstr "Instaluje se"
+
+#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
+msgid "Obsoleted"
+msgstr "Zastaralé"
+
+#: ../callback.py:54 ../output.py:1063 ../output.py:1401
+msgid "Updated"
+msgstr "Aktualizováno"
+
+#: ../callback.py:55 ../output.py:1397
+msgid "Erased"
+msgstr "Smazáno"
+
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1061
+#: ../output.py:1393
+msgid "Installed"
+msgstr "Nainstalováno"
+
+#: ../callback.py:130
+msgid "No header - huh?"
+msgstr "Bez hlavičky???"
+
+#: ../callback.py:168
+msgid "Repackage"
+msgstr "Přebalit"
+
+#: ../callback.py:189
+#, python-format
+msgid "Error: invalid output state: %s for %s"
+msgstr "Chyba: neplatný výstupní stav: %s pro %s"
+
+#: ../callback.py:212
+#, python-format
+msgid "Erased: %s"
+msgstr "Smazáno: %s"
+
+#: ../callback.py:217 ../output.py:941
+msgid "Removing"
+msgstr "Odstraňuje se"
+
+#: ../callback.py:219 ../yum/rpmtrans.py:77
+msgid "Cleanup"
+msgstr "Čiští se"
+
+#: ../cli.py:108
+#, python-format
+msgid "Command \"%s\" already defined"
+msgstr "Přikaz \"%s\" již definován"
+
+#: ../cli.py:120
+msgid "Setting up repositories"
+msgstr "Nastavují se repozitáře"
+
+#: ../cli.py:131
+msgid "Reading repository metadata in from local files"
+msgstr "Načítají se metadata repozitářů z lokálních souborů"
+
+#: ../cli.py:194 ../utils.py:102
+#, python-format
+msgid "Config Error: %s"
+msgstr "Chyba konfigurace: %s"
+
+#: ../cli.py:197 ../cli.py:1253 ../utils.py:105
+#, python-format
+msgid "Options Error: %s"
+msgstr "Chybná volba: %s"
+
+#: ../cli.py:225
+#, python-format
+msgid "  Installed: %s-%s at %s"
+msgstr "  Nainstalováno: %s-%s na %s"
+
+#: ../cli.py:227
+#, python-format
+msgid "  Built    : %s at %s"
+msgstr "  Sestaveno    : %s na %s"
+
+#: ../cli.py:229
+#, python-format
+msgid "  Committed: %s at %s"
+msgstr "  Odesláno     : %s na %s"
+
+#: ../cli.py:268
+msgid "You need to give some command"
+msgstr "Musíte zadat nějaký příkaz"
+
+#: ../cli.py:311
+msgid "Disk Requirements:\n"
+msgstr "Diskové požadavky:\n"
+
+#: ../cli.py:313
+#, python-format
+msgid "  At least %dMB needed on the %s filesystem.\n"
+msgstr "  Je potřeba alespoň %dMB na souborovém systému %s.\n"
+
+#. TODO: simplify the dependency errors?
+#. Fixup the summary
+#: ../cli.py:318
+msgid ""
+"Error Summary\n"
+"-------------\n"
+msgstr ""
+"Přehled chyb\n"
+"------------\n"
+
+#: ../cli.py:361
+msgid "Trying to run the transaction but nothing to do. Exiting."
+msgstr "Pokus o spuštění transakce, ale není co dělat. Ukončeno."
+
+#: ../cli.py:397
+msgid "Exiting on user Command"
+msgstr "Ukončeno na přikaz uživatele"
+
+#: ../cli.py:401
+msgid "Downloading Packages:"
+msgstr "Stahují se balíčky:"
+
+#: ../cli.py:406
+msgid "Error Downloading Packages:\n"
+msgstr "Chyba stahování balíčků:\n"
+
+#: ../cli.py:420 ../yum/__init__.py:3995
+msgid "Running rpm_check_debug"
+msgstr "Spuští se rpm_check_debug"
+
+#: ../cli.py:429 ../yum/__init__.py:4004
+msgid "ERROR You need to update rpm to handle:"
+msgstr "CHYBA Je potřeba aktualizovat rpm k provedení:"
+
+#: ../cli.py:431 ../yum/__init__.py:4007
+msgid "ERROR with rpm_check_debug vs depsolve:"
+msgstr "CHYBA v rpm_check_debug vs depsolve:"
+
+#: ../cli.py:437
+msgid "RPM needs to be updated"
+msgstr "Je potřeba aktualizovat RPM"
+
+#: ../cli.py:438
+#, python-format
+msgid "Please report this error in %s"
+msgstr "Prosím nahlašte tuto chybu v %s"
+
+#: ../cli.py:444
+msgid "Running Transaction Test"
+msgstr "Spouští se test transakcí"
+
+#: ../cli.py:460
+msgid "Finished Transaction Test"
+msgstr "Test transakcí dokončen"
+
+#: ../cli.py:462
+msgid "Transaction Check Error:\n"
+msgstr "Chyba při kontrole transakcí:\n"
+
+#: ../cli.py:469
+msgid "Transaction Test Succeeded"
+msgstr "Test transakcí uspěl"
+
+#: ../cli.py:491
+msgid "Running Transaction"
+msgstr "Spouští se transakce"
+
+#: ../cli.py:521
+msgid ""
+"Refusing to automatically import keys when running unattended.\n"
+"Use \"-y\" to override."
+msgstr ""
+"Nelze automaticky importovat klíče při spuštění bez obsluhy.\n"
+"Použite \"-y\" k potlačení."
+
+#: ../cli.py:540 ../cli.py:574
+msgid "  * Maybe you meant: "
+msgstr "  * Možná jste myslel: "
+
+#: ../cli.py:557 ../cli.py:565
+#, python-format
+msgid "Package(s) %s%s%s available, but not installed."
+msgstr "Balíček(y) %s%s%s dostupné, ale nenainstalované."
+
+#: ../cli.py:571 ../cli.py:602 ../cli.py:680
+#, python-format
+msgid "No package %s%s%s available."
+msgstr "Žádné dostupné balíčky %s%s%s."
+
+#: ../cli.py:607 ../cli.py:740
+msgid "Package(s) to install"
+msgstr "Balíček(y) k instalaci"
+
+#: ../cli.py:608 ../cli.py:686 ../cli.py:719 ../cli.py:741
+#: ../yumcommands.py:159
+msgid "Nothing to do"
+msgstr "Není co dělat"
+
+#: ../cli.py:641
+#, python-format
+msgid "%d packages marked for Update"
+msgstr "%d balíčků označeno k aktualizaci"
+
+#: ../cli.py:644
+msgid "No Packages marked for Update"
+msgstr "Žádné balíčky označené k aktualizaci"
+
+#: ../cli.py:658
+#, python-format
+msgid "%d packages marked for removal"
+msgstr "%d balíčků označeno ke smazání"
+
+#: ../cli.py:661
+msgid "No Packages marked for removal"
+msgstr "Žádné balíčky označené k odstranění"
+
+#: ../cli.py:685
+msgid "Package(s) to downgrade"
+msgstr "Balíček(y) ke snížení verze"
+
+#: ../cli.py:709
+#, python-format
+msgid " (from %s)"
+msgstr " (z %s)"
+
+#: ../cli.py:711
+#, python-format
+msgid "Installed package %s%s%s%s not available."
+msgstr "Instalované balíčky  %s%s%s%s nejsou dostupné"
+
+#: ../cli.py:718
+msgid "Package(s) to reinstall"
+msgstr "Balíček(y) k reinstalaci"
+
+#: ../cli.py:731
+msgid "No Packages Provided"
+msgstr "Žádný balíček neposkytuje"
+
+#: ../cli.py:815
+#, python-format
+msgid "Warning: No matches found for: %s"
+msgstr "Varování: Žádný balíček odpovídající: %s"
+
+#: ../cli.py:818
+msgid "No Matches found"
+msgstr "Nebyla nalezena shoda"
+
+#: ../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 ""
+"Varování: 3.0.x verze yumu by chybně hledala shodu se jménem souboru.\n"
+" Můžete použít \"%s*/%s%s\" a/nebo \"%s*bin/%s%s\" k dosažení tohoto chování"
+
+#: ../cli.py:873
+#, python-format
+msgid "No Package Found for %s"
+msgstr "Nebyly nalezeny balíčky pro %s"
+
+#: ../cli.py:885
+msgid "Cleaning up Everything"
+msgstr "Čistí se vše"
+
+#: ../cli.py:899
+msgid "Cleaning up Headers"
+msgstr "Čistí se hlavičky"
+
+#: ../cli.py:902
+msgid "Cleaning up Packages"
+msgstr "Čistí se balíčky"
+
+#: ../cli.py:905
+msgid "Cleaning up xml metadata"
+msgstr "Čistí se XML metadata"
+
+#: ../cli.py:908
+msgid "Cleaning up database cache"
+msgstr "Čistí se skladiště databáze"
+
+#: ../cli.py:911
+msgid "Cleaning up expire-cache metadata"
+msgstr "Čistí se vypršelá metadata ze skladiště"
+
+#: ../cli.py:914
+msgid "Cleaning up plugins"
+msgstr "Čistí se zásuvné moduly"
+
+#: ../cli.py:939
+msgid "Installed Groups:"
+msgstr "Naintalované skupiny:"
+
+#: ../cli.py:951
+msgid "Available Groups:"
+msgstr "Dostupné skupiny:"
+
+#: ../cli.py:961
+msgid "Done"
+msgstr "Dokončeno"
+
+#: ../cli.py:972 ../cli.py:990 ../cli.py:996 ../yum/__init__.py:2621
+#, python-format
+msgid "Warning: Group %s does not exist."
+msgstr "Varování: skupina %s neexistuje."
+
+#: ../cli.py:1000
+msgid "No packages in any requested group available to install or update"
+msgstr ""
+"V žádné s požadovaných skupin nejsou balíčky k instalaci nebo aktualizaci"
+
+#: ../cli.py:1002
+#, python-format
+msgid "%d Package(s) to Install"
+msgstr "%d balíček(ů) k instalaci"
+
+#: ../cli.py:1012 ../yum/__init__.py:2633
+#, python-format
+msgid "No group named %s exists"
+msgstr "Neexistuje skupina se jménem %s"
+
+#: ../cli.py:1018
+msgid "No packages to remove from groups"
+msgstr "Žádné balíčky k odstranění ve skupině"
+
+#: ../cli.py:1020
+#, python-format
+msgid "%d Package(s) to remove"
+msgstr "%d balíček(ů) k odstranění"
+
+#: ../cli.py:1062
+#, python-format
+msgid "Package %s is already installed, skipping"
+msgstr "Balíček %s je již nainstalován, přeskakuji."
+
+#: ../cli.py:1073
+#, python-format
+msgid "Discarding non-comparable pkg %s.%s"
+msgstr "Skartuje se neporovnatelný balíček %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 "Žádný jiný %s nainstalován, přidán do seznamu k potenciální instalaci"
+
+#: ../cli.py:1119
+msgid "Plugin Options"
+msgstr "Možnosti zásuvného modulu"
+
+#: ../cli.py:1127
+#, python-format
+msgid "Command line error: %s"
+msgstr "Chyba příkazové řádky: %s"
+
+#: ../cli.py:1140
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s: %s option requires an argument"
+msgstr ""
+"\n"
+"\n"
+"%s: %s volba vyžaduje argument"
+
+#: ../cli.py:1193
+msgid "--color takes one of: auto, always, never"
+msgstr "--color přijímá jeden z: auto, always, never"
+
+#: ../cli.py:1300
+msgid "show this help message and exit"
+msgstr "ukázat tuto nápovedu a skončit"
+
+#: ../cli.py:1304
+msgid "be tolerant of errors"
+msgstr "tolerovat chyby"
+
+#: ../cli.py:1306
+msgid "run entirely from cache, don't update cache"
+msgstr "spustit vše z neaktualizovaného skladiště"
+
+#: ../cli.py:1308
+msgid "config file location"
+msgstr "umístění konfiguračního souboru"
+
+#: ../cli.py:1310
+msgid "maximum command wait time"
+msgstr "maximální čas čekání na příkaz"
+
+#: ../cli.py:1312
+msgid "debugging output level"
+msgstr "úroveň výstupních ladících informací"
+
+#: ../cli.py:1316
+msgid "show duplicates, in repos, in list/search commands"
+msgstr "ukázat duplikáty v repozitářích, v list/search příkazech"
+
+#: ../cli.py:1318
+msgid "error output level"
+msgstr "úroveň výstupu chyb"
+
+#: ../cli.py:1321
+msgid "quiet operation"
+msgstr "tichý chod"
+
+#: ../cli.py:1323
+msgid "verbose operation"
+msgstr "užvaněný chod"
+
+#: ../cli.py:1325
+msgid "answer yes for all questions"
+msgstr "odpovědět ano na všechny otázky"
+
+#: ../cli.py:1327
+msgid "show Yum version and exit"
+msgstr "ukázat verzi yumu a skončit"
+
+#: ../cli.py:1328
+msgid "set install root"
+msgstr "nastavit kořen instalace "
+
+#: ../cli.py:1332
+msgid "enable one or more repositories (wildcards allowed)"
+msgstr "povolit jeden nebo více repozitářů (zástupné znaky povoleny)"
+
+#: ../cli.py:1336
+msgid "disable one or more repositories (wildcards allowed)"
+msgstr "zakázat jeden nebo více repozitářů (zástupné znaky povoleny)"
+
+#: ../cli.py:1339
+msgid "exclude package(s) by name or glob"
+msgstr "vyřadit balíček(y) podle jména nebo globálně"
+
+#: ../cli.py:1341
+msgid "disable exclude from main, for a repo or for everything"
+msgstr "zakázat vyřazení z hlavní části pro repozitář nebo pro vše"
+
+#: ../cli.py:1344
+msgid "enable obsoletes processing during updates"
+msgstr "povolit zpracování zastaralých během aktualizací"
+
+#: ../cli.py:1346
+msgid "disable Yum plugins"
+msgstr "zakázat zásuvné moduly yumu"
+
+#: ../cli.py:1348
+msgid "disable gpg signature checking"
+msgstr "zakázat kontrolu GPG podpisů"
+
+#: ../cli.py:1350
+msgid "disable plugins by name"
+msgstr "zakázat zásuvné moduly podle jména"
+
+#: ../cli.py:1353
+msgid "enable plugins by name"
+msgstr "povolit zásuvné moduly podle jména"
+
+#: ../cli.py:1356
+msgid "skip packages with depsolving problems"
+msgstr "přeskočit balíčky s problémy v závislostech"
+
+#: ../cli.py:1358
+msgid "control whether color is used"
+msgstr "kontrola zda jsou použity barvy"
+
+#: ../output.py:305
+msgid "Jan"
+msgstr "Led"
+
+#: ../output.py:305
+msgid "Feb"
+msgstr "Úno"
+
+#: ../output.py:305
+msgid "Mar"
+msgstr "Bře"
+
+#: ../output.py:305
+msgid "Apr"
+msgstr "Dub"
+
+#: ../output.py:305
+msgid "May"
+msgstr "Kvě"
+
+#: ../output.py:305
+msgid "Jun"
+msgstr "Čer"
+
+#: ../output.py:306
+msgid "Jul"
+msgstr "Čec"
+
+#: ../output.py:306
+msgid "Aug"
+msgstr "Srp"
+
+#: ../output.py:306
+msgid "Sep"
+msgstr "Zář"
+
+#: ../output.py:306
+msgid "Oct"
+msgstr "Řij"
+
+#: ../output.py:306
+msgid "Nov"
+msgstr "Lis"
+
+#: ../output.py:306
+msgid "Dec"
+msgstr "Pro"
+
+#: ../output.py:316
+msgid "Trying other mirror."
+msgstr "Zkouší se jiné zrcadlo"
+
+#: ../output.py:538
+#, python-format
+msgid "Name       : %s%s%s"
+msgstr "Jméno      : %s%s%s"
+
+#: ../output.py:539
+#, python-format
+msgid "Arch       : %s"
+msgstr "Arch       : %s"
+
+#: ../output.py:541
+#, python-format
+msgid "Epoch      : %s"
+msgstr "Epocha     : %s"
+
+#: ../output.py:542
+#, python-format
+msgid "Version    : %s"
+msgstr "Verze      : %s"
+
+#: ../output.py:543
+#, python-format
+msgid "Release    : %s"
+msgstr "Vydání     : %s"
+
+#: ../output.py:544
+#, python-format
+msgid "Size       : %s"
+msgstr "Velikost   : %s"
+
+#: ../output.py:545
+#, python-format
+msgid "Repo       : %s"
+msgstr "Repo       : %s"
+
+#: ../output.py:547
+#, python-format
+msgid "From repo  : %s"
+msgstr "Z repa      : %s"
+
+#: ../output.py:549
+#, python-format
+msgid "Committer  : %s"
+msgstr "Potvrzeno  : %s"
+
+#: ../output.py:550
+#, python-format
+msgid "Committime : %s"
+msgstr "Čas povrzení : %s"
+
+#: ../output.py:551
+#, python-format
+msgid "Buildtime  : %s"
+msgstr "Čas sestavení : %s"
+
+#: ../output.py:553
+#, python-format
+msgid "Installtime: %s"
+msgstr "Čas instalace : %s"
+
+#: ../output.py:554
+msgid "Summary    : "
+msgstr "Souhrn     : "
+
+#: ../output.py:556
+#, python-format
+msgid "URL        : %s"
+msgstr "URL        : %s"
+
+#: ../output.py:557
+#, python-format
+msgid "License    : %s"
+msgstr "Licence    : %s"
+
+#: ../output.py:558
+msgid "Description: "
+msgstr "Popis      :"
+
+#: ../output.py:626
+msgid "y"
+msgstr "a"
+
+#: ../output.py:626
+msgid "yes"
+msgstr "ano"
+
+#: ../output.py:627
+msgid "n"
+msgstr "n"
+
+#: ../output.py:627
+msgid "no"
+msgstr "ne"
+
+#: ../output.py:631
+msgid "Is this ok [y/N]: "
+msgstr "V pořádku [a/N]: "
+
+#: ../output.py:722
+#, python-format
+msgid ""
+"\n"
+"Group: %s"
+msgstr ""
+"\n"
+"Skupina: %s"
+
+#: ../output.py:726
+#, python-format
+msgid " Group-Id: %s"
+msgstr " ID skupiny: %s"
+
+#: ../output.py:731
+#, python-format
+msgid " Description: %s"
+msgstr " Popis: %s"
+
+#: ../output.py:733
+msgid " Mandatory Packages:"
+msgstr " Povinné balíčky:"
+
+#: ../output.py:734
+msgid " Default Packages:"
+msgstr " Výchozí balíčky:"
+
+#: ../output.py:735
+msgid " Optional Packages:"
+msgstr " Volitelné balíčky:"
+
+#: ../output.py:736
+msgid " Conditional Packages:"
+msgstr " Podmínečné balíčky:"
+
+#: ../output.py:756
+#, python-format
+msgid "package: %s"
+msgstr "balíčky: %s"
+
+#: ../output.py:758
+msgid "  No dependencies for this package"
+msgstr "  Pro tento balíček nejsou žádné závislosti"
+
+#: ../output.py:763
+#, python-format
+msgid "  dependency: %s"
+msgstr "  závislosti: %s"
+
+#: ../output.py:765
+msgid "   Unsatisfied dependency"
+msgstr "   Neuspokojené závislosti"
+
+#: ../output.py:837
+#, python-format
+msgid "Repo        : %s"
+msgstr "Repo        : %s"
+
+#: ../output.py:838
+msgid "Matched from:"
+msgstr "Shoda s:"
+
+#: ../output.py:847
+msgid "Description : "
+msgstr "Popis       : "
+
+#: ../output.py:850
+#, python-format
+msgid "URL         : %s"
+msgstr "URL         : %s"
+
+#: ../output.py:853
+#, python-format
+msgid "License     : %s"
+msgstr "Licence     : %s"
+
+#: ../output.py:856
+#, python-format
+msgid "Filename    : %s"
+msgstr "Soubor      : %s"
+
+#: ../output.py:860
+msgid "Other       : "
+msgstr "Další       : "
+
+#: ../output.py:893
+msgid "There was an error calculating total download size"
+msgstr "Pří výpočtu celkové velikosti stahování nastala chyba"
+
+#: ../output.py:898
+#, python-format
+msgid "Total size: %s"
+msgstr "Celková velikost: %s"
+
+#: ../output.py:901
+#, python-format
+msgid "Total download size: %s"
+msgstr "Celková velikost stahování: %s"
+
+#: ../output.py:942
+msgid "Reinstalling"
+msgstr "Reinstaluje se"
+
+#: ../output.py:943
+msgid "Downgrading"
+msgstr "Snižuje se verze"
+
+#: ../output.py:944
+msgid "Installing for dependencies"
+msgstr "Instaluje se kvůli závislostem"
+
+#: ../output.py:945
+msgid "Updating for dependencies"
+msgstr "Aktualizuje se kvůli závislostem"
+
+#: ../output.py:946
+msgid "Removing for dependencies"
+msgstr "Odstraňuje se kvůli závislostem"
+
+#: ../output.py:953 ../output.py:1065
+msgid "Skipped (dependency problems)"
+msgstr "Přeskočeno (problémy se závislostmi)"
+
+#: ../output.py:976
+msgid "Package"
+msgstr "Balíček"
+
+#: ../output.py:976
+msgid "Arch"
+msgstr "Arch"
+
+#: ../output.py:977
+msgid "Version"
+msgstr "Verze"
+
+#: ../output.py:977
+msgid "Repository"
+msgstr "Repozitář"
+
+#: ../output.py:978
+msgid "Size"
+msgstr "Velikost"
+
+#: ../output.py:990
+#, python-format
+msgid ""
+"     replacing  %s%s%s.%s %s\n"
+"\n"
+msgstr ""
+"     nahrazuje se  %s%s%s.%s %s\n"
+"\n"
+
+#: ../output.py:999
+#, python-format
+msgid ""
+"\n"
+"Transaction Summary\n"
+"%s\n"
+msgstr ""
+"\n"
+"Shrnutí transakce\n"
+"%s\n"
+
+#: ../output.py:1006
+#, python-format
+msgid ""
+"Install   %5.5s Package(s)\n"
+"Upgrade   %5.5s Package(s)\n"
+msgstr ""
+"Instalace   %5.5s balíčku/ů\n"
+"Aktualizace   %5.5s balíčku/ů\n"
+
+#: ../output.py:1015
+#, python-format
+msgid ""
+"Remove    %5.5s Package(s)\n"
+"Reinstall %5.5s Package(s)\n"
+"Downgrade %5.5s Package(s)\n"
+msgstr ""
+"Odstraňení   %5.5s balíčku/ů\n"
+"Reinstalace   %5.5s balíčku/ů\n"
+"Snížení verze   %5.5s balíčku/ů\n"
+
+#: ../output.py:1059
+msgid "Removed"
+msgstr "Odstraněno"
+
+#: ../output.py:1060
+msgid "Dependency Removed"
+msgstr "Odstraněné závislosti"
+
+#: ../output.py:1062
+msgid "Dependency Installed"
+msgstr "Nainstalované závislosti"
+
+#: ../output.py:1064
+msgid "Dependency Updated"
+msgstr "Aktualizované závislosti"
+
+#: ../output.py:1066
+msgid "Replaced"
+msgstr "Nahrazeno"
+
+#: ../output.py:1067
+msgid "Failed"
+msgstr "Selhalo"
+
+#. Delta between C-c's so we treat as exit
+#: ../output.py:1133
+msgid "two"
+msgstr "dvě"
+
+#. 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:1144
+#, python-format
+msgid ""
+"\n"
+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
+"seconds\n"
+"to exit.\n"
+msgstr ""
+"\n"
+" Aktuální stahování přerušeno, %spřerušte (ctrl-c) znovu%s během %s%s%s "
+"sekund\n"
+"pro ukončení.\n"
+
+#: ../output.py:1155
+msgid "user interrupt"
+msgstr "Přerušeno uživatelem"
+
+#: ../output.py:1173
+msgid "Total"
+msgstr "Celkem"
+
+#: ../output.py:1201
+msgid "<unset>"
+msgstr "<nenastaveno>"
+
+#: ../output.py:1202
+msgid "System"
+msgstr "Systém"
+
+#: ../output.py:1238
+msgid "Bad transaction IDs, or package(s), given"
+msgstr "Zadáné špatné ID transakce nebo balíčku/ů"
+
+#: ../output.py:1282 ../yumcommands.py:1148 ../yum/__init__.py:1060
+msgid "Warning: RPMDB has been altered since the last yum transaction."
+msgstr "Varování: RPMDB byla od poslední yum transakce změněna"
+
+#: ../output.py:1287
+msgid "No transaction ID given"
+msgstr "Nezadáno ID transakce"
+
+#: ../output.py:1295
+msgid "Bad transaction ID given"
+msgstr "Špatné ID transakce"
+
+#: ../output.py:1300
+msgid "Not found given transaction ID"
+msgstr "Zadané ID transakce nenalezeno"
+
+#: ../output.py:1308
+msgid "Found more than one transaction ID!"
+msgstr "Nalezeno více než jedno ID transakce!"
+
+#: ../output.py:1329
+msgid "No transaction ID, or package, given"
+msgstr "Nebylo zadáno ID transakce nebo balíčku/ů"
+
+#: ../output.py:1355
+msgid "Transaction ID :"
+msgstr "ID transakce:"
+
+#: ../output.py:1357
+msgid "Begin time     :"
+msgstr "Čas startu    :"
+
+#: ../output.py:1360 ../output.py:1362
+msgid "Begin rpmdb    :"
+msgstr "Začátek rpmdb  :"
+
+#: ../output.py:1376, python-format
+msgid "(%s seconds)"
+msgstr "(%s sekund)"
+
+#: ../output.py:1377
+msgid "End time       :"
+msgstr "Konečný čas   :"
+
+#: ../output.py:1380 ../output.py:1382
+msgid "End rpmdb      :"
+msgstr "Konec rpmdb    :"
+
+#: ../output.py:1383
+msgid "User           :"
+msgstr "Uživatel       :"
+
+#: ../output.py:1385 ../output.py:1387 ../output.py:1389
+msgid "Return-Code    :"
+msgstr "Vrácený kód    :"
+
+#: ../output.py:1385
+msgid "Aborted"
+msgstr "Přerušeno"
+
+#: ../output.py:1387
+msgid "Failure:"
+msgstr "Selhalo:"
+
+#: ../output.py:1389
+msgid "Success"
+msgstr "Úspěch"
+
+#: ../output.py:1390
+msgid "Transaction performed with  :"
+msgstr "Transakce proběhla s  :"
+
+#: ../output.py:1403
+msgid "Downgraded"
+msgstr "Snížena verze"
+
+#. multiple versions installed, both older and newer
+#: ../output.py:1405
+msgid "Weird"
+msgstr "Divné"
+
+#: ../output.py:1407
+msgid "Packages Altered:"
+msgstr "Pozměněné balíčky:"
+
+#: ../output.py:1475
+msgid "Last day"
+msgstr "Poslední den"
+
+#: ../output.py:1476
+msgid "Last week"
+msgstr "Poslední týden"
+
+#: ../output.py:1477
+msgid "Last 2 weeks"
+msgstr "Poslední 2 týdny"
+
+#. US default :p
+#: ../output.py:1478
+msgid "Last 3 months"
+msgstr "Poslední 3 měsíce"
+
+#: ../output.py:1479
+msgid "Last 6 months"
+msgstr "Posledních 6 měsíců"
+
+#: ../output.py:1480
+msgid "Last year"
+msgstr "Poslední rok"
+
+#: ../output.py:1481
+msgid "Over a year ago"
+msgstr "Více než rok"
+
+#: ../output.py:1510
+msgid "installed"
+msgstr "nainstalováno"
+
+#: ../output.py:1511
+msgid "updated"
+msgstr "aktualizováno"
+
+#: ../output.py:1512
+msgid "obsoleted"
+msgstr "zastaralo"
+
+#: ../output.py:1513
+msgid "erased"
+msgstr "vymazáno"
+
+#: ../output.py:1517
+#, python-format
+msgid "---> Package %s.%s %s:%s-%s set to be %s"
+msgstr "---> Balíček %s.%s %s:%s-%s nastaven k/ke %s"
+
+#: ../output.py:1524
+msgid "--> Running transaction check"
+msgstr "--> Spouští se kontrola transakce"
+
+#: ../output.py:1529
+msgid "--> Restarting Dependency Resolution with new changes."
+msgstr "--> Restartuje se řešení závislostí s novými změnami."
+
+#: ../output.py:1534
+msgid "--> Finished Dependency Resolution"
+msgstr "--> Řešení závislostí dokončeno"
+
+#: ../output.py:1539 ../output.py:1544
+#, python-format
+msgid "--> Processing Dependency: %s for package: %s"
+msgstr "--> Zpracování závislosti: %s pro balíček: %s"
+
+#: ../output.py:1548
+#, python-format
+msgid "--> Unresolved Dependency: %s"
+msgstr "--> Nevyřešená závislost: %s"
+
+#: ../output.py:1554 ../output.py:1559
+#, python-format
+msgid "--> Processing Conflict: %s conflicts %s"
+msgstr "--> Zpracování konfliktu: %s je v konfliktu s %s"
+
+#: ../output.py:1563
+msgid "--> Populating transaction set with selected packages. Please wait."
+msgstr "--> Přidávají se do transakce vybrané balíčky. Prosím čekejte."
+
+#: ../output.py:1567
+#, python-format
+msgid "---> Downloading header for %s to pack into transaction set."
+msgstr "---> Stahují se hlavičky %s pro přidání do transakce."
+
+#: ../utils.py:132 ../yummain.py:42
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel"
+msgstr ""
+"\n"
+"\n"
+"Ukončeno na základě pokynu uživatele"
+
+#: ../utils.py:138 ../yummain.py:48
+msgid ""
+"\n"
+"\n"
+"Exiting on Broken Pipe"
+msgstr ""
+"\n"
+"\n"
+"Ukončeno kvůli nefunkční rouře"
+
+#: ../utils.py:140 ../yummain.py:50, python-format
+msgid ""
+"\n"
+"\n"
+"%s"
+msgstr ""
+"\n"
+"\n"
+"%s"
+
+#: ../utils.py:179 ../yummain.py:273
+msgid "Complete!"
+msgstr "Hotovo!"
+
+#: ../yumcommands.py:42
+msgid "You need to be root to perform this command."
+msgstr "Pro spuštění tohoto příkazu potřebujete být root."
+
+#: ../yumcommands.py:49
+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"
+"Povolili jste kontrolu balíčků pomocí GPG klíčů, což je dobrá věc.\n"
+"Bohužel nemáte ale nainstalován žádný veřejný GPG klíč. Musíte stáhnout "
+"klíč\n"
+"pro blíček, který si přejete nainstalovat a přidat jej příkazem.\n"
+"    rpm --import public.gpg.key\n"
+"\n"
+"\n"
+"Jako druhou možnost můžete uvést URL ke klíči, který chcete použít\n"
+"pro repozitář ve volbě 'gpgkey' v nastavení repozitáře a yum\n"
+"jej nainstaluje.\n"
+"\n"
+"Pro více informací kontaktujte vašeho distributora nebo správce balíčku.\n"
+
+#: ../yumcommands.py:69
+#, python-format
+msgid "Error: Need to pass a list of pkgs to %s"
+msgstr "Chyba: Je potřeba předat seznam balíčků do %s"
+
+#: ../yumcommands.py:75
+msgid "Error: Need an item to match"
+msgstr "Chyba: K nalezení shody je potřeba předmět"
+
+#: ../yumcommands.py:81
+msgid "Error: Need a group or list of groups"
+msgstr "Chyba: Je potřeba skupina nebo seznam skupin"
+
+#: ../yumcommands.py:90
+#, python-format
+msgid "Error: clean requires an option: %s"
+msgstr "Chyba: clean vyžaduje volbu: %s"
+
+#: ../yumcommands.py:95
+#, python-format
+msgid "Error: invalid clean argument: %r"
+msgstr "Chyba: Neplatný argument pro clean: %r"
+
+#: ../yumcommands.py:108
+msgid "No argument to shell"
+msgstr "Shell nemá žádný argument"
+
+#: ../yumcommands.py:110
+#, python-format
+msgid "Filename passed to shell: %s"
+msgstr "Jméno souboru předané shelu: %s"
+
+#: ../yumcommands.py:114
+#, python-format
+msgid "File %s given as argument to shell does not exist."
+msgstr "Soubor %s předaný jako argument shellu neexistuje."
+
+#: ../yumcommands.py:120
+msgid "Error: more than one file given as argument to shell."
+msgstr "Chyba: Více než jeden soubor předán shellu jako argument."
+
+#: ../yumcommands.py:169
+msgid "PACKAGE..."
+msgstr "Balíček..."
+
+#: ../yumcommands.py:172
+msgid "Install a package or packages on your system"
+msgstr "Nainstalujte balíček nebo balíčky do vašeho systému"
+
+#: ../yumcommands.py:180
+msgid "Setting up Install Process"
+msgstr "Uspořádává se instalační průběh"
+
+#: ../yumcommands.py:191
+msgid "[PACKAGE...]"
+msgstr "[Balíček...]"
+
+#: ../yumcommands.py:194
+msgid "Update a package or packages on your system"
+msgstr "Aktualizujte balíček nebo balíčky na vašem systému"
+
+#: ../yumcommands.py:201
+msgid "Setting up Update Process"
+msgstr "Uspořádává se průběh aktualizace"
+
+#: ../yumcommands.py:246
+msgid "Display details about a package or group of packages"
+msgstr "Zobrazit detaily o balíčku nebo skupině balíčků"
+
+#: ../yumcommands.py:295
+msgid "Installed Packages"
+msgstr "Instalované balíčky"
+
+#: ../yumcommands.py:303
+msgid "Available Packages"
+msgstr "Dostupné balíčky"
+
+#: ../yumcommands.py:307
+msgid "Extra Packages"
+msgstr "Dodatečné balíčky"
+
+#: ../yumcommands.py:311
+msgid "Updated Packages"
+msgstr "Aktualizované balíčky"
+
+#. This only happens in verbose mode
+#: ../yumcommands.py:319 ../yumcommands.py:326 ../yumcommands.py:602
+msgid "Obsoleting Packages"
+msgstr "Zastaralé balíčky"
+
+#: ../yumcommands.py:328
+msgid "Recently Added Packages"
+msgstr "Nově přidané balíčky"
+
+#: ../yumcommands.py:335
+msgid "No matching Packages to list"
+msgstr "Nenalezeny shodné balíčky"
+
+#: ../yumcommands.py:349
+msgid "List a package or groups of packages"
+msgstr "Vypsat balíček nebo skupiny balíčků"
+
+#: ../yumcommands.py:361
+msgid "Remove a package or packages from your system"
+msgstr "Odstranit balíček nebo balíčky ze systému"
+
+#: ../yumcommands.py:368
+msgid "Setting up Remove Process"
+msgstr "Uspořádává se průběh odstranění"
+
+#: ../yumcommands.py:382
+msgid "Setting up Group Process"
+msgstr "Uspořádává se zpracování skupiny"
+
+#: ../yumcommands.py:388
+msgid "No Groups on which to run command"
+msgstr "Nenalezeny skupiny, na které by šlo příkaz aplikovat"
+
+#: ../yumcommands.py:401
+msgid "List available package groups"
+msgstr "Vypsat dostupné skupiny balíčků"
+
+#: ../yumcommands.py:418
+msgid "Install the packages in a group on your system"
+msgstr "Instalovat balíčky ze skupiny do systému"
+
+#: ../yumcommands.py:440
+msgid "Remove the packages in a group from your system"
+msgstr "Odstranit balíčky ze skupiny ze systému"
+
+#: ../yumcommands.py:467
+msgid "Display details about a package group"
+msgstr "Zobrazit detaily o skupině balíčků"
+
+#: ../yumcommands.py:491
+msgid "Generate the metadata cache"
+msgstr "Vygenerovat skladiště metadat"
+
+#: ../yumcommands.py:497
+msgid "Making cache files for all metadata files."
+msgstr "Vytváří se skladišťové soubory pro všechna metadata "
+
+#: ../yumcommands.py:498
+msgid "This may take a while depending on the speed of this computer"
+msgstr "Může to chvíli trvat v závislosti na rychosti tohoto počítače"
+
+#: ../yumcommands.py:519
+msgid "Metadata Cache Created"
+msgstr "Skladiště metadat vytvořeno"
+
+#: ../yumcommands.py:533
+msgid "Remove cached data"
+msgstr "Odstranit data ze skladiště"
+
+#: ../yumcommands.py:553
+msgid "Find what package provides the given value"
+msgstr "Nalézt balíček, který poskytuje danou hodnotu"
+
+#: ../yumcommands.py:573
+msgid "Check for available package updates"
+msgstr "Zkontrolovat dostupné aktualizace balíčku"
+
+#: ../yumcommands.py:622
+msgid "Search package details for the given string"
+msgstr "Nalézt detaily balíčku pro daný řetězec"
+
+#: ../yumcommands.py:628
+msgid "Searching Packages: "
+msgstr "Prohledávají se balíčky: "
+
+#: ../yumcommands.py:645
+msgid "Update packages taking obsoletes into account"
+msgstr "Aktualizovat balíčky a brát v úvahu zastaralé"
+
+#: ../yumcommands.py:653
+msgid "Setting up Upgrade Process"
+msgstr "Upořádává se průběh aktualizace"
+
+#: ../yumcommands.py:667
+msgid "Install a local RPM"
+msgstr "Instalovat lokální RPM"
+
+#: ../yumcommands.py:675
+msgid "Setting up Local Package Process"
+msgstr "Uspořádává se zpracování lokálního balíčku"
+
+#: ../yumcommands.py:694
+msgid "Determine which package provides the given dependency"
+msgstr "Určit který balíček poskytuje danou závislost"
+
+#: ../yumcommands.py:697
+msgid "Searching Packages for Dependency:"
+msgstr "Prohledávají se balíčky kvůli závislostem:"
+
+#: ../yumcommands.py:711
+msgid "Run an interactive yum shell"
+msgstr "Spustit interaktivní shell yum"
+
+#: ../yumcommands.py:717
+msgid "Setting up Yum Shell"
+msgstr "Nastavuje se yum shell"
+
+#: ../yumcommands.py:735
+msgid "List a package's dependencies"
+msgstr "Zobrazit závislosti balíčku"
+
+#: ../yumcommands.py:741
+msgid "Finding dependencies: "
+msgstr "Hledají se závíslosti: "
+
+#: ../yumcommands.py:757
+msgid "Display the configured software repositories"
+msgstr "Zobrazit nastavené softwarová repozitáře"
+
+#: ../yumcommands.py:809 ../yumcommands.py:810
+msgid "enabled"
+msgstr "povoleno"
+
+#: ../yumcommands.py:818 ../yumcommands.py:819
+msgid "disabled"
+msgstr "zakázáno"
+
+#: ../yumcommands.py:833
+msgid "Repo-id      : "
+msgstr "Repo-id      : "
+
+#: ../yumcommands.py:834
+msgid "Repo-name    : "
+msgstr "Repo-jméno   : "
+
+#: ../yumcommands.py:835
+msgid "Repo-status  : "
+msgstr "Repo-status  : "
+
+#: ../yumcommands.py:837
+msgid "Repo-revision: "
+msgstr "Repo-revize  : "
+
+#: ../yumcommands.py:841
+msgid "Repo-tags    : "
+msgstr "Repo-tagy    : "
+
+#: ../yumcommands.py:847
+msgid "Repo-distro-tags: "
+msgstr "Repo-distro-tagy: "
+
+#: ../yumcommands.py:852
+msgid "Repo-updated : "
+msgstr "Repo-aktuální: "
+
+#: ../yumcommands.py:854
+msgid "Repo-pkgs    : "
+msgstr "Repo-bal.    : "
+
+#: ../yumcommands.py:855
+msgid "Repo-size    : "
+msgstr "Repo-velikost: "
+
+#: ../yumcommands.py:862
+msgid "Repo-baseurl : "
+msgstr "Repo-baseurl : "
+
+#: ../yumcommands.py:870
+msgid "Repo-metalink: "
+msgstr "Repo-metalink: "
+
+#: ../yumcommands.py:874
+msgid "  Updated    : "
+msgstr "  Aktualizováno: "
+
+#: ../yumcommands.py:877
+msgid "Repo-mirrors : "
+msgstr "Repo-zrcadla : "
+
+#: ../yumcommands.py:881 ../yummain.py:133
+msgid "Unknown"
+msgstr "Neznámý"
+
+#: ../yumcommands.py:887
+#, python-format
+msgid "Never (last: %s)"
+msgstr "Nikdy (poslední: %s)"
+
+#: ../yumcommands.py:889
+#, python-format
+msgid "Instant (last: %s)"
+msgstr "Okamžitě (naposledy: %s)"
+
+#: ../yumcommands.py:892
+#, python-format
+msgid "%s second(s) (last: %s)"
+msgstr "%s sekund (naposledy: %s)"
+
+#: ../yumcommands.py:894
+msgid "Repo-expire  : "
+msgstr "Repo-vyprší  : "
+
+#: ../yumcommands.py:897
+msgid "Repo-exclude : "
+msgstr "Repo-vyřazeno: "
+
+#: ../yumcommands.py:901
+msgid "Repo-include : "
+msgstr "Repo-zahrnuto: "
+
+#. Work out the first (id) and last (enabled/disalbed/count),
+#. then chop the middle (name)...
+#: ../yumcommands.py:911 ../yumcommands.py:937
+msgid "repo id"
+msgstr "repo id"
+
+#: ../yumcommands.py:925 ../yumcommands.py:926 ../yumcommands.py:940
+msgid "status"
+msgstr "status"
+
+#: ../yumcommands.py:938
+msgid "repo name"
+msgstr "jméno repa"
+
+#: ../yumcommands.py:964
+msgid "Display a helpful usage message"
+msgstr "Zobrazit užitečnou nápovědu"
+
+#: ../yumcommands.py:998
+#, python-format
+msgid "No help available for %s"
+msgstr "Není dostupná nápověda pro %s"
+
+#: ../yumcommands.py:1003
+msgid ""
+"\n"
+"\n"
+"aliases: "
+msgstr ""
+"\n"
+"\n"
+"aliasy: "
+
+#: ../yumcommands.py:1005
+msgid ""
+"\n"
+"\n"
+"alias: "
+msgstr ""
+"\n"
+"\n"
+"alias: "
+
+#: ../yumcommands.py:1033
+msgid "Setting up Reinstall Process"
+msgstr "Uspořádává se průběh reinstalace"
+
+#: ../yumcommands.py:1041
+msgid "reinstall a package"
+msgstr "reinstalace balíčku"
+
+#: ../yumcommands.py:1059
+msgid "Setting up Downgrade Process"
+msgstr "Uspořádává se průběh snížení verze"
+
+#: ../yumcommands.py:1066
+msgid "downgrade a package"
+msgstr "snížení verze balíčku"
+
+#: ../yumcommands.py:1080
+msgid "Display a version for the machine and/or available repos."
+msgstr "Zobrazit verzi pro tento počítač a/nebo dostupné repozitáře."
+
+#: ../yumcommands.py:1110
+msgid " Yum version groups:"
+msgstr " Verze yum skupin:"
+
+#: ../yumcommands.py:1120
+msgid " Group   :"
+msgstr " Skupina :"
+
+#: ../yumcommands.py:1121
+msgid " Packages:"
+msgstr " Balíčky :"
+
+#: ../yumcommands.py:1151
+msgid "Installed:"
+msgstr "Nainstalováno:"
+
+#: ../yumcommands.py:1156
+msgid "Group-Installed:"
+msgstr "Nainstalované skupiny:"
+
+#: ../yumcommands.py:1165
+msgid "Available:"
+msgstr "Dostupné:"
+
+#: ../yumcommands.py:1171
+msgid "Group-Available:"
+msgstr "Dostupné skupiny:"
+
+#: ../yumcommands.py:1210
+msgid "Display, or use, the transaction history"
+msgstr "Zobrazit nebo používat transakční historii"
+
+#: ../yumcommands.py:1238
+#, python-format
+msgid "Invalid history sub-command, use: %s."
+msgstr "Neplatný pod-příkaz historie, použijte: %s."
+
+#: ../yummain.py:128
+msgid "Running"
+msgstr "Běží"
+
+#: ../yummain.py:129
+msgid "Sleeping"
+msgstr "Spí"
+
+#: ../yummain.py:130
+msgid "Uninteruptable"
+msgstr "Nepřerušitelné"
+
+#: ../yummain.py:131
+msgid "Zombie"
+msgstr "Zombie"
+
+#: ../yummain.py:132
+msgid "Traced/Stopped"
+msgstr "Trasován/Zastaven"
+
+#: ../yummain.py:137
+msgid "  The other application is: PackageKit"
+msgstr "  Další aplikace je: PackageKit"
+
+#: ../yummain.py:139
+#, python-format
+msgid "  The other application is: %s"
+msgstr "  Další aplikace je: %s"
+
+#: ../yummain.py:142
+#, python-format
+msgid "    Memory : %5s RSS (%5sB VSZ)"
+msgstr "    Paměť  : %5s RSS (%5sB VSZ)"
+
+#: ../yummain.py:146
+#, python-format
+msgid "    Started: %s - %s ago"
+msgstr "    Spuštěn: %s - %s nazpět"
+
+#: ../yummain.py:148
+#, python-format
+msgid "    State  : %s, pid: %d"
+msgstr "    Stav   : %s, pid: %d"
+
+#: ../yummain.py:173
+msgid ""
+"Another app is currently holding the yum lock; waiting for it to exit..."
+msgstr "Zámek yumu je obsazen jinou aplikací; čeká se na její ukončení..."
+
+#: ../yummain.py:201 ../yummain.py:240
+#, python-format
+msgid "Error: %s"
+msgstr "Chyba: %s"
+
+#: ../yummain.py:211 ../yummain.py:253
+#, python-format
+msgid "Unknown Error(s): Exit Code: %d:"
+msgstr "Neznámá chyba/y: Výstupní kód: %d:"
+
+#. Depsolve stage
+#: ../yummain.py:218
+msgid "Resolving Dependencies"
+msgstr "Řeší se závislosti"
+
+#: ../yummain.py:242
+msgid " You could try using --skip-broken to work around the problem"
+msgstr " Můžete zkusit volbu --skip-broken k překonání tohoto problému"
+
+#: ../yummain.py:243
+msgid ""
+" You could try running: package-cleanup --problems\n"
+"                        package-cleanup --dupes\n"
+"                        rpm -Va --nofiles --nodigest"
+msgstr ""
+" Můžete zkusit spustit: package-cleanup --problems\n"
+"                        package-cleanup --dupes\n"
+"                        rpm -Va --nofiles --nodigest"
+
+#: ../yummain.py:259
+msgid ""
+"\n"
+"Dependencies Resolved"
+msgstr ""
+"\n"
+"Závislosti vyřešeny"
+
+#: ../yummain.py:326
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel."
+msgstr ""
+"\n"
+"\n"
+"Ukončeno na pokyn uživatele."
+
+#: ../yum/depsolve.py:83
+msgid "doTsSetup() will go away in a future version of Yum.\n"
+msgstr "doTsSetup() bude v následujících verzích yumu odstraněno.\n"
+
+#: ../yum/depsolve.py:98
+msgid "Setting up TransactionSets before config class is up"
+msgstr "Uspořádává se TransactionSet před tím než bude připravena třída config"
+
+#: ../yum/depsolve.py:149
+#, python-format
+msgid "Invalid tsflag in config file: %s"
+msgstr "Neplatný tsflag v konfiguračním souboru: %s"
+
+#: ../yum/depsolve.py:160
+#, python-format
+msgid "Searching pkgSack for dep: %s"
+msgstr "Hledá se pkgSack pro závislost: %s"
+
+#: ../yum/depsolve.py:176
+#, python-format
+msgid "Potential match for %s from %s"
+msgstr "Potenciálně shodné pro %s z %s"
+
+#: ../yum/depsolve.py:184
+#, python-format
+msgid "Matched %s to require for %s"
+msgstr "Shoda %s vyžadovaná pro %s"
+
+#: ../yum/depsolve.py:225
+#, python-format
+msgid "Member: %s"
+msgstr "Prvek: %s"
+
+#: ../yum/depsolve.py:239 ../yum/depsolve.py:749
+#, python-format
+msgid "%s converted to install"
+msgstr "%s zkonvertován na instalaci"
+
+#: ../yum/depsolve.py:246
+#, python-format
+msgid "Adding Package %s in mode %s"
+msgstr "Přidává se balíček %s v módu %s"
+
+#: ../yum/depsolve.py:256
+#, python-format
+msgid "Removing Package %s"
+msgstr "Odstraňuje se balíček %s"
+
+#: ../yum/depsolve.py:278
+#, python-format
+msgid "%s requires: %s"
+msgstr "%s vyžaduje: %s"
+
+#: ../yum/depsolve.py:336
+msgid "Needed Require has already been looked up, cheating"
+msgstr "Závazné požadavky již byly prohledány, švindluje se"
+
+#: ../yum/depsolve.py:346
+#, python-format
+msgid "Needed Require is not a package name. Looking up: %s"
+msgstr "Závazný požadavek není jméno balíčku. Hledá se: %s"
+
+#: ../yum/depsolve.py:353
+#, python-format
+msgid "Potential Provider: %s"
+msgstr "Možný poskytovatel: %s"
+
+#: ../yum/depsolve.py:376
+#, python-format
+msgid "Mode is %s for provider of %s: %s"
+msgstr "Mód je %s pro poskytovatele %s: %s"
+
+#: ../yum/depsolve.py:380
+#, python-format
+msgid "Mode for pkg providing %s: %s"
+msgstr "Mód pro bal. poskytující %s: %s"
+
+#: ../yum/depsolve.py:384
+#, python-format
+msgid "TSINFO: %s package requiring %s marked as erase"
+msgstr "TSINFO: %s balíček požaduje %s označený ke smazání"
+
+#: ../yum/depsolve.py:397
+#, python-format
+msgid "TSINFO: Obsoleting %s with %s to resolve dep."
+msgstr "TSINFO: Zastarává se %s s %s k vyřešení závislostí."
+
+#: ../yum/depsolve.py:400
+#, python-format
+msgid "TSINFO: Updating %s to resolve dep."
+msgstr "TSINFO: Aktualizuji %s k vyřešení závislostí."
+
+#: ../yum/depsolve.py:408
+#, python-format
+msgid "Cannot find an update path for dep for: %s"
+msgstr "Nelze nalézt cestu aktualizací pro závislost pro: %s"
+
+#: ../yum/depsolve.py:418
+#, python-format
+msgid "Unresolvable requirement %s for %s"
+msgstr "Neřešitelný požadavek %s pro %s"
+
+#: ../yum/depsolve.py:441
+#, python-format
+msgid "Quick matched %s to require for %s"
+msgstr "Rychlá shoda %s vyžadovaného pro %s"
+
+#. is it already installed?
+#: ../yum/depsolve.py:483
+#, python-format
+msgid "%s is in providing packages but it is already installed, removing."
+msgstr ""
+"%s je v poskytujících balíčcích, ale je již nainstalován, odstraňuje se."
+
+#: ../yum/depsolve.py:499
+#, python-format
+msgid "Potential resolving package %s has newer instance in ts."
+msgstr "Balíček %s, který může být řešení má v ts novější verzi."
+
+#: ../yum/depsolve.py:510
+#, python-format
+msgid "Potential resolving package %s has newer instance installed."
+msgstr "Balíček %s, který může být řešení je nainstalován v novější verzi."
+
+#: ../yum/depsolve.py:518 ../yum/depsolve.py:564
+#, python-format
+msgid "Missing Dependency: %s is needed by package %s"
+msgstr "Chybí závislost: %s je vyžadován balíčkem %s"
+
+#: ../yum/depsolve.py:531
+#, python-format
+msgid "%s already in ts, skipping this one"
+msgstr "%s je již v ts, vynechává se"
+
+#: ../yum/depsolve.py:574
+#, python-format
+msgid "TSINFO: Marking %s as update for %s"
+msgstr "TSINFO: Označuji %s jako aktualizaci %s"
+
+#: ../yum/depsolve.py:582
+#, python-format
+msgid "TSINFO: Marking %s as install for %s"
+msgstr "TSINFO: Označuji %s jako instalaci %s"
+
+#: ../yum/depsolve.py:685 ../yum/depsolve.py:767
+msgid "Success - empty transaction"
+msgstr "Úspěch - prázdná transakce"
+
+#: ../yum/depsolve.py:724 ../yum/depsolve.py:739
+msgid "Restarting Loop"
+msgstr "Restartuje se smyčka"
+
+#: ../yum/depsolve.py:755
+msgid "Dependency Process ending"
+msgstr "Proces zpracování závislostí končí"
+
+#: ../yum/depsolve.py:761
+#, python-format
+msgid "%s from %s has depsolving problems"
+msgstr "%s z %s má problémy se závislostmi"
+
+#: ../yum/depsolve.py:768
+msgid "Success - deps resolved"
+msgstr "Úspěch - závislosti vyřešeny"
+
+#: ../yum/depsolve.py:782
+#, python-format
+msgid "Checking deps for %s"
+msgstr "Kontroluji závislosti pro %s"
+
+#: ../yum/depsolve.py:865
+#, python-format
+msgid "looking for %s as a requirement of %s"
+msgstr "hledá se %s jako požadavek od %s"
+
+#: ../yum/depsolve.py:1007
+#, python-format
+msgid "Running compare_providers() for %s"
+msgstr "Spouští se compare_providers() pro %s"
+
+#: ../yum/depsolve.py:1041 ../yum/depsolve.py:1047
+#, python-format
+msgid "better arch in po %s"
+msgstr "lepší architektura v po %s"
+
+#: ../yum/depsolve.py:1142
+#, python-format
+msgid "%s obsoletes %s"
+msgstr "%s zastarává %s"
+
+#: ../yum/depsolve.py:1154
+#, python-format
+msgid ""
+"archdist compared %s to %s on %s\n"
+"  Winner: %s"
+msgstr ""
+"archdist porovnán pro %s k %s na %s\n"
+"  Vítěz: %s"
+
+#: ../yum/depsolve.py:1161
+#, python-format
+msgid "common sourcerpm %s and %s"
+msgstr "společné zdrojové rpm %s a %s"
+
+#: ../yum/depsolve.py:1167
+#, python-format
+msgid "common prefix of %s between %s and %s"
+msgstr "společný prefix %s mezi %s a %s"
+
+#: ../yum/depsolve.py:1175
+#, python-format
+msgid "Best Order: %s"
+msgstr "Nejlepší pořádek: %s"
+
+#: ../yum/__init__.py:187
+msgid "doConfigSetup() will go away in a future version of Yum.\n"
+msgstr "doConfigSetup() bude odstraněn v příští verzi Yumu.\n"
+
+#: ../yum/__init__.py:412
+#, python-format
+msgid "Repository %r is missing name in configuration, using id"
+msgstr "Repozitáři %r chybí jméno v konfiguraci, používá se id"
+
+#: ../yum/__init__.py:450
+msgid "plugins already initialised"
+msgstr "zásuvný modul již inicializován"
+
+#: ../yum/__init__.py:457
+msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
+msgstr "doRpmDBSetup() bude odstraněn v příští verzi Yumu.\n"
+
+#: ../yum/__init__.py:468
+msgid "Reading Local RPMDB"
+msgstr "Načítá se lokální RPMDB"
+
+#: ../yum/__init__.py:489
+msgid "doRepoSetup() will go away in a future version of Yum.\n"
+msgstr "doRepoSetup() bude odstraněn v příští verzi Yumu.\n"
+
+#: ../yum/__init__.py:509
+msgid "doSackSetup() will go away in a future version of Yum.\n"
+msgstr "doSackSetup() bude odstraněn v příští verzi Yumu.\n"
+
+#: ../yum/__init__.py:539
+msgid "Setting up Package Sacks"
+msgstr "Připravuji pytle balíčků"
+
+#: ../yum/__init__.py:584
+#, python-format
+msgid "repo object for repo %s lacks a _resetSack method\n"
+msgstr "objekt repozitáře pro repo %s postrádá metodu _resetSack\n"
+
+#: ../yum/__init__.py:585
+msgid "therefore this repo cannot be reset.\n"
+msgstr "proto nemůže toto repo být resetován.\n"
+
+#: ../yum/__init__.py:590
+msgid "doUpdateSetup() will go away in a future version of Yum.\n"
+msgstr "doUpdateSetup() bude odstraněn v příští verzi Yumu.\n"
+
+#: ../yum/__init__.py:602
+msgid "Building updates object"
+msgstr "Sestavuje se objekt aktualizací"
+
+#: ../yum/__init__.py:637
+msgid "doGroupSetup() will go away in a future version of Yum.\n"
+msgstr "doGroupSetup() bude odstraněn v příští verzi Yumu.\n"
+
+#: ../yum/__init__.py:662
+msgid "Getting group metadata"
+msgstr "Získávají se metadata skupin"
+
+#: ../yum/__init__.py:688
+#, python-format
+msgid "Adding group file from repository: %s"
+msgstr "Přidávám skupinový soubor pro repozitář: %s"
+
+#: ../yum/__init__.py:697
+#, python-format
+msgid "Failed to add groups file for repository: %s - %s"
+msgstr "Selhalo přidání skupinového souboru pro repozitář: %s - %s"
+
+#: ../yum/__init__.py:703
+msgid "No Groups Available in any repository"
+msgstr "V žádném repozitáři nejsou dostupné skupiny"
+
+#: ../yum/__init__.py:763
+msgid "Importing additional filelist information"
+msgstr "Importuji informace z dodatečného seznamu souborů"
+
+#: ../yum/__init__.py:777
+#, python-format
+msgid "The program %s%s%s is found in the yum-utils package."
+msgstr "Program %s %s %s byl nalezen v balíčku yum-utils."
+
+#: ../yum/__init__.py:785
+msgid ""
+"There are unfinished transactions remaining. You might consider running yum-"
+"complete-transaction first to finish them."
+msgstr ""
+"Existují nedokončené transakce. Měli byste zvážit možnost nejdříve spustit "
+"yum-complete-transaction k jejich dokončení."
+
+#: ../yum/__init__.py:853
+#, python-format
+msgid "Skip-broken round %i"
+msgstr "Přeskočení rozpadlých - kolo %i"
+
+#: ../yum/__init__.py:906
+#, python-format
+msgid "Skip-broken took %i rounds "
+msgstr "Přeskočení rozpadlých trvalo %i kol "
+
+#: ../yum/__init__.py:907
+msgid ""
+"\n"
+"Packages skipped because of dependency problems:"
+msgstr "\n
Balíčky přeskočené kvůli problémům se závislostmi:"
+
+#: ../yum/__init__.py:911
+#, python-format
+msgid "    %s from %s"
+msgstr "    %s z %s"
+
+#: ../yum/__init__.py:1076
+msgid ""
+"Warning: scriptlet or other non-fatal errors occurred during transaction."
+msgstr ""
+"Varování: Během transakce došlo k chybě skripletu nebo jiné nefatální chybě."
+
+#: ../yum/__init__.py:1093
+#, python-format
+msgid "Failed to remove transaction file %s"
+msgstr "Selhalo odstranění transakčního souboru %s."
+
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1122
+#, python-format
+msgid "%s was supposed to be installed but is not!"
+msgstr "%s mělo být nainstalováno ale neni!"
+
+#. maybe a file log here, too
+#. but raising an exception is not going to do any good
+#: ../yum/__init__.py:1161
+#, python-format
+msgid "%s was supposed to be removed but is not!"
+msgstr "%s mělo být odstraněno ale není!"
+
+#. Whoa. What the heck happened?
+#: ../yum/__init__.py:1281
+#, python-format
+msgid "Unable to check if PID %s is active"
+msgstr "Nedá se zkontrolovat zda je PID %s aktivní."
+
+#. Another copy seems to be running.
+#: ../yum/__init__.py:1285
+#, python-format
+msgid "Existing lock %s: another copy is running as pid %s."
+msgstr "Existující zámek %s: jiná kopie běží s pid %s."
+
+#. Whoa. What the heck happened?
+#: ../yum/__init__.py:1320
+#, python-format
+msgid "Could not create lock at %s: %s "
+msgstr "Nelze vytvořit zámek na %s: %s "
+
+#: ../yum/__init__.py:1365
+msgid "Package does not match intended download"
+msgstr "Balíček se neshoduje se zamýšleným stahováním"
+
+#: ../yum/__init__.py:1380
+msgid "Could not perform checksum"
+msgstr "Nelze zkontrolovat kontrolní součet"
+
+#: ../yum/__init__.py:1383
+msgid "Package does not match checksum"
+msgstr "Balíček neodpovídá kontrolnímu součtu"
+
+#: ../yum/__init__.py:1425
+#, python-format
+msgid "package fails checksum but caching is enabled for %s"
+msgstr "balíček neprošel kontrolním součtem ale skladiště je povoleno pro %s"
+
+#: ../yum/__init__.py:1428 ../yum/__init__.py:1457
+#, python-format
+msgid "using local copy of %s"
+msgstr "používá se lokální kopie %s"
+
+#: ../yum/__init__.py:1469
+#, python-format
+msgid ""
+"Insufficient space in download directory %s\n"
+"    * free   %s\n"
+"    * needed %s"
+msgstr ""
+"Nedostatek diskového prostoru ve stahovacím adresáři %s\n"
+"    * volno   %s\n"
+"    * potřeba %s"
+
+#: ../yum/__init__.py:1518
+msgid "Header is not complete."
+msgstr "Hlavička není komplet."
+
+#: ../yum/__init__.py:1555
+#, python-format
+msgid ""
+"Header not in local cache and caching-only mode enabled. Cannot download %s"
+msgstr ""
+"Hlavička není v lokálním skladišti ale je povoleno používat pouze skladiště. "
+"Nemohu stáhnout %s"
+
+#: ../yum/__init__.py:1610
+#, python-format
+msgid "Public key for %s is not installed"
+msgstr "Veřejný klíč %s není nainstalován"
+
+#: ../yum/__init__.py:1614
+#, python-format
+msgid "Problem opening package %s"
+msgstr "Problém s otevřením balíčku %s"
+
+#: ../yum/__init__.py:1622
+#, python-format
+msgid "Public key for %s is not trusted"
+msgstr "Veřejný klíč %s není důvěryhodný"
+
+#: ../yum/__init__.py:1626
+#, python-format
+msgid "Package %s is not signed"
+msgstr "Balíček %s není podepsán"
+
+#: ../yum/__init__.py:1664
+#, python-format
+msgid "Cannot remove %s"
+msgstr "Nemohu odstranit %s"
+
+#: ../yum/__init__.py:1668
+#, python-format
+msgid "%s removed"
+msgstr "%s odstraňen"
+
+#: ../yum/__init__.py:1704
+#, python-format
+msgid "Cannot remove %s file %s"
+msgstr "Nemohu odstranit %s soubor %s"
+
+#: ../yum/__init__.py:1708
+#, python-format
+msgid "%s file %s removed"
+msgstr "%s soubor %s odstraněn"
+
+#: ../yum/__init__.py:1710
+#, python-format
+msgid "%d %s files removed"
+msgstr "%d %s soubor odstraněn"
+
+#: ../yum/__init__.py:1779
+#, python-format
+msgid "More than one identical match in sack for %s"
+msgstr "Více než jedna identická shoda v pytly pro %s"
+
+#: ../yum/__init__.py:1785
+#, python-format
+msgid "Nothing matches %s.%s %s:%s-%s from update"
+msgstr "Nic se neshoduje s %s.%s %s:%s-%s z aktualizace"
+
+#: ../yum/__init__.py:2018
+msgid ""
+"searchPackages() will go away in a future version of "
+"Yum.                      Use searchGenerator() instead. \n"
+msgstr ""
+"searchPackages() bude odstraněno v příští verzi Yumu.                      "
+"Používejte místo ní searchGenerator(). \n"
+
+#: ../yum/__init__.py:2057
+#, python-format
+msgid "Searching %d packages"
+msgstr "Prohledává se %d balíčků"
+
+#: ../yum/__init__.py:2061
+#, python-format
+msgid "searching package %s"
+msgstr "prohledává se balíček %s"
+
+#: ../yum/__init__.py:2073
+msgid "searching in file entries"
+msgstr "hledá se v souborových položkách"
+
+#: ../yum/__init__.py:2080
+msgid "searching in provides entries"
+msgstr "hledá se v položkách poskytovatelů"
+
+#: ../yum/__init__.py:2113
+#, python-format
+msgid "Provides-match: %s"
+msgstr "Poskytovatel-shoda: %s"
+
+#: ../yum/__init__.py:2162
+msgid "No group data available for configured repositories"
+msgstr "Pro nastavený repozitář nejsou žádná dostupná skupinová data"
+
+#: ../yum/__init__.py:2193 ../yum/__init__.py:2212 ../yum/__init__.py:2243
+#: ../yum/__init__.py:2249 ../yum/__init__.py:2328 ../yum/__init__.py:2332
+#: ../yum/__init__.py:2647
+#, python-format
+msgid "No Group named %s exists"
+msgstr "Neexistuje skupina pojmenovaná %s"
+
+#: ../yum/__init__.py:2224 ../yum/__init__.py:2345
+#, python-format
+msgid "package %s was not marked in group %s"
+msgstr "balíček %s nebyl označen ve skupině %s"
+
+#: ../yum/__init__.py:2271
+#, python-format
+msgid "Adding package %s from group %s"
+msgstr "Přidává se balíček %s pro skupinu %s"
+
+#: ../yum/__init__.py:2275
+#, python-format
+msgid "No package named %s available to be installed"
+msgstr "Neexistuje žádný balíček pojmenovaný %s dostupný k instalaci"
+
+#: ../yum/__init__.py:2372
+#, python-format
+msgid "Package tuple %s could not be found in packagesack"
+msgstr "Uspořádaný seznam balíčků %s nenalezen v pytly balíčků"
+
+#: ../yum/__init__.py:2391, python-format
+msgid "Package tuple %s could not be found in rpmdb"
+msgstr "Uspořádaný seznam balíčků %s nenalezen v rpmdb"
+
+#: ../yum/__init__.py:2447 ../yum/__init__.py:2497
+msgid "Invalid version flag"
+msgstr "Chybý příznak verze"
+
+#: ../yum/__init__.py:2467 ../yum/__init__.py:2472
+#, python-format
+msgid "No Package found for %s"
+msgstr "Nebyl nalezen balíček pro %s"
+
+#: ../yum/__init__.py:2688
+msgid "Package Object was not a package object instance"
+msgstr "Objekt balíčku nebyl instancí balíčkového objektu"
+
+#: ../yum/__init__.py:2692
+msgid "Nothing specified to install"
+msgstr "Nebylo určeno nic k instalaci"
+
+#: ../yum/__init__.py:2708 ../yum/__init__.py:3472
+#, python-format
+msgid "Checking for virtual provide or file-provide for %s"
+msgstr "Hledá se virtuální poskytovatel nebo soubor poskytující %s"
+
+#: ../yum/__init__.py:2714 ../yum/__init__.py:3021 ../yum/__init__.py:3188
+#: ../yum/__init__.py:3478
+#, python-format
+msgid "No Match for argument: %s"
+msgstr "Nenalezena shoda pro argument: %s"
+
+#: ../yum/__init__.py:2790
+#, python-format
+msgid "Package %s installed and not available"
+msgstr "Balíček %s nainstalován ale není dostupný"
+
+#: ../yum/__init__.py:2793
+msgid "No package(s) available to install"
+msgstr "Žádný balíček/ky dostupný pro instalaci"
+
+#: ../yum/__init__.py:2805
+#, python-format
+msgid "Package: %s  - already in transaction set"
+msgstr "Balíček: %s - již je v transakci"
+
+#: ../yum/__init__.py:2831
+#, python-format
+msgid "Package %s is obsoleted by %s which is already installed"
+msgstr "Balíček %s je zastaralý balíčkem %s, který je již nainstalován"
+
+#: ../yum/__init__.py:2834
+#, python-format
+msgid "Package %s is obsoleted by %s, trying to install %s instead"
+msgstr "Balíček %s je zastaralý balíčkem %s, zkouší se místo něj instalovat %s"
+
+#: ../yum/__init__.py:2842
+#, python-format
+msgid "Package %s already installed and latest version"
+msgstr "Balíček %s již nainstalován a v poslední verzi"
+
+#: ../yum/__init__.py:2856
+#, python-format
+msgid "Package matching %s already installed. Checking for update."
+msgstr "Balíček odpovídající %s je již nainstalován. Hledají se aktualizace."
+
+#. update everything (the easy case)
+#: ../yum/__init__.py:2950
+msgid "Updating Everything"
+msgstr "Aktualizuje se vše"
+
+#: ../yum/__init__.py:2971 ../yum/__init__.py:3086 ../yum/__init__.py:3115
+#: ../yum/__init__.py:3142
+#, python-format
+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
+msgstr "Neaktualizuje se balíček, který je již zastaralý: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:3006 ../yum/__init__.py:3185
+#, python-format
+msgid "%s"
+msgstr "%s"
+
+#: ../yum/__init__.py:3077
+#, python-format
+msgid "Package is already obsoleted: %s.%s %s:%s-%s"
+msgstr "Balíček je již zastaralý: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:3110
+#, python-format
+msgid "Not Updating Package that is obsoleted: %s"
+msgstr "Neaktualizuje se balíček, který je zastaralý: %s"
+
+#: ../yum/__init__.py:3119 ../yum/__init__.py:3146
+#, python-format
+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
+msgstr "Neaktualizuje se balíček, který jej již aktuální: %s.%s %s:%s-%s"
+
+#: ../yum/__init__.py:3201
+msgid "No package matched to remove"
+msgstr "Nenalezen žádný shodný balíček pro odstranění"
+
+#: ../yum/__init__.py:3234 ../yum/__init__.py:3338 ../yum/__init__.py:3427
+#, python-format
+msgid "Cannot open file: %s. Skipping."
+msgstr "Nelze otevřít soubor: %s. Přeskakuje se."
+
+#: ../yum/__init__.py:3237 ../yum/__init__.py:3341 ../yum/__init__.py:3430
+#, python-format
+msgid "Examining %s: %s"
+msgstr "Zkoumá se %s: %s"
+
+#: ../yum/__init__.py:3245 ../yum/__init__.py:3344 ../yum/__init__.py:3433
+#, python-format
+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
+msgstr "Nelze přídat balíček %s do transakce. Nekompatibilní architektura: %s"
+
+#: ../yum/__init__.py:3253
+#, python-format
+msgid ""
+"Package %s not installed, cannot update it. Run yum install to install it "
+"instead."
+msgstr ""
+"Balíček %s není nainstalován, nelze jej aktualizovat. Spusťte místo toho yum "
+"install a nainstalujte jej."
+
+#: ../yum/__init__.py:3288 ../yum/__init__.py:3355 ../yum/__init__.py:3444
+#, python-format
+msgid "Excluding %s"
+msgstr "Vynechává se %s"
+
+#: ../yum/__init__.py:3293
+#, python-format
+msgid "Marking %s to be installed"
+msgstr "Označuje se %s k instalaci"
+
+#: ../yum/__init__.py:3299
+#, python-format
+msgid "Marking %s as an update to %s"
+msgstr "Označuje se %s jako aktualizace %s"
+
+#: ../yum/__init__.py:3306
+#, python-format
+msgid "%s: does not update installed package."
+msgstr "%s: není aktualizací instalovaného balíčku"
+
+#: ../yum/__init__.py:3374
+msgid "Problem in reinstall: no package matched to remove"
+msgstr "Problém při reinstalaci: žádný shodný balíček k odstranění"
+
+#: ../yum/__init__.py:3387 ../yum/__init__.py:3506
+#, python-format
+msgid "Package %s is allowed multiple installs, skipping"
+msgstr "Balíček %s má dovoleno vícero instalací, přeskakuje se"
+
+#: ../yum/__init__.py:3408
+#, python-format
+msgid "Problem in reinstall: no package %s matched to install"
+msgstr "Problém při reinstalaci: žádný shodný balíček %s k instalaci"
+
+#: ../yum/__init__.py:3498
+msgid "No package(s) available to downgrade"
+msgstr "Žádný balíček/ky dostupné ke snížení verze"
+
+#: ../yum/__init__.py:3542
+#, python-format
+msgid "No Match for available package: %s"
+msgstr "Neexistuje shoda pro dostupný balíček: %s"
+
+#: ../yum/__init__.py:3548
+#, python-format
+msgid "Only Upgrade available on package: %s"
+msgstr "Pouze aktualizace dostupná pro balíček: %s"
+
+#: ../yum/__init__.py:3616 ../yum/__init__.py:3653, python-format
+msgid "Failed to downgrade: %s"
+msgstr "Nepodařilo se snížit verzi: %s"
+
+#: ../yum/__init__.py:3685
+#, python-format
+msgid "Retrieving GPG key from %s"
+msgstr "Získává se GPG klíč pro %s"
+
+#: ../yum/__init__.py:3705
+msgid "GPG key retrieval failed: "
+msgstr "Získání GPG klíč selhalo: "
+
+#: ../yum/__init__.py:3716
+#, python-format
+msgid "GPG key parsing failed: key does not have value %s"
+msgstr "Zpracování GPG klíče selhalo: klíč nemá žádnou hodnotu %s"
+
+#: ../yum/__init__.py:3748
+#, python-format
+msgid "GPG key at %s (0x%s) is already installed"
+msgstr "GPG klíč %s (0x%s) je již nainstalován"
+
+#. Try installing/updating GPG key
+#: ../yum/__init__.py:3753 ../yum/__init__.py:3815
+#, python-format
+msgid "Importing GPG key 0x%s \"%s\" from %s"
+msgstr "Importuje se GPG klíč 0x%s \"%s\" z %s"
+
+#: ../yum/__init__.py:3770
+msgid "Not installing key"
+msgstr "Neinstaluji klíč"
+
+#: ../yum/__init__.py:3776
+#, python-format
+msgid "Key import failed (code %d)"
+msgstr "Import klíče selhal (kód %d)"
+
+#: ../yum/__init__.py:3777 ../yum/__init__.py:3836
+msgid "Key imported successfully"
+msgstr "Import klíče proběhl úspěšně"
+
+#: ../yum/__init__.py:3782 ../yum/__init__.py:3841
+#, 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 klíč určený pro repozitář %s je již nainstalován, ale není správný pro "
+"tento balíček.\n"
+"Zkontrolujte, že URL klíče jsou pro repozitář správně nastavena."
+
+#: ../yum/__init__.py:3791
+msgid "Import of key(s) didn't help, wrong key(s)?"
+msgstr "Import klíče/ů nepomohl, špatný klíč(e)?"
+
+#: ../yum/__init__.py:3810
+#, python-format
+msgid "GPG key at %s (0x%s) is already imported"
+msgstr "GPG klíč %s (0x%s) je již naimportován"
+
+#: ../yum/__init__.py:3830
+#, python-format
+msgid "Not installing key for repo %s"
+msgstr "Neinstaluji klíč pro repozitář %s"
+
+#: ../yum/__init__.py:3835
+msgid "Key import failed"
+msgstr "Import klíče selhal"
+
+#: ../yum/__init__.py:3957
+msgid "Unable to find a suitable mirror."
+msgstr "Nemohu nalézt vhodné zrcadlo"
+
+#: ../yum/__init__.py:3959
+msgid "Errors were encountered while downloading packages."
+msgstr "Při stahování balíčků došlo k chybě."
+
+#: ../yum/__init__.py:4009
+#, python-format
+msgid "Please report this error at %s"
+msgstr "Prosím ohlašte tuto chybu na %s"
+
+#: ../yum/__init__.py:4033
+msgid "Test Transaction Errors: "
+msgstr "Chyby testu transakce: "
+
+#. Mostly copied from YumOutput._outKeyValFill()
+#: ../yum/plugins.py:202
+msgid "Loaded plugins: "
+msgstr "Zavedeny zásuvné moduly:"
+
+#: ../yum/plugins.py:216 ../yum/plugins.py:222
+#, python-format
+msgid "No plugin match for: %s"
+msgstr "Neexistuje zásuvný modul pro: %s"
+
+#: ../yum/plugins.py:252
+#, python-format
+msgid "Not loading \"%s\" plugin, as it is disabled"
+msgstr "Nezavádí se \"%s\" modul, protože je zakázán"
+
+#. Give full backtrace:
+#: ../yum/plugins.py:264
+#, python-format
+msgid "Plugin \"%s\" can't be imported"
+msgstr "Modul \"%s\" nemůže být importován"
+
+#: ../yum/plugins.py:271
+#, python-format
+msgid "Plugin \"%s\" doesn't specify required API version"
+msgstr "Modul \"%s\" neuvádí požadovanou verzi API"
+
+#: ../yum/plugins.py:276
+#, python-format
+msgid "Plugin \"%s\" requires API %s. Supported API is %s."
+msgstr "Modul \"%s\" požaduje API %s. Podporované API je %s."
+
+#: ../yum/plugins.py:309
+#, python-format
+msgid "Loading \"%s\" plugin"
+msgstr "Zavádí se zásvuný modul \"%s\""
+
+#: ../yum/plugins.py:316
+#, python-format
+msgid ""
+"Two or more plugins with the name \"%s\" exist in the plugin search path"
+msgstr "V prohledávaných cestách jsou dva nebo více modulů se jménem \"%s\""
+
+#: ../yum/plugins.py:336
+#, python-format
+msgid "Configuration file %s not found"
+msgstr "Konfigurační soubor %s nenalezen"
+
+#. for
+#. Configuration files for the plugin not found
+#: ../yum/plugins.py:339
+#, python-format
+msgid "Unable to find configuration file for plugin %s"
+msgstr "Nelze nalézt konfigurační soubor pro modul %s"
+
+#: ../yum/plugins.py:501
+msgid "registration of commands not supported"
+msgstr "registrace příkazů není podporována"
+
+#: ../yum/rpmtrans.py:78
+msgid "Repackaging"
+msgstr "Přebaluje se"
+
+#: ../rpmUtils/oldUtils.py:33
+#, python-format
+msgid "Header cannot be opened or does not match %s, %s."
+msgstr "Hlavička nemůže být otevřena nebo neodpovídá %s, %s."
+
+#: ../rpmUtils/oldUtils.py:53
+#, python-format
+msgid "RPM %s fails md5 check"
+msgstr "Pro RPM %s selhala kontrola md5"
+
+#: ../rpmUtils/oldUtils.py:151
+msgid "Could not open RPM database for reading. Perhaps it is already in use?"
+msgstr "Nelze otevřít databázi RPM pro čtení. Možná je jíž používána?"
+
+#: ../rpmUtils/oldUtils.py:183
+msgid "Got an empty Header, something has gone wrong"
+msgstr "Vrátila se prázdná hlavička. Něco se stalo špatně."
+
+#: ../rpmUtils/oldUtils.py:253 ../rpmUtils/oldUtils.py:260
+#: ../rpmUtils/oldUtils.py:263 ../rpmUtils/oldUtils.py:266
+#, python-format
+msgid "Damaged Header %s"
+msgstr "Poškozená hlavička %s"
+
+#: ../rpmUtils/oldUtils.py:281
+#, python-format
+msgid "Error opening rpm %s - error %s"
+msgstr "Chyba při otevření rpm %s - chyba %s"
+
+#~ msgid ""
+#~ "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple"
+#~ "().\n"
+#~ msgstr ""
+#~ "getInstalledPackageObject() bude odstraněno, používejte self.rpmdb."
+#~ "searchPkgTuple().\n"
diff --git a/po/ja.po b/po/ja.po
index 6f86fc8..e7b7084 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,17 +6,17 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: yum master\n"
+"Project-Id-Version: yum (yum-3_2_X)\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"
+"POT-Creation-Date: 2009-09-21 03:07+0900\n"
+"PO-Revision-Date: 2009-09-21 04:52+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
+#: callback.py:48 output.py:938 yum/rpmtrans.py:71
 msgid "Updating"
 msgstr "更新"
 
@@ -24,7 +24,7 @@ msgstr "更新"
 msgid "Erasing"
 msgstr "削除中"
 
-#: callback.py:50 callback.py:51 callback.py:53 output.py:921
+#: callback.py:50 callback.py:51 callback.py:53 output.py:937
 #: yum/rpmtrans.py:73 yum/rpmtrans.py:74 yum/rpmtrans.py:76
 msgid "Installing"
 msgstr "インストールしています"
@@ -33,7 +33,7 @@ msgstr "インストールしています"
 msgid "Obsoleted"
 msgstr "不要でした"
 
-#: callback.py:54 output.py:1029
+#: callback.py:54 output.py:1061
 msgid "Updated"
 msgstr "更新しました"
 
@@ -41,7 +41,7 @@ msgstr "更新しました"
 msgid "Erased"
 msgstr "削除しました"
 
-#: callback.py:56 callback.py:57 callback.py:59 output.py:1027
+#: callback.py:56 callback.py:57 callback.py:59 output.py:1059
 msgid "Installed"
 msgstr "インストールしました"
 
@@ -63,7 +63,7 @@ msgstr "エラー: 不正な出力状態: %s for %s"
 msgid "Erased: %s"
 msgstr "削除しました: %s"
 
-#: callback.py:217 output.py:923
+#: callback.py:217 output.py:939
 msgid "Removing"
 msgstr "削除"
 
@@ -71,58 +71,58 @@ msgstr "削除"
 msgid "Cleanup"
 msgstr "整理中"
 
-#: cli.py:105
+#: cli.py:107
 #, python-format
 msgid "Command \"%s\" already defined"
 msgstr "コマンド「%s」はすでに定義済みです"
 
-#: cli.py:117
+#: cli.py:119
 msgid "Setting up repositories"
 msgstr "リポジトリーの設定"
 
-#: cli.py:128
+#: cli.py:130
 msgid "Reading repository metadata in from local files"
 msgstr "ローカルファイルからリポジトリーのメタデータを読み込んでいます"
 
-#: cli.py:192 utils.py:79
+#: cli.py:193 utils.py:102
 #, python-format
 msgid "Config Error: %s"
 msgstr "設定エラー: %s"
 
-#: cli.py:195 cli.py:1190 utils.py:82
+#: cli.py:196 cli.py:1253 utils.py:105
 #, python-format
 msgid "Options Error: %s"
 msgstr "オプションエラー: %s"
 
-#: cli.py:223
+#: cli.py:225
 #, python-format
 msgid "  Installed: %s-%s at %s"
 msgstr ""
 
-#: cli.py:225
+#: cli.py:227
 #, python-format
 msgid "  Built    : %s at %s"
 msgstr ""
 
-#: cli.py:227
+#: cli.py:229
 #, python-format
 msgid "  Committed: %s at %s"
 msgstr ""
 
-#: cli.py:266
+#: cli.py:268
 msgid "You need to give some command"
 msgstr "いくつかのコマンドを指定する必要があります"
 
-#: cli.py:309
+#: cli.py:311
 msgid "Disk Requirements:\n"
 msgstr "ディスク要求:\n"
 
-#: cli.py:311
+#: cli.py:313
 #, python-format
 msgid "  At least %dMB needed on the %s filesystem.\n"
 msgstr "  少なくとも %d MB の空き容量がファイルシステム %s で必要です。\n"
 
-#: cli.py:316
+#: cli.py:318
 msgid ""
 "Error Summary\n"
 "-------------\n"
@@ -130,220 +130,246 @@ msgstr ""
 "エラーの要約\n"
 "-------------\n"
 
-#: cli.py:359
+#: cli.py:361
 msgid "Trying to run the transaction but nothing to do. Exiting."
 msgstr ""
 "トランザクションの実行を試みましたが、何もありませんでした。終了します。"
 
-#: cli.py:395
+#: cli.py:397
 msgid "Exiting on user Command"
 msgstr "ユーザーコマンドを終了しています"
 
-#: cli.py:399
+#: cli.py:401
 msgid "Downloading Packages:"
 msgstr "パッケージをダウンロードしています:"
 
-#: cli.py:404
+#: cli.py:406
 msgid "Error Downloading Packages:\n"
 msgstr "パッケージのダウンロードでエラー:\n"
 
-#: cli.py:418 yum/__init__.py:3362
+#: cli.py:420 yum/__init__.py:3873
 msgid "Running rpm_check_debug"
 msgstr "rpm_check_debug を実行しています"
 
-#: cli.py:421 yum/__init__.py:3365
+#: cli.py:429 yum/__init__.py:3882
+msgid "ERROR You need to update rpm to handle:"
+msgstr ""
+
+#: cli.py:431 yum/__init__.py:3885
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr ""
 
-#: cli.py:425
+#: cli.py:437
+msgid "RPM needs to be updated"
+msgstr ""
+
+#: cli.py:438
 #, python-format
 msgid "Please report this error in %s"
 msgstr "%s にこのエラーを報告してください"
 
-#: cli.py:431
+#: cli.py:444
 msgid "Running Transaction Test"
 msgstr "トランザクションのテストを実行しています"
 
-#: cli.py:447
+#: cli.py:460
 msgid "Finished Transaction Test"
 msgstr "トランザクションのテストを終了しました"
 
-#: cli.py:449
+#: cli.py:462
 msgid "Transaction Check Error:\n"
 msgstr "トランザクションの確認エラー\n"
 
-#: cli.py:456
+#: cli.py:469
 msgid "Transaction Test Succeeded"
 msgstr "トランザクションのテストを成功しました"
 
-#: cli.py:477
+#: cli.py:491
 msgid "Running Transaction"
 msgstr "トランザクションを実行しています"
 
-#: cli.py:507
+#: cli.py:521
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
 msgstr ""
 
-#: cli.py:526 cli.py:560
+#: cli.py:540 cli.py:574
 msgid "  * Maybe you meant: "
 msgstr ""
 
-#: cli.py:543 cli.py:551
+#: cli.py:557 cli.py:565
 #, python-format
 msgid "Package(s) %s%s%s available, but not installed."
 msgstr "パッケージ %s%s%s は利用できますが、インストールしませんでした。"
 
-#: cli.py:557 cli.py:590
+#: cli.py:571 cli.py:602 cli.py:680
 #, python-format
 msgid "No package %s%s%s available."
 msgstr "パッケージ %s%s%s は利用できません。"
 
-#: cli.py:595 cli.py:670 yumcommands.py:1010
+#: cli.py:607 cli.py:740
 msgid "Package(s) to install"
 msgstr "インストールするパッケージ"
 
-#: cli.py:596 cli.py:671 yumcommands.py:159 yumcommands.py:1011
+#: cli.py:608 cli.py:686 cli.py:719 cli.py:741 yumcommands.py:157
 msgid "Nothing to do"
 msgstr "何もしません"
 
-#: cli.py:629
+#: cli.py:641
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d 個のパッケージが更新の設定しました"
 
-#: cli.py:632
+#: cli.py:644
 msgid "No Packages marked for Update"
 msgstr "更新と設定されたパッケージがありません"
 
-#: cli.py:646
+#: cli.py:658
 #, python-format
 msgid "%d packages marked for removal"
 msgstr "%d 個のパッケージが削除の設定しました"
 
-#: cli.py:649
+#: cli.py:661
 msgid "No Packages marked for removal"
 msgstr "削除と設定されたパッケージがありません"
 
-#: cli.py:661
+#: cli.py:685
+msgid "Package(s) to downgrade"
+msgstr "ダウングレードするパッケージ"
+
+#: cli.py:709
+#, python-format
+msgid " (from %s)"
+msgstr ""
+
+#: cli.py:711
+#, python-format
+msgid "Installed package %s%s%s%s not available."
+msgstr "インストール済みパッケージ %s%s%s%s は利用できません。"
+
+#: cli.py:718
+msgid "Package(s) to reinstall"
+msgstr "再インストールするパッケージ"
+
+#: cli.py:731
 msgid "No Packages Provided"
 msgstr "パッケージが提供されていません"
 
-#: cli.py:716
-msgid "Matching packages for package list to user args"
-msgstr "ユーザーの引数にパッケージ一覧のパッケージを一致させています"
-
-#: cli.py:765
+#: cli.py:815
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "警告: 一致するものが見つかりません: %s"
 
-#: cli.py:768
+#: cli.py:818
 msgid "No Matches found"
 msgstr "見つかりませんでした"
 
-#: cli.py:807
+#: 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 ""
 
-#: cli.py:823
+#: cli.py:873
 #, python-format
 msgid "No Package Found for %s"
 msgstr "%s のパッケージが見つかりません"
 
-#: cli.py:835
+#: cli.py:885
 msgid "Cleaning up Everything"
 msgstr "すべて掃除しています"
 
-#: cli.py:849
+#: cli.py:899
 msgid "Cleaning up Headers"
 msgstr "ヘッダーを掃除しています"
 
-#: cli.py:852
+#: cli.py:902
 msgid "Cleaning up Packages"
 msgstr "パッケージを掃除しています"
 
-#: cli.py:855
+#: cli.py:905
 msgid "Cleaning up xml metadata"
 msgstr "XML メタデータを掃除しています"
 
-#: cli.py:858
+#: cli.py:908
 msgid "Cleaning up database cache"
 msgstr "データベースキャッシュを掃除しています"
 
-#: cli.py:861
+#: cli.py:911
 msgid "Cleaning up expire-cache metadata"
 msgstr "期限切れのメタデータキャッシュを掃除しています"
 
-#: cli.py:864
+#: cli.py:914
 msgid "Cleaning up plugins"
 msgstr "プラグインを掃除しています"
 
-#: cli.py:889
+#: cli.py:939
 msgid "Installed Groups:"
 msgstr "インストール済みグループ:"
 
-#: cli.py:896
+#: cli.py:951
 msgid "Available Groups:"
 msgstr "利用可能なグループ"
 
-#: cli.py:902
+#: cli.py:961
 msgid "Done"
 msgstr "完了"
 
-#: cli.py:913 cli.py:931 cli.py:937 yum/__init__.py:2410
+#: cli.py:972 cli.py:990 cli.py:996 yum/__init__.py:2579
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "警告: グループ %s が存在しません。"
 
-#: cli.py:941
+#: cli.py:1000
 msgid "No packages in any requested group available to install or update"
 msgstr ""
 
-#: cli.py:943
+#: cli.py:1002
 #, python-format
 msgid "%d Package(s) to Install"
 msgstr "%d 個のパッケージをインストールします"
 
-#: cli.py:953 yum/__init__.py:2422
+#: cli.py:1012 yum/__init__.py:2591
 #, python-format
 msgid "No group named %s exists"
 msgstr "グループ名 %s が存在しません"
 
-#: cli.py:959
+#: cli.py:1018
 msgid "No packages to remove from groups"
 msgstr "グループから削除するパッケージがありません"
 
-#: cli.py:961
+#: cli.py:1020
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d 個のパッケージを削除します"
 
-#: cli.py:1003
+#: cli.py:1062
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "パッケージ %s は既にインストールされているので飛ばします"
 
-#: cli.py:1014
+#: cli.py:1073
 #, python-format
 msgid "Discarding non-comparable pkg %s.%s"
 msgstr "非互換のパッケージ %s.%s を破棄しています"
 
-#: cli.py:1040
+#: cli.py:1099
 #, python-format
 msgid "No other %s installed, adding to list for potential install"
 msgstr ""
 
-#: cli.py:1059
+#: cli.py:1119
+msgid "Plugin Options"
+msgstr ""
+
+#: cli.py:1127
 #, python-format
 msgid "Command line error: %s"
 msgstr "コマンドラインエラー: %s"
 
-#: cli.py:1072
+#: cli.py:1140
 #, python-format
 msgid ""
 "\n"
@@ -354,253 +380,258 @@ msgstr ""
 "\n"
 "%s: オプション %sは引数が必要です "
 
-#: cli.py:1130
+#: cli.py:1193
 msgid "--color takes one of: auto, always, never"
 msgstr "--color がとることができる値な次のうちひとつです: auto、always、never"
 
-#: cli.py:1232
+#: cli.py:1300
 msgid "show this help message and exit"
 msgstr "このヘルプメッセージを表示して終了する"
 
-#: cli.py:1236
+#: cli.py:1304
 msgid "be tolerant of errors"
 msgstr ""
 
-#: cli.py:1238
+#: cli.py:1306
 msgid "run entirely from cache, don't update cache"
 msgstr "キャッシュから完全に実行します。キャッシュを更新しません"
 
-#: cli.py:1240
+#: cli.py:1308
 msgid "config file location"
 msgstr "構成ファイルの場所"
 
-#: cli.py:1242
+#: cli.py:1310
 msgid "maximum command wait time"
 msgstr "コマンドの最大待ち時間"
 
-#: cli.py:1244
+#: cli.py:1312
 msgid "debugging output level"
 msgstr "デバッグ情報の出力レベル"
 
-#: cli.py:1248
+#: cli.py:1316
 msgid "show duplicates, in repos, in list/search commands"
 msgstr "一覧/検索コマンドのリポジトリーの重複の表示"
 
-#: cli.py:1250
+#: cli.py:1318
 msgid "error output level"
 msgstr "エラー出力レベル"
 
-#: cli.py:1253
+#: cli.py:1321
 msgid "quiet operation"
 msgstr "静かに処理をする"
 
-#: cli.py:1255
+#: cli.py:1323
 msgid "verbose operation"
 msgstr "冗長に処理をする"
 
-#: cli.py:1257
+#: cli.py:1325
 msgid "answer yes for all questions"
 msgstr "すべての問い合わせに「yes」で答える"
 
-#: cli.py:1259
+#: cli.py:1327
 msgid "show Yum version and exit"
 msgstr "Yum のバージョンを表示して終了する"
 
-#: cli.py:1260
+#: cli.py:1328
 msgid "set install root"
 msgstr "インストールのベースディレクトリを設定する"
 
-#: cli.py:1264
+#: cli.py:1332
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "ひとつ以上のリポジトリーを有効にする (ワイルドカード許可)"
 
-#: cli.py:1268
+#: cli.py:1336
 msgid "disable one or more repositories (wildcards allowed)"
 msgstr "ひとつ以上のリポジトリーを無効にする (ワイルドカード許可)"
 
-#: cli.py:1271
+#: cli.py:1339
 msgid "exclude package(s) by name or glob"
 msgstr "名前かワイルドカードでパッケージを除外する"
 
-#: cli.py:1273
+#: cli.py:1341
 msgid "disable exclude from main, for a repo or for everything"
 msgstr ""
 
-#: cli.py:1276
+#: cli.py:1344
 msgid "enable obsoletes processing during updates"
 msgstr "更新中に不要な処理を有効にします"
 
-#: cli.py:1278
+#: cli.py:1346
 msgid "disable Yum plugins"
 msgstr "Yum プラグインを無効にする"
 
-#: cli.py:1280
+#: cli.py:1348
 msgid "disable gpg signature checking"
 msgstr "GPG 署名の確認を無効にする"
 
-#: cli.py:1282
+#: cli.py:1350
 msgid "disable plugins by name"
 msgstr "名前でプラグインを無効にする"
 
-#: cli.py:1285
+#: cli.py:1353
 msgid "enable plugins by name"
 msgstr "名前でプラグインを有効にする"
 
-#: cli.py:1288
+#: cli.py:1356
 msgid "skip packages with depsolving problems"
 msgstr "依存性に問題があるパッケージを飛ばす"
 
-#: cli.py:1290
+#: cli.py:1358
 msgid "control whether color is used"
 msgstr ""
 
-#: output.py:298
+#: output.py:303
 msgid "Jan"
 msgstr "1 月"
 
-#: output.py:298
+#: output.py:303
 msgid "Feb"
 msgstr "2 月"
 
-#: output.py:298
+#: output.py:303
 msgid "Mar"
 msgstr "3 月"
 
-#: output.py:298
+#: output.py:303
 msgid "Apr"
 msgstr "4 月"
 
-#: output.py:298
+#: output.py:303
 msgid "May"
 msgstr "5 月"
 
-#: output.py:298
+#: output.py:303
 msgid "Jun"
 msgstr "6 月"
 
-#: output.py:299
+#: output.py:304
 msgid "Jul"
 msgstr "7 月"
 
-#: output.py:299
+#: output.py:304
 msgid "Aug"
 msgstr "8 月"
 
-#: output.py:299
+#: output.py:304
 msgid "Sep"
 msgstr "9 月"
 
-#: output.py:299
+#: output.py:304
 msgid "Oct"
 msgstr "10 月"
 
-#: output.py:299
+#: output.py:304
 msgid "Nov"
 msgstr "11 月"
 
-#: output.py:299
+#: output.py:304
 msgid "Dec"
 msgstr "12 月"
 
-#: output.py:309
+#: output.py:314
 msgid "Trying other mirror."
 msgstr "他のミラーを試します。"
 
-#: output.py:525
+#: output.py:536
 #, python-format
 msgid "Name       : %s%s%s"
 msgstr "名前          : %s%s%s"
 
-#: output.py:526
+#: output.py:537
 #, python-format
 msgid "Arch       : %s"
 msgstr "アーキテクチャ: %s"
 
-#: output.py:528
+#: output.py:539
 #, python-format
 msgid "Epoch      : %s"
 msgstr "エポック      : %s"
 
-#: output.py:529
+#: output.py:540
 #, python-format
 msgid "Version    : %s"
 msgstr "バージョン    : %s"
 
-#: output.py:530
+#: output.py:541
 #, python-format
 msgid "Release    : %s"
 msgstr "リリース      : %s"
 
-#: output.py:531
+#: output.py:542
 #, python-format
 msgid "Size       : %s"
 msgstr "容量          : %s"
 
-#: output.py:532
+#: output.py:543
 #, python-format
 msgid "Repo       : %s"
 msgstr "リポジトリー  : %s"
 
-#: output.py:534
+#: output.py:545
+#, python-format
+msgid "From repo  : %s"
+msgstr ""
+
+#: output.py:547
 #, python-format
 msgid "Committer  : %s"
 msgstr "コミット者    : %s"
 
-#: output.py:535
+#: output.py:548
 #, python-format
 msgid "Committime : %s"
 msgstr "コミット日時  : %s"
 
-#: output.py:536
+#: output.py:549
 #, python-format
 msgid "Buildtime  : %s"
 msgstr "ビルド日時    : %s"
 
-#: output.py:538
+#: output.py:551
 #, python-format
 msgid "Installtime: %s"
 msgstr "インストール日時 : %s "
 
-#: output.py:539
+#: output.py:552
 msgid "Summary    : "
 msgstr "要約          : "
 
-#: 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 "ライセンス    : %s"
 
-#: output.py:543
+#: output.py:556
 msgid "Description: "
 msgstr "説明          : "
 
-#: output.py:611
+#: output.py:624
 msgid "y"
 msgstr "y"
 
-#: output.py:611
+#: output.py:624
 msgid "yes"
 msgstr "はい"
 
-#: output.py:612
+#: output.py:625
 msgid "n"
 msgstr "n"
 
-#: output.py:612
+#: output.py:625
 msgid "no"
 msgstr "いいえ"
 
 # REMEMBER to Translate [Y/N] to the current locale
-#: output.py:616
+#: output.py:629
 msgid "Is this ok [y/N]: "
 msgstr "これでいいですか? [y/N]"
 
-#: output.py:704
+#: output.py:720
 #, python-format
 msgid ""
 "\n"
@@ -609,264 +640,313 @@ msgstr ""
 "\n"
 "グループ: %s"
 
-#: output.py:708
+#: output.py:724
 #, python-format
 msgid " Group-Id: %s"
 msgstr " グループ ID: %s"
 
-#: output.py:713
+#: output.py:729
 #, python-format
 msgid " Description: %s"
 msgstr " 説明: %s"
 
-#: output.py:715
+#: output.py:731
 msgid " Mandatory Packages:"
 msgstr " 強制的なパッケージ:"
 
-#: output.py:716
+#: output.py:732
 msgid " Default Packages:"
 msgstr " 標準パッケージ:"
 
-#: output.py:717
+#: output.py:733
 msgid " Optional Packages:"
 msgstr " オプションパッケージ:"
 
-#: output.py:718
+#: output.py:734
 msgid " Conditional Packages:"
 msgstr " 条件付パッケージ:"
 
-#: output.py:738
+#: output.py:754
 #, python-format
 msgid "package: %s"
 msgstr "パッケージ    : %s"
 
-#: output.py:740
+#: output.py:756
 msgid "  No dependencies for this package"
 msgstr "  このパッケージの依存はありません"
 
-#: output.py:745
+#: output.py:761
 #, python-format
 msgid "  dependency: %s"
 msgstr "  依存性      : %s"
 
-#: output.py:747
+#: output.py:763
 msgid "   Unsatisfied dependency"
 msgstr "  満たされていない依存性"
 
-#: output.py:819
+#: output.py:835
 #, python-format
 msgid "Repo        : %s"
 msgstr "リポジトリー  : %s"
 
-#: output.py:820
+#: output.py:836
 msgid "Matched from:"
 msgstr ""
 
-#: output.py:828
+#: output.py:845
 msgid "Description : "
 msgstr "説明          : "
 
-#: 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 "ライセンス    : %s"
 
-#: output.py:837
+#: output.py:854
 #, python-format
 msgid "Filename    : %s"
 msgstr "リリース      : %s"
 
-#: output.py:841
+#: output.py:858
 msgid "Other       : "
 msgstr "その他        : "
 
-#: output.py:874
+#: output.py:891
 msgid "There was an error calculating total download size"
 msgstr "総ダウンロード容量の計算中にエラーです"
 
-#: output.py:879
+#: output.py:896
 #, python-format
 msgid "Total size: %s"
 msgstr "合計容量: %s"
 
-#: output.py:882
+#: output.py:899
 #, python-format
 msgid "Total download size: %s"
 msgstr "総ダウンロード容量: %s"
 
-#: output.py:924
+#: output.py:940
+msgid "Reinstalling"
+msgstr "再インストールをしています"
+
+#: output.py:941
+msgid "Downgrading"
+msgstr "ダウングレードをしています"
+
+#: output.py:942
 msgid "Installing for dependencies"
-msgstr "依存性関連でのインストールをします"
+msgstr "依存性関連でのインストールをしています"
 
-#: output.py:925
+#: output.py:943
 msgid "Updating for dependencies"
-msgstr "依存性関連での更新をします"
+msgstr "依存性関連での更新をしています"
 
-#: output.py:926
+#: output.py:944
 msgid "Removing for dependencies"
 msgstr "依存性関連での削除をします"
 
-#: output.py:933 output.py:1031
+#: output.py:951 output.py:1063
 msgid "Skipped (dependency problems)"
 msgstr "飛ばしました (依存性の問題)"
 
-#: output.py:954
+#: output.py:974
 msgid "Package"
 msgstr ""
 
-#: output.py:954
+#: output.py:974
 msgid "Arch"
 msgstr ""
 
-#: output.py:955
+#: output.py:975
 msgid "Version"
 msgstr ""
 
-#: output.py:955
+#: output.py:975
 msgid "Repository"
 msgstr ""
 
-#: output.py:956
+#: output.py:976
 msgid "Size"
 msgstr ""
 
-#: output.py:968
+#: output.py:988
 #, python-format
 msgid ""
 "     replacing  %s%s%s.%s %s\n"
 "\n"
-msgstr "     置き換えています  %s%s%s.%s %s\n\n"
+msgstr ""
+"     置き換えています  %s%s%s.%s %s\n"
+"\n"
 
-#: output.py:977
+#: output.py:997
 #, 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
+#: output.py:1004
+#, python-format
+msgid ""
+"Install   %5.5s Package(s)\n"
+"Upgrade   %5.5s Package(s)\n"
+msgstr ""
+
+#: output.py:1013
+#, python-format
+msgid ""
+"Remove    %5.5s Package(s)\n"
+"Reinstall %5.5s Package(s)\n"
+"Downgrade %5.5s Package(s)\n"
+msgstr ""
+
+#: output.py:1057
 msgid "Removed"
 msgstr "削除しました"
 
-#: output.py:1026
+#: output.py:1058
 msgid "Dependency Removed"
 msgstr "依存性の削除をしました"
 
-#: output.py:1028
+#: output.py:1060
 msgid "Dependency Installed"
 msgstr "依存性関連をインストールしました"
 
-#: output.py:1030
+#: output.py:1062
 msgid "Dependency Updated"
 msgstr "依存性を更新しました"
 
-#: output.py:1032
+#: output.py:1064
 msgid "Replaced"
 msgstr "置換しました"
 
-#: output.py:1033
+#: output.py:1065
 msgid "Failed"
 msgstr "失敗しました"
 
-#: output.py:1099
+#: output.py:1131
 msgid "two"
 msgstr ""
 
-#: output.py:1106
+#: output.py:1142
 #, 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 ""
 
-#: output.py:1116
+#: output.py:1153
 msgid "user interrupt"
 msgstr "ユーザーの割り込み"
 
-#: output.py:1132
+#: output.py:1171
 msgid "Total"
 msgstr "合計"
 
-#: output.py:1146
+#: output.py:1186
 msgid "installed"
 msgstr "インストール"
 
-#: output.py:1147
+#: output.py:1187
 msgid "updated"
 msgstr "更新"
 
-#: output.py:1148
+#: output.py:1188
 msgid "obsoleted"
 msgstr "不要"
 
-#: output.py:1149
+#: output.py:1189
 msgid "erased"
 msgstr "削除"
 
-#: output.py:1153
+#: output.py:1193
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> パッケージ %s.%s %s:%s-%s を%sに設定しました"
 
-#: output.py:1160
+#: output.py:1200
 msgid "--> Running transaction check"
 msgstr "--> トランザクションの確認を実行しています"
 
-#: output.py:1165
+#: output.py:1205
 msgid "--> Restarting Dependency Resolution with new changes."
 msgstr "--> 新しい変更と依存性の解決を再開しています。"
 
-#: output.py:1170
+#: output.py:1210
 msgid "--> Finished Dependency Resolution"
 msgstr "--> 依存性解決を終了しました"
 
-#: output.py:1175
+#: output.py:1215 output.py:1220
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> 依存性の処理をしています: %s のパッケージ: %s"
 
-#: output.py:1180
+#: output.py:1224
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> 未解決の依存性: %s"
 
-#: output.py:1186
+#: output.py:1230 output.py:1235
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> 衝突を処理しています: %s は %s と衝突しています"
 
-#: output.py:1189
+#: output.py:1239
 msgid "--> Populating transaction set with selected packages. Please wait."
 msgstr ""
 
-#: output.py:1193
+#: output.py:1243
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
 msgstr ""
 "---> トランザクションセットに束ねるために %s のヘッダーをダウンロードしていま"
 "す"
 
-#: yumcommands.py:41
+#: utils.py:132 yummain.py:42
+msgid ""
+"\n"
+"\n"
+"Exiting on user cancel"
+msgstr ""
+"\n"
+"\n"
+"ユーザーの取り消しで終了しています"
+
+#: utils.py:138 yummain.py:48
+msgid ""
+"\n"
+"\n"
+"Exiting on Broken Pipe"
+msgstr ""
+"\n"
+"\n"
+"パイプが壊れたため終了しています"
+
+#: utils.py:140 yummain.py:50
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s"
+msgstr "\n\n%s"
+
+#: utils.py:179 yummain.py:273
+msgid "Complete!"
+msgstr "完了しました!"
+
+#: yumcommands.py:40
 msgid "You need to be root to perform this command."
 msgstr "このコマンドを実行するには root である必要があります。"
 
-#: yumcommands.py:48
+#: yumcommands.py:47
 msgid ""
 "\n"
 "You have enabled checking of packages via GPG keys. This is a good thing. \n"
@@ -884,156 +964,156 @@ msgid ""
 "For more information contact your distribution or package provider.\n"
 msgstr ""
 
-#: yumcommands.py:68
+#: yumcommands.py:67
 #, python-format
 msgid "Error: Need to pass a list of pkgs to %s"
 msgstr "エラー: パッケージの一覧を %s に渡す必要があります"
 
-#: yumcommands.py:74
+#: yumcommands.py:73
 msgid "Error: Need an item to match"
 msgstr "エラー: 一致する項目が必要です"
 
-#: yumcommands.py:80
+#: yumcommands.py:79
 msgid "Error: Need a group or list of groups"
 msgstr "エラー: グループ化グループの一覧が必要です"
 
-#: yumcommands.py:89
+#: yumcommands.py:88
 #, python-format
 msgid "Error: clean requires an option: %s"
 msgstr "エラー: clean は引数をひとつ要求します: %s"
 
-#: yumcommands.py:94
+#: yumcommands.py:93
 #, python-format
 msgid "Error: invalid clean argument: %r"
 msgstr "エラー: 不正な clean の引数です: %r"
 
-#: yumcommands.py:107
+#: yumcommands.py:106
 msgid "No argument to shell"
 msgstr "シェルへの引数がありません"
 
-#: yumcommands.py:110
+#: yumcommands.py:108
 #, python-format
 msgid "Filename passed to shell: %s"
 msgstr "シェルに渡すファイル名: %s"
 
-#: yumcommands.py:114
+#: yumcommands.py:112
 #, python-format
 msgid "File %s given as argument to shell does not exist."
 msgstr "シェルへの引数として渡したファイル %s は存在しません。"
 
-#: yumcommands.py:120
+#: yumcommands.py:118
 msgid "Error: more than one file given as argument to shell."
 msgstr "エラー: シェルへの引数としてひとつ以上のファイルを渡しました。"
 
-#: yumcommands.py:169
+#: yumcommands.py:167
 msgid "PACKAGE..."
 msgstr "パッケージ..."
 
-#: yumcommands.py:172
+#: yumcommands.py:170
 msgid "Install a package or packages on your system"
 msgstr "システムにパッケージをインストールする"
 
-#: yumcommands.py:180
+#: yumcommands.py:178
 msgid "Setting up Install Process"
 msgstr "インストール処理の設定をしています"
 
-#: yumcommands.py:191
+#: yumcommands.py:189
 msgid "[PACKAGE...]"
 msgstr "[パッケージ...]"
 
-#: yumcommands.py:194
+#: yumcommands.py:192
 msgid "Update a package or packages on your system"
 msgstr "システムのパッケージを更新する"
 
-#: yumcommands.py:201
+#: yumcommands.py:199
 msgid "Setting up Update Process"
 msgstr "更新処理の設定をしています"
 
-#: yumcommands.py:243
+#: yumcommands.py:244
 msgid "Display details about a package or group of packages"
 msgstr "パッケージもしくはパッケージのグループについての詳細を表示する"
 
-#: yumcommands.py:292
+#: yumcommands.py:293
 msgid "Installed Packages"
 msgstr "インストール済みパッケージ"
 
-#: yumcommands.py:300
+#: yumcommands.py:301
 msgid "Available Packages"
 msgstr "利用可能なパッケージ"
 
-#: yumcommands.py:304
+#: yumcommands.py:305
 msgid "Extra Packages"
 msgstr "外部パッケージ"
 
-#: yumcommands.py:308
+#: yumcommands.py:309
 msgid "Updated Packages"
 msgstr "更新したパッケージ"
 
-#: yumcommands.py:316 yumcommands.py:323 yumcommands.py:600
+#: yumcommands.py:317 yumcommands.py:324 yumcommands.py:600
 msgid "Obsoleting Packages"
 msgstr "パッケージを不要にしています"
 
-#: yumcommands.py:325
+#: yumcommands.py:326
 msgid "Recently Added Packages"
 msgstr "最近追加したパッケージ"
 
-#: yumcommands.py:332
+#: yumcommands.py:333
 msgid "No matching Packages to list"
 msgstr "表示するパッケージはありません"
 
-#: yumcommands.py:346
+#: yumcommands.py:347
 msgid "List a package or groups of packages"
 msgstr "パッケージグループの一覧を表示する"
 
-#: yumcommands.py:358
+#: yumcommands.py:359
 msgid "Remove a package or packages from your system"
 msgstr "システムから削除するパッケージ"
 
-#: yumcommands.py:365
+#: yumcommands.py:366
 msgid "Setting up Remove Process"
 msgstr "削除処理の設定をしています"
 
-#: yumcommands.py:379
+#: yumcommands.py:380
 msgid "Setting up Group Process"
 msgstr "グループ処理の設定をしています"
 
-#: yumcommands.py:385
+#: yumcommands.py:386
 msgid "No Groups on which to run command"
 msgstr ""
 
-#: yumcommands.py:398
+#: yumcommands.py:399
 msgid "List available package groups"
 msgstr "利用できるパッケージグループの一覧"
 
-#: yumcommands.py:415
+#: yumcommands.py:416
 msgid "Install the packages in a group on your system"
 msgstr "システムのグループのパッケージをインストールする"
 
-#: yumcommands.py:437
+#: yumcommands.py:438
 msgid "Remove the packages in a group from your system"
 msgstr "システムからグループのパッケージを削除する"
 
-#: yumcommands.py:464
+#: yumcommands.py:465
 msgid "Display details about a package group"
 msgstr "パッケージグループについての詳細を表示する"
 
-#: yumcommands.py:488
+#: yumcommands.py:489
 msgid "Generate the metadata cache"
 msgstr "メタデータキャッシュを生成する"
 
-#: yumcommands.py:494
+#: yumcommands.py:495
 msgid "Making cache files for all metadata files."
 msgstr "すべて飲めたデータファイルのキャッシュを作成します。"
 
-#: yumcommands.py:495
+#: yumcommands.py:496
 msgid "This may take a while depending on the speed of this computer"
 msgstr ""
 
-#: yumcommands.py:516
+#: yumcommands.py:517
 msgid "Metadata Cache Created"
 msgstr "メタデータのキャッシュを作成しました"
 
-#: yumcommands.py:530
+#: yumcommands.py:531
 msgid "Remove cached data"
 msgstr "キャッシュデータを削除する"
 
@@ -1106,15 +1186,15 @@ msgid "disabled"
 msgstr "無効"
 
 #: yumcommands.py:827
-msgid "Repo-id     : "
-msgstr "リポジトリーID   : "
+msgid "Repo-id      : "
+msgstr "リポジトリーID    : "
 
 #: yumcommands.py:828
-msgid "Repo-name   : "
-msgstr "リポジトリー名   : "
+msgid "Repo-name    : "
+msgstr "リポジトリー名    : "
 
 #: yumcommands.py:829
-msgid "Repo-status : "
+msgid "Repo-status  : "
 msgstr "リポジトリーの状態: "
 
 #: yumcommands.py:831
@@ -1122,67 +1202,94 @@ msgid "Repo-revision: "
 msgstr "リポジトリーのリビジョン: "
 
 #: yumcommands.py:835
-msgid "Repo-tags   : "
-msgstr "リポジトリータグ : "
+msgid "Repo-tags    : "
+msgstr "リポジトリータグ  : "
 
 #: yumcommands.py:841
 msgid "Repo-distro-tags: "
 msgstr ""
 
 #: yumcommands.py:846
-msgid "Repo-updated: "
+msgid "Repo-updated : "
 msgstr ""
 
 #: yumcommands.py:848
-msgid "Repo-pkgs   : "
+msgid "Repo-pkgs    : "
 msgstr ""
 
 #: yumcommands.py:849
-msgid "Repo-size   : "
-msgstr "リポジトリー容量 : %s"
+msgid "Repo-size    : "
+msgstr "リポジトリー容量  : "
 
 #: yumcommands.py:856
-msgid "Repo-baseurl: "
-msgstr ""
+msgid "Repo-baseurl : "
+msgstr "リポジトリー基点 URL: "
 
-#: yumcommands.py:860
+#: yumcommands.py:864
 msgid "Repo-metalink: "
-msgstr ""
-
-#: yumcommands.py:863
-msgid "Repo-mirrors: "
-msgstr ""
+msgstr "リポジトリー メタリンク: "
 
-#: yumcommands.py:867
-msgid "Repo-exclude: "
-msgstr ""
+#: yumcommands.py:868
+msgid "  Updated    : "
+msgstr "更新しました : "
 
 #: yumcommands.py:871
-msgid "Repo-include: "
+msgid "Repo-mirrors : "
+msgstr "リポジトリー ミラー: "
+
+#: yumcommands.py:875 yummain.py:133
+msgid "Unknown"
+msgstr "不明"
+
+#: yumcommands.py:881
+#, python-format
+msgid "Never (last: %s)"
 msgstr ""
 
-#: yumcommands.py:881 yumcommands.py:907
+#: yumcommands.py:883
+#, python-format
+msgid "Instant (last: %s)"
+msgstr "インスタント (最終: %s)"
+
+#: yumcommands.py:886
+#, python-format
+msgid "%s second(s) (last: %s)"
+msgstr "%s 秒 (最終: %s)"
+
+#: yumcommands.py:888
+msgid "Repo-expire  : "
+msgstr "リポジトリー期限  : "
+
+#: yumcommands.py:891
+msgid "Repo-exclude : "
+msgstr "リポジトリー除外  : "
+
+#: yumcommands.py:895
+msgid "Repo-include : "
+msgstr "リポジトリー内包  : "
+
+#: yumcommands.py:905 yumcommands.py:931
 msgid "repo id"
-msgstr ""
+msgstr "リポジトリー ID"
 
-#: yumcommands.py:895 yumcommands.py:896 yumcommands.py:910
+#: yumcommands.py:919 yumcommands.py:920 yumcommands.py:934
 msgid "status"
-msgstr ""
+msgstr "状態"
 
-#: yumcommands.py:908
+#: yumcommands.py:932
 msgid "repo name"
-msgstr ""
+msgstr "リポジトリー名"
 
-#: yumcommands.py:934
+#: yumcommands.py:958
 msgid "Display a helpful usage message"
 msgstr "役立つ使い方のメッセージを表示する"
 
-#: yumcommands.py:968
+#: yumcommands.py:992
 #, python-format
 msgid "No help available for %s"
 msgstr "%s のヘルプは利用できません"
 
-#: yumcommands.py:973
+#: yumcommands.py:997
 msgid ""
 "\n"
 "\n"
@@ -1192,7 +1299,7 @@ msgstr ""
 "\n"
 "別名: "
 
-#: yumcommands.py:975
+#: yumcommands.py:999
 msgid ""
 "\n"
 "\n"
@@ -1202,108 +1309,104 @@ msgstr ""
 "\n"
 "別名: "
 
-#: yumcommands.py:1003
+#: yumcommands.py:1027
 msgid "Setting up Reinstall Process"
 msgstr "再インストール処理の設定をしています"
 
-#: yumcommands.py:1017
+#: yumcommands.py:1035
 msgid "reinstall a package"
 msgstr "パッケージの再インストール"
 
-#: yummain.py:42
-msgid ""
-"\n"
-"\n"
-"Exiting on user cancel"
-msgstr ""
-"\n"
-"\n"
-"ユーザーの取り消しで終了しています"
+#: yumcommands.py:1053
+msgid "Setting up Downgrade Process"
+msgstr "ダウングレード処理の設定をしています"
 
-#: yummain.py:48
-msgid ""
-"\n"
-"\n"
-"Exiting on Broken Pipe"
+#: yumcommands.py:1060
+msgid "downgrade a package"
+msgstr "パッケージのダウングレード"
+
+#: yumcommands.py:1074
+msgid "Display a version for the machine and/or available repos."
 msgstr ""
-"\n"
-"\n"
-"パイプが壊れたため終了しています"
 
-#: yummain.py:126
+#: yumcommands.py:1101
+msgid "Installed:"
+msgstr "インストール済み:"
+
+#: yumcommands.py:1110
+msgid "Available:"
+msgstr "利用可能:"
+
+#: yummain.py:128
 msgid "Running"
 msgstr "実行中"
 
-#: yummain.py:127
+#: yummain.py:129
 msgid "Sleeping"
 msgstr "スリープ中"
 
-#: yummain.py:128
+#: yummain.py:130
 msgid "Uninteruptable"
-msgstr ""
+msgstr "割り込み不可"
 
-#: yummain.py:129
+#: yummain.py:131
 msgid "Zombie"
 msgstr "ゾンビ"
 
-#: yummain.py:130
+#: yummain.py:132
 msgid "Traced/Stopped"
 msgstr ""
 
-#: yummain.py:131
-msgid "Unknown"
-msgstr "不明"
-
-#: yummain.py:135
+#: yummain.py:137
 msgid "  The other application is: PackageKit"
 msgstr " 他のアプリケーション: PackageKit"
 
-#: yummain.py:137
+#: yummain.py:139
 #, python-format
 msgid "  The other application is: %s"
 msgstr " 他のアプリケーション: %s"
 
-#: yummain.py:140
+#: yummain.py:142
 #, python-format
 msgid "    Memory : %5s RSS (%5sB VSZ)"
 msgstr "   メモリー: %5s RSS (%5sB VSZ)"
 
-#: yummain.py:144
+#: yummain.py:146
 #, python-format
 msgid "    Started: %s - %s ago"
 msgstr "    開始   : %s - %s 秒経過"
 
-#: yummain.py:146
+#: yummain.py:148
 #, python-format
 msgid "    State  : %s, pid: %d"
 msgstr "    状態   : %s、PID: %d"
 
-#: yummain.py:171
+#: yummain.py:173
 msgid ""
 "Another app is currently holding the yum lock; waiting for it to exit..."
 msgstr ""
 "別のアプリケーションが現在 yum のロックを持っています。終了するまで待っていま"
 "す..."
 
-#: yummain.py:199 yummain.py:238
+#: yummain.py:201 yummain.py:240
 #, python-format
 msgid "Error: %s"
 msgstr "エラー: %s"
 
-#: yummain.py:209 yummain.py:250
+#: yummain.py:211 yummain.py:253
 #, python-format
 msgid "Unknown Error(s): Exit Code: %d:"
 msgstr "不明なエラー: 終了コード: %d:"
 
-#: yummain.py:216
+#: yummain.py:218
 msgid "Resolving Dependencies"
 msgstr "依存性の解決をしています"
 
-#: yummain.py:240
+#: yummain.py:242
 msgid " You could try using --skip-broken to work around the problem"
 msgstr " 問題を回避するために --skip-broken を用いることができません"
 
-#: yummain.py:241
+#: yummain.py:243
 msgid ""
 " You could try running: package-cleanup --problems\n"
 "                        package-cleanup --dupes\n"
@@ -1313,7 +1416,7 @@ msgstr ""
 "                   package-cleanup --dupes\n"
 "                   rpm -Va --nofiles --nodigest"
 
-#: yummain.py:256
+#: yummain.py:259
 msgid ""
 "\n"
 "Dependencies Resolved"
@@ -1321,321 +1424,328 @@ msgstr ""
 "\n"
 "依存性を解決しました"
 
-#: yummain.py:270
-msgid "Complete!"
-msgstr "完了しました!"
-
-#: yummain.py:325
+#: yummain.py:326
 msgid ""
 "\n"
 "\n"
 "Exiting on user cancel."
-msgstr "\n\n\nユーザーによる取り消しで終了しています。"
+msgstr ""
+"\n"
+"\n"
+"\n"
+"ユーザーによる取り消しで終了しています。"
 
-#: yum/depsolve.py:84
+#: yum/depsolve.py:83
 msgid "doTsSetup() will go away in a future version of Yum.\n"
 msgstr "doTsSetup() は Yum の将来のバージョンでなくなります。\n"
 
-#: yum/depsolve.py:99
+#: yum/depsolve.py:98
 msgid "Setting up TransactionSets before config class is up"
 msgstr "構成クラスが終わる前にトランザクションセットを設定しています"
 
-#: yum/depsolve.py:150
+#: yum/depsolve.py:149
 #, python-format
 msgid "Invalid tsflag in config file: %s"
 msgstr "構成ファイルの tsflag が不正です: %s"
 
-#: yum/depsolve.py:161
+#: yum/depsolve.py:160
 #, python-format
 msgid "Searching pkgSack for dep: %s"
 msgstr "依存性の pkgSack を検索しています: %s"
 
-#: yum/depsolve.py:184
+#: yum/depsolve.py:183
 #, python-format
 msgid "Potential match for %s from %s"
 msgstr ""
 
-#: yum/depsolve.py:192
+#: yum/depsolve.py:191
 #, python-format
 msgid "Matched %s to require for %s"
-msgstr ""
+msgstr "%s は %s の要求に一致しました"
 
-#: yum/depsolve.py:233
+#: yum/depsolve.py:232
 #, python-format
 msgid "Member: %s"
 msgstr "メンバー: %s"
 
-#: yum/depsolve.py:247 yum/depsolve.py:738
+#: yum/depsolve.py:246 yum/depsolve.py:756
 #, python-format
 msgid "%s converted to install"
 msgstr "%s をインストールに変更しました"
 
-#: yum/depsolve.py:254
+#: yum/depsolve.py:253
 #, python-format
 msgid "Adding Package %s in mode %s"
 msgstr "モード %s にパッケージ %s を追加しています"
 
-#: yum/depsolve.py:264
+#: yum/depsolve.py:263
 #, python-format
 msgid "Removing Package %s"
 msgstr "パッケージ %s の削除をしています"
 
-#: yum/depsolve.py:275
+#: yum/depsolve.py:285
 #, python-format
 msgid "%s requires: %s"
 msgstr "%s の要求: %s"
 
-#: yum/depsolve.py:333
+#: yum/depsolve.py:343
 msgid "Needed Require has already been looked up, cheating"
 msgstr "必要な要求は既に調べましたが不正をしています"
 
-#: yum/depsolve.py:343
+#: yum/depsolve.py:353
 #, python-format
 msgid "Needed Require is not a package name. Looking up: %s"
 msgstr "必要な要求はパッケージ名ではありません。調べています: %s"
 
-#: yum/depsolve.py:350
+#: yum/depsolve.py:360
 #, python-format
 msgid "Potential Provider: %s"
 msgstr ""
 
-#: yum/depsolve.py:373
+#: yum/depsolve.py:383
 #, python-format
 msgid "Mode is %s for provider of %s: %s"
-msgstr ""
+msgstr "%s のモードは %s が提供しています: %s"
 
-#: yum/depsolve.py:377
+#: yum/depsolve.py:387
 #, python-format
 msgid "Mode for pkg providing %s: %s"
-msgstr ""
+msgstr "%s の提供しているパッケージのモード: %s"
 
-#: yum/depsolve.py:381
+#: yum/depsolve.py:391
 #, python-format
 msgid "TSINFO: %s package requiring %s marked as erase"
 msgstr ""
 
-#: yum/depsolve.py:394
+#: yum/depsolve.py:404
 #, python-format
 msgid "TSINFO: Obsoleting %s with %s to resolve dep."
 msgstr ""
 
-#: yum/depsolve.py:397
+#: yum/depsolve.py:407
 #, python-format
 msgid "TSINFO: Updating %s to resolve dep."
 msgstr ""
 
-#: yum/depsolve.py:405
+#: yum/depsolve.py:415
 #, python-format
 msgid "Cannot find an update path for dep for: %s"
-msgstr ""
+msgstr "依存する更新パスを見つけられません: %s"
 
-#: yum/depsolve.py:415
+#: yum/depsolve.py:425
 #, python-format
 msgid "Unresolvable requirement %s for %s"
 msgstr "要求された %s は %s で解決しませんでした"
 
-#: yum/depsolve.py:438
+#: yum/depsolve.py:448
 #, python-format
 msgid "Quick matched %s to require for %s"
 msgstr ""
 
-#: yum/depsolve.py:480
+#: yum/depsolve.py:490
 #, python-format
 msgid "%s is in providing packages but it is already installed, removing."
 msgstr ""
 "%s を提供するパッケージはすでにインストールされています。削除しています。"
 
-#: yum/depsolve.py:496
+#: yum/depsolve.py:506
 #, python-format
 msgid "Potential resolving package %s has newer instance in ts."
 msgstr ""
 
-#: yum/depsolve.py:507
+#: yum/depsolve.py:517
 #, python-format
 msgid "Potential resolving package %s has newer instance installed."
 msgstr ""
 
-#: yum/depsolve.py:515 yum/depsolve.py:564
+#: yum/depsolve.py:525 yum/depsolve.py:571
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "依存性の欠落: %s はパッケージ %s が必要としています"
 
-#: yum/depsolve.py:528
+#: yum/depsolve.py:538
 #, python-format
 msgid "%s already in ts, skipping this one"
-msgstr ""
+msgstr "%s はすでに ts にあります。これを飛ばします"
 
-#: yum/depsolve.py:574
+#: yum/depsolve.py:581
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: %s を更新として %s で設定しています"
 
-#: yum/depsolve.py:582
+#: yum/depsolve.py:589
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: %s をインストールとして %s で設定しています"
 
-#: yum/depsolve.py:675 yum/depsolve.py:756
+#: yum/depsolve.py:692 yum/depsolve.py:774
 msgid "Success - empty transaction"
 msgstr "成功 - 空のトランザクション"
 
-#: yum/depsolve.py:713 yum/depsolve.py:728
+#: yum/depsolve.py:731 yum/depsolve.py:746
 msgid "Restarting Loop"
 msgstr "ループを再開しています"
 
-#: yum/depsolve.py:744
+#: yum/depsolve.py:762
 msgid "Dependency Process ending"
 msgstr "依存性の処理を終了しています"
 
-#: yum/depsolve.py:750
+#: yum/depsolve.py:768
 #, python-format
 msgid "%s from %s has depsolving problems"
 msgstr "%s(%s) は依存性に問題があります"
 
-#: yum/depsolve.py:757
+#: yum/depsolve.py:775
 msgid "Success - deps resolved"
 msgstr "成功 - 依存性を解決しました"
 
-#: yum/depsolve.py:771
+#: yum/depsolve.py:789
 #, python-format
 msgid "Checking deps for %s"
 msgstr "%s の依存性を確認しています"
 
-#: yum/depsolve.py:854
+#: yum/depsolve.py:872
 #, python-format
 msgid "looking for %s as a requirement of %s"
-msgstr ""
+msgstr "%s の要求として %s を検索しています"
 
-#: yum/depsolve.py:996
+#: yum/depsolve.py:1014
 #, python-format
 msgid "Running compare_providers() for %s"
 msgstr "%s の compare_providers() を実行しています"
 
-#: yum/depsolve.py:1024 yum/depsolve.py:1030
+#: yum/depsolve.py:1048 yum/depsolve.py:1054
 #, python-format
 msgid "better arch in po %s"
 msgstr ""
 
-#: yum/depsolve.py:1091
+#: yum/depsolve.py:1149
 #, python-format
 msgid "%s obsoletes %s"
 msgstr ""
 
-#: yum/depsolve.py:1107
+#: yum/depsolve.py:1161
 #, python-format
 msgid ""
 "archdist compared %s to %s on %s\n"
 "  Winner: %s"
 msgstr ""
 
-#: yum/depsolve.py:1114
+#: yum/depsolve.py:1168
 #, python-format
 msgid "common sourcerpm %s and %s"
 msgstr "%s と %s の共通ソース RPM(SRPM)"
 
-#: yum/depsolve.py:1120
+#: yum/depsolve.py:1174
 #, python-format
 msgid "common prefix of %s between %s and %s"
 msgstr "%s から %s と %s の共通接頭辞"
 
-#: yum/depsolve.py:1128
+#: yum/depsolve.py:1182
 #, python-format
 msgid "Best Order: %s"
 msgstr "最適の順序: %s"
 
-#: yum/__init__.py:176
+#: yum/__init__.py:180
 msgid "doConfigSetup() will go away in a future version of Yum.\n"
 msgstr "doConfigSetup() は Yum の将来のバージョンでなくなります。\n"
 
-#: yum/__init__.py:386
+#: yum/__init__.py:401
 #, python-format
 msgid "Repository %r is missing name in configuration, using id"
 msgstr "リポジトリー %r は構成中に名前がありませんので ID を使います"
 
-#: yum/__init__.py:424
+#: yum/__init__.py:439
 msgid "plugins already initialised"
 msgstr "プラグインは既に初期化されています"
 
-#: yum/__init__.py:431
+#: yum/__init__.py:446
 msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
 msgstr "dbRpmDBSetup() は Yum の将来のバージョンでなくなります。\n"
 
-#: yum/__init__.py:441
+#: yum/__init__.py:457
 msgid "Reading Local RPMDB"
 msgstr "ローカルの RPMDB を読み込んでいます"
 
-#: yum/__init__.py:459
+#: yum/__init__.py:478
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
 msgstr "doRepoSetup() は Yum の将来のバージョンでなくなります。\n"
 
-#: yum/__init__.py:479
+#: yum/__init__.py:498
 msgid "doSackSetup() will go away in a future version of Yum.\n"
 msgstr "doSackSetup() は Yum の将来のバージョンでなくなります。\n"
 
-#: yum/__init__.py:496
+#: yum/__init__.py:528
 msgid "Setting up Package Sacks"
 msgstr ""
 
-#: yum/__init__.py:539
+#: yum/__init__.py:573
 #, python-format
 msgid "repo object for repo %s lacks a _resetSack method\n"
 msgstr ""
 
-#: yum/__init__.py:540
+#: yum/__init__.py:574
 msgid "therefore this repo cannot be reset.\n"
-msgstr ""
+msgstr "したがって、このリポジトリーはリセットできません。\n"
 
-#: yum/__init__.py:545
+#: yum/__init__.py:579
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
 msgstr "doUpdateSetup() は Yum の将来のバージョンでなくなります。\n"
 
-#: yum/__init__.py:557
+#: yum/__init__.py:591
 msgid "Building updates object"
 msgstr "オブジェクトの更新を構築しています"
 
-#: yum/__init__.py:588
+#: yum/__init__.py:626
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
 msgstr "doGroupSetup() は Yum の将来のバージョンでなくなります。\n"
 
-#: yum/__init__.py:612
+#: yum/__init__.py:651
 msgid "Getting group metadata"
 msgstr "グループメタデータを取得しています"
 
-#: yum/__init__.py:637
+#: yum/__init__.py:677
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "リポジトリーからグループファイルを追加しています: %s"
 
-#: yum/__init__.py:642
+#: yum/__init__.py:686
 #, python-format
 msgid "Failed to add groups file for repository: %s - %s"
 msgstr "リポジトリーのグループファイルに追加できませんでした: %s - %s"
 
-#: yum/__init__.py:648
+#: yum/__init__.py:692
 msgid "No Groups Available in any repository"
 msgstr "いずれかのリポジトリーに利用できるグループはありません"
 
-#: yum/__init__.py:698
+#: yum/__init__.py:742
 msgid "Importing additional filelist information"
 msgstr "追加ファイル一覧情報にインポートしています"
 
-#: yum/__init__.py:706
+#: yum/__init__.py:756
+#, python-format
+msgid "The program %s%s%s is found in the yum-utils package."
+msgstr "プログラム %s%s%s を yum-utils パッケージ内で発見しました。"
+
+#: yum/__init__.py:764
 msgid ""
 "There are unfinished transactions remaining. You might consider running yum-"
 "complete-transaction first to finish them."
-msgstr "終了していない残作業があります。それらを終了するためにはじめに yum-complete-transaction の実行を検討するかもしれません。"
+msgstr ""
+"終了していない残作業があります。それらを終了するためにはじめに yum-complete-"
+"transaction の実行を検討するかもしれません。"
 
-#: yum/__init__.py:772
+#: yum/__init__.py:832
 #, python-format
 msgid "Skip-broken round %i"
 msgstr ""
 
-#: yum/__init__.py:824
+#: yum/__init__.py:885
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr ""
 
-#: yum/__init__.py:825
+#: yum/__init__.py:886
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1643,87 +1753,73 @@ msgstr ""
 "\n"
 "パッケージは依存関係に問題があるため、飛ばします:"
 
-#: yum/__init__.py:829
+#: yum/__init__.py:890
 #, python-format
 msgid "    %s from %s"
 msgstr ""
 
-#: yum/__init__.py:968
+#: yum/__init__.py:1043
 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 ""
+msgid "Failed to remove transaction file %s"
+msgstr "トランザクションファイル %s の削除に失敗しました"
 
-#: yum/__init__.py:1091
+#: yum/__init__.py:1087
 #, python-format
-msgid "Keeping included package %s"
+msgid "%s was supposed to be installed but is not!"
 msgstr ""
 
-#: yum/__init__.py:1097
+#: yum/__init__.py:1126
 #, python-format
-msgid "Removing unmatched package %s"
+msgid "%s was supposed to be removed but is not!"
 msgstr ""
 
-#: yum/__init__.py:1100
-msgid "Finished"
-msgstr "完了しました"
-
-#: yum/__init__.py:1130
+#: yum/__init__.py:1241
 #, python-format
 msgid "Unable to check if PID %s is active"
-msgstr ""
+msgstr "PID %s がアクティブかどうかの確認に失敗しました"
 
-#: yum/__init__.py:1134
+#: yum/__init__.py:1245
 #, python-format
 msgid "Existing lock %s: another copy is running as pid %s."
 msgstr "ロックファイル %s が存在します: PID %s として別に実行されています。"
 
-#: yum/__init__.py:1204
+#: yum/__init__.py:1280
+#, python-format
+msgid "Could not create lock at %s: %s "
+msgstr "%s でロックを作成できません: %s"
+
+#: yum/__init__.py:1325
 msgid "Package does not match intended download"
 msgstr "パッケージは意図したダウンロードと一致しません"
 
-#: yum/__init__.py:1219
+#: yum/__init__.py:1340
 msgid "Could not perform checksum"
 msgstr "チェックサムの実行ができません"
 
-#: yum/__init__.py:1222
+#: yum/__init__.py:1343
 msgid "Package does not match checksum"
 msgstr "パッケージのチェックサムが一致しません"
 
-#: yum/__init__.py:1265
+#: yum/__init__.py:1385
 #, python-format
 msgid "package fails checksum but caching is enabled for %s"
-msgstr "%s のためにキャッシュを有効にしていますが、パッケージのチェックサム演算に失敗します。"
+msgstr ""
+"%s のためにキャッシュを有効にしていますが、パッケージのチェックサム演算に失敗"
+"します。"
 
-#: yum/__init__.py:1268 yum/__init__.py:1297
+#: yum/__init__.py:1388 yum/__init__.py:1417
 #, python-format
 msgid "using local copy of %s"
 msgstr "%s のローカルコピーを使う"
 
-#: yum/__init__.py:1309
+#: yum/__init__.py:1429
 #, python-format
 msgid ""
 "Insufficient space in download directory %s\n"
@@ -1734,72 +1830,74 @@ msgstr ""
 "    * 空き容量 %s\n"
 "    * 必要容量 %s"
 
-#: yum/__init__.py:1356
+#: yum/__init__.py:1478
 msgid "Header is not complete."
 msgstr "ヘッダーが完了していません。"
 
-#: yum/__init__.py:1393
+#: yum/__init__.py:1515
 #, python-format
 msgid ""
 "Header not in local cache and caching-only mode enabled. Cannot download %s"
-msgstr "ヘッダーはキャッシュのみのモードが有効で、ローカルにありません。%s のダウンロードができません"
+msgstr ""
+"ヘッダーはキャッシュのみのモードが有効で、ローカルにありません。%s のダウン"
+"ロードができません"
 
-#: yum/__init__.py:1448
+#: yum/__init__.py:1570
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "%s の公開鍵がインストールされていません"
 
-#: yum/__init__.py:1452
+#: yum/__init__.py:1574
 #, python-format
 msgid "Problem opening package %s"
 msgstr "パッケージ %s を開いている最中に問題です"
 
-#: yum/__init__.py:1460
+#: yum/__init__.py:1582
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "%s の公開鍵が信頼されません"
 
-#: yum/__init__.py:1464
+#: yum/__init__.py:1586
 #, python-format
 msgid "Package %s is not signed"
 msgstr "パッケージ %s は署名されていません"
 
-#: yum/__init__.py:1502
+#: yum/__init__.py:1624
 #, python-format
 msgid "Cannot remove %s"
 msgstr "%s を削除できません"
 
-#: yum/__init__.py:1505
+#: yum/__init__.py:1628
 #, python-format
 msgid "%s removed"
 msgstr "%s を削除しました"
 
-#: yum/__init__.py:1541
+#: yum/__init__.py:1664
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "%s のファイル %s を削除できませんでした"
 
-#: yum/__init__.py:1544
+#: yum/__init__.py:1668
 #, python-format
 msgid "%s file %s removed"
 msgstr "%s のファイル %s を削除しました"
 
-#: yum/__init__.py:1546
+#: yum/__init__.py:1670
 #, python-format
 msgid "%d %s files removed"
 msgstr "%d %sファイルを削除しました"
 
-#: yum/__init__.py:1614
+#: yum/__init__.py:1739
 #, python-format
 msgid "More than one identical match in sack for %s"
 msgstr ""
 
-#: yum/__init__.py:1619
+#: yum/__init__.py:1745
 #, python-format
 msgid "Nothing matches %s.%s %s:%s-%s from update"
 msgstr "更新から %s.%s %s:%s-%s に一致しません"
 
-#: yum/__init__.py:1838
+#: yum/__init__.py:1978
 msgid ""
 "searchPackages() will go away in a future version of "
 "Yum.                      Use searchGenerator() instead. \n"
@@ -1807,172 +1905,185 @@ msgstr ""
 "searchPackages() は Yum の将来のバージョンでなくなりま"
 "す。                      代わりに searchGenerator() を使います。\n"
 
-#: yum/__init__.py:1876
+#: yum/__init__.py:2020
 #, python-format
 msgid "Searching %d packages"
 msgstr "%d 個のパッケージを検索しています"
 
-#: yum/__init__.py:1879
+#: yum/__init__.py:2024
 #, python-format
 msgid "searching package %s"
 msgstr "パッケージ %s を検索しています"
 
-#: yum/__init__.py:1890
+#: yum/__init__.py:2036
 msgid "searching in file entries"
 msgstr "ファイルのエントリーから検索しています"
 
-#: yum/__init__.py:1896
+#: yum/__init__.py:2043
 msgid "searching in provides entries"
 msgstr "提供されたエントリーを検索しています"
 
-#: yum/__init__.py:1929
+#: yum/__init__.py:2076
 #, python-format
 msgid "Provides-match: %s"
 msgstr ""
 
-#: yum/__init__.py:1978
+#: yum/__init__.py:2125
 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
+#: yum/__init__.py:2156 yum/__init__.py:2175 yum/__init__.py:2206
+#: yum/__init__.py:2212 yum/__init__.py:2291 yum/__init__.py:2295
+#: yum/__init__.py:2605
 #, python-format
 msgid "No Group named %s exists"
 msgstr "グループ名 %s が存在しません"
 
-#: yum/__init__.py:2039 yum/__init__.py:2159
+#: yum/__init__.py:2187 yum/__init__.py:2308
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "パッケージ%s はグループ %s で設定されていません"
 
-#: yum/__init__.py:2085
+#: yum/__init__.py:2234
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "パッケージ %s をグループ %s から追加しています"
 
-#: yum/__init__.py:2090
+#: yum/__init__.py:2238
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr ""
 
-#: yum/__init__.py:2186
+#: yum/__init__.py:2335
 #, python-format
 msgid "Package tuple %s could not be found in packagesack"
 msgstr ""
 
-#: yum/__init__.py:2201
+#: yum/__init__.py:2349
 msgid ""
 "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
 msgstr ""
 
-#: yum/__init__.py:2253 yum/__init__.py:2294
+#: yum/__init__.py:2405 yum/__init__.py:2455
 msgid "Invalid version flag"
 msgstr "不正なバージョンフラグ"
 
-#: yum/__init__.py:2268 yum/__init__.py:2272
+#: yum/__init__.py:2425 yum/__init__.py:2430
 #, python-format
 msgid "No Package found for %s"
 msgstr "%s のパッケージが見つかりません"
 
-#: yum/__init__.py:2449
+#: yum/__init__.py:2646
 msgid "Package Object was not a package object instance"
 msgstr ""
+"パッケージ オブジェクトはパッケージ オブジェクト インスタンスではありません"
 
-#: yum/__init__.py:2453
+#: yum/__init__.py:2650
 msgid "Nothing specified to install"
 msgstr "インストールへの指定がありません"
 
-#: yum/__init__.py:2469
+#: yum/__init__.py:2666 yum/__init__.py:3430
 #, 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
+#: yum/__init__.py:2672 yum/__init__.py:2979 yum/__init__.py:3146
+#: yum/__init__.py:3436
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "引数に一致しません: %s"
 
-#: yum/__init__.py:2548
+#: yum/__init__.py:2748
 #, python-format
 msgid "Package %s installed and not available"
 msgstr "パッケージ %s はインストール済みか利用できません"
 
-#: yum/__init__.py:2551
+#: yum/__init__.py:2751
 msgid "No package(s) available to install"
 msgstr "インストールに利用できるパッケージはありません"
 
-#: yum/__init__.py:2564
+#: yum/__init__.py:2763
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "パッケージ: %s - すでにトランザクション設定をしています"
 
-#: yum/__init__.py:2580
+#: yum/__init__.py:2789
+#, python-format
+msgid "Package %s is obsoleted by %s which is already installed"
+msgstr "パッケージ %s は既にインストールされている %s で古くなっています"
+
+#: yum/__init__.py:2792
 #, python-format
 msgid "Package %s is obsoleted by %s, trying to install %s instead"
 msgstr ""
 "パッケージ %s は %s に不要です。代わりに %s のインストールを試みています"
 
-#: yum/__init__.py:2588
+#: yum/__init__.py:2800
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "パッケージ %s はインストール済みか最新バージョンです"
 
-#: yum/__init__.py:2595
+#: yum/__init__.py:2814
 #, python-format
 msgid "Package matching %s already installed. Checking for update."
 msgstr ""
 "一致したパッケージ %s はすでにインストールされています。更新を確認していま"
 "す。"
 
-#: yum/__init__.py:2675
+#: yum/__init__.py:2908
 msgid "Updating Everything"
 msgstr "すべて更新しています"
 
-#: yum/__init__.py:2693 yum/__init__.py:2802 yum/__init__.py:2823
-#: yum/__init__.py:2849
+#: yum/__init__.py:2929 yum/__init__.py:3044 yum/__init__.py:3073
+#: yum/__init__.py:3100
 #, 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
+#: yum/__init__.py:2964 yum/__init__.py:3143
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: yum/__init__.py:2793
+#: yum/__init__.py:3035
 #, 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
+#: yum/__init__.py:3068
+#, python-format
+msgid "Not Updating Package that is obsoleted: %s"
+msgstr "既に不要なパッケージの更新はありません: %s"
+
+#: yum/__init__.py:3077 yum/__init__.py:3104
 #, 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
+#: yum/__init__.py:3159
 msgid "No package matched to remove"
 msgstr "削除に一致するパッケージはありません"
 
-#: yum/__init__.py:2947
+#: yum/__init__.py:3192 yum/__init__.py:3296 yum/__init__.py:3385
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "ファイル %s が開けません。飛ばします。"
 
-#: yum/__init__.py:2949
+#: yum/__init__.py:3195 yum/__init__.py:3299 yum/__init__.py:3388
 #, python-format
 msgid "Examining %s: %s"
 msgstr "%s を調べています: %s"
 
-#: yum/__init__.py:2957
+#: yum/__init__.py:3203 yum/__init__.py:3302 yum/__init__.py:3391
 #, python-format
 msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
 msgstr ""
 "トランザクションにパッケージ %s を追加できません。アーキテクチャに互換性があ"
 "りません: %s"
 
-#: yum/__init__.py:2965
+#: yum/__init__.py:3211
 #, python-format
 msgid ""
 "Package %s not installed, cannot update it. Run yum install to install it "
@@ -1981,77 +2092,92 @@ msgstr ""
 "パッケージ %s はインストールされていないので更新できません。代わりに「yum "
 "install」を実行してインストールしてください。"
 
-#: yum/__init__.py:2998
+#: yum/__init__.py:3246 yum/__init__.py:3313 yum/__init__.py:3402
 #, python-format
 msgid "Excluding %s"
 msgstr "%s の除外中"
 
-#: yum/__init__.py:3002
+#: yum/__init__.py:3251
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "%s をインストール済みとして設定しています"
 
-#: yum/__init__.py:3007
+#: yum/__init__.py:3257
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "次のリポジトリーへの更新として %s を設定します: %s"
 
-#: yum/__init__.py:3012
+#: yum/__init__.py:3264
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: インストールされたパッケージを更新しません。"
 
-#: yum/__init__.py:3029
+#: yum/__init__.py:3332
 msgid "Problem in reinstall: no package matched to remove"
 msgstr "再インストール中に問題: 削除するパッケージがありません"
 
-#: yum/__init__.py:3040
+#: yum/__init__.py:3345 yum/__init__.py:3463
 #, 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:3366
+#, python-format
+msgid "Problem in reinstall: no package %s matched to install"
+msgstr "再インストール中に問題: %s に一致したインストール用パッケージがありません"
+
+#: yum/__init__.py:3455
+msgid "No package(s) available to downgrade"
+msgstr "ダウングレードに利用できるパッケージはありません"
 
-#: yum/__init__.py:3085
+#: yum/__init__.py:3499
+#, python-format
+msgid "No Match for available package: %s"
+msgstr "利用可能なパッケージが一致しません: %s"
+
+#: yum/__init__.py:3505
+#, python-format
+msgid "Only Upgrade available on package: %s"
+msgstr "アップグレードでのみ利用できるパッケージ: %s"
+
+#: yum/__init__.py:3564
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "%s から GPG 鍵を取得しています"
 
-#: yum/__init__.py:3105
+#: yum/__init__.py:3584
 msgid "GPG key retrieval failed: "
 msgstr "GPG 鍵の取得に失敗しました: "
 
-#: yum/__init__.py:3116
+#: yum/__init__.py:3595
 #, python-format
 msgid "GPG key parsing failed: key does not have value %s"
 msgstr "GPG 鍵の解析に失敗しました: 鍵は値 %s を持っていません"
 
-#: yum/__init__.py:3148
+#: yum/__init__.py:3627
 #, 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
+#: yum/__init__.py:3632 yum/__init__.py:3694
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "GPG 公開鍵 0x%s 「%s」を %s からインポートしています"
 
-#: yum/__init__.py:3169
+#: yum/__init__.py:3649
 msgid "Not installing key"
 msgstr "インストールする鍵がありません"
 
-#: yum/__init__.py:3175
+#: yum/__init__.py:3655
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "鍵のインポートに失敗しました (コード: %d)"
 
-#: yum/__init__.py:3176 yum/__init__.py:3236
+#: yum/__init__.py:3656 yum/__init__.py:3715
 msgid "Key imported successfully"
 msgstr "鍵のインポートに成功しました"
 
-#: yum/__init__.py:3181 yum/__init__.py:3241
+#: yum/__init__.py:3661 yum/__init__.py:3720
 #, python-format
 msgid ""
 "The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -2059,93 +2185,93 @@ msgid ""
 "Check that the correct key URLs are configured for this repository."
 msgstr ""
 
-#: yum/__init__.py:3190
+#: yum/__init__.py:3670
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr ""
 
-#: yum/__init__.py:3209
+#: yum/__init__.py:3689
 #, python-format
 msgid "GPG key at %s (0x%s) is already imported"
 msgstr "GPG 鍵 %s (0x%s) はすでにインポートしています"
 
-#: yum/__init__.py:3228
+#: yum/__init__.py:3709
 #, python-format
 msgid "Not installing key for repo %s"
 msgstr "リポジトリー %s の鍵がインストールされていません"
 
-#: yum/__init__.py:3235
+#: yum/__init__.py:3714
 msgid "Key import failed"
 msgstr "鍵のインポートに失敗しました"
 
-#: yum/__init__.py:3325
+#: yum/__init__.py:3835
 msgid "Unable to find a suitable mirror."
 msgstr "適当なミラーを見つけることができませんでした。"
 
-#: yum/__init__.py:3327
+#: yum/__init__.py:3837
 msgid "Errors were encountered while downloading packages."
 msgstr "パッケージのダウンロード中にエラーに遭遇しました。"
 
-#: yum/__init__.py:3367
+#: yum/__init__.py:3887
 #, python-format
 msgid "Please report this error at %s"
 msgstr "%s にこのエラーを報告してください"
 
-#: yum/__init__.py:3391
+#: yum/__init__.py:3911
 msgid "Test Transaction Errors: "
 msgstr "テストトランザクションでエラー: "
 
-#: yum/plugins.py:204
+#: yum/plugins.py:202
 msgid "Loaded plugins: "
 msgstr "読み込んだプラグイン:"
 
-#: 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 "プラグインが一致しません: %s"
 
-#: yum/plugins.py:254
+#: yum/plugins.py:252
 #, python-format
 msgid "Not loading \"%s\" plugin, as it is disabled"
 msgstr "無効になっているため、プラグイン「%s」は読み込みません"
 
-#: yum/plugins.py:266
+#: yum/plugins.py:264
 #, python-format
 msgid "Plugin \"%s\" can't be imported"
 msgstr "プラグイン「%s」はインポートできませんでした"
 
-#: yum/plugins.py:273
+#: yum/plugins.py:271
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr "プラグイン「%s」は要求された API バージョンを明記していません"
 
-#: yum/plugins.py:278
+#: yum/plugins.py:276
 #, python-format
 msgid "Plugin \"%s\" requires API %s. Supported API is %s."
 msgstr ""
 "プラグイン「%s」は API %s を要求しています。サポートした API は %s です。"
 
-#: yum/plugins.py:311
+#: yum/plugins.py:309
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "プラグイン「%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 ""
 
-#: yum/plugins.py:338
+#: yum/plugins.py:336
 #, python-format
 msgid "Configuration file %s not found"
 msgstr "構成ファイル %s が見つかりません"
 
-#: yum/plugins.py:341
+#: yum/plugins.py:339
 #, python-format
 msgid "Unable to find configuration file for plugin %s"
 msgstr "プラグイン %s の構成ファイルの検索に失敗しました"
 
-#: yum/plugins.py:495
+#: yum/plugins.py:497
 msgid "registration of commands not supported"
 msgstr "コマンドの登録をサポートしていません"
 
@@ -2153,39 +2279,69 @@ msgstr "コマンドの登録をサポートしていません"
 msgid "Repackaging"
 msgstr "再パッケージをしています"
 
-#: rpmUtils/oldUtils.py:26
+#: rpmUtils/oldUtils.py:33
 #, python-format
 msgid "Header cannot be opened or does not match %s, %s."
 msgstr "%s (%s) が一致しないかヘッダーが開けません"
 
-#: rpmUtils/oldUtils.py:46
+#: rpmUtils/oldUtils.py:53
 #, python-format
 msgid "RPM %s fails md5 check"
 msgstr "RPM %s は MD5 検査に失敗しました"
 
-#: rpmUtils/oldUtils.py:144
+#: rpmUtils/oldUtils.py:151
 msgid "Could not open RPM database for reading. Perhaps it is already in use?"
 msgstr ""
 "読み込みのために RPM データベースを開くことができません。おそらく既に使用して"
 "いませんか?"
 
-#: rpmUtils/oldUtils.py:174
+#: rpmUtils/oldUtils.py:183
 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
+#: rpmUtils/oldUtils.py:253 rpmUtils/oldUtils.py:260 rpmUtils/oldUtils.py:263
+#: rpmUtils/oldUtils.py:266
 #, python-format
 msgid "Damaged Header %s"
 msgstr "ヘッダー %s は損傷があります"
 
-#: rpmUtils/oldUtils.py:272
+#: rpmUtils/oldUtils.py:281
 #, python-format
 msgid "Error opening rpm %s - error %s"
 msgstr "RPM %s へのアクセスでエラー - %s エラー"
 
+#~ msgid "Matching packages for package list to user args"
+#~ msgstr "ユーザーの引数にパッケージ一覧のパッケージを一致させています"
+
+#~ 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"
+
+#~ msgid "Excluding Packages in global exclude list"
+#~ msgstr "全体の除外一覧でパッケージを除外します"
+
+#~ msgid "Excluding Packages from %s"
+#~ msgstr "%s からパッケージを除外しています"
+
+#~ msgid "Keeping included package %s"
+#~ msgstr "%s を含んで維持しています"
+
+#~ msgid "Removing unmatched package %s"
+#~ msgstr "%s に一致しないものを削除しています"
+
+#~ msgid "Finished"
+#~ msgstr "完了しました"
+
 #~ msgid "Parsing package install arguments"
 #~ msgstr "パッケージインストールの引数を解析しています"
-
-#~ msgid "Could not find update match for %s"
-#~ msgstr "%s に一致する更新を見つけることができません"
diff --git a/po/pl.po b/po/pl.po
index ba98fc0..e159b2d 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-06-22 21:06+0200\n"
-"PO-Revision-Date: 2009-06-22 21:07+0200\n"
+"POT-Creation-Date: 2009-09-04 22:38+0200\n"
+"PO-Revision-Date: 2009-09-04 22:54+0200\n"
 "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
-"Language-Team: Polish <pl@li.org>\n"
+"Language-Team: Polish <fedora-trans-pl@redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../callback.py:48 ../output.py:939 ../yum/rpmtrans.py:71
+#: ../callback.py:48 ../output.py:938 ../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:938
+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:937
 #: ../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:1060
+#: ../callback.py:54 ../output.py:1061
 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:1058
+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1059
 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:940
+#: ../callback.py:217 ../output.py:939
 msgid "Removing"
 msgstr "Usuwanie"
 
@@ -86,7 +86,7 @@ msgstr "Odczytywanie metadanych repozytoriów z lokalnych plików"
 msgid "Config Error: %s"
 msgstr "Błąd konfiguracji: %s"
 
-#: ../cli.py:196 ../cli.py:1242 ../utils.py:90
+#: ../cli.py:196 ../cli.py:1253 ../utils.py:90
 #, python-format
 msgid "Options Error: %s"
 msgstr "Błąd opcji: %s"
@@ -145,40 +145,48 @@ msgstr "Pobieranie pakietów:"
 msgid "Error Downloading Packages:\n"
 msgstr "Błąd podczas pobierania pakietów:\n"
 
-#: ../cli.py:420 ../yum/__init__.py:3750
+#: ../cli.py:420 ../yum/__init__.py:3854
 msgid "Running rpm_check_debug"
 msgstr "Wykonywanie rpm_check_debug"
 
-#: ../cli.py:423 ../yum/__init__.py:3753
+#: ../cli.py:429 ../yum/__init__.py:3863
+msgid "ERROR You need to update rpm to handle:"
+msgstr "BŁĄD należy zaktualizować pakiet RPM, aby obsłużyć:"
+
+#: ../cli.py:431 ../yum/__init__.py:3866
 msgid "ERROR with rpm_check_debug vs depsolve:"
 msgstr "BŁĄD rpm_check_debug i rozwiązywania zależności:"
 
-#: ../cli.py:427
+#: ../cli.py:437
+msgid "RPM needs to be updated"
+msgstr "Pakiet RPM musi zostać zaktualizowany"
+
+#: ../cli.py:438
 #, python-format
 msgid "Please report this error in %s"
 msgstr "Zgłoś ten błąd na %s"
 
-#: ../cli.py:433
+#: ../cli.py:444
 msgid "Running Transaction Test"
 msgstr "Wykonywanie testu transakcji"
 
-#: ../cli.py:449
+#: ../cli.py:460
 msgid "Finished Transaction Test"
 msgstr "Zakończono test transakcji"
 
-#: ../cli.py:451
+#: ../cli.py:462
 msgid "Transaction Check Error:\n"
 msgstr "Błąd podczas sprawdzania transakcji:\n"
 
-#: ../cli.py:458
+#: ../cli.py:469
 msgid "Transaction Test Succeeded"
 msgstr "Test transakcji został zakończony powodzeniem"
 
-#: ../cli.py:480
+#: ../cli.py:491
 msgid "Running Transaction"
 msgstr "Wykonywanie transakcji"
 
-#: ../cli.py:510
+#: ../cli.py:521
 msgid ""
 "Refusing to automatically import keys when running unattended.\n"
 "Use \"-y\" to override."
@@ -187,189 +195,189 @@ msgstr ""
 "uruchomienia.\n"
 "Użyj \"-y\", aby wymusić."
 
-#: ../cli.py:529 ../cli.py:563
+#: ../cli.py:540 ../cli.py:574
 msgid "  * Maybe you meant: "
 msgstr "  * Czy chodziło o: "
 
-#: ../cli.py:546 ../cli.py:554
+#: ../cli.py:557 ../cli.py:565
 #, 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:560 ../cli.py:591 ../cli.py:669
+#: ../cli.py:571 ../cli.py:602 ../cli.py:680
 #, python-format
 msgid "No package %s%s%s available."
 msgstr "Nie ma pakietu %s%s%s."
 
-#: ../cli.py:596 ../cli.py:729
+#: ../cli.py:607 ../cli.py:740
 msgid "Package(s) to install"
 msgstr "Pakiety do zainstalowania"
 
-#: ../cli.py:597 ../cli.py:675 ../cli.py:708 ../cli.py:730
+#: ../cli.py:608 ../cli.py:686 ../cli.py:719 ../cli.py:741
 #: ../yumcommands.py:157
 msgid "Nothing to do"
 msgstr "Nie ma niczego do zrobienia"
 
-#: ../cli.py:630
+#: ../cli.py:641
 #, python-format
 msgid "%d packages marked for Update"
 msgstr "%d pakietów oznaczonych do aktualizacji"
 
-#: ../cli.py:633
+#: ../cli.py:644
 msgid "No Packages marked for Update"
 msgstr "Brak pakietów oznaczonych do aktualizacji"
 
-#: ../cli.py:647
+#: ../cli.py:658
 #, python-format
 msgid "%d packages marked for removal"
 msgstr "%d pakietów oznaczonych do usunięcia"
 
-#: ../cli.py:650
+#: ../cli.py:661
 msgid "No Packages marked for removal"
 msgstr "Brak pakietów oznaczonych do usunięcia"
 
-#: ../cli.py:674
+#: ../cli.py:685
 msgid "Package(s) to downgrade"
 msgstr "Pakiety do instalacji starszej wersji"
 
-#: ../cli.py:698
+#: ../cli.py:709
 #, python-format
 msgid " (from %s)"
 msgstr " (z %s)"
 
-#: ../cli.py:700
+#: ../cli.py:711
 #, python-format
 msgid "Installed package %s%s%s%s not available."
 msgstr "Zainstalowany pakiet %s%s%s%s jest niedostępny."
 
-#: ../cli.py:707
+#: ../cli.py:718
 msgid "Package(s) to reinstall"
 msgstr "Pakiety do ponownego zainstalowania"
 
-#: ../cli.py:720
+#: ../cli.py:731
 msgid "No Packages Provided"
 msgstr "Nie podano pakietów"
 
-#: ../cli.py:804
+#: ../cli.py:815
 #, python-format
 msgid "Warning: No matches found for: %s"
 msgstr "Ostrzeżenie: nie znaleziono wyników dla: %s"
 
-#: ../cli.py:807
+#: ../cli.py:818
 msgid "No Matches found"
 msgstr "Brak wyników"
 
-#: ../cli.py:846
+#: ../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 ""
-"Ostrzeżenie: wersje 3.0.x yuma błędnie dopasowują nazwy plików.\n"
+"Ostrzeżenie: wersje 3.0.x programu yum 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:862
+#: ../cli.py:873
 #, python-format
 msgid "No Package Found for %s"
 msgstr "Nie znaleziono pakietów dla %s"
 
-#: ../cli.py:874
+#: ../cli.py:885
 msgid "Cleaning up Everything"
 msgstr "Czyszczenie wszystkiego"
 
-#: ../cli.py:888
+#: ../cli.py:899
 msgid "Cleaning up Headers"
 msgstr "Czyszczenie nagłówków"
 
-#: ../cli.py:891
+#: ../cli.py:902
 msgid "Cleaning up Packages"
 msgstr "Czyszczenie pakietów"
 
-#: ../cli.py:894
+#: ../cli.py:905
 msgid "Cleaning up xml metadata"
 msgstr "Czytanie metadanych XML"
 
-#: ../cli.py:897
+#: ../cli.py:908
 msgid "Cleaning up database cache"
 msgstr "Czyszczenie pamięci podręcznej bazy danych"
 
-#: ../cli.py:900
+#: ../cli.py:911
 msgid "Cleaning up expire-cache metadata"
 msgstr "Czytanie metadanych wygasłej pamięci podręcznej"
 
-#: ../cli.py:903
+#: ../cli.py:914
 msgid "Cleaning up plugins"
 msgstr "Czyszczenie wtyczek"
 
-#: ../cli.py:928
+#: ../cli.py:939
 msgid "Installed Groups:"
 msgstr "Zainstalowane grupy:"
 
-#: ../cli.py:940
+#: ../cli.py:951
 msgid "Available Groups:"
 msgstr "Dostępne grupy:"
 
-#: ../cli.py:950
+#: ../cli.py:961
 msgid "Done"
 msgstr "Zakończono"
 
-#: ../cli.py:961 ../cli.py:979 ../cli.py:985 ../yum/__init__.py:2513
+#: ../cli.py:972 ../cli.py:990 ../cli.py:996 ../yum/__init__.py:2560
 #, python-format
 msgid "Warning: Group %s does not exist."
 msgstr "Ostrzeżenie: grupa %s nie istnieje."
 
-#: ../cli.py:989
+#: ../cli.py:1000
 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:991
+#: ../cli.py:1002
 #, python-format
 msgid "%d Package(s) to Install"
 msgstr "%d pakietów do instalacji"
 
-#: ../cli.py:1001 ../yum/__init__.py:2525
+#: ../cli.py:1012 ../yum/__init__.py:2572
 #, python-format
 msgid "No group named %s exists"
 msgstr "Grupa o nazwie %s nie istnieje"
 
-#: ../cli.py:1007
+#: ../cli.py:1018
 msgid "No packages to remove from groups"
 msgstr "Brak pakietów do usunięcia z grup"
 
-#: ../cli.py:1009
+#: ../cli.py:1020
 #, python-format
 msgid "%d Package(s) to remove"
 msgstr "%d pakietów do usunięcia"
 
-#: ../cli.py:1051
+#: ../cli.py:1062
 #, python-format
 msgid "Package %s is already installed, skipping"
 msgstr "Pakiet %s jest już zainstalowany, pomijanie"
 
-#: ../cli.py:1062
+#: ../cli.py:1073
 #, 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:1088
+#: ../cli.py:1099
 #, 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:1108
+#: ../cli.py:1119
 msgid "Plugin Options"
 msgstr "Opcje wtyczki"
 
-#: ../cli.py:1116
+#: ../cli.py:1127
 #, python-format
 msgid "Command line error: %s"
 msgstr "Błąd wiersza poleceń: %s"
 
-#: ../cli.py:1129
+#: ../cli.py:1140
 #, python-format
 msgid ""
 "\n"
@@ -380,103 +388,103 @@ msgstr ""
 "\n"
 "%s: opcja %s wymaga parametru"
 
-#: ../cli.py:1182
+#: ../cli.py:1193
 msgid "--color takes one of: auto, always, never"
 msgstr "--color przyjmuje jedną z: auto, always, never"
 
-#: ../cli.py:1289
+#: ../cli.py:1300
 msgid "show this help message and exit"
 msgstr "wyświetla ten komunikat pomocy i wyłącza"
 
-#: ../cli.py:1293
+#: ../cli.py:1304
 msgid "be tolerant of errors"
 msgstr "toleruje błędy"
 
-#: ../cli.py:1295
+#: ../cli.py:1306
 msgid "run entirely from cache, don't update cache"
 msgstr "uruchamia wyłącznie z pamięci podręcznej i nie aktualizuje jej"
 
-#: ../cli.py:1297
+#: ../cli.py:1308
 msgid "config file location"
 msgstr "położenie pliku konfiguracji"
 
-#: ../cli.py:1299
+#: ../cli.py:1310
 msgid "maximum command wait time"
 msgstr "maksymalny czas oczekiwania na polecenie"
 
-#: ../cli.py:1301
+#: ../cli.py:1312
 msgid "debugging output level"
 msgstr "poziom wyjścia debugowania"
 
-#: ../cli.py:1305
+#: ../cli.py:1316
 msgid "show duplicates, in repos, in list/search commands"
 msgstr "wyświetla duplikaty w repozytoriach w poleceniach list/search"
 
-#: ../cli.py:1307
+#: ../cli.py:1318
 msgid "error output level"
 msgstr "poziom wyjścia błędów"
 
-#: ../cli.py:1310
+#: ../cli.py:1321
 msgid "quiet operation"
 msgstr "mało komunikatów"
 
-#: ../cli.py:1312
+#: ../cli.py:1323
 msgid "verbose operation"
 msgstr "dużo komunikatów"
 
-#: ../cli.py:1314
+#: ../cli.py:1325
 msgid "answer yes for all questions"
 msgstr "odpowiada tak na wszystkie pytania"
 
-#: ../cli.py:1316
+#: ../cli.py:1327
 msgid "show Yum version and exit"
-msgstr "wyświetla wersję yuma i wyłącza"
+msgstr "wyświetla wersję programu yum i wyłącza"
 
-#: ../cli.py:1317
+#: ../cli.py:1328
 msgid "set install root"
 msgstr "ustawia roota instalacji"
 
-#: ../cli.py:1321
+#: ../cli.py:1332
 msgid "enable one or more repositories (wildcards allowed)"
 msgstr "włącza jedno lub więcej repozytoriów (wieloznaczniki są dozwolone)"
 
-#: ../cli.py:1325
+#: ../cli.py:1336
 msgid "disable one or more repositories (wildcards allowed)"
 msgstr "wyłącza jedno lub więcej repozytoriów (wieloznaczniki są dozwolone)"
 
-#: ../cli.py:1328
+#: ../cli.py:1339
 msgid "exclude package(s) by name or glob"
 msgstr "wyklucza pakiety po nazwie lub wyrażeniu regularnym"
 
-#: ../cli.py:1330
+#: ../cli.py:1341
 msgid "disable exclude from main, for a repo or for everything"
 msgstr "wyłącza wykluczanie z głównego, dla repozytorium lub wszystkiego"
 
-#: ../cli.py:1333
+#: ../cli.py:1344
 msgid "enable obsoletes processing during updates"
 msgstr "włącza przetwarzanie przestarzałych pakietów podczas aktualizacji"
 
-#: ../cli.py:1335
+#: ../cli.py:1346
 msgid "disable Yum plugins"
-msgstr "wyłącza wtyczki yuma"
+msgstr "wyłącza wtyczki programu yum"
 
-#: ../cli.py:1337
+#: ../cli.py:1348
 msgid "disable gpg signature checking"
 msgstr "wyłącza sprawdzanie podpisu GPG"
 
-#: ../cli.py:1339
+#: ../cli.py:1350
 msgid "disable plugins by name"
 msgstr "wyłącza wtyczki po nazwie"
 
-#: ../cli.py:1342
+#: ../cli.py:1353
 msgid "enable plugins by name"
 msgstr "włącza wtyczki po nazwie"
 
-#: ../cli.py:1345
+#: ../cli.py:1356
 msgid "skip packages with depsolving problems"
 msgstr "pomija pakiety mające problemy z rozwiązaniem zależności"
 
-#: ../cli.py:1347
+#: ../cli.py:1358
 msgid "control whether color is used"
 msgstr "kontroluje użycie kolorów"
 
@@ -599,7 +607,7 @@ msgstr "Podsumowanie       : "
 #: ../output.py:554
 #, python-format
 msgid "URL        : %s"
-msgstr "URL                : %s"
+msgstr "Adres URL          : %s"
 
 #: ../output.py:555
 #, python-format
@@ -699,7 +707,7 @@ msgstr "Opis        : "
 #: ../output.py:848
 #, python-format
 msgid "URL         : %s"
-msgstr "URL         : %s"
+msgstr "Adres URL   : %s"
 
 #: ../output.py:851
 #, python-format
@@ -729,51 +737,51 @@ msgstr "Całkowity rozmiar: %s"
 msgid "Total download size: %s"
 msgstr "Całkowity rozmiar pobierania: %s"
 
-#: ../output.py:941
+#: ../output.py:940
 msgid "Reinstalling"
 msgstr "Ponowne instalowanie"
 
-#: ../output.py:942
+#: ../output.py:941
 msgid "Downgrading"
 msgstr "Instalowanie starszej wersji"
 
-#: ../output.py:943
+#: ../output.py:942
 msgid "Installing for dependencies"
 msgstr "Instalowanie, aby rozwiązać zależności"
 
-#: ../output.py:944
+#: ../output.py:943
 msgid "Updating for dependencies"
 msgstr "Aktualizowanie, aby rozwiązać zależności"
 
-#: ../output.py:945
+#: ../output.py:944
 msgid "Removing for dependencies"
 msgstr "Usuwanie, aby rozwiązać zależności"
 
-#: ../output.py:952 ../output.py:1062
+#: ../output.py:951 ../output.py:1063
 msgid "Skipped (dependency problems)"
 msgstr "Pominięto (problemy z zależnościami)"
 
-#: ../output.py:973
+#: ../output.py:974
 msgid "Package"
 msgstr "Pakiet"
 
-#: ../output.py:973
+#: ../output.py:974
 msgid "Arch"
 msgstr "Architektura"
 
-#: ../output.py:974
+#: ../output.py:975
 msgid "Version"
 msgstr "Wersja"
 
-#: ../output.py:974
+#: ../output.py:975
 msgid "Repository"
 msgstr "Repozytorium"
 
-#: ../output.py:975
+#: ../output.py:976
 msgid "Size"
 msgstr "Rozmiar"
 
-#: ../output.py:987
+#: ../output.py:988
 #, python-format
 msgid ""
 "     replacing  %s%s%s.%s %s\n"
@@ -782,7 +790,7 @@ msgstr ""
 "     zastępuje  %s%s%s.%s %s\n"
 "\n"
 
-#: ../output.py:996
+#: ../output.py:997
 #, python-format
 msgid ""
 "\n"
@@ -793,7 +801,7 @@ msgstr ""
 "Podsumowanie transakcji\n"
 "%s\n"
 
-#: ../output.py:1003
+#: ../output.py:1004
 #, python-format
 msgid ""
 "Install   %5.5s Package(s)\n"
@@ -802,7 +810,7 @@ msgstr ""
 "Instalacja   %5.5s pakiet(y)\n"
 "Aktualizacja %5.5s pakiet(y)\n"
 
-#: ../output.py:1012
+#: ../output.py:1013
 #, python-format
 msgid ""
 "Remove    %5.5s Package(s)\n"
@@ -813,32 +821,32 @@ msgstr ""
 "Ponowna instalacja         %5.5s pakiet(y)\n"
 "Instalacja starszej wersji %5.5s pakiet(y)\n"
 
-#: ../output.py:1056
+#: ../output.py:1057
 msgid "Removed"
 msgstr "Usunięto"
 
-#: ../output.py:1057
+#: ../output.py:1058
 msgid "Dependency Removed"
 msgstr "Usunięto zależność"
 
-#: ../output.py:1059
+#: ../output.py:1060
 msgid "Dependency Installed"
 msgstr "Zainstalowano zależność"
 
-#: ../output.py:1061
+#: ../output.py:1062
 msgid "Dependency Updated"
 msgstr "Zaktualizowano zależność"
 
-#: ../output.py:1063
+#: ../output.py:1064
 msgid "Replaced"
 msgstr "Zastąpiono"
 
-#: ../output.py:1064
+#: ../output.py:1065
 msgid "Failed"
 msgstr "Nie powiodło się"
 
 #. Delta between C-c's so we treat as exit
-#: ../output.py:1130
+#: ../output.py:1131
 msgid "two"
 msgstr "dwóch"
 
@@ -846,7 +854,7 @@ 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:1141
+#: ../output.py:1142
 #, python-format
 msgid ""
 "\n"
@@ -858,67 +866,67 @@ msgstr ""
 " Obecne pobieranie zostało anulowane, %sprzerwij (ctrl-c) ponownie%s w ciągu "
 "%s%s%s sekund, aby zakończyć.\n"
 
-#: ../output.py:1152
+#: ../output.py:1153
 msgid "user interrupt"
 msgstr "przerwane przez użytkownika"
 
-#: ../output.py:1168
+#: ../output.py:1171
 msgid "Total"
 msgstr "Razem"
 
-#: ../output.py:1183
+#: ../output.py:1186
 msgid "installed"
 msgstr "zainstalowany"
 
-#: ../output.py:1184
+#: ../output.py:1187
 msgid "updated"
 msgstr "zaktualizowany"
 
-#: ../output.py:1185
+#: ../output.py:1188
 msgid "obsoleted"
 msgstr "zastąpiony"
 
-#: ../output.py:1186
+#: ../output.py:1189
 msgid "erased"
 msgstr "usunięty"
 
-#: ../output.py:1190
+#: ../output.py:1193
 #, python-format
 msgid "---> Package %s.%s %s:%s-%s set to be %s"
 msgstr "---> Pakiet %s.%s %s:%s-%s zostanie %s"
 
-#: ../output.py:1197
+#: ../output.py:1200
 msgid "--> Running transaction check"
 msgstr "--> Wykonywanie sprawdzania transakcji"
 
-#: ../output.py:1202
+#: ../output.py:1205
 msgid "--> Restarting Dependency Resolution with new changes."
 msgstr "--> Ponowne uruchamianie rozwiązywania zależności z nowymi zmianami."
 
-#: ../output.py:1207
+#: ../output.py:1210
 msgid "--> Finished Dependency Resolution"
 msgstr "--> Zakończono rozwiązywanie zależności"
 
-#: ../output.py:1212 ../output.py:1217
+#: ../output.py:1215 ../output.py:1220
 #, python-format
 msgid "--> Processing Dependency: %s for package: %s"
 msgstr "--> Przetwarzanie zależności: %s dla pakietu: %s"
 
-#: ../output.py:1221
+#: ../output.py:1224
 #, python-format
 msgid "--> Unresolved Dependency: %s"
 msgstr "--> Nierozwiązana zależność: %s"
 
-#: ../output.py:1227 ../output.py:1232
+#: ../output.py:1230 ../output.py:1235
 #, python-format
 msgid "--> Processing Conflict: %s conflicts %s"
 msgstr "--> Przetwarzanie konfliktów: %s jest w konflikcie z %s"
 
-#: ../output.py:1236
+#: ../output.py:1239
 msgid "--> Populating transaction set with selected packages. Please wait."
 msgstr "--> Układanie zestawu transakcji z wybranymi pakietami. Proszę czekać."
 
-#: ../output.py:1240
+#: ../output.py:1243
 #, python-format
 msgid "---> Downloading header for %s to pack into transaction set."
 msgstr "---> Pobieranie nagłówka dla %s do umieszczenia w zestawie transakcji."
@@ -952,8 +960,8 @@ msgstr ""
 "    rpm --import klucz.publiczny.gpg\n"
 "\n"
 "\n"
-"Można także podać URL klucza, którego chcesz używać dla repozytorium w\n"
-"opcji \"gpgkey\" w sekcji repozytorium, a yum go zainstaluje.\n"
+"Można także podać adres URL klucza, którego chcesz używać dla repozytorium\n"
+"w opcji \"gpgkey\" w sekcji repozytorium, a program yum go zainstaluje.\n"
 "\n"
 "Aby dowiedzieć się więcej, skontaktuj się z dostawcą dystrybucji lub\n"
 "pakietu.\n"
@@ -1154,11 +1162,11 @@ msgstr "Wyszukiwanie pakietów dla zależności:"
 
 #: ../yumcommands.py:709
 msgid "Run an interactive yum shell"
-msgstr "Uruchom interaktywną powłokę yuma"
+msgstr "Uruchom interaktywną powłokę programu yum"
 
 #: ../yumcommands.py:715
 msgid "Setting up Yum Shell"
-msgstr "Ustawianie powłoki yuma"
+msgstr "Ustawianie powłoki programu yum"
 
 #: ../yumcommands.py:733
 msgid "List a package's dependencies"
@@ -1181,15 +1189,15 @@ msgid "disabled"
 msgstr "wyłączone"
 
 #: ../yumcommands.py:827
-msgid "Repo-id     : "
+msgid "Repo-id      : "
 msgstr "Identyfikator repozytorium        : "
 
 #: ../yumcommands.py:828
-msgid "Repo-name   : "
+msgid "Repo-name    : "
 msgstr "Nazwa repozytorium                : "
 
 #: ../yumcommands.py:829
-msgid "Repo-status : "
+msgid "Repo-status  : "
 msgstr "Stan repozytorium                 : "
 
 #: ../yumcommands.py:831
@@ -1197,7 +1205,7 @@ msgid "Repo-revision: "
 msgstr "Wersja repozytorium               : "
 
 #: ../yumcommands.py:835
-msgid "Repo-tags   : "
+msgid "Repo-tags    : "
 msgstr "Znaczniki repozytorium            : "
 
 #: ../yumcommands.py:841
@@ -1205,20 +1213,20 @@ msgid "Repo-distro-tags: "
 msgstr "Znaczniki dystrybucji repozytorium: "
 
 #: ../yumcommands.py:846
-msgid "Repo-updated: "
+msgid "Repo-updated : "
 msgstr "Aktualizacje repozytorium         : "
 
 #: ../yumcommands.py:848
-msgid "Repo-pkgs   : "
+msgid "Repo-pkgs    : "
 msgstr "Pakiety repozytorium              : "
 
 #: ../yumcommands.py:849
-msgid "Repo-size   : "
+msgid "Repo-size    : "
 msgstr "Rozmiar repozytorium              : "
 
 #: ../yumcommands.py:856
-msgid "Repo-baseurl: "
-msgstr "Podstawowy URL repozytorium       : "
+msgid "Repo-baseurl : "
+msgstr "Podstawowy adres URL repozytorium : "
 
 #: ../yumcommands.py:864
 msgid "Repo-metalink: "
@@ -1229,41 +1237,64 @@ msgid "  Updated    : "
 msgstr "  Zaktualizowano                  : "
 
 #: ../yumcommands.py:871
-msgid "Repo-mirrors: "
+msgid "Repo-mirrors : "
 msgstr "Serwery lustrzane repozytorium    : "
 
-#: ../yumcommands.py:875
-msgid "Repo-exclude: "
+#: ../yumcommands.py:875 ../yummain.py:133
+msgid "Unknown"
+msgstr "Nieznane"
+
+#: ../yumcommands.py:881
+#, python-format
+msgid "Never (last: %s)"
+msgstr "Nigdy (ostatnio: %s)"
+
+#: ../yumcommands.py:883
+#, python-format
+msgid "Instant (last: %s)"
+msgstr "Natychmiast (ostatnio: %s)"
+
+#: ../yumcommands.py:886
+#, python-format
+msgid "%s second(s) (last: %s)"
+msgstr "%s sekundy (ostatnio: %s)"
+
+#: ../yumcommands.py:888
+msgid "Repo-expire  : "
+msgstr "Wygaszenie repozytorium           : "
+
+#: ../yumcommands.py:891
+msgid "Repo-exclude : "
 msgstr "Wykluczenia z repozytorium        : "
 
-#: ../yumcommands.py:879
-msgid "Repo-include: "
+#: ../yumcommands.py:895
+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:889 ../yumcommands.py:915
+#: ../yumcommands.py:905 ../yumcommands.py:931
 msgid "repo id"
 msgstr "ID repozytorium"
 
-#: ../yumcommands.py:903 ../yumcommands.py:904 ../yumcommands.py:918
+#: ../yumcommands.py:919 ../yumcommands.py:920 ../yumcommands.py:934
 msgid "status"
 msgstr "stan"
 
-#: ../yumcommands.py:916
+#: ../yumcommands.py:932
 msgid "repo name"
 msgstr "nazwa repozytorium"
 
-#: ../yumcommands.py:942
+#: ../yumcommands.py:958
 msgid "Display a helpful usage message"
 msgstr "Wyświetl pomocny komunikat o używaniu"
 
-#: ../yumcommands.py:976
+#: ../yumcommands.py:992
 #, python-format
 msgid "No help available for %s"
 msgstr "Brak pomocy dla %s"
 
-#: ../yumcommands.py:981
+#: ../yumcommands.py:997
 msgid ""
 "\n"
 "\n"
@@ -1273,7 +1304,7 @@ msgstr ""
 "\n"
 "aliasy: "
 
-#: ../yumcommands.py:983
+#: ../yumcommands.py:999
 msgid ""
 "\n"
 "\n"
@@ -1283,31 +1314,31 @@ msgstr ""
 "\n"
 "alias: "
 
-#: ../yumcommands.py:1011
+#: ../yumcommands.py:1027
 msgid "Setting up Reinstall Process"
 msgstr "Ustawianie procesu ponownej instalacji"
 
-#: ../yumcommands.py:1019
+#: ../yumcommands.py:1035
 msgid "reinstall a package"
 msgstr "ponownie zainstaluj pakiet"
 
-#: ../yumcommands.py:1037
+#: ../yumcommands.py:1053
 msgid "Setting up Downgrade Process"
 msgstr "Ustawianie procesu instalacji starszej wersji pakietu"
 
-#: ../yumcommands.py:1044
+#: ../yumcommands.py:1060
 msgid "downgrade a package"
 msgstr "zainstaluj starszą wersję pakietu"
 
-#: ../yumcommands.py:1058
+#: ../yumcommands.py:1074
 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
+#: ../yumcommands.py:1101
 msgid "Installed:"
 msgstr "Zainstalowano:"
 
-#: ../yumcommands.py:1094
+#: ../yumcommands.py:1110
 msgid "Available:"
 msgstr "Dostępne:"
 
@@ -1331,79 +1362,87 @@ msgstr ""
 "\n"
 "Zamykanie na przerwanym potoku"
 
-#: ../yummain.py:126
+#: ../yummain.py:50
+#, python-format
+msgid ""
+"\n"
+"\n"
+"%s"
+msgstr ""
+"\n"
+"\n"
+"%s"
+
+#: ../yummain.py:128
 msgid "Running"
 msgstr "Wykonywanie"
 
-#: ../yummain.py:127
+#: ../yummain.py:129
 msgid "Sleeping"
 msgstr "Zasypianie"
 
-#: ../yummain.py:128
+#: ../yummain.py:130
 msgid "Uninteruptable"
 msgstr "Nie można przerywać"
 
-#: ../yummain.py:129
+#: ../yummain.py:131
 msgid "Zombie"
 msgstr "Zombie"
 
-#: ../yummain.py:130
+#: ../yummain.py:132
 msgid "Traced/Stopped"
 msgstr "Śledzone/zatrzymane"
 
-#: ../yummain.py:131
-msgid "Unknown"
-msgstr "Nienznane"
-
-#: ../yummain.py:135
+#: ../yummain.py:137
 msgid "  The other application is: PackageKit"
 msgstr "  Inna aplikacja to PackageKit"
 
-#: ../yummain.py:137
+#: ../yummain.py:139
 #, python-format
 msgid "  The other application is: %s"
 msgstr "  Inna aplikacja to: %s"
 
-#: ../yummain.py:140
+#: ../yummain.py:142
 #, python-format
 msgid "    Memory : %5s RSS (%5sB VSZ)"
 msgstr "    Pamięć: %5s RSS (%5sB VSZ)"
 
-#: ../yummain.py:144
+#: ../yummain.py:146
 #, python-format
 msgid "    Started: %s - %s ago"
 msgstr "    Uruchomiono: %s - %s temu"
 
-#: ../yummain.py:146
+#: ../yummain.py:148
 #, python-format
 msgid "    State  : %s, pid: %d"
 msgstr "    Stan: %s, PID: %d"
 
-#: ../yummain.py:171
+#: ../yummain.py:173
 msgid ""
 "Another app is currently holding the yum lock; waiting for it to exit..."
-msgstr "Inna aplikacja obecnie blokuje yuma. Oczekiwanie na jej zakończenie..."
+msgstr ""
+"Inna aplikacja obecnie blokuje program yum. Oczekiwanie na jej zakończenie..."
 
-#: ../yummain.py:199 ../yummain.py:238
+#: ../yummain.py:201 ../yummain.py:240
 #, python-format
 msgid "Error: %s"
 msgstr "Błąd: %s"
 
-#: ../yummain.py:209 ../yummain.py:251
+#: ../yummain.py:211 ../yummain.py:253
 #, python-format
 msgid "Unknown Error(s): Exit Code: %d:"
 msgstr "Nieznane błędy: kod wyjścia: %d:"
 
 #. Depsolve stage
-#: ../yummain.py:216
+#: ../yummain.py:218
 msgid "Resolving Dependencies"
 msgstr "Rozwiązywanie zależności"
 
-#: ../yummain.py:240
+#: ../yummain.py:242
 msgid " You could try using --skip-broken to work around the problem"
 msgstr " Powinieneś spróbować użyć --skip-broken, aby obejść problem"
 
-#: ../yummain.py:241
+#: ../yummain.py:243
 msgid ""
 " You could try running: package-cleanup --problems\n"
 "                        package-cleanup --dupes\n"
@@ -1413,7 +1452,7 @@ msgstr ""
 "                          package-cleanup --dupes\n"
 "                          rpm -Va --nofiles --nodigest"
 
-#: ../yummain.py:257
+#: ../yummain.py:259
 msgid ""
 "\n"
 "Dependencies Resolved"
@@ -1421,11 +1460,11 @@ msgstr ""
 "\n"
 "Rozwiązano zależności"
 
-#: ../yummain.py:271
+#: ../yummain.py:273
 msgid "Complete!"
 msgstr "Zakończono!"
 
-#: ../yummain.py:318
+#: ../yummain.py:320
 msgid ""
 "\n"
 "\n"
@@ -1437,7 +1476,7 @@ msgstr ""
 
 #: ../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"
+msgstr "doTsSetup() zostanie usunięte w przyszłych wersjach programu yum.\n"
 
 #: ../yum/depsolve.py:98
 msgid "Setting up TransactionSets before config class is up"
@@ -1468,7 +1507,7 @@ msgstr "%s pasuje jako wymaganie dla %s"
 msgid "Member: %s"
 msgstr "Członek: %s"
 
-#: ../yum/depsolve.py:246 ../yum/depsolve.py:759
+#: ../yum/depsolve.py:246 ../yum/depsolve.py:756
 #, python-format
 msgid "%s converted to install"
 msgstr "%s przekonwertowano do zainstalowania"
@@ -1562,7 +1601,7 @@ msgstr ""
 msgid "Potential resolving package %s has newer instance installed."
 msgstr "Pakiet %s potencjalnie rozwiązujący ma zainstalowaną nowszą wersję."
 
-#: ../yum/depsolve.py:525 ../yum/depsolve.py:574
+#: ../yum/depsolve.py:525 ../yum/depsolve.py:571
 #, python-format
 msgid "Missing Dependency: %s is needed by package %s"
 msgstr "Brakująca zależność: %s jest wymagane przez pakiet %s"
@@ -1572,63 +1611,63 @@ msgstr "Brakująca zależność: %s jest wymagane przez pakiet %s"
 msgid "%s already in ts, skipping this one"
 msgstr "%s jest już w zestawie transakcji, pomijanie"
 
-#: ../yum/depsolve.py:584
+#: ../yum/depsolve.py:581
 #, python-format
 msgid "TSINFO: Marking %s as update for %s"
 msgstr "TSINFO: oznaczanie %s jako aktualizacji dla %s"
 
-#: ../yum/depsolve.py:592
+#: ../yum/depsolve.py:589
 #, python-format
 msgid "TSINFO: Marking %s as install for %s"
 msgstr "TSINFO: oznaczanie %s jako do zainstalowania dla %s"
 
-#: ../yum/depsolve.py:695 ../yum/depsolve.py:777
+#: ../yum/depsolve.py:692 ../yum/depsolve.py:774
 msgid "Success - empty transaction"
 msgstr "Powodzenie - pusta transakcja"
 
-#: ../yum/depsolve.py:734 ../yum/depsolve.py:749
+#: ../yum/depsolve.py:731 ../yum/depsolve.py:746
 msgid "Restarting Loop"
 msgstr "Ponowne uruchamianie pętli"
 
-#: ../yum/depsolve.py:765
+#: ../yum/depsolve.py:762
 msgid "Dependency Process ending"
 msgstr "Kończenie procesu zależności"
 
-#: ../yum/depsolve.py:771
+#: ../yum/depsolve.py:768
 #, python-format
 msgid "%s from %s has depsolving problems"
 msgstr "%s z %s ma problemy z rozwiązywaniem zależności"
 
-#: ../yum/depsolve.py:778
+#: ../yum/depsolve.py:775
 msgid "Success - deps resolved"
 msgstr "Powodzenie - rozwiązano zależności"
 
-#: ../yum/depsolve.py:792
+#: ../yum/depsolve.py:789
 #, python-format
 msgid "Checking deps for %s"
 msgstr "Sprawdzanie zależności dla %s"
 
-#: ../yum/depsolve.py:875
+#: ../yum/depsolve.py:872
 #, python-format
 msgid "looking for %s as a requirement of %s"
 msgstr "wyszukiwanie %s jako wymagania %s"
 
-#: ../yum/depsolve.py:1017
+#: ../yum/depsolve.py:1014
 #, python-format
 msgid "Running compare_providers() for %s"
 msgstr "Wykonywanie compare_providers() dla %s"
 
-#: ../yum/depsolve.py:1051 ../yum/depsolve.py:1057
+#: ../yum/depsolve.py:1048 ../yum/depsolve.py:1054
 #, python-format
 msgid "better arch in po %s"
 msgstr "lepsze arch w po %s"
 
-#: ../yum/depsolve.py:1132
+#: ../yum/depsolve.py:1140
 #, python-format
 msgid "%s obsoletes %s"
 msgstr "%s zastępuje %s"
 
-#: ../yum/depsolve.py:1144
+#: ../yum/depsolve.py:1152
 #, python-format
 msgid ""
 "archdist compared %s to %s on %s\n"
@@ -1637,103 +1676,105 @@ msgstr ""
 "archdist porównało %s do %s na %s\n"
 "  Zwycięzca: %s"
 
-#: ../yum/depsolve.py:1151
+#: ../yum/depsolve.py:1159
 #, python-format
 msgid "common sourcerpm %s and %s"
 msgstr "wspólny źródłowy pakiet RPM %s i %s"
 
-#: ../yum/depsolve.py:1157
+#: ../yum/depsolve.py:1165
 #, python-format
 msgid "common prefix of %s between %s and %s"
 msgstr "wspólny przedrostek %s dla %s i %s"
 
-#: ../yum/depsolve.py:1165
+#: ../yum/depsolve.py:1173
 #, python-format
 msgid "Best Order: %s"
 msgstr "Najlepszy porządek: %s"
 
-#: ../yum/__init__.py:159
+#: ../yum/__init__.py:180
 msgid "doConfigSetup() will go away in a future version of Yum.\n"
-msgstr "doConfigSetup() zostanie usunięte w przyszłych wersjach yuma.\n"
+msgstr ""
+"doConfigSetup() zostanie usunięte w przyszłych wersjach programu yum.\n"
 
-#: ../yum/__init__.py:380
+#: ../yum/__init__.py:401
 #, 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:418
+#: ../yum/__init__.py:439
 msgid "plugins already initialised"
 msgstr "wtyczki zostały już zainicjowane"
 
-#: ../yum/__init__.py:425
+#: ../yum/__init__.py:446
 msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
-msgstr "doRpmDBSetup() zostanie usunięte w przyszłych wersjach yuma.\n"
+msgstr "doRpmDBSetup() zostanie usunięte w przyszłych wersjach programu yum.\n"
 
-#: ../yum/__init__.py:436
+#: ../yum/__init__.py:457
 msgid "Reading Local RPMDB"
 msgstr "Odczytywanie lokalnej bazy danych RPM"
 
-#: ../yum/__init__.py:457
+#: ../yum/__init__.py:478
 msgid "doRepoSetup() will go away in a future version of Yum.\n"
-msgstr "doRepoSetup() zostanie usunięte w przyszłych wersjach yuma.\n"
+msgstr "doRepoSetup() zostanie usunięte w przyszłych wersjach programu yum.\n"
 
-#: ../yum/__init__.py:477
+#: ../yum/__init__.py:498
 msgid "doSackSetup() will go away in a future version of Yum.\n"
-msgstr "doSackSetup() zostanie usunięte w przyszłych wersjach yuma.\n"
+msgstr "doSackSetup() zostanie usunięte w przyszłych wersjach programu yum.\n"
 
-#: ../yum/__init__.py:494
+#: ../yum/__init__.py:528
 msgid "Setting up Package Sacks"
 msgstr "Ustawianie zestawów pakietów"
 
-#: ../yum/__init__.py:537
+#: ../yum/__init__.py:573
 #, 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:538
+#: ../yum/__init__.py:574
 msgid "therefore this repo cannot be reset.\n"
 msgstr "więc to repozytorium nie może zostać przywrócone.\n"
 
-#: ../yum/__init__.py:543
+#: ../yum/__init__.py:579
 msgid "doUpdateSetup() will go away in a future version of Yum.\n"
-msgstr "doUpdateSetup() zostanie usunięte w przyszłych wersjach yuma.\n"
+msgstr ""
+"doUpdateSetup() zostanie usunięte w przyszłych wersjach programu yum.\n"
 
-#: ../yum/__init__.py:555
+#: ../yum/__init__.py:591
 msgid "Building updates object"
 msgstr "Budowanie obiektu aktualizacji"
 
-#: ../yum/__init__.py:590
+#: ../yum/__init__.py:626
 msgid "doGroupSetup() will go away in a future version of Yum.\n"
-msgstr "doGroupSetup() zostanie usunięte w przyszłych wersjach yuma.\n"
+msgstr "doGroupSetup() zostanie usunięte w przyszłych wersjach programu yum.\n"
 
-#: ../yum/__init__.py:615
+#: ../yum/__init__.py:651
 msgid "Getting group metadata"
 msgstr "Pobieranie metadanych grup"
 
-#: ../yum/__init__.py:641
+#: ../yum/__init__.py:677
 #, python-format
 msgid "Adding group file from repository: %s"
 msgstr "Dodawanie pliku grup z repozytorium: %s"
 
-#: ../yum/__init__.py:650
+#: ../yum/__init__.py:686
 #, 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:656
+#: ../yum/__init__.py:692
 msgid "No Groups Available in any repository"
 msgstr "Brak dostępnych grup we wszystkich repozytoriach"
 
-#: ../yum/__init__.py:706
+#: ../yum/__init__.py:742
 msgid "Importing additional filelist information"
 msgstr "Importowanie dodatkowych informacji o liście plików"
 
-#: ../yum/__init__.py:720
+#: ../yum/__init__.py:756
 #, 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:728
+#: ../yum/__init__.py:764
 msgid ""
 "There are unfinished transactions remaining. You might consider running yum-"
 "complete-transaction first to finish them."
@@ -1741,17 +1782,17 @@ msgstr ""
 "Pozostały niezakończone transakcje. Rozważ wykonanie yum-complete-"
 "transaction, aby najpierw je zakończyć."
 
-#: ../yum/__init__.py:796
+#: ../yum/__init__.py:832
 #, python-format
 msgid "Skip-broken round %i"
 msgstr "Pierwsza runda pomijania uszkodzonych %i"
 
-#: ../yum/__init__.py:848
+#: ../yum/__init__.py:884
 #, python-format
 msgid "Skip-broken took %i rounds "
 msgstr "Pomijanie uszkodzonych zajęło %i rund "
 
-#: ../yum/__init__.py:849
+#: ../yum/__init__.py:885
 msgid ""
 "\n"
 "Packages skipped because of dependency problems:"
@@ -1759,78 +1800,73 @@ msgstr ""
 "\n"
 "Pakiety pominięto z powodu problemów z zależnościami:"
 
-#: ../yum/__init__.py:853
+#: ../yum/__init__.py:889
 #, python-format
 msgid "    %s from %s"
 msgstr "    %s z %s"
 
-#: ../yum/__init__.py:991
+#: ../yum/__init__.py:1027
 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:1006
+#: ../yum/__init__.py:1042
 #, python-format
 msgid "Failed to remove transaction file %s"
 msgstr "Usunięcie pliku transakcji %s nie powiodło się"
 
 #. maybe a file log here, too
 #. but raising an exception is not going to do any good
-#: ../yum/__init__.py:1035
+#: ../yum/__init__.py:1071
 #, python-format
 msgid "%s was supposed to be installed but is not!"
 msgstr "%s miało zostać zainstalowane, ale nie zostało!"
 
 #. maybe a file log here, too
 #. but raising an exception is not going to do any good
-#: ../yum/__init__.py:1074
+#: ../yum/__init__.py:1110
 #, python-format
 msgid "%s was supposed to be removed but is not!"
 msgstr "%s miało zostać usunięte, ale nie zostało!"
 
-#: ../yum/__init__.py:1120
-#, python-format
-msgid "excluding for cost: %s from %s"
-msgstr "wykluczanie z kosztów: %s z %s"
-
 #. Whoa. What the heck happened?
-#: ../yum/__init__.py:1191
+#: ../yum/__init__.py:1225
 #, 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:1195
+#: ../yum/__init__.py:1229
 #, 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:1272
+#: ../yum/__init__.py:1306
 msgid "Package does not match intended download"
 msgstr "Pakiet nie zgadza się z zamierzonym pobieraniem"
 
-#: ../yum/__init__.py:1287
+#: ../yum/__init__.py:1321
 msgid "Could not perform checksum"
 msgstr "Nie można wykonać sprawdzenia sum kontrolnych"
 
-#: ../yum/__init__.py:1290
+#: ../yum/__init__.py:1324
 msgid "Package does not match checksum"
 msgstr "Sumy kontrolne pakietu nie zgadzają się"
 
-#: ../yum/__init__.py:1332
+#: ../yum/__init__.py:1366
 #, 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:1335 ../yum/__init__.py:1364
+#: ../yum/__init__.py:1369 ../yum/__init__.py:1398
 #, python-format
 msgid "using local copy of %s"
 msgstr "używanie lokalnej kopii %s"
 
-#: ../yum/__init__.py:1376
+#: ../yum/__init__.py:1410
 #, python-format
 msgid ""
 "Insufficient space in download directory %s\n"
@@ -1841,11 +1877,11 @@ msgstr ""
 "    * wolne   %s\n"
 "    * wymagane %s"
 
-#: ../yum/__init__.py:1425
+#: ../yum/__init__.py:1459
 msgid "Header is not complete."
 msgstr "Nagłówek nie jest kompletny."
 
-#: ../yum/__init__.py:1462
+#: ../yum/__init__.py:1496
 #, python-format
 msgid ""
 "Header not in local cache and caching-only mode enabled. Cannot download %s"
@@ -1853,62 +1889,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:1517
+#: ../yum/__init__.py:1551
 #, python-format
 msgid "Public key for %s is not installed"
 msgstr "Klucz publiczny dla %s nie jest zainstalowany"
 
-#: ../yum/__init__.py:1521
+#: ../yum/__init__.py:1555
 #, python-format
 msgid "Problem opening package %s"
 msgstr "Podczas otwierania pakietu %s wystąpił problem"
 
-#: ../yum/__init__.py:1529
+#: ../yum/__init__.py:1563
 #, python-format
 msgid "Public key for %s is not trusted"
 msgstr "Klucz publiczny dla %s nie jest zaufany"
 
-#: ../yum/__init__.py:1533
+#: ../yum/__init__.py:1567
 #, python-format
 msgid "Package %s is not signed"
 msgstr "Pakiet %s nie jest podpisany"
 
-#: ../yum/__init__.py:1571
+#: ../yum/__init__.py:1605
 #, python-format
 msgid "Cannot remove %s"
 msgstr "Nie można usunąć %s"
 
-#: ../yum/__init__.py:1575
+#: ../yum/__init__.py:1609
 #, python-format
 msgid "%s removed"
 msgstr "Usunięto %s"
 
-#: ../yum/__init__.py:1611
+#: ../yum/__init__.py:1645
 #, python-format
 msgid "Cannot remove %s file %s"
 msgstr "Nie można usunąć %s pliku %s"
 
-#: ../yum/__init__.py:1615
+#: ../yum/__init__.py:1649
 #, python-format
 msgid "%s file %s removed"
 msgstr "Usunięto %s plik %s"
 
-#: ../yum/__init__.py:1617
+#: ../yum/__init__.py:1651
 #, python-format
 msgid "%d %s files removed"
 msgstr "Usunięto %d %s plików"
 
-#: ../yum/__init__.py:1686
+#: ../yum/__init__.py:1720
 #, 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:1692
+#: ../yum/__init__.py:1726
 #, 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:1925
+#: ../yum/__init__.py:1959
 msgid ""
 "searchPackages() will go away in a future version of "
 "Yum.                      Use searchGenerator() instead. \n"
@@ -1916,172 +1952,182 @@ msgstr ""
 "searchPackages()  zostanie usunięte w przyszłych wersjach "
 "yuma.                      Zamiast tego użyj searchGenerator(). \n"
 
-#: ../yum/__init__.py:1967
+#: ../yum/__init__.py:2001
 #, python-format
 msgid "Searching %d packages"
 msgstr "Wyszukiwanie %d pakietów"
 
-#: ../yum/__init__.py:1971
+#: ../yum/__init__.py:2005
 #, python-format
 msgid "searching package %s"
 msgstr "wyszukiwanie pakietu %s"
 
-#: ../yum/__init__.py:1983
+#: ../yum/__init__.py:2017
 msgid "searching in file entries"
 msgstr "wyszukiwanie we wpisach plików"
 
-#: ../yum/__init__.py:1990
+#: ../yum/__init__.py:2024
 msgid "searching in provides entries"
 msgstr "wyszukiwanie we wpisach dostarczania"
 
-#: ../yum/__init__.py:2023
+#: ../yum/__init__.py:2057
 #, python-format
 msgid "Provides-match: %s"
 msgstr "Wyniki dostarczania: %s"
 
-#: ../yum/__init__.py:2072
+#: ../yum/__init__.py:2106
 msgid "No group data available for configured repositories"
 msgstr "Brak dostępnych danych grup dla skonfigurowanych repozytoriów"
 
-#: ../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
+#: ../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:2586
 #, python-format
 msgid "No Group named %s exists"
 msgstr "Grupa o nazwie %s nie istnieje"
 
-#: ../yum/__init__.py:2134 ../yum/__init__.py:2255
+#: ../yum/__init__.py:2168 ../yum/__init__.py:2289
 #, python-format
 msgid "package %s was not marked in group %s"
 msgstr "pakiet %s nie został oznaczony w grupie %s"
 
-#: ../yum/__init__.py:2181
+#: ../yum/__init__.py:2215
 #, python-format
 msgid "Adding package %s from group %s"
 msgstr "Dodawanie pakietu %s z grupy %s"
 
-#: ../yum/__init__.py:2185
+#: ../yum/__init__.py:2219
 #, python-format
 msgid "No package named %s available to be installed"
 msgstr "Brak dostępnego pakietu o nazwie %s do zainstalowania"
 
-#: ../yum/__init__.py:2282
+#: ../yum/__init__.py:2316
 #, 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:2296
+#: ../yum/__init__.py:2330
 msgid ""
 "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n"
 msgstr ""
 "getInstalledPackageObject() zostanie usunięte, użyj self.rpmdb.searchPkgTuple"
 "().\n"
 
-#: ../yum/__init__.py:2352 ../yum/__init__.py:2397
+#: ../yum/__init__.py:2386 ../yum/__init__.py:2436
 msgid "Invalid version flag"
 msgstr "Nieprawidłowa flaga wersji"
 
-#: ../yum/__init__.py:2367 ../yum/__init__.py:2372
+#: ../yum/__init__.py:2406 ../yum/__init__.py:2411
 #, python-format
 msgid "No Package found for %s"
 msgstr "Nie znaleziono pakietu %s"
 
-#: ../yum/__init__.py:2572
+#: ../yum/__init__.py:2627
 msgid "Package Object was not a package object instance"
 msgstr "Obiekt pakietu nie był instancją obiektu pakietu"
 
-#: ../yum/__init__.py:2576
+#: ../yum/__init__.py:2631
 msgid "Nothing specified to install"
 msgstr "Nie podano nic do zainstalowania"
 
-#: ../yum/__init__.py:2592 ../yum/__init__.py:3307
+#: ../yum/__init__.py:2647 ../yum/__init__.py:3411
 #, 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:2598 ../yum/__init__.py:2874 ../yum/__init__.py:3037
-#: ../yum/__init__.py:3313
+#: ../yum/__init__.py:2653 ../yum/__init__.py:2960 ../yum/__init__.py:3127
+#: ../yum/__init__.py:3417
 #, python-format
 msgid "No Match for argument: %s"
 msgstr "Brak wyników dla parametru: %s"
 
-#: ../yum/__init__.py:2672
+#: ../yum/__init__.py:2729
 #, python-format
 msgid "Package %s installed and not available"
 msgstr "Pakiet %s jest zainstalowany, ale nie jest dostępny"
 
-#: ../yum/__init__.py:2675
+#: ../yum/__init__.py:2732
 msgid "No package(s) available to install"
 msgstr "Brak pakietów dostępnych do instalacji"
 
-#: ../yum/__init__.py:2687
+#: ../yum/__init__.py:2744
 #, python-format
 msgid "Package: %s  - already in transaction set"
 msgstr "Pakiet: %s  - jest już w zestawie transakcji"
 
-#: ../yum/__init__.py:2702
+#: ../yum/__init__.py:2770
+#, python-format
+msgid "Package %s is obsoleted by %s which is already installed"
+msgstr "Pakiet %s został zastąpiony przez %s, który jest już zainstalowany"
+
+#: ../yum/__init__.py:2773
 #, 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:2710
+#: ../yum/__init__.py:2781
 #, python-format
 msgid "Package %s already installed and latest version"
 msgstr "Pakiet %s jest już zainstalowany w najnowszej wersji"
 
-#: ../yum/__init__.py:2724
+#: ../yum/__init__.py:2795
 #, 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:2810
+#: ../yum/__init__.py:2889
 msgid "Updating Everything"
 msgstr "Aktualizowanie wszystkiego"
 
-#: ../yum/__init__.py:2828 ../yum/__init__.py:2939 ../yum/__init__.py:2960
-#: ../yum/__init__.py:2986
+#: ../yum/__init__.py:2910 ../yum/__init__.py:3025 ../yum/__init__.py:3054
+#: ../yum/__init__.py:3081
 #, 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:2863 ../yum/__init__.py:3034
+#: ../yum/__init__.py:2945 ../yum/__init__.py:3124
 #, python-format
 msgid "%s"
 msgstr "%s"
 
-#: ../yum/__init__.py:2930
+#: ../yum/__init__.py:3016
 #, 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:2963 ../yum/__init__.py:2989
+#: ../yum/__init__.py:3049
+#, python-format
+msgid "Not Updating Package that is obsoleted: %s"
+msgstr "Przestarzały pakiet nie zostanie zaktualizowany: %s"
+
+#: ../yum/__init__.py:3058 ../yum/__init__.py:3085
 #, 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:3050
+#: ../yum/__init__.py:3140
 msgid "No package matched to remove"
 msgstr "Brak pasujących pakietów do usunięcia"
 
-#: ../yum/__init__.py:3084 ../yum/__init__.py:3175 ../yum/__init__.py:3262
+#: ../yum/__init__.py:3173 ../yum/__init__.py:3277 ../yum/__init__.py:3366
 #, python-format
 msgid "Cannot open file: %s. Skipping."
 msgstr "Nie można otworzyć pliku: %s. Pomijanie."
 
-#: ../yum/__init__.py:3087 ../yum/__init__.py:3178 ../yum/__init__.py:3265
+#: ../yum/__init__.py:3176 ../yum/__init__.py:3280 ../yum/__init__.py:3369
 #, python-format
 msgid "Examining %s: %s"
 msgstr "Sprawdzanie %s: %s"
 
-#: ../yum/__init__.py:3095 ../yum/__init__.py:3181 ../yum/__init__.py:3268
+#: ../yum/__init__.py:3184 ../yum/__init__.py:3283 ../yum/__init__.py:3372
 #, 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:3103
+#: ../yum/__init__.py:3192
 #, python-format
 msgid ""
 "Package %s not installed, cannot update it. Run yum install to install it "
@@ -2090,98 +2136,98 @@ msgstr ""
 "Pakiet %s nie jest zainstalowany, nie można go zaktualizować. Uruchom yum "
 "install, aby go zainstalować."
 
-#: ../yum/__init__.py:3138 ../yum/__init__.py:3192 ../yum/__init__.py:3279
+#: ../yum/__init__.py:3227 ../yum/__init__.py:3294 ../yum/__init__.py:3383
 #, python-format
 msgid "Excluding %s"
 msgstr "Wykluczanie %s"
 
-#: ../yum/__init__.py:3143
+#: ../yum/__init__.py:3232
 #, python-format
 msgid "Marking %s to be installed"
 msgstr "Oznaczanie %s do zainstalowania"
 
-#: ../yum/__init__.py:3149
+#: ../yum/__init__.py:3238
 #, python-format
 msgid "Marking %s as an update to %s"
 msgstr "Oznaczanie %s jako aktualizacji %s"
 
-#: ../yum/__init__.py:3156
+#: ../yum/__init__.py:3245
 #, python-format
 msgid "%s: does not update installed package."
 msgstr "%s: nie aktualizuj zainstalowanego pakietu."
 
-#: ../yum/__init__.py:3211
+#: ../yum/__init__.py:3313
 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:3223 ../yum/__init__.py:3340
+#: ../yum/__init__.py:3326 ../yum/__init__.py:3444
 #, python-format
 msgid "Package %s is allowed multiple installs, skipping"
 msgstr "Pakiet %s może być wielokrotnie instalowany, pomijanie"
 
-#: ../yum/__init__.py:3241
+#: ../yum/__init__.py:3347
 #, python-format
 msgid "Problem in reinstall: no package %s matched to install"
 msgstr ""
 "Podczas ponownego instalowania wystąpił problem: brak pakietu %s pasującego "
 "do zainstalowania"
 
-#: ../yum/__init__.py:3332
+#: ../yum/__init__.py:3436
 msgid "No package(s) available to downgrade"
 msgstr "Brak pakietów dostępnych do instalacji starszej wersji"
 
-#: ../yum/__init__.py:3376
+#: ../yum/__init__.py:3480
 #, python-format
 msgid "No Match for available package: %s"
 msgstr "Brak wyników dla dostępnych pakietów: %s"
 
-#: ../yum/__init__.py:3382
+#: ../yum/__init__.py:3486
 #, python-format
 msgid "Only Upgrade available on package: %s"
 msgstr "Dla pakietu dostępna jest tylko aktualizacja: %s"
 
-#: ../yum/__init__.py:3441
+#: ../yum/__init__.py:3545
 #, python-format
 msgid "Retrieving GPG key from %s"
 msgstr "Pobieranie klucza GPG z %s"
 
-#: ../yum/__init__.py:3461
+#: ../yum/__init__.py:3565
 msgid "GPG key retrieval failed: "
 msgstr "Pobranie klucza GPG nie powiodło się: "
 
-#: ../yum/__init__.py:3472
+#: ../yum/__init__.py:3576
 #, 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:3504
+#: ../yum/__init__.py:3608
 #, 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:3509 ../yum/__init__.py:3571
+#: ../yum/__init__.py:3613 ../yum/__init__.py:3675
 #, python-format
 msgid "Importing GPG key 0x%s \"%s\" from %s"
 msgstr "Importowanie klucza GPG 0x%s \"%s\" z %s"
 
-#: ../yum/__init__.py:3526
+#: ../yum/__init__.py:3630
 msgid "Not installing key"
 msgstr "Klucz nie zostanie zainstalowany"
 
-#: ../yum/__init__.py:3532
+#: ../yum/__init__.py:3636
 #, python-format
 msgid "Key import failed (code %d)"
 msgstr "Zaimportowanie klucza nie powiodło się (kod %d)"
 
-#: ../yum/__init__.py:3533 ../yum/__init__.py:3592
+#: ../yum/__init__.py:3637 ../yum/__init__.py:3696
 msgid "Key imported successfully"
 msgstr "Klucz został pomyślnie zaimportowany"
 
-#: ../yum/__init__.py:3538 ../yum/__init__.py:3597
+#: ../yum/__init__.py:3642 ../yum/__init__.py:3701
 #, python-format
 msgid ""
 "The GPG keys listed for the \"%s\" repository are already installed but they "
@@ -2190,81 +2236,81 @@ msgid ""
 msgstr ""
 "Klucze GPG wyświetlone dla repozytorium \"%s\" są już zainstalowane, ale nie "
 "są poprawne dla tego pakietu.\n"
-"Sprawdź, czy dla tego repozytorium skonfigurowane są poprawne adresy do "
+"Sprawdź, czy dla tego repozytorium skonfigurowane są poprawne adresy URL do "
 "kluczy."
 
-#: ../yum/__init__.py:3547
+#: ../yum/__init__.py:3651
 msgid "Import of key(s) didn't help, wrong key(s)?"
 msgstr "Zaimportowanie kluczy nie pomogło, błędne klucze?"
 
-#: ../yum/__init__.py:3566
+#: ../yum/__init__.py:3670
 #, python-format
 msgid "GPG key at %s (0x%s) is already imported"
 msgstr "Klucz GPG %s (0x%s) został już zaimportowany"
 
-#: ../yum/__init__.py:3586
+#: ../yum/__init__.py:3690
 #, python-format
 msgid "Not installing key for repo %s"
 msgstr "Klucz dla repozytorium %s nie zostanie zainstalowany"
 
-#: ../yum/__init__.py:3591
+#: ../yum/__init__.py:3695
 msgid "Key import failed"
 msgstr "Zaimportowanie klucza nie powiodło się"
 
-#: ../yum/__init__.py:3712
+#: ../yum/__init__.py:3816
 msgid "Unable to find a suitable mirror."
 msgstr "Nie można znaleźć odpowiedniego serwera lustrzanego."
 
-#: ../yum/__init__.py:3714
+#: ../yum/__init__.py:3818
 msgid "Errors were encountered while downloading packages."
 msgstr "Podczas pobierania pakietów wystąpiły błędy."
 
-#: ../yum/__init__.py:3755
+#: ../yum/__init__.py:3868
 #, python-format
 msgid "Please report this error at %s"
 msgstr "Zgłoś ten błąd na %s"
 
-#: ../yum/__init__.py:3779
+#: ../yum/__init__.py:3892
 msgid "Test Transaction Errors: "
 msgstr "Błędy testu transakcji: "
 
 #. Mostly copied from YumOutput._outKeyValFill()
-#: ../yum/plugins.py:205
+#: ../yum/plugins.py:202
 msgid "Loaded plugins: "
 msgstr "Wczytane wtyczki: "
 
-#: ../yum/plugins.py:219 ../yum/plugins.py:225
+#: ../yum/plugins.py:216 ../yum/plugins.py:222
 #, python-format
 msgid "No plugin match for: %s"
 msgstr "Brak wyników dla wtyczki: %s"
 
-#: ../yum/plugins.py:255
+#: ../yum/plugins.py:252
 #, 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:267
+#: ../yum/plugins.py:264
 #, python-format
 msgid "Plugin \"%s\" can't be imported"
 msgstr "Nie można zaimportować wtyczki \"%s\""
 
-#: ../yum/plugins.py:274
+#: ../yum/plugins.py:271
 #, python-format
 msgid "Plugin \"%s\" doesn't specify required API version"
 msgstr "Wtyczka \"%s\" nie określa wymaganej wersji API"
 
-#: ../yum/plugins.py:279
+#: ../yum/plugins.py:276
 #, 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:312
+#: ../yum/plugins.py:309
 #, python-format
 msgid "Loading \"%s\" plugin"
 msgstr "Wczytywanie wtyczki \"%s\""
 
-#: ../yum/plugins.py:319
+#: ../yum/plugins.py:316
 #, python-format
 msgid ""
 "Two or more plugins with the name \"%s\" exist in the plugin search path"
@@ -2272,19 +2318,19 @@ msgstr ""
 "Istnieją dwie lub więcej wtyczek o nazwie \"%s\" w ścieżce wyszukiwania "
 "wtyczek"
 
-#: ../yum/plugins.py:339
+#: ../yum/plugins.py:336
 #, 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:342
+#: ../yum/plugins.py:339
 #, python-format
 msgid "Unable to find configuration file for plugin %s"
 msgstr "Nie można naleźć pliku konfiguracji dla wtyczki %s"
 
-#: ../yum/plugins.py:500
+#: ../yum/plugins.py:497
 msgid "registration of commands not supported"
 msgstr "rejestracja poleceń nie jest obsługiwana"
 
diff --git a/rpmUtils/arch.py b/rpmUtils/arch.py
index d22782b..edfc707 100644
--- a/rpmUtils/arch.py
+++ b/rpmUtils/arch.py
@@ -255,6 +255,7 @@ def getCanonPPCArch(arch):
 
 def getCanonSPARCArch(arch):
     # Deal with sun4v, sun4u, sun4m cases
+    SPARCtype = None
     f = open("/proc/cpuinfo", "r")
     lines = f.readlines()
     f.close()
@@ -262,6 +263,9 @@ def getCanonSPARCArch(arch):
         if line.startswith("type"):
             SPARCtype = line.split(':')[1]
             break
+    if SPARCtype is None:
+        return arch
+
     if SPARCtype.find("sun4v") != -1:
         if arch.startswith("sparc64"):
             return "sparc64v"
diff --git a/rpmUtils/updates.py b/rpmUtils/updates.py
index f2d43f8..3264956 100644
--- a/rpmUtils/updates.py
+++ b/rpmUtils/updates.py
@@ -24,7 +24,7 @@ class Updates:
     """
     This class computes and keeps track of updates and obsoletes.
     initialize, add installed packages, add available packages (both as
-    unique lists of name, epoch, ver, rel, arch tuples), add an optional dict
+    unique lists of name, arch, ver, rel, epoch tuples), add an optional dict
     of obsoleting packages with obsoletes and what they obsolete ie::
         foo, i386, 0, 1.1, 1: bar >= 1.1.
     """
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index db71a21..f8896f1 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -582,6 +582,24 @@ class SkipBrokenTests(DepsolveTests):
         self.assertEquals('empty', *self.resolveCode(skip=True))
         self.assertResult([c1,d1,r1,r2,r3,r4])
         
+    def testDualPackageUpdate(self):    
+        '''
+        RHBZ #522112
+        two version of the same package installed on the system
+        and update will update both, but if it fail some dep only
+        One of the updated packages will be removed from the
+        transaction.
+        '''
+        i1 = self.instPackage('xorg-x11-server-Xorg','1.6.99.900')
+        i2 = self.instPackage('xorg-x11-server-Xorg','1.6.3')
+        u1 = self.repoPackage('xorg-x11-server-Xorg', '1.6.99.901')
+        u1.addRequires("notfound")
+        self.tsInfo.addUpdate(u1, oldpo=i1)
+        self.tsInfo.addUpdate(u1, oldpo=i2)
+        self.assertEquals('empty', *self.resolveCode(skip=True))
+        self.assertResult([i1,i2])
+        
+    
     
     def resolveCode(self,skip = False):
         solver = YumBase()
diff --git a/utils.py b/utils.py
index 5456c68..945aa65 100644
--- a/utils.py
+++ b/utils.py
@@ -15,14 +15,29 @@
 
 import sys
 import time
+import exceptions
 
 import yum
 from cli import *
+from yum import Errors
 from yum import _
+from yum import logginglevels
 from optparse import OptionGroup
 
 import yum.plugins as plugins
 
+
+def suppress_keyboard_interrupt_message():
+    old_excepthook = sys.excepthook
+
+    def new_hook(type, value, traceback):
+        if type != exceptions.KeyboardInterrupt:
+            old_excepthook(type, value, traceback)
+        else:
+            pass
+
+    sys.excepthook = new_hook
+
 class YumUtilBase(YumBaseCli):
     def __init__(self,name,ver,usage):
         YumBaseCli.__init__(self)
@@ -32,7 +47,7 @@ class YumUtilBase(YumBaseCli):
         self._utilVer = ver
         self._option_group = OptionGroup(self._parser, "%s options" % self._utilName,"")
         self._parser.add_option_group(self._option_group)
-
+        suppress_keyboard_interrupt_message()
         
     def getOptionParser(self):
         return self._parser        
@@ -46,7 +61,7 @@ class YumUtilBase(YumBaseCli):
         while True:
             try:
                 self.doLock()
-            except yum.Errors.LockError, e:
+            except Errors.LockError, e:
                 if "%s" %(e.msg,) != lockerr:
                     lockerr = "%s" %(e.msg,)
                     self.logger.critical(lockerr)
@@ -83,7 +98,7 @@ class YumUtilBase(YumBaseCli):
                 pc.enabled_plugins = self._parser._splitArg(opts.enableplugins)
             self.conf
 
-        except yum.Errors.ConfigError, e:
+        except Errors.ConfigError, e:
             self.logger.critical(_('Config Error: %s'), e)
             sys.exit(1)
         except ValueError, e:
@@ -108,10 +123,63 @@ class YumUtilBase(YumBaseCli):
             self._getRpmDB()
             self._getRepos(doSetup = True)
             self._getSacks()
-        except yum.Errors.YumBaseError, msg:
+        except Errors.YumBaseError, msg:
             self.logger.critical(str(msg))
             sys.exit(1)
-            
+    
+    def doUtilTransaction(self):
+        def exUserCancel():
+            self.logger.critical(_('\n\nExiting on user cancel'))
+            if unlock(): return 200
+            return 1
+
+        def exIOError(e):
+            if e.errno == 32:
+                self.logger.critical(_('\n\nExiting on Broken Pipe'))
+            else:
+                self.logger.critical(_('\n\n%s') % str(e))
+            if unlock(): return 200
+            return 1
+
+        def exPluginExit(e):
+            '''Called when a plugin raises PluginYumExit.
+
+            Log the plugin's exit message if one was supplied.
+            ''' # ' xemacs hack
+            exitmsg = str(e)
+            if exitmsg:
+                self.logger.warn('\n\n%s', exitmsg)
+            if unlock(): return 200
+            return 1
+
+        def exFatal(e):
+            self.logger.critical('\n\n%s', to_unicode(e.value))
+            if unlock(): return 200
+            return 1
+
+        def unlock():
+            try:
+                self.closeRpmDB()
+                self.doUnlock()
+            except Errors.LockError, e:
+                return 200
+            return 0
+
+        try:
+            return_code = self.doTransaction()
+        except plugins.PluginYumExit, e:
+            return exPluginExit(e)
+        except Errors.YumBaseError, e:
+            return exFatal(e)
+        except KeyboardInterrupt:
+            return exUserCancel()
+        except IOError, e:
+            return exIOError(e)
+
+        self.verbose_logger.log(logginglevels.INFO_2, _('Complete!'))
+        if unlock(): return 200
+        return return_code
+        
 def main():
     name = 'testutil'
     ver  = '0.1'
diff --git a/yum.spec b/yum.spec
index 5145061..5652586 100644
--- a/yum.spec
+++ b/yum.spec
@@ -78,6 +78,7 @@ exit 0
 %defattr(-, root, root)
 %doc README AUTHORS COPYING TODO INSTALL ChangeLog PLUGINS
 %config(noreplace) %{_sysconfdir}/yum/yum.conf
+%config(noreplace) %{_sysconfdir}/yum/version-groups.conf
 %dir %{_sysconfdir}/%{name}
 %dir %{_sysconfdir}/yum/repos.d
 %config %{_sysconfdir}/logrotate.d/%{name}
diff --git a/yum/Errors.py b/yum/Errors.py
index 6f0ffe4..3a5aca9 100644
--- a/yum/Errors.py
+++ b/yum/Errors.py
@@ -101,6 +101,9 @@ class RepoMDError(YumBaseError):
 class PackageSackError(YumBaseError):
     pass
 
+class RpmDBError(YumBaseError):
+    pass
+
 class CompsException(YumBaseError):
     pass
 
diff --git a/yum/__init__.py b/yum/__init__.py
index 8211c70..6e06005 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -32,9 +32,9 @@ import logging.config
 import operator
 import gzip
 
-import yum.i18n
-_ = yum.i18n._
-P_ = yum.i18n.P_
+import i18n
+_ = i18n._
+P_ = i18n.P_
 
 import config
 from config import ParsingError, ConfigParser
@@ -57,14 +57,15 @@ import plugins
 import logginglevels
 import yumRepo
 import callbacks
+import history
 
 import warnings
 warnings.simplefilter("ignore", Errors.YumFutureDeprecationWarning)
 
 from packages import parsePackages, YumAvailablePackage, YumLocalPackage, YumInstalledPackage, comparePoEVR
 from constants import *
-from yum.rpmtrans import RPMTransaction,SimpleCliCallBack
-from yum.i18n import to_unicode
+from rpmtrans import RPMTransaction,SimpleCliCallBack
+from i18n import to_unicode, to_str
 
 import string
 
@@ -137,6 +138,7 @@ class YumBase(depsolve.Depsolve):
         self._rpmdb = None
         self._up = None
         self._comps = None
+        self._history = None
         self._pkgSack = None
         self._lockfile = None
         self.skipped_packages = []   # packages skip by the skip-broken code
@@ -153,6 +155,7 @@ class YumBase(depsolve.Depsolve):
         self.arch = ArchStorage()
         self.preconf = _YumPreBaseConf()
 
+        self.run_with_package_names = set()
 
     def __del__(self):
         self.close()
@@ -160,6 +163,10 @@ class YumBase(depsolve.Depsolve):
         self.doUnlock()
 
     def close(self):
+        # We don't want to create the object, so we test if it's been created
+        if self._history is not None:
+            self.history.close()
+
         if self._repos:
             self._repos.close()
 
@@ -272,6 +279,10 @@ class YumBase(depsolve.Depsolve):
         # worthless. So we delete it, and thus. it'll raise AttributeError
         del self.preconf
 
+        # Packages used to run yum...
+        for pkgname in self.conf.history_record_packages:
+            self.run_with_package_names.add(pkgname)
+
         # run the postconfig plugin hook
         self.plugins.run('postconfig')
         self.yumvar = self.conf.yumvar
@@ -694,6 +705,13 @@ class YumBase(depsolve.Depsolve):
         self._comps.compile(self.rpmdb.simplePkgList())
         self.verbose_logger.debug('group time: %0.3f' % (time.time() - group_st))                
         return self._comps
+
+    def _getHistory(self):
+        """auto create the history object that to acess/append the transaction
+           history information. """
+        if self._history is None:
+            self._history = yum.history.YumHistory(root=self.conf.installroot)
+        return self._history
     
     # properties so they auto-create themselves with defaults
     repos = property(fget=lambda self: self._getRepos(),
@@ -718,6 +736,9 @@ class YumBase(depsolve.Depsolve):
     comps = property(fget=lambda self: self._getGroups(),
                      fset=lambda self, value: self._setGroups(value),
                      fdel=lambda self: setattr(self, "_comps", None))
+    history = property(fget=lambda self: self._getHistory(),
+                       fset=lambda self, value: setattr(self, "_history",value),
+                       fdel=lambda self: setattr(self, "_history", None))
     
     
     def doSackFilelistPopulate(self):
@@ -879,6 +900,7 @@ class YumBase(depsolve.Depsolve):
                 self.verbose_logger.debug('SKIPBROKEN: sanity check the current transaction' )
                 self.tsInfo.resetResolved(hard=True)
                 self._checkMissingObsoleted() # This is totally insane, but needed :(
+                self._checkUpdatedLeftovers() # Cleanup updated leftovers
                 rescode, restring = self.resolveDeps()
         if rescode != 1:
             self.verbose_logger.debug(_("Skip-broken took %i rounds "), count)
@@ -901,7 +923,7 @@ class YumBase(depsolve.Depsolve):
         then the TS_OBSOLETED can get removed from the transaction
         so we must make sure that they, exist and else create them
         """
-        for txmbr in self.tsInfo:
+        for txmbr in self.tsInfo.getMembersWithState(None, [TS_OBSOLETING,TS_OBSOLETED]):
             for pkg in txmbr.obsoletes:
                 if not self.tsInfo.exists(pkg.pkgtup):
                     obs = self.tsInfo.addObsoleted(pkg,txmbr.po)
@@ -914,6 +936,21 @@ class YumBase(depsolve.Depsolve):
                     self.verbose_logger.debug('SKIPBROKEN: Remove extra obsoleted %s (%s)' % (txmbr.po,pkg) )
                     self.tsInfo.remove(txmbr.po.pkgtup)
 
+    def _checkUpdatedLeftovers(self):
+        """ 
+        If multiple packages is updated the same package
+        and this package get removed because of an dep issue
+        then make sure that all the TS_UPDATED get removed.
+        """
+        for txmbr in self.tsInfo.getMembersWithState(None, [TS_UPDATED]):
+            for pkg in txmbr.updated_by:
+                # check if the updating txmbr is in the transaction
+                # else remove the updated txmbr
+                # it clean out some really wierd cases with dupes installed on the system
+                if not self.tsInfo.exists(pkg.pkgtup):
+                    self.verbose_logger.debug('SKIPBROKEN: Remove extra updated %s (%s)' % (txmbr.po,pkg) )
+                    self.tsInfo.remove(txmbr.po.pkgtup)
+
     def _getPackagesToRemoveAllArch(self,po):
         ''' get all compatible arch packages in pkgSack'''
         pkgs = []
@@ -1013,6 +1050,18 @@ class YumBase(depsolve.Depsolve):
 
         self.plugins.run('pretrans')
 
+        using_pkgs_pats = list(self.run_with_package_names)
+        using_pkgs = self.rpmdb.returnPackages(patterns=using_pkgs_pats)
+        rpmdbv  = self.rpmdb.simpleVersion(main_only=True)[0]
+        lastdbv = self.history.last()
+        if lastdbv is not None:
+            lastdbv = lastdbv.end_rpmdbversion
+        if lastdbv is not None and rpmdbv != lastdbv:
+            errstring = _('Warning: RPMDB has been altered since the last yum transaction.')
+            self.logger.warning(errstring)
+        if self.conf.history_record:
+            self.history.beg(rpmdbv, using_pkgs, list(self.tsInfo))
+
         errors = self.ts.run(cb.callback, '')
         # ts.run() exit codes are, hmm, "creative": None means all ok, empty 
         # list means some errors happened in the transaction and non-empty 
@@ -1028,6 +1077,9 @@ class YumBase(depsolve.Depsolve):
             self.verbose_logger.debug(errstring)
             resultobject.return_code = 1
         else:
+            if self.conf.history_record:
+                herrors = [to_unicode(to_str(x)) for x in errors]
+                self.history.end(rpmdbv, 2, errors=herrors)
             raise Errors.YumBaseError, errors
                           
         if not self.conf.keepcache:
@@ -1044,10 +1096,10 @@ class YumBase(depsolve.Depsolve):
         self.rpmdb.dropCachedData() # drop out the rpm cache so we don't step on bad hdr indexes
         self.plugins.run('posttrans')
         # sync up what just happened versus what is in the rpmdb
-        self.verifyTransaction()
+        self.verifyTransaction(resultobject)
         return resultobject
 
-    def verifyTransaction(self):
+    def verifyTransaction(self, resultobject=None):
         """checks that the transaction did what we expected it to do. Also 
            propagates our external yumdb info"""
         
@@ -1071,7 +1123,7 @@ class YumBase(depsolve.Depsolve):
                     self.logger.critical(_('%s was supposed to be installed' \
                                            ' but is not!' % txmbr.po))
                     continue
-                po = self.rpmdb.searchPkgTuple(txmbr.pkgtup)[0]
+                po = self.getInstalledPackageObject(txmbr.pkgtup)
                 rpo = txmbr.po
                 po.yumdb_info.from_repo = rpo.repoid
                 po.yumdb_info.reason = txmbr.reason
@@ -1115,6 +1167,11 @@ class YumBase(depsolve.Depsolve):
             else:
                 self.verbose_logger.log(logginglevels.DEBUG_2, 'What is this? %s' % txmbr.po)
 
+        if self.conf.history_record:
+            ret = -1
+            if resultobject is not None:
+                ret = resultobject.return_code
+            self.history.end(self.rpmdb.simpleVersion(main_only=True)[0], ret)
         self.rpmdb.dropCachedData()
 
     def costExcludePackages(self):
@@ -1259,7 +1316,10 @@ class YumBase(depsolve.Depsolve):
                 os.makedirs(lockdir, mode=0755)
             fd = os.open(filename, os.O_EXCL|os.O_CREAT|os.O_WRONLY, mode)    
         except OSError, msg:
-            if not msg.errno == errno.EEXIST: raise msg
+            if not msg.errno == errno.EEXIST: 
+                # Whoa. What the heck happened?
+                errmsg = _('Could not create lock at %s: %s ') % (filename, str(msg))
+                raise Errors.LockError(msg.errno, errmsg, contents)
             return 0
         else:
             os.write(fd, contents)
@@ -1783,7 +1843,7 @@ class YumBase(depsolve.Depsolve):
             for (pkgtup, instTup) in self.up.getObsoletesTuples():
                 (n,a,e,v,r) = pkgtup
                 pkgs = self.pkgSack.searchNevra(name=n, arch=a, ver=v, rel=r, epoch=e)
-                instpo = self.rpmdb.searchPkgTuple(instTup)[0] # the first one
+                instpo = self.getInstalledPackageObject(instTup)
                 for po in pkgs:
                     obsoletes.append(po)
                     obsoletesTuples.append((po, instpo))
@@ -1986,10 +2046,7 @@ class YumBase(depsolve.Depsolve):
                     canBeFile = True
             else:
                 isglob = True
-                if arg[0] != '/' and not misc.re_glob(arg[0]):
-                    canBeFile = False
-                else:
-                    canBeFile = True
+                canBeFile = misc.re_filename(arg)
                 
             if not isglob:
                 usedDepString = True
@@ -2326,11 +2383,16 @@ class YumBase(depsolve.Depsolve):
         return result
 
     def getInstalledPackageObject(self, pkgtup):
-        """returns a YumInstallPackage object for the pkgtup specified"""
-        warnings.warn(_('getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple().\n'),
-                Errors.YumFutureDeprecationWarning, stacklevel=2)
-        
-        po = self.rpmdb.searchPkgTuple(pkgtup)[0] # take the first one
+        """ Returns a YumInstallPackage object for the pkgtup specified, or
+            raises an exception. You should use this instead of
+            searchPkgTuple() if you are assuming there is a value. """
+
+        pkgs = self.rpmdb.searchPkgTuple(pkgtup)
+        if len(pkgs) == 0:
+            raise Errors.RpmDBError, _('Package tuple %s could not be found in rpmdb') % str(pkgtup)
+
+        # Dito. FIXME from getPackageObject() for len() > 1 ... :)
+        po = pkgs[0] # take the first one
         return po
         
     def gpgKeyCheck(self):
@@ -2594,7 +2656,7 @@ class YumBase(depsolve.Depsolve):
         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]
+                    installed_pkg =  self.getInstalledPackageObject(inst_tup)
                     yield installed_pkg
         else:
             for (obs_n, obs_f, (obs_e, obs_v, obs_r)) in po.obsoletes:
@@ -2898,7 +2960,7 @@ class YumBase(depsolve.Depsolve):
                 topkg = self._test_loop(obsoleting_pkg, self._pkg2obspkg)
                 if topkg is not None:
                     obsoleting_pkg = topkg
-                installed_pkg =  self.rpmdb.searchPkgTuple(installed)[0]
+                installed_pkg =  self.getInstalledPackageObject(installed)
                 txmbr = self.tsInfo.addObsoleting(obsoleting_pkg, installed_pkg)
                 self.tsInfo.addObsoleted(installed_pkg, obsoleting_pkg)
                 if requiringPo:
@@ -3059,7 +3121,7 @@ class YumBase(depsolve.Depsolve):
                                             updated)
                 
                 else:
-                    updated_pkg =  self.rpmdb.searchPkgTuple(updated)[0]
+                    updated_pkg =  self.getInstalledPackageObject(updated)
                     txmbr = self.tsInfo.addUpdate(available_pkg, updated_pkg)
                     if requiringPo:
                         txmbr.setAsDep(requiringPo)
@@ -3426,6 +3488,7 @@ class YumBase(depsolve.Depsolve):
         if not apkgs:
             # Do we still want to return errors here?
             # We don't in the cases below, so I didn't here...
+            pkgs = []
             if 'pattern' in kwargs:
                 pkgs = self.rpmdb.returnPackages(patterns=[kwargs['pattern']],
                                                  ignore_case=False)
@@ -3534,6 +3597,84 @@ class YumBase(depsolve.Depsolve):
 
         return returndict
 
+    def history_redo(self, transaction):
+        """ Given a valid historical transaction object, try and repeat
+            that transaction. """
+        # NOTE: This is somewhat basic atm. ... see comment in undo.
+        old_conf_obs = self.conf.obsoletes
+        self.conf.obsoletes = False
+        done = False
+        for pkg in transaction.trans_data:
+            if pkg.state == 'Reinstall':
+                if self.reinstall(pkgtup=pkg.pkgtup):
+                    done = True
+        for pkg in transaction.trans_data:
+            if pkg.state == 'Downgrade':
+                try:
+                    if self.downgrade(pkgtup=pkg.pkgtup):
+                        done = True
+                except yum.Errors.DowngradeError:
+                    self.logger.critical(_('Failed to downgrade: %s'), pkg)
+        for pkg in transaction.trans_data:
+            if pkg.state == 'Update':
+                if self.update(pkgtup=pkg.pkgtup):
+                    done = True
+        for pkg in transaction.trans_data:
+            if pkg.state in ('Install', 'True-Install', 'Obsoleting'):
+                if self.install(pkgtup=pkg.pkgtup):
+                    done = True
+        for pkg in transaction.trans_data:
+            if pkg.state == 'Erase':
+                if self.remove(pkgtup=pkg.pkgtup):
+                    done = True
+        self.conf.obsoletes = old_conf_obs
+        return done
+
+    def history_undo(self, transaction):
+        """ Given a valid historical transaction object, try and undo
+            that transaction. """
+        # NOTE: This is somewhat basic atm. ... for instance we don't check
+        #       that we are going from the old new version. However it's still
+        #       better than the RHN rollback code, and people pay for that :).
+        #  We turn obsoletes off because we want the specific versions of stuff
+        # from history ... even if they've been obsoleted since then.
+        old_conf_obs = self.conf.obsoletes
+        self.conf.obsoletes = False
+        done = False
+        for pkg in transaction.trans_data:
+            if pkg.state == 'Reinstall':
+                if self.reinstall(pkgtup=pkg.pkgtup):
+                    done = True
+        for pkg in transaction.trans_data:
+            if pkg.state == 'Updated':
+                try:
+                    if self.downgrade(pkgtup=pkg.pkgtup):
+                        done = True
+                except yum.Errors.DowngradeError:
+                    self.logger.critical(_('Failed to downgrade: %s'), pkg)
+        for pkg in transaction.trans_data:
+            if pkg.state == 'Downgraded':
+                if self.update(pkgtup=pkg.pkgtup):
+                    done = True
+        for pkg in transaction.trans_data:
+            if pkg.state == 'Obsoleting':
+                if self.remove(pkgtup=pkg.pkgtup):
+                    done = True
+        for pkg in transaction.trans_data:
+            if pkg.state in ('Install', 'True-Install'):
+                if self.remove(pkgtup=pkg.pkgtup):
+                    done = True
+        for pkg in transaction.trans_data:
+            if pkg.state == 'Obsoleted':
+                if self.install(pkgtup=pkg.pkgtup):
+                    done = True
+        for pkg in transaction.trans_data:
+            if pkg.state == 'Erase':
+                if self.install(pkgtup=pkg.pkgtup):
+                    done = True
+        self.conf.obsoletes = old_conf_obs
+        return done
+
     def _retrievePublicKey(self, keyurl, repo=None):
         """
         Retrieve a key file
@@ -3726,6 +3867,7 @@ class YumBase(depsolve.Depsolve):
 
                 if True: # Don't to magic sorting, yet
                     ret_mid.append(pkg)
+                    continue
 
                 if pkg.yumdb_info.installonly == 'remove-first':
                     ret_beg.append(pkg)
diff --git a/yum/comps.py b/yum/comps.py
index 2048c77..d310b1b 100755
--- a/yum/comps.py
+++ b/yum/comps.py
@@ -26,7 +26,7 @@ from Errors import CompsException
 # switch all compsexceptions to grouperrors after api break
 import fnmatch
 import re
-from yum.i18n import to_unicode
+from i18n import to_unicode
 from misc import get_my_lang_code
 
 lang_attr = '{http://www.w3.org/XML/1998/namespace}lang'
diff --git a/yum/config.py b/yum/config.py
index 2f057c3..63b3d17 100644
--- a/yum/config.py
+++ b/yum/config.py
@@ -703,6 +703,8 @@ class YumConf(StartupConf):
     sslclientcert = Option()
     sslclientkey = Option()
 
+    history_record = BoolOption(True)
+    history_record_packages = ListOption(['yum', 'rpm', 'yum-metadata-parser'])
 
     _reposlist = []
 
@@ -763,6 +765,11 @@ class RepoConf(BaseConfig):
     sslclientkey = Inherit(YumConf.sslclientkey)
 
     
+class VersionGroupConf(BaseConfig):
+    pkglist = ListOption()
+    run_with_packages = BoolOption(False)
+
+
 def readStartupConfig(configfile, root):
     '''
     Parse Yum's main configuration file and return a StartupConf instance.
@@ -849,6 +856,20 @@ def readMainConfig(startupconf):
     
     return yumconf
 
+def readVersionGroupsConfig(configfile="/etc/yum/version-groups.conf"):
+    parser = ConfigParser()
+    confpp_obj = ConfigPreProcessor(configfile)
+    try:
+        parser.readfp(confpp_obj)
+    except ParsingError, e:
+        raise Errors.ConfigError("Parsing file failed: %s" % e)
+    ret = {}
+    for section in parser.sections():
+        ret[section] = VersionGroupConf()
+        ret[section].populate(parser, section)
+    return ret
+
+
 def getOption(conf, section, name, option):
     '''Convenience function to retrieve a parsed and converted value from a
     ConfigParser.
@@ -893,7 +914,13 @@ def _getsysver(installroot, distroverpkg):
         idx = ts.dbMatch('provides', distroverpkg)
     except TypeError, e:
         # This is code for "cannot open rpmdb"
-        raise Errors.YumBaseError("Error: " + e.message)
+        # this is for pep 352 compliance on python 2.6 and above :(
+        if sys.hexversion < 0x02050000:
+            if hasattr(e,'message'):
+                raise Errors.YumBaseError("Error: " + str(e.message))
+            else:
+                raise Errors.YumBaseError("Error: " + str(e))
+        raise Errors.YumBaseError("Error: " + str(e))
     # 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:
diff --git a/yum/depsolve.py b/yum/depsolve.py
index d6b1b02..c5baacb 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -159,13 +159,6 @@ class Depsolve(object):
 
         self.verbose_logger.log(logginglevels.DEBUG_1, _('Searching pkgSack for dep: %s'),
             name)
-        # we need to check the name - if it doesn't match:
-        # /etc/* bin/* or /usr/lib/sendmail then we should fetch the 
-        # filelists.xml for all repos to make the searchProvides more complete.
-        if name[0] == '/':
-            if not misc.re_primary_filename(name):
-                self.doSackFilelistPopulate()
-            
         pkgs = self.pkgSack.searchProvides(name)
         
         
@@ -181,7 +174,7 @@ class Depsolve(object):
         for po in pkgs:
             self.verbose_logger.log(logginglevels.DEBUG_2,
                 _('Potential match for %s from %s'), name, po)
-            if name[0] == '/' and r_v is None:
+            if misc.re_filename(name) and r_v is None:
                 # file dep add all matches to the defSack
                 defSack.addPackage(po)
                 continue
@@ -1083,7 +1076,16 @@ class Depsolve(object):
                 # could play a part ... this probably needs a better fix.
                 newest = sorted(rpmdbpkgs)[-1]
                 if newest.verLT(pkg):
-                    ipkgresults[pkg] = 0
+                    # give pkgs which are updates just a SLIGHT edge
+                    # we should also make sure that any pkg
+                    # we are giving an edge to is not obsoleted by
+                    # something else in the transaction. :(
+                    # there are many ways I hate this - this is but one
+                    ipkgresults[pkg] = 5
+            else:
+                # just b/c they're not installed pkgs doesn't mean they should
+                # be ignored entirely. Just not preferred
+                ipkgresults[pkg] = 0
 
         #  This is probably only for "renames". What happens is that pkgA-1 gets
         # obsoleted by pkgB but pkgB requires pkgA-2, now _if_ the pkgA txmbr
diff --git a/yum/history.py b/yum/history.py
new file mode 100644
index 0000000..18d2a41
--- /dev/null
+++ b/yum/history.py
@@ -0,0 +1,639 @@
+#!/usr/bin/python -t
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Library General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# Copyright 2009 Red Hat
+#
+# James Antill <james@fedoraproject.org>
+
+import time
+import os, os.path
+import glob
+from weakref import proxy as weakref
+
+from sqlutils import sqlite, executeSQL
+import misc
+from constants import *
+from packages import YumInstalledPackage, YumAvailablePackage, PackageObject
+from i18n import to_unicode
+
+_history_dir = '/var/lib/yum/history'
+
+# NOTE: That we don't list TS_FAILED, because pkgs shouldn't go into the
+#       transaction with that. And if they come out with that we don't want to
+#       match them to anything anyway.
+_stcode2sttxt = {TS_UPDATE : 'Update',
+                 TS_UPDATED : 'Updated', 
+                 TS_ERASE: 'Erase',
+                 TS_INSTALL: 'Install', 
+                 TS_TRUEINSTALL : 'True-Install',
+                 TS_OBSOLETED: 'Obsoleted',
+                 TS_OBSOLETING: 'Obsoleting'}
+
+_sttxt2stcode = {'Update' : TS_UPDATE,
+                 'Updated' : TS_UPDATED, 
+                 'Erase' : TS_ERASE,
+                 'Install' : TS_INSTALL, 
+                 'True-Install' : TS_TRUEINSTALL,
+                 'Reinstall' : TS_INSTALL, # Broken
+                 'Downgrade' : TS_INSTALL, # Broken
+                 'Downgraded' : TS_INSTALL, # Broken
+                 'Obsoleted' : TS_OBSOLETED,
+                 'Obsoleting' : TS_OBSOLETING}
+
+# ---- horrible Copy and paste from sqlitesack ----
+def _sql_esc(pattern):
+    """ Apply SQLite escaping, if needed. Returns pattern and esc. """
+    esc = ''
+    if "_" in pattern or "%" in pattern:
+        esc = ' ESCAPE "!"'
+        pattern = pattern.replace("!", "!!")
+        pattern = pattern.replace("%", "!%")
+        pattern = pattern.replace("_", "!_")
+    return (pattern, esc)
+
+def _sql_esc_glob(patterns):
+    """ Converts patterns to SQL LIKE format, if required (or gives up if
+        not possible). """
+    ret = []
+    for pattern in patterns:
+        if '[' in pattern: # LIKE only has % and _, so [abc] can't be done.
+            return []      # So Load everything
+
+        # Convert to SQL LIKE format
+        (pattern, esc) = _sql_esc(pattern)
+        pattern = pattern.replace("*", "%")
+        pattern = pattern.replace("?", "_")
+        ret.append((pattern, esc))
+    return ret
+
+def _setupHistorySearchSQL(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 = []
+
+    fields = ['name', 'sql_nameArch', 'sql_nameVerRelArch',
+              'sql_nameVer', 'sql_nameVerRel',
+              'sql_envra', 'sql_nevra']
+    need_full = False
+    for pat in patterns:
+        if yum.misc.re_full_search_needed(pat):
+            need_full = True
+            break
+
+    pat_max = PATTERNS_MAX
+    if not need_full:
+        fields = ['name']
+        pat_max = PATTERNS_INDEXED_MAX
+    if len(patterns) > pat_max:
+        patterns = []
+    if ignore_case:
+        patterns = _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)
+# ---- horrible Copy and paste from sqlitesack ----
+
+class YumHistoryPackage(PackageObject):
+
+    def __init__(self, name, arch, epoch, version, release, checksum):
+        self.name    = name
+        self.version = version
+        self.release = release
+        self.epoch   = epoch
+        self.arch    = arch
+        self.pkgtup = (self.name, self.arch,
+                       self.epoch, self.version, self.release)
+        if checksum is None:
+            self._checksums = [] # (type, checksum, id(0,1)
+        else:
+            chk = checksum.split(':')
+            self._checksums = [(chk[0], chk[1], 0)] # (type, checksum, id(0,1))
+
+class YumHistoryTransaction:
+    """ Holder for a history transaction. """
+
+    def __init__(self, history, row):
+        self._history = weakref(history)
+
+        self.tid              = row[0]
+        self.beg_timestamp    = row[1]
+        self.beg_rpmdbversion = row[2]
+        self.end_timestamp    = row[3]
+        self.end_rpmdbversion = row[4]
+        self.loginuid         = row[5]
+        self.return_code      = row[6]
+
+        self._loaded_TW = None
+        self._loaded_TD = None
+
+        self.altered_lt_rpmdb = None
+        self.altered_gt_rpmdb = None
+
+    def __cmp__(self, other):
+        if other is None:
+            return 1
+        ret = cmp(self.beg_timestamp, other.beg_timestamp)
+        if ret: return -ret
+        ret = cmp(self.end_timestamp, other.end_timestamp)
+        if ret: return ret
+        ret = cmp(self.tid, other.tid)
+        return -ret
+
+    def _getTransWith(self):
+        if self._loaded_TW is None:
+            self._loaded_TW = sorted(self._history._old_with_pkgs(self.tid))
+        return self._loaded_TW
+    def _getTransData(self):
+        if self._loaded_TD is None:
+            self._loaded_TD = sorted(self._history._old_data_pkgs(self.tid))
+        return self._loaded_TD
+
+    trans_with = property(fget=lambda self: self._getTransWith())
+    trans_data = property(fget=lambda self: self._getTransData())
+
+class YumHistory:
+    """ API for accessing the history sqlite data. """
+
+    def __init__(self, root='/', db_path=_history_dir):
+        self._conn = None
+        
+        self.conf = yum.misc.GenericHolder()
+        self.conf.db_path  = os.path.normpath(root + '/' + db_path)
+        self.conf.writable = False
+
+        if not os.path.exists(self.conf.db_path):
+            try:
+                os.makedirs(self.conf.db_path)
+            except (IOError, OSError), e:
+                # some sort of useful thing here? A warning?
+                return
+            self.conf.writable = True
+        else:
+            if os.access(self.conf.db_path, os.W_OK):
+                self.conf.writable = True
+
+        DBs = glob.glob('%s/history-*-*-*.sqlite' % self.conf.db_path)
+        self._db_file = None
+        for d in reversed(sorted(DBs)):
+            fname = os.path.basename(d)
+            fname = fname[len("history-"):-len(".sqlite")]
+            pieces = fname.split('-', 4)
+            if len(pieces) != 3:
+                continue
+            try:
+                map(int, pieces)
+            except ValueError:
+                continue
+
+            self._db_file = d
+            break
+
+        if self._db_file is None:
+            self._create_db_file()
+
+    def __del__(self):
+        self.close()
+
+    def _get_cursor(self):
+        if self._conn is None:
+            self._conn = sqlite.connect(self._db_file)
+        return self._conn.cursor()
+    def _commit(self):
+        return self._conn.commit()
+
+    def close(self):
+        if self._conn is not None:
+            self._conn.close()
+            self._conn = None
+
+    def _pkgtup2pid(self, pkgtup, checksum=None):
+        cur = self._get_cursor()
+        executeSQL(cur, """SELECT pkgtupid, checksum FROM pkgtups
+                           WHERE name=? AND arch=? AND
+                                 epoch=? AND version=? AND release=?""", pkgtup)
+        for sql_pkgtupid, sql_checksum in cur:
+            if checksum is None and sql_checksum is None:
+                return sql_pkgtupid
+            if checksum is None:
+                continue
+            if sql_checksum is None:
+                continue
+            if checksum == sql_checksum:
+                return sql_pkgtupid
+        
+        (n,a,e,v,r) = pkgtup
+        (n,a,e,v,r) = (to_unicode(n),to_unicode(a),
+                       to_unicode(e),to_unicode(v),to_unicode(r))
+        if checksum is not None:
+            res = executeSQL(cur,
+                             """INSERT INTO pkgtups
+                                (name, arch, epoch, version, release, checksum)
+                                VALUES (?, ?, ?, ?, ?, ?)""", (n,a,e,v,r,
+                                                               checksum))
+        else:
+            res = executeSQL(cur,
+                             """INSERT INTO pkgtups
+                                (name, arch, epoch, version, release)
+                                VALUES (?, ?, ?, ?, ?)""", (n,a,e,v,r))
+        return cur.lastrowid
+    def _apkg2pid(self, po):
+        csum = po.returnIdSum()
+        if csum is not None:
+            csum = "%s:%s" % (str(csum[0]), str(csum[1]))
+        return self._pkgtup2pid(po.pkgtup, csum)
+    def _ipkg2pid(self, po):
+        csum = None
+        yumdb = po.yumdb_info
+        if 'checksum_type' in yumdb and 'checksum_type' in yumdb:
+            csum = "%s:%s" % (yumdb.checksum_type, yumdb.checksum_data)
+        return self._pkgtup2pid(po.pkgtup, csum)
+    def pkg2pid(self, po):
+        if isinstance(po, YumInstalledPackage):
+            return self._ipkg2pid(po)
+        if isinstance(po, YumAvailablePackage):
+            return self._apkg2pid(po)
+        return self._pkgtup2pid(po.pkgtup, None)
+
+    @staticmethod
+    def txmbr2state(txmbr):
+        state = None
+        if txmbr.output_state in (TS_INSTALL, TS_TRUEINSTALL):
+            if hasattr(txmbr, 'reinstall'):
+                state = 'Reinstall'
+            elif txmbr.downgrades:
+                state = 'Downgrade'
+        if txmbr.output_state == TS_ERASE:
+            if txmbr.downgraded_by:
+                state = 'Downgraded'
+        if state is None:
+            state = _stcode2sttxt.get(txmbr.output_state)
+        return state
+
+    def trans_with_pid(self, pid):
+        cur = self._get_cursor()
+        res = executeSQL(cur,
+                         """INSERT INTO trans_with_pkgs
+                         (tid, pkgtupid)
+                         VALUES (?, ?)""", (self._tid, pid))
+        return cur.lastrowid
+
+    def trans_data_pid_beg(self, pid, state):
+        assert state is not None
+        if not hasattr(self, '_tid') or state is None:
+            return # Not configured to run
+        cur = self._get_cursor()
+        res = executeSQL(cur,
+                         """INSERT INTO trans_data_pkgs
+                         (tid, pkgtupid, state)
+                         VALUES (?, ?, ?)""", (self._tid, pid, state))
+        return cur.lastrowid
+    def trans_data_pid_end(self, pid, state):
+        # State can be none here, Eg. TS_FAILED from rpmtrans
+        if not hasattr(self, '_tid') or state is None:
+            return # Not configured to run
+
+        cur = self._get_cursor()
+        res = executeSQL(cur,
+                         """UPDATE trans_data_pkgs SET done = ?
+                         WHERE tid = ? AND pkgtupid = ? AND state = ?
+                         """, ('TRUE', self._tid, pid, state))
+        self._commit()
+        return cur.lastrowid
+
+    def beg(self, rpmdb_version, using_pkgs, txmbrs):
+        cur = self._get_cursor()
+        res = executeSQL(cur,
+                         """INSERT INTO trans_beg
+                            (timestamp, rpmdb_version, loginuid)
+                            VALUES (?, ?, ?)""", (int(time.time()),
+                                                    str(rpmdb_version),
+                                                    yum.misc.getloginuid()))
+        self._tid = cur.lastrowid
+
+        for pkg in using_pkgs:
+            pid = self._ipkg2pid(pkg)
+            self.trans_with_pid(pid)
+        
+        for txmbr in txmbrs:
+            pid   = self.pkg2pid(txmbr.po)
+            state = self.txmbr2state(txmbr)
+            self.trans_data_pid_beg(pid, state)
+        
+        self._commit()
+
+    def _log_errors(self, errors):
+        cur = self._get_cursor()
+        for error in errors:
+            error = to_unicode(error)
+            executeSQL(cur,
+                       """INSERT INTO trans_error
+                          (tid, msg) VALUES (?, ?)""", (self._tid, error))
+        self._commit()
+
+    def log_scriptlet_output(self, data, msg):
+        """ Note that data can be either a real pkg. ... or not. """
+        if msg is None or not hasattr(self, '_tid'):
+            return # Not configured to run
+
+        cur = self._get_cursor()
+        for error in msg.split('\n'):
+            error = to_unicode(error)
+            executeSQL(cur,
+                       """INSERT INTO trans_script_stdout
+                          (tid, line) VALUES (?, ?)""", (self._tid, error))
+        self._commit()
+
+    def end(self, rpmdb_version, return_code, errors=None):
+        assert return_code or not errors
+        cur = self._get_cursor()
+        res = executeSQL(cur,
+                         """INSERT INTO trans_end
+                            (tid, timestamp, rpmdb_version, return_code)
+                            VALUES (?, ?, ?, ?)""", (self._tid,int(time.time()),
+                                                     str(rpmdb_version),
+                                                     return_code))
+        self._commit()
+        if not return_code:
+            #  Simple hack, if the transaction finished. Note that this
+            # catches the erase cases (as we still don't get pkgtups for them),
+            # Eg. Updated elements.
+            executeSQL(cur,
+                       """UPDATE trans_data_pkgs SET done = ?
+                          WHERE tid = ?""", ('TRUE', self._tid,))
+            self._commit()
+        if errors is not None:
+            self._log_errors(errors)
+        del self._tid
+
+    def _old_with_pkgs(self, tid):
+        cur = self._get_cursor()
+        executeSQL(cur,
+                   """SELECT name, arch, epoch, version, release, checksum
+                      FROM trans_with_pkgs JOIN pkgtups USING(pkgtupid)
+                      WHERE tid = ?
+                      ORDER BY name ASC, epoch ASC""", (tid,))
+        ret = []
+        for row in cur:
+            obj = YumHistoryPackage(row[0],row[1],row[2],row[3],row[4], row[5])
+            ret.append(obj)
+        return ret
+    def _old_data_pkgs(self, tid):
+        cur = self._get_cursor()
+        executeSQL(cur,
+                   """SELECT name, arch, epoch, version, release,
+                             checksum, done, state
+                      FROM trans_data_pkgs JOIN pkgtups USING(pkgtupid)
+                      WHERE tid = ?
+                      ORDER BY name ASC, epoch ASC, state DESC""", (tid,))
+        ret = []
+        for row in cur:
+            obj = YumHistoryPackage(row[0],row[1],row[2],row[3],row[4], row[5])
+            obj.done     = row[6] == 'TRUE'
+            obj.state    = row[7]
+            obj.state_installed = None
+            if _sttxt2stcode[obj.state] in TS_INSTALL_STATES:
+                obj.state_installed = True
+            if _sttxt2stcode[obj.state] in TS_REMOVE_STATES:
+                obj.state_installed = False
+            ret.append(obj)
+        return ret
+
+    def old(self, tids=[], limit=None, complete_transactions_only=False):
+        """ Return a list of the last transactions, note that this includes
+            partial transactions (ones without an end transaction). """
+        cur = self._get_cursor()
+        sql =  """SELECT tid,
+                         trans_beg.timestamp AS beg_ts,
+                         trans_beg.rpmdb_version AS beg_rv,
+                         trans_end.timestamp AS end_ts,
+                         trans_end.rpmdb_version AS end_rv,
+                         loginuid, return_code
+                  FROM trans_beg JOIN trans_end USING(tid)"""
+        # NOTE: sqlite doesn't do OUTER JOINs ... *sigh*. So we have to do it
+        #       ourself.
+        if not complete_transactions_only:
+            sql =  """SELECT tid,
+                             trans_beg.timestamp AS beg_ts,
+                             trans_beg.rpmdb_version AS beg_rv,
+                             NULL, NULL,
+                             loginuid, NULL
+                      FROM trans_beg"""
+        params = None
+        if tids and len(tids) <= yum.constants.PATTERNS_INDEXED_MAX:
+            params = tids = list(set(tids))
+            sql += " WHERE tid IN (%s)" % ", ".join(['?'] * len(tids))
+        sql += " ORDER BY beg_ts DESC, tid ASC"
+        if limit is not None:
+            sql += " LIMIT " + str(limit)
+        executeSQL(cur, sql, params)
+        ret = []
+        tid2obj = {}
+        for row in cur:
+            if tids and len(tids) > yum.constants.PATTERNS_INDEXED_MAX:
+                if row[0] not in tids:
+                    continue
+            obj = YumHistoryTransaction(self, row)
+            tid2obj[row[0]] = obj
+            ret.append(obj)
+
+        sql =  """SELECT tid,
+                         trans_end.timestamp AS end_ts,
+                         trans_end.rpmdb_version AS end_rv,
+                         return_code
+                  FROM trans_end"""
+        params = tid2obj.keys()
+        if len(params) > yum.constants.PATTERNS_INDEXED_MAX:
+            executeSQL(cur, sql)
+        else:
+            sql += " WHERE tid IN (%s)" % ", ".join(['?'] * len(params))
+            executeSQL(cur, sql, params)
+        for row in cur:
+            if row[0] not in tid2obj:
+                continue
+            tid2obj[row[0]].end_timestamp    = row[1]
+            tid2obj[row[0]].end_rpmdbversion = row[2]
+            tid2obj[row[0]].return_code      = row[3]
+
+        # Go through backwards, and see if the rpmdb versions match
+        las = None
+        for obj in reversed(ret):
+            cur_rv = obj.beg_rpmdbversion
+            las_rv = None
+            if las is not None:
+                las_rv = las.end_rpmdbversion
+            if las_rv is None or cur_rv is None or (las.tid + 1) != obj.tid:
+                pass
+            elif las_rv != cur_rv:
+                obj.altered_lt_rpmdb = True
+                las.altered_gt_rpmdb = True
+            else:
+                obj.altered_lt_rpmdb = False
+                las.altered_gt_rpmdb = False
+            las = obj
+
+        return ret
+
+    def last(self):
+        """ This is the last full transaction. So any imcomplete transactions
+            do not count. """
+        cur = self._get_cursor()
+        sql =  """SELECT tid,
+                         trans_beg.timestamp AS beg_ts,
+                         trans_beg.rpmdb_version AS beg_rv,
+                         trans_end.timestamp AS end_ts,
+                         trans_end.rpmdb_version AS end_rv,
+                         loginuid, return_code
+                  FROM trans_beg JOIN trans_end USING(tid)
+                  ORDER BY beg_ts DESC, tid ASC
+                  LIMIT 1"""
+        executeSQL(cur, sql)
+        for row in cur:
+            return YumHistoryTransaction(self, row)
+        return None
+
+    def _yieldSQLDataList(self, patterns, fields, ignore_case):
+        """Yields all the package data for the given params. """
+
+        cur = self._get_cursor()
+        qsql = _FULL_PARSE_QUERY_BEG
+
+        pat_sqls = []
+        pat_data = []
+        for (pattern, rest) in patterns:
+            for field in fields:
+                if ignore_case:
+                    pat_sqls.append("%s LIKE ?%s" % (field, rest))
+                else:
+                    pat_sqls.append("%s %s ?" % (field, rest))
+                pat_data.append(pattern)
+        assert pat_sqls
+
+        qsql += " OR ".join(pat_sqls)
+        executeSQL(cur, qsql, pat_data)
+        for x in cur:
+            yield x
+
+    def search(self, patterns, ignore_case=True):
+        """ Search for history transactions which contain specified
+            packages al. la. "yum list". Returns transaction ids. """
+        # Search packages ... kind of sucks that it's search not list, pkglist?
+
+        data = _setupHistorySearchSQL(patterns, ignore_case)
+        (need_full, patterns, fields, names) = data
+
+        ret = []
+        pkgtupids = set()
+        for row in self._yieldSQLDataList(patterns, fields, ignore_case):
+            pkgtupids.add(row[0])
+
+        cur = self._get_cursor()
+        sql =  """SELECT tid FROM trans_data_pkgs WHERE pkgtupid IN """
+        sql += "(%s)" % ",".join(['?'] * len(pkgtupids))
+        params = list(pkgtupids)
+        tids = set()
+        if len(params) > yum.constants.PATTERNS_INDEXED_MAX:
+            executeSQL(cur, """SELECT tid FROM trans_data_pkgs""")
+            for row in cur:
+                if row[0] in params:
+                    tids.add(row[0])
+            return tids
+        if not params:
+            return tids
+        executeSQL(cur, sql, params)
+        for row in cur:
+            tids.add(row[0])
+        return tids
+
+    def _create_db_file(self):
+        """ Create a new history DB file, populating tables etc. """
+
+        _db_file = '%s/%s-%s.%s' % (self.conf.db_path,
+                                    'history',
+                                    time.strftime('%Y-%m-%d'),
+                                    'sqlite')
+        if self._db_file == _db_file:
+            os.rename(_db_file, _db_file + '.old')
+        self._db_file = _db_file
+                
+        cur = self._get_cursor()
+        ops = ['''\
+ CREATE TABLE trans_beg (
+     tid INTEGER PRIMARY KEY,
+     timestamp INTEGER NOT NULL, rpmdb_version TEXT NOT NULL,
+     loginuid INTEGER);
+''', '''\
+ CREATE TABLE trans_end (
+     tid INTEGER PRIMARY KEY REFERENCES trans_beg,
+     timestamp INTEGER NOT NULL, rpmdb_version TEXT NOT NULL,
+     return_code INTEGER NOT NULL);
+''', '''\
+\
+ CREATE TABLE trans_with_pkgs (
+     tid INTEGER NOT NULL REFERENCES trans_beg,
+     pkgtupid INTEGER NOT NULL REFERENCES pkgtups);
+''', '''\
+\
+ CREATE TABLE trans_error (
+     mid INTEGER PRIMARY KEY,
+     tid INTEGER NOT NULL REFERENCES trans_beg,
+     msg TEXT NOT NULL);
+''', '''\
+ CREATE TABLE trans_script_stdout (
+     lid INTEGER PRIMARY KEY,
+     tid INTEGER NOT NULL REFERENCES trans_beg,
+     line TEXT NOT NULL);
+''', '''\
+\
+ CREATE TABLE trans_data_pkgs (
+     tid INTEGER NOT NULL REFERENCES trans_beg,
+     pkgtupid INTEGER NOT NULL REFERENCES pkgtups,
+     done BOOL NOT NULL DEFAULT FALSE, state TEXT NOT NULL);
+''', '''\
+\
+ CREATE TABLE pkgtups (
+     pkgtupid INTEGER PRIMARY KEY,     name TEXT NOT NULL, arch TEXT NOT NULL,
+     epoch TEXT NOT NULL, version TEXT NOT NULL, release TEXT NOT NULL,
+     checksum TEXT);
+''', '''\
+ CREATE INDEX i_pkgtup_naevr ON pkgtups (name, arch, epoch, version, release);
+''']
+        for op in ops:
+            cur.execute(op)
+        self._commit()
+
+# Pasted from sqlitesack
+_FULL_PARSE_QUERY_BEG = """
+SELECT pkgtupid,name,epoch,version,release,arch,
+  name || "." || arch AS sql_nameArch,
+  name || "-" || version || "-" || release || "." || arch AS sql_nameVerRelArch,
+  name || "-" || version AS sql_nameVer,
+  name || "-" || version || "-" || release AS sql_nameVerRel,
+  epoch || ":" || name || "-" || version || "-" || release || "." || arch AS sql_envra,
+  name || "-" || epoch || ":" || version || "-" || release || "." || arch AS sql_nevra
+  FROM pkgtups
+  WHERE 
+"""
diff --git a/yum/misc.py b/yum/misc.py
index a8f7954..16ffca0 100644
--- a/yum/misc.py
+++ b/yum/misc.py
@@ -76,35 +76,38 @@ def unshare_data():
 _re_compiled_glob_match = None
 def re_glob(s):
     """ Tests if a string is a shell wildcard. """
-    # re.match('.*[\*\?\[\]].*', name)
     global _re_compiled_glob_match
     if _re_compiled_glob_match is None:
         _re_compiled_glob_match = re.compile('.*([*?]|\[.+\])')
     return _re_compiled_glob_match.match(s)
 
-_re_compiled_pri_fnames_match = None
+_re_compiled_filename_match = None
+def re_filename(s):
+    """ Tests if a string could be a filename. We still get negated character
+        classes wrong (are they supported), and ranges in character classes. """
+    global _re_compiled_filename_match
+    if _re_compiled_filename_match is None:
+        _re_compiled_filename_match = re.compile('^(/|[*?]|\[[^]]*/[^]]*\])')
+    return _re_compiled_filename_match.match(s)
+
 def re_primary_filename(filename):
-    global _re_compiled_pri_fnames_match
-    if _re_compiled_pri_fnames_match is None:
-        one   = re.compile('.*bin\/.*')
-        two   = re.compile('^\/etc\/.*')
-        three = re.compile('^\/usr\/lib\/sendmail$')
-        _re_compiled_pri_fnames_match = (one, two, three)
-    for rec in _re_compiled_pri_fnames_match:
-        if rec.match(filename):
-            return True
+    """ Tests if a filename string, can be matched against just primary.
+        Note that this can produce false negatives (but not false
+        positives). """
+    if 'bin/' in filename:
+        return True
+    if filename.startswith('/etc/'):
+        return True
+    if filename == '/usr/lib/sendmail':
+        return True
     return False
 
-_re_compiled_pri_dnames_match = None
 def re_primary_dirname(dirname):
-    global _re_compiled_pri_dnames_match
-    if _re_compiled_pri_dnames_match is None:
-        one   = re.compile('.*bin\/.*')
-        two   = re.compile('^\/etc\/.*')
-        _re_compiled_pri_dnames_match = (one, two)
-    for rec in _re_compiled_pri_dnames_match:
-        if rec.match(dirname):
-            return True
+    """ Tests if a dirname string, can be matched against just primary. """
+    if 'bin/' in dirname:
+        return True
+    if dirname.startswith('/etc/'):
+        return True
     return False
 
 _re_compiled_full_match = None
@@ -290,7 +293,8 @@ def checksum(sumtype, file, CHUNK=2**16, datasize=None):
 
         data = Checksums([sumtype])
         while data.read(fo, CHUNK):
-            pass
+            if datasize is not None and len(data) > datasize:
+                break
 
         if type(file) is types.StringType:
             fo.close()
@@ -298,7 +302,7 @@ def checksum(sumtype, file, CHUNK=2**16, datasize=None):
             
         # This screws up the length, but that shouldn't matter. We only care
         # if this checksum == what we expect.
-        if datasize is not None and datasize > len(data):
+        if datasize is not None and datasize != len(data):
             return '!%u!%s' % (datasize, data.hexdigest(sumtype))
 
         return data.hexdigest(sumtype)
@@ -797,6 +801,21 @@ def unlink_f(filename):
         if e.errno != errno.ENOENT:
             raise
 
+def getloginuid():
+    """ Get the audit-uid/login-uid, if available. None is returned if there
+        was a problem. Note that no caching is done here. """
+    #  We might normally call audit.audit_getloginuid(), except that requires
+    # importing all of the audit module. And it doesn't work anyway: BZ 518721
+    try:
+        fo = open("/proc/self/loginuid")
+    except IOError:
+        return None
+    data = fo.read()
+    try:
+        return int(data)
+    except ValueError:
+        return None
+
 # ---------- i18n ----------
 import locale
 import sys
diff --git a/yum/packageSack.py b/yum/packageSack.py
index 3716410..45e4e2d 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -35,6 +35,8 @@ class PackageSackVersion:
 
     def __eq__(self, other):
         if other is None: return False
+        if type(other) in (type(''), type(u'')):
+            return str(self) == other
         if self._num != other._num: return False
         if self._chksum.digest() != other._chksum.digest(): return False
         return True
@@ -182,23 +184,42 @@ class PackageSackBase(object):
             then it's still not a huge wart. """
         raise NotImplementedError()
 
-    def simpleVersion(self):
+    def simpleVersion(self, main_only=False, groups={}):
         """ Return a simple version for all available packages. """
+        def _up_revs(arepos, repoid, rev, pkg, csum):
+            arevs = arepos.setdefault(repoid, {})
+            rpsv = arevs.setdefault(None, PackageSackVersion())
+            rpsv.update(pkg, csum)
+            if rev is not None:
+                rpsv = arevs.setdefault(rev, PackageSackVersion())
+                rpsv.update(pkg, csum)
+
         main = PackageSackVersion()
         arepos = {}
+        main_grps = {}
+        arepos_grps = {}
         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)
+            for group in groups:
+                if pkg.name in groups[group]:
+                    if group not in main_grps:
+                        main_grps[group] = PackageSackVersion()
+                        arepos_grps[group] = {}
+                    main_grps[group].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)
+            if main_only:
+                continue
+
+            rev = pkg.repo.repoXML.revision
+            _up_revs(arepos, pkg.repoid, rev, pkg, csum)
+            for group in groups:
+                if pkg.name in groups[group]:
+                    _up_revs(arepos_grps[group], pkg.repoid, rev, pkg, csum)
 
+        if groups:
+            return [main, arepos, main_grps, arepos_grps]
         return [main, arepos]
 
     def returnNewestByNameArch(self, naTup=None,
diff --git a/yum/packages.py b/yum/packages.py
index 9a56fc4..7bbb61d 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -617,7 +617,10 @@ class YumAvailablePackage(PackageObject, RpmBase):
         # ignoring "bad" chars.
         val = _nf2ascii(val)
         # Hacky way to get rid of version numbers...
-        self._committer_ret = re.sub("""> .*""", '>', val)
+        ix = val.find('> ')
+        if ix != -1:
+            val = val[0:ix+1]
+        self._committer_ret = val
         return self._committer_ret
 
     committer  = property(_committer)
diff --git a/yum/plugins.py b/yum/plugins.py
index 27b1aa5..c0e510f 100644
--- a/yum/plugins.py
+++ b/yum/plugins.py
@@ -34,7 +34,7 @@ from weakref import proxy as weakref
 
 from yum import _
 
-from yum.i18n import utf8_width
+from i18n import utf8_width
 
 # TODO: expose rpm package sack objects to plugins (once finished)
 # TODO: allow plugins to use the existing config stuff to define options for
@@ -457,6 +457,10 @@ class PluginConduit:
         '''
         return config.getOption(self._conf, section, opt, config.BoolOption(default))
 
+    def registerPackageName(self, name):
+        self._base.run_with_package_names.add(name)
+
+
 class ConfigPluginConduit(PluginConduit):
 
     def registerOpt(self, name, valuetype, where, default):
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index fbeb9b3..74dd69d 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -31,7 +31,7 @@ from packageSack import PackageSackBase, PackageSackVersion
 import fnmatch
 import re
 
-from yum.i18n import to_unicode
+from i18n import to_unicode
 import constants
 
 class RPMInstalledPackage(YumInstalledPackage):
@@ -339,10 +339,20 @@ class RPMDBPackageSack(PackageSackBase):
             pkgobjlist = pkgobjlist[0] + pkgobjlist[1]
         return pkgobjlist
 
-    def simpleVersion(self):
+    def simpleVersion(self, main_only=False, groups={}):
         """ Return a simple version for all installed packages. """
+        def _up_revs(irepos, repoid, rev, pkg, csum):
+            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)
+
         main = PackageSackVersion()
         irepos = {}
+        main_grps = {}
+        irepos_grps = {}
         for pkg in sorted(self.returnPackages()):
             ydbi = pkg.yumdb_info
             csum = None
@@ -350,19 +360,30 @@ class RPMDBPackageSack(PackageSackBase):
                 csum = (ydbi.checksum_type, ydbi.checksum_data)
             main.update(pkg, csum)
 
+            for group in groups:
+                if pkg.name in groups[group]:
+                    if group not in main_grps:
+                        main_grps[group] = PackageSackVersion()
+                        irepos_grps[group] = {}
+                    main_grps[group].update(pkg, csum)
+
+            if main_only:
+                continue
+
             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)
 
+            _up_revs(irepos, repoid, rev, pkg, csum)
+            for group in groups:
+                if pkg.name in groups[group]:
+                    _up_revs(irepos_grps[group], repoid, rev, pkg, csum)
+
+        if groups:
+            return [main, irepos, main_grps, irepos_grps]
         return [main, irepos]
 
     @staticmethod
diff --git a/yum/rpmtrans.py b/yum/rpmtrans.py
index 77b06a2..ed52df0 100644
--- a/yum/rpmtrans.py
+++ b/yum/rpmtrans.py
@@ -23,7 +23,7 @@ import time
 import logging
 import types
 import sys
-from yum.constants import *
+from constants import *
 from yum import _
 import misc
 
@@ -230,6 +230,11 @@ class RPMTransaction:
         except IOError:
             pass
 
+    def _scriptout(self, data):
+        msgs = self._scriptOutput()
+        self.display.scriptout(data, msgs)
+        self.base.history.log_scriptlet_output(data, msgs)
+
     def __del__(self):
         self._shutdownOutputLogging()
         
@@ -339,7 +344,7 @@ class RPMTransaction:
         # we hand back the right path to those 'outside' of the chroot() calls
         # but we're using the right path inside.
         if self.base.conf.installroot != '/':
-            tsfn = tsfn.replace(self.base.conf.installroot,'')
+            tsfn = tsfn.replace(os.path.normpath(self.base.conf.installroot),'')
         try:
             if not os.path.exists(os.path.dirname(tsfn)):
                 os.makedirs(os.path.dirname(tsfn)) # make the dir,
@@ -439,10 +444,14 @@ class RPMTransaction:
                 txmbrs = self.base.tsInfo.getMembers(pkgtup=pkgtup)
                 for txmbr in txmbrs:
                     self.display.filelog(txmbr.po, txmbr.output_state)
-                    self.display.scriptout(txmbr.po, self._scriptOutput())
+                    self._scriptout(txmbr.po)
+                    # NOTE: We only do this for install, not erase atm.
+                    #       because we don't get pkgtup data for erase (this 
+                    #       includes "Updated" pkgs).
+                    pid   = self.base.history.pkg2pid(txmbr.po)
+                    state = self.base.history.txmbr2state(txmbr)
+                    self.base.history.trans_data_pid_end(pid, state)
                     self.ts_done(txmbr.po, txmbr.output_state)
-                
-                
     
     def _instProgress(self, bytes, total, h):
         if h is not None:
@@ -477,7 +486,7 @@ class RPMTransaction:
         
         self.display.event(h, action, 100, 100, self.complete_actions,
                             self.total_actions)
-        self.display.scriptout(h, self._scriptOutput())
+        self._scriptout(h)
         
         if self.test: return # and we're done
         self.ts_done(h, action)
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index b6c14c5..89744ff 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -33,8 +33,8 @@ import rpmUtils.miscutils
 import sqlutils
 import constants
 import operator
-from yum.misc import seq_max_split
-from yum.i18n import to_utf8, to_unicode
+from misc import seq_max_split
+from i18n import to_utf8, to_unicode
 import sys
 import re
 
@@ -911,6 +911,20 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             dirname_check = "dirname GLOB ? and filenames LIKE ? %s and " % esc
             sql_params.append(dirname)
             sql_params.append('%' + pattern + '%')
+        elif filename == '*':
+            # We only care about matching on dirname...
+            for (rep,cache) in self.filelistsdb.items():
+                if rep in self._all_excludes:
+                    continue
+
+                cur = cache.cursor()
+                sql_params.append(dirname)
+                executeSQL(cur, """SELECT pkgKey FROM filelist
+                                   WHERE dirname %s ?""" % (querytype,),
+                           sql_params)
+                self._sql_pkgKey2po(rep, cur, pkgs)
+
+            return misc.unique(pkgs)
 
         for (rep,cache) in self.filelistsdb.items():
             if rep in self._all_excludes:
@@ -929,15 +943,19 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             if file_glob:
                 name_re = re.compile(fnmatch.translate(name))
             def filelist_globber(sql_dirname, sql_filenames):
+                # Note: Can't return bool, because sqlite doesn't like it in
+                #       weird ways. Test:
+                #                         install '*bin/autoheader'
+                #                         provides /lib/security/pam_loginuid.so
                 files = sql_filenames.split('/')
                 if not file_glob:
-                    return filename in files
+                    return int(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
+                        return 1
+                return 0
 
             cache.create_function("filelist_globber", 2, filelist_globber)
             # for all the ones where filenames is multiple files, 
@@ -1277,7 +1295,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         # If it's not a provides or a filename, we are done
         if prcotype != "provides":
             return results
-        if name[0] != '/' and (not glob or not misc.re_glob(name[0])):
+        if not misc.re_filename(name):
             return results
 
         # If it is a filename, search the primary.xml file info
diff --git a/yum/sqlutils.py b/yum/sqlutils.py
index fda380e..3a93146 100644
--- a/yum/sqlutils.py
+++ b/yum/sqlutils.py
@@ -121,6 +121,11 @@ def QmarkToPyformat(query, params):
         if token.endswith("?"):
             output.append(token[:-1] + "%%(param%d)s" % count)
             count+=1
+        elif token.endswith("?,") or token.endswith("?)"):
+            ntoken = token[:-2] + "%%(param%d)s" % count
+            ntoken += token[-1]
+            output.append(ntoken)
+            count+=1
         else:
             output.append(token)
 
diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py
index be772e5..bd7bf80 100644
--- a/yum/transactioninfo.py
+++ b/yum/transactioninfo.py
@@ -271,6 +271,7 @@ class TransactionData:
                     
             elif txmbr.output_state in (TS_INSTALL, TS_TRUEINSTALL):
                 if include_reinstall and self.rpmdb.contains(po=txmbr.po):
+                    txmbr.reinstall = True
                     self.reinstalled.append(txmbr)
                     continue
 
@@ -319,6 +320,8 @@ class TransactionData:
         self.depremoved.sort()
         self.instgroups.sort()
         self.removedgroups.sort()
+        self.reinstalled.sort()
+        self.downgraded.sort()
         self.failed.sort()
 
     
diff --git a/yum/update_md.py b/yum/update_md.py
index b3a120e..34179ea 100644
--- a/yum/update_md.py
+++ b/yum/update_md.py
@@ -24,10 +24,10 @@ Update metadata (updateinfo.xml) parsing.
 import sys
 import gzip
 
-from yum.i18n import utf8_text_wrap, to_utf8
-from yum.yumRepo import YumRepository
-from yum.packages import FakeRepository
-from yum.misc import to_xml
+from i18n import utf8_text_wrap, to_utf8
+from yumRepo import YumRepository
+from packages import FakeRepository
+from misc import to_xml
 import Errors
 
 import rpmUtils.miscutils
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index fac218a..2bc7476 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -32,9 +32,9 @@ from repos import Repository
 import parser
 import sqlitecachec
 import sqlitesack
-from yum import config
-from yum import misc
-from yum import comps
+import config
+import misc
+import comps
 from constants import *
 import metalink
 
@@ -233,6 +233,7 @@ class YumRepository(Repository, config.RepoConf):
         Repository.__init__(self, repoid)
 
         self.repofile = None
+        self.mirrorurls = []
         self._urls = []
         self.enablegroups = 0
         self.groupsfilename = 'yumgroups.xml' # something some freaks might
@@ -712,7 +713,8 @@ class YumRepository(Repository, config.RepoConf):
                              fdel=lambda self: setattr(self, "_metalink", None))
 
     def _getFile(self, url=None, relative=None, local=None, start=None, end=None,
-            copy_local=None, checkfunc=None, text=None, reget='simple', cache=True):
+            copy_local=None, checkfunc=None, text=None, reget='simple', 
+            cache=True, size=None):
         """retrieve file from the mirrorgroup for the repo
            relative to local, optionally get range from
            start to end, also optionally retrieve from a specific baseurl"""
@@ -784,7 +786,8 @@ class YumRepository(Repository, config.RepoConf):
                             ssl_verify_host=self.sslverify,
                             ssl_ca_cert=self.sslcacert,
                             ssl_cert=self.sslclientcert,
-                            ssl_key=self.sslclientkey                            
+                            ssl_key=self.sslclientkey,
+                            size=size
                             )
 
             ug.opts.user_agent = default_grabber.opts.user_agent
@@ -816,6 +819,7 @@ class YumRepository(Repository, config.RepoConf):
                                            reget = reget,
                                            checkfunc=checkfunc,
                                            http_headers=headers,
+                                           size=size
                                            )
             except URLGrabError, e:
                 errstr = "failure: %s from %s: %s" % (relative, self.id, e)
@@ -827,7 +831,7 @@ class YumRepository(Repository, config.RepoConf):
         return result
     __get = _getFile
 
-    def getPackage(self, package, checkfunc = None, text = None, cache = True):
+    def getPackage(self, package, checkfunc=None, text=None, cache=True):
         remote = package.relativepath
         local = package.localPkg()
         basepath = package.basepath
@@ -842,7 +846,8 @@ class YumRepository(Repository, config.RepoConf):
                         local=local,
                         checkfunc=checkfunc,
                         text=text,
-                        cache=cache
+                        cache=cache,
+                        size=package.size,
                         )
 
     def getHeader(self, package, checkfunc = None, reget = 'simple',
@@ -852,6 +857,7 @@ class YumRepository(Repository, config.RepoConf):
         local =  package.localHdr()
         start = package.hdrstart
         end = package.hdrend
+        size = end-start
         basepath = package.basepath
         # yes, I know, don't ask
         if not os.path.exists(self.hdrdir):
@@ -859,7 +865,7 @@ class YumRepository(Repository, config.RepoConf):
 
         return self._getFile(url=basepath, relative=remote, local=local, start=start,
                         reget=None, end=end, checkfunc=checkfunc, copy_local=1,
-                        cache=cache,
+                        cache=cache, size=size,
                         )
 
     def metadataCurrent(self):
@@ -988,7 +994,8 @@ class YumRepository(Repository, config.RepoConf):
                                    text=text,
                                    reget=None,
                                    checkfunc=checkfunc,
-                                   cache=self.http_caching == 'all')
+                                   cache=self.http_caching == 'all',
+                                   size=102400) # setting max size as 100K
 
         except URLGrabError, e:
             misc.unlink_f(tfname)
@@ -1034,6 +1041,8 @@ class YumRepository(Repository, config.RepoConf):
             old_local = local + '.old.tmp' # locked, so this is ok
             shutil.copy2(local, old_local)
             xml = self._parseRepoXML(old_local, True)
+            if xml is None:
+                return None
             self._oldRepoMDData = {'old_repo_XML' : xml, 'local' : local,
                                    'old_local' : old_local, 'new_MD_files' : []}
             return xml
@@ -1419,7 +1428,8 @@ class YumRepository(Repository, config.RepoConf):
                                        text='%s/signature' % self.id,
                                        reget=None,
                                        checkfunc=None,
-                                       cache=self.http_caching == 'all')
+                                       cache=self.http_caching == 'all',
+                                       size=102400)
             except URLGrabError, e:
                 raise URLGrabError(-1, 'Error finding signature for repomd.xml for %s: %s' % (self, e))
 
@@ -1533,9 +1543,14 @@ class YumRepository(Repository, config.RepoConf):
         try:
             checkfunc = (self.checkMD, (mdtype,), {})
             text = "%s/%s" % (self.id, mdtype)
-            local = self._getFile(relative=remote, local=local, copy_local=1,
-                             checkfunc=checkfunc, reget=None, text=text,
-                             cache=self.http_caching == 'all')
+            local = self._getFile(relative=remote,
+                                  local=local, 
+                                  copy_local=1,
+                                  checkfunc=checkfunc, 
+                                  reget=None, 
+                                  text=text,
+                                  cache=self.http_caching == 'all',
+                                  size=thisdata.size)
         except (Errors.NoMoreMirrorsRepoError, Errors.RepoError):
             if retrieve_can_fail:
                 return None
@@ -1605,8 +1620,8 @@ class YumRepository(Repository, config.RepoConf):
             for line in content:
                 if re.match('^\s*\#.*', line) or re.match('^\s*$', line):
                     continue
-                mirror = re.sub('\n$', '', line) # no more trailing \n's
-                (mirror, count) = re.subn('\$ARCH', '$BASEARCH', mirror)
+                mirror = line.rstrip() # no more trailing \n's
+                mirror = mirror.replace('$ARCH', '$BASEARCH')
                 returnlist.append(mirror)
 
         return (returnlist, content)
@@ -1807,8 +1822,8 @@ def getMirrorList(mirrorlist, pdict = None):
         for line in content:
             if re.match('^\s*\#.*', line) or re.match('^\s*$', line):
                 continue
-            mirror = re.sub('\n$', '', line) # no more trailing \n's
-            (mirror, count) = re.subn('\$ARCH', '$BASEARCH', mirror)
+            mirror = line.rstrip() # no more trailing \n's
+            mirror = mirror.replace('$ARCH', '$BASEARCH')
             returnlist.append(mirror)
 
     return returnlist
diff --git a/yumcommands.py b/yumcommands.py
index bd73d0c..1451a36 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -30,6 +30,8 @@ import fnmatch
 import time
 from yum.i18n import utf8_width, utf8_width_fill, to_unicode
 
+import yum.config
+
 def checkRootUID(base):
     """
     Verify that the program is being run by the root user.
@@ -575,7 +577,8 @@ class CheckUpdateCommand(YumCommand):
         result = 0
         try:
             ypl = base.returnPkgLists(extcmds)
-            if base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3):
+            if (base.conf.obsoletes or
+                base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)):
                 typl = base.returnPkgLists(['obsoletes'])
                 ypl.obsoletes = typl.obsoletes
                 ypl.obsoletesTuples = typl.obsoletesTuples
@@ -778,13 +781,17 @@ class RepoListCommand(YumCommand):
             arg = 'enabled'
         extcmds = map(lambda x: x.lower(), extcmds)
 
-        # Setup so len(repo.sack) is correct
-        base.repos.populateSack()
+        verbose = base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)
+        try:
+            # Setup so len(repo.sack) is correct
+            base.repos.populateSack()
+        except yum.Errors.RepoError:
+            if verbose:
+                raise
 
         repos = base.repos.repos.values()
         repos.sort()
         enabled_repos = base.repos.listEnabled()
-        verbose = base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)
         if arg == 'all':
             ehibeg = base.term.FG_COLOR['green'] + base.term.MODE['bold']
             dhibeg = base.term.FG_COLOR['red']
@@ -1061,7 +1068,7 @@ class DowngradeCommand(YumCommand):
 
     def needTs(self, base, basecmd, extcmds):
         return False
-        
+
 
 class VersionCommand(YumCommand):
     def getNames(self):
@@ -1092,25 +1099,80 @@ class VersionCommand(YumCommand):
                     cols.append(("    %s" % repoid, str(cur[None])))
                 cols.extend(ncols)
 
+        verbose = base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)
+        groups = {}
+        gconf = yum.config.readVersionGroupsConfig()
+        for group in gconf:
+            groups[group] = set(gconf[group].pkglist)
+            if gconf[group].run_with_packages:
+                groups[group].update(base.run_with_package_names)
+
+        if vcmd in ('grouplist'):
+            print _(" Yum version groups:")
+            for group in sorted(groups):
+                print "   ", group
+
+            return 0, ['version grouplist']
+
+        if vcmd in ('groupinfo'):
+            for group in groups:
+                if group not in extcmds[1:]:
+                    continue
+                print _(" Group   :"), group
+                print _(" Packages:")
+                if not verbose:
+                    for pkgname in sorted(groups[group]):
+                        print "   ", pkgname
+                else:
+                    data = {'envra' : {}, 'rid' : {}}
+                    pkg_names = groups[group]
+                    pkg_names2pkgs = base._group_names2aipkgs(pkg_names)
+                    base._calcDataPkgColumns(data, pkg_names, pkg_names2pkgs)
+                    data = [data['envra'], data['rid']]
+                    columns = base.calcColumns(data)
+                    columns = (-columns[0], -columns[1])
+                    base._displayPkgsFromNames(pkg_names, True, pkg_names2pkgs,
+                                               columns=columns)
+
+            return 0, ['version groupinfo']
+
         rel = base.yumvar['releasever']
         ba  = base.yumvar['basearch']
         cols = []
-        if vcmd in ('installed', 'all'):
+        if vcmd in ('installed', 'all', 'group-installed', 'group-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):
+                data = base.rpmdb.simpleVersion(not verbose, groups=groups)
+                lastdbv = base.history.last()
+                if lastdbv is not None:
+                    lastdbv = lastdbv.end_rpmdbversion
+                if lastdbv is not None and data[0] != lastdbv:
+                    errstring = _('Warning: RPMDB has been altered since the last yum transaction.')
+                    base.logger.warning(errstring)
+                if vcmd not in ('group-installed', 'group-all'):
+                    cols.append(("%s %s/%s" % (_("Installed:"), rel, ba),
+                                 str(data[0])))
                     _append_repos(cols, data[1])
+                if groups:
+                    for grp in sorted(data[2]):
+                        cols.append(("%s %s" % (_("Group-Installed:"), grp),
+                                     str(data[2][grp])))
+                        _append_repos(cols, data[3][grp])
             except yum.Errors.YumBaseError, e:
                 return 1, [str(e)]
-        if vcmd in ('available', 'all'):
+        if vcmd in ('available', 'all', 'group-available', 'group-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])
+                data = base.pkgSack.simpleVersion(not verbose, groups=groups)
+                if vcmd not in ('group-available', 'group-all'):
+                    cols.append(("%s %s/%s" % (_("Available:"), rel, ba),
+                                 str(data[0])))
+                    if verbose:
+                        _append_repos(cols, data[1])
+                if groups:
+                    for grp in sorted(data[2]):
+                        cols.append(("%s %s" % (_("Group-Available:"), grp),
+                                     str(data[2][grp])))
+                        if verbose:
+                            _append_repos(cols, data[3][grp])
             except yum.Errors.YumBaseError, e:
                 return 1, [str(e)]
 
@@ -1126,10 +1188,86 @@ class VersionCommand(YumCommand):
         for line in cols:
             print base.fmtColumns(zip(line, columns))
 
-        return 0, []
+        return 0, ['version']
 
     def needTs(self, base, basecmd, extcmds):
         vcmd = 'installed'
         if extcmds:
             vcmd = extcmds[0]
-        return vcmd in ('available', 'all')
+        verbose = base.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)
+        if vcmd == 'groupinfo' and verbose:
+            return True
+        return vcmd in ('available', 'all', 'group-available', 'group-all')
+
+
+class HistoryCommand(YumCommand):
+    def getNames(self):
+        return ['history']
+
+    def getUsage(self):
+        return "[info|list|summary|redo|undo|new]"
+
+    def getSummary(self):
+        return _("Display, or use, the transaction history")
+
+    def _hcmd_redo(self, base, extcmds):
+        old = base._history_get_transaction(extcmds)
+        if old is None:
+            return 1, ['Failed history redo']
+        tm = time.ctime(old.beg_timestamp)
+        print "Repeating transaction %u, from %s" % (old.tid, tm)
+        base.historyInfoCmdPkgsAltered(old)
+        if base.history_redo(old):
+            return 2, ["Repeating transaction %u" % (old.tid,)]
+
+    def _hcmd_undo(self, base, extcmds):
+        old = base._history_get_transaction(extcmds)
+        if old is None:
+            return 1, ['Failed history undo']
+        tm = time.ctime(old.beg_timestamp)
+        print "Undoing transaction %u, from %s" % (old.tid, tm)
+        base.historyInfoCmdPkgsAltered(old)
+        if base.history_undo(old):
+            return 2, ["Undoing transaction %u" % (old.tid,)]
+
+    def _hcmd_new(self, base, extcmds):
+        base.history._create_db_file()
+
+    def doCheck(self, base, basecmd, extcmds):
+        cmds = ('list', 'info', 'summary', 'repeat', 'redo', 'undo', 'new')
+        if extcmds and extcmds[0] not in cmds:
+            base.logger.critical(_('Invalid history sub-command, use: %s.'),
+                                 ", ".join(cmds))
+            raise cli.CliError
+        if extcmds and extcmds[0] in ('repeat', 'redo', 'undo', 'new'):
+            checkRootUID(base)
+            checkGPGKey(base)
+
+    def doCommand(self, base, basecmd, extcmds):
+        vcmd = 'list'
+        if extcmds:
+            vcmd = extcmds[0]
+
+        if False: pass
+        elif vcmd == 'list':
+            ret = base.historyListCmd(extcmds)
+        elif vcmd == 'info':
+            ret = base.historyInfoCmd(extcmds)
+        elif vcmd == 'summary':
+            ret = base.historySummaryCmd(extcmds)
+        elif vcmd == 'undo':
+            ret = self._hcmd_undo(base, extcmds)
+        elif vcmd in ('redo', 'repeat'):
+            ret = self._hcmd_redo(base, extcmds)
+        elif vcmd == 'new':
+            ret = self._hcmd_new(base, extcmds)
+
+        if ret is None:
+            return 0, ['history %s' % (vcmd,)]
+        return ret
+
+    def needTs(self, base, basecmd, extcmds):
+        vcmd = 'list'
+        if extcmds:
+            vcmd = extcmds[0]
+        return vcmd in ('repeat', 'redo', 'undo')
diff --git a/yummain.py b/yummain.py
index 964975b..b2a09cc 100755
--- a/yummain.py
+++ b/yummain.py
@@ -31,7 +31,7 @@ from yum import _
 from yum.i18n import to_unicode
 import yum.misc
 import cli
-
+from utils import suppress_keyboard_interrupt_message
 
 def main(args):
     """This does all the real work"""
@@ -307,12 +307,18 @@ def user_main(args, exit_code=False):
             errcode = cprof(main, args)
         if os.environ['YUM_PROF'] == 'hotshot':
             errcode = hotshot(main, args)
+    if 'YUM_PDB' in os.environ:
+        import pdb
+        pdb.run(main(args))
+
     if errcode is None:
         errcode = main(args)
     if exit_code:
         sys.exit(errcode)
     return errcode
 
+suppress_keyboard_interrupt_message()
+
 if __name__ == "__main__":
     try:
         user_main(sys.argv[1:], exit_code=True)