[yum/f14/master] head back to f14

Seth Vidal skvidal at fedoraproject.org
Mon Aug 9 19:20:45 UTC 2010


commit 92c6b4f4516c2f1356a2fb76150ca5160c5c3c77
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Mon Aug 9 15:18:30 2010 -0400

    head back to f14

 yum-HEAD.patch |27296 +-------------------------------------------------------
 yum.spec       |   10 +-
 2 files changed, 280 insertions(+), 27026 deletions(-)
---
diff --git a/yum-HEAD.patch b/yum-HEAD.patch
index 1849258..b1666fa 100644
--- a/yum-HEAD.patch
+++ b/yum-HEAD.patch
@@ -1,27063 +1,311 @@
-diff --git a/Makefile b/Makefile
-index d75b220..8065899 100644
---- a/Makefile
-+++ b/Makefile
-@@ -34,7 +34,7 @@ install:
- 	install -m 755 bin/yum-updatesd.py $(DESTDIR)/usr/sbin/yum-updatesd
- 
- 	mkdir -p $(DESTDIR)/var/cache/yum
--	mkdir -p $(DESTDIR)/var/lib/yum	
-+	mkdir -p $(DESTDIR)/var/lib/yum
- 
- 	for d in $(SUBDIRS); do make PYTHON=$(PYTHON) DESTDIR=`cd $(DESTDIR); pwd` -C $$d install; [ $$? = 0 ] || exit 1; done
- 
-diff --git a/cli.py b/cli.py
-index f5ed53d..9542b7a 100644
---- a/cli.py
-+++ b/cli.py
-@@ -100,6 +100,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
-         self.registerCommand(yumcommands.VersionCommand())
-         self.registerCommand(yumcommands.HistoryCommand())
-         self.registerCommand(yumcommands.CheckRpmdbCommand())
-+        self.registerCommand(yumcommands.DistroSyncCommand())
- 
-     def registerCommand(self, command):
-         for name in command.getNames():
-@@ -149,7 +150,34 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
-                 usage += "%s\n" % command.getNames()[0]
- 
-         return usage
--
-+    
-+    def _parseSetOpts(self, setopts):
-+        """parse the setopts list handed to us and saves the results as
-+           repo_setopts and main_setopts in the yumbase object"""
-+
-+        repoopts = {}
-+        mainopts = yum.misc.GenericHolder()
-+        mainopts.items = []
-+
-+        for item in setopts:
-+            k,v = item.split('=')
-+            period = k.find('.') 
-+            if period != -1:
-+                repo = k[:period]
-+                k = k[period+1:]
-+                if repo not in repoopts:
-+                    repoopts[repo] = yum.misc.GenericHolder()
-+                    repoopts[repo].items = []
-+                setattr(repoopts[repo], k, v)
-+                repoopts[repo].items.append(k)
-+            else:
-+                setattr(mainopts, k, v)
-+                mainopts.items.append(k)
-+        
-+        self.main_setopts = mainopts
-+        self.repo_setopts = repoopts
-+        
-+        
-     def getOptionsConfig(self, args):
-         """parses command line arguments, takes cli args:
-         sets up self.conf and self.cmds as well as logger objects 
-@@ -166,6 +194,13 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
-             opts.quiet = True
-             opts.verbose = False
- 
-+        # go through all the setopts and set the global ones
-+        self._parseSetOpts(opts.setopts)
-+        
-+        if self.main_setopts:
-+            for opt in self.main_setopts.items:
-+                setattr(opts, opt, getattr(self.main_setopts, opt))
-+            
-         # get the install root to use
-         root = self.optparser.getRoot(opts)
- 
-@@ -189,7 +224,12 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
-             pc.enabled_plugins  = self.optparser._splitArg(opts.enableplugins)
-             pc.releasever = opts.releasever
-             self.conf
--                    
-+            
-+            # now set  all the non-first-start opts from main from our setopts
-+            if self.main_setopts:
-+                for opt in self.main_setopts.items:
-+                    setattr(self.conf, opt, getattr(self.main_setopts, opt))
-+
-         except yum.Errors.ConfigError, e:
-             self.logger.critical(_('Config Error: %s'), e)
-             sys.exit(1)
-@@ -305,7 +345,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
-         p = re.compile('needs (\d+)MB on the (\S+) filesystem')
-         disk = {}
-         for m in p.finditer(errstring):
--            if not disk.has_key(m.group(2)):
-+            if m.group(2) not in disk:
-                 disk[m.group(2)] = int(m.group(1))
-             if disk[m.group(2)] < int(m.group(1)):
-                 disk[m.group(2)] = int(m.group(1))
-@@ -376,12 +416,18 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
-         
-         # Check which packages have to be downloaded
-         downloadpkgs = []
-+        rmpkgs = []
-         stuff_to_download = False
-         install_only = True
-+        remove_only  = True
-         for txmbr in self.tsInfo.getMembers():
-             if txmbr.ts_state not in ('i', 'u'):
-                 install_only = False
-+                po = txmbr.po
-+                if po:
-+                    rmpkgs.append(po)
-             else:
-+                remove_only = False
-                 stuff_to_download = True
-                 po = txmbr.po
-                 if po:
-@@ -394,7 +440,9 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
- 
-         # Report the total download size to the user, so he/she can base
-         # the answer on this info
--        if stuff_to_download:
-+        if not stuff_to_download:
-+            self.reportRemoveSize(rmpkgs)
-+        else:
-             self.reportDownloadSize(downloadpkgs, install_only)
-         
-         # confirm with user
-@@ -594,6 +642,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
-         
-         oldcount = len(self.tsInfo)
-         
-+        done = False
-         for arg in userlist:
-             if (arg.endswith('.rpm') and (yum.misc.re_remote_url(arg) or
-                                           os.path.exists(arg))):
-@@ -608,8 +657,13 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
-                                         self.term.MODE['bold'], arg,
-                                         self.term.MODE['normal'])
-                 self._maybeYouMeant(arg)
-+            else:
-+                done = True
-         if len(self.tsInfo) > oldcount:
-             return 2, [_('Package(s) to install')]
-+
-+        if not done:
-+            return 1, [_('Nothing to do')]
-         return 0, [_('Nothing to do')]
-         
-     def updatePkgs(self, userlist, quiet=0):
-@@ -649,6 +703,75 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
-         else:
-             return 0, [_('No Packages marked for Update')]
- 
-+    #  Note that we aren't in __init__ yet for a couple of reasons, but we 
-+    # probably will get there for 3.2.28.
-+    def distroSyncPkgs(self, userlist):
-+        """ This does either upgrade/downgrade, depending on if the latest
-+            installed version is older or newer. We allow "selection" but not
-+            local packages (use tmprepo, or something). """
-+
-+        dupdates = []
-+        ipkgs = {}
-+        for pkg in sorted(self.rpmdb.returnPackages(patterns=userlist)):
-+            ipkgs[pkg.name] = pkg
-+
-+        obsoletes = []
-+        if self.conf.obsoletes:
-+            obsoletes = self.up.getObsoletesTuples(newest=1)
-+
-+        for (obsoleting, installed) in obsoletes:
-+            if installed[0] not in ipkgs:
-+                continue
-+            dupdates.extend(self.update(pkgtup=installed))
-+        for (obsoleting, installed) in obsoletes:
-+            if installed[0] not in ipkgs:
-+                continue
-+            del ipkgs[installed[0]]
-+
-+        apkgs = {}
-+        pkgs = []
-+        if ipkgs:
-+            try:
-+                pkgs = self.pkgSack.returnNewestByName(patterns=ipkgs.keys())
-+            except yum.Errors.PackageSackError:
-+                pkgs = []
-+
-+        for pkg in pkgs:
-+            if pkg.name not in ipkgs:
-+                continue
-+            apkgs[pkg.name] = pkg
-+
-+        for ipkgname in ipkgs:
-+            if ipkgname not in apkgs:
-+                continue
-+
-+            ipkg = ipkgs[ipkgname]
-+            apkg = apkgs[ipkgname]
-+            if ipkg.verEQ(apkg):
-+                continue
-+            if self.allowedMultipleInstalls(apkg):
-+                found = False
-+                for napkg in self.rpmdb.searchNames([apkg.name]):
-+                    if napkg.verEQ(apkg):
-+                        found = True
-+                    elif napkg.verGT(apkg):
-+                        dupdates.extend(self.remove(po=napkg))
-+                if found:
-+                    continue
-+                dupdates.extend(self.install(pattern=apkg.name))
-+            elif ipkg.verLT(apkg):
-+                n,a,e,v,r = apkg.pkgtup
-+                dupdates.extend(self.update(name=n, epoch=e, ver=v, rel=r))
-+            else:
-+                n,a,e,v,r = apkg.pkgtup
-+                dupdates.extend(self.downgrade(name=n, epoch=e, ver=v, rel=r))
-+
-+        if dupdates:
-+            msg = _('%d packages marked for Distribution Synchronization') % len(dupdates)
-+            return 2, [msg]
-+        else:
-+            return 0, [_('No Packages marked for Distribution Synchronization')]
-+
-     def erasePkgs(self, userlist):
-         """take user commands and populate a transaction wrapper with packages
-            to be erased/removed"""
-@@ -710,15 +833,15 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
-             except yum.Errors.ReinstallRemoveError:
-                 self._checkMaybeYouMeant(arg, always_output=False)
-             except yum.Errors.ReinstallInstallError, e:
--                ipkg = self.rpmdb.returnPackages(patterns=[arg])[0]
--                xmsg = ''
--                if 'from_repo' in ipkg.yumdb_info:
--                    xmsg = ipkg.yumdb_info.from_repo
--                    xmsg = _(' (from %s)') % xmsg
--                self.verbose_logger.log(yum.logginglevels.INFO_2,
--                                        _('Installed package %s%s%s%s not available.'),
--                                        self.term.MODE['bold'], ipkg,
--                                        self.term.MODE['normal'], xmsg)
-+                for ipkg in e.failed_pkgs:
-+                    xmsg = ''
-+                    if 'from_repo' in ipkg.yumdb_info:
-+                        xmsg = ipkg.yumdb_info.from_repo
-+                        xmsg = _(' (from %s)') % xmsg
-+                    msg = _('Installed package %s%s%s%s not available.')
-+                    self.verbose_logger.log(yum.logginglevels.INFO_2, msg,
-+                                            self.term.MODE['bold'], ipkg,
-+                                            self.term.MODE['normal'], xmsg)
-             except yum.Errors.ReinstallError, e:
-                 assert False, "Shouldn't happen, but just in case"
-                 self.verbose_logger.log(yum.logginglevels.INFO_2, e)
-@@ -740,6 +863,10 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
- 
-         installing = False
-         for pkg in filelist:
-+            if not pkg.endswith('.rpm'):
-+                self.verbose_logger.log(yum.logginglevels.INFO_2,
-+                   "Skipping: %s, filename does not end in .rpm.", pkg)
-+                continue
-             txmbrs = self.installLocal(pkg, updateonly=updateonly)
-             if txmbrs:
-                 installing = True
-@@ -891,6 +1018,9 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
-     def cleanCli(self, userlist):
-         hdrcode = pkgcode = xmlcode = dbcode = expccode = 0
-         pkgresults = hdrresults = xmlresults = dbresults = expcresults = []
-+        msg = self.fmtKeyValFill(_('Cleaning repos: '), 
-+                        ' '.join([ x.id for x in self.repos.listEnabled()]))
-+        self.verbose_logger.log(yum.logginglevels.INFO_2, msg)
-         if 'all' in userlist:
-             self.verbose_logger.log(yum.logginglevels.INFO_2,
-                 _('Cleaning up Everything'))
-@@ -1149,7 +1279,8 @@ class YumOptionParser(OptionParser):
-             args = _filtercmdline(
-                         ('--noplugins','--version','-q', '-v', "--quiet", "--verbose"), 
-                         ('-c', '-d', '-e', '--installroot',
--                         '--disableplugin', '--enableplugin', '--releasever'), 
-+                         '--disableplugin', '--enableplugin', '--releasever',
-+                         '--setopt'), 
-                         args)
-         except ValueError, arg:
-             self.base.usage()
-@@ -1383,7 +1514,8 @@ class YumOptionParser(OptionParser):
-                 help=_("control whether color is used"))
-         group.add_option("", "--releasever", dest="releasever", default=None, 
-                 help=_("set value of $releasever in yum config and repo files"))
--
-+        group.add_option("", "--setopt", dest="setopts", default=[],
-+                action="append", help=_("set arbitrary config and repo options"))
- 
-         
- def _filtercmdline(novalopts, valopts, args):
-diff --git a/docs/yum.8 b/docs/yum.8
-index 8d42d9d..281bf17 100644
---- a/docs/yum.8
-+++ b/docs/yum.8
-@@ -27,6 +27,8 @@ gnome\-packagekit application\&.
- .br 
- .I \fR * upgrade [package1] [package2] [\&.\&.\&.] 
- .br
-+.I \fR * distribution-synchronization [package1] [package2] [\&.\&.\&.] 
-+.br
- .I \fR * remove | erase package1 [package2] [\&.\&.\&.]
- .br 
- .I \fR * list [\&.\&.\&.]
-@@ -56,8 +58,10 @@ gnome\-packagekit application\&.
- .I \fR * resolvedep dep1 [dep2] [\&.\&.\&.] 
- .br
- .I \fR * localinstall rpmfile1 [rpmfile2] [\&.\&.\&.] 
-+    (maintained for legacy reasons only - use install)
- .br
--.I \fR * localupdate rpmfile1 [rpmfile2] [\&.\&.\&.] 
-+.I \fR * localupdate rpmfile1 [rpmfile2] [\&.\&.\&.]
-+    (maintained for legacy reasons only - use update)
- .br
- .I \fR * reinstall package1 [package2] [\&.\&.\&.] 
- .br
-@@ -67,9 +71,9 @@ gnome\-packagekit application\&.
- .br
- .I \fR * repolist [all|enabled|disabled] 
- .br
--.I \fR * version [all|installed|available|group-*|grouplist|groupinfo]
-+.I \fR * version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]
- .br
--.I \fR * history [info|list|summary|redo|undo|new] 
-+.I \fR * history [info|list|summary|redo|undo|new|addon-info] 
- .br
- .I \fR * check
- .br 
-@@ -87,7 +91,9 @@ group of packages while ensuring that all dependencies are
- satisfied\&.  (See \fBSpecifying package names\fP for more information) 
- If no package matches the given package name(s), they are assumed to be a shell 
- glob and any matches are then installed\&. If the name starts with an 
--@ character the rest of the name is used as though passed to the groupinstall command\&. If the name is a file, then install works
-+@ character the rest of the name is used as though passed to the groupinstall
-+command\&. If the name starts with a - character, then a search is done within
-+the transaction and any matches are removed. If the name is a file, then install works
- like localinstall\&. If the name doesn't match a package, then package
- "provides" are searched (Eg. "_sqlitecache.so()(64bit)") as are
- filelists (Eg. "/usr/bin/yum"). Also note that for filelists, wildcards will
-@@ -119,11 +125,24 @@ Running in verbose mode also shows obsoletes.
- Is the same as the update command with the \-\-obsoletes flag set. See update 
- for more details.
- .IP 
-+.IP "\fBdistribution\-synchronization\fP or \fBdistro\-sync\fP"
-+Synchronizes the installed package set with the latest packages available, this
-+is done by either obsoleting, upgrading or downgrading as appropriate. This will
-+"normally" do the same thing as the upgrade command however if you have the
-+package FOO installed at version 4, and the latest available is only
-+version 3, then this command will \fBdowngrade\fP FOO to version 3.
-+
-+This command does not perform operations on groups, local packages or negative
-+selections.
-+.IP 
- .IP "\fBremove\fP or \fBerase\fP"
- Are used to remove the specified packages from the system
- as well as removing any packages which depend on the package being
- removed\&. remove operates on groups, files, provides and filelists just like
- the "install" command\&.(See \fBSpecifying package names\fP for more information) 
-+
-+Note that "yum" is included in the protected_packages configuration, by default.
-+So you can't accidentally remove yum itself.
- .IP 
- .IP "\fBlist\fP"
- Is used to list various information about available
-@@ -180,6 +199,9 @@ Is used to remove all of the packages in a group, unlike "groupinstall" this
- will remove everything regardless of group_package_types. It is worth pointing
- out that packages can be in more than one group, so "groupinstall X Y" followed
- by "groupremove Y" does not do give you the same result as "groupinstall X".
-+
-+The groupremove_leaf_only configuration changes the behaviour of this command
-+to only remove packages which aren't required by something else.
- .IP 
- .IP "\fBgroupinfo\fP"
- Is used to give the description and package list of a group (and which type
-@@ -200,14 +222,16 @@ package is listed per dependency.
- .IP "\fBlocalinstall\fP"
- Is used to install a set of local rpm files. If required the enabled 
- repositories will be used to resolve dependencies. Note that the install command
--will do a local install, if given a filename.
-+will do a local install, if given a filename. This option is maintained for legacy
-+reasons only.
- .IP
- .IP "\fBlocalupdate\fP"
- Is used to update the system by specifying local rpm files. Only the specified 
- rpm files of which an older version is already installed will be installed,
- the remaining specified packages will be ignored.
- If required the enabled repositories will be used to resolve dependencies. Note
--that the update command will do a local install, if given a filename.
-+that the update command will do a local update, if given a filename. This option is maintained for
-+legacy reasons only.
- .IP
- .IP "\fBreinstall\fP"
- Will reinstall the identically versioned package as is currently installed. 
-@@ -220,7 +244,7 @@ previously highest version (or the specified version).
- The depsolver will not necessarily work, but if you specify all the packages it
- should work (and thus. all the simple cases will work). Also this does not
- work for "installonly" packages, like Kernels. downgrade operates
--on groups, files, provides and filelists just like the "install" command\&.
-+on groups, files, provides, filelists and rpm files just like the "install" command\&.
- .IP
- .IP "\fBdeplist\fP"
- Produces a list of all dependencies and what packages provide those
-@@ -254,6 +278,24 @@ 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).
-+
-+The version command will now show "groups" of packages as a separate version,
-+and so takes sub-commands:
-+
-+"version grouplist" - List the defined version groups.
-+
-+"version groupinfo" - Get the complete list of packages within one or more version groups.
-+
-+"version installed" - This is the default, only show the version information for installed packages.
-+
-+"version available" - Only show the version information for available packages.
-+
-+"version all" - Show the version information for installed and available packages.
-+
-+"version nogroups | nogroups-*" - Just show the main version information.
-+
-+"version group-*" - Just show the grouped version information, if more arguments are given then only show the data for those groups.
-+
- .IP
- .IP "\fBhistory\fP"
- The history command allows the user to view what has happened in past
-@@ -280,6 +322,12 @@ if there was something not good with the transaction.
- .br
- .I \fB#\fR - The transaction completed, but with a non-zero status.
- .br
-+.I \fBE\fR - The transaction completed fine, but had warning/error output during the transaction.
-+.br
-+.I \fBP\fR - The transaction completed fine, but problems already existed in the rpmdb.
-+.br
-+.I \fBs\fR - The transaction completed fine, but --skip-broken was enabled and had to skip some packages.
-+.br
- 
- .IP
- .IP "\fBcheck\fP"
-@@ -403,6 +451,11 @@ $releasever in your cachedir configuration to stop this).
- .IP "\fB\-t, \-\-tolerant\fP"
- This option currently does nothing.
- .br
-+.IP "\fB\-\-setopt=option=value\fP"
-+Set any config option in yum config or repo files. For options in the global 
-+config just use: \-\-setopt=option=value for repo options use: \-\-setopt=repoid.option=value
-+.PP
-+
- .SH "LIST OPTIONS"
- The following are the ways which you can invoke \fByum\fP in list
- mode\&.  Note that all \fBlist\fP commands include information on the
-diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
-index cca3db7..49d98c6 100644
---- a/docs/yum.conf.5
-+++ b/docs/yum.conf.5
-@@ -62,6 +62,17 @@ Debug scriptlet output level. 'info' is the default, other
- options are: 'critical', 'emergency', 'error', 'warn' and 'debug'.
- 
- .IP
-+\fBprotected_packages\fR
-+This is a list of packages that yum should never completely remove. They are
-+protected via. Obsoletes as well as user/plugin removals.
-+
-+The default is: yum glob:/etc/yum/protected.d/*.conf
-+So any packages which should be protected can do so by including a file in 
-+/etc/yum/protected.d with their package name in it.
-+
-+Also if this configuration is set to anything, then yum will protect the
-+package corresponding to the running version of the kernel.
-+.IP
- \fBlogfile\fR
- Full directory and file name for where yum should write its log file.
- 
-@@ -167,6 +178,14 @@ repository will be used. If \fBoverwrite_groups\fR is `0' then the groups
- from all matching repositories will be merged together as one large group.
- 
- .IP
-+\fBgroupremove_leaf_only \fR
-+Either `0' or `1'. Used to determine yum's behaviour when the groupremove
-+command is run.  If \fBgroupremove_leaf_only\fR is `0' (default) then
-+all packages in the group will be removed.  If \fBgroupremove_leaf_only\fR is
-+`1' then only those packages in the group that aren't required by another
-+package will be removed.
-+
-+.IP
- \fBenable_group_conditionals\fR
- Either `0' or `1'. Determines whether yum will allow the use of conditionals
- packages. Default is `1' (package conditionals are allowed).
-@@ -198,7 +217,9 @@ diskspace before a RPM transaction is run. Default is `1' (perform the check).
- .IP
- \fBtsflags\fR
- Comma or space separated list of transaction flags to pass to the rpm
--transaction set. These include 'noscripts', 'notriggers', 'nodocs', 'test', and 'repackage'.
-+transaction set. These include 'noscripts', 'notriggers', 'nodocs', 'test',
-+'justdb' and 'nocontexts'. 'repackage' is also available but that does nothing
-+with newer rpm versions.
- You can set all/any of them. However, if you don't know what these do in the
- context of an rpm transaction set you're best leaving it alone. Default is
- an empty list.
-@@ -289,6 +310,17 @@ 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.
- 
-+Note that if history is recorded, yum uses that information to see if any
-+modifications to the rpmdb have been done outside of yum. These are always bad,
-+from yum's point of view, and so yum will issue a warning and automatically
-+run some of "yum check" to try and find some of the worst problems altering
-+the rpmdb might have caused.
-+.IP
-+This means that turning this option off will stop yum from being able to
-+detect when the rpmdb has changed and thus. it will never warn you or
-+automatically run "yum check". The problems will likely still be there, and
-+yumdb etc. will still be wrong but yum will not warn you about it.
-+
- .IP
- \fBhistory_record_packages \fR
- This is a list of package names that should be recorded as having helped the
-@@ -304,11 +336,17 @@ on the command line (eg. "update foo bar baz quux").  None of the short options
- 
- .IP
- \fBsyslog_ident \fR
--XXX not implemented yet
-+Identification (program name) for syslog messages.
- 
- .IP
- \fBsyslog_facility \fR
--XXX not implemented yet
-+Facility name for syslog messages, see syslog(3).  Default is `LOG_USER'.
-+
-+.IP
-+\fBsyslog_device \fR
-+Where to log syslog messages. Can be a local device (path) or a host:port
-+string to use a remote syslog.  If empty or points to a nonexistent device,
-+syslog logging is disabled.  Default is `/dev/log'.
- 
- .IP
- \fBproxy \fR
-@@ -720,6 +758,14 @@ The configuration file will be inserted at the position of the "include=" line.
- Included files may contain further include lines. Yum will abort with an error
- if an inclusion loop is detected.
- 
-+.SH "GLOB: FOR LIST OPTIONS"
-+.LP
-+Any of the configurations options which are a list of items can be specfied
-+using the glob syntax: \fBglob:/etc/path/somewhere.d/*.conf\fR. This
-+will read in all files matching that glob and include all lines in each file
-+(excluding comments and blank lines) as items in the list.
-+.LP
-+
- .SH "VARIABLES"
- .LP
- There are a number of variables you can use to ease maintenance of yum's
-@@ -755,12 +801,25 @@ These will be replaced with the value of the shell environment variable of
- the same name. If the shell environment variable does not exist then the
- configuration file variable will not be replaced.
- 
-+.LP
-+As of 3.2.28, any file in /etc/yum/vars is turned into a variable named after
-+the filename (or overrides any of the above variables).
-+
-+Note that no warnings/errors are given if the files are unreadable, so creating
-+files that only root can read may be confusing for users.
-+
-+Also note that only the first line will be read and all new line 
-+characters are removed, as a convenience. However, no other checking is 
-+performed on the data. This means it is possible to have bad character 
-+data in any value.
- 
- .SH "FILES"
- .nf
- /etc/yum/yum.conf
- /etc/yum/repos.d/
- /etc/yum/pluginconf.d/
-+/etc/yum/protected.d
-+/etc/yum/vars
- 
- .SH "SEE ALSO"
- .LP 
-diff --git a/etc/Makefile b/etc/Makefile
-index 68dd3c2..a512cdf 100644
---- a/etc/Makefile
-+++ b/etc/Makefile
-@@ -8,7 +8,9 @@ clean:
- 
- install:
- 	mkdir -p $(DESTDIR)/etc/yum/
-+	mkdir -p $(DESTDIR)/etc/yum/protected.d
- 	mkdir -p $(DESTDIR)/etc/yum/repos.d
-+	mkdir -p $(DESTDIR)/etc/yum/vars
- 
- 	install -m 644 yum.conf $(YUMETC)/yum.conf
- 
-diff --git a/etc/yum.bash b/etc/yum.bash
-index 5dfdb64..3e6e243 100644
---- a/etc/yum.bash
-+++ b/etc/yum.bash
-@@ -81,13 +81,13 @@ _yum()
-     local prev=$3
-     local cmds=( check check-update clean deplist downgrade groupinfo
-         groupinstall grouplist groupremove help history info install list
--        localinstall makecache provides reinstall remove repolist resolvedep
--        search shell update upgrade version )
-+        localinstall localupdate makecache provides reinstall remove repolist resolvedep
-+        search shell update upgrade version distro-sync )
- 
-     local i c cmd
-     for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )) ; do
-         for c in ${cmds[@]} check-rpmdb erase groupupdate grouperase \
--            whatprovides ; do
-+            whatprovides distribution-synchronization ; do
-             [ ${COMP_WORDS[i]} = $c ] && cmd=$c && break
-         done
-         [ -z $cmd ] || break
-@@ -102,7 +102,7 @@ _yum()
-             ;;
- 
-         check-update|grouplist|makecache|provides|whatprovides|resolvedep|\
--        search|version)
-+        search)
-             return 0
-             ;;
- 
-@@ -132,7 +132,7 @@ _yum()
-             return 0
-             ;;
- 
--        erase|remove)
-+        erase|remove|distro-sync|distribution-synchronization)
-             _yum_list installed "$cur"
-             return 0
-             ;;
-@@ -214,6 +214,13 @@ _yum()
-             fi
-             return 0
-             ;;
-+        version)
-+            if [ "$prev" = version ] ; then
-+                COMPREPLY=( $( compgen -W 'all installed available nogroups
-+                    grouplist groupinfo' -- "$cur" ) )
-+            fi
-+            return 0
-+            ;;
-     esac
- 
-     local split=false
-@@ -274,7 +281,7 @@ _yum()
-             ;;
- 
-         -R|--randomwait|-x|--exclude|-h|--help|--version|--releasever|--cve|\
--        --bz|--advisory|--tmprepo|--verify-filenames)
-+        --bz|--advisory|--tmprepo|--verify-filenames|--setopt)
-             return 0
-             ;;
- 
-@@ -302,7 +309,7 @@ _yum()
-         --quiet --verbose --assumeyes --version --installroot --enablerepo
-         --disablerepo --exclude --disableexcludes --obsoletes --noplugins
-         --nogpgcheck --disableplugin --enableplugin --skip-broken --color
--        --releasever ${cmds[@]}' -- "$cur" ) )
-+        --releasever --setopt ${cmds[@]}' -- "$cur" ) )
- } &&
- complete -F _yum -o filenames yum yummain.py
- 
-diff --git a/output.py b/output.py
-index b09730a..3a90995 100755
---- a/output.py
-+++ b/output.py
-@@ -379,10 +379,24 @@ class YumOutput:
-         for d in range(0, cols):
-             data[d] = sorted(pdata[d].items())
- 
-+        #  We start allocating 1 char to everything but the last column, and a
-+        # space between each (again, except for the last column). Because
-+        # at worst we are better with:
-+        # |one two three|
-+        # | four        |
-+        # ...than:
-+        # |one two three|
-+        # |            f|
-+        # |our          |
-+        # ...the later being what we get if we pre-allocate the last column, and
-+        # thus. the space, due to "three" overflowing it's column by 2 chars.
-         if columns is None:
--            columns = [1] * cols
-+            columns = [1] * (cols - 1)
-+            columns.append(0)
- 
-         total_width -= (sum(columns) + (cols - 1) + utf8_width(indent))
-+        if not columns[-1]:
-+            total_width += 1
-         while total_width > 0:
-             # Find which field all the spaces left will help best
-             helps = 0
-@@ -406,6 +420,10 @@ class YumOutput:
-             # that column and start again with any remaining space.
-             if helps:
-                 diff = data[val].pop(0)[0] - columns[val]
-+                if not columns[val] and (val == (cols - 1)):
-+                    #  If we are going from 0 => N on the last column, take 1
-+                    # for the space before the column.
-+                    total_width  -= 1
-                 columns[val] += diff
-                 total_width  -= diff
-                 continue
-@@ -452,8 +470,10 @@ class YumOutput:
-             (hibeg, hiend) = self._highlight(highlight)
-         return (val, width, hibeg, hiend)
- 
--    def fmtColumns(self, columns, msg=u'', end=u''):
--        """ Return a string for columns of data, which can overflow."""
-+    def fmtColumns(self, columns, msg=u'', end=u'', text_width=utf8_width):
-+        """ Return a string for columns of data, which can overflow.
-+            text_width parameter finds the width of columns, this defaults to
-+            utf8 but can be changed to len() if you know it'll be fine. """
- 
-         total_width = len(msg)
-         data = []
-@@ -466,11 +486,16 @@ class YumOutput:
-                 continue
- 
-             (align, width) = self._fmt_column_align_width(width)
--            if utf8_width(val) <= width:
--                msg += u"%s "
--                val = utf8_width_fill(val, width, left=(align == u'-'),
--                                      prefix=hibeg, suffix=hiend)
--                data.append(val)
-+            val_width = text_width(val)
-+            if val_width <= width:
-+                #  Don't use utf8_width_fill() because it sucks performance
-+                # wise for 1,000s of rows. Also allows us to use len(), when
-+                # we can.
-+                msg += u"%s%s%s%s "
-+                if (align == u'-'):
-+                    data.extend([hibeg, val, " " * (width - val_width), hiend])
-+                else:
-+                    data.extend([hibeg, " " * (width - val_width), val, hiend])
-             else:
-                 msg += u"%s%s%s\n" + " " * (total_width + width + 1)
-                 data.extend([hibeg, val, hiend])
-@@ -495,7 +520,7 @@ class YumOutput:
-         hi_cols = [highlight, 'normal', 'normal']
-         rid = pkg.ui_from_repo
-         columns = zip((na, ver, rid), columns, hi_cols)
--        print self.fmtColumns(columns)
-+        print self.fmtColumns(columns, text_width=len)
- 
-     def simpleEnvraList(self, pkg, ui_overflow=False,
-                         indent='', highlight=False, columns=None):
-@@ -508,7 +533,7 @@ class YumOutput:
-         hi_cols = [highlight, 'normal', 'normal']
-         rid = pkg.ui_from_repo
-         columns = zip((envra, rid), columns, hi_cols)
--        print self.fmtColumns(columns)
-+        print self.fmtColumns(columns, text_width=len)
- 
-     def fmtKeyValFill(self, key, val):
-         """ Return a key value pair in the common two column output format. """
-@@ -551,27 +576,42 @@ class YumOutput:
- 
-     def infoOutput(self, pkg, highlight=False):
-         (hibeg, hiend) = self._highlight(highlight)
--        print _("Name       : %s%s%s") % (hibeg, to_unicode(pkg.name), hiend)
--        print _("Arch       : %s") % to_unicode(pkg.arch)
-+        print _("Name        : %s%s%s") % (hibeg, to_unicode(pkg.name), hiend)
-+        print _("Arch        : %s") % to_unicode(pkg.arch)
-         if pkg.epoch != "0":
--            print _("Epoch      : %s") % to_unicode(pkg.epoch)
--        print _("Version    : %s") % to_unicode(pkg.version)
--        print _("Release    : %s") % to_unicode(pkg.release)
--        print _("Size       : %s") % self.format_number(float(pkg.size))
--        print _("Repo       : %s") % to_unicode(pkg.repoid)
-+            print _("Epoch       : %s") % to_unicode(pkg.epoch)
-+        print _("Version     : %s") % to_unicode(pkg.version)
-+        print _("Release     : %s") % to_unicode(pkg.release)
-+        print _("Size        : %s") % self.format_number(float(pkg.size))
-+        print _("Repo        : %s") % to_unicode(pkg.repoid)
-         if pkg.repoid == 'installed' and 'from_repo' in pkg.yumdb_info:
--            print _("From repo  : %s") % to_unicode(pkg.yumdb_info.from_repo)
-+            print _("From repo   : %s") % to_unicode(pkg.yumdb_info.from_repo)
-         if self.verbose_logger.isEnabledFor(logginglevels.DEBUG_3):
--            print _("Committer  : %s") % to_unicode(pkg.committer)
--            print _("Committime : %s") % time.ctime(pkg.committime)
--            print _("Buildtime  : %s") % time.ctime(pkg.buildtime)
-+            print _("Committer   : %s") % to_unicode(pkg.committer)
-+            print _("Committime  : %s") % time.ctime(pkg.committime)
-+            print _("Buildtime   : %s") % time.ctime(pkg.buildtime)
-             if hasattr(pkg, 'installtime'):
--                print _("Installtime: %s") % time.ctime(pkg.installtime)
--        print self.fmtKeyValFill(_("Summary    : "), self._enc(pkg.summary))
-+                print _("Install time: %s") % time.ctime(pkg.installtime)
-+            if pkg.repoid == 'installed':
-+                uid = None
-+                if 'installed_by' in pkg.yumdb_info:
-+                    try:
-+                        uid = int(pkg.yumdb_info.installed_by)
-+                    except ValueError: # In case int() fails
-+                        uid = None
-+                print _("Installed by: %s") % self._pwd_ui_username(uid)
-+                uid = None
-+                if 'changed_by' in pkg.yumdb_info:
-+                    try:
-+                        uid = int(pkg.yumdb_info.changed_by)
-+                    except ValueError: # In case int() fails
-+                        uid = None
-+                print _("Changed by  : %s") % self._pwd_ui_username(uid)
-+        print self.fmtKeyValFill(_("Summary     : "), self._enc(pkg.summary))
-         if pkg.url:
--            print _("URL        : %s") % to_unicode(pkg.url)
--        print self.fmtKeyValFill(_("License    : "), to_unicode(pkg.license))
--        print self.fmtKeyValFill(_("Description: "), self._enc(pkg.description))
-+            print _("URL         : %s") % to_unicode(pkg.url)
-+        print self.fmtKeyValFill(_("License     : "), to_unicode(pkg.license))
-+        print self.fmtKeyValFill(_("Description : "),self._enc(pkg.description))
-         print ""
-     
-     def updatesObsoletesList(self, uotup, changetype, columns=None):
-@@ -927,6 +967,26 @@ class YumOutput:
-                 self.verbose_logger.log(logginglevels.INFO_1,
-                                         _("Installed size: %s"),
-                                         self.format_number(insize))
-+
-+    def reportRemoveSize(self, packages):
-+        """Report the total size of packages being removed. """
-+        totsize = 0
-+        error = False
-+        for pkg in packages:
-+            # Just to be on the safe side, if for some reason getting
-+            # the package size fails, log the error and don't report download
-+            # size
-+            try:
-+                size = int(pkg.size)
-+                totsize += size
-+            except:
-+                error = True
-+                self.logger.error(_('There was an error calculating installed size'))
-+                break
-+        if (not error):
-+            self.verbose_logger.log(logginglevels.INFO_1,
-+                                    _("Installed size: %s"),
-+                                    self.format_number(totsize))
-             
-     def listTransaction(self):
-         """returns a string rep of the  transaction in an easy-to-read way."""
-@@ -1030,22 +1090,29 @@ Transaction Summary
-         out.append(summary)
-         num_in = len(self.tsInfo.installed + self.tsInfo.depinstalled)
-         num_up = len(self.tsInfo.updated + self.tsInfo.depupdated)
--        summary = _("""\
--Install   %5.5s Package(s)
--Upgrade   %5.5s Package(s)
--""") % (num_in, num_up,)
--        if num_in or num_up: # Always do this?
--            out.append(summary)
-         num_rm = len(self.tsInfo.removed + self.tsInfo.depremoved)
-         num_re = len(self.tsInfo.reinstalled)
-         num_dg = len(self.tsInfo.downgraded)
--        summary = _("""\
-+        if num_in:
-+            out.append(_("""\
-+Install   %5.5s Package(s)
-+""") % num_in)
-+        if num_up:
-+            out.append(_("""\
-+Upgrade   %5.5s Package(s)
-+""") % num_up)
-+        if num_rm:
-+            out.append(_("""\
- Remove    %5.5s Package(s)
-+""") % num_rm)
-+        if num_re:
-+            out.append(_("""\
- Reinstall %5.5s Package(s)
-+""") % num_re)
-+        if num_dg:
-+            out.append(_("""\
- Downgrade %5.5s Package(s)
--""") % (num_rm, num_re, num_dg)
--        if num_rm or num_re or num_dg:
--            out.append(summary)
-+""") % num_dg)
-         
-         return ''.join(out)
-         
-@@ -1121,19 +1188,31 @@ Downgrade %5.5s Package(s)
-         # progress bars - this is hacky - I'm open to other options
-         # One of these is a download
-         if self.conf.debuglevel < 2 or not sys.stdout.isatty():
--            self.repos.setProgressBar(None)
--            self.repos.callback = None
-+            progressbar = None
-+            callback = None
-         else:
--            self.repos.setProgressBar(YumTextMeter(fo=sys.stdout))
--            self.repos.callback = CacheProgressCallback()
-+            progressbar = YumTextMeter(fo=sys.stdout)
-+            callback = CacheProgressCallback()
- 
-         # setup our failure report for failover
-         freport = (self.failureReport,(),{})
--        self.repos.setFailureCallback(freport)
-+        failure_callback = freport
- 
-         # setup callback for CTRL-C's
--        self.repos.setInterruptCallback(self.interrupt_callback)
--        
-+        interrupt_callback = self.interrupt_callback
-+        if hasattr(self, 'prerepoconf'):
-+            self.prerepoconf.progressbar = progressbar
-+            self.prerepoconf.callback = callback
-+            self.prerepoconf.failure_callback = failure_callback
-+            self.prerepoconf.interrupt_callback = interrupt_callback
-+        else:
-+            #  Just in case some API user decides to do self.repos before
-+            # calling us.
-+            self.repos.setProgressBar(progressbar)
-+            self.repos.callback = callback
-+            self.repos.setFailureCallback(failure_callback)
-+            self.repos.setInterruptCallback(interrupt_callback)
-+
-         # setup our depsolve progress callback
-         dscb = DepSolveProgressCallBack(weakref(self))
-         self.dsCallback = dscb
-@@ -1143,8 +1222,14 @@ Downgrade %5.5s Package(s)
-         self.setupProgressCallbacks()
-     
-     def setupKeyImportCallbacks(self):
--        self.repos.confirm_func = self._cli_confirm_gpg_key_import
--        self.repos.gpg_import_func = self.getKeyForRepo
-+        confirm_func = self._cli_confirm_gpg_key_import
-+        gpg_import_func = self.getKeyForRepo
-+        if hasattr(self, 'prerepoconf'):
-+            self.prerepoconf.confirm_func = confirm_func
-+            self.prerepoconf.gpg_import_func = gpg_import_func
-+        else:
-+            self.repos.confirm_func = confirm_func
-+            self.repos.gpg_import_func = gpg_import_func
- 
-     def interrupt_callback(self, cbobj):
-         '''Handle CTRL-C's during downloads
-@@ -1232,20 +1317,29 @@ to exit.
-         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:
-+        # loginuid is set to      -1 (0xFFFF_FFFF) on init, in newer kernels.
-+        # loginuid is set to INT_MAX (0x7FFF_FFFF) on init, in older kernels.
-+        if uid is None or uid in (0xFFFFFFFF, 0x7FFFFFFF):
-             loginid = _("<unset>")
-             name = _("System") + " " + loginid
-             if limit is not None and len(name) > limit:
-                 name = loginid
-             return to_unicode(name)
- 
-+        def _safe_split_0(text, *args):
-+            """ Split gives us a [0] for everything _but_ '', this function
-+                returns '' in that case. """
-+            ret = text.split(*args)
-+            if not ret:
-+                return ''
-+            return ret[0]
-+
-         try:
-             user = pwd.getpwuid(uid)
--            fullname = user.pw_gecos.split(';', 2)[0]
-+            fullname = _safe_split_0(user.pw_gecos, ';', 2)
-             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)
-+                name = "%s ... <%s>" % (_safe_split_0(fullname), user.pw_name)
-                 if len(name) > limit:
-                     name = "<%s>" % user.pw_name
-             return to_unicode(name)
-@@ -1280,7 +1374,7 @@ to exit.
- 
-         tids, printall = self._history_list_transactions(extcmds)
-         if tids is None:
--            return 1, ['Failed history info']
-+            return 1, ['Failed history list']
- 
-         fmt = "%s | %s | %s | %s | %s"
-         print fmt % (utf8_width_fill(_("ID"), 6, 6),
-@@ -1310,6 +1404,13 @@ to exit.
-                 rmark = lmark = '*'
-             elif old.return_code:
-                 rmark = lmark = '#'
-+                # We don't check .errors, because return_code will be non-0
-+            elif old.output:
-+                rmark = lmark = 'E'
-+            elif old.rpmdb_problems:
-+                rmark = lmark = 'P'
-+            elif old.trans_skip:
-+                rmark = lmark = 's'
-             if old.altered_lt_rpmdb:
-                 rmark = '<'
-             if old.altered_gt_rpmdb:
-@@ -1413,6 +1514,41 @@ to exit.
-     def _historyInfoCmd(self, old, pats=[]):
-         name = self._pwd_ui_username(old.loginuid)
- 
-+        _pkg_states_installed = {'i' : _('Installed'), 'e' : _('Erased'),
-+                                 'o' : _('Updated'), 'n' : _('Downgraded')}
-+        _pkg_states_available = {'i' : _('Installed'), 'e' : _('Not installed'),
-+                                 'o' : _('Older'), 'n' : _('Newer')}
-+        # max() only in 2.5.z
-+        maxlen = sorted([len(x) for x in (_pkg_states_installed.values() +
-+                                          _pkg_states_available.values())])[-1]
-+        _pkg_states_installed['maxlen'] = maxlen
-+        _pkg_states_available['maxlen'] = maxlen
-+        def _simple_pkg(pkg, prefix_len, was_installed=False, highlight=False):
-+            prefix = " " * prefix_len
-+            if was_installed:
-+                _pkg_states = _pkg_states_installed
-+            else:
-+                _pkg_states = _pkg_states_available
-+            state  = _pkg_states['i']
-+            ipkgs = self.rpmdb.searchNames([hpkg.name])
-+            ipkgs.sort()
-+            if not ipkgs:
-+                state  = _pkg_states['e']
-+            elif hpkg.pkgtup in (ipkg.pkgtup for ipkg in ipkgs):
-+                pass
-+            elif ipkgs[-1] > hpkg:
-+                state  = _pkg_states['o']
-+            elif ipkgs[0] < hpkg:
-+                state  = _pkg_states['n']
-+            else:
-+                assert False, "Impossible, installed not newer and not older"
-+            if highlight:
-+                (hibeg, hiend) = self._highlight('bold')
-+            else:
-+                (hibeg, hiend) = self._highlight('normal')
-+            state = utf8_width_fill(state, _pkg_states['maxlen'])
-+            print "%s%s%s%s %s" % (prefix, hibeg, state, hiend, hpkg)
-+
-         print _("Transaction ID :"), old.tid
-         begtm = time.ctime(old.beg_timestamp)
-         print _("Begin time     :"), begtm
-@@ -1448,25 +1584,38 @@ to exit.
-             print _("Return-Code    :"), _("Failure:"), old.return_code
-         else:
-             print _("Return-Code    :"), _("Success")
-+            
-+        if old.cmdline is not None:
-+            print _("Command Line   :"), old.cmdline
-+
-+        addon_info = self.history.return_addon_data(old.tid)
-+        
-+        # for the ones we create by default - don't display them as there
-+        default_addons = set(['config-main', 'config-repos'])
-+        non_default = set(addon_info).difference(default_addons)
-+        if len(non_default) > 0:
-+                print _("Additional non-default information stored: %d" 
-+                            % len(non_default))
-+
-         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%s %s" % (prefix, utf8_width_fill(state, 12), hpkg)
-+            _simple_pkg(hpkg, 4, was_installed=True)
-         print _("Packages Altered:")
-         self.historyInfoCmdPkgsAltered(old, pats)
-+
-+        if old.trans_skip:
-+            print _("Packages Skipped:")
-+        for hpkg in old.trans_skip:
-+            _simple_pkg(hpkg, 4)
-+
-+        if old.rpmdb_problems:
-+            print _("Rpmdb Problems:")
-+        for prob in old.rpmdb_problems:
-+            key = "%s%s: " % (" " * 4, prob.problem)
-+            print self.fmtKeyValFill(key, prob.text)
-+            for hpkg in prob.packages:
-+                _simple_pkg(hpkg, 8, was_installed=True, highlight=hpkg.main)
-+
-         if old.output:
-             print _("Scriptlet output:")
-             num = 0
-@@ -1482,6 +1631,27 @@ to exit.
- 
-     def historyInfoCmdPkgsAltered(self, old, pats=[]):
-         last = None
-+        #  Note that these don't use _simple_pkg() because we are showing what
-+        # happened to them in the transaction ... not the difference between the
-+        # version in the transaction and now.
-+        all_uistates = {'True-Install' : _('Install'),
-+                        'Install'      : _('Install'),
-+                        'Dep-Install'  : _('Dep-Install'),
-+                        'Obsoleted'    : _('Obsoleted'),
-+                        'Obsoleting'   : _('Obsoleting'),
-+                        'Erase'        : _('Erase'),
-+                        'Reinstall'    : _('Reinstall'),
-+                        'Downgrade'    : _('Downgrade'),
-+                        'Downgraded'   : _('Downgraded'),
-+                        'Update'       : _('Update'),
-+                        'Updated'      : _('Updated'),
-+                        }
-+        maxlen = 0
-+        for hpkg in old.trans_data:
-+            uistate = all_uistates.get(hpkg.state, hpkg.state)
-+            if maxlen < len(uistate):
-+                maxlen = len(uistate)
-+
-         for hpkg in old.trans_data:
-             prefix = " " * 4
-             if not hpkg.done:
-@@ -1498,19 +1668,8 @@ to exit.
-             # so we have to do it by hand ... *sigh*.
-             cn = hpkg.ui_nevra
- 
--            uistate = {'True-Install' : _('Install'),
--                       'Install'      : _('Install'),
--                       'Dep-Install'  : _('Dep-Install'),
--                       'Obsoleted'    : _('Obsoleted'),
--                       'Obsoleting'   : _('Obsoleting'),
--                       'Erase'        : _('Erase'),
--                       'Reinstall'    : _('Reinstall'),
--                       'Downgrade'    : _('Downgrade'),
--                       'Downgraded'   : _('Downgraded'),
--                       'Update'       : _('Update'),
--                       'Updated'      : _('Updated'),
--                       }.get(hpkg.state, hpkg.state)
--            uistate = utf8_width_fill(uistate, 12, 12)
-+            uistate = all_uistates.get(hpkg.state, hpkg.state)
-+            uistate = utf8_width_fill(uistate, maxlen)
-             # Should probably use columns here...
-             if False: pass
-             elif (last is not None and
-@@ -1587,10 +1746,55 @@ to exit.
-                 count, uiacts = self._history_uiactions(hpkgs)
-                 uperiod = _period2user[period]
-                 # Should probably use columns here, esp. for uiacts?
--                print fmt % (utf8_width_fill(name, 22, 22),
-+                print fmt % (utf8_width_fill(name, 26, 26),
-                              utf8_width_fill(uperiod, 19, 19),
-                              utf8_width_fill(uiacts, 16, 16), count)
- 
-+    def historyAddonInfoCmd(self, extcmds):
-+        tid = None
-+        if len(extcmds) > 1:
-+            tid = extcmds[1]
-+        try:
-+            int(tid)
-+        except ValueError:
-+            self.logger.critical(_('No transaction ID given'))
-+            return 1, ['Failed history addon-info']
-+        except TypeError:
-+            pass # No tid arg. passed, use last...
-+
-+        if tid is not None:
-+            old = self.history.old(tids=[tid])
-+        else:
-+            old = [self.history.last(complete_transactions_only=False)]
-+            if old[0] is None:
-+                self.logger.critical(_('No transaction ID, or package, given'))
-+                return 1, ['Failed history addon-info']
-+
-+        if not old:
-+            self.logger.critical(_('No Transaction %s found') % tid)
-+            return 1, ['Failed history addon-info']
-+            
-+        hist_data = old[0]
-+        addon_info = self.history.return_addon_data(hist_data.tid)
-+        if len(extcmds) <= 2:
-+            print _("Transaction ID:"), hist_data.tid
-+            print _('Available additional history information:')
-+            for itemname in self.history.return_addon_data(hist_data.tid):
-+                print '  %s' % itemname
-+            print ''
-+            
-+            return 0, ['history addon-info']
-+        
-+        for item in extcmds[2:]:
-+            if item in addon_info:
-+                print '%s:' % item
-+                print self.history.return_addon_data(hist_data.tid, item)
-+            else:
-+                print _('%s: No additional data found by this name') % item
-+
-+            print ''
-+
-+
- 
- class DepSolveProgressCallBack:
-     """provides text output callback functions for Dependency Solver callback"""
-@@ -1605,7 +1809,9 @@ class DepSolveProgressCallBack:
-         modedict = { 'i': _('installed'),
-                      'u': _('updated'),
-                      'o': _('obsoleted'),
--                     'e': _('erased')}
-+                     'e': _('erased'),
-+                     'r': _('reinstalled'),
-+                     'd': _('downgraded')}
-         (n, a, e, v, r) = pkgtup
-         modeterm = modedict[mode]
-         self.verbose_logger.log(logginglevels.INFO_2,
-@@ -1639,6 +1845,10 @@ class DepSolveProgressCallBack:
-             _('--> Processing Dependency: %s for package: %s'), formatted_req,
-             po)
-     
-+    def groupRemoveReq(self, po, hits):
-+        self.verbose_logger.log(logginglevels.INFO_2,
-+            _('---> Keeping package: %s'), po)
-+
-     def unresolved(self, msg):
-         self.verbose_logger.log(logginglevels.INFO_2, _('--> Unresolved Dependency: %s'),
-             msg)
-@@ -1660,24 +1870,52 @@ class DepSolveProgressCallBack:
-         if not yb:
-             return msg
-         
-+        def _msg_pkg(action, pkg, needname):
-+            " Add a package to the message, including any provides matches. "
-+            msg = _('\n    %s: %s (%s)') % (action, pkg, pkg.ui_from_repo)
-+            needtup = (needname, None, (None, None, None))
-+            done = False
-+            for pkgtup in pkg.matchingPrcos('provides', needtup):
-+                done = True
-+                msg += _('\n        %s') % yum.misc.prco_tuple_to_string(pkgtup)
-+            if not done:
-+                msg += _('\n        Not found')
-+            return msg
-+
-         ipkgs = set()
-         for pkg in sorted(yb.rpmdb.getProvides(needname)):
--            ipkgs.add(pkg.pkgtup)
-+            nevr = (pkg.name, pkg.epoch, pkg.version, pkg.release)
-+            ipkgs.add(nevr)
-             action = _('Installed')
--            if yb.tsInfo.getMembersWithState(pkg.pkgtup, TS_REMOVE_STATES):
-+            rmed = yb.tsInfo.getMembersWithState(pkg.pkgtup, TS_REMOVE_STATES)
-+            if rmed:
-                 action = _('Removing')
--            msg += _('\n    %s: %s (%s)') % (action, pkg, pkg.ui_from_repo)
-+            msg += _msg_pkg(action, pkg, needname)
-+            # These should be the only three things we care about:
-+            relmap = {'updatedby' : _('Updated By'),
-+                      'downgradedby' : _('Downgraded By'),
-+                      'obsoletedby' :  _('Obsoleted By'),
-+                      }
-+            for txmbr in rmed:
-+                for (rpkg, rtype) in txmbr.relatedto:
-+                    if rtype not in relmap:
-+                        continue
-+                    nevr = (rpkg.name, rpkg.epoch, rpkg.version, rpkg.release)
-+                    ipkgs.add(nevr)
-+                    msg += _msg_pkg(relmap[rtype], rpkg, needname)
-+
-         last = None
-         for pkg in sorted(yb.pkgSack.getProvides(needname)):
-             #  We don't want to see installed packages, or N packages of the
-             # same version, from different repos.
--            if pkg.pkgtup in ipkgs or pkg.verEQ(last):
-+            nevr = (pkg.name, pkg.epoch, pkg.version, pkg.release)
-+            if nevr in ipkgs or (pkg.verEQ(last) and pkg.arch == last.arch):
-                 continue
-             last = pkg
-             action = _('Available')
-             if yb.tsInfo.getMembersWithState(pkg.pkgtup, TS_INSTALL_STATES):
-                 action = _('Installing')
--            msg += _('\n    %s: %s (%s)') % (action, pkg, pkg.repoid)
-+            msg += _msg_pkg(action, pkg, needname)
-         return msg
-     
-     def procConflict(self, name, confname):
-diff --git a/po/cs.po b/po/cs.po
-index d369345..d4ec7d8 100644
---- a/po/cs.po
-+++ b/po/cs.po
-@@ -1,48 +1,51 @@
--# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
--# This file is distributed under the same license as the PACKAGE package.
-+# Copyright (C) 2010 Yum's copyright holder
-+# This file is distributed under the same license as the yum package.
-+#
-+# Adam Pribyl <pribyl at lowlevel.cz>, 2009, 2010.
-+# Petr Pisar <ppisar at redhat.com>, 2010.
- #
--# Adam Pribyl <pribyl at lowlevel.cz>, 2009.
- msgid ""
- msgstr ""
--"Project-Id-Version: \n"
-+"Project-Id-Version: yum 3.2.x\n"
- "Report-Msgid-Bugs-To: \n"
--"POT-Creation-Date: 2009-10-15 15:45+0200\n"
--"PO-Revision-Date: 2009-10-15 15:30+0200\n"
--"Last-Translator: Adam Pribyl <pribyl at lowlevel.cz>\n"
--"Language-Team: American English <fedora-cs-list at redhat.com>\n"
-+"POT-Creation-Date: 2010-02-11 10:54-0500\n"
-+"PO-Revision-Date: 2010-06-14 10:55+0200\n"
-+"Last-Translator: Petr Pisar <ppisar at redhat.com>\n"
-+"Language-Team: Czech Fedora <diskuse at lists.l10n.cz>\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
-+#: ../callback.py:48 ../output.py:947 ../yum/rpmtrans.py:72
- msgid "Updating"
- msgstr "Aktualizuje se"
- 
--#: ../callback.py:49 ../yum/rpmtrans.py:72
-+#: ../callback.py:49 ../yum/rpmtrans.py:73
- 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
-+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:946
-+#: ../output.py:1659 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:75
-+#: ../yum/rpmtrans.py:77
- msgid "Installing"
- msgstr "Instaluje se"
- 
--#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
-+#: ../callback.py:52 ../callback.py:58 ../output.py:1484 ../yum/rpmtrans.py:76
- msgid "Obsoleted"
- msgstr "Zastaralé"
- 
--#: ../callback.py:54 ../output.py:1063 ../output.py:1403
-+#: ../callback.py:54 ../output.py:1070 ../output.py:1442 ../output.py:1491
- msgid "Updated"
- msgstr "Aktualizováno"
- 
--#: ../callback.py:55 ../output.py:1399
-+#: ../callback.py:55 ../output.py:1438
- msgid "Erased"
- msgstr "Smazáno"
- 
--#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1061
--#: ../output.py:1395
-+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1068
-+#: ../output.py:1434 ../output.py:1646
- msgid "Installed"
- msgstr "Nainstalováno"
- 
-@@ -64,68 +67,73 @@ msgstr "Chyba: neplatný výstupní stav: %s pro %s"
- msgid "Erased: %s"
- msgstr "Smazáno: %s"
- 
--#: ../callback.py:217 ../output.py:941
-+#: ../callback.py:217 ../output.py:948 ../output.py:1648
- msgid "Removing"
- msgstr "Odstraňuje se"
- 
--#: ../callback.py:219 ../yum/rpmtrans.py:77
-+#: ../callback.py:219 ../yum/rpmtrans.py:78
- msgid "Cleanup"
--msgstr "Čiští se"
-+msgstr "Čistí se"
- 
--#: ../cli.py:106
-+#: ../cli.py:107
- #, python-format
- msgid "Command \"%s\" already defined"
--msgstr "Přikaz \"%s\" již definován"
-+msgstr "Příkaz „%s“ již definován"
- 
--#: ../cli.py:118
-+#: ../cli.py:119
- msgid "Setting up repositories"
- msgstr "Nastavují se repozitáře"
- 
--#: ../cli.py:129
-+#: ../cli.py:130
- msgid "Reading repository metadata in from local files"
- msgstr "Načítají se metadata repozitářů z lokálních souborů"
- 
--#: ../cli.py:192 ../utils.py:107
-+#: ../cli.py:194 ../utils.py:193
- #, python-format
- msgid "Config Error: %s"
- msgstr "Chyba konfigurace: %s"
- 
--#: ../cli.py:195 ../cli.py:1251 ../utils.py:110
-+#: ../cli.py:197 ../cli.py:1272 ../utils.py:196
- #, python-format
- msgid "Options Error: %s"
- msgstr "Chybná volba: %s"
- 
--#: ../cli.py:223
-+#: ../cli.py:227
- #, python-format
- msgid "  Installed: %s-%s at %s"
- msgstr "  Nainstalováno: %s-%s na %s"
- 
--#: ../cli.py:225
-+#: ../cli.py:229
- #, python-format
- msgid "  Built    : %s at %s"
- msgstr "  Sestaveno    : %s na %s"
- 
--#: ../cli.py:227
-+#: ../cli.py:231
- #, python-format
- msgid "  Committed: %s at %s"
- msgstr "  Odesláno     : %s na %s"
- 
--#: ../cli.py:266
-+#: ../cli.py:270
- msgid "You need to give some command"
- msgstr "Musíte zadat nějaký příkaz"
- 
--#: ../cli.py:309
-+#: ../cli.py:284
-+#, python-format
-+msgid "No such command: %s. Please use %s --help"
-+msgstr "Neexistující příkaz: %s. Použijte %s --help"
-+
-+#: ../cli.py:314
- msgid "Disk Requirements:\n"
- msgstr "Diskové požadavky:\n"
- 
--#: ../cli.py:311
-+#: ../cli.py:316
- #, 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"
-+msgid "  At least %dMB more space needed on the %s filesystem.\n"
-+msgstr "  Je potřeba alespoň o %dMB více místa na souborovém systému %s.\n"
- 
- #. TODO: simplify the dependency errors?
- #. Fixup the summary
--#: ../cli.py:316
-+#: ../cli.py:321
- msgid ""
- "Error Summary\n"
- "-------------\n"
-@@ -133,144 +141,145 @@ msgstr ""
- "Přehled chyb\n"
- "------------\n"
- 
--#: ../cli.py:359
-+#: ../cli.py:364
- 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:395
-+#: ../cli.py:403
- msgid "Exiting on user Command"
--msgstr "Ukončeno na přikaz uživatele"
-+msgstr "Ukončeno na příkaz uživatele"
- 
--#: ../cli.py:399
-+#: ../cli.py:407
- msgid "Downloading Packages:"
- msgstr "Stahují se balíčky:"
- 
--#: ../cli.py:404
-+#: ../cli.py:412
- msgid "Error Downloading Packages:\n"
- msgstr "Chyba stahování balíčků:\n"
- 
--#: ../cli.py:418 ../yum/__init__.py:4014
-+#: ../cli.py:426 ../yum/__init__.py:4195
- msgid "Running rpm_check_debug"
--msgstr "Spuští se rpm_check_debug"
-+msgstr "Spouští se rpm_check_debug"
- 
--#: ../cli.py:427 ../yum/__init__.py:4023
-+#: ../cli.py:435 ../yum/__init__.py:4204
- msgid "ERROR You need to update rpm to handle:"
- msgstr "CHYBA Je potřeba aktualizovat rpm k provedení:"
- 
--#: ../cli.py:429 ../yum/__init__.py:4026
-+#: ../cli.py:437 ../yum/__init__.py:4207
- msgid "ERROR with rpm_check_debug vs depsolve:"
- msgstr "CHYBA v rpm_check_debug vs depsolve:"
- 
--#: ../cli.py:435
-+#: ../cli.py:443
- msgid "RPM needs to be updated"
- msgstr "Je potřeba aktualizovat RPM"
- 
--#: ../cli.py:436
-+#: ../cli.py:444
- #, python-format
- msgid "Please report this error in %s"
- msgstr "Oznamte prosím tuto chybu v %s"
- 
--#: ../cli.py:442
-+#: ../cli.py:450
- msgid "Running Transaction Test"
- msgstr "Spouští se test transakcí"
- 
--#: ../cli.py:458
--msgid "Finished Transaction Test"
--msgstr "Test transakcí dokončen"
--
--#: ../cli.py:460
-+#: ../cli.py:466
- msgid "Transaction Check Error:\n"
- msgstr "Chyba při kontrole transakcí:\n"
- 
--#: ../cli.py:467
-+#: ../cli.py:473
- msgid "Transaction Test Succeeded"
- msgstr "Test transakcí uspěl"
- 
--#: ../cli.py:489
-+#: ../cli.py:495
- msgid "Running Transaction"
- msgstr "Spouští se transakce"
- 
--#: ../cli.py:519
-+#: ../cli.py:525
- 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í."
-+"Použijte \"-y\" k potlačení."
- 
--#: ../cli.py:538 ../cli.py:572
-+#: ../cli.py:544 ../cli.py:578
- msgid "  * Maybe you meant: "
- msgstr "  * Možná jste myslel: "
- 
--#: ../cli.py:555 ../cli.py:563
-+#: ../cli.py:561 ../cli.py:569
- #, python-format
- msgid "Package(s) %s%s%s available, but not installed."
- msgstr "Balíček(y) %s%s%s dostupný/é, ale nenainstalovaný/é."
- 
--#: ../cli.py:569 ../cli.py:600 ../cli.py:678
-+#: ../cli.py:575 ../cli.py:607 ../cli.py:687
- #, python-format
- msgid "No package %s%s%s available."
- msgstr "Balíček %s%s%s není dostupný."
- 
--#: ../cli.py:605 ../cli.py:738
-+#: ../cli.py:612 ../cli.py:748
- msgid "Package(s) to install"
- msgstr "Balíček(y) k instalaci"
- 
--#: ../cli.py:606 ../cli.py:684 ../cli.py:717 ../cli.py:739
--#: ../yumcommands.py:159
-+#: ../cli.py:613 ../cli.py:693 ../cli.py:727 ../cli.py:749
-+#: ../yumcommands.py:160
- msgid "Nothing to do"
- msgstr "Není co dělat"
- 
--#: ../cli.py:639
-+#: ../cli.py:647
- #, python-format
- msgid "%d packages marked for Update"
- msgstr "%d balíčků označeno k aktualizaci"
- 
--#: ../cli.py:642
-+#: ../cli.py:650
- msgid "No Packages marked for Update"
- msgstr "Žádné balíčky označené k aktualizaci"
- 
--#: ../cli.py:656
-+#: ../cli.py:664
- #, python-format
- msgid "%d packages marked for removal"
- msgstr "%d balíčků označeno ke smazání"
- 
--#: ../cli.py:659
-+#: ../cli.py:667
- msgid "No Packages marked for removal"
- msgstr "Žádné balíčky označené k odstranění"
- 
--#: ../cli.py:683
-+#: ../cli.py:692
- msgid "Package(s) to downgrade"
- msgstr "Balíček(y) ke snížení verze"
- 
--#: ../cli.py:707
-+#: ../cli.py:717
- #, python-format
- msgid " (from %s)"
- msgstr " (z %s)"
- 
--#: ../cli.py:709
-+#: ../cli.py:719
- #, python-format
- msgid "Installed package %s%s%s%s not available."
- msgstr "Instalované balíčky  %s%s%s%s nejsou dostupné"
- 
--#: ../cli.py:716
-+#: ../cli.py:726
- msgid "Package(s) to reinstall"
- msgstr "Balíček(y) k reinstalaci"
- 
--#: ../cli.py:729
-+#: ../cli.py:739
- msgid "No Packages Provided"
- msgstr "Žádný balíček neposkytuje"
- 
--#: ../cli.py:813
-+#: ../cli.py:818
-+#, python-format
-+msgid "Matched: %s"
-+msgstr "Shoda: %s"
-+
-+#: ../cli.py:825
- #, python-format
- msgid "Warning: No matches found for: %s"
- msgstr "Varování: Žádný balíček odpovídající: %s"
- 
--#: ../cli.py:816
-+#: ../cli.py:828
- msgid "No Matches found"
- msgstr "Nebyla nalezena shoda"
- 
--#: ../cli.py:855
-+#: ../cli.py:868
- #, python-format
- msgid ""
- "Warning: 3.0.x versions of yum would erroneously match against filenames.\n"
-@@ -279,106 +288,110 @@ 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:871
-+#: ../cli.py:884
- #, python-format
- msgid "No Package Found for %s"
- msgstr "Nebyly nalezeny balíčky pro %s"
- 
--#: ../cli.py:883
-+#: ../cli.py:896
- msgid "Cleaning up Everything"
- msgstr "Čistí se vše"
- 
--#: ../cli.py:897
-+#: ../cli.py:912
- msgid "Cleaning up Headers"
- msgstr "Čistí se hlavičky"
- 
--#: ../cli.py:900
-+#: ../cli.py:915
- msgid "Cleaning up Packages"
- msgstr "Čistí se balíčky"
- 
--#: ../cli.py:903
-+#: ../cli.py:918
- msgid "Cleaning up xml metadata"
- msgstr "Čistí se XML metadata"
- 
--#: ../cli.py:906
-+#: ../cli.py:921
- msgid "Cleaning up database cache"
- msgstr "Čistí se skladiště databáze"
- 
--#: ../cli.py:909
-+#: ../cli.py:924
- msgid "Cleaning up expire-cache metadata"
--msgstr "Čistí se vypršelá metadata ze skladiště"
-+msgstr "Ze skladiště se odstraňují zastaralá metadata"
- 
--#: ../cli.py:912
-+#: ../cli.py:927
-+msgid "Cleaning up cached rpmdb data"
-+msgstr "Čistí se skladiště rpmdb dat"
-+
-+#: ../cli.py:930
- msgid "Cleaning up plugins"
- msgstr "Čistí se zásuvné moduly"
- 
--#: ../cli.py:937
-+#: ../cli.py:955
- msgid "Installed Groups:"
--msgstr "Naintalované skupiny:"
-+msgstr "Nainstalované skupiny:"
- 
--#: ../cli.py:949
-+#: ../cli.py:967
- msgid "Available Groups:"
- msgstr "Dostupné skupiny:"
- 
--#: ../cli.py:959
-+#: ../cli.py:977
- msgid "Done"
- msgstr "Dokončeno"
- 
--#: ../cli.py:970 ../cli.py:988 ../cli.py:994 ../yum/__init__.py:2629
-+#: ../cli.py:988 ../cli.py:1006 ../cli.py:1012 ../yum/__init__.py:2788
- #, python-format
- msgid "Warning: Group %s does not exist."
- msgstr "Varování: skupina %s neexistuje."
- 
--#: ../cli.py:998
-+#: ../cli.py:1016
- msgid "No packages in any requested group available to install or update"
- msgstr ""
- "V žádné z požadovaných skupin nejsou balíčky k instalaci nebo aktualizaci"
- 
--#: ../cli.py:1000
-+#: ../cli.py:1018
- #, python-format
- msgid "%d Package(s) to Install"
- msgstr "%d balíček(ů) k instalaci"
- 
--#: ../cli.py:1010 ../yum/__init__.py:2641
-+#: ../cli.py:1028 ../yum/__init__.py:2800
- #, python-format
- msgid "No group named %s exists"
- msgstr "Neexistuje skupina se jménem %s"
- 
--#: ../cli.py:1016
-+#: ../cli.py:1034
- msgid "No packages to remove from groups"
- msgstr "Žádné balíčky k odstranění ve skupině"
- 
--#: ../cli.py:1018
-+#: ../cli.py:1036
- #, python-format
- msgid "%d Package(s) to remove"
- msgstr "%d balíček(ů) k odstranění"
- 
--#: ../cli.py:1060
-+#: ../cli.py:1078
- #, python-format
- msgid "Package %s is already installed, skipping"
- msgstr "Balíček %s je již nainstalován, přeskakuje se"
- 
--#: ../cli.py:1071
-+#: ../cli.py:1089
- #, 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:1097
-+#: ../cli.py:1115
- #, 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:1117
-+#: ../cli.py:1135
- msgid "Plugin Options"
- msgstr "Možnosti zásuvného modulu"
- 
--#: ../cli.py:1125
-+#: ../cli.py:1143
- #, python-format
- msgid "Command line error: %s"
- msgstr "Chyba příkazové řádky: %s"
- 
--#: ../cli.py:1138
-+#: ../cli.py:1156
- #, python-format
- msgid ""
- "\n"
-@@ -389,106 +402,115 @@ msgstr ""
- "\n"
- "%s: %s volba vyžaduje argument"
- 
--#: ../cli.py:1191
-+#: ../cli.py:1209
- msgid "--color takes one of: auto, always, never"
- msgstr "--color přijímá jeden z: auto, always, never"
- 
--#: ../cli.py:1298
-+#: ../cli.py:1319
- msgid "show this help message and exit"
- msgstr "ukázat tuto nápovědu a skončit"
- 
--#: ../cli.py:1302
-+#: ../cli.py:1323
- msgid "be tolerant of errors"
- msgstr "tolerovat chyby"
- 
--#: ../cli.py:1304
--msgid "run entirely from cache, don't update cache"
--msgstr "spustit vše z neaktualizovaného skladiště"
-+#: ../cli.py:1326
-+msgid "run entirely from system cache, don't update cache"
-+msgstr "spustit vše ze systémového skladiště, bez jeho aktualizace"
- 
--#: ../cli.py:1306
-+#: ../cli.py:1329
- msgid "config file location"
- msgstr "umístění konfiguračního souboru"
- 
--#: ../cli.py:1308
-+#: ../cli.py:1332
- msgid "maximum command wait time"
- msgstr "maximální čas čekání na příkaz"
- 
--#: ../cli.py:1310
-+#: ../cli.py:1334
- msgid "debugging output level"
- msgstr "úroveň výstupních ladících informací"
- 
--#: ../cli.py:1314
-+#: ../cli.py:1338
- msgid "show duplicates, in repos, in list/search commands"
- msgstr "ukázat duplikáty v repozitářích, v list/search příkazech"
- 
--#: ../cli.py:1316
-+#: ../cli.py:1340
- msgid "error output level"
- msgstr "úroveň výstupu chyb"
- 
--#: ../cli.py:1319
-+#: ../cli.py:1343
-+msgid "debugging output level for rpm"
-+msgstr "úroveň výstupních ladících informací pro rpm"
-+
-+#: ../cli.py:1346
- msgid "quiet operation"
- msgstr "tichý chod"
- 
--#: ../cli.py:1321
-+#: ../cli.py:1348
- msgid "verbose operation"
- msgstr "užvaněný chod"
- 
--#: ../cli.py:1323
-+#: ../cli.py:1350
- msgid "answer yes for all questions"
- msgstr "odpovědět ano na všechny otázky"
- 
--#: ../cli.py:1325
-+#: ../cli.py:1352
- msgid "show Yum version and exit"
- msgstr "ukázat verzi yumu a skončit"
- 
--#: ../cli.py:1326
-+#: ../cli.py:1353
- msgid "set install root"
- msgstr "nastavit kořen instalace "
- 
--#: ../cli.py:1330
-+#: ../cli.py:1357
- msgid "enable one or more repositories (wildcards allowed)"
- msgstr "povolit jeden nebo více repozitářů (zástupné znaky povoleny)"
- 
--#: ../cli.py:1334
-+#: ../cli.py:1361
- msgid "disable one or more repositories (wildcards allowed)"
- msgstr "zakázat jeden nebo více repozitářů (zástupné znaky povoleny)"
- 
--#: ../cli.py:1337
-+#: ../cli.py:1364
- msgid "exclude package(s) by name or glob"
- msgstr "vyřadit balíček(y) podle jména nebo globálně"
- 
--#: ../cli.py:1339
-+#: ../cli.py:1366
- 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:1342
-+#: ../cli.py:1369
- msgid "enable obsoletes processing during updates"
- msgstr "povolit zpracování zastaralých během aktualizací"
- 
--#: ../cli.py:1344
-+#: ../cli.py:1371
- msgid "disable Yum plugins"
- msgstr "zakázat zásuvné moduly yumu"
- 
--#: ../cli.py:1346
-+#: ../cli.py:1373
- msgid "disable gpg signature checking"
- msgstr "zakázat kontrolu GPG podpisů"
- 
--#: ../cli.py:1348
-+#: ../cli.py:1375
- msgid "disable plugins by name"
- msgstr "zakázat zásuvné moduly podle jména"
- 
--#: ../cli.py:1351
-+#: ../cli.py:1378
- msgid "enable plugins by name"
- msgstr "povolit zásuvné moduly podle jména"
- 
--#: ../cli.py:1354
-+#: ../cli.py:1381
- msgid "skip packages with depsolving problems"
- msgstr "přeskočit balíčky s problémy v závislostech"
- 
--#: ../cli.py:1356
-+#: ../cli.py:1383
- msgid "control whether color is used"
- msgstr "kontrola zda jsou použity barvy"
- 
-+#: ../cli.py:1385
-+msgid "set value of $releasever in yum config and repo files"
-+msgstr "nastavte hodnotu $releasever v konfiguraci yumu a repo souborech"
-+
-+# FIXME: Do not hardoce month abbreviations, use glibc instead
- #: ../output.py:305
- msgid "Jan"
- msgstr "Led"
-@@ -527,7 +549,7 @@ msgstr "Zář"
- 
- #: ../output.py:306
- msgid "Oct"
--msgstr "Řij"
-+msgstr "Říj"
- 
- #: ../output.py:306
- msgid "Nov"
-@@ -541,105 +563,104 @@ msgstr "Pro"
- msgid "Trying other mirror."
- msgstr "Zkouší se jiné zrcadlo"
- 
--#: ../output.py:538
-+#: ../output.py:534
- #, python-format
- msgid "Name       : %s%s%s"
- msgstr "Jméno      : %s%s%s"
- 
--#: ../output.py:539
-+#: ../output.py:535
- #, python-format
- msgid "Arch       : %s"
- msgstr "Arch       : %s"
- 
--#: ../output.py:541
-+#: ../output.py:537
- #, python-format
- msgid "Epoch      : %s"
- msgstr "Epocha     : %s"
- 
--#: ../output.py:542
-+#: ../output.py:538
- #, python-format
- msgid "Version    : %s"
- msgstr "Verze      : %s"
- 
--#: ../output.py:543
-+#: ../output.py:539
- #, python-format
- msgid "Release    : %s"
- msgstr "Vydání     : %s"
- 
--#: ../output.py:544
-+#: ../output.py:540
- #, python-format
- msgid "Size       : %s"
- msgstr "Velikost   : %s"
- 
--#: ../output.py:545
-+#: ../output.py:541
- #, python-format
- msgid "Repo       : %s"
- msgstr "Repo       : %s"
- 
--#: ../output.py:547
-+#: ../output.py:543
- #, python-format
- msgid "From repo  : %s"
- msgstr "Z repa     : %s"
- 
--#: ../output.py:549
-+#: ../output.py:545
- #, python-format
- msgid "Committer  : %s"
- msgstr "Vloženo    : %s"
- 
--#: ../output.py:550
-+#: ../output.py:546
- #, python-format
- msgid "Committime : %s"
- msgstr "Čas vložení : %s"
- 
--#: ../output.py:551
-+#: ../output.py:547
- #, python-format
- msgid "Buildtime  : %s"
- msgstr "Sestaveno  : %s"
- 
--#: ../output.py:553
-+#: ../output.py:549
- #, python-format
- msgid "Installtime: %s"
- msgstr "Instalováno: %s"
- 
--#: ../output.py:554
-+#: ../output.py:550
- msgid "Summary    : "
- msgstr "Souhrn     : "
- 
--#: ../output.py:556
-+#: ../output.py:552
- #, python-format
- msgid "URL        : %s"
- msgstr "URL        : %s"
- 
--#: ../output.py:557
--#, python-format
--msgid "License    : %s"
--msgstr "Licence    : %s"
-+#: ../output.py:553
-+msgid "License    : "
-+msgstr "Licence    : "
- 
--#: ../output.py:558
-+#: ../output.py:554
- msgid "Description: "
- msgstr "Popis      : "
- 
--#: ../output.py:626
-+#: ../output.py:622
- msgid "y"
- msgstr "a"
- 
--#: ../output.py:626
-+#: ../output.py:622
- msgid "yes"
- msgstr "ano"
- 
--#: ../output.py:627
-+#: ../output.py:623
- msgid "n"
- msgstr "n"
- 
--#: ../output.py:627
-+#: ../output.py:623
- msgid "no"
- msgstr "ne"
- 
--#: ../output.py:631
-+#: ../output.py:627
- msgid "Is this ok [y/N]: "
- msgstr "V pořádku [a/N]: "
- 
--#: ../output.py:722
-+#: ../output.py:715
- #, python-format
- msgid ""
- "\n"
-@@ -648,150 +669,151 @@ msgstr ""
- "\n"
- "Skupina: %s"
- 
--#: ../output.py:726
-+#: ../output.py:719
- #, python-format
- msgid " Group-Id: %s"
- msgstr " ID skupiny: %s"
- 
--#: ../output.py:731
-+#: ../output.py:724
- #, python-format
- msgid " Description: %s"
- msgstr " Popis: %s"
- 
--#: ../output.py:733
-+#: ../output.py:726
- msgid " Mandatory Packages:"
- msgstr " Povinné balíčky:"
- 
--#: ../output.py:734
-+#: ../output.py:727
- msgid " Default Packages:"
- msgstr " Výchozí balíčky:"
- 
--#: ../output.py:735
-+#: ../output.py:728
- msgid " Optional Packages:"
- msgstr " Volitelné balíčky:"
- 
--#: ../output.py:736
-+#: ../output.py:729
- msgid " Conditional Packages:"
- msgstr " Podmínečné balíčky:"
- 
--#: ../output.py:756
-+#: ../output.py:749
- #, python-format
- msgid "package: %s"
- msgstr "balíčky: %s"
- 
--#: ../output.py:758
-+#: ../output.py:751
- msgid "  No dependencies for this package"
- msgstr "  Pro tento balíček nejsou žádné závislosti"
- 
--#: ../output.py:763
-+#: ../output.py:756
- #, python-format
- msgid "  dependency: %s"
- msgstr "  závislosti: %s"
- 
--#: ../output.py:765
-+#: ../output.py:758
- msgid "   Unsatisfied dependency"
- msgstr "   Neuspokojené závislosti"
- 
--#: ../output.py:837
-+#: ../output.py:830
- #, python-format
- msgid "Repo        : %s"
- msgstr "Repo        : %s"
- 
--#: ../output.py:838
-+#: ../output.py:831
- msgid "Matched from:"
- msgstr "Shoda s:"
- 
--#: ../output.py:847
-+#: ../output.py:840
- msgid "Description : "
- msgstr "Popis       : "
- 
--#: ../output.py:850
-+#: ../output.py:843
- #, python-format
- msgid "URL         : %s"
- msgstr "URL         : %s"
- 
--#: ../output.py:853
-+#: ../output.py:846
- #, python-format
- msgid "License     : %s"
- msgstr "Licence     : %s"
- 
--#: ../output.py:856
-+#: ../output.py:849
- #, python-format
- msgid "Filename    : %s"
- msgstr "Soubor      : %s"
- 
--#: ../output.py:860
-+#: ../output.py:853
- msgid "Other       : "
- msgstr "Další       : "
- 
--#: ../output.py:893
-+#: ../output.py:896
- msgid "There was an error calculating total download size"
- msgstr "Při výpočtu celkové velikosti stahování nastala chyba"
- 
--#: ../output.py:898
-+#: ../output.py:901
- #, python-format
- msgid "Total size: %s"
- msgstr "Celková velikost: %s"
- 
--#: ../output.py:901
-+#: ../output.py:904
- #, python-format
- msgid "Total download size: %s"
- msgstr "Celková velikost stahování: %s"
- 
--#: ../output.py:942
-+#: ../output.py:908
-+#, python-format
-+msgid "Installed size: %s"
-+msgstr "Nainstalovaná velikost: %s"
-+
-+#: ../output.py:949
- msgid "Reinstalling"
--msgstr "Reinstaluje se"
-+msgstr "Přeinstalovává se"
- 
--#: ../output.py:943
-+#: ../output.py:950
- msgid "Downgrading"
- msgstr "Snižuje se verze"
- 
--#: ../output.py:944
-+#: ../output.py:951
- msgid "Installing for dependencies"
- msgstr "Instaluje se kvůli závislostem"
- 
--#: ../output.py:945
-+#: ../output.py:952
- msgid "Updating for dependencies"
- msgstr "Aktualizuje se kvůli závislostem"
- 
--#: ../output.py:946
-+#: ../output.py:953
- msgid "Removing for dependencies"
- msgstr "Odstraňuje se kvůli závislostem"
- 
--#: ../output.py:953 ../output.py:1065
-+#: ../output.py:960 ../output.py:1072
- msgid "Skipped (dependency problems)"
- msgstr "Přeskočeno (problémy se závislostmi)"
- 
--#: ../output.py:976
-+#: ../output.py:983
- msgid "Package"
- msgstr "Balíček"
- 
--#: ../output.py:976
-+#: ../output.py:983
- msgid "Arch"
- msgstr "Arch"
- 
--#: ../output.py:977
-+#: ../output.py:984
- msgid "Version"
- msgstr "Verze"
- 
--#: ../output.py:977
-+#: ../output.py:984
- msgid "Repository"
- msgstr "Repozitář"
- 
--#: ../output.py:978
-+#: ../output.py:985
- msgid "Size"
- msgstr "Vel."
- 
--#: ../output.py:990
-+#: ../output.py:997
- #, python-format
--msgid ""
--"     replacing  %s%s%s.%s %s\n"
--"\n"
--msgstr ""
--"     nahrazuje se  %s%s%s.%s %s\n"
--"\n"
-+msgid "     replacing  %s%s%s.%s %s\n"
-+msgstr "     nahrazuje se  %s%s%s.%s %s\n"
- 
--#: ../output.py:999
-+#: ../output.py:1006
- #, python-format
- msgid ""
- "\n"
-@@ -802,7 +824,7 @@ msgstr ""
- "Shrnutí transakce\n"
- "%s\n"
- 
--#: ../output.py:1006
-+#: ../output.py:1013
- #, python-format
- msgid ""
- "Install   %5.5s Package(s)\n"
-@@ -811,7 +833,7 @@ msgstr ""
- "Instalace     %5.5s balíčku/ů\n"
- "Aktualizace   %5.5s balíčku/ů\n"
- 
--#: ../output.py:1015
-+#: ../output.py:1022
- #, python-format
- msgid ""
- "Remove    %5.5s Package(s)\n"
-@@ -822,40 +844,41 @@ msgstr ""
- "Reinstalace   %5.5s balíčku/ů\n"
- "Snížení verze %5.5s balíčku/ů\n"
- 
--#: ../output.py:1059
-+#: ../output.py:1066
- msgid "Removed"
- msgstr "Odstraněno"
- 
--#: ../output.py:1060
-+#: ../output.py:1067
- msgid "Dependency Removed"
- msgstr "Odstraněné závislosti"
- 
--#: ../output.py:1062
-+#: ../output.py:1069
- msgid "Dependency Installed"
- msgstr "Nainstalované závislosti"
- 
--#: ../output.py:1064
-+#: ../output.py:1071
- msgid "Dependency Updated"
- msgstr "Aktualizované závislosti"
- 
--#: ../output.py:1066
-+#: ../output.py:1073
- msgid "Replaced"
- msgstr "Nahrazeno"
- 
--#: ../output.py:1067
-+#: ../output.py:1074
- msgid "Failed"
- msgstr "Selhalo"
- 
- #. Delta between C-c's so we treat as exit
--#: ../output.py:1133
-+#: ../output.py:1140
- msgid "two"
- msgstr "dvě"
- 
-+# FIXME: plurals
- #. 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
-+#: ../output.py:1151
- #, python-format
- msgid ""
- "\n"
-@@ -864,210 +887,368 @@ msgid ""
- "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 pro ukončení.\n"
-+"Aktuální stahování zrušeno, běh lze ukončit %sopakovaným přerušením "
-+"(ctrl-c)%s\n"
-+"během %s%s%s sekund.\n"
- 
--#: ../output.py:1155
-+#: ../output.py:1162
- msgid "user interrupt"
- msgstr "Přerušeno uživatelem"
- 
--#: ../output.py:1173
-+#: ../output.py:1180
- msgid "Total"
- msgstr "Celkem"
- 
-+#: ../output.py:1202
-+msgid "I"
-+msgstr "I"
-+
- #: ../output.py:1203
-+msgid "O"
-+msgstr "O"
-+
-+#: ../output.py:1204
-+msgid "E"
-+msgstr "E"
-+
-+#: ../output.py:1205
-+msgid "R"
-+msgstr "R"
-+
-+#: ../output.py:1206
-+msgid "D"
-+msgstr "D"
-+
-+#: ../output.py:1207
-+msgid "U"
-+msgstr "U"
-+
-+#: ../output.py:1217
- msgid "<unset>"
- msgstr "<nenastaveno>"
- 
--#: ../output.py:1204
-+#: ../output.py:1218
- msgid "System"
- msgstr "Systém"
- 
--#: ../output.py:1240
-+#: ../output.py:1254
- msgid "Bad transaction IDs, or package(s), given"
--msgstr "Zadáné špatné ID transakce nebo balíčku/ů"
-+msgstr "Zadáno špatné ID transakce nebo balíčku/ů"
-+
-+#: ../output.py:1266
-+msgid "ID"
-+msgstr "ID"
-+
-+#: ../output.py:1267 ../output.py:1520
-+msgid "Login user"
-+msgstr "Přihlášení uživatele"
- 
--#: ../output.py:1284 ../yumcommands.py:1149 ../yum/__init__.py:1067
--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:1268
-+msgid "Date and time"
-+msgstr "Datum a čas"
- 
--#: ../output.py:1289
-+#: ../output.py:1269 ../output.py:1522
-+msgid "Action(s)"
-+msgstr "Akce"
-+
-+#: ../output.py:1270 ../output.py:1523
-+msgid "Altered"
-+msgstr "Pozměněno"
-+
-+#: ../output.py:1310
- msgid "No transaction ID given"
- msgstr "Nezadáno ID transakce"
- 
--#: ../output.py:1297
-+#: ../output.py:1336
- msgid "Bad transaction ID given"
- msgstr "Špatné ID transakce"
- 
--#: ../output.py:1302
-+#: ../output.py:1341
- msgid "Not found given transaction ID"
- msgstr "Zadané ID transakce nenalezeno"
- 
--#: ../output.py:1310
-+#: ../output.py:1349
- msgid "Found more than one transaction ID!"
- msgstr "Nalezeno více než jedno ID transakce!"
- 
--#: ../output.py:1331
-+#: ../output.py:1370
- msgid "No transaction ID, or package, given"
- msgstr "Nebylo zadáno ID transakce nebo balíčku/ů"
- 
--#: ../output.py:1357
-+#: ../output.py:1396
- msgid "Transaction ID :"
- msgstr "ID transakce:"
- 
--#: ../output.py:1359
-+#: ../output.py:1398
- msgid "Begin time     :"
- msgstr "Počáteční čas  :"
- 
--#: ../output.py:1362 ../output.py:1364
-+#: ../output.py:1401 ../output.py:1403
- msgid "Begin rpmdb    :"
- msgstr "Začátek rpmdb  :"
- 
--#: ../output.py:1378
-+#: ../output.py:1417
- #, python-format
- msgid "(%s seconds)"
- msgstr "(%s sekund)"
- 
--#: ../output.py:1379
-+#: ../output.py:1418
- msgid "End time       :"
- msgstr "Konečný čas    :"
- 
--#: ../output.py:1382 ../output.py:1384
-+#: ../output.py:1421 ../output.py:1423
- msgid "End rpmdb      :"
- msgstr "Konec rpmdb    :"
- 
--#: ../output.py:1385
-+#: ../output.py:1424
- msgid "User           :"
- msgstr "Uživatel       :"
- 
--#: ../output.py:1387 ../output.py:1389 ../output.py:1391
-+#: ../output.py:1426 ../output.py:1428 ../output.py:1430
- msgid "Return-Code    :"
- msgstr "Návratový kód  :"
- 
--#: ../output.py:1387
-+#: ../output.py:1426
- msgid "Aborted"
- msgstr "Přerušeno"
- 
--#: ../output.py:1389
-+#: ../output.py:1428
- msgid "Failure:"
- msgstr "Selhalo:"
- 
--#: ../output.py:1391
-+#: ../output.py:1430
- msgid "Success"
- msgstr "Úspěch"
- 
--#: ../output.py:1392
-+#: ../output.py:1431
- msgid "Transaction performed with:"
- msgstr "Transakce proběhla s:"
- 
--#: ../output.py:1405
-+#: ../output.py:1444 ../output.py:1489
- msgid "Downgraded"
- msgstr "Snížena verze"
- 
- #. multiple versions installed, both older and newer
--#: ../output.py:1407
-+#: ../output.py:1446
- msgid "Weird"
- msgstr "Divné"
- 
--#: ../output.py:1409
-+#: ../output.py:1448
- msgid "Packages Altered:"
- msgstr "Pozměněné balíčky:"
- 
--#: ../output.py:1412
-+#: ../output.py:1451
- msgid "Scriptlet output:"
- msgstr "Výstup skriptletu:"
- 
--#: ../output.py:1418
-+#: ../output.py:1457
- msgid "Errors:"
- msgstr "Chyby:"
- 
--#: ../output.py:1489
-+#: ../output.py:1481 ../output.py:1482
-+msgid "Install"
-+msgstr "Instalovat"
-+
-+#: ../output.py:1483
-+msgid "Dep-Install"
-+msgstr "Instalovat závislosti"
-+
-+#: ../output.py:1485
-+msgid "Obsoleting"
-+msgstr "Zastaralé"
-+
-+#: ../output.py:1486
-+msgid "Erase"
-+msgstr "Smazat"
-+
-+#: ../output.py:1487
-+msgid "Reinstall"
-+msgstr "Přeinstalovat"
-+
-+#: ../output.py:1488
-+msgid "Downgrade"
-+msgstr "Snížit verzi"
-+
-+#: ../output.py:1490
-+msgid "Update"
-+msgstr "Aktualizovat"
-+
-+#: ../output.py:1521
-+msgid "Time"
-+msgstr "Čas"
-+
-+#: ../output.py:1547
- msgid "Last day"
- msgstr "Poslední den"
- 
--#: ../output.py:1490
-+#: ../output.py:1548
- msgid "Last week"
- msgstr "Poslední týden"
- 
--#: ../output.py:1491
-+#: ../output.py:1549
- msgid "Last 2 weeks"
- msgstr "Poslední 2 týdny"
- 
- #. US default :p
--#: ../output.py:1492
-+#: ../output.py:1550
- msgid "Last 3 months"
- msgstr "Poslední 3 měsíce"
- 
--#: ../output.py:1493
-+#: ../output.py:1551
- msgid "Last 6 months"
- msgstr "Posledních 6 měsíců"
- 
--#: ../output.py:1494
-+#: ../output.py:1552
- msgid "Last year"
- msgstr "Poslední rok"
- 
--#: ../output.py:1495
-+#: ../output.py:1553
- msgid "Over a year ago"
- msgstr "Více než rok"
- 
--#: ../output.py:1524
-+#: ../output.py:1585
- msgid "installed"
- msgstr "instalaci"
- 
--#: ../output.py:1525
-+#: ../output.py:1586
- msgid "updated"
- msgstr "aktualizaci"
- 
--#: ../output.py:1526
-+#: ../output.py:1587
- msgid "obsoleted"
- msgstr "zastarání"
- 
--#: ../output.py:1527
-+#: ../output.py:1588
- msgid "erased"
- msgstr "smazání"
- 
--#: ../output.py:1531
-+#: ../output.py:1592
- #, python-format
- msgid "---> Package %s.%s %s:%s-%s set to be %s"
- msgstr "---> Balíček %s.%s %s:%s-%s nastaven k %s"
- 
--#: ../output.py:1538
-+#: ../output.py:1599
- msgid "--> Running transaction check"
- msgstr "--> Spouští se kontrola transakce"
- 
--#: ../output.py:1543
-+#: ../output.py:1604
- msgid "--> Restarting Dependency Resolution with new changes."
- msgstr "--> Restartuje se řešení závislostí s novými změnami."
- 
--#: ../output.py:1548
-+#: ../output.py:1609
- msgid "--> Finished Dependency Resolution"
- msgstr "--> Řešení závislostí dokončeno"
- 
--#: ../output.py:1553 ../output.py:1558
-+#: ../output.py:1614 ../output.py:1619
- #, python-format
- msgid "--> Processing Dependency: %s for package: %s"
- msgstr "--> Zpracování závislosti: %s pro balíček: %s"
- 
--#: ../output.py:1562
-+#: ../output.py:1623
- #, python-format
- msgid "--> Unresolved Dependency: %s"
- msgstr "--> Nevyřešená závislost: %s"
- 
--#: ../output.py:1568 ../output.py:1573
-+#: ../output.py:1634
-+#, python-format
-+msgid "Package: %s"
-+msgstr "Balíček: %s"
-+
-+#: ../output.py:1636
-+#, python-format
-+msgid ""
-+"\n"
-+"    Requires: %s"
-+msgstr ""
-+"\n"
-+"    Vyžaduje: %s"
-+
-+#: ../output.py:1649 ../output.py:1660
-+#, python-format
-+msgid ""
-+"\n"
-+"    %s: %s (%s)"
-+msgstr ""
-+"\n"
-+"    %s: %s (%s)"
-+
-+#: ../output.py:1657
-+msgid "Available"
-+msgstr "Dostupné"
-+
-+#: ../output.py:1665 ../output.py:1670
- #, python-format
- msgid "--> Processing Conflict: %s conflicts %s"
- msgstr "--> Zpracování konfliktu: %s je v konfliktu s %s"
- 
--#: ../output.py:1577
-+#: ../output.py:1674
- msgid "--> Populating transaction set with selected packages. Please wait."
- msgstr "--> Do transakční sady se přidávají vybrané balíčky. Čekejte prosím."
- 
--#: ../output.py:1581
-+#: ../output.py:1678
- #, 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:137 ../yummain.py:42
-+#: ../utils.py:93
-+msgid "Running"
-+msgstr "Běží"
-+
-+#: ../utils.py:94
-+msgid "Sleeping"
-+msgstr "Spí"
-+
-+#: ../utils.py:95
-+msgid "Uninterruptible"
-+msgstr "Nepřerušitelné"
-+
-+#: ../utils.py:96
-+msgid "Zombie"
-+msgstr "Zombie"
-+
-+#: ../utils.py:97
-+msgid "Traced/Stopped"
-+msgstr "Trasován/Zastaven"
-+
-+#: ../utils.py:98 ../yumcommands.py:917
-+msgid "Unknown"
-+msgstr "Neznámý"
-+
-+#: ../utils.py:109
-+msgid "  The other application is: PackageKit"
-+msgstr "  Další aplikace je: PackageKit"
-+
-+#: ../utils.py:111
-+#, python-format
-+msgid "  The other application is: %s"
-+msgstr "  Další aplikace je: %s"
-+
-+#: ../utils.py:114
-+#, python-format
-+msgid "    Memory : %5s RSS (%5sB VSZ)"
-+msgstr "    Paměť  : %5s RSS (%5sB VSZ)"
-+
-+#: ../utils.py:119
-+#, python-format
-+msgid "    Started: %s - %s ago"
-+msgstr "    Spuštěn: %s - %s nazpět"
-+
-+#: ../utils.py:121
-+#, python-format
-+msgid "    State  : %s, pid: %d"
-+msgstr "    Stav   : %s, pid: %d"
-+
-+#: ../utils.py:199
-+#, python-format
-+msgid "PluginExit Error: %s"
-+msgstr "Chyba PluginExit: %s"
-+
-+#: ../utils.py:202
-+#, python-format
-+msgid "Yum Error: %s"
-+msgstr "Chyba Yumu: %s"
-+
-+#: ../utils.py:235 ../yummain.py:42
- msgid ""
- "\n"
- "\n"
-@@ -1077,7 +1258,7 @@ msgstr ""
- "\n"
- "Ukončeno na základě pokynu uživatele"
- 
--#: ../utils.py:143 ../yummain.py:48
-+#: ../utils.py:241 ../yummain.py:48
- msgid ""
- "\n"
- "\n"
-@@ -1087,7 +1268,7 @@ msgstr ""
- "\n"
- "Ukončeno kvůli nefunkční rouře"
- 
--#: ../utils.py:145 ../yummain.py:50
-+#: ../utils.py:243 ../yummain.py:50
- #, python-format
- msgid ""
- "\n"
-@@ -1098,15 +1279,15 @@ msgstr ""
- "\n"
- "%s"
- 
--#: ../utils.py:184 ../yummain.py:273
-+#: ../utils.py:282 ../yummain.py:211
- msgid "Complete!"
- msgstr "Hotovo!"
- 
--#: ../yumcommands.py:42
-+#: ../yumcommands.py:43
- 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
-+#: ../yumcommands.py:50
- msgid ""
- "\n"
- "You have enabled checking of packages via GPG keys. This is a good thing. \n"
-@@ -1137,335 +1318,335 @@ msgstr ""
- "\n"
- "Více informací získáte u svého distributora nebo správce balíčku.\n"
- 
--#: ../yumcommands.py:69
-+#: ../yumcommands.py:70
- #, 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
-+#: ../yumcommands.py:76
- msgid "Error: Need an item to match"
- msgstr "Chyba: K nalezení shody je potřeba předmět"
- 
--#: ../yumcommands.py:81
-+#: ../yumcommands.py:82
- msgid "Error: Need a group or list of groups"
- msgstr "Chyba: Je potřeba skupina nebo seznam skupin"
- 
--#: ../yumcommands.py:90
-+#: ../yumcommands.py:91
- #, python-format
- msgid "Error: clean requires an option: %s"
- msgstr "Chyba: clean vyžaduje volbu: %s"
- 
--#: ../yumcommands.py:95
-+#: ../yumcommands.py:96
- #, python-format
- msgid "Error: invalid clean argument: %r"
- msgstr "Chyba: Neplatný argument pro clean: %r"
- 
--#: ../yumcommands.py:108
-+#: ../yumcommands.py:109
- msgid "No argument to shell"
- msgstr "Shell nemá žádný argument"
- 
--#: ../yumcommands.py:110
-+#: ../yumcommands.py:111
- #, python-format
- msgid "Filename passed to shell: %s"
- msgstr "Jméno souboru předané shellu: %s"
- 
--#: ../yumcommands.py:114
-+#: ../yumcommands.py:115
- #, 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
-+#: ../yumcommands.py:121
- 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
-+#: ../yumcommands.py:170
- msgid "PACKAGE..."
- msgstr "Balíček..."
- 
--#: ../yumcommands.py:172
-+#: ../yumcommands.py:173
- msgid "Install a package or packages on your system"
- msgstr "Instalovat balíček nebo balíčky do vašeho systému"
- 
--#: ../yumcommands.py:180
-+#: ../yumcommands.py:181
- msgid "Setting up Install Process"
- msgstr "Uspořádává se průběh instalace"
- 
--#: ../yumcommands.py:191
-+#: ../yumcommands.py:192
- msgid "[PACKAGE...]"
- msgstr "[Balíček...]"
- 
--#: ../yumcommands.py:194
-+#: ../yumcommands.py:195
- msgid "Update a package or packages on your system"
- msgstr "Aktualizovat balíček nebo balíčky na vašem systému"
- 
--#: ../yumcommands.py:201
-+#: ../yumcommands.py:202
- msgid "Setting up Update Process"
- msgstr "Uspořádává se průběh aktualizace"
- 
--#: ../yumcommands.py:246
-+#: ../yumcommands.py:244
- msgid "Display details about a package or group of packages"
- msgstr "Zobrazit detaily o balíčku nebo skupině balíčků"
- 
--#: ../yumcommands.py:295
-+#: ../yumcommands.py:293
- msgid "Installed Packages"
- msgstr "Nainstalované balíčky"
- 
--#: ../yumcommands.py:303
-+#: ../yumcommands.py:301
- msgid "Available Packages"
- msgstr "Dostupné balíčky"
- 
--#: ../yumcommands.py:307
-+#: ../yumcommands.py:305
- msgid "Extra Packages"
- msgstr "Dodatečné balíčky"
- 
--#: ../yumcommands.py:311
-+#: ../yumcommands.py:309
- msgid "Updated Packages"
- msgstr "Aktualizované balíčky"
- 
- #. This only happens in verbose mode
--#: ../yumcommands.py:319 ../yumcommands.py:326 ../yumcommands.py:603
-+#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:601
- msgid "Obsoleting Packages"
- msgstr "Zastaralé balíčky"
- 
--#: ../yumcommands.py:328
-+#: ../yumcommands.py:326
- msgid "Recently Added Packages"
- msgstr "Nově přidané balíčky"
- 
--#: ../yumcommands.py:335
-+#: ../yumcommands.py:333
- msgid "No matching Packages to list"
- msgstr "Nenalezeny shodné balíčky"
- 
--#: ../yumcommands.py:349
-+#: ../yumcommands.py:347
- msgid "List a package or groups of packages"
- msgstr "Vypsat balíček nebo skupiny balíčků"
- 
--#: ../yumcommands.py:361
-+#: ../yumcommands.py:359
- msgid "Remove a package or packages from your system"
- msgstr "Odstranit balíček nebo balíčky ze systému"
- 
--#: ../yumcommands.py:368
-+#: ../yumcommands.py:366
- msgid "Setting up Remove Process"
- msgstr "Uspořádává se průběh odstranění"
- 
--#: ../yumcommands.py:382
-+#: ../yumcommands.py:380
- msgid "Setting up Group Process"
- msgstr "Uspořádává se zpracování skupiny"
- 
--#: ../yumcommands.py:388
-+#: ../yumcommands.py:386
- msgid "No Groups on which to run command"
- msgstr "Nenalezeny skupiny, na které by šlo příkaz aplikovat"
- 
--#: ../yumcommands.py:401
-+#: ../yumcommands.py:399
- msgid "List available package groups"
- msgstr "Vypsat dostupné skupiny balíčků"
- 
--#: ../yumcommands.py:418
-+#: ../yumcommands.py:416
- msgid "Install the packages in a group on your system"
- msgstr "Instalovat balíčky ze skupiny do systému"
- 
--#: ../yumcommands.py:440
-+#: ../yumcommands.py:438
- msgid "Remove the packages in a group from your system"
- msgstr "Odstranit balíčky ze skupiny ze systému"
- 
--#: ../yumcommands.py:467
-+#: ../yumcommands.py:465
- msgid "Display details about a package group"
- msgstr "Zobrazit detaily o skupině balíčků"
- 
--#: ../yumcommands.py:491
-+#: ../yumcommands.py:489
- msgid "Generate the metadata cache"
- msgstr "Vygenerovat skladiště metadat"
- 
--#: ../yumcommands.py:497
-+#: ../yumcommands.py:495
- msgid "Making cache files for all metadata files."
- msgstr "Vytváří se skladištní soubory pro všechna metadata "
- 
--#: ../yumcommands.py:498
-+#: ../yumcommands.py:496
- msgid "This may take a while depending on the speed of this computer"
- msgstr "Může to chvíli trvat v závislosti na rychlosti tohoto počítače"
- 
--#: ../yumcommands.py:519
-+#: ../yumcommands.py:517
- msgid "Metadata Cache Created"
- msgstr "Skladiště metadat vytvořeno"
- 
--#: ../yumcommands.py:533
-+#: ../yumcommands.py:531
- msgid "Remove cached data"
- msgstr "Odstranit data ze skladiště"
- 
--#: ../yumcommands.py:553
-+#: ../yumcommands.py:551
- msgid "Find what package provides the given value"
- msgstr "Nalézt balíček, který poskytuje danou hodnotu"
- 
--#: ../yumcommands.py:573
-+#: ../yumcommands.py:571
- msgid "Check for available package updates"
- msgstr "Zkontrolovat dostupné aktualizace balíčků"
- 
--#: ../yumcommands.py:623
-+#: ../yumcommands.py:621
- msgid "Search package details for the given string"
- msgstr "Nalézt detaily balíčku pro daný řetězec"
- 
--#: ../yumcommands.py:629
-+#: ../yumcommands.py:627
- msgid "Searching Packages: "
- msgstr "Prohledávají se balíčky: "
- 
--#: ../yumcommands.py:646
-+#: ../yumcommands.py:644
- msgid "Update packages taking obsoletes into account"
- msgstr "Aktualizovat balíčky a brát v úvahu zastaralé"
- 
--#: ../yumcommands.py:654
-+#: ../yumcommands.py:652
- msgid "Setting up Upgrade Process"
--msgstr "Upořádává se průběh aktualizace"
-+msgstr "Uspořádává se průběh aktualizace"
- 
--#: ../yumcommands.py:668
-+#: ../yumcommands.py:666
- msgid "Install a local RPM"
- msgstr "Instalovat lokální RPM"
- 
--#: ../yumcommands.py:676
-+#: ../yumcommands.py:674
- msgid "Setting up Local Package Process"
- msgstr "Uspořádává se zpracování lokálního balíčku"
- 
--#: ../yumcommands.py:695
-+#: ../yumcommands.py:693
- msgid "Determine which package provides the given dependency"
- msgstr "Určit který balíček poskytuje danou závislost"
- 
--#: ../yumcommands.py:698
-+#: ../yumcommands.py:696
- msgid "Searching Packages for Dependency:"
- msgstr "Prohledávají se balíčky kvůli závislostem:"
- 
--#: ../yumcommands.py:712
-+#: ../yumcommands.py:710
- msgid "Run an interactive yum shell"
- msgstr "Spustit interaktivní shell yum"
- 
--#: ../yumcommands.py:718
-+#: ../yumcommands.py:716
- msgid "Setting up Yum Shell"
- msgstr "Nastavuje se yum shell"
- 
--#: ../yumcommands.py:736
-+#: ../yumcommands.py:734
- msgid "List a package's dependencies"
- msgstr "Zobrazit závislosti balíčku"
- 
--#: ../yumcommands.py:742
-+#: ../yumcommands.py:740
- msgid "Finding dependencies: "
- msgstr "Hledají se závislosti: "
- 
--#: ../yumcommands.py:758
-+#: ../yumcommands.py:756
- msgid "Display the configured software repositories"
- msgstr "Zobrazit nastavené repozitáře softwaru"
- 
--#: ../yumcommands.py:810 ../yumcommands.py:811
-+#: ../yumcommands.py:822 ../yumcommands.py:823
- msgid "enabled"
- msgstr "povoleno"
- 
--#: ../yumcommands.py:819 ../yumcommands.py:820
-+#: ../yumcommands.py:849 ../yumcommands.py:850
- msgid "disabled"
- msgstr "zakázáno"
- 
--#: ../yumcommands.py:834
-+#: ../yumcommands.py:866
- msgid "Repo-id      : "
- msgstr "Repo-id      : "
- 
--#: ../yumcommands.py:835
-+#: ../yumcommands.py:867
- msgid "Repo-name    : "
- msgstr "Repo-jméno   : "
- 
--#: ../yumcommands.py:836
-+#: ../yumcommands.py:870
- msgid "Repo-status  : "
- msgstr "Repo-status  : "
- 
--#: ../yumcommands.py:838
-+#: ../yumcommands.py:873
- msgid "Repo-revision: "
- msgstr "Repo-revize  : "
- 
--#: ../yumcommands.py:842
-+#: ../yumcommands.py:877
- msgid "Repo-tags    : "
- msgstr "Repo-tagy    : "
- 
--#: ../yumcommands.py:848
-+#: ../yumcommands.py:883
- msgid "Repo-distro-tags: "
- msgstr "Repo-distro-tagy: "
- 
--#: ../yumcommands.py:853
-+#: ../yumcommands.py:888
- msgid "Repo-updated : "
- msgstr "Repo-aktuální: "
- 
--#: ../yumcommands.py:855
-+#: ../yumcommands.py:890
- msgid "Repo-pkgs    : "
- msgstr "Repo-bal.    : "
- 
--#: ../yumcommands.py:856
-+#: ../yumcommands.py:891
- msgid "Repo-size    : "
- msgstr "Repo-velikost: "
- 
--#: ../yumcommands.py:863
-+#: ../yumcommands.py:898
- msgid "Repo-baseurl : "
- msgstr "Repo-baseurl : "
- 
--#: ../yumcommands.py:871
-+#: ../yumcommands.py:906
- msgid "Repo-metalink: "
- msgstr "Repo-metalink: "
- 
--#: ../yumcommands.py:875
-+#: ../yumcommands.py:910
- msgid "  Updated    : "
- msgstr "  Aktualizováno: "
- 
--#: ../yumcommands.py:878
-+#: ../yumcommands.py:913
- msgid "Repo-mirrors : "
- msgstr "Repo-zrcadla : "
- 
--#: ../yumcommands.py:882 ../yummain.py:133
--msgid "Unknown"
--msgstr "Neznámý"
--
--#: ../yumcommands.py:888
-+#: ../yumcommands.py:923
- #, python-format
- msgid "Never (last: %s)"
- msgstr "Nikdy (poslední: %s)"
- 
--#: ../yumcommands.py:890
-+#: ../yumcommands.py:925
- #, python-format
- msgid "Instant (last: %s)"
- msgstr "Okamžitě (naposledy: %s)"
- 
--#: ../yumcommands.py:893
-+#: ../yumcommands.py:928
- #, python-format
- msgid "%s second(s) (last: %s)"
- msgstr "%s sekund (naposledy: %s)"
- 
--#: ../yumcommands.py:895
-+#: ../yumcommands.py:930
- msgid "Repo-expire  : "
- msgstr "Repo-vyprší  : "
- 
--#: ../yumcommands.py:898
-+#: ../yumcommands.py:933
- msgid "Repo-exclude : "
- msgstr "Repo-vyřazeno: "
- 
--#: ../yumcommands.py:902
-+#: ../yumcommands.py:937
- msgid "Repo-include : "
- msgstr "Repo-zahrnuto: "
- 
-+#: ../yumcommands.py:941
-+msgid "Repo-excluded: "
-+msgstr "Repo-vyřazeno: "
-+
- #. Work out the first (id) and last (enabled/disalbed/count),
- #. then chop the middle (name)...
--#: ../yumcommands.py:912 ../yumcommands.py:938
-+#: ../yumcommands.py:951 ../yumcommands.py:980
- msgid "repo id"
- msgstr "repo id"
- 
--#: ../yumcommands.py:926 ../yumcommands.py:927 ../yumcommands.py:941
-+#: ../yumcommands.py:968 ../yumcommands.py:969 ../yumcommands.py:987
- msgid "status"
- msgstr "status"
- 
--#: ../yumcommands.py:939
-+#: ../yumcommands.py:981
- msgid "repo name"
- msgstr "jméno repa"
- 
--#: ../yumcommands.py:965
-+#: ../yumcommands.py:1018
- msgid "Display a helpful usage message"
- msgstr "Zobrazit užitečnou nápovědu"
- 
--#: ../yumcommands.py:999
-+#: ../yumcommands.py:1052
- #, python-format
- msgid "No help available for %s"
- msgstr "Není dostupná nápověda pro %s"
- 
--#: ../yumcommands.py:1004
-+#: ../yumcommands.py:1057
- msgid ""
- "\n"
- "\n"
-@@ -1475,7 +1656,7 @@ msgstr ""
- "\n"
- "aliasy: "
- 
--#: ../yumcommands.py:1006
-+#: ../yumcommands.py:1059
- msgid ""
- "\n"
- "\n"
-@@ -1485,142 +1666,96 @@ msgstr ""
- "\n"
- "alias: "
- 
--#: ../yumcommands.py:1034
-+#: ../yumcommands.py:1087
- msgid "Setting up Reinstall Process"
- msgstr "Uspořádává se průběh reinstalace"
- 
--#: ../yumcommands.py:1042
-+#: ../yumcommands.py:1095
- msgid "reinstall a package"
- msgstr "Reinstalace balíčku"
- 
--#: ../yumcommands.py:1060
-+#: ../yumcommands.py:1113
- msgid "Setting up Downgrade Process"
- msgstr "Uspořádává se průběh snížení verze"
- 
--#: ../yumcommands.py:1067
-+#: ../yumcommands.py:1120
- msgid "downgrade a package"
- msgstr "Snížení verze balíčku"
- 
--#: ../yumcommands.py:1081
-+#: ../yumcommands.py:1134
- 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:1111
-+#: ../yumcommands.py:1173
- msgid " Yum version groups:"
- msgstr " Verze yum skupin:"
- 
--#: ../yumcommands.py:1121
-+#: ../yumcommands.py:1183
- msgid " Group   :"
- msgstr " Skupina :"
- 
--#: ../yumcommands.py:1122
-+#: ../yumcommands.py:1184
- msgid " Packages:"
- msgstr " Balíčky :"
- 
--#: ../yumcommands.py:1152
-+#: ../yumcommands.py:1213
- msgid "Installed:"
- msgstr "Nainstalováno:"
- 
--#: ../yumcommands.py:1157
-+#: ../yumcommands.py:1218
- msgid "Group-Installed:"
- msgstr "Nainstalované skupiny:"
- 
--#: ../yumcommands.py:1166
-+#: ../yumcommands.py:1227
- msgid "Available:"
- msgstr "Dostupné:"
- 
--#: ../yumcommands.py:1172
-+#: ../yumcommands.py:1233
- msgid "Group-Available:"
- msgstr "Dostupné skupiny:"
- 
--#: ../yumcommands.py:1211
-+#: ../yumcommands.py:1272
- msgid "Display, or use, the transaction history"
- msgstr "Zobrazit nebo používat transakční historii"
- 
--#: ../yumcommands.py:1239
-+#: ../yumcommands.py:1300
- #, 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"
-+#: ../yumcommands.py:1345
-+msgid "Check for problems in the rpmdb"
-+msgstr "Zkontrolovat problémy v rpmdb"
- 
--#: ../yummain.py:173
-+#: ../yummain.py:102
- 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
-+#: ../yummain.py:130 ../yummain.py:169
- #, python-format
- msgid "Error: %s"
- msgstr "Chyba: %s"
- 
--#: ../yummain.py:211 ../yummain.py:253
-+#: ../yummain.py:140 ../yummain.py:182
- #, python-format
- msgid "Unknown Error(s): Exit Code: %d:"
- msgstr "Neznámá chyba/y: Výstupní kód: %d:"
- 
- #. Depsolve stage
--#: ../yummain.py:218
-+#: ../yummain.py:147
- msgid "Resolving Dependencies"
- msgstr "Řeší se závislosti"
- 
--#: ../yummain.py:242
-+#: ../yummain.py:173
- 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:175 ../yummain.py:208
-+msgid " You could try running: rpm -Va --nofiles --nodigest"
-+msgstr " Můžete zkusit spustit: rpm -Va --nofiles --nodigest"
- 
--#: ../yummain.py:259
-+#: ../yummain.py:188
- msgid ""
- "\n"
- "Dependencies Resolved"
-@@ -1628,7 +1763,7 @@ msgstr ""
- "\n"
- "Závislosti vyřešeny"
- 
--#: ../yummain.py:326
-+#: ../yummain.py:265
- msgid ""
- "\n"
- "\n"
-@@ -1666,169 +1801,164 @@ msgstr "Potenciálně shodné pro %s z %s"
- msgid "Matched %s to require for %s"
- msgstr "Shoda %s vyžadovaná pro %s"
- 
--#: ../yum/depsolve.py:224
-+#: ../yum/depsolve.py:225
- #, python-format
- msgid "Member: %s"
- msgstr "Prvek: %s"
- 
--#: ../yum/depsolve.py:238 ../yum/depsolve.py:749
-+#: ../yum/depsolve.py:239 ../yum/depsolve.py:754
- #, python-format
- msgid "%s converted to install"
- msgstr "%s zkonvertován na instalaci"
- 
--#: ../yum/depsolve.py:245
-+#: ../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:255
-+#: ../yum/depsolve.py:256
- #, python-format
- msgid "Removing Package %s"
- msgstr "Odstraňuje se balíček %s"
- 
--#: ../yum/depsolve.py:277
-+#: ../yum/depsolve.py:278
- #, python-format
- msgid "%s requires: %s"
- msgstr "%s vyžaduje: %s"
- 
--#: ../yum/depsolve.py:335
-+#: ../yum/depsolve.py:319
-+#, python-format
-+msgid "%s requires %s"
-+msgstr "%s vyžaduje %s"
-+
-+#: ../yum/depsolve.py:346
- msgid "Needed Require has already been looked up, cheating"
- msgstr "Závazné požadavky již byly prohledány, švindluje se"
- 
--#: ../yum/depsolve.py:345
-+#: ../yum/depsolve.py:356
- #, 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:352
-+#: ../yum/depsolve.py:363
- #, python-format
- msgid "Potential Provider: %s"
- msgstr "Možný poskytovatel: %s"
- 
--#: ../yum/depsolve.py:375
-+#: ../yum/depsolve.py:386
- #, python-format
- msgid "Mode is %s for provider of %s: %s"
- msgstr "Mód je %s pro poskytovatele %s: %s"
- 
--#: ../yum/depsolve.py:379
-+#: ../yum/depsolve.py:390
- #, python-format
- msgid "Mode for pkg providing %s: %s"
- msgstr "Mód pro bal. poskytující %s: %s"
- 
--#: ../yum/depsolve.py:383
-+#: ../yum/depsolve.py:394
- #, 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:396
-+#: ../yum/depsolve.py:407
- #, 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:399
-+#: ../yum/depsolve.py:410
- #, python-format
- msgid "TSINFO: Updating %s to resolve dep."
- msgstr "TSINFO: Aktualizuji %s k vyřešení závislostí."
- 
--#: ../yum/depsolve.py:407
-+#: ../yum/depsolve.py:418
- #, 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:417
--#, python-format
--msgid "Unresolvable requirement %s for %s"
--msgstr "Neřešitelný požadavek %s pro %s"
--
--#: ../yum/depsolve.py:440
-+#: ../yum/depsolve.py:449
- #, 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:482
-+#: ../yum/depsolve.py:491
- #, 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:498
-+#: ../yum/depsolve.py:507
- #, 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:509
-+#: ../yum/depsolve.py:518
- #, 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:517 ../yum/depsolve.py:563
--#, 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:530
-+#: ../yum/depsolve.py:536
- #, python-format
- msgid "%s already in ts, skipping this one"
- msgstr "%s je již v ts, vynechává se"
- 
--#: ../yum/depsolve.py:573
-+#: ../yum/depsolve.py:578
- #, python-format
- msgid "TSINFO: Marking %s as update for %s"
- msgstr "TSINFO: Označuji %s jako aktualizaci %s"
- 
--#: ../yum/depsolve.py:581
-+#: ../yum/depsolve.py:586
- #, 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
-+#: ../yum/depsolve.py:690 ../yum/depsolve.py:781
- msgid "Success - empty transaction"
- msgstr "Úspěch - prázdná transakce"
- 
--#: ../yum/depsolve.py:724 ../yum/depsolve.py:739
-+#: ../yum/depsolve.py:729 ../yum/depsolve.py:744
- msgid "Restarting Loop"
- msgstr "Restartuje se smyčka"
- 
--#: ../yum/depsolve.py:755
-+#: ../yum/depsolve.py:760
- msgid "Dependency Process ending"
- msgstr "Proces zpracování závislostí končí"
- 
--#: ../yum/depsolve.py:761
-+#: ../yum/depsolve.py:774
- #, python-format
- msgid "%s from %s has depsolving problems"
- msgstr "%s z %s má problémy se závislostmi"
- 
--#: ../yum/depsolve.py:768
-+#: ../yum/depsolve.py:782
- msgid "Success - deps resolved"
- msgstr "Úspěch - závislosti vyřešeny"
- 
--#: ../yum/depsolve.py:782
-+#: ../yum/depsolve.py:796
- #, python-format
- msgid "Checking deps for %s"
- msgstr "Kontroluji závislosti pro %s"
- 
--#: ../yum/depsolve.py:865
-+#: ../yum/depsolve.py:874
- #, python-format
- msgid "looking for %s as a requirement of %s"
- msgstr "hledá se %s jako požadavek od %s"
- 
--#: ../yum/depsolve.py:1007
-+#: ../yum/depsolve.py:1090
- #, python-format
- msgid "Running compare_providers() for %s"
- msgstr "Spouští se compare_providers() pro %s"
- 
--#: ../yum/depsolve.py:1041 ../yum/depsolve.py:1047
-+#: ../yum/depsolve.py:1117 ../yum/depsolve.py:1123
- #, python-format
- msgid "better arch in po %s"
- msgstr "lepší architektura v po %s"
- 
--#: ../yum/depsolve.py:1142
-+#: ../yum/depsolve.py:1218
- #, python-format
- msgid "%s obsoletes %s"
- msgstr "%s zastarává %s"
- 
--#: ../yum/depsolve.py:1154
-+#: ../yum/depsolve.py:1230
- #, python-format
- msgid ""
- "archdist compared %s to %s on %s\n"
-@@ -1837,103 +1967,122 @@ msgstr ""
- "archdist porovnán pro %s k %s na %s\n"
- "  Vítěz: %s"
- 
--#: ../yum/depsolve.py:1161
-+#: ../yum/depsolve.py:1237
- #, python-format
- msgid "common sourcerpm %s and %s"
- msgstr "společné zdrojové rpm %s a %s"
- 
--#: ../yum/depsolve.py:1167
-+#: ../yum/depsolve.py:1241
-+#, python-format
-+msgid "base package %s is installed for %s"
-+msgstr "základní balíček %s je nainstalován pro %s"
-+
-+#: ../yum/depsolve.py:1247
- #, python-format
- msgid "common prefix of %s between %s and %s"
- msgstr "společný prefix %s mezi %s a %s"
- 
--#: ../yum/depsolve.py:1175
-+#: ../yum/depsolve.py:1256
- #, python-format
- msgid "Best Order: %s"
- msgstr "Nejlepší pořádek: %s"
- 
--#: ../yum/__init__.py:187
-+#: ../yum/__init__.py:192
- 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
-+#: ../yum/__init__.py:424
- #, 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
-+#: ../yum/__init__.py:462
- msgid "plugins already initialised"
- msgstr "zásuvný modul je již inicializován"
- 
--#: ../yum/__init__.py:457
-+#: ../yum/__init__.py:469
- 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
-+#: ../yum/__init__.py:480
- msgid "Reading Local RPMDB"
- msgstr "Načítá se lokální RPMDB"
- 
--#: ../yum/__init__.py:489
-+#: ../yum/__init__.py:504
- 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
-+#: ../yum/__init__.py:524
- 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
-+#: ../yum/__init__.py:554
- msgid "Setting up Package Sacks"
--msgstr "Připravuji pytle balíčků"
-+msgstr "Připravuje se pytel balíčků"
- 
--#: ../yum/__init__.py:584
-+#: ../yum/__init__.py:599
- #, 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
-+#: ../yum/__init__.py:600
- msgid "therefore this repo cannot be reset.\n"
- msgstr "proto nemůže toto repo být resetováno.\n"
- 
--#: ../yum/__init__.py:590
-+#: ../yum/__init__.py:605
- 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
-+#: ../yum/__init__.py:617
- msgid "Building updates object"
- msgstr "Sestavuje se objekt aktualizací"
- 
--#: ../yum/__init__.py:637
-+#: ../yum/__init__.py:652
- 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
-+#: ../yum/__init__.py:677
- msgid "Getting group metadata"
- msgstr "Získávají se metadata skupin"
- 
--#: ../yum/__init__.py:688
-+#: ../yum/__init__.py:703
- #, python-format
- msgid "Adding group file from repository: %s"
--msgstr "Přidávám skupinový soubor pro repozitář: %s"
-+msgstr "Přidává se skupinový soubor pro repozitář: %s"
- 
--#: ../yum/__init__.py:697
-+#: ../yum/__init__.py:712
- #, 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
-+#: ../yum/__init__.py:718
- msgid "No Groups Available in any repository"
- msgstr "V žádném repozitáři nejsou dostupné skupiny"
- 
--#: ../yum/__init__.py:763
-+#: ../yum/__init__.py:730
-+msgid "Getting pkgtags metadata"
-+msgstr "Získávají se pkgtags metadata"
-+
-+#: ../yum/__init__.py:740
-+#, python-format
-+msgid "Adding tags from repository: %s"
-+msgstr "Přidávají se tagy z repozitáře: %s"
-+
-+#: ../yum/__init__.py:749
-+#, python-format
-+msgid "Failed to add Pkg Tags for repository: %s - %s"
-+msgstr "Selhalo přidání Pkg Tagů pro repozitář: %s - %s"
-+
-+#: ../yum/__init__.py:827
- msgid "Importing additional filelist information"
- msgstr "Importuji informace z dodatečného seznamu souborů"
- 
--#: ../yum/__init__.py:777
-+#: ../yum/__init__.py:841
- #, 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
-+#: ../yum/__init__.py:849
- msgid ""
- "There are unfinished transactions remaining. You might consider running yum-"
- "complete-transaction first to finish them."
-@@ -1941,17 +2090,18 @@ 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
-+#. Kind of hacky
-+#: ../yum/__init__.py:922
- #, python-format
- msgid "Skip-broken round %i"
- msgstr "Přeskočení rozpadlých - kolo %i"
- 
--#: ../yum/__init__.py:906
-+#: ../yum/__init__.py:975
- #, python-format
- msgid "Skip-broken took %i rounds "
- msgstr "Přeskočení rozpadlých trvalo %i kol "
- 
--#: ../yum/__init__.py:907
-+#: ../yum/__init__.py:976
- msgid ""
- "\n"
- "Packages skipped because of dependency problems:"
-@@ -1959,77 +2109,92 @@ msgstr ""
- "\n"
- "
Balíčky přeskočené kvůli problémům se závislostmi:"
- 
--#: ../yum/__init__.py:911
-+#: ../yum/__init__.py:980
- #, python-format
- msgid "    %s from %s"
- msgstr "    %s z %s"
- 
--#: ../yum/__init__.py:1083
-+#: ../yum/__init__.py:1121
-+msgid "Warning: RPMDB altered outside of yum."
-+msgstr "Varování: RPMDB byla změněna mimo yum."
-+
-+#: ../yum/__init__.py:1126
-+msgid "missing requires"
-+msgstr "chybějící požadavek"
-+
-+#: ../yum/__init__.py:1127
-+msgid "installed conflict"
-+msgstr "konflikt nainstalovaného"
-+
-+#: ../yum/__init__.py:1180
- msgid ""
- "Warning: scriptlet or other non-fatal errors occurred during transaction."
- msgstr ""
- "Varování: Během transakce došlo k chybě skriptletu nebo jiné nefatální chybě."
- 
--#: ../yum/__init__.py:1101
-+#: ../yum/__init__.py:1198
- #, 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:1130
-+#: ../yum/__init__.py:1227
- #, python-format
- msgid "%s was supposed to be installed but is not!"
- msgstr "%s mělo být nainstalováno, ale není!"
- 
- #. maybe a file log here, too
- #. but raising an exception is not going to do any good
--#: ../yum/__init__.py:1169
-+#: ../yum/__init__.py:1266
- #, 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:1289
-+#: ../yum/__init__.py:1386
- #, 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:1293
-+#: ../yum/__init__.py:1390
- #, 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:1328
-+#: ../yum/__init__.py:1425
- #, python-format
- msgid "Could not create lock at %s: %s "
- msgstr "Nelze vytvořit zámek na %s: %s "
- 
--#: ../yum/__init__.py:1373
--msgid "Package does not match intended download"
--msgstr "Balíček se neshoduje se zamýšleným stahováním"
-+#: ../yum/__init__.py:1470
-+msgid ""
-+"Package does not match intended download. Suggestion: run yum clean metadata"
-+msgstr ""
-+"Balíček se neshoduje se zamýšleným stahováním. Návrh: spusťte yum clean "
-+"metadata"
- 
--#: ../yum/__init__.py:1388
-+#: ../yum/__init__.py:1486
- msgid "Could not perform checksum"
- msgstr "Nelze zkontrolovat kontrolní součet"
- 
--#: ../yum/__init__.py:1391
-+#: ../yum/__init__.py:1489
- msgid "Package does not match checksum"
- msgstr "Balíček neodpovídá kontrolnímu součtu"
- 
--#: ../yum/__init__.py:1433
-+#: ../yum/__init__.py:1531
- #, 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:1436 ../yum/__init__.py:1465
-+#: ../yum/__init__.py:1534 ../yum/__init__.py:1563
- #, python-format
- msgid "using local copy of %s"
- msgstr "používá se lokální kopie %s"
- 
--#: ../yum/__init__.py:1477
-+#: ../yum/__init__.py:1575
- #, python-format
- msgid ""
- "Insufficient space in download directory %s\n"
-@@ -2040,11 +2205,11 @@ msgstr ""
- "    * volno   %s\n"
- "    * potřeba %s"
- 
--#: ../yum/__init__.py:1526
-+#: ../yum/__init__.py:1624
- msgid "Header is not complete."
- msgstr "Hlavička není kompletní."
- 
--#: ../yum/__init__.py:1563
-+#: ../yum/__init__.py:1661
- #, python-format
- msgid ""
- "Header not in local cache and caching-only mode enabled. Cannot download %s"
-@@ -2052,62 +2217,62 @@ 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:1618
-+#: ../yum/__init__.py:1716
- #, python-format
- msgid "Public key for %s is not installed"
- msgstr "Veřejný klíč %s není nainstalován"
- 
--#: ../yum/__init__.py:1622
-+#: ../yum/__init__.py:1720
- #, python-format
- msgid "Problem opening package %s"
- msgstr "Problém s otevřením balíčku %s"
- 
--#: ../yum/__init__.py:1630
-+#: ../yum/__init__.py:1728
- #, python-format
- msgid "Public key for %s is not trusted"
- msgstr "Veřejný klíč %s není důvěryhodný"
- 
--#: ../yum/__init__.py:1634
-+#: ../yum/__init__.py:1732
- #, python-format
- msgid "Package %s is not signed"
- msgstr "Balíček %s není podepsán"
- 
--#: ../yum/__init__.py:1672
-+#: ../yum/__init__.py:1770
- #, python-format
- msgid "Cannot remove %s"
- msgstr "Nemohu odstranit %s"
- 
--#: ../yum/__init__.py:1676
-+#: ../yum/__init__.py:1774
- #, python-format
- msgid "%s removed"
- msgstr "%s odstraněn"
- 
--#: ../yum/__init__.py:1712
-+#: ../yum/__init__.py:1820
- #, python-format
- msgid "Cannot remove %s file %s"
- msgstr "Nemohu odstranit %s soubor %s"
- 
--#: ../yum/__init__.py:1716
-+#: ../yum/__init__.py:1824
- #, python-format
- msgid "%s file %s removed"
- msgstr "%s soubor %s odstraněn"
- 
--#: ../yum/__init__.py:1718
-+#: ../yum/__init__.py:1826
- #, python-format
- msgid "%d %s files removed"
- msgstr "%d %s soubor odstraněn"
- 
--#: ../yum/__init__.py:1787
-+#: ../yum/__init__.py:1895
- #, python-format
- msgid "More than one identical match in sack for %s"
- msgstr "Více než jedna identická shoda v pytli pro %s"
- 
--#: ../yum/__init__.py:1793
-+#: ../yum/__init__.py:1901
- #, 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:2026
-+#: ../yum/__init__.py:2180
- msgid ""
- "searchPackages() will go away in a future version of "
- "Yum.                      Use searchGenerator() instead. \n"
-@@ -2115,178 +2280,178 @@ msgstr ""
- "searchPackages() bude odstraněn v příští verzi Yumu.                      "
- "Používejte místo něj searchGenerator(). \n"
- 
--#: ../yum/__init__.py:2065
-+#: ../yum/__init__.py:2219
- #, python-format
- msgid "Searching %d packages"
- msgstr "Prohledává se %d balíčků"
- 
--#: ../yum/__init__.py:2069
-+#: ../yum/__init__.py:2223
- #, python-format
- msgid "searching package %s"
- msgstr "prohledává se balíček %s"
- 
--#: ../yum/__init__.py:2081
-+#: ../yum/__init__.py:2235
- msgid "searching in file entries"
- msgstr "hledá se v souborových položkách"
- 
--#: ../yum/__init__.py:2088
-+#: ../yum/__init__.py:2242
- msgid "searching in provides entries"
- msgstr "hledá se v položkách poskytovatelů"
- 
--#: ../yum/__init__.py:2121
-+#: ../yum/__init__.py:2275
- #, python-format
- msgid "Provides-match: %s"
- msgstr "Poskytovatel-shoda: %s"
- 
--#: ../yum/__init__.py:2170
-+#: ../yum/__init__.py:2324
- msgid "No group data available for configured repositories"
- msgstr "Pro nastavený repozitář nejsou žádná dostupná skupinová data"
- 
--#: ../yum/__init__.py:2201 ../yum/__init__.py:2220 ../yum/__init__.py:2251
--#: ../yum/__init__.py:2257 ../yum/__init__.py:2336 ../yum/__init__.py:2340
--#: ../yum/__init__.py:2655
-+#: ../yum/__init__.py:2355 ../yum/__init__.py:2374 ../yum/__init__.py:2405
-+#: ../yum/__init__.py:2411 ../yum/__init__.py:2493 ../yum/__init__.py:2497
-+#: ../yum/__init__.py:2814
- #, python-format
- msgid "No Group named %s exists"
- msgstr "Neexistuje skupina pojmenovaná %s"
- 
--#: ../yum/__init__.py:2232 ../yum/__init__.py:2353
-+#: ../yum/__init__.py:2386 ../yum/__init__.py:2513
- #, python-format
- msgid "package %s was not marked in group %s"
- msgstr "balíček %s nebyl označen ve skupině %s"
- 
--#: ../yum/__init__.py:2279
-+#: ../yum/__init__.py:2433
- #, python-format
- msgid "Adding package %s from group %s"
- msgstr "Přidává se balíček %s pro skupinu %s"
- 
--#: ../yum/__init__.py:2283
-+#: ../yum/__init__.py:2437
- #, python-format
- msgid "No package named %s available to be installed"
- msgstr "Žádný balíček pojmenovaný %s není dostupný pro instalaci"
- 
--#: ../yum/__init__.py:2380
-+#: ../yum/__init__.py:2539
- #, python-format
- msgid "Package tuple %s could not be found in packagesack"
- msgstr "Uspořádaný seznam balíčků %s nenalezen v pytli balíčků"
- 
--#: ../yum/__init__.py:2399
-+#: ../yum/__init__.py:2558
- #, 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:2455 ../yum/__init__.py:2505
-+#: ../yum/__init__.py:2614 ../yum/__init__.py:2664
- msgid "Invalid version flag"
- msgstr "Chybný příznak verze"
- 
--#: ../yum/__init__.py:2475 ../yum/__init__.py:2480
-+#: ../yum/__init__.py:2634 ../yum/__init__.py:2639
- #, python-format
- msgid "No Package found for %s"
- msgstr "Nebyl nalezen balíček pro %s"
- 
--#: ../yum/__init__.py:2696
-+#: ../yum/__init__.py:2855
- msgid "Package Object was not a package object instance"
- msgstr "Objekt balíčku nebyl instancí balíčkového objektu"
- 
--#: ../yum/__init__.py:2700
-+#: ../yum/__init__.py:2859
- msgid "Nothing specified to install"
- msgstr "Nebylo určeno nic k instalaci"
- 
--#: ../yum/__init__.py:2716 ../yum/__init__.py:3489
-+#: ../yum/__init__.py:2875 ../yum/__init__.py:3652
- #, 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:2722 ../yum/__init__.py:3037 ../yum/__init__.py:3205
--#: ../yum/__init__.py:3495
-+#: ../yum/__init__.py:2881 ../yum/__init__.py:3197 ../yum/__init__.py:3365
-+#: ../yum/__init__.py:3658
- #, python-format
- msgid "No Match for argument: %s"
- msgstr "Nenalezena shoda pro argument: %s"
- 
--#: ../yum/__init__.py:2798
-+#: ../yum/__init__.py:2957
- #, python-format
- msgid "Package %s installed and not available"
- msgstr "Balíček %s je nainstalován, ale není dostupný"
- 
--#: ../yum/__init__.py:2801
-+#: ../yum/__init__.py:2960
- msgid "No package(s) available to install"
- msgstr "Žádný balíček/ky dostupný pro instalaci"
- 
--#: ../yum/__init__.py:2813
-+#: ../yum/__init__.py:2972
- #, python-format
- msgid "Package: %s  - already in transaction set"
- msgstr "Balíček: %s - již je v transakční sadě"
- 
--#: ../yum/__init__.py:2839
-+#: ../yum/__init__.py:2998
- #, 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:2842
-+#: ../yum/__init__.py:3001
- #, 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:2850
-+#: ../yum/__init__.py:3009
- #, python-format
- msgid "Package %s already installed and latest version"
- msgstr "Balíček %s je již nainstalován a v poslední verzi"
- 
--#: ../yum/__init__.py:2864
-+#: ../yum/__init__.py:3023
- #, 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:2966
-+#: ../yum/__init__.py:3126
- msgid "Updating Everything"
- msgstr "Aktualizuje se vše"
- 
--#: ../yum/__init__.py:2987 ../yum/__init__.py:3102 ../yum/__init__.py:3129
--#: ../yum/__init__.py:3155
-+#: ../yum/__init__.py:3147 ../yum/__init__.py:3262 ../yum/__init__.py:3289
-+#: ../yum/__init__.py:3315
- #, 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:3022 ../yum/__init__.py:3202
-+#: ../yum/__init__.py:3182 ../yum/__init__.py:3362
- #, python-format
- msgid "%s"
- msgstr "%s"
- 
--#: ../yum/__init__.py:3093
-+#: ../yum/__init__.py:3253
- #, 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:3124
-+#: ../yum/__init__.py:3284
- #, python-format
- msgid "Not Updating Package that is obsoleted: %s"
- msgstr "Neaktualizuje se balíček, který je zastaralý: %s"
- 
--#: ../yum/__init__.py:3133 ../yum/__init__.py:3159
-+#: ../yum/__init__.py:3293 ../yum/__init__.py:3319
- #, 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:3218
-+#: ../yum/__init__.py:3378
- msgid "No package matched to remove"
- msgstr "Nenalezen žádný shodný balíček pro odstranění"
- 
--#: ../yum/__init__.py:3251 ../yum/__init__.py:3349 ../yum/__init__.py:3432
-+#: ../yum/__init__.py:3412
- #, python-format
--msgid "Cannot open file: %s. Skipping."
--msgstr "Nelze otevřít soubor: %s. Přeskakuje se."
-+msgid "Cannot open: %s. Skipping."
-+msgstr "Nelze otevřít: %s. Přeskakuje se."
- 
--#: ../yum/__init__.py:3254 ../yum/__init__.py:3352 ../yum/__init__.py:3435
-+#: ../yum/__init__.py:3415 ../yum/__init__.py:3514 ../yum/__init__.py:3598
- #, python-format
- msgid "Examining %s: %s"
- msgstr "Zkoumá se %s: %s"
- 
--#: ../yum/__init__.py:3262 ../yum/__init__.py:3355 ../yum/__init__.py:3438
-+#: ../yum/__init__.py:3423 ../yum/__init__.py:3517 ../yum/__init__.py:3601
- #, python-format
- msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
- msgstr "Nelze přidat balíček %s do transakce. Nekompatibilní architektura: %s"
- 
--#: ../yum/__init__.py:3270
-+#: ../yum/__init__.py:3431
- #, python-format
- msgid ""
- "Package %s not installed, cannot update it. Run yum install to install it "
-@@ -2295,143 +2460,158 @@ msgstr ""
- "Balíček %s není nainstalován, nelze jej aktualizovat. Spusťte místo toho yum "
- "install a nainstalujte jej."
- 
--#: ../yum/__init__.py:3299 ../yum/__init__.py:3360 ../yum/__init__.py:3443
-+#: ../yum/__init__.py:3460 ../yum/__init__.py:3522 ../yum/__init__.py:3606
- #, python-format
- msgid "Excluding %s"
- msgstr "Vynechává se %s"
- 
--#: ../yum/__init__.py:3304
-+#: ../yum/__init__.py:3465
- #, python-format
- msgid "Marking %s to be installed"
- msgstr "Označuje se %s k instalaci"
- 
--#: ../yum/__init__.py:3310
-+#: ../yum/__init__.py:3471
- #, python-format
- msgid "Marking %s as an update to %s"
- msgstr "Označuje se %s jako aktualizace %s"
- 
--#: ../yum/__init__.py:3317
-+#: ../yum/__init__.py:3478
- #, python-format
- msgid "%s: does not update installed package."
- msgstr "%s: není aktualizací instalovaného balíčku."
- 
--#: ../yum/__init__.py:3379
-+#: ../yum/__init__.py:3511 ../yum/__init__.py:3595
-+#, python-format
-+msgid "Cannot open file: %s. Skipping."
-+msgstr "Nelze otevřít soubor: %s. Přeskakuje se."
-+
-+#: ../yum/__init__.py:3541
- 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:3392 ../yum/__init__.py:3523
-+#: ../yum/__init__.py:3554 ../yum/__init__.py:3686
- #, 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:3413
-+#: ../yum/__init__.py:3575
- #, 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:3515
-+#: ../yum/__init__.py:3678
- msgid "No package(s) available to downgrade"
- msgstr "Žádný balíček/ky dostupné ke snížení verze"
- 
--#: ../yum/__init__.py:3559
-+#: ../yum/__init__.py:3731
- #, python-format
- msgid "No Match for available package: %s"
- msgstr "Neexistuje shoda pro dostupný balíček: %s"
- 
--#: ../yum/__init__.py:3565
-+#: ../yum/__init__.py:3738
- #, python-format
- msgid "Only Upgrade available on package: %s"
- msgstr "Pouze aktualizace dostupná pro balíček: %s"
- 
--#: ../yum/__init__.py:3635 ../yum/__init__.py:3672
-+#: ../yum/__init__.py:3808 ../yum/__init__.py:3845
- #, python-format
- msgid "Failed to downgrade: %s"
- msgstr "Nepodařilo se snížit verzi: %s"
- 
--#: ../yum/__init__.py:3704
-+#: ../yum/__init__.py:3877
- #, python-format
- msgid "Retrieving GPG key from %s"
- msgstr "Získává se GPG klíč pro %s"
- 
--#: ../yum/__init__.py:3724
-+#: ../yum/__init__.py:3897
- msgid "GPG key retrieval failed: "
- msgstr "Získání GPG klíče selhalo: "
- 
--#: ../yum/__init__.py:3735
-+#: ../yum/__init__.py:3903
-+#, python-format
-+msgid "Invalid GPG Key from %s: %s"
-+msgstr "Neplatný GPG klíč pro %s: %s"
-+
-+#: ../yum/__init__.py:3912
- #, 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:3767
-+#: ../yum/__init__.py:3944
- #, 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:3772 ../yum/__init__.py:3834
-+#: ../yum/__init__.py:3949 ../yum/__init__.py:4011
- #, python-format
- msgid "Importing GPG key 0x%s \"%s\" from %s"
--msgstr "Importuje se GPG klíč 0x%s \"%s\" z %s"
-+msgstr "Importuje se GPG klíč 0x%s „%s“ z %s"
- 
--#: ../yum/__init__.py:3789
-+#: ../yum/__init__.py:3966
- msgid "Not installing key"
- msgstr "Neinstaluje se klíč"
- 
--#: ../yum/__init__.py:3795
-+#: ../yum/__init__.py:3972
- #, python-format
- msgid "Key import failed (code %d)"
- msgstr "Import klíče selhal (kód %d)"
- 
--#: ../yum/__init__.py:3796 ../yum/__init__.py:3855
-+#: ../yum/__init__.py:3973 ../yum/__init__.py:4032
- msgid "Key imported successfully"
- msgstr "Import klíče proběhl úspěšně"
- 
--#: ../yum/__init__.py:3801 ../yum/__init__.py:3860
-+#: ../yum/__init__.py:3978 ../yum/__init__.py:4037
- #, 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 "
-+"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:3810
-+#: ../yum/__init__.py:3987
- msgid "Import of key(s) didn't help, wrong key(s)?"
- msgstr "Import klíče/ů nepomohl, špatný klíč(e)?"
- 
--#: ../yum/__init__.py:3829
-+#: ../yum/__init__.py:4006
- #, 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:3849
-+#: ../yum/__init__.py:4026
- #, python-format
- msgid "Not installing key for repo %s"
- msgstr "Neinstaluji klíč pro repozitář %s"
- 
--#: ../yum/__init__.py:3854
-+#: ../yum/__init__.py:4031
- msgid "Key import failed"
- msgstr "Import klíče selhal"
- 
--#: ../yum/__init__.py:3976
-+#: ../yum/__init__.py:4157
- msgid "Unable to find a suitable mirror."
- msgstr "Nemohu nalézt vhodné zrcadlo"
- 
--#: ../yum/__init__.py:3978
-+#: ../yum/__init__.py:4159
- msgid "Errors were encountered while downloading packages."
- msgstr "Při stahování balíčků došlo k chybě."
- 
--#: ../yum/__init__.py:4028
-+#: ../yum/__init__.py:4209
- #, python-format
- msgid "Please report this error at %s"
- msgstr "Oznamte prosím tuto chybu na %s"
- 
--#: ../yum/__init__.py:4052
-+#: ../yum/__init__.py:4233
- msgid "Test Transaction Errors: "
- msgstr "Chyby testu transakce: "
- 
-+#: ../yum/__init__.py:4334
-+#, python-format
-+msgid "Could not set cachedir: %s"
-+msgstr "Nelze vytvořit skladiště: %s "
-+
- #. Mostly copied from YumOutput._outKeyValFill()
- #: ../yum/plugins.py:202
- msgid "Loaded plugins: "
-@@ -2445,34 +2625,34 @@ 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"
-+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"
-+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"
-+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."
-+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ásuvný modul \"%s\""
-+msgstr "Zavádí se zásuvný 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\""
-+msgstr "V prohledávaných cestách jsou dva nebo více modulů se jménem „%s“"
- 
- #: ../yum/plugins.py:336
- #, python-format
-@@ -2490,7 +2670,20 @@ msgstr "Nelze nalézt konfigurační soubor pro modul %s"
- msgid "registration of commands not supported"
- msgstr "registrace příkazů není podporována"
- 
--#: ../yum/rpmtrans.py:78
-+#: ../yum/rpmsack.py:102
-+msgid "has missing requires of"
-+msgstr "má chybějící požadavky"
-+
-+#: ../yum/rpmsack.py:105
-+msgid "has installed conflicts"
-+msgstr "má konflikty v instalaci"
-+
-+#: ../yum/rpmsack.py:114
-+#, python-format
-+msgid "%s is a duplicate with %s"
-+msgstr "%s je duplicitní s %s"
-+
-+#: ../yum/rpmtrans.py:79
- msgid "Repackaging"
- msgstr "Přebaluje se"
- 
-@@ -2523,6 +2716,24 @@ msgstr "Poškozená hlavička %s"
- msgid "Error opening rpm %s - error %s"
- msgstr "Chyba při otevření rpm %s - chyba %s"
- 
-+#~ msgid "Finished Transaction Test"
-+#~ msgstr "Test transakcí dokončen"
-+
-+#~ 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"
-+
-+#~ msgid "Unresolvable requirement %s for %s"
-+#~ msgstr "Neřešitelný požadavek %s pro %s"
-+
-+#~ msgid "Missing Dependency: %s is needed by package %s"
-+#~ msgstr "Chybí závislost: %s je vyžadován balíčkem %s"
-+
- #~ msgid ""
- #~ "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple"
- #~ "().\n"
-diff --git a/po/en_GB.po b/po/en_GB.po
-new file mode 100644
-index 0000000..8170237
---- /dev/null
-+++ b/po/en_GB.po
-@@ -0,0 +1,2710 @@
-+# British English translation of yum
-+# Copyright (C) 2010 yum's COPYRIGHT HOLDER
-+# This file is distributed under the same licence as the yum package.
-+# Bruce Cowan <bruce at bcowan.me.uk>, 2010.
-+msgid ""
-+msgstr ""
-+"Project-Id-Version: yum\n"
-+"Report-Msgid-Bugs-To: \n"
-+"POT-Creation-Date: 2010-02-11 10:54-0500\n"
-+"PO-Revision-Date: 2010-06-15 16:09+0100\n"
-+"Last-Translator: Bruce Cowan <bruce at bcowan.me.uk>\n"
-+"Language-Team: British English <en at li.org>\n"
-+"Language: en_GB\n"
-+"MIME-Version: 1.0\n"
-+"Content-Type: text/plain; charset=UTF-8\n"
-+"Content-Transfer-Encoding: 8bit\n"
-+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-+"X-Generator: Virtaal 0.6.1\n"
-+
-+#: ../callback.py:48 ../output.py:947 ../yum/rpmtrans.py:72
-+msgid "Updating"
-+msgstr "Updating"
-+
-+#: ../callback.py:49 ../yum/rpmtrans.py:73
-+msgid "Erasing"
-+msgstr "Erasing"
-+
-+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:946
-+#: ../output.py:1659 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:75
-+#: ../yum/rpmtrans.py:77
-+msgid "Installing"
-+msgstr "Installing"
-+
-+#: ../callback.py:52 ../callback.py:58 ../output.py:1484 ../yum/rpmtrans.py:76
-+msgid "Obsoleted"
-+msgstr "Obsoleted"
-+
-+#: ../callback.py:54 ../output.py:1070 ../output.py:1442 ../output.py:1491
-+msgid "Updated"
-+msgstr "Updated"
-+
-+#: ../callback.py:55 ../output.py:1438
-+msgid "Erased"
-+msgstr "Erased"
-+
-+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1068
-+#: ../output.py:1434 ../output.py:1646
-+msgid "Installed"
-+msgstr "Installed"
-+
-+#: ../callback.py:130
-+msgid "No header - huh?"
-+msgstr "No header - huh?"
-+
-+#: ../callback.py:168
-+msgid "Repackage"
-+msgstr "Repackage"
-+
-+#: ../callback.py:189
-+#, python-format
-+msgid "Error: invalid output state: %s for %s"
-+msgstr "Error: invalid output state: %s for %s"
-+
-+#: ../callback.py:212
-+#, python-format
-+msgid "Erased: %s"
-+msgstr "Erased: %s"
-+
-+#: ../callback.py:217 ../output.py:948 ../output.py:1648
-+msgid "Removing"
-+msgstr "Removing"
-+
-+#: ../callback.py:219 ../yum/rpmtrans.py:78
-+msgid "Cleanup"
-+msgstr "Cleanup"
-+
-+#: ../cli.py:107
-+#, python-format
-+msgid "Command \"%s\" already defined"
-+msgstr "Command \"%s\" already defined"
-+
-+#: ../cli.py:119
-+msgid "Setting up repositories"
-+msgstr "Setting up repositories"
-+
-+#: ../cli.py:130
-+msgid "Reading repository metadata in from local files"
-+msgstr "Reading repository metadata in from local files"
-+
-+#: ../cli.py:194 ../utils.py:193
-+#, python-format
-+msgid "Config Error: %s"
-+msgstr "Config Error: %s"
-+
-+#: ../cli.py:197 ../cli.py:1272 ../utils.py:196
-+#, python-format
-+msgid "Options Error: %s"
-+msgstr "Options Error: %s"
-+
-+#: ../cli.py:227
-+#, python-format
-+msgid "  Installed: %s-%s at %s"
-+msgstr "  Installed: %s-%s at %s"
-+
-+#: ../cli.py:229
-+#, python-format
-+msgid "  Built    : %s at %s"
-+msgstr "  Built    : %s at %s"
-+
-+#: ../cli.py:231
-+#, python-format
-+msgid "  Committed: %s at %s"
-+msgstr "  Committed: %s at %s"
-+
-+#: ../cli.py:270
-+msgid "You need to give some command"
-+msgstr "You need to give some command"
-+
-+#: ../cli.py:284
-+#, python-format
-+msgid "No such command: %s. Please use %s --help"
-+msgstr "No such command: %s. Please use %s --help"
-+
-+#: ../cli.py:314
-+msgid "Disk Requirements:\n"
-+msgstr "Disk Requirements:\n"
-+
-+#: ../cli.py:316
-+#, python-format
-+msgid "  At least %dMB more space needed on the %s filesystem.\n"
-+msgstr "  At least %dMB more space needed on the %s filesystem.\n"
-+
-+#. TODO: simplify the dependency errors?
-+#. Fixup the summary
-+#: ../cli.py:321
-+msgid ""
-+"Error Summary\n"
-+"-------------\n"
-+msgstr ""
-+"Error Summary\n"
-+"-------------\n"
-+
-+#: ../cli.py:364
-+msgid "Trying to run the transaction but nothing to do. Exiting."
-+msgstr "Trying to run the transaction but nothing to do. Exiting."
-+
-+#: ../cli.py:403
-+msgid "Exiting on user Command"
-+msgstr "Exiting on user Command"
-+
-+#: ../cli.py:407
-+msgid "Downloading Packages:"
-+msgstr "Downloading Packages:"
-+
-+#: ../cli.py:412
-+msgid "Error Downloading Packages:\n"
-+msgstr "Error Downloading Packages:\n"
-+
-+#: ../cli.py:426 ../yum/__init__.py:4195
-+msgid "Running rpm_check_debug"
-+msgstr "Running rpm_check_debug"
-+
-+#: ../cli.py:435 ../yum/__init__.py:4204
-+msgid "ERROR You need to update rpm to handle:"
-+msgstr "ERROR You need to update rpm to handle:"
-+
-+#: ../cli.py:437 ../yum/__init__.py:4207
-+msgid "ERROR with rpm_check_debug vs depsolve:"
-+msgstr "ERROR with rpm_check_debug vs depsolve:"
-+
-+#: ../cli.py:443
-+msgid "RPM needs to be updated"
-+msgstr "RPM needs to be updated"
-+
-+#: ../cli.py:444
-+#, python-format
-+msgid "Please report this error in %s"
-+msgstr "Please report this error in %s"
-+
-+#: ../cli.py:450
-+msgid "Running Transaction Test"
-+msgstr "Running Transaction Test"
-+
-+#: ../cli.py:466
-+msgid "Transaction Check Error:\n"
-+msgstr "Transaction Check Error:\n"
-+
-+#: ../cli.py:473
-+msgid "Transaction Test Succeeded"
-+msgstr "Transaction Test Succeeded"
-+
-+#: ../cli.py:495
-+msgid "Running Transaction"
-+msgstr "Running Transaction"
-+
-+#: ../cli.py:525
-+msgid ""
-+"Refusing to automatically import keys when running unattended.\n"
-+"Use \"-y\" to override."
-+msgstr ""
-+"Refusing to automatically import keys when running unattended.\n"
-+"Use \"-y\" to override."
-+
-+#: ../cli.py:544 ../cli.py:578
-+msgid "  * Maybe you meant: "
-+msgstr "  * Maybe you meant: "
-+
-+#: ../cli.py:561 ../cli.py:569
-+#, python-format
-+msgid "Package(s) %s%s%s available, but not installed."
-+msgstr "Package(s) %s%s%s available, but not installed."
-+
-+#: ../cli.py:575 ../cli.py:607 ../cli.py:687
-+#, python-format
-+msgid "No package %s%s%s available."
-+msgstr "No package %s%s%s available."
-+
-+#: ../cli.py:612 ../cli.py:748
-+msgid "Package(s) to install"
-+msgstr "Package(s) to install"
-+
-+#: ../cli.py:613 ../cli.py:693 ../cli.py:727 ../cli.py:749
-+#: ../yumcommands.py:160
-+msgid "Nothing to do"
-+msgstr "Nothing to do"
-+
-+#: ../cli.py:647
-+#, python-format
-+msgid "%d packages marked for Update"
-+msgstr "%d packages marked for Update"
-+
-+#: ../cli.py:650
-+msgid "No Packages marked for Update"
-+msgstr "No Packages marked for Update"
-+
-+#: ../cli.py:664
-+#, python-format
-+msgid "%d packages marked for removal"
-+msgstr "%d packages marked for removal"
-+
-+#: ../cli.py:667
-+msgid "No Packages marked for removal"
-+msgstr "No Packages marked for removal"
-+
-+#: ../cli.py:692
-+msgid "Package(s) to downgrade"
-+msgstr "Package(s) to downgrade"
-+
-+#: ../cli.py:717
-+#, python-format
-+msgid " (from %s)"
-+msgstr " (from %s)"
-+
-+#: ../cli.py:719
-+#, python-format
-+msgid "Installed package %s%s%s%s not available."
-+msgstr "Installed package %s%s%s%s not available."
-+
-+#: ../cli.py:726
-+msgid "Package(s) to reinstall"
-+msgstr "Package(s) to reinstall"
-+
-+#: ../cli.py:739
-+msgid "No Packages Provided"
-+msgstr "No Packages Provided"
-+
-+#: ../cli.py:818
-+#, python-format
-+msgid "Matched: %s"
-+msgstr "Matched: %s"
-+
-+#: ../cli.py:825
-+#, python-format
-+msgid "Warning: No matches found for: %s"
-+msgstr "Warning: No matches found for: %s"
-+
-+#: ../cli.py:828
-+msgid "No Matches found"
-+msgstr "No Matches found"
-+
-+#: ../cli.py:868
-+#, 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 ""
-+"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"
-+
-+#: ../cli.py:884
-+#, python-format
-+msgid "No Package Found for %s"
-+msgstr "No Package Found for %s"
-+
-+#: ../cli.py:896
-+msgid "Cleaning up Everything"
-+msgstr "Cleaning up Everything"
-+
-+#: ../cli.py:912
-+msgid "Cleaning up Headers"
-+msgstr "Cleaning up Headers"
-+
-+#: ../cli.py:915
-+msgid "Cleaning up Packages"
-+msgstr "Cleaning up Packages"
-+
-+#: ../cli.py:918
-+msgid "Cleaning up xml metadata"
-+msgstr "Cleaning up xml metadata"
-+
-+#: ../cli.py:921
-+msgid "Cleaning up database cache"
-+msgstr "Cleaning up database cache"
-+
-+#: ../cli.py:924
-+msgid "Cleaning up expire-cache metadata"
-+msgstr "Cleaning up expire-cache metadata"
-+
-+#: ../cli.py:927
-+msgid "Cleaning up cached rpmdb data"
-+msgstr "Cleaning up cached rpmdb data"
-+
-+#: ../cli.py:930
-+msgid "Cleaning up plugins"
-+msgstr "Cleaning up plugins"
-+
-+#: ../cli.py:955
-+msgid "Installed Groups:"
-+msgstr "Installed Groups:"
-+
-+#: ../cli.py:967
-+msgid "Available Groups:"
-+msgstr "Available Groups:"
-+
-+#: ../cli.py:977
-+msgid "Done"
-+msgstr "Done"
-+
-+#: ../cli.py:988 ../cli.py:1006 ../cli.py:1012 ../yum/__init__.py:2788
-+#, python-format
-+msgid "Warning: Group %s does not exist."
-+msgstr "Warning: Group %s does not exist."
-+
-+#: ../cli.py:1016
-+msgid "No packages in any requested group available to install or update"
-+msgstr "No packages in any requested group available to install or update"
-+
-+#: ../cli.py:1018
-+#, python-format
-+msgid "%d Package(s) to Install"
-+msgstr "%d Package(s) to Install"
-+
-+#: ../cli.py:1028 ../yum/__init__.py:2800
-+#, python-format
-+msgid "No group named %s exists"
-+msgstr "No group named %s exists"
-+
-+#: ../cli.py:1034
-+msgid "No packages to remove from groups"
-+msgstr "No packages to remove from groups"
-+
-+#: ../cli.py:1036
-+#, python-format
-+msgid "%d Package(s) to remove"
-+msgstr "%d Package(s) to remove"
-+
-+#: ../cli.py:1078
-+#, python-format
-+msgid "Package %s is already installed, skipping"
-+msgstr "Package %s is already installed, skipping"
-+
-+#: ../cli.py:1089
-+#, python-format
-+msgid "Discarding non-comparable pkg %s.%s"
-+msgstr "Discarding non-comparable pkg %s.%s"
-+
-+#. we've not got any installed that match n or n+a
-+#: ../cli.py:1115
-+#, python-format
-+msgid "No other %s installed, adding to list for potential install"
-+msgstr "No other %s installed, adding to list for potential install"
-+
-+#: ../cli.py:1135
-+msgid "Plugin Options"
-+msgstr "Plugin Options"
-+
-+#: ../cli.py:1143
-+#, python-format
-+msgid "Command line error: %s"
-+msgstr "Command line error: %s"
-+
-+#: ../cli.py:1156
-+#, python-format
-+msgid ""
-+"\n"
-+"\n"
-+"%s: %s option requires an argument"
-+msgstr ""
-+"\n"
-+"\n"
-+"%s: %s option requires an argument"
-+
-+#: ../cli.py:1209
-+msgid "--color takes one of: auto, always, never"
-+msgstr "--color takes one of: auto, always, never"
-+
-+#: ../cli.py:1319
-+msgid "show this help message and exit"
-+msgstr "show this help message and exit"
-+
-+#: ../cli.py:1323
-+msgid "be tolerant of errors"
-+msgstr "be tolerant of errors"
-+
-+#: ../cli.py:1326
-+msgid "run entirely from system cache, don't update cache"
-+msgstr "run entirely from system cache, don't update cache"
-+
-+#: ../cli.py:1329
-+msgid "config file location"
-+msgstr "config file location"
-+
-+#: ../cli.py:1332
-+msgid "maximum command wait time"
-+msgstr "maximum command wait time"
-+
-+#: ../cli.py:1334
-+msgid "debugging output level"
-+msgstr "debugging output level"
-+
-+#: ../cli.py:1338
-+msgid "show duplicates, in repos, in list/search commands"
-+msgstr "show duplicates, in repos, in list/search commands"
-+
-+#: ../cli.py:1340
-+msgid "error output level"
-+msgstr "error output level"
-+
-+#: ../cli.py:1343
-+msgid "debugging output level for rpm"
-+msgstr "debugging output level for rpm"
-+
-+#: ../cli.py:1346
-+msgid "quiet operation"
-+msgstr "quiet operation"
-+
-+#: ../cli.py:1348
-+msgid "verbose operation"
-+msgstr "verbose operation"
-+
-+#: ../cli.py:1350
-+msgid "answer yes for all questions"
-+msgstr "answer yes for all questions"
-+
-+#: ../cli.py:1352
-+msgid "show Yum version and exit"
-+msgstr "show Yum version and exit"
-+
-+#: ../cli.py:1353
-+msgid "set install root"
-+msgstr "set install root"
-+
-+#: ../cli.py:1357
-+msgid "enable one or more repositories (wildcards allowed)"
-+msgstr "enable one or more repositories (wildcards allowed)"
-+
-+#: ../cli.py:1361
-+msgid "disable one or more repositories (wildcards allowed)"
-+msgstr "disable one or more repositories (wildcards allowed)"
-+
-+#: ../cli.py:1364
-+msgid "exclude package(s) by name or glob"
-+msgstr "exclude package(s) by name or glob"
-+
-+#: ../cli.py:1366
-+msgid "disable exclude from main, for a repo or for everything"
-+msgstr "disable exclude from main, for a repo or for everything"
-+
-+#: ../cli.py:1369
-+msgid "enable obsoletes processing during updates"
-+msgstr "enable obsoletes processing during updates"
-+
-+#: ../cli.py:1371
-+msgid "disable Yum plugins"
-+msgstr "disable Yum plugins"
-+
-+#: ../cli.py:1373
-+msgid "disable gpg signature checking"
-+msgstr "disable gpg signature checking"
-+
-+#: ../cli.py:1375
-+msgid "disable plugins by name"
-+msgstr "disable plugins by name"
-+
-+#: ../cli.py:1378
-+msgid "enable plugins by name"
-+msgstr "enable plugins by name"
-+
-+#: ../cli.py:1381
-+msgid "skip packages with depsolving problems"
-+msgstr "skip packages with depsolving problems"
-+
-+#: ../cli.py:1383
-+msgid "control whether color is used"
-+msgstr "control whether colour is used"
-+
-+#: ../cli.py:1385
-+msgid "set value of $releasever in yum config and repo files"
-+msgstr "set value of $releasever in yum config and repo files"
-+
-+#: ../output.py:305
-+msgid "Jan"
-+msgstr "Jan"
-+
-+#: ../output.py:305
-+msgid "Feb"
-+msgstr "Feb"
-+
-+#: ../output.py:305
-+msgid "Mar"
-+msgstr "Mar"
-+
-+#: ../output.py:305
-+msgid "Apr"
-+msgstr "Apr"
-+
-+#: ../output.py:305
-+msgid "May"
-+msgstr "May"
-+
-+#: ../output.py:305
-+msgid "Jun"
-+msgstr "Jun"
-+
-+#: ../output.py:306
-+msgid "Jul"
-+msgstr "Jul"
-+
-+#: ../output.py:306
-+msgid "Aug"
-+msgstr "Aug"
-+
-+#: ../output.py:306
-+msgid "Sep"
-+msgstr "Sep"
-+
-+#: ../output.py:306
-+msgid "Oct"
-+msgstr "Oct"
-+
-+#: ../output.py:306
-+msgid "Nov"
-+msgstr "Nov"
-+
-+#: ../output.py:306
-+msgid "Dec"
-+msgstr "Dec"
-+
-+#: ../output.py:316
-+msgid "Trying other mirror."
-+msgstr "Trying other mirror."
-+
-+#: ../output.py:534
-+#, python-format
-+msgid "Name       : %s%s%s"
-+msgstr "Name       : %s%s%s"
-+
-+#: ../output.py:535
-+#, python-format
-+msgid "Arch       : %s"
-+msgstr "Arch       : %s"
-+
-+#: ../output.py:537
-+#, python-format
-+msgid "Epoch      : %s"
-+msgstr "Epoch      : %s"
-+
-+#: ../output.py:538
-+#, python-format
-+msgid "Version    : %s"
-+msgstr "Version    : %s"
-+
-+#: ../output.py:539
-+#, python-format
-+msgid "Release    : %s"
-+msgstr "Release    : %s"
-+
-+#: ../output.py:540
-+#, python-format
-+msgid "Size       : %s"
-+msgstr "Size       : %s"
-+
-+#: ../output.py:541
-+#, python-format
-+msgid "Repo       : %s"
-+msgstr "Repo       : %s"
-+
-+#: ../output.py:543
-+#, python-format
-+msgid "From repo  : %s"
-+msgstr "From repo  : %s"
-+
-+#: ../output.py:545
-+#, python-format
-+msgid "Committer  : %s"
-+msgstr "Committer  : %s"
-+
-+#: ../output.py:546
-+#, python-format
-+msgid "Committime : %s"
-+msgstr "Committime : %s"
-+
-+#: ../output.py:547
-+#, python-format
-+msgid "Buildtime  : %s"
-+msgstr "Buildtime  : %s"
-+
-+#: ../output.py:549
-+#, python-format
-+msgid "Installtime: %s"
-+msgstr "Installtime: %s"
-+
-+#: ../output.py:550
-+msgid "Summary    : "
-+msgstr "Summary    : "
-+
-+#: ../output.py:552
-+#, python-format
-+msgid "URL        : %s"
-+msgstr "URL        : %s"
-+
-+#: ../output.py:553
-+msgid "License    : "
-+msgstr "Licence    : "
-+
-+#: ../output.py:554
-+msgid "Description: "
-+msgstr "Description: "
-+
-+#: ../output.py:622
-+msgid "y"
-+msgstr "y"
-+
-+#: ../output.py:622
-+msgid "yes"
-+msgstr "yes"
-+
-+#: ../output.py:623
-+msgid "n"
-+msgstr "n"
-+
-+#: ../output.py:623
-+msgid "no"
-+msgstr "no"
-+
-+#: ../output.py:627
-+msgid "Is this ok [y/N]: "
-+msgstr "Is this ok [y/N]: "
-+
-+#: ../output.py:715
-+#, python-format
-+msgid ""
-+"\n"
-+"Group: %s"
-+msgstr ""
-+"\n"
-+"Group: %s"
-+
-+#: ../output.py:719
-+#, python-format
-+msgid " Group-Id: %s"
-+msgstr " Group-Id: %s"
-+
-+#: ../output.py:724
-+#, python-format
-+msgid " Description: %s"
-+msgstr " Description: %s"
-+
-+#: ../output.py:726
-+msgid " Mandatory Packages:"
-+msgstr " Mandatory Packages:"
-+
-+#: ../output.py:727
-+msgid " Default Packages:"
-+msgstr " Default Packages:"
-+
-+#: ../output.py:728
-+msgid " Optional Packages:"
-+msgstr " Optional Packages:"
-+
-+#: ../output.py:729
-+msgid " Conditional Packages:"
-+msgstr " Conditional Packages:"
-+
-+#: ../output.py:749
-+#, python-format
-+msgid "package: %s"
-+msgstr "package: %s"
-+
-+#: ../output.py:751
-+msgid "  No dependencies for this package"
-+msgstr "  No dependencies for this package"
-+
-+#: ../output.py:756
-+#, python-format
-+msgid "  dependency: %s"
-+msgstr "  dependency: %s"
-+
-+#: ../output.py:758
-+msgid "   Unsatisfied dependency"
-+msgstr "   Unsatisfied dependency"
-+
-+#: ../output.py:830
-+#, python-format
-+msgid "Repo        : %s"
-+msgstr "Repo        : %s"
-+
-+#: ../output.py:831
-+msgid "Matched from:"
-+msgstr "Matched from:"
-+
-+#: ../output.py:840
-+msgid "Description : "
-+msgstr "Description : "
-+
-+#: ../output.py:843
-+#, python-format
-+msgid "URL         : %s"
-+msgstr "URL         : %s"
-+
-+#: ../output.py:846
-+#, python-format
-+msgid "License     : %s"
-+msgstr "Licence     : %s"
-+
-+#: ../output.py:849
-+#, python-format
-+msgid "Filename    : %s"
-+msgstr "Filename    : %s"
-+
-+#: ../output.py:853
-+msgid "Other       : "
-+msgstr "Other       : "
-+
-+#: ../output.py:896
-+msgid "There was an error calculating total download size"
-+msgstr "There was an error calculating total download size"
-+
-+#: ../output.py:901
-+#, python-format
-+msgid "Total size: %s"
-+msgstr "Total size: %s"
-+
-+#: ../output.py:904
-+#, python-format
-+msgid "Total download size: %s"
-+msgstr "Total download size: %s"
-+
-+#: ../output.py:908
-+#, python-format
-+msgid "Installed size: %s"
-+msgstr "Installed size: %s"
-+
-+#: ../output.py:949
-+msgid "Reinstalling"
-+msgstr "Reinstalling"
-+
-+#: ../output.py:950
-+msgid "Downgrading"
-+msgstr "Downgrading"
-+
-+#: ../output.py:951
-+msgid "Installing for dependencies"
-+msgstr "Installing for dependencies"
-+
-+#: ../output.py:952
-+msgid "Updating for dependencies"
-+msgstr "Updating for dependencies"
-+
-+#: ../output.py:953
-+msgid "Removing for dependencies"
-+msgstr "Removing for dependencies"
-+
-+#: ../output.py:960 ../output.py:1072
-+msgid "Skipped (dependency problems)"
-+msgstr "Skipped (dependency problems)"
-+
-+#: ../output.py:983
-+msgid "Package"
-+msgstr "Package"
-+
-+#: ../output.py:983
-+msgid "Arch"
-+msgstr "Arch"
-+
-+#: ../output.py:984
-+msgid "Version"
-+msgstr "Version"
-+
-+#: ../output.py:984
-+msgid "Repository"
-+msgstr "Repository"
-+
-+#: ../output.py:985
-+msgid "Size"
-+msgstr "Size"
-+
-+#: ../output.py:997
-+#, python-format
-+msgid "     replacing  %s%s%s.%s %s\n"
-+msgstr "     replacing  %s%s%s.%s %s\n"
-+
-+#: ../output.py:1006
-+#, python-format
-+msgid ""
-+"\n"
-+"Transaction Summary\n"
-+"%s\n"
-+msgstr ""
-+"\n"
-+"Transaction Summary\n"
-+"%s\n"
-+
-+#: ../output.py:1013
-+#, python-format
-+msgid ""
-+"Install   %5.5s Package(s)\n"
-+"Upgrade   %5.5s Package(s)\n"
-+msgstr ""
-+"Install   %5.5s Package(s)\n"
-+"Upgrade   %5.5s Package(s)\n"
-+
-+#: ../output.py:1022
-+#, python-format
-+msgid ""
-+"Remove    %5.5s Package(s)\n"
-+"Reinstall %5.5s Package(s)\n"
-+"Downgrade %5.5s Package(s)\n"
-+msgstr ""
-+"Remove    %5.5s Package(s)\n"
-+"Reinstall %5.5s Package(s)\n"
-+"Downgrade %5.5s Package(s)\n"
-+
-+#: ../output.py:1066
-+msgid "Removed"
-+msgstr "Removed"
-+
-+#: ../output.py:1067
-+msgid "Dependency Removed"
-+msgstr "Dependency Removed"
-+
-+#: ../output.py:1069
-+msgid "Dependency Installed"
-+msgstr "Dependency Installed"
-+
-+#: ../output.py:1071
-+msgid "Dependency Updated"
-+msgstr "Dependency Updated"
-+
-+#: ../output.py:1073
-+msgid "Replaced"
-+msgstr "Replaced"
-+
-+#: ../output.py:1074
-+msgid "Failed"
-+msgstr "Failed"
-+
-+#. Delta between C-c's so we treat as exit
-+#: ../output.py:1140
-+msgid "two"
-+msgstr "two"
-+
-+#. 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:1151
-+#, python-format
-+msgid ""
-+"\n"
-+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
-+"seconds\n"
-+"to exit.\n"
-+msgstr ""
-+"\n"
-+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
-+"seconds\n"
-+"to exit.\n"
-+
-+#: ../output.py:1162
-+msgid "user interrupt"
-+msgstr "user interrupt"
-+
-+#: ../output.py:1180
-+msgid "Total"
-+msgstr "Total"
-+
-+#: ../output.py:1202
-+msgid "I"
-+msgstr "I"
-+
-+#: ../output.py:1203
-+msgid "O"
-+msgstr "O"
-+
-+#: ../output.py:1204
-+msgid "E"
-+msgstr "E"
-+
-+#: ../output.py:1205
-+msgid "R"
-+msgstr "R"
-+
-+#: ../output.py:1206
-+msgid "D"
-+msgstr "D"
-+
-+#: ../output.py:1207
-+msgid "U"
-+msgstr "U"
-+
-+#: ../output.py:1217
-+msgid "<unset>"
-+msgstr "<unset>"
-+
-+#: ../output.py:1218
-+msgid "System"
-+msgstr "System"
-+
-+#: ../output.py:1254
-+msgid "Bad transaction IDs, or package(s), given"
-+msgstr "Bad transaction IDs, or package(s), given"
-+
-+#: ../output.py:1266
-+msgid "ID"
-+msgstr "ID"
-+
-+#: ../output.py:1267 ../output.py:1520
-+msgid "Login user"
-+msgstr "Login user"
-+
-+#: ../output.py:1268
-+msgid "Date and time"
-+msgstr "Date and time"
-+
-+#: ../output.py:1269 ../output.py:1522
-+msgid "Action(s)"
-+msgstr "Action(s)"
-+
-+#: ../output.py:1270 ../output.py:1523
-+msgid "Altered"
-+msgstr "Altered"
-+
-+#: ../output.py:1310
-+msgid "No transaction ID given"
-+msgstr "No transaction ID given"
-+
-+#: ../output.py:1336
-+msgid "Bad transaction ID given"
-+msgstr "Bad transaction ID given"
-+
-+#: ../output.py:1341
-+msgid "Not found given transaction ID"
-+msgstr "Not found given transaction ID"
-+
-+#: ../output.py:1349
-+msgid "Found more than one transaction ID!"
-+msgstr "Found more than one transaction ID!"
-+
-+#: ../output.py:1370
-+msgid "No transaction ID, or package, given"
-+msgstr "No transaction ID, or package, given"
-+
-+#: ../output.py:1396
-+msgid "Transaction ID :"
-+msgstr "Transaction ID :"
-+
-+#: ../output.py:1398
-+msgid "Begin time     :"
-+msgstr "Begin time     :"
-+
-+#: ../output.py:1401 ../output.py:1403
-+msgid "Begin rpmdb    :"
-+msgstr "Begin rpmdb    :"
-+
-+#: ../output.py:1417
-+#, python-format
-+msgid "(%s seconds)"
-+msgstr "(%s seconds)"
-+
-+#: ../output.py:1418
-+msgid "End time       :"
-+msgstr "End time       :"
-+
-+#: ../output.py:1421 ../output.py:1423
-+msgid "End rpmdb      :"
-+msgstr "End rpmdb      :"
-+
-+#: ../output.py:1424
-+msgid "User           :"
-+msgstr "User           :"
-+
-+#: ../output.py:1426 ../output.py:1428 ../output.py:1430
-+msgid "Return-Code    :"
-+msgstr "Return-Code    :"
-+
-+#: ../output.py:1426
-+msgid "Aborted"
-+msgstr "Aborted"
-+
-+#: ../output.py:1428
-+msgid "Failure:"
-+msgstr "Failure:"
-+
-+#: ../output.py:1430
-+msgid "Success"
-+msgstr "Success"
-+
-+#: ../output.py:1431
-+msgid "Transaction performed with:"
-+msgstr "Transaction performed with:"
-+
-+#: ../output.py:1444 ../output.py:1489
-+msgid "Downgraded"
-+msgstr "Downgraded"
-+
-+#. multiple versions installed, both older and newer
-+#: ../output.py:1446
-+msgid "Weird"
-+msgstr "Weird"
-+
-+#: ../output.py:1448
-+msgid "Packages Altered:"
-+msgstr "Packages Altered:"
-+
-+#: ../output.py:1451
-+msgid "Scriptlet output:"
-+msgstr "Scriptlet output:"
-+
-+#: ../output.py:1457
-+msgid "Errors:"
-+msgstr "Errors:"
-+
-+#: ../output.py:1481 ../output.py:1482
-+msgid "Install"
-+msgstr "Install"
-+
-+#: ../output.py:1483
-+msgid "Dep-Install"
-+msgstr "Dep-Install"
-+
-+#: ../output.py:1485
-+msgid "Obsoleting"
-+msgstr "Obsoleting"
-+
-+#: ../output.py:1486
-+msgid "Erase"
-+msgstr "Erase"
-+
-+#: ../output.py:1487
-+msgid "Reinstall"
-+msgstr "Reinstall"
-+
-+#: ../output.py:1488
-+msgid "Downgrade"
-+msgstr "Downgrade"
-+
-+#: ../output.py:1490
-+msgid "Update"
-+msgstr "Update"
-+
-+#: ../output.py:1521
-+msgid "Time"
-+msgstr "Time"
-+
-+#: ../output.py:1547
-+msgid "Last day"
-+msgstr "Last day"
-+
-+#: ../output.py:1548
-+msgid "Last week"
-+msgstr "Last week"
-+
-+#: ../output.py:1549
-+msgid "Last 2 weeks"
-+msgstr "Last 2 weeks"
-+
-+#. US default :p
-+#: ../output.py:1550
-+msgid "Last 3 months"
-+msgstr "Last 3 months"
-+
-+#: ../output.py:1551
-+msgid "Last 6 months"
-+msgstr "Last 6 months"
-+
-+#: ../output.py:1552
-+msgid "Last year"
-+msgstr "Last year"
-+
-+#: ../output.py:1553
-+msgid "Over a year ago"
-+msgstr "Over a year ago"
-+
-+#: ../output.py:1585
-+msgid "installed"
-+msgstr "installed"
-+
-+#: ../output.py:1586
-+msgid "updated"
-+msgstr "updated"
-+
-+#: ../output.py:1587
-+msgid "obsoleted"
-+msgstr "obsoleted"
-+
-+#: ../output.py:1588
-+msgid "erased"
-+msgstr "erased"
-+
-+#: ../output.py:1592
-+#, python-format
-+msgid "---> Package %s.%s %s:%s-%s set to be %s"
-+msgstr "---> Package %s.%s %s:%s-%s set to be %s"
-+
-+#: ../output.py:1599
-+msgid "--> Running transaction check"
-+msgstr "--> Running transaction check"
-+
-+#: ../output.py:1604
-+msgid "--> Restarting Dependency Resolution with new changes."
-+msgstr "--> Restarting Dependency Resolution with new changes."
-+
-+#: ../output.py:1609
-+msgid "--> Finished Dependency Resolution"
-+msgstr "--> Finished Dependency Resolution"
-+
-+#: ../output.py:1614 ../output.py:1619
-+#, python-format
-+msgid "--> Processing Dependency: %s for package: %s"
-+msgstr "--> Processing Dependency: %s for package: %s"
-+
-+#: ../output.py:1623
-+#, python-format
-+msgid "--> Unresolved Dependency: %s"
-+msgstr "--> Unresolved Dependency: %s"
-+
-+#: ../output.py:1634
-+#, python-format
-+msgid "Package: %s"
-+msgstr "Package: %s"
-+
-+#: ../output.py:1636
-+#, python-format
-+msgid ""
-+"\n"
-+"    Requires: %s"
-+msgstr ""
-+"\n"
-+"    Requires: %s"
-+
-+#: ../output.py:1649 ../output.py:1660
-+#, python-format
-+msgid ""
-+"\n"
-+"    %s: %s (%s)"
-+msgstr ""
-+"\n"
-+"    %s: %s (%s)"
-+
-+#: ../output.py:1657
-+msgid "Available"
-+msgstr "Available"
-+
-+#: ../output.py:1665 ../output.py:1670
-+#, python-format
-+msgid "--> Processing Conflict: %s conflicts %s"
-+msgstr "--> Processing Conflict: %s conflicts %s"
-+
-+#: ../output.py:1674
-+msgid "--> Populating transaction set with selected packages. Please wait."
-+msgstr "--> Populating transaction set with selected packages. Please wait."
-+
-+#: ../output.py:1678
-+#, python-format
-+msgid "---> Downloading header for %s to pack into transaction set."
-+msgstr "---> Downloading header for %s to pack into transaction set."
-+
-+#: ../utils.py:93
-+msgid "Running"
-+msgstr "Running"
-+
-+#: ../utils.py:94
-+msgid "Sleeping"
-+msgstr "Sleeping"
-+
-+#: ../utils.py:95
-+msgid "Uninterruptible"
-+msgstr "Uninterruptible"
-+
-+#: ../utils.py:96
-+msgid "Zombie"
-+msgstr "Zombie"
-+
-+#: ../utils.py:97
-+msgid "Traced/Stopped"
-+msgstr "Traced/Stopped"
-+
-+#: ../utils.py:98 ../yumcommands.py:917
-+msgid "Unknown"
-+msgstr "Unknown"
-+
-+#: ../utils.py:109
-+msgid "  The other application is: PackageKit"
-+msgstr "  The other application is: PackageKit"
-+
-+#: ../utils.py:111
-+#, python-format
-+msgid "  The other application is: %s"
-+msgstr "  The other application is: %s"
-+
-+#: ../utils.py:114
-+#, python-format
-+msgid "    Memory : %5s RSS (%5sB VSZ)"
-+msgstr "    Memory : %5s RSS (%5sB VSZ)"
-+
-+#: ../utils.py:119
-+#, python-format
-+msgid "    Started: %s - %s ago"
-+msgstr "    Started: %s - %s ago"
-+
-+#: ../utils.py:121
-+#, python-format
-+msgid "    State  : %s, pid: %d"
-+msgstr "    State  : %s, pid: %d"
-+
-+#: ../utils.py:199
-+#, python-format
-+msgid "PluginExit Error: %s"
-+msgstr "PluginExit Error: %s"
-+
-+#: ../utils.py:202
-+#, python-format
-+msgid "Yum Error: %s"
-+msgstr "Yum Error: %s"
-+
-+#: ../utils.py:235 ../yummain.py:42
-+msgid ""
-+"\n"
-+"\n"
-+"Exiting on user cancel"
-+msgstr ""
-+"\n"
-+"\n"
-+"Exiting on user cancel"
-+
-+#: ../utils.py:241 ../yummain.py:48
-+msgid ""
-+"\n"
-+"\n"
-+"Exiting on Broken Pipe"
-+msgstr ""
-+"\n"
-+"\n"
-+"Exiting on Broken Pipe"
-+
-+#: ../utils.py:243 ../yummain.py:50
-+#, python-format
-+msgid ""
-+"\n"
-+"\n"
-+"%s"
-+msgstr ""
-+"\n"
-+"\n"
-+"%s"
-+
-+#: ../utils.py:282 ../yummain.py:211
-+msgid "Complete!"
-+msgstr "Complete!"
-+
-+#: ../yumcommands.py:43
-+msgid "You need to be root to perform this command."
-+msgstr "You need to be root to perform this command."
-+
-+#: ../yumcommands.py:50
-+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"
-+"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"
-+
-+#: ../yumcommands.py:70
-+#, python-format
-+msgid "Error: Need to pass a list of pkgs to %s"
-+msgstr "Error: Need to pass a list of pkgs to %s"
-+
-+#: ../yumcommands.py:76
-+msgid "Error: Need an item to match"
-+msgstr "Error: Need an item to match"
-+
-+#: ../yumcommands.py:82
-+msgid "Error: Need a group or list of groups"
-+msgstr "Error: Need a group or list of groups"
-+
-+#: ../yumcommands.py:91
-+#, python-format
-+msgid "Error: clean requires an option: %s"
-+msgstr "Error: clean requires an option: %s"
-+
-+#: ../yumcommands.py:96
-+#, python-format
-+msgid "Error: invalid clean argument: %r"
-+msgstr "Error: invalid clean argument: %r"
-+
-+#: ../yumcommands.py:109
-+msgid "No argument to shell"
-+msgstr "No argument to shell"
-+
-+#: ../yumcommands.py:111
-+#, python-format
-+msgid "Filename passed to shell: %s"
-+msgstr "Filename passed to shell: %s"
-+
-+#: ../yumcommands.py:115
-+#, python-format
-+msgid "File %s given as argument to shell does not exist."
-+msgstr "File %s given as argument to shell does not exist."
-+
-+#: ../yumcommands.py:121
-+msgid "Error: more than one file given as argument to shell."
-+msgstr "Error: more than one file given as argument to shell."
-+
-+#: ../yumcommands.py:170
-+msgid "PACKAGE..."
-+msgstr "PACKAGE..."
-+
-+#: ../yumcommands.py:173
-+msgid "Install a package or packages on your system"
-+msgstr "Install a package or packages on your system"
-+
-+#: ../yumcommands.py:181
-+msgid "Setting up Install Process"
-+msgstr "Setting up Install Process"
-+
-+#: ../yumcommands.py:192
-+msgid "[PACKAGE...]"
-+msgstr "[PACKAGE...]"
-+
-+#: ../yumcommands.py:195
-+msgid "Update a package or packages on your system"
-+msgstr "Update a package or packages on your system"
-+
-+#: ../yumcommands.py:202
-+msgid "Setting up Update Process"
-+msgstr "Setting up Update Process"
-+
-+#: ../yumcommands.py:244
-+msgid "Display details about a package or group of packages"
-+msgstr "Display details about a package or group of packages"
-+
-+#: ../yumcommands.py:293
-+msgid "Installed Packages"
-+msgstr "Installed Packages"
-+
-+#: ../yumcommands.py:301
-+msgid "Available Packages"
-+msgstr "Available Packages"
-+
-+#: ../yumcommands.py:305
-+msgid "Extra Packages"
-+msgstr "Extra Packages"
-+
-+#: ../yumcommands.py:309
-+msgid "Updated Packages"
-+msgstr "Updated Packages"
-+
-+#. This only happens in verbose mode
-+#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:601
-+msgid "Obsoleting Packages"
-+msgstr "Obsoleting Packages"
-+
-+#: ../yumcommands.py:326
-+msgid "Recently Added Packages"
-+msgstr "Recently Added Packages"
-+
-+#: ../yumcommands.py:333
-+msgid "No matching Packages to list"
-+msgstr "No matching Packages to list"
-+
-+#: ../yumcommands.py:347
-+msgid "List a package or groups of packages"
-+msgstr "List a package or groups of packages"
-+
-+#: ../yumcommands.py:359
-+msgid "Remove a package or packages from your system"
-+msgstr "Remove a package or packages from your system"
-+
-+#: ../yumcommands.py:366
-+msgid "Setting up Remove Process"
-+msgstr "Setting up Remove Process"
-+
-+#: ../yumcommands.py:380
-+msgid "Setting up Group Process"
-+msgstr "Setting up Group Process"
-+
-+#: ../yumcommands.py:386
-+msgid "No Groups on which to run command"
-+msgstr "No Groups on which to run command"
-+
-+#: ../yumcommands.py:399
-+msgid "List available package groups"
-+msgstr "List available package groups"
-+
-+#: ../yumcommands.py:416
-+msgid "Install the packages in a group on your system"
-+msgstr "Install the packages in a group on your system"
-+
-+#: ../yumcommands.py:438
-+msgid "Remove the packages in a group from your system"
-+msgstr "Remove the packages in a group from your system"
-+
-+#: ../yumcommands.py:465
-+msgid "Display details about a package group"
-+msgstr "Display details about a package group"
-+
-+#: ../yumcommands.py:489
-+msgid "Generate the metadata cache"
-+msgstr "Generate the metadata cache"
-+
-+#: ../yumcommands.py:495
-+msgid "Making cache files for all metadata files."
-+msgstr "Making cache files for all metadata files."
-+
-+#: ../yumcommands.py:496
-+msgid "This may take a while depending on the speed of this computer"
-+msgstr "This may take a while depending on the speed of this computer"
-+
-+#: ../yumcommands.py:517
-+msgid "Metadata Cache Created"
-+msgstr "Metadata Cache Created"
-+
-+#: ../yumcommands.py:531
-+msgid "Remove cached data"
-+msgstr "Remove cached data"
-+
-+#: ../yumcommands.py:551
-+msgid "Find what package provides the given value"
-+msgstr "Find what package provides the given value"
-+
-+#: ../yumcommands.py:571
-+msgid "Check for available package updates"
-+msgstr "Check for available package updates"
-+
-+#: ../yumcommands.py:621
-+msgid "Search package details for the given string"
-+msgstr "Search package details for the given string"
-+
-+#: ../yumcommands.py:627
-+msgid "Searching Packages: "
-+msgstr "Searching Packages: "
-+
-+#: ../yumcommands.py:644
-+msgid "Update packages taking obsoletes into account"
-+msgstr "Update packages taking obsoletes into account"
-+
-+#: ../yumcommands.py:652
-+msgid "Setting up Upgrade Process"
-+msgstr "Setting up Upgrade Process"
-+
-+#: ../yumcommands.py:666
-+msgid "Install a local RPM"
-+msgstr "Install a local RPM"
-+
-+#: ../yumcommands.py:674
-+msgid "Setting up Local Package Process"
-+msgstr "Setting up Local Package Process"
-+
-+#: ../yumcommands.py:693
-+msgid "Determine which package provides the given dependency"
-+msgstr "Determine which package provides the given dependency"
-+
-+#: ../yumcommands.py:696
-+msgid "Searching Packages for Dependency:"
-+msgstr "Searching Packages for Dependency:"
-+
-+#: ../yumcommands.py:710
-+msgid "Run an interactive yum shell"
-+msgstr "Run an interactive yum shell"
-+
-+#: ../yumcommands.py:716
-+msgid "Setting up Yum Shell"
-+msgstr "Setting up Yum Shell"
-+
-+#: ../yumcommands.py:734
-+msgid "List a package's dependencies"
-+msgstr "List a package's dependencies"
-+
-+#: ../yumcommands.py:740
-+msgid "Finding dependencies: "
-+msgstr "Finding dependencies: "
-+
-+#: ../yumcommands.py:756
-+msgid "Display the configured software repositories"
-+msgstr "Display the configured software repositories"
-+
-+#: ../yumcommands.py:822 ../yumcommands.py:823
-+msgid "enabled"
-+msgstr "enabled"
-+
-+#: ../yumcommands.py:849 ../yumcommands.py:850
-+msgid "disabled"
-+msgstr "disabled"
-+
-+#: ../yumcommands.py:866
-+msgid "Repo-id      : "
-+msgstr "Repo-id      : "
-+
-+#: ../yumcommands.py:867
-+msgid "Repo-name    : "
-+msgstr "Repo-name    : "
-+
-+#: ../yumcommands.py:870
-+msgid "Repo-status  : "
-+msgstr "Repo-status  : "
-+
-+#: ../yumcommands.py:873
-+msgid "Repo-revision: "
-+msgstr "Repo-revision: "
-+
-+#: ../yumcommands.py:877
-+msgid "Repo-tags    : "
-+msgstr "Repo-tags    : "
-+
-+#: ../yumcommands.py:883
-+msgid "Repo-distro-tags: "
-+msgstr "Repo-distro-tags: "
-+
-+#: ../yumcommands.py:888
-+msgid "Repo-updated : "
-+msgstr "Repo-updated : "
-+
-+#: ../yumcommands.py:890
-+msgid "Repo-pkgs    : "
-+msgstr "Repo-pkgs    : "
-+
-+#: ../yumcommands.py:891
-+msgid "Repo-size    : "
-+msgstr "Repo-size    : "
-+
-+#: ../yumcommands.py:898
-+msgid "Repo-baseurl : "
-+msgstr "Repo-baseurl : "
-+
-+#: ../yumcommands.py:906
-+msgid "Repo-metalink: "
-+msgstr "Repo-metalink: "
-+
-+#: ../yumcommands.py:910
-+msgid "  Updated    : "
-+msgstr "  Updated    : "
-+
-+#: ../yumcommands.py:913
-+msgid "Repo-mirrors : "
-+msgstr "Repo-mirrors : "
-+
-+#: ../yumcommands.py:923
-+#, python-format
-+msgid "Never (last: %s)"
-+msgstr "Never (last: %s)"
-+
-+#: ../yumcommands.py:925
-+#, python-format
-+msgid "Instant (last: %s)"
-+msgstr "Instant (last: %s)"
-+
-+#: ../yumcommands.py:928
-+#, python-format
-+msgid "%s second(s) (last: %s)"
-+msgstr "%s second(s) (last: %s)"
-+
-+#: ../yumcommands.py:930
-+msgid "Repo-expire  : "
-+msgstr "Repo-expire  : "
-+
-+#: ../yumcommands.py:933
-+msgid "Repo-exclude : "
-+msgstr "Repo-exclude : "
-+
-+#: ../yumcommands.py:937
-+msgid "Repo-include : "
-+msgstr "Repo-include : "
-+
-+#: ../yumcommands.py:941
-+msgid "Repo-excluded: "
-+msgstr "Repo-excluded: "
-+
-+#. Work out the first (id) and last (enabled/disalbed/count),
-+#. then chop the middle (name)...
-+#: ../yumcommands.py:951 ../yumcommands.py:980
-+msgid "repo id"
-+msgstr "repo id"
-+
-+#: ../yumcommands.py:968 ../yumcommands.py:969 ../yumcommands.py:987
-+msgid "status"
-+msgstr "status"
-+
-+#: ../yumcommands.py:981
-+msgid "repo name"
-+msgstr "repo name"
-+
-+#: ../yumcommands.py:1018
-+msgid "Display a helpful usage message"
-+msgstr "Display a helpful usage message"
-+
-+#: ../yumcommands.py:1052
-+#, python-format
-+msgid "No help available for %s"
-+msgstr "No help available for %s"
-+
-+#: ../yumcommands.py:1057
-+msgid ""
-+"\n"
-+"\n"
-+"aliases: "
-+msgstr ""
-+"\n"
-+"\n"
-+"aliases: "
-+
-+#: ../yumcommands.py:1059
-+msgid ""
-+"\n"
-+"\n"
-+"alias: "
-+msgstr ""
-+"\n"
-+"\n"
-+"alias: "
-+
-+#: ../yumcommands.py:1087
-+msgid "Setting up Reinstall Process"
-+msgstr "Setting up Reinstall Process"
-+
-+#: ../yumcommands.py:1095
-+msgid "reinstall a package"
-+msgstr "reinstall a package"
-+
-+#: ../yumcommands.py:1113
-+msgid "Setting up Downgrade Process"
-+msgstr "Setting up Downgrade Process"
-+
-+#: ../yumcommands.py:1120
-+msgid "downgrade a package"
-+msgstr "downgrade a package"
-+
-+#: ../yumcommands.py:1134
-+msgid "Display a version for the machine and/or available repos."
-+msgstr "Display a version for the machine and/or available repos."
-+
-+#: ../yumcommands.py:1173
-+msgid " Yum version groups:"
-+msgstr " Yum version groups:"
-+
-+#: ../yumcommands.py:1183
-+msgid " Group   :"
-+msgstr " Group   :"
-+
-+#: ../yumcommands.py:1184
-+msgid " Packages:"
-+msgstr " Packages:"
-+
-+#: ../yumcommands.py:1213
-+msgid "Installed:"
-+msgstr "Installed:"
-+
-+#: ../yumcommands.py:1218
-+msgid "Group-Installed:"
-+msgstr "Group-Installed:"
-+
-+#: ../yumcommands.py:1227
-+msgid "Available:"
-+msgstr "Available:"
-+
-+#: ../yumcommands.py:1233
-+msgid "Group-Available:"
-+msgstr "Group-Available:"
-+
-+#: ../yumcommands.py:1272
-+msgid "Display, or use, the transaction history"
-+msgstr "Display, or use, the transaction history"
-+
-+#: ../yumcommands.py:1300
-+#, python-format
-+msgid "Invalid history sub-command, use: %s."
-+msgstr "Invalid history sub-command, use: %s."
-+
-+#: ../yumcommands.py:1345
-+msgid "Check for problems in the rpmdb"
-+msgstr "Check for problems in the rpmdb"
-+
-+#: ../yummain.py:102
-+msgid ""
-+"Another app is currently holding the yum lock; waiting for it to exit..."
-+msgstr ""
-+"Another app is currently holding the yum lock; waiting for it to exit..."
-+
-+#: ../yummain.py:130 ../yummain.py:169
-+#, python-format
-+msgid "Error: %s"
-+msgstr "Error: %s"
-+
-+#: ../yummain.py:140 ../yummain.py:182
-+#, python-format
-+msgid "Unknown Error(s): Exit Code: %d:"
-+msgstr "Unknown Error(s): Exit Code: %d:"
-+
-+#. Depsolve stage
-+#: ../yummain.py:147
-+msgid "Resolving Dependencies"
-+msgstr "Resolving Dependencies"
-+
-+#: ../yummain.py:173
-+msgid " You could try using --skip-broken to work around the problem"
-+msgstr " You could try using --skip-broken to work around the problem"
-+
-+#: ../yummain.py:175 ../yummain.py:208
-+msgid " You could try running: rpm -Va --nofiles --nodigest"
-+msgstr " You could try running: rpm -Va --nofiles --nodigest"
-+
-+#: ../yummain.py:188
-+msgid ""
-+"\n"
-+"Dependencies Resolved"
-+msgstr ""
-+"\n"
-+"Dependencies Resolved"
-+
-+#: ../yummain.py:265
-+msgid ""
-+"\n"
-+"\n"
-+"Exiting on user cancel."
-+msgstr ""
-+"\n"
-+"\n"
-+"Exiting on user cancel."
-+
-+#: ../yum/depsolve.py:82
-+msgid "doTsSetup() will go away in a future version of Yum.\n"
-+msgstr "doTsSetup() will go away in a future version of Yum.\n"
-+
-+#: ../yum/depsolve.py:97
-+msgid "Setting up TransactionSets before config class is up"
-+msgstr "Setting up TransactionSets before config class is up"
-+
-+#: ../yum/depsolve.py:148
-+#, python-format
-+msgid "Invalid tsflag in config file: %s"
-+msgstr "Invalid tsflag in config file: %s"
-+
-+#: ../yum/depsolve.py:159
-+#, python-format
-+msgid "Searching pkgSack for dep: %s"
-+msgstr "Searching pkgSack for dep: %s"
-+
-+#: ../yum/depsolve.py:175
-+#, python-format
-+msgid "Potential match for %s from %s"
-+msgstr "Potential match for %s from %s"
-+
-+#: ../yum/depsolve.py:183
-+#, python-format
-+msgid "Matched %s to require for %s"
-+msgstr "Matched %s to require for %s"
-+
-+#: ../yum/depsolve.py:225
-+#, python-format
-+msgid "Member: %s"
-+msgstr "Member: %s"
-+
-+#: ../yum/depsolve.py:239 ../yum/depsolve.py:754
-+#, python-format
-+msgid "%s converted to install"
-+msgstr "%s converted to install"
-+
-+#: ../yum/depsolve.py:246
-+#, python-format
-+msgid "Adding Package %s in mode %s"
-+msgstr "Adding Package %s in mode %s"
-+
-+#: ../yum/depsolve.py:256
-+#, python-format
-+msgid "Removing Package %s"
-+msgstr "Removing Package %s"
-+
-+#: ../yum/depsolve.py:278
-+#, python-format
-+msgid "%s requires: %s"
-+msgstr "%s requires: %s"
-+
-+#: ../yum/depsolve.py:319
-+#, python-format
-+msgid "%s requires %s"
-+msgstr "%s requires %s"
-+
-+#: ../yum/depsolve.py:346
-+msgid "Needed Require has already been looked up, cheating"
-+msgstr "Needed Require has already been looked up, cheating"
-+
-+#: ../yum/depsolve.py:356
-+#, python-format
-+msgid "Needed Require is not a package name. Looking up: %s"
-+msgstr "Needed Require is not a package name. Looking up: %s"
-+
-+#: ../yum/depsolve.py:363
-+#, python-format
-+msgid "Potential Provider: %s"
-+msgstr "Potential Provider: %s"
-+
-+#: ../yum/depsolve.py:386
-+#, python-format
-+msgid "Mode is %s for provider of %s: %s"
-+msgstr "Mode is %s for provider of %s: %s"
-+
-+#: ../yum/depsolve.py:390
-+#, python-format
-+msgid "Mode for pkg providing %s: %s"
-+msgstr "Mode for pkg providing %s: %s"
-+
-+#: ../yum/depsolve.py:394
-+#, python-format
-+msgid "TSINFO: %s package requiring %s marked as erase"
-+msgstr "TSINFO: %s package requiring %s marked as erase"
-+
-+#: ../yum/depsolve.py:407
-+#, python-format
-+msgid "TSINFO: Obsoleting %s with %s to resolve dep."
-+msgstr "TSINFO: Obsoleting %s with %s to resolve dep."
-+
-+#: ../yum/depsolve.py:410
-+#, python-format
-+msgid "TSINFO: Updating %s to resolve dep."
-+msgstr "TSINFO: Updating %s to resolve dep."
-+
-+#: ../yum/depsolve.py:418
-+#, python-format
-+msgid "Cannot find an update path for dep for: %s"
-+msgstr "Cannot find an update path for dep for: %s"
-+
-+#: ../yum/depsolve.py:449
-+#, python-format
-+msgid "Quick matched %s to require for %s"
-+msgstr "Quick matched %s to require for %s"
-+
-+#. is it already installed?
-+#: ../yum/depsolve.py:491
-+#, python-format
-+msgid "%s is in providing packages but it is already installed, removing."
-+msgstr "%s is in providing packages but it is already installed, removing."
-+
-+#: ../yum/depsolve.py:507
-+#, python-format
-+msgid "Potential resolving package %s has newer instance in ts."
-+msgstr "Potential resolving package %s has newer instance in ts."
-+
-+#: ../yum/depsolve.py:518
-+#, python-format
-+msgid "Potential resolving package %s has newer instance installed."
-+msgstr "Potential resolving package %s has newer instance installed."
-+
-+#: ../yum/depsolve.py:536
-+#, python-format
-+msgid "%s already in ts, skipping this one"
-+msgstr "%s already in ts, skipping this one"
-+
-+#: ../yum/depsolve.py:578
-+#, python-format
-+msgid "TSINFO: Marking %s as update for %s"
-+msgstr "TSINFO: Marking %s as update for %s"
-+
-+#: ../yum/depsolve.py:586
-+#, python-format
-+msgid "TSINFO: Marking %s as install for %s"
-+msgstr "TSINFO: Marking %s as install for %s"
-+
-+#: ../yum/depsolve.py:690 ../yum/depsolve.py:781
-+msgid "Success - empty transaction"
-+msgstr "Success - empty transaction"
-+
-+#: ../yum/depsolve.py:729 ../yum/depsolve.py:744
-+msgid "Restarting Loop"
-+msgstr "Restarting Loop"
-+
-+#: ../yum/depsolve.py:760
-+msgid "Dependency Process ending"
-+msgstr "Dependency Process ending"
-+
-+#: ../yum/depsolve.py:774
-+#, python-format
-+msgid "%s from %s has depsolving problems"
-+msgstr "%s from %s has depsolving problems"
-+
-+#: ../yum/depsolve.py:782
-+msgid "Success - deps resolved"
-+msgstr "Success - deps resolved"
-+
-+#: ../yum/depsolve.py:796
-+#, python-format
-+msgid "Checking deps for %s"
-+msgstr "Checking deps for %s"
-+
-+#: ../yum/depsolve.py:874
-+#, python-format
-+msgid "looking for %s as a requirement of %s"
-+msgstr "looking for %s as a requirement of %s"
-+
-+#: ../yum/depsolve.py:1090
-+#, python-format
-+msgid "Running compare_providers() for %s"
-+msgstr "Running compare_providers() for %s"
-+
-+#: ../yum/depsolve.py:1117 ../yum/depsolve.py:1123
-+#, python-format
-+msgid "better arch in po %s"
-+msgstr "better arch in po %s"
-+
-+#: ../yum/depsolve.py:1218
-+#, python-format
-+msgid "%s obsoletes %s"
-+msgstr "%s obsoletes %s"
-+
-+#: ../yum/depsolve.py:1230
-+#, python-format
-+msgid ""
-+"archdist compared %s to %s on %s\n"
-+"  Winner: %s"
-+msgstr ""
-+"archdist compared %s to %s on %s\n"
-+"  Winner: %s"
-+
-+#: ../yum/depsolve.py:1237
-+#, python-format
-+msgid "common sourcerpm %s and %s"
-+msgstr "common sourcerpm %s and %s"
-+
-+#: ../yum/depsolve.py:1241
-+#, python-format
-+msgid "base package %s is installed for %s"
-+msgstr "base package %s is installed for %s"
-+
-+#: ../yum/depsolve.py:1247
-+#, python-format
-+msgid "common prefix of %s between %s and %s"
-+msgstr "common prefix of %s between %s and %s"
-+
-+#: ../yum/depsolve.py:1256
-+#, python-format
-+msgid "Best Order: %s"
-+msgstr "Best Order: %s"
-+
-+#: ../yum/__init__.py:192
-+msgid "doConfigSetup() will go away in a future version of Yum.\n"
-+msgstr "doConfigSetup() will go away in a future version of Yum.\n"
-+
-+#: ../yum/__init__.py:424
-+#, python-format
-+msgid "Repository %r is missing name in configuration, using id"
-+msgstr "Repository %r is missing name in configuration, using id"
-+
-+#: ../yum/__init__.py:462
-+msgid "plugins already initialised"
-+msgstr "plugins already initialised"
-+
-+#: ../yum/__init__.py:469
-+msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
-+msgstr "doRpmDBSetup() will go away in a future version of Yum.\n"
-+
-+#: ../yum/__init__.py:480
-+msgid "Reading Local RPMDB"
-+msgstr "Reading Local RPMDB"
-+
-+#: ../yum/__init__.py:504
-+msgid "doRepoSetup() will go away in a future version of Yum.\n"
-+msgstr "doRepoSetup() will go away in a future version of Yum.\n"
-+
-+#: ../yum/__init__.py:524
-+msgid "doSackSetup() will go away in a future version of Yum.\n"
-+msgstr "doSackSetup() will go away in a future version of Yum.\n"
-+
-+#: ../yum/__init__.py:554
-+msgid "Setting up Package Sacks"
-+msgstr "Setting up Package Sacks"
-+
-+#: ../yum/__init__.py:599
-+#, python-format
-+msgid "repo object for repo %s lacks a _resetSack method\n"
-+msgstr "repo object for repo %s lacks a _resetSack method\n"
-+
-+#: ../yum/__init__.py:600
-+msgid "therefore this repo cannot be reset.\n"
-+msgstr "therefore this repo cannot be reset.\n"
-+
-+#: ../yum/__init__.py:605
-+msgid "doUpdateSetup() will go away in a future version of Yum.\n"
-+msgstr "doUpdateSetup() will go away in a future version of Yum.\n"
-+
-+#: ../yum/__init__.py:617
-+msgid "Building updates object"
-+msgstr "Building updates object"
-+
-+#: ../yum/__init__.py:652
-+msgid "doGroupSetup() will go away in a future version of Yum.\n"
-+msgstr "doGroupSetup() will go away in a future version of Yum.\n"
-+
-+#: ../yum/__init__.py:677
-+msgid "Getting group metadata"
-+msgstr "Getting group metadata"
-+
-+#: ../yum/__init__.py:703
-+#, python-format
-+msgid "Adding group file from repository: %s"
-+msgstr "Adding group file from repository: %s"
-+
-+#: ../yum/__init__.py:712
-+#, python-format
-+msgid "Failed to add groups file for repository: %s - %s"
-+msgstr "Failed to add groups file for repository: %s - %s"
-+
-+#: ../yum/__init__.py:718
-+msgid "No Groups Available in any repository"
-+msgstr "No Groups Available in any repository"
-+
-+#: ../yum/__init__.py:730
-+msgid "Getting pkgtags metadata"
-+msgstr "Getting pkgtags metadata"
-+
-+#: ../yum/__init__.py:740
-+#, python-format
-+msgid "Adding tags from repository: %s"
-+msgstr "Adding tags from repository: %s"
-+
-+#: ../yum/__init__.py:749
-+#, python-format
-+msgid "Failed to add Pkg Tags for repository: %s - %s"
-+msgstr "Failed to add Pkg Tags for repository: %s - %s"
-+
-+#: ../yum/__init__.py:827
-+msgid "Importing additional filelist information"
-+msgstr "Importing additional filelist information"
-+
-+#: ../yum/__init__.py:841
-+#, python-format
-+msgid "The program %s%s%s is found in the yum-utils package."
-+msgstr "The program %s%s%s is found in the yum-utils package."
-+
-+#: ../yum/__init__.py:849
-+msgid ""
-+"There are unfinished transactions remaining. You might consider running yum-"
-+"complete-transaction first to finish them."
-+msgstr ""
-+"There are unfinished transactions remaining. You might consider running yum-"
-+"complete-transaction first to finish them."
-+
-+#. Kind of hacky
-+#: ../yum/__init__.py:922
-+#, python-format
-+msgid "Skip-broken round %i"
-+msgstr "Skip-broken round %i"
-+
-+#: ../yum/__init__.py:975
-+#, python-format
-+msgid "Skip-broken took %i rounds "
-+msgstr "Skip-broken took %i rounds "
-+
-+#: ../yum/__init__.py:976
-+msgid ""
-+"\n"
-+"Packages skipped because of dependency problems:"
-+msgstr ""
-+"\n"
-+"Packages skipped because of dependency problems:"
-+
-+#: ../yum/__init__.py:980
-+#, python-format
-+msgid "    %s from %s"
-+msgstr "    %s from %s"
-+
-+#: ../yum/__init__.py:1121
-+msgid "Warning: RPMDB altered outside of yum."
-+msgstr "Warning: RPMDB altered outside of yum."
-+
-+#: ../yum/__init__.py:1126
-+msgid "missing requires"
-+msgstr "missing requires"
-+
-+#: ../yum/__init__.py:1127
-+msgid "installed conflict"
-+msgstr "installed conflict"
-+
-+#: ../yum/__init__.py:1180
-+msgid ""
-+"Warning: scriptlet or other non-fatal errors occurred during transaction."
-+msgstr ""
-+"Warning: scriptlet or other non-fatal errors occurred during transaction."
-+
-+#: ../yum/__init__.py:1198
-+#, python-format
-+msgid "Failed to remove transaction file %s"
-+msgstr "Failed to remove transaction file %s"
-+
-+#. maybe a file log here, too
-+#. but raising an exception is not going to do any good
-+#: ../yum/__init__.py:1227
-+#, python-format
-+msgid "%s was supposed to be installed but is not!"
-+msgstr "%s was supposed to be installed but is not!"
-+
-+#. maybe a file log here, too
-+#. but raising an exception is not going to do any good
-+#: ../yum/__init__.py:1266
-+#, python-format
-+msgid "%s was supposed to be removed but is not!"
-+msgstr "%s was supposed to be removed but is not!"
-+
-+#. Whoa. What the heck happened?
-+#: ../yum/__init__.py:1386
-+#, python-format
-+msgid "Unable to check if PID %s is active"
-+msgstr "Unable to check if PID %s is active"
-+
-+#. Another copy seems to be running.
-+#: ../yum/__init__.py:1390
-+#, python-format
-+msgid "Existing lock %s: another copy is running as pid %s."
-+msgstr "Existing lock %s: another copy is running as pid %s."
-+
-+#. Whoa. What the heck happened?
-+#: ../yum/__init__.py:1425
-+#, python-format
-+msgid "Could not create lock at %s: %s "
-+msgstr "Could not create lock at %s: %s "
-+
-+#: ../yum/__init__.py:1470
-+msgid ""
-+"Package does not match intended download. Suggestion: run yum clean metadata"
-+msgstr ""
-+"Package does not match intended download. Suggestion: run yum clean metadata"
-+
-+#: ../yum/__init__.py:1486
-+msgid "Could not perform checksum"
-+msgstr "Could not perform checksum"
-+
-+#: ../yum/__init__.py:1489
-+msgid "Package does not match checksum"
-+msgstr "Package does not match checksum"
-+
-+#: ../yum/__init__.py:1531
-+#, python-format
-+msgid "package fails checksum but caching is enabled for %s"
-+msgstr "package fails checksum but caching is enabled for %s"
-+
-+#: ../yum/__init__.py:1534 ../yum/__init__.py:1563
-+#, python-format
-+msgid "using local copy of %s"
-+msgstr "using local copy of %s"
-+
-+#: ../yum/__init__.py:1575
-+#, python-format
-+msgid ""
-+"Insufficient space in download directory %s\n"
-+"    * free   %s\n"
-+"    * needed %s"
-+msgstr ""
-+"Insufficient space in download directory %s\n"
-+"    * free   %s\n"
-+"    * needed %s"
-+
-+#: ../yum/__init__.py:1624
-+msgid "Header is not complete."
-+msgstr "Header is not complete."
-+
-+#: ../yum/__init__.py:1661
-+#, python-format
-+msgid ""
-+"Header not in local cache and caching-only mode enabled. Cannot download %s"
-+msgstr ""
-+"Header not in local cache and caching-only mode enabled. Cannot download %s"
-+
-+#: ../yum/__init__.py:1716
-+#, python-format
-+msgid "Public key for %s is not installed"
-+msgstr "Public key for %s is not installed"
-+
-+#: ../yum/__init__.py:1720
-+#, python-format
-+msgid "Problem opening package %s"
-+msgstr "Problem opening package %s"
-+
-+#: ../yum/__init__.py:1728
-+#, python-format
-+msgid "Public key for %s is not trusted"
-+msgstr "Public key for %s is not trusted"
-+
-+#: ../yum/__init__.py:1732
-+#, python-format
-+msgid "Package %s is not signed"
-+msgstr "Package %s is not signed"
-+
-+#: ../yum/__init__.py:1770
-+#, python-format
-+msgid "Cannot remove %s"
-+msgstr "Cannot remove %s"
-+
-+#: ../yum/__init__.py:1774
-+#, python-format
-+msgid "%s removed"
-+msgstr "%s removed"
-+
-+#: ../yum/__init__.py:1820
-+#, python-format
-+msgid "Cannot remove %s file %s"
-+msgstr "Cannot remove %s file %s"
-+
-+#: ../yum/__init__.py:1824
-+#, python-format
-+msgid "%s file %s removed"
-+msgstr "%s file %s removed"
-+
-+#: ../yum/__init__.py:1826
-+#, python-format
-+msgid "%d %s files removed"
-+msgstr "%d %s files removed"
-+
-+#: ../yum/__init__.py:1895
-+#, python-format
-+msgid "More than one identical match in sack for %s"
-+msgstr "More than one identical match in sack for %s"
-+
-+#: ../yum/__init__.py:1901
-+#, python-format
-+msgid "Nothing matches %s.%s %s:%s-%s from update"
-+msgstr "Nothing matches %s.%s %s:%s-%s from update"
-+
-+#: ../yum/__init__.py:2180
-+msgid ""
-+"searchPackages() will go away in a future version of "
-+"Yum.                      Use searchGenerator() instead. \n"
-+msgstr "searchPackages() will go away in a future version of Yum. "
-+"                     Use searchGenerator() instead. \n"
-+
-+#: ../yum/__init__.py:2219
-+#, python-format
-+msgid "Searching %d packages"
-+msgstr "Searching %d packages"
-+
-+#: ../yum/__init__.py:2223
-+#, python-format
-+msgid "searching package %s"
-+msgstr "searching package %s"
-+
-+#: ../yum/__init__.py:2235
-+msgid "searching in file entries"
-+msgstr "searching in file entries"
-+
-+#: ../yum/__init__.py:2242
-+msgid "searching in provides entries"
-+msgstr "searching in provides entries"
-+
-+#: ../yum/__init__.py:2275
-+#, python-format
-+msgid "Provides-match: %s"
-+msgstr "Provides-match: %s"
-+
-+#: ../yum/__init__.py:2324
-+msgid "No group data available for configured repositories"
-+msgstr "No group data available for configured repositories"
-+
-+#: ../yum/__init__.py:2355 ../yum/__init__.py:2374 ../yum/__init__.py:2405
-+#: ../yum/__init__.py:2411 ../yum/__init__.py:2493 ../yum/__init__.py:2497
-+#: ../yum/__init__.py:2814
-+#, python-format
-+msgid "No Group named %s exists"
-+msgstr "No Group named %s exists"
-+
-+#: ../yum/__init__.py:2386 ../yum/__init__.py:2513
-+#, python-format
-+msgid "package %s was not marked in group %s"
-+msgstr "package %s was not marked in group %s"
-+
-+#: ../yum/__init__.py:2433
-+#, python-format
-+msgid "Adding package %s from group %s"
-+msgstr "Adding package %s from group %s"
-+
-+#: ../yum/__init__.py:2437
-+#, python-format
-+msgid "No package named %s available to be installed"
-+msgstr "No package named %s available to be installed"
-+
-+#: ../yum/__init__.py:2539
-+#, python-format
-+msgid "Package tuple %s could not be found in packagesack"
-+msgstr "Package tuple %s could not be found in packagesack"
-+
-+#: ../yum/__init__.py:2558
-+#, python-format
-+msgid "Package tuple %s could not be found in rpmdb"
-+msgstr "Package tuple %s could not be found in rpmdb"
-+
-+#: ../yum/__init__.py:2614 ../yum/__init__.py:2664
-+msgid "Invalid version flag"
-+msgstr "Invalid version flag"
-+
-+#: ../yum/__init__.py:2634 ../yum/__init__.py:2639
-+#, python-format
-+msgid "No Package found for %s"
-+msgstr "No Package found for %s"
-+
-+#: ../yum/__init__.py:2855
-+msgid "Package Object was not a package object instance"
-+msgstr "Package Object was not a package object instance"
-+
-+#: ../yum/__init__.py:2859
-+msgid "Nothing specified to install"
-+msgstr "Nothing specified to install"
-+
-+#: ../yum/__init__.py:2875 ../yum/__init__.py:3652
-+#, python-format
-+msgid "Checking for virtual provide or file-provide for %s"
-+msgstr "Checking for virtual provide or file-provide for %s"
-+
-+#: ../yum/__init__.py:2881 ../yum/__init__.py:3197 ../yum/__init__.py:3365
-+#: ../yum/__init__.py:3658
-+#, python-format
-+msgid "No Match for argument: %s"
-+msgstr "No Match for argument: %s"
-+
-+#: ../yum/__init__.py:2957
-+#, python-format
-+msgid "Package %s installed and not available"
-+msgstr "Package %s installed and not available"
-+
-+#: ../yum/__init__.py:2960
-+msgid "No package(s) available to install"
-+msgstr "No package(s) available to install"
-+
-+#: ../yum/__init__.py:2972
-+#, python-format
-+msgid "Package: %s  - already in transaction set"
-+msgstr "Package: %s  - already in transaction set"
-+
-+#: ../yum/__init__.py:2998
-+#, python-format
-+msgid "Package %s is obsoleted by %s which is already installed"
-+msgstr "Package %s is obsoleted by %s which is already installed"
-+
-+#: ../yum/__init__.py:3001
-+#, python-format
-+msgid "Package %s is obsoleted by %s, trying to install %s instead"
-+msgstr "Package %s is obsoleted by %s, trying to install %s instead"
-+
-+#: ../yum/__init__.py:3009
-+#, python-format
-+msgid "Package %s already installed and latest version"
-+msgstr "Package %s already installed and latest version"
-+
-+#: ../yum/__init__.py:3023
-+#, python-format
-+msgid "Package matching %s already installed. Checking for update."
-+msgstr "Package matching %s already installed. Checking for update."
-+
-+#. update everything (the easy case)
-+#: ../yum/__init__.py:3126
-+msgid "Updating Everything"
-+msgstr "Updating Everything"
-+
-+#: ../yum/__init__.py:3147 ../yum/__init__.py:3262 ../yum/__init__.py:3289
-+#: ../yum/__init__.py:3315
-+#, python-format
-+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
-+msgstr "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
-+
-+#: ../yum/__init__.py:3182 ../yum/__init__.py:3362
-+#, python-format
-+msgid "%s"
-+msgstr "%s"
-+
-+#: ../yum/__init__.py:3253
-+#, python-format
-+msgid "Package is already obsoleted: %s.%s %s:%s-%s"
-+msgstr "Package is already obsoleted: %s.%s %s:%s-%s"
-+
-+#: ../yum/__init__.py:3284
-+#, python-format
-+msgid "Not Updating Package that is obsoleted: %s"
-+msgstr "Not Updating Package that is obsoleted: %s"
-+
-+#: ../yum/__init__.py:3293 ../yum/__init__.py:3319
-+#, python-format
-+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
-+msgstr "Not Updating Package that is already updated: %s.%s %s:%s-%s"
-+
-+#: ../yum/__init__.py:3378
-+msgid "No package matched to remove"
-+msgstr "No package matched to remove"
-+
-+#: ../yum/__init__.py:3412
-+#, python-format
-+msgid "Cannot open: %s. Skipping."
-+msgstr "Cannot open: %s. Skipping."
-+
-+#: ../yum/__init__.py:3415 ../yum/__init__.py:3514 ../yum/__init__.py:3598
-+#, python-format
-+msgid "Examining %s: %s"
-+msgstr "Examining %s: %s"
-+
-+#: ../yum/__init__.py:3423 ../yum/__init__.py:3517 ../yum/__init__.py:3601
-+#, python-format
-+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
-+msgstr "Cannot add package %s to transaction. Not a compatible architecture: %s"
-+
-+#: ../yum/__init__.py:3431
-+#, python-format
-+msgid ""
-+"Package %s not installed, cannot update it. Run yum install to install it "
-+"instead."
-+msgstr ""
-+"Package %s not installed, cannot update it. Run yum install to install it "
-+"instead."
-+
-+#: ../yum/__init__.py:3460 ../yum/__init__.py:3522 ../yum/__init__.py:3606
-+#, python-format
-+msgid "Excluding %s"
-+msgstr "Excluding %s"
-+
-+#: ../yum/__init__.py:3465
-+#, python-format
-+msgid "Marking %s to be installed"
-+msgstr "Marking %s to be installed"
-+
-+#: ../yum/__init__.py:3471
-+#, python-format
-+msgid "Marking %s as an update to %s"
-+msgstr "Marking %s as an update to %s"
-+
-+#: ../yum/__init__.py:3478
-+#, python-format
-+msgid "%s: does not update installed package."
-+msgstr "%s: does not update installed package."
-+
-+#: ../yum/__init__.py:3511 ../yum/__init__.py:3595
-+#, python-format
-+msgid "Cannot open file: %s. Skipping."
-+msgstr "Cannot open file: %s. Skipping."
-+
-+#: ../yum/__init__.py:3541
-+msgid "Problem in reinstall: no package matched to remove"
-+msgstr "Problem in reinstall: no package matched to remove"
-+
-+#: ../yum/__init__.py:3554 ../yum/__init__.py:3686
-+#, python-format
-+msgid "Package %s is allowed multiple installs, skipping"
-+msgstr "Package %s is allowed multiple installs, skipping"
-+
-+#: ../yum/__init__.py:3575
-+#, python-format
-+msgid "Problem in reinstall: no package %s matched to install"
-+msgstr "Problem in reinstall: no package %s matched to install"
-+
-+#: ../yum/__init__.py:3678
-+msgid "No package(s) available to downgrade"
-+msgstr "No package(s) available to downgrade"
-+
-+#: ../yum/__init__.py:3731
-+#, python-format
-+msgid "No Match for available package: %s"
-+msgstr "No Match for available package: %s"
-+
-+#: ../yum/__init__.py:3738
-+#, python-format
-+msgid "Only Upgrade available on package: %s"
-+msgstr "Only Upgrade available on package: %s"
-+
-+#: ../yum/__init__.py:3808 ../yum/__init__.py:3845
-+#, python-format
-+msgid "Failed to downgrade: %s"
-+msgstr "Failed to downgrade: %s"
-+
-+#: ../yum/__init__.py:3877
-+#, python-format
-+msgid "Retrieving GPG key from %s"
-+msgstr "Retrieving GPG key from %s"
-+
-+#: ../yum/__init__.py:3897
-+msgid "GPG key retrieval failed: "
-+msgstr "GPG key retrieval failed: "
-+
-+#: ../yum/__init__.py:3903
-+#, python-format
-+msgid "Invalid GPG Key from %s: %s"
-+msgstr "Invalid GPG Key from %s: %s"
-+
-+#: ../yum/__init__.py:3912
-+#, python-format
-+msgid "GPG key parsing failed: key does not have value %s"
-+msgstr "GPG key parsing failed: key does not have value %s"
-+
-+#: ../yum/__init__.py:3944
-+#, python-format
-+msgid "GPG key at %s (0x%s) is already installed"
-+msgstr "GPG key at %s (0x%s) is already installed"
-+
-+#. Try installing/updating GPG key
-+#: ../yum/__init__.py:3949 ../yum/__init__.py:4011
-+#, python-format
-+msgid "Importing GPG key 0x%s \"%s\" from %s"
-+msgstr "Importing GPG key 0x%s \"%s\" from %s"
-+
-+#: ../yum/__init__.py:3966
-+msgid "Not installing key"
-+msgstr "Not installing key"
-+
-+#: ../yum/__init__.py:3972
-+#, python-format
-+msgid "Key import failed (code %d)"
-+msgstr "Key import failed (code %d)"
-+
-+#: ../yum/__init__.py:3973 ../yum/__init__.py:4032
-+msgid "Key imported successfully"
-+msgstr "Key imported successfully"
-+
-+#: ../yum/__init__.py:3978 ../yum/__init__.py:4037
-+#, 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 ""
-+"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."
-+
-+#: ../yum/__init__.py:3987
-+msgid "Import of key(s) didn't help, wrong key(s)?"
-+msgstr "Import of key(s) didn't help, wrong key(s)?"
-+
-+#: ../yum/__init__.py:4006
-+#, python-format
-+msgid "GPG key at %s (0x%s) is already imported"
-+msgstr "GPG key at %s (0x%s) is already imported"
-+
-+#: ../yum/__init__.py:4026
-+#, python-format
-+msgid "Not installing key for repo %s"
-+msgstr "Not installing key for repo %s"
-+
-+#: ../yum/__init__.py:4031
-+msgid "Key import failed"
-+msgstr "Key import failed"
-+
-+#: ../yum/__init__.py:4157
-+msgid "Unable to find a suitable mirror."
-+msgstr "Unable to find a suitable mirror."
-+
-+#: ../yum/__init__.py:4159
-+msgid "Errors were encountered while downloading packages."
-+msgstr "Errors were encountered while downloading packages."
-+
-+#: ../yum/__init__.py:4209
-+#, python-format
-+msgid "Please report this error at %s"
-+msgstr "Please report this error at %s"
-+
-+#: ../yum/__init__.py:4233
-+msgid "Test Transaction Errors: "
-+msgstr "Test Transaction Errors: "
-+
-+#: ../yum/__init__.py:4334
-+#, python-format
-+msgid "Could not set cachedir: %s"
-+msgstr "Could not set cachedir: %s"
-+
-+#. Mostly copied from YumOutput._outKeyValFill()
-+#: ../yum/plugins.py:202
-+msgid "Loaded plugins: "
-+msgstr "Loaded plugins: "
-+
-+#: ../yum/plugins.py:216 ../yum/plugins.py:222
-+#, python-format
-+msgid "No plugin match for: %s"
-+msgstr "No plugin match for: %s"
-+
-+#: ../yum/plugins.py:252
-+#, python-format
-+msgid "Not loading \"%s\" plugin, as it is disabled"
-+msgstr "Not loading \"%s\" plugin, as it is disabled"
-+
-+#. Give full backtrace:
-+#: ../yum/plugins.py:264
-+#, python-format
-+msgid "Plugin \"%s\" can't be imported"
-+msgstr "Plugin \"%s\" can't be imported"
-+
-+#: ../yum/plugins.py:271
-+#, python-format
-+msgid "Plugin \"%s\" doesn't specify required API version"
-+msgstr "Plugin \"%s\" doesn't specify required API version"
-+
-+#: ../yum/plugins.py:276
-+#, python-format
-+msgid "Plugin \"%s\" requires API %s. Supported API is %s."
-+msgstr "Plugin \"%s\" requires API %s. Supported API is %s."
-+
-+#: ../yum/plugins.py:309
-+#, python-format
-+msgid "Loading \"%s\" plugin"
-+msgstr "Loading \"%s\" plugin"
-+
-+#: ../yum/plugins.py:316
-+#, python-format
-+msgid ""
-+"Two or more plugins with the name \"%s\" exist in the plugin search path"
-+msgstr "Two or more plugins with the name \"%s\" exist in the plugin search path"
-+
-+#: ../yum/plugins.py:336
-+#, python-format
-+msgid "Configuration file %s not found"
-+msgstr "Configuration file %s not found"
-+
-+#. for
-+#. Configuration files for the plugin not found
-+#: ../yum/plugins.py:339
-+#, python-format
-+msgid "Unable to find configuration file for plugin %s"
-+msgstr "Unable to find configuration file for plugin %s"
-+
-+#: ../yum/plugins.py:501
-+msgid "registration of commands not supported"
-+msgstr "registration of commands not supported"
-+
-+#: ../yum/rpmsack.py:102
-+msgid "has missing requires of"
-+msgstr "has missing requires of"
-+
-+#: ../yum/rpmsack.py:105
-+msgid "has installed conflicts"
-+msgstr "has installed conflicts"
-+
-+#: ../yum/rpmsack.py:114
-+#, python-format
-+msgid "%s is a duplicate with %s"
-+msgstr "%s is a duplicate with %s"
-+
-+#: ../yum/rpmtrans.py:79
-+msgid "Repackaging"
-+msgstr "Repackaging"
-+
-+#: ../rpmUtils/oldUtils.py:33
-+#, python-format
-+msgid "Header cannot be opened or does not match %s, %s."
-+msgstr "Header cannot be opened or does not match %s, %s."
-+
-+#: ../rpmUtils/oldUtils.py:53
-+#, python-format
-+msgid "RPM %s fails md5 check"
-+msgstr "RPM %s fails md5 check"
-+
-+#: ../rpmUtils/oldUtils.py:151
-+msgid "Could not open RPM database for reading. Perhaps it is already in use?"
-+msgstr "Could not open RPM database for reading. Perhaps it is already in use?"
-+
-+#: ../rpmUtils/oldUtils.py:183
-+msgid "Got an empty Header, something has gone wrong"
-+msgstr "Got an empty Header, something has gone wrong"
-+
-+#: ../rpmUtils/oldUtils.py:253 ../rpmUtils/oldUtils.py:260
-+#: ../rpmUtils/oldUtils.py:263 ../rpmUtils/oldUtils.py:266
-+#, python-format
-+msgid "Damaged Header %s"
-+msgstr "Damaged Header %s"
-+
-+#: ../rpmUtils/oldUtils.py:281
-+#, python-format
-+msgid "Error opening rpm %s - error %s"
-+msgstr "Error opening rpm %s - error %s"
-diff --git a/po/fi.po b/po/fi.po
-index 4347eba..71c926d 100644
---- a/po/fi.po
-+++ b/po/fi.po
-@@ -6,8 +6,8 @@ msgid ""
- msgstr ""
- "Project-Id-Version: yum\n"
- "Report-Msgid-Bugs-To: \n"
--"POT-Creation-Date: 2010-02-10 10:43-0500\n"
--"PO-Revision-Date: 2010-02-11 21:50+0200\n"
-+"POT-Creation-Date: 2010-02-11 10:54-0500\n"
-+"PO-Revision-Date: 2010-05-27 21:23+0300\n"
- "Last-Translator: Ville-Pekka Vainio <vpivaini at cs.helsinki.fi>\n"
- "Language-Team: Finnish <laatu at lokalisointi.org>\n"
- "MIME-Version: 1.0\n"
-@@ -156,15 +156,15 @@ msgstr "Ladataan paketteja:"
- msgid "Error Downloading Packages:\n"
- msgstr "Virhe pakettien latauksessa:\n"
- 
--#: ../cli.py:426 ../yum/__init__.py:4194
-+#: ../cli.py:426 ../yum/__init__.py:4195
- msgid "Running rpm_check_debug"
- msgstr "Suoritetaan rpm_check_debug"
- 
--#: ../cli.py:435 ../yum/__init__.py:4203
-+#: ../cli.py:435 ../yum/__init__.py:4204
- msgid "ERROR You need to update rpm to handle:"
- msgstr "VIRHE RPM on päivitettävä, jotta se osaa käsitellä:"
- 
--#: ../cli.py:437 ../yum/__init__.py:4206
-+#: ../cli.py:437 ../yum/__init__.py:4207
- msgid "ERROR with rpm_check_debug vs depsolve:"
- msgstr "VIRHE rpm_check_debugin ja riippuvuuksien tarkistuksen välillä:"
- 
-@@ -250,7 +250,7 @@ msgstr "Vanhennettavat paketit"
- #: ../cli.py:717
- #, python-format
- msgid " (from %s)"
--msgstr " (versiosta %s)"
-+msgstr " (asennuslähteestä %s)"
- 
- #: ../cli.py:719
- #, python-format
-@@ -339,7 +339,7 @@ msgstr "Saatavilla olevat ryhmät:"
- msgid "Done"
- msgstr "Valmis"
- 
--#: ../cli.py:988 ../cli.py:1006 ../cli.py:1012 ../yum/__init__.py:2787
-+#: ../cli.py:988 ../cli.py:1006 ../cli.py:1012 ../yum/__init__.py:2788
- #, python-format
- msgid "Warning: Group %s does not exist."
- msgstr "Varoitus: Ryhmää %s ei ole olemassa."
-@@ -355,7 +355,7 @@ msgstr ""
- msgid "%d Package(s) to Install"
- msgstr "%d pakettia asennettavana"
- 
--#: ../cli.py:1028 ../yum/__init__.py:2799
-+#: ../cli.py:1028 ../yum/__init__.py:2800
- #, python-format
- msgid "No group named %s exists"
- msgstr "Ryhmää nimeltä %s ei ole olemassa"
-@@ -767,7 +767,7 @@ msgstr "Koko yhteensä: %s"
- #: ../output.py:904
- #, python-format
- msgid "Total download size: %s"
--msgstr "Latausmäärä yhteensä: %s"
-+msgstr "Ladattavaa yhteensä: %s"
- 
- #: ../output.py:908
- #, python-format
-@@ -2187,29 +2187,32 @@ msgid "Could not create lock at %s: %s "
- msgstr "Ei voitu luoda lukkoa sijaintiin %s: %s"
- 
- #: ../yum/__init__.py:1470
--msgid "Package does not match intended download"
--msgstr "Paketti ei vastaa aiottua latausta"
-+msgid ""
-+"Package does not match intended download. Suggestion: run yum clean metadata"
-+msgstr ""
-+"Paketti ei vastaa aiottua latausta. Kannattaa ehkä suorittaa komento yum "
-+"clean metadata"
- 
--#: ../yum/__init__.py:1485
-+#: ../yum/__init__.py:1486
- msgid "Could not perform checksum"
- msgstr "Ei voitu laskea tarkistussummaa"
- 
--#: ../yum/__init__.py:1488
-+#: ../yum/__init__.py:1489
- msgid "Package does not match checksum"
- msgstr "Paketti ei vastaa tarkistussummaa"
- 
--#: ../yum/__init__.py:1530
-+#: ../yum/__init__.py:1531
- #, python-format
- msgid "package fails checksum but caching is enabled for %s"
- msgstr ""
- "paketti ei vastaa tarkistussummaa, mutta välimuisti on käytössä kohteelle %s"
- 
--#: ../yum/__init__.py:1533 ../yum/__init__.py:1562
-+#: ../yum/__init__.py:1534 ../yum/__init__.py:1563
- #, python-format
- msgid "using local copy of %s"
- msgstr "käytetään paikallista kopiota paketista %s"
- 
--#: ../yum/__init__.py:1574
-+#: ../yum/__init__.py:1575
- #, python-format
- msgid ""
- "Insufficient space in download directory %s\n"
-@@ -2220,11 +2223,11 @@ msgstr ""
- "    * vapaana   %s\n"
- "    * tarvitaan %s"
- 
--#: ../yum/__init__.py:1623
-+#: ../yum/__init__.py:1624
- msgid "Header is not complete."
- msgstr "Otsake ei ole täydellinen."
- 
--#: ../yum/__init__.py:1660
-+#: ../yum/__init__.py:1661
- #, python-format
- msgid ""
- "Header not in local cache and caching-only mode enabled. Cannot download %s"
-@@ -2232,62 +2235,62 @@ msgstr ""
- "Otsake ei ole paikallisessa välimuistissa ja pelkästä välimuistista toimiva "
- "tila on käytössä. Ei voida ladata otsaketta %s"
- 
--#: ../yum/__init__.py:1715
-+#: ../yum/__init__.py:1716
- #, python-format
- msgid "Public key for %s is not installed"
- msgstr "Julkista avainta pakettia %s varten ei ole asennettu"
- 
--#: ../yum/__init__.py:1719
-+#: ../yum/__init__.py:1720
- #, python-format
- msgid "Problem opening package %s"
- msgstr "Ongelma paketin %s avaamisessa"
- 
--#: ../yum/__init__.py:1727
-+#: ../yum/__init__.py:1728
- #, python-format
- msgid "Public key for %s is not trusted"
- msgstr "Paketin %s julkiseen avaimeen ei luoteta"
- 
--#: ../yum/__init__.py:1731
-+#: ../yum/__init__.py:1732
- #, python-format
- msgid "Package %s is not signed"
- msgstr "Pakettia %s ei ole allekirjoitettu"
- 
--#: ../yum/__init__.py:1769
-+#: ../yum/__init__.py:1770
- #, python-format
- msgid "Cannot remove %s"
- msgstr "Ei voida poistaa tiedostoa %s"
- 
--#: ../yum/__init__.py:1773
-+#: ../yum/__init__.py:1774
- #, python-format
- msgid "%s removed"
- msgstr "tiedosto %s on poistettu"
- 
--#: ../yum/__init__.py:1819
-+#: ../yum/__init__.py:1820
- #, python-format
- msgid "Cannot remove %s file %s"
- msgstr "Ei voida poistaa %s-tyyppistä tiedostoa %s"
- 
--#: ../yum/__init__.py:1823
-+#: ../yum/__init__.py:1824
- #, python-format
- msgid "%s file %s removed"
- msgstr "%s-tyyppinen tiedosto %s on poistettu"
- 
--#: ../yum/__init__.py:1825
-+#: ../yum/__init__.py:1826
- #, python-format
- msgid "%d %s files removed"
- msgstr "%d %s-tyyppistä tiedostoa on poistettu"
- 
--#: ../yum/__init__.py:1894
-+#: ../yum/__init__.py:1895
- #, python-format
- msgid "More than one identical match in sack for %s"
- msgstr "Säkissä on useampi kuin yksi identtinen vastaavuus haulle %s"
- 
--#: ../yum/__init__.py:1900
-+#: ../yum/__init__.py:1901
- #, python-format
- msgid "Nothing matches %s.%s %s:%s-%s from update"
- msgstr "Mikään ei vastaa päivityksen pakettia %s.%s %s:%s-%s"
- 
--#: ../yum/__init__.py:2179
-+#: ../yum/__init__.py:2180
- msgid ""
- "searchPackages() will go away in a future version of "
- "Yum.                      Use searchGenerator() instead. \n"
-@@ -2295,181 +2298,181 @@ msgstr ""
- "searchPackages() poistetaan jossakin Yumin tulevassa versiossa. Käytä sen "
- "sijaan searchGenerator()-metodia.\n"
- 
--#: ../yum/__init__.py:2218
-+#: ../yum/__init__.py:2219
- #, python-format
- msgid "Searching %d packages"
- msgstr "Etsitään %d pakettia"
- 
--#: ../yum/__init__.py:2222
-+#: ../yum/__init__.py:2223
- #, python-format
- msgid "searching package %s"
- msgstr "etsitään pakettia %s"
- 
--#: ../yum/__init__.py:2234
-+#: ../yum/__init__.py:2235
- msgid "searching in file entries"
- msgstr "etsitään tiedostoista"
- 
--#: ../yum/__init__.py:2241
-+#: ../yum/__init__.py:2242
- msgid "searching in provides entries"
- msgstr "etsitään tarjoajista"
- 
--#: ../yum/__init__.py:2274
-+#: ../yum/__init__.py:2275
- #, python-format
- msgid "Provides-match: %s"
- msgstr "Tarjoajavastaavuus: %s"
- 
--#: ../yum/__init__.py:2323
-+#: ../yum/__init__.py:2324
- msgid "No group data available for configured repositories"
- msgstr "Asetetuille asennuslähteille ei ole saatavilla ryhmädataa"
- 
--#: ../yum/__init__.py:2354 ../yum/__init__.py:2373 ../yum/__init__.py:2404
--#: ../yum/__init__.py:2410 ../yum/__init__.py:2492 ../yum/__init__.py:2496
--#: ../yum/__init__.py:2813
-+#: ../yum/__init__.py:2355 ../yum/__init__.py:2374 ../yum/__init__.py:2405
-+#: ../yum/__init__.py:2411 ../yum/__init__.py:2493 ../yum/__init__.py:2497
-+#: ../yum/__init__.py:2814
- #, python-format
- msgid "No Group named %s exists"
- msgstr "Ryhmää nimeltä %s ei ole olemassa"
- 
--#: ../yum/__init__.py:2385 ../yum/__init__.py:2512
-+#: ../yum/__init__.py:2386 ../yum/__init__.py:2513
- #, python-format
- msgid "package %s was not marked in group %s"
- msgstr "pakettia %s ei ollut merkitty kuuluvaksi ryhmään %s"
- 
--#: ../yum/__init__.py:2432
-+#: ../yum/__init__.py:2433
- #, python-format
- msgid "Adding package %s from group %s"
- msgstr "Lisätään paketti %s ryhmästä %s"
- 
--#: ../yum/__init__.py:2436
-+#: ../yum/__init__.py:2437
- #, python-format
- msgid "No package named %s available to be installed"
- msgstr "Pakettia nimeltä %s ei ole saatavilla asennusta varten"
- 
--#: ../yum/__init__.py:2538
-+#: ../yum/__init__.py:2539
- #, python-format
- msgid "Package tuple %s could not be found in packagesack"
- msgstr "Paketti-tuplea %s ei löytynyt pakettisäkistä"
- 
--#: ../yum/__init__.py:2557
-+#: ../yum/__init__.py:2558
- #, python-format
- msgid "Package tuple %s could not be found in rpmdb"
- msgstr "Paketti-tuplea %s ei löytynyt RPM-tietokannasta"
- 
--#: ../yum/__init__.py:2613 ../yum/__init__.py:2663
-+#: ../yum/__init__.py:2614 ../yum/__init__.py:2664
- msgid "Invalid version flag"
- msgstr "Virheellinen versiolippu"
- 
--#: ../yum/__init__.py:2633 ../yum/__init__.py:2638
-+#: ../yum/__init__.py:2634 ../yum/__init__.py:2639
- #, python-format
- msgid "No Package found for %s"
- msgstr "Riippuvuudelle %s ei löytynyt pakettia"
- 
--#: ../yum/__init__.py:2854
-+#: ../yum/__init__.py:2855
- msgid "Package Object was not a package object instance"
- msgstr "Pakettiolio ei ollutkaan pakettiolioinstanssi"
- 
--#: ../yum/__init__.py:2858
-+#: ../yum/__init__.py:2859
- msgid "Nothing specified to install"
- msgstr "Mitään ei määritelty asennettavaksi"
- 
--#: ../yum/__init__.py:2874 ../yum/__init__.py:3651
-+#: ../yum/__init__.py:2875 ../yum/__init__.py:3652
- #, python-format
- msgid "Checking for virtual provide or file-provide for %s"
- msgstr "Etsitään virtuaalista tai tiedostotarjoajaa argumentille %s"
- 
--#: ../yum/__init__.py:2880 ../yum/__init__.py:3196 ../yum/__init__.py:3364
--#: ../yum/__init__.py:3657
-+#: ../yum/__init__.py:2881 ../yum/__init__.py:3197 ../yum/__init__.py:3365
-+#: ../yum/__init__.py:3658
- #, python-format
- msgid "No Match for argument: %s"
- msgstr "Mikään ei vastaa argumenttia: %s"
- 
--#: ../yum/__init__.py:2956
-+#: ../yum/__init__.py:2957
- #, python-format
- msgid "Package %s installed and not available"
- msgstr "Paketti %s on asennettu, mutta ei saatavilla"
- 
--#: ../yum/__init__.py:2959
-+#: ../yum/__init__.py:2960
- msgid "No package(s) available to install"
- msgstr "Yhtään pakettia ei ole saatavilla asennettavaksi"
- 
--#: ../yum/__init__.py:2971
-+#: ../yum/__init__.py:2972
- #, python-format
- msgid "Package: %s  - already in transaction set"
- msgstr "Paketti: %s – on jo transaktiojoukossa"
- 
--#: ../yum/__init__.py:2997
-+#: ../yum/__init__.py:2998
- #, python-format
- msgid "Package %s is obsoleted by %s which is already installed"
- msgstr "Paketin %s vanhentaa paketti %s, joka on jo asennettuna"
- 
--#: ../yum/__init__.py:3000
-+#: ../yum/__init__.py:3001
- #, python-format
- msgid "Package %s is obsoleted by %s, trying to install %s instead"
- msgstr "Paketin %s vanhentaa paketti %s, yritetään paketti %s sen sijaan"
- 
--#: ../yum/__init__.py:3008
-+#: ../yum/__init__.py:3009
- #, python-format
- msgid "Package %s already installed and latest version"
- msgstr "Paketti %s on jo asennettuna ja uusin versio"
- 
--#: ../yum/__init__.py:3022
-+#: ../yum/__init__.py:3023
- #, python-format
- msgid "Package matching %s already installed. Checking for update."
- msgstr ""
- "Pakettia %s vastaava paketti on jo asennettuna. Tarkistetaan päivitykset."
- 
- #. update everything (the easy case)
--#: ../yum/__init__.py:3125
-+#: ../yum/__init__.py:3126
- msgid "Updating Everything"
- msgstr "Päivitetään kaikki"
- 
--#: ../yum/__init__.py:3146 ../yum/__init__.py:3261 ../yum/__init__.py:3288
--#: ../yum/__init__.py:3314
-+#: ../yum/__init__.py:3147 ../yum/__init__.py:3262 ../yum/__init__.py:3289
-+#: ../yum/__init__.py:3315
- #, python-format
- msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
- msgstr "Vanhennettua pakettia ei päivitetä: %s.%s %s:%s-%s"
- 
--#: ../yum/__init__.py:3181 ../yum/__init__.py:3361
-+#: ../yum/__init__.py:3182 ../yum/__init__.py:3362
- #, python-format
- msgid "%s"
- msgstr "%s"
- 
--#: ../yum/__init__.py:3252
-+#: ../yum/__init__.py:3253
- #, python-format
- msgid "Package is already obsoleted: %s.%s %s:%s-%s"
- msgstr "Paketti on jo vanhennettu: %s.%s %s:%s-%s"
- 
--#: ../yum/__init__.py:3283
-+#: ../yum/__init__.py:3284
- #, python-format
- msgid "Not Updating Package that is obsoleted: %s"
- msgstr "Ei päivitetä vanhennettua pakettia: %s"
- 
--#: ../yum/__init__.py:3292 ../yum/__init__.py:3318
-+#: ../yum/__init__.py:3293 ../yum/__init__.py:3319
- #, python-format
- msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
- msgstr "Jo päivitettyä pakettia ei enää päivitetä: %s.%s %s:%s-%s"
- 
--#: ../yum/__init__.py:3377
-+#: ../yum/__init__.py:3378
- msgid "No package matched to remove"
- msgstr "Yhtään poistopyyntöä vastaavaa pakettia ei ole"
- 
--#: ../yum/__init__.py:3411
-+#: ../yum/__init__.py:3412
- #, python-format
- msgid "Cannot open: %s. Skipping."
- msgstr "Ei voida avata pakettia: %s. Ohitetaan."
- 
--#: ../yum/__init__.py:3414 ../yum/__init__.py:3513 ../yum/__init__.py:3597
-+#: ../yum/__init__.py:3415 ../yum/__init__.py:3514 ../yum/__init__.py:3598
- #, python-format
- msgid "Examining %s: %s"
- msgstr "Tutkitaan %s: %s"
- 
--#: ../yum/__init__.py:3422 ../yum/__init__.py:3516 ../yum/__init__.py:3600
-+#: ../yum/__init__.py:3423 ../yum/__init__.py:3517 ../yum/__init__.py:3601
- #, python-format
- msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
- msgstr ""
- "Pakettia %s ei voida lisätä transaktioon. Arkkitehtuuri ei ole yhteensopiva: "
- "%s"
- 
--#: ../yum/__init__.py:3430
-+#: ../yum/__init__.py:3431
- #, python-format
- msgid ""
- "Package %s not installed, cannot update it. Run yum install to install it "
-@@ -2478,109 +2481,109 @@ msgstr ""
- "Pakettia %s ei ole asennettu, sitä ei voida päivittää. Suorita yum install -"
- "komento paketin asentamiseksi."
- 
--#: ../yum/__init__.py:3459 ../yum/__init__.py:3521 ../yum/__init__.py:3605
-+#: ../yum/__init__.py:3460 ../yum/__init__.py:3522 ../yum/__init__.py:3606
- #, python-format
- msgid "Excluding %s"
- msgstr "Ohitetaan paketti %s"
- 
--#: ../yum/__init__.py:3464
-+#: ../yum/__init__.py:3465
- #, python-format
- msgid "Marking %s to be installed"
- msgstr "Merkitään paketti %s asennettavaksi"
- 
--#: ../yum/__init__.py:3470
-+#: ../yum/__init__.py:3471
- #, python-format
- msgid "Marking %s as an update to %s"
- msgstr "Merkitään paketti %s päivitykseksi paketille %s"
- 
--#: ../yum/__init__.py:3477
-+#: ../yum/__init__.py:3478
- #, python-format
- msgid "%s: does not update installed package."
- msgstr "%s: ei päivitä asennettua pakettia"
- 
--#: ../yum/__init__.py:3510 ../yum/__init__.py:3594
-+#: ../yum/__init__.py:3511 ../yum/__init__.py:3595
- #, python-format
- msgid "Cannot open file: %s. Skipping."
- msgstr "Ei voida avata tiedostoa: %s. Ohitetaan."
- 
--#: ../yum/__init__.py:3540
-+#: ../yum/__init__.py:3541
- msgid "Problem in reinstall: no package matched to remove"
- msgstr "Ongelma uudelleenasennuksessa: poistopyyntöä vastaavaa pakettia ei ole"
- 
--#: ../yum/__init__.py:3553 ../yum/__init__.py:3685
-+#: ../yum/__init__.py:3554 ../yum/__init__.py:3686
- #, python-format
- msgid "Package %s is allowed multiple installs, skipping"
- msgstr "Paketille %s sallitaan useita asennuksia, ohitetaan."
- 
--#: ../yum/__init__.py:3574
-+#: ../yum/__init__.py:3575
- #, python-format
- msgid "Problem in reinstall: no package %s matched to install"
- msgstr ""
- "Ongelma uudelleenasennuksessa: asennuspyyntöä vastaavaa pakettia %s ei ole"
- 
--#: ../yum/__init__.py:3677
-+#: ../yum/__init__.py:3678
- msgid "No package(s) available to downgrade"
- msgstr "Yhtään pakettia ei ole saatavilla varhennettavaksi"
- 
--#: ../yum/__init__.py:3730
-+#: ../yum/__init__.py:3731
- #, python-format
- msgid "No Match for available package: %s"
- msgstr "Ei vastaavuutta saatavilla olevalle paketille: %s"
- 
--#: ../yum/__init__.py:3737
-+#: ../yum/__init__.py:3738
- #, python-format
- msgid "Only Upgrade available on package: %s"
- msgstr "Vain päivitys saatavilla paketille: %s"
- 
--#: ../yum/__init__.py:3807 ../yum/__init__.py:3844
-+#: ../yum/__init__.py:3808 ../yum/__init__.py:3845
- #, python-format
- msgid "Failed to downgrade: %s"
- msgstr "Varhentaminen epäonnistui: %s"
- 
--#: ../yum/__init__.py:3876
-+#: ../yum/__init__.py:3877
- #, python-format
- msgid "Retrieving GPG key from %s"
- msgstr "Noudetaan GPG-avain osoitteesta %s"
- 
--#: ../yum/__init__.py:3896
-+#: ../yum/__init__.py:3897
- msgid "GPG key retrieval failed: "
- msgstr "GPG-avaimen nouto epäonnistui: "
- 
--#: ../yum/__init__.py:3902
-+#: ../yum/__init__.py:3903
- #, python-format
- msgid "Invalid GPG Key from %s: %s"
- msgstr "Virheellinen GPG-avain osoitteesta %s: %s"
- 
--#: ../yum/__init__.py:3911
-+#: ../yum/__init__.py:3912
- #, python-format
- msgid "GPG key parsing failed: key does not have value %s"
- msgstr "GPG-avaimen jäsentäminen epäonnistui: avaimessa ei ole arvoa %s"
- 
--#: ../yum/__init__.py:3943
-+#: ../yum/__init__.py:3944
- #, python-format
- msgid "GPG key at %s (0x%s) is already installed"
- msgstr "Osoitteesta %s ladattu GPG-avain (0x%s) on jo asennetuna"
- 
- #. Try installing/updating GPG key
--#: ../yum/__init__.py:3948 ../yum/__init__.py:4010
-+#: ../yum/__init__.py:3949 ../yum/__init__.py:4011
- #, python-format
- msgid "Importing GPG key 0x%s \"%s\" from %s"
- msgstr "Tuodaan GPG-avain 0x%s ”%s” osoitteesta %s"
- 
--#: ../yum/__init__.py:3965
-+#: ../yum/__init__.py:3966
- msgid "Not installing key"
- msgstr "Avainta ei asenneta"
- 
--#: ../yum/__init__.py:3971
-+#: ../yum/__init__.py:3972
- #, python-format
- msgid "Key import failed (code %d)"
- msgstr "Avaimen tuonti epäonnistui (koodi %d)"
- 
--#: ../yum/__init__.py:3972 ../yum/__init__.py:4031
-+#: ../yum/__init__.py:3973 ../yum/__init__.py:4032
- msgid "Key imported successfully"
- msgstr "Avaimen tuonti onnistui"
- 
--#: ../yum/__init__.py:3977 ../yum/__init__.py:4036
-+#: ../yum/__init__.py:3978 ../yum/__init__.py:4037
- #, python-format
- msgid ""
- "The GPG keys listed for the \"%s\" repository are already installed but they "
-@@ -2591,42 +2594,42 @@ msgstr ""
- "vastaa tätä pakettia.\n"
- "Tarkista että tälle asennuslähteelle on asetettu oikeat avainten URL:t."
- 
--#: ../yum/__init__.py:3986
-+#: ../yum/__init__.py:3987
- msgid "Import of key(s) didn't help, wrong key(s)?"
- msgstr "Avainten tuonti ei auttanut, ovatko avaimet vääriä?"
- 
--#: ../yum/__init__.py:4005
-+#: ../yum/__init__.py:4006
- #, python-format
- msgid "GPG key at %s (0x%s) is already imported"
- msgstr "Osoitteesta %s ladattu GPG-avain (0x%s) on jo tuotu"
- 
--#: ../yum/__init__.py:4025
-+#: ../yum/__init__.py:4026
- #, python-format
- msgid "Not installing key for repo %s"
- msgstr "Ei asenneta avainta asennuslähteelle %s"
- 
--#: ../yum/__init__.py:4030
-+#: ../yum/__init__.py:4031
- msgid "Key import failed"
- msgstr "Avaimen tuonti epäonnistui"
- 
--#: ../yum/__init__.py:4156
-+#: ../yum/__init__.py:4157
- msgid "Unable to find a suitable mirror."
- msgstr "Sopivaa peilipalvelinta ei löytynyt."
- 
--#: ../yum/__init__.py:4158
-+#: ../yum/__init__.py:4159
- msgid "Errors were encountered while downloading packages."
- msgstr "Paketteja ladatessa tapahtui virheitä."
- 
--#: ../yum/__init__.py:4208
-+#: ../yum/__init__.py:4209
- #, python-format
- msgid "Please report this error at %s"
- msgstr "Ilmoita tästä ongelmasta: %s"
- 
--#: ../yum/__init__.py:4232
-+#: ../yum/__init__.py:4233
- msgid "Test Transaction Errors: "
- msgstr "Testitransaktion virheitä: "
- 
--#: ../yum/__init__.py:4333
-+#: ../yum/__init__.py:4334
- #, python-format
- msgid "Could not set cachedir: %s"
- msgstr "Välimuistihakemiston asettaminen epäonnistui %s"
-diff --git a/po/pt_BR.po b/po/pt_BR.po
-index 32a16af..91cea8f 100644
---- a/po/pt_BR.po
-+++ b/po/pt_BR.po
-@@ -1,15 +1,15 @@
- # Brazilian Portuguese translation of Yum
- # This file is distributed under the same license as the Yum package.
- # Igor Pires Soares <igor at projetofedora.org>, 2007,2008,2009.
--#
-+# Taylon Silmer <taylonsilva at gmail.com>, 2010.
- msgid ""
- msgstr ""
- "Project-Id-Version: Yum\n"
- "Report-Msgid-Bugs-To: \n"
--"POT-Creation-Date: 2009-10-15 15:45+0200\n"
--"PO-Revision-Date: 2009-11-02 11:15-0300\n"
--"Last-Translator: Igor Pires Soares <igor at projetofedora.org>\n"
--"Language-Team: Brazilian Portuguese <fedora-trans-pt_br at redhat.com>\n"
-+"POT-Creation-Date: 2010-02-11 10:54-0500\n"
-+"PO-Revision-Date: 2010-04-28 19:15-0300\n"
-+"Last-Translator: Taylon Silmer <taylonsilva at gmail.com>\n"
-+"Language-Team: Brazilian Portuguese <trans-pt_br at lists.fedoraproject.org>\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=UTF-8\n"
- "Content-Transfer-Encoding: 8bit\n"
-@@ -17,49 +17,34 @@ msgstr ""
- "X-Poedit-Language: Portuguese\n"
- "X-Poedit-Country: BRAZIL\n"
- 
--#: ../callback.py:48
--#: ../output.py:940
--#: ../yum/rpmtrans.py:71
-+#: ../callback.py:48 ../output.py:947 ../yum/rpmtrans.py:72
- msgid "Updating"
- msgstr "Atualizando"
- 
--#: ../callback.py:49
--#: ../yum/rpmtrans.py:72
-+#: ../callback.py:49 ../yum/rpmtrans.py:73
- msgid "Erasing"
- msgstr "Apagando"
- 
--#: ../callback.py:50
--#: ../callback.py:51
--#: ../callback.py:53
--#: ../output.py:939
--#: ../yum/rpmtrans.py:73
--#: ../yum/rpmtrans.py:74
--#: ../yum/rpmtrans.py:76
-+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:946
-+#: ../output.py:1659 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:75
-+#: ../yum/rpmtrans.py:77
- msgid "Installing"
- msgstr "Instalando"
- 
--#: ../callback.py:52
--#: ../callback.py:58
--#: ../yum/rpmtrans.py:75
-+#: ../callback.py:52 ../callback.py:58 ../output.py:1484 ../yum/rpmtrans.py:76
- msgid "Obsoleted"
- msgstr "Obsoletos"
- 
--#: ../callback.py:54
--#: ../output.py:1063
--#: ../output.py:1403
-+#: ../callback.py:54 ../output.py:1070 ../output.py:1442 ../output.py:1491
- msgid "Updated"
- msgstr "Atualizados"
- 
--#: ../callback.py:55
--#: ../output.py:1399
-+#: ../callback.py:55 ../output.py:1438
- msgid "Erased"
- msgstr "Removidos"
- 
--#: ../callback.py:56
--#: ../callback.py:57
--#: ../callback.py:59
--#: ../output.py:1061
--#: ../output.py:1395
-+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1068
-+#: ../output.py:1434 ../output.py:1646
- msgid "Installed"
- msgstr "Instalados"
- 
-@@ -81,73 +66,73 @@ msgstr "Erro: estado de saída inválido: %s de %s"
- msgid "Erased: %s"
- msgstr "Removidos: %s"
- 
--#: ../callback.py:217
--#: ../output.py:941
-+#: ../callback.py:217 ../output.py:948 ../output.py:1648
- msgid "Removing"
- msgstr "Removendo"
- 
--#: ../callback.py:219
--#: ../yum/rpmtrans.py:77
-+#: ../callback.py:219 ../yum/rpmtrans.py:78
- msgid "Cleanup"
- msgstr "Limpeza"
- 
--#: ../cli.py:106
-+#: ../cli.py:107
- #, python-format
- msgid "Command \"%s\" already defined"
- msgstr "Comando \"%s\" já definido"
- 
--#: ../cli.py:118
-+#: ../cli.py:119
- msgid "Setting up repositories"
- msgstr "Configurando repositórios"
- 
--#: ../cli.py:129
-+#: ../cli.py:130
- msgid "Reading repository metadata in from local files"
- msgstr "Lendo metadados do repositório a partir dos arquivos locais"
- 
--#: ../cli.py:192
--#: ../utils.py:107
-+#: ../cli.py:194 ../utils.py:193
- #, python-format
- msgid "Config Error: %s"
- msgstr "Erro de configuração: %s"
- 
--#: ../cli.py:195
--#: ../cli.py:1251
--#: ../utils.py:110
-+#: ../cli.py:197 ../cli.py:1272 ../utils.py:196
- #, python-format
- msgid "Options Error: %s"
- msgstr "Erro nas opções: %s"
- 
--#: ../cli.py:223
-+#: ../cli.py:227
- #, python-format
- msgid "  Installed: %s-%s at %s"
- msgstr "  Instalados: %s-%s em %s"
- 
--#: ../cli.py:225
-+#: ../cli.py:229
- #, python-format
- msgid "  Built    : %s at %s"
- msgstr "  Construídos    : %s em %s"
- 
--#: ../cli.py:227
-+#: ../cli.py:231
- #, python-format
- msgid "  Committed: %s at %s"
- msgstr "  Enviados: %s em %s"
- 
--#: ../cli.py:266
-+#: ../cli.py:270
- msgid "You need to give some command"
- msgstr "Você precisa dar algum comando"
- 
--#: ../cli.py:309
-+#: ../cli.py:284
-+#, python-format
-+msgid "No such command: %s. Please use %s --help"
-+msgstr "Comando não encontrado: %s. Por favor, utilize %s --help"
-+
-+#: ../cli.py:314
- msgid "Disk Requirements:\n"
- msgstr "Requisitos de disco:\n"
- 
--#: ../cli.py:311
-+#: ../cli.py:316
- #, python-format
--msgid "  At least %dMB needed on the %s filesystem.\n"
--msgstr "  Pelo menos %d MB são necessários no sistema de arquivos %s.\n"
-+msgid "  At least %dMB more space needed on the %s filesystem.\n"
-+msgstr "  Pelo menos mais %dMB são necessários no sistema de arquivos %s.\n"
- 
- #. TODO: simplify the dependency errors?
- #. Fixup the summary
--#: ../cli.py:316
-+#: ../cli.py:321
- msgid ""
- "Error Summary\n"
- "-------------\n"
-@@ -155,266 +140,262 @@ msgstr ""
- "Sumário de erros\n"
- "-------------\n"
- 
--#: ../cli.py:359
-+#: ../cli.py:364
- msgid "Trying to run the transaction but nothing to do. Exiting."
- msgstr "Tentando executar a transação, mas não há nada a ser feito. Saindo."
- 
--#: ../cli.py:395
-+#: ../cli.py:403
- msgid "Exiting on user Command"
- msgstr "Saindo pelo comando do usuário"
- 
--#: ../cli.py:399
-+#: ../cli.py:407
- msgid "Downloading Packages:"
- msgstr "Baixando pacotes:"
- 
--#: ../cli.py:404
-+#: ../cli.py:412
- msgid "Error Downloading Packages:\n"
- msgstr "Erro ao baixar pacotes:\n"
- 
--#: ../cli.py:418
--#: ../yum/__init__.py:4014
-+#: ../cli.py:426 ../yum/__init__.py:4195
- msgid "Running rpm_check_debug"
- msgstr "Executando o rpm_check_debug"
- 
--#: ../cli.py:427
--#: ../yum/__init__.py:4023
-+#: ../cli.py:435 ../yum/__init__.py:4204
- msgid "ERROR You need to update rpm to handle:"
- msgstr "ERRO. Você precisa atualizar o rpm para manipular:"
- 
--#: ../cli.py:429
--#: ../yum/__init__.py:4026
-+#: ../cli.py:437 ../yum/__init__.py:4207
- msgid "ERROR with rpm_check_debug vs depsolve:"
- msgstr "Erro com o rpm_check_debug vs depsolve:"
- 
--#: ../cli.py:435
-+#: ../cli.py:443
- msgid "RPM needs to be updated"
- msgstr "O RPM precisa ser atualizado"
- 
--#: ../cli.py:436
-+#: ../cli.py:444
- #, python-format
- msgid "Please report this error in %s"
- msgstr "Por favor, relate esse erro em %s"
- 
--#: ../cli.py:442
-+#: ../cli.py:450
- msgid "Running Transaction Test"
- msgstr "Executando teste de transação"
- 
--#: ../cli.py:458
--msgid "Finished Transaction Test"
--msgstr "Teste de transação finalizado"
--
--#: ../cli.py:460
-+#: ../cli.py:466
- msgid "Transaction Check Error:\n"
- msgstr "Erro na verificação da transação:\n"
- 
--#: ../cli.py:467
-+#: ../cli.py:473
- msgid "Transaction Test Succeeded"
- msgstr "Teste de transação completo"
- 
--#: ../cli.py:489
-+#: ../cli.py:495
- msgid "Running Transaction"
- msgstr "Executando a transação"
- 
--#: ../cli.py:519
-+#: ../cli.py:525
- msgid ""
- "Refusing to automatically import keys when running unattended.\n"
- "Use \"-y\" to override."
- msgstr ""
--"Recusa de importação automática das chaves ao executar de forma não assistida.\n"
-+"Recusa de importação automática das chaves ao executar de forma não "
-+"assistida.\n"
- "Use \"-y\" para sobrescrever."
- 
--#: ../cli.py:538
--#: ../cli.py:572
-+#: ../cli.py:544 ../cli.py:578
- msgid "  * Maybe you meant: "
- msgstr "  * Talvez você queira dizer: "
- 
--#: ../cli.py:555
--#: ../cli.py:563
-+#: ../cli.py:561 ../cli.py:569
- #, python-format
- msgid "Package(s) %s%s%s available, but not installed."
- msgstr "Pacotes %s%s%s disponíveis, mas já instalados."
- 
--#: ../cli.py:569
--#: ../cli.py:600
--#: ../cli.py:678
-+#: ../cli.py:575 ../cli.py:607 ../cli.py:687
- #, python-format
- msgid "No package %s%s%s available."
- msgstr "Nenhum pacote %s%s%s disponível."
- 
--#: ../cli.py:605
--#: ../cli.py:738
-+#: ../cli.py:612 ../cli.py:748
- msgid "Package(s) to install"
- msgstr "Pacotes a serem instalados"
- 
--#: ../cli.py:606
--#: ../cli.py:684
--#: ../cli.py:717
--#: ../cli.py:739
--#: ../yumcommands.py:159
-+#: ../cli.py:613 ../cli.py:693 ../cli.py:727 ../cli.py:749
-+#: ../yumcommands.py:160
- msgid "Nothing to do"
- msgstr "Nada a ser feito"
- 
--#: ../cli.py:639
-+#: ../cli.py:647
- #, python-format
- msgid "%d packages marked for Update"
- msgstr "%d pacotes marcados para atualização"
- 
--#: ../cli.py:642
-+#: ../cli.py:650
- msgid "No Packages marked for Update"
- msgstr "Nenhum pacote marcado para atualização"
- 
--#: ../cli.py:656
-+#: ../cli.py:664
- #, python-format
- msgid "%d packages marked for removal"
- msgstr "%d pacotes marcados para remoção"
- 
--#: ../cli.py:659
-+#: ../cli.py:667
- msgid "No Packages marked for removal"
- msgstr "Nenhum pacote marcado para remoção"
- 
--#: ../cli.py:683
-+#: ../cli.py:692
- msgid "Package(s) to downgrade"
- msgstr "Pacote(s) a ser(em) retrocedido(s)"
- 
--#: ../cli.py:707
-+#: ../cli.py:717
- #, python-format
- msgid " (from %s)"
- msgstr " (a partir de %s)"
- 
--#: ../cli.py:709
-+#: ../cli.py:719
- #, python-format
- msgid "Installed package %s%s%s%s not available."
- msgstr "O pacote instalado %s%s%s%s não está disponível."
- 
--#: ../cli.py:716
-+#: ../cli.py:726
- msgid "Package(s) to reinstall"
- msgstr "Pacote(s) a ser(em) reinstalado(s)"
- 
--#: ../cli.py:729
-+#: ../cli.py:739
- msgid "No Packages Provided"
- msgstr "Nenhum pacote fornecido"
- 
--#: ../cli.py:813
-+#: ../cli.py:818
-+#, python-format
-+msgid "Matched: %s"
-+msgstr "Encontrado: %s"
-+
-+#: ../cli.py:825
- #, python-format
- msgid "Warning: No matches found for: %s"
- msgstr "Aviso: nenhum resultado para: %s"
- 
--#: ../cli.py:816
-+#: ../cli.py:828
- msgid "No Matches found"
- msgstr "Nenhum pacote localizado"
- 
--#: ../cli.py:855
-+#: ../cli.py:868
- #, python-format
- msgid ""
- "Warning: 3.0.x versions of yum would erroneously match against filenames.\n"
- " You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
- msgstr ""
--"Aviso: as versões 3.0.x do yum iriam corresponder erroneamente pelos nomes de arquivos.\n"
--" Você pode usar \"%s*/%s%s\" e/ou \"%s*bin/%s%s\" para obter esse comportamento."
-+"Aviso: as versões 3.0.x do yum iriam corresponder erroneamente pelos nomes "
-+"de arquivos.\n"
-+" Você pode usar \"%s*/%s%s\" e/ou \"%s*bin/%s%s\" para obter esse "
-+"comportamento."
- 
--#: ../cli.py:871
-+#: ../cli.py:884
- #, python-format
- msgid "No Package Found for %s"
- msgstr "Nenhum pacote localizado para %s"
- 
--#: ../cli.py:883
-+#: ../cli.py:896
- msgid "Cleaning up Everything"
- msgstr "Limpando tudo"
- 
--#: ../cli.py:897
-+#: ../cli.py:912
- msgid "Cleaning up Headers"
- msgstr "Limpando cabeçalhos"
- 
--#: ../cli.py:900
-+#: ../cli.py:915
- msgid "Cleaning up Packages"
- msgstr "Limpando pacotes"
- 
--#: ../cli.py:903
-+#: ../cli.py:918
- msgid "Cleaning up xml metadata"
- msgstr "Limpando metadados em xml"
- 
--#: ../cli.py:906
-+#: ../cli.py:921
- msgid "Cleaning up database cache"
- msgstr "Limpando cache do banco de dados"
- 
--#: ../cli.py:909
-+#: ../cli.py:924
- msgid "Cleaning up expire-cache metadata"
- msgstr "Limpando metadados expirados do cache"
- 
--#: ../cli.py:912
-+#: ../cli.py:927
-+msgid "Cleaning up cached rpmdb data"
-+msgstr "Limpando dados rpmdb em cache"
-+
-+#: ../cli.py:930
- msgid "Cleaning up plugins"
- msgstr "Limpando plugins"
- 
--#: ../cli.py:937
-+#: ../cli.py:955
- msgid "Installed Groups:"
- msgstr "Grupos instalados:"
- 
--#: ../cli.py:949
-+#: ../cli.py:967
- msgid "Available Groups:"
- msgstr "Grupos disponíveis:"
- 
--#: ../cli.py:959
-+#: ../cli.py:977
- msgid "Done"
- msgstr "Concluído"
- 
--#: ../cli.py:970
--#: ../cli.py:988
--#: ../cli.py:994
--#: ../yum/__init__.py:2629
-+#: ../cli.py:988 ../cli.py:1006 ../cli.py:1012 ../yum/__init__.py:2788
- #, python-format
- msgid "Warning: Group %s does not exist."
- msgstr "Aviso: O grupo %s não existe."
- 
--#: ../cli.py:998
-+#: ../cli.py:1016
- msgid "No packages in any requested group available to install or update"
--msgstr "Nenhum pacote disponível para instalação ou atualização nos grupos requisitados"
-+msgstr ""
-+"Nenhum pacote disponível para instalação ou atualização nos grupos "
-+"requisitados"
- 
--#: ../cli.py:1000
-+#: ../cli.py:1018
- #, python-format
- msgid "%d Package(s) to Install"
- msgstr "%d pacote(s) a ser(em) instalado(s)"
- 
--#: ../cli.py:1010
--#: ../yum/__init__.py:2641
-+#: ../cli.py:1028 ../yum/__init__.py:2800
- #, python-format
- msgid "No group named %s exists"
- msgstr "Nenhum grupo de nome %s existe"
- 
--#: ../cli.py:1016
-+#: ../cli.py:1034
- msgid "No packages to remove from groups"
- msgstr "Nenhum pacote a ser removido a partir dos grupos"
- 
--#: ../cli.py:1018
-+#: ../cli.py:1036
- #, python-format
- msgid "%d Package(s) to remove"
- msgstr "%d pacote(s) a ser(em) removido(s)"
- 
--#: ../cli.py:1060
-+#: ../cli.py:1078
- #, python-format
- msgid "Package %s is already installed, skipping"
- msgstr "O pacote %s já está instalado, ignorando"
- 
--#: ../cli.py:1071
-+#: ../cli.py:1089
- #, python-format
- msgid "Discarding non-comparable pkg %s.%s"
- msgstr "Descartando pacote não comparável %s.%s"
- 
- #. we've not got any installed that match n or n+a
--#: ../cli.py:1097
-+#: ../cli.py:1115
- #, python-format
- msgid "No other %s installed, adding to list for potential install"
--msgstr "Nenhum outro %s instalado, adicionado à lista para potencial instalação"
-+msgstr ""
-+"Nenhum outro %s instalado, adicionado à lista para potencial instalação"
- 
--#: ../cli.py:1117
-+#: ../cli.py:1135
- msgid "Plugin Options"
- msgstr "Opções do plugin"
- 
--#: ../cli.py:1125
-+#: ../cli.py:1143
- #, python-format
- msgid "Command line error: %s"
- msgstr "Erro na linha de comando: %s"
- 
--#: ../cli.py:1138
-+#: ../cli.py:1156
- #, python-format
- msgid ""
- "\n"
-@@ -425,106 +406,117 @@ msgstr ""
- "\n"
- "%s: a opção %s requer um argumento"
- 
--#: ../cli.py:1191
-+#: ../cli.py:1209
- msgid "--color takes one of: auto, always, never"
- msgstr "--color aceita uma destas opções: auto, always, never"
- 
--#: ../cli.py:1298
-+#: ../cli.py:1319
- msgid "show this help message and exit"
- msgstr "mostrar essa mensagem ajuda e sai"
- 
--#: ../cli.py:1302
-+#: ../cli.py:1323
- msgid "be tolerant of errors"
- msgstr "ser tolerante com os erros"
- 
--#: ../cli.py:1304
--msgid "run entirely from cache, don't update cache"
--msgstr "executar por completo a partir do cache, não atualiza o cache"
-+#: ../cli.py:1326
-+msgid "run entirely from system cache, don't update cache"
-+msgstr ""
-+"executar por completo a partir do cache do sistema, não atualiza o cache"
- 
--#: ../cli.py:1306
-+#: ../cli.py:1329
- msgid "config file location"
- msgstr "configurar localização do arquivo"
- 
--#: ../cli.py:1308
-+#: ../cli.py:1332
- msgid "maximum command wait time"
- msgstr "Tempo máximo de espera do comando"
- 
--#: ../cli.py:1310
-+#: ../cli.py:1334
- msgid "debugging output level"
- msgstr "nível de depuração na saída"
- 
--#: ../cli.py:1314
-+#: ../cli.py:1338
- msgid "show duplicates, in repos, in list/search commands"
- msgstr "mostrar duplicados em repos e em comandos de pesquisa/listagem"
- 
--#: ../cli.py:1316
-+#: ../cli.py:1340
- msgid "error output level"
- msgstr "nível de erro na saída"
- 
--#: ../cli.py:1319
-+#: ../cli.py:1343
-+msgid "debugging output level for rpm"
-+msgstr "nível de depuração na saída para o rpm"
-+
-+#: ../cli.py:1346
- msgid "quiet operation"
- msgstr "operação discreta"
- 
--#: ../cli.py:1321
-+#: ../cli.py:1348
- msgid "verbose operation"
- msgstr "operação detalhada"
- 
--#: ../cli.py:1323
-+#: ../cli.py:1350
- msgid "answer yes for all questions"
- msgstr "responder sim para todas as perguntas"
- 
--#: ../cli.py:1325
-+#: ../cli.py:1352
- msgid "show Yum version and exit"
- msgstr "mostrar versão do Yum ao sair"
- 
--#: ../cli.py:1326
-+#: ../cli.py:1353
- msgid "set install root"
- msgstr "definir raiz de instalação"
- 
--#: ../cli.py:1330
-+#: ../cli.py:1357
- msgid "enable one or more repositories (wildcards allowed)"
- msgstr "habilitar um ou mais repositórios (curingas são permitidos)"
- 
--#: ../cli.py:1334
-+#: ../cli.py:1361
- msgid "disable one or more repositories (wildcards allowed)"
- msgstr "desabilitar um ou mais repositórios (curingas são permitidos)"
- 
--#: ../cli.py:1337
-+#: ../cli.py:1364
- msgid "exclude package(s) by name or glob"
- msgstr "excluir pacote(s) por nome ou glob"
- 
--#: ../cli.py:1339
-+#: ../cli.py:1366
- msgid "disable exclude from main, for a repo or for everything"
--msgstr "desabilitar a exclusão a partir do principal, para um repositório ou para tudo"
-+msgstr ""
-+"desabilitar a exclusão a partir do principal, para um repositório ou para "
-+"tudo"
- 
--#: ../cli.py:1342
-+#: ../cli.py:1369
- msgid "enable obsoletes processing during updates"
- msgstr "Habilitar processo de obsolescência durante as atualizações"
- 
--#: ../cli.py:1344
-+#: ../cli.py:1371
- msgid "disable Yum plugins"
- msgstr "desabilitar plugins do Yum"
- 
--#: ../cli.py:1346
-+#: ../cli.py:1373
- msgid "disable gpg signature checking"
- msgstr "desabilitar verificação de assinaturas gpg"
- 
--#: ../cli.py:1348
-+#: ../cli.py:1375
- msgid "disable plugins by name"
- msgstr "desabilitar plugins pelo nome"
- 
--#: ../cli.py:1351
-+#: ../cli.py:1378
- msgid "enable plugins by name"
- msgstr "habilita plugins pelo nome"
- 
--#: ../cli.py:1354
-+#: ../cli.py:1381
- msgid "skip packages with depsolving problems"
- msgstr "ignorar pacotes com problemas de solução de dependências"
- 
--#: ../cli.py:1356
-+#: ../cli.py:1383
- msgid "control whether color is used"
- msgstr "controla o uso da cor"
- 
-+#: ../cli.py:1385
-+msgid "set value of $releasever in yum config and repo files"
-+msgstr "defina o valor de $releasever nos arquivos repo e yum config"
-+
- #: ../output.py:305
- msgid "Jan"
- msgstr "Jan"
-@@ -577,105 +569,104 @@ msgstr "Dez"
- msgid "Trying other mirror."
- msgstr "Tentando outro espelho."
- 
--#: ../output.py:538
-+#: ../output.py:534
- #, python-format
- msgid "Name       : %s%s%s"
- msgstr "Nome       : %s%s%s"
- 
--#: ../output.py:539
-+#: ../output.py:535
- #, python-format
- msgid "Arch       : %s"
- msgstr "Arq.   : %s"
- 
--#: ../output.py:541
-+#: ../output.py:537
- #, python-format
- msgid "Epoch      : %s"
- msgstr "Período      : %s"
- 
--#: ../output.py:542
-+#: ../output.py:538
- #, python-format
- msgid "Version    : %s"
- msgstr "Versão    : %s"
- 
--#: ../output.py:543
-+#: ../output.py:539
- #, python-format
- msgid "Release    : %s"
- msgstr "Lançamento  : %s"
- 
--#: ../output.py:544
-+#: ../output.py:540
- #, python-format
- msgid "Size       : %s"
- msgstr "Tamanho   : %s"
- 
--#: ../output.py:545
-+#: ../output.py:541
- #, python-format
- msgid "Repo       : %s"
- msgstr "Repo       : %s"
- 
--#: ../output.py:547
-+#: ../output.py:543
- #, python-format
- msgid "From repo  : %s"
- msgstr "Do repositório: %s"
- 
--#: ../output.py:549
-+#: ../output.py:545
- #, python-format
- msgid "Committer  : %s"
- msgstr "Enviado por  : %s"
- 
--#: ../output.py:550
-+#: ../output.py:546
- #, python-format
- msgid "Committime : %s"
- msgstr "Horário do envio : %s"
- 
--#: ../output.py:551
-+#: ../output.py:547
- #, python-format
- msgid "Buildtime  : %s"
- msgstr "Horário da construção  : %s"
- 
--#: ../output.py:553
-+#: ../output.py:549
- #, python-format
- msgid "Installtime: %s"
- msgstr "Horário da instalação: %s"
- 
--#: ../output.py:554
-+#: ../output.py:550
- msgid "Summary    : "
- msgstr "Sumário    : "
- 
--#: ../output.py:556
-+#: ../output.py:552
- #, python-format
- msgid "URL        : %s"
- msgstr "URL        : %s"
- 
--#: ../output.py:557
--#, python-format
--msgid "License    : %s"
--msgstr "Licença   : %s"
-+#: ../output.py:553
-+msgid "License    : "
-+msgstr "Licença    : "
- 
--#: ../output.py:558
-+#: ../output.py:554
- msgid "Description: "
- msgstr "Descrição: "
- 
--#: ../output.py:626
-+#: ../output.py:622
- msgid "y"
- msgstr "s"
- 
--#: ../output.py:626
-+#: ../output.py:622
- msgid "yes"
- msgstr "sim"
- 
--#: ../output.py:627
-+#: ../output.py:623
- msgid "n"
- msgstr "n"
- 
--#: ../output.py:627
-+#: ../output.py:623
- msgid "no"
- msgstr "não"
- 
--#: ../output.py:631
-+#: ../output.py:627
- msgid "Is this ok [y/N]: "
- msgstr "Correto? [s/N]:"
- 
--#: ../output.py:722
-+#: ../output.py:715
- #, python-format
- msgid ""
- "\n"
-@@ -684,151 +675,151 @@ msgstr ""
- "\n"
- "Grupo: %s"
- 
--#: ../output.py:726
-+#: ../output.py:719
- #, python-format
- msgid " Group-Id: %s"
- msgstr " Group-Id: %s"
- 
--#: ../output.py:731
-+#: ../output.py:724
- #, python-format
- msgid " Description: %s"
- msgstr " Descrição: %s"
- 
--#: ../output.py:733
-+#: ../output.py:726
- msgid " Mandatory Packages:"
- msgstr " Pacotes obrigatórios:"
- 
--#: ../output.py:734
-+#: ../output.py:727
- msgid " Default Packages:"
- msgstr " Pacotes padrão:"
- 
--#: ../output.py:735
-+#: ../output.py:728
- msgid " Optional Packages:"
- msgstr " Pacotes opcionais:"
- 
--#: ../output.py:736
-+#: ../output.py:729
- msgid " Conditional Packages:"
- msgstr " Pacotes condicionais:"
- 
--#: ../output.py:756
-+#: ../output.py:749
- #, python-format
- msgid "package: %s"
- msgstr "pacote: %s"
- 
--#: ../output.py:758
-+#: ../output.py:751
- msgid "  No dependencies for this package"
- msgstr "  Nenhuma dependência para este pacote"
- 
--#: ../output.py:763
-+#: ../output.py:756
- #, python-format
- msgid "  dependency: %s"
- msgstr "  dependência: %s"
- 
--#: ../output.py:765
-+#: ../output.py:758
- msgid "   Unsatisfied dependency"
- msgstr "   Dependência não satisfeita"
- 
--#: ../output.py:837
-+#: ../output.py:830
- #, python-format
- msgid "Repo        : %s"
- msgstr "Repo        : %s"
- 
--#: ../output.py:838
-+#: ../output.py:831
- msgid "Matched from:"
- msgstr "Resultado a partir de:"
- 
--#: ../output.py:847
-+#: ../output.py:840
- msgid "Description : "
- msgstr "Descrição : "
- 
--#: ../output.py:850
-+#: ../output.py:843
- #, python-format
- msgid "URL         : %s"
- msgstr "URL         : %s"
- 
--#: ../output.py:853
-+#: ../output.py:846
- #, python-format
- msgid "License     : %s"
- msgstr "Licença     : %s"
- 
--#: ../output.py:856
-+#: ../output.py:849
- #, python-format
- msgid "Filename    : %s"
- msgstr "Nome de arquivo    : %s"
- 
--#: ../output.py:860
-+#: ../output.py:853
- msgid "Other       : "
- msgstr "Outro       : "
- 
--#: ../output.py:893
-+#: ../output.py:896
- msgid "There was an error calculating total download size"
- msgstr "Houve um erro no cálculo do tamanho total do download"
- 
--#: ../output.py:898
-+#: ../output.py:901
- #, python-format
- msgid "Total size: %s"
- msgstr "Tamanho total: %s"
- 
--#: ../output.py:901
-+#: ../output.py:904
- #, python-format
- msgid "Total download size: %s"
- msgstr "Tamanho total do download: %s"
- 
--#: ../output.py:942
-+#: ../output.py:908
-+#, python-format
-+msgid "Installed size: %s"
-+msgstr "Tamanho depois de instalado: %s"
-+
-+#: ../output.py:949
- msgid "Reinstalling"
- msgstr "Reinstalando"
- 
--#: ../output.py:943
-+#: ../output.py:950
- msgid "Downgrading"
- msgstr "Desatualizando"
- 
--#: ../output.py:944
-+#: ../output.py:951
- msgid "Installing for dependencies"
- msgstr "Instalando para as dependências"
- 
--#: ../output.py:945
-+#: ../output.py:952
- msgid "Updating for dependencies"
- msgstr "Atualizando para as dependências"
- 
--#: ../output.py:946
-+#: ../output.py:953
- msgid "Removing for dependencies"
- msgstr "Removendo para as dependências"
- 
--#: ../output.py:953
--#: ../output.py:1065
-+#: ../output.py:960 ../output.py:1072
- msgid "Skipped (dependency problems)"
- msgstr "Ignorado (problemas de dependências)"
- 
--#: ../output.py:976
-+#: ../output.py:983
- msgid "Package"
- msgstr "Pacote"
- 
--#: ../output.py:976
-+#: ../output.py:983
- msgid "Arch"
- msgstr "Arq."
- 
--#: ../output.py:977
-+#: ../output.py:984
- msgid "Version"
- msgstr "Versão"
- 
--#: ../output.py:977
-+#: ../output.py:984
- msgid "Repository"
- msgstr "Repo"
- 
--#: ../output.py:978
-+#: ../output.py:985
- msgid "Size"
- msgstr "Tam."
- 
--#: ../output.py:990
-+#: ../output.py:997
- #, python-format
--msgid ""
--"     replacing  %s%s%s.%s %s\n"
--"\n"
--msgstr ""
--"     substituindo %s%s%s.%s %s\n"
--"\n"
-+msgid "     replacing  %s%s%s.%s %s\n"
-+msgstr "     substituindo  %s%s%s.%s %s\n"
- 
--#: ../output.py:999
-+#: ../output.py:1006
- #, python-format
- msgid ""
- "\n"
-@@ -839,7 +830,7 @@ msgstr ""
- "Resumo da transação\n"
- "%s\n"
- 
--#: ../output.py:1006
-+#: ../output.py:1013
- #, python-format
- msgid ""
- "Install   %5.5s Package(s)\n"
-@@ -848,7 +839,7 @@ msgstr ""
- "Instalar   %5.5s Pacote(s)\n"
- "Atualizar   %5.5s Pacote(s)\n"
- 
--#: ../output.py:1015
-+#: ../output.py:1022
- #, python-format
- msgid ""
- "Remove    %5.5s Package(s)\n"
-@@ -859,32 +850,32 @@ msgstr ""
- "Reinstalar %5.5s Pacote(s)\n"
- "Desatualizar %5.5s Pacote(s)\n"
- 
--#: ../output.py:1059
-+#: ../output.py:1066
- msgid "Removed"
- msgstr "Removido(s)"
- 
--#: ../output.py:1060
-+#: ../output.py:1067
- msgid "Dependency Removed"
- msgstr "Dependência(s) removida(s)"
- 
--#: ../output.py:1062
-+#: ../output.py:1069
- msgid "Dependency Installed"
- msgstr "Dependência(s) instalada(s)"
- 
--#: ../output.py:1064
-+#: ../output.py:1071
- msgid "Dependency Updated"
- msgstr "Dependência(s) atualizada(s)"
- 
--#: ../output.py:1066
-+#: ../output.py:1073
- msgid "Replaced"
- msgstr "Substituído(s)"
- 
--#: ../output.py:1067
-+#: ../output.py:1074
- msgid "Failed"
- msgstr "Falhou"
- 
- #. Delta between C-c's so we treat as exit
--#: ../output.py:1133
-+#: ../output.py:1140
- msgid "two"
- msgstr "dois"
- 
-@@ -892,227 +883,380 @@ msgstr "dois"
- #. Current download cancelled, interrupt (ctrl-c) again within two seconds
- #. to exit.
- #. Where "interupt (ctrl-c) again" and "two" are highlighted.
--#: ../output.py:1144
-+#: ../output.py:1151
- #, python-format
- msgid ""
- "\n"
--" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds\n"
-+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
-+"seconds\n"
- "to exit.\n"
- msgstr ""
- "\n"
--" Download atual cancelado, %sinterrompa com (ctrl-c) novamente%s dentro de %s%s%s segundos\n"
-+" Download atual cancelado, %sinterrompa com (ctrl-c) novamente%s dentro de %s"
-+"%s%s segundos\n"
- "para sair.\n"
- 
--#: ../output.py:1155
-+#: ../output.py:1162
- msgid "user interrupt"
- msgstr "interrupção do usuário"
- 
--#: ../output.py:1173
-+#: ../output.py:1180
- msgid "Total"
- msgstr "Total"
- 
-+#: ../output.py:1202
-+msgid "I"
-+msgstr "I"
-+
- #: ../output.py:1203
-+msgid "O"
-+msgstr "O"
-+
-+#: ../output.py:1204
-+msgid "E"
-+msgstr "E"
-+
-+#: ../output.py:1205
-+msgid "R"
-+msgstr "R"
-+
-+#: ../output.py:1206
-+msgid "D"
-+msgstr "D"
-+
-+#: ../output.py:1207
-+msgid "U"
-+msgstr "U"
-+
-+#: ../output.py:1217
- msgid "<unset>"
- msgstr "<indefinido>"
- 
--#: ../output.py:1204
-+#: ../output.py:1218
- msgid "System"
- msgstr "Sistema"
- 
--#: ../output.py:1240
-+#: ../output.py:1254
- msgid "Bad transaction IDs, or package(s), given"
- msgstr "IDs de transação ou pacote(s) fornecido(s) inválido(s)"
- 
--#: ../output.py:1284
--#: ../yumcommands.py:1149
--#: ../yum/__init__.py:1067
--msgid "Warning: RPMDB has been altered since the last yum transaction."
--msgstr "Aviso: o RPMDB foi alterado desde a última transação do yum."
-+#: ../output.py:1266
-+msgid "ID"
-+msgstr "ID"
-+
-+#: ../output.py:1267 ../output.py:1520
-+msgid "Login user"
-+msgstr "Usuário de login"
-+
-+#: ../output.py:1268
-+msgid "Date and time"
-+msgstr "Data e hora"
-+
-+#: ../output.py:1269 ../output.py:1522
-+msgid "Action(s)"
-+msgstr "Ação(ões)"
- 
--#: ../output.py:1289
-+#: ../output.py:1270 ../output.py:1523
-+msgid "Altered"
-+msgstr "Alterado"
-+
-+#: ../output.py:1310
- msgid "No transaction ID given"
- msgstr "Nenhum ID de transação fornecido"
- 
--#: ../output.py:1297
-+#: ../output.py:1336
- msgid "Bad transaction ID given"
- msgstr "O ID de transação fornecido é inválido"
- 
--#: ../output.py:1302
-+#: ../output.py:1341
- msgid "Not found given transaction ID"
- msgstr "O ID de transação dado não foi localizado"
- 
--#: ../output.py:1310
-+#: ../output.py:1349
- msgid "Found more than one transaction ID!"
- msgstr "Foi localizado mais de um ID de transação!"
- 
--#: ../output.py:1331
-+#: ../output.py:1370
- msgid "No transaction ID, or package, given"
- msgstr "Nenhum ID de transação ou pacote fornecido"
- 
--#: ../output.py:1357
-+#: ../output.py:1396
- msgid "Transaction ID :"
- msgstr "ID de transação:"
- 
--#: ../output.py:1359
-+#: ../output.py:1398
- msgid "Begin time     :"
- msgstr "Horário de início:"
- 
--#: ../output.py:1362
--#: ../output.py:1364
-+#: ../output.py:1401 ../output.py:1403
- msgid "Begin rpmdb    :"
- msgstr "Início do rpmdb:"
- 
--#: ../output.py:1378
-+#: ../output.py:1417
- #, python-format
- msgid "(%s seconds)"
- msgstr "(%s segundos)"
- 
--#: ../output.py:1379
-+#: ../output.py:1418
- msgid "End time       :"
- msgstr "Horário do fim:"
- 
--#: ../output.py:1382
--#: ../output.py:1384
-+#: ../output.py:1421 ../output.py:1423
- msgid "End rpmdb      :"
- msgstr "Fim do rpmdb:"
- 
--#: ../output.py:1385
-+#: ../output.py:1424
- msgid "User           :"
- msgstr "Usuário:"
- 
--#: ../output.py:1387
--#: ../output.py:1389
--#: ../output.py:1391
-+#: ../output.py:1426 ../output.py:1428 ../output.py:1430
- msgid "Return-Code    :"
- msgstr "Código de retorno:"
- 
--#: ../output.py:1387
-+#: ../output.py:1426
- msgid "Aborted"
- msgstr "Interrompido"
- 
--#: ../output.py:1389
-+#: ../output.py:1428
- msgid "Failure:"
- msgstr "Falha:"
- 
--#: ../output.py:1391
-+#: ../output.py:1430
- msgid "Success"
- msgstr "Sucesso"
- 
--#: ../output.py:1392
-+#: ../output.py:1431
- msgid "Transaction performed with:"
- msgstr "Transação realizada com:"
- 
--#: ../output.py:1405
-+#: ../output.py:1444 ../output.py:1489
- msgid "Downgraded"
- msgstr "Desatualizados"
- 
- #. multiple versions installed, both older and newer
--#: ../output.py:1407
-+#: ../output.py:1446
- msgid "Weird"
- msgstr "Estranho"
- 
--#: ../output.py:1409
-+#: ../output.py:1448
- msgid "Packages Altered:"
- msgstr "Pacotes alterados:"
- 
--#: ../output.py:1412
-+#: ../output.py:1451
- msgid "Scriptlet output:"
- msgstr "Saída do scriptlet:"
- 
--#: ../output.py:1418
-+#: ../output.py:1457
- msgid "Errors:"
- msgstr "Erros:"
- 
--#: ../output.py:1489
-+#: ../output.py:1481 ../output.py:1482
-+msgid "Install"
-+msgstr "Instalar"
-+
-+#: ../output.py:1483
-+msgid "Dep-Install"
-+msgstr "Dep-Install"
-+
-+#: ../output.py:1485
-+msgid "Obsoleting"
-+msgstr "Obsoletos"
-+
-+#: ../output.py:1486
-+msgid "Erase"
-+msgstr "Apagar"
-+
-+#: ../output.py:1487
-+msgid "Reinstall"
-+msgstr "Reinstalar"
-+
-+#: ../output.py:1488
-+#, fuzzy
-+msgid "Downgrade"
-+msgstr "Regredir"
-+
-+#: ../output.py:1490
-+msgid "Update"
-+msgstr "Atualizar"
-+
-+#: ../output.py:1521
-+msgid "Time"
-+msgstr "Hora"
-+
-+#: ../output.py:1547
- msgid "Last day"
- msgstr "Ontem"
- 
--#: ../output.py:1490
-+#: ../output.py:1548
- msgid "Last week"
- msgstr "Uma semana atrás"
- 
--#: ../output.py:1491
-+#: ../output.py:1549
- msgid "Last 2 weeks"
- msgstr "2 semanas atrás"
- 
- #. US default :p
--#: ../output.py:1492
-+#: ../output.py:1550
- msgid "Last 3 months"
- msgstr "3 meses atrás"
- 
--#: ../output.py:1493
-+#: ../output.py:1551
- msgid "Last 6 months"
- msgstr "6 meses atrás"
- 
--#: ../output.py:1494
-+#: ../output.py:1552
- msgid "Last year"
- msgstr "Ano passado"
- 
--#: ../output.py:1495
-+#: ../output.py:1553
- msgid "Over a year ago"
- msgstr "Há mais de um ano"
- 
--#: ../output.py:1524
-+#: ../output.py:1585
- msgid "installed"
- msgstr "instalado"
- 
--#: ../output.py:1525
-+#: ../output.py:1586
- msgid "updated"
- msgstr "atualizado"
- 
--#: ../output.py:1526
-+#: ../output.py:1587
- msgid "obsoleted"
- msgstr "obsoleto"
- 
--#: ../output.py:1527
-+#: ../output.py:1588
- msgid "erased"
- msgstr "removido"
- 
--#: ../output.py:1531
-+#: ../output.py:1592
- #, python-format
- msgid "---> Package %s.%s %s:%s-%s set to be %s"
- msgstr "---> Pacote %s.%s %s:%s-%s definido para ser %s"
- 
--#: ../output.py:1538
-+#: ../output.py:1599
- msgid "--> Running transaction check"
- msgstr "--> Executando verificação da transação"
- 
--#: ../output.py:1543
-+#: ../output.py:1604
- msgid "--> Restarting Dependency Resolution with new changes."
- msgstr "--> Reiniciando resolução de dependências com as novas alterações."
- 
--#: ../output.py:1548
-+#: ../output.py:1609
- msgid "--> Finished Dependency Resolution"
- msgstr "--> Resolução de dependências finalizada"
- 
--#: ../output.py:1553
--#: ../output.py:1558
-+#: ../output.py:1614 ../output.py:1619
- #, python-format
- msgid "--> Processing Dependency: %s for package: %s"
- msgstr "--> Processando dependência: %s para o pacote: %s"
- 
--#: ../output.py:1562
-+#: ../output.py:1623
- #, python-format
- msgid "--> Unresolved Dependency: %s"
- msgstr "--> Dependência não resolvida: %s"
- 
--#: ../output.py:1568
--#: ../output.py:1573
-+#: ../output.py:1634
-+#, python-format
-+msgid "Package: %s"
-+msgstr "Pacote: %s"
-+
-+#: ../output.py:1636
-+#, python-format
-+msgid ""
-+"\n"
-+"    Requires: %s"
-+msgstr ""
-+"\n"
-+"    Requer: %s"
-+
-+#: ../output.py:1649 ../output.py:1660
-+#, python-format
-+msgid ""
-+"\n"
-+"    %s: %s (%s)"
-+msgstr ""
-+"\n"
-+"    %s: %s (%s)"
-+
-+#: ../output.py:1657
-+msgid "Available"
-+msgstr "Disponível"
-+
-+#: ../output.py:1665 ../output.py:1670
- #, python-format
- msgid "--> Processing Conflict: %s conflicts %s"
- msgstr "--> Processando conflito: %s conflita com %s"
- 
--#: ../output.py:1577
-+#: ../output.py:1674
- msgid "--> Populating transaction set with selected packages. Please wait."
--msgstr "--> Construindo conjunto de transações com os pacotes selecionados. Por favor aguarde."
-+msgstr ""
-+"--> Construindo conjunto de transações com os pacotes selecionados. Por "
-+"favor aguarde."
- 
--#: ../output.py:1581
-+#: ../output.py:1678
- #, python-format
- msgid "---> Downloading header for %s to pack into transaction set."
- msgstr "--> Baixando cabeçalho do %s para inclusão no conjunto de transações."
- 
--#: ../utils.py:137
--#: ../yummain.py:42
-+#: ../utils.py:93
-+msgid "Running"
-+msgstr "Executando"
-+
-+#: ../utils.py:94
-+msgid "Sleeping"
-+msgstr "Dormindo"
-+
-+#: ../utils.py:95
-+msgid "Uninterruptible"
-+msgstr "Ininterrompível"
-+
-+#: ../utils.py:96
-+msgid "Zombie"
-+msgstr "Zumbi"
-+
-+#: ../utils.py:97
-+msgid "Traced/Stopped"
-+msgstr "Rastreado/Parado"
-+
-+#: ../utils.py:98 ../yumcommands.py:917
-+msgid "Unknown"
-+msgstr "Desconhecido"
-+
-+#: ../utils.py:109
-+msgid "  The other application is: PackageKit"
-+msgstr "  O outro aplicativo é: PackageKit"
-+
-+#: ../utils.py:111
-+#, python-format
-+msgid "  The other application is: %s"
-+msgstr "  O outro aplicativo é: %s"
-+
-+#: ../utils.py:114
-+#, python-format
-+msgid "    Memory : %5s RSS (%5sB VSZ)"
-+msgstr "    Memória: %5s RSS (%5sB VSZ)"
-+
-+#: ../utils.py:119
-+#, python-format
-+msgid "    Started: %s - %s ago"
-+msgstr "    Iniciado: %s - %s atrás"
-+
-+#: ../utils.py:121
-+#, python-format
-+msgid "    State  : %s, pid: %d"
-+msgstr "    Estado: %s, pid: %d"
-+
-+#: ../utils.py:199
-+#, python-format
-+msgid "PluginExit Error: %s"
-+msgstr "Erro PluginExit: %s"
-+
-+#: ../utils.py:202
-+#, python-format
-+msgid "Yum Error: %s"
-+msgstr "Error do Yum: %s"
-+
-+#: ../utils.py:235 ../yummain.py:42
- msgid ""
- "\n"
- "\n"
-@@ -1122,8 +1266,7 @@ msgstr ""
- "\n"
- "Saindo pelo cancelamento do usuário"
- 
--#: ../utils.py:143
--#: ../yummain.py:48
-+#: ../utils.py:241 ../yummain.py:48
- msgid ""
- "\n"
- "\n"
-@@ -1133,8 +1276,7 @@ msgstr ""
- "\n"
- "Saindo por um pipe defeituoso"
- 
--#: ../utils.py:145
--#: ../yummain.py:50
-+#: ../utils.py:243 ../yummain.py:50
- #, python-format
- msgid ""
- "\n"
-@@ -1145,20 +1287,20 @@ msgstr ""
- "\n"
- "%s"
- 
--#: ../utils.py:184
--#: ../yummain.py:273
-+#: ../utils.py:282 ../yummain.py:211
- msgid "Complete!"
- msgstr "Concluído!"
- 
--#: ../yumcommands.py:42
-+#: ../yumcommands.py:43
- msgid "You need to be root to perform this command."
- msgstr "Você precisa ser root para executar este comando."
- 
--#: ../yumcommands.py:49
-+#: ../yumcommands.py:50
- 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"
-@@ -1171,8 +1313,10 @@ msgid ""
- "For more information contact your distribution or package provider.\n"
- msgstr ""
- "\n"
--"Você habilitou a verificação de pacotes através de chaves GPG. Isso é uma boa coisa.\n"
--"Entretanto, você não tem nenhuma chave GPG pública instalada. Você precisa baixar\n"
-+"Você habilitou a verificação de pacotes através de chaves GPG. Isso é uma "
-+"boa coisa.\n"
-+"Entretanto, você não tem nenhuma chave GPG pública instalada. Você precisa "
-+"baixar\n"
- "e instalar essas chaves para os pacotes que deseja instalar.\n"
- "Você pode fazer isso executando o comando:\n"
- "    rpm --import public.gpg.key\n"
-@@ -1182,345 +1326,338 @@ msgstr ""
- " do repositório, a url da chave que você gostaria de usar\n"
- "para ele e o yum irá instalá-la para você.\n"
- "\n"
--"Para mais informações contate o fornecedor da sua distribuição ou do pacote.\n"
-+"Para mais informações contate o fornecedor da sua distribuição ou do "
-+"pacote.\n"
- 
--#: ../yumcommands.py:69
-+#: ../yumcommands.py:70
- #, python-format
- msgid "Error: Need to pass a list of pkgs to %s"
- msgstr "Erro: É necessário passar uma lista de pacotes para %s"
- 
--#: ../yumcommands.py:75
-+#: ../yumcommands.py:76
- msgid "Error: Need an item to match"
- msgstr "Erro: É necessário um item para corresponder"
- 
--#: ../yumcommands.py:81
-+#: ../yumcommands.py:82
- msgid "Error: Need a group or list of groups"
- msgstr "Erro: É necessário um grupo ou uma lista de grupos"
- 
--#: ../yumcommands.py:90
-+#: ../yumcommands.py:91
- #, python-format
- msgid "Error: clean requires an option: %s"
- msgstr "Erro: a limpeza requer uma opção: %s"
- 
--#: ../yumcommands.py:95
-+#: ../yumcommands.py:96
- #, python-format
- msgid "Error: invalid clean argument: %r"
- msgstr "Erro: argumento de limpeza inválido: %r"
- 
--#: ../yumcommands.py:108
-+#: ../yumcommands.py:109
- msgid "No argument to shell"
- msgstr "Nenhum argumento para o shell"
- 
--#: ../yumcommands.py:110
-+#: ../yumcommands.py:111
- #, python-format
- msgid "Filename passed to shell: %s"
- msgstr "Nome de arquivo passado para o shell: %s"
- 
--#: ../yumcommands.py:114
-+#: ../yumcommands.py:115
- #, python-format
- msgid "File %s given as argument to shell does not exist."
- msgstr "O arquivo %s, passado como um argumento para o shell, não existe."
- 
--#: ../yumcommands.py:120
-+#: ../yumcommands.py:121
- msgid "Error: more than one file given as argument to shell."
- msgstr "Erro: mais de um arquivo passado como argumento para o shell."
- 
--#: ../yumcommands.py:169
-+#: ../yumcommands.py:170
- msgid "PACKAGE..."
- msgstr "PACOTE..."
- 
--#: ../yumcommands.py:172
-+#: ../yumcommands.py:173
- msgid "Install a package or packages on your system"
- msgstr "Instala um ou mais pacotes no seu sistema"
- 
--#: ../yumcommands.py:180
-+#: ../yumcommands.py:181
- msgid "Setting up Install Process"
- msgstr "Configurando o processo de instalação"
- 
--#: ../yumcommands.py:191
-+#: ../yumcommands.py:192
- msgid "[PACKAGE...]"
- msgstr "[PACOTE...]"
- 
--#: ../yumcommands.py:194
-+#: ../yumcommands.py:195
- msgid "Update a package or packages on your system"
- msgstr "Atualiza um ou mais pacotes do seu sistema"
- 
--#: ../yumcommands.py:201
-+#: ../yumcommands.py:202
- msgid "Setting up Update Process"
- msgstr "Configurando o processo de atualização"
- 
--#: ../yumcommands.py:246
-+#: ../yumcommands.py:244
- msgid "Display details about a package or group of packages"
- msgstr "Mostra detalhes sobre um pacote ou grupos de pacotes"
- 
--#: ../yumcommands.py:295
-+#: ../yumcommands.py:293
- msgid "Installed Packages"
- msgstr "Pacotes instalados"
- 
--#: ../yumcommands.py:303
-+#: ../yumcommands.py:301
- msgid "Available Packages"
- msgstr "Pacotes disponíveis"
- 
--#: ../yumcommands.py:307
-+#: ../yumcommands.py:305
- msgid "Extra Packages"
- msgstr "Pacotes extras"
- 
--#: ../yumcommands.py:311
-+#: ../yumcommands.py:309
- msgid "Updated Packages"
- msgstr "Pacotes atualizados"
- 
- #. This only happens in verbose mode
--#: ../yumcommands.py:319
--#: ../yumcommands.py:326
--#: ../yumcommands.py:603
-+#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:601
- msgid "Obsoleting Packages"
- msgstr "Tornando pacotes obsoletos"
- 
--#: ../yumcommands.py:328
-+#: ../yumcommands.py:326
- msgid "Recently Added Packages"
- msgstr "Pacotes adicionados recentemente"
- 
--#: ../yumcommands.py:335
-+#: ../yumcommands.py:333
- msgid "No matching Packages to list"
- msgstr "Nenhum pacote correspondente a ser listado"
- 
--#: ../yumcommands.py:349
-+#: ../yumcommands.py:347
- msgid "List a package or groups of packages"
- msgstr "Lista um pacote ou grupos de pacotes"
- 
--#: ../yumcommands.py:361
-+#: ../yumcommands.py:359
- msgid "Remove a package or packages from your system"
- msgstr "Remove um ou mais pacotes do seu sistema"
- 
--#: ../yumcommands.py:368
-+#: ../yumcommands.py:366
- msgid "Setting up Remove Process"
- msgstr "Configurando o processo de remoção"
- 
--#: ../yumcommands.py:382
-+#: ../yumcommands.py:380
- msgid "Setting up Group Process"
- msgstr "Configurando o processo de grupos"
- 
--#: ../yumcommands.py:388
-+#: ../yumcommands.py:386
- msgid "No Groups on which to run command"
- msgstr "Não há grupos nos quais executar o comando"
- 
--#: ../yumcommands.py:401
-+#: ../yumcommands.py:399
- msgid "List available package groups"
- msgstr "Lista os grupos de pacotes disponíveis"
- 
--#: ../yumcommands.py:418
-+#: ../yumcommands.py:416
- msgid "Install the packages in a group on your system"
- msgstr "Instala pacotes em um grupo ou no seu sistema"
- 
--#: ../yumcommands.py:440
-+#: ../yumcommands.py:438
- msgid "Remove the packages in a group from your system"
- msgstr "Remove pacotes de um grupo ou do seu sistema"
- 
--#: ../yumcommands.py:467
-+#: ../yumcommands.py:465
- msgid "Display details about a package group"
- msgstr "Mostra detalhes sobre um grupo de pacotes"
- 
--#: ../yumcommands.py:491
-+#: ../yumcommands.py:489
- msgid "Generate the metadata cache"
- msgstr "Gera o cache de metadados"
- 
--#: ../yumcommands.py:497
-+#: ../yumcommands.py:495
- msgid "Making cache files for all metadata files."
- msgstr "Realizando cache de arquivos para todos os metadados."
- 
--#: ../yumcommands.py:498
-+#: ../yumcommands.py:496
- msgid "This may take a while depending on the speed of this computer"
- msgstr "Isso pode demorar um pouco, dependendo da velocidade deste computador"
- 
--#: ../yumcommands.py:519
-+#: ../yumcommands.py:517
- msgid "Metadata Cache Created"
- msgstr "Cache de metadados criado"
- 
--#: ../yumcommands.py:533
-+#: ../yumcommands.py:531
- msgid "Remove cached data"
- msgstr "Remove os dados do cache"
- 
--#: ../yumcommands.py:553
-+#: ../yumcommands.py:551
- msgid "Find what package provides the given value"
- msgstr "Localiza qual pacote fornece o valor dado"
- 
--#: ../yumcommands.py:573
-+#: ../yumcommands.py:571
- msgid "Check for available package updates"
- msgstr "Verifica por atualizações de pacotes disponíveis"
- 
--#: ../yumcommands.py:623
-+#: ../yumcommands.py:621
- msgid "Search package details for the given string"
- msgstr "Pesquisa detalhes do pacote para a string fornecida"
- 
--#: ../yumcommands.py:629
-+#: ../yumcommands.py:627
- msgid "Searching Packages: "
- msgstr "Pesquisando por pacotes:"
- 
--#: ../yumcommands.py:646
-+#: ../yumcommands.py:644
- msgid "Update packages taking obsoletes into account"
- msgstr "Atualiza pacotes levando em conta os obsoletos"
- 
--#: ../yumcommands.py:654
-+#: ../yumcommands.py:652
- msgid "Setting up Upgrade Process"
- msgstr "Configurando o processo de atualização"
- 
--#: ../yumcommands.py:668
-+#: ../yumcommands.py:666
- msgid "Install a local RPM"
- msgstr "Instala um RPM local"
- 
--#: ../yumcommands.py:676
-+#: ../yumcommands.py:674
- msgid "Setting up Local Package Process"
- msgstr "Configurando o processo de pacote local"
- 
--#: ../yumcommands.py:695
-+#: ../yumcommands.py:693
- msgid "Determine which package provides the given dependency"
- msgstr "Determina qual pacote fornece a dependência dada"
- 
--#: ../yumcommands.py:698
-+#: ../yumcommands.py:696
- msgid "Searching Packages for Dependency:"
- msgstr "Pesquisando pacotes por dependência:"
- 
--#: ../yumcommands.py:712
-+#: ../yumcommands.py:710
- msgid "Run an interactive yum shell"
- msgstr "Executa um shell interativo do yum"
- 
--#: ../yumcommands.py:718
-+#: ../yumcommands.py:716
- msgid "Setting up Yum Shell"
- msgstr "Configurando o shell do Yum"
- 
--#: ../yumcommands.py:736
-+#: ../yumcommands.py:734
- msgid "List a package's dependencies"
- msgstr "Lista as dependências de um pacote"
- 
--#: ../yumcommands.py:742
-+#: ../yumcommands.py:740
- msgid "Finding dependencies: "
- msgstr "Localizando dependências:"
- 
--#: ../yumcommands.py:758
-+#: ../yumcommands.py:756
- msgid "Display the configured software repositories"
- msgstr "Exibe os repositórios de software configurados"
- 
--#: ../yumcommands.py:810
--#: ../yumcommands.py:811
-+#: ../yumcommands.py:822 ../yumcommands.py:823
- msgid "enabled"
- msgstr "habilitado"
- 
--#: ../yumcommands.py:819
--#: ../yumcommands.py:820
-+#: ../yumcommands.py:849 ../yumcommands.py:850
- msgid "disabled"
- msgstr "desabilitado"
- 
--#: ../yumcommands.py:834
-+#: ../yumcommands.py:866
- msgid "Repo-id      : "
- msgstr "Repo-id      : "
- 
--#: ../yumcommands.py:835
-+#: ../yumcommands.py:867
- msgid "Repo-name    : "
- msgstr "Repo-name    : "
- 
--#: ../yumcommands.py:836
-+#: ../yumcommands.py:870
- msgid "Repo-status  : "
- msgstr "Repo-status  : "
- 
--#: ../yumcommands.py:838
-+#: ../yumcommands.py:873
- msgid "Repo-revision: "
- msgstr "Repo-revision: "
- 
--#: ../yumcommands.py:842
-+#: ../yumcommands.py:877
- msgid "Repo-tags    : "
- msgstr "Repo-tags    : "
- 
--#: ../yumcommands.py:848
-+#: ../yumcommands.py:883
- msgid "Repo-distro-tags: "
- msgstr "Repo-distro-tags: "
- 
--#: ../yumcommands.py:853
-+#: ../yumcommands.py:888
- msgid "Repo-updated : "
- msgstr "Repo-updated : "
- 
--#: ../yumcommands.py:855
-+#: ../yumcommands.py:890
- msgid "Repo-pkgs    : "
- msgstr "Repo-pkgs    : "
- 
--#: ../yumcommands.py:856
-+#: ../yumcommands.py:891
- msgid "Repo-size    : "
- msgstr "Repo-size    : "
- 
--#: ../yumcommands.py:863
-+#: ../yumcommands.py:898
- msgid "Repo-baseurl : "
- msgstr "Repo-baseurl : "
- 
--#: ../yumcommands.py:871
-+#: ../yumcommands.py:906
- msgid "Repo-metalink: "
- msgstr "Repo-metalink: "
- 
--#: ../yumcommands.py:875
-+#: ../yumcommands.py:910
- msgid "  Updated    : "
- msgstr "  Atualizados :"
- 
--#: ../yumcommands.py:878
-+#: ../yumcommands.py:913
- msgid "Repo-mirrors : "
- msgstr "Repo-mirrors : "
- 
--#: ../yumcommands.py:882
--#: ../yummain.py:133
--msgid "Unknown"
--msgstr "Desconhecido"
--
--#: ../yumcommands.py:888
-+#: ../yumcommands.py:923
- #, python-format
- msgid "Never (last: %s)"
- msgstr "Nunca (último: %s)"
- 
--#: ../yumcommands.py:890
-+#: ../yumcommands.py:925
- #, python-format
- msgid "Instant (last: %s)"
- msgstr "Instante (último: %s)"
- 
--#: ../yumcommands.py:893
-+#: ../yumcommands.py:928
- #, python-format
- msgid "%s second(s) (last: %s)"
- msgstr "%s segundo(s) (último: %s)"
- 
--#: ../yumcommands.py:895
-+#: ../yumcommands.py:930
- msgid "Repo-expire  : "
- msgstr "Repo-expire  : "
- 
--#: ../yumcommands.py:898
-+#: ../yumcommands.py:933
- msgid "Repo-exclude : "
- msgstr "Repo-exclude : "
- 
--#: ../yumcommands.py:902
-+#: ../yumcommands.py:937
- msgid "Repo-include : "
- msgstr "Repo-include : "
- 
-+#: ../yumcommands.py:941
-+msgid "Repo-excluded: "
-+msgstr "Repo-excluded: "
-+
- #. Work out the first (id) and last (enabled/disalbed/count),
- #. then chop the middle (name)...
--#: ../yumcommands.py:912
--#: ../yumcommands.py:938
-+#: ../yumcommands.py:951 ../yumcommands.py:980
- msgid "repo id"
- msgstr "id do repo"
- 
--#: ../yumcommands.py:926
--#: ../yumcommands.py:927
--#: ../yumcommands.py:941
-+#: ../yumcommands.py:968 ../yumcommands.py:969 ../yumcommands.py:987
- msgid "status"
- msgstr "status"
- 
--#: ../yumcommands.py:939
-+#: ../yumcommands.py:981
- msgid "repo name"
- msgstr "nome do repo"
- 
--#: ../yumcommands.py:965
-+#: ../yumcommands.py:1018
- msgid "Display a helpful usage message"
- msgstr "Exibe uma mensagem de uso para ajuda"
- 
--#: ../yumcommands.py:999
-+#: ../yumcommands.py:1052
- #, python-format
- msgid "No help available for %s"
- msgstr "Nenhuma ajuda disponível para %s"
- 
--#: ../yumcommands.py:1004
-+#: ../yumcommands.py:1057
- msgid ""
- "\n"
- "\n"
-@@ -1530,7 +1667,7 @@ msgstr ""
- "\n"
- "apelidos: "
- 
--#: ../yumcommands.py:1006
-+#: ../yumcommands.py:1059
- msgid ""
- "\n"
- "\n"
-@@ -1540,143 +1677,99 @@ msgstr ""
- "\n"
- "apelido: "
- 
--#: ../yumcommands.py:1034
-+#: ../yumcommands.py:1087
- msgid "Setting up Reinstall Process"
- msgstr "Configurando o processo de reinstalação"
- 
--#: ../yumcommands.py:1042
-+#: ../yumcommands.py:1095
- msgid "reinstall a package"
- msgstr "reinstala um pacote"
- 
--#: ../yumcommands.py:1060
-+#: ../yumcommands.py:1113
- msgid "Setting up Downgrade Process"
- msgstr "Configurando o processo de retrocesso"
- 
--#: ../yumcommands.py:1067
-+#: ../yumcommands.py:1120
- msgid "downgrade a package"
- msgstr "retrocedendo um pacote"
- 
--#: ../yumcommands.py:1081
-+#: ../yumcommands.py:1134
- msgid "Display a version for the machine and/or available repos."
- msgstr "Exibe uma versão para a máquina e/ou os repositórios disponíveis."
- 
--#: ../yumcommands.py:1111
-+#: ../yumcommands.py:1173
- msgid " Yum version groups:"
- msgstr " Grupos da versão do Yum:"
- 
--#: ../yumcommands.py:1121
-+#: ../yumcommands.py:1183
- msgid " Group   :"
- msgstr " Grupo:"
- 
--#: ../yumcommands.py:1122
-+#: ../yumcommands.py:1184
- msgid " Packages:"
- msgstr " Pacotes:"
- 
--#: ../yumcommands.py:1152
-+#: ../yumcommands.py:1213
- msgid "Installed:"
- msgstr "Instalados:"
- 
--#: ../yumcommands.py:1157
-+#: ../yumcommands.py:1218
- msgid "Group-Installed:"
- msgstr "Grupos instalados:"
- 
--#: ../yumcommands.py:1166
-+#: ../yumcommands.py:1227
- msgid "Available:"
- msgstr "Disponíveis:"
- 
--#: ../yumcommands.py:1172
-+#: ../yumcommands.py:1233
- msgid "Group-Available:"
- msgstr "Grupos disponíveis:"
- 
--#: ../yumcommands.py:1211
-+#: ../yumcommands.py:1272
- msgid "Display, or use, the transaction history"
- msgstr "Exibir ou usar o histórico de transações"
- 
--#: ../yumcommands.py:1239
-+#: ../yumcommands.py:1300
- #, python-format
- msgid "Invalid history sub-command, use: %s."
- msgstr "Subcomando de histórico inválido, use: %s."
- 
--#: ../yummain.py:128
--msgid "Running"
--msgstr "Executando"
--
--#: ../yummain.py:129
--msgid "Sleeping"
--msgstr "Dormindo"
--
--#: ../yummain.py:130
--msgid "Uninteruptable"
--msgstr "Ininterrompível"
--
--#: ../yummain.py:131
--msgid "Zombie"
--msgstr "Zumbi"
--
--#: ../yummain.py:132
--msgid "Traced/Stopped"
--msgstr "Rastreado/Parado"
--
--#: ../yummain.py:137
--msgid "  The other application is: PackageKit"
--msgstr "  O outro aplicativo é: PackageKit"
--
--#: ../yummain.py:139
--#, python-format
--msgid "  The other application is: %s"
--msgstr "  O outro aplicativo é: %s"
--
--#: ../yummain.py:142
--#, python-format
--msgid "    Memory : %5s RSS (%5sB VSZ)"
--msgstr "    Memória: %5s RSS (%5sB VSZ)"
--
--#: ../yummain.py:146
--#, python-format
--msgid "    Started: %s - %s ago"
--msgstr "    Iniciado: %s - %s atrás"
--
--#: ../yummain.py:148
--#, python-format
--msgid "    State  : %s, pid: %d"
--msgstr "    Estado: %s, pid: %d"
-+#: ../yumcommands.py:1345
-+msgid "Check for problems in the rpmdb"
-+msgstr "Procurar por problemas no rpmdb"
- 
--#: ../yummain.py:173
--msgid "Another app is currently holding the yum lock; waiting for it to exit..."
--msgstr "Outro aplicativo está retendo o bloqueio do yum; esperando por ele para sair..."
-+#: ../yummain.py:102
-+msgid ""
-+"Another app is currently holding the yum lock; waiting for it to exit..."
-+msgstr ""
-+"Outro aplicativo está retendo o bloqueio do yum; esperando por ele para "
-+"sair..."
- 
--#: ../yummain.py:201
--#: ../yummain.py:240
-+#: ../yummain.py:130 ../yummain.py:169
- #, python-format
- msgid "Error: %s"
- msgstr "Error: %s"
- 
--#: ../yummain.py:211
--#: ../yummain.py:253
-+#: ../yummain.py:140 ../yummain.py:182
- #, python-format
- msgid "Unknown Error(s): Exit Code: %d:"
- msgstr "Erro(s) desconhecido(s): código de saída: %d:"
- 
- #. Depsolve stage
--#: ../yummain.py:218
-+#: ../yummain.py:147
- msgid "Resolving Dependencies"
- msgstr "Resolvendo dependências"
- 
--#: ../yummain.py:242
-+#: ../yummain.py:173
- msgid " You could try using --skip-broken to work around the problem"
--msgstr " Você pode tentar usar o parâmetro --skip-broken para contornar o problema"
--
--#: ../yummain.py:243
--msgid ""
--" You could try running: package-cleanup --problems\n"
--"                        package-cleanup --dupes\n"
--"                        rpm -Va --nofiles --nodigest"
- msgstr ""
--" Você pode tentar executar: package-cleanup --problems\n"
--"                        package-cleanup --dupes\n"
--"                        rpm -Va --nofiles --nodigest"
-+" Você pode tentar usar o parâmetro --skip-broken para contornar o problema"
-+
-+#: ../yummain.py:175 ../yummain.py:208
-+msgid " You could try running: rpm -Va --nofiles --nodigest"
-+msgstr " Você pode tentar executar: rpm -Va --nofiles --nodigest"
- 
--#: ../yummain.py:259
-+#: ../yummain.py:188
- msgid ""
- "\n"
- "Dependencies Resolved"
-@@ -1684,7 +1777,7 @@ msgstr ""
- "\n"
- "Dependências resolvidas"
- 
--#: ../yummain.py:326
-+#: ../yummain.py:265
- msgid ""
- "\n"
- "\n"
-@@ -1700,7 +1793,8 @@ msgstr "doTsSetup() será removida em uma futura versão do Yum.\n"
- 
- #: ../yum/depsolve.py:97
- msgid "Setting up TransactionSets before config class is up"
--msgstr "Configurando TransactionSets antes da ativação da classe de configuração"
-+msgstr ""
-+"Configurando TransactionSets antes da ativação da classe de configuração"
- 
- #: ../yum/depsolve.py:148
- #, python-format
-@@ -1722,173 +1816,165 @@ msgstr "Correspondência potencial para o %s a partir de %s"
- msgid "Matched %s to require for %s"
- msgstr "%s encontrado para solicitar o %s"
- 
--#: ../yum/depsolve.py:224
-+#: ../yum/depsolve.py:225
- #, python-format
- msgid "Member: %s"
- msgstr "Membro: %s"
- 
--#: ../yum/depsolve.py:238
--#: ../yum/depsolve.py:749
-+#: ../yum/depsolve.py:239 ../yum/depsolve.py:754
- #, python-format
- msgid "%s converted to install"
- msgstr "%s convertido para instalar"
- 
--#: ../yum/depsolve.py:245
-+#: ../yum/depsolve.py:246
- #, python-format
- msgid "Adding Package %s in mode %s"
- msgstr "Adicionando pacote %s no modo %s"
- 
--#: ../yum/depsolve.py:255
-+#: ../yum/depsolve.py:256
- #, python-format
- msgid "Removing Package %s"
- msgstr "Removendo pacote %s"
- 
--#: ../yum/depsolve.py:277
-+#: ../yum/depsolve.py:278
- #, python-format
- msgid "%s requires: %s"
- msgstr "%s requer: %s"
- 
--#: ../yum/depsolve.py:335
-+#: ../yum/depsolve.py:319
-+#, python-format
-+msgid "%s requires %s"
-+msgstr "%s requer %s"
-+
-+#: ../yum/depsolve.py:346
- msgid "Needed Require has already been looked up, cheating"
- msgstr "O requerimento necessário já foi localizado, enganando"
- 
--#: ../yum/depsolve.py:345
-+#: ../yum/depsolve.py:356
- #, python-format
- msgid "Needed Require is not a package name. Looking up: %s"
- msgstr "O requerimento necessário não é o nome de um pacote. Localizando: %s"
- 
--#: ../yum/depsolve.py:352
-+#: ../yum/depsolve.py:363
- #, python-format
- msgid "Potential Provider: %s"
- msgstr "Fornecedor em potencial: %s"
- 
--#: ../yum/depsolve.py:375
-+#: ../yum/depsolve.py:386
- #, python-format
- msgid "Mode is %s for provider of %s: %s"
- msgstr "O modo é %s para o fornecedor do %s: %s"
- 
--#: ../yum/depsolve.py:379
-+#: ../yum/depsolve.py:390
- #, python-format
- msgid "Mode for pkg providing %s: %s"
- msgstr "Modo para o pacote que fornece o %s: %s"
- 
--#: ../yum/depsolve.py:383
-+#: ../yum/depsolve.py:394
- #, python-format
- msgid "TSINFO: %s package requiring %s marked as erase"
- msgstr "TSINFO: o pacote %s que requer o %s foi marcado para remoção"
- 
--#: ../yum/depsolve.py:396
-+#: ../yum/depsolve.py:407
- #, python-format
- msgid "TSINFO: Obsoleting %s with %s to resolve dep."
- msgstr "TSINFO: Tornando %s obsoleto com o %s para resolver a dependência."
- 
--#: ../yum/depsolve.py:399
-+#: ../yum/depsolve.py:410
- #, python-format
- msgid "TSINFO: Updating %s to resolve dep."
- msgstr "TSINFO: Atualizando %s para resolver a dependência."
- 
--#: ../yum/depsolve.py:407
-+#: ../yum/depsolve.py:418
- #, python-format
- msgid "Cannot find an update path for dep for: %s"
--msgstr "Não foi possível encontrar um caminho de atualização para a dep. para: %s"
--
--#: ../yum/depsolve.py:417
--#, python-format
--msgid "Unresolvable requirement %s for %s"
--msgstr "Requerimento %s insolúvel para o %s"
-+msgstr ""
-+"Não foi possível encontrar um caminho de atualização para a dep. para: %s"
- 
--#: ../yum/depsolve.py:440
-+#: ../yum/depsolve.py:449
- #, python-format
- msgid "Quick matched %s to require for %s"
- msgstr "%s localizado rapidamente a ser requerido por %s"
- 
- #. is it already installed?
--#: ../yum/depsolve.py:482
-+#: ../yum/depsolve.py:491
- #, python-format
- msgid "%s is in providing packages but it is already installed, removing."
- msgstr "%s está nos pacotes fornecedores mas já está instalado, removendo."
- 
--#: ../yum/depsolve.py:498
-+#: ../yum/depsolve.py:507
- #, python-format
- msgid "Potential resolving package %s has newer instance in ts."
- msgstr "O pacote de solução em potencial %s tem uma instância mais nova no ct."
- 
--#: ../yum/depsolve.py:509
-+#: ../yum/depsolve.py:518
- #, python-format
- msgid "Potential resolving package %s has newer instance installed."
--msgstr "O pacote de solução em potencial %s tem uma instância mais nova instalada."
--
--#: ../yum/depsolve.py:517
--#: ../yum/depsolve.py:563
--#, python-format
--msgid "Missing Dependency: %s is needed by package %s"
--msgstr "Dependência faltando: %s é requerido pelo pacote %s"
-+msgstr ""
-+"O pacote de solução em potencial %s tem uma instância mais nova instalada."
- 
--#: ../yum/depsolve.py:530
-+#: ../yum/depsolve.py:536
- #, python-format
- msgid "%s already in ts, skipping this one"
- msgstr "%s já está no ct, pulando esse"
- 
--#: ../yum/depsolve.py:573
-+#: ../yum/depsolve.py:578
- #, python-format
- msgid "TSINFO: Marking %s as update for %s"
- msgstr "TSINFO: Marcando %s como uma atualização para o %s"
- 
--#: ../yum/depsolve.py:581
-+#: ../yum/depsolve.py:586
- #, python-format
- msgid "TSINFO: Marking %s as install for %s"
- msgstr "TSINFO: Marcando %s como uma instalação para o %s"
- 
--#: ../yum/depsolve.py:685
--#: ../yum/depsolve.py:767
-+#: ../yum/depsolve.py:690 ../yum/depsolve.py:781
- msgid "Success - empty transaction"
- msgstr "Sucesso - transação vazia"
- 
--#: ../yum/depsolve.py:724
--#: ../yum/depsolve.py:739
-+#: ../yum/depsolve.py:729 ../yum/depsolve.py:744
- msgid "Restarting Loop"
- msgstr "Reiniciando o loop"
- 
--#: ../yum/depsolve.py:755
-+#: ../yum/depsolve.py:760
- msgid "Dependency Process ending"
- msgstr "Término do processo de dependências"
- 
--#: ../yum/depsolve.py:761
-+#: ../yum/depsolve.py:774
- #, python-format
- msgid "%s from %s has depsolving problems"
- msgstr "%s a partir de %s tem problemas de resolução de dependências"
- 
--#: ../yum/depsolve.py:768
-+#: ../yum/depsolve.py:782
- msgid "Success - deps resolved"
- msgstr "Sucesso - dependências resolvidas"
- 
--#: ../yum/depsolve.py:782
-+#: ../yum/depsolve.py:796
- #, python-format
- msgid "Checking deps for %s"
- msgstr "Verificando dependências para %s"
- 
--#: ../yum/depsolve.py:865
-+#: ../yum/depsolve.py:874
- #, python-format
- msgid "looking for %s as a requirement of %s"
- msgstr "procurando por %s como um requerimento do %s"
- 
--#: ../yum/depsolve.py:1007
-+#: ../yum/depsolve.py:1090
- #, python-format
- msgid "Running compare_providers() for %s"
- msgstr "Executando compare_providers() para %s"
- 
--#: ../yum/depsolve.py:1041
--#: ../yum/depsolve.py:1047
-+#: ../yum/depsolve.py:1117 ../yum/depsolve.py:1123
- #, python-format
- msgid "better arch in po %s"
- msgstr "melhor arquitetura no po %s"
- 
--#: ../yum/depsolve.py:1142
-+#: ../yum/depsolve.py:1218
- #, python-format
- msgid "%s obsoletes %s"
- msgstr "%s torna %s obsoleto"
- 
--#: ../yum/depsolve.py:1154
-+#: ../yum/depsolve.py:1230
- #, python-format
- msgid ""
- "archdist compared %s to %s on %s\n"
-@@ -1897,117 +1983,141 @@ msgstr ""
- "archdist comparou %s com %s em %s\n"
- "  Vencedor: %s"
- 
--#: ../yum/depsolve.py:1161
-+#: ../yum/depsolve.py:1237
- #, python-format
- msgid "common sourcerpm %s and %s"
- msgstr "Sourcerpm comum %s e %s"
- 
--#: ../yum/depsolve.py:1167
-+#: ../yum/depsolve.py:1241
-+#, python-format
-+msgid "base package %s is installed for %s"
-+msgstr "o pacote base %s está instalado para o %s"
-+
-+#: ../yum/depsolve.py:1247
- #, python-format
- msgid "common prefix of %s between %s and %s"
- msgstr "prefixo comum de %s entre %s e %s"
- 
--#: ../yum/depsolve.py:1175
-+#: ../yum/depsolve.py:1256
- #, python-format
- msgid "Best Order: %s"
- msgstr "Melhor ordem: %s"
- 
--#: ../yum/__init__.py:187
-+#: ../yum/__init__.py:192
- msgid "doConfigSetup() will go away in a future version of Yum.\n"
- msgstr "doConfigSetup() será removida em uma futura versão do Yum.\n"
- 
--#: ../yum/__init__.py:412
-+#: ../yum/__init__.py:424
- #, python-format
- msgid "Repository %r is missing name in configuration, using id"
- msgstr "O repositório %r não tem nome na configuração, usando o id"
- 
--#: ../yum/__init__.py:450
-+#: ../yum/__init__.py:462
- msgid "plugins already initialised"
- msgstr "plugins já inicializados"
- 
--#: ../yum/__init__.py:457
-+#: ../yum/__init__.py:469
- msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
- msgstr "doRpmDBSetup() será removida em uma futura versão do Yum.\n"
- 
--#: ../yum/__init__.py:468
-+#: ../yum/__init__.py:480
- msgid "Reading Local RPMDB"
- msgstr "Lendo RPMDB local"
- 
--#: ../yum/__init__.py:489
-+#: ../yum/__init__.py:504
- msgid "doRepoSetup() will go away in a future version of Yum.\n"
- msgstr "doRepoSetup() será removida em uma futura versão do Yum.\n"
- 
--#: ../yum/__init__.py:509
-+#: ../yum/__init__.py:524
- msgid "doSackSetup() will go away in a future version of Yum.\n"
- msgstr "doSackSetup() será removida em uma futura versão do Yum.\n"
- 
--#: ../yum/__init__.py:539
-+#: ../yum/__init__.py:554
- msgid "Setting up Package Sacks"
- msgstr "Configurando sacos de pacotes"
- 
--#: ../yum/__init__.py:584
-+#: ../yum/__init__.py:599
- #, python-format
- msgid "repo object for repo %s lacks a _resetSack method\n"
- msgstr "o objeto de repositório para o %s necessita de um método _resetSack\n"
- 
--#: ../yum/__init__.py:585
-+#: ../yum/__init__.py:600
- msgid "therefore this repo cannot be reset.\n"
- msgstr "conseqüentemente este repo não pode ser restaurado.\n"
- 
--#: ../yum/__init__.py:590
-+#: ../yum/__init__.py:605
- msgid "doUpdateSetup() will go away in a future version of Yum.\n"
- msgstr "doUpdateSetup() será removida em uma futura versão do Yum.\n"
- 
--#: ../yum/__init__.py:602
-+#: ../yum/__init__.py:617
- msgid "Building updates object"
- msgstr "Construindo objeto de atualizações"
- 
--#: ../yum/__init__.py:637
-+#: ../yum/__init__.py:652
- msgid "doGroupSetup() will go away in a future version of Yum.\n"
- msgstr "doGroupSetup() será removida em uma futura versão do Yum.\n"
- 
--#: ../yum/__init__.py:662
-+#: ../yum/__init__.py:677
- msgid "Getting group metadata"
- msgstr "Obtendo metadados do grupo"
- 
--#: ../yum/__init__.py:688
-+#: ../yum/__init__.py:703
- #, python-format
- msgid "Adding group file from repository: %s"
- msgstr "Adicionando arquivo de grupo a partir do repositório: %s"
- 
--#: ../yum/__init__.py:697
-+#: ../yum/__init__.py:712
- #, python-format
- msgid "Failed to add groups file for repository: %s - %s"
- msgstr "Falha ao adicionar o arquivo de grupos para o repositório: %s - %s"
- 
--#: ../yum/__init__.py:703
-+#: ../yum/__init__.py:718
- msgid "No Groups Available in any repository"
- msgstr "Nenhum grupo disponível em nenhum repositório"
- 
--#: ../yum/__init__.py:763
-+#: ../yum/__init__.py:730
-+msgid "Getting pkgtags metadata"
-+msgstr "Obtendo metadados do pkgtags"
-+
-+#: ../yum/__init__.py:740
-+#, python-format
-+msgid "Adding tags from repository: %s"
-+msgstr "Adicionando tags do repositório: %s"
-+
-+#: ../yum/__init__.py:749
-+#, python-format
-+msgid "Failed to add Pkg Tags for repository: %s - %s"
-+msgstr "Falha ao adicionar as Pkg Tags para o repositório: %s - %s"
-+
-+#: ../yum/__init__.py:827
- msgid "Importing additional filelist information"
- msgstr "Importando informações adicionais da lista de arquivos"
- 
--#: ../yum/__init__.py:777
-+#: ../yum/__init__.py:841
- #, python-format
- msgid "The program %s%s%s is found in the yum-utils package."
- msgstr "O programa %s%s%s está localizado no pacote yum-utils."
- 
--#: ../yum/__init__.py:785
--msgid "There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them."
--msgstr "Há transações não finalizadas restantes. Você pode considerar executar o yum-complete-transaction primeiro para finalizá-las."
-+#: ../yum/__init__.py:849
-+msgid ""
-+"There are unfinished transactions remaining. You might consider running yum-"
-+"complete-transaction first to finish them."
-+msgstr ""
-+"Há transações não finalizadas restantes. Você pode considerar executar o yum-"
-+"complete-transaction primeiro para finalizá-las."
- 
--#: ../yum/__init__.py:853
-+#. Kind of hacky
-+#: ../yum/__init__.py:922
- #, python-format
- msgid "Skip-broken round %i"
- msgstr "Rodada de ignoração de dependências quebradas %i"
- 
--#: ../yum/__init__.py:906
-+#: ../yum/__init__.py:975
- #, python-format
- msgid "Skip-broken took %i rounds "
- msgstr "A ignoração de dependências quebradas levou %i rodadas"
- 
--#: ../yum/__init__.py:907
-+#: ../yum/__init__.py:976
- msgid ""
- "\n"
- "Packages skipped because of dependency problems:"
-@@ -2015,76 +2125,93 @@ msgstr ""
- "\n"
- "Pacotes ignorados devido a problemas de dependências:"
- 
--#: ../yum/__init__.py:911
-+#: ../yum/__init__.py:980
- #, python-format
- msgid "    %s from %s"
- msgstr "    %s a partir de %s"
- 
--#: ../yum/__init__.py:1083
--msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
--msgstr "Aviso: scriptlet ou outros erros não fatais ocorreram durante a transação."
-+#: ../yum/__init__.py:1121
-+msgid "Warning: RPMDB altered outside of yum."
-+msgstr "Aviso: o RPMDB foi alterado de fora do yum."
- 
--#: ../yum/__init__.py:1101
-+#: ../yum/__init__.py:1126
-+msgid "missing requires"
-+msgstr "faltando exigências"
-+
-+#: ../yum/__init__.py:1127
-+msgid "installed conflict"
-+msgstr "conflito instalado"
-+
-+#: ../yum/__init__.py:1180
-+msgid ""
-+"Warning: scriptlet or other non-fatal errors occurred during transaction."
-+msgstr ""
-+"Aviso: scriptlet ou outros erros não fatais ocorreram durante a transação."
-+
-+#: ../yum/__init__.py:1198
- #, python-format
- msgid "Failed to remove transaction file %s"
- msgstr "Falha ao remover o arquivo de transação %s"
- 
- #. maybe a file log here, too
- #. but raising an exception is not going to do any good
--#: ../yum/__init__.py:1130
-+#: ../yum/__init__.py:1227
- #, python-format
- msgid "%s was supposed to be installed but is not!"
- msgstr "%s deveria ter sido instalado mas não foi!"
- 
- #. maybe a file log here, too
- #. but raising an exception is not going to do any good
--#: ../yum/__init__.py:1169
-+#: ../yum/__init__.py:1266
- #, python-format
- msgid "%s was supposed to be removed but is not!"
- msgstr "%s deveria ter sido removido mas não foi!"
- 
- #. Whoa. What the heck happened?
--#: ../yum/__init__.py:1289
-+#: ../yum/__init__.py:1386
- #, python-format
- msgid "Unable to check if PID %s is active"
- msgstr "Não foi possível verificar se o PID %s está ativo"
- 
- #. Another copy seems to be running.
--#: ../yum/__init__.py:1293
-+#: ../yum/__init__.py:1390
- #, python-format
- msgid "Existing lock %s: another copy is running as pid %s."
- msgstr "Bloqueio existente em %s: outra cópia está em execução com o pid %s."
- 
- #. Whoa. What the heck happened?
--#: ../yum/__init__.py:1328
-+#: ../yum/__init__.py:1425
- #, python-format
- msgid "Could not create lock at %s: %s "
- msgstr "Não foi possível criar um bloqueio em %s: %s"
- 
--#: ../yum/__init__.py:1373
--msgid "Package does not match intended download"
--msgstr "O pacote não corresponde ao download pretendido"
-+#: ../yum/__init__.py:1470
-+msgid ""
-+"Package does not match intended download. Suggestion: run yum clean metadata"
-+msgstr ""
-+"O pacote não corresponde ao download pretendido. Sugestão: execute yum clean "
-+"metadata"
- 
--#: ../yum/__init__.py:1388
-+#: ../yum/__init__.py:1486
- msgid "Could not perform checksum"
- msgstr "Não foi possível realizar a soma de verificação"
- 
--#: ../yum/__init__.py:1391
-+#: ../yum/__init__.py:1489
- msgid "Package does not match checksum"
- msgstr "O pacote não corresponde à soma de verificação"
- 
--#: ../yum/__init__.py:1433
-+#: ../yum/__init__.py:1531
- #, python-format
- msgid "package fails checksum but caching is enabled for %s"
--msgstr "o pacote falhou na soma de verificação mas o cache está habilitado para o %s"
-+msgstr ""
-+"o pacote falhou na soma de verificação mas o cache está habilitado para o %s"
- 
--#: ../yum/__init__.py:1436
--#: ../yum/__init__.py:1465
-+#: ../yum/__init__.py:1534 ../yum/__init__.py:1563
- #, python-format
- msgid "using local copy of %s"
- msgstr "usando cópia local do %s"
- 
--#: ../yum/__init__.py:1477
-+#: ../yum/__init__.py:1575
- #, python-format
- msgid ""
- "Insufficient space in download directory %s\n"
-@@ -2095,419 +2222,423 @@ msgstr ""
- "    * livre   %s\n"
- "    * necessário %s"
- 
--#: ../yum/__init__.py:1526
-+#: ../yum/__init__.py:1624
- msgid "Header is not complete."
- msgstr "O cabeçalho não está completo."
- 
--#: ../yum/__init__.py:1563
-+#: ../yum/__init__.py:1661
- #, python-format
--msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
--msgstr "O cabeçalho não está no cache local e o modo de somente cache está habilitado. Não foi possível baixar o %s."
-+msgid ""
-+"Header not in local cache and caching-only mode enabled. Cannot download %s"
-+msgstr ""
-+"O cabeçalho não está no cache local e o modo de somente cache está "
-+"habilitado. Não foi possível baixar o %s."
- 
--#: ../yum/__init__.py:1618
-+#: ../yum/__init__.py:1716
- #, python-format
- msgid "Public key for %s is not installed"
- msgstr "A chave pública para o %s não está instalada"
- 
--#: ../yum/__init__.py:1622
-+#: ../yum/__init__.py:1720
- #, python-format
- msgid "Problem opening package %s"
- msgstr "Problema ao abrir o pacote %s"
- 
--#: ../yum/__init__.py:1630
-+#: ../yum/__init__.py:1728
- #, python-format
- msgid "Public key for %s is not trusted"
- msgstr "A chave pública para o %s não é confiável"
- 
--#: ../yum/__init__.py:1634
-+#: ../yum/__init__.py:1732
- #, python-format
- msgid "Package %s is not signed"
- msgstr "O pacote %s não está assinado"
- 
--#: ../yum/__init__.py:1672
-+#: ../yum/__init__.py:1770
- #, python-format
- msgid "Cannot remove %s"
- msgstr "Não foi possível remover %s"
- 
--#: ../yum/__init__.py:1676
-+#: ../yum/__init__.py:1774
- #, python-format
- msgid "%s removed"
- msgstr "%s removido"
- 
--#: ../yum/__init__.py:1712
-+#: ../yum/__init__.py:1820
- #, python-format
- msgid "Cannot remove %s file %s"
- msgstr "Não foi possível remover %s arquivo %s"
- 
--#: ../yum/__init__.py:1716
-+#: ../yum/__init__.py:1824
- #, python-format
- msgid "%s file %s removed"
- msgstr "%s arquivo %s removido"
- 
--#: ../yum/__init__.py:1718
-+#: ../yum/__init__.py:1826
- #, python-format
- msgid "%d %s files removed"
- msgstr "%d %s arquivos removidos"
- 
--#: ../yum/__init__.py:1787
-+#: ../yum/__init__.py:1895
- #, python-format
- msgid "More than one identical match in sack for %s"
- msgstr "Mais de uma correspondência idêntica no saco para %s"
- 
--#: ../yum/__init__.py:1793
-+#: ../yum/__init__.py:1901
- #, python-format
- msgid "Nothing matches %s.%s %s:%s-%s from update"
- msgstr "Nada corresponde ao %s.%s %s:%s-%s a partir da atualização"
- 
--#: ../yum/__init__.py:2026
--msgid "searchPackages() will go away in a future version of Yum.                      Use searchGenerator() instead. \n"
--msgstr "searchPackages() será removida em uma futura versão do Yum. Ao invés disso, use a searchGenerator().\n"
-+#: ../yum/__init__.py:2180
-+msgid ""
-+"searchPackages() will go away in a future version of "
-+"Yum.                      Use searchGenerator() instead. \n"
-+msgstr ""
-+"searchPackages() será removida em uma futura versão do Yum. Ao invés disso, "
-+"use a searchGenerator().\n"
- 
--#: ../yum/__init__.py:2065
-+#: ../yum/__init__.py:2219
- #, python-format
- msgid "Searching %d packages"
- msgstr "Pesquisando por %d pacotes"
- 
--#: ../yum/__init__.py:2069
-+#: ../yum/__init__.py:2223
- #, python-format
- msgid "searching package %s"
- msgstr "pesquisando pelo pacote %s"
- 
--#: ../yum/__init__.py:2081
-+#: ../yum/__init__.py:2235
- msgid "searching in file entries"
- msgstr "pesquisando nas entradas do arquivo"
- 
--#: ../yum/__init__.py:2088
-+#: ../yum/__init__.py:2242
- msgid "searching in provides entries"
- msgstr "pesquisando nas entradas dos fornecimentos"
- 
--#: ../yum/__init__.py:2121
-+#: ../yum/__init__.py:2275
- #, python-format
- msgid "Provides-match: %s"
- msgstr "Fornecimento combina com: %s"
- 
--#: ../yum/__init__.py:2170
-+#: ../yum/__init__.py:2324
- msgid "No group data available for configured repositories"
- msgstr "Nenhum dado de grupos disponível para os repositório configurados"
- 
--#: ../yum/__init__.py:2201
--#: ../yum/__init__.py:2220
--#: ../yum/__init__.py:2251
--#: ../yum/__init__.py:2257
--#: ../yum/__init__.py:2336
--#: ../yum/__init__.py:2340
--#: ../yum/__init__.py:2655
-+#: ../yum/__init__.py:2355 ../yum/__init__.py:2374 ../yum/__init__.py:2405
-+#: ../yum/__init__.py:2411 ../yum/__init__.py:2493 ../yum/__init__.py:2497
-+#: ../yum/__init__.py:2814
- #, python-format
- msgid "No Group named %s exists"
- msgstr "Não existe nenhum grupo de nome %s"
- 
--#: ../yum/__init__.py:2232
--#: ../yum/__init__.py:2353
-+#: ../yum/__init__.py:2386 ../yum/__init__.py:2513
- #, python-format
- msgid "package %s was not marked in group %s"
- msgstr "o pacote %s não foi marcado no grupo %s"
- 
--#: ../yum/__init__.py:2279
-+#: ../yum/__init__.py:2433
- #, python-format
- msgid "Adding package %s from group %s"
- msgstr "Adicionando o pacote %s do grupo %s"
- 
--#: ../yum/__init__.py:2283
-+#: ../yum/__init__.py:2437
- #, python-format
- msgid "No package named %s available to be installed"
- msgstr "Nenhum pacote de nome %s disponível para ser instalado"
- 
--#: ../yum/__init__.py:2380
-+#: ../yum/__init__.py:2539
- #, python-format
- msgid "Package tuple %s could not be found in packagesack"
- msgstr "A tupla %s do pacote não pôde ser encontrada no packagesack"
- 
--#: ../yum/__init__.py:2399
-+#: ../yum/__init__.py:2558
- #, python-format
- msgid "Package tuple %s could not be found in rpmdb"
- msgstr "A tupla %s do pacote não pôde ser localizada no rpmdb"
- 
--#: ../yum/__init__.py:2455
--#: ../yum/__init__.py:2505
-+#: ../yum/__init__.py:2614 ../yum/__init__.py:2664
- msgid "Invalid version flag"
- msgstr "Sinalizador de versão inválido"
- 
--#: ../yum/__init__.py:2475
--#: ../yum/__init__.py:2480
-+#: ../yum/__init__.py:2634 ../yum/__init__.py:2639
- #, python-format
- msgid "No Package found for %s"
- msgstr "Nenhum pacote encontrado para %s"
- 
--#: ../yum/__init__.py:2696
-+#: ../yum/__init__.py:2855
- msgid "Package Object was not a package object instance"
- msgstr "O pacote de objeto não era uma instância de pacote de objeto"
- 
--#: ../yum/__init__.py:2700
-+#: ../yum/__init__.py:2859
- msgid "Nothing specified to install"
- msgstr "Nada especificado para instalar"
- 
--#: ../yum/__init__.py:2716
--#: ../yum/__init__.py:3489
-+#: ../yum/__init__.py:2875 ../yum/__init__.py:3652
- #, python-format
- msgid "Checking for virtual provide or file-provide for %s"
- msgstr "Verificando por fornecimento virtual ou de arquivo para %s"
- 
--#: ../yum/__init__.py:2722
--#: ../yum/__init__.py:3037
--#: ../yum/__init__.py:3205
--#: ../yum/__init__.py:3495
-+#: ../yum/__init__.py:2881 ../yum/__init__.py:3197 ../yum/__init__.py:3365
-+#: ../yum/__init__.py:3658
- #, python-format
- msgid "No Match for argument: %s"
- msgstr "Nenhuma correspondência para o argumento: %s"
- 
--#: ../yum/__init__.py:2798
-+#: ../yum/__init__.py:2957
- #, python-format
- msgid "Package %s installed and not available"
- msgstr "Pacote %s instalado, mas não disponível"
- 
--#: ../yum/__init__.py:2801
-+#: ../yum/__init__.py:2960
- msgid "No package(s) available to install"
- msgstr "Nenhum pacote disponível para instalar"
- 
--#: ../yum/__init__.py:2813
-+#: ../yum/__init__.py:2972
- #, python-format
- msgid "Package: %s  - already in transaction set"
- msgstr "Pacote: %s - já está no conjunto de transações"
- 
--#: ../yum/__init__.py:2839
-+#: ../yum/__init__.py:2998
- #, python-format
- msgid "Package %s is obsoleted by %s which is already installed"
- msgstr "O pacote %s foi tornado obsoleto pelo %s, o qual já está instalado"
- 
--#: ../yum/__init__.py:2842
-+#: ../yum/__init__.py:3001
- #, python-format
- msgid "Package %s is obsoleted by %s, trying to install %s instead"
--msgstr "O pacote %s foi tornado obsoleto por %s, tentando instalar %s ao invés disso"
-+msgstr ""
-+"O pacote %s foi tornado obsoleto por %s, tentando instalar %s ao invés disso"
- 
--#: ../yum/__init__.py:2850
-+#: ../yum/__init__.py:3009
- #, python-format
- msgid "Package %s already installed and latest version"
- msgstr "O pacote %s já está instalado em sua última versão"
- 
--#: ../yum/__init__.py:2864
-+#: ../yum/__init__.py:3023
- #, python-format
- msgid "Package matching %s already installed. Checking for update."
- msgstr "O pacote %s já está instalado. Verificando por uma atualização."
- 
- #. update everything (the easy case)
--#: ../yum/__init__.py:2966
-+#: ../yum/__init__.py:3126
- msgid "Updating Everything"
- msgstr "Atualizando tudo"
- 
--#: ../yum/__init__.py:2987
--#: ../yum/__init__.py:3102
--#: ../yum/__init__.py:3129
--#: ../yum/__init__.py:3155
-+#: ../yum/__init__.py:3147 ../yum/__init__.py:3262 ../yum/__init__.py:3289
-+#: ../yum/__init__.py:3315
- #, python-format
- msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
- msgstr "Pacote já obsoleto não será atualizado: %s.%s %s:%s-%s"
- 
--#: ../yum/__init__.py:3022
--#: ../yum/__init__.py:3202
-+#: ../yum/__init__.py:3182 ../yum/__init__.py:3362
- #, python-format
- msgid "%s"
- msgstr "%s"
- 
--#: ../yum/__init__.py:3093
-+#: ../yum/__init__.py:3253
- #, python-format
- msgid "Package is already obsoleted: %s.%s %s:%s-%s"
- msgstr "O pacote já está obsoleto: %s.%s %s:%s-%s"
- 
--#: ../yum/__init__.py:3124
-+#: ../yum/__init__.py:3284
- #, python-format
- msgid "Not Updating Package that is obsoleted: %s"
- msgstr "Não atualizando o pacote que está obsoleto: %s"
- 
--#: ../yum/__init__.py:3133
--#: ../yum/__init__.py:3159
-+#: ../yum/__init__.py:3293 ../yum/__init__.py:3319
- #, python-format
- msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
- msgstr "Pacote já atualizado não será atualizado novamente: %s.%s %s:%s-%s"
- 
--#: ../yum/__init__.py:3218
-+#: ../yum/__init__.py:3378
- msgid "No package matched to remove"
- msgstr "Nenhum pacote encontrado para remoção"
- 
--#: ../yum/__init__.py:3251
--#: ../yum/__init__.py:3349
--#: ../yum/__init__.py:3432
-+#: ../yum/__init__.py:3412
- #, python-format
--msgid "Cannot open file: %s. Skipping."
--msgstr "Não foi possível abrir o arquivo: %s. Ignorando."
-+msgid "Cannot open: %s. Skipping."
-+msgstr "Não foi possível abrir: %s. Ignorando."
- 
--#: ../yum/__init__.py:3254
--#: ../yum/__init__.py:3352
--#: ../yum/__init__.py:3435
-+#: ../yum/__init__.py:3415 ../yum/__init__.py:3514 ../yum/__init__.py:3598
- #, python-format
- msgid "Examining %s: %s"
- msgstr "Examinando %s: %s"
- 
--#: ../yum/__init__.py:3262
--#: ../yum/__init__.py:3355
--#: ../yum/__init__.py:3438
-+#: ../yum/__init__.py:3423 ../yum/__init__.py:3517 ../yum/__init__.py:3601
- #, python-format
- msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
--msgstr "Não foi possível adicionar o pacote %s à transação. %s não é uma arquitetura compatível."
-+msgstr ""
-+"Não foi possível adicionar o pacote %s à transação. %s não é uma arquitetura "
-+"compatível."
- 
--#: ../yum/__init__.py:3270
-+#: ../yum/__init__.py:3431
- #, python-format
--msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
--msgstr "O pacote %s não está instalado, não é possível atualizá-lo. Execute o yum install para instalá-lo."
-+msgid ""
-+"Package %s not installed, cannot update it. Run yum install to install it "
-+"instead."
-+msgstr ""
-+"O pacote %s não está instalado, não é possível atualizá-lo. Execute o yum "
-+"install para instalá-lo."
- 
--#: ../yum/__init__.py:3299
--#: ../yum/__init__.py:3360
--#: ../yum/__init__.py:3443
-+#: ../yum/__init__.py:3460 ../yum/__init__.py:3522 ../yum/__init__.py:3606
- #, python-format
- msgid "Excluding %s"
- msgstr "Excluindo %s"
- 
--#: ../yum/__init__.py:3304
-+#: ../yum/__init__.py:3465
- #, python-format
- msgid "Marking %s to be installed"
- msgstr "Marcando %s para ser instalado"
- 
--#: ../yum/__init__.py:3310
-+#: ../yum/__init__.py:3471
- #, python-format
- msgid "Marking %s as an update to %s"
- msgstr "Marcando %s como uma atualização do %s"
- 
--#: ../yum/__init__.py:3317
-+#: ../yum/__init__.py:3478
- #, python-format
- msgid "%s: does not update installed package."
- msgstr "%s: não atualiza o pacote instalado."
- 
--#: ../yum/__init__.py:3379
-+#: ../yum/__init__.py:3511 ../yum/__init__.py:3595
-+#, python-format
-+msgid "Cannot open file: %s. Skipping."
-+msgstr "Não foi possível abrir o arquivo: %s. Ignorando."
-+
-+#: ../yum/__init__.py:3541
- msgid "Problem in reinstall: no package matched to remove"
- msgstr "Problema na reinstalação: nenhum pacote encontrado para remoção"
- 
--#: ../yum/__init__.py:3392
--#: ../yum/__init__.py:3523
-+#: ../yum/__init__.py:3554 ../yum/__init__.py:3686
- #, python-format
- msgid "Package %s is allowed multiple installs, skipping"
- msgstr "O pacote %s permite múltiplas instalações, ignorando"
- 
--#: ../yum/__init__.py:3413
-+#: ../yum/__init__.py:3575
- #, python-format
- msgid "Problem in reinstall: no package %s matched to install"
- msgstr "Problema na reinstalação: nenhum pacote %s encontrado para instalação"
- 
--#: ../yum/__init__.py:3515
-+#: ../yum/__init__.py:3678
- msgid "No package(s) available to downgrade"
- msgstr "Nenhum pacote disponível para ser retrocedido"
- 
--#: ../yum/__init__.py:3559
-+#: ../yum/__init__.py:3731
- #, python-format
- msgid "No Match for available package: %s"
- msgstr "Nenhuma correspondência disponível para o pacote: %s"
- 
--#: ../yum/__init__.py:3565
-+#: ../yum/__init__.py:3738
- #, python-format
- msgid "Only Upgrade available on package: %s"
- msgstr "Somente a atualização está disponível para o pacote: %s"
- 
--#: ../yum/__init__.py:3635
--#: ../yum/__init__.py:3672
-+#: ../yum/__init__.py:3808 ../yum/__init__.py:3845
- #, python-format
- msgid "Failed to downgrade: %s"
- msgstr "Falha ao desatualizar: %s"
- 
--#: ../yum/__init__.py:3704
-+#: ../yum/__init__.py:3877
- #, python-format
- msgid "Retrieving GPG key from %s"
- msgstr "Obtendo a chave GPG a partir de %s"
- 
--#: ../yum/__init__.py:3724
-+#: ../yum/__init__.py:3897
- msgid "GPG key retrieval failed: "
- msgstr "A obtenção da chave GPG falhou:"
- 
--#: ../yum/__init__.py:3735
-+#: ../yum/__init__.py:3903
-+#, python-format
-+msgid "Invalid GPG Key from %s: %s"
-+msgstr "A chave GPG de %s é inválida: %s"
-+
-+#: ../yum/__init__.py:3912
- #, python-format
- msgid "GPG key parsing failed: key does not have value %s"
- msgstr "Falha na análise da chave GPG: ela não tem o valor %s"
- 
--#: ../yum/__init__.py:3767
-+#: ../yum/__init__.py:3944
- #, python-format
- msgid "GPG key at %s (0x%s) is already installed"
- msgstr "A chave GPG em %s (0x%s) já está instalada"
- 
- #. Try installing/updating GPG key
--#: ../yum/__init__.py:3772
--#: ../yum/__init__.py:3834
-+#: ../yum/__init__.py:3949 ../yum/__init__.py:4011
- #, python-format
- msgid "Importing GPG key 0x%s \"%s\" from %s"
- msgstr "Importando chave GPG 0x%s \"%s\" a partir de %s"
- 
--#: ../yum/__init__.py:3789
-+#: ../yum/__init__.py:3966
- msgid "Not installing key"
- msgstr "Não está instalando a chave"
- 
--#: ../yum/__init__.py:3795
-+#: ../yum/__init__.py:3972
- #, python-format
- msgid "Key import failed (code %d)"
- msgstr "Falha na importação da chave (código %d)"
- 
--#: ../yum/__init__.py:3796
--#: ../yum/__init__.py:3855
-+#: ../yum/__init__.py:3973 ../yum/__init__.py:4032
- msgid "Key imported successfully"
- msgstr "Chave importada com sucesso"
- 
--#: ../yum/__init__.py:3801
--#: ../yum/__init__.py:3860
-+#: ../yum/__init__.py:3978 ../yum/__init__.py:4037
- #, 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 ""
--"As chaves GPG listadas para o repositório \"%s\" já estão instaladas, mas não estão corretas para este pacote.\n"
--"Verifique se as URLs corretas das chaves estão configuradas para esse repositório."
-+"As chaves GPG listadas para o repositório \"%s\" já estão instaladas, mas "
-+"não estão corretas para este pacote.\n"
-+"Verifique se as URLs corretas das chaves estão configuradas para esse "
-+"repositório."
- 
--#: ../yum/__init__.py:3810
-+#: ../yum/__init__.py:3987
- msgid "Import of key(s) didn't help, wrong key(s)?"
- msgstr "A importação da(s) chave(s) não ajudou, chave(s) errada(s)?"
- 
--#: ../yum/__init__.py:3829
-+#: ../yum/__init__.py:4006
- #, python-format
- msgid "GPG key at %s (0x%s) is already imported"
- msgstr "A chave GPG em %s (0x%s) já foi importada"
- 
--#: ../yum/__init__.py:3849
-+#: ../yum/__init__.py:4026
- #, python-format
- msgid "Not installing key for repo %s"
- msgstr "A chave para o repositório %s não será instalada"
- 
--#: ../yum/__init__.py:3854
-+#: ../yum/__init__.py:4031
- msgid "Key import failed"
- msgstr "Falha na importação da chave"
- 
--#: ../yum/__init__.py:3976
-+#: ../yum/__init__.py:4157
- msgid "Unable to find a suitable mirror."
- msgstr "Não foi possível encontrar um espelho apropriado."
- 
--#: ../yum/__init__.py:3978
-+#: ../yum/__init__.py:4159
- msgid "Errors were encountered while downloading packages."
- msgstr "Foram encontrados erros ao baixar os pacotes."
- 
--#: ../yum/__init__.py:4028
-+#: ../yum/__init__.py:4209
- #, python-format
- msgid "Please report this error at %s"
- msgstr "Por favor, relate esse erro em %s"
- 
--#: ../yum/__init__.py:4052
-+#: ../yum/__init__.py:4233
- msgid "Test Transaction Errors: "
- msgstr "Erros do teste de transação:"
- 
-+#: ../yum/__init__.py:4334
-+#, python-format
-+msgid "Could not set cachedir: %s"
-+msgstr "Não foi possível definir a cachedir: %s"
-+
- #. Mostly copied from YumOutput._outKeyValFill()
- #: ../yum/plugins.py:202
- msgid "Loaded plugins: "
- msgstr "Plugins carregados: "
- 
--#: ../yum/plugins.py:216
--#: ../yum/plugins.py:222
-+#: ../yum/plugins.py:216 ../yum/plugins.py:222
- #, python-format
- msgid "No plugin match for: %s"
- msgstr "Nenhum plugin correspondente para: %s"
-@@ -2540,8 +2671,10 @@ msgstr "Carregando o plugin \"%s\""
- 
- #: ../yum/plugins.py:316
- #, python-format
--msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
--msgstr "Dois ou mais plugins com o nome \"%s\" existem no caminho de pesquisa plugins"
-+msgid ""
-+"Two or more plugins with the name \"%s\" exist in the plugin search path"
-+msgstr ""
-+"Dois ou mais plugins com o nome \"%s\" existem no caminho de pesquisa plugins"
- 
- #: ../yum/plugins.py:336
- #, python-format
-@@ -2559,7 +2692,20 @@ msgstr "Não foi possível encontrar o arquivo de configuração para o plugin %
- msgid "registration of commands not supported"
- msgstr "O registro de comandos não é suportado"
- 
--#: ../yum/rpmtrans.py:78
-+#: ../yum/rpmsack.py:102
-+msgid "has missing requires of"
-+msgstr "tem exigências faltando do"
-+
-+#: ../yum/rpmsack.py:105
-+msgid "has installed conflicts"
-+msgstr "tem conflitos instalados"
-+
-+#: ../yum/rpmsack.py:114
-+#, python-format
-+msgid "%s is a duplicate with %s"
-+msgstr "%s é uma duplicação do %s"
-+
-+#: ../yum/rpmtrans.py:79
- msgid "Repackaging"
- msgstr "Reempacotando"
- 
-@@ -2575,16 +2721,16 @@ msgstr "O RPM %s não passou na verificação md5"
- 
- #: ../rpmUtils/oldUtils.py:151
- msgid "Could not open RPM database for reading. Perhaps it is already in use?"
--msgstr "Não foi possível abrir o banco de dados RPM para leitura. Talvez por que ele já esteja em uso?"
-+msgstr ""
-+"Não foi possível abrir o banco de dados RPM para leitura. Talvez por que ele "
-+"já esteja em uso?"
- 
- #: ../rpmUtils/oldUtils.py:183
- msgid "Got an empty Header, something has gone wrong"
- msgstr "Um cabeçalho vazio foi obtido, algo deu errado"
- 
--#: ../rpmUtils/oldUtils.py:253
--#: ../rpmUtils/oldUtils.py:260
--#: ../rpmUtils/oldUtils.py:263
--#: ../rpmUtils/oldUtils.py:266
-+#: ../rpmUtils/oldUtils.py:253 ../rpmUtils/oldUtils.py:260
-+#: ../rpmUtils/oldUtils.py:263 ../rpmUtils/oldUtils.py:266
- #, python-format
- msgid "Damaged Header %s"
- msgstr "Cabeçalho %s danificado"
-@@ -2594,21 +2740,44 @@ msgstr "Cabeçalho %s danificado"
- msgid "Error opening rpm %s - error %s"
- msgstr "Erro ao abrir o rpm %s - erro %s"
- 
-+#~ msgid "Finished Transaction Test"
-+#~ msgstr "Teste de transação finalizado"
-+
-+#~ msgid ""
-+#~ " You could try running: package-cleanup --problems\n"
-+#~ "                        package-cleanup --dupes\n"
-+#~ "                        rpm -Va --nofiles --nodigest"
-+#~ msgstr ""
-+#~ " Você pode tentar executar: package-cleanup --problems\n"
-+#~ "                        package-cleanup --dupes\n"
-+#~ "                        rpm -Va --nofiles --nodigest"
-+
-+#~ msgid "Unresolvable requirement %s for %s"
-+#~ msgstr "Requerimento %s insolúvel para o %s"
-+
-+#~ msgid "Missing Dependency: %s is needed by package %s"
-+#~ msgstr "Dependência faltando: %s é requerido pelo pacote %s"
-+
- #~ msgid ""
- #~ "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple"
- #~ "().\n"
- #~ msgstr ""
- #~ "getInstalledPackageObject() será deixada de lado, use a self.rpmdb."
- #~ "searchPkgTuple().\n"
-+
- #~ msgid "Command"
- #~ msgstr "Comando"
-+
- #~ msgid "Created"
- #~ msgstr "Criado"
-+
- #~ msgid "Summary"
- #~ msgstr "Resumo"
-+
- #~ msgid "Matching packages for package list to user args"
- #~ msgstr ""
- #~ "Resultado dos pacotes para a lista de pacotes dos argumentos do usuário"
-+
- #~ msgid ""
- #~ "\n"
- #~ "Transaction Summary\n"
-@@ -2623,67 +2792,94 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
- #~ "Instalar  %5.5s pacote(s)         \n"
- #~ "Atualizar   %5.5s pacote(s)         \n"
- #~ "Remover   %5.5s pacote(s)         \n"
-+
- #~ msgid "excluding for cost: %s from %s"
- #~ msgstr "excluindo para custo: %s a partir de %s"
-+
- #~ msgid "Excluding Packages in global exclude list"
- #~ msgstr "Excluindo pacotes na lista global de excluídos"
-+
- #~ msgid "Excluding Packages from %s"
- #~ msgstr "Excluindo pacotes de %s"
-+
- #~ msgid "Reducing %s to included packages only"
- #~ msgstr "Reduzindo %s apenas aos pacotes inclusos"
-+
- #~ msgid "Keeping included package %s"
- #~ msgstr "Mantendo o pacote incluso %s"
-+
- #~ msgid "Removing unmatched package %s"
- #~ msgstr "Removendo pacote não encontrado %s"
-+
- #~ msgid "Finished"
- #~ msgstr "Concluído"
-+
- #~ msgid "Invalid versioned dependency string, try quoting it."
- #~ msgstr "String de dependência versionada inválida, tente citá-la."
-+
- #~ msgid "Entering rpm code"
- #~ msgstr "Entrando no código rpm"
-+
- #~ msgid "Leaving rpm code"
- #~ msgstr "Saindo do código rpm"
-+
- #~ msgid "Parsing package install arguments"
- #~ msgstr "Analisando argumentos da instalação de pacotes"
-+
- #~ msgid ""
- #~ "Failure finding best provider of %s for %s, exceeded maximum loop length"
- #~ msgstr ""
- #~ "Falha ao encontrar o melhor fornecedor de %s para %s, tamanho máximo do "
- #~ "loop excedido"
-+
- #~ msgid "Comparing best: %s to po: %s"
- #~ msgstr "Comparando melhor: %s para po: %s"
-+
- #~ msgid "Same: best %s == po: %s"
- #~ msgstr "Igual: melhor %s == po: %s"
-+
- #~ msgid "po %s obsoletes best: %s"
- #~ msgstr "po %s torna melhor obsoleto: %s"
-+
- #~ msgid "po %s shares a sourcerpm with %s"
- #~ msgstr "po %s compartilha um sourcerpm com %s"
-+
- #~ msgid "best %s shares a sourcerpm with %s"
- #~ msgstr "melhor %s compartilha um sourcerpm com %s"
-+
- #~ msgid "po %s shares more of the name prefix with %s"
- #~ msgstr "po %s compartilha mais do prefixo do nome com %s"
-+
- #~ msgid "po %s has a shorter name than best %s"
- #~ msgstr "po %s tem um nome mais curto do que o melhor %s"
-+
- #~ msgid "bestpkg %s shares more of the name prefix with %s"
- #~ msgstr "bestpkg %s compartilha mais do prefixo do nome com %s"
-+
- #~ msgid "Looking for Obsoletes for %s"
- #~ msgstr "Localizando Obsoletos para %s"
-+
- #~ msgid "unable to find newer package for %s"
- #~ msgstr "não foi possível encontrar um pacote mais recente para o %s"
-+
- #~ msgid "TSINFO: Updating %s to resolve conflict."
- #~ msgstr "TSINFO: Atualizando o %s para resolver o conflito."
--#~ msgid "%s conflicts with %s"
--#~ msgstr "%s conflita com %s"
-+
- #~ msgid "Package %s conflicts with %s."
- #~ msgstr "O pacote %s conflita com %s."
-+
- #~ msgid "Running \"%s\" handler for \"%s\" plugin"
- #~ msgstr "Executando o manipulador \"%s\" para o plugin \"%s\""
-+
- #~ msgid "Directory of rpms must exist"
- #~ msgstr "O diretório de rpms precisa existir"
-+
- #~ msgid "Error accessing URL: %s"
- #~ msgstr "Erro ao acessar a URL: %s"
-+
- #~ msgid "No Packages installed not included in a repository"
- #~ msgstr "Nenhum pacote instalado não incluído em um repositório"
-+
- #~ msgid ""
- #~ "\n"
- #~ "   Total: %d\n"
-@@ -2694,10 +2890,13 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
- #~ "   Total: %d\n"
- #~ "   Usado: %d\n"
- #~ "   Src: %d"
-+
- #~ msgid "Error restoring the backup of lilo.conf  The backup was:\n"
- #~ msgstr "Erro ao restaurar o backup do lilo.conf. O backup era:\n"
-+
- #~ msgid "Looking in available packages for a providing package"
- #~ msgstr "Procurando pelo pacote fornecido nos pacotes disponíveis"
-+
- #~ msgid ""
- #~ "retrygrab() failed for:\n"
- #~ "  %s%s\n"
-@@ -2706,12 +2905,16 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
- #~ "retrygrab() falhou para:\n"
- #~ "  %s%s\n"
- #~ "  Executando método de recuperação"
-+
- #~ msgid "I will install/upgrade these to satisfy the dependencies:"
- #~ msgstr "Eu irei instalar/atualizar isto para satisfazer as dependências:"
-+
- #~ msgid "Cannot delete %s - check perms"
- #~ msgstr "Não foi possível remover %s - verifique as permissões"
-+
- #~ msgid "Need a provides to match"
- #~ msgstr "É necessário fornecer uma informação para corresponder"
-+
- #~ msgid ""
- #~ "lilo options that are not supported by yum are used in the default lilo."
- #~ "conf. This file will not be modified. The options include:\n"
-@@ -2719,10 +2922,13 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
- #~ "opções do lilo que não são suportadas pelo yum estão sendo utilizadas no "
- #~ "arquivo lilo.conf padrão. Este arquivo não será modificado. Dentre as "
- #~ "opções estão:\n"
-+
- #~ msgid "Error getting file %s"
- #~ msgstr "Erro ao obter arquivo %s"
-+
- #~ msgid "%s is not writable"
- #~ msgstr "%s não é gravável"
-+
- #~ msgid ""
- #~ "\n"
- #~ "Already found tuple: %s %s:\n"
-@@ -2731,86 +2937,117 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
- #~ "\n"
- #~ "Tupla já encontrada: %s %s:\n"
- #~ "%s "
-+
- #~ msgid "errors found"
- #~ msgstr "erros encontrados"
-+
- #~ msgid "Unable to determine boot loader."
- #~ msgstr "Não foi possível determinar o gerenciador de inicialização."
-+
- #~ msgid "getting %s"
- #~ msgstr "obtendo %s"
-+
- #~ msgid "Error Reading Header on %s"
- #~ msgstr "Erro ao Ler Cabeçalho em %s"
-+
- #~ msgid "Error accessing File: %s"
- #~ msgstr "Erro ao acessar arquivo: %s"
-+
- #~ msgid "You're not root, we can't install things"
- #~ msgstr "Você não é root, nós não podemos instalar coisas"
-+
- #~ msgid "Cannot find any conf file."
- #~ msgstr "Não foi possível encontrar um arquivo de configuração."
-+
- #~ msgid "Local file does not exist: %s"
- #~ msgstr "O arquivo local não existe: %s"
-+
- #~ msgid "using ftp, http[s], or file for servers, Aborting - %s"
- #~ msgstr "usando ftp, http[s] ou arquivos para servidores. Abortando - %s"
-+
- #~ msgid "Found %s."
- #~ msgstr "%s encontrado."
-+
- #~ msgid "Transaction(s) Complete"
- #~ msgstr "Transação Completa"
-+
- #~ msgid "IOError: %s"
- #~ msgstr "IOError (Erro E/S): %s"
-+
- #~ msgid "Cleaning packages and old headers"
- #~ msgstr "Limpando pacotes e cabeçalhos antigos"
-+
- #~ msgid ""
- #~ "Cannot download %s in caching only mode or when running as non-root user."
- #~ msgstr ""
- #~ "Não é possível baixar %s no modo \"somente cache\" ou quando estiver "
- #~ "executando com um usuário não root."
-+
- #~ msgid ""
- #~ "Error: You may want to run yum clean or remove the file: \n"
- #~ " %s"
- #~ msgstr ""
- #~ "Erro: Você pode querer executar a limpeza do yum ou remover o arquivo: \n"
- #~ " %s"
-+
- #~ msgid "Error reading lilo.conf: The messages was:\n"
- #~ msgstr "Erro ao ler o lilo.conf: A mensagem foi:\n"
-+
- #~ msgid "No groups provided or accessible on any server."
- #~ msgstr "Nenhum grupo fornecido ou acessível em nenhum servidor."
-+
- #~ msgid "%s results returned"
- #~ msgstr "%s resultados retornados"
-+
- #~ msgid "Error moving %s to %s, fatal"
- #~ msgstr "Erro ao mover %s para %s, fatal"
-+
- #~ msgid ""
- #~ "\n"
- #~ "ignoring bad rpm: %s"
- #~ msgstr ""
- #~ "\n"
- #~ "ignorando rpm defeituoso: %s"
-+
- #~ msgid "[erase: %s]"
- #~ msgstr "[remover: %s]"
-+
- #~ msgid "%s is not a dir"
- #~ msgstr "%s não é um diretório"
-+
- #~ msgid "Best version for %s is %s:%s-%s"
- #~ msgstr "A melhor versão para %s é %s:%s-%s"
-+
- #~ msgid "[deps: %s]"
- #~ msgstr "[deps: %s]"
-+
- #~ msgid ""
- #~ "\n"
- #~ "ignoring srpm: %s"
- #~ msgstr ""
- #~ "\n"
- #~ "ignorando srpm: %s"
-+
- #~ msgid "Checking deps %d/%d complete"
- #~ msgstr "Checando dependências, %d/%d completo"
-+
- #~ msgid ""
- #~ "Errors within the dir(s):\n"
- #~ " %s"
- #~ msgstr ""
- #~ "Erro dentro do(s) diretório(s):\n"
- #~ " %s"
-+
- #~ msgid "Please run yum in non-caching mode to correct this header."
- #~ msgstr ""
- #~ "Por favor, execute o yum no modo sem cache para corrigir este cabeçalho."
-+
- #~ msgid "Error installing lilo.conf  The message was:\n"
- #~ msgstr "Erro ao instalar o lilo.conf. A mensagem foi:\n"
-+
- #~ msgid "Error: Untrusted GPG key on %s"
- #~ msgstr "Erro: Chave GPG não confiável em %s"
-+
- #~ msgid ""
- #~ "\n"
- #~ "\n"
-@@ -2821,50 +3058,66 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
- #~ "\n"
- #~ "Problema com a assinatura gpg ou com o md5sum em %s\n"
- #~ "\n"
-+
- #~ msgid "No Packages Available for Update or Install"
- #~ msgstr "Nenhum Pacote Disponível para Atualização ou Instalação"
-+
- #~ msgid "Found best arch for install only pkg %s"
- #~ msgstr "Encontre a melhor arquitetura para instalar apenas o pacote %s"
-+
- #~ msgid "I will do the following:"
- #~ msgstr "Eu farei o seguinte:"
-+
- #~ msgid "Bad URL: %s"
- #~ msgstr "URL Inválida: %s"
-+
- #~ msgid "NonMatching RPM version, %s, removing."
- #~ msgstr "Versão do RPM não coincide, %s, removendo."
-+
- #~ msgid "I will erase these to satisfy the dependencies:"
- #~ msgstr "Eu irei apagar isto para satisfazer as dependências:"
-+
- #~ msgid "HTTP Error (%s): %s"
- #~ msgstr "Erro HTTP (%s): %s"
-+
- #~ msgid "Please ask your sysadmin to update the headers on this system."
- #~ msgstr ""
- #~ "Por favor, peça ao administrador do seu sistema para atualizar os "
- #~ "cabeçalhos."
-+
- #~ msgid "Putting back old headers"
- #~ msgstr "Recolocando cabeçalhos antigos"
--#~ msgid "CacheDir: %s"
--#~ msgstr "CacheDir (diretório de cache): %s"
-+
- #~ msgid "Completing update for %s  - %d/%d"
- #~ msgstr "Completando atualização para %s - %d/%d"
-+
- #~ msgid ""
- #~ "Error: You may need to disable gpg checking to install this package\n"
- #~ msgstr ""
- #~ "Erro: Talvez seja necessário desabilitar a verificação gpg para instalar "
- #~ "este pacote\n"
-+
- #~ msgid "Options Error: no commands found"
- #~ msgstr "Erro nas opções: nenhum comando encontrado"
-+
- #~ msgid "Unable to run grubby correctly: the message was:\n"
- #~ msgstr "Não foi possível executar o grubby corretamente: a mensagem foi:\n"
-+
- #~ msgid "IOError - # %s - %s"
- #~ msgstr "IOError (Erro E/S) - # %s - %s"
-+
- #~ msgid "Kernel Updated/Installed, checking for bootloader"
- #~ msgstr ""
- #~ "Kernel atualizado/instalado, verificando gerenciador de inicialização"
-+
- #~ msgid "Need to pass a list of pkgs to install"
- #~ msgstr "É necessário passar uma lista de pacotes para instalar"
-+
- #~ msgid "Insufficient server config - no servers found. Aborting."
- #~ msgstr ""
- #~ "Configuração de servidor insuficiente - nenhum servidor encontrado. "
- #~ "Abortando."
-+
- #~ msgid ""
- #~ "\n"
- #~ "    Usage:  yum [options] <update | upgrade | install | info | remove | "
-@@ -2910,76 +3163,102 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
- #~ "          --version - exibe a versão do yum\n"
- #~ "          -h, --help - exibe esta tela\n"
- #~ "    "
-+
- #~ msgid "From %s installing %s"
- #~ msgstr "A partir de %s, instalando %s"
-+
- #~ msgid "No bootloader found, Cannot configure kernel, continuing."
- #~ msgstr ""
- #~ "Nenhum gerenciador de inicialização encontrado. Não é possível configurar "
- #~ "o kernel, continuando."
-+
- #~ msgid "Attempt to delete a missing file %s - ignoring."
- #~ msgstr "Tentativa de remover um arquivo faltando %s - ignorando."
-+
- #~ msgid "Getting %s"
- #~ msgstr "Obtendo %s"
-+
- #~ msgid ""
- #~ "\n"
- #~ "Writing header.info file"
- #~ msgstr ""
- #~ "\n"
- #~ "Gravando arquivo header.info"
-+
- #~ msgid "Gathering header information file(s) from server(s)"
- #~ msgstr ""
- #~ "Coletando arquivo(s) de informações de cabeçalhos a partir do(s) servidor"
- #~ "(es)"
-+
- #~ msgid "Using cached header.info file"
- #~ msgstr "Utilizando arquivo header.info do cache"
-+
- #~ msgid "localrpmdb not defined"
- #~ msgstr "localrpmdb não definido"
-+
- #~ msgid "Error installing the new bootloader: \n"
- #~ msgstr "Erro ao instalar o novo gerenciador de inicialização: \n"
-+
- #~ msgid "Error: Could not find the GPG Key necessary to validate pkg %s"
- #~ msgstr ""
- #~ "Erro: Não foi possível localizar a Chave GPG necessária para validar o "
- #~ "pacote %s"
-+
- #~ msgid "No actions to take"
- #~ msgstr "Nenhuma ação a ser tomada"
-+
- #~ msgid ""
- #~ "Available package: %s.%s %s:%s-%s from %s matches with\n"
- #~ " %s"
- #~ msgstr ""
- #~ "Pacote disponível: %s.%s %s:%s-%s de %s resultados com\n"
- #~ " %s"
-+
- #~ msgid "   "
- #~ msgstr "   "
-+
- #~ msgid "Error: Cannot find baseurl or name for server '%s'. Skipping"
- #~ msgstr ""
- #~ "Erro: Não foi possível localizar a baseurl ou o nome do servidor \"%s\". "
- #~ "Ignorando."
-+
- #~ msgid "Odd header %s suddenly disappeared"
- #~ msgstr "Cabeçalho indefinido %s desapareceu repentinamente"
-+
- #~ msgid "All dependencies resolved and no conflicts detected"
- #~ msgstr "Todas as dependências resolvidas e nenhum conflito detectado"
-+
- #~ msgid "using cached groups from server: %s"
- #~ msgstr "usando grupos em cache a partir do servidor: %s"
-+
- #~ msgid "Exiting."
- #~ msgstr "Saindo."
-+
- #~ msgid ""
- #~ "asking for package %s.%s - does not exist in nevral - bailing out - check "
- #~ "rpmdb for errors"
- #~ msgstr ""
- #~ "perguntando pelo pacote %s.%s - não existe no nevral - saindo "
- #~ "abruptamente - verifique por erros no rpmdb"
-+
- #~ msgid "Errors reported doing trial run"
- #~ msgstr "Erros reportados na execução experimental"
-+
- #~ msgid "Lilo found - adding kernel to lilo and making it the default"
- #~ msgstr "Lilo encontrado - adicionando o kernel ao lilo e tornando-o padrão"
-+
- #~ msgid "[update: %s]"
- #~ msgstr "[atualizar: %s]"
-+
- #~ msgid "ERROR: Url Return no Content-Length  - something is wrong"
- #~ msgstr "ERRO: A URL retornou conteúdo vazio - algo está errado"
-+
- #~ msgid "Got a file - yay"
- #~ msgstr "Obteve um arquivo - yay"
-+
- #~ msgid "From %s updating %s"
- #~ msgstr "A partir de %s, atualizando %s"
-+
- #~ msgid ""
- #~ "Usage:\n"
- #~ "yum-arch [-v] [-z] [-l] [-c] [-n] [-d] [-q] [-vv] (path of dir where "
-@@ -3009,54 +3288,74 @@ msgstr "Erro ao abrir o rpm %s - erro %s"
- #~ "   -l  = utiliza links simbólicos como rpms válidos ao compilar "
- #~ "cabeçalhos\n"
- #~ "   -q  = faz uma exibição mais discreta"
-+
- #~ msgid "The file %s is damaged."
- #~ msgstr "O arquivo %s está danificado."
-+
- #~ msgid "Repo"
- #~ msgstr "Repo"
-+
- #~ msgid "No bootloader found, Cannot configure kernel."
- #~ msgstr ""
- #~ "Nenhum gerenciador de inicialização encontrado. Não é possível configurar "
- #~ "o kernel."
-+
- #~ msgid "Name"
- #~ msgstr "Nome"
-+
- #~ msgid "Downloading needed headers"
- #~ msgstr "Baixando os cabeçalhos necessários"
-+
- #~ msgid "Header for pkg %s not found"
- #~ msgstr "O cabeçalho para o pacote %s não foi encontrado"
-+
- #~ msgid "Cleaning all headers"
- #~ msgstr "Limpando todos os cabeçalhos"
-+
- #~ msgid "depcheck: package %s needs %s"
- #~ msgstr "verificação de dependências: o pacote %s precisa do %s"
-+
- #~ msgid "Error - %s cannot be found"
- #~ msgstr "Erro - %s não pôde ser encontrado"
-+
- #~ msgid "Erasing: %s %d/%d"
- #~ msgstr "Apagando: %s %d/%d"
-+
- #~ msgid "Nothing in any group to update or install"
- #~ msgstr "Nada em nenhum grupo para atualizar ou instalar"
-+
- #~ msgid "Grub found - making this kernel the default"
- #~ msgstr "Grub encontrado - tornando este kernel o padrão"
-+
- #~ msgid "Digesting rpm - %s - %d/%d"
- #~ msgstr "Preparando rpm - %s - %d/%d"
-+
- #~ msgid "Damaged RPM %s, removing."
- #~ msgstr "RPM %s danificado, removendo."
-+
- #~ msgid ""
- #~ "Bad Header for pkg %s.%s trying to get headers for the nevral - exiting"
- #~ msgstr ""
- #~ "Cabeçalho danificado para o pacote %s.%s, tentando obter cabeçalhos para "
- #~ "o nevral - saindo"
-+
- #~ msgid ""
- #~ "Error: You may also check that you have the correct GPG keys installed"
- #~ msgstr ""
- #~ "Erro: Você também pode verificar se tem as Chaves GPG corretas instaladas"
-+
- #~ msgid "No rpms to work with and no header dir. Exiting."
- #~ msgstr ""
- #~ "Nenhum diretório de cabeçalhos e nenhum rpm para ser utilizado. Saindo."
-+
- #~ msgid "ignoring bad rpm: %s"
- #~ msgstr "ignorando rpm danificado: %s"
-+
- #~ msgid "Directory of rpms must be a directory."
- #~ msgstr "O diretório de rpms deve ser um diretório."
-+
- #~ msgid "failover: out of servers to try"
- #~ msgstr "recuperação: não há mais servidores para tentar"
-+
- #~ msgid "Getting header.info from server"
- #~ msgstr "Obtendo header.info do servidor"
--
-diff --git a/po/ru.po b/po/ru.po
-index a1b946e..f1cbc2f 100644
---- a/po/ru.po
-+++ b/po/ru.po
-@@ -2,56 +2,76 @@
- # Copyright (C) 2010 yum's COPYRIGHT HOLDER
- # This file is distributed under the same license as the yum package.
- #
--# Vladimir Bormotov <bor at insight.donbass.com>, 2002.
--# Grigory Bakunov <black at asplinux.ru>, 2002,2003.
--# Timur Malikin <sora_tm at mail.ru>, 2010.
-+# Vladimir Bormotov <bor at insight.donbass.com>, 2002
-+# Grigory Bakunov <black at asplinux.ru>, 2002, 2003
-+# Timur Malikin <sora_tm at mail.ru>, 2010
-+# Misha Shnurapet <zayzayats at yandex.ru>, 2010
- msgid ""
- msgstr ""
- "Project-Id-Version: yum\n"
- "Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2010-02-11 10:54-0500\n"
--"PO-Revision-Date: 2010-03-15 21:44+0300\n"
--"Last-Translator: Timur Malikin <sora_tm at mail.ru>\n"
-+"PO-Revision-Date: 2010-06-28 16:09+0500\n"
-+"Last-Translator: Timon <timosha at gmail.com>\n"
- "Language-Team: ru <fedora-localization at www.russianfedora.ru>\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=UTF-8\n"
- "Content-Transfer-Encoding: 8bit\n"
- "Generated-By: pygettext.py 1.1\n"
- 
--#: ../callback.py:48 ../output.py:947 ../yum/rpmtrans.py:72
-+#: ../callback.py:48
-+#: ../output.py:947
-+#: ../yum/rpmtrans.py:72
- msgid "Updating"
- msgstr "Обновление"
- 
--#: ../callback.py:49 ../yum/rpmtrans.py:73
-+#: ../callback.py:49
-+#: ../yum/rpmtrans.py:73
- msgid "Erasing"
- msgstr "Удаление"
- 
--#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:946
--#: ../output.py:1659 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:75
-+#: ../callback.py:50
-+#: ../callback.py:51
-+#: ../callback.py:53
-+#: ../output.py:946
-+#: ../output.py:1659
-+#: ../yum/rpmtrans.py:74
-+#: ../yum/rpmtrans.py:75
- #: ../yum/rpmtrans.py:77
- msgid "Installing"
- msgstr "Установка"
- 
--#: ../callback.py:52 ../callback.py:58 ../output.py:1484 ../yum/rpmtrans.py:76
-+#: ../callback.py:52
-+#: ../callback.py:58
-+#: ../output.py:1484
-+#: ../yum/rpmtrans.py:76
- msgid "Obsoleted"
--msgstr "Заменено"
-+msgstr "Исключено"
- 
--#: ../callback.py:54 ../output.py:1070 ../output.py:1442 ../output.py:1491
-+#: ../callback.py:54
-+#: ../output.py:1070
-+#: ../output.py:1442
-+#: ../output.py:1491
- msgid "Updated"
- msgstr "Обновлено"
- 
--#: ../callback.py:55 ../output.py:1438
-+#: ../callback.py:55
-+#: ../output.py:1438
- msgid "Erased"
- msgstr "Удалено"
- 
--#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1068
--#: ../output.py:1434 ../output.py:1646
-+#: ../callback.py:56
-+#: ../callback.py:57
-+#: ../callback.py:59
-+#: ../output.py:1068
-+#: ../output.py:1434
-+#: ../output.py:1646
- msgid "Installed"
- msgstr "Установлено"
- 
- #: ../callback.py:130
- msgid "No header - huh?"
--msgstr "Нет заголовка?"
-+msgstr "Заголовка нет — ага?"
- 
- #: ../callback.py:168
- msgid "Repackage"
-@@ -67,11 +87,14 @@ msgstr "Ошибка: неверный выходной статус: %s для
- msgid "Erased: %s"
- msgstr "Удалено: %s"
- 
--#: ../callback.py:217 ../output.py:948 ../output.py:1648
-+#: ../callback.py:217
-+#: ../output.py:948
-+#: ../output.py:1648
- msgid "Removing"
- msgstr "Удаление"
- 
--#: ../callback.py:219 ../yum/rpmtrans.py:78
-+#: ../callback.py:219
-+#: ../yum/rpmtrans.py:78
- msgid "Cleanup"
- msgstr "Очистка"
- 
-@@ -86,14 +109,17 @@ msgstr "Настройка репозиториев"
- 
- #: ../cli.py:130
- msgid "Reading repository metadata in from local files"
--msgstr "Чтение метаданных репозиториев с локальных файлов "
-+msgstr "Чтение локальных метаданных для репозиториев"
- 
--#: ../cli.py:194 ../utils.py:193
-+#: ../cli.py:194
-+#: ../utils.py:193
- #, python-format
- msgid "Config Error: %s"
- msgstr "Ошибка конфигурации: %s"
- 
--#: ../cli.py:197 ../cli.py:1272 ../utils.py:196
-+#: ../cli.py:197
-+#: ../cli.py:1272
-+#: ../utils.py:196
- #, python-format
- msgid "Options Error: %s"
- msgstr "Ошибка опции: %s"
-@@ -106,12 +132,12 @@ msgstr "  Установлено: %s-%s из %s"
- #: ../cli.py:229
- #, python-format
- msgid "  Built    : %s at %s"
--msgstr "  Собрано: %s из %s"
-+msgstr "  Собрано    : %s из %s"
- 
- #: ../cli.py:231
- #, python-format
- msgid "  Committed: %s at %s"
--msgstr "  Передано: %s из %s"
-+msgstr "  Передано   : %s из %s"
- 
- #: ../cli.py:270
- msgid "You need to give some command"
-@@ -129,7 +155,7 @@ msgstr "Необходимо места на диске:\n"
- #: ../cli.py:316
- #, python-format
- msgid "  At least %dMB more space needed on the %s filesystem.\n"
--msgstr "Как минимум %d Мбайт или более необходимо на %s\n"
-+msgstr "  Как минимум %d Мбайт необходимо на %s.\n"
- 
- #. TODO: simplify the dependency errors?
- #. Fixup the summary
-@@ -138,12 +164,12 @@ msgid ""
- "Error Summary\n"
- "-------------\n"
- msgstr ""
--"Обзор ошибок\n"
--"---------------\n"
-+"Обзор ошибок \n"
-+"-------------\n"
- 
- #: ../cli.py:364
- msgid "Trying to run the transaction but nothing to do. Exiting."
--msgstr "Попытка запуска транзакции, но нет задач для выполнения. Выход."
-+msgstr "Попытка предпринята, делать нечего. Завершение."
- 
- #: ../cli.py:403
- msgid "Exiting on user Command"
-@@ -157,42 +183,45 @@ msgstr "Загрузка пакетов:"
- msgid "Error Downloading Packages:\n"
- msgstr "Ошибка загрузки пакетов:\n"
- 
--#: ../cli.py:426 ../yum/__init__.py:4195
-+#: ../cli.py:426
-+#: ../yum/__init__.py:4195
- msgid "Running rpm_check_debug"
- msgstr "Запуск rpm_check_debug"
- 
--#: ../cli.py:435 ../yum/__init__.py:4204
-+#: ../cli.py:435
-+#: ../yum/__init__.py:4204
- msgid "ERROR You need to update rpm to handle:"
--msgstr "ОШИБКА Вам необходимо обновить пакет вручную"
-+msgstr "ОШИБКА Вам необходимо обновить rpm:"
- 
--#: ../cli.py:437 ../yum/__init__.py:4207
-+#: ../cli.py:437
-+#: ../yum/__init__.py:4207
- msgid "ERROR with rpm_check_debug vs depsolve:"
--msgstr "ОШИБКА rpm_check_debug и разрешение зависимостей:"
-+msgstr "ОШИБКА в rpm_check_debug и разрешении зависимостей:"
- 
- #: ../cli.py:443
- msgid "RPM needs to be updated"
--msgstr "RPM пакет должен быть обновлён"
-+msgstr "менеджер пакетов RPM должен быть обновлен"
- 
- #: ../cli.py:444
- #, python-format
- msgid "Please report this error in %s"
--msgstr "Пожалуйста, сообщите об этой ошибке %s"
-+msgstr "Пожалуйста, сообщите об ошибке в %s"
- 
- #: ../cli.py:450
- msgid "Running Transaction Test"
--msgstr "Проверка транзакций"
-+msgstr "Проверяем сценарий"
- 
- #: ../cli.py:466
- msgid "Transaction Check Error:\n"
--msgstr "Ошибка проверки транзакции:\n"
-+msgstr "Проверка сценария завершена с ошибкой:\n"
- 
- #: ../cli.py:473
- msgid "Transaction Test Succeeded"
--msgstr "Проверка прошла успешно"
-+msgstr "Проверка сценария прошла успешно"
- 
- #: ../cli.py:495
- msgid "Running Transaction"
--msgstr "Запуск транзакции"
-+msgstr "Запускается сценарий"
- 
- #: ../cli.py:525
- msgid ""
-@@ -202,28 +231,36 @@ msgstr ""
- "Отмена автоматического импорта ключей во время запуска без контроля.\n"
- "Используйте \"-y\" для игнорирования."
- 
--#: ../cli.py:544 ../cli.py:578
-+#: ../cli.py:544
-+#: ../cli.py:578
- msgid "  * Maybe you meant: "
--msgstr "* Возможно вы имели в виду:"
-+msgstr "  * Возможно вы имели в виду: "
- 
--#: ../cli.py:561 ../cli.py:569
-+#: ../cli.py:561
-+#: ../cli.py:569
- #, python-format
- msgid "Package(s) %s%s%s available, but not installed."
- msgstr "Пакет(ы) %s%s%s доступны, но не установлены."
- 
--#: ../cli.py:575 ../cli.py:607 ../cli.py:687
-+#: ../cli.py:575
-+#: ../cli.py:607
-+#: ../cli.py:687
- #, python-format
- msgid "No package %s%s%s available."
- msgstr "Пакет %s%s%s недоступен."
- 
--#: ../cli.py:612 ../cli.py:748
-+#: ../cli.py:612
-+#: ../cli.py:748
- msgid "Package(s) to install"
- msgstr "Пакет(ы) для установки"
- 
--#: ../cli.py:613 ../cli.py:693 ../cli.py:727 ../cli.py:749
-+#: ../cli.py:613
-+#: ../cli.py:693
-+#: ../cli.py:727
-+#: ../cli.py:749
- #: ../yumcommands.py:160
- msgid "Nothing to do"
--msgstr "Нечего выполнять"
-+msgstr "Выполнять нечего"
- 
- #: ../cli.py:647
- #, python-format
-@@ -232,7 +269,7 @@ msgstr "%d пакеты отмечены для обновления"
- 
- #: ../cli.py:650
- msgid "No Packages marked for Update"
--msgstr "Нет пакетов отмеченных для обновления"
-+msgstr "Нет пакетов, отмеченных для обновления"
- 
- #: ../cli.py:664
- #, python-format
-@@ -241,16 +278,16 @@ msgstr "%d пакеты отмечены для удаления"
- 
- #: ../cli.py:667
- msgid "No Packages marked for removal"
--msgstr "Нет пакетов отмеченных для удаления"
-+msgstr "Нет пакетов, отмеченных для удаления"
- 
- #: ../cli.py:692
- msgid "Package(s) to downgrade"
--msgstr "Пакет(ы) для возврата к предыдущей версии"
-+msgstr "Пакет(ы) для отката версии"
- 
- #: ../cli.py:717
- #, python-format
- msgid " (from %s)"
--msgstr "(из %s)"
-+msgstr " (из %s)"
- 
- #: ../cli.py:719
- #, python-format
-@@ -273,7 +310,7 @@ msgstr "Совпадений: %s"
- #: ../cli.py:825
- #, python-format
- msgid "Warning: No matches found for: %s"
--msgstr "Внимание: Нет совпадений для: %s"
-+msgstr "Внимание: совпадений для %s не найдено"
- 
- #: ../cli.py:828
- msgid "No Matches found"
-@@ -286,8 +323,8 @@ msgid ""
- " You can use \"%s*/%s%s\" and/or \"%s*bin/%s%s\" to get that behaviour"
- msgstr ""
- "Внимание: в yum версии 3.0.x ошибочно совпадают названия файлов.\n"
--"Вы можете использовать \"%s*/%s%s\" и/или \"%s*bin/%s%s\" \n"
--"чтобы получить соответствующее поведение"
-+" Вы можете использовать \"%s*/%s%s\" и/или \"%s*bin/%s%s\" \n"
-+" чтобы получить соответствующее поведение"
- 
- #: ../cli.py:884
- #, python-format
-@@ -324,42 +361,46 @@ msgstr "Очистка кэша данных базы RPM"
- 
- #: ../cli.py:930
- msgid "Cleaning up plugins"
--msgstr "Очистка плагинов"
-+msgstr "Сброс модулей"
- 
- #: ../cli.py:955
- msgid "Installed Groups:"
--msgstr "Установлены группы: "
-+msgstr "Установлены коллекции:"
- 
- #: ../cli.py:967
- msgid "Available Groups:"
--msgstr "Доступные группы:"
-+msgstr "Доступные коллекции:"
- 
- #: ../cli.py:977
- msgid "Done"
- msgstr "Выполнено"
- 
--#: ../cli.py:988 ../cli.py:1006 ../cli.py:1012 ../yum/__init__.py:2788
-+#: ../cli.py:988
-+#: ../cli.py:1006
-+#: ../cli.py:1012
-+#: ../yum/__init__.py:2788
- #, python-format
- msgid "Warning: Group %s does not exist."
--msgstr "Внимание: группа %s не существует."
-+msgstr "Внимание: коллекции %s не существует."
- 
- #: ../cli.py:1016
- msgid "No packages in any requested group available to install or update"
--msgstr "В запрашиваемых группах недоступны пакеты для обновления или установки"
-+msgstr "Во всех указанных коллекциях пакеты для установки или обновления отсутствуют"
- 
- #: ../cli.py:1018
- #, python-format
- msgid "%d Package(s) to Install"
- msgstr "%d Пакет(ы) для установки"
- 
--#: ../cli.py:1028 ../yum/__init__.py:2800
-+#: ../cli.py:1028
-+#: ../yum/__init__.py:2800
- #, python-format
- msgid "No group named %s exists"
--msgstr "Группы с именем %s не существует"
-+msgstr "Коллекции с названием %s не существует"
- 
- #: ../cli.py:1034
- msgid "No packages to remove from groups"
--msgstr "Нет пакетов для удаления с групп"
-+msgstr "Нет пакетов для удаления из коллекций"
- 
- #: ../cli.py:1036
- #, python-format
-@@ -369,7 +410,7 @@ msgstr "%d Пакет(ы) для удаления"
- #: ../cli.py:1078
- #, python-format
- msgid "Package %s is already installed, skipping"
--msgstr "Пакет %s уже установлен, пропуск"
-+msgstr "Пакет %s уже установлен, пропускаем"
- 
- #: ../cli.py:1089
- #, python-format
-@@ -380,11 +421,11 @@ msgstr "Исключение несовместимого пакета %s.%s"
- #: ../cli.py:1115
- #, python-format
- msgid "No other %s installed, adding to list for potential install"
--msgstr "Другое %s не установлено, добавляем в список потенциальных установок"
-+msgstr "Других %s не установлено, добавляем в список для возможной установки"
- 
- #: ../cli.py:1135
- msgid "Plugin Options"
--msgstr "Опции плагина"
-+msgstr "Опции модуля"
- 
- #: ../cli.py:1143
- #, python-format
-@@ -416,7 +457,7 @@ msgstr "игнорировать ошибки"
- 
- #: ../cli.py:1326
- msgid "run entirely from system cache, don't update cache"
--msgstr "запуск только из системного кэша, не обновляйте кэш"
-+msgstr "брать полностью из системного кэша, не обновлять его"
- 
- #: ../cli.py:1329
- msgid "config file location"
-@@ -432,7 +473,7 @@ msgstr "уровень отладочных сообщений"
- 
- #: ../cli.py:1338
- msgid "show duplicates, in repos, in list/search commands"
--msgstr "отобразить дубликаты в репозиториях, в списках/поиске команд"
-+msgstr "показывать повторяющиеся в репозиториях пакеты, для команд list/search"
- 
- #: ../cli.py:1340
- msgid "error output level"
-@@ -452,7 +493,7 @@ msgstr "подробно описывать действия"
- 
- #: ../cli.py:1350
- msgid "answer yes for all questions"
--msgstr "Отвечаете \"Да\" на все вопросы"
-+msgstr "Отвечать утвердительно на все вопросы"
- 
- #: ../cli.py:1352
- msgid "show Yum version and exit"
-@@ -464,13 +505,11 @@ msgstr "настройка корневой папки"
- 
- #: ../cli.py:1357
- msgid "enable one or more repositories (wildcards allowed)"
--msgstr ""
--"включение одного и более репозиториев (поиск по шаблону поддерживается)"
-+msgstr "включение одного и более репозиториев (поиск по шаблону поддерживается)"
- 
- #: ../cli.py:1361
- msgid "disable one or more repositories (wildcards allowed)"
--msgstr ""
--"выключение одного и более репозиториев (поиск по шаблону поддерживается)"
-+msgstr "выключение одного и более репозиториев (поиск по шаблону поддерживается)"
- 
- #: ../cli.py:1364
- msgid "exclude package(s) by name or glob"
-@@ -482,11 +521,11 @@ msgstr "отключает исключения для конкретного р
- 
- #: ../cli.py:1369
- msgid "enable obsoletes processing during updates"
--msgstr "включить процесс замены во время обновления"
-+msgstr "включить обработку устаревших во время обновления"
- 
- #: ../cli.py:1371
- msgid "disable Yum plugins"
--msgstr "отключить плагины Yum"
-+msgstr "отключить модули Yum"
- 
- #: ../cli.py:1373
- msgid "disable gpg signature checking"
-@@ -494,15 +533,15 @@ msgstr "отключить проверку подписи gpg"
- 
- #: ../cli.py:1375
- msgid "disable plugins by name"
--msgstr "отключить плагин по имени"
-+msgstr "отключить модуль по названию"
- 
- #: ../cli.py:1378
- msgid "enable plugins by name"
--msgstr "включить плагин по имени"
-+msgstr "включить модуль по названию"
- 
- #: ../cli.py:1381
- msgid "skip packages with depsolving problems"
--msgstr "пропускать пакеты, с проблемами с зависимостями"
-+msgstr "пропускать пакеты, с проблемами в зависимостях"
- 
- #: ../cli.py:1383
- msgid "control whether color is used"
-@@ -510,9 +549,7 @@ msgstr "Использовать ли цветовые схемы"
- 
- #: ../cli.py:1385
- msgid "set value of $releasever in yum config and repo files"
--msgstr ""
--"установите значение $releasever в конфигурационном файле yum и в файлах "
--"репозиториев (repo)"
-+msgstr "установите значение $releasever в конфигурационном файле yum и в файлах репозиториев (repo)"
- 
- #: ../output.py:305
- msgid "Jan"
-@@ -524,7 +561,7 @@ msgstr "Фев"
- 
- #: ../output.py:305
- msgid "Mar"
--msgstr "Март"
-+msgstr "Мар"
- 
- #: ../output.py:305
- msgid "Apr"
-@@ -536,11 +573,11 @@ msgstr "Май"
- 
- #: ../output.py:305
- msgid "Jun"
--msgstr "Июнь"
-+msgstr "Июн"
- 
- #: ../output.py:306
- msgid "Jul"
--msgstr "Июль"
-+msgstr "Июл"
- 
- #: ../output.py:306
- msgid "Aug"
-@@ -548,7 +585,7 @@ msgstr "Авг"
- 
- #: ../output.py:306
- msgid "Sep"
--msgstr "Сент"
-+msgstr "Сен"
- 
- #: ../output.py:306
- msgid "Oct"
-@@ -564,84 +601,84 @@ msgstr "Дек"
- 
- #: ../output.py:316
- msgid "Trying other mirror."
--msgstr "Попытка использования другого зеркала"
-+msgstr "Пробуем другое зеркало."
- 
- #: ../output.py:534
- #, python-format
- msgid "Name       : %s%s%s"
--msgstr "Имя   : %s%s%s"
-+msgstr "Имя            : %s%s%s"
- 
- #: ../output.py:535
- #, python-format
- msgid "Arch       : %s"
--msgstr "Арх.    : %s"
-+msgstr "Архитектура    : %s"
- 
- #: ../output.py:537
- #, python-format
- msgid "Epoch      : %s"
--msgstr "Период: %s"
-+msgstr "Период         : %s"
- 
- #: ../output.py:538
- #, python-format
- msgid "Version    : %s"
--msgstr "Версия  : %s"
-+msgstr "Версия         : %s"
- 
- #: ../output.py:539
- #, python-format
- msgid "Release    : %s"
--msgstr "Релиз:   %s"
-+msgstr "Релиз          : %s"
- 
- #: ../output.py:540
- #, python-format
- msgid "Size       : %s"
--msgstr "Размер:    %s"
-+msgstr "Размер         : %s"
- 
- #: ../output.py:541
- #, python-format
- msgid "Repo       : %s"
--msgstr "Репозиторий:  %s"
-+msgstr "Репозиторий    : %s"
- 
- #: ../output.py:543
- #, python-format
- msgid "From repo  : %s"
--msgstr "С репозитория: %s"
-+msgstr "Из репозитария : %s"
- 
- #: ../output.py:545
- #, python-format
- msgid "Committer  : %s"
--msgstr "Создатель: %s"
-+msgstr "Создатель      : %s"
- 
- #: ../output.py:546
- #, python-format
- msgid "Committime : %s"
--msgstr "Время создания: %s"
-+msgstr "Время создания : %s"
- 
- #: ../output.py:547
- #, python-format
- msgid "Buildtime  : %s"
--msgstr "Время сборки: %s"
-+msgstr "Время сборки   : %s"
- 
- #: ../output.py:549
- #, python-format
- msgid "Installtime: %s"
--msgstr "Установочное время: %s"
-+msgstr "Время установки: %s"
- 
- #: ../output.py:550
- msgid "Summary    : "
--msgstr "Суммарно:"
-+msgstr "Аннотация      : "
- 
- #: ../output.py:552
- #, python-format
- msgid "URL        : %s"
--msgstr "Ссылка: %s"
-+msgstr "Ссылка         : %s"
- 
- #: ../output.py:553
- msgid "License    : "
--msgstr "Лицензия  : %s"
-+msgstr "Лицензия       : "
- 
- #: ../output.py:554
- msgid "Description: "
--msgstr "Описание:"
-+msgstr "Описание       : "
- 
- #: ../output.py:622
- msgid "y"
-@@ -649,7 +686,7 @@ msgstr "y"
- 
- #: ../output.py:622
- msgid "yes"
--msgstr "Да"
-+msgstr "да"
- 
- #: ../output.py:623
- msgid "n"
-@@ -657,11 +694,11 @@ msgstr "n"
- 
- #: ../output.py:623
- msgid "no"
--msgstr "Нет"
-+msgstr "нет"
- 
- #: ../output.py:627
- msgid "Is this ok [y/N]: "
--msgstr "Выполнить [y/N]: "
-+msgstr "Продолжить? [y/N]: "
- 
- #: ../output.py:715
- #, python-format
-@@ -670,12 +707,12 @@ msgid ""
- "Group: %s"
- msgstr ""
- "\n"
--"Группа: %s"
-+"Коллекция: %s"
- 
- #: ../output.py:719
- #, python-format
- msgid " Group-Id: %s"
--msgstr " Идентификатор группы: %s"
-+msgstr " Код коллекции: %s"
- 
- #: ../output.py:724
- #, python-format
-@@ -684,7 +721,7 @@ msgstr " Описание: %s"
- 
- #: ../output.py:726
- msgid " Mandatory Packages:"
--msgstr " Обязательные пакеты"
-+msgstr " Обязательные пакеты:"
- 
- #: ../output.py:727
- msgid " Default Packages:"
-@@ -714,12 +751,12 @@ msgstr "  зависимость: %s"
- 
- #: ../output.py:758
- msgid "   Unsatisfied dependency"
--msgstr "   Зависимость неудовлетворена"
-+msgstr "   Неудовлетворенная зависимость"
- 
- #: ../output.py:830
- #, python-format
- msgid "Repo        : %s"
--msgstr "Репозиторий: %s"
-+msgstr "Репозиторий : %s"
- 
- #: ../output.py:831
- msgid "Matched from:"
-@@ -727,30 +764,30 @@ msgstr "Совпадения с:"
- 
- #: ../output.py:840
- msgid "Description : "
--msgstr "Описание:"
-+msgstr "Описание    : "
- 
- #: ../output.py:843
- #, python-format
- msgid "URL         : %s"
--msgstr "Ссылка: %s"
-+msgstr "Ссылка      : %s"
- 
- #: ../output.py:846
- #, python-format
- msgid "License     : %s"
--msgstr "Лицензия: %s"
-+msgstr "Лицензия    : %s"
- 
- #: ../output.py:849
- #, python-format
- msgid "Filename    : %s"
--msgstr "Имя файла: %s"
-+msgstr "Имя файла   : %s"
- 
- #: ../output.py:853
- msgid "Other       : "
--msgstr "Другое:"
-+msgstr "Другое      : "
- 
- #: ../output.py:896
- msgid "There was an error calculating total download size"
--msgstr "Произошла ошибка при подсчёте общего объёма загрузки"
-+msgstr "Произошла ошибка при подсчете общего объема загрузки"
- 
- #: ../output.py:901
- #, python-format
-@@ -760,20 +797,20 @@ msgstr "Общий размер: %s"
- #: ../output.py:904
- #, python-format
- msgid "Total download size: %s"
--msgstr "Общий объем загрузки: %s"
-+msgstr "Объем загрузки: %s"
- 
- #: ../output.py:908
- #, python-format
- msgid "Installed size: %s"
--msgstr "установленный размер: %s"
-+msgstr "Будет установлено: %s"
- 
- #: ../output.py:949
- msgid "Reinstalling"
--msgstr "Переустановка:"
-+msgstr "Переустановка"
- 
- #: ../output.py:950
- msgid "Downgrading"
--msgstr "Возврат к предыдущей версии"
-+msgstr "Откат версии"
- 
- #: ../output.py:951
- msgid "Installing for dependencies"
-@@ -787,7 +824,8 @@ msgstr "Обновление зависимостей"
- msgid "Removing for dependencies"
- msgstr "Удаление зависимостей"
- 
--#: ../output.py:960 ../output.py:1072
-+#: ../output.py:960
-+#: ../output.py:1072
- msgid "Skipped (dependency problems)"
- msgstr "Пропущено (ошибка зависимостей)"
- 
-@@ -797,7 +835,7 @@ msgstr "Пакет"
- 
- #: ../output.py:983
- msgid "Arch"
--msgstr "Арх."
-+msgstr "Архитектура"
- 
- #: ../output.py:984
- msgid "Version"
-@@ -824,7 +862,7 @@ msgid ""
- "%s\n"
- msgstr ""
- "\n"
--"Итог\n"
-+"Результат операции\n"
- "%s\n"
- 
- #: ../output.py:1013
-@@ -833,7 +871,7 @@ msgid ""
- "Install   %5.5s Package(s)\n"
- "Upgrade   %5.5s Package(s)\n"
- msgstr ""
--"Установка %5.5s пакетов\n"
-+"Установка  %5.5s пакетов\n"
- "Обновление %5.5s пакетов\n"
- 
- #: ../output.py:1022
-@@ -843,9 +881,9 @@ msgid ""
- "Reinstall %5.5s Package(s)\n"
- "Downgrade %5.5s Package(s)\n"
- msgstr ""
--"Удаление    %5.5s пакет(ов)\n"
--"Переустановка %5.5s пакета(ов)\n"
--"Возврат к предыдущей версии %5.5s пакета(ов)\n"
-+"Удаление      %5.5s пакет(ов)\n"
-+"Переустановка %5.5s пакет(ов)\n"
-+"Откат версии  %5.5s пакет(ов)\n"
- 
- #: ../output.py:1066
- msgid "Removed"
-@@ -884,13 +922,11 @@ msgstr "два"
- #, python-format
- msgid ""
- "\n"
--" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
--"seconds\n"
-+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s seconds\n"
- "to exit.\n"
- msgstr ""
- "\n"
--"Текущая закачка отменена, %sвызвано (ctrl-c) повторите %s в течении%s%s%s "
--"секунд\n"
-+" Текущая закачка отменена, %sвызвано (ctrl-c) повторите%s в течении %s%s%s секунд\n"
- "для выхода.\n"
- 
- #: ../output.py:1162
-@@ -935,13 +971,14 @@ msgstr "Система"
- 
- #: ../output.py:1254
- msgid "Bad transaction IDs, or package(s), given"
--msgstr "Передан плохой идентификатор транзакции или пакет(ы)"
-+msgstr "Передан(ы) неверный код действий или пакет(ы)"
- 
- #: ../output.py:1266
- msgid "ID"
- msgstr "ID"
- 
--#: ../output.py:1267 ../output.py:1520
-+#: ../output.py:1267
-+#: ../output.py:1520
- msgid "Login user"
- msgstr "Вход пользователя"
- 
-@@ -949,45 +986,48 @@ msgstr "Вход пользователя"
- msgid "Date and time"
- msgstr "Дата и время"
- 
--#: ../output.py:1269 ../output.py:1522
-+#: ../output.py:1269
-+#: ../output.py:1522
- msgid "Action(s)"
- msgstr "Действия"
- 
--#: ../output.py:1270 ../output.py:1523
-+#: ../output.py:1270
-+#: ../output.py:1523
- msgid "Altered"
- msgstr "Изменено"
- 
- #: ../output.py:1310
- msgid "No transaction ID given"
--msgstr "Идентификатор транзакции недоступен"
-+msgstr "Код действия не задан"
- 
- #: ../output.py:1336
- msgid "Bad transaction ID given"
--msgstr "Плохой идентификатор транзакции"
-+msgstr "Код действия неверен"
- 
- #: ../output.py:1341
- msgid "Not found given transaction ID"
--msgstr "Не найден данный ID транзакции"
-+msgstr "Указанный код действия не найден"
- 
- #: ../output.py:1349
- msgid "Found more than one transaction ID!"
--msgstr "Найдено более одного ID транзакции!"
-+msgstr "Указано более одной операции!"
- 
- #: ../output.py:1370
- msgid "No transaction ID, or package, given"
--msgstr "Нет данного ID транзакции или пакета"
-+msgstr "Не задан код действия или пакет"
- 
- #: ../output.py:1396
- msgid "Transaction ID :"
--msgstr "Идентификатор транзакции:"
-+msgstr "Код операции   :"
- 
- #: ../output.py:1398
- msgid "Begin time     :"
--msgstr "Время начала:"
-+msgstr "Время начала   :"
- 
--#: ../output.py:1401 ../output.py:1403
-+#: ../output.py:1401
-+#: ../output.py:1403
- msgid "Begin rpmdb    :"
--msgstr "Начало базы данных RPM:"
-+msgstr "Начало rpmdb   :"
- 
- #: ../output.py:1417
- #, python-format
-@@ -996,19 +1036,22 @@ msgstr "(%s секунд)"
- 
- #: ../output.py:1418
- msgid "End time       :"
--msgstr "Конечное время:"
-+msgstr "Конечное время :"
- 
--#: ../output.py:1421 ../output.py:1423
-+#: ../output.py:1421
-+#: ../output.py:1423
- msgid "End rpmdb      :"
--msgstr "Конец базы данных RPM:"
-+msgstr "Конец rpmdb    :"
- 
- #: ../output.py:1424
- msgid "User           :"
--msgstr "Пользователь:"
-+msgstr "Пользователь   :"
- 
--#: ../output.py:1426 ../output.py:1428 ../output.py:1430
-+#: ../output.py:1426
-+#: ../output.py:1428
-+#: ../output.py:1430
- msgid "Return-Code    :"
--msgstr "Код возврата:"
-+msgstr "Код возврата   :"
- 
- #: ../output.py:1426
- msgid "Aborted"
-@@ -1024,11 +1067,12 @@ msgstr "Успешно"
- 
- #: ../output.py:1431
- msgid "Transaction performed with:"
--msgstr "Транзакция выполняется с:"
-+msgstr "Действие выполнено:"
- 
--#: ../output.py:1444 ../output.py:1489
-+#: ../output.py:1444
-+#: ../output.py:1489
- msgid "Downgraded"
--msgstr "Возвращено к предыдущей версии"
-+msgstr "Откачено"
- 
- #. multiple versions installed, both older and newer
- #: ../output.py:1446
-@@ -1047,7 +1091,8 @@ msgstr "Вывод сценария:"
- msgid "Errors:"
- msgstr "Ошибки:"
- 
--#: ../output.py:1481 ../output.py:1482
-+#: ../output.py:1481
-+#: ../output.py:1482
- msgid "Install"
- msgstr "Установка "
- 
-@@ -1057,7 +1102,7 @@ msgstr "Установка зависимостей"
- 
- #: ../output.py:1485
- msgid "Obsoleting"
--msgstr "Замена"
-+msgstr "Исключаем"
- 
- #: ../output.py:1486
- msgid "Erase"
-@@ -1069,7 +1114,7 @@ msgstr "Переустановка"
- 
- #: ../output.py:1488
- msgid "Downgrade"
--msgstr "Возврат к предыдущей версии"
-+msgstr "Откат версии"
- 
- #: ../output.py:1490
- msgid "Update"
-@@ -1110,38 +1155,39 @@ msgstr "Более года назад"
- 
- #: ../output.py:1585
- msgid "installed"
--msgstr "Установлено"
-+msgstr "для установки"
- 
- #: ../output.py:1586
- msgid "updated"
--msgstr "Обновлено"
-+msgstr "для обновления"
- 
- #: ../output.py:1587
- msgid "obsoleted"
--msgstr "Заменено"
-+msgstr "как недействительный"
- 
- #: ../output.py:1588
- msgid "erased"
--msgstr "удалено"
-+msgstr "для удаления"
- 
- #: ../output.py:1592
- #, python-format
- msgid "---> Package %s.%s %s:%s-%s set to be %s"
--msgstr "---> Пакет %s.%s %s:%s-%s должен %s"
-+msgstr "---> Пакет %s.%s %s:%s-%s помечен %s"
- 
- #: ../output.py:1599
- msgid "--> Running transaction check"
--msgstr "--> Запуск проверки транзакции"
-+msgstr "--> Проверка сценария"
- 
- #: ../output.py:1604
- msgid "--> Restarting Dependency Resolution with new changes."
--msgstr "--> Перезапуск разрешения зависимостей с новыми параметрами."
-+msgstr "--> Перепроверка зависимостей с новыми параметрами."
- 
- #: ../output.py:1609
- msgid "--> Finished Dependency Resolution"
--msgstr "--> Окончание разрешения зависимостей"
-+msgstr "--> Проверка зависимостей окончена"
- 
--#: ../output.py:1614 ../output.py:1619
-+#: ../output.py:1614
-+#: ../output.py:1619
- #, python-format
- msgid "--> Processing Dependency: %s for package: %s"
- msgstr "--> Обработка зависимостей: %s для пакета: %s"
-@@ -1149,7 +1195,7 @@ msgstr "--> Обработка зависимостей: %s для пакета:
- #: ../output.py:1623
- #, python-format
- msgid "--> Unresolved Dependency: %s"
--msgstr "--> Неразрешённая зависимость: %s"
-+msgstr "--> Неразрешенная зависимость: %s"
- 
- #: ../output.py:1634
- #, python-format
-@@ -1165,7 +1211,8 @@ msgstr ""
- "\n"
- "    Необходимо: %s"
- 
--#: ../output.py:1649 ../output.py:1660
-+#: ../output.py:1649
-+#: ../output.py:1660
- #, python-format
- msgid ""
- "\n"
-@@ -1178,20 +1225,20 @@ msgstr ""
- msgid "Available"
- msgstr "Доступно"
- 
--#: ../output.py:1665 ../output.py:1670
-+#: ../output.py:1665
-+#: ../output.py:1670
- #, python-format
- msgid "--> Processing Conflict: %s conflicts %s"
--msgstr "--> Конфликт обработки: %s конфликтует %s"
-+msgstr "--> Обработка конфликта: %s конфликтует с %s"
- 
- #: ../output.py:1674
- msgid "--> Populating transaction set with selected packages. Please wait."
--msgstr ""
--"--> Формирование транзакций для выбранных пакетов. Пожалуйста подождите."
-+msgstr "--> Заполнение списка действий выбранными пакетами. Подождите, пожалуйста."
- 
- #: ../output.py:1678
- #, python-format
- msgid "---> Downloading header for %s to pack into transaction set."
--msgstr "-- > Загрузка заголовков %s для создания набора транзакций"
-+msgstr "---> Загрузка заголовка %s для включения в список."
- 
- #: ../utils.py:93
- msgid "Running"
-@@ -1213,7 +1260,8 @@ msgstr "Зомби"
- msgid "Traced/Stopped"
- msgstr "Трассировано/Остановлено"
- 
--#: ../utils.py:98 ../yumcommands.py:917
-+#: ../utils.py:98
-+#: ../yumcommands.py:917
- msgid "Unknown"
- msgstr "Неизвестно"
- 
-@@ -1229,29 +1277,30 @@ msgstr "  Другое приложение: %s"
- #: ../utils.py:114
- #, python-format
- msgid "    Memory : %5s RSS (%5sB VSZ)"
--msgstr "    Память: %5s RSS (%5sB VSZ)"
-+msgstr "    Память   : %5s RSS (%5sB VSZ)"
- 
- #: ../utils.py:119
- #, python-format
- msgid "    Started: %s - %s ago"
--msgstr "    Запущено: %s - %s назад"
-+msgstr "    Запущено : %s — %s назад"
- 
- #: ../utils.py:121
- #, python-format
- msgid "    State  : %s, pid: %d"
--msgstr "    Статус: %s, pid: %d"
-+msgstr "    Статус   : %s, pid: %d"
- 
- #: ../utils.py:199
- #, python-format
- msgid "PluginExit Error: %s"
--msgstr "Ошибка выхода плагина: %s"
-+msgstr "Ошибка PluginExit: %s"
- 
- #: ../utils.py:202
- #, python-format
- msgid "Yum Error: %s"
- msgstr "Ошибка Yum: %s"
- 
--#: ../utils.py:235 ../yummain.py:42
-+#: ../utils.py:235
-+#: ../yummain.py:42
- msgid ""
- "\n"
- "\n"
-@@ -1261,7 +1310,8 @@ msgstr ""
- "\n"
- "Выход по запросу пользователя"
- 
--#: ../utils.py:241 ../yummain.py:48
-+#: ../utils.py:241
-+#: ../yummain.py:48
- msgid ""
- "\n"
- "\n"
-@@ -1271,7 +1321,8 @@ msgstr ""
- "\n"
- "Выход из-за разрыва связи"
- 
--#: ../utils.py:243 ../yummain.py:50
-+#: ../utils.py:243
-+#: ../yummain.py:50
- #, python-format
- msgid ""
- "\n"
-@@ -1282,9 +1333,10 @@ msgstr ""
- "\n"
- "%s"
- 
--#: ../utils.py:282 ../yummain.py:211
-+#: ../utils.py:282
-+#: ../yummain.py:211
- msgid "Complete!"
--msgstr "Выполнено!"
-+msgstr "Готово!"
- 
- #: ../yumcommands.py:43
- msgid "You need to be root to perform this command."
-@@ -1294,8 +1346,7 @@ msgstr "Необходимы привилегии суперпользовате
- 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"
-@@ -1312,15 +1363,14 @@ msgstr ""
- "Однако, у вас не установлено публичных ключей GPG. Вам необходимо скачать\n"
- "ключи для пакетов которые хотите установить, и затем запускать установку.\n"
- "Вы можете выполнить это при помощи команды\n"
--"rpm --import public.gpg.key\n"
-+"    rpm --import public.gpg.key\n"
- "\n"
- "\n"
- "Вы также можете ввести адрес ключ, который будет использоваться\n"
--"для репозитория. Опция \"gpgkey\" в секции репозитория и Yum\n"
--"установит его.\n"
-+"для репозитория. Опция 'gpgkey' в секции репозитория и Yum\n"
-+"установит его за Вас.\n"
- "\n"
--"Чтобы узнать больше, пожалуйста, свяжитесь с поставщиком дистрибутива или "
--"пакета.\n"
-+"Чтобы узнать больше, пожалуйста, свяжитесь с поставщиком дистрибутива или пакета.\n"
- 
- #: ../yumcommands.py:70
- #, python-format
-@@ -1333,12 +1383,12 @@ msgstr "Ошибка: Необходим параметр для соответ
- 
- #: ../yumcommands.py:82
- msgid "Error: Need a group or list of groups"
--msgstr "Ошибка: Необходима группа или список групп"
-+msgstr "Ошибка: нужна коллекция или список групп"
- 
- #: ../yumcommands.py:91
- #, python-format
- msgid "Error: clean requires an option: %s"
--msgstr "Ошибка: очистка требует опции %s"
-+msgstr "Ошибка: очистка требует опции: %s"
- 
- #: ../yumcommands.py:96
- #, python-format
-@@ -1357,14 +1407,11 @@ msgstr "Имя файла принятое для командной оболо
- #: ../yumcommands.py:115
- #, python-format
- msgid "File %s given as argument to shell does not exist."
--msgstr ""
--"Файл %s переданный в качестве аргумента для командной оболочки не существует."
-+msgstr "Файл %s переданный в качестве аргумента для командной оболочки не существует."
- 
- #: ../yumcommands.py:121
- msgid "Error: more than one file given as argument to shell."
--msgstr ""
--"Ошибка: более чем один файл указан в качестве аргумента для командной "
--"оболочки."
-+msgstr "Ошибка: более чем один файл указан в качестве аргумента для командной оболочки."
- 
- #: ../yumcommands.py:170
- msgid "PACKAGE..."
-@@ -1372,11 +1419,11 @@ msgstr "ПАКЕТ..."
- 
- #: ../yumcommands.py:173
- msgid "Install a package or packages on your system"
--msgstr "Установка пакета(пакетов) в вашей системе"
-+msgstr "Установка пакета(ов) в систему"
- 
- #: ../yumcommands.py:181
- msgid "Setting up Install Process"
--msgstr "Настройка процесса установки"
-+msgstr "Подготовка к установке"
- 
- #: ../yumcommands.py:192
- msgid "[PACKAGE...]"
-@@ -1384,15 +1431,15 @@ msgstr "[ПАКЕТ...]"
- 
- #: ../yumcommands.py:195
- msgid "Update a package or packages on your system"
--msgstr "Обновление пакета(ов) в вашей системе"
-+msgstr "Обновление пакета(ов) в системе"
- 
- #: ../yumcommands.py:202
- msgid "Setting up Update Process"
--msgstr "Настройка процесса обновления"
-+msgstr "Подготовка к обновлению"
- 
- #: ../yumcommands.py:244
- msgid "Display details about a package or group of packages"
--msgstr "Отобразить подробности о пакете или о группе пакетов"
-+msgstr "Отобразить информацию о пакете или о коллекции пакетов"
- 
- #: ../yumcommands.py:293
- msgid "Installed Packages"
-@@ -1408,12 +1455,14 @@ msgstr "Дополнительные пакеты"
- 
- #: ../yumcommands.py:309
- msgid "Updated Packages"
--msgstr "Обновлённые пакеты"
-+msgstr "Обновленные пакеты"
- 
- #. This only happens in verbose mode
--#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:601
-+#: ../yumcommands.py:317
-+#: ../yumcommands.py:324
-+#: ../yumcommands.py:601
- msgid "Obsoleting Packages"
--msgstr "Заменённые пакеты"
-+msgstr "Исключенные пакеты"
- 
- #: ../yumcommands.py:326
- msgid "Recently Added Packages"
-@@ -1421,43 +1470,43 @@ msgstr "Недавно добавленные пакеты"
- 
- #: ../yumcommands.py:333
- msgid "No matching Packages to list"
--msgstr "Нет совпадений с списком пакетов"
-+msgstr "Совпадений среди пакетов не найдено"
- 
- #: ../yumcommands.py:347
- msgid "List a package or groups of packages"
--msgstr "Список пакетов или группы пакетов"
-+msgstr "Вывести список пакетов или коллекций пакетов"
- 
- #: ../yumcommands.py:359
- msgid "Remove a package or packages from your system"
--msgstr "Удаление пакета(пакетов) с вашей системы"
-+msgstr "Удаление пакета(ов) из системы"
- 
- #: ../yumcommands.py:366
- msgid "Setting up Remove Process"
--msgstr "Настройка процесса удаления"
-+msgstr "Подготовка к удалению"
- 
- #: ../yumcommands.py:380
- msgid "Setting up Group Process"
--msgstr "Настройка группового процесса"
-+msgstr "Подготовка к обработке коллекции"
- 
- #: ../yumcommands.py:386
- msgid "No Groups on which to run command"
--msgstr "Нет групп для запуска команды"
-+msgstr "Коллекций пакетов к обработке нет"
- 
- #: ../yumcommands.py:399
- msgid "List available package groups"
--msgstr "Список доступных групп пакетов"
-+msgstr "Список доступных коллекций пакетов"
- 
- #: ../yumcommands.py:416
- msgid "Install the packages in a group on your system"
--msgstr "Установка пакетов из группы в вашу систему"
-+msgstr "Установка коллекции пакетов в систему"
- 
- #: ../yumcommands.py:438
- msgid "Remove the packages in a group from your system"
--msgstr "Удаление пакета(пакетов) с вашей системы из группы"
-+msgstr "Удаление коллекции пакета(ов) из системы"
- 
- #: ../yumcommands.py:465
- msgid "Display details about a package group"
--msgstr "Отображение подробностей о группе пакетов"
-+msgstr "Показать информацию о коллекции пакетов"
- 
- #: ../yumcommands.py:489
- msgid "Generate the metadata cache"
-@@ -1469,7 +1518,7 @@ msgstr "Создание кэша для всех метаданных файл
- 
- #: ../yumcommands.py:496
- msgid "This may take a while depending on the speed of this computer"
--msgstr "Это займёт немного времени, в зависимости от скорости компьютера"
-+msgstr "Это займет немного времени, в зависимости от скорости компьютера"
- 
- #: ../yumcommands.py:517
- msgid "Metadata Cache Created"
-@@ -1477,7 +1526,7 @@ msgstr "Кэш метаданных создан"
- 
- #: ../yumcommands.py:531
- msgid "Remove cached data"
--msgstr "Удаление закэшированных данных"
-+msgstr "Удаление кэшированных данных"
- 
- #: ../yumcommands.py:551
- msgid "Find what package provides the given value"
-@@ -1497,7 +1546,7 @@ msgstr "Поиск пакетов:"
- 
- #: ../yumcommands.py:644
- msgid "Update packages taking obsoletes into account"
--msgstr "Обновить пакеты, учитывая замены"
-+msgstr "Обновить пакеты, учитывая недействительные"
- 
- #: ../yumcommands.py:652
- msgid "Setting up Upgrade Process"
-@@ -1509,7 +1558,7 @@ msgstr "Установка локального пакета"
- 
- #: ../yumcommands.py:674
- msgid "Setting up Local Package Process"
--msgstr "Настройка процесса для локального пакета"
-+msgstr "Подготовка действий с локальным пакетом"
- 
- #: ../yumcommands.py:693
- msgid "Determine which package provides the given dependency"
-@@ -1539,65 +1588,67 @@ msgstr "Поиск зависимостей:"
- msgid "Display the configured software repositories"
- msgstr "Отобразить сконфигурированные репозитории ПО"
- 
--#: ../yumcommands.py:822 ../yumcommands.py:823
-+#: ../yumcommands.py:822
-+#: ../yumcommands.py:823
- msgid "enabled"
- msgstr "включено"
- 
--#: ../yumcommands.py:849 ../yumcommands.py:850
-+#: ../yumcommands.py:849
-+#: ../yumcommands.py:850
- msgid "disabled"
- msgstr "отключено"
- 
- #: ../yumcommands.py:866
- msgid "Repo-id      : "
--msgstr "Идентификатор репозитория:"
-+msgstr "Код репозитория      : "
- 
- #: ../yumcommands.py:867
- msgid "Repo-name    : "
--msgstr "Имя репозитория:"
-+msgstr "Имя репозитория      : "
- 
- #: ../yumcommands.py:870
- msgid "Repo-status  : "
--msgstr "Статус репозитория:"
-+msgstr "Состояние репозитория: "
- 
- #: ../yumcommands.py:873
- msgid "Repo-revision: "
--msgstr "Ревизия репозитория:"
-+msgstr "Ревизия репозитория  : "
- 
- #: ../yumcommands.py:877
- msgid "Repo-tags    : "
--msgstr "Метки репозитория:"
-+msgstr "Метки репозитория    : "
- 
- #: ../yumcommands.py:883
- msgid "Repo-distro-tags: "
--msgstr "Метки репозитория дистрибутива:"
-+msgstr "Метки дистрибутива   : "
- 
- #: ../yumcommands.py:888
- msgid "Repo-updated : "
--msgstr "Репозиторий обновлён:"
-+msgstr "Репозиторий обновлен : "
- 
- #: ../yumcommands.py:890
- msgid "Repo-pkgs    : "
--msgstr "Пакеты репозитория:"
-+msgstr "Пакеты репозитория   : "
- 
- #: ../yumcommands.py:891
- msgid "Repo-size    : "
--msgstr "Размер репозитория:"
-+msgstr "Размер репозитория   : "
- 
- #: ../yumcommands.py:898
- msgid "Repo-baseurl : "
--msgstr "Ссылка на репозиторий:"
-+msgstr "baseurl репозитория  : "
- 
- #: ../yumcommands.py:906
- msgid "Repo-metalink: "
--msgstr "Метассылка репозитория:"
-+msgstr "metalink репозитория : "
- 
- #: ../yumcommands.py:910
- msgid "  Updated    : "
--msgstr "  Обновлено: "
-+msgstr "  Обновлено          : "
- 
- #: ../yumcommands.py:913
- msgid "Repo-mirrors : "
--msgstr "Зеркала репозитория:"
-+msgstr "Зеркала репозитория  : "
- 
- #: ../yumcommands.py:923
- #, python-format
-@@ -1616,37 +1667,40 @@ msgstr "%s секунд(а) (осталось: %s)"
- 
- #: ../yumcommands.py:930
- msgid "Repo-expire  : "
--msgstr "Окончание срока репозитория:"
-+msgstr "Окончание срока репозитория: "
- 
- #: ../yumcommands.py:933
- msgid "Repo-exclude : "
--msgstr "Исключения репозитория:"
-+msgstr "Исключения репозитория     : "
- 
- #: ../yumcommands.py:937
- msgid "Repo-include : "
--msgstr "Включено в репозиторий:"
-+msgstr "Включено в репозиторий     : "
- 
- #: ../yumcommands.py:941
- msgid "Repo-excluded: "
--msgstr "Исключено из репозитория:"
-+msgstr "Исключено из репозитория   : "
- 
- #. Work out the first (id) and last (enabled/disalbed/count),
- #. then chop the middle (name)...
--#: ../yumcommands.py:951 ../yumcommands.py:980
-+#: ../yumcommands.py:951
-+#: ../yumcommands.py:980
- msgid "repo id"
- msgstr "Идентификатор репозитория"
- 
--#: ../yumcommands.py:968 ../yumcommands.py:969 ../yumcommands.py:987
-+#: ../yumcommands.py:968
-+#: ../yumcommands.py:969
-+#: ../yumcommands.py:987
- msgid "status"
--msgstr "статус"
-+msgstr "состояние"
- 
- #: ../yumcommands.py:981
- msgid "repo name"
--msgstr "имя репозитория"
-+msgstr "репозиторий"
- 
- #: ../yumcommands.py:1018
- msgid "Display a helpful usage message"
--msgstr "Отобразить сообщение помощи"
-+msgstr "Отобразить подсказку к использованию"
- 
- #: ../yumcommands.py:1052
- #, python-format
-@@ -1661,7 +1715,7 @@ msgid ""
- msgstr ""
- "\n"
- "\n"
--"альтернативные названия:"
-+"альтернативные названия: "
- 
- #: ../yumcommands.py:1059
- msgid ""
-@@ -1671,23 +1725,23 @@ msgid ""
- msgstr ""
- "\n"
- "\n"
--"альтернативное название:"
-+"альтернативное название: "
- 
- #: ../yumcommands.py:1087
- msgid "Setting up Reinstall Process"
--msgstr "Настройка процесса переустановки"
-+msgstr "Подготовка к повторной установке"
- 
- #: ../yumcommands.py:1095
- msgid "reinstall a package"
--msgstr "Переустановка пакета"
-+msgstr "переустановка пакета"
- 
- #: ../yumcommands.py:1113
- msgid "Setting up Downgrade Process"
--msgstr "Настройка процесса возврата к предыдущей версии"
-+msgstr "Подготовка к откату версии"
- 
- #: ../yumcommands.py:1120
- msgid "downgrade a package"
--msgstr "Возврат к предыдущей версии пакета"
-+msgstr "откат к предыдущей версии пакета"
- 
- #: ../yumcommands.py:1134
- msgid "Display a version for the machine and/or available repos."
-@@ -1699,55 +1753,56 @@ msgstr " Группы версий Yum:"
- 
- #: ../yumcommands.py:1183
- msgid " Group   :"
--msgstr " Группа:"
-+msgstr " Коллекция   :"
- 
- #: ../yumcommands.py:1184
- msgid " Packages:"
--msgstr " Пакеты:"
-+msgstr " Пакеты      :"
- 
- #: ../yumcommands.py:1213
- msgid "Installed:"
--msgstr "Установлено: "
-+msgstr "Установлен(ы):"
- 
- #: ../yumcommands.py:1218
- msgid "Group-Installed:"
--msgstr "Группа установленных:"
-+msgstr "Установлены коллекции:"
- 
- #: ../yumcommands.py:1227
- msgid "Available:"
--msgstr "Доступно:"
-+msgstr "Доступен(ы):"
- 
- #: ../yumcommands.py:1233
- msgid "Group-Available:"
--msgstr "Группа доступных:"
-+msgstr "Доступны коллекции   :"
- 
- #: ../yumcommands.py:1272
- msgid "Display, or use, the transaction history"
--msgstr "Отображать или использовать историю транзакций"
-+msgstr "Отобразить (или использовать) журнал операций"
- 
- #: ../yumcommands.py:1300
- #, python-format
- msgid "Invalid history sub-command, use: %s."
--msgstr "Неверная субкоманда истории, используйте:%s."
-+msgstr "Неверная подкоманда журнала, используйте: %s."
- 
- #: ../yumcommands.py:1345
- msgid "Check for problems in the rpmdb"
- msgstr "Проверка проблем в базе данных RPM"
- 
- #: ../yummain.py:102
--msgid ""
--"Another app is currently holding the yum lock; waiting for it to exit..."
-+msgid "Another app is currently holding the yum lock; waiting for it to exit..."
- msgstr "Еще одно приложение, в настоящее время блокирует Yum. Подождите..."
- 
--#: ../yummain.py:130 ../yummain.py:169
-+#: ../yummain.py:130
-+#: ../yummain.py:169
- #, python-format
- msgid "Error: %s"
- msgstr "Ошибка: %s"
- 
--#: ../yummain.py:140 ../yummain.py:182
-+#: ../yummain.py:140
-+#: ../yummain.py:182
- #, python-format
- msgid "Unknown Error(s): Exit Code: %d:"
--msgstr "Неизвестная ошибка(ошибки): Код выхода:%d:"
-+msgstr "Неизвестная ошибка(ошибки): Код выхода: %d:"
- 
- #. Depsolve stage
- #: ../yummain.py:147
-@@ -1756,9 +1811,10 @@ msgstr "Разрешение зависимостей"
- 
- #: ../yummain.py:173
- msgid " You could try using --skip-broken to work around the problem"
--msgstr " Вы можете попробовать --skip-broken чтобы обойти проблему."
-+msgstr " Вы можете попробовать --skip-broken чтобы обойти проблему"
- 
--#: ../yummain.py:175 ../yummain.py:208
-+#: ../yummain.py:175
-+#: ../yummain.py:208
- msgid " You could try running: rpm -Va --nofiles --nodigest"
- msgstr " Вы можете попробовать запустить: rpm -Va --nofiles --nodigest"
- 
-@@ -1782,11 +1838,11 @@ msgstr ""
- 
- #: ../yum/depsolve.py:82
- msgid "doTsSetup() will go away in a future version of Yum.\n"
--msgstr "doTsSetup() будет устранён в следующей версии Yum\n"
-+msgstr "doTsSetup() будет устранен в следующей версии Yum\n"
- 
- #: ../yum/depsolve.py:97
- msgid "Setting up TransactionSets before config class is up"
--msgstr "Настройка набора транзакций до включения класса конфигурации"
-+msgstr "Составление списка действий до включения класса конфигурации"
- 
- #: ../yum/depsolve.py:148
- #, python-format
-@@ -1801,22 +1857,23 @@ msgstr "Поиск набора пакетов для зависимости: %s
- #: ../yum/depsolve.py:175
- #, python-format
- msgid "Potential match for %s from %s"
--msgstr "Потенциальное совпадение для %s из %s"
-+msgstr "Возможное совпадение для %s из %s"
- 
- #: ../yum/depsolve.py:183
- #, python-format
- msgid "Matched %s to require for %s"
--msgstr "%s подходит в качестве требования для %s"
-+msgstr "%s подходит как требуемый для %s"
- 
- #: ../yum/depsolve.py:225
- #, python-format
- msgid "Member: %s"
- msgstr "Член: %s"
- 
--#: ../yum/depsolve.py:239 ../yum/depsolve.py:754
-+#: ../yum/depsolve.py:239
-+#: ../yum/depsolve.py:754
- #, python-format
- msgid "%s converted to install"
--msgstr "%s сконвертировано для установки"
-+msgstr "%s преобразован для установки"
- 
- #: ../yum/depsolve.py:246
- #, python-format
-@@ -1850,7 +1907,7 @@ msgstr "Требуемая зависимость не является имен
- #: ../yum/depsolve.py:363
- #, python-format
- msgid "Potential Provider: %s"
--msgstr "Потенциальный поставщик:%s"
-+msgstr "Возможный поставщик: %s"
- 
- #: ../yum/depsolve.py:386
- #, python-format
-@@ -1870,8 +1927,7 @@ msgstr "TSINFO: %s пакет необходимый для %s был помеч
- #: ../yum/depsolve.py:407
- #, python-format
- msgid "TSINFO: Obsoleting %s with %s to resolve dep."
--msgstr ""
--"TSINFO: Замена устаревшего %s пакета пакетом %s чтобы разрешить зависимости."
-+msgstr "TSINFO: Замена устаревшего %s пакета пакетом %s чтобы разрешить зависимости."
- 
- #: ../yum/depsolve.py:410
- #, python-format
-@@ -1881,7 +1937,7 @@ msgstr "TSINFO: Обновление %s для разрешения зависи
- #: ../yum/depsolve.py:418
- #, python-format
- msgid "Cannot find an update path for dep for: %s"
--msgstr "Не удаётся найти путь обновления зависимости для: %s"
-+msgstr "Не удается найти путь обновления зависимости для: %s"
- 
- #: ../yum/depsolve.py:449
- #, python-format
-@@ -1897,19 +1953,17 @@ msgstr "Зависимый пакет %s уже установлен и буде
- #: ../yum/depsolve.py:507
- #, python-format
- msgid "Potential resolving package %s has newer instance in ts."
--msgstr ""
--"Пакет %s новой версии, потенциально разрешающий, находится в составе "
--"транзакции."
-+msgstr "Пакет %s в сценарии новее доступного"
- 
- #: ../yum/depsolve.py:518
- #, python-format
- msgid "Potential resolving package %s has newer instance installed."
--msgstr "Пакет %s ,потенциально разрешающий, установлен новой версии."
-+msgstr "Более новый пакет %s уже установлен в систему."
- 
- #: ../yum/depsolve.py:536
- #, python-format
- msgid "%s already in ts, skipping this one"
--msgstr "%s уже находится в наборе транзакций, пропуск"
-+msgstr "%s уже в списке к действию, пропускаем его"
- 
- #: ../yum/depsolve.py:578
- #, python-format
-@@ -1921,11 +1975,14 @@ msgstr "TSINFO: %s отмечен как обновление для %s"
- msgid "TSINFO: Marking %s as install for %s"
- msgstr "TSINFO: Отмечен %s чтобы установить %s"
- 
--#: ../yum/depsolve.py:690 ../yum/depsolve.py:781
-+#: ../yum/depsolve.py:690
-+#: ../yum/depsolve.py:781
- msgid "Success - empty transaction"
--msgstr "Успех - пустая транзакция"
-+msgstr "Успешно — пустой сценарий"
- 
--#: ../yum/depsolve.py:729 ../yum/depsolve.py:744
-+#: ../yum/depsolve.py:729
-+#: ../yum/depsolve.py:744
-+#, fuzzy
- msgid "Restarting Loop"
- msgstr "Перезапуск петли"
- 
-@@ -1940,7 +1997,7 @@ msgstr "%s из %s имеет проблемы с разрешением зав
- 
- #: ../yum/depsolve.py:782
- msgid "Success - deps resolved"
--msgstr "Успешно - зависимости разрешены"
-+msgstr "Успешно — зависимости разрешены"
- 
- #: ../yum/depsolve.py:796
- #, python-format
-@@ -1957,7 +2014,8 @@ msgstr "поиск %s требуется для %s"
- msgid "Running compare_providers() for %s"
- msgstr "Запуск compare_providers() для %s"
- 
--#: ../yum/depsolve.py:1117 ../yum/depsolve.py:1123
-+#: ../yum/depsolve.py:1117
-+#: ../yum/depsolve.py:1123
- #, python-format
- msgid "better arch in po %s"
- msgstr "Лучший архив в %s"
-@@ -1965,16 +2023,16 @@ msgstr "Лучший архив в %s"
- #: ../yum/depsolve.py:1218
- #, python-format
- msgid "%s obsoletes %s"
--msgstr "%s заменяет %s"
-+msgstr "%s исключает %s"
- 
- #: ../yum/depsolve.py:1230
--#, python-format
-+#, fuzzy, python-format
- msgid ""
- "archdist compared %s to %s on %s\n"
- "  Winner: %s"
- msgstr ""
- "archdist сравнение %s до %s в %s\n"
--"  Победитель:%s"
-+"  Победитель: %s"
- 
- #: ../yum/depsolve.py:1237
- #, python-format
-@@ -1984,7 +2042,7 @@ msgstr "общий источник RPM %s и %s"
- #: ../yum/depsolve.py:1241
- #, python-format
- msgid "base package %s is installed for %s"
--msgstr "базовый пакет %s установлен для %s."
-+msgstr "базовый пакет %s установлен для %s"
- 
- #: ../yum/depsolve.py:1247
- #, python-format
-@@ -1998,20 +2056,20 @@ msgstr "Лучший выбор: %s"
- 
- #: ../yum/__init__.py:192
- msgid "doConfigSetup() will go away in a future version of Yum.\n"
--msgstr "doConfigSetup() будет устранён в следующей версии Yum.\n"
-+msgstr "doConfigSetup() будет устранен в следующей версии Yum.\n"
- 
- #: ../yum/__init__.py:424
- #, python-format
- msgid "Repository %r is missing name in configuration, using id"
--msgstr "Хранилище %r  не имеет названия в конфигурации, используются ID"
-+msgstr "Репозиторий %r  не имеет названия в конфигурации, используется ID"
- 
- #: ../yum/__init__.py:462
- msgid "plugins already initialised"
--msgstr "плагин уже инициализирован"
-+msgstr "модули уже загружены"
- 
- #: ../yum/__init__.py:469
- msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
--msgstr "doRpmDBSetup() будет устранён в следующей версии Yum.\n"
-+msgstr "doRpmDBSetup() будет устранен в следующей версии Yum.\n"
- 
- #: ../yum/__init__.py:480
- msgid "Reading Local RPMDB"
-@@ -2019,11 +2077,11 @@ msgstr "Чтение локальной базы данных RPM"
- 
- #: ../yum/__init__.py:504
- msgid "doRepoSetup() will go away in a future version of Yum.\n"
--msgstr "doRepoSetup() будет устранён в следующей версии Yum.\n"
-+msgstr "doRepoSetup() будет устранен в следующей версии Yum.\n"
- 
- #: ../yum/__init__.py:524
- msgid "doSackSetup() will go away in a future version of Yum.\n"
--msgstr "doSackSetup() будет устранён в следующей версии Yum.\n"
-+msgstr "doSackSetup() будет устранен в следующей версии Yum.\n"
- 
- #: ../yum/__init__.py:554
- msgid "Setting up Package Sacks"
-@@ -2040,7 +2098,7 @@ msgstr "поэтому этот репозиторий не может быть
- 
- #: ../yum/__init__.py:605
- msgid "doUpdateSetup() will go away in a future version of Yum.\n"
--msgstr "doUpdateSetup() будет устранён в следующей версии Yum.\n"
-+msgstr "doUpdateSetup() будет устранен в следующей версии Yum.\n"
- 
- #: ../yum/__init__.py:617
- msgid "Building updates object"
-@@ -2048,39 +2106,39 @@ msgstr "Построение объекта обновлений"
- 
- #: ../yum/__init__.py:652
- msgid "doGroupSetup() will go away in a future version of Yum.\n"
--msgstr "doGroupSetup() будет устранён в следующей версии Yum.\n"
-+msgstr "doGroupSetup() будет устранен в следующей версии Yum.\n"
- 
- #: ../yum/__init__.py:677
- msgid "Getting group metadata"
--msgstr "Получение метаданных групп"
-+msgstr "Получение метаданных коллекции"
- 
- #: ../yum/__init__.py:703
- #, python-format
- msgid "Adding group file from repository: %s"
--msgstr "Добавление файла групп из репозитория: %s"
-+msgstr "Добавление файла коллекций из репозитория: %s"
- 
- #: ../yum/__init__.py:712
- #, python-format
- msgid "Failed to add groups file for repository: %s - %s"
--msgstr "Ошибка добавления файла групп для репозитория: %s - %s"
-+msgstr "Ошибка добавления файла коллекций для репозитория: %s — %s"
- 
- #: ../yum/__init__.py:718
- msgid "No Groups Available in any repository"
--msgstr "Нет доступных групп в любом репозитории"
-+msgstr "Ни в одном репозитории нет доступных коллекций"
- 
- #: ../yum/__init__.py:730
- msgid "Getting pkgtags metadata"
--msgstr "Загрузка метаданных меток пакета "
-+msgstr "Загрузка метаданных меток пакета"
- 
- #: ../yum/__init__.py:740
- #, python-format
- msgid "Adding tags from repository: %s"
--msgstr "Добавление меток с репозитория: %s"
-+msgstr "Добавление меток из репозитория: %s"
- 
- #: ../yum/__init__.py:749
- #, python-format
- msgid "Failed to add Pkg Tags for repository: %s - %s"
--msgstr "Ошибка добавление меток пакета для репозитория: %s - %s"
-+msgstr "Ошибка добавление меток пакета для репозитория: %s — %s"
- 
- #: ../yum/__init__.py:827
- msgid "Importing additional filelist information"
-@@ -2092,23 +2150,19 @@ msgid "The program %s%s%s is found in the yum-utils package."
- msgstr "Программа %s%s%s найдена в пакете yum-utils."
- 
- #: ../yum/__init__.py:849
--msgid ""
--"There are unfinished transactions remaining. You might consider running yum-"
--"complete-transaction first to finish them."
--msgstr ""
--"Присутствуют незавершённые транзакции. Вы можете запустить команду yum-"
--"complete-transaction для их завершения."
-+msgid "There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them."
-+msgstr "Остались незавершенные действия. Возможно, сначала следует выполнить yum-complete-transaction для их завершения."
- 
- #. Kind of hacky
- #: ../yum/__init__.py:922
--#, python-format
-+#, fuzzy, python-format
- msgid "Skip-broken round %i"
--msgstr "Раунд %i пропуская поврежденные"
-+msgstr "Пропуск сломанных, раунд %i"
- 
- #: ../yum/__init__.py:975
--#, python-format
-+#, fuzzy, python-format
- msgid "Skip-broken took %i rounds "
--msgstr "Раунд пропуская повреждённые прошло%i "
-+msgstr "Разрушено %i связей"
- 
- #: ../yum/__init__.py:976
- msgid ""
-@@ -2125,27 +2179,26 @@ msgstr "    %s из %s"
- 
- #: ../yum/__init__.py:1121
- msgid "Warning: RPMDB altered outside of yum."
--msgstr "ПРЕДУПРЕЖДЕНИЕ: база данных RPM была изменена вне Yum."
-+msgstr "ПРЕДУПРЕЖДЕНИЕ: база данных RPM была изменена вне yum."
- 
- #: ../yum/__init__.py:1126
-+#, fuzzy
- msgid "missing requires"
- msgstr "не требуется"
- 
- #: ../yum/__init__.py:1127
-+#, fuzzy
- msgid "installed conflict"
- msgstr "установлен в конфликте"
- 
- #: ../yum/__init__.py:1180
--msgid ""
--"Warning: scriptlet or other non-fatal errors occurred during transaction."
--msgstr ""
--"Внимание: во время транзакции была вызвана ошибка сценария или произошла\n"
--" иная не критичная ошибка"
-+msgid "Warning: scriptlet or other non-fatal errors occurred during transaction."
-+msgstr "Внимание: в ходе операции возникли некоторые некритические ошибки."
- 
- #: ../yum/__init__.py:1198
- #, python-format
- msgid "Failed to remove transaction file %s"
--msgstr "Невозможно удалить файл транзакции %s"
-+msgstr "Невозможно удалить файл сценария %s"
- 
- #. maybe a file log here, too
- #. but raising an exception is not going to do any good
-@@ -2159,7 +2212,7 @@ msgstr "%s должен был быть установлен, но не был 
- #: ../yum/__init__.py:1266
- #, python-format
- msgid "%s was supposed to be removed but is not!"
--msgstr "%s должен был быть удалён, но не был удалён!"
-+msgstr "%s должен был быть удален, но не был удален!"
- 
- #. Whoa. What the heck happened?
- #: ../yum/__init__.py:1386
-@@ -2177,14 +2230,11 @@ msgstr "Заблокировано %s: другая копия запущена
- #: ../yum/__init__.py:1425
- #, python-format
- msgid "Could not create lock at %s: %s "
--msgstr "Вы не можете создать блокировку %s: %s"
-+msgstr "Вы не можете создать блокировку %s: %s "
- 
- #: ../yum/__init__.py:1470
--msgid ""
--"Package does not match intended download. Suggestion: run yum clean metadata"
--msgstr ""
--"Пакет не соответствует предназначенному для загрузки. Предложение: "
--"Пожалуйста, запустите yum clean metadata"
-+msgid "Package does not match intended download. Suggestion: run yum clean metadata"
-+msgstr "Пакет не соответствует предназначенному для загрузки. Предложение: запустите yum clean metadata"
- 
- #: ../yum/__init__.py:1486
- msgid "Could not perform checksum"
-@@ -2199,7 +2249,8 @@ msgstr "Пакет не совпадает с контрольной суммо
- msgid "package fails checksum but caching is enabled for %s"
- msgstr "проверка контрольной суммы неудачна, но кэширование включено для %s"
- 
--#: ../yum/__init__.py:1534 ../yum/__init__.py:1563
-+#: ../yum/__init__.py:1534
-+#: ../yum/__init__.py:1563
- #, python-format
- msgid "using local copy of %s"
- msgstr "использование локальной копии %s"
-@@ -2217,15 +2268,12 @@ msgstr ""
- 
- #: ../yum/__init__.py:1624
- msgid "Header is not complete."
--msgstr "Заголовок не готов."
-+msgstr "Заголовок не полный."
- 
- #: ../yum/__init__.py:1661
- #, python-format
--msgid ""
--"Header not in local cache and caching-only mode enabled. Cannot download %s"
--msgstr ""
--"Заголовок не в локальном кэше. Включён режим только из кэша. Невозможно "
--"загрузить %s"
-+msgid "Header not in local cache and caching-only mode enabled. Cannot download %s"
-+msgstr "Заголовок не в локальном кэше. Включен режим только из кэша. Невозможно загрузить %s"
- 
- #: ../yum/__init__.py:1716
- #, python-format
-@@ -2240,7 +2288,7 @@ msgstr "Проблема открытия пакета %s"
- #: ../yum/__init__.py:1728
- #, python-format
- msgid "Public key for %s is not trusted"
--msgstr "Публичный ключ для %s не подлежит доверию"
-+msgstr "Публичный ключ для %s не заслуживает доверия"
- 
- #: ../yum/__init__.py:1732
- #, python-format
-@@ -2260,7 +2308,7 @@ msgstr "%s удален(ы)"
- #: ../yum/__init__.py:1820
- #, python-format
- msgid "Cannot remove %s file %s"
--msgstr "Невозможно удалить %s  файл %s"
-+msgstr "Невозможно удалить %s файл %s"
- 
- #: ../yum/__init__.py:1824
- #, python-format
-@@ -2283,12 +2331,8 @@ msgid "Nothing matches %s.%s %s:%s-%s from update"
- msgstr "Совпадений не найдено %s.%s %s:%s-%s из обновлений"
- 
- #: ../yum/__init__.py:2180
--msgid ""
--"searchPackages() will go away in a future version of "
--"Yum.                      Use searchGenerator() instead. \n"
--msgstr ""
--"searchPackages() будет убрано в следующей версии Yum.   Используйте "
--"searchGenerator() взамен. \n"
-+msgid "searchPackages() will go away in a future version of Yum.                      Use searchGenerator() instead. \n"
-+msgstr "searchPackages() будет убрано в следующей версии Yum.                          Используйте searchGenerator() взамен.  \n"
- 
- #: ../yum/__init__.py:2219
- #, python-format
-@@ -2305,6 +2349,7 @@ msgid "searching in file entries"
- msgstr "поиск среди файлов"
- 
- #: ../yum/__init__.py:2242
-+#, fuzzy
- msgid "searching in provides entries"
- msgstr "Поиск среди предоставлений"
- 
-@@ -2315,24 +2360,29 @@ msgstr "Результат совпадений: %s"
- 
- #: ../yum/__init__.py:2324
- msgid "No group data available for configured repositories"
--msgstr "Нет доступных данных групп  для настроеных репозиториев"
--
--#: ../yum/__init__.py:2355 ../yum/__init__.py:2374 ../yum/__init__.py:2405
--#: ../yum/__init__.py:2411 ../yum/__init__.py:2493 ../yum/__init__.py:2497
-+msgstr "Для настроенных репозиториев данных коллекций нет"
-+
-+#: ../yum/__init__.py:2355
-+#: ../yum/__init__.py:2374
-+#: ../yum/__init__.py:2405
-+#: ../yum/__init__.py:2411
-+#: ../yum/__init__.py:2493
-+#: ../yum/__init__.py:2497
- #: ../yum/__init__.py:2814
- #, python-format
- msgid "No Group named %s exists"
--msgstr "Группы с именем %s не существует"
-+msgstr "Коллекции с названием %s не существует"
- 
--#: ../yum/__init__.py:2386 ../yum/__init__.py:2513
-+#: ../yum/__init__.py:2386
-+#: ../yum/__init__.py:2513
- #, python-format
- msgid "package %s was not marked in group %s"
--msgstr "пакет %s не отмечен в группе %s"
-+msgstr "пакет %s не отмечен в коллекции %s"
- 
- #: ../yum/__init__.py:2433
- #, python-format
- msgid "Adding package %s from group %s"
--msgstr "Добавление пакета %s из группы %s"
-+msgstr "Добавление пакета %s из коллекции %s"
- 
- #: ../yum/__init__.py:2437
- #, python-format
-@@ -2349,16 +2399,19 @@ msgstr "Кортеж пакетов %s не найден в наборе пак
- msgid "Package tuple %s could not be found in rpmdb"
- msgstr "Кортеж пакетов %s не найден в базе RPM"
- 
--#: ../yum/__init__.py:2614 ../yum/__init__.py:2664
-+#: ../yum/__init__.py:2614
-+#: ../yum/__init__.py:2664
- msgid "Invalid version flag"
--msgstr "Hеверная версия флага %s"
-+msgstr "Неверная версия флага"
- 
--#: ../yum/__init__.py:2634 ../yum/__init__.py:2639
-+#: ../yum/__init__.py:2634
-+#: ../yum/__init__.py:2639
- #, python-format
- msgid "No Package found for %s"
- msgstr "Пакет %s не найден"
- 
- #: ../yum/__init__.py:2855
-+#, fuzzy
- msgid "Package Object was not a package object instance"
- msgstr "Объект пакета не являлся экземпляром объекта пакета"
- 
-@@ -2366,12 +2419,15 @@ msgstr "Объект пакета не являлся экземпляром о
- msgid "Nothing specified to install"
- msgstr "Ничего не отмечено для установки"
- 
--#: ../yum/__init__.py:2875 ../yum/__init__.py:3652
-+#: ../yum/__init__.py:2875
-+#: ../yum/__init__.py:3652
- #, python-format
- msgid "Checking for virtual provide or file-provide for %s"
- msgstr "Проверка виртуального провайдера или файлового провайдера для %s"
- 
--#: ../yum/__init__.py:2881 ../yum/__init__.py:3197 ../yum/__init__.py:3365
-+#: ../yum/__init__.py:2881
-+#: ../yum/__init__.py:3197
-+#: ../yum/__init__.py:3365
- #: ../yum/__init__.py:3658
- #, python-format
- msgid "No Match for argument: %s"
-@@ -2389,17 +2445,17 @@ msgstr "Нет доступных для установки пакетов"
- #: ../yum/__init__.py:2972
- #, python-format
- msgid "Package: %s  - already in transaction set"
--msgstr "Пакет: %s - уже включён в транзакцию"
-+msgstr "Пакет: %s — уже в списке к действию"
- 
- #: ../yum/__init__.py:2998
- #, python-format
- msgid "Package %s is obsoleted by %s which is already installed"
--msgstr "Пакет %s был заменён на %s и он уже установлен"
-+msgstr "Пакет %s недействителен из-за установленного %s"
- 
- #: ../yum/__init__.py:3001
- #, python-format
- msgid "Package %s is obsoleted by %s, trying to install %s instead"
--msgstr "Пакет %s был заменён на %s, попытка установки %s взамен"
-+msgstr "Пакет %s недействителен из-за %s, попытка установки %s взамен"
- 
- #: ../yum/__init__.py:3009
- #, python-format
-@@ -2409,20 +2465,23 @@ msgstr "Пакет %s уже установлен, и это последняя
- #: ../yum/__init__.py:3023
- #, python-format
- msgid "Package matching %s already installed. Checking for update."
--msgstr "Пакет %s уже установлен.Проверка для обновления."
-+msgstr "Пакет %s уже установлен. Проверка обновлений."
- 
- #. update everything (the easy case)
- #: ../yum/__init__.py:3126
- msgid "Updating Everything"
- msgstr "Полное обновление"
- 
--#: ../yum/__init__.py:3147 ../yum/__init__.py:3262 ../yum/__init__.py:3289
-+#: ../yum/__init__.py:3147
-+#: ../yum/__init__.py:3262
-+#: ../yum/__init__.py:3289
- #: ../yum/__init__.py:3315
- #, python-format
- msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
--msgstr "Пакет не обновляется, уже заменён: %s.%s %s:%s-%s"
-+msgstr "Устаревший и уже необновляемый пакет: %s.%s %s:%s-%s"
- 
--#: ../yum/__init__.py:3182 ../yum/__init__.py:3362
-+#: ../yum/__init__.py:3182
-+#: ../yum/__init__.py:3362
- #, python-format
- msgid "%s"
- msgstr "%s"
-@@ -2430,17 +2489,18 @@ msgstr "%s"
- #: ../yum/__init__.py:3253
- #, python-format
- msgid "Package is already obsoleted: %s.%s %s:%s-%s"
--msgstr "Пакет был заменён:%s.%s %s:%s-%s"
-+msgstr "Пакет уже устарел: %s.%s %s:%s-%s"
- 
- #: ../yum/__init__.py:3284
- #, python-format
- msgid "Not Updating Package that is obsoleted: %s"
--msgstr "Пакет не обновляется, заменён: %s"
-+msgstr "Устаревший необновляемый пакет: %s"
- 
--#: ../yum/__init__.py:3293 ../yum/__init__.py:3319
-+#: ../yum/__init__.py:3293
-+#: ../yum/__init__.py:3319
- #, python-format
- msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
--msgstr "Уже обновленный пакет не обновляется: %s.%s %s:%s-%s"
-+msgstr "Необновленный пакет, который был обновлен ранее: %s.%s %s:%s-%s"
- 
- #: ../yum/__init__.py:3378
- msgid "No package matched to remove"
-@@ -2451,30 +2511,31 @@ msgstr "Нет пакетов для удаления"
- msgid "Cannot open: %s. Skipping."
- msgstr "Невозможно открыть: %s. Пропуск."
- 
--#: ../yum/__init__.py:3415 ../yum/__init__.py:3514 ../yum/__init__.py:3598
-+#: ../yum/__init__.py:3415
-+#: ../yum/__init__.py:3514
-+#: ../yum/__init__.py:3598
- #, python-format
- msgid "Examining %s: %s"
- msgstr "Проверка %s: %s"
- 
--#: ../yum/__init__.py:3423 ../yum/__init__.py:3517 ../yum/__init__.py:3601
-+#: ../yum/__init__.py:3423
-+#: ../yum/__init__.py:3517
-+#: ../yum/__init__.py:3601
- #, python-format
- msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
--msgstr ""
--"Невозможно добавить пакет %s в транзакцию. Несовместимая архитектура: %s"
-+msgstr "Невозможно добавить пакет %s в список действий. Несовместимая архитектура: %s"
- 
- #: ../yum/__init__.py:3431
- #, python-format
--msgid ""
--"Package %s not installed, cannot update it. Run yum install to install it "
--"instead."
--msgstr ""
--"Пакет %s не установлен, невозможно обновить его. Запустите yum для установки "
--"заместо обновления."
-+msgid "Package %s not installed, cannot update it. Run yum install to install it instead."
-+msgstr "Пакет %s не установлен, невозможно обновить его. Запустите yum install для его установки."
- 
--#: ../yum/__init__.py:3460 ../yum/__init__.py:3522 ../yum/__init__.py:3606
-+#: ../yum/__init__.py:3460
-+#: ../yum/__init__.py:3522
-+#: ../yum/__init__.py:3606
- #, python-format
- msgid "Excluding %s"
--msgstr "Удаление %s"
-+msgstr "Исключаем %s"
- 
- #: ../yum/__init__.py:3465
- #, python-format
-@@ -2489,9 +2550,10 @@ msgstr "%s отмечен как обновление для %s"
- #: ../yum/__init__.py:3478
- #, python-format
- msgid "%s: does not update installed package."
--msgstr "%s: не обновляет установленный пакет"
-+msgstr "%s: не обновляет установленный пакет."
- 
--#: ../yum/__init__.py:3511 ../yum/__init__.py:3595
-+#: ../yum/__init__.py:3511
-+#: ../yum/__init__.py:3595
- #, python-format
- msgid "Cannot open file: %s. Skipping."
- msgstr "Невозможно открыть файл %s. Пропуск."
-@@ -2500,7 +2562,8 @@ msgstr "Невозможно открыть файл %s. Пропуск."
- msgid "Problem in reinstall: no package matched to remove"
- msgstr "Проблема при переустановке: не найден пакет для удаления"
- 
--#: ../yum/__init__.py:3554 ../yum/__init__.py:3686
-+#: ../yum/__init__.py:3554
-+#: ../yum/__init__.py:3686
- #, python-format
- msgid "Package %s is allowed multiple installs, skipping"
- msgstr "Пакет %s может быть повторно установлен, пропуск"
-@@ -2512,7 +2575,7 @@ msgstr "Проблема при переустановке: пакет %s не 
- 
- #: ../yum/__init__.py:3678
- msgid "No package(s) available to downgrade"
--msgstr "Нет доступных пакетов для перехода к предыдущей версии"
-+msgstr "Пакеты для отката версии отсутствуют"
- 
- #: ../yum/__init__.py:3731
- #, python-format
-@@ -2522,12 +2585,13 @@ msgstr "Пакеты недоступны: %s"
- #: ../yum/__init__.py:3738
- #, python-format
- msgid "Only Upgrade available on package: %s"
--msgstr "Только переход к следующей версии доступен для пакета: : %s"
-+msgstr "Только переход к следующей версии доступен для пакета: %s"
- 
--#: ../yum/__init__.py:3808 ../yum/__init__.py:3845
-+#: ../yum/__init__.py:3808
-+#: ../yum/__init__.py:3845
- #, python-format
- msgid "Failed to downgrade: %s"
--msgstr "Ошибка возврата к предыдущей версии: %s"
-+msgstr "Ошибка отката версии: %s"
- 
- #: ../yum/__init__.py:3877
- #, python-format
-@@ -2554,7 +2618,8 @@ msgid "GPG key at %s (0x%s) is already installed"
- msgstr "GPG ключ %s (0x%s) уже установлен"
- 
- #. Try installing/updating GPG key
--#: ../yum/__init__.py:3949 ../yum/__init__.py:4011
-+#: ../yum/__init__.py:3949
-+#: ../yum/__init__.py:4011
- #, python-format
- msgid "Importing GPG key 0x%s \"%s\" from %s"
- msgstr "Импорт GPG ключа 0x%s \"%s\" из %s"
-@@ -2568,21 +2633,20 @@ msgstr "Не установлен ключ"
- msgid "Key import failed (code %d)"
- msgstr "Неудача импорта ключа (code %d)"
- 
--#: ../yum/__init__.py:3973 ../yum/__init__.py:4032
-+#: ../yum/__init__.py:3973
-+#: ../yum/__init__.py:4032
- msgid "Key imported successfully"
- msgstr "Импорт ключа успешно завершен"
- 
--#: ../yum/__init__.py:3978 ../yum/__init__.py:4037
-+#: ../yum/__init__.py:3978
-+#: ../yum/__init__.py:4037
- #, 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 ""
--"GPG ключи включены для репозитория \"%s\", но они не является правильными "
--"для данного пакета.\n"
--"Пожалуйста, проверьте правильно ли настроены URL ключи для данного "
--"репозитория."
-+"GPG ключи включены для репозитория \"%s\", но они не является правильными для данного пакета.\n"
-+"Пожалуйста, проверьте правильно ли настроены URL ключей для данного репозитория."
- 
- #: ../yum/__init__.py:3987
- msgid "Import of key(s) didn't help, wrong key(s)?"
-@@ -2600,11 +2664,11 @@ msgstr "Ключ для репозитория %s не установлен."
- 
- #: ../yum/__init__.py:4031
- msgid "Key import failed"
--msgstr "Импорт ключа не успешен"
-+msgstr "Импорт ключа неудачен"
- 
- #: ../yum/__init__.py:4157
- msgid "Unable to find a suitable mirror."
--msgstr "Не удаётся найти подходящее зеркало"
-+msgstr "Не удается найти подходящее зеркало"
- 
- #: ../yum/__init__.py:4159
- msgid "Errors were encountered while downloading packages."
-@@ -2617,56 +2681,54 @@ msgstr "Пожалуйста, сообщите об этой ошибке в %s"
- 
- #: ../yum/__init__.py:4233
- msgid "Test Transaction Errors: "
--msgstr "Ошибки теста транзакции:"
-+msgstr "Ошибки проверки сценария:"
- 
- #: ../yum/__init__.py:4334
- #, python-format
- msgid "Could not set cachedir: %s"
--msgstr "Невозможно установить директорию кэша: %s"
-+msgstr "Невозможно задать кэш-папку: %s"
- 
- #. Mostly copied from YumOutput._outKeyValFill()
- #: ../yum/plugins.py:202
- msgid "Loaded plugins: "
--msgstr "Загруженные плагины:"
-+msgstr "Загружены модули: "
- 
--#: ../yum/plugins.py:216 ../yum/plugins.py:222
-+#: ../yum/plugins.py:216
-+#: ../yum/plugins.py:222
- #, python-format
- msgid "No plugin match for: %s"
--msgstr "Нет плагина: %s"
-+msgstr "Нет модуля: %s"
- 
- #: ../yum/plugins.py:252
- #, python-format
- msgid "Not loading \"%s\" plugin, as it is disabled"
--msgstr "Плагин \"%s\" не был загружен, поскольку он отключен"
-+msgstr "Модуль \"%s\" не был загружен, поскольку отключен"
- 
- #. Give full backtrace:
- #: ../yum/plugins.py:264
- #, python-format
- msgid "Plugin \"%s\" can't be imported"
--msgstr "Невозможен импорт плагина \"%s\""
-+msgstr "Невозможен импорт модуля \"%s\""
- 
- #: ../yum/plugins.py:271
- #, python-format
- msgid "Plugin \"%s\" doesn't specify required API version"
--msgstr "Плагин \"%s\" не указывает необходимую версию API"
-+msgstr "Модулем \"%s\" не указана требуемая версия API"
- 
- #: ../yum/plugins.py:276
- #, python-format
- msgid "Plugin \"%s\" requires API %s. Supported API is %s."
--msgstr "Плагин \"%s\" требует API %s. Поддерживаемый API %s."
-+msgstr "Модуль \"%s\" требует API %s. Поддерживаемая API — %s."
- 
- #: ../yum/plugins.py:309
- #, python-format
- msgid "Loading \"%s\" plugin"
--msgstr "Загрузка \"%s\" плагина"
-+msgstr "Загрузка модуля \"%s\""
- 
- #: ../yum/plugins.py:316
- #, python-format
--msgid ""
--"Two or more plugins with the name \"%s\" exist in the plugin search path"
--msgstr ""
--"Найдено два или более плагинов с названием \"%s\" в директории поиска "
--"плагинов"
-+msgid "Two or more plugins with the name \"%s\" exist in the plugin search path"
-+msgstr "В каталоге модулей обнаружено два или более с названием \"%s\""
- 
- #: ../yum/plugins.py:336
- #, python-format
-@@ -2678,13 +2740,14 @@ msgstr "Конфигурационный файл %s не найден"
- #: ../yum/plugins.py:339
- #, python-format
- msgid "Unable to find configuration file for plugin %s"
--msgstr "Невозможно найти конфигурационный файл для плагина %s"
-+msgstr "Не найден файл настройки модуля %s"
- 
- #: ../yum/plugins.py:501
- msgid "registration of commands not supported"
- msgstr "регистрация команд не поддерживается"
- 
- #: ../yum/rpmsack.py:102
-+#, fuzzy
- msgid "has missing requires of"
- msgstr "не пройдены требования"
- 
-@@ -2713,45 +2776,40 @@ msgstr "Контрольная сумма md5 пакета %s не совпад
- 
- #: ../rpmUtils/oldUtils.py:151
- msgid "Could not open RPM database for reading. Perhaps it is already in use?"
--msgstr ""
--"Невозможно открыть базу RPM для чтения. Возможно база уже используется."
-+msgstr "Невозможно открыть базу RPM для чтения. Возможно база уже используется."
- 
- #: ../rpmUtils/oldUtils.py:183
- msgid "Got an empty Header, something has gone wrong"
- msgstr "Получен пустой заголовок, что-то не так"
- 
--#: ../rpmUtils/oldUtils.py:253 ../rpmUtils/oldUtils.py:260
--#: ../rpmUtils/oldUtils.py:263 ../rpmUtils/oldUtils.py:266
-+#: ../rpmUtils/oldUtils.py:253
-+#: ../rpmUtils/oldUtils.py:260
-+#: ../rpmUtils/oldUtils.py:263
-+#: ../rpmUtils/oldUtils.py:266
- #, python-format
- msgid "Damaged Header %s"
--msgstr "Повреждённый заголовок %s"
-+msgstr "Поврежденный заголовок %s"
- 
- #: ../rpmUtils/oldUtils.py:281
- #, python-format
- msgid "Error opening rpm %s - error %s"
--msgstr "Невозможно открыть пакет %s - ошибка %s"
-+msgstr "Невозможно открыть пакет %s — ошибка %s"
- 
--#, fuzzy
- #~ msgid "Parsing package install arguments"
- #~ msgstr "Ошибка при разборе параметров командной строки: %s"
- 
--#, fuzzy
- #~ msgid "Reducing %s to included packages only"
- #~ msgstr "Поиск устаревших пакетов"
- 
--#, fuzzy
- #~ msgid "Keeping included package %s"
- #~ msgstr "Поиск обновленных пакетов"
- 
--#, fuzzy
- #~ msgid "Removing unmatched package %s"
- #~ msgstr "Поиск обновленных пакетов"
- 
--#, fuzzy
- #~ msgid "Package %s conflicts with %s."
- #~ msgstr "зависимости: пакет %s конфликтует с %s"
- 
--#, fuzzy
- #~ msgid ""
- #~ "Description:\n"
- #~ "%s"
-@@ -2780,8 +2838,7 @@ msgstr "Невозможно открыть пакет %s - ошибка %s"
- #~ "   SRC: %d"
- 
- #~ msgid "Error restoring the backup of lilo.conf  The backup was:\n"
--#~ msgstr ""
--#~ "Ошибка восстановления резервной копии lilo.conf. Резервная копия была:\n"
-+#~ msgstr "Ошибка восстановления резервной копии lilo.conf. Резервная копия была:\n"
- 
- #~ msgid "Looking in available packages for a providing package"
- #~ msgstr "Просмотр доступных пакетов предоставляющих пакет"
-@@ -2795,12 +2852,8 @@ msgstr "Невозможно открыть пакет %s - ошибка %s"
- #~ msgid "Need a provides to match"
- #~ msgstr "Необходим еще один параметр"
- 
--#~ msgid ""
--#~ "lilo options that are not supported by yum are used in the default lilo."
--#~ "conf. This file will not be modified. The options include:\n"
--#~ msgstr ""
--#~ "параметры lilo не поддерживаются yum. Будет использованы параметры из "
--#~ "lilo.conf. Файл lilo.conf останется неизмеренным.  Параметры включают:\n"
-+#~ msgid "lilo options that are not supported by yum are used in the default lilo.conf. This file will not be modified. The options include:\n"
-+#~ msgstr "параметры lilo не поддерживаются yum. Будет использованы параметры из lilo.conf. Файл lilo.conf останется неизмеренным.  Параметры включают:\n"
- 
- #~ msgid "Error getting file %s"
- #~ msgstr "Ошибка получения файла: %s"
-@@ -2853,8 +2906,7 @@ msgstr "Невозможно открыть пакет %s - ошибка %s"
- #~ msgid "Cleaning packages and old headers"
- #~ msgstr "Удаление пакетов и старых заголовков"
- 
--#~ msgid ""
--#~ "Cannot download %s in caching only mode or when running as non-root user."
-+#~ msgid "Cannot download %s in caching only mode or when running as non-root user."
- #~ msgstr "Невозможно получить %s используя кэш или не от пользователя root."
- 
- #~ msgid ""
-@@ -2961,18 +3013,14 @@ msgstr "Невозможно открыть пакет %s - ошибка %s"
- #~ msgid "Putting back old headers"
- #~ msgstr "Возврат старых заголовков"
- 
--#~ msgid ""
--#~ "Error: You may need to disable gpg checking to install this package\n"
--#~ msgstr ""
--#~ "Ошибка: Возможно необходимо отключить проверку GPG для установки пакета\n"
-+#~ msgid "Error: You may need to disable gpg checking to install this package\n"
-+#~ msgstr "Ошибка: Возможно необходимо отключить проверку GPG для установки пакета\n"
- 
- #~ msgid "Options Error: no commands found"
- #~ msgstr "Ошибка опций: команда не найдена"
- 
- #~ msgid "You appear to have insufficient disk space to handle these packages"
--#~ msgstr ""
--#~ "Не найдено достаточно дискового пространства для выполнения действий над "
--#~ "пакетами"
-+#~ msgstr "Не найдено достаточно дискового пространства для выполнения действий над пакетами"
- 
- #~ msgid "Unable to run grubby correctly: the message was:\n"
- #~ msgstr "Hевозможно запустить grubby:\n"
-@@ -2993,20 +3041,15 @@ msgstr "Невозможно открыть пакет %s - ошибка %s"
- #~ msgstr "Необходимо указать список пакетов для установки"
- 
- #~ msgid "using ftp, http[s], removable or file for servers, Aborting - %s"
--#~ msgstr ""
--#~ "Используйте только протоколы ftp, http[s], removable или file. Завершение "
--#~ "работы - %s"
-+#~ msgstr "Используйте только протоколы ftp, http[s], removable или file. Завершение работы - %s"
- 
- #~ msgid "Insufficient server config - no servers found. Aborting."
--#~ msgstr ""
--#~ "Не найден файл настроек сервера - репозиторий не найден. Завершение."
-+#~ msgstr "Не найден файл настроек сервера - репозиторий не найден. Завершение."
- 
- #~ msgid ""
- #~ "\n"
--#~ "    Usage:  yum [options] <update | upgrade | install | info | remove | "
--#~ "list |\n"
--#~ "            clean | provides | search | check-update | groupinstall | "
--#~ "groupupdate |\n"
-+#~ "    Usage:  yum [options] <update | upgrade | install | info | remove | list |\n"
-+#~ "            clean | provides | search | check-update | groupinstall | groupupdate |\n"
- #~ "            grouplist >\n"
- #~ "                \n"
- #~ "         Options:\n"
-@@ -3015,8 +3058,7 @@ msgstr "Невозможно открыть пакет %s - ошибка %s"
- #~ "          -d [debug level] - set the debugging level\n"
- #~ "          -y answer yes to all questions\n"
- #~ "          -t be tolerant about errors in package commands\n"
--#~ "          -R [time in minutes] - set the max amount of time to randomly "
--#~ "run in.\n"
-+#~ "          -R [time in minutes] - set the max amount of time to randomly run in.\n"
- #~ "          -C run from cache only - do not update the cache\n"
- #~ "          --installroot=[path] - set the install root (default '/')\n"
- #~ "          --version - output the version of yum\n"
-@@ -3024,10 +3066,8 @@ msgstr "Невозможно открыть пакет %s - ошибка %s"
- #~ "    "
- #~ msgstr ""
- #~ "\n"
--#~ "    Usage:  yum [options] <update | upgrade | install | info | remove | "
--#~ "list |\n"
--#~ "            clean | provides |search | check-update | groupinstall | "
--#~ "groupupdate |\n"
-+#~ "    Usage:  yum [options] <update | upgrade | install | info | remove | list |\n"
-+#~ "            clean | provides |search | check-update | groupinstall | groupupdate |\n"
- #~ "            grouplist >\n"
- #~ "                \n"
- #~ "         Options:\n"
-@@ -3038,8 +3078,7 @@ msgstr "Невозможно открыть пакет %s - ошибка %s"
- #~ "          -t пропускать ошибки при установке пакетов\n"
- #~ "          -R [time in minutes] - установить время случайной задержки\n"
- #~ "          -C работать только с кэшем, не обновляя его\n"
--#~ "          --installroot=[path] - установить install root (по умолчанию "
--#~ "'/')\n"
-+#~ "          --installroot=[path] - установить install root (по умолчанию '/')\n"
- #~ "          --version - показать версию yum\n"
- #~ "          -h, --help - показать это сообщение\n"
- #~ "    "
-@@ -3076,8 +3115,7 @@ msgstr "Невозможно открыть пакет %s - ошибка %s"
- #~ msgstr "Ошибка установки нового загрузчика: \n"
- 
- #~ msgid "Error: Could not find the GPG Key necessary to validate pkg %s"
--#~ msgstr ""
--#~ "Ошибка: Невозможно найти GPG ключ необходимый для проверки пакета %s"
-+#~ msgstr "Ошибка: Невозможно найти GPG ключ необходимый для проверки пакета %s"
- 
- #~ msgid "No actions to take"
- #~ msgstr "Hикаких действий не нужно"
-@@ -3098,8 +3136,7 @@ msgstr "Невозможно открыть пакет %s - ошибка %s"
- #~ msgstr "   "
- 
- #~ msgid "Error: Cannot find baseurl or name for server '%s'. Skipping"
--#~ msgstr ""
--#~ "Ошибка: Невозможно определить URL или имя для сервера '%s'. Пропущено"
-+#~ msgstr "Ошибка: Невозможно определить URL или имя для сервера '%s'. Пропущено"
- 
- #~ msgid "Odd header %s suddenly disappeared"
- #~ msgstr "Непарный заголовок %s внезапно исчез"
-@@ -3122,12 +3159,8 @@ msgstr "Невозможно открыть пакет %s - ошибка %s"
- #~ msgid "Exiting."
- #~ msgstr "Завершение."
- 
--#~ msgid ""
--#~ "asking for package %s.%s - does not exist in nevral - bailing out - check "
--#~ "rpmdb for errors"
--#~ msgstr ""
--#~ "Запрос на пакет %s.%s - не существует в nevral - выкинут - проверьте "
--#~ "ошибки в rpmdb"
-+#~ msgid "asking for package %s.%s - does not exist in nevral - bailing out - check rpmdb for errors"
-+#~ msgstr "Запрос на пакет %s.%s - не существует в nevral - выкинут - проверьте ошибки в rpmdb"
- 
- #~ msgid "Lilo found - adding kernel to lilo and making it the default"
- #~ msgstr "Найден Lilo - новое ядро будет загружено по умолчанию"
-@@ -3146,8 +3179,7 @@ msgstr "Невозможно открыть пакет %s - ошибка %s"
- 
- #~ msgid ""
- #~ "Usage:\n"
--#~ "yum-arch [-v] [-z] [-l] [-c] [-n] [-d] [-q] [-vv] (path of dir where "
--#~ "headers/ should/does live)\n"
-+#~ "yum-arch [-v] [-z] [-l] [-c] [-n] [-d] [-q] [-vv] (path of dir where headers/ should/does live)\n"
- #~ "   -d  = check dependencies and conflicts in tree\n"
- #~ "   -v  = more verbose output\n"
- #~ "   -vv = even more verbose output\n"
-@@ -3164,10 +3196,8 @@ msgstr "Невозможно открыть пакет %s - ошибка %s"
- #~ "         -v  = выводить отладочную информацию\n"
- #~ "         -vv = еще больше отладочной информации\n"
- #~ "         -n  = не создавать заголовков\n"
--#~ "         -c  = проверять пакеты с помощью gpg и md5 - невозможно "
--#~ "использовать с -n\n"
--#~ "         -z  = сжимать заголовки с помощью алгоритма gzip [по умолчанию "
--#~ "включено]\n"
-+#~ "         -c  = проверять пакеты с помощью gpg и md5 - невозможно использовать с -n\n"
-+#~ "         -z  = сжимать заголовки с помощью алгоритма gzip [по умолчанию включено]\n"
- #~ "         -s  = создавать заголовки для src пакетов\n"
- #~ "         -l  = разрешить использование символических ссылок\n"
- #~ "         -q  = \"молчаливый\" режим"
-@@ -3211,14 +3241,11 @@ msgstr "Невозможно открыть пакет %s - ошибка %s"
- #~ msgid "Damaged RPM %s, removing."
- #~ msgstr "Поврежденный пакет %s, удаление."
- 
--#~ msgid ""
--#~ "Bad Header for pkg %s.%s trying to get headers for the nevral - exiting"
-+#~ msgid "Bad Header for pkg %s.%s trying to get headers for the nevral - exiting"
- #~ msgstr "Поврежден заголовок пакет %s.%s завершает работу"
- 
--#~ msgid ""
--#~ "Error: You may also check that you have the correct GPG keys installed"
--#~ msgstr ""
--#~ "Ошибка: Необходимо убедиться в том что вы имеете подходящий gpg ключ"
-+#~ msgid "Error: You may also check that you have the correct GPG keys installed"
-+#~ msgstr "Ошибка: Необходимо убедиться в том что вы имеете подходящий gpg ключ"
- 
- #~ msgid "Insert disk \"%s\" and press enter\n"
- #~ msgstr "Вставьте диск \"%s\" и нажмите 'Enter'\n"
-diff --git a/po/sv.po b/po/sv.po
-index 59a2df1..48b836b 100644
---- a/po/sv.po
-+++ b/po/sv.po
-@@ -1,49 +1,50 @@
- # Swedish messages for yum
--# Copyright © 2009 Free Software Foundation
-+# Copyright © 2009-2010 Free Software Foundation
- # This file is distributed under the same license as the yum package.
--# Göran Uddeborg <goeran at uddeborg.se>, 2009.
-+# Göran Uddeborg <goeran at uddeborg.se>, 2009-2010.
- #
--# $Id: yum-HEAD.patch,v 1.65 2010/07/26 21:25:59 skvidal Exp $
-+# $Id: yum-HEAD.patch,v 1.65 2010/07/26 21:25:59 skvidal Exp $
- #
- msgid ""
- msgstr ""
- "Project-Id-Version: yum\n"
- "Report-Msgid-Bugs-To: \n"
--"POT-Creation-Date: 2009-10-15 15:45+0200\n"
--"PO-Revision-Date: 2009-09-05 16:56+0200\n"
-+"POT-Creation-Date: 2010-02-11 10:54-0500\n"
-+"PO-Revision-Date: 2010-05-22 00:30+0200\n"
- "Last-Translator: Göran Uddeborg <goeran at uddeborg.se>\n"
- "Language-Team: Swedish <tp-sv at listor.tp-sv.se>\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=UTF-8\n"
- "Content-Transfer-Encoding: 8bit\n"
- 
--#: ../callback.py:48 ../output.py:940 ../yum/rpmtrans.py:71
-+#: ../callback.py:48 ../output.py:947 ../yum/rpmtrans.py:72
- msgid "Updating"
- msgstr "Uppdaterar"
- 
--#: ../callback.py:49 ../yum/rpmtrans.py:72
-+#: ../callback.py:49 ../yum/rpmtrans.py:73
- msgid "Erasing"
- msgstr "Raderar"
- 
--#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:939
--#: ../yum/rpmtrans.py:73 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:76
-+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:946
-+#: ../output.py:1659 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:75
-+#: ../yum/rpmtrans.py:77
- msgid "Installing"
- msgstr "Installerar"
- 
--#: ../callback.py:52 ../callback.py:58 ../yum/rpmtrans.py:75
-+#: ../callback.py:52 ../callback.py:58 ../output.py:1484 ../yum/rpmtrans.py:76
- msgid "Obsoleted"
--msgstr "Låter utgå"
-+msgstr "Utfasad"
- 
--#: ../callback.py:54 ../output.py:1063 ../output.py:1403
-+#: ../callback.py:54 ../output.py:1070 ../output.py:1442 ../output.py:1491
- msgid "Updated"
- msgstr "Uppdaterade"
- 
--#: ../callback.py:55 ../output.py:1399
-+#: ../callback.py:55 ../output.py:1438
- msgid "Erased"
- msgstr "Raderade"
- 
--#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1061
--#: ../output.py:1395
-+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1068
-+#: ../output.py:1434 ../output.py:1646
- msgid "Installed"
- msgstr "Installerade"
- 
-@@ -65,68 +66,73 @@ msgstr "Fel: ogiltig utdatatillstånd: %s för %s"
- msgid "Erased: %s"
- msgstr "Raderade: %s"
- 
--#: ../callback.py:217 ../output.py:941
-+#: ../callback.py:217 ../output.py:948 ../output.py:1648
- msgid "Removing"
- msgstr "Tar bort"
- 
--#: ../callback.py:219 ../yum/rpmtrans.py:77
-+#: ../callback.py:219 ../yum/rpmtrans.py:78
- msgid "Cleanup"
- msgstr "Rensar upp"
- 
--#: ../cli.py:106
-+#: ../cli.py:107
- #, python-format
- msgid "Command \"%s\" already defined"
- msgstr "Kommando \"%s\" redan definierat"
- 
--#: ../cli.py:118
-+#: ../cli.py:119
- msgid "Setting up repositories"
- msgstr "Gör i ordning förråd"
- 
--#: ../cli.py:129
-+#: ../cli.py:130
- msgid "Reading repository metadata in from local files"
- msgstr "Läser in förrådsmetadata från lokala filer"
- 
--#: ../cli.py:192 ../utils.py:107
-+#: ../cli.py:194 ../utils.py:193
- #, python-format
- msgid "Config Error: %s"
- msgstr "Konfigurationsfel: %s"
- 
--#: ../cli.py:195 ../cli.py:1251 ../utils.py:110
-+#: ../cli.py:197 ../cli.py:1272 ../utils.py:196
- #, python-format
- msgid "Options Error: %s"
- msgstr "Fel bland flaggor: %s"
- 
--#: ../cli.py:223
-+#: ../cli.py:227
- #, python-format
- msgid "  Installed: %s-%s at %s"
- msgstr "  Installerade: %s-%s %s"
- 
--#: ../cli.py:225
-+#: ../cli.py:229
- #, python-format
- msgid "  Built    : %s at %s"
- msgstr "  Byggde      : %s %s"
- 
--#: ../cli.py:227
-+#: ../cli.py:231
- #, python-format
- msgid "  Committed: %s at %s"
- msgstr "  Verkställde : %s %s"
- 
--#: ../cli.py:266
-+#: ../cli.py:270
- msgid "You need to give some command"
- msgstr "Du måste ange något kommando"
- 
--#: ../cli.py:309
-+#: ../cli.py:284
-+#, python-format
-+msgid "No such command: %s. Please use %s --help"
-+msgstr "Inget sådant kommando: %s.  Använd %s --help"
-+
-+#: ../cli.py:314
- msgid "Disk Requirements:\n"
- msgstr "Diskbehov:\n"
- 
--#: ../cli.py:311
-+#: ../cli.py:316
- #, python-format
--msgid "  At least %dMB needed on the %s filesystem.\n"
--msgstr "  Åtminstone %d MB behövs på filsystemet %s.\n"
-+msgid "  At least %dMB more space needed on the %s filesystem.\n"
-+msgstr "  Åtminstone %d MB mer utrymme behövs på filsystemet %s.\n"
- 
- #. TODO: simplify the dependency errors?
- #. Fixup the summary
--#: ../cli.py:316
-+#: ../cli.py:321
- msgid ""
- "Error Summary\n"
- "-------------\n"
-@@ -134,64 +140,60 @@ msgstr ""
- "Felsammandrag\n"
- "-------------\n"
- 
--#: ../cli.py:359
-+#: ../cli.py:364
- msgid "Trying to run the transaction but nothing to do. Exiting."
- msgstr "Försöker köra transaktionen men det finns inget att göra.  Avslutar."
- 
--#: ../cli.py:395
-+#: ../cli.py:403
- msgid "Exiting on user Command"
- msgstr "Avslutar på användarens order"
- 
--#: ../cli.py:399
-+#: ../cli.py:407
- msgid "Downloading Packages:"
- msgstr "Hämtar paket:"
- 
--#: ../cli.py:404
-+#: ../cli.py:412
- msgid "Error Downloading Packages:\n"
- msgstr "Fel när paket hämtades:\n"
- 
--#: ../cli.py:418 ../yum/__init__.py:4014
-+#: ../cli.py:426 ../yum/__init__.py:4195
- msgid "Running rpm_check_debug"
- msgstr "Kör rpm_check_debug"
- 
--#: ../cli.py:427 ../yum/__init__.py:4023
-+#: ../cli.py:435 ../yum/__init__.py:4204
- msgid "ERROR You need to update rpm to handle:"
- msgstr "FEL Du behöver uppdatera rpm för att hantera:"
- 
--#: ../cli.py:429 ../yum/__init__.py:4026
-+#: ../cli.py:437 ../yum/__init__.py:4207
- msgid "ERROR with rpm_check_debug vs depsolve:"
- msgstr "FEL med rpm_check_debug mot depsolve:"
- 
--#: ../cli.py:435
-+#: ../cli.py:443
- msgid "RPM needs to be updated"
- msgstr "RPM behöver uppdateras"
- 
--#: ../cli.py:436
-+#: ../cli.py:444
- #, python-format
- msgid "Please report this error in %s"
- msgstr "Vänligen rapportera detta fel i %s"
- 
--#: ../cli.py:442
-+#: ../cli.py:450
- msgid "Running Transaction Test"
- msgstr "Kör transaktionstest"
- 
--#: ../cli.py:458
--msgid "Finished Transaction Test"
--msgstr "Avslutade transaktionstest"
--
--#: ../cli.py:460
-+#: ../cli.py:466
- msgid "Transaction Check Error:\n"
- msgstr "Transaktionskontrollfel:\n"
- 
--#: ../cli.py:467
-+#: ../cli.py:473
- msgid "Transaction Test Succeeded"
- msgstr "Transaktionskontrollen lyckades"
- 
--#: ../cli.py:489
-+#: ../cli.py:495
- msgid "Running Transaction"
- msgstr "Kör transaktionen"
- 
--#: ../cli.py:519
-+#: ../cli.py:525
- msgid ""
- "Refusing to automatically import keys when running unattended.\n"
- "Use \"-y\" to override."
-@@ -199,79 +201,84 @@ msgstr ""
- "Vägrar att automatiskt importera nycklar vid oövervakad körning.\n"
- "Använd \"-y\" för att åsidosätta."
- 
--#: ../cli.py:538 ../cli.py:572
-+#: ../cli.py:544 ../cli.py:578
- msgid "  * Maybe you meant: "
- msgstr "  * Du kanske menade: "
- 
--#: ../cli.py:555 ../cli.py:563
-+#: ../cli.py:561 ../cli.py:569
- #, python-format
- msgid "Package(s) %s%s%s available, but not installed."
- msgstr "Paket %s%s%s tillgängliga, men inte installerade."
- 
--#: ../cli.py:569 ../cli.py:600 ../cli.py:678
-+#: ../cli.py:575 ../cli.py:607 ../cli.py:687
- #, python-format
- msgid "No package %s%s%s available."
- msgstr "Inget paket %s%s%s tillgängligt."
- 
--#: ../cli.py:605 ../cli.py:738
-+#: ../cli.py:612 ../cli.py:748
- msgid "Package(s) to install"
- msgstr "Paket att installera"
- 
--#: ../cli.py:606 ../cli.py:684 ../cli.py:717 ../cli.py:739
--#: ../yumcommands.py:159
-+#: ../cli.py:613 ../cli.py:693 ../cli.py:727 ../cli.py:749
-+#: ../yumcommands.py:160
- msgid "Nothing to do"
- msgstr "Inget att göra"
- 
--#: ../cli.py:639
-+#: ../cli.py:647
- #, python-format
- msgid "%d packages marked for Update"
- msgstr "%d paket noterade att uppdateras"
- 
--#: ../cli.py:642
-+#: ../cli.py:650
- msgid "No Packages marked for Update"
- msgstr "Inga paket noterade att uppdateras"
- 
--#: ../cli.py:656
-+#: ../cli.py:664
- #, python-format
- msgid "%d packages marked for removal"
- msgstr "%d paket noterade att tas bort"
- 
--#: ../cli.py:659
-+#: ../cli.py:667
- msgid "No Packages marked for removal"
- msgstr "Inga paket noterade att tas bort"
- 
--#: ../cli.py:683
-+#: ../cli.py:692
- msgid "Package(s) to downgrade"
- msgstr "Paket att nedgradera"
- 
--#: ../cli.py:707
-+#: ../cli.py:717
- #, python-format
- msgid " (from %s)"
- msgstr " (från %s)"
- 
--#: ../cli.py:709
-+#: ../cli.py:719
- #, python-format
- msgid "Installed package %s%s%s%s not available."
- msgstr "Installerat paket %s%s%s%s inte tillgängligt."
- 
--#: ../cli.py:716
-+#: ../cli.py:726
- msgid "Package(s) to reinstall"
- msgstr "Paket att ominstallera"
- 
--#: ../cli.py:729
-+#: ../cli.py:739
- msgid "No Packages Provided"
- msgstr "Inga paket angivna"
- 
--#: ../cli.py:813
-+#: ../cli.py:818
-+#, python-format
-+msgid "Matched: %s"
-+msgstr "Matchade: %s"
-+
-+#: ../cli.py:825
- #, python-format
- msgid "Warning: No matches found for: %s"
- msgstr "Varning: Ingen matchning hittades för: %s"
- 
--#: ../cli.py:816
-+#: ../cli.py:828
- msgid "No Matches found"
- msgstr "Inga matchningar hittades"
- 
--#: ../cli.py:855
-+#: ../cli.py:868
- #, python-format
- msgid ""
- "Warning: 3.0.x versions of yum would erroneously match against filenames.\n"
-@@ -281,108 +288,112 @@ msgstr ""
- " Du kan använda \"%s*/%s%s\" och/eller \"%s*bin/%s%s\" för att få detta "
- "beteende"
- 
--#: ../cli.py:871
-+#: ../cli.py:884
- #, python-format
- msgid "No Package Found for %s"
- msgstr "Inga paket hittades för %s"
- 
--#: ../cli.py:883
-+#: ../cli.py:896
- msgid "Cleaning up Everything"
- msgstr "Rensar upp allt"
- 
--#: ../cli.py:897
-+#: ../cli.py:912
- msgid "Cleaning up Headers"
- msgstr "Rensar upp huvuden"
- 
--#: ../cli.py:900
-+#: ../cli.py:915
- msgid "Cleaning up Packages"
- msgstr "Rensar upp paket"
- 
--#: ../cli.py:903
-+#: ../cli.py:918
- msgid "Cleaning up xml metadata"
- msgstr "Rensar upp xml-metadata"
- 
--#: ../cli.py:906
-+#: ../cli.py:921
- msgid "Cleaning up database cache"
- msgstr "Rensar upp databas-cache"
- 
--#: ../cli.py:909
-+#: ../cli.py:924
- msgid "Cleaning up expire-cache metadata"
- msgstr "Rensar upp expire-cache-metadata"
- 
--#: ../cli.py:912
-+#: ../cli.py:927
-+msgid "Cleaning up cached rpmdb data"
-+msgstr "Rensar upp cachad rpmdb-data"
-+
-+#: ../cli.py:930
- msgid "Cleaning up plugins"
- msgstr "Rensar upp insticksmoduler"
- 
--#: ../cli.py:937
-+#: ../cli.py:955
- msgid "Installed Groups:"
- msgstr "Installerade grupper:"
- 
--#: ../cli.py:949
-+#: ../cli.py:967
- msgid "Available Groups:"
- msgstr "Tillgängliga grupper:"
- 
--#: ../cli.py:959
-+#: ../cli.py:977
- msgid "Done"
- msgstr "Klart"
- 
--#: ../cli.py:970 ../cli.py:988 ../cli.py:994 ../yum/__init__.py:2629
-+#: ../cli.py:988 ../cli.py:1006 ../cli.py:1012 ../yum/__init__.py:2788
- #, python-format
- msgid "Warning: Group %s does not exist."
- msgstr "Varning: Grupp %s finns inte."
- 
--#: ../cli.py:998
-+#: ../cli.py:1016
- msgid "No packages in any requested group available to install or update"
- msgstr ""
- "Inget paket i någon begärd grupp är tillgängligt för installation eller "
- "uppdatering"
- 
--#: ../cli.py:1000
-+#: ../cli.py:1018
- #, python-format
- msgid "%d Package(s) to Install"
- msgstr "%d paket att installera"
- 
--#: ../cli.py:1010 ../yum/__init__.py:2641
-+#: ../cli.py:1028 ../yum/__init__.py:2800
- #, python-format
- msgid "No group named %s exists"
- msgstr "Ingen grupp med namnet %s finns"
- 
--#: ../cli.py:1016
-+#: ../cli.py:1034
- msgid "No packages to remove from groups"
- msgstr "Inget paket att ta bort från grupper"
- 
--#: ../cli.py:1018
-+#: ../cli.py:1036
- #, python-format
- msgid "%d Package(s) to remove"
- msgstr "%d paket att ta bort"
- 
--#: ../cli.py:1060
-+#: ../cli.py:1078
- #, python-format
- msgid "Package %s is already installed, skipping"
- msgstr "Paket %s är redan installerat, hoppar över"
- 
--#: ../cli.py:1071
-+#: ../cli.py:1089
- #, python-format
- msgid "Discarding non-comparable pkg %s.%s"
- msgstr "Kastar ojämförbart paket %s.%s"
- 
- #. we've not got any installed that match n or n+a
--#: ../cli.py:1097
-+#: ../cli.py:1115
- #, python-format
- msgid "No other %s installed, adding to list for potential install"
- msgstr ""
- "Ingen annat %s installerat, lägger till listan för potentiell installation"
- 
--#: ../cli.py:1117
-+#: ../cli.py:1135
- msgid "Plugin Options"
- msgstr "Insticksmodulsalternativ"
- 
--#: ../cli.py:1125
-+#: ../cli.py:1143
- #, python-format
- msgid "Command line error: %s"
- msgstr "Kommandoradsfel: %s"
- 
--#: ../cli.py:1138
-+#: ../cli.py:1156
- #, python-format
- msgid ""
- "\n"
-@@ -393,106 +404,114 @@ msgstr ""
- "\n"
- "%s: flaggan %s behöver ett argument"
- 
--#: ../cli.py:1191
-+#: ../cli.py:1209
- msgid "--color takes one of: auto, always, never"
- msgstr "--color tar en av: auto, always, never"
- 
--#: ../cli.py:1298
-+#: ../cli.py:1319
- msgid "show this help message and exit"
- msgstr "visa detta hjälpmeddelande och avsluta"
- 
--#: ../cli.py:1302
-+#: ../cli.py:1323
- msgid "be tolerant of errors"
- msgstr "var tolerant vid fel"
- 
--#: ../cli.py:1304
--msgid "run entirely from cache, don't update cache"
--msgstr "kör helt från cache, uppdatera inte cachen"
-+#: ../cli.py:1326
-+msgid "run entirely from system cache, don't update cache"
-+msgstr "kör helt från systemets cache, uppdatera inte cachen"
- 
--#: ../cli.py:1306
-+#: ../cli.py:1329
- msgid "config file location"
- msgstr "konfigurationsfilens plats"
- 
--#: ../cli.py:1308
-+#: ../cli.py:1332
- msgid "maximum command wait time"
- msgstr "maximal tid att vänta på kommandon"
- 
--#: ../cli.py:1310
-+#: ../cli.py:1334
- msgid "debugging output level"
- msgstr "nivå på felsökningsutskrifter"
- 
--#: ../cli.py:1314
-+#: ../cli.py:1338
- msgid "show duplicates, in repos, in list/search commands"
- msgstr "visa dubletter, i förråd, i list-/search-kommandon"
- 
--#: ../cli.py:1316
-+#: ../cli.py:1340
- msgid "error output level"
- msgstr "nivå på felutskrifter"
- 
--#: ../cli.py:1319
-+#: ../cli.py:1343
-+msgid "debugging output level for rpm"
-+msgstr "nivå på felsökningsutskrifter för rpm"
-+
-+#: ../cli.py:1346
- msgid "quiet operation"
- msgstr "tyst operation"
- 
--#: ../cli.py:1321
-+#: ../cli.py:1348
- msgid "verbose operation"
- msgstr "utförlig operation"
- 
--#: ../cli.py:1323
-+#: ../cli.py:1350
- msgid "answer yes for all questions"
- msgstr "svara ja på alla frågor"
- 
--#: ../cli.py:1325
-+#: ../cli.py:1352
- msgid "show Yum version and exit"
- msgstr "visa Yum-version och avsluta"
- 
--#: ../cli.py:1326
-+#: ../cli.py:1353
- msgid "set install root"
- msgstr "ange installationsrot"
- 
--#: ../cli.py:1330
-+#: ../cli.py:1357
- msgid "enable one or more repositories (wildcards allowed)"
- msgstr "aktivera ett eller flera förråd (jokrertecken tillåts)"
- 
--#: ../cli.py:1334
-+#: ../cli.py:1361
- msgid "disable one or more repositories (wildcards allowed)"
- msgstr "inaktivera ett eller flera förråd (jokertecken tillåts)"
- 
--#: ../cli.py:1337
-+#: ../cli.py:1364
- msgid "exclude package(s) by name or glob"
- msgstr "uteslut paket via namn eller mönster"
- 
--#: ../cli.py:1339
-+#: ../cli.py:1366
- msgid "disable exclude from main, for a repo or for everything"
- msgstr "inaktivera uteslutningar från main, för ett förråd, eller för allt"
- 
--#: ../cli.py:1342
-+#: ../cli.py:1369
- msgid "enable obsoletes processing during updates"
- msgstr "aktivera bearbetning av utfasningar under uppdateringar"
- 
--#: ../cli.py:1344
-+#: ../cli.py:1371
- msgid "disable Yum plugins"
- msgstr "inaktivera Yum-insticksmoduler"
- 
--#: ../cli.py:1346
-+#: ../cli.py:1373
- msgid "disable gpg signature checking"
- msgstr "inaktivera kontroll av gpg-signatur"
- 
--#: ../cli.py:1348
-+#: ../cli.py:1375
- msgid "disable plugins by name"
- msgstr "inaktivera insticksmoduler efter namn"
- 
--#: ../cli.py:1351
-+#: ../cli.py:1378
- msgid "enable plugins by name"
- msgstr "aktivera insticksmoduler efter namn"
- 
--#: ../cli.py:1354
-+#: ../cli.py:1381
- msgid "skip packages with depsolving problems"
- msgstr "hoppa över paket med problem vid beroendeupplösning"
- 
--#: ../cli.py:1356
-+#: ../cli.py:1383
- msgid "control whether color is used"
- msgstr "styr om färg skall användas"
- 
-+#: ../cli.py:1385
-+msgid "set value of $releasever in yum config and repo files"
-+msgstr "sätt värdet på $releasever i yum-konfigurations- och repo-filer"
-+
- #: ../output.py:305
- msgid "Jan"
- msgstr "jan"
-@@ -545,105 +564,104 @@ msgstr "dec"
- msgid "Trying other mirror."
- msgstr "Försöker med en annan spegel."
- 
--#: ../output.py:538
-+#: ../output.py:534
- #, python-format
- msgid "Name       : %s%s%s"
- msgstr "Namn       : %s%s%s"
- 
--#: ../output.py:539
-+#: ../output.py:535
- #, python-format
- msgid "Arch       : %s"
- msgstr "Arkitektur : %s"
- 
--#: ../output.py:541
-+#: ../output.py:537
- #, python-format
- msgid "Epoch      : %s"
- msgstr "Epok       : %s"
- 
--#: ../output.py:542
-+#: ../output.py:538
- #, python-format
- msgid "Version    : %s"
- msgstr "Version    : %s"
- 
--#: ../output.py:543
-+#: ../output.py:539
- #, python-format
- msgid "Release    : %s"
- msgstr "Utgåva     : %s"
- 
--#: ../output.py:544
-+#: ../output.py:540
- #, python-format
- msgid "Size       : %s"
- msgstr "Storlek    : %s"
- 
--#: ../output.py:545
-+#: ../output.py:541
- #, python-format
- msgid "Repo       : %s"
- msgstr "Förråd     : %s"
- 
--#: ../output.py:547
-+#: ../output.py:543
- #, python-format
- msgid "From repo  : %s"
- msgstr "Från förråd: %s"
- 
--#: ../output.py:549
-+#: ../output.py:545
- #, python-format
- msgid "Committer  : %s"
- msgstr "Verkställare: %s"
- 
--#: ../output.py:550
-+#: ../output.py:546
- #, python-format
- msgid "Committime : %s"
- msgstr "Verkställt : %s"
- 
--#: ../output.py:551
-+#: ../output.py:547
- #, python-format
- msgid "Buildtime  : %s"
- msgstr "Byggt      : %s"
- 
--#: ../output.py:553
-+#: ../output.py:549
- #, python-format
- msgid "Installtime: %s"
- msgstr "Installerat: %s"
- 
--#: ../output.py:554
-+#: ../output.py:550
- msgid "Summary    : "
- msgstr "Sammandrag : "
- 
--#: ../output.py:556
-+#: ../output.py:552
- #, python-format
- msgid "URL        : %s"
- msgstr "URL        : %s"
- 
--#: ../output.py:557
--#, python-format
--msgid "License    : %s"
--msgstr "Licens     : %s"
-+#: ../output.py:553
-+msgid "License    : "
-+msgstr "Licens     : "
- 
--#: ../output.py:558
-+#: ../output.py:554
- msgid "Description: "
- msgstr "Beskrivning: "
- 
--#: ../output.py:626
-+#: ../output.py:622
- msgid "y"
- msgstr "j"
- 
--#: ../output.py:626
-+#: ../output.py:622
- msgid "yes"
- msgstr "ja"
- 
--#: ../output.py:627
-+#: ../output.py:623
- msgid "n"
- msgstr "n"
- 
--#: ../output.py:627
-+#: ../output.py:623
- msgid "no"
- msgstr "nej"
- 
--#: ../output.py:631
-+#: ../output.py:627
- msgid "Is this ok [y/N]: "
- msgstr "Är detta ok [j/N]: "
- 
--#: ../output.py:722
-+#: ../output.py:715
- #, python-format
- msgid ""
- "\n"
-@@ -652,150 +670,151 @@ msgstr ""
- "\n"
- "Grupp: %s"
- 
--#: ../output.py:726
-+#: ../output.py:719
- #, python-format
- msgid " Group-Id: %s"
- msgstr " Grupp-id: %s"
- 
--#: ../output.py:731
-+#: ../output.py:724
- #, python-format
- msgid " Description: %s"
- msgstr " Beskrivning: %s"
- 
--#: ../output.py:733
-+#: ../output.py:726
- msgid " Mandatory Packages:"
- msgstr " Obligatoriska paket:"
- 
--#: ../output.py:734
-+#: ../output.py:727
- msgid " Default Packages:"
- msgstr " Standardpaket:"
- 
--#: ../output.py:735
-+#: ../output.py:728
- msgid " Optional Packages:"
- msgstr " Valfria paket:"
- 
--#: ../output.py:736
-+#: ../output.py:729
- msgid " Conditional Packages:"
- msgstr " Villkorliga paket:"
- 
--#: ../output.py:756
-+#: ../output.py:749
- #, python-format
- msgid "package: %s"
- msgstr "paket: %s"
- 
--#: ../output.py:758
-+#: ../output.py:751
- msgid "  No dependencies for this package"
- msgstr "  Inga beroenden för detta paket"
- 
--#: ../output.py:763
-+#: ../output.py:756
- #, python-format
- msgid "  dependency: %s"
- msgstr "  beroende: %s"
- 
--#: ../output.py:765
-+#: ../output.py:758
- msgid "   Unsatisfied dependency"
- msgstr "   Ej uppfyllt beroende"
- 
--#: ../output.py:837
-+#: ../output.py:830
- #, python-format
- msgid "Repo        : %s"
- msgstr "Förråd      : %s"
- 
--#: ../output.py:838
-+#: ../output.py:831
- msgid "Matched from:"
- msgstr "Matchat från:"
- 
--#: ../output.py:847
-+#: ../output.py:840
- msgid "Description : "
- msgstr "Beskrivning : "
- 
--#: ../output.py:850
-+#: ../output.py:843
- #, python-format
- msgid "URL         : %s"
- msgstr "URL         : %s"
- 
--#: ../output.py:853
-+#: ../output.py:846
- #, python-format
- msgid "License     : %s"
- msgstr "Licens      : %s"
- 
--#: ../output.py:856
-+#: ../output.py:849
- #, python-format
- msgid "Filename    : %s"
- msgstr "Filnamn     : %s"
- 
--#: ../output.py:860
-+#: ../output.py:853
- msgid "Other       : "
- msgstr "Övrigt      : "
- 
--#: ../output.py:893
-+#: ../output.py:896
- msgid "There was an error calculating total download size"
- msgstr "Ett fel uppstod vid beräkningen av total storlek att hämta"
- 
--#: ../output.py:898
-+#: ../output.py:901
- #, python-format
- msgid "Total size: %s"
- msgstr "Total storlek: %s"
- 
--#: ../output.py:901
-+#: ../output.py:904
- #, python-format
- msgid "Total download size: %s"
- msgstr "Total storlek att hämta: %s"
- 
--#: ../output.py:942
-+#: ../output.py:908
-+#, python-format
-+msgid "Installed size: %s"
-+msgstr "Installerad storlek: %s"
-+
-+#: ../output.py:949
- msgid "Reinstalling"
- msgstr "Ominstallerar"
- 
--#: ../output.py:943
-+#: ../output.py:950
- msgid "Downgrading"
- msgstr "Nedgraderar"
- 
--#: ../output.py:944
-+#: ../output.py:951
- msgid "Installing for dependencies"
- msgstr "Installerar på grund av beroenden"
- 
--#: ../output.py:945
-+#: ../output.py:952
- msgid "Updating for dependencies"
- msgstr "Uppdaterar på grund av beroenden"
- 
--#: ../output.py:946
-+#: ../output.py:953
- msgid "Removing for dependencies"
- msgstr "Tar bort på grund av beroenden"
- 
--#: ../output.py:953 ../output.py:1065
-+#: ../output.py:960 ../output.py:1072
- msgid "Skipped (dependency problems)"
- msgstr "Hoppas över (beroendeproblem)"
- 
--#: ../output.py:976
-+#: ../output.py:983
- msgid "Package"
- msgstr "Paket"
- 
--#: ../output.py:976
-+#: ../output.py:983
- msgid "Arch"
- msgstr "Ark"
- 
--#: ../output.py:977
-+#: ../output.py:984
- msgid "Version"
- msgstr "Version"
- 
--#: ../output.py:977
-+#: ../output.py:984
- msgid "Repository"
- msgstr "Förråd"
- 
--#: ../output.py:978
-+#: ../output.py:985
- msgid "Size"
- msgstr "Storl."
- 
--#: ../output.py:990
-+#: ../output.py:997
- #, python-format
--msgid ""
--"     replacing  %s%s%s.%s %s\n"
--"\n"
--msgstr ""
--"     ersätter  %s%s%s.%s %s\n"
--"\n"
-+msgid "     replacing  %s%s%s.%s %s\n"
-+msgstr "     ersätter  %s%s%s.%s %s\n"
- 
--#: ../output.py:999
-+#: ../output.py:1006
- #, python-format
- msgid ""
- "\n"
-@@ -806,7 +825,7 @@ msgstr ""
- "Transaktionssammanfattning\n"
- "%s\n"
- 
--#: ../output.py:1006
-+#: ../output.py:1013
- #, python-format
- msgid ""
- "Install   %5.5s Package(s)\n"
-@@ -815,7 +834,7 @@ msgstr ""
- "Installerar   %5.5s Paket\n"
- "Uppdaterar    %5.5s Paket\n"
- 
--#: ../output.py:1015
-+#: ../output.py:1022
- #, python-format
- msgid ""
- "Remove    %5.5s Package(s)\n"
-@@ -826,32 +845,32 @@ msgstr ""
- "Ominstallerar %5.5s Paket\n"
- "Nedgraderar   %5.5s Paket\n"
- 
--#: ../output.py:1059
-+#: ../output.py:1066
- msgid "Removed"
- msgstr "Borttagna"
- 
--#: ../output.py:1060
-+#: ../output.py:1067
- msgid "Dependency Removed"
- msgstr "Borttagna beroenden"
- 
--#: ../output.py:1062
-+#: ../output.py:1069
- msgid "Dependency Installed"
- msgstr "Installerade beroenden"
- 
--#: ../output.py:1064
-+#: ../output.py:1071
- msgid "Dependency Updated"
- msgstr "Uppdaterade beroenden"
- 
--#: ../output.py:1066
-+#: ../output.py:1073
- msgid "Replaced"
- msgstr "Ersatte"
- 
--#: ../output.py:1067
-+#: ../output.py:1074
- msgid "Failed"
- msgstr "Misslyckade"
- 
- #. Delta between C-c's so we treat as exit
--#: ../output.py:1133
-+#: ../output.py:1140
- msgid "two"
- msgstr "två"
- 
-@@ -859,7 +878,7 @@ msgstr "två"
- #. Current download cancelled, interrupt (ctrl-c) again within two seconds
- #. to exit.
- #. Where "interupt (ctrl-c) again" and "two" are highlighted.
--#: ../output.py:1144
-+#: ../output.py:1151
- #, python-format
- msgid ""
- "\n"
-@@ -871,217 +890,360 @@ msgstr ""
- " Aktuell nedladdning avbröts, %savbryt (ctrl-c) igen%s inom %s%s%s sekunder\n"
- "för att avsluta.\n"
- 
--#: ../output.py:1155
-+#: ../output.py:1162
- msgid "user interrupt"
- msgstr "avbrott från användaren"
- 
--#: ../output.py:1173
-+#: ../output.py:1180
- msgid "Total"
- msgstr "Totalt"
- 
-+#: ../output.py:1202
-+msgid "I"
-+msgstr "I"
-+
- #: ../output.py:1203
--msgid "<unset>"
--msgstr ""
-+msgid "O"
-+msgstr "UF"
- 
- #: ../output.py:1204
-+msgid "E"
-+msgstr "R"
-+
-+#: ../output.py:1205
-+msgid "R"
-+msgstr "O"
-+
-+#: ../output.py:1206
-+msgid "D"
-+msgstr "N"
-+
-+#: ../output.py:1207
-+msgid "U"
-+msgstr "U"
-+
-+#: ../output.py:1217
-+msgid "<unset>"
-+msgstr "<ej satt>"
-+
-+#: ../output.py:1218
- msgid "System"
--msgstr ""
-+msgstr "System"
- 
--#: ../output.py:1240
-+#: ../output.py:1254
- msgid "Bad transaction IDs, or package(s), given"
--msgstr ""
-+msgstr "Felaktiga transaktions ID:n, eller paket, angivna"
- 
--#: ../output.py:1284 ../yumcommands.py:1149 ../yum/__init__.py:1067
--msgid "Warning: RPMDB has been altered since the last yum transaction."
--msgstr ""
-+#: ../output.py:1266
-+msgid "ID"
-+msgstr "ID"
-+
-+#: ../output.py:1267 ../output.py:1520
-+msgid "Login user"
-+msgstr "Inloggad användare"
-+
-+#: ../output.py:1268
-+msgid "Date and time"
-+msgstr "Datum och tid"
- 
--#: ../output.py:1289
-+#: ../output.py:1269 ../output.py:1522
-+msgid "Action(s)"
-+msgstr "Åtgärd(er)"
-+
-+#: ../output.py:1270 ../output.py:1523
-+msgid "Altered"
-+msgstr "Ändrade"
-+
-+#: ../output.py:1310
- msgid "No transaction ID given"
--msgstr ""
-+msgstr "Inget transaktions-ID angivet"
- 
--#: ../output.py:1297
-+#: ../output.py:1336
- msgid "Bad transaction ID given"
--msgstr ""
-+msgstr "Felaktigt transaktions-ID angivet"
- 
--#: ../output.py:1302
--#, fuzzy
-+#: ../output.py:1341
- msgid "Not found given transaction ID"
--msgstr "Kör transaktionen"
-+msgstr "Hittade inte angivet transaktions-ID"
- 
--#: ../output.py:1310
-+#: ../output.py:1349
- msgid "Found more than one transaction ID!"
--msgstr ""
-+msgstr "Hittade mer än ett transaktions-ID!"
- 
--#: ../output.py:1331
-+#: ../output.py:1370
- msgid "No transaction ID, or package, given"
--msgstr ""
-+msgstr "Inget transaktions-ID, eller paket, angivet"
- 
--#: ../output.py:1357
--#, fuzzy
-+#: ../output.py:1396
- msgid "Transaction ID :"
--msgstr "Transaktionskontrollfel:\n"
-+msgstr "Transaktions-ID:"
- 
--#: ../output.py:1359
-+#: ../output.py:1398
- msgid "Begin time     :"
--msgstr ""
-+msgstr "Starttid       :"
- 
--#: ../output.py:1362 ../output.py:1364
-+#: ../output.py:1401 ../output.py:1403
- msgid "Begin rpmdb    :"
--msgstr ""
-+msgstr "Start-rpmdb    :"
- 
--#: ../output.py:1378
--#, fuzzy, python-format
-+#: ../output.py:1417
-+#, python-format
- msgid "(%s seconds)"
--msgstr "%s sekunder (senast: %s)"
-+msgstr "(%s sekunder)"
- 
--#: ../output.py:1379
--#, fuzzy
-+#: ../output.py:1418
- msgid "End time       :"
--msgstr "Övrigt      : "
-+msgstr "Sluttid        : "
- 
--#: ../output.py:1382 ../output.py:1384
-+#: ../output.py:1421 ../output.py:1423
- msgid "End rpmdb      :"
--msgstr ""
-+msgstr "Slut-rpmdb     :"
- 
--#: ../output.py:1385
--#, fuzzy
-+#: ../output.py:1424
- msgid "User           :"
--msgstr "URL         : %s"
-+msgstr "Användare      :"
- 
--#: ../output.py:1387 ../output.py:1389 ../output.py:1391
-+#: ../output.py:1426 ../output.py:1428 ../output.py:1430
- msgid "Return-Code    :"
--msgstr ""
-+msgstr "Returkod       :"
- 
--#: ../output.py:1387
--#, fuzzy
-+#: ../output.py:1426
- msgid "Aborted"
--msgstr "Låter utgå"
-+msgstr "Avbruten"
- 
--#: ../output.py:1389
--#, fuzzy
-+#: ../output.py:1428
- msgid "Failure:"
--msgstr "Misslyckade"
-+msgstr "Misslyckades:"
- 
--#: ../output.py:1391
-+#: ../output.py:1430
- msgid "Success"
--msgstr ""
-+msgstr "Lyckades"
- 
--#: ../output.py:1392
--#, fuzzy
-+#: ../output.py:1431
- msgid "Transaction performed with:"
--msgstr "Transaktionskontrollfel:\n"
-+msgstr "Transaktionen utförd med:"
- 
--#: ../output.py:1405
--#, fuzzy
-+#: ../output.py:1444 ../output.py:1489
- msgid "Downgraded"
--msgstr "Nedgraderar"
-+msgstr "Nedgraderade"
- 
- #. multiple versions installed, both older and newer
--#: ../output.py:1407
-+#: ../output.py:1446
- msgid "Weird"
--msgstr ""
-+msgstr "Mystisk"
- 
--#: ../output.py:1409
--#, fuzzy
-+#: ../output.py:1448
- msgid "Packages Altered:"
--msgstr "Inga paket angivna"
-+msgstr "Ändrade paket:"
- 
--#: ../output.py:1412
-+#: ../output.py:1451
- msgid "Scriptlet output:"
--msgstr ""
-+msgstr "Skriptutdata:"
- 
--#: ../output.py:1418
--#, fuzzy
-+#: ../output.py:1457
- msgid "Errors:"
--msgstr "Fel: %s"
-+msgstr "Fel:"
- 
--#: ../output.py:1489
--msgid "Last day"
--msgstr ""
-+#: ../output.py:1481 ../output.py:1482
-+msgid "Install"
-+msgstr "Installation"
-+
-+#: ../output.py:1483
-+msgid "Dep-Install"
-+msgstr "Ber-inst"
-+
-+#: ../output.py:1485
-+msgid "Obsoleting"
-+msgstr "Fasar ut"
-+
-+#: ../output.py:1486
-+msgid "Erase"
-+msgstr "Radering"
-+
-+#: ../output.py:1487
-+msgid "Reinstall"
-+msgstr "Ominstallation"
-+
-+#: ../output.py:1488
-+msgid "Downgrade"
-+msgstr "Nedgradering"
- 
- #: ../output.py:1490
-+msgid "Update"
-+msgstr "Uppdatering"
-+
-+#: ../output.py:1521
-+msgid "Time"
-+msgstr "Tid"
-+
-+#: ../output.py:1547
-+msgid "Last day"
-+msgstr "Senaste dagen"
-+
-+#: ../output.py:1548
- msgid "Last week"
--msgstr ""
-+msgstr "Senaste veckan"
- 
--#: ../output.py:1491
-+#: ../output.py:1549
- msgid "Last 2 weeks"
--msgstr ""
-+msgstr "Senaste 2 veckorna"
- 
- #. US default :p
--#: ../output.py:1492
-+#: ../output.py:1550
- msgid "Last 3 months"
--msgstr ""
-+msgstr "Senaste 3 månaderna"
- 
--#: ../output.py:1493
-+#: ../output.py:1551
- msgid "Last 6 months"
--msgstr ""
-+msgstr "Senaste 6 månaderna"
- 
--#: ../output.py:1494
-+#: ../output.py:1552
- msgid "Last year"
--msgstr ""
-+msgstr "Senaste året"
- 
--#: ../output.py:1495
-+#: ../output.py:1553
- msgid "Over a year ago"
--msgstr ""
-+msgstr "Mer än ett år tillbaka"
- 
--#: ../output.py:1524
-+#: ../output.py:1585
- msgid "installed"
- msgstr "installeras"
- 
--#: ../output.py:1525
-+#: ../output.py:1586
- msgid "updated"
- msgstr "uppdateras"
- 
--#: ../output.py:1526
-+#: ../output.py:1587
- msgid "obsoleted"
--msgstr "fasas ut"
-+msgstr "utfasas"
- 
--#: ../output.py:1527
-+#: ../output.py:1588
- msgid "erased"
- msgstr "raderas"
- 
--#: ../output.py:1531
-+#: ../output.py:1592
- #, python-format
- msgid "---> Package %s.%s %s:%s-%s set to be %s"
- msgstr "---> Paket %s.%s %s:%s-%s satt till att %s"
- 
--#: ../output.py:1538
-+#: ../output.py:1599
- msgid "--> Running transaction check"
- msgstr "--> Kör transaktionskontroll"
- 
--#: ../output.py:1543
-+#: ../output.py:1604
- msgid "--> Restarting Dependency Resolution with new changes."
- msgstr "--> Startar om beroendeupplösning med nya ändringar."
- 
--#: ../output.py:1548
-+#: ../output.py:1609
- msgid "--> Finished Dependency Resolution"
- msgstr "--> Avslutade beroendeupplösning"
- 
--#: ../output.py:1553 ../output.py:1558
-+#: ../output.py:1614 ../output.py:1619
- #, python-format
- msgid "--> Processing Dependency: %s for package: %s"
- msgstr "--> Bearbetar beroende: %s för paket: %s"
- 
--#: ../output.py:1562
-+#: ../output.py:1623
- #, python-format
- msgid "--> Unresolved Dependency: %s"
- msgstr "--> Ej upplöst beroende: %s"
- 
--#: ../output.py:1568 ../output.py:1573
-+#: ../output.py:1634
-+#, python-format
-+msgid "Package: %s"
-+msgstr "Paket: %s"
-+
-+#: ../output.py:1636
-+#, python-format
-+msgid ""
-+"\n"
-+"    Requires: %s"
-+msgstr "\n    Behöver: %s"
-+
-+#: ../output.py:1649 ../output.py:1660
-+#, python-format
-+msgid ""
-+"\n"
-+"    %s: %s (%s)"
-+msgstr "\n    %s: %s (%s)"
-+
-+#: ../output.py:1657
-+msgid "Available"
-+msgstr "Tillgängliga"
-+
-+#: ../output.py:1665 ../output.py:1670
- #, python-format
- msgid "--> Processing Conflict: %s conflicts %s"
- msgstr "--> Bearbetar konflikt: %s står i konflikt med %s"
- 
--#: ../output.py:1577
-+#: ../output.py:1674
- msgid "--> Populating transaction set with selected packages. Please wait."
- msgstr "--> Fyller transaktionsmängden med valda paket.  Var god dröj."
- 
--#: ../output.py:1581
-+#: ../output.py:1678
- #, python-format
- msgid "---> Downloading header for %s to pack into transaction set."
- msgstr "---> Hämtar huvud för %s för att paketera i transaktionsmängden."
- 
--#: ../utils.py:137 ../yummain.py:42
-+#: ../utils.py:93
-+msgid "Running"
-+msgstr "Kör"
-+
-+#: ../utils.py:94
-+msgid "Sleeping"
-+msgstr "Sover"
-+
-+#: ../utils.py:95
-+msgid "Uninterruptible"
-+msgstr "Oavbrytbar"
-+
-+#: ../utils.py:96
-+msgid "Zombie"
-+msgstr "Zombie"
-+
-+#: ../utils.py:97
-+msgid "Traced/Stopped"
-+msgstr "Spårad/Stoppad"
-+
-+#: ../utils.py:98 ../yumcommands.py:917
-+msgid "Unknown"
-+msgstr "Okänd"
-+
-+#: ../utils.py:109
-+msgid "  The other application is: PackageKit"
-+msgstr "  Det andra programmet är: PackageKit"
-+
-+#: ../utils.py:111
-+#, python-format
-+msgid "  The other application is: %s"
-+msgstr "  Det andra programmet är: %s"
-+
-+#: ../utils.py:114
-+#, python-format
-+msgid "    Memory : %5s RSS (%5sB VSZ)"
-+msgstr "    Minne   : %5s RSS (%5s B VSZ)"
-+
-+#: ../utils.py:119
-+#, python-format
-+msgid "    Started: %s - %s ago"
-+msgstr "    Startade: %s - för %s sedan"
-+
-+#: ../utils.py:121
-+#, python-format
-+msgid "    State  : %s, pid: %d"
-+msgstr "    Status  : %s, pid: %d"
-+
-+#: ../utils.py:199
-+#, python-format
-+msgid "PluginExit Error: %s"
-+msgstr "Insticksmodulsavslutsfel: %s"
-+
-+#: ../utils.py:202
-+#, python-format
-+msgid "Yum Error: %s"
-+msgstr "Yum-fel: %s"
-+
-+#: ../utils.py:235 ../yummain.py:42
- msgid ""
- "\n"
- "\n"
-@@ -1091,7 +1253,7 @@ msgstr ""
- "\n"
- "Slutar efter att användaren avbröt"
- 
--#: ../utils.py:143 ../yummain.py:48
-+#: ../utils.py:241 ../yummain.py:48
- msgid ""
- "\n"
- "\n"
-@@ -1101,7 +1263,7 @@ msgstr ""
- "\n"
- "Slutar med brutet rör (pipe)"
- 
--#: ../utils.py:145 ../yummain.py:50
-+#: ../utils.py:243 ../yummain.py:50
- #, python-format
- msgid ""
- "\n"
-@@ -1112,15 +1274,15 @@ msgstr ""
- "\n"
- "%s"
- 
--#: ../utils.py:184 ../yummain.py:273
-+#: ../utils.py:282 ../yummain.py:211
- msgid "Complete!"
- msgstr "Klart!"
- 
--#: ../yumcommands.py:42
-+#: ../yumcommands.py:43
- msgid "You need to be root to perform this command."
- msgstr "Du måste vara root för att utföra detta kommando."
- 
--#: ../yumcommands.py:49
-+#: ../yumcommands.py:50
- msgid ""
- "\n"
- "You have enabled checking of packages via GPG keys. This is a good thing. \n"
-@@ -1151,335 +1313,335 @@ msgstr ""
- "\n"
- "För mer information, kontakta leverantören av din distribution eller paket.\n"
- 
--#: ../yumcommands.py:69
-+#: ../yumcommands.py:70
- #, python-format
- msgid "Error: Need to pass a list of pkgs to %s"
- msgstr "Fel: Behöver skicka en lista paket till %s"
- 
--#: ../yumcommands.py:75
-+#: ../yumcommands.py:76
- msgid "Error: Need an item to match"
- msgstr "Fel: Behöver något att matcha emot"
- 
--#: ../yumcommands.py:81
-+#: ../yumcommands.py:82
- msgid "Error: Need a group or list of groups"
- msgstr "Fel: Behöver en grupp eller lista av grupper"
- 
--#: ../yumcommands.py:90
-+#: ../yumcommands.py:91
- #, python-format
- msgid "Error: clean requires an option: %s"
- msgstr "Fel: clean behöver ett argument: %s"
- 
--#: ../yumcommands.py:95
-+#: ../yumcommands.py:96
- #, python-format
- msgid "Error: invalid clean argument: %r"
- msgstr "Fel: felaktigt argument till clean: %r"
- 
--#: ../yumcommands.py:108
-+#: ../yumcommands.py:109
- msgid "No argument to shell"
- msgstr "Inget argument till skalet"
- 
--#: ../yumcommands.py:110
-+#: ../yumcommands.py:111
- #, python-format
- msgid "Filename passed to shell: %s"
- msgstr "Filnamn skickat till skalet: %s"
- 
--#: ../yumcommands.py:114
-+#: ../yumcommands.py:115
- #, python-format
- msgid "File %s given as argument to shell does not exist."
- msgstr "Filen %s som gavs som ett argument till skalet finns inte."
- 
--#: ../yumcommands.py:120
-+#: ../yumcommands.py:121
- msgid "Error: more than one file given as argument to shell."
- msgstr "Fel: mer än en fil angiven som argument till skalet."
- 
--#: ../yumcommands.py:169
-+#: ../yumcommands.py:170
- msgid "PACKAGE..."
- msgstr "PAKET..."
- 
--#: ../yumcommands.py:172
-+#: ../yumcommands.py:173
- msgid "Install a package or packages on your system"
- msgstr "Installera ett eller flera paket på ditt system"
- 
--#: ../yumcommands.py:180
-+#: ../yumcommands.py:181
- msgid "Setting up Install Process"
- msgstr "Förbereder installationsprocessen"
- 
--#: ../yumcommands.py:191
-+#: ../yumcommands.py:192
- msgid "[PACKAGE...]"
- msgstr "[PAKET...]"
- 
--#: ../yumcommands.py:194
-+#: ../yumcommands.py:195
- msgid "Update a package or packages on your system"
- msgstr "Uppdatera ett eller flera paket på ditt system"
- 
--#: ../yumcommands.py:201
-+#: ../yumcommands.py:202
- msgid "Setting up Update Process"
- msgstr "Förbereder uppdateringsprocessen"
- 
--#: ../yumcommands.py:246
-+#: ../yumcommands.py:244
- msgid "Display details about a package or group of packages"
- msgstr "Visa detaljer om ett paket eller en grupp paket"
- 
--#: ../yumcommands.py:295
-+#: ../yumcommands.py:293
- msgid "Installed Packages"
- msgstr "Installerade paket"
- 
--#: ../yumcommands.py:303
-+#: ../yumcommands.py:301
- msgid "Available Packages"
- msgstr "Tillgängliga paket"
- 
--#: ../yumcommands.py:307
-+#: ../yumcommands.py:305
- msgid "Extra Packages"
- msgstr "Extra paket"
- 
--#: ../yumcommands.py:311
-+#: ../yumcommands.py:309
- msgid "Updated Packages"
- msgstr "Uppdaterade paket"
- 
- #. This only happens in verbose mode
--#: ../yumcommands.py:319 ../yumcommands.py:326 ../yumcommands.py:603
-+#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:601
- msgid "Obsoleting Packages"
- msgstr "Fasar ut paket"
- 
--#: ../yumcommands.py:328
-+#: ../yumcommands.py:326
- msgid "Recently Added Packages"
- msgstr "Nyligen tillagda paket"
- 
--#: ../yumcommands.py:335
-+#: ../yumcommands.py:333
- msgid "No matching Packages to list"
- msgstr "Inga matchande paket att lista"
- 
--#: ../yumcommands.py:349
-+#: ../yumcommands.py:347
- msgid "List a package or groups of packages"
- msgstr "Lista ett paket eller en grupp paket"
- 
--#: ../yumcommands.py:361
-+#: ../yumcommands.py:359
- msgid "Remove a package or packages from your system"
- msgstr "Ta bort ett eller flera paket från ditt system"
- 
--#: ../yumcommands.py:368
-+#: ../yumcommands.py:366
- msgid "Setting up Remove Process"
- msgstr "Förbereder processen att ta bort"
- 
--#: ../yumcommands.py:382
-+#: ../yumcommands.py:380
- msgid "Setting up Group Process"
- msgstr "Förbereder grupprocessen"
- 
--#: ../yumcommands.py:388
-+#: ../yumcommands.py:386
- msgid "No Groups on which to run command"
- msgstr "Inga grupper att köra kommandot på"
- 
--#: ../yumcommands.py:401
-+#: ../yumcommands.py:399
- msgid "List available package groups"
- msgstr "Lista tillgängliga paketgrupper"
- 
--#: ../yumcommands.py:418
-+#: ../yumcommands.py:416
- msgid "Install the packages in a group on your system"
- msgstr "Installera paketen i en grupp på ditt system"
- 
--#: ../yumcommands.py:440
-+#: ../yumcommands.py:438
- msgid "Remove the packages in a group from your system"
- msgstr "Ta bort paketen in en grupp från ditt system"
- 
--#: ../yumcommands.py:467
-+#: ../yumcommands.py:465
- msgid "Display details about a package group"
- msgstr "Visa detaljer om en paketgrupp"
- 
--#: ../yumcommands.py:491
-+#: ../yumcommands.py:489
- msgid "Generate the metadata cache"
- msgstr "Generera metadata-cache:n"
- 
--#: ../yumcommands.py:497
-+#: ../yumcommands.py:495
- msgid "Making cache files for all metadata files."
- msgstr "Skapar cache-filer för alla metadatafiler."
- 
--#: ../yumcommands.py:498
-+#: ../yumcommands.py:496
- msgid "This may take a while depending on the speed of this computer"
- msgstr "Detta kan ta ett tag beroende på datorns fart"
- 
--#: ../yumcommands.py:519
-+#: ../yumcommands.py:517
- msgid "Metadata Cache Created"
- msgstr "Metadata-cache skapad"
- 
--#: ../yumcommands.py:533
-+#: ../yumcommands.py:531
- msgid "Remove cached data"
- msgstr "Ta bort cache:ade data"
- 
--#: ../yumcommands.py:553
-+#: ../yumcommands.py:551
- msgid "Find what package provides the given value"
- msgstr "Ta reda på vilka paket som tillhandahåller det angivna värdet"
- 
--#: ../yumcommands.py:573
-+#: ../yumcommands.py:571
- msgid "Check for available package updates"
- msgstr "Leta efter tillgängliga paketuppdateringar"
- 
--#: ../yumcommands.py:623
-+#: ../yumcommands.py:621
- msgid "Search package details for the given string"
- msgstr "Sök i paketdetaljer efter den angivna strängen"
- 
--#: ../yumcommands.py:629
-+#: ../yumcommands.py:627
- msgid "Searching Packages: "
- msgstr "Söker paket: "
- 
--#: ../yumcommands.py:646
-+#: ../yumcommands.py:644
- msgid "Update packages taking obsoletes into account"
- msgstr "Uppdatera paket med hänsyn tagen till utfasningar"
- 
--#: ../yumcommands.py:654
-+#: ../yumcommands.py:652
- msgid "Setting up Upgrade Process"
- msgstr "Förbereder uppgraderingsprocessen"
- 
--#: ../yumcommands.py:668
-+#: ../yumcommands.py:666
- msgid "Install a local RPM"
- msgstr "Installera en lokal RPM"
- 
--#: ../yumcommands.py:676
-+#: ../yumcommands.py:674
- msgid "Setting up Local Package Process"
- msgstr "Förbereder den lokala paketprocessen"
- 
--#: ../yumcommands.py:695
-+#: ../yumcommands.py:693
- msgid "Determine which package provides the given dependency"
- msgstr "Avgör vilket paket som tillhandahåller ett angivet beroende"
- 
--#: ../yumcommands.py:698
-+#: ../yumcommands.py:696
- msgid "Searching Packages for Dependency:"
- msgstr "Söker i paketen efter beroende:"
- 
--#: ../yumcommands.py:712
-+#: ../yumcommands.py:710
- msgid "Run an interactive yum shell"
- msgstr "Kör ett interactivt yum-skal"
- 
--#: ../yumcommands.py:718
-+#: ../yumcommands.py:716
- msgid "Setting up Yum Shell"
- msgstr "Förbereder ett yum-skal"
- 
--#: ../yumcommands.py:736
-+#: ../yumcommands.py:734
- msgid "List a package's dependencies"
- msgstr "Lista ett pakets beroenden"
- 
--#: ../yumcommands.py:742
-+#: ../yumcommands.py:740
- msgid "Finding dependencies: "
- msgstr "Letar efter beroenden: "
- 
--#: ../yumcommands.py:758
-+#: ../yumcommands.py:756
- msgid "Display the configured software repositories"
- msgstr "Visa konfigurerade programvaruförråd"
- 
--#: ../yumcommands.py:810 ../yumcommands.py:811
-+#: ../yumcommands.py:822 ../yumcommands.py:823
- msgid "enabled"
- msgstr "aktivt"
- 
--#: ../yumcommands.py:819 ../yumcommands.py:820
-+#: ../yumcommands.py:849 ../yumcommands.py:850
- msgid "disabled"
- msgstr "inaktivt"
- 
--#: ../yumcommands.py:834
-+#: ../yumcommands.py:866
- msgid "Repo-id      : "
- msgstr "Förråds-id      : "
- 
--#: ../yumcommands.py:835
-+#: ../yumcommands.py:867
- msgid "Repo-name    : "
- msgstr "Förrådsnamn     : "
- 
--#: ../yumcommands.py:836
-+#: ../yumcommands.py:870
- msgid "Repo-status  : "
- msgstr "Förrådsstatus   : "
- 
--#: ../yumcommands.py:838
-+#: ../yumcommands.py:873
- msgid "Repo-revision: "
- msgstr "Förrådsversion  : "
- 
--#: ../yumcommands.py:842
-+#: ../yumcommands.py:877
- msgid "Repo-tags    : "
- msgstr "Förrådstaggar   : "
- 
--#: ../yumcommands.py:848
-+#: ../yumcommands.py:883
- msgid "Repo-distro-tags: "
- msgstr "Förråds-distro-taggar: "
- 
--#: ../yumcommands.py:853
-+#: ../yumcommands.py:888
- msgid "Repo-updated : "
- msgstr "Förråd uppdaterat: "
- 
--#: ../yumcommands.py:855
-+#: ../yumcommands.py:890
- msgid "Repo-pkgs    : "
- msgstr "Förrådspaket    : "
- 
--#: ../yumcommands.py:856
-+#: ../yumcommands.py:891
- msgid "Repo-size    : "
- msgstr "Förrådstorlek   : "
- 
--#: ../yumcommands.py:863
-+#: ../yumcommands.py:898
- msgid "Repo-baseurl : "
- msgstr "Förrådsbasurl   : "
- 
--#: ../yumcommands.py:871
-+#: ../yumcommands.py:906
- msgid "Repo-metalink: "
- msgstr "Förrådsmetalänk : "
- 
--#: ../yumcommands.py:875
-+#: ../yumcommands.py:910
- msgid "  Updated    : "
- msgstr "  Uppdaterat    :"
- 
--#: ../yumcommands.py:878
-+#: ../yumcommands.py:913
- msgid "Repo-mirrors : "
- msgstr "Förrådspeglar   : "
- 
--#: ../yumcommands.py:882 ../yummain.py:133
--msgid "Unknown"
--msgstr "Okänd"
--
--#: ../yumcommands.py:888
-+#: ../yumcommands.py:923
- #, python-format
- msgid "Never (last: %s)"
- msgstr "Aldrig (senast: %s)"
- 
--#: ../yumcommands.py:890
-+#: ../yumcommands.py:925
- #, python-format
- msgid "Instant (last: %s)"
- msgstr "Omedelbart (senast: %s)"
- 
--#: ../yumcommands.py:893
-+#: ../yumcommands.py:928
- #, python-format
- msgid "%s second(s) (last: %s)"
- msgstr "%s sekunder (senast: %s)"
- 
--#: ../yumcommands.py:895
-+#: ../yumcommands.py:930
- msgid "Repo-expire  : "
- msgstr "Förråd går ut    : "
- 
--#: ../yumcommands.py:898
-+#: ../yumcommands.py:933
- msgid "Repo-exclude : "
- msgstr "Förråd utesluter : "
- 
--#: ../yumcommands.py:902
-+#: ../yumcommands.py:937
- msgid "Repo-include : "
- msgstr "Förråd inkluderar: "
- 
-+#: ../yumcommands.py:941
-+msgid "Repo-excluded: "
-+msgstr "Förråd uteslutet : "
-+
- #. Work out the first (id) and last (enabled/disalbed/count),
- #. then chop the middle (name)...
--#: ../yumcommands.py:912 ../yumcommands.py:938
-+#: ../yumcommands.py:951 ../yumcommands.py:980
- msgid "repo id"
- msgstr "förråds-id"
- 
--#: ../yumcommands.py:926 ../yumcommands.py:927 ../yumcommands.py:941
-+#: ../yumcommands.py:968 ../yumcommands.py:969 ../yumcommands.py:987
- msgid "status"
- msgstr "status"
- 
--#: ../yumcommands.py:939
-+#: ../yumcommands.py:981
- msgid "repo name"
- msgstr "förrådsnamn"
- 
--#: ../yumcommands.py:965
-+#: ../yumcommands.py:1018
- msgid "Display a helpful usage message"
- msgstr "Visa ett hjälpsamt meddelande om användning"
- 
--#: ../yumcommands.py:999
-+#: ../yumcommands.py:1052
- #, python-format
- msgid "No help available for %s"
- msgstr "Ingen hjälp tillgänglig för %s"
- 
--#: ../yumcommands.py:1004
-+#: ../yumcommands.py:1057
- msgid ""
- "\n"
- "\n"
-@@ -1489,7 +1651,7 @@ msgstr ""
- "\n"
- "alias: "
- 
--#: ../yumcommands.py:1006
-+#: ../yumcommands.py:1059
- msgid ""
- "\n"
- "\n"
-@@ -1499,148 +1661,98 @@ msgstr ""
- "\n"
- "alias: "
- 
--#: ../yumcommands.py:1034
-+#: ../yumcommands.py:1087
- msgid "Setting up Reinstall Process"
- msgstr "Förbereder ominstallationsprocessen"
- 
--#: ../yumcommands.py:1042
-+#: ../yumcommands.py:1095
- msgid "reinstall a package"
- msgstr "ominstallera ett paket"
- 
--#: ../yumcommands.py:1060
-+#: ../yumcommands.py:1113
- msgid "Setting up Downgrade Process"
- msgstr "Förbereder nedgraderingsprocessen"
- 
--#: ../yumcommands.py:1067
-+#: ../yumcommands.py:1120
- msgid "downgrade a package"
- msgstr "nedgradera ett paket"
- 
--#: ../yumcommands.py:1081
-+#: ../yumcommands.py:1134
- msgid "Display a version for the machine and/or available repos."
- msgstr "Visa en version för maskinen och/eller tillgängliga förråd."
- 
--#: ../yumcommands.py:1111
-+#: ../yumcommands.py:1173
- msgid " Yum version groups:"
--msgstr ""
-+msgstr " Yum versionsgrupper:"
- 
--#: ../yumcommands.py:1121
--#, fuzzy
-+#: ../yumcommands.py:1183
- msgid " Group   :"
--msgstr " Grupp-id: %s"
-+msgstr " Grupp:"
- 
--#: ../yumcommands.py:1122
--#, fuzzy
-+#: ../yumcommands.py:1184
- msgid " Packages:"
--msgstr "Paket"
-+msgstr " Paket:"
- 
--#: ../yumcommands.py:1152
-+#: ../yumcommands.py:1213
- msgid "Installed:"
- msgstr "Installerade:"
- 
--#: ../yumcommands.py:1157
--#, fuzzy
-+#: ../yumcommands.py:1218
- msgid "Group-Installed:"
--msgstr "Installerade:"
-+msgstr "Gruppinstallerade:"
- 
--#: ../yumcommands.py:1166
-+#: ../yumcommands.py:1227
- msgid "Available:"
- msgstr "Tillgängliga:"
- 
--#: ../yumcommands.py:1172
--#, fuzzy
-+#: ../yumcommands.py:1233
- msgid "Group-Available:"
--msgstr "Tillgängliga:"
-+msgstr "Grupptillgängliga:"
- 
--#: ../yumcommands.py:1211
-+#: ../yumcommands.py:1272
- msgid "Display, or use, the transaction history"
--msgstr ""
-+msgstr "Visa, eller använd, transaktionshistorien"
- 
--#: ../yumcommands.py:1239
-+#: ../yumcommands.py:1300
- #, python-format
- msgid "Invalid history sub-command, use: %s."
--msgstr ""
--
--#: ../yummain.py:128
--msgid "Running"
--msgstr "Kör"
-+msgstr "Ogiltigt underkommando till history, använd: %s."
- 
--#: ../yummain.py:129
--msgid "Sleeping"
--msgstr "Sover"
--
--#: ../yummain.py:130
--msgid "Uninteruptable"
--msgstr "Oavbrytbar"
-+#: ../yumcommands.py:1345
-+msgid "Check for problems in the rpmdb"
-+msgstr "Kontrollera om det finns problem i rpmdb:n"
- 
--#: ../yummain.py:131
--msgid "Zombie"
--msgstr "Zombie"
--
--#: ../yummain.py:132
--msgid "Traced/Stopped"
--msgstr "Spårad/Stoppad"
--
--#: ../yummain.py:137
--msgid "  The other application is: PackageKit"
--msgstr "  Det andra programmet är: PackageKit"
--
--#: ../yummain.py:139
--#, python-format
--msgid "  The other application is: %s"
--msgstr "  Det andra programmet är: %s"
--
--#: ../yummain.py:142
--#, python-format
--msgid "    Memory : %5s RSS (%5sB VSZ)"
--msgstr "    Minne   : %5s RSS (%5s B VSZ)"
--
--#: ../yummain.py:146
--#, python-format
--msgid "    Started: %s - %s ago"
--msgstr "    Startade: %s - för %s sedan"
--
--#: ../yummain.py:148
--#, python-format
--msgid "    State  : %s, pid: %d"
--msgstr "    Status  : %s, pid: %d"
--
--#: ../yummain.py:173
-+#: ../yummain.py:102
- msgid ""
- "Another app is currently holding the yum lock; waiting for it to exit..."
- msgstr ""
- "Ett annat program håller för närvarande yum-låset, väntar på att den skall "
- "avsluta ..."
- 
--#: ../yummain.py:201 ../yummain.py:240
-+#: ../yummain.py:130 ../yummain.py:169
- #, python-format
- msgid "Error: %s"
- msgstr "Fel: %s"
- 
--#: ../yummain.py:211 ../yummain.py:253
-+#: ../yummain.py:140 ../yummain.py:182
- #, python-format
- msgid "Unknown Error(s): Exit Code: %d:"
- msgstr "Okänt fel: Felkod: %d:"
- 
- #. Depsolve stage
--#: ../yummain.py:218
-+#: ../yummain.py:147
- msgid "Resolving Dependencies"
- msgstr "Löser upp beroenden"
- 
--#: ../yummain.py:242
-+#: ../yummain.py:173
- msgid " You could try using --skip-broken to work around the problem"
- msgstr " Du kan försöka använda --skip-broken för att gå runt problemet"
- 
--#: ../yummain.py:243
--msgid ""
--" You could try running: package-cleanup --problems\n"
--"                        package-cleanup --dupes\n"
--"                        rpm -Va --nofiles --nodigest"
--msgstr ""
--" Du kan försöka köra: package-cleanup --problems\n"
--"                      package-cleanup --dupes\n"
--"                      rpm -Va --nofiles --nodigest"
-+#: ../yummain.py:175 ../yummain.py:208
-+msgid " You could try running: rpm -Va --nofiles --nodigest"
-+msgstr " Du kan försöka köra: rpm -Va --nofiles --nodigest"
- 
--#: ../yummain.py:259
-+#: ../yummain.py:188
- msgid ""
- "\n"
- "Dependencies Resolved"
-@@ -1648,7 +1760,7 @@ msgstr ""
- "\n"
- "Beroenden upplösta"
- 
--#: ../yummain.py:326
-+#: ../yummain.py:265
- msgid ""
- "\n"
- "\n"
-@@ -1686,170 +1798,165 @@ msgstr "Potentiell match av %s från %s"
- msgid "Matched %s to require for %s"
- msgstr "Matchade %s mot behov från %s"
- 
--#: ../yum/depsolve.py:224
-+#: ../yum/depsolve.py:225
- #, python-format
- msgid "Member: %s"
- msgstr "Medlem: %s"
- 
--#: ../yum/depsolve.py:238 ../yum/depsolve.py:749
-+#: ../yum/depsolve.py:239 ../yum/depsolve.py:754
- #, python-format
- msgid "%s converted to install"
- msgstr "%s konverterad till att installera"
- 
--#: ../yum/depsolve.py:245
-+#: ../yum/depsolve.py:246
- #, python-format
- msgid "Adding Package %s in mode %s"
- msgstr "Lägger till paket %s i läge %s"
- 
--#: ../yum/depsolve.py:255
-+#: ../yum/depsolve.py:256
- #, python-format
- msgid "Removing Package %s"
- msgstr "Tar bort paket %s"
- 
--#: ../yum/depsolve.py:277
-+#: ../yum/depsolve.py:278
- #, python-format
- msgid "%s requires: %s"
- msgstr "%s behöver: %s"
- 
--#: ../yum/depsolve.py:335
-+#: ../yum/depsolve.py:319
-+#, python-format
-+msgid "%s requires %s"
-+msgstr "%s behöver %s"
-+
-+#: ../yum/depsolve.py:346
- msgid "Needed Require has already been looked up, cheating"
- msgstr "Nödvändigt behov har redan slagits upp, fuskar"
- 
--#: ../yum/depsolve.py:345
-+#: ../yum/depsolve.py:356
- #, python-format
- msgid "Needed Require is not a package name. Looking up: %s"
- msgstr "Nödvändigt behov är inte ett paketnamn.  Slår upp: %s"
- 
--#: ../yum/depsolve.py:352
-+#: ../yum/depsolve.py:363
- #, python-format
- msgid "Potential Provider: %s"
- msgstr "Potentiell tillhandahållare: %s"
- 
--#: ../yum/depsolve.py:375
-+#: ../yum/depsolve.py:386
- #, python-format
- msgid "Mode is %s for provider of %s: %s"
- msgstr "Läget är %s för tillhandahållare av %s: %s"
- 
--#: ../yum/depsolve.py:379
-+#: ../yum/depsolve.py:390
- #, python-format
- msgid "Mode for pkg providing %s: %s"
- msgstr "Läge för paket som tillhandahåller %s: %s"
- 
--#: ../yum/depsolve.py:383
-+#: ../yum/depsolve.py:394
- #, python-format
- msgid "TSINFO: %s package requiring %s marked as erase"
- msgstr "TSINFO: paket %s behöver %s noteras att raderas"
- 
--#: ../yum/depsolve.py:396
-+#: ../yum/depsolve.py:407
- #, python-format
- msgid "TSINFO: Obsoleting %s with %s to resolve dep."
- msgstr "TSINFO: Fasar ut %s med %s för att lösa upp beroenden."
- 
--#: ../yum/depsolve.py:399
-+#: ../yum/depsolve.py:410
- #, python-format
- msgid "TSINFO: Updating %s to resolve dep."
- msgstr "TSINFO: Uppdaterar %s för att lösa upp beroenden"
- 
--#: ../yum/depsolve.py:407
-+#: ../yum/depsolve.py:418
- #, python-format
- msgid "Cannot find an update path for dep for: %s"
- msgstr "Hittar ingen uppdateringsväg för beroende för: %s"
- 
--#: ../yum/depsolve.py:417
--#, python-format
--msgid "Unresolvable requirement %s for %s"
--msgstr "Ej upplösbart behov %s för %s"
--
--#: ../yum/depsolve.py:440
-+#: ../yum/depsolve.py:449
- #, python-format
- msgid "Quick matched %s to require for %s"
- msgstr "Snabb matcning av %s mot behov för %s"
- 
- #. is it already installed?
--#: ../yum/depsolve.py:482
-+#: ../yum/depsolve.py:491
- #, python-format
- msgid "%s is in providing packages but it is already installed, removing."
- msgstr ""
- "%s finns bland tillhandahållande paket men det är redan installerat, tar "
- "bort."
- 
--#: ../yum/depsolve.py:498
-+#: ../yum/depsolve.py:507
- #, python-format
- msgid "Potential resolving package %s has newer instance in ts."
- msgstr "Potentiellt upplösande paket %s har nyare instans i ts."
- 
--#: ../yum/depsolve.py:509
-+#: ../yum/depsolve.py:518
- #, python-format
- msgid "Potential resolving package %s has newer instance installed."
- msgstr "Potentiellt upplösande paket %s har nyare instans installerad."
- 
--#: ../yum/depsolve.py:517 ../yum/depsolve.py:563
--#, python-format
--msgid "Missing Dependency: %s is needed by package %s"
--msgstr "Saknat beroende: %s behövs av paketet %s"
--
--#: ../yum/depsolve.py:530
-+#: ../yum/depsolve.py:536
- #, python-format
- msgid "%s already in ts, skipping this one"
- msgstr "%s är redan i ts, hoppar över denna"
- 
--#: ../yum/depsolve.py:573
-+#: ../yum/depsolve.py:578
- #, python-format
- msgid "TSINFO: Marking %s as update for %s"
- msgstr "TSINFO: Noterar %s som en uppdatering av %s"
- 
--#: ../yum/depsolve.py:581
-+#: ../yum/depsolve.py:586
- #, python-format
- msgid "TSINFO: Marking %s as install for %s"
- msgstr "TSINFO: Noterar %s som en installation av %s"
- 
--#: ../yum/depsolve.py:685 ../yum/depsolve.py:767
-+#: ../yum/depsolve.py:690 ../yum/depsolve.py:781
- msgid "Success - empty transaction"
- msgstr "Klart - tom transaktion"
- 
--#: ../yum/depsolve.py:724 ../yum/depsolve.py:739
-+#: ../yum/depsolve.py:729 ../yum/depsolve.py:744
- msgid "Restarting Loop"
- msgstr "Startar om slingan"
- 
--#: ../yum/depsolve.py:755
-+#: ../yum/depsolve.py:760
- msgid "Dependency Process ending"
- msgstr "Beroendeprocessen avslutas"
- 
--#: ../yum/depsolve.py:761
-+#: ../yum/depsolve.py:774
- #, python-format
- msgid "%s from %s has depsolving problems"
- msgstr "%s från %s har problem att lösa beroenden"
- 
--#: ../yum/depsolve.py:768
-+#: ../yum/depsolve.py:782
- msgid "Success - deps resolved"
- msgstr "Klart - beroenden upplösta"
- 
--#: ../yum/depsolve.py:782
-+#: ../yum/depsolve.py:796
- #, python-format
- msgid "Checking deps for %s"
- msgstr "Kontrollerar beroenden för %s"
- 
--#: ../yum/depsolve.py:865
-+#: ../yum/depsolve.py:874
- #, python-format
- msgid "looking for %s as a requirement of %s"
- msgstr "letar efter %s som ett behov för %s"
- 
--#: ../yum/depsolve.py:1007
-+#: ../yum/depsolve.py:1090
- #, python-format
- msgid "Running compare_providers() for %s"
- msgstr "Kör compare_providers() för %s"
- 
--#: ../yum/depsolve.py:1041 ../yum/depsolve.py:1047
-+#: ../yum/depsolve.py:1117 ../yum/depsolve.py:1123
- #, python-format
- msgid "better arch in po %s"
- msgstr "bättre arkitektur i po %s"
- 
--#: ../yum/depsolve.py:1142
-+#: ../yum/depsolve.py:1218
- #, python-format
- msgid "%s obsoletes %s"
- msgstr "%s fasar ut %s"
- 
--#: ../yum/depsolve.py:1154
-+#: ../yum/depsolve.py:1230
- #, python-format
- msgid ""
- "archdist compared %s to %s on %s\n"
-@@ -1858,103 +1965,122 @@ msgstr ""
- "arkitekturavstånd jämför %s med %s på %s\n"
- "  Vinnare: %s"
- 
--#: ../yum/depsolve.py:1161
-+#: ../yum/depsolve.py:1237
- #, python-format
- msgid "common sourcerpm %s and %s"
- msgstr "samma käll-rpm %s och %s"
- 
--#: ../yum/depsolve.py:1167
-+#: ../yum/depsolve.py:1241
-+#, python-format
-+msgid "base package %s is installed for %s"
-+msgstr "baspaket %s är installerat för %s"
-+
-+#: ../yum/depsolve.py:1247
- #, python-format
- msgid "common prefix of %s between %s and %s"
- msgstr "gemensamt prefix för %s mellan %s och %s"
- 
--#: ../yum/depsolve.py:1175
-+#: ../yum/depsolve.py:1256
- #, python-format
- msgid "Best Order: %s"
- msgstr "Bästa ordning: %s"
- 
--#: ../yum/__init__.py:187
-+#: ../yum/__init__.py:192
- msgid "doConfigSetup() will go away in a future version of Yum.\n"
- msgstr "doConfigSetup() kommer att försvinna i en framtida version av Yum.\n"
- 
--#: ../yum/__init__.py:412
-+#: ../yum/__init__.py:424
- #, python-format
- msgid "Repository %r is missing name in configuration, using id"
- msgstr "Förrådet %r saknar namn i konfigurationen, använder id"
- 
--#: ../yum/__init__.py:450
-+#: ../yum/__init__.py:462
- msgid "plugins already initialised"
- msgstr "insticksmoduler redan initierade"
- 
--#: ../yum/__init__.py:457
-+#: ../yum/__init__.py:469
- msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
- msgstr "doRpmDBSetup() kommer att försvinna i en framtida version av Yum.\n"
- 
--#: ../yum/__init__.py:468
-+#: ../yum/__init__.py:480
- msgid "Reading Local RPMDB"
- msgstr "Läser lokal RPMDB"
- 
--#: ../yum/__init__.py:489
-+#: ../yum/__init__.py:504
- msgid "doRepoSetup() will go away in a future version of Yum.\n"
- msgstr "doRepoSetup() kommer att försvinna i en framtida version av Yum.\n"
- 
--#: ../yum/__init__.py:509
-+#: ../yum/__init__.py:524
- msgid "doSackSetup() will go away in a future version of Yum.\n"
- msgstr "doSackSetup() kommer att försvinna i en framtida version av Yum.\n"
- 
--#: ../yum/__init__.py:539
-+#: ../yum/__init__.py:554
- msgid "Setting up Package Sacks"
- msgstr "Förbereder paketsäckar"
- 
--#: ../yum/__init__.py:584
-+#: ../yum/__init__.py:599
- #, python-format
- msgid "repo object for repo %s lacks a _resetSack method\n"
- msgstr "förrådsobjekt för förrådet %s saknar en _resetSack-metod\n"
- 
--#: ../yum/__init__.py:585
-+#: ../yum/__init__.py:600
- msgid "therefore this repo cannot be reset.\n"
- msgstr "därför kan inte detta förråd återställas.\n"
- 
--#: ../yum/__init__.py:590
-+#: ../yum/__init__.py:605
- msgid "doUpdateSetup() will go away in a future version of Yum.\n"
- msgstr "doUpdateSetup() kommer att försvinna i en framtida version av Yum.\n"
- 
--#: ../yum/__init__.py:602
-+#: ../yum/__init__.py:617
- msgid "Building updates object"
- msgstr "Bygger uppdateringsobjekt"
- 
--#: ../yum/__init__.py:637
-+#: ../yum/__init__.py:652
- msgid "doGroupSetup() will go away in a future version of Yum.\n"
- msgstr "doGroupSetup() kommer att försvinna i en framtida version av Yum.\n"
- 
--#: ../yum/__init__.py:662
-+#: ../yum/__init__.py:677
- msgid "Getting group metadata"
- msgstr "Hämtar gruppmetadata"
- 
--#: ../yum/__init__.py:688
-+#: ../yum/__init__.py:703
- #, python-format
- msgid "Adding group file from repository: %s"
- msgstr "Lägger till gruppfil från förrådet: %s"
- 
--#: ../yum/__init__.py:697
-+#: ../yum/__init__.py:712
- #, python-format
- msgid "Failed to add groups file for repository: %s - %s"
- msgstr "Kunde inte lägga till gruppfil för förrådet: %s - %s"
- 
--#: ../yum/__init__.py:703
-+#: ../yum/__init__.py:718
- msgid "No Groups Available in any repository"
- msgstr "Inga grupper tillgängliga i något förråd"
- 
--#: ../yum/__init__.py:763
-+#: ../yum/__init__.py:730
-+msgid "Getting pkgtags metadata"
-+msgstr "Hämtar pakettaggsmetadata"
-+
-+#: ../yum/__init__.py:740
-+#, python-format
-+msgid "Adding tags from repository: %s"
-+msgstr "Lägger till taggar från förrådet: %s"
-+
-+#: ../yum/__init__.py:749
-+#, python-format
-+msgid "Failed to add Pkg Tags for repository: %s - %s"
-+msgstr "Kunde inte lägga till pakettaggar för förrådet: %s - %s"
-+
-+#: ../yum/__init__.py:827
- msgid "Importing additional filelist information"
- msgstr "Importerar ytterligare fillisteinformation"
- 
--#: ../yum/__init__.py:777
-+#: ../yum/__init__.py:841
- #, python-format
- msgid "The program %s%s%s is found in the yum-utils package."
- msgstr "Programmet %s%s%s finns i paketet yum-utils."
- 
--#: ../yum/__init__.py:785
-+#: ../yum/__init__.py:849
- msgid ""
- "There are unfinished transactions remaining. You might consider running yum-"
- "complete-transaction first to finish them."
-@@ -1962,17 +2088,18 @@ msgstr ""
- "Det finns oavslutade transaktioner kvar.  Du kan överväga att köra "
- "yumcomplete-transaction först för att avsluta dem."
- 
--#: ../yum/__init__.py:853
-+#. Kind of hacky
-+#: ../yum/__init__.py:922
- #, python-format
- msgid "Skip-broken round %i"
- msgstr "Hoppa-över-trasiga runda %i"
- 
--#: ../yum/__init__.py:906
-+#: ../yum/__init__.py:975
- #, python-format
- msgid "Skip-broken took %i rounds "
- msgstr "Hoppa-över-trasiga tog %i rundor "
- 
--#: ../yum/__init__.py:907
-+#: ../yum/__init__.py:976
- msgid ""
- "\n"
- "Packages skipped because of dependency problems:"
-@@ -1980,78 +2107,91 @@ msgstr ""
- "\n"
- "Paket hoppades över på grund av beroendeproblem:"
- 
--#: ../yum/__init__.py:911
-+#: ../yum/__init__.py:980
- #, python-format
- msgid "    %s from %s"
- msgstr "    %s från %s"
- 
--#: ../yum/__init__.py:1083
-+#: ../yum/__init__.py:1121
-+msgid "Warning: RPMDB altered outside of yum."
-+msgstr "Varning: RPMDB ändrad utanför yum."
-+
-+#: ../yum/__init__.py:1126
-+msgid "missing requires"
-+msgstr "saknade behov"
-+
-+#: ../yum/__init__.py:1127
-+msgid "installed conflict"
-+msgstr "installerade konflikter"
-+
-+#: ../yum/__init__.py:1180
- msgid ""
- "Warning: scriptlet or other non-fatal errors occurred during transaction."
- msgstr ""
- "Varning: skript- eller annat icke ödesdigert fel inträffade under "
- "transaktionen."
- 
--#: ../yum/__init__.py:1101
-+#: ../yum/__init__.py:1198
- #, python-format
- msgid "Failed to remove transaction file %s"
- msgstr "Kunde inte ta bort transaktionsfilen %s"
- 
- #. maybe a file log here, too
- #. but raising an exception is not going to do any good
--#: ../yum/__init__.py:1130
-+#: ../yum/__init__.py:1227
- #, python-format
- msgid "%s was supposed to be installed but is not!"
- msgstr "%s skulle installerats men gjordes det inte!"
- 
- #. maybe a file log here, too
- #. but raising an exception is not going to do any good
--#: ../yum/__init__.py:1169
-+#: ../yum/__init__.py:1266
- #, python-format
- msgid "%s was supposed to be removed but is not!"
- msgstr "%s skulle tagits bort men det gjordes inte!"
- 
- #. Whoa. What the heck happened?
--#: ../yum/__init__.py:1289
-+#: ../yum/__init__.py:1386
- #, python-format
- msgid "Unable to check if PID %s is active"
- msgstr "Kan inte kontrollera om PID %s är aktiv"
- 
- #. Another copy seems to be running.
--#: ../yum/__init__.py:1293
-+#: ../yum/__init__.py:1390
- #, python-format
- msgid "Existing lock %s: another copy is running as pid %s."
- msgstr "Existerande lås %s: en annan kopia kör som pid %s."
- 
- #. Whoa. What the heck happened?
--#: ../yum/__init__.py:1328
-+#: ../yum/__init__.py:1425
- #, python-format
- msgid "Could not create lock at %s: %s "
--msgstr ""
-+msgstr "Kunde inte skapa lås av %s: %s "
- 
--#: ../yum/__init__.py:1373
--msgid "Package does not match intended download"
--msgstr "Paketet matchar inte avsedd det avsett att laddas ner"
-+#: ../yum/__init__.py:1470
-+msgid ""
-+"Package does not match intended download. Suggestion: run yum clean metadata"
-+msgstr "Paketet matchar inte den avsedda hämtningen.  Förslag: kör yum clean metadata"
- 
--#: ../yum/__init__.py:1388
-+#: ../yum/__init__.py:1486
- msgid "Could not perform checksum"
- msgstr "Kunde inte utföra kontrollsummering"
- 
--#: ../yum/__init__.py:1391
-+#: ../yum/__init__.py:1489
- msgid "Package does not match checksum"
- msgstr "Paketet stämmer inte med kontrollsumman"
- 
--#: ../yum/__init__.py:1433
-+#: ../yum/__init__.py:1531
- #, python-format
- msgid "package fails checksum but caching is enabled for %s"
- msgstr "paketet misslyckas med kontrollsumman men cachning är aktiverat för %s"
- 
--#: ../yum/__init__.py:1436 ../yum/__init__.py:1465
-+#: ../yum/__init__.py:1534 ../yum/__init__.py:1563
- #, python-format
- msgid "using local copy of %s"
- msgstr "använder lokal kopia av %s"
- 
--#: ../yum/__init__.py:1477
-+#: ../yum/__init__.py:1575
- #, python-format
- msgid ""
- "Insufficient space in download directory %s\n"
-@@ -2062,11 +2202,11 @@ msgstr ""
- "    * fritt   %s\n"
- "    * behovet %s"
- 
--#: ../yum/__init__.py:1526
-+#: ../yum/__init__.py:1624
- msgid "Header is not complete."
- msgstr "Huvudet är inte komplett."
- 
--#: ../yum/__init__.py:1563
-+#: ../yum/__init__.py:1661
- #, python-format
- msgid ""
- "Header not in local cache and caching-only mode enabled. Cannot download %s"
-@@ -2074,64 +2214,64 @@ msgstr ""
- "Huvudet finns inte i den lokala cachen och endast-cache-läget är aktiverat.  "
- "Kan inte hämta %s"
- 
--#: ../yum/__init__.py:1618
-+#: ../yum/__init__.py:1716
- #, python-format
- msgid "Public key for %s is not installed"
- msgstr "Den publika nyckeln för %s är inte installerad"
- 
--#: ../yum/__init__.py:1622
-+#: ../yum/__init__.py:1720
- #, python-format
- msgid "Problem opening package %s"
- msgstr "Problem att öppna paketet %s"
- 
--#: ../yum/__init__.py:1630
-+#: ../yum/__init__.py:1728
- #, python-format
- msgid "Public key for %s is not trusted"
- msgstr "Den publika nyckeln för %s är inte betrodd"
- 
--#: ../yum/__init__.py:1634
-+#: ../yum/__init__.py:1732
- #, python-format
- msgid "Package %s is not signed"
- msgstr "Paket %s är inte signerat"
- 
--#: ../yum/__init__.py:1672
-+#: ../yum/__init__.py:1770
- #, python-format
- msgid "Cannot remove %s"
- msgstr "Det går inte att ta bort %s"
- 
--#: ../yum/__init__.py:1676
-+#: ../yum/__init__.py:1774
- #, python-format
- msgid "%s removed"
- msgstr "%s borttaget"
- 
- # Första %s blir ett oöversatt engelskt ord.
- # Felrapporterat: http://yum.baseurl.org/ticket/41
--#: ../yum/__init__.py:1712
-+#: ../yum/__init__.py:1820
- #, python-format
- msgid "Cannot remove %s file %s"
- msgstr "Det går inte att ta bort %s-filen %s"
- 
--#: ../yum/__init__.py:1716
-+#: ../yum/__init__.py:1824
- #, python-format
- msgid "%s file %s removed"
- msgstr "%s-filen %s borttagen"
- 
--#: ../yum/__init__.py:1718
-+#: ../yum/__init__.py:1826
- #, python-format
- msgid "%d %s files removed"
- msgstr "%d %s-filer borttagna"
- 
--#: ../yum/__init__.py:1787
-+#: ../yum/__init__.py:1895
- #, python-format
- msgid "More than one identical match in sack for %s"
- msgstr "Mer än en identisk matchning i säcken för %s"
- 
--#: ../yum/__init__.py:1793
-+#: ../yum/__init__.py:1901
- #, python-format
- msgid "Nothing matches %s.%s %s:%s-%s from update"
- msgstr "Ingenting matchar %s.%s %s:%s-%s från uppdateringarna"
- 
--#: ../yum/__init__.py:2026
-+#: ../yum/__init__.py:2180
- msgid ""
- "searchPackages() will go away in a future version of "
- "Yum.                      Use searchGenerator() instead. \n"
-@@ -2139,181 +2279,181 @@ msgstr ""
- "searchPackages() kommer att försvinna i en framtida version av "
- "Yum.                      Använd searchGenerator() istället. \n"
- 
--#: ../yum/__init__.py:2065
-+#: ../yum/__init__.py:2219
- #, python-format
- msgid "Searching %d packages"
- msgstr "Söker i %d paket"
- 
--#: ../yum/__init__.py:2069
-+#: ../yum/__init__.py:2223
- #, python-format
- msgid "searching package %s"
- msgstr "söker i paketet %s"
- 
--#: ../yum/__init__.py:2081
-+#: ../yum/__init__.py:2235
- msgid "searching in file entries"
- msgstr "söker i filposter"
- 
--#: ../yum/__init__.py:2088
-+#: ../yum/__init__.py:2242
- msgid "searching in provides entries"
- msgstr "söker i tillhandahållandeposter"
- 
--#: ../yum/__init__.py:2121
-+#: ../yum/__init__.py:2275
- #, python-format
- msgid "Provides-match: %s"
- msgstr "Tillhandahållandematchning: %s"
- 
--#: ../yum/__init__.py:2170
-+#: ../yum/__init__.py:2324
- msgid "No group data available for configured repositories"
- msgstr "Inga gruppdata är tillgängliga för de konfigurerade förråden"
- 
--#: ../yum/__init__.py:2201 ../yum/__init__.py:2220 ../yum/__init__.py:2251
--#: ../yum/__init__.py:2257 ../yum/__init__.py:2336 ../yum/__init__.py:2340
--#: ../yum/__init__.py:2655
-+#: ../yum/__init__.py:2355 ../yum/__init__.py:2374 ../yum/__init__.py:2405
-+#: ../yum/__init__.py:2411 ../yum/__init__.py:2493 ../yum/__init__.py:2497
-+#: ../yum/__init__.py:2814
- #, python-format
- msgid "No Group named %s exists"
- msgstr "Det finns ingen grupp med namnet %s"
- 
--#: ../yum/__init__.py:2232 ../yum/__init__.py:2353
-+#: ../yum/__init__.py:2386 ../yum/__init__.py:2513
- #, python-format
- msgid "package %s was not marked in group %s"
- msgstr "paket %s noterades inte i gruppen %s"
- 
--#: ../yum/__init__.py:2279
-+#: ../yum/__init__.py:2433
- #, python-format
- msgid "Adding package %s from group %s"
- msgstr "Lägger till paket %s från grupp %s"
- 
--#: ../yum/__init__.py:2283
-+#: ../yum/__init__.py:2437
- #, python-format
- msgid "No package named %s available to be installed"
- msgstr "Inget paket med namnet %s är tillgängligt för installation"
- 
--#: ../yum/__init__.py:2380
-+#: ../yum/__init__.py:2539
- #, python-format
- msgid "Package tuple %s could not be found in packagesack"
- msgstr "Pakettupel %s fanns inte i paketsäcken"
- 
--#: ../yum/__init__.py:2399
--#, fuzzy, python-format
-+#: ../yum/__init__.py:2558
-+#, python-format
- msgid "Package tuple %s could not be found in rpmdb"
--msgstr "Pakettupel %s fanns inte i paketsäcken"
-+msgstr "Pakettupel %s fanns inte i rpmdb"
- 
--#: ../yum/__init__.py:2455 ../yum/__init__.py:2505
-+#: ../yum/__init__.py:2614 ../yum/__init__.py:2664
- msgid "Invalid version flag"
- msgstr "Ogiltig versionsflagga"
- 
--#: ../yum/__init__.py:2475 ../yum/__init__.py:2480
-+#: ../yum/__init__.py:2634 ../yum/__init__.py:2639
- #, python-format
- msgid "No Package found for %s"
- msgstr "Inga paket hittades för %s"
- 
--#: ../yum/__init__.py:2696
-+#: ../yum/__init__.py:2855
- msgid "Package Object was not a package object instance"
- msgstr "Paketobjektet var inte en paketobjektinstans"
- 
--#: ../yum/__init__.py:2700
-+#: ../yum/__init__.py:2859
- msgid "Nothing specified to install"
- msgstr "Inget angivet att installeras"
- 
--#: ../yum/__init__.py:2716 ../yum/__init__.py:3489
-+#: ../yum/__init__.py:2875 ../yum/__init__.py:3652
- #, python-format
- msgid "Checking for virtual provide or file-provide for %s"
- msgstr ""
- "Kontrollerar virtuella tillhandahållanden eller filtillhandahållanden för %s"
- 
--#: ../yum/__init__.py:2722 ../yum/__init__.py:3037 ../yum/__init__.py:3205
--#: ../yum/__init__.py:3495
-+#: ../yum/__init__.py:2881 ../yum/__init__.py:3197 ../yum/__init__.py:3365
-+#: ../yum/__init__.py:3658
- #, python-format
- msgid "No Match for argument: %s"
- msgstr "Ingen matchning för argument: %s"
- 
--#: ../yum/__init__.py:2798
-+#: ../yum/__init__.py:2957
- #, python-format
- msgid "Package %s installed and not available"
- msgstr "Paket %s installerat och inte tillgänligt"
- 
--#: ../yum/__init__.py:2801
-+#: ../yum/__init__.py:2960
- msgid "No package(s) available to install"
- msgstr "Inga paket tillgängliga att installera"
- 
--#: ../yum/__init__.py:2813
-+#: ../yum/__init__.py:2972
- #, python-format
- msgid "Package: %s  - already in transaction set"
- msgstr "Paket: %s - redan i transaktionsmängden"
- 
--#: ../yum/__init__.py:2839
-+#: ../yum/__init__.py:2998
- #, python-format
- msgid "Package %s is obsoleted by %s which is already installed"
- msgstr "Paket %s fasas ut av %s, som redan är installerat"
- 
--#: ../yum/__init__.py:2842
-+#: ../yum/__init__.py:3001
- #, python-format
- msgid "Package %s is obsoleted by %s, trying to install %s instead"
- msgstr "Paket %s fasas ut av %s, försöker installera %s istället"
- 
--#: ../yum/__init__.py:2850
-+#: ../yum/__init__.py:3009
- #, python-format
- msgid "Package %s already installed and latest version"
--msgstr "Paket %s är redan installerast och senaste version"
-+msgstr "Paket %s är redan installerat och senaste version"
- 
--#: ../yum/__init__.py:2864
-+#: ../yum/__init__.py:3023
- #, python-format
- msgid "Package matching %s already installed. Checking for update."
- msgstr "Paket som matchar %s är redan installerat.  Letar efter uppdatering."
- 
- #. update everything (the easy case)
--#: ../yum/__init__.py:2966
-+#: ../yum/__init__.py:3126
- msgid "Updating Everything"
- msgstr "Uppdaterar allt"
- 
--#: ../yum/__init__.py:2987 ../yum/__init__.py:3102 ../yum/__init__.py:3129
--#: ../yum/__init__.py:3155
-+#: ../yum/__init__.py:3147 ../yum/__init__.py:3262 ../yum/__init__.py:3289
-+#: ../yum/__init__.py:3315
- #, python-format
- msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
- msgstr "Uppdaterar inte paket som redan är utfasade: %s.%s %s:%s-%s"
- 
--#: ../yum/__init__.py:3022 ../yum/__init__.py:3202
-+#: ../yum/__init__.py:3182 ../yum/__init__.py:3362
- #, python-format
- msgid "%s"
- msgstr "%s"
- 
--#: ../yum/__init__.py:3093
-+#: ../yum/__init__.py:3253
- #, python-format
- msgid "Package is already obsoleted: %s.%s %s:%s-%s"
- msgstr "Paketet är redan utfasat: %s.%s %s:%s-%s"
- 
--#: ../yum/__init__.py:3124
-+#: ../yum/__init__.py:3284
- #, python-format
- msgid "Not Updating Package that is obsoleted: %s"
--msgstr "Uppdaterar inte paket som är utfasade: %s"
-+msgstr "Uppdaterar inte paket som fasas ut: %s"
- 
--#: ../yum/__init__.py:3133 ../yum/__init__.py:3159
-+#: ../yum/__init__.py:3293 ../yum/__init__.py:3319
- #, python-format
- msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
- msgstr "Uppdaterar inte paket som redan är uppdaterat: %s.%s %s:%s-%s"
- 
--#: ../yum/__init__.py:3218
-+#: ../yum/__init__.py:3378
- msgid "No package matched to remove"
--msgstr "Inget paket matchar att tas bort"
-+msgstr "Inget paket att tas bort matchar"
- 
--#: ../yum/__init__.py:3251 ../yum/__init__.py:3349 ../yum/__init__.py:3432
-+#: ../yum/__init__.py:3412
- #, python-format
--msgid "Cannot open file: %s. Skipping."
--msgstr "Det går inte att öppna filen: %s.  Hoppar över."
-+msgid "Cannot open: %s. Skipping."
-+msgstr "Det går inte att öppna: %s.  Hoppar över."
- 
--#: ../yum/__init__.py:3254 ../yum/__init__.py:3352 ../yum/__init__.py:3435
-+#: ../yum/__init__.py:3415 ../yum/__init__.py:3514 ../yum/__init__.py:3598
- #, python-format
- msgid "Examining %s: %s"
- msgstr "Undersöker %s: %s"
- 
--#: ../yum/__init__.py:3262 ../yum/__init__.py:3355 ../yum/__init__.py:3438
-+#: ../yum/__init__.py:3423 ../yum/__init__.py:3517 ../yum/__init__.py:3601
- #, python-format
- msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
- msgstr ""
- "Kan inte lägga till paket %s till transaktionen.  Inte en kompatibel "
- "arkitektur: %s"
- 
--#: ../yum/__init__.py:3270
-+#: ../yum/__init__.py:3431
- #, python-format
- msgid ""
- "Package %s not installed, cannot update it. Run yum install to install it "
-@@ -2322,98 +2462,108 @@ msgstr ""
- "Paket %s är inte installerat, kan inte uppdatera det.  Kör yum install för "
- "att installera det istället."
- 
--#: ../yum/__init__.py:3299 ../yum/__init__.py:3360 ../yum/__init__.py:3443
-+#: ../yum/__init__.py:3460 ../yum/__init__.py:3522 ../yum/__init__.py:3606
- #, python-format
- msgid "Excluding %s"
- msgstr "Utesluter %s"
- 
--#: ../yum/__init__.py:3304
-+#: ../yum/__init__.py:3465
- #, python-format
- msgid "Marking %s to be installed"
- msgstr "Noterar %s för installation"
- 
--#: ../yum/__init__.py:3310
-+#: ../yum/__init__.py:3471
- #, python-format
- msgid "Marking %s as an update to %s"
- msgstr "Noterar %s som en uppdatering av %s"
- 
--#: ../yum/__init__.py:3317
-+#: ../yum/__init__.py:3478
- #, python-format
- msgid "%s: does not update installed package."
- msgstr "%s: uppdaterar inte ett installerat paket."
- 
--#: ../yum/__init__.py:3379
-+#: ../yum/__init__.py:3511 ../yum/__init__.py:3595
-+#, python-format
-+msgid "Cannot open file: %s. Skipping."
-+msgstr "Det går inte att öppna filen: %s.  Hoppar över."
-+
-+#: ../yum/__init__.py:3541
- msgid "Problem in reinstall: no package matched to remove"
- msgstr "Problem att ominstallera: inget paket matchades att tas bort"
- 
--#: ../yum/__init__.py:3392 ../yum/__init__.py:3523
-+#: ../yum/__init__.py:3554 ../yum/__init__.py:3686
- #, python-format
- msgid "Package %s is allowed multiple installs, skipping"
- msgstr "Paket %s tillåts multipla installationer, hoppar över"
- 
--#: ../yum/__init__.py:3413
-+#: ../yum/__init__.py:3575
- #, python-format
- msgid "Problem in reinstall: no package %s matched to install"
- msgstr "Problem att ominstallera: inget paket %s matchades att installera"
- 
--#: ../yum/__init__.py:3515
-+#: ../yum/__init__.py:3678
- msgid "No package(s) available to downgrade"
- msgstr "Inga paket tillgängliga att nedgradera"
- 
--#: ../yum/__init__.py:3559
-+#: ../yum/__init__.py:3731
- #, python-format
- msgid "No Match for available package: %s"
- msgstr "Ingen matchning för tillgängliga paket: %s"
- 
--#: ../yum/__init__.py:3565
--#, fuzzy, python-format
-+#: ../yum/__init__.py:3738
-+#, python-format
- msgid "Only Upgrade available on package: %s"
--msgstr "Endast uppdatering tillgängliga för paket: %s"
-+msgstr "Endast uppgradering tillgängliga för paket: %s"
- 
--#: ../yum/__init__.py:3635 ../yum/__init__.py:3672
--#, fuzzy, python-format
-+#: ../yum/__init__.py:3808 ../yum/__init__.py:3845
-+#, python-format
- msgid "Failed to downgrade: %s"
--msgstr "Paket att nedgradera"
-+msgstr "Misslyckades nedgradera: %s"
- 
--#: ../yum/__init__.py:3704
-+#: ../yum/__init__.py:3877
- #, python-format
- msgid "Retrieving GPG key from %s"
- msgstr "Hämtar GPG-nyckel från %s"
- 
--#: ../yum/__init__.py:3724
-+#: ../yum/__init__.py:3897
- msgid "GPG key retrieval failed: "
- msgstr "Hämtandet av GPG-nyckeln misslyckades: "
- 
--#: ../yum/__init__.py:3735
-+#: ../yum/__init__.py:3903
-+#, python-format
-+msgid "Invalid GPG Key from %s: %s"
-+msgstr "Ogiltig GPG-nyckel från %s: %s"
-+
-+#: ../yum/__init__.py:3912
- #, python-format
- msgid "GPG key parsing failed: key does not have value %s"
- msgstr "GPG-nyckeltolkning misslyckades: nyckeln har inte värde %s"
- 
--#: ../yum/__init__.py:3767
-+#: ../yum/__init__.py:3944
- #, python-format
- msgid "GPG key at %s (0x%s) is already installed"
- msgstr "GPG-nyckel vid %s (0x%s) är redan installerad"
- 
- #. Try installing/updating GPG key
--#: ../yum/__init__.py:3772 ../yum/__init__.py:3834
-+#: ../yum/__init__.py:3949 ../yum/__init__.py:4011
- #, python-format
- msgid "Importing GPG key 0x%s \"%s\" from %s"
- msgstr "Importerar GPG-nyckel 0x%s \"%s\" från %s"
- 
--#: ../yum/__init__.py:3789
-+#: ../yum/__init__.py:3966
- msgid "Not installing key"
- msgstr "Installerar inte nyckeln"
- 
--#: ../yum/__init__.py:3795
-+#: ../yum/__init__.py:3972
- #, python-format
- msgid "Key import failed (code %d)"
- msgstr "Nyckelimport misslyckades (kod %d)"
- 
--#: ../yum/__init__.py:3796 ../yum/__init__.py:3855
-+#: ../yum/__init__.py:3973 ../yum/__init__.py:4032
- msgid "Key imported successfully"
- msgstr "Nyckelimport lyckades"
- 
--#: ../yum/__init__.py:3801 ../yum/__init__.py:3860
-+#: ../yum/__init__.py:3978 ../yum/__init__.py:4037
- #, python-format
- msgid ""
- "The GPG keys listed for the \"%s\" repository are already installed but they "
-@@ -2424,41 +2574,46 @@ msgstr ""
- "inte korrekta för detta paket.\n"
- "Kontrollera att de rätta nyckel-URL:erna är konfigurerade för detta förråd."
- 
--#: ../yum/__init__.py:3810
-+#: ../yum/__init__.py:3987
- msgid "Import of key(s) didn't help, wrong key(s)?"
- msgstr "Import av nycklar hjälpte inte, fel nycklar?"
- 
--#: ../yum/__init__.py:3829
-+#: ../yum/__init__.py:4006
- #, python-format
- msgid "GPG key at %s (0x%s) is already imported"
- msgstr "GPG-nyckel vid %s (0x%s) är redan importerad"
- 
--#: ../yum/__init__.py:3849
-+#: ../yum/__init__.py:4026
- #, python-format
- msgid "Not installing key for repo %s"
- msgstr "Installerar inte nyckel för förråd %s"
- 
--#: ../yum/__init__.py:3854
-+#: ../yum/__init__.py:4031
- msgid "Key import failed"
- msgstr "Nyckelimport misslyckades"
- 
--#: ../yum/__init__.py:3976
-+#: ../yum/__init__.py:4157
- msgid "Unable to find a suitable mirror."
- msgstr "Kan inte hitta en lämplig spegel."
- 
--#: ../yum/__init__.py:3978
-+#: ../yum/__init__.py:4159
- msgid "Errors were encountered while downloading packages."
- msgstr "Fel uppstod när paket hämtades."
- 
--#: ../yum/__init__.py:4028
-+#: ../yum/__init__.py:4209
- #, python-format
- msgid "Please report this error at %s"
- msgstr "Rapportera gärna detta fel till %s"
- 
--#: ../yum/__init__.py:4052
-+#: ../yum/__init__.py:4233
- msgid "Test Transaction Errors: "
- msgstr "Transaktionstestfel: "
- 
-+#: ../yum/__init__.py:4334
-+#, python-format
-+msgid "Could not set cachedir: %s"
-+msgstr "Kunde inte sätta cache-katalog: %s"
-+
- #. Mostly copied from YumOutput._outKeyValFill()
- #: ../yum/plugins.py:202
- msgid "Loaded plugins: "
-@@ -2519,7 +2674,20 @@ msgstr "Kan inte hitta konfigurationsfil för insticksmodulen %s"
- msgid "registration of commands not supported"
- msgstr "registrering av kommandon stöds inte"
- 
--#: ../yum/rpmtrans.py:78
-+#: ../yum/rpmsack.py:102
-+msgid "has missing requires of"
-+msgstr "har ett saknat beroende på"
-+
-+#: ../yum/rpmsack.py:105
-+msgid "has installed conflicts"
-+msgstr "har installerad konflikt"
-+
-+#: ../yum/rpmsack.py:114
-+#, python-format
-+msgid "%s is a duplicate with %s"
-+msgstr "%s är en dubblett med %s"
-+
-+#: ../yum/rpmtrans.py:79
- msgid "Repackaging"
- msgstr "Paketerar om"
- 
-@@ -2552,10 +2720,3 @@ msgstr "Trasigt huvud %s"
- #, python-format
- msgid "Error opening rpm %s - error %s"
- msgstr "Fel när rpm %s öppnades - fel %s"
--
--#~ msgid ""
--#~ "getInstalledPackageObject() will go away, use self.rpmdb.searchPkgTuple"
--#~ "().\n"
--#~ msgstr ""
--#~ "getInstalledPackageObject() kommer att försvinna, använd self.rpmdb."
--#~ "searchPkgTuple().\n"
-diff --git a/po/uk.po b/po/uk.po
-new file mode 100644
-index 0000000..cbc03c8
---- /dev/null
-+++ b/po/uk.po
-@@ -0,0 +1,2742 @@
-+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-+# This file is distributed under the same license as the YUM package.
-+#
-+# Yuri Chornoivan <yurchor at ukr.net>, 2010.
-+msgid ""
-+msgstr ""
-+"Project-Id-Version: \n"
-+"Report-Msgid-Bugs-To: \n"
-+"POT-Creation-Date: 2010-02-11 10:54-0500\n"
-+"PO-Revision-Date: 2010-06-16 20:45+0300\n"
-+"Last-Translator: Yuri Chornoivan <yurchor at ukr.net>\n"
-+"Language-Team: Ukrainian <trans-uk at lists.fedoraproject.org>\n"
-+"MIME-Version: 1.0\n"
-+"Content-Type: text/plain; charset=UTF-8\n"
-+"Content-Transfer-Encoding: 8bit\n"
-+"X-Generator: Lokalize 1.1\n"
-+"Plural-Forms: nplurals=1; plural=0;\n"
-+
-+#: ../callback.py:48 ../output.py:947 ../yum/rpmtrans.py:72
-+msgid "Updating"
-+msgstr "Оновлення"
-+
-+#: ../callback.py:49 ../yum/rpmtrans.py:73
-+msgid "Erasing"
-+msgstr "Вилучення"
-+
-+#: ../callback.py:50 ../callback.py:51 ../callback.py:53 ../output.py:946
-+#: ../output.py:1659 ../yum/rpmtrans.py:74 ../yum/rpmtrans.py:75
-+#: ../yum/rpmtrans.py:77
-+msgid "Installing"
-+msgstr "Встановлення"
-+
-+#: ../callback.py:52 ../callback.py:58 ../output.py:1484 ../yum/rpmtrans.py:76
-+msgid "Obsoleted"
-+msgstr "Став застарілим"
-+
-+#: ../callback.py:54 ../output.py:1070 ../output.py:1442 ../output.py:1491
-+msgid "Updated"
-+msgstr "Оновлено"
-+
-+#: ../callback.py:55 ../output.py:1438
-+msgid "Erased"
-+msgstr "Вилучено"
-+
-+#: ../callback.py:56 ../callback.py:57 ../callback.py:59 ../output.py:1068
-+#: ../output.py:1434 ../output.py:1646
-+msgid "Installed"
-+msgstr "Встановлено"
-+
-+#: ../callback.py:130
-+msgid "No header - huh?"
-+msgstr "Немає заголовка — як це?"
-+
-+#: ../callback.py:168
-+msgid "Repackage"
-+msgstr "Перепакувати"
-+
-+#: ../callback.py:189
-+#, python-format
-+msgid "Error: invalid output state: %s for %s"
-+msgstr "Помилка: некоректний стан виводу: %s для %s"
-+
-+#: ../callback.py:212
-+#, python-format
-+msgid "Erased: %s"
-+msgstr "Вилучено: %s"
-+
-+#: ../callback.py:217 ../output.py:948 ../output.py:1648
-+msgid "Removing"
-+msgstr "Вилучення"
-+
-+#: ../callback.py:219 ../yum/rpmtrans.py:78
-+msgid "Cleanup"
-+msgstr "Очищення диска"
-+
-+#: ../cli.py:107
-+#, python-format
-+msgid "Command \"%s\" already defined"
-+msgstr "Команду «%s» вже визначено"
-+
-+#: ../cli.py:119
-+msgid "Setting up repositories"
-+msgstr "Налаштування сховищ"
-+
-+#: ../cli.py:130
-+msgid "Reading repository metadata in from local files"
-+msgstr "Читання метаданих сховища з локальних файлів"
-+
-+#: ../cli.py:194 ../utils.py:193
-+#, python-format
-+msgid "Config Error: %s"
-+msgstr "Помилка налаштування: %s"
-+
-+#: ../cli.py:197 ../cli.py:1272 ../utils.py:196
-+#, python-format
-+msgid "Options Error: %s"
-+msgstr "Помилка у параметрах: %s"
-+
-+#: ../cli.py:227
-+#, python-format
-+msgid "  Installed: %s-%s at %s"
-+msgstr "  Встановлено: %s-%s у %s"
-+
-+#: ../cli.py:229
-+#, python-format
-+msgid "  Built    : %s at %s"
-+msgstr "  Зібрано    : %s о %s"
-+
-+#: ../cli.py:231
-+#, python-format
-+msgid "  Committed: %s at %s"
-+msgstr "  Надіслано  : %s о %s"
-+
-+#: ../cli.py:270
-+msgid "You need to give some command"
-+msgstr "Вам слід вказати якусь команду"
-+
-+#: ../cli.py:284
-+#, python-format
-+msgid "No such command: %s. Please use %s --help"
-+msgstr "Команди %s не виявлено. Будь ласка, скористайтеся командою %s --help"
-+
-+#: ../cli.py:314
-+msgid "Disk Requirements:\n"
-+msgstr "Вимоги до диска:\n"
-+
-+#: ../cli.py:316
-+#, python-format
-+msgid "  At least %dMB more space needed on the %s filesystem.\n"
-+msgstr ""
-+"  Потрібно принаймні ще %d МБ простору на диску для файлової системи %s.\n"
-+
-+#. TODO: simplify the dependency errors?
-+#. Fixup the summary
-+#: ../cli.py:321
-+msgid ""
-+"Error Summary\n"
-+"-------------\n"
-+msgstr ""
-+"Резюме помилок\n"
-+"-------------\n"
-+
-+#: ../cli.py:364
-+msgid "Trying to run the transaction but nothing to do. Exiting."
-+msgstr ""
-+"Спроба виконання операції за умови порожнього списку операцій. Завершуємо "
-+"роботу."
-+
-+#: ../cli.py:403
-+msgid "Exiting on user Command"
-+msgstr "Завершення роботи за бажанням користувача"
-+
-+#: ../cli.py:407
-+msgid "Downloading Packages:"
-+msgstr "Звантаження пакунків:"
-+
-+#: ../cli.py:412
-+msgid "Error Downloading Packages:\n"
-+msgstr "Помилка завантаження пакетів:\n"
-+
-+#: ../cli.py:426 ../yum/__init__.py:4195
-+msgid "Running rpm_check_debug"
-+msgstr "Виконання rpm_check_debug"
-+
-+#: ../cli.py:435 ../yum/__init__.py:4204
-+msgid "ERROR You need to update rpm to handle:"
-+msgstr "ПОМИЛКА. Вам слід оновити rpm для обробки:"
-+
-+#: ../cli.py:437 ../yum/__init__.py:4207
-+msgid "ERROR with rpm_check_debug vs depsolve:"
-+msgstr "ПОМИЛКА у rpm_check_debug через depsolve:"
-+
-+#: ../cli.py:443
-+msgid "RPM needs to be updated"
-+msgstr "RPM слід оновити"
-+
-+#: ../cli.py:444
-+#, python-format
-+msgid "Please report this error in %s"
-+msgstr "Будь ласка, повідомте про цю помилку за адресою %s"
-+
-+#: ../cli.py:450
-+msgid "Running Transaction Test"
-+msgstr "Запускається операція з перевірки"
-+
-+#: ../cli.py:466
-+msgid "Transaction Check Error:\n"
-+msgstr "Помилка під час перевірки операції:\n"
-+
-+#: ../cli.py:473
-+msgid "Transaction Test Succeeded"
-+msgstr "Операцію з перевірки успішно завершено"
-+
-+#: ../cli.py:495
-+msgid "Running Transaction"
-+msgstr "Виконання операції"
-+
-+#: ../cli.py:525
-+msgid ""
-+"Refusing to automatically import keys when running unattended.\n"
-+"Use \"-y\" to override."
-+msgstr ""
-+"Автоматичне імпортування ключів під час некерованого запуску заборонено.\n"
-+"Скасувати заборону можна параметром «-y»."
-+
-+#: ../cli.py:544 ../cli.py:578
-+msgid "  * Maybe you meant: "
-+msgstr "  * Можливо, ви хотіли використати: "
-+
-+#: ../cli.py:561 ../cli.py:569
-+#, python-format
-+msgid "Package(s) %s%s%s available, but not installed."
-+msgstr "Доступні невстановлені пакунки %s%s%s."
-+
-+#: ../cli.py:575 ../cli.py:607 ../cli.py:687
-+#, python-format
-+msgid "No package %s%s%s available."
-+msgstr "Пакунок %s%s%s недоступний."
-+
-+#: ../cli.py:612 ../cli.py:748
-+msgid "Package(s) to install"
-+msgstr "Пакунки, які слід встановити"
-+
-+#: ../cli.py:613 ../cli.py:693 ../cli.py:727 ../cli.py:749
-+#: ../yumcommands.py:160
-+msgid "Nothing to do"
-+msgstr "Нічого виконувати"
-+
-+#: ../cli.py:647
-+#, python-format
-+msgid "%d packages marked for Update"
-+msgstr "%d пакунків позначено для оновлення"
-+
-+#: ../cli.py:650
-+msgid "No Packages marked for Update"
-+msgstr "Для оновлення не позначено жодного пакунка"
-+
-+#: ../cli.py:664
-+#, python-format
-+msgid "%d packages marked for removal"
-+msgstr "%d пакунків позначено для вилучення"
-+
-+#: ../cli.py:667
-+msgid "No Packages marked for removal"
-+msgstr "Для вилучення не позначено жодного пакунка"
-+
-+#: ../cli.py:692
-+msgid "Package(s) to downgrade"
-+msgstr "Пакунки, версію яких слід знизити"
-+
-+#: ../cli.py:717
-+#, python-format
-+msgid " (from %s)"
-+msgstr " (з %s)"
-+
-+#: ../cli.py:719
-+#, python-format
-+msgid "Installed package %s%s%s%s not available."
-+msgstr "Встановлений пакунок %s%s%s%s недоступний."
-+
-+#: ../cli.py:726
-+msgid "Package(s) to reinstall"
-+msgstr "Пакунки для перевстановлення"
-+
-+#: ../cli.py:739
-+msgid "No Packages Provided"
-+msgstr "Не надано жодного пакунка"
-+
-+#: ../cli.py:818
-+#, python-format
-+msgid "Matched: %s"
-+msgstr "Відповідників: %s"
-+
-+#: ../cli.py:825
-+#, python-format
-+msgid "Warning: No matches found for: %s"
-+msgstr "Попередження: відповідників %s не знайдено"
-+
-+#: ../cli.py:828
-+msgid "No Matches found"
-+msgstr "Не знайдено відповідників"
-+
-+#: ../cli.py:868
-+#, 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 ""
-+"Попередження: у версіях 3.0.x yum відповідність назв файлів встановлюється з "
-+"помилками.\n"
-+" Щоб знайти відповідники, вам слід скористатися «%s*/%s%s» і/або "
-+"«%s*bin/%s%s»."
-+
-+#: ../cli.py:884
-+#, python-format
-+msgid "No Package Found for %s"
-+msgstr "Пакунків з %s не знайдено"
-+
-+#: ../cli.py:896
-+msgid "Cleaning up Everything"
-+msgstr "Вилучення всього"
-+
-+#: ../cli.py:912
-+msgid "Cleaning up Headers"
-+msgstr "Вилучення заголовків"
-+
-+#: ../cli.py:915
-+msgid "Cleaning up Packages"
-+msgstr "Вилучення зайвих пакунків"
-+
-+#: ../cli.py:918
-+msgid "Cleaning up xml metadata"
-+msgstr "Вилучення метаданих xml"
-+
-+#: ../cli.py:921
-+msgid "Cleaning up database cache"
-+msgstr "Вилучення кешу бази даних"
-+
-+#: ../cli.py:924
-+msgid "Cleaning up expire-cache metadata"
-+msgstr "Вилучення метаданих застарілого кешу"
-+
-+#: ../cli.py:927
-+msgid "Cleaning up cached rpmdb data"
-+msgstr "Вилучення кешованих даних rpmdb"
-+
-+#: ../cli.py:930
-+msgid "Cleaning up plugins"
-+msgstr "Вилучення додатків"
-+
-+#: ../cli.py:955
-+msgid "Installed Groups:"
-+msgstr "Встановлені групи:"
-+
-+#: ../cli.py:967
-+msgid "Available Groups:"
-+msgstr "Наявні групи:"
-+
-+#: ../cli.py:977
-+msgid "Done"
-+msgstr "Виконано"
-+
-+#: ../cli.py:988 ../cli.py:1006 ../cli.py:1012 ../yum/__init__.py:2788
-+#, python-format
-+msgid "Warning: Group %s does not exist."
-+msgstr "Попередження: групи з назвою %s не існує."
-+
-+#: ../cli.py:1016
-+msgid "No packages in any requested group available to install or update"
-+msgstr "У жодній з вказаних груп немає пакунків для встановлення або оновлення"
-+
-+#: ../cli.py:1018
-+#, python-format
-+msgid "%d Package(s) to Install"
-+msgstr "%d пакунків для встановлення"
-+
-+#: ../cli.py:1028 ../yum/__init__.py:2800
-+#, python-format
-+msgid "No group named %s exists"
-+msgstr "Групи з назвою %s не існує"
-+
-+#: ../cli.py:1034
-+msgid "No packages to remove from groups"
-+msgstr "Пакунків для вилучення з груп не знайдено"
-+
-+#: ../cli.py:1036
-+#, python-format
-+msgid "%d Package(s) to remove"
-+msgstr "%d пакунків для вилучення"
-+
-+#: ../cli.py:1078
-+#, python-format
-+msgid "Package %s is already installed, skipping"
-+msgstr "Пакунок %s вже встановлено, пропускаємо"
-+
-+#: ../cli.py:1089
-+#, python-format
-+msgid "Discarding non-comparable pkg %s.%s"
-+msgstr "Відкинуто несумісний пакунок %s.%s"
-+
-+#. we've not got any installed that match n or n+a
-+#: ../cli.py:1115
-+#, python-format
-+msgid "No other %s installed, adding to list for potential install"
-+msgstr "Не встановлено інших %s, додаємо до списку потенційного встановлення"
-+
-+#: ../cli.py:1135
-+msgid "Plugin Options"
-+msgstr "Параметри додатка"
-+
-+#: ../cli.py:1143
-+#, python-format
-+msgid "Command line error: %s"
-+msgstr "Помилка виконання команди: %s"
-+
-+#: ../cli.py:1156
-+#, python-format
-+msgid ""
-+"\n"
-+"\n"
-+"%s: %s option requires an argument"
-+msgstr ""
-+"\n"
-+"\n"
-+"%s: для параметра %s потрібен аргумент"
-+
-+#: ../cli.py:1209
-+msgid "--color takes one of: auto, always, never"
-+msgstr "--color повинен мати один з аргументів: auto, always, never"
-+
-+#: ../cli.py:1319
-+msgid "show this help message and exit"
-+msgstr "показати це довідкове повідомлення і завершити роботу"
-+
-+#: ../cli.py:1323
-+msgid "be tolerant of errors"
-+msgstr "ігнорувати помилки"
-+
-+#: ../cli.py:1326
-+msgid "run entirely from system cache, don't update cache"
-+msgstr "запустити на основі системного кешу, не оновлювати кеш"
-+
-+#: ../cli.py:1329
-+msgid "config file location"
-+msgstr "розташування файла налаштувань"
-+
-+#: ../cli.py:1332
-+msgid "maximum command wait time"
-+msgstr "максимальний час очікування на завершення команди"
-+
-+#: ../cli.py:1334
-+msgid "debugging output level"
-+msgstr "рівень докладності діагностичних повідомлень"
-+
-+#: ../cli.py:1338
-+msgid "show duplicates, in repos, in list/search commands"
-+msgstr "показати дублікати у сховищах та командах побудови списку та пошуку"
-+
-+#: ../cli.py:1340
-+msgid "error output level"
-+msgstr "рівень докладності повідомлень про помилки"
-+
-+#: ../cli.py:1343
-+msgid "debugging output level for rpm"
-+msgstr "рівень докладності діагностичних повідомлень rpm"
-+
-+#: ../cli.py:1346
-+msgid "quiet operation"
-+msgstr "обробка без виведення повідомлень"
-+
-+#: ../cli.py:1348
-+msgid "verbose operation"
-+msgstr "докладна обробка команд"
-+
-+#: ../cli.py:1350
-+msgid "answer yes for all questions"
-+msgstr "відповісти «так» на всі питання"
-+
-+#: ../cli.py:1352
-+msgid "show Yum version and exit"
-+msgstr "показати версію Yum і завершити роботу"
-+
-+#: ../cli.py:1353
-+msgid "set install root"
-+msgstr "встановити кореневий каталог встановлення"
-+
-+#: ../cli.py:1357
-+msgid "enable one or more repositories (wildcards allowed)"
-+msgstr ""
-+"увімкнути одне або декілька сховищ (можна використовувати шаблони заміни)"
-+
-+#: ../cli.py:1361
-+msgid "disable one or more repositories (wildcards allowed)"
-+msgstr ""
-+"вимкнути одне або декілька сховищ (можна використовувати шаблони заміни)"
-+
-+#: ../cli.py:1364
-+msgid "exclude package(s) by name or glob"
-+msgstr "виключити пакунки за назвою або формальним виразом"
-+
-+#: ../cli.py:1366
-+msgid "disable exclude from main, for a repo or for everything"
-+msgstr "вимкнути виключення з main для сховища або на загальному рівні"
-+
-+#: ../cli.py:1369
-+msgid "enable obsoletes processing during updates"
-+msgstr "увімкнути обробку застарілих пакунків під час оновлень"
-+
-+#: ../cli.py:1371
-+msgid "disable Yum plugins"
-+msgstr "вимкнути додатки Yum"
-+
-+#: ../cli.py:1373
-+msgid "disable gpg signature checking"
-+msgstr "вимкнути перевірку підписів gpg"
-+
-+#: ../cli.py:1375
-+msgid "disable plugins by name"
-+msgstr "вимкнути додатки за назвою"
-+
-+#: ../cli.py:1378
-+msgid "enable plugins by name"
-+msgstr "увімкнути додатки за назвою"
-+
-+#: ../cli.py:1381
-+msgid "skip packages with depsolving problems"
-+msgstr "пропустити пакунки з помилками у розв’язанні залежностей"
-+
-+#: ../cli.py:1383
-+msgid "control whether color is used"
-+msgstr "визначає, чи слід використовувати розфарбовування"
-+
-+#: ../cli.py:1385
-+msgid "set value of $releasever in yum config and repo files"
-+msgstr ""
-+"встановити значення $releasever у налаштуванні yum config and repo files"
-+
-+#: ../output.py:305
-+msgid "Jan"
-+msgstr "січ"
-+
-+#: ../output.py:305
-+msgid "Feb"
-+msgstr "лют"
-+
-+#: ../output.py:305
-+msgid "Mar"
-+msgstr "бер"
-+
-+#: ../output.py:305
-+msgid "Apr"
-+msgstr "кві"
-+
-+#: ../output.py:305
-+msgid "May"
-+msgstr "тра"
-+
-+#: ../output.py:305
-+msgid "Jun"
-+msgstr "чер"
-+
-+#: ../output.py:306
-+msgid "Jul"
-+msgstr "лип"
-+
-+#: ../output.py:306
-+msgid "Aug"
-+msgstr "сер"
-+
-+#: ../output.py:306
-+msgid "Sep"
-+msgstr "вер"
-+
-+#: ../output.py:306
-+msgid "Oct"
-+msgstr "жов"
-+
-+#: ../output.py:306
-+msgid "Nov"
-+msgstr "лис"
-+
-+#: ../output.py:306
-+msgid "Dec"
-+msgstr "гру"
-+
-+#: ../output.py:316
-+msgid "Trying other mirror."
-+msgstr "Спроба використання іншого дзеркала."
-+
-+#: ../output.py:534
-+#, python-format
-+msgid "Name       : %s%s%s"
-+msgstr "Назва       : %s%s%s"
-+
-+#: ../output.py:535
-+#, python-format
-+msgid "Arch       : %s"
-+msgstr "Архітектура: %s"
-+
-+#: ../output.py:537
-+#, python-format
-+msgid "Epoch      : %s"
-+msgstr "Епоха       : %s"
-+
-+#: ../output.py:538
-+#, python-format
-+msgid "Version    : %s"
-+msgstr "Версія      : %s"
-+
-+#: ../output.py:539
-+#, python-format
-+msgid "Release    : %s"
-+msgstr "Випуск      : %s"
-+
-+#: ../output.py:540
-+#, python-format
-+msgid "Size       : %s"
-+msgstr "Розмір      : %s"
-+
-+#: ../output.py:541
-+#, python-format
-+msgid "Repo       : %s"
-+msgstr "Сховище     : %s"
-+
-+#: ../output.py:543
-+#, python-format
-+msgid "From repo  : %s"
-+msgstr "Зі сховища  : %s"
-+
-+#: ../output.py:545
-+#, python-format
-+msgid "Committer  : %s"
-+msgstr "Автор      : %s"
-+
-+#: ../output.py:546
-+#, python-format
-+msgid "Committime : %s"
-+msgstr "Час внеску  : %s"
-+
-+#: ../output.py:547
-+#, python-format
-+msgid "Buildtime  : %s"
-+msgstr "Час збирання : %s"
-+
-+#: ../output.py:549
-+#, python-format
-+msgid "Installtime: %s"
-+msgstr "Встановлення: %s"
-+
-+#: ../output.py:550
-+msgid "Summary    : "
-+msgstr "Резюме      : "
-+
-+#: ../output.py:552
-+#, python-format
-+msgid "URL        : %s"
-+msgstr "Адреса      : %s"
-+
-+#: ../output.py:553
-+msgid "License    : "
-+msgstr "Ліцензія    : "
-+
-+#: ../output.py:554
-+msgid "Description: "
-+msgstr "Опис        : "
-+
-+#: ../output.py:622
-+msgid "y"
-+msgstr "y"
-+
-+#: ../output.py:622
-+msgid "yes"
-+msgstr "так"
-+
-+#: ../output.py:623
-+msgid "n"
-+msgstr "n"
-+
-+#: ../output.py:623
-+msgid "no"
-+msgstr "ні"
-+
-+#: ../output.py:627
-+msgid "Is this ok [y/N]: "
-+msgstr "Виконати дію? [y/N]: "
-+
-+#: ../output.py:715
-+#, python-format
-+msgid ""
-+"\n"
-+"Group: %s"
-+msgstr ""
-+"\n"
-+"Група: %s"
-+
-+#: ../output.py:719
-+#, python-format
-+msgid " Group-Id: %s"
-+msgstr " Ід. групи: %s"
-+
-+#: ../output.py:724
-+#, python-format
-+msgid " Description: %s"
-+msgstr " Опис: %s"
-+
-+#: ../output.py:726
-+msgid " Mandatory Packages:"
-+msgstr " Обов’язкові пакунки:"
-+
-+#: ../output.py:727
-+msgid " Default Packages:"
-+msgstr " Типові пакунки:"
-+
-+#: ../output.py:728
-+msgid " Optional Packages:"
-+msgstr " Додаткові пакунки:"
-+
-+#: ../output.py:729
-+msgid " Conditional Packages:"
-+msgstr " Залежні пакунки:"
-+
-+#: ../output.py:749
-+#, python-format
-+msgid "package: %s"
-+msgstr "пакунок: %s"
-+
-+#: ../output.py:751
-+msgid "  No dependencies for this package"
-+msgstr "  Пакунок не залежить від інших пакунків"
-+
-+#: ../output.py:756
-+#, python-format
-+msgid "  dependency: %s"
-+msgstr "  залежність: %s"
-+
-+#: ../output.py:758
-+msgid "   Unsatisfied dependency"
-+msgstr "   Незадоволена залежність"
-+
-+#: ../output.py:830
-+#, python-format
-+msgid "Repo        : %s"
-+msgstr "Сховище     : %s"
-+
-+#: ../output.py:831
-+msgid "Matched from:"
-+msgstr "Відповідність:"
-+
-+#: ../output.py:840
-+msgid "Description : "
-+msgstr "Опис        : "
-+
-+#: ../output.py:843
-+#, python-format
-+msgid "URL         : %s"
-+msgstr "Адреса      : %s"
-+
-+#: ../output.py:846
-+#, python-format
-+msgid "License     : %s"
-+msgstr "Ліцензія    : %s"
-+
-+#: ../output.py:849
-+#, python-format
-+msgid "Filename    : %s"
-+msgstr "Назва файла : %s"
-+
-+#: ../output.py:853
-+msgid "Other       : "
-+msgstr "Інше        : "
-+
-+#: ../output.py:896
-+msgid "There was an error calculating total download size"
-+msgstr "Під час обчислення загального обсягу звантаження сталася помилка"
-+
-+#: ../output.py:901
-+#, python-format
-+msgid "Total size: %s"
-+msgstr "Загальний обсяг: %s"
-+
-+#: ../output.py:904
-+#, python-format
-+msgid "Total download size: %s"
-+msgstr "Загальний обсяг звантаження: %s"
-+
-+#: ../output.py:908
-+#, python-format
-+msgid "Installed size: %s"
-+msgstr "Розмір після встановлення: %s"
-+
-+#: ../output.py:949
-+msgid "Reinstalling"
-+msgstr "Перевстановлення"
-+
-+#: ../output.py:950
-+msgid "Downgrading"
-+msgstr "Зниження версії"
-+
-+#: ../output.py:951
-+msgid "Installing for dependencies"
-+msgstr "Встановлення для залежностей"
-+
-+#: ../output.py:952
-+msgid "Updating for dependencies"
-+msgstr "Оновлення для залежностей"
-+
-+#: ../output.py:953
-+msgid "Removing for dependencies"
-+msgstr "Вилучення для залежностей"
-+
-+#: ../output.py:960 ../output.py:1072
-+msgid "Skipped (dependency problems)"
-+msgstr "Пропущено (проблеми з залежностями)"
-+
-+#: ../output.py:983
-+msgid "Package"
-+msgstr "Пакунок"
-+
-+#: ../output.py:983
-+msgid "Arch"
-+msgstr "Архітектура"
-+
-+#: ../output.py:984
-+msgid "Version"
-+msgstr "Версія"
-+
-+#: ../output.py:984
-+msgid "Repository"
-+msgstr "Сховище"
-+
-+#: ../output.py:985
-+msgid "Size"
-+msgstr "Розмір"
-+
-+#: ../output.py:997
-+#, python-format
-+msgid "     replacing  %s%s%s.%s %s\n"
-+msgstr "     заміна  %s%s%s.%s %s\n"
-+
-+#: ../output.py:1006
-+#, python-format
-+msgid ""
-+"\n"
-+"Transaction Summary\n"
-+"%s\n"
-+msgstr ""
-+"\n"
-+"Резюме операції\n"
-+"%s\n"
-+
-+#: ../output.py:1013
-+#, python-format
-+msgid ""
-+"Install   %5.5s Package(s)\n"
-+"Upgrade   %5.5s Package(s)\n"
-+msgstr ""
-+"Встановлення   %5.5s пакунків\n"
-+"Оновлення      %5.5s пакунків\n"
-+
-+#: ../output.py:1022
-+#, python-format
-+msgid ""
-+"Remove    %5.5s Package(s)\n"
-+"Reinstall %5.5s Package(s)\n"
-+"Downgrade %5.5s Package(s)\n"
-+msgstr ""
-+"Вилучення        %5.5s пакунків\n"
-+"Перевстановлення %5.5s пакунків\n"
-+"Зниження версії  %5.5s пакунків\n"
-+
-+#: ../output.py:1066
-+msgid "Removed"
-+msgstr "Вилучено"
-+
-+#: ../output.py:1067
-+msgid "Dependency Removed"
-+msgstr "Вилучено залежності"
-+
-+#: ../output.py:1069
-+msgid "Dependency Installed"
-+msgstr "Встановлено залежності"
-+
-+#: ../output.py:1071
-+msgid "Dependency Updated"
-+msgstr "Оновлено залежності"
-+
-+#: ../output.py:1073
-+msgid "Replaced"
-+msgstr "Замінено"
-+
-+#: ../output.py:1074
-+msgid "Failed"
-+msgstr "Помилка"
-+
-+#. Delta between C-c's so we treat as exit
-+#: ../output.py:1140
-+msgid "two"
-+msgstr "два"
-+
-+#. 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:1151
-+#, python-format
-+msgid ""
-+"\n"
-+" Current download cancelled, %sinterrupt (ctrl-c) again%s within %s%s%s "
-+"seconds\n"
-+"to exit.\n"
-+msgstr ""
-+"\n"
-+" Поточне звантаження скасовано, %sперервіть роботу (ctrl-c) ще раз%s "
-+"протягом %s%s%s секунд,\n"
-+"щоб завершити операцію.\n"
-+
-+#: ../output.py:1162
-+msgid "user interrupt"
-+msgstr "перервано користувачем"
-+
-+#: ../output.py:1180
-+msgid "Total"
-+msgstr "Загалом"
-+
-+#: ../output.py:1202
-+msgid "I"
-+msgstr "I"
-+
-+#: ../output.py:1203
-+msgid "O"
-+msgstr "O"
-+
-+#: ../output.py:1204
-+msgid "E"
-+msgstr "E"
-+
-+#: ../output.py:1205
-+msgid "R"
-+msgstr "R"
-+
-+#: ../output.py:1206
-+msgid "D"
-+msgstr "D"
-+
-+#: ../output.py:1207
-+msgid "U"
-+msgstr "U"
-+
-+#: ../output.py:1217
-+msgid "<unset>"
-+msgstr "<не встановлено>"
-+
-+#: ../output.py:1218
-+msgid "System"
-+msgstr "Система"
-+
-+#: ../output.py:1254
-+msgid "Bad transaction IDs, or package(s), given"
-+msgstr "Вказано помилкові ідентифікатори операцій або пакунки"
-+
-+#: ../output.py:1266
-+msgid "ID"
-+msgstr "Ід."
-+
-+#: ../output.py:1267 ../output.py:1520
-+msgid "Login user"
-+msgstr "Користувач"
-+
-+#: ../output.py:1268
-+msgid "Date and time"
-+msgstr "Дата і час"
-+
-+#: ../output.py:1269 ../output.py:1522
-+msgid "Action(s)"
-+msgstr "Дії"
-+
-+#: ../output.py:1270 ../output.py:1523
-+msgid "Altered"
-+msgstr "Змінено"
-+
-+#: ../output.py:1310
-+msgid "No transaction ID given"
-+msgstr "Не вказано ідентифікатора операції"
-+
-+#: ../output.py:1336
-+msgid "Bad transaction ID given"
-+msgstr "Вказано помилковий ідентифікатор операції"
-+
-+#: ../output.py:1341
-+msgid "Not found given transaction ID"
-+msgstr "Не виявлено вказаного ідентифікатора операції"
-+
-+#: ../output.py:1349
-+msgid "Found more than one transaction ID!"
-+msgstr "Виявлено більше одного ідентифікатора операції!"
-+
-+#: ../output.py:1370
-+msgid "No transaction ID, or package, given"
-+msgstr "Не вказано ідентифікатора операції або назви пакунка"
-+
-+#: ../output.py:1396
-+msgid "Transaction ID :"
-+msgstr "Ід. операції   :"
-+
-+#: ../output.py:1398
-+msgid "Begin time     :"
-+msgstr "Час початку     :"
-+
-+#: ../output.py:1401 ../output.py:1403
-+msgid "Begin rpmdb    :"
-+msgstr "Початок rpmdb   :"
-+
-+#: ../output.py:1417
-+#, python-format
-+msgid "(%s seconds)"
-+msgstr "(%s секунд)"
-+
-+#: ../output.py:1418
-+msgid "End time       :"
-+msgstr "Час завершення  :"
-+
-+#: ../output.py:1421 ../output.py:1423
-+msgid "End rpmdb      :"
-+msgstr "Завершення rpmdb:"
-+
-+#: ../output.py:1424
-+msgid "User           :"
-+msgstr "Користувач     :"
-+
-+#: ../output.py:1426 ../output.py:1428 ../output.py:1430
-+msgid "Return-Code    :"
-+msgstr "Повернутий код :"
-+
-+#: ../output.py:1426
-+msgid "Aborted"
-+msgstr "Перервано"
-+
-+#: ../output.py:1428
-+msgid "Failure:"
-+msgstr "Невдача:"
-+
-+#: ../output.py:1430
-+msgid "Success"
-+msgstr "Успіх"
-+
-+#: ../output.py:1431
-+msgid "Transaction performed with:"
-+msgstr "Результат виконання операції:"
-+
-+#: ../output.py:1444 ../output.py:1489
-+msgid "Downgraded"
-+msgstr "Знижено версію"
-+
-+#. multiple versions installed, both older and newer
-+#: ../output.py:1446
-+msgid "Weird"
-+msgstr "Дивно"
-+
-+#: ../output.py:1448
-+msgid "Packages Altered:"
-+msgstr "Змінено пакунків:"
-+
-+#: ../output.py:1451
-+msgid "Scriptlet output:"
-+msgstr "Виведено скриптом:"
-+
-+#: ../output.py:1457
-+msgid "Errors:"
-+msgstr "Помилки:"
-+
-+#: ../output.py:1481 ../output.py:1482
-+msgid "Install"
-+msgstr "Встановити"
-+
-+#: ../output.py:1483
-+msgid "Dep-Install"
-+msgstr "Встановлення з залежностями"
-+
-+#: ../output.py:1485
-+msgid "Obsoleting"
-+msgstr "Робить застарілим"
-+
-+#: ../output.py:1486
-+msgid "Erase"
-+msgstr "Стерти"
-+
-+#: ../output.py:1487
-+msgid "Reinstall"
-+msgstr "Перевстановлення"
-+
-+#: ../output.py:1488
-+msgid "Downgrade"
-+msgstr "Понизити"
-+
-+#: ../output.py:1490
-+msgid "Update"
-+msgstr "Оновити"
-+
-+#: ../output.py:1521
-+msgid "Time"
-+msgstr "Час"
-+
-+#: ../output.py:1547
-+msgid "Last day"
-+msgstr "Протягом дня"
-+
-+#: ../output.py:1548
-+msgid "Last week"
-+msgstr "Попереднього тижня"
-+
-+#: ../output.py:1549
-+msgid "Last 2 weeks"
-+msgstr "Попередні 2 тижні"
-+
-+#. US default :p
-+#: ../output.py:1550
-+msgid "Last 3 months"
-+msgstr "Попередні 3 місяці"
-+
-+#: ../output.py:1551
-+msgid "Last 6 months"
-+msgstr "Попередні 6 місяців"
-+
-+#: ../output.py:1552
-+msgid "Last year"
-+msgstr "Попередній рік"
-+
-+#: ../output.py:1553
-+msgid "Over a year ago"
-+msgstr "Понад рік тому"
-+
-+#: ../output.py:1585
-+msgid "installed"
-+msgstr "встановлення"
-+
-+#: ../output.py:1586
-+msgid "updated"
-+msgstr "оновлення"
-+
-+#: ../output.py:1587
-+msgid "obsoleted"
-+msgstr "застарілі"
-+
-+#: ../output.py:1588
-+msgid "erased"
-+msgstr "вилучення"
-+
-+#: ../output.py:1592
-+#, python-format
-+msgid "---> Package %s.%s %s:%s-%s set to be %s"
-+msgstr "---> Пакунок %s.%s %s:%s-%s позначено для %s"
-+
-+#: ../output.py:1599
-+msgid "--> Running transaction check"
-+msgstr "--> Виконання перевірки операції"
-+
-+#: ../output.py:1604
-+msgid "--> Restarting Dependency Resolution with new changes."
-+msgstr "--> Перезапускається визначення залежностей з урахуванням змін."
-+
-+#: ../output.py:1609
-+msgid "--> Finished Dependency Resolution"
-+msgstr "--> Визначення залежностей завершено"
-+
-+#: ../output.py:1614 ../output.py:1619
-+#, python-format
-+msgid "--> Processing Dependency: %s for package: %s"
-+msgstr "--> Обробка залежності: %s для пакунка: %s"
-+
-+#: ../output.py:1623
-+#, python-format
-+msgid "--> Unresolved Dependency: %s"
-+msgstr "--> Нерозв'язана залежність: %s"
-+
-+#: ../output.py:1634
-+#, python-format
-+msgid "Package: %s"
-+msgstr "Пакунок: %s"
-+
-+#: ../output.py:1636
-+#, python-format
-+msgid ""
-+"\n"
-+"    Requires: %s"
-+msgstr ""
-+"\n"
-+"    Потребує: %s"
-+
-+#: ../output.py:1649 ../output.py:1660
-+#, python-format
-+msgid ""
-+"\n"
-+"    %s: %s (%s)"
-+msgstr ""
-+"\n"
-+"    %s: %s (%s)"
-+
-+#: ../output.py:1657
-+msgid "Available"
-+msgstr "Наявні"
-+
-+#: ../output.py:1665 ../output.py:1670
-+#, python-format
-+msgid "--> Processing Conflict: %s conflicts %s"
-+msgstr "--> Обробка конфлікту: %s конфліктів %s"
-+
-+#: ../output.py:1674
-+msgid "--> Populating transaction set with selected packages. Please wait."
-+msgstr "--> Додавання вибраних пакунків до операції. Зачекайте, будь ласка."
-+
-+#: ../output.py:1678
-+#, python-format
-+msgid "---> Downloading header for %s to pack into transaction set."
-+msgstr "---> У список операцій звантажується заголовок пакунка %s."
-+
-+#: ../utils.py:93
-+msgid "Running"
-+msgstr "Виконання"
-+
-+#: ../utils.py:94
-+msgid "Sleeping"
-+msgstr "Сплю"
-+
-+#: ../utils.py:95
-+msgid "Uninterruptible"
-+msgstr "Безперервний"
-+
-+#: ../utils.py:96
-+msgid "Zombie"
-+msgstr "Зомбі"
-+
-+#: ../utils.py:97
-+msgid "Traced/Stopped"
-+msgstr "З трасуванням/зупинкою"
-+
-+#: ../utils.py:98 ../yumcommands.py:917
-+msgid "Unknown"
-+msgstr "Невідомо"
-+
-+#: ../utils.py:109
-+msgid "  The other application is: PackageKit"
-+msgstr "  Сторонньою програмою є: PackageKit"
-+
-+#: ../utils.py:111
-+#, python-format
-+msgid "  The other application is: %s"
-+msgstr "  Сторонньою програмою є: %s"
-+
-+#: ../utils.py:114
-+#, python-format
-+msgid "    Memory : %5s RSS (%5sB VSZ)"
-+msgstr "    Пм’ять : %5s RSS (%5sБ VSZ)"
-+
-+#: ../utils.py:119
-+#, python-format
-+msgid "    Started: %s - %s ago"
-+msgstr "    Почато: %s - %s тому"
-+
-+#: ../utils.py:121
-+#, python-format
-+msgid "    State  : %s, pid: %d"
-+msgstr "    Стан   : %s, PID: %d"
-+
-+#: ../utils.py:199
-+#, python-format
-+msgid "PluginExit Error: %s"
-+msgstr "Помилка PluginExit: %s"
-+
-+#: ../utils.py:202
-+#, python-format
-+msgid "Yum Error: %s"
-+msgstr "Помилка Yum: %s"
-+
-+#: ../utils.py:235 ../yummain.py:42
-+msgid ""
-+"\n"
-+"\n"
-+"Exiting on user cancel"
-+msgstr ""
-+"\n"
-+"\n"
-+"Завершення роботи на запит користувача"
-+
-+#: ../utils.py:241 ../yummain.py:48
-+msgid ""
-+"\n"
-+"\n"
-+"Exiting on Broken Pipe"
-+msgstr ""
-+"\n"
-+"\n"
-+"Завершення роботи через розрив зв’язку"
-+
-+#: ../utils.py:243 ../yummain.py:50
-+#, python-format
-+msgid ""
-+"\n"
-+"\n"
-+"%s"
-+msgstr ""
-+"\n"
-+"\n"
-+"%s"
-+
-+#: ../utils.py:282 ../yummain.py:211
-+msgid "Complete!"
-+msgstr "Завершено!"
-+
-+#: ../yumcommands.py:43
-+msgid "You need to be root to perform this command."
-+msgstr ""
-+"Для виконання цієї команди вам слід набути прав доступу адміністративного "
-+"користувача."
-+
-+#: ../yumcommands.py:50
-+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"
-+"Вами було увімкнено перевірку пакунків за допомогою ключів GPG. Це "
-+"правильний крок. \n"
-+"Але у вашій системі не встановлено жодного відкритого ключа GPG. Вам слід "
-+"звантажити\n"
-+"ключі до пакунків, які ви бажаєте встановити і встановити ці ключі.\n"
-+"Виконати встановлення можна за допомогою команди:\n"
-+"    rpm --import public.gpg.key\n"
-+"\n"
-+"\n"
-+"Крім того, ви можете вказати адресу URL ключа, яким бажаєте скористатися\n"
-+"для сховища за допомогою параметра «gpgkey» у розділі налаштувань сховища, "
-+"yum \n"
-+"встановить потрібні ключі автоматично.\n"
-+"\n"
-+"Докладніші відомості може бути отримано з довідки до вашого дистрибутива або "
-+"від\n"
-+"постачальника пакунків.\n"
-+
-+#: ../yumcommands.py:70
-+#, python-format
-+msgid "Error: Need to pass a list of pkgs to %s"
-+msgstr "Помилка: %s слід передати список пакунків"
-+
-+#: ../yumcommands.py:76
-+msgid "Error: Need an item to match"
-+msgstr "Помилка: слід вказати ключ для встановлення відповідності"
-+
-+#: ../yumcommands.py:82
-+msgid "Error: Need a group or list of groups"
-+msgstr "Помилка: слід вказати групу або список груп"
-+
-+#: ../yumcommands.py:91
-+#, python-format
-+msgid "Error: clean requires an option: %s"
-+msgstr "Помилка: для виконання clean слід вказати %s"
-+
-+#: ../yumcommands.py:96
-+#, python-format
-+msgid "Error: invalid clean argument: %r"
-+msgstr "Помилка: некоректний аргумент clean: %r"
-+
-+#: ../yumcommands.py:109
-+msgid "No argument to shell"
-+msgstr "Не вказано аргумент shell"
-+
-+#: ../yumcommands.py:111
-+#, python-format
-+msgid "Filename passed to shell: %s"
-+msgstr "shell передано назву файла: %s"
-+
-+#: ../yumcommands.py:115
-+#, python-format
-+msgid "File %s given as argument to shell does not exist."
-+msgstr "Файла %s, переданого як аргумент параметра shell, не знайдено."
-+
-+#: ../yumcommands.py:121
-+msgid "Error: more than one file given as argument to shell."
-+msgstr "Помилка: shell передано як аргументи декілька файлів."
-+
-+#: ../yumcommands.py:170
-+msgid "PACKAGE..."
-+msgstr "ПАКУНОК…"
-+
-+#: ../yumcommands.py:173
-+msgid "Install a package or packages on your system"
-+msgstr "Встановлення пакунка або пакунків у вашій системі"
-+
-+#: ../yumcommands.py:181
-+msgid "Setting up Install Process"
-+msgstr "Налаштування процесу встановлення"
-+
-+#: ../yumcommands.py:192
-+msgid "[PACKAGE...]"
-+msgstr "[ПАКУНОК…]"
-+
-+#: ../yumcommands.py:195
-+msgid "Update a package or packages on your system"
-+msgstr "Оновлення пакунків вашої системи"
-+
-+#: ../yumcommands.py:202
-+msgid "Setting up Update Process"
-+msgstr "Налаштування процесу оновлення"
-+
-+#: ../yumcommands.py:244
-+msgid "Display details about a package or group of packages"
-+msgstr "Показати подробиці щодо пакунка або групи пакунків"
-+
-+#: ../yumcommands.py:293
-+msgid "Installed Packages"
-+msgstr "Встановлені пакунки"
-+
-+#: ../yumcommands.py:301
-+msgid "Available Packages"
-+msgstr "Доступних пакунків"
-+
-+#: ../yumcommands.py:305
-+msgid "Extra Packages"
-+msgstr "Зайвих пакунків"
-+
-+#: ../yumcommands.py:309
-+msgid "Updated Packages"
-+msgstr "Оновлених пакунків"
-+
-+#. This only happens in verbose mode
-+#: ../yumcommands.py:317 ../yumcommands.py:324 ../yumcommands.py:601
-+msgid "Obsoleting Packages"
-+msgstr "Застарілих пакунків"
-+
-+#: ../yumcommands.py:326
-+msgid "Recently Added Packages"
-+msgstr "Останні додані пакунки"
-+
-+#: ../yumcommands.py:333
-+msgid "No matching Packages to list"
-+msgstr "У списку не виявлено відповідних пакунків"
-+
-+#: ../yumcommands.py:347
-+msgid "List a package or groups of packages"
-+msgstr "Список пакунків або груп пакунків"
-+
-+#: ../yumcommands.py:359
-+msgid "Remove a package or packages from your system"
-+msgstr "Вилучення пакунка або пакунків з вашої системі"
-+
-+#: ../yumcommands.py:366
-+msgid "Setting up Remove Process"
-+msgstr "Налаштування процесу вилучення"
-+
-+#: ../yumcommands.py:380
-+msgid "Setting up Group Process"
-+msgstr "Налаштування обробки груп"
-+
-+#: ../yumcommands.py:386
-+msgid "No Groups on which to run command"
-+msgstr "Не виявлено груп, над якими має бути виконано команду"
-+
-+#: ../yumcommands.py:399
-+msgid "List available package groups"
-+msgstr "Список можливих груп пакунків"
-+
-+#: ../yumcommands.py:416
-+msgid "Install the packages in a group on your system"
-+msgstr "Встановлення пакунків групи"
-+
-+#: ../yumcommands.py:438
-+msgid "Remove the packages in a group from your system"
-+msgstr "Вилучення пакунків групи"
-+
-+#: ../yumcommands.py:465
-+msgid "Display details about a package group"
-+msgstr "Показ подробиць щодо групи пакунків"
-+
-+#: ../yumcommands.py:489
-+msgid "Generate the metadata cache"
-+msgstr "Створення кешу метаданих"
-+
-+#: ../yumcommands.py:495
-+msgid "Making cache files for all metadata files."
-+msgstr "Створення файлів кешу для всіх файлів метаданих."
-+
-+#: ../yumcommands.py:496
-+msgid "This may take a while depending on the speed of this computer"
-+msgstr ""
-+"Процедура може тривати досить довго, тривалість залежить від потужності "
-+"комп’ютера."
-+
-+#: ../yumcommands.py:517
-+msgid "Metadata Cache Created"
-+msgstr "Створено кеш метаданих"
-+
-+#: ../yumcommands.py:531
-+msgid "Remove cached data"
-+msgstr "Вилучення кешованих даних"
-+
-+#: ../yumcommands.py:551
-+msgid "Find what package provides the given value"
-+msgstr "Пошук пакунка за вказаним ключем"
-+
-+#: ../yumcommands.py:571
-+msgid "Check for available package updates"
-+msgstr "Перевірка доступності оновлень пакунків"
-+
-+#: ../yumcommands.py:621
-+msgid "Search package details for the given string"
-+msgstr "Пошук подробиць щодо пакунка за вказаним рядком"
-+
-+#: ../yumcommands.py:627
-+msgid "Searching Packages: "
-+msgstr "Пошук пакунків: "
-+
-+#: ../yumcommands.py:644
-+msgid "Update packages taking obsoletes into account"
-+msgstr "Оновлення пакунків з врахуванням застарівання пакунків"
-+
-+#: ../yumcommands.py:652
-+msgid "Setting up Upgrade Process"
-+msgstr "Налаштування процесу оновлення"
-+
-+#: ../yumcommands.py:666
-+msgid "Install a local RPM"
-+msgstr "Встановлення локального пакунка RPM"
-+
-+#: ../yumcommands.py:674
-+msgid "Setting up Local Package Process"
-+msgstr "Налаштування обробки локального пакунка"
-+
-+#: ../yumcommands.py:693
-+msgid "Determine which package provides the given dependency"
-+msgstr "Визначення пакунка, що містить вказану залежність"
-+
-+#: ../yumcommands.py:696
-+msgid "Searching Packages for Dependency:"
-+msgstr "Пошук пакунків для задоволення залежності:"
-+
-+#: ../yumcommands.py:710
-+msgid "Run an interactive yum shell"
-+msgstr "Запуск інтерактивної оболонки yum"
-+
-+#: ../yumcommands.py:716
-+msgid "Setting up Yum Shell"
-+msgstr "Налаштування оболонки Yum"
-+
-+#: ../yumcommands.py:734
-+msgid "List a package's dependencies"
-+msgstr "Показ списку залежностей пакунків"
-+
-+#: ../yumcommands.py:740
-+msgid "Finding dependencies: "
-+msgstr "Пошук залежностей: "
-+
-+#: ../yumcommands.py:756
-+msgid "Display the configured software repositories"
-+msgstr "Показ списку увімкнених сховищ програмного забезпечення"
-+
-+#: ../yumcommands.py:822 ../yumcommands.py:823
-+msgid "enabled"
-+msgstr "увімкнено"
-+
-+#: ../yumcommands.py:849 ../yumcommands.py:850
-+msgid "disabled"
-+msgstr "вимкнено"
-+
-+#: ../yumcommands.py:866
-+msgid "Repo-id      : "
-+msgstr "Ід. сховища   : "
-+
-+#: ../yumcommands.py:867
-+msgid "Repo-name    : "
-+msgstr "Назва сховища : "
-+
-+#: ../yumcommands.py:870
-+msgid "Repo-status  : "
-+msgstr "Стан сховища  : "
-+
-+#: ../yumcommands.py:873
-+msgid "Repo-revision: "
-+msgstr "Версія сховища: "
-+
-+#: ../yumcommands.py:877
-+msgid "Repo-tags    : "
-+msgstr "Мітки сховища : "
-+
-+#: ../yumcommands.py:883
-+msgid "Repo-distro-tags: "
-+msgstr "Мітки дистрибутива сховища: "
-+
-+#: ../yumcommands.py:888
-+msgid "Repo-updated : "
-+msgstr "Оновлення сховища: "
-+
-+#: ../yumcommands.py:890
-+msgid "Repo-pkgs    : "
-+msgstr "Пакунки сховища: "
-+
-+#: ../yumcommands.py:891
-+msgid "Repo-size    : "
-+msgstr "Розмір сховища: "
-+
-+#: ../yumcommands.py:898
-+msgid "Repo-baseurl : "
-+msgstr "Адреса сховища: "
-+
-+#: ../yumcommands.py:906
-+msgid "Repo-metalink: "
-+msgstr "Метапосилання сховища: "
-+
-+#: ../yumcommands.py:910
-+msgid "  Updated    : "
-+msgstr "  Оновлено   : "
-+
-+#: ../yumcommands.py:913
-+msgid "Repo-mirrors : "
-+msgstr "Дзеркала сховищ: "
-+
-+#: ../yumcommands.py:923
-+#, python-format
-+msgid "Never (last: %s)"
-+msgstr "Ніколи (востаннє: %s)"
-+
-+#: ../yumcommands.py:925
-+#, python-format
-+msgid "Instant (last: %s)"
-+msgstr "Негайно (лишилося: %s)"
-+
-+#: ../yumcommands.py:928
-+#, python-format
-+msgid "%s second(s) (last: %s)"
-+msgstr "%s секунд (лишилося: %s)"
-+
-+#: ../yumcommands.py:930
-+msgid "Repo-expire  : "
-+msgstr "Строк дії сховища: "
-+
-+#: ../yumcommands.py:933
-+msgid "Repo-exclude : "
-+msgstr "Виключення сховища: "
-+
-+#: ../yumcommands.py:937
-+msgid "Repo-include : "
-+msgstr "Включення сховища: "
-+
-+#: ../yumcommands.py:941
-+msgid "Repo-excluded: "
-+msgstr "Виключені сховища: "
-+
-+#. Work out the first (id) and last (enabled/disalbed/count),
-+#. then chop the middle (name)...
-+#: ../yumcommands.py:951 ../yumcommands.py:980
-+msgid "repo id"
-+msgstr "ід. сховища"
-+
-+#: ../yumcommands.py:968 ../yumcommands.py:969 ../yumcommands.py:987
-+msgid "status"
-+msgstr "стан"
-+
-+#: ../yumcommands.py:981
-+msgid "repo name"
-+msgstr "назва сховища"
-+
-+#: ../yumcommands.py:1018
-+msgid "Display a helpful usage message"
-+msgstr "Показати корисну підказку щодо використання"
-+
-+#: ../yumcommands.py:1052
-+#, python-format
-+msgid "No help available for %s"
-+msgstr "Довідки щодо %s не виявлено"
-+
-+#: ../yumcommands.py:1057
-+msgid ""
-+"\n"
-+"\n"
-+"aliases: "
-+msgstr ""
-+"\n"
-+"\n"
-+"інші назви: "
-+
-+#: ../yumcommands.py:1059
-+msgid ""
-+"\n"
-+"\n"
-+"alias: "
-+msgstr ""
-+"\n"
-+"\n"
-+"інша назва: "
-+
-+#: ../yumcommands.py:1087
-+msgid "Setting up Reinstall Process"
-+msgstr "Налаштування процесу перевстановлення"
-+
-+#: ../yumcommands.py:1095
-+msgid "reinstall a package"
-+msgstr "перевстановлення пакунка"
-+
-+#: ../yumcommands.py:1113
-+msgid "Setting up Downgrade Process"
-+msgstr "Налаштування процесу зниження версії"
-+
-+#: ../yumcommands.py:1120
-+msgid "downgrade a package"
-+msgstr "зниження версії пакунка"
-+
-+#: ../yumcommands.py:1134
-+msgid "Display a version for the machine and/or available repos."
-+msgstr "Показ версії для вашої архітектури і/або списку доступних сховищ."
-+
-+#: ../yumcommands.py:1173
-+msgid " Yum version groups:"
-+msgstr " Групи версій Yum:"
-+
-+#: ../yumcommands.py:1183
-+msgid " Group   :"
-+msgstr " Група   :"
-+
-+#: ../yumcommands.py:1184
-+msgid " Packages:"
-+msgstr " Пакунки:"
-+
-+#: ../yumcommands.py:1213
-+msgid "Installed:"
-+msgstr "Встановлено:"
-+
-+#: ../yumcommands.py:1218
-+msgid "Group-Installed:"
-+msgstr "Встановлені групи:"
-+
-+#: ../yumcommands.py:1227
-+msgid "Available:"
-+msgstr "Доступні:"
-+
-+#: ../yumcommands.py:1233
-+msgid "Group-Available:"
-+msgstr "Доступні групи:"
-+
-+#: ../yumcommands.py:1272
-+msgid "Display, or use, the transaction history"
-+msgstr "Показ або використання журналу операцій"
-+
-+#: ../yumcommands.py:1300
-+#, python-format
-+msgid "Invalid history sub-command, use: %s."
-+msgstr "Некоректна підкоманда журналу, скористайтеся: %s."
-+
-+#: ../yumcommands.py:1345
-+msgid "Check for problems in the rpmdb"
-+msgstr "Пошук проблем у rpmdb"
-+
-+#: ../yummain.py:102
-+msgid ""
-+"Another app is currently holding the yum lock; waiting for it to exit..."
-+msgstr ""
-+"Зараз yum блокує стороння програма. Зачекаємо на завершення її роботи..."
-+
-+#: ../yummain.py:130 ../yummain.py:169
-+#, python-format
-+msgid "Error: %s"
-+msgstr "Помилка: %s"
-+
-+#: ../yummain.py:140 ../yummain.py:182
-+#, python-format
-+msgid "Unknown Error(s): Exit Code: %d:"
-+msgstr "Невідомі помилки: код виходу: %d:"
-+
-+#. Depsolve stage
-+#: ../yummain.py:147
-+msgid "Resolving Dependencies"
-+msgstr "Розв’язання залежностей"
-+
-+#: ../yummain.py:173
-+msgid " You could try using --skip-broken to work around the problem"
-+msgstr " Щоб обійти проблему, спробуйте скористатися параметром --skip-broken"
-+
-+#: ../yummain.py:175 ../yummain.py:208
-+msgid " You could try running: rpm -Va --nofiles --nodigest"
-+msgstr " Спробуйте віддати команду: rpm -Va --nofiles --nodigest"
-+
-+#: ../yummain.py:188
-+msgid ""
-+"\n"
-+"Dependencies Resolved"
-+msgstr ""
-+"\n"
-+"Залежності розв’язано"
-+
-+#: ../yummain.py:265
-+msgid ""
-+"\n"
-+"\n"
-+"Exiting on user cancel."
-+msgstr ""
-+"\n"
-+"\n"
-+"Завершення роботи на запит користувача."
-+
-+#: ../yum/depsolve.py:82
-+msgid "doTsSetup() will go away in a future version of Yum.\n"
-+msgstr "doTsSetup() буде усунуто у майбутніх версіях Yum.\n"
-+
-+#: ../yum/depsolve.py:97
-+msgid "Setting up TransactionSets before config class is up"
-+msgstr "Налаштування наборів операцій до включення класу налаштувань"
-+
-+#: ../yum/depsolve.py:148
-+#, python-format
-+msgid "Invalid tsflag in config file: %s"
-+msgstr "Некоректне значення tsflag у файлі налаштувань: %s"
-+
-+#: ../yum/depsolve.py:159
-+#, python-format
-+msgid "Searching pkgSack for dep: %s"
-+msgstr "Пошук pkgSack для залежності: %s"
-+
-+#: ../yum/depsolve.py:175
-+#, python-format
-+msgid "Potential match for %s from %s"
-+msgstr "Потенційний відповідник %s з %s"
-+
-+#: ../yum/depsolve.py:183
-+#, python-format
-+msgid "Matched %s to require for %s"
-+msgstr "%s відповідає потрібному для %s"
-+
-+#: ../yum/depsolve.py:225
-+#, python-format
-+msgid "Member: %s"
-+msgstr "Частина: %s"
-+
-+#: ../yum/depsolve.py:239 ../yum/depsolve.py:754
-+#, python-format
-+msgid "%s converted to install"
-+msgstr "%s перетворено для встановлення"
-+
-+#: ../yum/depsolve.py:246
-+#, python-format
-+msgid "Adding Package %s in mode %s"
-+msgstr "Додавання пакунка %s у режимі %s"
-+
-+#: ../yum/depsolve.py:256
-+#, python-format
-+msgid "Removing Package %s"
-+msgstr "Вилучення пакунка %s"
-+
-+#: ../yum/depsolve.py:278
-+#, python-format
-+msgid "%s requires: %s"
-+msgstr "%s потребує: %s"
-+
-+#: ../yum/depsolve.py:319
-+#, python-format
-+msgid "%s requires %s"
-+msgstr "%s потребує %s"
-+
-+#: ../yum/depsolve.py:346
-+msgid "Needed Require has already been looked up, cheating"
-+msgstr "Потрібний пакунок вже знайдено, обхідний маневр"
-+
-+#: ../yum/depsolve.py:356
-+#, python-format
-+msgid "Needed Require is not a package name. Looking up: %s"
-+msgstr "Потрібна залежність задана не яка назва пакунка. Шукаємо: %s"
-+
-+#: ../yum/depsolve.py:363
-+#, python-format
-+msgid "Potential Provider: %s"
-+msgstr "Можливе джерело залежності: %s"
-+
-+#: ../yum/depsolve.py:386
-+#, python-format
-+msgid "Mode is %s for provider of %s: %s"
-+msgstr "Режим %s для надання %s: %s"
-+
-+#: ../yum/depsolve.py:390
-+#, python-format
-+msgid "Mode for pkg providing %s: %s"
-+msgstr "Режим надання пакунка %s: %s"
-+
-+#: ../yum/depsolve.py:394
-+#, python-format
-+msgid "TSINFO: %s package requiring %s marked as erase"
-+msgstr "TSINFO: пакунок %s, потрібний для %s, позначено для вилучення"
-+
-+#: ../yum/depsolve.py:407
-+#, python-format
-+msgid "TSINFO: Obsoleting %s with %s to resolve dep."
-+msgstr ""
-+"TSINFO: %s стає застарілим після встановлення %s для розв’язання залежностей."
-+
-+#: ../yum/depsolve.py:410
-+#, python-format
-+msgid "TSINFO: Updating %s to resolve dep."
-+msgstr "TSINFO: оновлення %s для розв’язання залежностей."
-+
-+#: ../yum/depsolve.py:418
-+#, python-format
-+msgid "Cannot find an update path for dep for: %s"
-+msgstr "Не вдалося знайти шлях оновлення для залежності %s"
-+
-+#: ../yum/depsolve.py:449
-+#, python-format
-+msgid "Quick matched %s to require for %s"
-+msgstr "Встановлено швидку відповідність %s пакунку потрібному для пакунка %s"
-+
-+#. is it already installed?
-+#: ../yum/depsolve.py:491
-+#, python-format
-+msgid "%s is in providing packages but it is already installed, removing."
-+msgstr ""
-+"%s належить до списку супутніх пакунків, його вже встановлено, пропускаємо."
-+
-+#: ../yum/depsolve.py:507
-+#, python-format
-+msgid "Potential resolving package %s has newer instance in ts."
-+msgstr "Потенційний пакунок розв’язання %s має новішу версію у ts."
-+
-+#: ../yum/depsolve.py:518
-+#, python-format
-+msgid "Potential resolving package %s has newer instance installed."
-+msgstr "Встановлено новішу версію потенційного пакунка розв’язання %s."
-+
-+#: ../yum/depsolve.py:536
-+#, python-format
-+msgid "%s already in ts, skipping this one"
-+msgstr "%s вже перебуває у списку, пропускаємо його"
-+
-+#: ../yum/depsolve.py:578
-+#, python-format
-+msgid "TSINFO: Marking %s as update for %s"
-+msgstr "TSINFO: позначення %s як оновлення для %s"
-+
-+#: ../yum/depsolve.py:586
-+#, python-format
-+msgid "TSINFO: Marking %s as install for %s"
-+msgstr "TSINFO: позначення %s як такий, який слід встановити для %s"
-+
-+#: ../yum/depsolve.py:690 ../yum/depsolve.py:781
-+msgid "Success - empty transaction"
-+msgstr "Успіх — порожня операція"
-+
-+#: ../yum/depsolve.py:729 ../yum/depsolve.py:744
-+msgid "Restarting Loop"
-+msgstr "Перезапуск циклу"
-+
-+#: ../yum/depsolve.py:760
-+msgid "Dependency Process ending"
-+msgstr "Завершення процесу розв’язання залежностей"
-+
-+#: ../yum/depsolve.py:774
-+#, python-format
-+msgid "%s from %s has depsolving problems"
-+msgstr "У %s з %s виникли проблеми з розв’язанням залежностей"
-+
-+#: ../yum/depsolve.py:782
-+msgid "Success - deps resolved"
-+msgstr "Успіх — залежності розв’язано"
-+
-+#: ../yum/depsolve.py:796
-+#, python-format
-+msgid "Checking deps for %s"
-+msgstr "Перевірка залежностей для %s"
-+
-+#: ../yum/depsolve.py:874
-+#, python-format
-+msgid "looking for %s as a requirement of %s"
-+msgstr "пошук %s, потрібного для %s"
-+
-+#: ../yum/depsolve.py:1090
-+#, python-format
-+msgid "Running compare_providers() for %s"
-+msgstr "Виконання compare_providers() для %s"
-+
-+#: ../yum/depsolve.py:1117 ../yum/depsolve.py:1123
-+#, python-format
-+msgid "better arch in po %s"
-+msgstr "краща архітектура у po %s"
-+
-+#: ../yum/depsolve.py:1218
-+#, python-format
-+msgid "%s obsoletes %s"
-+msgstr "%s робить застарілим %s"
-+
-+#: ../yum/depsolve.py:1230
-+#, python-format
-+msgid ""
-+"archdist compared %s to %s on %s\n"
-+"  Winner: %s"
-+msgstr ""
-+"archdist порівняно %s з %s у %s\n"
-+"  Кращий варіант: %s"
-+
-+#: ../yum/depsolve.py:1237
-+#, python-format
-+msgid "common sourcerpm %s and %s"
-+msgstr "загальний sourcerpm %s і %s"
-+
-+#: ../yum/depsolve.py:1241
-+#, python-format
-+msgid "base package %s is installed for %s"
-+msgstr "базовий пакунок %s встановлено для %s"
-+
-+#: ../yum/depsolve.py:1247
-+#, python-format
-+msgid "common prefix of %s between %s and %s"
-+msgstr "загальний префікс %s для %s і %s"
-+
-+#: ../yum/depsolve.py:1256
-+#, python-format
-+msgid "Best Order: %s"
-+msgstr "Найкращий порядок: %s"
-+
-+#: ../yum/__init__.py:192
-+msgid "doConfigSetup() will go away in a future version of Yum.\n"
-+msgstr "doConfigSetup() буде усунуто у майбутніх версіях Yum.\n"
-+
-+#: ../yum/__init__.py:424
-+#, python-format
-+msgid "Repository %r is missing name in configuration, using id"
-+msgstr ""
-+"Для сховища %r у налаштуваннях не вказано назви, використовуємо ідентифікатор"
-+
-+#: ../yum/__init__.py:462
-+msgid "plugins already initialised"
-+msgstr "додатки вже ініціалізовано"
-+
-+#: ../yum/__init__.py:469
-+msgid "doRpmDBSetup() will go away in a future version of Yum.\n"
-+msgstr "doRpmDBSetup() буде усунуто у наступних версіях Yum.\n"
-+
-+#: ../yum/__init__.py:480
-+msgid "Reading Local RPMDB"
-+msgstr "Читання локальної RPMDB"
-+
-+#: ../yum/__init__.py:504
-+msgid "doRepoSetup() will go away in a future version of Yum.\n"
-+msgstr "doRepoSetup() буде усунуто у майбутніх версіях Yum.\n"
-+
-+#: ../yum/__init__.py:524
-+msgid "doSackSetup() will go away in a future version of Yum.\n"
-+msgstr "doSackSetup() буде усунуто у майбутніх версіях Yum.\n"
-+
-+#: ../yum/__init__.py:554
-+msgid "Setting up Package Sacks"
-+msgstr "Налаштування наборів пакунків"
-+
-+#: ../yum/__init__.py:599
-+#, python-format
-+msgid "repo object for repo %s lacks a _resetSack method\n"
-+msgstr "Об’єкт сховища %s не має _resetSack method,\n"
-+
-+#: ../yum/__init__.py:600
-+msgid "therefore this repo cannot be reset.\n"
-+msgstr "тому параметри цього сховища не може бути відновлено до початкових.\n"
-+
-+#: ../yum/__init__.py:605
-+msgid "doUpdateSetup() will go away in a future version of Yum.\n"
-+msgstr "doUpdateSetup() буде усунуто у майбутніх версіях Yum.\n"
-+
-+#: ../yum/__init__.py:617
-+msgid "Building updates object"
-+msgstr "Побудова об’єкта оновлення"
-+
-+#: ../yum/__init__.py:652
-+msgid "doGroupSetup() will go away in a future version of Yum.\n"
-+msgstr "doGroupSetup() буде усунуто у майбутніх версіях Yum.\n"
-+
-+#: ../yum/__init__.py:677
-+msgid "Getting group metadata"
-+msgstr "Отримання метаданих групи"
-+
-+#: ../yum/__init__.py:703
-+#, python-format
-+msgid "Adding group file from repository: %s"
-+msgstr "Додавання файла групи зі сховища: %s"
-+
-+#: ../yum/__init__.py:712
-+#, python-format
-+msgid "Failed to add groups file for repository: %s - %s"
-+msgstr "Не вдалося додати файл груп зі сховища: %s — %s"
-+
-+#: ../yum/__init__.py:718
-+msgid "No Groups Available in any repository"
-+msgstr "У жодному сховищі немає доступних груп"
-+
-+#: ../yum/__init__.py:730
-+msgid "Getting pkgtags metadata"
-+msgstr "Отримання метаданих міток пакунків"
-+
-+#: ../yum/__init__.py:740
-+#, python-format
-+msgid "Adding tags from repository: %s"
-+msgstr "Додавання міток зі сховища: %s"
-+
-+#: ../yum/__init__.py:749
-+#, python-format
-+msgid "Failed to add Pkg Tags for repository: %s - %s"
-+msgstr "Не вдалося додати мітки пакунків для сховища: %s — %s"
-+
-+#: ../yum/__init__.py:827
-+msgid "Importing additional filelist information"
-+msgstr "Імпортування додаткових відомостей списку файлів"
-+
-+#: ../yum/__init__.py:841
-+#, python-format
-+msgid "The program %s%s%s is found in the yum-utils package."
-+msgstr "У пакунку yum-utils виявлено програму %s%s%s."
-+
-+#: ../yum/__init__.py:849
-+msgid ""
-+"There are unfinished transactions remaining. You might consider running yum-"
-+"complete-transaction first to finish them."
-+msgstr ""
-+"Залишилися незавершені операції. Для їх завершення вам слід спочатку "
-+"запустити yum-complete-transaction."
-+
-+#. Kind of hacky
-+#: ../yum/__init__.py:922
-+#, python-format
-+msgid "Skip-broken round %i"
-+msgstr "Цикл пропуску пошкоджених %i"
-+
-+#: ../yum/__init__.py:975
-+#, python-format
-+msgid "Skip-broken took %i rounds "
-+msgstr "На усування пропущених і пошкоджених пакунків витрачено %i циклів "
-+
-+#: ../yum/__init__.py:976
-+msgid ""
-+"\n"
-+"Packages skipped because of dependency problems:"
-+msgstr ""
-+"\n"
-+"Пакунки, пропущені через проблеми з залежностями:"
-+
-+#: ../yum/__init__.py:980
-+#, python-format
-+msgid "    %s from %s"
-+msgstr "    %s з %s"
-+
-+#: ../yum/__init__.py:1121
-+msgid "Warning: RPMDB altered outside of yum."
-+msgstr "Попередження: RPMDB змінено поза межами yum."
-+
-+#: ../yum/__init__.py:1126
-+msgid "missing requires"
-+msgstr "не має потрібних"
-+
-+#: ../yum/__init__.py:1127
-+msgid "installed conflict"
-+msgstr "конфлікт встановлення"
-+
-+#: ../yum/__init__.py:1180
-+msgid ""
-+"Warning: scriptlet or other non-fatal errors occurred during transaction."
-+msgstr ""
-+"Попередження: під час виконання операції сталися помилки виконання скриптів "
-+"та інші некритичні помилки."
-+
-+#: ../yum/__init__.py:1198
-+#, python-format
-+msgid "Failed to remove transaction file %s"
-+msgstr "Не вдалося вилучити файл операції %s"
-+
-+#. maybe a file log here, too
-+#. but raising an exception is not going to do any good
-+#: ../yum/__init__.py:1227
-+#, python-format
-+msgid "%s was supposed to be installed but is not!"
-+msgstr "%s мало бути встановлено, але цю дію не було виконано!"
-+
-+#. maybe a file log here, too
-+#. but raising an exception is not going to do any good
-+#: ../yum/__init__.py:1266
-+#, python-format
-+msgid "%s was supposed to be removed but is not!"
-+msgstr "%s мало бути вилучено, але цього не сталося!"
-+
-+#. Whoa. What the heck happened?
-+#: ../yum/__init__.py:1386
-+#, python-format
-+msgid "Unable to check if PID %s is active"
-+msgstr "Не вдалося перевірити, чи є активним PID %s"
-+
-+#. Another copy seems to be running.
-+#: ../yum/__init__.py:1390
-+#, python-format
-+msgid "Existing lock %s: another copy is running as pid %s."
-+msgstr "Блокування %s: запущено іншу копію з PID %s."
-+
-+#. Whoa. What the heck happened?
-+#: ../yum/__init__.py:1425
-+#, python-format
-+msgid "Could not create lock at %s: %s "
-+msgstr "Не вдалося створити блокування %s: %s "
-+
-+#: ../yum/__init__.py:1470
-+msgid ""
-+"Package does not match intended download. Suggestion: run yum clean metadata"
-+msgstr ""
-+"Пакунок не відповідає тому, який програма має намір звантажити. Пропозиція: "
-+"віддайте команду yum clean metadata"
-+
-+#: ../yum/__init__.py:1486
-+msgid "Could not perform checksum"
-+msgstr "Не вдалося перевірити контрольну суму"
-+
-+#: ../yum/__init__.py:1489
-+msgid "Package does not match checksum"
-+msgstr "Контрольна сума пакунка не збігається з еталонною"
-+
-+#: ../yum/__init__.py:1531
-+#, python-format
-+msgid "package fails checksum but caching is enabled for %s"
-+msgstr "контрольна сума пакунка не збігається, кешування для %s увімкнено"
-+
-+#: ../yum/__init__.py:1534 ../yum/__init__.py:1563
-+#, python-format
-+msgid "using local copy of %s"
-+msgstr "використано локальну копію %s"
-+
-+#: ../yum/__init__.py:1575
-+#, python-format
-+msgid ""
-+"Insufficient space in download directory %s\n"
-+"    * free   %s\n"
-+"    * needed %s"
-+msgstr ""
-+"Недостатньо місця у каталозі для звантажень %s\n"
-+"    * вільно   %s\n"
-+"    * потрібно %s"
-+
-+#: ../yum/__init__.py:1624
-+msgid "Header is not complete."
-+msgstr "Заголовок не завершено."
-+
-+#: ../yum/__init__.py:1661
-+#, python-format
-+msgid ""
-+"Header not in local cache and caching-only mode enabled. Cannot download %s"
-+msgstr ""
-+"Заголовка немає у локальному кеші, увімкнено режим «лише кешування». Не "
-+"вдалося звантажити %s"
-+
-+#: ../yum/__init__.py:1716
-+#, python-format
-+msgid "Public key for %s is not installed"
-+msgstr "Відкритий ключ для %s не встановлено"
-+
-+#: ../yum/__init__.py:1720
-+#, python-format
-+msgid "Problem opening package %s"
-+msgstr "Проблеми з відкриттям пакунка %s"
-+
-+#: ../yum/__init__.py:1728
-+#, python-format
-+msgid "Public key for %s is not trusted"
-+msgstr "Відкритий ключ %s не є надійним"
-+
-+#: ../yum/__init__.py:1732
-+#, python-format
-+msgid "Package %s is not signed"
-+msgstr "Пакунок %s не підписано"
-+
-+#: ../yum/__init__.py:1770
-+#, python-format
-+msgid "Cannot remove %s"
-+msgstr "Не вдалося вилучити %s"
-+
-+#: ../yum/__init__.py:1774
-+#, python-format
-+msgid "%s removed"
-+msgstr "%s вилучено"
-+
-+#: ../yum/__init__.py:1820
-+#, python-format
-+msgid "Cannot remove %s file %s"
-+msgstr "Не вдалося вилучити файл %s, %s"
-+
-+#: ../yum/__init__.py:1824
-+#, python-format
-+msgid "%s file %s removed"
-+msgstr "Файл %s, %s, вилучено"
-+
-+#: ../yum/__init__.py:1826
-+#, python-format
-+msgid "%d %s files removed"
-+msgstr "Вилучено %d файлів %s"
-+
-+#: ../yum/__init__.py:1895
-+#, python-format
-+msgid "More than one identical match in sack for %s"
-+msgstr "У наборі для %s знайдено декілька ідентичних відповідників"
-+
-+#: ../yum/__init__.py:1901
-+#, python-format
-+msgid "Nothing matches %s.%s %s:%s-%s from update"
-+msgstr "Немає відповідників %s.%s %s:%s-%s з оновлення"
-+
-+#: ../yum/__init__.py:2180
-+msgid ""
-+"searchPackages() will go away in a future version of "
-+"Yum.                      Use searchGenerator() instead. \n"
-+msgstr ""
-+"searchPackages() буде усунуто у майбутніх версіях Yum.                      "
-+"Використовуйте краще searchGenerator(). \n"
-+
-+#: ../yum/__init__.py:2219
-+#, python-format
-+msgid "Searching %d packages"
-+msgstr "Пошук %d пакунків"
-+
-+#: ../yum/__init__.py:2223
-+#, python-format
-+msgid "searching package %s"
-+msgstr "пошук пакунка %s"
-+
-+#: ../yum/__init__.py:2235
-+msgid "searching in file entries"
-+msgstr "пошук серед файлів"
-+
-+#: ../yum/__init__.py:2242
-+msgid "searching in provides entries"
-+msgstr "пошук у супутніх записах"
-+
-+#: ../yum/__init__.py:2275
-+#, python-format
-+msgid "Provides-match: %s"
-+msgstr "Відповідність встановленому: %s"
-+
-+#: ../yum/__init__.py:2324
-+msgid "No group data available for configured repositories"
-+msgstr "Для налаштованих сховищ дані груп недоступні"
-+
-+#: ../yum/__init__.py:2355 ../yum/__init__.py:2374 ../yum/__init__.py:2405
-+#: ../yum/__init__.py:2411 ../yum/__init__.py:2493 ../yum/__init__.py:2497
-+#: ../yum/__init__.py:2814
-+#, python-format
-+msgid "No Group named %s exists"
-+msgstr "Групи з назвою %s не існує"
-+
-+#: ../yum/__init__.py:2386 ../yum/__init__.py:2513
-+#, python-format
-+msgid "package %s was not marked in group %s"
-+msgstr "пакунок %s було позначено у групі %s"
-+
-+#: ../yum/__init__.py:2433
-+#, python-format
-+msgid "Adding package %s from group %s"
-+msgstr "Додавання пакунка %s з групи %s"
-+
-+#: ../yum/__init__.py:2437
-+#, python-format
-+msgid "No package named %s available to be installed"
-+msgstr "Не вдалося знайти пакунок з назвою %s для встановлення"
-+
-+#: ../yum/__init__.py:2539
-+#, python-format
-+msgid "Package tuple %s could not be found in packagesack"
-+msgstr "У наборі пакунків не вдалося знайти кортеж пакунків %s"
-+
-+#: ../yum/__init__.py:2558
-+#, python-format
-+msgid "Package tuple %s could not be found in rpmdb"
-+msgstr "У базі даних RPM не вдалося знайти кортеж пакунків %s"
-+
-+#: ../yum/__init__.py:2614 ../yum/__init__.py:2664
-+msgid "Invalid version flag"
-+msgstr "Некоректний прапорець версії"
-+
-+#: ../yum/__init__.py:2634 ../yum/__init__.py:2639
-+#, python-format
-+msgid "No Package found for %s"
-+msgstr "Пакунків з %s не знайдено"
-+
-+#: ../yum/__init__.py:2855
-+msgid "Package Object was not a package object instance"
-+msgstr "Об’єкт пакунка не був екземпляром об’єкта пакунка"
-+
-+#: ../yum/__init__.py:2859
-+msgid "Nothing specified to install"
-+msgstr "Список встановлення порожній"
-+
-+#: ../yum/__init__.py:2875 ../yum/__init__.py:3652
-+#, python-format
-+msgid "Checking for virtual provide or file-provide for %s"
-+msgstr "Пошук віртуальних супутніх пакунків або файлів для %s"
-+
-+#: ../yum/__init__.py:2881 ../yum/__init__.py:3197 ../yum/__init__.py:3365
-+#: ../yum/__init__.py:3658
-+#, python-format
-+msgid "No Match for argument: %s"
-+msgstr "Відповідника параметра не знайдено: %s"
-+
-+#: ../yum/__init__.py:2957
-+#, python-format
-+msgid "Package %s installed and not available"
-+msgstr "Пакунок %s вже встановлено, його не можна позначити"
-+
-+#: ../yum/__init__.py:2960
-+msgid "No package(s) available to install"
-+msgstr "Немає доступних для встановлення пакунків"
-+
-+#: ../yum/__init__.py:2972
-+#, python-format
-+msgid "Package: %s  - already in transaction set"
-+msgstr "Пакунок: %s  — вже у наборі операцій"
-+
-+#: ../yum/__init__.py:2998
-+#, python-format
-+msgid "Package %s is obsoleted by %s which is already installed"
-+msgstr "Пакунок %s став застарілим після встановлення %s"
-+
-+#: ../yum/__init__.py:3001
-+#, python-format
-+msgid "Package %s is obsoleted by %s, trying to install %s instead"
-+msgstr ""
-+"Пакунок %s став застарілим після встановлення %s, спробуємо встановити "
-+"замість нього %s"
-+
-+#: ../yum/__init__.py:3009
-+#, python-format
-+msgid "Package %s already installed and latest version"
-+msgstr "Пакунок %s вже встановлено, його версія є найсвіжішою"
-+
-+#: ../yum/__init__.py:3023
-+#, python-format
-+msgid "Package matching %s already installed. Checking for update."
-+msgstr "Відповідник пакунка %s вже встановлено. Перевірка існування оновлень."
-+
-+#. update everything (the easy case)
-+#: ../yum/__init__.py:3126
-+msgid "Updating Everything"
-+msgstr "Повне оновлення"
-+
-+#: ../yum/__init__.py:3147 ../yum/__init__.py:3262 ../yum/__init__.py:3289
-+#: ../yum/__init__.py:3315
-+#, python-format
-+msgid "Not Updating Package that is already obsoleted: %s.%s %s:%s-%s"
-+msgstr "Неоновлюваний пакунок, який вже застарів: %s.%s %s:%s-%s"
-+
-+#: ../yum/__init__.py:3182 ../yum/__init__.py:3362
-+#, python-format
-+msgid "%s"
-+msgstr "%s"
-+
-+#: ../yum/__init__.py:3253
-+#, python-format
-+msgid "Package is already obsoleted: %s.%s %s:%s-%s"
-+msgstr "Пакунок вже застарілий: %s.%s %s:%s-%s"
-+
-+#: ../yum/__init__.py:3284
-+#, python-format
-+msgid "Not Updating Package that is obsoleted: %s"
-+msgstr "Неоновлюваний пакунок, який застарів: %s"
-+
-+#: ../yum/__init__.py:3293 ../yum/__init__.py:3319
-+#, python-format
-+msgid "Not Updating Package that is already updated: %s.%s %s:%s-%s"
-+msgstr "Неоновлюваний пакунок, який було оновлено раніше: %s.%s %s:%s-%s"
-+
-+#: ../yum/__init__.py:3378
-+msgid "No package matched to remove"
-+msgstr "Відповідного пакунка для вилучення не знайдено"
-+
-+#: ../yum/__init__.py:3412
-+#, python-format
-+msgid "Cannot open: %s. Skipping."
-+msgstr "Не вдалося відкрити: %s. Пропускаємо."
-+
-+#: ../yum/__init__.py:3415 ../yum/__init__.py:3514 ../yum/__init__.py:3598
-+#, python-format
-+msgid "Examining %s: %s"
-+msgstr "Перевірка %s: %s"
-+
-+#: ../yum/__init__.py:3423 ../yum/__init__.py:3517 ../yum/__init__.py:3601
-+#, python-format
-+msgid "Cannot add package %s to transaction. Not a compatible architecture: %s"
-+msgstr "Не вдалося додати пакунок %s до операції. Несумісна архітектура: %s"
-+
-+#: ../yum/__init__.py:3431
-+#, python-format
-+msgid ""
-+"Package %s not installed, cannot update it. Run yum install to install it "
-+"instead."
-+msgstr ""
-+"Пакунок %s не встановлено, не вдалося оновити його. Віддайте команду yum "
-+"install, щоб встановити цей пакунок."
-+
-+#: ../yum/__init__.py:3460 ../yum/__init__.py:3522 ../yum/__init__.py:3606
-+#, python-format
-+msgid "Excluding %s"
-+msgstr "Виключення %s"
-+
-+#: ../yum/__init__.py:3465
-+#, python-format
-+msgid "Marking %s to be installed"
-+msgstr "Позначення %s для встановлення"
-+
-+#: ../yum/__init__.py:3471
-+#, python-format
-+msgid "Marking %s as an update to %s"
-+msgstr "Позначення %s як оновлення %s"
-+
-+#: ../yum/__init__.py:3478
-+#, python-format
-+msgid "%s: does not update installed package."
-+msgstr "%s: не оновлює встановлений пакунок."
-+
-+#: ../yum/__init__.py:3511 ../yum/__init__.py:3595
-+#, python-format
-+msgid "Cannot open file: %s. Skipping."
-+msgstr "Не вдалося відкрити файл %s. Пропускаємо."
-+
-+#: ../yum/__init__.py:3541
-+msgid "Problem in reinstall: no package matched to remove"
-+msgstr "Проблема з перевстановленням: не виявлено пакунків для вилучення"
-+
-+#: ../yum/__init__.py:3554 ../yum/__init__.py:3686
-+#, python-format
-+msgid "Package %s is allowed multiple installs, skipping"
-+msgstr ""
-+"Пакунок %s можна встановлювати паралельно з іншими версіями, пропускаємо"
-+
-+#: ../yum/__init__.py:3575
-+#, python-format
-+msgid "Problem in reinstall: no package %s matched to install"
-+msgstr ""
-+"Проблема з перевстановленням: не виявлено відповідного пакунка %s для "
-+"встановлення"
-+
-+#: ../yum/__init__.py:3678
-+msgid "No package(s) available to downgrade"
-+msgstr "Немає доступних для зниження версії пакунків"
-+
-+#: ../yum/__init__.py:3731
-+#, python-format
-+msgid "No Match for available package: %s"
-+msgstr "Немає відповідників для доступного пакунка: %s"
-+
-+#: ../yum/__init__.py:3738
-+#, python-format
-+msgid "Only Upgrade available on package: %s"
-+msgstr "Для пакунка доступне лише оновлення: %s"
-+
-+#: ../yum/__init__.py:3808 ../yum/__init__.py:3845
-+#, python-format
-+msgid "Failed to downgrade: %s"
-+msgstr "Не вдалося знизити версію: %s"
-+
-+#: ../yum/__init__.py:3877
-+#, python-format
-+msgid "Retrieving GPG key from %s"
-+msgstr "Отримання ключа GPG з %s"
-+
-+#: ../yum/__init__.py:3897
-+msgid "GPG key retrieval failed: "
-+msgstr "Невдала спроба отримання ключа GPG: "
-+
-+#: ../yum/__init__.py:3903
-+#, python-format
-+msgid "Invalid GPG Key from %s: %s"
-+msgstr "Некоректний ключ GPG з %s: %s"
-+
-+#: ../yum/__init__.py:3912
-+#, python-format
-+msgid "GPG key parsing failed: key does not have value %s"
-+msgstr "Помилка обробник ключа GPG: у ключі немає значення %s"
-+
-+#: ../yum/__init__.py:3944
-+#, python-format
-+msgid "GPG key at %s (0x%s) is already installed"
-+msgstr "Ключ GPG у %s (0x%s) вже встановлено"
-+
-+#. Try installing/updating GPG key
-+#: ../yum/__init__.py:3949 ../yum/__init__.py:4011
-+#, python-format
-+msgid "Importing GPG key 0x%s \"%s\" from %s"
-+msgstr "Імпортування ключа GPG 0x%s «%s» з %s"
-+
-+#: ../yum/__init__.py:3966
-+msgid "Not installing key"
-+msgstr "Ключ не встановлюється"
-+
-+#: ../yum/__init__.py:3972
-+#, python-format
-+msgid "Key import failed (code %d)"
-+msgstr "Помилка імпортування ключа (код %d)"
-+
-+#: ../yum/__init__.py:3973 ../yum/__init__.py:4032
-+msgid "Key imported successfully"
-+msgstr "Ключ успішно імпортовано"
-+
-+#: ../yum/__init__.py:3978 ../yum/__init__.py:4037
-+#, 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 зі списку сховища «%s» вже встановлено, але вони є некоректними "
-+"для цього пакунка.\n"
-+"Перевірте, чи правильно вказано адреси URL для цього сховища."
-+
-+#: ../yum/__init__.py:3987
-+msgid "Import of key(s) didn't help, wrong key(s)?"
-+msgstr "Імпортування ключів не допомогло, помилкові ключі?"
-+
-+#: ../yum/__init__.py:4006
-+#, python-format
-+msgid "GPG key at %s (0x%s) is already imported"
-+msgstr "Ключ GPG у %s (0x%s) вже імпортовано"
-+
-+#: ../yum/__init__.py:4026
-+#, python-format
-+msgid "Not installing key for repo %s"
-+msgstr "Ключ сховища %s не встановлюється"
-+
-+#: ../yum/__init__.py:4031
-+msgid "Key import failed"
-+msgstr "Помилка імпортування ключа"
-+
-+#: ../yum/__init__.py:4157
-+msgid "Unable to find a suitable mirror."
-+msgstr "Не вдалося знайти відповідного дзеркала."
-+
-+#: ../yum/__init__.py:4159
-+msgid "Errors were encountered while downloading packages."
-+msgstr "Під час спроби звантаження пакунків сталися помилки."
-+
-+#: ../yum/__init__.py:4209
-+#, python-format
-+msgid "Please report this error at %s"
-+msgstr "Повідомте про цю помилку за адресою %s"
-+
-+#: ../yum/__init__.py:4233
-+msgid "Test Transaction Errors: "
-+msgstr "Помилки під час тестування: "
-+
-+#: ../yum/__init__.py:4334
-+#, python-format
-+msgid "Could not set cachedir: %s"
-+msgstr "Не вдалося визначити теку кешування: %s"
-+
-+#. Mostly copied from YumOutput._outKeyValFill()
-+#: ../yum/plugins.py:202
-+msgid "Loaded plugins: "
-+msgstr "Завантажені додатки: "
-+
-+#: ../yum/plugins.py:216 ../yum/plugins.py:222
-+#, python-format
-+msgid "No plugin match for: %s"
-+msgstr "Не виявлено відповідника додатка %s"
-+
-+#: ../yum/plugins.py:252
-+#, python-format
-+msgid "Not loading \"%s\" plugin, as it is disabled"
-+msgstr "Додаток «%s» не завантажується, оскільки його вимкнено"
-+
-+#. Give full backtrace:
-+#: ../yum/plugins.py:264
-+#, python-format
-+msgid "Plugin \"%s\" can't be imported"
-+msgstr "Додаток «%s» не можна імпортувати"
-+
-+#: ../yum/plugins.py:271
-+#, python-format
-+msgid "Plugin \"%s\" doesn't specify required API version"
-+msgstr "Додаток «%s» не визначає потрібної версії API"
-+
-+#: ../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:309
-+#, python-format
-+msgid "Loading \"%s\" plugin"
-+msgstr "Завантаження додатка «%s»"
-+
-+#: ../yum/plugins.py:316
-+#, python-format
-+msgid ""
-+"Two or more plugins with the name \"%s\" exist in the plugin search path"
-+msgstr "За адресою пошуку додатків виявлено декілька додатків з назвою «%s»"
-+
-+#: ../yum/plugins.py:336
-+#, python-format
-+msgid "Configuration file %s not found"
-+msgstr "Файл налаштувань %s не знайдено"
-+
-+#. for
-+#. Configuration files for the plugin not found
-+#: ../yum/plugins.py:339
-+#, python-format
-+msgid "Unable to find configuration file for plugin %s"
-+msgstr "Не вдалося знайти файл налаштувань для додатка %s"
-+
-+#: ../yum/plugins.py:501
-+msgid "registration of commands not supported"
-+msgstr "підтримки реєстрації команд не передбачено"
-+
-+#: ../yum/rpmsack.py:102
-+msgid "has missing requires of"
-+msgstr "не має потрібних залежностей"
-+
-+#: ../yum/rpmsack.py:105
-+msgid "has installed conflicts"
-+msgstr "конфліктує зі встановленими пакунками"
-+
-+#: ../yum/rpmsack.py:114
-+#, python-format
-+msgid "%s is a duplicate with %s"
-+msgstr "%s є дублікатом з %s"
-+
-+#: ../yum/rpmtrans.py:79
-+msgid "Repackaging"
-+msgstr "Перепакування"
-+
-+#: ../rpmUtils/oldUtils.py:33
-+#, python-format
-+msgid "Header cannot be opened or does not match %s, %s."
-+msgstr "Не вдалося відкрити заголовок або не він не відповідає %s, %s."
-+
-+#: ../rpmUtils/oldUtils.py:53
-+#, python-format
-+msgid "RPM %s fails md5 check"
-+msgstr "RPM %s не пройшов перевірки на md5"
-+
-+#: ../rpmUtils/oldUtils.py:151
-+msgid "Could not open RPM database for reading. Perhaps it is already in use?"
-+msgstr ""
-+"Не вдалося відкрити базу даних RPM для читання. Можливо, цю базу вже "
-+"використовує інша програма?"
-+
-+#: ../rpmUtils/oldUtils.py:183
-+msgid "Got an empty Header, something has gone wrong"
-+msgstr "Отримано порожній заголовок, сталася якась помилка"
-+
-+#: ../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:281
-+#, python-format
-+msgid "Error opening rpm %s - error %s"
-+msgstr "Помилка під час відкриття rpm %s — помилка %s"
-+
-+
-diff --git a/rpmUtils/arch.py b/rpmUtils/arch.py
-index b334750..5512ea6 100644
---- a/rpmUtils/arch.py
-+++ b/rpmUtils/arch.py
-@@ -202,15 +202,19 @@ def getArchList(thisarch=None):
-         archlist.append('noarch')
-     return archlist
-     
--        
-+def _try_read_cpuinfo():
-+    """ Try to read /proc/cpuinfo ... if we can't ignore errors (ie. proc not
-+        mounted). """
-+    try:
-+        lines = open("/proc/cpuinfo", "r").readlines()
-+        return lines
-+    except:
-+        return []
- 
- def getCanonX86Arch(arch):
-     # 
-     if arch == "i586":
--        f = open("/proc/cpuinfo", "r")
--        lines = f.readlines()
--        f.close()
--        for line in lines:
-+        for line in _try_read_cpuinfo():
-             if line.startswith("model name") and line.find("Geode(TM)") != -1:
-                 return "geode"
-         return arch
-@@ -219,10 +223,7 @@ def getCanonX86Arch(arch):
-         return arch
- 
-     # if we're i686 and AuthenticAMD, then we should be an athlon
--    f = open("/proc/cpuinfo", "r")
--    lines = f.readlines()
--    f.close()
--    for line in lines:
-+    for line in _try_read_cpuinfo():
-         if line.startswith("vendor") and line.find("AuthenticAMD") != -1:
-             return "athlon"
-         # i686 doesn't guarantee cmov, but we depend on it
-@@ -237,10 +238,7 @@ def getCanonPPCArch(arch):
-         return arch
- 
-     machine = None
--    f = open("/proc/cpuinfo", "r")
--    lines = f.readlines()
--    f.close()
--    for line in lines:
-+    for line in _try_read_cpuinfo():
-         if line.find("machine") != -1:
-             machine = line.split(':')[1]
-             break
-@@ -256,10 +254,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()
--    for line in lines:
-+    for line in _try_read_cpuinfo():
-         if line.startswith("type"):
-             SPARCtype = line.split(':')[1]
-             break
-@@ -285,10 +280,7 @@ def getCanonX86_64Arch(arch):
-         return arch
- 
-     vendor = None
--    f = open("/proc/cpuinfo", "r")
--    lines = f.readlines()
--    f.close()
--    for line in lines:
-+    for line in _try_read_cpuinfo():
-         if line.startswith("vendor_id"):
-             vendor = line.split(':')[1]
-             break
-@@ -397,7 +389,7 @@ class ArchStorage(object):
-         self.multilib = False
-         self.setup_arch()
- 
--    def setup_arch(self, arch=None):
-+    def setup_arch(self, arch=None, archlist_includes_compat_arch=True):
-         if arch:
-             self.canonarch = arch
-         else:
-@@ -405,6 +397,14 @@ class ArchStorage(object):
-         
-         self.basearch = getBaseArch(myarch=self.canonarch)
-         self.archlist = getArchList(thisarch=self.canonarch)
-+        
-+        if not archlist_includes_compat_arch: # - do we bother including i686 and below on x86_64
-+            limit_archlist = []
-+            for a in self.archlist:
-+                if isMultiLibArch(a) or a == 'noarch':
-+                    limit_archlist.append(a)
-+            self.archlist = limit_archlist
-+            
-         self.bestarch = getBestArch(myarch=self.canonarch)
-         self.compatarches = getMultiArchInfo(arch=self.canonarch)
-         self.multilib = isMultiLibArch(arch=self.canonarch)
-diff --git a/rpmUtils/miscutils.py b/rpmUtils/miscutils.py
-index a925027..cdb1cb6 100644
---- a/rpmUtils/miscutils.py
-+++ b/rpmUtils/miscutils.py
-@@ -37,10 +37,16 @@ def compareEVR((e1, v1, r1), (e2, v2, r2)):
-     # return 1: a is newer than b
-     # 0: a and b are the same version
-     # -1: b is newer than a
--    e1 = str(e1)
-+    if e1 is None:
-+        e1 = '0'
-+    else:
-+        e1 = str(e1)
-     v1 = str(v1)
-     r1 = str(r1)
--    e2 = str(e2)
-+    if e2 is None:
-+        e2 = '0'
-+    else:
-+        e2 = str(e2)
-     v2 = str(v2)
-     r2 = str(r2)
-     #print '%s, %s, %s vs %s, %s, %s' % (e1, v1, r1, e2, v2, r2)
-@@ -170,45 +176,45 @@ def rangeCompare(reqtuple, provtuple):
- 
-     # does not match unless
-     if rc >= 1:
--        if reqf in ['GT', 'GE', 4, 12]:
-+        if reqf in ['GT', 'GE', 4, 12, '>', '>=']:
-             return 1
--        if reqf in ['EQ', 8]:
--            if f in ['LE', 10, 'LT', 2]:
--                return 1                
--        if reqf in ['LE', 'LT', 'EQ', 10, 2, 8]:
--            if f in ['LE', 'LT', 10, 2]:
-+        if reqf in ['EQ', 8, '=']:
-+            if f in ['LE', 10, 'LT', 2,'<=', '<']:
-+                return 1
-+        if reqf in ['LE', 'LT', 'EQ', 10, 2, 8, '<=', '<', '=']:
-+            if f in ['LE', 'LT', 10, 2, '<=', '<']:
-                 return 1
- 
-     if rc == 0:
--        if reqf in ['GT', 4]:
--            if f in ['GT', 'GE', 4, 12]:
-+        if reqf in ['GT', 4, '>']:
-+            if f in ['GT', 'GE', 4, 12, '>', '>=']:
-                 return 1
--        if reqf in ['GE', 12]:
--            if f in ['GT', 'GE', 'EQ', 'LE', 4, 12, 8, 10]:
-+        if reqf in ['GE', 12, '>=']:
-+            if f in ['GT', 'GE', 'EQ', 'LE', 4, 12, 8, 10, '>', '>=', '=', '<=']:
-                 return 1
--        if reqf in ['EQ', 8]:
--            if f in ['EQ', 'GE', 'LE', 8, 12, 10]:
-+        if reqf in ['EQ', 8, '=']:
-+            if f in ['EQ', 'GE', 'LE', 8, 12, 10, '=', '>=', '<=']:
-                 return 1
--        if reqf in ['LE', 10]:
--            if f in ['EQ', 'LE', 'LT', 'GE', 8, 10, 2, 12]:
-+        if reqf in ['LE', 10, '<=']:
-+            if f in ['EQ', 'LE', 'LT', 'GE', 8, 10, 2, 12, '=', '<=', '<' , '>=']:
-                 return 1
--        if reqf in ['LT', 2]:
--            if f in ['LE', 'LT', 10, 2]:
-+        if reqf in ['LT', 2, '<']:
-+            if f in ['LE', 'LT', 10, 2, '<=', '<']:
-                 return 1
-     if rc <= -1:
--        if reqf in ['GT', 'GE', 'EQ', 4, 12, 8]:
--            if f in ['GT', 'GE', 4, 12]:
-+        if reqf in ['GT', 'GE', 'EQ', 4, 12, 8, '>', '>=', '=']:
-+            if f in ['GT', 'GE', 4, 12, '>', '>=']:
-                 return 1
--        if reqf in ['LE', 'LT', 10, 2]:
-+        if reqf in ['LE', 'LT', 10, 2, '<=', '<']:
-             return 1
- #                if rc >= 1:
--#                    if reqf in ['GT', 'GE', 4, 12]:
-+#                    if reqf in ['GT', 'GE', 4, 12, '>', '>=']:
- #                        return 1
- #                if rc == 0:
--#                    if reqf in ['GE', 'LE', 'EQ', 8, 10, 12]:
-+#                    if reqf in ['GE', 'LE', 'EQ', 8, 10, 12, '>=', '<=', '=']:
- #                        return 1
- #                if rc <= -1:
--#                    if reqf in ['LT', 'LE', 2, 10]:
-+#                    if reqf in ['LT', 'LE', 2, 10, '<', '<=']:
- #                        return 1
- 
-     return 0
-@@ -341,11 +347,17 @@ def rpm2cpio(fdno, out=sys.stdout, bufsize=2048):
-         if tmp == "": break
-         out.write(tmp)
-     f.close()
--                                                                                
-+                 
- def formatRequire (name, version, flags):
-+    '''
-+    Return a human readable requirement string (ex.  foobar >= 2.0)
-+    @param name: requirement name (ex. foobar)
-+    @param version: requirent version (ex. 2.0)
-+    @param flags: binary flags ( 0010 = equal, 0100 = greater than, 1000 = less than )
-+    '''
-     s = name
-     
--    if flags:
-+    if flags and (type(flags) == type(0) or type(flags) == type(0L)): # Flag must be set and a int (or a long, now)
-         if flags & (rpm.RPMSENSE_LESS | rpm.RPMSENSE_GREATER |
-                     rpm.RPMSENSE_EQUAL):
-             s = s + " "
-@@ -358,6 +370,7 @@ def formatRequire (name, version, flags):
-             if version:
-                 s = "%s %s" %(s, version)
-     return s
-+
-     
- def flagToString(flags):
-     flags = flags & 0xf
-diff --git a/rpmUtils/oldUtils.py b/rpmUtils/oldUtils.py
-index 8957685..5f1d9ec 100644
---- a/rpmUtils/oldUtils.py
-+++ b/rpmUtils/oldUtils.py
-@@ -35,7 +35,7 @@ def checkheader(headerfile, name, arch):
-     
- 
- def checkRpmMD5(package, urlgraberror=0):
--    """take a package, check it out by trying to open it, return 1 if its good
-+    """take a package, check it out by trying to open it, return 1 if it's good
-        return 0 if it's not"""
-     ts.sigChecking('md5')
-     fdno = os.open(package, os.O_RDONLY)
-diff --git a/rpmUtils/transaction.py b/rpmUtils/transaction.py
-index 329de69..e8f4459 100644
---- a/rpmUtils/transaction.py
-+++ b/rpmUtils/transaction.py
-@@ -83,6 +83,15 @@ class TransactionWrapper:
-         curflags = self.ts.setFlags(0)
-         self.ts.setFlags(curflags | flag)
- 
-+    def getTsFlags(self):
-+        curflags = self.ts.setFlags(0)
-+        self.ts.setFlags(curflags)
-+        return curflags
-+    
-+    def isTsFlagSet(self, flag):
-+        val = self.getTsFlags()
-+        return bool(flag & val)
-+        
- #    def addProblemFilter(self, filt):
- #        curfilter = self.ts.setProbFilter(0)
- #        self.ts.setProbFilter(cutfilter | filt)    
-@@ -94,9 +103,8 @@ class TransactionWrapper:
-         self.addTsFlag(rpm.RPMTRANS_FLAG_TEST)
-         # FIXME GARBAGE - remove once this is reimplemented elsehwere
-         # KEEPING FOR API COMPLIANCE ONLY
--        if conf.has_key('diskspacecheck'):
--            if conf['diskspacecheck'] == 0:
--                self.ts.setProbFilter(rpm.RPMPROB_FILTER_DISKSPACE)
-+        if conf.get('diskspacecheck') == 0:
-+            self.ts.setProbFilter(rpm.RPMPROB_FILTER_DISKSPACE)
-         tserrors = self.ts.run(cb.callback, '')
-     
-         reserrors = []
-@@ -151,7 +159,7 @@ class TransactionWrapper:
-             preq = 0
-             tup = miscutils.pkgTupleFromHeader(h)
-             for p in _return_all_provides(h):
--                if req.has_key(p):
-+                if p in req:
-                     # Don't count a package that provides its require
-                     s = req[p]
-                     if len(s) > 1 or tup not in s:
-diff --git a/rpmUtils/updates.py b/rpmUtils/updates.py
-index 68dee45..c61788b 100644
---- a/rpmUtils/updates.py
-+++ b/rpmUtils/updates.py
-@@ -75,14 +75,11 @@ class Updates:
- 
-     def _delFromNADict(self, dict_, pkgtup):
-         (n, a, e, v, r) = pkgtup
--        if dict_.has_key((n, a)):
--            dict_[(n, a)] = filter((e,v,r).__ne__, dict_[(n, a)])
--            if not dict_[(n, a)]:
--                del dict_[(n, a)]
--        if dict_.has_key((n, None)):
--            dict_[(n, None)] = filter((e,v,r).__ne__, dict_[(n, None)])
--            if not dict_[(n, None)]:
--                del dict_[(n, None)]
-+        for aa in (a, None):
-+            if (n, aa) in dict_:
-+                dict_[(n, aa)] = filter((e,v,r).__ne__, dict_[(n, aa)])
-+                if not dict_[(n, aa)]:
-+                    del dict_[(n, aa)]
- 
-     def delPackage(self, pkgtup):
-         """remove available pkgtup that is no longer available"""
-@@ -94,7 +91,7 @@ class Updates:
-         self._delFromDict(self.updating_dict, self.updatesdict.get(pkgtup, []), pkgtup)
-         self._delFromDict(self.updatesdict, self.updating_dict.get(pkgtup, []), pkgtup)
- 
--        if self.rawobsoletes.has_key(pkgtup):
-+        if pkgtup in self.rawobsoletes:
-             if self._obsoletes_by_name:
-                 for name, flag, version in self.rawobsoletes[pkgtup]:
-                     self._delFromDict(self._obsoletes_by_name, [name], (flag, version, pkgtup))
-@@ -114,13 +111,17 @@ class Updates:
-             
-         returndict = {}
-         for (n, a, e, v, r) in pkglist:
--            if not returndict.has_key((n, a)):
-+            if (n, a) not in returndict:
-                 returndict[(n, a)] = []
-+            if (e,v,r) in returndict[(n, a)]:
-+                continue
-             returndict[(n, a)].append((e,v,r))
- 
-             if Nonelists:
--                if not returndict.has_key((n, None)):
-+                if (n, None) not in returndict:
-                     returndict[(n, None)] = []
-+                if (a,e,v,r) in returndict[(n, None)]:
-+                    continue
-                 returndict[(n, None)].append((a, e, v, r))
-             
-         return returndict
-@@ -202,7 +203,7 @@ class Updates:
-         returndict = {}
-         for new in obslist:
-             for old in obsdict[new]:
--                if not returndict.has_key(old):
-+                if old not in returndict:
-                     returndict[old] = []
-                 returndict[old].append(new)
-         
-@@ -224,21 +225,21 @@ class Updates:
-         # 
-         obs_arches = {}
-         for (n, a, e, v, r) in self.rawobsoletes:
--            if not obs_arches.has_key(n):
-+            if n not in obs_arches:
-                 obs_arches[n] = []
-             obs_arches[n].append(a)
- 
-         for pkgtup in self.rawobsoletes:
-             (name, arch, epoch, ver, rel) = pkgtup
-             for (obs_n, flag, (obs_e, obs_v, obs_r)) in self.rawobsoletes[(pkgtup)]:
--                if self.installdict.has_key((obs_n, None)):
-+                if (obs_n, None) in self.installdict:
-                     for (rpm_a, rpm_e, rpm_v, rpm_r) in self.installdict[(obs_n, None)]:
-                         if flag in [None, 0] or \
-                                 rpmUtils.miscutils.rangeCheck((obs_n, flag, (obs_e, obs_v, obs_r)),
-                                                               (obs_n, rpm_a, rpm_e, rpm_v, rpm_r)):
-                             # make sure the obsoleting pkg is not already installed
-                             willInstall = 1
--                            if self.installdict.has_key((name, None)):
-+                            if (name, None) in self.installdict:
-                                 for (ins_a, ins_e, ins_v, ins_r) in self.installdict[(name, None)]:
-                                     pkgver = (epoch, ver, rel)
-                                     installedver = (ins_e, ins_v, ins_r)
-@@ -248,7 +249,7 @@ class Updates:
-                             if rpm_a != arch and rpm_a in obs_arches[name]:
-                                 willInstall = 0
-                             if willInstall:
--                                if not obsdict.has_key(pkgtup):
-+                                if pkgtup not in obsdict:
-                                     obsdict[pkgtup] = []
-                                 obsdict[pkgtup].append((obs_n, rpm_a, rpm_e, rpm_v, rpm_r))
-         self.obsoletes = obsdict
-@@ -261,7 +262,7 @@ class Updates:
-         self.obsoleted_dict = {}
-         for new in self.obsoletes:
-             for old in self.obsoletes[new]:
--                if not self.obsoleted_dict.has_key(old):
-+                if old not in self.obsoleted_dict:
-                     self.obsoleted_dict[old] = []
-                 self.obsoleted_dict[old].append(new)
-         self.obsoleting_dict = {}
-@@ -312,7 +313,7 @@ class Updates:
- 
-         for (n, a) in newpkgs:
-             # simple ones - look for exact matches or older stuff
--            if self.installdict.has_key((n, a)):
-+            if (n, a) in self.installdict:
-                 for (rpm_e, rpm_v, rpm_r) in self.installdict[(n, a)]:
-                     try:
-                         (e, v, r) = self.returnNewest(newpkgs[(n,a)])
-@@ -365,14 +366,14 @@ class Updates:
-         for (n, a) in simpleupdate:
-             # try to be as precise as possible
-             if n in self.exactarchlist:
--                if self.installdict.has_key((n, a)):
-+                if (n, a) in self.installdict:
-                     (rpm_e, rpm_v, rpm_r) = self.returnNewest(self.installdict[(n, a)])
--                    if newpkgs.has_key((n,a)):
-+                    if (n, a) in newpkgs:
-                         (e, v, r) = self.returnNewest(newpkgs[(n, a)])
-                         rc = rpmUtils.miscutils.compareEVR((e, v, r), (rpm_e, rpm_v, rpm_r))
-                         if rc > 0:
-                             # this is definitely an update - put it in the dict
--                            if not updatedict.has_key((n, a, rpm_e, rpm_v, rpm_r)):
-+                            if (n, a, rpm_e, rpm_v, rpm_r) not in updatedict:
-                                 updatedict[(n, a, rpm_e, rpm_v, rpm_r)] = []
-                             updatedict[(n, a, rpm_e, rpm_v, rpm_r)].append((n, a, e, v, r))
-     
-@@ -382,12 +383,12 @@ class Updates:
-                 # we just need to find the arch of the installed pkg so we can 
-                 # check it's (e, v, r)
-                 (rpm_a, rpm_e, rpm_v, rpm_r) = self.installdict[(n, None)][0]
--                if newpkgs.has_key((n, None)):
-+                if (n, None) in newpkgs:
-                     for (a, e, v, r) in newpkgs[(n, None)]:
-                         rc = rpmUtils.miscutils.compareEVR((e, v, r), (rpm_e, rpm_v, rpm_r))
-                         if rc > 0:
-                             # this is definitely an update - put it in the dict
--                            if not updatedict.has_key((n, rpm_a, rpm_e, rpm_v, rpm_r)):
-+                            if (n, rpm_a, rpm_e, rpm_v, rpm_r) not in updatedict:
-                                 updatedict[(n, rpm_a, rpm_e, rpm_v, rpm_r)] = []
-                             updatedict[(n, rpm_a, rpm_e, rpm_v, rpm_r)].append((n, a, e, v, r))
- 
-@@ -403,7 +404,7 @@ class Updates:
-         
-         archlists = []
-         if self._is_multilib:
--            if rpmUtils.arch.multilibArches.has_key(self.myarch):
-+            if self.myarch in rpmUtils.arch.multilibArches:
-                 biarches = [self.myarch]
-             else:
-                 biarches = [self.myarch, rpmUtils.arch.arches[self.myarch]]
-@@ -448,7 +449,7 @@ class Updates:
-                             rc = rpmUtils.miscutils.compareEVR((e, v, r), (rpm_e, rpm_v, rpm_r))
-                             if rc > 0:
-                                 # this is definitely an update - put it in the dict
--                                if not updatedict.has_key((n, a, rpm_e, rpm_v, rpm_r)):
-+                                if (n, a, rpm_e, rpm_v, rpm_r) not in updatedict:
-                                     updatedict[(n, a, rpm_e, rpm_v, rpm_r)] = []
-                                 updatedict[(n, a, rpm_e, rpm_v, rpm_r)].append((n, a, e, v, r))
-                 else:
-@@ -482,7 +483,7 @@ class Updates:
-                     rc = rpmUtils.miscutils.compareEVR((e, v, r), (rpm_e, rpm_v, rpm_r))
-                     if rc > 0:
-                         # this is definitely an update - put it in the dict
--                        if not updatedict.has_key((n, rpm_a, rpm_e, rpm_v, rpm_r)):
-+                        if (n, rpm_a, rpm_e, rpm_v, rpm_r) not in updatedict:
-                             updatedict[(n, rpm_a, rpm_e, rpm_v, rpm_r)] = []
-                         updatedict[(n, rpm_a, rpm_e, rpm_v, rpm_r)].append((n, a, e, v, r))
-                    
-@@ -496,7 +497,7 @@ class Updates:
-         self.updating_dict = {}
-         for old in self.updatesdict:
-             for new in self.updatesdict[old]:
--                if not self.updating_dict.has_key(new):
-+                if new not in self.updating_dict:
-                     self.updating_dict[new] = []
-                 self.updating_dict[new].append(old)
- 
-@@ -691,7 +692,7 @@ class Updates:
-         highdict = {}
-         for pkgtup in tuplelist:
-             (n, a, e, v, r) = pkgtup
--            if not highdict.has_key((n, a)):
-+            if (n, a) not in highdict:
-                 highdict[(n, a)] = pkgtup
-             else:
-                 pkgtup2 = highdict[(n, a)]
-diff --git a/test/depsolvetests.py b/test/depsolvetests.py
-index 02bbf8f..7af3f16 100644
---- a/test/depsolvetests.py
-+++ b/test/depsolvetests.py
-@@ -1197,3 +1197,18 @@ class DepsolveTests(DepsolveTests):
-         self.assertEquals('ok', *self.resolveCode())
-         self.assertResult((po, po2))
-            
-+    def testRL_dcbd1(self):
-+        xpo = FakePackage('dcbd-devel', version='1', arch='i386')
-+        xpo.addRequires('dcbd', None, (None, None, None))
-+        self.tsInfo.addInstall(xpo)
-+
-+        po1 = FakePackage('dcbd', version='1')
-+        po1.addProvides('dcbd', 'EQ', ('0', '1', '0'))
-+        po2 = FakePackage('lldpad', version='2')
-+        po2.addObsoletes('dcbd', 'LT', ('0', '2', '0'))
-+        po3 = FakePackage('lldpad-devel', version='2')
-+        self.xsack.addPackage(po3)
-+        self.xsack.addPackage(po2)
-+        self.xsack.addPackage(po1)
-+
-+        self.assertEquals('err', *self.resolveCode())
-diff --git a/test/packagetests.py b/test/packagetests.py
-index e658cfa..dac8abd 100644
---- a/test/packagetests.py
-+++ b/test/packagetests.py
-@@ -252,6 +252,7 @@ class RangeCompareTests(unittest.TestCase):
- 
-         for requires, provides, result in (
-             (('foo', 'EQ', ('0', '1.4.4', '0')),   ('foo', 'EQ', ('0', '1.4.4', '0')),  1),
-+            (('foo', 'EQ', ('0', '1.4.4', '0')),   ('foo', 'EQ', (None, '1.4.4', '0')), 1),
-             (('foo', 'EQ', ('0', '1.4.4', '0')),   ('foo', 'EQ', ('0', '1.4.4', None)), 1),
-             (('foo', 'EQ', ('0', '1.4.4', None)),  ('foo', 'EQ', ('0', '1.4.4', '8')),  1),
-             (('foo', 'LT', ('0', '1.5.4', None)),  ('foo', 'EQ', ('0', '1.4.4', '7')),  1),
-diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
-index cf1821f..dfaa7e5 100644
---- a/test/simpleobsoletestests.py
-+++ b/test/simpleobsoletestests.py
-@@ -157,11 +157,32 @@ class SimpleObsoletesTests(OperationsTests):
-         self.assert_(res=='ok', msg)
-         self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
- 
--    def testObsoletex86_64ToMultiarch(self):
-+    def testObsoletex86_64ToMultiarch1(self):
-         p = self.pkgs
-         res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64])
-         self.assert_(res=='ok', msg)
-         self.assertResult((p.obsoletes_x86_64,))
-+    def testObsoletex86_64ToMultiarch2(self):
-+        p = self.pkgs
-+        res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.obsoletes_x86_64, p.obsoletes_i386])
-+        self.assert_(res=='ok', msg)
-+        self.assertResult((p.obsoletes_x86_64,))
-+    def testInstallObsoletex86_64ToMultiarch1(self):
-+        # Found by BZ 593349, libgfortran43/44
-+        p = self.pkgs
-+        res, msg = self.runOperation(['install', 'zsh.x86_64'], [], [p.installed_x86_64, p.installed_i386, p.obsoletes_x86_64, p.obsoletes_i386])
-+        self.assert_(res=='ok', msg)
-+        self.assertResult((p.obsoletes_x86_64,))
-+    def testInstallObsoletex86_64ToMultiarch2(self):
-+        p = self.pkgs
-+        res, msg = self.runOperation(['install', 'zsh.i386'], [], [p.installed_x86_64, p.installed_i386, p.obsoletes_x86_64, p.obsoletes_i386])
-+        self.assert_(res=='ok', msg)
-+        self.assertResult((p.obsoletes_i386,))
-+    def testInstallObsoletex86_64ToMultiarch3(self):
-+        p = self.pkgs
-+        res, msg = self.runOperation(['install', 'zsh'], [], [p.installed_noarch, p.obsoletes_x86_64, p.obsoletes_i386])
-+        self.assert_(res=='ok', msg)
-+        self.assertResult((p.obsoletes_x86_64,))
-     def testObsoletex86_64ToMultiarchForDependency(self):
-         p = self.pkgs
-         res, msg = self.runOperation(['install', 'superzippy'],
-diff --git a/test/simpleupdatetests.py b/test/simpleupdatetests.py
-index f02cc75..df641f7 100644
---- a/test/simpleupdatetests.py
-+++ b/test/simpleupdatetests.py
-@@ -764,3 +764,48 @@ class SimpleUpdateTests(OperationsTests):
-                                      [pa1, pa2, pa4, pa3])
-         self.assert_(res=='ok', msg)
-         self.assertResult((pa1, pa3))
-+
-+    def testUpdateRLEvince1(self):
-+        """ This tests a dep. upgrade from a dep. upgrade, with a multilib. pkg.
-+            where only half of the multilib. is installed. """
-+        pi1 = FakePackage('evince', '1', '1', '0', 'x86_64')
-+        pi1.addRequires('evince-libs', 'EQ', ('0', '1', '1'))
-+        pi2 = FakePackage('evince-libs', '1', '1', '0', 'x86_64')
-+        pi3 = FakePackage('evince-djvu', '1', '1', '0', 'x86_64')
-+        pi3.addRequires('evince-libs', 'EQ', ('0', '1', '1'))
-+
-+        pa1 = FakePackage('evince', '2', '1', '0', 'x86_64')
-+        pa1.addRequires('evince-libs', 'EQ', ('0', '2', '1'))
-+        pa2i = FakePackage('evince-libs', '2', '1', '0', 'i686')
-+        pa2x = FakePackage('evince-libs', '2', '1', '0', 'x86_64')
-+        pa3 = FakePackage('evince-djvu', '2', '1', '0', 'x86_64')
-+        pa3.addRequires('evince-libs', 'EQ', ('0', '2', '1'))
-+
-+        res, msg = self.runOperation(['update', 'evince'],
-+                                     [pi1, pi2, pi3],
-+                                     [pa1, pa2x, pa2i, pa3])
-+        self.assert_(res=='ok', msg)
-+        self.assertResult((pa1, pa2x, pa3))
-+
-+    def testUpdateRLEvince2(self):
-+        """ Dito. testUpdateRLEvince1, except here pa2i is before pa2x, and
-+            thus. will be seen first by .update() when it does an
-+            archless "find". """
-+        pi1 = FakePackage('evince', '1', '1', '0', 'x86_64')
-+        pi1.addRequires('evince-libs', 'EQ', ('0', '1', '1'))
-+        pi2 = FakePackage('evince-libs', '1', '1', '0', 'x86_64')
-+        pi3 = FakePackage('evince-djvu', '1', '1', '0', 'x86_64')
-+        pi3.addRequires('evince-libs', 'EQ', ('0', '1', '1'))
-+
-+        pa1 = FakePackage('evince', '2', '1', '0', 'x86_64')
-+        pa1.addRequires('evince-libs', 'EQ', ('0', '2', '1'))
-+        pa2i = FakePackage('evince-libs', '2', '1', '0', 'i686')
-+        pa2x = FakePackage('evince-libs', '2', '1', '0', 'x86_64')
-+        pa3 = FakePackage('evince-djvu', '2', '1', '0', 'x86_64')
-+        pa3.addRequires('evince-libs', 'EQ', ('0', '2', '1'))
-+
-+        res, msg = self.runOperation(['update', 'evince'],
-+                                     [pi1, pi2, pi3],
-+                                     [pa1, pa2i, pa2x, pa3])
-+        self.assert_(res=='ok', msg)
-+        self.assertResult((pa1, pa2x, pa3))
-diff --git a/test/testbase.py b/test/testbase.py
-index 0b05812..f91fbf1 100644
---- a/test/testbase.py
-+++ b/test/testbase.py
-@@ -17,6 +17,7 @@ from cli import YumBaseCli
- from yum.rpmsack import RPMDBPackageSack as _rpmdbsack
- import inspect
- from rpmUtils import arch
-+from rpmUtils.transaction import initReadOnlyTransaction
- 
- #############################################################
- ### Helper classes ##########################################
-@@ -44,11 +45,24 @@ class FakeConf(object):
-         self.persistdir = '/should-not-exist-bad-test!'
-         self.showdupesfromrepos = False
-         self.uid = 0
-+        self.groupremove_leaf_only = False
-+        self.protected_packages = []
-+
-+class FakeSack:
-+    """ Fake PackageSack to use with FakeRepository"""
-+    def __init__(self):
-+        pass # This is fake, so do nothing
-+    
-+    def have_fastReturnFileEntries(self):
-+        return True
- 
- class FakeRepo(object):
- 
-+    __fake_sack = FakeSack()
-     def __init__(self, id=None,sack=None):
-         self.id = id
-+        if sack is None:
-+            sack = self.__fake_sack
-         self.sack = sack
-         self.cost = 1000
- 
-@@ -280,6 +294,11 @@ class FakeRpmDb(packageSack.PackageSack):
-     def transactionReset(self):
-         return
- 
-+    def readOnlyTS(self):
-+        #  Should probably be able to "fake" this, so we can provide different
-+        # get_running_kernel_pkgtup(). Bah.
-+        return initReadOnlyTransaction("/")
-+
-     def getProvides(self, name, flags=None, version=(None, None, None)):
-         """return dict { packages -> list of matching provides }"""
-         self._checkIndexes(failure='build')
-diff --git a/test/yum-leak-test.py b/test/yum-leak-test.py
-index 299db51..760b770 100755
---- a/test/yum-leak-test.py
-+++ b/test/yum-leak-test.py
-@@ -1,6 +1,10 @@
- #! /usr/bin/python -tt
- 
--import yum, os, time, gc
-+# Do either:
-+# ./yum-leak-test.py
-+# ./yum-leak-test.py zip
-+
-+import yum, os, time, gc, sys
- from urlgrabber.progress import format_number
- 
- def out_mem(pid):
-@@ -17,9 +21,15 @@ def out_mem(pid):
-                     (format_number(int(ps['vmrss']) * 1024),
-                      format_number(int(ps['vmsize']) * 1024))
- 
--out_mem(os.getpid())
--while True:
-+print "Running:", yum.__version__
-+
-+def _leak_tst_yb():
-+ print "Doing YumBase leak test. "
-+ out_mem(os.getpid())
-+ while True:
-     yb = yum.YumBase()
-+    yb.preconf.debuglevel = 0
-+    yb.preconf.errorlevel = 0
-     yb.repos.setCacheDir(yum.misc.getCacheDir())
-     yb.rpmdb.returnPackages()
-     yb.pkgSack.returnPackages()
-@@ -33,3 +43,83 @@ while True:
-            print gc.garbage[0]
-            print gc.get_referrers(gc.garbage[0])
-     # print "DBG:", gc.get_referrers(yb)
-+
-+def _leak_tst_cl():
-+    print "Doing closeRpmDB and .up test. "
-+    yb = yum.YumBase()
-+    yb.preconf.debuglevel = 0
-+    yb.preconf.errorlevel = 0
-+    yb.repos.setCacheDir(yum.misc.getCacheDir())
-+    while True:
-+        out_mem(os.getpid())
-+        print "up:",
-+        yb.up
-+        print "done"
-+        out_mem(os.getpid())
-+
-+        print "rpmdb pkgs:",
-+        yb.rpmdb.returnPackages()
-+        print "done"
-+        out_mem(os.getpid())
-+
-+        print "pkgSack pkgs:",
-+        yb.pkgSack.returnPackages()
-+        print "done"
-+        out_mem(os.getpid())
-+
-+        print "close:",
-+        yb.closeRpmDB()
-+        print "done"
-+
-+def _leak_tst_ir():
-+    print "Doing install/remove leak test. "
-+
-+    def _init():
-+        yb = cli.YumBaseCli() # Need doTransaction() etc.
-+        yb.preconf.debuglevel = 0
-+        yb.preconf.errorlevel = 0
-+        yb.repos.setCacheDir(yum.misc.getCacheDir())
-+        yb.conf.assumeyes = True
-+        return yb
-+
-+    sys.path.append('/usr/share/yum-cli')
-+    import cli
-+    yb = _init()
-+    out_mem(os.getpid())
-+
-+    def _run(yb):
-+        print "  Run"
-+        (code, msgs) = yb.buildTransaction()
-+        if code == 1:
-+            print "ERROR:", core, msgs
-+            sys.exit(1)
-+        returnval = yb.doTransaction()
-+        if returnval != 0: # We could allow 1 too, but meh.
-+            print "ERROR:", returnval
-+            sys.exit(1)
-+        yb.closeRpmDB()
-+
-+    last = None
-+    while True:
-+        if True:
-+            yb = _init()
-+        out_mem(os.getpid())
-+        print "  Install:", sys.argv[1:]
-+        for pat in sys.argv[1:]:
-+            yb.install(pattern=pat)
-+        out_mem(os.getpid())
-+        _run(yb)
-+        out_mem(os.getpid())
-+
-+        print "  Remove:", sys.argv[1:]
-+        for pat in sys.argv[1:]:
-+            yb.remove(pattern=pat)
-+        out_mem(os.getpid())
-+        _run(yb)
-+
-+if len(sys.argv) == 2 and sys.argv[1] == 'closeRpmDB':
-+    _leak_tst_cl()
-+elif sys.argv[1:]:
-+    _leak_tst_ir()
-+else:
-+    _leak_tst_yb()
-diff --git a/test/yum-pylintrc b/test/yum-pylintrc
-index dd3db57..fa3e57c 100644
---- a/test/yum-pylintrc
-+++ b/test/yum-pylintrc
-@@ -82,7 +82,8 @@ disable-msg-cat=C,R
- # W0703: *Catch "Exception"*
- # W0710: *Exception doesn't inherit from standard "Exception" class* (give false positives on ex. KeyboardInterrupt)
- # W0631: *Using possibly undefined loop variable %r* (Gives to many false positives)
--disable-msg=E1101,F0401,W0704,W0612,W0212,W0613,W0602,W0511,W0401,W0614,W0232,W0201,W0603,W0621,W0142,W0102,W0105,W0702,W0231,E0202,W0622,W0403,W0223,W0104,W1001,W0221,W0703,W0710,W0631
-+# E1103: *%s %r has no %r member (but some types could not be inferred)*
-+disable-msg=E1101,F0401,W0704,W0612,W0212,W0613,W0602,W0511,W0401,W0614,W0232,W0201,W0603,W0621,W0142,W0102,W0105,W0702,W0231,E0202,W0622,W0403,W0223,W0104,W1001,W0221,W0703,W0710,W0631,E1103
- 
- 
- [REPORTS]
-diff --git a/utils.py b/utils.py
-index dd6b642..9335112 100644
---- a/utils.py
-+++ b/utils.py
-@@ -21,6 +21,7 @@ import yum
- from cli import *
- from yum import Errors
- from yum import _
-+from yum.i18n import utf8_width
- from yum import logginglevels
- from optparse import OptionGroup
- 
-@@ -105,7 +106,7 @@ def show_lock_owner(pid, logger):
- 
-     ps = get_process_info(pid)
-     # This yumBackend isn't very friendly, so...
--    if ps['name'] == 'yumBackend.py':
-+    if ps is not None and ps['name'] == 'yumBackend.py':
-         nmsg = _("  The other application is: PackageKit")
-     else:
-         nmsg = _("  The other application is: %s") % ps['name']
-@@ -120,6 +121,8 @@ def show_lock_owner(pid, logger):
-                     (time.ctime(ps['start_time']), ago))
-     logger.critical(_("    State  : %s, pid: %d") % (ps['state'], pid))
- 
-+
-+
- class YumUtilBase(YumBaseCli):
-     def __init__(self,name,ver,usage):
-         YumBaseCli.__init__(self)
-@@ -132,6 +135,46 @@ class YumUtilBase(YumBaseCli):
-         suppress_keyboard_interrupt_message()
-         logger = logging.getLogger("yum.util")
-         verbose_logger = logging.getLogger("yum.verbose.util")
-+        # Add yum-utils version to history records.
-+        if hasattr(self, 'run_with_package_names'):
-+            self.run_with_package_names.add("yum-utils")
-+
-+    def exUserCancel(self):
-+        self.logger.critical(_('\n\nExiting on user cancel'))
-+        if self.unlock(): return 200
-+        return 1
-+
-+    def exIOError(self, e):
-+        if e.errno == 32:
-+            self.logger.critical(_('\n\nExiting on Broken Pipe'))
-+        else:
-+            self.logger.critical(_('\n\n%s') % str(e))
-+        if self.unlock(): return 200
-+        return 1
-+
-+    def exPluginExit(self, 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 self.unlock(): return 200
-+        return 1
-+
-+    def exFatal(self, e):
-+        self.logger.critical('\n\n%s', to_unicode(e.value))
-+        if self.unlock(): return 200
-+        return 1
-+        
-+    def unlock(self):
-+        try:
-+            self.closeRpmDB()
-+            self.doUnlock()
-+        except Errors.LockError, e:
-+            return 200
-+        return 0
-         
-         
-     def getOptionParser(self):
-@@ -150,9 +193,12 @@ class YumUtilBase(YumBaseCli):
-                 if "%s" %(e.msg,) != lockerr:
-                     lockerr = "%s" %(e.msg,)
-                     self.logger.critical(lockerr)
--                self.logger.critical("Another app is currently holding the yum lock; waiting for it to exit...")  
--                show_lock_owner(e.pid, self.logger)
--                time.sleep(2)
-+                if not self.conf.exit_on_lock:
-+                    self.logger.critical("Another app is currently holding the yum lock; waiting for it to exit...")  
-+                    show_lock_owner(e.pid, self.logger)
-+                    time.sleep(2)
-+                else:
-+                    raise Errors.YumBaseError, _("Another app is currently holding the yum lock; exiting as configured by exit_on_lock")
-             else:
-                 break
-         
-@@ -162,6 +208,14 @@ class YumUtilBase(YumBaseCli):
-     def doUtilConfigSetup(self,args = sys.argv[1:],pluginsTypes=(plugins.TYPE_CORE,)):
-         # Parse only command line options that affect basic yum setup
-         opts = self._parser.firstParse(args)
-+
-+        # go through all the setopts and set the global ones
-+        self._parseSetOpts(opts.setopts)
-+
-+        if self.main_setopts:
-+            for opt in self.main_setopts.items:
-+                setattr(opts, opt, getattr(self.main_setopts, opt))
-+
-         # Just print out the version if that's what the user wanted
-         if opts.version:
-             self._printUtilVersion()
-@@ -187,8 +241,15 @@ class YumUtilBase(YumBaseCli):
-                 pc.disabled_plugins =self._parser._splitArg(opts.disableplugins)
-             if hasattr(opts, "enableplugins"):
-                 pc.enabled_plugins = self._parser._splitArg(opts.enableplugins)
-+            if hasattr(opts, "releasever"):
-+                pc.releasever = opts.releasever
-             self.conf
- 
-+            # now set  all the non-first-start opts from main from our setopts
-+            if self.main_setopts:
-+                for opt in self.main_setopts.items:
-+                    setattr(self.conf, opt, getattr(self.main_setopts, opt))
-+
-         except Errors.ConfigError, e:
-             self.logger.critical(_('Config Error: %s'), e)
-             sys.exit(1)
-@@ -229,58 +290,64 @@ class YumUtilBase(YumBaseCli):
-         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
-+    def doUtilBuildTransaction(self, unfinished_transactions_check=True):
-+        try:
-+            (result, resultmsgs) = self.buildTransaction(unfinished_transactions_check = unfinished_transactions_check)
-+        except plugins.PluginYumExit, e:
-+            return self.exPluginExit(e)
-+        except Errors.YumBaseError, e:
-+            result = 1
-+            resultmsgs = [unicode(e)]
-+        except KeyboardInterrupt:
-+            return self.exUserCancel()
-+        except IOError, e:
-+            return self.exIOError(e)
-+       
-+        # Act on the depsolve result
-+        if result == 0:
-+            # Normal exit
-+            if self.unlock(): return 200
-+            return 0
-+        elif result == 1:
-+            # Fatal error
-+            for msg in resultmsgs:
-+                prefix = _('Error: %s')
-+                prefix2nd = (' ' * (utf8_width(prefix) - 2))
-+                self.logger.critical(prefix, msg.replace('\n', '\n' + prefix2nd))
-+            if not self.conf.skip_broken:
-+                self.verbose_logger.info(_(" You could try using --skip-broken to work around the problem"))
-+            if not self._rpmdb_warn_checks(out=self.verbose_logger.info, warn=False):
-+                self.verbose_logger.info(_(" You could try running: rpm -Va --nofiles --nodigest"))
-+            if self.unlock(): return 200
-             return 1
-+        elif result == 2:
-+            # Continue on
-+            pass
-+        else:
-+            self.logger.critical(_('Unknown Error(s): Exit Code: %d:'), result)
-+            for msg in resultmsgs:
-+                self.logger.critical(msg)
-+            if self.unlock(): return 200
-+            return 3
- 
--        def unlock():
--            try:
--                self.closeRpmDB()
--                self.doUnlock()
--            except Errors.LockError, e:
--                return 200
--            return 0
-+        self.verbose_logger.log(logginglevels.INFO_2, _('\nDependencies Resolved'))
-+        
-+    def doUtilTransaction(self):
- 
-         try:
-             return_code = self.doTransaction()
-         except plugins.PluginYumExit, e:
--            return exPluginExit(e)
-+            return self.exPluginExit(e)
-         except Errors.YumBaseError, e:
--            return exFatal(e)
-+            return self.exFatal(e)
-         except KeyboardInterrupt:
--            return exUserCancel()
-+            return self.exUserCancel()
-         except IOError, e:
--            return exIOError(e)
-+            return self.exIOError(e,)
- 
-         self.verbose_logger.log(logginglevels.INFO_2, _('Complete!'))
--        if unlock(): return 200
-+        if self.unlock(): return 200
-         return return_code
-         
- def main():
-diff --git a/yum-updatesd.py b/yum-updatesd.py
-index f96940c..1ce4720 100644
---- a/yum-updatesd.py
-+++ b/yum-updatesd.py
-@@ -118,9 +118,7 @@ class SyslogUpdateEmitter(UpdateEmitter):
-                       "DEBUG": syslog.LOG_DEBUG }
-         if type(lvl) == int:
-             return lvl
--        if level_map.has_key(lvl.upper()):
--            return level_map[lvl.upper()]
--        return syslog.LOG_INFO
-+        return level_map.get(lvl.upper(), syslog.LOG_INFO)
- 
-     def _facilityMap(self, facility):
-         facility_map = { "KERN": syslog.LOG_KERN,
-@@ -142,9 +140,7 @@ class SyslogUpdateEmitter(UpdateEmitter):
-                          "LOCAL7": syslog.LOG_LOCAL7,}
-         if type(facility) == int:
-             return facility
--        elif facility_map.has_key(facility.upper()):
--            return facility_map[facility.upper()]
--        return syslog.LOG_DAEMON
-+        return facility_map.get(facility.upper(), syslog.LOG_DAEMON)
- 
- 
- class EmailUpdateEmitter(UpdateEmitter):
-diff --git a/yum.spec b/yum.spec
-index 29870e5..3b8b3f8 100644
---- a/yum.spec
-+++ b/yum.spec
-@@ -22,14 +22,22 @@ Requires: pygpgme
- Prereq: /sbin/chkconfig, /sbin/service, coreutils
- Conflicts: yum-skip-broken
- Conflicts: rpm >= 5-0
--Obsoletes: yum-basearchonly
-+Obsoletes: yum-skip-broken <= 1.1.18
-+Obsoletes: yum-basearchonly <= 1.1.9
- Obsoletes: yum-allow-downgrade < 1.1.20-0
- Obsoletes: yum-plugin-allow-downgrade < 1.1.22-0
-+Obsoletes: yum-plugin-protect-packages < 1.1.27-0
-+Provides: yum-skip-broken
-+Provides: yum-basearchonly
-+Provides: yum-allow-downgrade
-+Provides: yum-plugin-allow-downgrade
-+Provides: yum-protect-packages
-+Provides: yum-plugin-protect-packages
- 
- %description
- Yum is a utility that can check for and automatically download and
- install updated RPM packages. Dependencies are obtained and downloaded 
--automatically prompting the user as necessary.
-+automatically, prompting the user for permission as necessary.
- 
- %package updatesd
- Summary: Update notification daemon
-@@ -57,6 +65,12 @@ make DESTDIR=$RPM_BUILD_ROOT install
- # install -m 644 %{SOURCE1} $RPM_BUILD_ROOT/etc/yum/yum.conf
- # install -m 755 %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.daily/yum.cron
- 
-+# Ghost files:
-+mkdir -p $RPM_BUILD_ROOT/var/lib/yum/history
-+mkdir -p $RPM_BUILD_ROOT/var/lib/yum/plugins
-+mkdir -p $RPM_BUILD_ROOT/var/lib/yum/yumdb
-+touch $RPM_BUILD_ROOT/var/lib/yum/uuid
-+
- %find_lang %name
- 
- %clean
-@@ -80,8 +94,10 @@ exit 0
- %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
-+%dir %{_sysconfdir}/yum/protected.d
- %dir %{_sysconfdir}/yum/repos.d
-+%dir %{_sysconfdir}/yum/vars
- %config %{_sysconfdir}/logrotate.d/%{name}
- %{_sysconfdir}/bash_completion.d
- %{_datadir}/yum-cli/*
-@@ -91,6 +107,10 @@ exit 0
- /usr/lib/python?.?/site-packages/rpmUtils
- %dir /var/cache/yum
- %dir /var/lib/yum
-+%ghost /var/lib/yum/uuid
-+%ghost /var/lib/yum/history
-+%ghost /var/lib/yum/plugins
-+%ghost /var/lib/yum/yumdb
- %{_mandir}/man*/yum.*
- %{_mandir}/man*/yum-shell*
- 
-diff --git a/yum/Errors.py b/yum/Errors.py
-index a3a12c5..143c9a4 100644
---- a/yum/Errors.py
-+++ b/yum/Errors.py
-@@ -46,6 +46,23 @@ class YumTestTransactionError(YumBaseError):
- class YumRPMCheckError(YumBaseError):
-     pass
-         
-+class YumRPMTransError(YumBaseError):
-+    """ This class means rpm's .ts.run() returned known errors. We are compat.
-+        with YumBaseError in that we print nicely, and compat. with traditional
-+        usage of this error from runTransaction(). """
-+    def __init__(self, msg, errors):
-+        self.msg    = msg
-+        self.errors = errors
-+        # old YumBaseError raises from runTransaction used to raise just this
-+        self.value  = self.errors
-+
-+    def __str__(self):
-+        return "%s" %(self.msg,)
-+
-+    def __unicode__(self):
-+        return '%s' % to_unicode(self.msg)
-+
-+
- class LockError(YumBaseError):
-     def __init__(self, errno, msg, pid=0):
-         YumBaseError.__init__(self)
-@@ -90,7 +107,9 @@ class ReinstallRemoveError(ReinstallError):
-     pass
- 
- class ReinstallInstallError(ReinstallError):
--    pass
-+    def __init__(self, value=None, failed_pkgs=[]):
-+        ReinstallError.__init__(self, value)
-+        self.failed_pkgs = failed_pkgs
- 
- class DowngradeError(YumBaseError):
-     pass
-diff --git a/yum/__init__.py b/yum/__init__.py
-index ea73549..6ca40ee 100644
---- a/yum/__init__.py
-+++ b/yum/__init__.py
-@@ -30,7 +30,7 @@ import fnmatch
- import logging
- import logging.config
- import operator
--import gzip
-+
- 
- import yum.i18n
- _ = yum.i18n._
-@@ -41,7 +41,8 @@ from config import ParsingError, ConfigParser
- import Errors
- import rpmsack
- import rpmUtils.updates
--from rpmUtils.arch import canCoinstall, ArchStorage, isMultiLibArch
-+from rpmUtils.arch import archDifference, canCoinstall, ArchStorage, isMultiLibArch
-+from rpmUtils.miscutils import compareEVR
- import rpmUtils.transaction
- import comps
- import pkgtag_db
-@@ -102,11 +103,28 @@ class _YumPreBaseConf:
-         self.enabled_plugins = None
-         self.syslog_ident = None
-         self.syslog_facility = None
--        self.syslog_device = '/dev/log'
-+        self.syslog_device = None
-         self.arch = None
-         self.releasever = None
-         self.uuid = None
- 
-+
-+class _YumPreRepoConf:
-+    """This is the configuration interface for the repos configuration.
-+       So if you want to change callbacks etc. you tweak it here, and when
-+       yb.repos does it's thing ... it happens. """
-+
-+    def __init__(self):
-+        self.progressbar = None
-+        self.callback = None
-+        self.failure_callback = None
-+        self.interrupt_callback = None
-+        self.confirm_func = None
-+        self.gpg_import_func = None
-+        self.cachedir = None
-+        self.cache = None
-+
-+
- class _YumCostExclude:
-     """ This excludes packages that are in repos. of lower cost than the passed
-         repo. """
-@@ -150,6 +168,9 @@ class YumBase(depsolve.Depsolve):
-         self.logger = logging.getLogger("yum.YumBase")
-         self.verbose_logger = logging.getLogger("yum.verbose.YumBase")
-         self._repos = RepoStorage(self)
-+        self.repo_setopts = {} # since we have to use repo_setopts in base and 
-+                               # not in cli - set it up as empty so no one
-+                               # trips over it later
- 
-         # Start with plugins disabled
-         self.disablePlugins()
-@@ -159,6 +180,7 @@ class YumBase(depsolve.Depsolve):
-         self.mediagrabber = None
-         self.arch = ArchStorage()
-         self.preconf = _YumPreBaseConf()
-+        self.prerepoconf = _YumPreRepoConf()
- 
-         self.run_with_package_names = set()
- 
-@@ -270,12 +292,15 @@ class YumBase(depsolve.Depsolve):
-             startupconf.syslog_ident = syslog_ident
-         if syslog_facility != None:
-             startupconf.syslog_facility = syslog_facility
-+        if syslog_device != None:
-+            startupconf.syslog_device = syslog_device
-         if releasever != None:
-             startupconf.releasever = releasever
- 
-         self.doLoggingSetup(startupconf.debuglevel, startupconf.errorlevel,
-                             startupconf.syslog_ident,
--                            startupconf.syslog_facility, syslog_device)
-+                            startupconf.syslog_facility,
-+                            startupconf.syslog_device)
- 
-         if init_plugins and startupconf.plugins:
-             self.doPluginSetup(optparser, plugin_types, startupconf.pluginpath,
-@@ -299,12 +324,9 @@ class YumBase(depsolve.Depsolve):
-         # this (core now only uses YumBase.conf.yumvar).
-         self.yumvar = self.conf.yumvar
- 
--        self.getReposFromConfig()
--
-         # who are we:
-         self.conf.uid = os.geteuid()
-         
--        
-         self.doFileLogSetup(self.conf.uid, self.conf.logfile)
-         self.verbose_logger.debug('Config time: %0.3f' % (time.time() - conf_st))
-         self.plugins.run('init')
-@@ -374,6 +396,10 @@ class YumBase(depsolve.Depsolve):
-                 thisrepo.repo_config_age = repo_age
-                 thisrepo.repofile = repofn
- 
-+            if thisrepo.id in self.repo_setopts:
-+                for opt in self.repo_setopts[thisrepo.id].items:
-+                    setattr(thisrepo, opt, getattr(self.repo_setopts[thisrepo.id], opt))
-+                    
-             if validate and not validate(thisrepo):
-                 continue
-                     
-@@ -480,8 +506,7 @@ class YumBase(depsolve.Depsolve):
-                                     _('Reading Local RPMDB'))
-             self._rpmdb = rpmsack.RPMDBPackageSack(root=self.conf.installroot,
-                                                    releasever=self.conf.yumvar['releasever'],
--                                                   persistdir=self.conf.persistdir,
--                                                   cachedir=self.conf.cachedir)
-+                                                   persistdir=self.conf.persistdir)
-             self.verbose_logger.debug('rpmdb time: %0.3f' % (time.time() - rpmdb_st))
-         return self._rpmdb
- 
-@@ -508,7 +533,26 @@ class YumBase(depsolve.Depsolve):
- 
-     def _getRepos(self, thisrepo=None, doSetup = False):
-         """ For each enabled repository set up the basics of the repository. """
--        self.conf # touch the config class first
-+        if hasattr(self, 'prerepoconf'):
-+            self.conf # touch the config class first
-+
-+            self.getReposFromConfig()
-+
-+            # Recursion
-+            prerepoconf = self.prerepoconf
-+            del self.prerepoconf
-+
-+            self.repos.setProgressBar(prerepoconf.progressbar)
-+            self.repos.callback = prerepoconf.callback
-+            self.repos.setFailureCallback(prerepoconf.failure_callback)
-+            self.repos.setInterruptCallback(prerepoconf.interrupt_callback)
-+            self.repos.confirm_func = prerepoconf.confirm_func
-+            self.repos.gpg_import_func = prerepoconf.gpg_import_func
-+            if prerepoconf.cachedir is not None:
-+                self.repos.setCacheDir(prerepoconf.cachedir)
-+            if prerepoconf.cache is not None:
-+                self.repos.setCache(prerepoconf.cache)
-+
- 
-         if doSetup:
-             repo_st = time.time()        
-@@ -706,9 +750,9 @@ class YumBase(depsolve.Depsolve):
-             self.verbose_logger.log(logginglevels.DEBUG_4,
-                 _('Adding group file from repository: %s'), repo)
-             groupfile = repo.getGroups()
--            # open it up as a file object so iterparse can cope with our gz file
--            if groupfile is not None and groupfile.endswith('.gz'):
--                groupfile = gzip.open(groupfile)
-+            # open it up as a file object so iterparse can cope with our compressed file
-+            if groupfile:
-+                groupfile = misc.decompress(groupfile)
-                 
-             try:
-                 self._comps.add(groupfile)
-@@ -855,7 +899,11 @@ class YumBase(depsolve.Depsolve):
-             self.logger.critical(msg)
-             self.yumUtilsMsg(self.logger.critical, "yum-complete-transaction")
-             time.sleep(3)
--
-+        
-+        # XXX - we could add a conditional here to avoid running the plugins and 
-+        # limit_installonly_pkgs, etc - if we're being run from yum-complete-transaction
-+        # and don't want it to happen. - skv
-+        
-         self.plugins.run('preresolve')
-         ds_st = time.time()
- 
-@@ -864,6 +912,9 @@ class YumBase(depsolve.Depsolve):
-         
-         #  We _must_ get rid of all the used tses before we go on, so that C-c
-         # works for downloads / mirror failover etc.
-+        kern_pkgtup = None
-+        if rescode == 2 and self.conf.protected_packages:
-+            kern_pkgtup = misc.get_running_kernel_pkgtup(self.rpmdb.ts)
-         self.rpmdb.ts = None
- 
-         # do the skip broken magic, if enabled and problems exist
-@@ -878,6 +929,53 @@ class YumBase(depsolve.Depsolve):
- 
-         if self.tsInfo.pkgSack is not None: # rm Transactions don't have pkgSack
-             self.tsInfo.pkgSack.dropCachedData()
-+
-+        #  This is a version of the old "protect-packages" plugin, it allows
-+        # you to erase duplicates and do remove+install.
-+        #  But we don't allow you to turn it off!:)
-+        protect_states = [TS_OBSOLETED, TS_ERASE]
-+        txmbrs = []
-+        if rescode == 2 and self.conf.protected_packages:
-+            protected = set(self.conf.protected_packages)
-+            txmbrs = self.tsInfo.getMembersWithState(None, protect_states)
-+        bad_togo = {}
-+        for txmbr in txmbrs:
-+            if kern_pkgtup is not None and txmbr.pkgtup == kern_pkgtup:
-+                pass
-+            elif txmbr.name not in protected:
-+                continue
-+            if txmbr.name not in bad_togo:
-+                bad_togo[txmbr.name] = []
-+            bad_togo[txmbr.name].append(txmbr.pkgtup)
-+        for ipkg in self.rpmdb.searchNames(bad_togo.keys()):
-+            if (kern_pkgtup is not None and ipkg.name == kern_pkgtup[0] and
-+                kern_pkgtup in bad_togo[kern_pkgtup[0]]):
-+                continue # If "running kernel" matches, it's always bad.
-+            if ipkg.name not in bad_togo:
-+                continue
-+            # If there is at least one version not being removed, allow it
-+            if ipkg.pkgtup not in bad_togo[ipkg.name]:
-+                del bad_togo[ipkg.name]
-+        for pkgname in bad_togo.keys():
-+            if (kern_pkgtup is not None and pkgname == kern_pkgtup[0] and
-+                kern_pkgtup in bad_togo[kern_pkgtup[0]]):
-+                continue # If "running kernel" matches, it's always bad.
-+            for txmbr in self.tsInfo.matchNaevr(name=pkgname):
-+                if txmbr.name not in bad_togo:
-+                    continue
-+                if txmbr.pkgtup in bad_togo[ipkg.name]:
-+                    continue
-+                # If we are installing one version we aren't removing, allow it
-+                if txmbr.output_state in TS_INSTALL_STATES:
-+                    del bad_togo[ipkg.name]
-+
-+        if bad_togo:
-+            rescode = 1
-+            restring = []
-+            for pkgname in sorted(bad_togo):
-+                restring.append(_('Trying to remove "%s", which is protected') %
-+                                pkgname)
-+
-         self.rpmdb.dropCachedData()
- 
-         self.verbose_logger.debug('Depsolve time: %0.3f' % (time.time() - ds_st))
-@@ -890,7 +988,7 @@ class YumBase(depsolve.Depsolve):
-         # Try another depsolve
-         if self.conf.skip_broken and rescode==1:
-             if clear_skipped:
--               self.skipped_packages = []    # reset the public list of skipped packages.
-+                self.skipped_packages = []    # reset the public list of skipped packages.
-             sb_st = time.time()
-             rescode, restring = self._skipPackagesWithProblems(rescode, restring)
-             self._printTransaction()        
-@@ -975,6 +1073,10 @@ class YumBase(depsolve.Depsolve):
-                 else:
-                     self.verbose_logger.debug('SKIPBROKEN: resetting already resolved packages (transaction not changed)' )
-                     self.tsInfo.resetResolved(hard=True)
-+            else: 
-+                # Reset the looping counter, because it is only a loop if the same transaction is
-+                # unchanged two times in row, not if it has been unchanged in a early stage.
-+                looping = 0 
-                     
-             # if we are all clear, then we have to check that the whole current transaction 
-             # can complete the depsolve without error, because the packages skipped
-@@ -1129,27 +1231,73 @@ class YumBase(depsolve.Depsolve):
-             toRemove.add(dep)
-             self._getDepsToRemove(dep, deptree, toRemove)
- 
--    def _rpmdb_warn_checks(self, out=None, warn=True, chkcmd='all'):
-+    def _rpmdb_warn_checks(self, out=None, warn=True, chkcmd=None, header=None,
-+                           ignore_pkgs=[]):
-         if out is None:
-             out = self.logger.warning
-+        if chkcmd is None:
-+            chkcmd = ['dependencies', 'duplicates']
-+        if header is None:
-+            # FIXME: _N()
-+            msg = _("** Found %d pre-existing rpmdb problem(s),"
-+                    " 'yum check' output follows:")
-+            header = lambda problems: not problems or out(msg % problems)
-         if warn:
-             out(_('Warning: RPMDB altered outside of yum.'))
- 
-+        if type(chkcmd) in (type([]), type(set())):
-+            chkcmd = set(chkcmd)
-+        else:
-+            chkcmd = set([chkcmd])
-+
-+        ignore_pkgtups = set((pkg.pkgtup for pkg in ignore_pkgs))
-+
-         rc = 0
-         probs = []
--        if chkcmd in ('all', 'dependencies'):
-+        if chkcmd.intersection(set(('all', 'dependencies'))):
-             prob2ui = {'requires' : _('missing requires'),
-                        'conflicts' : _('installed conflict')}
--            probs.extend(self.rpmdb.check_dependencies())
-+            for prob in self.rpmdb.check_dependencies():
-+                if prob.pkg.pkgtup in ignore_pkgtups:
-+                    continue
-+                if prob.problem == 'conflicts':
-+                    found = True # all the conflicting pkgs have to be ignored
-+                    for res in prob.conflicts:
-+                        if res.pkgtup not in ignore_pkgtups:
-+                            found = False
-+                            break
-+                    if found:
-+                        continue
-+                probs.append(prob)
- 
--        if chkcmd in ('all', 'duplicates'):
-+        if chkcmd.intersection(set(('all', 'duplicates'))):
-             iopkgs = set(self.conf.installonlypkgs)
--            probs.extend(self.rpmdb.check_duplicates(iopkgs))
-+            for prob in self.rpmdb.check_duplicates(iopkgs):
-+                if prob.pkg.pkgtup in ignore_pkgtups:
-+                    continue
-+                if prob.duplicate.pkgtup in ignore_pkgtups:
-+                    continue
-+                probs.append(prob)
- 
-+        if chkcmd.intersection(set(('all', 'obsoleted'))):
-+            for prob in self.rpmdb.check_obsoleted():
-+                if prob.pkg.pkgtup in ignore_pkgtups:
-+                    continue
-+                if prob.obsoleter.pkgtup in ignore_pkgtups:
-+                    continue
-+                probs.append(prob)
-+
-+        if chkcmd.intersection(set(('all', 'provides'))):
-+            for prob in self.rpmdb.check_provides():
-+                if prob.pkg.pkgtup in ignore_pkgtups:
-+                    continue
-+                probs.append(prob)
-+
-+        header(len(probs))
-         for prob in sorted(probs):
-             out(prob)
- 
--        return len(probs)
-+        return probs
- 
-     def runTransaction(self, cb):
-         """takes an rpm callback object, performs the transaction"""
-@@ -1163,17 +1311,31 @@ class YumBase(depsolve.Depsolve):
-                 self.run_with_package_names.add('yum-metadata-parser')
-                 break
- 
--        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 None or rpmdbv != lastdbv:
--            self._rpmdb_warn_checks(warn=lastdbv is not None)
--        if self.conf.history_record:
--            self.history.beg(rpmdbv, using_pkgs, list(self.tsInfo))
--
-+        if self.conf.history_record and not self.ts.isTsFlagSet(rpm.RPMTRANS_FLAG_TEST):
-+            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
-+            rpmdb_problems = []
-+            if lastdbv is None or rpmdbv != lastdbv:
-+                txmbrs = self.tsInfo.getMembersWithState(None, TS_REMOVE_STATES)
-+                ignore_pkgs = [txmbr.po for txmbr in txmbrs]
-+                output_warn = lastdbv is not None
-+                rpmdb_problems = self._rpmdb_warn_checks(warn=output_warn,
-+                                                        ignore_pkgs=ignore_pkgs)
-+            cmdline = None
-+            if hasattr(self, 'args') and self.args:
-+                cmdline = ' '.join(self.args)
-+            elif hasattr(self, 'cmds') and self.cmds:
-+                cmdline = ' '.join(self.cmds)
-+            self.history.beg(rpmdbv, using_pkgs, list(self.tsInfo),
-+                             self.skipped_packages, rpmdb_problems, cmdline)
-+            # write out our config and repo data to additional history info
-+            self._store_config_in_history()
-+            
-+            self.plugins.run('historybegin')
-         #  Just before we update the transaction, update what we think the
-         # rpmdb will look like. This needs to be done before the run, so that if
-         # "something" happens and the rpmdb is different from what we think it
-@@ -1196,10 +1358,18 @@ class YumBase(depsolve.Depsolve):
-             self.verbose_logger.debug(errstring)
-             resultobject.return_code = 1
-         else:
--            if self.conf.history_record:
-+            if self.conf.history_record and not self.ts.isTsFlagSet(rpm.RPMTRANS_FLAG_TEST):
-                 herrors = [to_unicode(to_str(x)) for x in errors]
-+                self.plugins.run('historyend')                
-                 self.history.end(rpmdbv, 2, errors=herrors)
--            raise Errors.YumBaseError, errors
-+
-+                
-+            self.logger.critical(_("Transaction couldn't start:"))
-+            for e in errors:
-+                self.logger.critical(e[0]) # should this be 'to_unicoded'?
-+            raise Errors.YumRPMTransError(msg=_("Could not run transaction."),
-+                                          errors=errors)
-+
-                           
-         if not self.conf.keepcache:
-             self.cleanUsedHeadersPackages()
-@@ -1215,7 +1385,8 @@ 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(resultobject)
-+        if not self.ts.isTsFlagSet(rpm.RPMTRANS_FLAG_TEST):
-+            self.verifyTransaction(resultobject)
-         return resultobject
- 
-     def verifyTransaction(self, resultobject=None):
-@@ -1234,6 +1405,7 @@ class YumBase(depsolve.Depsolve):
-         # and the install reason
- 
-         self.rpmdb.dropCachedData()
-+        self.plugins.run('preverifytrans')
-         for txmbr in self.tsInfo:
-             if txmbr.output_state in TS_INSTALL_STATES:
-                 if not self.rpmdb.contains(po=txmbr.po):
-@@ -1247,7 +1419,9 @@ class YumBase(depsolve.Depsolve):
-                 po.yumdb_info.from_repo = rpo.repoid
-                 po.yumdb_info.reason = txmbr.reason
-                 po.yumdb_info.releasever = self.conf.yumvar['releasever']
--                if hasattr(self, 'cmds') and self.cmds:
-+                if hasattr(self, 'args') and self.args:
-+                    po.yumdb_info.command_line = ' '.join(self.args)
-+                elif hasattr(self, 'cmds') and self.cmds:
-                     po.yumdb_info.command_line = ' '.join(self.cmds)
-                 csum = rpo.returnIdSum()
-                 if csum is not None:
-@@ -1271,7 +1445,28 @@ class YumBase(depsolve.Depsolve):
-                     po.yumdb_info.from_repo_revision  = str(md.revision)
-                 if md:
-                     po.yumdb_info.from_repo_timestamp = str(md.timestamp)
--            
-+
-+                loginuid = misc.getloginuid()
-+                if loginuid is None:
-+                    continue
-+                loginuid = str(loginuid)
-+                if txmbr.updates or txmbr.downgrades or txmbr.reinstall:
-+                    if txmbr.updates:
-+                        opo = txmbr.updates[0]
-+                    elif txmbr.downgrades:
-+                        opo = txmbr.downgrades[0]
-+                    else:
-+                        opo = po
-+                    if 'installed_by' in opo.yumdb_info:
-+                        po.yumdb_info.installed_by = opo.yumdb_info.installed_by
-+                    po.yumdb_info.changed_by = loginuid
-+                else:
-+                    po.yumdb_info.installed_by = loginuid
-+
-+        # Remove old ones after installing new ones, so we can copy values.
-+        for txmbr in self.tsInfo:
-+            if txmbr.output_state in TS_INSTALL_STATES:
-+                pass
-             elif txmbr.output_state in TS_REMOVE_STATES:
-                 if self.rpmdb.contains(po=txmbr.po):
-                     if not self.tsInfo.getMembersWithState(pkgtup=txmbr.pkgtup,
-@@ -1286,10 +1481,12 @@ class YumBase(depsolve.Depsolve):
-             else:
-                 self.verbose_logger.log(logginglevels.DEBUG_2, 'What is this? %s' % txmbr.po)
- 
--        if self.conf.history_record:
-+        self.plugins.run('postverifytrans')
-+        if self.conf.history_record and not self.ts.isTsFlagSet(rpm.RPMTRANS_FLAG_TEST):
-             ret = -1
-             if resultobject is not None:
-                 ret = resultobject.return_code
-+            self.plugins.run('historyend')
-             self.history.end(self.rpmdb.simpleVersion(main_only=True)[0], ret)
-         self.rpmdb.dropCachedData()
- 
-@@ -1383,7 +1580,12 @@ class YumBase(depsolve.Depsolve):
-         
-         mypid=str(os.getpid())    
-         while not self._lock(lockfile, mypid, 0644):
--            fd = open(lockfile, 'r')
-+            try:
-+                fd = open(lockfile, 'r')
-+            except (IOError, OSError), e:
-+                msg = _("Could not open lock %s: %s") % (lockfile, e)
-+                raise Errors.LockError(1, msg)
-+                
-             try: oldpid = int(fd.readline())
-             except ValueError:
-                 # bogus data in the pid file. Throw away.
-@@ -1482,7 +1684,7 @@ class YumBase(depsolve.Depsolve):
-                     os.unlink(fo)
- 
-             if raiseError:
--                msg = _('Package does not match intended download. Suggestion: run yum clean metadata')
-+                msg = _('Package does not match intended download. Suggestion: run yum --enablerepo=%s clean metadata') %  po.repo.id 
-                 raise URLGrabError(-1, msg)
-             else:
-                 return False
-@@ -1820,7 +2022,7 @@ class YumBase(depsolve.Depsolve):
-         return self._cleanFiles(exts, 'cachedir', 'metadata')
- 
-     def cleanRpmDB(self):
--        cachedir = self.conf.cachedir + "/installed/"
-+        cachedir = self.conf.persistdir + "/rpmdb-indexes/"
-         if not os.path.exists(cachedir):
-             filelist = []
-         else:
-@@ -2012,7 +2214,6 @@ class YumBase(depsolve.Depsolve):
-         elif pkgnarrow == 'recent':
-             now = time.time()
-             recentlimit = now-(self.conf.recent*86400)
--            ftimehash = {}
-             if showdups:
-                 avail = self.pkgSack.returnPackages(patterns=patterns,
-                                                     ignore_case=ic)
-@@ -2024,15 +2225,7 @@ class YumBase(depsolve.Depsolve):
-                     avail = []
-             
-             for po in avail:
--                ftime = int(po.filetime)
--                if ftime > recentlimit:
--                    if not ftimehash.has_key(ftime):
--                        ftimehash[ftime] = [po]
--                    else:
--                        ftimehash[ftime].append(po)
--
--            for sometime in ftimehash:
--                for po in ftimehash[sometime]:
-+                if int(po.filetime) > recentlimit:
-                     recent.append(po)
-         
-         
-@@ -2090,10 +2283,7 @@ class YumBase(depsolve.Depsolve):
-            the search keys in the results. """
-         sql_fields = []
-         for f in fields:
--            if RPM_TO_SQLITE.has_key(f):
--                sql_fields.append(RPM_TO_SQLITE[f])
--            else:
--                sql_fields.append(f)
-+            sql_fields.append(RPM_TO_SQLITE.get(f, f))
- 
-         # yield the results in order of most terms matched first
-         sorted_lists = {} # count_of_matches = [(pkgobj, 
-@@ -2163,10 +2353,10 @@ class YumBase(depsolve.Depsolve):
- 
-         # do the ones we already have
-         for item in sorted_lists.values():
--            for pkg, keys, values in item:
-+            for pkg, k, v in item:
-                 if pkg not in results_by_pkg:
-                     results_by_pkg[pkg] = []
--                results_by_pkg[pkg].append((keys,values))
-+                results_by_pkg[pkg].append((k,v))
- 
-         # take our existing dict-by-pkg and make the dict-by-count for 
-         # this bizarro sorted_lists format
-@@ -2175,9 +2365,9 @@ class YumBase(depsolve.Depsolve):
-         for pkg in results_by_pkg:
-             totkeys = []
-             totvals = []
--            for (keys, values) in results_by_pkg[pkg]:
--                totkeys.extend(keys)
--                totvals.extend(values)
-+            for (k, v) in results_by_pkg[pkg]:
-+                totkeys.extend(k)
-+                totvals.extend(v)
-             
-             totkeys = misc.unique(totkeys)
-             totvals = misc.unique(totvals)
-@@ -2238,7 +2428,7 @@ class YumBase(depsolve.Depsolve):
-         for (po, matched_strings) in match_gen:
-             if callback:
-                 callback(po, matched_strings)
--            if not matches.has_key(po):
-+            if po not in matches:
-                 matches[po] = []
-             
-             matches[po].extend(matched_strings)
-@@ -2514,8 +2704,8 @@ class YumBase(depsolve.Depsolve):
-                             txmbr.groups.append(thisgroup.groupid)
-                             self.tsInfo.conditionals[cond].append(txmbr.po)
-                         continue
--                    # Otherwise we hook into tsInfo.add to make 
--                    # sure we'll catch it if its added later in this transaction
-+                    # Otherwise we hook into tsInfo.add to make sure
-+                    # we'll catch it if it's added later in this transaction
-                     pkgs = self.pkgSack.searchNevra(name=condreq)
-                     if pkgs:
-                         if self.arch.multilib:
-@@ -2530,7 +2720,7 @@ class YumBase(depsolve.Depsolve):
-                                
-                         pkgs = packagesNewestByName(pkgs)
- 
--                        if not self.tsInfo.conditionals.has_key(cond):
-+                        if cond not in self.tsInfo.conditionals:
-                             self.tsInfo.conditionals[cond] = []
-                         self.tsInfo.conditionals[cond].extend(pkgs)
-         return txmbrs_used
-@@ -2573,7 +2763,7 @@ class YumBase(depsolve.Depsolve):
-                         for pkg in self.tsInfo.conditionals.get(txmbr.name, []):
-                             self.tsInfo.remove(pkg.pkgtup)
-         
--    def getPackageObject(self, pkgtup):
-+    def getPackageObject(self, pkgtup, allow_missing=False):
-         """retrieves a packageObject from a pkgtuple - if we need
-            to pick and choose which one is best we better call out
-            to some method from here to pick the best pkgobj if there are
-@@ -2588,6 +2778,8 @@ class YumBase(depsolve.Depsolve):
-         pkgs = self.pkgSack.searchPkgTuple(pkgtup)
- 
-         if len(pkgs) == 0:
-+            if allow_missing: #  This can happen due to excludes after .up has
-+                return None   # happened.
-             raise Errors.DepError, _('Package tuple %s could not be found in packagesack') % str(pkgtup)
-             
-         if len(pkgs) > 1: # boy it'd be nice to do something smarter here FIXME
-@@ -2643,7 +2835,9 @@ class YumBase(depsolve.Depsolve):
-     def returnPackagesByDep(self, depstring):
-         """Pass in a generic [build]require string and this function will 
-            pass back the packages it finds providing that dep."""
--        
-+
-+        if not depstring:
-+            return []
-         results = self.pkgSack.searchProvides(depstring)
-         return results
-         
-@@ -2673,6 +2867,9 @@ class YumBase(depsolve.Depsolve):
-         """Pass in a generic [build]require string and this function will 
-            pass back the installed packages it finds providing that dep."""
-         
-+        if not depstring:
-+            return []
-+
-         # parse the string out
-         #  either it is 'dep (some operator) e:v-r'
-         #  or /file/dep
-@@ -2781,9 +2978,53 @@ class YumBase(depsolve.Depsolve):
-             we should install instead. Or None if there isn't one. """
-         thispkgobsdict = self.up.checkForObsolete([po.pkgtup])
-         if po.pkgtup in thispkgobsdict:
--            obsoleting = thispkgobsdict[po.pkgtup][0]
--            obsoleting_pkg = self.getPackageObject(obsoleting)
--            return obsoleting_pkg
-+            obsoleting  = thispkgobsdict[po.pkgtup]
-+            oobsoleting = []
-+            # We want to keep the arch. of the obsoleted pkg. if possible.
-+            for opkgtup in obsoleting:
-+                if not canCoinstall(po.arch, opkgtup[1]):
-+                    oobsoleting.append(opkgtup)
-+            if oobsoleting:
-+                obsoleting = oobsoleting
-+            if len(obsoleting) > 1:
-+                # Pick the first name, and run with it...
-+                first = obsoleting[0]
-+                obsoleting = [pkgtup for pkgtup in obsoleting
-+                              if first[0] == pkgtup[0]]
-+            if len(obsoleting) > 1:
-+                # Lock to the latest version...
-+                def _sort_ver(x, y):
-+                    n1,a1,e1,v1,r1 = x
-+                    n2,a2,e2,v2,r2 = y
-+                    return compareEVR((e1,v1,r1), (e2,v2,r2))
-+                obsoleting.sort(_sort_ver)
-+                first = obsoleting[0]
-+                obsoleting = [pkgtup for pkgtup in obsoleting
-+                              if not _sort_ver(first, pkgtup)]
-+            if len(obsoleting) > 1:
-+                # Now do arch distance (see depsolve:compare_providers)...
-+                def _sort_arch_i(carch, a1, a2):
-+                    res1 = archDifference(carch, a1)
-+                    if not res1:
-+                        return 0
-+                    res2 = archDifference(carch, a2)
-+                    if not res2:
-+                        return 0
-+                    return res1 - res2
-+                def _sort_arch(x, y):
-+                    n1,a1,e1,v1,r1 = x
-+                    n2,a2,e2,v2,r2 = y
-+                    ret = _sort_arch_i(po.arch,            a1, a2)
-+                    if ret:
-+                        return ret
-+                    ret = _sort_arch_i(self.arch.bestarch, a1, a2)
-+                    return ret
-+                obsoleting.sort(_sort_arch)
-+            for pkgtup in obsoleting:
-+                pkg = self.getPackageObject(pkgtup, allow_missing=True)
-+                if pkg is not None:
-+                    return pkg
-+            return None
-         return None
- 
-     def _test_loop(self, node, next_func):
-@@ -2846,6 +3087,17 @@ class YumBase(depsolve.Depsolve):
-             pkgnames.update(thisgroup.packages)
-         return self.pkgSack.searchNames(pkgnames)
- 
-+    def _minus_deselect(self, pattern):
-+        """ Remove things from the transaction, like kickstart. """
-+        assert pattern[0] == '-'
-+        pat = pattern[1:]
-+
-+        if pat and pat[0] == '@':
-+            pat = pat[1:]
-+            return self.deselectGroup(pat)
-+
-+        return self.tsInfo.deselect(pat)
-+
-     def _find_obsoletees(self, po):
-         """ Return the pkgs. that are obsoleted by the po we pass in. """
-         if not isinstance(po, YumLocalPackage):
-@@ -2854,11 +3106,9 @@ class YumBase(depsolve.Depsolve):
-                     installed_pkg =  self.getInstalledPackageObject(inst_tup)
-                     yield installed_pkg
-         else:
--            for (obs_n, obs_f, (obs_e, obs_v, obs_r)) in po.obsoletes:
-+            for obs_n in po.obsoletes_names:
-                 for pkg in self.rpmdb.searchNevra(name=obs_n):
--                    installedtup = (pkg.name, 'EQ', (pkg.epoch, 
--                                   pkg.ver, pkg.release))
--                    if po.inPrcoRange('obsoletes', installedtup):
-+                    if pkg.obsoletedBy([po]):
-                         yield pkg
- 
-     def _add_prob_flags(self, *flags):
-@@ -2888,7 +3138,10 @@ class YumBase(depsolve.Depsolve):
-                 raise Errors.InstallError, _('Nothing specified to install')
- 
-             if 'pattern' in kwargs:
--                if kwargs['pattern'][0] == '@':
-+                if kwargs['pattern'] and kwargs['pattern'][0] == '-':
-+                    return self._minus_deselect(kwargs['pattern'])
-+
-+                if kwargs['pattern'] and kwargs['pattern'][0] == '@':
-                     return self._at_groupinstall(kwargs['pattern'])
- 
-                 was_pattern = True
-@@ -2957,7 +3210,7 @@ class YumBase(depsolve.Depsolve):
- 
-                 pkgbyname = {}
-                 for pkg in pkgs:
--                    if not pkgbyname.has_key(pkg.name):
-+                    if pkg.name not in pkgbyname:
-                         pkgbyname[pkg.name] = [ pkg ]
-                     else:
-                         pkgbyname[pkg.name].append(pkg)
-@@ -3017,18 +3270,23 @@ class YumBase(depsolve.Depsolve):
-                 # pull in foo.i586 when foo.x86_64 already obsoletes the pkg and
-                 # is already installed
-                 already_obs = None
--                poprovtup = (po.name, 'EQ', (po.epoch, po.ver, po.release))
--                for pkg in self.rpmdb.searchNevra(name=obsoleting_pkg.name):
--                    if pkg.inPrcoRange('obsoletes', poprovtup):
--                        already_obs = pkg
--                        continue
-+                pkgs = self.rpmdb.searchNevra(name=obsoleting_pkg.name)
-+                pkgs = po.obsoletedBy(pkgs, limit=1)
-+                if pkgs:
-+                    already_obs = pkgs[0]
-+                    continue
- 
-                 if already_obs:
-                     self.verbose_logger.warning(_('Package %s is obsoleted by %s which is already installed'), 
-                                                 po, already_obs)
-                 else:
-+                    if 'provides_for' in kwargs:
-+                        if not obsoleting_pkg.provides_for(kwargs['provides_for']):
-+                            self.verbose_logger.warning(_('Package %s is obsoleted by %s, but obsoleting package does not provide for requirements'),
-+                                                  po.name, obsoleting_pkg.name)
-+                            continue
-                     self.verbose_logger.warning(_('Package %s is obsoleted by %s, trying to install %s instead'),
--                        po.name, obsoleting_pkg.name, obsoleting_pkg)               
-+                        po.name, obsoleting_pkg.name, obsoleting_pkg)
-                     tx_return.extend(self.install(po=obsoleting_pkg))
-                 continue
-             
-@@ -3160,7 +3418,10 @@ class YumBase(depsolve.Depsolve):
-                 obsoletes = []
- 
-             for (obsoleting, installed) in obsoletes:
--                obsoleting_pkg = self.getPackageObject(obsoleting)
-+                obsoleting_pkg = self.getPackageObject(obsoleting,
-+                                                       allow_missing=True)
-+                if obsoleting_pkg is None:
-+                    continue
-                 topkg = self._test_loop(obsoleting_pkg, self._pkg2obspkg)
-                 if topkg is not None:
-                     obsoleting_pkg = topkg
-@@ -3173,10 +3434,13 @@ class YumBase(depsolve.Depsolve):
-                 
-             for (new, old) in updates:
-                 if self.tsInfo.isObsoleted(pkgtup=old):
--                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'), 
-+                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s') %
-                         old)
-                 else:
--                    tx_return.extend(self.update(po=self.getPackageObject(new)))
-+                    new = self.getPackageObject(new, allow_missing=True)
-+                    if new is None:
-+                        continue
-+                    tx_return.extend(self.update(po=new))
-             
-             return tx_return
- 
-@@ -3195,7 +3459,10 @@ class YumBase(depsolve.Depsolve):
-                 
-                 
-         elif 'pattern' in kwargs:
--            if kwargs['pattern'][0] == '@':
-+            if kwargs['pattern'] and kwargs['pattern'][0] == '-':
-+                return self._minus_deselect(kwargs['pattern'])
-+
-+            if kwargs['pattern'] and kwargs['pattern'][0] == '@':
-                 return self._at_groupinstall(kwargs['pattern'])
- 
-             (e, m, u) = self.rpmdb.matchPackageNames([kwargs['pattern']])
-@@ -3268,27 +3535,35 @@ class YumBase(depsolve.Depsolve):
-                 obs_tups = self.up.obsoleted_dict.get(installed_pkg.pkgtup, [])
-                 # This is done so we don't have to returnObsoletes(newest=True)
-                 # It's a minor UI problem for RHEL, but might as well dtrt.
--                obs_pkgs = [self.getPackageObject(tup) for tup in obs_tups]
-+                obs_pkgs = []
-+                for pkgtup in obs_tups:
-+                    obsoleting_pkg = self.getPackageObject(pkgtup,
-+                                                           allow_missing=True)
-+                    if obsoleting_pkg is None:
-+                        continue
-+                    obs_pkgs.append(obsoleting_pkg)
-                 for obsoleting_pkg in packagesNewestByName(obs_pkgs):
-                     tx_return.extend(self.install(po=obsoleting_pkg))
-             for available_pkg in availpkgs:
--                for obsoleted in self.up.obsoleting_dict.get(available_pkg.pkgtup, []):
--                    obsoleted_pkg = self.getInstalledPackageObject(obsoleted)
-+                for obsoleted_pkg in self._find_obsoletees(available_pkg):
-+                    obsoleted = obsoleted_pkg.pkgtup
-                     txmbr = self.tsInfo.addObsoleting(available_pkg, obsoleted_pkg)
-                     if requiringPo:
-                         txmbr.setAsDep(requiringPo)
-                     tx_return.append(txmbr)
-                     if self.tsInfo.isObsoleted(obsoleted):
--                        self.verbose_logger.log(logginglevels.DEBUG_2, _('Package is already obsoleted: %s.%s %s:%s-%s'), obsoleted)
-+                        self.verbose_logger.log(logginglevels.DEBUG_2, _('Package is already obsoleted: %s.%s %s:%s-%s') % obsoleted)
-                     else:
-                         txmbr = self.tsInfo.addObsoleted(obsoleted_pkg, available_pkg)
-                         tx_return.append(txmbr)
- 
-         for installed_pkg in instpkgs:
-             for updating in self.up.updatesdict.get(installed_pkg.pkgtup, []):
--                po = self.getPackageObject(updating)
-+                po = self.getPackageObject(updating, allow_missing=True)
-+                if po is None:
-+                    continue
-                 if self.tsInfo.isObsoleted(installed_pkg.pkgtup):
--                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'), 
-+                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s') %
-                                             installed_pkg.pkgtup)                                               
-                 # at this point we are going to mark the pkg to be installed, make sure
-                 # it doesn't obsolete anything. If it does, mark that in the tsInfo, too
-@@ -3315,11 +3590,11 @@ class YumBase(depsolve.Depsolve):
-                 continue
-             for updated in self.up.updating_dict.get(available_pkg.pkgtup, []):
-                 if self.tsInfo.isObsoleted(updated):
--                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'), 
-+                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s') %
-                                             updated)
-                 elif self._newer_update_in_trans(updated, available_pkg,
-                                                  tx_return):
--                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already updated: %s.%s %s:%s-%s'), 
-+                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already updated: %s.%s %s:%s-%s') %
-                                             updated)
-                 
-                 else:
-@@ -3341,11 +3616,11 @@ class YumBase(depsolve.Depsolve):
- 
-             for ipkg in pot_updated:
-                 if self.tsInfo.isObsoleted(ipkg.pkgtup):
--                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'), 
-+                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s') %
-                                             ipkg.pkgtup)
-                 elif self._newer_update_in_trans(ipkg.pkgtup, available_pkg,
-                                                  tx_return):
--                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already updated: %s.%s %s:%s-%s'), 
-+                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already updated: %s.%s %s:%s-%s') %
-                                             ipkg.pkgtup)
-                 elif ipkg.verLT(available_pkg):
-                     txmbr = self._add_up_txmbr(requiringPo, available_pkg, ipkg)
-@@ -3376,7 +3651,10 @@ class YumBase(depsolve.Depsolve):
-             pkgs = [po]  
-         else:
-             if 'pattern' in kwargs:
--                if kwargs['pattern'][0] == '@':
-+                if kwargs['pattern'] and kwargs['pattern'][0] == '-':
-+                    return self._minus_deselect(kwargs['pattern'])
-+
-+                if kwargs['pattern'] and kwargs['pattern'][0] == '@':
-                     return self._at_groupremove(kwargs['pattern'])
- 
-                 (e,m,u) = self.rpmdb.matchPackageNames([kwargs['pattern']])
-@@ -3406,7 +3684,12 @@ class YumBase(depsolve.Depsolve):
-                     if not kwargs.get('silence_warnings', False):
-                         self.logger.warning(_("No package matched to remove"))
- 
-+        ts = self.rpmdb.readOnlyTS()
-+        kern_pkgtup = misc.get_running_kernel_pkgtup(ts)
-         for po in pkgs:
-+            if self.conf.protected_packages and po.pkgtup == kern_pkgtup:
-+                self.logger.warning(_("Skipping the running kernel: %s") % po)
-+                continue
-             txmbr = self.tsInfo.addErase(po)
-             tx_return.append(txmbr)
-         
-@@ -3443,6 +3726,11 @@ class YumBase(depsolve.Depsolve):
-             self.verbose_logger.log(logginglevels.INFO_2,
-                 _('Examining %s: %s'), po.localpath, po)
- 
-+        # apparently someone wanted to try to install a drpm as an rpm :(
-+        if po.hdr['payloadformat'] == 'drpm':
-+            self.logger.critical(_('Cannot localinstall deltarpm: %s. Skipping.'), pkg)
-+            return tx_return
-+
-         # if by any chance we're a noncompat arch rpm - bail and throw out an error
-         # FIXME -our archlist should be stored somewhere so we don't have to
-         # do this: but it's not a config file sort of thing
-@@ -3452,6 +3740,12 @@ class YumBase(depsolve.Depsolve):
-             self.logger.critical(_('Cannot add package %s to transaction. Not a compatible architecture: %s'), pkg, po.arch)
-             return tx_return
-         
-+        if self.conf.obsoletes:
-+            obsoleters = po.obsoletedBy(self.rpmdb.searchObsoletes(po.name))
-+            if obsoleters:
-+                self.logger.critical(_('Cannot install package %s. It is obsoleted by installed package %s'), po, obsoleters[0])
-+                return tx_return
-+            
-         # everything installed that matches the name
-         installedByKey = self.rpmdb.searchNevra(name=po.name)
-         # go through each package
-@@ -3513,7 +3807,9 @@ class YumBase(depsolve.Depsolve):
-         # be fixed later but a fair bit of that is a pebkac and should be
-         # said as "don't do that". potential 'fixme'
-         for txmbr in tx_return:
--            if txmbr.po.obsoletes:
-+            #  We don't want to do this twice, so only bother if the txmbr
-+            # doesn't already obsolete anything.
-+            if txmbr.po.obsoletes and not txmbr.obsoletes:
-                 for obs_pkg in self._find_obsoletees(txmbr.po):
-                     self.tsInfo.addObsoleted(obs_pkg, txmbr.po)
-                     txmbr.obsoletes.append(obs_pkg)
-@@ -3573,17 +3869,8 @@ class YumBase(depsolve.Depsolve):
-         # then we really shouldn't go on
-         new_members = []
-         failed = []
-+        failed_pkgs = []
-         for item in tx_mbrs[:]:
--            #FIXME future - if things in the rpm transaction handling get
--            # a bit finer-grained, then we should allow reinstalls of kernels
--            # for now, banned and dropped.
--            if self.allowedMultipleInstalls(item.po):
--                self.tsInfo.remove(item.pkgtup)
--                tx_mbrs.remove(item)
--                msg = _("Package %s is allowed multiple installs, skipping") % item.po
--                self.verbose_logger.log(logginglevels.INFO_2, msg)
--                continue
--            
-             #  Make sure obsoletes processing is off, so we can reinstall()
-             # pkgs that are obsolete.
-             old_conf_obs = self.conf.obsoletes
-@@ -3597,11 +3884,12 @@ class YumBase(depsolve.Depsolve):
-                 self.tsInfo.remove(item.pkgtup)
-                 tx_mbrs.remove(item)
-                 failed.append(str(item.po))
-+                failed_pkgs.append(item.po)
-                 continue
-             new_members.extend(members)
- 
-         if failed and not tx_mbrs:
--            raise Errors.ReinstallInstallError, _("Problem in reinstall: no package %s matched to install") % ", ".join(failed)
-+            raise Errors.ReinstallInstallError(_("Problem in reinstall: no package %s matched to install") % ", ".join(failed), failed_pkgs=failed_pkgs)
-         tx_mbrs.extend(new_members)
-         return tx_mbrs
-         
-@@ -3670,7 +3958,10 @@ class YumBase(depsolve.Depsolve):
-         if po:
-             apkgs = [po]
-         elif 'pattern' in kwargs:
--            if kwargs['pattern'][0] == '@':
-+            if kwargs['pattern'] and kwargs['pattern'][0] == '-':
-+                return self._minus_deselect(kwargs['pattern'])
-+
-+            if kwargs['pattern'] and kwargs['pattern'][0] == '@':
-                 apkgs = self._at_groupdowngrade(kwargs['pattern'])
-                 doing_group_pkgs = True # Don't warn. about some things
-             else:
-@@ -3946,6 +4237,28 @@ class YumBase(depsolve.Depsolve):
-         
-         return keys
- 
-+    def _getKeyImportMessage(self, info, keyurl):
-+        msg = None
-+        if keyurl.startswith("file:"):
-+            fname = keyurl[len("file:"):]
-+            pkgs = self.rpmdb.searchFiles(fname)
-+            if pkgs:
-+                pkgs = sorted(pkgs)[-1]
-+                msg = (_('Importing GPG key 0x%s:\n'
-+                         ' Userid : %s\n'
-+                         ' Package: %s (%s)\n'
-+                         ' From   : %s') %
-+                       (info['hexkeyid'], to_unicode(info['userid']),
-+                        pkgs, pkgs.ui_from_repo,
-+                        keyurl.replace("file://","")))
-+        if msg is None:
-+            msg = (_('Importing GPG key 0x%s:\n'
-+                     ' Userid: "%s"\n'
-+                     ' From  : %s') %
-+                   (info['hexkeyid'], to_unicode(info['userid']),
-+                    keyurl.replace("file://","")))
-+        self.logger.critical("%s", msg)
-+
-     def getKeyForPackage(self, po, askcb = None, fullaskcb = None):
-         """
-         Retrieve a key for a package. If needed, prompt for if the key should
-@@ -3976,10 +4289,7 @@ class YumBase(depsolve.Depsolve):
-                     continue
- 
-                 # Try installing/updating GPG key
--                self.logger.critical(_('Importing GPG key 0x%s "%s" from %s') %
--                                     (info['hexkeyid'], 
--                                      to_unicode(info['userid']),
--                                      keyurl.replace("file://","")))
-+                self._getKeyImportMessage(info, keyurl)
-                 rc = False
-                 if self.conf.assumeyes:
-                     rc = True
-@@ -4003,13 +4313,13 @@ class YumBase(depsolve.Depsolve):
-                 self.logger.info(_('Key imported successfully'))
-                 key_installed = True
- 
--                if not key_installed:
--                    raise Errors.YumBaseError, \
--                          _('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.') % (repo.name)
-+        if not key_installed:
-+            raise Errors.YumBaseError, \
-+                  _('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.') % (repo.name)
- 
-         # Check if the newly installed keys helped
-         result, errmsg = self.sigCheckPkg(po)
-@@ -4038,10 +4348,7 @@ class YumBase(depsolve.Depsolve):
-                     continue
- 
-                 # Try installing/updating GPG key
--                self.logger.critical(_('Importing GPG key 0x%s "%s" from %s') %
--                                     (info['hexkeyid'], 
--                                     to_unicode(info['userid']),
--                                     keyurl.replace("file://","")))
-+                self._getKeyImportMessage(info, keyurl)
-                 rc = False
-                 if self.conf.assumeyes:
-                     rc = True
-@@ -4062,14 +4369,12 @@ class YumBase(depsolve.Depsolve):
-                 self.logger.info(_('Key imported successfully'))
-                 key_installed = True
- 
--                if not key_installed:
--                    raise Errors.YumBaseError, \
--                          _('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.') % (repo.name)
--
-+        if not key_installed:
-+            raise Errors.YumBaseError, \
-+                  _('The GPG keys listed for the "%s" repository are ' \
-+                  'already installed but they are not correct.\n' \
-+                  'Check that the correct key URLs are configured for ' \
-+                  'this repository.') % (repo.name)
- 
-     def _limit_installonly_pkgs(self):
-         """ Limit packages based on conf.installonly_limit, if any of the
-@@ -4114,22 +4419,31 @@ class YumBase(depsolve.Depsolve):
-         # so self.rpmdb.ts should be valid.
-         ts = self.rpmdb.readOnlyTS()
-         (cur_kernel_v, cur_kernel_r) = misc.get_running_kernel_version_release(ts)
--        for instpkg in self.conf.installonlypkgs:
--            for m in self.tsInfo.getMembers():
--                if (m.name == instpkg or instpkg in m.po.provides_names) \
--                       and m.ts_state in ('i', 'u'):
--                    installed = self.rpmdb.searchNevra(name=m.name)
--                    installed = _sort_and_filter_installonly(installed)
--                    if len(installed) >= self.conf.installonly_limit - 1: # since we're adding one
--                        numleft = len(installed) - self.conf.installonly_limit + 1
--                        for po in installed:
--                            if (po.version, po.release) == (cur_kernel_v, cur_kernel_r): 
--                                # don't remove running
--                                continue
--                            if numleft == 0:
--                                break
--                            toremove.append((po,m))
--                            numleft -= 1
-+        install_only_names = set(self.conf.installonlypkgs)
-+        for m in self.tsInfo.getMembers():
-+            if m.ts_state not in ('i', 'u'):
-+                continue
-+            if m.reinstall:
-+                continue
-+
-+            po_names = set([m.name] + m.po.provides_names)
-+            if not po_names.intersection(install_only_names):
-+                continue
-+
-+            installed = self.rpmdb.searchNevra(name=m.name)
-+            installed = _sort_and_filter_installonly(installed)
-+            if len(installed) < self.conf.installonly_limit - 1:
-+                continue # we're adding one
-+
-+            numleft = len(installed) - self.conf.installonly_limit + 1
-+            for po in installed:
-+                if (po.version, po.release) == (cur_kernel_v, cur_kernel_r): 
-+                    # don't remove running
-+                    continue
-+                if numleft == 0:
-+                    break
-+                toremove.append((po,m))
-+                numleft -= 1
-                         
-         for po,rel in toremove:
-             txmbr = self.tsInfo.addErase(po)
-@@ -4312,9 +4626,7 @@ class YumBase(depsolve.Depsolve):
-         newrepo = yumRepo.YumRepository(repoid)
-         newrepo.name = repoid
-         newrepo.basecachedir = self.conf.cachedir
--        var_convert = True
--        if kwargs.has_key('variable_convert') and not kwargs['variable_convert']:
--            var_convert = False
-+        var_convert = kwargs.get('variable_convert', True)
-         
-         if baseurls:
-             replaced = []
-@@ -4351,13 +4663,17 @@ class YumBase(depsolve.Depsolve):
-         self.repos.enableRepo(newrepo.id)
-         return newrepo
- 
--    def setCacheDir(self, force=False, tmpdir='/var/tmp', reuse=True,
-+    def setCacheDir(self, force=False, tmpdir=None, reuse=True,
-                     suffix='/$basearch/$releasever'):
-         ''' Set a new cache dir, using misc.getCacheDir() and var. replace
-             on suffix. '''
- 
-         if not force and os.geteuid() == 0:
-             return True # We are root, not forced, so happy with the global dir.
-+        if tmpdir is None:
-+            tmpdir = os.getenv('TMPDIR')
-+        if tmpdir is None: # Note that TMPDIR isn't exported by default :(
-+            tmpdir = '/var/tmp'
-         try:
-             cachedir = misc.getCacheDir(tmpdir, reuse)
-         except (IOError, OSError), e:
-@@ -4368,8 +4684,10 @@ class YumBase(depsolve.Depsolve):
-             return False # Tried, but failed, to get a "user" cachedir
- 
-         cachedir += varReplace(suffix, self.conf.yumvar)
--        self.repos.setCacheDir(cachedir)
--        self.rpmdb.setCacheDir(cachedir)
-+        if hasattr(self, 'prerepoconf'):
-+            self.prerepoconf.cachedir = cachedir
-+        else:
-+            self.repos.setCacheDir(cachedir)
-         self.conf.cachedir = cachedir
-         return True # We got a new cache dir
- 
-@@ -4380,7 +4698,7 @@ class YumBase(depsolve.Depsolve):
-         
-         if pkg1.name != pkg2.name:
-             return False
--        if not pkg1.EVR  > pkg2.EVR:
-+        if pkg1.verLE(pkg2):
-             return False
-         if pkg1.arch not in self.arch.archlist:
-             return False
-@@ -4391,3 +4709,16 @@ class YumBase(depsolve.Depsolve):
-             
-         return True    
- 
-+    def _store_config_in_history(self):
-+        self.history.write_addon_data('config-main', self.conf.dump())
-+        myrepos = ''
-+        for repo in self.repos.listEnabled():
-+            myrepos += repo.dump()
-+            myrepos += '\n'
-+        self.history.write_addon_data('config-repos', myrepos)
-+        
-+    def verify_plugins_cb(self, verify_package):
-+        """ Callback to call a plugin hook for pkg.verify(). """
-+        self.plugins.run('verify_package', verify_package=verify_package)
-+        return verify_package
-+
-diff --git a/yum/comps.py b/yum/comps.py
-index bbc1ac9..5ccfba2 100755
---- a/yum/comps.py
-+++ b/yum/comps.py
-@@ -16,11 +16,6 @@
- import types
- import sys
- from constants import *
--try:
--    from xml.etree import cElementTree
--except ImportError:
--    import cElementTree
--iterparse = cElementTree.iterparse
- from Errors import CompsException
- #FIXME - compsexception isn't caught ANYWHERE so it's pointless to raise it
- # switch all compsexceptions to grouperrors after api break
-@@ -28,14 +23,12 @@ import fnmatch
- import re
- from yum.i18n import to_unicode
- from misc import get_my_lang_code
-+from yum.misc import cElementTree_iterparse as iterparse 
- 
- lang_attr = '{http://www.w3.org/XML/1998/namespace}lang'
- 
- def parse_boolean(strng):
--    if BOOLEAN_STATES.has_key(strng.lower()):
--        return BOOLEAN_STATES[strng.lower()]
--    else:
--        return False
-+    return BOOLEAN_STATES.get(strng.lower(), False)
- 
- def parse_number(strng):
-     return int(strng)
-@@ -235,11 +228,11 @@ class Group(CompsObj):
-             
-         # name and description translations
-         for lang in obj.translated_name:
--            if not self.translated_name.has_key(lang):
-+            if lang not in self.translated_name:
-                 self.translated_name[lang] = obj.translated_name[lang]
-         
-         for lang in obj.translated_description:
--            if not self.translated_description.has_key(lang):
-+            if lang not in self.translated_description:
-                 self.translated_description[lang] = obj.translated_description[lang]
-         
-     def xml(self):
-@@ -348,11 +341,11 @@ class Category(CompsObj):
-         
-         # name and description translations
-         for lang in obj.translated_name:
--            if not self.translated_name.has_key(lang):
-+            if lang not in self.translated_name:
-                 self.translated_name[lang] = obj.translated_name[lang]
-         
-         for lang in obj.translated_description:
--            if not self.translated_description.has_key(lang):
-+            if lang not in self.translated_description:
-                 self.translated_description[lang] = obj.translated_description[lang]
- 
-     def xml(self):
-@@ -424,7 +417,7 @@ class Comps(object):
- 
-         for item in group_pattern.split(','):
-             item = item.strip()
--            if self._groups.has_key(item):
-+            if item in self._groups:
-                 thisgroup = self._groups[item]
-                 returns[thisgroup.groupid] = thisgroup
-                 continue
-@@ -490,14 +483,14 @@ class Comps(object):
-         return returns.values()
- 
-     def add_group(self, group):
--        if self._groups.has_key(group.groupid):
-+        if group.groupid in self._groups:
-             thatgroup = self._groups[group.groupid]
-             thatgroup.add(group)
-         else:
-             self._groups[group.groupid] = group
- 
-     def add_category(self, category):
--        if self._categories.has_key(category.categoryid):
-+        if category.categoryid in self._categories:
-             thatcat = self._categories[category.categoryid]
-             thatcat.add(category)
-         else:
-@@ -557,7 +550,7 @@ class Comps(object):
-                 check_pkgs = group.optional_packages.keys() + group.default_packages.keys() + group.conditional_packages.keys()
-                 group.installed = False
-                 for pkgname in check_pkgs:
--                    if inst_pkg_names.has_key(pkgname):
-+                    if pkgname in inst_pkg_names:
-                         group.installed = True
-                         break
-         
-diff --git a/yum/config.py b/yum/config.py
-index ad8db7e..650d7b9 100644
---- a/yum/config.py
-+++ b/yum/config.py
-@@ -40,7 +40,7 @@ if not _use_iniparse:
- import rpmUtils.transaction
- import Errors
- import types
--from misc import get_uuid
-+from misc import get_uuid, read_in_items_from_dot_dir
- 
- # Alter/patch these to change the default checking...
- __pkgs_gpgcheck_default__ = False
-@@ -55,9 +55,11 @@ class Option(object):
-     definition easy and consise.
-     '''
- 
--    def __init__(self, default=None):
-+    def __init__(self, default=None, parse_default=False):
-         self._setattrname()
-         self.inherit = False
-+        if parse_default:
-+            default = self.parse(default)
-         self.default = default
- 
-     def _setattrname(self):
-@@ -87,7 +89,7 @@ class Option(object):
-         @param value: The value to set the option to.
-         @return: Nothing.
-         '''
--        # Only try to parse if its a string
-+        # Only try to parse if it's a string
-         if isinstance(value, basestring):
-             try:
-                 value = self.parse(value)
-@@ -155,13 +157,14 @@ class ListOption(Option):
-     An option containing a list of strings.
-     """
- 
--    def __init__(self, default=None):
-+    def __init__(self, default=None, parse_default=False):
-         if default is None:
-             default = []
--        super(ListOption, self).__init__(default)
-+        super(ListOption, self).__init__(default, parse_default)
- 
-     def parse(self, s):
--        """Converts a string from the config file to a workable list
-+        """Converts a string from the config file to a workable list, parses
-+           globdir: paths as foo.d-style dirs
- 
-         Commas and spaces are used as separators for the list
-         """
-@@ -169,7 +172,15 @@ class ListOption(Option):
-         # to sub the \n with a space and then read the lines
-         s = s.replace('\n', ' ')
-         s = s.replace(',', ' ')
--        return s.split()
-+        results = []
-+        for item in s.split():
-+            if item.startswith('glob:'):
-+                thisglob = item.replace('glob:', '')
-+                results.extend(read_in_items_from_dot_dir(thisglob))
-+                continue
-+            results.append(item)
-+
-+        return results
- 
-     def tostring(self, value):
-         return '\n '.join(value)
-@@ -217,8 +228,9 @@ class UrlListOption(ListOption):
-     Option for handling lists of URLs with validation of the URL scheme.
-     '''
- 
--    def __init__(self, default=None, schemes=('http', 'ftp', 'file', 'https')):
--        super(UrlListOption, self).__init__(default)
-+    def __init__(self, default=None, schemes=('http', 'ftp', 'file', 'https'),
-+                 parse_default=False):
-+        super(UrlListOption, self).__init__(default, parse_default)
- 
-         # Hold a UrlOption instance to assist with parsing
-         self._urloption = UrlOption(schemes=schemes)
-@@ -228,8 +240,15 @@ class UrlListOption(ListOption):
-         s = s.replace('\n', ' ')
-         s = s.replace(',', ' ')
-         items = [ item.replace(' ', '%20') for item in shlex.split(s) ]
--        s = ' '.join(items)
--        for url in super(UrlListOption, self).parse(s):
-+        tmp = []
-+        for item in items:
-+            if item.startswith('glob:'):
-+                thisglob = item.replace('glob:', '')
-+                tmp.extend(read_in_items_from_dot_dir(thisglob))
-+                continue
-+            tmp.append(item)
-+
-+        for url in super(UrlListOption, self).parse(' '.join(tmp)):
-             out.append(self._urloption.parse(url))
-         return out
- 
-@@ -601,7 +620,8 @@ class StartupConf(BaseConfig):
-     pluginconfpath = ListOption(['/etc/yum/pluginconf.d'])
-     gaftonmode = BoolOption(False)
-     syslog_ident = Option()
--    syslog_facility = Option('LOG_DAEMON')
-+    syslog_facility = Option('LOG_USER')
-+    syslog_device = Option('/dev/log')
-     persistdir = Option('/var/lib/yum')
-     
- class YumConf(StartupConf):
-@@ -656,6 +676,7 @@ class YumConf(StartupConf):
-     enabled = BoolOption(True)
-     enablegroups = BoolOption(True)
-     enable_group_conditionals = BoolOption(True)
-+    groupremove_leaf_only = BoolOption(False)
-     group_package_types = ListOption(['mandatory', 'default'])
-     
-     timeout = FloatOption(30.0) # FIXME: Should use variation of SecondsOption
-@@ -712,6 +733,10 @@ class YumConf(StartupConf):
- 
-     rpmverbosity = Option('info')
- 
-+    protected_packages = ListOption("yum, glob:/etc/yum/protected.d/*.conf",
-+                                    parse_default=True)
-+    exit_on_lock = BoolOption(False)
-+    
-     _reposlist = []
- 
-     def dump(self):
-@@ -728,7 +753,7 @@ class YumConf(StartupConf):
-             if isinstance(getattr(self, attr), types.MethodType):
-                 continue
-             res = getattr(self, attr)
--            if not res:
-+            if not res and type(res) not in (type(False), type(0)):
-                 res = ''
-             if type(res) == types.ListType:
-                 res = ',\n   '.join(res)
-@@ -855,13 +880,15 @@ def readMainConfig(startupconf):
-     yumvars['arch'] = startupconf.arch
-     yumvars['releasever'] = startupconf.releasever
-     yumvars['uuid'] = startupconf.uuid
-+    # Note: We don't setup the FS yumvars here, because we want to be able to
-+    #       use the core yumvars in persistdir. Which is the base of FS yumvars.
-     
-     # Read [main] section
-     yumconf = YumConf()
-     yumconf.populate(startupconf._parser, 'main')
- 
-     # Apply the installroot to directory options
--    for option in ('cachedir', 'logfile', 'persistdir'):
-+    def _apply_installroot(yumconf, option):
-         path = getattr(yumconf, option)
-         ir_path = yumconf.installroot + path
-         ir_path = ir_path.replace('//', '/') # os.path.normpath won't fix this and
-@@ -869,6 +896,27 @@ def readMainConfig(startupconf):
-         ir_path = varReplace(ir_path, yumvars)
-         setattr(yumconf, option, ir_path)
-     
-+    # Read the FS yumvars
-+    try:
-+        dir_fsvars = yumconf.installroot + "/etc/yum/vars/"
-+        fsvars = os.listdir(dir_fsvars)
-+    except OSError:
-+        fsvars = []
-+    for fsvar in fsvars:
-+        if os.path.islink(dir_fsvars + fsvar):
-+            continue
-+        try:
-+            val = open(dir_fsvars + fsvar).readline()
-+            if val and val[-1] == '\n':
-+                val = val[:-1]
-+        except (OSError, IOError):
-+            continue
-+        yumvars[fsvar] = val
-+
-+    # These can use the above FS yumvars
-+    for option in ('cachedir', 'logfile', 'persistdir'):
-+        _apply_installroot(yumconf, option)
-+
-     # Add in some extra attributes which aren't actually configuration values 
-     yumconf.yumvar = yumvars
-     yumconf.uid = 0
-@@ -953,6 +1001,9 @@ def _getsysver(installroot, distroverpkg):
-             else:
-                 raise Errors.YumBaseError("Error: " + str(e))
-         raise Errors.YumBaseError("Error: " + str(e))
-+    except rpm.error, e:
-+        # This is the "new" code for "cannot open rpmdb", 4.8.0 ish
-+        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:
-@@ -977,13 +1028,21 @@ def writeRawRepoFile(repo,only=None):
-         return
- 
-     ini = INIConfig(open(repo.repofile))
-+    # b/c repoids can have $values in them we need to map both ways to figure
-+    # out which one is which
-+    section_id = repo.id
-+    if repo.id not in ini._sections:
-+        for sect in ini._sections.keys():
-+            if varReplace(sect, repo.yumvar) == repo.id:
-+                section_id = sect
-+    
-     # Updated the ConfigParser with the changed values    
-     cfgOptions = repo.cfg.options(repo.id)
-     for name,value in repo.iteritems():
-         option = repo.optionobj(name)
-         if option.default != value or name in cfgOptions :
-             if only == None or name in only:
--                ini[repo.id][name] = option.tostring(value)
-+                ini[section_id][name] = option.tostring(value)
-     fp =file(repo.repofile,"w")               
-     fp.write(str(ini))
-     fp.close()
-diff --git a/yum/depsolve.py b/yum/depsolve.py
-index 11c9f29..e9b3fa7 100644
---- a/yum/depsolve.py
-+++ b/yum/depsolve.py
-@@ -27,6 +27,7 @@ import rpmUtils.miscutils
- from rpmUtils.arch import archDifference, canCoinstall
- import misc
- from misc import unique, version_tuple_to_string
-+from transactioninfo import TransactionMember
- import rpm
- 
- from packageSack import ListPackageSack
-@@ -65,7 +66,6 @@ class Depsolve(object):
-     """
- 
-     def __init__(self):
--        packages.base = self
-         self._ts = None
-         self._tsInfo = None
-         self.dsCallback = None
-@@ -138,6 +138,9 @@ class Depsolve(object):
-                             'test': rpm.RPMTRANS_FLAG_TEST,
-                             'justdb': rpm.RPMTRANS_FLAG_JUSTDB,
-                             'repackage': rpm.RPMTRANS_FLAG_REPACKAGE}
-+        # This is only in newer rpm.org releases
-+        if hasattr(rpm, 'RPMTRANS_FLAG_NOCONTEXTS'):
-+            ts_flags_to_rpm['nocontexts'] = rpm.RPMTRANS_FLAG_NOCONTEXTS
-         
-         self._ts.setFlags(0) # reset everything.
-         
-@@ -221,14 +224,20 @@ class Depsolve(object):
-                 self.ts.addInstall(hdr, (hdr, rpmfile), txmbr.ts_state)
-                 self.verbose_logger.log(logginglevels.DEBUG_1,
-                     _('Adding Package %s in mode %s'), txmbr.po, txmbr.ts_state)
--                if self.dsCallback: 
--                    self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
-+                if self.dsCallback:
-+                    dscb_ts_state = txmbr.ts_state
-+                    if dscb_ts_state == 'u' and txmbr.downgrades:
-+                        dscb_ts_state = 'd'
-+                    self.dsCallback.pkgAdded(txmbr.pkgtup, dscb_ts_state)
-             
-             elif txmbr.ts_state in ['e']:
-                 if (txmbr.pkgtup, txmbr.ts_state) in ts_elem:
-                     continue
-                 self.ts.addErase(txmbr.po.idx)
--                if self.dsCallback: self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')
-+                if self.dsCallback:
-+                    if txmbr.downgraded_by:
-+                        continue
-+                    self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')
-                 self.verbose_logger.log(logginglevels.DEBUG_1,
-                     _('Removing Package %s'), txmbr.po)
- 
-@@ -511,18 +520,26 @@ class Depsolve(object):
-             if pkgmode in ['i', 'u']:
-                 self.verbose_logger.log(logginglevels.DEBUG_2,
-                     _('%s already in ts, skipping this one'), pkg)
--                # FIXME: Remove this line, if it is not needed ?
--                # checkdeps = 1
-                 self._last_req = pkg
-                 return checkdeps, missingdep
- 
-         # find the best one 
- 
-         # try updating the already install pkgs
-+        results = []
-         for pkg in provSack.returnNewestByName():
--            results = self.update(requiringPo=requiringPo, name=pkg.name,
--                                  epoch=pkg.epoch, version=pkg.version,
--                                  rel=pkg.rel)
-+            tresults = self.update(requiringPo=requiringPo, name=pkg.name,
-+                                   epoch=pkg.epoch, version=pkg.version,
-+                                   rel=pkg.rel)
-+            #  Note that this does "interesting" things with multilib. We can
-+            # have say A.i686 and A.x86_64, and if we hit "A.i686" first,
-+            # .update() will actually update "A.x86_64" which will then fail
-+            # the pkg == txmbr.po test below, but then they'll be nothing to
-+            # update when we get around to A.x86_64 ... so this entire loop
-+            # fails.
-+            #  Keeping results through the loop and thus. testing each pkg
-+            # against all txmbr's from previous runs "fixes" this.
-+            results.extend(tresults)
-             for txmbr in results:
-                 if pkg == txmbr.po:
-                     checkdeps = True
-@@ -547,7 +564,6 @@ class Depsolve(object):
-             return checkdeps, missingdep
-         
-                 
--            
-         # FIXME - why can't we look up in the transaction set for the requiringPkg
-         # and know what needs it that way and provide a more sensible dep structure in the txmbr
-         inst = self.rpmdb.searchNevra(name=best.name, arch=best.arch)
-@@ -558,23 +574,30 @@ class Depsolve(object):
-             txmbr = self.tsInfo.addUpdate(best, inst[0])
-             txmbr.setAsDep(po=requiringPo)
-             txmbr.reason = "dep"
-+            checkdeps = True
-             self._last_req = best
-         else:
-             self.verbose_logger.debug(_('TSINFO: Marking %s as install for %s'), best,
-                 requiringPo)
--            # FIXME: Don't we want .install() here, so obsoletes get done?
--            txmbr = self.tsInfo.addInstall(best)
--            txmbr.setAsDep(po=requiringPo)
--            txmbr.reason = "dep"
--            self._last_req = best
--
--            # if we had other packages with this name.arch that we found
--            # before, they're not going to be installed anymore, so we
--            # should mark them to be re-checked
--            if best.pkgtup in upgraded:
--                map(self.tsInfo.remove, upgraded[best.pkgtup])
--
--        checkdeps = 1
-+            reqtuple = misc.string_to_prco_tuple(needname + str(needflags) + needversion)
-+            txmbrs = self.install(best, provides_for=reqtuple)
-+            for txmbr in txmbrs:
-+                txmbr.setAsDep(po=requiringPo)
-+                txmbr.reason = "dep"
-+                self._last_req = txmbr.po
-+
-+                # if we had other packages with this name.arch that we found
-+                # before, they're not going to be installed anymore, so we
-+                # should mark them to be re-checked
-+                if txmbr.pkgtup in upgraded:
-+                    map(self.tsInfo.remove, upgraded[txmbr.pkgtup])
-+            if not txmbrs:
-+                missingdep = 1
-+                checkdeps = 0
-+                msg = self._err_missing_requires(requiringPo, requirement)
-+                errorlist.append(msg)
-+            else:
-+                checkdeps = 1
-         
-         return checkdeps, missingdep
- 
-@@ -753,10 +776,9 @@ class Depsolve(object):
-                 self.verbose_logger.log(logginglevels.DEBUG_4,"  --> %s" % err)
-             return (1, errors)
- 
--        if len(self.tsInfo) > 0:
--            if not len(self.tsInfo):
--                return (0, [_('Success - empty transaction')])
--            return (2, [_('Success - deps resolved')])
-+        if not len(self.tsInfo):
-+            return (0, [_('Success - empty transaction')])
-+        return (2, [_('Success - deps resolved')])
- 
-     def _resolveRequires(self, errors):
-         any_missing = False
-@@ -768,7 +790,14 @@ class Depsolve(object):
-         for txmbr in self.tsInfo.getUnresolvedMembers():
- 
-             if self.dsCallback and txmbr.ts_state:
--                self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
-+                dscb_ts_state = txmbr.ts_state
-+                if txmbr.downgrades:
-+                    dscb_ts_state = 'd'
-+                if dscb_ts_state == 'u' and txmbr.reinstall:
-+                    dscb_ts_state = 'r'
-+                if dscb_ts_state == 'u' and not txmbr.updates:
-+                    dscb_ts_state = 'i'
-+                self.dsCallback.pkgAdded(txmbr.pkgtup, dscb_ts_state)
-             self.verbose_logger.log(logginglevels.DEBUG_2,
-                                     _("Checking deps for %s") %(txmbr,))
- 
-@@ -790,6 +819,14 @@ class Depsolve(object):
- 
-             missing_in_pkg = False
-             for po, dep in thisneeds:
-+                if txmbr.downgraded_by: # Don't try to chain remove downgrades
-+                    msg = self._err_missing_requires(po, dep)
-+                    self.verbose_logger.log(logginglevels.DEBUG_2, msg)
-+                    errors.append(msg)
-+                    self.po_with_problems.add((po,self._working_po,errors[-1]))
-+                    missing_in_pkg = 1
-+                    continue
-+
-                 (checkdep, missing, errormsgs) = self._processReq(po, dep)
-                 CheckDeps |= checkdep
-                 errors += errormsgs
-@@ -850,7 +887,11 @@ class Depsolve(object):
-             
-             self.verbose_logger.log(logginglevels.DEBUG_2, _("looking for %s as a requirement of %s"), req, txmbr)
-             provs = self.tsInfo.getProvides(*req)
--            if not provs:
-+            #  The self provides should mostly be caught before here now, but
-+            # at least config() crack still turns up, it's not that
-+            # expensive to just do it, and we really don't want "false positive"
-+            # requires for compare_providers().
-+            if not provs and not txmbr.po.inPrcoRange('provides', req):
-                 ret.append( (txmbr.po, self._prco_req2req(req)) )
-                 continue
- 
-@@ -881,11 +922,22 @@ class Depsolve(object):
-         for prov in provs:
-             if prov[0].startswith('rpmlib('): # ignore rpmlib() provides
-                 continue
--            if newpoprovs.has_key(prov):
-+            if prov in newpoprovs:
-                 continue
-             # FIXME: This is probably the best place to fix the postfix rename
-             # problem long term (post .21) ... see compare_providers.
-             for pkg, hits in self.tsInfo.getRequires(*prov).iteritems():
-+                # See the docs, this is to make groupremove "more useful".
-+                if (self.conf.groupremove_leaf_only and txmbr.groups and
-+                    txmbr.output_state == TS_ERASE):
-+                    cb = self.dsCallback
-+                    if cb and hasattr(cb, 'groupRemoveReq'):
-+                        cb.groupRemoveReq(pkg, hits)
-+                    #  We don't undo anything else here ... hopefully that's
-+                    # fine.
-+                    self.tsInfo.remove(txmbr.pkgtup)
-+                    return []
-+
-                 for hit in hits:
-                     # See if the update solves the problem...
-                     found = False
-@@ -1116,11 +1168,15 @@ class Depsolve(object):
-         pkgs = unique_nevra_pkgs.values()
-             
-         pkgresults = {}
--        ipkgresults = {}
- 
-         for pkg in pkgs:
-             pkgresults[pkg] = 0
--
-+        
-+        # hand this off to our plugins
-+        self.plugins.run("compare_providers", providers_dict=pkgresults, 
-+                                      reqpo=reqpo)
-+        
-+        for pkg in pkgresults.keys():
-             rpmdbpkgs = self.rpmdb.searchNevra(name=pkg.name)
-             if rpmdbpkgs:
-                 #  We only want to count things as "installed" if they are
-@@ -1134,23 +1190,17 @@ class Depsolve(object):
-                     # 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
-+                    pkgresults[pkg] += 5
-+                elif newest.verEQ(pkg):
-+                    #  We get here from bestPackagesFromList(), give a giant
-+                    # bump to stuff that is already installed.
-+                    pkgresults[pkg] += 1000
-             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
--        # gets processed before pkgB then we'll process the "checkRemove" of
--        # pkgA ... so any deps. on pkgA-1 will look for a new provider, one of
--        # which is pkgA-2 in that case we want to choose that pkg over any
--        # others. This works for multiple cases too, but who'd do that right?:)
--        #  FIXME: A good long term. fix here is to just not get into this
--        # problem, but that's too much for .21. This is much safer.
--        if ipkgresults:
--            pkgresults = ipkgresults
--            pkgs = ipkgresults.keys()
-+                pass
-+
-+        pkgs = pkgresults.keys()
-             
-         # go through each pkg and compare to others
-         # if it is same skip it
-@@ -1186,8 +1236,7 @@ class Depsolve(object):
-                     pkgresults[po] -= 1024
- 
-                 obsoleted = False
--                poprovtup = (po.name, 'EQ', (po.epoch, po.ver, po.release))
--                if nextpo.inPrcoRange('obsoletes', poprovtup):
-+                if po.obsoletedBy([nextpo]):
-                     obsoleted = True
-                     pkgresults[po] -= 1024
-                                 
-@@ -1209,6 +1258,7 @@ class Depsolve(object):
-                     if res == po:
-                         pkgresults[po] += 5
- 
-+            # End of O(N*N): for nextpo in pkgs:
-             if _common_sourcerpm(po, reqpo):
-                 self.verbose_logger.log(logginglevels.DEBUG_4,
-                     _('common sourcerpm %s and %s' % (po, reqpo)))
-@@ -1216,7 +1266,7 @@ class Depsolve(object):
-             if self.isPackageInstalled(po.base_package_name):
-                 self.verbose_logger.log(logginglevels.DEBUG_4,
-                     _('base package %s is installed for %s' % (po.base_package_name, po)))
--                pkgresults[po] += 5 # Same as ipkgresults above.
-+                pkgresults[po] += 5 # Same as before - - but off of base package name
-             if reqpo:
-                 cpl = _common_prefix_len(po.name, reqpo.name)
-                 if cpl > 2:
-@@ -1225,6 +1275,53 @@ class Depsolve(object):
-                 
-                     pkgresults[po] += cpl*2
-                 
-+        #  If we have more than one "best", see what would happen if we picked
-+        # each package ... ie. what things do they require that _aren't_ already
-+        # installed/to-be-installed. In theory this can screw up due to:
-+        #   pkgA => requires pkgX
-+        #   pkgB => requires pkgY, requires pkgZ
-+        # ...but pkgX requires 666 other things. Going recursive is
-+        # "non-trivial" though, python != prolog. This seems to do "better"
-+        # from simple testing though.
-+        bestnum = max(pkgresults.values())
-+        rec_depsolve = {}
-+        for po in pkgs:
-+            if pkgresults[po] != bestnum:
-+                continue
-+            rec_depsolve[po] = 0
-+        if len(rec_depsolve) > 1:
-+            for po in rec_depsolve:
-+                fake_txmbr = TransactionMember(po)
-+
-+                #  Note that this is just requirements, so you could also have
-+                # 4 requires for a single package. This might be fixable, if
-+                # needed, but given the above it's probably better to leave it
-+                # like this.
-+                reqs = self._checkInstall(fake_txmbr)
-+                rec_depsolve[po] = len(reqs)
-+
-+            bestnum = min(rec_depsolve.values())
-+            self.verbose_logger.log(logginglevels.DEBUG_4,
-+                                    _('requires minimal: %d') % bestnum)
-+            for po in rec_depsolve:
-+                if rec_depsolve[po] == bestnum:
-+                    self.verbose_logger.log(logginglevels.DEBUG_4,
-+                            _(' Winner: %s') % po)
-+                    pkgresults[po] += 1
-+                else:
-+                    num = rec_depsolve[po]
-+                    self.verbose_logger.log(logginglevels.DEBUG_4,
-+                            _(' Loser(with %d): %s') % (num, po))
-+
-+        #  We don't want to decide to use a "shortest first", if something else
-+        # has told us to pick something else. But we want to pick between
-+        # multiple "best" packages. So we spike all the best packages (so
-+        # only those can win) and then bump them down by package name length.
-+        bestnum = max(pkgresults.values())
-+        for po in pkgs:
-+            if pkgresults[po] != bestnum:
-+                continue
-+            pkgresults[po] += 1000
-             pkgresults[po] += (len(po.name)*-1)
- 
-         bestorder = sorted(pkgresults.items(),
-diff --git a/yum/history.py b/yum/history.py
-index 2707cac..502b908 100644
---- a/yum/history.py
-+++ b/yum/history.py
-@@ -22,7 +22,7 @@ import os, os.path
- import glob
- from weakref import proxy as weakref
- 
--from sqlutils import sqlite, executeSQL, sql_esc, sql_esc_glob
-+from sqlutils import sqlite, executeSQL, sql_esc_glob
- import yum.misc as misc
- import yum.constants
- from yum.constants import *
-@@ -112,6 +112,35 @@ class YumHistoryPackage(PackageObject):
-             chk = checksum.split(':')
-             self._checksums = [(chk[0], chk[1], 0)] # (type, checksum, id(0,1))
- 
-+class YumHistoryRpmdbProblem(PackageObject):
-+    """ Class representing an rpmdb problem that existed at the time of the
-+        transaction. """
-+
-+    def __init__(self, history, rpid, problem, text):
-+        self._history = weakref(history)
-+
-+        self.rpid = rpid
-+        self.problem = problem
-+        self.text = text
-+
-+        self._loaded_P = None
-+
-+    def __cmp__(self, other):
-+        if other is None:
-+            return 1
-+        ret = cmp(self.problem, other.problem)
-+        if ret: return -ret
-+        ret = cmp(self.rpid, other.rpid)
-+        return ret
-+
-+    def _getProbPkgs(self):
-+        if self._loaded_P is None:
-+            self._loaded_P = sorted(self._history._old_prob_pkgs(self.rpid))
-+        return self._loaded_P
-+
-+    packages = property(fget=lambda self: self._getProbPkgs())
-+
-+
- class YumHistoryTransaction:
-     """ Holder for a history transaction. """
- 
-@@ -128,6 +157,12 @@ class YumHistoryTransaction:
- 
-         self._loaded_TW = None
-         self._loaded_TD = None
-+        self._loaded_TS = None
-+
-+        self._loaded_PROB = None
-+
-+        self._have_loaded_CMD = False # cmdline can validly be None
-+        self._loaded_CMD = None
- 
-         self._loaded_ER = None
-         self._loaded_OT = None
-@@ -153,9 +188,29 @@ class YumHistoryTransaction:
-         if self._loaded_TD is None:
-             self._loaded_TD = sorted(self._history._old_data_pkgs(self.tid))
-         return self._loaded_TD
-+    def _getTransSkip(self):
-+        if self._loaded_TS is None:
-+            self._loaded_TS = sorted(self._history._old_skip_pkgs(self.tid))
-+        return self._loaded_TS
- 
-     trans_with = property(fget=lambda self: self._getTransWith())
-     trans_data = property(fget=lambda self: self._getTransData())
-+    trans_skip = property(fget=lambda self: self._getTransSkip())
-+
-+    def _getProblems(self):
-+        if self._loaded_PROB is None:
-+            self._loaded_PROB = sorted(self._history._old_problems(self.tid))
-+        return self._loaded_PROB
-+
-+    rpmdb_problems = property(fget=lambda self: self._getProblems())
-+
-+    def _getCmdline(self):
-+        if not self._have_loaded_CMD:
-+            self._have_loaded_CMD = True
-+            self._loaded_CMD = self._history._old_cmdline(self.tid)
-+        return self._loaded_CMD
-+
-+    cmdline = property(fget=lambda self: self._getCmdline())
- 
-     def _getErrors(self):
-         if self._loaded_ER is None:
-@@ -176,8 +231,12 @@ class YumHistory:
-         self._conn = None
-         
-         self.conf = yum.misc.GenericHolder()
--        self.conf.db_path  = os.path.normpath(root + '/' + db_path)
-+        if not os.path.normpath(db_path).startswith(root):
-+            self.conf.db_path  = os.path.normpath(root + '/' + db_path)
-+        else:
-+            self.conf.db_path = os.path.normpath('/' + db_path)
-         self.conf.writable = False
-+        self.conf.readable = True
- 
-         if not os.path.exists(self.conf.db_path):
-             try:
-@@ -203,18 +262,41 @@ class YumHistory:
-             except ValueError:
-                 continue
- 
-+            self._db_date = '%s-%s-%s' % (pieces[0], pieces[1], pieces[2])
-             self._db_file = d
-             break
- 
-         if self._db_file is None:
-             self._create_db_file()
-+        
-+        # make an addon path for where we're going to stick 
-+        # random additional history info - probably from plugins and what-not
-+        self.conf.addon_path = self.conf.db_path + '/' + self._db_date
-+        if not os.path.exists(self.conf.addon_path):
-+            try:
-+                os.makedirs(self.conf.addon_path)
-+            except (IOError, OSError), e:
-+                # some sort of useful thing here? A warning?
-+                return
-+        else:
-+            if os.access(self.conf.addon_path, os.W_OK):
-+                self.conf.writable = True
-+
- 
-     def __del__(self):
-         self.close()
- 
-     def _get_cursor(self):
-         if self._conn is None:
--            self._conn = sqlite.connect(self._db_file)
-+            if not self.conf.readable:
-+                return None
-+
-+            try:
-+                self._conn = sqlite.connect(self._db_file)
-+            except (sqlite.OperationalError, sqlite.DatabaseError):
-+                self.conf.readable = False
-+                return None
-+
-         return self._conn.cursor()
-     def _commit(self):
-         return self._conn.commit()
-@@ -276,7 +358,7 @@ class YumHistory:
-     def txmbr2state(txmbr):
-         state = None
-         if txmbr.output_state in (TS_INSTALL, TS_TRUEINSTALL):
--            if hasattr(txmbr, 'reinstall'):
-+            if txmbr.reinstall:
-                 state = 'Reinstall'
-             elif txmbr.downgrades:
-                 state = 'Downgrade'
-@@ -291,17 +373,32 @@ class YumHistory:
- 
-     def trans_with_pid(self, pid):
-         cur = self._get_cursor()
-+        if cur is None:
-+            return None
-         res = executeSQL(cur,
-                          """INSERT INTO trans_with_pkgs
-                          (tid, pkgtupid)
-                          VALUES (?, ?)""", (self._tid, pid))
-         return cur.lastrowid
- 
-+    def trans_skip_pid(self, pid):
-+        cur = self._get_cursor()
-+        if cur is None or not self._update_db_file_2():
-+            return None
-+        
-+        res = executeSQL(cur,
-+                         """INSERT INTO trans_skip_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()
-+        if cur is None:
-+            return # Should never happen, due to above
-         res = executeSQL(cur,
-                          """INSERT INTO trans_data_pkgs
-                          (tid, pkgtupid, state)
-@@ -313,6 +410,8 @@ class YumHistory:
-             return # Not configured to run
- 
-         cur = self._get_cursor()
-+        if cur is None:
-+            return # Should never happen, due to above
-         res = executeSQL(cur,
-                          """UPDATE trans_data_pkgs SET done = ?
-                          WHERE tid = ? AND pkgtupid = ? AND state = ?
-@@ -320,8 +419,62 @@ class YumHistory:
-         self._commit()
-         return cur.lastrowid
- 
--    def beg(self, rpmdb_version, using_pkgs, txmbrs):
-+    def _trans_rpmdb_problem(self, problem):
-+        if not hasattr(self, '_tid'):
-+            return # Not configured to run
-+        cur = self._get_cursor()
-+        if cur is None or not self._update_db_file_2():
-+            return None
-+        res = executeSQL(cur,
-+                         """INSERT INTO trans_rpmdb_problems
-+                         (tid, problem, msg)
-+                         VALUES (?, ?, ?)""", (self._tid,
-+                                               problem.problem,
-+                                               to_unicode(str(problem))))
-+        rpid = cur.lastrowid
-+
-+        if not rpid:
-+            return rpid
-+
-+        pkgs = {}
-+        pkg = problem.pkg
-+        pkgs[pkg.pkgtup] = pkg
-+        if problem.problem == 'conflicts':
-+            for pkg in problem.conflicts:
-+                pkgs[pkg.pkgtup] = pkg
-+        if problem.problem == 'duplicates':
-+            pkgs[problem.duplicate.pkgtup] = problem.duplicate
-+
-+        for pkg in pkgs.values():
-+            pid = self.pkg2pid(pkg)
-+            if pkg.pkgtup == problem.pkg.pkgtup:
-+                main = 'TRUE'
-+            else:
-+                main = 'FALSE'
-+            res = executeSQL(cur,
-+                             """INSERT INTO trans_prob_pkgs
-+                             (rpid, pkgtupid, main)
-+                             VALUES (?, ?, ?)""", (rpid, pid, main))
-+
-+        return rpid
-+
-+    def _trans_cmdline(self, cmdline):
-+        if not hasattr(self, '_tid'):
-+            return # Not configured to run
-+        cur = self._get_cursor()
-+        if cur is None or not self._update_db_file_2():
-+            return None
-+        res = executeSQL(cur,
-+                         """INSERT INTO trans_cmdline
-+                         (tid, cmdline)
-+                         VALUES (?, ?)""", (self._tid, cmdline))
-+        return cur.lastrowid
-+
-+    def beg(self, rpmdb_version, using_pkgs, txmbrs, skip_packages=[],
-+            rpmdb_problems=[], cmdline=None):
-         cur = self._get_cursor()
-+        if cur is None:
-+            return
-         res = executeSQL(cur,
-                          """INSERT INTO trans_beg
-                             (timestamp, rpmdb_version, loginuid)
-@@ -339,10 +492,22 @@ class YumHistory:
-             state = self.txmbr2state(txmbr)
-             self.trans_data_pid_beg(pid, state)
-         
-+        for pkg in skip_packages:
-+            pid   = self.pkg2pid(pkg)
-+            self.trans_skip_pid(pid)
-+
-+        for problem in rpmdb_problems:
-+            self._trans_rpmdb_problem(problem)
-+
-+        if cmdline:
-+            self._trans_cmdline(cmdline)
-+
-         self._commit()
- 
-     def _log_errors(self, errors):
-         cur = self._get_cursor()
-+        if cur is None:
-+            return
-         for error in errors:
-             error = to_unicode(error)
-             executeSQL(cur,
-@@ -356,7 +521,9 @@ class YumHistory:
-             return # Not configured to run
- 
-         cur = self._get_cursor()
--        for error in msg.split('\n'):
-+        if cur is None:
-+            return # Should never happen, due to above
-+        for error in msg.splitlines():
-             error = to_unicode(error)
-             executeSQL(cur,
-                        """INSERT INTO trans_script_stdout
-@@ -387,7 +554,11 @@ class YumHistory:
- 
-     def end(self, rpmdb_version, return_code, errors=None):
-         assert return_code or not errors
-+        if not hasattr(self, '_tid'):
-+            return # Failed at beg() time
-         cur = self._get_cursor()
-+        if cur is None:
-+            return # Should never happen, due to above
-         res = executeSQL(cur,
-                          """INSERT INTO trans_end
-                             (tid, timestamp, rpmdb_version, return_code)
-@@ -407,6 +578,63 @@ class YumHistory:
-             self._log_errors(errors)
-         del self._tid
- 
-+    def write_addon_data(self, dataname, data):
-+        """append data to an arbitrary-named file in the history 
-+           addon_path/transaction id location,
-+           returns True if write succeeded, False if not"""
-+        
-+        if not hasattr(self, '_tid'):
-+            # maybe we should raise an exception or a warning here?
-+            return False
-+        
-+        if not dataname:
-+            return False
-+        
-+        if not data:
-+            return False
-+            
-+        # make sure the tid dir exists
-+        tid_dir = self.conf.addon_path + '/' + str(self._tid)
-+
-+        if self.conf.writable and not os.path.exists(tid_dir):
-+            try:
-+                os.makedirs(tid_dir, mode=0700)
-+            except (IOError, OSError), e:
-+                # emit a warning/raise an exception?
-+                return False
-+        
-+        # cleanup dataname
-+        safename = dataname.replace('/', '_')
-+        data_fn = tid_dir + '/' + safename
-+        try:
-+            # open file in append
-+            fo = open(data_fn, 'w+')
-+            # write data
-+            fo.write(data)
-+            # flush data
-+            fo.flush()
-+            fo.close()
-+        except (IOError, OSError), e:
-+            return False
-+        # return
-+        return True
-+        
-+    def return_addon_data(self, tid, item=None):
-+        hist_and_tid = self.conf.addon_path + '/' + str(tid) + '/'
-+        addon_info = glob.glob(hist_and_tid + '*')
-+        addon_names = [ i.replace(hist_and_tid, '') for i in addon_info ]
-+        if not item:
-+            return addon_names
-+        
-+        if item not in addon_names:
-+            # XXX history needs SOME kind of exception, or warning, I think?
-+            return None
-+        
-+        fo = open(hist_and_tid + item, 'r')
-+        data = fo.read()
-+        fo.close()
-+        return data
-+        
-     def _old_with_pkgs(self, tid):
-         cur = self._get_cursor()
-         executeSQL(cur,
-@@ -439,11 +667,70 @@ class YumHistory:
-                 obj.state_installed = False
-             ret.append(obj)
-         return ret
-+    def _old_skip_pkgs(self, tid):
-+        cur = self._get_cursor()
-+        if cur is None or not self._update_db_file_2():
-+            return []
-+        executeSQL(cur,
-+                   """SELECT name, arch, epoch, version, release, checksum
-+                      FROM trans_skip_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_prob_pkgs(self, rpid):
-+        cur = self._get_cursor()
-+        if cur is None or not self._update_db_file_2():
-+            return []
-+        executeSQL(cur,
-+                   """SELECT name, arch, epoch, version, release, checksum, main
-+                      FROM trans_prob_pkgs JOIN pkgtups USING(pkgtupid)
-+                      WHERE rpid = ?
-+                      ORDER BY name ASC, epoch ASC""", (rpid,))
-+        ret = []
-+        for row in cur:
-+            obj = YumHistoryPackage(row[0],row[1],row[2],row[3],row[4], row[5])
-+            obj.main = row[6] == 'TRUE'
-+            ret.append(obj)
-+        return ret
-+
-+    def _old_problems(self, tid):
-+        cur = self._get_cursor()
-+        if cur is None or not self._update_db_file_2():
-+            return []
-+        executeSQL(cur,
-+                   """SELECT rpid, problem, msg
-+                      FROM trans_rpmdb_problems
-+                      WHERE tid = ?
-+                      ORDER BY problem ASC, rpid ASC""", (tid,))
-+        ret = []
-+        for row in cur:
-+            obj = YumHistoryRpmdbProblem(self, row[0], row[1], row[2])
-+            ret.append(obj)
-+        return ret
-+
-+    def _old_cmdline(self, tid):
-+        cur = self._get_cursor()
-+        if cur is None or not self._update_db_file_2():
-+            return None
-+        executeSQL(cur,
-+                   """SELECT cmdline
-+                      FROM trans_cmdline
-+                      WHERE tid = ?""", (tid,))
-+        ret = []
-+        for row in cur:
-+            return row[0]
-+        return None
- 
-     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()
-+        if cur is None:
-+            return []
-         sql =  """SELECT tid,
-                          trans_beg.timestamp AS beg_ts,
-                          trans_beg.rpmdb_version AS beg_rv,
-@@ -551,6 +838,10 @@ class YumHistory:
-             packages al. la. "yum list". Returns transaction ids. """
-         # Search packages ... kind of sucks that it's search not list, pkglist?
- 
-+        cur = self._get_cursor()
-+        if cur is None:
-+            return set()
-+
-         data = _setupHistorySearchSQL(patterns, ignore_case)
-         (need_full, patterns, fields, names) = data
- 
-@@ -559,7 +850,6 @@ class YumHistory:
-         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)
-@@ -577,12 +867,98 @@ class YumHistory:
-             tids.add(row[0])
-         return tids
- 
-+    _update_ops_2 = ['''\
-+\
-+ CREATE TABLE trans_skip_pkgs (
-+     tid INTEGER NOT NULL REFERENCES trans_beg,
-+     pkgtupid INTEGER NOT NULL REFERENCES pkgtups);
-+''', '''\
-+\
-+ CREATE TABLE trans_cmdline (
-+     tid INTEGER NOT NULL REFERENCES trans_beg,
-+     cmdline TEXT NOT NULL);
-+''', '''\
-+\
-+ CREATE TABLE trans_rpmdb_problems (
-+     rpid INTEGER PRIMARY KEY,
-+     tid INTEGER NOT NULL REFERENCES trans_beg,
-+     problem TEXT NOT NULL, msg TEXT NOT NULL);
-+''', '''\
-+\
-+ CREATE TABLE trans_prob_pkgs (
-+     rpid INTEGER NOT NULL REFERENCES trans_rpmdb_problems,
-+     pkgtupid INTEGER NOT NULL REFERENCES pkgtups,
-+     main BOOL NOT NULL DEFAULT FALSE);
-+''', '''\
-+\
-+ CREATE VIEW vtrans_data_pkgs AS
-+     SELECT tid,name,epoch,version,release,arch,pkgtupid,
-+            state,done,
-+            name || '-' || epoch || ':' ||
-+            version || '-' || release || '.' || arch AS nevra
-+     FROM trans_data_pkgs JOIN pkgtups USING(pkgtupid)
-+     ORDER BY name;
-+''', '''\
-+\
-+ CREATE VIEW vtrans_with_pkgs AS
-+     SELECT tid,name,epoch,version,release,arch,pkgtupid,
-+            name || '-' || epoch || ':' ||
-+            version || '-' || release || '.' || arch AS nevra
-+     FROM trans_with_pkgs JOIN pkgtups USING(pkgtupid)
-+     ORDER BY name;
-+''', '''\
-+\
-+ CREATE VIEW vtrans_skip_pkgs AS
-+     SELECT tid,name,epoch,version,release,arch,pkgtupid,
-+            name || '-' || epoch || ':' ||
-+            version || '-' || release || '.' || arch AS nevra
-+     FROM trans_skip_pkgs JOIN pkgtups USING(pkgtupid)
-+     ORDER BY name;
-+''', # NOTE: Old versions of sqlite don't like this next view, they are only
-+     #       there for debugging anyway ... but it's worth remembering.
-+'''\
-+\
-+ CREATE VIEW vtrans_prob_pkgs AS
-+     SELECT tid,rpid,name,epoch,version,release,arch,pkgtups.pkgtupid,
-+            main,
-+            name || '-' || epoch || ':' ||
-+            version || '-' || release || '.' || arch AS nevra
-+     FROM (trans_prob_pkgs JOIN trans_rpmdb_problems USING(rpid))
-+                           JOIN pkgtups USING(pkgtupid)
-+     ORDER BY name;
-+''']
-+
-+    def _update_db_file_2(self):
-+        """ Update to version 2 of history, includes trans_skip_pkgs. """
-+        if not self.conf.writable:
-+            return False
-+
-+        if hasattr(self, '_cached_updated_2'):
-+            return self._cached_updated_2
-+
-+        cur = self._get_cursor()
-+        if cur is None:
-+            return False
-+
-+        executeSQL(cur, "PRAGMA table_info(trans_skip_pkgs)")
-+        #  If we get anything, we're fine. There might be a better way of
-+        # saying "anything" but this works.
-+        for ob in cur:
-+            break
-+        else:
-+            for op in self._update_ops_2:
-+                cur.execute(op)
-+            self._commit()
-+        self._cached_updated_2 = True
-+        return True
-+
-     def _create_db_file(self):
-         """ Create a new history DB file, populating tables etc. """
- 
-+        self._db_date = time.strftime('%Y-%m-%d')
-         _db_file = '%s/%s-%s.%s' % (self.conf.db_path,
-                                     'history',
--                                    time.strftime('%Y-%m-%d'),
-+                                    self._db_date,
-                                     'sqlite')
-         if self._db_file == _db_file:
-             os.rename(_db_file, _db_file + '.old')
-@@ -638,6 +1014,8 @@ class YumHistory:
- ''']
-         for op in ops:
-             cur.execute(op)
-+        for op in self._update_ops_2:
-+            cur.execute(op)
-         self._commit()
- 
- # Pasted from sqlitesack
-diff --git a/yum/logginglevels.py b/yum/logginglevels.py
-index 6c23f88..9534984 100644
---- a/yum/logginglevels.py
-+++ b/yum/logginglevels.py
-@@ -45,7 +45,7 @@ logging.addLevelName(DEBUG_4, "DEBUG_4")
- __NO_LOGGING = 100
- logging.raiseExceptions = False
- 
--import syslog as syslog_module
-+from logging.handlers import SysLogHandler as syslog_module
- 
- syslog = None
- 
-@@ -75,7 +75,7 @@ def syslogFacilityMap(facility):
-     elif (facility.upper().startswith("LOG_") and
-           facility[4:].upper() in _syslog_facility_map):
-         return _syslog_facility_map[facility[4:].upper()]
--    return syslog.LOG_USER
-+    return _syslog_facility_map["USER"]
- 
- def logLevelFromErrorLevel(error_level):
-     """ Convert an old-style error logging level to the new style. """
-@@ -130,7 +130,10 @@ def doLoggingSetup(debuglevel, errorlevel,
-     """
-     global _added_handlers
- 
--    logging.basicConfig()
-+    #logging.basicConfig() # this appears to not change anything in our 
-+    # logging setup - disabling this b/c of the behaviors in yum ticket 525
-+    # -skvidal
-+    
- 
-     if _added_handlers:
-         if debuglevel is not None:
-@@ -140,7 +143,6 @@ def doLoggingSetup(debuglevel, errorlevel,
-         return
- 
-     plainformatter = logging.Formatter("%(message)s")
--    syslogformatter = logging.Formatter("yum: %(message)s")
-     
-     console_stdout = logging.StreamHandler(sys.stdout)
-     console_stdout.setFormatter(plainformatter)
-@@ -158,20 +160,24 @@ def doLoggingSetup(debuglevel, errorlevel,
-     filelogger.setLevel(logging.INFO)
-     filelogger.propagate = False
- 
--    log_dev = syslog_device
-     global syslog
--    if os.path.exists(log_dev):
--        try:
--            syslog = logging.handlers.SysLogHandler(log_dev)
--            syslog.setFormatter(syslogformatter)
--            filelogger.addHandler(syslog)
--            if syslog_ident is not None or syslog_facility is not None:
--                ident = syslog_ident    or ''
--                facil = syslog_facility or 'LOG_USER'
--                syslog_module.openlog(ident, 0, syslogFacilityMap(facil))
--        except socket.error:
--            if syslog is not None:
--                syslog.close()
-+    if syslog_device:
-+        address = None
-+        if ":" in syslog_device:
-+            address = syslog_device.rsplit(":", 1)
-+            address = (address[0], int(address[1]))
-+        elif os.path.exists(syslog_device):
-+            address = syslog_device
-+        if address:
-+            try:
-+                facil = syslogFacilityMap(syslog_facility or "USER")
-+                syslog = logging.handlers.SysLogHandler(address, facil)
-+            except socket.error:
-+                if syslog is not None:
-+                    syslog.close()
-+            else:
-+                setLoggingApp(syslog_ident or "yum")
-+                filelogger.addHandler(syslog)
-     _added_handlers = True
- 
-     if debuglevel is not None:
-@@ -189,7 +195,12 @@ def setFileLog(uid, logfile):
-             logdir = os.path.dirname(logfile)
-             if not os.path.exists(logdir):
-                 os.makedirs(logdir, mode=0755)
--
-+            
-+            if not os.path.exists(logfile):
-+                f = open(logfile, 'w')
-+                os.chmod(logfile, 0600) # making sure umask doesn't catch us up
-+                f.close()
-+                
-             filelogger = logging.getLogger("yum.filelogging")
-             filehandler = logging.FileHandler(logfile)
-             formatter = logging.Formatter("%(asctime)s %(message)s",
-@@ -201,5 +212,5 @@ def setFileLog(uid, logfile):
- 
- def setLoggingApp(app):
-     if syslog:
--        syslogformatter = logging.Formatter("yum(%s): "% (app,) + "%(message)s")
-+        syslogformatter = logging.Formatter(app + "[%(process)d]: %(message)s")
-         syslog.setFormatter(syslogformatter)
-diff --git a/yum/mdparser.py b/yum/mdparser.py
-index 2753dad..194d5d1 100644
---- a/yum/mdparser.py
-+++ b/yum/mdparser.py
-@@ -132,7 +132,7 @@ class PrimaryEntry(BaseEntry):
-             elif name in ('checksum', 'location'): 
-                 p.update(self._prefixprops(child, name))
-                 p[name + '_value'] = child.text
--                if name == 'location' and not p.has_key("location_base"):
-+                if name == 'location' and "location_base" not in p:
-                     p["location_base"] = None
-             
-             elif name == 'format': 
-diff --git a/yum/metalink.py b/yum/metalink.py
-index 24da633..aaa4f25 100755
---- a/yum/metalink.py
-+++ b/yum/metalink.py
-@@ -26,11 +26,7 @@ from urlgrabber.progress import format_number
- 
- import Errors
- 
--try:
--    from xml.etree import cElementTree
--except ImportError:
--    import cElementTree
--xmlparse = cElementTree.parse
-+from yum.misc import cElementTree_xmlparse as xmlparse
- 
- class MetaLinkRepoErrorParseFail(Errors.RepoError):
-     """ An exception thrown for an unparsable MetaLinkRepoMD file. """
-@@ -138,6 +134,8 @@ class MetaLinkURL:
-         self.preference = int(elem.get("preference", -1))
-         self.protocol   = elem.get("type") # This is the "std" attribute name
-         self.location   = elem.get("location")
-+        self.private    = elem.get("{%s}private" % __XML_NS_MM__, "false")
-+        self.private    = self.private.lower() == "true"
- 
-         if self.protocol is None: # Try for the old MM protocol attribute
-             self.protocol   = elem.get("protocol")
-@@ -149,8 +147,9 @@ Preference:      %d
- Max-Connections: %d
- Protocol:        %s
- Location:        %s
-+Private:         %s
- """ % (self.url, self.preference, self.max_connections,
--       self.protocol, self.location)
-+       self.protocol, self.location, self.private)
- 
-     def __cmp__(self, other):
-         if other is None:
-diff --git a/yum/misc.py b/yum/misc.py
-index 66b0653..0f80d7d 100644
---- a/yum/misc.py
-+++ b/yum/misc.py
-@@ -19,6 +19,13 @@ import pwd
- import fnmatch
- import bz2
- import gzip
-+_available_compression = ['gz', 'bz2']
-+try:
-+    import lzma
-+    _available_compression.append('xz')
-+except ImportError:
-+    lzma = None
-+
- from rpmUtils.miscutils import stringToVersion, flagToString
- from stat import *
- try:
-@@ -98,17 +105,16 @@ def re_filename(s):
- def re_primary_filename(filename):
-     """ 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/'):
-+        positives). Note that this is a superset of re_primary_dirname(). """
-+    if re_primary_dirname(filename):
-         return True
-     if filename == '/usr/lib/sendmail':
-         return True
-     return False
- 
- def re_primary_dirname(dirname):
--    """ Tests if a dirname string, can be matched against just primary. """
-+    """ Tests if a dirname string, can be matched against just primary. Note
-+        that this is a subset of re_primary_filename(). """
-     if 'bin/' in dirname:
-         return True
-     if dirname.startswith('/etc/'):
-@@ -642,7 +648,9 @@ def string_to_prco_tuple(prcoString):
-         n = prcoString
-         f = v = None
-         
--        if n[0] != '/':
-+        # We love GPG keys as packages, esp. awesome provides like:
-+        #  gpg(Fedora (13) <fedora at fedoraproject.org>)
-+        if n[0] != '/' and not n.startswith("gpg("):
-             # not a file dep - look at it for being versioned
-             prco_split = n.split()
-             if len(prco_split) == 3:
-@@ -676,10 +684,22 @@ def refineSearchPattern(arg):
-         restring = re.escape(arg)
-         
-     return restring
-+
-+
-+def _decompress_chunked(source, dest, ztype):
-+
-+    if ztype not in _available_compression:
-+        msg = "%s compression not available" % ztype
-+        raise Errors.MiscError, msg
-+    
-+    if ztype == 'bz2':
-+        s_fn = bz2.BZ2File(source, 'r')
-+    elif ztype == 'xz':
-+        s_fn = lzma.LZMAFile(source, 'r')
-+    elif ztype == 'gz':
-+        s_fn = gzip.GzipFile(source, 'r')
-+    
-     
--def bunzipFile(source,dest):
--    """ Extract the bzipped contents of source to dest. """
--    s_fn = bz2.BZ2File(source, 'r')
-     destination = open(dest, 'w')
- 
-     while True:
-@@ -698,7 +718,11 @@ def bunzipFile(source,dest):
-     
-     destination.close()
-     s_fn.close()
--
-+    
-+def bunzipFile(source,dest):
-+    """ Extract the bzipped contents of source to dest. """
-+    _decompress_chunked(source, dest, ztype='bz2')
-+    
- def get_running_kernel_pkgtup(ts):
-     """This takes the output of uname and figures out the pkgtup of the running
-        kernel (name, arch, epoch, version, release)."""
-@@ -782,7 +806,11 @@ def find_ts_remaining(timestamp, yumlibpath='/var/lib/yum'):
-         item = item.replace('\n', '')
-         if item == '':
-             continue
--        (action, pkgspec) = item.split()
-+        try:
-+            (action, pkgspec) = item.split()
-+        except ValueError, e:
-+            msg = "Transaction journal  file %s is corrupt." % (tsallpath)
-+            raise Errors.MiscError, msg
-         to_complete_items.append((action, pkgspec))
-     
-     return to_complete_items
-@@ -848,15 +876,20 @@ def _ugly_utf8_string_hack(item):
-             newitem = newitem + char
-     return newitem
- 
-+__cached_saxutils = None
- def to_xml(item, attrib=False):
--    import xml.sax.saxutils
-+    global __cached_saxutils
-+    if __cached_saxutils is None:
-+        import xml.sax.saxutils
-+        __cached_saxutils = xml.sax.saxutils
-+
-     item = _ugly_utf8_string_hack(item)
-     item = to_utf8(item)
-     item = item.rstrip()
-     if attrib:
--        item = xml.sax.saxutils.escape(item, entities={'"':"&quot;"})
-+        item = __cached_saxutils.escape(item, entities={'"':"&quot;"})
-     else:
--        item = xml.sax.saxutils.escape(item)
-+        item = __cached_saxutils.escape(item)
-     return item
- 
- def unlink_f(filename):
-@@ -868,7 +901,16 @@ def unlink_f(filename):
-         if e.errno != errno.ENOENT:
-             raise
- 
--def getloginuid():
-+def stat_f(filename):
-+    """ Call os.stat(), but don't die if the file isn't there. Returns None. """
-+    try:
-+        return os.stat(filename)
-+    except OSError, e:
-+        if e.errno != errno.ENOENT:
-+            raise
-+        return None
-+
-+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
-@@ -883,6 +925,16 @@ def getloginuid():
-     except ValueError:
-         return None
- 
-+_cached_getloginuid = None
-+def getloginuid():
-+    """ Get the audit-uid/login-uid, if available. None is returned if there
-+        was a problem. The value is cached, so you don't have to save it. """
-+    global _cached_getloginuid
-+    if _cached_getloginuid is None:
-+        _cached_getloginuid = _getloginuid()
-+    return _cached_getloginuid
-+
-+
- # ---------- i18n ----------
- import locale
- import sys
-@@ -983,27 +1035,84 @@ def get_uuid(savepath):
-         
-         return myid
-         
--def decompress(filename):
-+def decompress(filename, dest=None, fn_only=False):
-     """take a filename and decompress it into the same relative location.
-        if the file is not compressed just return the file"""
--    out = filename
-+    
-+    out = dest
-+    if not dest:
-+        out = filename
-+        
-     if filename.endswith('.gz'):
--        out = filename.replace('.gz', '')
--        decom = gzip.open(filename)
--        fo = open(out, 'w')
--        fo.write(decom.read())
--        fo.flush()
--        fo.close()
--        decom.close() 
--    elif filename.endswith('.bz') or filename.endswith('.bz2'):
--        if filename.endswith('.bz'):
--            out = filename.replace('.bz','')
--        else:
--            out = filename.replace('.bz2', '')
--        bunzipFile(filename, out)
-+        ztype='gz'
-+        if not dest: 
-+            out = filename.replace('.gz', '')
- 
--    #add magical lzma/xz trick here
-+    elif filename.endswith('.bz') or filename.endswith('.bz2'):
-+        ztype='bz2'
-+        if not dest:
-+            if filename.endswith('.bz'):
-+                out = filename.replace('.bz','')
-+            else:
-+                out = filename.replace('.bz2', '')
-+    
-+    elif filename.endswith('.xz'):
-+        ztype='xz'
-+        if not dest:
-+            out = filename.replace('.xz', '')
-+        
-+    else:
-+        out = filename # returning the same file since it is not compressed
-+        ztype = None
-     
-+    if ztype and not fn_only:
-+        _decompress_chunked(filename, out, ztype)
-+        
-     return out
-     
-     
-+def read_in_items_from_dot_dir(thisglob, line_as_list=True):
-+    """takes a glob of a dir (like /etc/foo.d/*.foo)
-+       returns a list of all the lines in all the files matching
-+       that glob, ignores comments and blank lines,
-+       optional paramater 'line_as_list tells whether to
-+       treat each line as a space or comma-separated list, defaults to True"""
-+    results = []
-+    for fname in glob.glob(thisglob):
-+        for line in open(fname):
-+            if re.match('\s*(#|$)', line):
-+                continue
-+            line = line.rstrip() # no more trailing \n's
-+            line = line.lstrip() # be nice
-+            if not line:
-+                continue
-+            if line_as_list:
-+                line = line.replace('\n', ' ')
-+                line = line.replace(',', ' ')
-+                results.extend(line.split())
-+                continue
-+            results.append(line)
-+    return results
-+
-+__cached_cElementTree = None
-+def _cElementTree_import():
-+    """ Importing xElementTree all the time, when we often don't need it, is a
-+        huge timesink. This makes python -c 'import yum' suck. So we hide it
-+        behind this function. And have accessors. """
-+    global __cached_cElementTree
-+    if __cached_cElementTree is None:
-+        try:
-+            from xml.etree import cElementTree
-+        except ImportError:
-+            import cElementTree
-+        __cached_cElementTree = cElementTree
-+
-+def cElementTree_iterparse(filename):
-+    """ Lazily load/run: cElementTree.iterparse """
-+    _cElementTree_import()
-+    return __cached_cElementTree.iterparse(filename)
-+
-+def cElementTree_xmlparse(filename):
-+    """ Lazily load/run: cElementTree.parse """
-+    _cElementTree_import()
-+    return __cached_cElementTree.parse(filename)
-diff --git a/yum/packageSack.py b/yum/packageSack.py
-index 1278cba..d822394 100644
---- a/yum/packageSack.py
-+++ b/yum/packageSack.py
-@@ -152,6 +152,11 @@ class PackageSackBase(object):
-         """returns a dict of obsoletes dict[obsoleting pkgtuple] = [list of obs]"""
-         raise NotImplementedError()
- 
-+    def have_fastReturnFileEntries(self):
-+        """ Is calling pkg.returnFileEntries(primary_only=True) faster than
-+            using searchFiles(). """
-+        raise NotImplementedError()
-+
-     def searchFiles(self, name):
-         """return list of packages by filename"""
-         raise NotImplementedError()
-@@ -227,15 +232,15 @@ class PackageSackBase(object):
-         """return list of newest packages based on name, arch matching
-            this means(in name.arch form): foo.i386 and foo.noarch are not
-            compared to each other for highest version only foo.i386 and
--           foo.i386 will be compared"""
-+           foo.i386 will be compared
-+           Note that given: foo-1.i386; foo-2.i386 and foo-3.x86_64
-+           The last _two_ pkgs will be returned, not just one of them. """
-         raise NotImplementedError()
- 
-     def returnNewestByName(self, name=None, patterns=None, ignore_case=False):
-         """return list of newest packages based on name matching
-            this means(in name.arch form): foo.i386 and foo.noarch will
--           be compared to each other for highest version.
--           Note that given: foo-1.i386; foo-2.i386 and foo-3.x86_64
--           The last _two_ pkgs will be returned, not just one of them. """
-+           be compared to each other for highest version."""
-         raise NotImplementedError()
- 
-     def simplePkgList(self, patterns=None, ignore_case=False):
-@@ -343,7 +348,7 @@ class PackageSackBase(object):
-         for po in self.returnPackages(repoid=repoid):
-             preq = 0
-             for p in _return_all_provides(po):
--                if req.has_key(p):
-+                if p in req:
-                     #  If this pkg provides something that is required by
-                     # anything but itself (or another version of itself) it
-                     # isn't an orphan.
-@@ -497,7 +502,9 @@ class MetaSack(PackageSackBase):
-         """return list of newest packages based on name, arch matching
-            this means(in name.arch form): foo.i386 and foo.noarch are not
-            compared to each other for highest version only foo.i386 and
--           foo.i386 will be compared"""
-+           foo.i386 will be compared.
-+           Note that given: foo-1.i386; foo-2.i386 and foo-3.x86_64
-+           The last _two_ pkgs will be returned, not just one of them. """
-         calr = self._computeAggregateListResult
-         pkgs = calr("returnNewestByNameArch", naTup, patterns, ignore_case)
-         pkgs = packagesNewestByNameArch(pkgs)
-@@ -509,9 +516,7 @@ class MetaSack(PackageSackBase):
-     def returnNewestByName(self, name=None, patterns=None, ignore_case=False):
-         """return list of newest packages based on name matching
-            this means(in name.arch form): foo.i386 and foo.noarch will
--           be compared to each other for highest version.
--           Note that given: foo-1.i386; foo-2.i386 and foo-3.x86_64
--           The last _two_ pkgs will be returned, not just one of them. """
-+           be compared to each other for highest version."""
-         pkgs = self._computeAggregateListResult("returnNewestByName", name,
-                                                 patterns, ignore_case)
-         pkgs = packagesNewestByName(pkgs)
-@@ -638,7 +643,7 @@ class PackageSack(PackageSackBase):
- 
-     def dropCachedData(self):
-         """ Do nothing, mainly for the testing code. """
--        pass
-+        self.clearIndexes()
- 
-     def setCompatArchs(self, compatarchs):
-         self.compatarchs = compatarchs
-@@ -772,18 +777,21 @@ class PackageSack(PackageSackBase):
-             
-         return obs
-         
-+    def have_fastReturnFileEntries(self):
-+        """ Is calling pkg.returnFileEntries(primary_only=True) faster than
-+            using searchFiles(). """
-+        return True
-+
-     def searchFiles(self, name):
--        """return list of packages by filename
--           FIXME - need to add regex match against keys in file list
--        """
-+        """ Return list of packages by filename. """
-         self._checkIndexes(failure='build')
--        if self.filenames.has_key(name):
-+        if name in self.filenames:
-             return self.filenames[name]
-         else:
-             return []
- 
-     def _addToDictAsList(self, dict, key, data):
--        if not dict.has_key(key):
-+        if key not in dict:
-             dict[key] = []
-         #if data not in dict[key]: - if I enable this the whole world grinds to a halt
-         # need a faster way of looking for the object in any particular list
-@@ -903,7 +911,10 @@ class PackageSack(PackageSackBase):
-         """return list of newest packages based on name, arch matching
-            this means(in name.arch form): foo.i386 and foo.noarch are not 
-            compared to each other for highest version only foo.i386 and 
--           foo.i386 will be compared"""
-+           foo.i386 will be compared
-+           Note that given: foo-1.i386; foo-2.i386 and foo-3.x86_64
-+           The last _two_ pkgs will be returned, not just one of them. """
-+
-         highdict = {}
-         # If naTup is set, only iterate through packages that match that
-         # name
-@@ -917,7 +928,7 @@ class PackageSack(PackageSackBase):
-                                         ignore_case=ignore_case)
- 
-         for pkg in where:
--            if not highdict.has_key((pkg.name, pkg.arch)):
-+            if (pkg.name, pkg.arch) not in highdict:
-                 highdict[(pkg.name, pkg.arch)] = pkg
-             else:
-                 pkg2 = highdict[(pkg.name, pkg.arch)]
-@@ -935,16 +946,18 @@ class PackageSack(PackageSackBase):
-     def returnNewestByName(self, name=None, patterns=None, ignore_case=False):
-         """return list of newest packages based on name matching
-            this means(in name.arch form): foo.i386 and foo.noarch will
--           be compared to each other for highest version.
--           Note that given: foo-1.i386; foo-2.i386 and foo-3.x86_64
--           The last _two_ pkgs will be returned, not just one of them. """
-+           be compared to each other for highest version."""
- 
-         highdict = {}
--        for pkg in self.returnPackages(patterns=patterns,
--                                       ignore_case=ignore_case):
--            if not highdict.has_key(pkg.name):
--                highdict[pkg.name] = []
--                highdict[pkg.name].append(pkg)
-+        if patterns is None and name is not None:
-+            pkgs = self.searchNevra(name=name)
-+        else:
-+            pkgs = self.returnPackages(patterns=patterns,
-+                                       ignore_case=ignore_case)
-+
-+        for pkg in pkgs:
-+            if pkg.name not in highdict:
-+                highdict[pkg.name] = [pkg]
-             else:
-                 pkg2 = highdict[pkg.name][0]
-                 if pkg.verGT(pkg2):
-@@ -1002,8 +1015,7 @@ class PackageSack(PackageSackBase):
- 
- def packagesNewestByName(pkgs):
-     """ Does the same as PackageSack.returnNewestByName().
--        Note that given: foo-1.i386; foo-2.i386 and foo-3.x86_64
--        The last _two_ pkgs will be returned, not just one of them. """
-+        Note that given: foo-1.i386; foo-2.i386 and foo-3.x86_64"""
-     newest = {}
-     for pkg in pkgs:
-         key = pkg.name
-@@ -1021,7 +1033,8 @@ def packagesNewestByName(pkgs):
-         ret.extend(vals)
-     return ret
- def packagesNewestByNameArch(pkgs):
--    """ Does the same as PackageSack.returnNewestByNameArch() """
-+    """ Does the same as PackageSack.returnNewestByNameArch()
-+        The last _two_ pkgs will be returned, not just one of them."""
-     newest = {}
-     for pkg in pkgs:
-         key = (pkg.name, pkg.arch)
-diff --git a/yum/packages.py b/yum/packages.py
-index 33cbc39..b5a7d40 100644
---- a/yum/packages.py
-+++ b/yum/packages.py
-@@ -91,7 +91,7 @@ def buildPkgRefDict(pkgs, casematch=True):
-         envra = '%s:%s-%s-%s.%s' % (e, n, v, r, a)
-         nevra = '%s-%s:%s-%s.%s' % (n, e, v, r, a)
-         for item in [name, nameArch, nameVerRelArch, nameVer, nameVerRel, envra, nevra]:
--            if not pkgdict.has_key(item):
-+            if item not in pkgdict:
-                 pkgdict[item] = []
-             pkgdict[item].append(pkg)
-             
-@@ -159,6 +159,11 @@ class FakeSack:
-     def __init__(self):
-         pass # This is fake, so do nothing
-     
-+    def have_fastReturnFileEntries(self):
-+        """ Is calling pkg.returnFileEntries(primary_only=True) faster than
-+            using searchFiles(). """
-+        return True
-+
-     def delPackage(self, obj):
-         """delete a pkgobject, do nothing, but make localpackages work with --skip-broken"""
-         pass # This is fake, so do nothing
-@@ -193,6 +198,7 @@ class FakeRepository:
- 
-     def __init__(self, repoid):
-         self._set_cleanup_repoid(repoid)
-+        self.name = self.id
-         self.sack = FakeSack()
- 
-     def __cmp__(self, other):
-@@ -210,8 +216,10 @@ class FakeRepository:
-         return self.id
- 
- 
--# goal for the below is to have a packageobject that can be used by generic
-+#  Goal for the below is to have a packageobject that can be used by generic
- # functions independent of the type of package - ie: installed or available
-+#  Note that this is also used to history etc. ... so it's more a nevra+checksum
-+# holder than a base for things which are actual packages.
- class PackageObject(object):
-     """Base Package Object - sets up the default storage dicts and the
-        most common returns"""
-@@ -296,11 +304,16 @@ class PackageObject(object):
-     def verEQ(self, other):
-         """ Compare package to another one, only rpm-version equality. """
-         if not other:
--            return False
-+            return None
-         ret = cmp(self.name, other.name)
-         if ret != 0:
-             return False
-         return comparePoEVREQ(self, other)
-+    def verNE(self, other):
-+        """ Compare package to another one, only rpm-version inequality. """
-+        if not other:
-+            return None
-+        return not self.verEQ(other)
-     def verLT(self, other):
-         """ Uses verCMP, tests if the other _rpm-version_ is <  ours. """
-         return self.verCMP(other) <  0
-@@ -332,6 +345,10 @@ class PackageObject(object):
-             if csumid:
-                 return (csumtype, csum)
- 
-+#  This is the virtual base class of actual packages, it basically requires a
-+# repo. even though it doesn't set one up in it's __init__. It also doesn't have
-+# PackageObject methods ... so is basically unusable on it's own
-+# see: YumAvailablePackage.
- class RpmBase(object):
-     """return functions and storage for rpm-specific data"""
- 
-@@ -377,13 +394,13 @@ class RpmBase(object):
-     def returnPrco(self, prcotype, printable=False):
-         """return list of provides, requires, conflicts or obsoletes"""
-         
--        prcos = []
--        if self.prco.has_key(prcotype):
--            prcos = self.prco[prcotype]
-+        prcos = self.prco.get(prcotype, [])
- 
-         if printable:
-             results = []
-             for prco in prcos:
-+                if not prco[0]: # empty or none or whatever, doesn't matter
-+                    continue
-                 results.append(misc.prco_tuple_to_string(prco))
-             return results
- 
-@@ -458,7 +475,27 @@ class RpmBase(object):
- 
-         return result
- 
-+    def provides_for(self, reqtuple):
-+        """check to see if the package object provides for the requirement
-+           passed, including searching filelists if the requirement is a file
-+           dep"""
-+        
-+        if self.checkPrco('provides', reqtuple):
-+            return True
-+        
-+        if reqtuple[0].startswith('/'):
-+            if misc.re_primary_filename(reqtuple[0]):
-+                pri_only = True
-+            else:
-+                pri_only = False
- 
-+            files = self.returnFileEntries('file', pri_only) + \
-+                    self.returnFileEntries('dir', pri_only) + \
-+                    self.returnFileEntries('ghost', pri_only)
-+            if reqtuple[0] in files:
-+                return True
-+        
-+        return False
-         
-     def returnChangelog(self):
-         """return changelog entries"""
-@@ -478,9 +515,26 @@ class RpmBase(object):
-                 return self.files[ftype]
-         return []
-             
--    def returnFileTypes(self):
--        """return list of types of files in the package"""
--        # maybe should die - use direct access to attribute
-+    def returnFileTypes(self, primary_only=False):
-+        """return list of types of files in the package, you can pass
-+           primary_only=True to limit to those files in the primary repodata"""
-+        if primary_only:
-+            ret = [] # We only return the types for the primary files.
-+            for ftype in self.files.keys():
-+                if ftype == 'dir':
-+                    match = misc.re_primary_dirname
-+                else:
-+                    match = misc.re_primary_filename
-+                #  As soon as we find a primary file of this type, we can
-+                # return it.
-+                for fn in self.files[ftype]:
-+                    if match(fn):
-+                        break
-+                else:
-+                    continue
-+                ret.append(ftype)
-+            return ret
-+
-         return self.files.keys()
- 
-     def returnPrcoNames(self, prcotype):
-@@ -538,11 +592,32 @@ class RpmBase(object):
- 
-     base_package_name = property(fget=lambda self: self._getBaseName())
- 
-+    def have_fastReturnFileEntries(self):
-+        """ Is calling pkg.returnFileEntries(primary_only=True) faster than
-+            using searchFiles(). """
-+        return self.repo.sack.have_fastReturnFileEntries()
-+
-+    def obsoletedBy(self, obsoleters, limit=0):
-+        """ Returns list of obsoleters that obsolete this package. Note that we
-+            don't do obsoleting loops. If limit is != 0, then we stop after
-+            finding that many. """
-+        provtup = (self.name, 'EQ', (self.epoch, self.version, self.release))
-+        ret = []
-+        for obspo in obsoleters:
-+            if obspo.inPrcoRange('obsoletes', provtup):
-+                ret.append(obspo)
-+                if limit and len(ret) > limit:
-+                    break
-+        return ret
-+
- 
-+
-+# This is kind of deprecated
- class PackageEVR:
- 
-     """
--    A comparable epoch, version, and release representation.
-+    A comparable epoch, version, and release representation. Note that you
-+    almost certainly want to use pkg.verEQ() or pkg.verGT() etc. instead.
-     """
-     
-     def __init__(self,e,v,r):
-@@ -585,7 +660,8 @@ class PackageEVR:
-         return False
-     
- 
--
-+#  This is the real base class of actual packages, it has a repo. and is
-+# usable on it's own, in theory (but in practise see sqlitesack).
- class YumAvailablePackage(PackageObject, RpmBase):
-     """derived class for the  packageobject and RpmBase packageobject yum
-        uses this for dealing with packages in a repository"""
-@@ -838,12 +914,9 @@ class YumAvailablePackage(PackageObject, RpmBase):
-             self.installedsize = pkgdict.size['installed']
-         
-         if hasattr(pkgdict, 'location'):
--            if not pkgdict.location.has_key('base'):
--                url = None
--            elif pkgdict.location['base'] == '':
-+            url = pkgdict.location.get('base')
-+            if url == '':
-                 url = None
--            else:
--                url = pkgdict.location['base']
- 
-             self.basepath = url
-             self.relativepath = pkgdict.location['href']
-@@ -863,7 +936,7 @@ class YumAvailablePackage(PackageObject, RpmBase):
-         if hasattr(pkgdict, 'files'):
-             for fn in pkgdict.files:
-                 ftype = pkgdict.files[fn]
--                if not self.files.has_key(ftype):
-+                if ftype not in self.files:
-                     self.files[ftype] = []
-                 self.files[ftype].append(fn)
-         
-@@ -871,19 +944,17 @@ class YumAvailablePackage(PackageObject, RpmBase):
-             for rtype in pkgdict.prco:
-                 for rdict in pkgdict.prco[rtype]:
-                     name = rdict['name']
--                    f = e = v = r  = None
--                    if rdict.has_key('flags'): f = rdict['flags']
--                    if rdict.has_key('epoch'): e = rdict['epoch']
--                    if rdict.has_key('ver'): v = rdict['ver']
--                    if rdict.has_key('rel'): r = rdict['rel']
-+                    f = rdict.get('flags')
-+                    e = rdict.get('epoch')
-+                    v = rdict.get('ver')
-+                    r = rdict.get('rel')
-                     self.prco[rtype].append((name, f, (e,v,r)))
- 
-         if hasattr(pkgdict, 'changelog'):
-             for cdict in pkgdict.changelog:
--                date = text = author = None
--                if cdict.has_key('date'): date = cdict['date']
--                if cdict.has_key('value'): text = cdict['value']
--                if cdict.has_key('author'): author = cdict['author']
-+                date = cdict.get('date')
-+                text = cdict.get('value')
-+                author = cdict.get('author')
-                 self._changelog.append((date, author, text))
-         
-         if hasattr(pkgdict, 'checksum'):
-@@ -969,7 +1040,10 @@ class YumAvailablePackage(PackageObject, RpmBase):
-         msg += self._dump_pco('conflicts')         
-         msg += self._dump_pco('obsoletes')         
-         msg += self._dump_files(True)
--        msg += """\n  </format>"""
-+        if msg[-1] != '\n':
-+            msg += """\n"""
-+        msg += """  </format>"""
-+        
-         return msg
- 
-     def _dump_pco(self, pcotype):
-@@ -995,7 +1069,7 @@ class YumAvailablePackage(PackageObject, RpmBase):
-         return msg
-     
-     def _dump_files(self, primary=False):
--        msg =""
-+        msg ="\n"
-         if not primary:
-             files = self.returnFileEntries('file')
-             dirs = self.returnFileEntries('dir')
-@@ -1025,6 +1099,17 @@ class YumAvailablePackage(PackageObject, RpmBase):
-         msg = ""
- 
-         if mylist: msg = "\n    <rpm:requires>\n"
-+        if hasattr(self, '_collapse_libc_requires') and self._collapse_libc_requires:
-+            libc_requires = filter(lambda x: x[0].startswith('libc.so.6'), mylist)
-+            if libc_requires:
-+                best = sorted(libc_requires)[-1]
-+                newlist = []
-+                for i in mylist:
-+                    if i[0].startswith('libc.so.6') and i != best:
-+                        continue
-+                    newlist.append(i)
-+                mylist = newlist
-+        
-         for (name, flags, (e,v,r),pre) in mylist:
-             if name.startswith('rpmlib('):
-                 continue
-@@ -1101,7 +1186,8 @@ class YumAvailablePackage(PackageObject, RpmBase):
- 
- 
- 
--
-+#  This is a tweak on YumAvailablePackage() and is a base class for packages
-+# which are actual rpms.
- class YumHeaderPackage(YumAvailablePackage):
-     """Package object built from an rpm header"""
-     def __init__(self, repo, hdr):
-@@ -1162,7 +1248,7 @@ class YumHeaderPackage(YumAvailablePackage):
-         for tag in tag2prco:
-             name = hdr[getattr(rpm, 'RPMTAG_%sNAME' % tag)]
-             name = map(misc.share_data, name)
--            if name is None:
-+            if not name: # empty or none or whatever, doesn't matter
-                 continue
- 
-             lst = hdr[getattr(rpm, 'RPMTAG_%sFLAGS' % tag)]
-@@ -1198,6 +1284,10 @@ class YumHeaderPackage(YumAvailablePackage):
-             #  Note above, API break to fix this ... this at least is a nicer
-             # msg. so we know what we accessed that is bad.
-             raise KeyError, "%s has no attribute %s" % (self, thing)
-+        except ValueError:
-+            #  Note above, API break to fix this ... this at least is a nicer
-+            # msg. so we know what we accessed that is bad.
-+            raise ValueError, "%s has no attribute %s" % (self, thing)
- 
-     def doepoch(self):
-         tmpepoch = self.hdr['epoch']
-@@ -1221,7 +1311,7 @@ class YumHeaderPackage(YumAvailablePackage):
-             for (fn, mode, flag) in filetuple:
-                 #garbage checks
-                 if mode is None or mode == '':
--                    if not self.files.has_key('file'):
-+                    if 'file' not in self.files:
-                         self.files['file'] = []
-                     self.files['file'].append(fn)
-                     continue
-@@ -1330,7 +1420,7 @@ class _PkgVerifyProb:
-         return ret
- 
- # From: lib/rpmvf.h ... not in rpm *sigh*
--_RPMVERIFY_DIGEST     = (1 << 0)
-+_RPMVERIFY_DIGEST   = (1 << 0)
- _RPMVERIFY_FILESIZE = (1 << 1)
- _RPMVERIFY_LINKTO   = (1 << 2)
- _RPMVERIFY_USER     = (1 << 3)
-@@ -1338,9 +1428,232 @@ _RPMVERIFY_GROUP    = (1 << 4)
- _RPMVERIFY_MTIME    = (1 << 5)
- _RPMVERIFY_MODE     = (1 << 6)
- _RPMVERIFY_RDEV     = (1 << 7)
-+_RPMVERIFY_CAPS     = (1 << 8)
-+_RPMVERIFY_CONTEXTS = (1 << 15)
-+
-+class YUMVerifyPackageFile(object):
-+    def __init__(self, filename):
-+        self.filename = filename
-+
-+        self.readlink = None
-+        self.mtime    = None
-+        self.dev      = None
-+        self.user     = None
-+        self.group    = None
-+        self.mode     = None
-+        self.digest   = None
-+        self.size     = None
-+
-+        self.verify_ftype  = False
-+
-+        self.rpmfile_type  = set()
-+        self.rpmfile_state = None
-+
-+    def _setVerifiedAttr(self, attr, val, vattr=None):
-+        if vattr is None:
-+            vattr = "verify_" + attr
-+        attr = "_" + attr
-+        setattr(self, attr, val)
-+        setattr(self, vattr, val is not None)
-+
-+    readlink = property(fget=lambda x: x._readlink,
-+                        fdel=lambda x: setattr(x, 'readlink', None),
-+                        fset=lambda x,y: x._setVerifiedAttr("readlink", y))
-+    mtime    = property(fget=lambda x: x._mtime,
-+                        fdel=lambda x: setattr(x, 'mtime', None),
-+                        fset=lambda x,y: x._setVerifiedAttr("mtime", y))
-+    dev      = property(fget=lambda x: x._dev,
-+                        fdel=lambda x: setattr(x, 'dev', None),
-+                        fset=lambda x,y: x._setVerifiedAttr("dev", y))
-+    user     = property(fget=lambda x: x._user,
-+                        fdel=lambda x: setattr(x, 'user', None),
-+                        fset=lambda x,y: x._setVerifiedAttr("user", y))
-+    group    = property(fget=lambda x: x._group,
-+                        fdel=lambda x: setattr(x, 'group', None),
-+                        fset=lambda x,y: x._setVerifiedAttr("group", y))
-+    # Mode is special, because it's shared with ftype.
-+    digest   = property(fget=lambda x: x._digest,
-+                        fdel=lambda x: setattr(x, 'digest', None),
-+                        fset=lambda x,y: x._setVerifiedAttr("digest", y))
-+    size     = property(fget=lambda x: x._size,
-+                        fdel=lambda x: setattr(x, 'size', None),
-+                        fset=lambda x,y: x._setVerifiedAttr("size", y))
-+
-+    def _setVerifiedMode(self, attr, val):
-+        self.verify_mode  = val is not None
-+        self.verify_ftype = val is not None
-+        attr = "_" + attr
-+        setattr(self, attr, val)
-+
-+    mode = property(fget=lambda x: x._mode,
-+                    fdel=lambda x: setattr(x, 'mode', None),
-+                    fset=lambda x,y: x._setVerifiedMode("mode", y))
-+
-+    @staticmethod
-+    def _ftype(mode):
-+        """ Given a "mode" return the name of the type of file. """
-+        if stat.S_ISREG(mode):  return "file"
-+        if stat.S_ISDIR(mode):  return "directory"
-+        if stat.S_ISLNK(mode):  return "symlink"
-+        if stat.S_ISFIFO(mode): return "fifo"
-+        if stat.S_ISCHR(mode):  return "character device"
-+        if stat.S_ISBLK(mode):  return "block device"
-+        return "<unknown>"
-+
-+    ftype = property(fget=lambda x: x._ftype(x.mode))
-+
-+
-+class _RPMVerifyPackageFile(YUMVerifyPackageFile):
-+    def __init__(self, fi, filetuple, csum_type, override_vflags=False):
-+        YUMVerifyPackageFile.__init__(self, filetuple[0])
-+
-+        flags          = filetuple[4]
-+        if override_vflags:
-+            vflags = -1
-+        else:
-+            vflags = filetuple[9]
-+
-+        if vflags & _RPMVERIFY_FILESIZE:
-+            self.size      = filetuple[1]
-+
-+        if vflags & _RPMVERIFY_RDEV|_RPMVERIFY_MODE:
-+            mode           = filetuple[2]
-+            if mode < 0:
-+                # Stupid rpm, should be unsigned value but is signed ...
-+                # so we "fix" it via. this hack
-+                mode = (mode & 0xFFFF)
-+
-+            self.mode = mode
-+            if not (vflags & _RPMVERIFY_MODE):
-+                self.verify_mode  = False
-+            if not (vflags & _RPMVERIFY_RDEV):
-+                self.verify_ftype = False
-+
-+        if vflags & _RPMVERIFY_MTIME:
-+            self.mtime     = filetuple[3]
-+        if vflags & _RPMVERIFY_RDEV:
-+            self.dev       = filetuple[5]
-+
-+        self.rpmfile_types = rpmfile_types = set()
-+        if flags & rpm.RPMFILE_CONFIG:
-+            rpmfile_types.add('configuration')
-+        if flags & rpm.RPMFILE_DOC:
-+            rpmfile_types.add('documentation')
-+        if flags & rpm.RPMFILE_GHOST:
-+            rpmfile_types.add('ghost')
-+        if flags & rpm.RPMFILE_LICENSE:
-+            rpmfile_types.add('license')
-+        if flags & rpm.RPMFILE_PUBKEY:
-+            rpmfile_types.add('public key')
-+        if flags & rpm.RPMFILE_README:
-+            rpmfile_types.add('README')
-+        if flags & rpm.RPMFILE_MISSINGOK:
-+            rpmfile_types.add('missing ok')
-+
-+        # 6 == inode
-+        # 7 == link
-+        state = filetuple[8]
-+        statemap = {rpm.RPMFILE_STATE_NORMAL : 'normal',
-+                    rpm.RPMFILE_STATE_REPLACED : 'replaced',
-+                    rpm.RPMFILE_STATE_NOTINSTALLED : 'not installed',
-+                    rpm.RPMFILE_STATE_WRONGCOLOR : 'wrong color',
-+                    rpm.RPMFILE_STATE_NETSHARED : 'netshared'}
-+
-+        if state in statemap:
-+            self.rpmfile_state = statemap[state]
-+        else:
-+            self.rpmfile_state = "<unknown>"
-+
-+        if vflags & _RPMVERIFY_USER:
-+            self.user      = filetuple[10]
-+        if vflags & _RPMVERIFY_GROUP:
-+            self.group     = filetuple[11]
-+        if vflags & _RPMVERIFY_DIGEST:
-+            self.digest    = (csum_type, filetuple[12])
-+
-+        if self.ftype == 'symlnk' and vflags & _RPMVERIFY_LINKTO:
-+            self.readlink = fi.FLink() # fi.foo is magic, don't think about it
-+        elif vflags & _RPMVERIFY_LINKTO:
-+            self.readlink = ''
-+
-+
-+class YUMVerifyPackage:
-+    """ A holder for YUMVerifyPackageFile objects. """
-+    def __init__(self, po):
-+        self.po = po
-+        self._files = {}
-+
-+    def __contains__(self, fname):
-+        """ Note that this checks if a filename is part of the package, and
-+            not a full YUMVerifyPackageFile(). """
-+        return fname in self._files
-+
-+    def __iter__(self):
-+        for fn in self._files:
-+            yield self._files[fn]
-+
-+    def add(self, vpf):
-+        self._files[vpf.filename] = vpf
-+
-+    def remove(self, vpf):
-+        del self._files[vpf.filename]
-+
-+    def discard(self, vpf):
-+        if vpf.filename not in self:
-+            return
-+        self.remove(vpf)
-+
-+    def clear(self):
-+        self._files = {}
-+
-+
-+class _RPMVerifyPackage(YUMVerifyPackage):
-+    def __init__(self, po, fi, def_csum_type, patterns, all):
-+        YUMVerifyPackage.__init__(self, po)
-+
-+        self._presetup = (fi, def_csum_type, patterns, all)
-+    def _setup(self):
-+        if not hasattr(self, '_presetup'):
-+            return
-+
-+        (fi, def_csum_type, patterns, all) = self._presetup
-+        del self._presetup
-+
-+        for ft in fi:
-+            fn = ft[0]
-+            if patterns:
-+                matched = False
-+                for p in patterns:
-+                    if fnmatch.fnmatch(fn, p):
-+                        matched = True
-+                        break
-+                if not matched: 
-+                    continue
-+
-+            self.add(_RPMVerifyPackageFile(fi, ft, def_csum_type, all))
-+
-+    def __contains__(self, *args, **kwargs):
-+        self._setup()
-+        return YUMVerifyPackage.__contains__(self, *args, **kwargs)
-+    def __iter__(self, *args, **kwargs):
-+        self._setup()
-+        return YUMVerifyPackage.__iter__(self, *args, **kwargs)
-+    def add(self, *args, **kwargs):
-+        self._setup()
-+        return YUMVerifyPackage.add(self, *args, **kwargs)
-+    def remove(self, *args, **kwargs):
-+        self._setup()
-+        return YUMVerifyPackage.remove(self, *args, **kwargs)
-+    # discard uses contains...
-+    def clear(self, *args, **kwargs):
-+        if hasattr(self, '_presetup'):
-+            del self._presetup
-+        return YUMVerifyPackage.clear(self, *args, **kwargs)
-+
- 
- _installed_repo = FakeRepository('installed')
- _installed_repo.cost = 0
-+# This is a tweak on YumHeaderPackage() for installed rpm packages.
- class YumInstalledPackage(YumHeaderPackage):
-     """super class for dealing with packages in the rpmdb"""
-     def __init__(self, hdr, yumdb=None):
-@@ -1349,25 +1662,10 @@ class YumInstalledPackage(YumHeaderPackage):
-             self.yumdb_info = yumdb.get_package(self)
- 
-     def verify(self, patterns=[], deps=False, script=False,
--               fake_problems=True, all=False, fast=False):
-+               fake_problems=True, all=False, fast=False, callback=None):
-         """verify that the installed files match the packaged checksum
-            optionally verify they match only if they are in the 'pattern' list
-            returns a tuple """
--        def _ftype(mode):
--            """ Given a "mode" return the name of the type of file. """
--            if stat.S_ISREG(mode):  return "file"
--            if stat.S_ISDIR(mode):  return "directory"
--            if stat.S_ISLNK(mode):  return "symlink"
--            if stat.S_ISFIFO(mode): return "fifo"
--            if stat.S_ISCHR(mode):  return "character device"
--            if stat.S_ISBLK(mode):  return "block device"
--            return "<unknown>"
--
--        statemap = {rpm.RPMFILE_STATE_REPLACED : 'replaced',
--                    rpm.RPMFILE_STATE_NOTINSTALLED : 'not installed',
--                    rpm.RPMFILE_STATE_WRONGCOLOR : 'wrong color',
--                    rpm.RPMFILE_STATE_NETSHARED : 'netshared'}
--
-         fi = self.hdr.fiFromHeader()
-         results = {} # fn = problem_obj?
- 
-@@ -1384,70 +1682,39 @@ class YumInstalledPackage(YumHeaderPackage):
-                     csum_type = RPM_CHECKSUM_TYPES[csum_num]
-                 # maybe an else with an error code here? or even a verify issue?
- 
--        for filetuple in fi:
--            #tuple is: (filename, fsize, mode, mtime, flags, frdev?, inode, link,
--            #           state, vflags?, user, group, checksum(or none for dirs) 
--            (fn, size, mode, mtime, flags, dev, inode, link, state, vflags, 
--                       user, group, csum) = filetuple
--            if patterns:
--                matched = False
--                for p in patterns:
--                    if fnmatch.fnmatch(fn, p):
--                        matched = True
--                        break
--                if not matched: 
--                    continue
-+        pfs = _RPMVerifyPackage(self, fi, csum_type, patterns, all)
- 
--            ftypes = []
--            if flags & rpm.RPMFILE_CONFIG:
--                ftypes.append('configuration')
--            if flags & rpm.RPMFILE_DOC:
--                ftypes.append('documentation')
--            if flags & rpm.RPMFILE_GHOST:
--                ftypes.append('ghost')
--            if flags & rpm.RPMFILE_LICENSE:
--                ftypes.append('license')
--            if flags & rpm.RPMFILE_PUBKEY:
--                ftypes.append('public key')
--            if flags & rpm.RPMFILE_README:
--                ftypes.append('README')
--            if flags & rpm.RPMFILE_MISSINGOK:
--                ftypes.append('missing ok')
--            # not in python rpm bindings yet
--            # elif flags & rpm.RPMFILE_POLICY:
--            #    ftypes.append('policy')
--                
--            if all:
--                vflags = -1
-+        if callback is not None:
-+            pfs = callback(pfs)
- 
--            if state != rpm.RPMFILE_STATE_NORMAL:
--                if state in statemap:
--                    ftypes.append("state=" + statemap[state])
--                else:
--                    ftypes.append("state=<unknown>")
-+        for pf in pfs:
-+            fn = pf.filename
-+            ftypes = list(pf.rpmfile_types)
-+            if pf.rpmfile_state != "normal":
-+                ftypes.append("state=" + pf.rpmfile_state)
-                 if fake_problems:
-                     results[fn] = [_PkgVerifyProb('state',
-                                                   'state is not normal',
-                                                   ftypes, fake=True)]
-                 continue
- 
--            if flags & rpm.RPMFILE_MISSINGOK and fake_problems:
-+            if 'missing ok' in pf.rpmfile_types and fake_problems:
-                 results[fn] = [_PkgVerifyProb('missingok', 'missing but ok',
-                                               ftypes, fake=True)]
--            if flags & rpm.RPMFILE_MISSINGOK and not all:
-+            if 'missing ok' in pf.rpmfile_types and not all:
-                 continue # rpm just skips missing ok, so we do too
- 
--            if flags & rpm.RPMFILE_GHOST and fake_problems:
-+            if 'ghost' in pf.rpmfile_types and fake_problems:
-                 results[fn] = [_PkgVerifyProb('ghost', 'ghost file', ftypes,
-                                               fake=True)]
--            if flags & rpm.RPMFILE_GHOST and not all:
-+            if 'ghost' in pf.rpmfile_types and not all:
-                 continue
- 
-             # do check of file status on system
-             problems = []
--            if os.path.lexists(fn):
-+            if os.path.lexists(pf.filename):
-                 # stat
--                my_st = os.lstat(fn)
-+                my_st = os.lstat(pf.filename)
-                 my_st_size = my_st.st_size
-                 try:
-                     my_user  = pwd.getpwuid(my_st[stat.ST_UID])[0]
-@@ -1458,115 +1725,128 @@ class YumInstalledPackage(YumHeaderPackage):
-                 except KeyError, e:
-                     my_group = 'gid %s not found' % my_st[stat.ST_GID]
- 
--                if mode < 0:
--                    # Stupid rpm, should be unsigned value but is signed ...
--                    # so we "fix" it via. this hack
--                    mode = (mode & 0xFFFF)
--
--                ftype    = _ftype(mode)
--                my_ftype = _ftype(my_st.st_mode)
--
--                if vflags & _RPMVERIFY_RDEV and ftype != my_ftype:
--                    prob = _PkgVerifyProb('type', 'file type does not match',
--                                          ftypes)
--                    prob.database_value = ftype
--                    prob.disk_value = my_ftype
--                    problems.append(prob)
-+                my_ftype = YUMVerifyPackageFile._ftype(my_st.st_mode)
-+
-+                verify_dev = False
-+                if (pf.verify_dev and (pf.ftype.endswith("device") or
-+                                       my_ftype.endswith("device"))):
-+                    verify_dev = True
-+                if verify_dev:
-+                    if pf.ftype != my_ftype:
-+                        prob = _PkgVerifyProb('type','file type does not match',
-+                                              ftypes)
-+                        prob.database_value = pf.ftype
-+                        prob.disk_value = my_ftype
-+                        problems.append(prob)
-+                    elif (pf.dev & 0xFFFF) != (my_st.st_dev & 0xFFFF):
-+                        prob =_PkgVerifyProb('type','dev does not match',ftypes)
-+                        prob.database_value = hex(pf.dev & 0xffff)
-+                        prob.disk_value = hex(my_st.st_dev & 0xffff)
-+                        problems.append(prob)
- 
--                if (ftype == "symlink" and my_ftype == "symlink" and
--                    vflags & _RPMVERIFY_LINKTO):
--                    fnl    = fi.FLink() # fi.foo is magic, don't think about it
--                    my_fnl = os.readlink(fn)
--                    if my_fnl != fnl:
-+                if pf.verify_readlink:
-+                    my_fnl = ''
-+                    if my_ftype == "symlink":
-+                        my_fnl = os.readlink(pf.filename)
-+                    if my_fnl != pf.readlink:
-                         prob = _PkgVerifyProb('symlink',
-                                               'symlink does not match', ftypes)
--                        prob.database_value = fnl
-+                        prob.database_value = pf.readlink
-                         prob.disk_value     = my_fnl
-                         problems.append(prob)
- 
-                 check_content = True
-                 if 'ghost' in ftypes:
-                     check_content = False
--                if my_ftype == "symlink" and ftype == "file":
-+                if my_ftype == "symlink" and pf.ftype == "file":
-                     # Don't let things hide behind symlinks
--                    my_st_size = os.stat(fn).st_size
-+                    my_st_size = os.stat(pf.filename).st_size
-                 elif my_ftype != "file":
-                     check_content = False
-                 check_perms = True
-                 if my_ftype == "symlink":
-+                    #  No, rpm doesn't check user/group on the dst. of the
-+                    # symlink ... so we don't.
-                     check_perms = False
- 
--                if (check_content and vflags & _RPMVERIFY_MTIME and
--                    my_st.st_mtime != mtime):
-+                if (check_content and pf.verify_mtime and
-+                    int(my_st.st_mtime) != int(pf.mtime)):
-                     prob = _PkgVerifyProb('mtime', 'mtime does not match',
-                                           ftypes)
--                    prob.database_value = mtime
--                    prob.disk_value     = my_st.st_mtime
-+                    prob.database_value = pf.mtime
-+                    prob.disk_value     = int(my_st.st_mtime)
-                     problems.append(prob)
- 
--                if check_perms and vflags & _RPMVERIFY_USER and my_user != user:
-+                if check_perms and pf.verify_user and my_user != pf.user:
-                     prob = _PkgVerifyProb('user', 'user does not match', ftypes)
--                    prob.database_value = user
-+                    prob.database_value = pf.user
-                     prob.disk_value = my_user
-                     problems.append(prob)
--                if (check_perms and vflags & _RPMVERIFY_GROUP and
--                    my_group != group):
-+                if check_perms and pf.verify_group and my_group != pf.group:
-                     prob = _PkgVerifyProb('group', 'group does not match',
-                                           ftypes)
--                    prob.database_value = group
-+                    prob.database_value = pf.group
-                     prob.disk_value     = my_group
-                     problems.append(prob)
- 
-                 my_mode = my_st.st_mode
--                if 'ghost' in ftypes: # This is what rpm does
--                    my_mode &= 0777
-+                if 'ghost' in ftypes: #  This is what rpm does, although it
-+                    my_mode &= 0777   # doesn't usually get here.
-                     mode    &= 0777
--                if check_perms and vflags & _RPMVERIFY_MODE and my_mode != mode:
-+                if check_perms and pf.verify_mode and my_mode != pf.mode:
-                     prob = _PkgVerifyProb('mode', 'mode does not match', ftypes)
--                    prob.database_value = mode
-+                    prob.database_value = pf.mode
-                     prob.disk_value     = my_st.st_mode
-                     problems.append(prob)
- 
--                if fast and not problems and (my_st_size == size):
--                    vflags &= ~_RPMVERIFY_DIGEST
-+                verify_digest = pf.verify_digest
-+                if fast and not problems and (my_st_size == pf.size):
-+                    verify_digest = False
-+                if not pf.digest:
-+                    verify_digest = False
- 
-                 # Note that because we might get the _size_ from prelink,
-                 # we need to do the checksum, even if we just throw it away,
-                 # just so we get the size correct.
-                 if (check_content and
--                    ((have_prelink and (vflags & _RPMVERIFY_FILESIZE) and
--                      (my_st_size != size)) or
--                     (csum and vflags & _RPMVERIFY_DIGEST))):
-+                    (verify_digest or (pf.verify_size and have_prelink and 
-+                                       my_st_size != pf.size))):
-+                    if pf.digest:
-+                        digest_type = pf.digest[0]
-+                        csum = pf.digest[0] + ':' + pf.digest[1]
-+                    else:
-+                        digest_type = csum_type
-+                        csum = ''
-                     try:
--                        my_csum = misc.checksum(csum_type, fn)
--                        gen_csum = True
-+                        my_csum = misc.checksum(digest_type, pf.filename)
-+                        my_csum = digest_type + ':' + my_csum
-                     except Errors.MiscError:
-                         # Don't have permission?
--                        gen_csum = False
-+                        my_csum = None
- 
--                    if csum and vflags & _RPMVERIFY_DIGEST and not gen_csum:
-+                    if pf.verify_digest and my_csum is None:
-                         prob = _PkgVerifyProb('genchecksum',
-                                               'checksum not available', ftypes)
-                         prob.database_value = csum
-                         prob.disk_value     = None
-                         problems.append(prob)
-                         
--                    if gen_csum and my_csum != csum and have_prelink:
-+                    if my_csum != csum and have_prelink:
-                         #  This is how rpm -V works, try and if that fails try
-                         # again with prelink.
--                        p = Popen([prelink_cmd, "-y", fn], 
-+                        p = Popen([prelink_cmd, "-y", pf.filename], 
-                             bufsize=-1, stdin=PIPE,
-                             stdout=PIPE, stderr=PIPE, close_fds=True)
-                         (ig, fp, er) = (p.stdin, p.stdout, p.stderr)
-                         # er.read(1024 * 1024) # Try and get most of the stderr
-                         fp = _CountedReadFile(fp)
--                        tcsum = misc.checksum(csum_type, fp)
-+                        tcsum = misc.checksum(digest_type, fp)
-                         if fp.read_size: # If prelink worked
-                             my_csum = tcsum
-+                            my_csum = digest_type + ':' + my_csum
-                             my_st_size = fp.read_size
- 
--                    if (csum and vflags & _RPMVERIFY_DIGEST and gen_csum and
--                        my_csum != csum):
-+                    if pf.verify_digest and my_csum != csum:
-                         prob = _PkgVerifyProb('checksum',
-                                               'checksum does not match', ftypes)
-                         prob.database_value = csum
-@@ -1574,16 +1854,15 @@ class YumInstalledPackage(YumHeaderPackage):
-                         problems.append(prob)
- 
-                 # Size might be got from prelink ... *sigh*.
--                if (check_content and vflags & _RPMVERIFY_FILESIZE and
--                    my_st_size != size):
-+                if check_content and pf.verify_size and my_st_size != pf.size:
-                     prob = _PkgVerifyProb('size', 'size does not match', ftypes)
--                    prob.database_value = size
-+                    prob.database_value = pf.size
-                     prob.disk_value     = my_st_size
-                     problems.append(prob)
- 
-             else:
-                 try:
--                    os.stat(fn)
-+                    os.stat(pf.filename)
-                     perms_ok = True # Shouldn't happen
-                 except OSError, e:
-                     perms_ok = True
-@@ -1599,11 +1878,12 @@ class YumInstalledPackage(YumHeaderPackage):
-                 problems.append(prob)
- 
-             if problems:
--                results[fn] = problems
-+                results[pf.filename] = problems
-                 
-         return results
-         
-                              
-+# This is a tweak on YumHeaderPackage() for rpm packages which are on disk.
- class YumLocalPackage(YumHeaderPackage):
-     """Class to handle an arbitrary package from a file path
-        this inherits most things from YumInstalledPackage because
-@@ -1613,8 +1893,10 @@ class YumLocalPackage(YumHeaderPackage):
- 
-     def __init__(self, ts=None, filename=None):
-         if ts is None:
--            raise Errors.MiscError, \
--                 'No Transaction Set Instance for YumLocalPackage instance creation'
-+            #  This shouldn't be used "normally" within yum, but is very useful
-+            # for small scripts and debugging/etc.
-+            ts = rpmUtils.transaction.initReadOnlyTransaction()
-+
-         if filename is None:
-             raise Errors.MiscError, \
-                  'No Filename specified for YumLocalPackage instance creation'
-@@ -1747,6 +2029,8 @@ class YumLocalPackage(YumHeaderPackage):
-         return msg
- 
- 
-+#  This is a tweak on YumLocalPackage() to download rpm packages to disk, and
-+# then use them directly.
- class YumUrlPackage(YumLocalPackage):
-     """Class to handle an arbitrary package from a URL
-        this inherits most things from YumLocalPackage, but will download a
-diff --git a/yum/pgpmsg.py b/yum/pgpmsg.py
-index f8dccdb..9cf8217 100644
---- a/yum/pgpmsg.py
-+++ b/yum/pgpmsg.py
-@@ -18,6 +18,11 @@ import struct, time, cStringIO, base64, types
- #  We use this so that we can work on python-2.4 and python-2.6, and thus.
- # use import md5/import sha on the older one and import hashlib on the newer.
- #  Stupid deprecation warnings.
-+
-+# pylint: disable-msg=W0108 
-+# Ignore :W0108: *Lambda may not be necessary*
-+
-+
- try:
-     import hashlib
- except ImportError:
-@@ -302,7 +307,7 @@ REVOKE_KEY_CLASS_SENS = 0x40 # sensitive
- PGP_FEATURE_1_MOD_DETECT = 0x01 # Modification detection
- 
- pgp_feature_to_str = {
--    PGP_FEATURE_1_MOD_DETECT : 'Modification Detectiobn'
-+    PGP_FEATURE_1_MOD_DETECT : 'Modification Detection'
- }
- 
- def get_whole_number(msg, idx, numlen) :
-@@ -399,7 +404,7 @@ def map_to_str(m, vals) :
-     if type(vals) != types.ListType and type(vals) != types.TupleType :
-         vals = list((vals,))
-     for i in vals :
--        if m.has_key(i) :
-+        if i in m :
-             slist.append(m[i])
-         else :
-             slist.append('unknown(' + str(i) + ')')
-@@ -781,11 +786,9 @@ class signature(pgp_packet) :
-         if sp[0] == SIG_SUB_TYPE_SGNR_USER_ID : # signer's user id
-             return 'signer id: ' + sp[1]
-         if sp[0] == SIG_SUB_TYPE_REVOKE_REASON : # reason for revocation
--            reas = ''
--            if revoke_reason_to_str.has_key(sp[1]) :
--                reas = revoke_reason_to_str[sp[1]]
-+            reas = revoke_reason_to_str.get(sp[1], '')
-             return 'reason for revocation: %s, %s' % (reas, sp[2])
--        if sp[0] == SIG_SUB_TYPE_FEATURES : # featues
-+        if sp[0] == SIG_SUB_TYPE_FEATURES : # features
-             features = []
-             if len(sp) > 1 :
-                 val = sp[1]
-@@ -1073,7 +1076,7 @@ be scanned to make sure they are valid for a pgp certificate."""
-                     if pkt_idx >= len(pkts) :
-                         raise ValueError('subkey at index %d was not followed by a signature' % (pkt_idx-1))
-                     if pkts[pkt_idx].pkt_typ != CTB_PKT_SIG or pkts[pkt_idx].sig_type != SIG_TYPE_SUBKEY_BIND :
--                            raise ValueError('signature %d doesn\'t bind subkey to key, type is %s' % (pkt_idx, map_to_str(sig_type_to_str, pkts[pkt_idx].sig_typ)))
-+                        raise ValueError('signature %d doesn\'t bind subkey to key, type is %s' % (pkt_idx, map_to_str(sig_type_to_str, pkts[pkt_idx].sig_typ)))
-                     subkey.append(pkts[pkt_idx])
- 
-                     pkt_idx = pkt_idx + 1
-@@ -1214,7 +1217,7 @@ a PGP "certificate" includes a public key, user id(s), and signature.
-             continue
-         
-         # are we at the checksum line?
--        if l[0] == '=' :
-+        if l and l[0] == '=' :
-             # get the checksum number
-             csum = base64.decodestring(l[1:5])
-             i = 0
-diff --git a/yum/pkgtag_db.py b/yum/pkgtag_db.py
-index d2836e4..016dd41 100644
---- a/yum/pkgtag_db.py
-+++ b/yum/pkgtag_db.py
-@@ -17,7 +17,7 @@
- 
- # parse sqlite tag database
- # return pkgnames and tag that was matched
--from sqlutils import sqlite, executeSQL, sql_esc, sql_esc_glob
-+from sqlutils import sqlite, executeSQL, sql_esc
- from Errors import PkgTagsError
- import sqlutils
- import sys
-@@ -82,7 +82,7 @@ class PackageTagDB(object):
-         """Search by package name/glob.
-            Return dict of dict[packagename] = [tag1, tag2, tag3, tag4, ...]"""
-         res = {}
--        (name, esc) = sql_esc(tag)
-+        (name, esc) = sql_esc(name)
-         query = "SELECT name, tag, score FROM packagetags where name like ?%s " % esc
-         name = '%' + name + '%' 
-         rows = self._sql_exec(query, (name,))
-diff --git a/yum/plugins.py b/yum/plugins.py
-index 9968614..9cd2040 100644
---- a/yum/plugins.py
-+++ b/yum/plugins.py
-@@ -89,13 +89,19 @@ SLOT_TO_CONDUIT = {
-     'clean': 'PluginConduit',
-     'pretrans': 'MainPluginConduit',
-     'posttrans': 'MainPluginConduit',
-+    'preverifytrans': 'MainPluginConduit',
-+    'postverifytrans': 'MainPluginConduit',
-     'exclude': 'MainPluginConduit',
-     'preresolve': 'DepsolvePluginConduit',
-     'postresolve': 'DepsolvePluginConduit',
-+    'historybegin': 'HistoryPluginConduit',
-+    'historyend': 'HistoryPluginConduit',
-+    'compare_providers': 'CompareProvidersPluginConduit',
-+    'verify_package': 'VerifyPluginConduit',
-     }
- 
- # Enumerate all slot names
--SLOTS = SLOT_TO_CONDUIT.keys()
-+SLOTS = sorted(SLOT_TO_CONDUIT.keys())
- 
- class PluginYumExit(Exception):
-     '''Used by plugins to signal that yum should stop
-@@ -606,6 +612,21 @@ class DepsolvePluginConduit(MainPluginConduit):
-         self.resultcode = rescode
-         self.resultstring = restring
- 
-+class CompareProvidersPluginConduit(MainPluginConduit):
-+    def __init__(self, parent, base, conf, providers_dict={}, reqpo=None):
-+        MainPluginConduit.__init__(self, parent, base, conf)
-+        self.packages = providers_dict
-+        self.reqpo = reqpo
-+
-+class HistoryPluginConduit(MainPluginConduit):
-+    def __init__(self, parent, base, conf, rescode=None, restring=[]):
-+        MainPluginConduit.__init__(self, parent, base, conf)
-+        self.history = self._base.history
-+
-+class VerifyPluginConduit(MainPluginConduit):
-+    def __init__(self, parent, base, conf, verify_package):
-+        MainPluginConduit.__init__(self, parent, base, conf)
-+        self.verify_package = verify_package
- 
- def parsever(apiver):
-     maj, min = apiver.split('.')
-diff --git a/yum/repoMDObject.py b/yum/repoMDObject.py
-index 0021d94..afc7947 100755
---- a/yum/repoMDObject.py
-+++ b/yum/repoMDObject.py
-@@ -14,16 +14,12 @@
- # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- # Copyright 2006 Duke University
- 
--try:
--    from xml.etree import cElementTree
--except ImportError:
--    import cElementTree
--iterparse = cElementTree.iterparse
-+from yum.misc import cElementTree_iterparse as iterparse 
- from Errors import RepoMDError
- 
- import sys
- import types
--from misc import AutoFileChecksums
-+from misc import AutoFileChecksums, to_xml
- 
- def ns_cleanup(qn):
-     if qn.find('}') == -1: return qn 
-@@ -31,8 +27,10 @@ def ns_cleanup(qn):
- 
- class RepoData:
-     """represents anything beneath a <data> tag"""
--    def __init__(self, elem):
--        self.type = elem.attrib.get('type')
-+    def __init__(self, elem=None):
-+        self.type = None
-+        if elem:
-+            self.type = elem.attrib.get('type')
-         self.location = (None, None)
-         self.checksum = (None,None) # type,value
-         self.openchecksum = (None,None) # type,value
-@@ -40,8 +38,9 @@ class RepoData:
-         self.dbversion = None
-         self.size      = None
-         self.opensize  = None
--    
--        self.parse(elem)
-+
-+        if elem:
-+            self.parse(elem)
- 
-     def parse(self, elem):
-         
-@@ -70,11 +69,47 @@ class RepoData:
-                 self.size = child.text
-             elif child_name == 'open-size':
-                 self.opensize = child.text
-+
-+    def dump_xml(self):
-+        msg = ""
-+        top = """<data type="%s">\n""" % to_xml(self.type, attrib=True)
-+        msg += top
-+        
-+        for (data, xmlname) in [('checksum', 'checksum'),('openchecksum', 'open-checksum')]:
-+            if hasattr(self, data):
-+                val = getattr(self, data)
-+                if val[0]:
-+                    d_xml = """  <%s type="%s">%s</%s>\n""" % (xmlname,
-+                                       to_xml(val[0], attrib=True), 
-+                                       to_xml(val[1]), xmlname)
-+                    msg += d_xml
-+
-+        if hasattr(self, 'location'):
-+            val = getattr(self, 'location')
-+            if val[1]:
-+                loc = """  <location href="%s"/>\n""" % to_xml(val[1], attrib=True)
-+                if val[0]:
-+                    loc = """  <location xml:base="%s" href="%s"/>\n""" % (
-+                       to_xml(val[0], attrib=True), to_xml(val[1], attrib=True))
-+                msg += loc
-+            
-+        for (data,xmlname) in [('timestamp', 'timestamp'),
-+                               ('dbversion', 'database_version'),
-+                               ('size','size'), ('opensize', 'open-size')]:
-+            val = getattr(self, data)
-+            if val:
-+                d_xml = """  <%s>%s</%s>\n""" % (xmlname, to_xml(val), 
-+                                                 xmlname)
-+                msg += d_xml
-+
-+        bottom = """</data>\n"""
-+        msg += bottom
-+        return msg
-         
- class RepoMD:
-     """represents the repomd xml file"""
-     
--    def __init__(self, repoid, srcfile):
-+    def __init__(self, repoid, srcfile=None):
-         """takes a repoid and a filename for the repomd.xml"""
-         
-         self.timestamp = 0
-@@ -83,8 +118,12 @@ class RepoMD:
-         self.checksums = {}
-         self.length    = 0
-         self.revision  = None
--        self.tags      = {'content' : set(), 'distro' : {}}
--        
-+        self.tags      = {'content' : set(), 'distro' : {}, 'repo': set()}
-+    
-+        if srcfile:
-+            self.parse(srcfile)
-+    
-+    def parse(self, srcfile):
-         if type(srcfile) in types.StringTypes:
-             # srcfile is a filename string
-             try:
-@@ -168,6 +207,41 @@ class RepoMD:
-             print '    open checksum: %s - %s' %  thisdata.openchecksum
-             print '    dbversion    : %s' % thisdata.dbversion
-             print ''
-+    def dump_xml(self):
-+        msg = ""
-+        
-+        top = """<?xml version="1.0" encoding="UTF-8"?>
-+<repomd xmlns="http://linux.duke.edu/metadata/repo" xmlns:rpm="http://linux.duke.edu/metadata/rpm">\n"""
-+        msg += top
-+        if self.revision:
-+            rev = """ <revision>%s</revision>\n""" % to_xml(self.revision)
-+            msg += rev
-+        
-+        if self.tags['content'] or self.tags['distro'] or self.tags['repo']:
-+            tags = """ <tags>\n"""
-+            for item in self.tags['content']:
-+                tag = """   <content>%s</content>\n""" % (to_xml(item))
-+                tags += tag
-+            for item in self.tags['repo']:
-+                tag = """   <repo>%s</repo>\n""" % (to_xml(item))
-+                tags += tag
-+            for (cpeid, item) in self.tags['distro'].items():
-+                itemlist = list(item) # frellingsets.
-+                if cpeid:
-+                    tag = """   <distro cpeid="%s">%s</distro>\n""" % (
-+                                to_xml(cpeid, attrib=True), to_xml(itemlist[0]))
-+                else:
-+                    tag = """   <distro>%s</distro>\n""" % (to_xml(itemlist[0]))
-+                tags += tag
-+            tags += """ </tags>\n"""
-+            msg += tags
-+        
-+        for md in self.repoData.values():
-+            msg += md.dump_xml()
-+        
-+        msg += """</repomd>\n"""
-+
-+        return msg
- 
- def main():
- 
-diff --git a/yum/repos.py b/yum/repos.py
-index cd477ba..4b74ac6 100644
---- a/yum/repos.py
-+++ b/yum/repos.py
-@@ -78,7 +78,11 @@ class RepoStorage:
-         for repo in repos:
-             repo.setup(self.ayum.conf.cache, self.ayum.mediagrabber,
-                    gpg_import_func = self.gpg_import_func, confirm_func=self.confirm_func)
--
-+            # if we come back from setup NOT enabled then mark as disabled
-+            # so nothing else touches us
-+            if not repo.enabled:
-+                self.disableRepo(repo.id)
-+                
-         self._setup = True
-         self.ayum.plugins.run('postreposetup')
-         
-@@ -103,7 +107,7 @@ class RepoStorage:
-             self._cache_enabled_repos = None
- 
-     def delete(self, repoid):
--        if self.repos.has_key(repoid):
-+        if repoid in self.repos:
-             thisrepo = self.repos[repoid]
-             thisrepo.close()
-             del self.repos[repoid]
-diff --git a/yum/rpmsack.py b/yum/rpmsack.py
-index 8289cd2..ae73c32 100644
---- a/yum/rpmsack.py
-+++ b/yum/rpmsack.py
-@@ -114,6 +114,23 @@ class RPMDBProblemDuplicate(RPMDBProblem):
-         return _("%s is a duplicate with %s") % (self.pkg, self.duplicate)
- 
- 
-+class RPMDBProblemObsoleted(RPMDBProblem):
-+    def __init__(self, pkg, **kwargs):
-+        RPMDBProblem.__init__(self, pkg, "obsoleted", **kwargs)
-+
-+    def __str__(self):
-+        return _("%s is obsoleted by %s") % (self.pkg, self.obsoleter)
-+
-+
-+class RPMDBProblemProvides(RPMDBProblem):
-+    def __init__(self, pkg, **kwargs):
-+        RPMDBProblem.__init__(self, pkg, "provides", **kwargs)
-+
-+    def __str__(self):
-+        return _("%s provides %s but it cannot be found") % (self.pkg,
-+                                                             self.provide)
-+
-+
- class RPMDBPackageSack(PackageSackBase):
-     '''
-     Represent rpmdb as a packagesack
-@@ -142,16 +159,23 @@ class RPMDBPackageSack(PackageSackBase):
-         self.root = root
-         self._idx2pkg = {}
-         self._name2pkg = {}
-+        self._pkgnames_loaded = set()
-         self._tup2pkg = {}
-         self._completely_loaded = False
-+        self._pkgname_fails = set()
-+        self._pkgmatch_fails = set()
-+        self._provmatch_fails = set()
-         self._simple_pkgtup_list = []
-         self._get_pro_cache = {}
-         self._get_req_cache  = {}
-         self._loaded_gpg_keys = False
-         if cachedir is None:
--            cachedir = misc.getCacheDir()
-+            cachedir = persistdir + "/rpmdb-indexes"
-         self.setCacheDir(cachedir)
--        self._persistdir = root +  '/' + persistdir
-+        if not os.path.normpath(persistdir).startswith(self.root):
-+            self._persistdir = root +  '/' + persistdir
-+        else:
-+            self._persistdir = persistdir
-         self._have_cached_rpmdbv_data = None
-         self._cached_conflicts_data = None
-         # Store the result of what happens, if a transaction completes.
-@@ -161,6 +185,7 @@ class RPMDBPackageSack(PackageSackBase):
-         self.auto_close = False # this forces a self.ts.close() after
-                                      # most operations so it doesn't leave
-                                      # any lingering locks.
-+        self._cached_rpmdb_mtime = None
- 
-         self._cache = {
-             'provides' : { },
-@@ -187,8 +212,12 @@ class RPMDBPackageSack(PackageSackBase):
-     def dropCachedData(self):
-         self._idx2pkg = {}
-         self._name2pkg = {}
-+        self._pkgnames_loaded = set()
-         self._tup2pkg = {}
-         self._completely_loaded = False
-+        self._pkgmatch_fails = set()
-+        self._pkgname_fails = set()
-+        self._provmatch_fails = set()
-         self._simple_pkgtup_list = []
-         self._get_pro_cache = {}
-         self._get_req_cache = {}
-@@ -204,11 +233,16 @@ class RPMDBPackageSack(PackageSackBase):
-             }
-         self._have_cached_rpmdbv_data = None
-         self._cached_conflicts_data = None
-+        self.transactionReset() # Should do nothing, but meh...
-+        self._cached_rpmdb_mtime = None
- 
-     def setCacheDir(self, cachedir):
-         """ Sets the internal cachedir value for the rpmdb, to be the
--            "installed" directory from this parent. """
--        self._cachedir = self.root + '/' + cachedir + "/installed/"
-+            "rpmdb-indexes" directory in the persisent yum storage. """
-+        if not os.path.normpath(cachedir).startswith(self.root):
-+            self._cachedir = self.root + '/' + cachedir
-+        else:
-+            self._cachedir = '/' + cachedir
- 
-     def readOnlyTS(self):
-         if not self.ts:
-@@ -241,14 +275,12 @@ class RPMDBPackageSack(PackageSackBase):
-             if hdr['name'] == 'gpg-pubkey':
-                 continue
-             pkg = self._makePackageObject(hdr, mi.instance())
--            if not result.has_key(pkg.pkgid):
--                result[pkg.pkgid] = pkg
-+            result.setdefault(pkg.pkgid, pkg)
-         del mi
- 
-         fileresults = self.searchFiles(name)
-         for pkg in fileresults:
--            if not result.has_key(pkg.pkgid):
--                result[pkg.pkgid] = pkg
-+            result.setdefault(pkg.pkgid, pkg)
-         
-         if self.auto_close:
-             self.ts.close()
-@@ -266,8 +298,7 @@ class RPMDBPackageSack(PackageSackBase):
-             if hdr['name'] == 'gpg-pubkey':
-                 continue
-             pkg = self._makePackageObject(hdr, mi.instance())
--            if not result.has_key(pkg.pkgid):
--                result[pkg.pkgid] = pkg
-+            result.setdefault(pkg.pkgid, pkg)
-         del mi
- 
-         result = result.values()
-@@ -299,8 +330,8 @@ class RPMDBPackageSack(PackageSackBase):
-             if not glob:
-                 if po.checkPrco(prcotype, (n, f, (e,v,r))):
-                     result[po.pkgid] = po
--                else:
--                    result[po.pkgid] = po
-+            else:
-+                result[po.pkgid] = po
-         del mi
- 
- 
-@@ -319,7 +350,12 @@ class RPMDBPackageSack(PackageSackBase):
-         return result
- 
-     def searchProvides(self, name):
--        return self.searchPrco(name, 'provides')
-+        if name in self._provmatch_fails:
-+            return []
-+        ret = self.searchPrco(name, 'provides')
-+        if not ret:
-+            self._provmatch_fails.add(name)
-+        return ret
+diff --git a/docs/yum.conf.5 b/docs/yum.conf.5
+index 49d98c6..25b2c7d 100644
+--- a/docs/yum.conf.5
++++ b/docs/yum.conf.5
+@@ -134,9 +134,13 @@ an i686 package to update an i386 package. Default is `1'.
  
-     def searchRequires(self, name):
-         return self.searchPrco(name, 'requires')
-@@ -369,8 +405,9 @@ class RPMDBPackageSack(PackageSackBase):
-         for pat in patterns:
-             if not pat:
-                 continue
-+
-             qpat = pat[0]
--            if qpat in ('?', '*'):
-+            if qpat in ('?', '*', '['):
-                 qpat = None
-             if ignore_case:
-                 if qpat is not None:
-@@ -381,6 +418,7 @@ class RPMDBPackageSack(PackageSackBase):
-         return ret
-     @staticmethod
-     def _match_repattern(repatterns, hdr, ignore_case):
-+        """ This is basically parsePackages() but for rpm hdr objects. """
-         if repatterns is None:
-             return True
+ .IP
+ \fBinstallonlypkgs \fR
+-List of packages that should only ever be installed, never updated. Kernels
+-in particular fall into this category. Defaults to kernel, kernel-smp,
+-kernel-bigmem, kernel-enterprise, kernel-debug, kernel-unsupported.
++List of package provides that should only ever be installed, never updated.
++Kernels in particular fall into this category. Defaults to kernel,
++kernel-bigmem, kernel-enterprise, kernel-smp, kernel-modules, kernel-debug, 
++kernel-unsupported, kernel-source, kernel-devel, kernel-PAE, kernel-PAE-debug.
++
++Note that because these are provides, and not just package names, kernel-devel
++will also apply to kernel-debug-devel, etc.
  
-@@ -417,6 +455,37 @@ class RPMDBPackageSack(PackageSackBase):
-         """Returns a list of packages. Note that the packages are
-            always filtered to those matching the patterns/case. repoid is
-            ignored, and is just here for compatibility with non-rpmdb sacks. """
-+
-+        #  See if we can load the "patterns" via. dbMatch('name', ...) because
-+        # that's basically instant and walking the entire rpmdb isn't.
-+        #  We assume that if we get "Yum" and _something_ matches, that we have
-+        # _all_ the matches. IOW there can be either Yum or yum, but not BOTH.
-+        if not self._completely_loaded and patterns:
-+            ret = []
-+            for pat in patterns:
-+                #  We aren't wasting anything here, because the next bit
-+                # will pick up any loads :)
-+                pkgs = self.searchNames([pat])
-+                if not pkgs:
-+                    break
-+                ret.extend(pkgs)
-+            else:
-+                return ret
-+
-+        ret = []
-+        if patterns and not ignore_case:
-+            tpats = []
-+            for pat in patterns:
-+                if pat in self._pkgmatch_fails:
-+                    continue
-+                if pat in self._pkgnames_loaded:
-+                    ret.extend(self._name2pkg[pat])
-+                    continue
-+                tpats.append(pat)
-+            patterns = tpats
-+            if not patterns:
-+                return ret
-+
-         if not self._completely_loaded:
-             rpats = self._compile_patterns(patterns, ignore_case)
-             for hdr, idx in self._all_packages():
-@@ -430,7 +499,15 @@ class RPMDBPackageSack(PackageSackBase):
-             pkgobjlist = [pkg for pkg in pkgobjlist if pkg.name != 'gpg-pubkey']
-         if patterns:
-             pkgobjlist = parsePackages(pkgobjlist, patterns, not ignore_case)
--            pkgobjlist = pkgobjlist[0] + pkgobjlist[1]
-+            self._pkgmatch_fails.update(pkgobjlist[2])
-+            if ret:
-+                pkgobjlist = pkgobjlist[0] + pkgobjlist[1] + ret
+ .IP
+ \fBinstallonly_limit \fR
+diff --git a/yum/__init__.py b/yum/__init__.py
+index 2ea9f20..0304fea 100644
+--- a/yum/__init__.py
++++ b/yum/__init__.py
+@@ -294,6 +294,11 @@ class YumBase(depsolve.Depsolve):
+             startupconf.syslog_facility = syslog_facility
+         if syslog_device != None:
+             startupconf.syslog_device = syslog_device
++        if releasever == '/':
++            if startupconf.installroot == '/':
++                releasever = None
 +            else:
-+                pkgobjlist = pkgobjlist[0] + pkgobjlist[1]
-+            for pkg in pkgobjlist:
-+                for pat in patterns:
-+                    if pkg.name == pat:
-+                        self._pkgnames_loaded.add(pkg.name)
-         return pkgobjlist
- 
-     def _uncached_returnConflictPackages(self):
-@@ -460,6 +537,27 @@ class RPMDBPackageSack(PackageSackBase):
-         rpmdbv = self.simpleVersion(main_only=True)[0]
-         self._write_conflicts_new(pkgs, rpmdbv)
- 
-+    def _deal_with_bad_rpmdbcache(self, caller):
-+        """ This shouldn't be called, but people are hitting weird stuff so
-+            we want to deal with it so it doesn't stay broken "forever". """
-+        misc.unlink_f(self._cachedir + "/version")
-+        misc.unlink_f(self._cachedir + '/conflicts')
-+        misc.unlink_f(self._cachedir + '/file-requires')
-+        misc.unlink_f(self._cachedir + '/yumdb-package-checksums')
-+        #  We have a couple of options here, we can:
-+        #
-+        # . Ignore it and continue - least invasive, least likely to get any
-+        #   bugs fixed.
-+        #
-+        # . Ignore it and continue, when not in debug mode - Helps users doing
-+        #   weird things (and we won't know), but normal bugs will be seen by
-+        #   anyone not running directly from a package.
-+        #
-+        # . Always throw - but at least it shouldn't happen again.
-+        #
-+        if __debug__:
-+            raise Errors.PackageSackError, 'Rpmdb checksum is invalid: %s' % caller
-+
-     def _read_conflicts(self):
-         if not self.__cache_rpmdb__:
-             return None
-@@ -492,6 +590,7 @@ class RPMDBPackageSack(PackageSackBase):
-             if fo.readline() != '': # Should be EOF
-                 return None
-         except ValueError:
-+            self._deal_with_bad_rpmdbcache("conflicts")
-             return None
- 
-         self._cached_conflicts_data = ret
-@@ -605,6 +704,7 @@ class RPMDBPackageSack(PackageSackBase):
-             if fo.readline() != '': # Should be EOF
-                 return None, None
-         except ValueError:
-+            self._deal_with_bad_rpmdbcache("file requires")
-             return None, None
- 
-         return iFR, iFP
-@@ -742,11 +842,16 @@ class RPMDBPackageSack(PackageSackBase):
-             if fo.readline() != '': # Should be EOF
-                 return
-         except ValueError:
-+            self._deal_with_bad_rpmdbcache("pkg checksums")
-             return
- 
-         for pkgtup in checksum_data:
-             (n, a, e, v, r) = pkgtup
--            pkg = self.searchNevra(n, e, v, r, a)[0]
-+            pkg = self.searchNevra(n, e, v, r, a)
-+            if not pkg:
-+                self._deal_with_bad_rpmdbcache("pkg checksums")
-+                continue
-+            pkg = pkg[0]
-             (T, D) = checksum_data[pkgtup]
-             if ('checksum_type' in pkg.yumdb_info._read_cached_data or
-                 'checksum_data' in pkg.yumdb_info._read_cached_data):
-@@ -806,6 +911,19 @@ class RPMDBPackageSack(PackageSackBase):
-         if not self.__cache_rpmdb__:
-             return
- 
-+        if self._cached_rpmdb_mtime is None:
-+            return # We haven't loaded any packages!!!
-+
-+        rpmdbfname  = self.root + "/var/lib/rpm/Packages"
-+        if not os.path.exists(rpmdbfname):
-+            return # haha
-+
-+        _cached_rpmdb_mtime = os.path.getmtime(rpmdbfname)
-+        if self._cached_rpmdb_mtime != _cached_rpmdb_mtime:
-+            #  Something altered the rpmdb since we loaded our first package,
-+            # so don't save the rpmdb version as who knows what happened.
-+            return
-+
-         rpmdbvfname = self._cachedir + "/version"
-         if not os.access(self._cachedir, os.W_OK):
-             if os.path.exists(self._cachedir):
-@@ -953,6 +1071,9 @@ class RPMDBPackageSack(PackageSackBase):
- 
-     def _search(self, name=None, epoch=None, ver=None, rel=None, arch=None):
-         '''List of matching packages, to zero or more of NEVRA.'''
-+        if name is not None and name in self._pkgname_fails:
-+            return []
-+
-         pkgtup = (name, arch, epoch, ver, rel)
-         if pkgtup in self._tup2pkg:
-             return [self._tup2pkg[pkgtup]]
-@@ -960,9 +1081,11 @@ class RPMDBPackageSack(PackageSackBase):
-         loc = locals()
-         ret = []
- 
--        if self._completely_loaded:
-+        if self._completely_loaded or name in self._pkgnames_loaded:
-             if name is not None:
-                 pkgs = self._name2pkg.get(name, [])
-+                if not pkgs:
-+                    self._pkgname_fails.add(name)
-             else:
-                 pkgs = self.returnPkgs()
-             for po in pkgs:
-@@ -982,10 +1105,16 @@ class RPMDBPackageSack(PackageSackBase):
-             mi = ts.dbMatch()
-             self._completely_loaded = True
- 
-+        done = False
-         for hdr in mi:
-             if hdr['name'] == 'gpg-pubkey':
-                 continue
-             po = self._makePackageObject(hdr, mi.instance())
-+            #  We create POs out of all matching names, even if we don't return
-+            # them.
-+            self._pkgnames_loaded.add(po.name)
-+            done = True
-+
-             for tag in ('arch', 'rel', 'ver', 'epoch'):
-                 if loc[tag] is not None and loc[tag] != getattr(po, tag):
-                     break
-@@ -995,6 +1124,9 @@ class RPMDBPackageSack(PackageSackBase):
-         if self.auto_close:
-             self.ts.close()
- 
-+        if not done and name is not None:
-+            self._pkgname_fails.add(name)
-+
-         return ret
- 
-     def _makePackageObject(self, hdr, index):
-@@ -1004,6 +1136,10 @@ class RPMDBPackageSack(PackageSackBase):
-         self._idx2pkg[index] = po
-         self._name2pkg.setdefault(po.name, []).append(po)
-         self._tup2pkg[po.pkgtup] = po
-+        if self.__cache_rpmdb__ and self._cached_rpmdb_mtime is None:
-+            rpmdbfname  = self.root + "/var/lib/rpm/Packages"
-+            self._cached_rpmdb_mtime = os.path.getmtime(rpmdbfname)
-+
-         return po
-         
-     def _hdr2pkgTuple(self, hdr):
-@@ -1249,6 +1385,30 @@ class RPMDBPackageSack(PackageSackBase):
-             problems.append(RPMDBProblemDuplicate(pkg, duplicate=last))
-         return problems
- 
-+    def check_obsoleted(self):
-+        """ Checks for any packages which are obsoleted by other packages. """
-+        obsoleters = []
-+        problems = []
-+        for pkg in sorted(self.returnPackages()):
-+            if not pkg.obsoletes:
-+                continue
-+            obsoleters.append(pkg)
-+        for pkg in sorted(self.returnPackages()):
-+            for obspo in pkg.obsoletedBy(obsoleters):
-+                problems.append(RPMDBProblemObsoleted(pkg, obsoleter=obspo))
-+        return problems
-+
-+    def check_provides(self):
-+        """ For each package, check that a provides search for it's name (and
-+            everything it provides) finds it. """
-+        problems = []
-+        for pkg in sorted(self.returnPackages()):
-+            for provtup in pkg.provides:
-+                name, flags, version = provtup
-+                if pkg not in self.getProvides(name, flags, version):
-+                    problems.append(RPMDBProblemProvides(pkg, provide=provtup))
-+                    break
-+        return problems
- 
- def _sanitize(path):
-     return path.replace('/', '').replace('~', '')
-@@ -1280,7 +1440,8 @@ class RPMDBAdditionalData(object):
-                 self.conf.writable = True
-         #  Don't call _load_all_package_paths to preload, as it's expensive
-         # if the dirs. aren't in cache.
--                
-+        self.yumdb_cache = {'attr' : {}}
-+
-     def _load_all_package_paths(self):
-         # glob the path and get a dict of pkgs to their subdir
-         glb = '%s/*/*/' % self.conf.db_path
-@@ -1308,7 +1469,8 @@ class RPMDBAdditionalData(object):
-         else:
-             raise ValueError,"Pass something to RPMDBAdditionalData.get_package"
-         
--        return RPMDBAdditionalDataPackage(self.conf, thisdir)
-+        return RPMDBAdditionalDataPackage(self.conf, thisdir,
-+                                          yumdb_cache=self.yumdb_cache)
- 
-     def sync_with_rpmdb(self, rpmdbobj):
-         """populate out the dirs and remove all the items no longer in the rpmd
-@@ -1322,12 +1484,96 @@ class RPMDBAdditionalData(object):
-         pass
- 
- class RPMDBAdditionalDataPackage(object):
--    def __init__(self, conf, pkgdir):
-+
-+    # We do auto hardlink on these attributes
-+    _auto_hardlink_attrs = set(['checksum_type', 'reason',
-+                                'installed_by', 'changed_by',
-+                                'from_repo', 'from_repo_revision',
-+                                'from_repo_timestamp', 'releasever',
-+                                'command_line'])
-+
-+    def __init__(self, conf, pkgdir, yumdb_cache=None):
-         self._conf = conf
-         self._mydir = pkgdir
--        # FIXME needs some intelligent caching beyond the FS cache
-+
-         self._read_cached_data = {}
++                releasever = yum.config._getsysver("/",startupconf.distroverpkg)
+         if releasever != None:
+             startupconf.releasever = releasever
  
-+        #  'from_repo' is the most often requested piece of data, and is often
-+        # the same for a huge number of packages. So we use hardlinks to share
-+        # data, and try to optimize for that.
-+        #  It's useful for other keys too (installed_by/changed_by/reason/etc.)
-+        # so we make it generic.
-+        self._yumdb_cache = yumdb_cache
-+
-+    def _auto_cache(self, attr, value, fn, info=None):
-+        """ Create caches for the attr. We have a per. object read cache so at
-+            worst we only have to read a single attr once. Then we expand that
-+            with (dev, ino) cache, so hardlink data can be read once for
-+            multiple packages. """
-+        self._read_cached_data[attr] = value
-+        if self._yumdb_cache is None:
-+            return
-+
-+        nlinks = 1
-+        if info is not None:
-+            nlinks = info.st_nlink
-+        if nlinks <= 1 and attr not in self._auto_hardlink_attrs:
-+            return
-+
-+        if value in self._yumdb_cache['attr']:
-+            sinfo = self._yumdb_cache['attr'][value][1]
-+            if info is not None and sinfo is not None:
-+                if (info.st_dev, info.st_ino) == (sinfo.st_dev, sinfo.st_ino):
-+                    self._yumdb_cache['attr'][value][2].add(fn)
-+                    self._yumdb_cache[fn] = value
-+                    return
-+            if self._yumdb_cache['attr'][value][0] >= nlinks:
-+                # We already have a better cache file.
-+                return
-+
-+        self._yumdb_cache['attr'][value] = (nlinks, info, set([fn]))
-+        self._yumdb_cache[fn]            = value
-+
-+    def _unlink_yumdb_cache(self, fn):
-+        """ Remove old values from the link cache. """
-+        if fn in self._yumdb_cache:
-+            ovalue = self._yumdb_cache[fn]
-+            if ovalue in self._yumdb_cache['attr']:
-+                self._yumdb_cache['attr'][ovalue][2].discard(fn)
-+                if not self._yumdb_cache['attr'][ovalue][2]:
-+                    del self._yumdb_cache['attr'][ovalue]
-+            del self._yumdb_cache[fn]
-+
-+    def _link_yumdb_cache(self, fn, value):
-+        """ If we have a matching yumdb cache, link() to it instead of having
-+            to open()+write(). """
-+        if self._yumdb_cache is None:
-+            return False
-+
-+        self._unlink_yumdb_cache(fn)
-+
-+        if value not in self._yumdb_cache['attr']:
-+            return False
-+
-+        assert self._yumdb_cache['attr'][value][2]
+@@ -442,7 +447,11 @@ class YumBase(depsolve.Depsolve):
+         @return: YumRepository instance.
+         '''
+         repo = yumRepo.YumRepository(section)
+-        repo.populate(parser, section, self.conf)
 +        try:
-+            lfn = iter(self._yumdb_cache['attr'][value][2]).next()
-+            misc.unlink_f(fn + '.tmp')
-+            os.link(lfn, fn + '.tmp')
-+            os.rename(fn + '.tmp', fn)
-+        except:
-+            return False
-+
-+        self._yumdb_cache['attr'][value][2].add(fn)
-+        self._yumdb_cache[fn] = value
-+        self._read_cached_data['attr'] = value
-+
-+        return True
-+
-+    def _attr2fn(self, attr):
-+        """ Given an attribute, return the filename. """
-+        return os.path.normpath(self._mydir + '/' + attr)
-+
-     def _write(self, attr, value):
-         # check for self._conf.writable before going on?
-         if not os.path.exists(self._mydir):
-@@ -1336,8 +1582,17 @@ class RPMDBAdditionalDataPackage(object):
-         attr = _sanitize(attr)
-         if attr in self._read_cached_data:
-             del self._read_cached_data[attr]
--        fn = self._mydir + '/' + attr
--        fn = os.path.normpath(fn)
-+        fn = self._attr2fn(attr)
-+
-+        if attr.endswith('.tmp'):
-+            raise AttributeError, "Cannot set attribute %s on %s" % (attr, self)
-+
-+        # Auto hardlink some of the attrs...
-+        if self._link_yumdb_cache(fn, value):
-+            return
-+
-+        # Default write()+rename()... hardlink -c can still help.
-+        misc.unlink_f(fn + '.tmp')
-         fo = open(fn + '.tmp', 'w')
-         try:
-             fo.write(value)
-@@ -1348,39 +1603,53 @@ class RPMDBAdditionalDataPackage(object):
-         fo.close()
-         del fo
-         os.rename(fn +  '.tmp', fn) # even works on ext4 now!:o
--        self._read_cached_data[attr] = value
-+
-+        self._auto_cache(attr, value, fn)
-     
-     def _read(self, attr):
-         attr = _sanitize(attr)
- 
--        if attr.endswith('.tmp'):
--            raise AttributeError, "%s has no attribute %s" % (self, attr)
++            repo.populate(parser, section, self.conf)
++        except ValueError, e:
++            msg = _('Repository %r: Error parsing config: %s' % (section,e))
++            raise Errors.ConfigError, msg
+ 
+         # Ensure that the repo name is set
+         if not repo.name:
+@@ -1403,7 +1412,8 @@ class YumBase(depsolve.Depsolve):
+         #    that there is not also an install of this pkg in the tsInfo (reinstall)
+         # for any kind of install add from_repo to the yumdb, and the cmdline
+         # and the install reason
 -
-         if attr in self._read_cached_data:
-             return self._read_cached_data[attr]
-+        fn = self._attr2fn(attr)
- 
--        fn = self._mydir + '/' + attr
--        if not os.path.exists(fn):
-+        if attr.endswith('.tmp'):
-             raise AttributeError, "%s has no attribute %s" % (self, attr)
- 
-+        info = misc.stat_f(fn)
-+        if info is None:
-+            raise AttributeError, "%s has no attribute %s" % (self, attr)
-+
-+        if info.st_nlink > 1 and self._yumdb_cache is not None:
-+            key = (info.st_dev, info.st_ino)
-+            if key in self._yumdb_cache:
-+                self._auto_cache(attr, self._yumdb_cache[key], fn, info)
-+                return self._read_cached_data[attr]
-+
-         fo = open(fn, 'r')
--        self._read_cached_data[attr] = fo.read()
-+        value = fo.read()
-         fo.close()
-         del fo
--        return self._read_cached_data[attr]
-+
-+        if info.st_nlink > 1 and self._yumdb_cache is not None:
-+            self._yumdb_cache[key] = value
-+        self._auto_cache(attr, value, fn, info)
-+
-+        return value
-     
-     def _delete(self, attr):
-         """remove the attribute file"""
- 
-         attr = _sanitize(attr)
--        fn = self._mydir + '/' + attr
-+        fn = self._attr2fn(attr)
-         if attr in self._read_cached_data:
-             del self._read_cached_data[attr]
-+        self._unlink_yumdb_cache(fn)
-         if os.path.exists(fn):
-             try:
-                 os.unlink(fn)
-             except (IOError, OSError):
--                raise AttributeError, "Cannot delete attribute %s on " % (attr, self)
-+                raise AttributeError, "Cannot delete attribute %s on %s " % (attr, self)
-     
-     def __getattr__(self, attr):
-         return self._read(attr)
-@@ -1397,6 +1666,12 @@ class RPMDBAdditionalDataPackage(object):
-         else:
-             object.__delattr__(self, attr)
- 
-+    def __contains__(self, attr):
-+        #  This is faster than __iter__ and it makes things fail in a much more
-+        # obvious way in weird FS corruption cases like: BZ 593436
-+        x = self.get(attr)
-+        return x is not None
-+
-     def __iter__(self, show_hidden=False):
-         for item in self._read_cached_data:
-             yield item
-diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
-index 1d6c764..820f003 100644
---- a/yum/sqlitesack.py
-+++ b/yum/sqlitesack.py
-@@ -259,9 +259,7 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
-         if varname.startswith('__') and varname.endswith('__'):
-             raise AttributeError, varname
-         
--        dbname = varname
--        if db2simplemap.has_key(varname):
--            dbname = db2simplemap[varname]
-+        dbname = db2simplemap.get(varname, varname)
-         try:
-             r = self._sql_MD('primary',
-                          "SELECT %s FROM packages WHERE pkgId = ?" % dbname,
-@@ -353,6 +351,8 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
-         return self._changelog
-     
-     def returnFileEntries(self, ftype='file', primary_only=False):
-+        """return list of files based on type, you can pass primary_only=True
-+           to limit to those files in the primary repodata"""
-         if primary_only and not self._loadedfiles:
-             sql = "SELECT name as fname FROM files WHERE pkgKey = ? and type = ?"
-             cur = self._sql_MD('primary', sql, (self.pkgKey, ftype))
-@@ -361,7 +361,14 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
-         self._loadFiles()
-         return RpmBase.returnFileEntries(self,ftype,primary_only)
-     
--    def returnFileTypes(self):
-+    def returnFileTypes(self, primary_only=False):
-+        """return list of types of files in the package, you can pass
-+           primary_only=True to limit to those files in the primary repodata"""
-+        if primary_only and not self._loadedfiles:
-+            sql = "SELECT DISTINCT type as ftype FROM files WHERE pkgKey = ?"
-+            cur = self._sql_MD('primary', sql, (self.pkgKey,))
-+            return map(lambda x: x['ftype'], cur)
-+
-         self._loadFiles()
-         return RpmBase.returnFileTypes(self)
++        
++        vt_st = time.time()
+         self.rpmdb.dropCachedData()
+         self.plugins.run('preverifytrans')
+         for txmbr in self.tsInfo:
+@@ -1489,6 +1499,7 @@ class YumBase(depsolve.Depsolve):
+             self.plugins.run('historyend')
+             self.history.end(self.rpmdb.simpleVersion(main_only=True)[0], ret)
+         self.rpmdb.dropCachedData()
++        self.verbose_logger.debug('VerifyTransaction time: %0.3f' % (time.time() - vt_st))
  
-@@ -381,6 +388,8 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
-             cur = self._sql_MD('primary', sql, (self.pkgKey,))
-             self.prco[prcotype] = [ ]
-             for ob in cur:
-+                if not ob['name']:
-+                    continue
-                 prco_set = (_share_data(ob['name']), _share_data(ob['flags']),
-                             (_share_data(ob['epoch']),
-                              _share_data(ob['version']),
-@@ -428,6 +437,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-         self._pkgname2pkgkeys = {}
-         self._pkgtup2pkgs = {}
-         self._pkgnames_loaded = set()
-+        self._pkgmatch_fails = set()
-+        self._provmatch_fails = set()
-         self._arch_allowed = None
-         self._pkgExcluder = []
-         self._pkgExcludeIds = {}
-@@ -491,6 +502,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-         self._key2pkg = {}
-         self._pkgname2pkgkeys = {}
-         self._pkgnames_loaded = set()
-+        self._pkgmatch_fails = set()
-+        self._provmatch_fails = set()
-         self._pkgtup2pkgs = {}
-         self._search_cache = {
-             'provides' : { },
-@@ -543,7 +556,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-     # Because we don't want to remove a package from the database we just
-     # add it to the exclude list
-     def delPackage(self, obj):
--        if not self.excludes.has_key(obj.repo):
-+        if obj.repo not in self.excludes:
-             self.excludes[obj.repo] = {}
-         self.excludes[obj.repo][obj.pkgId] = 1
-         if (obj.repo, obj.pkgKey) in self._exclude_whitelist:
-@@ -697,9 +710,13 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-         if excluderid is not None:
-             self._pkgExcludeIds[excluderid] = len(self._pkgExcluder)
+     def costExcludePackages(self):
+         """ Create an excluder for repos. with higher cost. Eg.
+@@ -3669,6 +3680,7 @@ class YumBase(depsolve.Depsolve):
+                         self.logger.critical(_('%s') % e)
+                     
+                     if not depmatches:
++                        arg = to_unicode(arg)
+                         self.logger.critical(_('No Match for argument: %s') % arg)
+                     else:
+                         pkgs.extend(depmatches)
+diff --git a/yum/history.py b/yum/history.py
+index 502b908..6bc767a 100644
+--- a/yum/history.py
++++ b/yum/history.py
+@@ -27,7 +27,7 @@ import yum.misc as misc
+ import yum.constants
+ from yum.constants import *
+ from yum.packages import YumInstalledPackage, YumAvailablePackage, PackageObject
+-from yum.i18n import to_unicode
++from yum.i18n import to_unicode, to_utf8
  
-+        self._exclude_whitelist = set()
-+        self._pkgobjlist_dirty  = True
-+
-     def _packageByKey(self, repo, pkgKey, exclude=True):
-         """ Lookup a pkg by it's pkgKey, if we don't have it load it """
-         # Speed hack, so we don't load the pkg. if the pkgKey is dead.
-+        assert exclude
-         if exclude and self._pkgKeyExcluded(repo, pkgKey):
-             return None
  
-@@ -720,10 +737,14 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-             self._pkgtup2pkgs.setdefault(po.pkgtup, []).append(po)
-             pkgkeys = self._pkgname2pkgkeys[repo].setdefault(data['name'], [])
-             pkgkeys.append(pkgKey)
-+        elif exclude and self._pkgExcluded(self._key2pkg[repo][pkgKey]):
-+            self._delPackageRK(repo, pkgKey)
-+            return None
-         return self._key2pkg[repo][pkgKey]
-         
-     def _packageByKeyData(self, repo, pkgKey, data, exclude=True):
-         """ Like _packageByKey() but we already have the data for .pc() """
-+        assert exclude
-         if exclude and self._pkgExcludedRKD(repo, pkgKey, data):
+ _history_dir = '/var/lib/yum/history'
+@@ -425,12 +425,15 @@ class YumHistory:
+         cur = self._get_cursor()
+         if cur is None or not self._update_db_file_2():
              return None
-         if repo not in self._key2pkg:
-@@ -767,13 +788,13 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-         return ret
- 
-     def addDict(self, repo, datatype, dataobj, callback=None):
--        if self.added.has_key(repo):
-+        if repo in self.added:
-             if datatype in self.added[repo]:
-                 return
-         else:
-             self.added[repo] = []
- 
--        if not self.excludes.has_key(repo): 
-+        if repo not in self.excludes:
-             self.excludes[repo] = {}
++        # str(problem) doesn't work if problem contains unicode(),
++        # unicode(problem) doesn't work in python 2.4.x ... *sigh*.
++        uproblem = to_unicode(problem.__str__())
+         res = executeSQL(cur,
+                          """INSERT INTO trans_rpmdb_problems
+                          (tid, problem, msg)
+                          VALUES (?, ?, ?)""", (self._tid,
+                                                problem.problem,
+-                                               to_unicode(str(problem))))
++                                               uproblem))
+         rpid = cur.lastrowid
+ 
+         if not rpid:
+@@ -610,7 +613,7 @@ class YumHistory:
+             # open file in append
+             fo = open(data_fn, 'w+')
+             # write data
+-            fo.write(data)
++            fo.write(to_utf8(data))
+             # flush data
+             fo.flush()
+             fo.close()
+@@ -914,17 +917,19 @@ class YumHistory:
+             version || '-' || release || '.' || arch AS nevra
+      FROM trans_skip_pkgs JOIN pkgtups USING(pkgtupid)
+      ORDER BY name;
+-''', # NOTE: Old versions of sqlite don't like this next view, they are only
+-     #       there for debugging anyway ... but it's worth remembering.
++''', # NOTE: Old versions of sqlite don't like the normal way to do the next
++     #       view. So we do it with the select. It's for debugging only, so
++     #       no big deal.
+ '''\
+ \
+- CREATE VIEW vtrans_prob_pkgs AS
++ CREATE VIEW vtrans_prob_pkgs2 AS
+      SELECT tid,rpid,name,epoch,version,release,arch,pkgtups.pkgtupid,
+-            main,
++            main,problem,msg,
+             name || '-' || epoch || ':' ||
+             version || '-' || release || '.' || arch AS nevra
+-     FROM (trans_prob_pkgs JOIN trans_rpmdb_problems USING(rpid))
+-                           JOIN pkgtups USING(pkgtupid)
++     FROM (SELECT * FROM trans_prob_pkgs,trans_rpmdb_problems WHERE
++           trans_prob_pkgs.rpid=trans_rpmdb_problems.rpid)
++           JOIN pkgtups USING(pkgtupid)
+      ORDER BY name;
+ ''']
  
-         if dataobj is None:
-@@ -838,6 +859,32 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-         return misc.unique(results)
-         
-     @catchSqliteException
-+    def _have_fastReturnFileEntries(self):
-+        """ Return true if pkg.returnFileEntries(primary_only=True) is fast.
-+            basically does "CREATE INDEX pkgfiles ON files (pkgKey);" exist. """
-+
-+        for (rep,cache) in self.primarydb.items():
-+            if rep in self._all_excludes:
-+                continue
-+            cur = cache.cursor()
-+            executeSQL(cur, "PRAGMA index_info(pkgfiles)")
-+            #  If we get anything, we're fine. There might be a better way of
-+            # saying "anything" but this works.
-+            for ob in cur:
-+                break
-+            else:
-+                return False
-+
-+        return True
-+
-+    def have_fastReturnFileEntries(self):
-+        """ Is calling pkg.returnFileEntries(primary_only=True) faster than
-+            using searchFiles(). """
-+        if not hasattr(self, '_cached_fRFE'):
-+            self._cached_fRFE = self._have_fastReturnFileEntries()
-+        return self._cached_fRFE
-+
-+    @catchSqliteException
-     def searchFiles(self, name, strict=False):
-         """search primary if file will be in there, if not, search filelists, use globs, if possible"""
-         
-@@ -1194,7 +1241,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-             return result
+diff --git a/yum/pgpmsg.py b/yum/pgpmsg.py
+index 9cf8217..9f58fad 100644
+--- a/yum/pgpmsg.py
++++ b/yum/pgpmsg.py
+@@ -1186,7 +1186,7 @@ def decode(msg) :
+         idx = idx + pkt_len
+     return pkt_list
+ 
+-def decode_msg(msg) :
++def decode_msg(msg, multi=False) :
+     """decode_msg(msg) ==> list of OpenPGP "packet" objects
+ Takes an ascii-armored PGP block and returns a list of objects each of which
+ corresponds to a PGP "packets".
+@@ -1242,11 +1242,17 @@ a PGP "certificate" includes a public key, user id(s), and signature.
+                 pkt_idx = cert.load(pkt_list)
+                 cert_list.append(cert)
+                 pkt_list[0:pkt_idx] = []
++            if not multi:
++                if not cert_list:
++                    return None
++                return cert_list[0]
+             return cert_list
+         
+         # add the data to our buffer then
+         block_buf.write(l)
+ 
++    if not multi:
++        return None
+     return []
  
-         if not misc.re_primary_filename(name):
--            # if its not in the primary.xml files
-+            # If it is not in the primary.xml files
-             # search the files.xml file info
-             for pkg in self.searchFiles(name, strict=True):
-                 result[pkg] = [(name, None, None)]
-@@ -1228,6 +1275,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-         user_names = set(names)
-         names = []
-         for pkgname in user_names:
-+            if pkgname in self._pkgmatch_fails:
-+                continue
-+
-             if loaded_all_names or pkgname in self._pkgnames_loaded:
-                 returnList.extend(self._packagesByName(pkgname))
-             else:
-@@ -1274,8 +1324,14 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-             (n,f,(e,v,r)) = misc.string_to_prco_tuple(name)
-         except Errors.MiscError, e:
-             raise Errors.PackageSackError, to_unicode(e)
--        
--        n = to_unicode(n)
-+
-+        # The _b means this is a byte string
-+        # The _u means this is a unicode string
-+        # A bare n is used when, it's unicode but hasn't been evaluated
-+        # whether that's actually the right thing to do
-+        n_b = n
-+        n_u = to_unicode(n)
-+        n = n_u
+ def decode_multiple_keys(msg):
+diff --git a/yumcommands.py b/yumcommands.py
+index a7f5d9e..9c6fc75 100644
+--- a/yumcommands.py
++++ b/yumcommands.py
+@@ -122,6 +122,25 @@ def checkShellArg(base, basecmd, extcmds):
+         base.usage()
+         raise cli.CliError
  
-         glob = True
-         querytype = 'glob'
-@@ -1296,9 +1352,9 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-                 # file dep add all matches to the results
-                 results.append(po)
-                 continue
--            
++def checkEnabledRepo(base, possible_local_files=[]):
++    """
++    Verify that there is at least one enabled repo.
 +
-             if not glob:
--                if po.checkPrco(prcotype, (n, f, (e,v,r))):
-+                if po.checkPrco(prcotype, (n_b, f, (e,v,r))):
-                     results.append(po)
-             else:
-                 # if it is a glob we can't really get any closer to checking it
-@@ -1312,64 +1368,22 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-         # If it is a filename, search the primary.xml file info
-         results.extend(self._search_primary_files(n))
- 
--        # if its in the primary.xml files then skip the other check
-+        # If it is in the primary.xml files then skip the other check
-         if misc.re_primary_filename(n) and not glob:
-             return misc.unique(results)
- 
-         # If it is a filename, search the files.xml file info
-         results.extend(self.searchFiles(n))
-         return misc.unique(results)
--        
--        
--        #~ #FIXME - comment this all out below here
--        #~ for (rep,cache) in self.filelistsdb.items():
--            #~ cur = cache.cursor()
--            #~ (dirname,filename) = os.path.split(name)
--            #~ # FIXME: why doesn't this work???
--            #~ if 0: # name.find('%') == -1: # no %'s in the thing safe to LIKE
--                #~ executeSQL(cur, "select packages.pkgId as pkgId,\
--                    #~ filelist.dirname as dirname,\
--                    #~ filelist.filetypes as filetypes,\
--                    #~ filelist.filenames as filenames \
--                    #~ from packages,filelist where \
--                    #~ (filelist.dirname LIKE ? \
--                    #~ OR (filelist.dirname LIKE ? AND\
--                    #~ filelist.filenames LIKE ?))\
--                    #~ AND (filelist.pkgKey = packages.pkgKey)", (name,dirname,filename))
--            #~ else: 
--                #~ executeSQL(cur, "select packages.pkgId as pkgId,\
--                    #~ filelist.dirname as dirname,\
--                    #~ filelist.filetypes as filetypes,\
--                    #~ filelist.filenames as filenames \
--                    #~ from filelist,packages where dirname = ? AND filelist.pkgKey = packages.pkgKey" , (dirname,))
--
--            #~ matching_ids = []
--            #~ for res in cur:
--                #~ if self._excluded(rep, res['pkgId']):
--                    #~ continue
--                
--                #~ #FIXME - optimize the look up here by checking for single-entry filenames
--                #~ quicklookup = {}
--                #~ for fn in decodefilenamelist(res['filenames']):
--                    #~ quicklookup[fn] = 1
--                
--                #~ # If it matches the dirname, that doesnt mean it matches
--                #~ # the filename, check if it does
--                #~ if filename and filename not in quicklookup:
--                    #~ continue
--                
--                #~ matching_ids.append(str(res['pkgId']))
--                
--            
--            #~ pkgs = self._getListofPackageDetails(matching_ids)
--            #~ for pkg in pkgs:
--                #~ results.append(self.pc(rep,pkg))
--        
--        #~ return results
- 
-     def searchProvides(self, name):
-         """return list of packages providing name (any evr and flag)"""
--        return self.searchPrco(name, "provides")
-+        if name in self._provmatch_fails:
-+            return []
-+        ret = self.searchPrco(name, "provides")
-+        if not ret:
-+            self._provmatch_fails.add(name)
-+        return ret
-                 
-     def searchRequires(self, name):
-         """return list of packages requiring name (any evr and flag)"""
-@@ -1502,7 +1516,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-                   'sql_envra', 'sql_nevra']
-         need_full = False
-         for pat in patterns:
--            if misc.re_full_search_needed(pat):
-+            if (misc.re_full_search_needed(pat) and
-+                (ignore_case or pat not in self._pkgnames_loaded)):
-                 need_full = True
-                 break
- 
-@@ -1536,12 +1551,18 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-         pat_sqls = []
-         pat_data = []
-         for (pattern, rest) in patterns:
-+            if not ignore_case and pattern in self._pkgmatch_fails:
-+                continue
++    @param base: a YumBase object.
++    """
++    if base.repos.listEnabled():
++        return
 +
-             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)
-+        if patterns and not pat_sqls:
++    for lfile in possible_local_files:
++        if lfile.endswith(".rpm") and os.path.exists(lfile):
 +            return
 +
-         if pat_sqls:
-             qsql = _FULL_PARSE_QUERY_BEG + " OR ".join(pat_sqls)
-         else:
-@@ -1568,6 +1589,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
- 
-         for (repo, x) in self._yieldSQLDataList(repoid, patterns, fields,
-                                                 ignore_case):
-+            # Can't use: _sql_pkgKey2po because we change repos.
-             po = self._packageByKeyData(repo, x['pkgKey'], x)
-             if po is None:
-                 continue
-@@ -1578,6 +1600,17 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
-         if not need_full and repoid is None:
-             # Mark all the processed pkgnames as fully loaded
-             self._pkgnames_loaded.update([po.name for po in returnList])
-+        if need_full:
-+            for (pat, rest) in patterns:
-+                if rest not in ('=', ''): # Wildcards: 'glob' or ' ESCAPE "!"'
-+                    continue
-+                for pkg in returnList:
-+                    if pkg.name == pat:
-+                        self._pkgnames_loaded.add(pkg.name)
-+                        break
-+        if not returnList:
-+            for (pat, rest) in patterns:
-+                self._pkgmatch_fails.add(pat)
- 
-         return returnList
-                 
-diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py
-index e7b60de..31d3569 100644
---- a/yum/transactioninfo.py
-+++ b/yum/transactioninfo.py
-@@ -39,7 +39,7 @@ class GetProvReqOnlyPackageSack(PackageSack):
-         self._need_index_files = need_files
- 
-     def __addPackageToIndex_primary_files(self, obj):
--        for ftype in obj.returnFileTypes():
-+        for ftype in obj.returnFileTypes(primary_only=True):
-             for file in obj.returnFileEntries(ftype, primary_only=True):
-                 self._addToDictAsList(self.filenames, file, obj)
-     def __addPackageToIndex_files(self, obj):
-@@ -89,9 +89,7 @@ class TransactionData:
-         self.pkgSack = None
-         self.pkgSackPackages = 0
-         self.localSack = PackageSack()
--        # FIXME: This is turned off atm. ... it'll be turned on when
--        #        the new yum-metadata-parser with the "pkgfiles" index is std.
--        self._inSack = None # GetProvReqOnlyPackageSack()
-+        self._inSack = GetProvReqOnlyPackageSack()
- 
-         # lists of txmbrs in their states - just placeholders
-         self.instgroups = []
-@@ -132,7 +130,7 @@ class TransactionData:
-         if pkgtup is None:
-             for members in self.pkgdict.itervalues():
-                 returnlist.extend(members)            
--        elif self.pkgdict.has_key(pkgtup):
-+        elif pkgtup in self.pkgdict:
-             returnlist.extend(self.pkgdict[pkgtup])
-         return returnlist
-             
-@@ -195,6 +193,39 @@ class TransactionData:
- 
-         return result
- 
-+    def deselect(self, pattern):
-+        """ Remove these packages from the transaction. This is more user
-+            orientated than .remove(). Used from kickstart/install -blah. """
-+
-+        #  We don't have a returnPackages() here, so just try the "simple" 
-+        # specifications. Pretty much 100% hit rate on kickstart.
-+        txmbrs = self.matchNaevr(pattern)
-+        if not txmbrs:
-+            na = pattern.rsplit('.', 2)
-+            if len(na) == 2:
-+                txmbrs = self.matchNaevr(na[0], na[1])
-+
-+        if not txmbrs:
-+            if self.pkgSack is None:
-+                pkgs = []
-+            else:
-+                pkgs = self.pkgSack.returnPackages(patterns=[pattern])
-+            if not pkgs:
-+                pkgs = self.rpmdb.returnPackages(patterns=[pattern])
-+
-+            for pkg in pkgs:
-+                txmbrs.extend(self.getMembers(pkg.pkgtup))
-+                #  Now we need to do conditional group packages, so they don't
-+                # get added later on. This is hacky :(
-+                for req, cpkgs in self.conditionals.iteritems():
-+                    if pkg in cpkgs:
-+                        cpkgs.remove(pkg)
-+                        self.conditionals[req] = cpkgs
++    msg = _('There are no enabled repos.\n'
++            ' Run "yum repolist all" to see the repos you have.\n'
++            ' You can enable repos with yum-config-manager --enable <repo>')
++    base.logger.critical(msg)
++    raise cli.CliError
 +
-+        for txmbr in txmbrs:
-+            self.remove(txmbr.pkgtup)
-+        return txmbrs
-+
-     def _isLocalPackage(self, txmember):
-         # Is this the right criteria?
-         # FIXME: This is kinda weird, we really want all local pkgs to be in a
-@@ -239,9 +270,13 @@ class TransactionData:
-         elif isinstance(txmember.po, YumAvailablePackageSqlite):
-             self.pkgSackPackages += 1
-         if self._inSack is not None and txmember.output_state in TS_INSTALL_STATES:
--            self._inSack.addPackage(txmember.po)
-+            if not txmember.po.have_fastReturnFileEntries():
-+                # In theory we could keep this on if a "small" repo. fails
-+                self._inSack = None
-+            else:
-+                self._inSack.addPackage(txmember.po)
- 
--        if self.conditionals.has_key(txmember.name):
-+        if txmember.name in self.conditionals:
-             for pkg in self.conditionals[txmember.name]:
-                 if self.rpmdb.contains(po=pkg):
-                     continue
-@@ -273,7 +308,7 @@ class TransactionData:
-     
-     def exists(self, pkgtup):
-         """tells if the pkg is in the class"""
--        if self.pkgdict.has_key(pkgtup):
-+        if pkgtup in self.pkgdict:
-             if len(self.pkgdict[pkgtup]) != 0:
-                 return 1
+ class YumCommand:
          
-@@ -314,8 +349,7 @@ class TransactionData:
-                     self.updated.append(txmbr)
-                     
-             elif txmbr.output_state in (TS_INSTALL, TS_TRUEINSTALL):
--                if include_reinstall and self.rpmdb.contains(po=txmbr.po):
--                    txmbr.reinstall = True
-+                if include_reinstall and txmbr.reinstall:
-                     self.reinstalled.append(txmbr)
-                     continue
+     def __init__(self):
+@@ -176,6 +195,7 @@ class InstallCommand(YumCommand):
+         checkRootUID(base)
+         checkGPGKey(base)
+         checkPackageArg(base, basecmd, extcmds)
++        checkEnabledRepo(base, extcmds)
  
-@@ -368,7 +402,6 @@ class TransactionData:
-         self.downgraded.sort()
-         self.failed.sort()
+     def doCommand(self, base, basecmd, extcmds):
+         self.doneCommand(base, _("Setting up Install Process"))
+@@ -197,6 +217,7 @@ class UpdateCommand(YumCommand):
+     def doCheck(self, base, basecmd, extcmds):
+         checkRootUID(base)
+         checkGPGKey(base)
++        checkEnabledRepo(base, extcmds)
  
--    
-     def addInstall(self, po):
-         """adds a package as an install but in mode 'u' to the ts
-            takes a packages object and returns a TransactionMember Object"""
-@@ -382,6 +415,10 @@ class TransactionData:
-         txmbr.po.state = TS_INSTALL        
-         txmbr.ts_state = 'u'
-         txmbr.reason = 'user'
-+
-+        if self.rpmdb.contains(po=txmbr.po):
-+            txmbr.reinstall = True
-+
-         self.add(txmbr)
-         return txmbr
+     def doCommand(self, base, basecmd, extcmds):
+         self.doneCommand(base, _("Setting up Update Process"))
+@@ -218,6 +239,7 @@ class DistroSyncCommand(YumCommand):
+     def doCheck(self, base, basecmd, extcmds):
+         checkRootUID(base)
+         checkGPGKey(base)
++        checkEnabledRepo(base, extcmds)
  
-@@ -395,6 +432,10 @@ class TransactionData:
-         txmbr.po.state = TS_INSTALL        
-         txmbr.ts_state = 'i'
-         txmbr.reason = 'user'
-+
-+        if self.rpmdb.contains(po=txmbr.po):
-+            txmbr.reinstall = True
-+
-         self.add(txmbr)
-         return txmbr
+     def doCommand(self, base, basecmd, extcmds):
+         self.doneCommand(base, _("Setting up Distribution Synchronization Process"))
+@@ -420,6 +442,9 @@ class GroupListCommand(GroupCommand):
+     def getSummary(self):
+         return _("List available package groups")
      
-@@ -472,6 +513,10 @@ class TransactionData:
-         txmbr.ts_state = 'u'
-         txmbr.relatedto.append((oldpo, 'obsoletes'))
-         txmbr.obsoletes.append(oldpo)
-+
-+        if self.rpmdb.contains(po=txmbr.po):
-+            txmbr.reinstall = True
-+
-         self.add(txmbr)
-         return txmbr
- 
-@@ -573,7 +618,7 @@ class TransactionData:
-         for txmbr in self.getMembersWithState(None, TS_INSTALL_STATES):
-             # reinstalls have to use their "new" checksum data, in case it's
-             # different.
--            if hasattr(txmbr, 'reinstall') and txmbr.reinstall:
-+            if txmbr.reinstall:
-                 _reinstalled_pkgtups[txmbr.po.pkgtup] = txmbr.po
-             pkgs.append(txmbr.po)
- 
-@@ -686,6 +731,7 @@ class TransactionMember:
-         self.updated_by = []
-         self.downgrades = []
-         self.downgraded_by = []
-+        self.reinstall = False
-         self.groups = [] # groups it's in
-         self._poattr = ['pkgtup', 'repoid', 'name', 'arch', 'epoch', 'version',
-                         'release']
-@@ -694,6 +740,14 @@ class TransactionMember:
-             val = getattr(self.po, attr)
-             setattr(self, attr, val)
- 
-+        if po.repoid == 'installed':
-+            #  We want to load these so that we can auto hardlink in the same
-+            # new values. Because of the hardlinks it should be really cheap
-+            # to load them ... although it's still a minor hack.
-+            po.yumdb_info.get('from_repo')
-+            po.yumdb_info.get('releasever')
-+            po.yumdb_info.get('changed_by')
-+
-     def setAsDep(self, po=None):
-         """sets the transaction member as a dependency and maps the dep into the
-            relationship list attribute"""
-diff --git a/yum/update_md.py b/yum/update_md.py
-index 54d4cd7..9e492ba 100644
---- a/yum/update_md.py
-+++ b/yum/update_md.py
-@@ -22,23 +22,16 @@ 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 yum.misc import to_xml, decompress
-+from yum.misc import cElementTree_iterparse as iterparse 
- import Errors
- 
- import rpmUtils.miscutils
- 
--try:
--    from xml.etree import cElementTree
--except ImportError:
--    import cElementTree
--iterparse = cElementTree.iterparse
--
--
- class UpdateNoticeException(Exception):
-     """ An exception thrown for bad UpdateNotice data. """
-     pass
-@@ -73,10 +66,10 @@ class UpdateNotice(object):
- 
-     def __getitem__(self, item):
-         """ Allows scriptable metadata access (ie: un['update_id']). """
--        return self._md.has_key(item) and self._md[item] or None
-+        return self._md.get(item) or None
- 
-     def __setitem__(self, item, val):
--       self._md[item] = val
-+        self._md[item] = val
- 
-     def __str__(self):
-         head = """
-@@ -328,20 +321,22 @@ class UpdateMetadata(object):
-         """
-         if type(nvr) in (type([]), type(())):
-             nvr = '-'.join(nvr)
--        return self._cache.has_key(nvr) and self._cache[nvr] or None
-+        return self._cache.get(nvr) or None
- 
-     #  The problem with the above "get_notice" is that not everyone updates
-     # daily. So if you are at pkg-1, pkg-2 has a security notice, and pkg-3
-     # has a BZ fix notice. All you can see is the BZ notice for the new "pkg-3"
-     # with the above.
-     #  So now instead you lookup based on the _installed_ pkg.pkgtup, and get
--    # two notices, in order: [(pkg-3, notice), (pkg-2, notice)]
-+    # two notices, in order: [(pkgtup-3, notice), (pkgtup-2, notice)]
-     # the reason for the sorting order is that the first match will give you
-     # the minimum pkg you need to move to.
-     def get_applicable_notices(self, pkgtup):
-         """
-         Retrieve any update notices which are newer than a
-         given std. pkgtup (name, arch, epoch, version, release) tuple.
-+        Returns: list of (pkgtup, notice) that are newer than the given pkgtup,
-+                 in the order of newest pkgtups first.
-         """
-         oldpkgtup = pkgtup
-         name = oldpkgtup[0]
-@@ -380,14 +375,17 @@ class UpdateMetadata(object):
-         if not obj:
-             raise UpdateNoticeException
-         if type(obj) in (type(''), type(u'')):
--            infile = obj.endswith('.gz') and gzip.open(obj) or open(obj, 'rt')
-+            unfile = decompress(obj)
-+            infile = open(unfile, 'rt')
++    def doCheck(self, base, basecmd, extcmds):
++        checkEnabledRepo(base)
 +
-         elif isinstance(obj, YumRepository):
-             if obj.id not in self._repos:
-                 self._repos.append(obj.id)
-                 md = obj.retrieveMD(mdtype)
-                 if not md:
-                     raise UpdateNoticeException()
--                infile = gzip.open(md)
-+                unfile = decompress(md)
-+                infile = open(unfile, 'rt')
-         elif isinstance(obj, FakeRepository):
-             raise Errors.RepoMDError, "No updateinfo for local pkg"
-         else:   # obj is a file object
-diff --git a/yum/yumRepo.py b/yum/yumRepo.py
-index 8d7617e..dd595f0 100644
---- a/yum/yumRepo.py
-+++ b/yum/yumRepo.py
-@@ -19,7 +19,6 @@ import time
- import types
- import urlparse
- urlparse.uses_fragment.append("media")
--import gzip
- 
- import Errors
- from urlgrabber.grabber import URLGrabber
-@@ -78,7 +77,7 @@ class YumPackageSack(packageSack.PackageSack):
-         self.added = {}
- 
-     def addDict(self, repo, datatype, dataobj, callback=None):
--        if self.added.has_key(repo):
-+        if repo in self.added:
-             if datatype in self.added[repo]:
-                 return
- 
-@@ -94,14 +93,14 @@ class YumPackageSack(packageSack.PackageSack):
-                 self._addToDictAsList(self.pkgsByID, pkgid, po)
-                 self.addPackage(po)
- 
--            if not self.added.has_key(repo):
-+            if repo not in self.added:
-                 self.added[repo] = []
-             self.added[repo].append('metadata')
-             # indexes will need to be rebuilt
-             self.indexesBuilt = 0
- 
-         elif datatype in ['filelists', 'otherdata']:
--            if self.added.has_key(repo):
-+            if repo in self.added:
-                 if 'metadata' not in self.added[repo]:
-                     raise Errors.RepoError, '%s md for %s imported before primary' \
-                            % (datatype, repo.id)
-@@ -110,7 +109,7 @@ class YumPackageSack(packageSack.PackageSack):
-                 current += 1
-                 if callback: callback.progressbar(current, total, repo)
-                 pkgdict = dataobj[pkgid]
--                if self.pkgsByID.has_key(pkgid):
-+                if pkgid in self.pkgsByID:
-                     for po in self.pkgsByID[pkgid]:
-                         po.importFromDict(pkgdict)
- 
-@@ -134,7 +133,7 @@ class YumPackageSack(packageSack.PackageSack):
-                 callback=callback,
-                 )
-         for item in data:
--            if self.added.has_key(repo):
-+            if repo in self.added:
-                 if item in self.added[repo]:
-                     continue
- 
-@@ -163,7 +162,7 @@ class YumPackageSack(packageSack.PackageSack):
- 
-             if self._check_db_version(repo, mydbtype):
-                 # see if we have the uncompressed db and check it's checksum vs the openchecksum
--                # if not download the bz2 file
-+                # if not download the compressed file
-                 # decompress it
-                 # unlink it
- 
-@@ -171,9 +170,8 @@ class YumPackageSack(packageSack.PackageSack):
-                 if not db_un_fn:
-                     db_fn = repo._retrieveMD(mydbtype)
-                     if db_fn:
--                        db_un_fn = db_fn.replace('.bz2', '')
-                         if not repo.cache:
--                            misc.bunzipFile(db_fn, db_un_fn)
-+                            db_un_fn = misc.decompress(db_fn)
-                             misc.unlink_f(db_fn)
-                             db_un_fn = self._check_uncompressed_db(repo, mydbtype)
- 
-@@ -199,8 +197,8 @@ class YumPackageSack(packageSack.PackageSack):
-         mydbdata = repo.repoXML.getData(mdtype)
-         (r_base, remote) = mydbdata.location
-         fname = os.path.basename(remote)
--        bz2_fn = repo.cachedir + '/' + fname
--        db_un_fn = bz2_fn.replace('.bz2', '')
-+        compressed_fn = repo.cachedir + '/' + fname
-+        db_un_fn = misc.decompress(compressed_fn, fn_only=True)
- 
-         result = None
- 
-@@ -385,7 +383,7 @@ class YumRepository(Repository, config.RepoConf):
-             if isinstance(getattr(self, attr), types.MethodType):
-                 continue
-             res = getattr(self, attr)
--            if not res:
-+            if not res and type(res) not in (type(False), type(0)):
-                 res = ''
-             if type(res) == types.ListType:
-                 res = ',\n   '.join(res)
-@@ -957,6 +955,7 @@ class YumRepository(Repository, config.RepoConf):
-         if not self.mediafunc and self.mediaid and not self.mirrorlist and not self.baseurl:
-             verbose_logger.log(logginglevels.DEBUG_2, "Disabling media repo for non-media-aware frontend")
-             self.enabled = False
-+            self.skip_if_unavailable = True
- 
-     def _cachingRepoXML(self, local):
-         """ Should we cache the current repomd.xml """
-@@ -1082,16 +1081,14 @@ class YumRepository(Repository, config.RepoConf):
-             self._check_db_version(mdtype + '_db', repoXML=repoXML)):
-             mdtype += '_db'
- 
--        if repoXML.repoData.has_key(mdtype):
--            return (mdtype, repoXML.getData(mdtype))
--        return (mdtype, None)
-+        return (mdtype, repoXML.repoData.get(mdtype))
- 
-     def _get_mdtype_fname(self, data, compressed=False):
-         (r_base, remote) = data.location
-         local = self.cachedir + '/' + os.path.basename(remote)
- 
-         if compressed: # DB file, we need the uncompressed version
--            local = local.replace('.bz2', '')
-+            local = misc.decompress(local, fn_only=True)
-         return local
- 
-     def _groupCheckDataMDNewer(self):
-@@ -1246,7 +1243,7 @@ class YumRepository(Repository, config.RepoConf):
-             compressed = False
-             local = self._get_mdtype_fname(data, False)
-             if not os.path.exists(local):
--                local = local.replace('.bz2', '')
-+                local = misc.decompress(local, fn_only=True)
-                 compressed = True
-         #  If we can, make a copy of the system-wide-cache version of this file,
-         # note that we often don't get here. So we also do this in
-@@ -1353,10 +1350,9 @@ class YumRepository(Repository, config.RepoConf):
+     def doCommand(self, base, basecmd, extcmds):
+         GroupCommand.doCommand(self, base, basecmd, extcmds)
+         return base.returnGroupLists(extcmds)
+@@ -441,6 +466,7 @@ class GroupInstallCommand(GroupCommand):
+         checkRootUID(base)
+         checkGPGKey(base)
+         checkGroupArg(base, basecmd, extcmds)
++        checkEnabledRepo(base)
  
-         for (ndata, nmdtype) in downloading_with_size + downloading_no_size:
-             local = self._get_mdtype_fname(ndata, False)
--            if nmdtype.endswith("_db"): # Uncompress any .sqlite.bz2 files
-+            if nmdtype.endswith("_db"): # Uncompress any compressed files
-                 dl_local = local
--                local = local.replace('.bz2', '')
--                misc.bunzipFile(dl_local, local)
-+                local = misc.decompress(dl_local)
-                 misc.unlink_f(dl_local)
-             self._oldRepoMDData['new_MD_files'].append(local)
+     def doCommand(self, base, basecmd, extcmds):
+         GroupCommand.doCommand(self, base, basecmd, extcmds)
+@@ -462,6 +488,7 @@ class GroupRemoveCommand(GroupCommand):
+     def doCheck(self, base, basecmd, extcmds):
+         checkRootUID(base)
+         checkGroupArg(base, basecmd, extcmds)
++        checkEnabledRepo(base)
  
-@@ -1518,15 +1514,17 @@ class YumRepository(Repository, config.RepoConf):
-         """ Internal function, use .retrieveMD() from outside yum. """
-         #  Note that this can raise Errors.RepoMDError if mdtype doesn't exist
-         # for this repo.
-+        # FIXME - maybe retrieveMD should call decompress() after we've checked
-+        # the checksum by default? since we're never acting on compressed MD
-         thisdata = self.repoXML.getData(mdtype)
+     def doCommand(self, base, basecmd, extcmds):
+         GroupCommand.doCommand(self, base, basecmd, extcmds)
+@@ -488,6 +515,7 @@ class GroupInfoCommand(GroupCommand):
  
-         (r_base, remote) = thisdata.location
-         fname = os.path.basename(remote)
-         local = self.cachedir + '/' + fname
+     def doCheck(self, base, basecmd, extcmds):
+         checkGroupArg(base, basecmd, extcmds)
++        checkEnabledRepo(base)
  
--        if self.retrieved.has_key(mdtype):
--            if self.retrieved[mdtype]: # got it, move along
--                return local
-+        if self.retrieved.get(mdtype):
-+            # got it, move along
-+            return local
+     def doCommand(self, base, basecmd, extcmds):
+         GroupCommand.doCommand(self, base, basecmd, extcmds)
+@@ -511,7 +539,7 @@ class MakeCacheCommand(YumCommand):
+         return _("Generate the metadata cache")
  
-         if self.cache == 1:
-             if os.path.exists(local):
-@@ -1552,9 +1550,17 @@ class YumRepository(Repository, config.RepoConf):
-         try:
-             checkfunc = (self.checkMD, (mdtype,), {})
-             text = "%s/%s" % (self.id, mdtype)
-+            if thisdata.size is None:
-+                reget = None
-+            else:
-+                reget = 'simple'
-+                if os.path.exists(local):
-+                    if os.stat(local).st_size >= int(thisdata.size):
-+                        misc.unlink_f(local)
-             local = self._getFile(relative=remote,
-                                   local=local, 
-                                   copy_local=1,
-+                                  reget=reget,
-                                   checkfunc=checkfunc, 
-                                   text=text,
-                                   cache=self.http_caching == 'all',
-@@ -1762,9 +1768,9 @@ class YumRepository(Repository, config.RepoConf):
+     def doCheck(self, base, basecmd, extcmds):
+-        pass
++        checkEnabledRepo(base)
  
-         grpfile = self.getGroups()
+     def doCommand(self, base, basecmd, extcmds):
+         base.logger.debug(_("Making cache files for all metadata files."))
+@@ -554,6 +582,7 @@ class CleanCommand(YumCommand):
  
--        # open it up as a file object so iterparse can cope with our gz file
--        if grpfile is not None and grpfile.endswith('.gz'):
--            grpfile = gzip.open(grpfile)
-+        # open it up as a file object so iterparse can cope with our compressed file
-+        if grpfile is not None:
-+            grpfile = misc.decompress(grpfile)
-         try:
-             c = comps.Comps()
-             c.add(grpfile)
-diff --git a/yumcommands.py b/yumcommands.py
-index 35bd97c..a7f5d9e 100644
---- a/yumcommands.py
-+++ b/yumcommands.py
-@@ -205,6 +205,28 @@ class UpdateCommand(YumCommand):
-         except yum.Errors.YumBaseError, e:
-             return 1, [str(e)]
+     def doCheck(self, base, basecmd, extcmds):
+         checkCleanArg(base, basecmd, extcmds)
++        checkEnabledRepo(base)
+         
+     def doCommand(self, base, basecmd, extcmds):
+         base.conf.cache = 1
+@@ -592,6 +621,9 @@ class CheckUpdateCommand(YumCommand):
+     def getSummary(self):
+         return _("Check for available package updates")
  
-+class DistroSyncCommand(YumCommand):
-+    def getNames(self):
-+        return ['distribution-synchronization', 'distro-sync']
-+
-+    def getUsage(self):
-+        return _("[PACKAGE...]")
-+
-+    def getSummary(self):
-+        return _("Synchronize installed packages to the latest available versions")
-+
 +    def doCheck(self, base, basecmd, extcmds):
-+        checkRootUID(base)
-+        checkGPGKey(base)
-+
-+    def doCommand(self, base, basecmd, extcmds):
-+        self.doneCommand(base, _("Setting up Distribution Synchronization Process"))
-+        try:
-+            base.conf.obsoletes = 1
-+            return base.distroSyncPkgs(extcmds)
-+        except yum.Errors.YumBaseError, e:
-+            return 1, [str(e)]
++        checkEnabledRepo(base)
 +
- def _add_pkg_simple_list_lens(data, pkg, indent=''):
-     """ Get the length of each pkg's column. Add that to data.
-         This "knows" about simpleList and printVer. """
-@@ -1207,7 +1229,7 @@ class VersionCommand(YumCommand):
-                 lastdbv = base.history.last()
-                 if lastdbv is not None:
-                     lastdbv = lastdbv.end_rpmdbversion
--                if lastdbv is None or data[0] != lastdbv:
-+                if lastdbv is not None and data[0] != lastdbv:
-                     base._rpmdb_warn_checks(warn=lastdbv is not None)
-                 if vcmd not in ('group-installed', 'group-all'):
-                     cols.append(("%s %s/%s" % (_("Installed:"), rel, ba),
-@@ -1215,6 +1237,9 @@ class VersionCommand(YumCommand):
-                     _append_repos(cols, data[1])
-                 if groups:
-                     for grp in sorted(data[2]):
-+                        if (vcmd.startswith("group-") and
-+                            len(extcmds) > 1 and grp not in extcmds[1:]):
-+                            continue
-                         cols.append(("%s %s" % (_("Group-Installed:"), grp),
-                                      str(data[2][grp])))
-                         _append_repos(cols, data[3][grp])
-@@ -1230,6 +1255,9 @@ class VersionCommand(YumCommand):
-                         _append_repos(cols, data[1])
-                 if groups:
-                     for grp in sorted(data[2]):
-+                        if (vcmd.startswith("group-") and
-+                            len(extcmds) > 1 and grp not in extcmds[1:]):
-+                            continue
-                         cols.append(("%s %s" % (_("Group-Available:"), grp),
-                                      str(data[2][grp])))
-                         if verbose:
-@@ -1295,7 +1323,7 @@ class HistoryCommand(YumCommand):
-         base.history._create_db_file()
- 
+     def doCommand(self, base, basecmd, extcmds):
+         base.extcmds.insert(0, 'updates')
+         result = 0
+@@ -668,6 +700,7 @@ class UpgradeCommand(YumCommand):
      def doCheck(self, base, basecmd, extcmds):
--        cmds = ('list', 'info', 'summary', 'repeat', 'redo', 'undo', 'new')
-+        cmds = ('list', 'info', 'summary', 'repeat', 'redo', 'undo', 'new', 'addon-info')
-         if extcmds and extcmds[0] not in cmds:
-             base.logger.critical(_('Invalid history sub-command, use: %s.'),
-                                  ", ".join(cmds))
-@@ -1303,6 +1331,9 @@ class HistoryCommand(YumCommand):
-         if extcmds and extcmds[0] in ('repeat', 'redo', 'undo', 'new'):
-             checkRootUID(base)
-             checkGPGKey(base)
-+        elif not os.access(base.history._db_file, os.R_OK):
-+            base.logger.critical(_("You don't have access to the history DB."))
-+            raise cli.CliError
+         checkRootUID(base)
+         checkGPGKey(base)
++        checkEnabledRepo(base, extcmds)
  
      def doCommand(self, base, basecmd, extcmds):
-         vcmd = 'list'
-@@ -1316,6 +1347,8 @@ class HistoryCommand(YumCommand):
-             ret = base.historyInfoCmd(extcmds)
-         elif vcmd == 'summary':
-             ret = base.historySummaryCmd(extcmds)
-+        elif vcmd == 'addon-info':
-+            ret = base.historyAddonInfoCmd(extcmds)
-         elif vcmd == 'undo':
-             ret = self._hcmd_undo(base, extcmds)
-         elif vcmd in ('redo', 'repeat'):
-@@ -1347,13 +1380,14 @@ class CheckRpmdbCommand(YumCommand):
-     def doCommand(self, base, basecmd, extcmds):
-         chkcmd = 'all'
-         if extcmds:
--            chkcmd = extcmds[0]
-+            chkcmd = extcmds
- 
-         def _out(x):
-             print x
+         base.conf.obsoletes = 1
+@@ -1104,6 +1137,7 @@ class ReInstallCommand(YumCommand):
+         checkRootUID(base)
+         checkGPGKey(base)
+         checkPackageArg(base, basecmd, extcmds)
++        checkEnabledRepo(base, extcmds)
  
-         rc = 0
--        if base._rpmdb_warn_checks(_out, False, chkcmd):
-+        if base._rpmdb_warn_checks(out=_out, warn=False, chkcmd=chkcmd,
-+                                   header=lambda x: None):
-             rc = 1
-         return rc, ['%s %s' % (basecmd, chkcmd)]
- 
-diff --git a/yummain.py b/yummain.py
-index 305e0c7..95c7462 100755
---- a/yummain.py
-+++ b/yummain.py
-@@ -99,9 +99,13 @@ def main(args):
-             if "%s" %(e.msg,) != lockerr:
-                 lockerr = "%s" %(e.msg,)
-                 logger.critical(lockerr)
--            logger.critical(_("Another app is currently holding the yum lock; waiting for it to exit..."))
--            show_lock_owner(e.pid, logger)
--            time.sleep(2)
-+            if not base.conf.exit_on_lock:
-+                logger.critical(_("Another app is currently holding the yum lock; waiting for it to exit..."))
-+                show_lock_owner(e.pid, logger)
-+                time.sleep(2)
-+            else:
-+                logger.critical(_("Another app is currently holding the yum lock; exiting as configured by exit_on_lock"))
-+                return 1
-         else:
-             break
+     def doCommand(self, base, basecmd, extcmds):
+         self.doneCommand(base, _("Setting up Reinstall Process"))
+@@ -1130,6 +1164,7 @@ class DowngradeCommand(YumCommand):
+         checkRootUID(base)
+         checkGPGKey(base)
+         checkPackageArg(base, basecmd, extcmds)
++        checkEnabledRepo(base, extcmds)
  
+     def doCommand(self, base, basecmd, extcmds):
+         self.doneCommand(base, _("Setting up Downgrade Process"))
diff --git a/yum.spec b/yum.spec
index 51ed1ee..e5d6c1d 100644
--- a/yum.spec
+++ b/yum.spec
@@ -3,7 +3,7 @@
 Summary: RPM installer/updater
 Name: yum
 Version: 3.2.28
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: GPLv2+
 Group: System Environment/Base
 Source0: http://yum.baseurl.org/download/3.2/%{name}-%{version}.tar.gz
@@ -69,7 +69,7 @@ can notify you when they are available via email, syslog or dbus.
 %patch3 -p0
 %patch4 -p0
 %patch5 -p1
-#%%%patch6 -p1
+%patch6 -p1
 %patch20 -p1
 
 %build
@@ -133,6 +133,12 @@ rm -rf $RPM_BUILD_ROOT
 %dir /usr/lib/yum-plugins
 
 %changelog
+* Mon Aug  9 2010 Seth Vidal <skvidal at fedoraproject.org> - 3.2.28-2
+- latest head
+- unicide fixes
+- sqlite history db conversion fixes
+
+
 * Fri Jul 30 2010 Seth Vidal <skvidal at fedoraproject.org> - 3.2.28-1
 - 3.2.28
 


More information about the scm-commits mailing list